/* Classfern Classroom – teacher app, pupil page, built-in player, printable login cards. */
.cfcls{--cf-green:#2f7d4f;--cf-green-d:#1f5a37;--cf-ink:#1d2421;--cf-muted:#5b6660;--cf-line:#d7dfda;--cf-bg:#fff;--cf-soft:#f3f7f4;--cf-red:#b3261e;--cf-amber:#8a5a00;--cf-amber-bg:#fff4db;--cf-blue:#1e5aa8;color:var(--cf-ink);font-size:16px;line-height:1.5}
@media (prefers-color-scheme:dark){.cfcls-pupil-body,.cfcls-pupil-body .cfcls{--cf-ink:#e8eeea;--cf-muted:#a8b5ad;--cf-line:#38423c;--cf-bg:#161b18;--cf-soft:#1f2621;--cf-amber-bg:#3a2e12;--cf-amber:#ffcf73;--cf-red:#ff8a80}}
.cfcls *{box-sizing:border-box}
/* The live screen needs room: let the teacher app use the full page width in block themes. */
.is-layout-constrained>#cfcls-app,#cfcls-app.cfcls{max-width:min(1400px,calc(100vw - 32px))!important;margin-left:auto!important;margin-right:auto!important}
.cfcls h2{margin:.6em 0 .4em}.cfcls h3{margin:.2em 0 .5em;font-size:1.1em}
.cfcls-muted{color:var(--cf-muted)}.cfcls-small{font-size:.9em}
.cfcls-box{border:1px solid var(--cf-line);border-radius:12px;padding:14px 16px;margin:14px 0;background:var(--cf-bg)}
.cfcls-btn{display:inline-block;border:0;border-radius:8px;background:var(--cf-green);color:#fff;padding:.55em 1em;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}
.cfcls-btn:hover{background:var(--cf-green-d);color:#fff}.cfcls-btn:disabled{opacity:.5;cursor:not-allowed}
.cfcls-btn:focus-visible,.cfcls-link:focus-visible,.cfcls input:focus-visible,.cfcls select:focus-visible,.cfcls textarea:focus-visible{outline:3px solid #f0b400;outline-offset:2px}
.cfcls-secondary{background:var(--cf-soft);color:var(--cf-ink);border:1px solid var(--cf-line)}.cfcls-secondary:hover{background:var(--cf-line);color:var(--cf-ink)}
.cfcls-danger{color:var(--cf-red)}.cfcls-btn.cfcls-danger{background:var(--cf-red);color:#fff}
.cfcls-big{font-size:1.15em;padding:.7em 1.4em}
.cfcls-live{background:#c2410c}.cfcls-live:hover{background:#9a3412}
.cfcls-link{background:none;border:0;padding:0;color:var(--cf-blue);text-decoration:underline;cursor:pointer;font:inherit}
.cfcls-x{background:none;border:0;font-size:1.3em;line-height:1;cursor:pointer;color:var(--cf-muted);padding:0 .3em}
.cfcls-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.cfcls-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;align-items:end}
.cfcls label{display:block;font-weight:600}.cfcls label.cfcls-check{display:inline-flex;gap:.4em;align-items:center;font-weight:400}
.cfcls input:not([type=checkbox]):not([type=radio]),.cfcls select,.cfcls textarea{display:block;width:100%;max-width:100%;font:inherit;font-weight:400;padding:.45em .6em;border:1px solid #9aa7a0;border-radius:8px;background:var(--cf-bg);color:var(--cf-ink);margin-top:3px}
.cfcls .cfcls-row input:not([type=checkbox]){width:auto;display:inline-block}
.cfcls-mono{font-family:ui-monospace,Menlo,Consolas,monospace!important;font-size:.85em!important}
.cfcls-file{position:relative}
.cfcls-tabs{display:flex;gap:6px;border-bottom:2px solid var(--cf-line);margin-bottom:10px}
.cfcls-tabs button{background:none;border:0;padding:.6em 1em;font:inherit;font-weight:600;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;color:var(--cf-ink)}
.cfcls-tabs button.on{border-color:var(--cf-green);color:var(--cf-green)}
.cfcls-alert{background:#fdecea;color:#7a1d16;border-radius:8px;padding:.6em .8em}
.cfcls-okmsg{background:#e6f4ea;color:#1f5a37;border-radius:8px;padding:.6em .8em}
.cfcls-list{list-style:none;padding:0;margin:0}.cfcls-list li{padding:.5em 0;border-bottom:1px solid var(--cf-line)}
.cfcls-archived{opacity:.65}
.cfcls-code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--cf-soft);border:1px solid var(--cf-line);border-radius:6px;padding:.05em .4em;letter-spacing:.08em;font-weight:700}
.cfcls-code-big{font-size:1.5em}
.cfcls-table{border-collapse:collapse;width:100%;font-size:.95em}
.cfcls-table th,.cfcls-table td{border-bottom:1px solid var(--cf-line);padding:.4em .5em;text-align:left;vertical-align:middle}
.cfcls-gridwrap{overflow-x:auto;max-width:100%}
.cfcls-grid td,.cfcls-grid th{white-space:nowrap}.cfcls-grid td{text-align:center}.cfcls-grid td:nth-child(2){text-align:left}
.cfcls-grid tr.cfcls-hl{background:var(--cf-amber-bg);box-shadow:inset 4px 0 0 #e08a00}
.cfcls-cur{outline:2px solid var(--cf-blue);outline-offset:-3px;border-radius:4px}
.cfcls-ok{color:#1f7a3f;font-weight:700}.cfcls-no{color:var(--cf-red);font-weight:700}.cfcls-up{color:#1f7a3f;font-weight:700}.cfcls-down{color:var(--cf-red);font-weight:700}
.cfcls-tag{display:inline-block;font-size:.8em;padding:.05em .45em;border-radius:99px;background:var(--cf-soft);border:1px solid var(--cf-line)}
.cfcls-tag-ok{background:#e6f4ea}.cfcls-tag-help{background:#fdecea;color:#7a1d16}.cfcls-tag-away{background:#e8eefb;color:#1e3f7a}.cfcls-tag-al{background:var(--cf-amber-bg);color:var(--cf-amber)}
.cfcls-livebar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;background:var(--cf-soft);border-radius:12px;padding:10px 14px;margin:8px 0}
.cfcls-timer{font-variant-numeric:tabular-nums;font-weight:700}
.cfcls-alerts ul{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cfcls-al{background:var(--cf-amber-bg);color:var(--cf-amber);border-radius:8px;padding:.35em .6em;border-left:4px solid #e08a00}
.cfcls-al-8{background:#fdecea;color:#7a1d16;border-color:var(--cf-red)}
.cfcls-livegrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
@media (max-width:1000px){.cfcls-livegrid{grid-template-columns:1fr}}
.cfcls-inbox{list-style:none;padding:0;margin:8px 0 0;max-height:420px;overflow:auto}
.cfcls-inbox li{padding:.4em 0;border-bottom:1px solid var(--cf-line);font-size:.95em}
.cfcls-from-p{}.cfcls-from-t{color:var(--cf-muted)}.cfcls-kept{font-weight:700;color:var(--cf-red)}
.cfcls-quick{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.cfcls-dots{display:flex;flex-wrap:wrap;gap:4px}.cfcls-dot{display:inline-block;min-width:1.7em;text-align:center;border:1px solid var(--cf-line);border-radius:6px;font-size:.85em}
.cfcls-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 14px}
.cfcls-bar{display:block;height:6px;background:var(--cf-line);border-radius:3px;margin-top:3px}.cfcls-bar span{display:block;height:6px;background:var(--cf-green);border-radius:3px}
.cfcls-preview{max-width:720px}

/* Pupil page (served on its own, no theme) */
.cfcls-pupil-body{margin:0;background:var(--cf-soft,#f3f7f4);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.cfcls-pupil-body .cfcls{max-width:860px;margin:0 auto;padding:12px 16px 40px;font-size:18px}
.cfcls-pupil-card{background:var(--cf-bg);border-radius:16px;padding:22px;margin:24px auto;max-width:460px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.cfcls-pupil-card label{margin:12px 0}.cfcls-pupil-card input{font-size:1.1em!important;padding:.6em!important}
.cfcls-brand{font-weight:800;color:var(--cf-green);font-size:1.3em}.cfcls-brand span{color:var(--cf-ink);font-weight:600}
.cfcls-pbar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;padding:8px 0}
.cfcls-pbar-actions{display:flex;gap:8px}
.cfcls-note{background:#e8eefb;color:#1e3f7a;border-radius:10px;padding:.7em 1em;margin:8px 0;font-weight:600}
.cfcls-ask{background:var(--cf-bg);border:2px solid var(--cf-green);border-radius:14px;padding:14px;margin:10px 0}
.cfcls-thread{list-style:none;padding:0;margin:10px 0 0}.cfcls-thread li{padding:.3em 0}

/* Built-in player */
.cfp{max-width:760px}
.cfp-progress{height:10px;background:var(--cf-line,#d7dfda);border-radius:6px;overflow:hidden}.cfp-progress span{display:block;height:100%;background:var(--cf-green,#2f7d4f)}
.cfp-count{color:var(--cf-muted,#5b6660);margin:.4em 0}
.cfp-card{background:var(--cf-bg,#fff);border-radius:14px;padding:18px;box-shadow:0 1px 6px rgba(0,0,0,.06);margin:8px 0}
.cfp-card h2{font-size:1.3em;margin:0 0 .6em}.cfp-card h2 p{margin:0}
.cfp-card img{max-width:100%;height:auto;border-radius:10px}
.cfp-opt{display:flex!important;gap:.6em;align-items:center;font-weight:400!important;border:2px solid var(--cf-line,#d7dfda);border-radius:10px;padding:.6em .8em;margin:6px 0;cursor:pointer}
.cfp-opt:has(input:checked){border-color:var(--cf-green,#2f7d4f);background:var(--cf-soft,#f3f7f4)}
.cfp-opt input{width:1.2em;height:1.2em}
.cfp-order{padding-left:1.4em}.cfp-order li{display:flex;gap:6px;align-items:center;margin:6px 0}.cfp-order li span{flex:1;border:1px solid var(--cf-line,#d7dfda);border-radius:8px;padding:.4em .6em}
.cfp-mini{border:1px solid var(--cf-line,#d7dfda);background:var(--cf-soft,#f3f7f4);border-radius:6px;font-size:1em;width:2.2em;height:2.2em;cursor:pointer;color:inherit}
.cfp-match{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;margin:6px 0}
.cfp-text{font-size:1.05em}
.cfp-nav{display:flex;gap:10px;justify-content:space-between;margin:10px 0}
.cfp-btn{border:0;border-radius:10px;background:var(--cf-green,#2f7d4f);color:#fff;padding:.7em 1.3em;font:inherit;font-weight:700;cursor:pointer}
.cfp-btn:disabled{opacity:.45;cursor:not-allowed}.cfp-secondary{background:var(--cf-soft,#f3f7f4);color:var(--cf-ink,#1d2421);border:1px solid var(--cf-line,#d7dfda)}
.cfp-feedback{margin-top:10px}.cfp-ok{color:#1f7a3f;font-weight:700}.cfp-no{color:var(--cf-red,#b3261e);font-weight:700}
.cfp-static .cfp-card{box-shadow:none;border:1px solid var(--cf-line,#d7dfda);padding:10px}
.cfp-static-opts li.cfp-chosen{font-weight:700}
.cfp-draft{border:1px dashed var(--cf-blue,#1e5aa8);border-radius:8px;padding:.4em .6em;white-space:pre-wrap}

/* Login cards print from their own frame (teacher.js printCards). */
/* 1.1.0 Progress and reports */
.cfrep-sub{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.cfrep-sub button{font:inherit;font-weight:600;border:1px solid var(--cf-line);background:var(--cf-soft);color:var(--cf-ink);border-radius:99px;padding:.35em 1em;cursor:pointer}
.cfrep-sub button[aria-pressed=true]{background:var(--cf-green);border-color:var(--cf-green);color:#fff}
.cfrep-card{border:1px solid var(--cf-line);border-left:5px solid #c9d3cd;border-radius:12px;padding:12px 16px;margin:12px 0;background:var(--cf-bg)}
.cfrep-card.cfrep-draft{border-left-color:#e08a00}.cfrep-card.cfrep-approved{border-left-color:var(--cf-green)}
.cfrep-card textarea{margin-bottom:8px}
.cfrep-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.cfrep-head h3{margin:0}
.cfrep-pill{font-size:.8em;font-weight:700;padding:.1em .6em;border-radius:99px;background:var(--cf-soft);border:1px solid var(--cf-line)}
.cfrep-draft .cfrep-pill{background:var(--cf-amber-bg);color:var(--cf-amber)}.cfrep-approved .cfrep-pill{background:#e6f4ea;color:#1f5a37}
.cfrep-pron{margin-left:auto;font-weight:400!important;font-size:.9em}.cfrep-pron select{display:inline-block!important;width:auto!important;margin-left:.3em}
.cfrep-facts{margin:.4em 0;color:var(--cf-muted)}.cfrep-chips{margin:.3em 0 .6em}
.cfrep-heat th,.cfrep-heat td{text-align:center;white-space:nowrap;padding:.3em .45em}.cfrep-heat tbody th,.cfrep-heat tfoot th{text-align:left}
.cfrep-heat thead th span{display:inline-block;font-size:.8em;max-width:9em;white-space:normal;line-height:1.2}.cfrep-heat thead th:first-child{text-align:left;vertical-align:bottom}.cfrep-heat thead th{vertical-align:bottom}
.cfrep-h-s{background:#cfe9d6;color:#14532d;font-weight:700}.cfrep-h-d{background:#ffe8b3;color:#6b4400;font-weight:700}.cfrep-h-n{background:#f8d0cc;color:#7a1d16;font-weight:700}.cfrep-h-x{color:var(--cf-muted)}
.cfrep-legend span{display:inline-block;min-width:1.6em;text-align:center;border-radius:4px;margin:0 .2em 0 .8em}
.cfrep-reteach li{margin:.6em 0}.cfrep-reteach .cfcls-row{gap:4px 14px;margin-top:.2em}
