.tpl-head{padding-block:var(--sp-5) var(--sp-3)}.tpl-head h1{font-size:var(--fs-2xl);margin-bottom:var(--sp-2)}.tpl-head .row{margin-bottom:var(--sp-2)}.tpl-app{margin-bottom:var(--sp-6)}.tpl-loading{padding:var(--sp-6) 0}.tpl-bar{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);align-items:flex-end;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.tpl-options{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4)}.tpl-options .opt{display:flex;flex-direction:column;gap:4px}.opt-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-2)}.tpl-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.save-state{min-width:9ch}.tpl-grid{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1fr);align-items:start}@media(min-width:900px){.tpl-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr)}}.tpl-form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.tpl-form .collapse{box-shadow:none}.tpl-form .collapse>.collapse-body{color:var(--text)}.tpl-form .fields{display:flex;flex-wrap:wrap;gap:0 var(--sp-3)}.tpl-form .fields>.field{flex:1 1 100%}.tpl-form .fields>.field.half{flex:1 1 calc(50% - var(--sp-3));min-width:140px}.tpl-preview{position:sticky;top:calc(var(--header-h) + 12px);display:flex;flex-direction:column;gap:var(--sp-3)}.tpl-pages{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);min-width:0;padding:var(--sp-3);background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--border);max-height:calc(100dvh - var(--header-h) - 120px);overflow:auto}.tpl-pages .pg{position:relative;flex:none;box-shadow:var(--sh-2);border-radius:4px;overflow:hidden;background:#fff}.tpl-pages .pg>.eq-page{position:absolute;top:0;left:0;transform-origin:0 0}.tpl-measure{position:absolute;left:-30000px;top:0;width:1200px;visibility:hidden;pointer-events:none}.tpl-tabs{display:flex;margin-bottom:var(--sp-3);position:sticky;top:var(--header-h);z-index:20;background:var(--bg)}.tpl-tabs button{flex:1}@media(min-width:900px){.tpl-tabs{display:none}}@media(max-width:899px){.tpl-app[data-tab=form] .tpl-preview,.tpl-app[data-tab=preview] .tpl-form-panel{display:none}.tpl-preview{position:static}.tpl-pages{max-height:none;padding:var(--sp-2)}}.tpl-actionbar{position:sticky;bottom:calc(var(--bottom-h) + 8px);z-index:30;margin-top:var(--sp-4);display:flex;justify-content:center}@media(min-width:900px){.tpl-actionbar{bottom:12px}}.tpl-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border);border-radius:var(--r-xl);padding:8px;box-shadow:var(--sh-3)}@media(max-width:480px){.tpl-actions .btn{padding-inline:12px}.tpl-actions .btn-ghost span{display:none}}.img-field{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.img-field>img{max-height:140px;border-radius:var(--r-md);border:1px solid var(--border);background:repeating-conic-gradient(#eef1f5 0 25%,#fff 0 50%) 50% / 16px 16px}.img-field .logo-prev{max-height:90px}.sig-field>img{max-height:80px;padding:6px}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-bottom:8px}.thumb{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb-x{position:absolute;top:4px;inset-inline-end:4px;width:28px;height:28px;border-radius:50%;border:0;background:#0a1428b3;color:#fff;display:grid;place-items:center}.thumb-x .icon{width:16px;height:16px}.tbl-field{display:flex;flex-direction:column;gap:8px}.tbl-row{border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;background:var(--surface-2)}.tbl-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.tbl-row-head .icon-btn{width:34px;height:34px}.tbl-cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 8px}.tbl-cell{display:flex;flex-direction:column;gap:2px}.tbl-cell .input,.tbl-cell .select{min-height:40px;padding:6px 10px}.tpl-info{margin-top:var(--sp-6)}.tpl-info ul{columns:2 220px}#eq-print{display:none}@media print{html.eq-printing body>*:not(#eq-print){display:none!important}html.eq-printing body{padding:0!important;margin:0!important;background:#fff!important}html.eq-printing #eq-print{display:block}html.eq-printing #eq-print .eq-page{break-after:page;page-break-after:always;margin:0;box-shadow:none}html.eq-printing #eq-print .eq-page:last-child{break-after:auto;page-break-after:auto}}.fill-page{padding:var(--sp-4) 0 var(--sp-7);min-height:100dvh;background:var(--grad-soft)}.fill-brand{display:flex;align-items:center;gap:8px;margin-bottom:var(--sp-4);color:var(--primary)}.fill-fixed{display:grid;gap:var(--sp-3);background:var(--surface-2)}body:has(.fill-page){padding-bottom:0}.family-thread{max-height:360px;overflow-y:auto}.msg{padding:var(--sp-3);border-radius:var(--r-md);max-width:85%}.msg-them{background:var(--surface-2);align-self:flex-start}.msg-me{background:color-mix(in srgb,var(--accent) 14%,var(--surface));align-self:flex-end}.fam-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-3)}.fam-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:grid;gap:2px}.fam-stat b{font-size:var(--fs-lg)}.upload-out canvas{width:min(100%,240px);display:block;margin:0 auto}.demo-banner{display:flex;gap:var(--sp-2);align-items:center}.tool-locked{max-width:560px;margin-inline:auto}.tool-app .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-3)}.tool-app .kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.tool-app .kpi b{display:block;font-size:var(--fs-xl)}.chart{width:100%;height:auto;display:block}.class-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-height:420px}.class-stage:fullscreen{background:var(--bg);border:0;border-radius:0;min-height:100vh}.class-fs{position:absolute;top:var(--sp-3);inset-inline-end:var(--sp-3)}.class-big{font-size:clamp(2rem,6vw,5rem);font-weight:700;text-align:center;min-height:1.3em}.class-stage:fullscreen .class-big{font-size:clamp(3rem,10vw,9rem)}.wheel-canvas{width:min(100%,520px);aspect-ratio:1;height:auto}.class-stage:fullscreen .wheel-canvas{width:min(70vh,90vw)}.board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4);width:100%}.board-team{border:4px solid;border-radius:var(--r-lg);padding:var(--sp-4);text-align:center;background:var(--surface);transition:transform .2s}.board-team.lead{transform:scale(1.03);box-shadow:var(--shadow-md, 0 8px 24px rgba(0,0,0,.12))}.board-name{width:100%;border:0;background:transparent;text-align:center;font-size:var(--fs-xl);font-weight:700;color:inherit}.board-score{font-size:clamp(3rem,9vw,8rem);font-weight:800;line-height:1.1}.timer-digits{font-size:clamp(4rem,16vw,14rem);font-weight:800;font-variant-numeric:tabular-nums;direction:ltr;line-height:1}.timer-digits.warn{color:#e67e22}.timer-digits.done{color:#e74c3c;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.3}}.class-stage .progress{width:min(100%,700px)}.noise-level{font-size:clamp(3rem,12vw,10rem);font-weight:800;font-variant-numeric:tabular-nums}.noise-gauge{width:min(100%,700px);height:28px;border-radius:99px;background:var(--surface-2);overflow:hidden}.noise-gauge>span{display:block;height:100%;width:0;background:#2fb59a;transition:width .1s}.noise-gauge[data-state=mid]>span{background:#f29f3d}.noise-gauge[data-state=high]>span{background:#e74c3c}.letters-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:min(100%,560px)}.class-stage:fullscreen .letters-grid{width:min(80vh,90vw)}.letter-cell{aspect-ratio:1;border-radius:14px;border:2px solid var(--border);background:var(--surface-2);font-size:clamp(1.4rem,5vw,3rem);font-weight:700;cursor:pointer;color:var(--text)}@media(prefers-reduced-motion:reduce){.timer-digits.done{animation:none}.board-team{transition:none}}.ai-row{display:flex;gap:6px;align-items:center;margin-top:6px}.ai-btn{color:var(--accent-700, #19735e);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.ai-btn.loading{opacity:.7}.ai-more{width:auto;min-height:32px;padding-block:2px;font-size:var(--fs-sm)}:root{--viz-1: #2a78d6;--viz-2: #eb6834;--viz-grid: #e1e0d9}:root[data-theme=dark]{--viz-1: #3987e5;--viz-2: #d95926;--viz-grid: #2c2c2a}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--viz-1: #3987e5;--viz-2: #d95926;--viz-grid: #2c2c2a}}.viz{display:grid;gap:var(--sp-2)}.viz svg{width:100%;height:auto;overflow:visible}.viz .grid-line{stroke:var(--viz-grid);stroke-width:1}.viz text{fill:var(--text-2);font-size:12px;font-family:inherit}.viz text.val{fill:var(--text);font-weight:600}.viz .bar{transition:opacity .15s}.viz .bar:hover,.viz .bar:focus{opacity:.8;outline:none}.viz-legend{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-2)}.viz-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:6px;vertical-align:-1px}.viz-tip{position:fixed;z-index:50;pointer-events:none;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:var(--fs-sm);box-shadow:0 6px 18px #0000001f}@media print{.viz .bar{fill-opacity:1}.viz-tip{display:none}}.mw-list{display:grid;gap:4px}.mw-row{display:grid;grid-template-columns:28px 1fr auto auto;gap:var(--sp-2);align-items:center;padding:6px 8px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}.mw-name{min-width:0;overflow-wrap:anywhere}.mw-btns{display:flex;gap:4px}.mw-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);font-weight:700;cursor:pointer}.mw-btn[aria-pressed=true].st-present{background:#0d7a4f;border-color:#0d7a4f;color:#fff}.mw-btn[aria-pressed=true].st-absent{background:#c0392b;border-color:#c0392b;color:#fff}.mw-btn[aria-pressed=true].st-late{background:#b26b00;border-color:#b26b00;color:#fff}.mw-btn[aria-pressed=true].st-excused{background:#2c5aa0;border-color:#2c5aa0;color:#fff}.badge.st-present{background:#e3f4ec;color:#0b5e3d}.badge.st-absent{background:#fbe4e1;color:#8e2a20}.badge.st-late{background:#fdf0d9;color:#7a4a00}.badge.st-excused{background:#e2ebf8;color:#1f3f72}.mw-counts{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:480px){.mw-row{grid-template-columns:22px 1fr}.mw-btns,.mw-wa{grid-column:1 / -1}.mw-btn{flex:1}}.impact-layout{display:grid;grid-template-columns:220px 1fr;gap:var(--sp-4);align-items:start}@media(max-width:860px){.impact-layout{grid-template-columns:1fr}}.tt-grid td{min-width:90px;text-align:center;vertical-align:middle}.tt-grid td.tt-picked{outline:3px solid var(--viz-1);outline-offset:-3px}.tt-cell{width:34px;height:30px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer}.tt-cell[aria-pressed=true]{background:#c0392b;color:#fff;border-color:#c0392b}html.scr-mode,html.scr-mode body{background:#0f1f3a;color:#fff}html.scr-mode .scr-page{background:none;min-height:100dvh}.scr-clock small{font-size:.28em;font-weight:600;color:#b9c7e0}.scr{min-height:92dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vh;text-align:center;color:#fff}.scr-head{display:grid;gap:4px}.scr-school{font-size:clamp(1.4rem,3.5vw,3rem)}.scr-dates{color:#b9c7e0;font-size:clamp(1rem,2vw,1.6rem)}.scr-clock{font-size:min(15vw,24vh);white-space:nowrap;display:flex;align-items:baseline;gap:.15em;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;direction:ltr}.scr-now{display:flex;gap:2vw;align-items:baseline;justify-content:center;flex-wrap:wrap;font-size:clamp(1.6rem,4.5vw,4rem)}.scr-label{color:#7fd8bd;font-size:.6em}.scr-left{color:#f2c46d;font-variant-numeric:tabular-nums;font-size:.8em}.scr-next{color:#b9c7e0;font-size:clamp(1rem,2.4vw,2rem)}.scr-notice{max-width:90vw;background:#ffffff14;border-radius:18px;padding:2vh 3vw;font-size:min(3.4vw,5.5vh);min-height:1.4em}.scr-notice.fade{animation:scrfade .8s ease}@keyframes scrfade{0%{opacity:0;transform:translateY(8px)}}.scr-ticker{position:fixed;bottom:0;inset-inline:0;background:#2fb59a;color:#fff;overflow:hidden;white-space:nowrap;font-size:clamp(1rem,2.4vw,1.8rem);padding:1vh 0}.scr-ticker span{display:inline-block;padding-inline-start:100%;animation:scrtick 22s linear infinite}@keyframes scrtick{to{transform:translate(100%)}}.scr-sound{position:fixed;top:12px;inset-inline-end:12px}@media(prefers-reduced-motion:reduce){.scr-ticker span{animation:none;padding:0 16px}.scr-notice.fade{animation:none}}.impact-layout>*{min-width:0}
