/* Classfern Family – uses the site's own colours where they exist (Classfern teal), falls back otherwise. */
.cffam{--cf-a:var(--accent,#0e7c6b);--cf-bg:var(--card,#fff);--cf-ink:var(--ink,#1d2522);--cf-mute:var(--muted,#5b6661);--cf-line:var(--line,#dde3df);--cf-bad:#b3261e;--cf-warn:#fff6db;color:var(--cf-ink);font-size:1rem;max-width:72rem}
@media (prefers-color-scheme:dark){.cffam{--cf-bg:var(--card,#17201d);--cf-ink:var(--ink,#e8efeb);--cf-mute:var(--muted,#a6b3ad);--cf-line:var(--line,#2f3a36);--cf-warn:#3a3214}}
.cffam h2{margin:.6em 0 .4em}.cffam h3{margin:.2em 0 .5em;font-size:1.08rem}.cffam h4{margin:.9em 0 .3em}
.cffam-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1rem;border-bottom:1px solid var(--cf-line);padding-bottom:.5rem}
.cffam-tabs button{border:1px solid var(--cf-line);background:var(--cf-bg);color:inherit;border-radius:999px;padding:.4rem .8rem;cursor:pointer;font:inherit;font-size:.92rem}
.cffam-tabs button[aria-current]{background:var(--cf-a);border-color:var(--cf-a);color:#fff}
.cffam-count{display:inline-block;margin-left:.35em;background:var(--cf-bad);color:#fff;border-radius:999px;padding:0 .45em;font-size:.8em}
.cffam-card{background:var(--cf-bg);border:1px solid var(--cf-line);border-radius:12px;padding:1rem;margin:0 0 1rem}
.cffam-card.warn{background:var(--cf-warn)}
.cffam-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.cffam-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:.5rem 0}
.cffam-field{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem;color:var(--cf-mute);margin:.25rem 0}
.cffam input,.cffam select,.cffam textarea{font:inherit;color:var(--cf-ink);background:var(--cf-bg);border:1px solid var(--cf-line);border-radius:8px;padding:.45rem .55rem;max-width:100%;box-sizing:border-box}
.cffam textarea{width:100%}
.cffam-btn{font:inherit;cursor:pointer;border-radius:8px;padding:.5rem .9rem;border:1px solid var(--cf-a);background:var(--cf-bg);color:var(--cf-a)}
.cffam-btn.ok{background:var(--cf-a);color:#fff}.cffam-btn.danger{border-color:var(--cf-bad);color:var(--cf-bad)}.cffam-btn.ghost{border-color:var(--cf-line);color:inherit}.cffam-btn.tiny{padding:.15rem .5rem;font-size:.85rem}
.cffam-btn:focus-visible,.cffam-tabs button:focus-visible{outline:3px solid var(--cf-a);outline-offset:2px}
.cffam-checks{display:flex;flex-wrap:wrap;gap:.3rem .9rem;margin:.2rem 0 .5rem;font-size:.92rem}
.cffam-small{color:var(--cf-mute);font-size:.9rem}
.cffam-note{white-space:pre-wrap;border-left:3px solid var(--cf-line);padding-left:.6rem;margin:.4rem 0}
.cffam-msg{padding:.6rem .8rem;border-radius:8px;background:#e7f4ef;color:#0b4f44}.cffam-msg.bad{background:#fde8e6;color:#8a1c14}
.cffam-msg.float{position:sticky;top:.5rem;z-index:5}
.cffam-live{display:inline-block;margin-left:.4em;color:#fff;background:var(--cf-a);border-radius:999px;padding:.05rem .55rem;font-size:.85rem}
p.cffam-live{margin:.3rem 0;display:inline-block}
.cffam-tag{display:inline-block;font-size:.8rem;font-weight:400;color:var(--cf-mute);border:1px solid var(--cf-line);border-radius:999px;padding:0 .5rem}
.cffam-sess{border-top:1px solid var(--cf-line);padding:.5rem 0}.cffam-sess.live{border-left:4px solid var(--cf-a);padding-left:.6rem}
.cffam-hours{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--cf-line)}.cffam-hours strong{width:3rem}
.cffam-slot{display:inline-flex;gap:.25rem;align-items:center}
.cffam-bar{display:inline-flex;align-items:center;gap:.35rem;min-width:7rem}.cffam-bar i{display:inline-block;height:.55rem;background:var(--cf-a);border-radius:4px;max-width:5rem}.cffam-bar b{font-weight:600;font-size:.88rem}
.cffam-scroll{overflow-x:auto}.cffam-table{border-collapse:collapse;width:100%;font-size:.92rem}.cffam-table th,.cffam-table td{border-bottom:1px solid var(--cf-line);text-align:left;padding:.35rem .4rem;vertical-align:top}
.cffam-more summary{cursor:pointer;color:var(--cf-a);margin:.4rem 0}
.cffam-tap dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem}.cffam-tap dt{color:var(--cf-mute)}.cffam-tap form{display:inline}
#cffam-print{display:none}
@media print{html.cffam-printing body>*:not(#cffam-print){display:none!important}html.cffam-printing #cffam-print{display:block;font:11pt/1.4 Arial,sans-serif;color:#000}#cffam-print table{border-collapse:collapse;width:100%;font-size:9pt}#cffam-print td,#cffam-print th{border-bottom:1px solid #bbb;text-align:left;padding:2pt 4pt}#cffam-print .page{break-before:page}#cffam-print .small{font-size:8.5pt;color:#444}}
.cffam-kid{border-top:1px dashed var(--cf-line);padding:.35rem 0}.cffam-kid-more{margin:.2rem 0 .2rem 1.4rem}
.cffam-tag.soon{background:#fff3c4;color:#5c4400;border-color:#e8d27a;font-weight:600}
.cffam-soon{opacity:.85;border-style:dashed}.cffam-btn[disabled]{opacity:.55;cursor:not-allowed}
.cffam-group{border-left:4px solid var(--cf-a)}
.cffam-list-row input{flex:1 1 8rem}
.cffam-who{border-left:4px solid var(--cf-a)}.cffam-tick label{font-weight:600}
.cffam-qtab{display:flex;gap:.4rem;flex-wrap:wrap;margin:.3rem 0 .8rem}
@media print{html.cffam-printing #cffam-print.cffam-today-list h1{font-size:18pt;margin:0 0 4pt}html.cffam-printing #cffam-print.cffam-today-list table{font-size:12pt}html.cffam-printing #cffam-print.cffam-today-list td{padding:8pt 4pt}html.cffam-printing #cffam-print td.tick{font-size:16pt;width:2.2em}}
.cffam-stat{display:flex;flex-direction:column;gap:.15rem}.cffam-big{font-size:1.6rem;line-height:1.1}
