.ccs{--chalk-900:#0c4a6e;--chalk-800:#0e5a86;--chalk-700:#146a9c;--chalk-line:#ffffff24;--cream:#f3fbff;--ink:#444545;--border:#e5e7eb;--muted-fg:#6b7280;--red:#ef4444;--yellow:#ffc547;--blue:#48c3ff;--green:#22c55e;--purple:#8b5cf6;--pink:#d946ef;--radius-lg:18px;--radius-md:14px;--radius-sm:10px;--hub-bg:linear-gradient(135deg, #ffd27a 0%, #ffb27a 45%, #ff8a7a 100%);--hub-bg-solid:#ffb27a;--hub-on-bg:#3b2414;--hub-control-bg:#ffffffbf;--hub-control-fg:#3b2414}.dark .ccs{--hub-bg:linear-gradient(135deg, #7a3e2b 0%, #8a3f4f 55%, #5b3566 100%);--hub-bg-solid:#7a3e2b;--hub-on-bg:#fff4ea;--hub-control-bg:#00000040;--hub-control-fg:#fff4ea}.ccs,.ccs *{box-sizing:border-box}.ccs{width:100%;height:100vh;background-color:var(--hub-bg-solid);background-image:var(--hub-bg);height:100dvh;color:var(--ink);overscroll-behavior:none;margin:0;font-family:Inter,sans-serif;display:flex;overflow:hidden}.ccs h1,.ccs h2,.ccs h3,.ccs .display-font{font-family:Inter,sans-serif}.ccs.ccs-embedded{overscroll-behavior:auto;background:0 0;border:0;border-radius:0;height:auto;min-height:0;padding:0;display:block;overflow:visible}.dark .ccs.ccs-embedded{background:var(--cream);border-radius:var(--radius-lg);margin-left:-16px;margin-right:-16px;padding:16px}@media(min-width:768px){.dark .ccs.ccs-embedded{margin-left:-24px;margin-right:-24px;padding:24px}}.ccs .deck-groups{flex-direction:column;gap:16px;display:flex}.ccs .deck-group{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;padding:16px 18px 18px}.ccs .deck-group-title{color:var(--ink);margin:0 0 12px;font-size:16px;font-weight:700}.ccs .deck-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),240px));gap:12px;margin:0;padding:0;list-style:none;display:grid}.ccs .deck-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;flex-direction:column;gap:6px;padding:14px 16px 16px;display:flex}.ccs .deck-card:focus-within{border-color:var(--blue)}.ccs .deck-card-head{align-items:center;gap:8px;display:flex}.ccs .deck-card-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.ccs .deck-card-icons{gap:4px;display:flex}.ccs .deck-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--muted-fg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ccs .deck-icon-btn:hover{color:var(--ink);background:#f3f4f6}.ccs .deck-icon-btn-danger{color:var(--destructive)}.ccs .deck-icon-btn-danger:hover{background:color-mix(in srgb,var(--destructive) 12%,transparent);color:var(--destructive)}.ccs .deck-open-btn{text-align:center;margin:6px 0 8px;padding:12px 16px;font-size:16px;font-weight:600;text-decoration:none;display:block}.ccs .deck-link-input{box-sizing:border-box;width:100%}.ccs #content.deck-content{flex-direction:column;display:flex}.ccs .view.deck-library{flex-direction:column;flex:1;width:100%;display:flex}.ccs .deck-add-bar{justify-content:flex-end;margin-top:auto;padding-top:20px;display:flex}.ccs #main-wrap{flex-direction:column;flex:1;min-width:0;display:flex}.ccs #ccs-view-switch{z-index:600;align-items:center;gap:10px 14px;display:flex;position:fixed;top:24px;left:24px}.ccs #deck-close,.ccs #deck-board{width:40px;height:40px;color:var(--muted-fg);border:1.5px solid var(--border);background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex;box-shadow:0 4px 16px #00000024}.ccs #deck-close:hover,.ccs #deck-board:hover{background:var(--border);color:var(--ink)}.ccs #annotation-dock{z-index:600;align-items:center;gap:12px;display:flex;position:fixed;top:24px;right:24px}.ccs #annotation-dock>.ccs-dock-panel{z-index:601;margin-top:8px;position:absolute;top:100%;right:0}.ccs #annotation-dock .wb-draw-root{position:relative}.ccs #annotation-dock .wb-draw-scroll{max-height:calc(100dvh - 122px);overflow-y:auto}.ccs #annotation-dock .wb-tray-group{flex-direction:column}.ccs #annotation-dock .ccs-dock-panel.wb-color-row{z-index:601;grid-template-columns:repeat(2,40px);gap:10px;max-height:calc(100dvh - 100px);display:grid;position:absolute;top:-11px;right:calc(100% + 19px);overflow-y:auto}.ccs #toolbar-dock{z-index:600;align-items:flex-start;gap:12px;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}@media(max-width:599.98px){.ccs #toolbar-dock{top:88px}}.ccs #toolbar-dock>*{flex-direction:column;align-items:center;gap:12px;display:flex;position:relative}.ccs .ccs-fab{background:var(--chalk-900);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:52px;height:52px;transition:background .15s;display:flex;box-shadow:0 6px 20px #00000047}.ccs .ccs-fab,.ccs #deck-close,.ccs #deck-board,.ccs #ccs-view-switch button,.ccs #annotation-dock button,.ccs #toolbar-dock button,.ccs .ccs-dock-panel button{touch-action:manipulation}.ccs-locked #deck-close,.ccs-locked #deck-board,.ccs-locked #view-fab,.ccs-locked #toolbar-dock,.ccs-locked [data-lock-inert]{opacity:.35;pointer-events:none}.ccs-locked .slide-frame-wrap iframe{pointer-events:none}.ccs #lock-fab{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative}.ccs #lock-fab .lock-ring{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ccs .ccs-fab:hover{background:var(--chalk-700)}.ccs .ccs-fab.active{background:var(--blue)}.ccs .ccs-dock-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;padding:10px;box-shadow:0 6px 20px #0003}.ccs #toolbar-dock .ccs-dock-panel{z-index:601;margin-top:8px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.ccs .ccs-dock-list{flex-direction:column;gap:8px;display:flex}.ccs #content{background:var(--cream);overscroll-behavior:none;flex:1;min-height:0;padding:32px;overflow:auto}.ccs #content.ccs-fullbleed{padding:0}.ccs .view{max-width:1000px;margin:0 auto}.ccs .view-title{letter-spacing:-.01em;margin:0 0 20px;font-size:24px;font-weight:600}.ccs .sb-btn{cursor:pointer;color:#fff;border:1.5px solid #0000;border-radius:999px;flex:none;align-items:center;gap:8px;height:44px;padding:0 16px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;transition:transform .1s;display:flex}.ccs .sb-btn:active{transform:scale(.96)}.ccs .sb-btn .dot{background:#fff9;border-radius:50%;width:8px;height:8px}.ccs .card{border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;padding:24px;box-shadow:0 1px 2px #0000000a}.ccs label{color:var(--muted-fg);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.ccs input[type=text],.ccs input[type=number],.ccs input[type=url],.ccs textarea,.ccs select{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:#fff;width:100%;padding:9px 12px;font-family:Inter,sans-serif;font-size:15px}.ccs input:focus,.ccs textarea:focus,.ccs select:focus{border-color:var(--blue);outline:none}.ccs .btn{border-radius:var(--radius-sm);border:1.5px solid var(--border);cursor:pointer;background:#fff;padding:10px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:600}.ccs .btn:hover{background:#f3f4f6}.ccs .btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.ccs .btn.primary:hover{background:#0284c7;border-color:#0284c7}.ccs .row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ccs .field{margin-bottom:16px}.ccs .timer-stage{flex-direction:column;align-items:center;gap:28px;padding:20px 0;display:flex}.ccs .pie-wrap{justify-content:center;align-items:center;width:260px;height:260px;display:flex;position:relative}.ccs .pie-ring{width:100%;height:100%;transform:rotate(-90deg)}.ccs .pie-track{fill:none;stroke:#ecebe3;stroke-width:8px}.ccs .pie-progress{fill:none;stroke:var(--red);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.ccs .pie-readout{border-radius:50%;justify-content:center;align-items:center;width:210px;height:210px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ccs .time-readout{font-family:Inter,sans-serif;font-size:48px;font-weight:700}.ccs .bar-wrap{width:100%;max-width:520px}.ccs .bar-track{background:#ecebe3;border-radius:999px;width:100%;height:44px;overflow:hidden}.ccs .bar-fill{background:var(--red);width:100%;height:100%;transition:width .3s linear}.ccs .timer-flash .pie-readout,.ccs .timer-flash .bar-track{animation:.5s ease-in-out 3 ccsFlashRed}@keyframes ccsFlashRed{0%,to{background:#fff}50%{background:#ffd7d3}}.ccs .roster-list{flex-direction:column;gap:2px;max-height:260px;margin:4px 0;display:flex;overflow:auto}.ccs .roster-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 4px;display:flex}.ccs .roster-row:last-child{border-bottom:none}.ccs .roster-row-name{color:var(--ink);font-size:15px;font-weight:500}.ccs .roster-row-absent{color:var(--muted-fg);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:flex}.ccs .roster-row-absent input[type=checkbox]{cursor:pointer;width:16px;height:16px}.ccs .reveal-box{text-align:center;justify-content:center;align-items:center;min-height:160px;display:flex}.ccs .reveal-name{font-family:Inter,sans-serif;font-size:44px;font-weight:700}.ccs .groups-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:20px;display:grid}.ccs .group-card{border-radius:var(--radius-md);color:#fff;padding:16px}.ccs .group-card h3{margin:0 0 8px;font-size:18px}.ccs .group-card ul{margin:0;padding-left:18px;font-size:14px;line-height:1.7}.ccs .scoreboard-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.ccs .scoreboard-team{border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.ccs .scoreboard-team-name{text-align:center;overflow-wrap:break-word;width:100%;font-family:Inter,sans-serif;font-size:15px;font-weight:700}.ccs .scoreboard-score{color:#000;border-radius:var(--radius-sm);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;width:100%;padding:10px 4px;font-family:Inter,sans-serif;font-size:40px;font-weight:800;line-height:1.1}.ccs .scoreboard-score:active{background:#f3f4f6}.ccs .scoreboard-controls{gap:8px;width:100%;display:flex}.ccs .scoreboard-btn{border-radius:var(--radius-sm);color:#000;cursor:pointer;background:#ffffffd9;border:1.5px solid #00000026;flex:1;padding:6px 0;font-family:Inter,sans-serif;font-size:18px;font-weight:700}.ccs .scoreboard-btn:hover{background:#fff}.ccs .scoreboard-edit-grid{grid-template-columns:repeat(2,1fr);gap:10px 14px;display:grid}.ccs .scoreboard-edit-team{flex-direction:column;gap:6px;min-width:0;display:flex}.ccs .scoreboard-edit-team-row{align-items:center;gap:8px;display:flex}.ccs .scoreboard-edit-badge{background:var(--border);width:22px;height:22px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-family:Inter,sans-serif;font-size:12px;font-weight:700;display:flex}.ccs .scoreboard-edit-team-row input{flex:1;min-width:0;padding:6px 8px;font-size:13px}.ccs .scoreboard-edit-swatches{flex-wrap:nowrap;gap:4px;display:flex}.ccs .scoreboard-edit-swatch{cursor:pointer;border:2px solid var(--border);border-radius:50%;flex:none;width:22px;height:22px}.ccs .scoreboard-edit-swatch.selected{border-color:var(--ink);border-width:3px}.ccs .steps-strip{gap:12px;padding:9px 9px 11px;display:flex;overflow-x:auto}.ccs .steps-tile{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#fff;flex:none;width:88px;height:88px;padding:4px}.ccs .steps-tile img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.ccs .steps-tile.current{outline:4px solid var(--green);outline-offset:3px}.ccs .steps-controls{align-items:center;gap:10px;margin-top:12px;display:flex}.ccs .steps-icon-btn{justify-content:center;align-items:center;padding:6px 10px;display:inline-flex}.ccs .steps-icon-btn:disabled,.ccs .steps-picker-btn:disabled{opacity:.4;cursor:default}.ccs .steps-edit-list{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.ccs .steps-edit-row{align-items:center;gap:8px;display:flex}.ccs .steps-edit-thumb{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:8px;flex:none;width:44px;height:44px;margin-right:auto}.ccs .steps-picker{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;max-height:220px;padding:2px;display:grid;overflow:auto}.ccs .steps-picker-btn{aspect-ratio:1;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:3px}.ccs .steps-picker-btn:hover:not(:disabled){border-color:var(--blue)}.ccs .steps-picker-btn img{object-fit:contain;width:100%;height:100%;display:block}.ccs .steps-overlay{z-index:998;cursor:pointer;opacity:0;background:#0b1220;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.ccs .steps-overlay-strip{will-change:transform;flex:none;gap:4vmin;display:flex;position:relative}.ccs .steps-overlay-tile{border:1px solid var(--border);border-radius:var(--radius-lg);opacity:.6;will-change:transform,opacity;background:#fff;flex:none;width:42vmin;height:42vmin;padding:2vmin;transform:scale(.55)}.ccs .steps-overlay-tile img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.ccs .steps-overlay-countdown{pointer-events:none;flex-direction:column;align-items:center;gap:3vmin;width:42vmin;display:flex;position:absolute;top:calc(50% + 25vmin);left:50%;transform:translate(-50%)}.ccs .steps-overlay-readout{color:#fff;font-variant-numeric:tabular-nums;font-size:9vmin;font-weight:700;line-height:1}.ccs .steps-overlay-bar{background:#fff;border-radius:999px;width:100%;height:2.5vmin;overflow:hidden}.ccs .steps-overlay-bar-fill{background:var(--red);height:100%;transition:width 1s linear}.ccs .wb-view{flex-direction:column;max-width:none;height:100%;display:flex}.ccs .wb-stage{flex-direction:column;flex:1;min-height:0;display:flex}.ccs .wb-tray-group{align-items:center;gap:10px;display:flex}.ccs .wb-mode-btn,.ccs .wb-clear-btn{border-radius:var(--radius-sm);border:1.5px solid var(--border);width:40px;height:40px;color:var(--muted-fg);cursor:pointer;background:#fff;flex:none;justify-content:center;align-items:center;display:flex}.ccs .wb-mode-btn:hover{color:var(--ink);background:#f3f4f6}.ccs .wb-mode-btn.active{border-color:var(--blue);color:var(--blue);background:#eef8ff}.ccs .draw-color-dot{border:1.5px solid var(--border);border-radius:50%;width:18px;height:18px;display:block}.ccs .wb-clear-btn:hover{border-color:var(--red);color:var(--red);background:#fff1f0}.ccs .wb-drawing-layer{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.ccs .wb-canvas{border-radius:var(--radius-lg);border:1px solid var(--border);flex:1;min-height:0;position:relative;overflow:hidden}.ccs #content>.wb-view .wb-stage{background:var(--cream);justify-content:center;align-items:center;container-type:size}.ccs #content>.wb-view .wb-canvas{aspect-ratio:16/9;border:none;border-radius:0;flex:none;width:min(100cqw,177.778cqh)}.ccs .wb-page-panel{flex-direction:column;gap:14px;min-width:220px;display:flex}.ccs .wb-page-slider-row{align-items:center;gap:10px;display:flex}.ccs .wb-page-slider-label{color:var(--muted-fg);white-space:nowrap;font-size:13px;font-weight:600}.ccs .wb-page-slider-row input[type=range]{flex:1}.ccs .wb-page-slider-row input[type=range]:disabled{opacity:.4;cursor:not-allowed}.ccs .wb-page-dark-toggle{color:var(--ink);cursor:pointer;align-items:center;gap:8px;margin-bottom:0;font-size:14px;font-weight:600;display:flex}.ccs .wb-page-dark-toggle input[type=checkbox]{cursor:pointer;width:16px;height:16px;margin:0}.ccs .slide-frame-wrap{aspect-ratio:16/9;background:#000;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ccs .slide-frame-wrap iframe,.ccs .slide-frame-wrap img{object-fit:contain;border:none;width:100%;height:100%}.ccs .view.slides-present{flex-direction:column;max-width:none;height:100%;display:flex}.ccs .slide-stage{background:var(--cream);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;container-type:size}.ccs .slides-present .slide-frame-wrap{aspect-ratio:16/9;touch-action:none;flex:none;width:min(100cqw,177.778cqh)}.ccs .slide-empty{color:var(--muted-fg);font-size:14px}.ccs{--ws-pdf-w:clamp(420px, calc((100vh - 188px) * 210 / 297 + 88px), 42vw)}.ccs .view.worksheet-view{gap:16px;max-width:none;height:100%;padding-top:44px;display:flex}.ccs .ws-pdf-pane,.ccs .ws-board-pane{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.ccs .ws-pdf-pane{width:var(--ws-pdf-w);touch-action:pan-x pan-y;overscroll-behavior:contain;flex:none;position:relative;container-type:inline-size}.ccs .ws-board-pane{flex:1 1 0}.ccs .ws-board-bar{flex:none;display:flex}.ccs .ws-board-pane>.wb-view{flex:1;width:100%;min-height:0}@media(max-width:1099.98px){.ccs .ws-board-pane{display:none}.ccs .ws-pdf-pane{flex:auto;width:auto}}@media(min-width:1100px){.ccs #toolbar-dock.ws-board-dock{left:calc((100vw + var(--ws-pdf-w)) / 2 + 8px)}}.ccs .ws-board-dock .wb-tray-group{flex-wrap:wrap;justify-content:center;width:max-content;max-width:420px}.ccs .ws-nav{flex-wrap:nowrap;flex:none;align-items:center;gap:4px;height:40px;display:flex}.ccs .ws-select{border-radius:var(--radius-sm);border:1.5px solid var(--border);min-width:0;height:40px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;background:#fff;padding:0 8px;font-size:13px;overflow:hidden}.ccs .ws-select-book{flex:240px;min-width:72px;max-width:240px}.ccs .ws-select-page{flex:0 80px;min-width:64px}.ccs .ws-zoom-label{text-align:center;width:44px;color:var(--muted-fg);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:600}@container (width<=468px){.ccs .ws-zoom-label{display:none}}.ccs .ws-btn{border-radius:var(--radius-sm);border:1.5px solid var(--border);min-width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fff;flex:none;justify-content:center;align-items:center;padding:0 8px;font-size:13px;font-weight:600;display:flex}.ccs .ws-btn.active{border-color:var(--blue);color:var(--blue);background:#eef8ff}.ccs .ws-btn:disabled{opacity:.4;cursor:default}.ccs .ws-clear{width:56px;margin-left:auto}.ccs .ws-page-scroll{touch-action:pan-x pan-y;overscroll-behavior:contain;flex:1;min-height:0;display:flex;overflow:auto}.ccs .ws-page-wrap{background:#fff;flex:none;margin:auto;position:relative;box-shadow:0 1px 4px #00000026}.ccs .ws-page-canvas,.ccs .ws-ink-layer{width:100%;height:100%;display:block;position:absolute;inset:0}.ccs .ws-message{color:var(--muted-fg);margin:auto;font-size:14px}.ccs #overlay{z-index:999;flex-direction:column;justify-content:center;align-items:center;display:none;position:fixed;inset:0;overflow:hidden}.ccs #overlay.show{display:flex}.ccs #overlay-close{color:#fff;cursor:pointer;z-index:3;background:#00000040;border:none;border-radius:50%;width:38px;height:38px;font-size:18px;position:absolute;top:18px;right:22px}.ccs .ov-label{color:#fff;text-shadow:0 2px 10px #00000059;z-index:2;text-align:center;padding:0 24px;font-family:Inter,sans-serif;font-weight:700}.ccs .ov-label.big{font-size:56px}.ccs .ov-label.withvideo{margin-bottom:14px;font-size:26px}.ccs #ov-confetti-stage{position:absolute;inset:0}.ccs .confetti-piece{border-radius:2px;position:absolute}.ccs #ov-swipe{position:absolute;inset:0;transform:translate(-100%)}.ccs #ov-flash{opacity:0;background:#fff;position:absolute;inset:0}.ccs #overlay.windowed{background:#0a0e0ab8!important}.ccs #ov-yt-wrap{aspect-ratio:16/9;z-index:2;background:#000;border-radius:14px;width:min(90vw,1100px,142.222vh);overflow:hidden;box-shadow:0 20px 60px #0006}.ccs #ov-yt-inner{width:100%;height:100%}.ccs #ov-yt-wrap iframe{border:none;width:100%;height:100%;display:block}.ccs .modal-backdrop{z-index:700;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ccs .modal{border-radius:var(--radius-lg);background:#fff;width:420px;max-width:92vw;max-height:88vh;padding:24px;overflow:auto}.ccs .modal.modal-wide{background:var(--cream);width:96vw;max-width:96vw;height:92vh;max-height:92vh;position:relative}.ccs .modal-wide-close{z-index:1;border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted-fg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px}.ccs .modal-wide-close:hover{background:var(--border);color:var(--ink)}.ccs .modal h3{margin:0 0 16px}.ccs .color-swatches{flex-wrap:wrap;gap:8px;display:flex}.ccs .swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px}.ccs .swatch.selected{border-color:var(--ink)}.ccs .visual-opts,.ccs .audio-opts{flex-wrap:wrap;gap:8px;display:flex}.ccs .opt-pill{border:1.5px solid var(--border);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600}.ccs .opt-pill.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.ccs .modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.ccs .hint{color:var(--muted-fg);margin-top:4px;font-size:12px}.ccs .bt-view{max-width:none}.ccs .bt-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:20px;display:flex}.ccs .bt-class-name{letter-spacing:-.01em;margin:0;font-size:32px;font-weight:700}.ccs .bt-total{font-size:22px;font-weight:600}.ccs .bt-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.ccs .bt-card{border-radius:var(--radius-lg);border:1px solid var(--border);cursor:default;background:#fff;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;display:flex;position:relative;box-shadow:0 1px 2px #0000000a}.ccs .bt-emoji{font-size:48px;line-height:1}.ccs .bt-name{text-align:center;overflow-wrap:anywhere;font-size:15px;font-weight:600}.ccs .bt-num{color:var(--muted-fg);background:var(--cream);border-radius:var(--radius-sm);padding:1px 6px;font-size:11px;font-weight:500;position:absolute;top:8px;left:8px}.ccs .bt-points{text-align:center;min-width:36px;color:var(--ink);background:var(--yellow);border-radius:999px;padding:2px 12px;font-size:14px;font-weight:700}.ccs button.bt-card{font:inherit;color:inherit;cursor:pointer;transition:transform .1s,box-shadow .15s}.ccs button.bt-card:hover{box-shadow:0 4px 12px #0000001f}.ccs button.bt-card:active{transform:scale(.97)}.ccs .bt-award-modal{width:640px}.ccs .bt-award-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.ccs .bt-award-emoji{font-size:40px;line-height:1}.ccs .bt-award-titles{flex:1;min-width:0}.ccs .bt-award-titles h3{margin:0}.ccs .bt-reason-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.ccs .bt-reason{font:inherit;color:inherit;border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;background:#fff;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;display:flex;box-shadow:0 1px 2px #0000000a}.ccs button.bt-reason:hover:not(:disabled){background:var(--cream);border-color:var(--blue)}.ccs button.bt-reason:disabled{opacity:.5;cursor:default}.ccs .bt-reason-manage{cursor:default}.ccs .bt-reason-add{color:var(--muted-fg);border-style:dashed;justify-content:center}.ccs .bt-reason-emoji{font-size:34px;line-height:1}.ccs .bt-reason-label{text-align:center;overflow-wrap:anywhere;font-size:14px;font-weight:600}.ccs .bt-reason-points{background:var(--yellow);border-radius:999px;padding:1px 10px;font-size:12px;font-weight:700}.ccs .bt-reason-controls{align-items:center;gap:6px;margin-top:4px;display:flex}.ccs .bt-reason-confirm{font-size:12px;font-weight:600}.ccs .btn.bt-mini{padding:4px 10px;font-size:12px}.ccs .bt-emoji-input-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ccs input.bt-emoji-input{padding:4px 12px;font-size:28px}.ccs .bt-emoji-grid{flex-wrap:wrap;gap:6px;display:flex}.ccs .bt-emoji-opt{border-radius:var(--radius-sm);cursor:pointer;background:#fff;border:1.5px solid #0000;padding:6px;font-size:26px;line-height:1}.ccs .bt-emoji-opt:hover{background:var(--cream)}.ccs .bt-emoji-opt.selected{border-color:var(--blue)}.ccs .bt-header-right{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.ccs .bt-view-toggle{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;display:inline-flex;overflow:hidden}.ccs .bt-view-btn{color:var(--muted-fg);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-family:Inter,sans-serif;font-size:14px;font-weight:600}.ccs .bt-view-btn.active{background:var(--chalk-700);color:#fff}.ccs .bt-edit-toggle{border-radius:var(--radius-sm);border:1.5px solid var(--border);color:var(--muted-fg);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:8px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;display:inline-flex}.ccs .bt-edit-toggle:hover{color:var(--ink)}.ccs .bt-edit-toggle.active{border-color:var(--chalk-700);color:var(--chalk-700)}.ccs .bt-edit-hint{margin:-8px 0 16px}.ccs .bt-groups{flex-direction:column;gap:16px;display:flex}.ccs .bt-group-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.ccs .bt-group-card{font:inherit;color:inherit;text-align:left;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex;box-shadow:0 1px 2px #0000000a}.ccs button.bt-group-card{cursor:pointer;transition:transform .1s,box-shadow .15s}.ccs button.bt-group-card:hover:not(:disabled){box-shadow:0 4px 12px #0000001f}.ccs button.bt-group-card:active:not(:disabled){transform:scale(.98)}.ccs button.bt-group-card:disabled{opacity:.6;cursor:not-allowed}.ccs .bt-group-name{font-size:18px;font-weight:700}.ccs .bt-group-name-btn{color:inherit;text-align:left;cursor:text;background:0 0;border:none;padding:0;font-family:inherit}.ccs .bt-group-name-btn:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ccs input.bt-group-name-input{padding:2px 8px;font-size:18px;font-weight:700}.ccs .bt-chips{flex-wrap:wrap;gap:6px;display:flex}.ccs .bt-chip{background:var(--cream);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:13px}.ccs .bt-chips-empty{color:var(--muted-fg);font-size:13px}.ccs .bt-group-controls{align-items:center;gap:6px;margin-top:auto;display:flex}.ccs .bt-ungrouped{color:var(--muted-fg);font-size:13px}.ccs .bt-add-group-bar{justify-content:flex-end;display:flex}.ccs .bt-members-modal{width:480px}.ccs .bt-members-list{flex-direction:column;max-height:50vh;display:flex;overflow:auto}.ccs .bt-member-row{border-bottom:1px solid var(--border);color:var(--ink);cursor:pointer;align-items:center;gap:10px;margin:0;padding:8px 4px;font-size:15px;font-weight:500;display:flex}.ccs .bt-member-row:last-child{border-bottom:none}.ccs .bt-member-emoji{font-size:22px;line-height:1}.ccs .bt-num-inline,.ccs .bt-member-note{color:var(--muted-fg);font-size:12px}.ccs button.bt-card-edit{border:2px dashed var(--chalk-700)}.ccs button.bt-card-edit:after{content:"✎";color:#fff;background:var(--chalk-700);border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex;position:absolute;top:6px;right:8px}.ccs .bt-picker-modal{width:520px}.ccs .bt-picker-head{align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.ccs .bt-picker-head h3{margin:0}.ccs .bt-picker-actions .bt-picker-remove{color:var(--red);margin-right:auto}.ccs .bt-select-bar{border:1.5px solid var(--chalk-700);border-radius:var(--radius-md);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 16px;padding:10px 14px;display:flex}.ccs .bt-select-count{color:var(--ink);margin-right:auto;font-size:14px;font-weight:700}.ccs button.bt-card-select.selected{border-color:var(--chalk-700);box-shadow:0 0 0 3px var(--blue)}.ccs button.bt-card-select.selected:after{content:"✓";color:#fff;background:var(--chalk-700);border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:flex;position:absolute;top:6px;right:8px}.ccs .ss-page{max-width:1000px;margin:0 auto}.ccs .ss-toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.ccs .ss-heading{color:var(--muted-fg);margin:20px 0 10px;font-size:15px;font-weight:600}.ccs .ss-status{color:var(--muted-fg);margin:24px 0}.ccs .ss-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}@media(max-width:480px){.ccs .ss-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:300px){.ccs .ss-grid{grid-template-columns:minmax(0,1fr)}}.ccs .ss-add-row{margin-top:12px}.ccs .ss-card-wrap{position:relative}.ccs .ss-card{aspect-ratio:1;border-radius:var(--radius-lg);cursor:pointer;color:#fff;text-align:center;text-shadow:0 1px 4px #00000073;border:1.5px solid #0000;justify-content:center;align-items:center;width:100%;padding:14px;font-family:Inter,sans-serif;font-size:16px;font-weight:600;transition:transform .1s;display:flex;position:relative}.ccs .ss-card:active{transform:scale(.96)}.ccs .ss-card.edit-mode{opacity:.92}.ccs .ss-card .dot{background:#fff9;border-radius:50%;width:8px;height:8px;position:absolute;top:12px;left:12px}.ccs .ss-label{overflow-wrap:anywhere}.ccs .ss-audio{opacity:.85;position:absolute;bottom:10px;right:10px}.ccs .ss-del{color:#fff;cursor:pointer;background:#00000059;border:none;border-radius:50%;width:28px;height:28px;font-size:18px;line-height:1;position:absolute;top:6px;right:6px}.ccs .ss-card.ss-add{border:1.5px dashed var(--muted-fg);color:var(--muted-fg);text-shadow:none;background:0 0;font-size:32px}.ccs.ss-route .ov-label.big{overflow-wrap:anywhere;font-size:clamp(32px,12vw,56px)}.ccs.board-root{--board-gap:12px;--board-bar-min:72px;flex-direction:column;position:relative}.ccs .board-bar{height:var(--board-bar-min);flex:none;align-items:center;gap:14px;padding:0 12px;display:flex;position:relative}.ccs .board-bar-spacer{flex:1;min-width:0}.ccs .quick-bar{left:50%;top:calc(var(--board-bar-min) / 2);z-index:1;gap:8px;height:44px;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.ccs .quick-bar-btn{background:var(--hub-control-bg);min-width:44px;height:44px;color:var(--hub-control-fg);cursor:pointer;touch-action:manipulation;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0;font-family:inherit;font-size:16px;font-weight:700;display:inline-flex;position:relative;box-shadow:0 2px 8px #0000002e}.ccs .quick-bar-btn.active{background:var(--blue);color:var(--ink);padding:0 18px 0 14px}.ccs .quick-bar-icon{font-size:24px;line-height:1}.ccs .quick-bar-label{background:var(--ink);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;border-radius:999px;padding:4px 12px;font-size:14px;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.ccs .quick-bar-btn.active .quick-bar-label{color:inherit;opacity:1;background:0 0;padding:0;font-size:16px;position:static;transform:none}.ccs .quick-bar-btn:focus-visible .quick-bar-label{opacity:1}.ccs .quick-bar-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media(hover:hover)and (pointer:fine){.ccs .quick-bar-btn:hover .quick-bar-label{opacity:1}}@media(prefers-reduced-motion:reduce){.ccs .quick-bar-label{transition:none}}@media(max-width:599.98px){.ccs .quick-bar-btn.active{padding:0}.ccs .quick-bar-btn.active .quick-bar-label{display:none}}.ccs .board-body{flex:none;padding:0 12px 12px;container-type:inline-size}.ccs .board-grid{--board-w:min(100cqw, calc(2 * (100dvh - var(--board-bar-min) - 12px) + var(--board-gap)));width:var(--board-w);height:calc(var(--board-w) / 2 - var(--board-gap) / 2);gap:var(--board-gap);grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));margin:0 auto;display:grid}.ccs .board-tile{grid-column:var(--col) / span var(--cs);grid-row:var(--row) / span var(--rs);border-radius:var(--radius-lg);min-width:0;min-height:0;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:inherit;transition:transform .12s;display:flex;box-shadow:0 6px 20px #00000038}.ccs .board-tile:active{transform:scale(.98)}.ccs .board-tile-icon{font-size:clamp(40px,9vmin,110px);line-height:1}.ccs .board-tile-label{text-align:center;overflow-wrap:break-word;max-width:100%;font-size:clamp(18px,3vmin,40px);font-weight:700;line-height:1.15}.ccs .board-tile[data-size=S]{gap:0;padding:6%;overflow:hidden;container-type:size}.ccs .board-tile[data-size=S] .board-tile-icon{font-size:40cqh}.ccs .board-tile[data-size=S] .board-tile-label{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:4cqh;font-size:clamp(11px,13cqh,28px);display:-webkit-box;overflow:hidden}.ccs .board-tile[data-size=L]{padding:4%;overflow:hidden;container-type:size}.ccs .board-timer-face{place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid}.ccs .btf-ring,.ccs .btf-digits{grid-area:1/1}.ccs .btf-ring{border-radius:50%;width:84cqmin;height:84cqmin}.ccs .btf-ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.ccs .btf-track{fill:none;stroke:#ecebe3;stroke-width:8px}.ccs .btf-progress{fill:none;stroke:var(--red);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ccs .btf-digits{font-variant-numeric:tabular-nums;white-space:nowrap;font-family:Inter,sans-serif;font-size:19cqmin;font-weight:700;line-height:1}.ccs .board-timer-face[data-mode=bar]{grid-template-rows:auto auto;align-content:center;justify-items:stretch;row-gap:8cqmin}.ccs .board-timer-face[data-mode=bar] .btf-digits{grid-area:auto;justify-self:center;font-size:24cqmin}.ccs .btf-bar{background:#ecebe3;border-radius:999px;height:12cqmin;overflow:hidden}.ccs .btf-bar-fill{background:var(--red);height:100%;transition:width 1s linear;display:block}@container (aspect-ratio>=3/2){.ccs .board-timer-face[data-mode=pie]{justify-content:center;align-items:center;gap:6cqh;display:flex}.ccs .board-timer-face[data-mode=pie] .btf-ring{flex:none;width:88cqh;height:88cqh}.ccs .board-timer-face[data-mode=pie] .btf-digits{font-size:36cqh}.ccs .board-timer-face[data-mode=bar]{row-gap:6cqh}.ccs .board-timer-face[data-mode=bar] .btf-digits{font-size:40cqh}.ccs .btf-bar{height:16cqh}}.ccs .board-timer-face.alert .btf-ring,.ccs .board-timer-face.alert .btf-digits,.ccs .board-timer-face.alert .btf-bar{animation:.5s ease-in-out 3 ccsFlashRed}.ccs .board-tile[data-size=B]{padding:1% 3%;overflow:hidden;container-type:size}.ccs .board-steps-face{justify-content:space-between;align-items:center;gap:4cqw;width:100%;min-width:0;display:flex}.ccs .bsf-now,.ccs .bsf-next-group,.ccs .bsf-next{align-items:center;min-width:0;display:flex}.ccs .bsf-now{gap:3cqh}.ccs .bsf-now img{object-fit:contain;flex:none;width:68cqh;height:68cqh}.ccs .bsf-now .bsf-label{font-size:30cqh;font-weight:800}.ccs .bsf-next-group{opacity:.6;flex:0 auto;gap:3cqh}.ccs .bsf-arrow{flex:none;width:24cqh;height:24cqh}.ccs .bsf-next{gap:2cqh}.ccs .bsf-next img{object-fit:contain;flex:none;width:34cqh;height:34cqh}.ccs .bsf-next .bsf-label{font-size:15cqh;font-weight:700}.ccs .bsf-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.2;overflow:hidden}@container (width<=560px){.ccs .bsf-next .bsf-label{display:none}.ccs .bsf-now .bsf-label{font-size:24cqh}}.ccs .board-tile-value:empty{display:none}.ccs .board-message{min-height:50dvh;color:var(--hub-on-bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:20px;display:flex}.ccs .board-message p{margin:0}.ccs .board-link{color:var(--hub-on-bg);text-decoration:underline}.ccs .board-shell{z-index:700;background-color:var(--hub-bg-solid);background-image:var(--hub-bg);color:var(--hub-on-bg);flex-direction:column;display:flex;position:fixed;inset:0}.ccs .board-shell-header{height:var(--board-bar-min);flex:none;align-items:center;gap:16px;padding:0 20px;display:flex;position:relative}.ccs .board-shell-icon{font-size:44px;line-height:1}.ccs .board-shell-head-left,.ccs .board-shell-head-right{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.ccs .board-shell-head-right{justify-content:flex-end}.ccs .board-shell-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:clamp(24px,4vmin,44px);font-weight:700;overflow:hidden}.ccs .board-shell.quick-overlay{z-index:710}.ccs .board-shell-body{opacity:.85;flex:1;justify-content:center;align-items:center;min-height:0;font-size:22px;display:flex}@media(max-width:599.98px){.ccs.board-root{height:auto;min-height:100dvh;display:block;overflow:visible}.ccs .board-bar{padding-top:12px}.ccs .board-body{container-type:normal}.ccs .board-grid{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;width:auto;height:auto}.ccs .board-tile{grid-column:span var(--pcs);grid-row:auto}.ccs .board-tile[data-size=S]{aspect-ratio:1}.ccs .board-tile[data-size=L]{aspect-ratio:2}.ccs .board-tile[data-size=B]{min-height:96px}.ccs .board-message{min-height:60dvh}}.ccs .board-tile-value{font-variant-numeric:tabular-nums;text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;gap:10px;font-size:clamp(20px,4vmin,56px);font-weight:800;display:flex}.ccs .board-tile-value img{object-fit:contain;width:clamp(36px,7vmin,90px);height:clamp(36px,7vmin,90px)}.ccs .board-shell-stage{flex-direction:column;flex:1;min-height:0;display:flex}.ccs .board-shell-edit,.ccs .board-shell-close{background:var(--hub-control-bg);color:var(--hub-control-fg);box-shadow:0 2px 8px #0000002e}.ccs .board-shell-edit:hover,.ccs .board-shell-close:hover{background:var(--hub-control-bg);filter:brightness(1.08)}.ccs .board-shell-edit.active{color:#fff}.ccs .board-tile-body{--ccs-widget-fg:var(--ink);min-height:0;color:var(--ink);border-radius:var(--radius-lg);background:#fff;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:0 20px 20px;padding:24px;display:flex;overflow:auto}.ccs .board-tile-body>div{width:100%}.ccs .board-tile-body .btn{padding:.5em 1.3em;font-size:clamp(16px,3vmin,32px)}.ccs .board-tile-body .btn.steps-icon-btn,.ccs .board-tile-body .btn.bt-mini{padding:.4em .7em}.ccs .board-tile-body .row{justify-content:center}.ccs .board-tile-body .timer-stage{gap:4vmin}.ccs .board-tile-body .pie-wrap{width:min(62vmin,100%);height:min(62vmin,100vw)}.ccs .board-tile-body .pie-readout{width:81%;height:81%}.ccs .board-tile-body .time-readout{font-size:clamp(56px,16vmin,190px)}.ccs .board-tile-body .bar-wrap{max-width:90%}.ccs .board-tile-body .bar-track{height:clamp(44px,9vmin,110px)}.ccs .board-tile-body .steps-strip{flex-wrap:wrap;justify-content:center;gap:2.5vmin;padding:2.5vmin}.ccs .board-tile-body .steps-tile{width:clamp(110px,24vmin,280px);height:clamp(110px,24vmin,280px)}.ccs .board-tile-body .steps-controls{justify-content:center;gap:2vmin;margin-top:3vmin}.ccs .board-tile-body .scoreboard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,24vmin),1fr));gap:2.5vmin}.ccs .board-tile-body .scoreboard-team{gap:1.5vmin;padding:2vmin}.ccs .board-tile-body .scoreboard-team-name{font-size:clamp(20px,4.5vmin,56px)}.ccs .board-tile-body .scoreboard-score{padding:2vmin 4px;font-size:clamp(56px,15vmin,180px)}.ccs .board-tile-body .scoreboard-btn{padding:1vmin 0;font-size:clamp(22px,5vmin,60px)}@media(max-width:599.98px){.ccs .board-tile-body{margin:0 12px 12px;padding:16px}.ccs .board-tile-body .pie-wrap{width:min(70vw,100%);height:min(70vw,100%)}.ccs .board-tile-body .time-readout{font-size:clamp(44px,20vw,120px)}.ccs .board-tile-body .steps-tile{width:clamp(90px,38vw,180px);height:clamp(90px,38vw,180px)}.ccs .board-tile-body .scoreboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ccs .board-tile-body .reveal-box{min-height:30vmin}.ccs .board-tile-body .reveal-name{overflow-wrap:anywhere;font-size:clamp(48px,14vmin,180px);line-height:1.1}.ccs .board-tile-body .groups-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,30vmin),1fr));gap:2.5vmin}.ccs .board-tile-body .group-card{padding:2.5vmin}.ccs .board-tile-body .group-card h3{font-size:clamp(20px,4vmin,48px)}.ccs .board-tile-body .group-card ul{font-size:clamp(16px,3.2vmin,40px);line-height:1.5}.ccs .board-tile-body .field input[type=number]{font-size:clamp(16px,3vmin,32px)}.ccs .board-tile-body-attendance{justify-content:flex-start;align-items:stretch}.ccs .board-attendance-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:2.5vmin;display:flex}.ccs .board-attendance-count{align-items:baseline;gap:12px;display:flex}.ccs .board-attendance-count-number{font-variant-numeric:tabular-nums;font-size:clamp(36px,8vmin,96px);font-weight:800}.ccs .board-attendance-count-label{color:var(--muted-fg);font-size:clamp(18px,3vmin,36px);font-weight:600}.ccs .board-attendance-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,24vmin),1fr));gap:1.8vmin;display:grid}.ccs .board-attendance-card{border:2px solid var(--green);border-radius:var(--radius-md);min-height:14vmin;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#ecfdf3;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px 8px;font-family:inherit;display:flex;position:relative}.ccs .board-attendance-number{color:var(--muted-fg);font-size:clamp(14px,2.4vmin,28px);font-weight:600}.ccs .board-attendance-name{text-align:center;overflow-wrap:anywhere;font-size:clamp(18px,3.4vmin,40px);font-weight:700}.ccs .board-attendance-mark{color:var(--green);display:flex;position:absolute;top:6px;right:6px}.ccs .board-attendance-card.late{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 18%,white)}.ccs .board-attendance-card.late .board-attendance-mark{color:var(--ink);background:var(--warning);border-radius:50%;padding:2px;top:4px;right:4px}.ccs .board-attendance-card.absent{border-color:var(--border);color:var(--muted-fg);opacity:.6;background:#e5e7eb}.ccs .board-attendance-card.absent .board-attendance-name{color:var(--muted-fg)}@media(max-width:599.98px){.ccs .board-attendance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ccs .board-attendance-card{min-height:90px}}.ccs .board-tile-body-behaviour,.ccs .board-tile-body-soundboard{justify-content:flex-start;align-items:stretch}.ccs .board-tile-body-behaviour .view,.ccs .board-tile-body-soundboard .ss-page{max-width:none;margin:0}.ccs .board-view-toggle{background:var(--hub-control-bg);border-radius:999px;flex:none;display:inline-flex;overflow:hidden;box-shadow:0 2px 8px #0000002e}.ccs .board-view-option{color:var(--hub-control-fg);cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:8px 18px;font-family:inherit;font-size:16px;font-weight:700}.ccs .board-view-option.active{background:var(--blue);color:var(--ink)}.ccs .board-editor-hint{color:var(--muted-fg);margin:0 0 12px;font-size:14px}.ccs .board-editor-layout{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media(min-width:900px){.ccs .board-editor-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}.ccs .board-editor-grid{aspect-ratio:2;border-radius:var(--radius-md);background:#e5e7eb;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;width:100%;max-width:900px;padding:6px;display:grid}.ccs .board-editor-cell{background:#ffffff80;border:2px dashed #0000;border-radius:8px;min-width:0;min-height:0;padding:0}.ccs .board-editor-cell.target{z-index:2;border-color:var(--blue);cursor:pointer;background:#48c3ff47}.ccs .board-editor-cell.target:hover{background:#48c3ff80}.ccs .board-editor-tile{z-index:1;border:2px solid var(--border);min-width:0;min-height:0;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;font-family:inherit;display:flex;overflow:hidden}.ccs .board-editor-tile.selected{border-color:var(--blue);box-shadow:0 0 0 3px #48c3ff80}.ccs .board-editor-tile{container-type:size}.ccs .board-editor-tile-icon{font-size:min(34cqh,40px);line-height:1}.ccs .board-editor-tile-label{max-width:100%;font-size:calc(min(max(9px,15cqh),16px) * var(--fit,1));text-align:center;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;font-weight:700;line-height:1.1}.ccs .board-editor-side{flex-direction:column;gap:18px;display:flex}.ccs .board-editor-section h3{margin:0 0 8px;font-size:15px;font-weight:700}.ccs .board-editor-note{color:var(--muted-fg);margin:0 0 8px;font-size:13px}.ccs .board-editor-actions,.ccs .board-editor-chips{flex-wrap:wrap;gap:8px;display:flex}.ccs .board-editor-actions{margin-top:10px}.ccs .board-editor-actions .btn{align-items:center;gap:6px;display:inline-flex}.ccs .board-editor-chip{border:1.5px solid var(--border);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:6px 12px;font-family:inherit;font-size:14px;font-weight:600}.ccs .board-editor-chip.selected{border-color:var(--blue);background:#e0f4ff}.ccs .board-editor-catalogue{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ccs .board-editor-catalogue li{align-items:center;gap:8px;display:flex}.ccs .board-editor-catalogue-name{flex:1;font-size:14px;font-weight:600}.ccs .board-editor-catalogue .board-editor-note{margin:0}.ccs .board-editor .btn{align-items:center;gap:6px;display:inline-flex}.ccs .deck-filter{flex-wrap:wrap;gap:8px;display:flex}.ccs .deck-filter-chip{border:1.5px solid var(--border);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:14px;font-weight:600}.ccs .deck-filter-chip.active{border-color:var(--blue);background:#e0f4ff}.ccs .deck-subject-chip{max-width:100%;color:var(--ink);background:#f3f4f6;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.ccs .deck-subject-dot{background:var(--muted-fg);border-radius:50%;flex:none;width:9px;height:9px}.ccs .board-tile-value{flex-wrap:wrap}.ccs .board-tile-body-todaysDeck{align-items:stretch}.ccs .board-todays-card{text-align:center;flex-direction:column;align-items:center;gap:2.5vmin;display:flex}.ccs .board-todays-unit{color:var(--muted-fg);font-size:clamp(18px,3vmin,36px);font-weight:600}.ccs .board-todays-name{overflow-wrap:anywhere;font-size:clamp(36px,10vmin,120px);font-weight:800;line-height:1.1}.ccs .board-todays-card .deck-subject-chip{align-self:center;padding:4px 16px;font-size:clamp(14px,2.4vmin,28px)}.ccs .board-todays-open{padding:.5em 2em;font-size:clamp(22px,5vmin,56px);text-decoration:none}.ccs .board-todays-empty{text-align:center;flex-direction:column;align-items:center;gap:16px;font-size:clamp(18px,3vmin,32px);display:flex}.ccs .board-todays-empty p{margin:0}.ccs .board-deck-picker{flex-direction:column;gap:2vmin;display:flex}.ccs .board-deck-picker-title{margin:0;font-size:clamp(22px,4vmin,44px);font-weight:700}.ccs .board-deck-unit{color:var(--muted-fg);margin:0 0 1.2vmin;font-size:clamp(16px,2.6vmin,30px);font-weight:700}.ccs .board-deck-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,30vmin),1fr));gap:1.8vmin;display:grid}.ccs .board-deck-card{border:2px solid var(--border);border-radius:var(--radius-md);min-height:12vmin;color:var(--ink);text-align:left;cursor:pointer;touch-action:manipulation;background:#fff;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:12px 16px;font-family:inherit;display:flex}.ccs .board-deck-card.current{border-color:var(--blue);background:#e0f4ff}.ccs .board-deck-card:disabled{opacity:.6;cursor:not-allowed}.ccs .board-deck-card-name{overflow-wrap:anywhere;font-size:clamp(18px,3.2vmin,38px);font-weight:700}.ccs .board-tile-body-games,.ccs .board-tile-body-tools{background:0 0;padding:0;overflow:visible}.ccs .game-shell{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.ccs .game-canvas{min-height:0;color:var(--ink);border-radius:var(--radius-lg);background:#fff;flex-direction:column;flex:1;justify-content:safe center;align-items:center;padding:24px;display:flex;overflow:auto}.ccs .game-canvas>div{width:100%}.ccs .game-dock{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.ccs .game-dock-group{align-items:center;gap:8px;display:flex}.ccs .game-dock-left{justify-content:flex-start}.ccs .game-dock-center{justify-content:center}.ccs .game-dock-right{justify-content:flex-end}.ccs .board-tile-body .game-dock .btn{min-height:44px;padding:.4em 1em;font-size:clamp(14px,1.8vmin,20px)}@media(max-width:599.98px){.ccs .game-canvas{padding:16px}.ccs .game-dock{flex-wrap:wrap}}.ccs .game-root{--game-c1:#e5484d;--game-c2:#f08a00;--game-c3:#d99a00;--game-c4:#2fa84f;--game-c5:#12a5a0;--game-c6:#2f7fe0;--game-c7:#8a4fd6;flex-direction:column;flex:1;gap:1.5vmin;min-height:0;display:flex}.ccs .game-review-scroll{flex:1;min-height:0;overflow:auto}.ccs .game-say{flex-direction:column;flex:1;gap:1.5vmin;min-height:0;display:flex;container:say/size}.ccs .game-say-card{border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--cream);min-height:160px;color:var(--ink);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2cqh;padding:2vmin;display:flex;container-type:size}.ccs .game-say-emoji{font-size:clamp(48px,22vh,320px);font-size:clamp(48px,40cqh,320px);line-height:1}.ccs .game-say-word{font-family:Edu SA Beginner Variable,Inter,sans-serif;font-size:clamp(28px,min(8vh,14vw),140px);overflow-wrap:anywhere;max-width:100%;font-size:clamp(28px,min(18cqh,14cqw),140px);font-weight:700;line-height:1.1;position:relative}.ccs .game-say-dot{pointer-events:none;border-radius:50%;width:.18em;height:.18em;margin:.14em 0 0 -.09em;animation:.18s ease-out both game-say-dot-in;position:absolute}@keyframes game-say-dot-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.ccs .game-say-dot{animation:none}}.ccs .game-say-read{color:var(--muted-fg);font-size:clamp(14px,6cqh,32px);font-weight:600}.ccs .game-say-pic,.ccs .game-say-text{display:contents}.ccs .game-say-placeholder{display:none}@container say (aspect-ratio>=6/5){.ccs .game-say-card{flex-direction:row;gap:2cqw}.ccs .game-say-pic,.ccs .game-say-text{flex:1 1 0;justify-content:center;align-items:center;min-width:0;display:flex}.ccs .game-say-text{flex-direction:column;gap:2cqh}.ccs .game-say-emoji{font-size:clamp(48px,min(80cqh,42cqw),640px)}.ccs .game-say-word{white-space:nowrap;max-width:none;font-size:calc(clamp(14px,min(36cqh,calc(42cqw / (var(--chars) * .46))),300px) * var(--fit,1))}.ccs .game-say-text.solo .game-say-word{font-size:calc(clamp(14px,min(36cqh,calc(88cqw / (var(--chars) * .46))),300px) * var(--fit,1))}.ccs .game-say-placeholder{color:var(--border);font-family:Edu SA Beginner Variable,Inter,sans-serif;font-size:min(50cqh,22cqw);font-weight:700;line-height:1;display:block}}.ccs .board-tile-body .game-dock .btn.game-say-arrow{min-width:44px;padding:0 12px;line-height:1}.ccs .game-say-count{text-align:center;min-width:4.5em;color:var(--hub-on-bg);font-size:clamp(16px,2.2vmin,24px);font-weight:700}.ccs .game-mode-toggle{gap:4px;display:inline-flex}.ccs .game-say-done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4vh;min-height:160px;display:flex}.ccs .game-say-done-title{font-size:clamp(36px,10vh,120px);font-weight:700}.ccs .game-spell{flex-direction:column;flex:1;gap:1.5vmin;min-height:0;display:flex}.ccs .game-spell-card{border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--cream);min-height:160px;color:var(--ink);-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;padding:2vmin;display:flex;overflow:clip;container-type:size}.ccs .game-spell-card.complete{cursor:pointer}.ccs .game-spell-stage{perspective:900px;flex:1;min-height:0;position:relative}.ccs .game-spell-layer{backface-visibility:hidden;will-change:transform,opacity;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ccs .game-spell-layer.out{transform-origin:50% 100%;animation:.15s ease-in forwards game-spell-flip-out}.ccs .game-spell-layer.in{transform-origin:50% 0;animation:.15s ease-out both game-spell-flip-in}.ccs .game-spell-layer.fade{animation:.2s ease-out game-spell-fade}.ccs .game-spell-word{white-space:nowrap;max-width:100%;font-size:min(48vh,calc(92vw / (var(--letters) * .52)));font-size:min(60cqh,calc(92cqw / (var(--letters) * .52)));letter-spacing:-.02em;flex-wrap:nowrap;justify-content:center;align-items:center;font-family:Edu SA Beginner Variable,Inter,sans-serif;font-weight:700;line-height:1;display:flex}.ccs .game-spell-card.complete .game-spell-word{animation:.5s game-spell-pop}.ccs .game-spell-letter{color:color-mix(in srgb,var(--word-c) 22%,white);transition:color .15s,text-shadow .15s;display:inline-block}.ccs .game-spell-letter.lit{color:var(--word-c);text-shadow:0 0 .12em color-mix(in srgb,var(--word-c) 55%,transparent),0 0 .35em color-mix(in srgb,var(--word-c) 35%,transparent);animation:.15s ease-out game-spell-lit}.ccs .game-spell-card.complete .game-spell-letter.lit{animation:.5s game-spell-glow}.ccs .game-spell-punct,.ccs .game-spell-gap{color:color-mix(in srgb,var(--word-c) 22%,white);display:inline-block}.ccs .game-spell-gap{width:.3em}.ccs .board-tile-body .game-dock .btn.game-spell-arrow{min-width:44px;padding:0 12px;line-height:1}.ccs .board-tile-body .game-dock .btn.game-set-btn{align-items:center;max-width:calc(40vw - 16px);display:inline-flex}.ccs .game-set-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@keyframes game-spell-flip-out{0%{opacity:1;transform:rotateX(0)}to{opacity:0;transform:rotateX(-90deg)}}@keyframes game-spell-flip-in{0%{opacity:0;transform:rotateX(90deg)}to{opacity:1;transform:rotateX(0)}}@keyframes game-spell-lit{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes game-spell-glow{0%,to{text-shadow:0 0 .12em color-mix(in srgb,var(--word-c) 55%,transparent),0 0 .35em color-mix(in srgb,var(--word-c) 35%,transparent)}40%{text-shadow:0 0 .18em color-mix(in srgb,var(--word-c) 90%,transparent),0 0 .55em color-mix(in srgb,var(--word-c) 65%,transparent)}}@keyframes game-spell-fade{0%{opacity:0}to{opacity:1}}@keyframes game-spell-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.ccs .game-spell-card.complete .game-spell-word,.ccs .game-spell-letter.lit,.ccs .game-spell-card.complete .game-spell-letter.lit{animation:none}}.ccs .game-tracing-stage{flex:1;gap:3%;min-height:120px;display:flex}.ccs .game-tracing-demo,.ccs .game-tracing-copy{flex:1 1 0;justify-content:center;align-items:center;min-width:0;display:flex;container-type:size}.ccs .game-tracing-frame{--h:min(calc(100cqw / var(--ar)), 100cqh);aspect-ratio:var(--ar);height:var(--h);width:calc(var(--h) * var(--ar));flex:none;padding:0;position:relative}.ccs .game-tracing-demo-frame{border:1px solid #0000}.ccs .game-tracing-svg{box-sizing:border-box;width:100%;height:100%;padding:3%;display:block;position:absolute;inset:0}.ccs .game-tracing-svg.drawing{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair}.ccs .board-tile-body .game-dock .btn.game-tracing-arrow{min-width:44px;padding:0 12px;line-height:1}.ccs .game-tracing-count{text-align:center;min-width:4.5em;color:var(--hub-on-bg);font-size:clamp(16px,2.2vmin,24px);font-weight:700}.ccs .game-tracing-setmenu{position:relative}.ccs .game-tracing-setmenu-list{z-index:10;flex-direction:column;gap:6px;min-width:100%;padding:8px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.ccs .game-tracing-setmenu-list .btn{white-space:nowrap}.ccs .trace-ink{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.ccs .trace-ink.fail{animation:.5s ease-out both trace-ink-fail}.ccs .trace-pulse{transform-box:fill-box;transform-origin:50%;animation:1.4s ease-in-out infinite trace-pulse}.ccs .trace-glow{animation:1.2s ease-in-out 2 both trace-glow}.ccs .game-tracing-next-ready{animation:1.4s ease-out infinite trace-next-ring}@keyframes trace-next-ring{0%{box-shadow:0 0 #fffffff2}70%,to{box-shadow:0 0 0 12px #fff0}}@keyframes trace-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.18)}}@keyframes trace-ink-fail{0%{opacity:1;transform:translate(0)}20%{transform:translate(-14px)}40%{transform:translate(14px)}60%{transform:translate(-9px)}80%{opacity:.7;transform:translate(6px)}to{opacity:0;transform:translate(0)}}@keyframes trace-glow{0%,to{filter:drop-shadow(0 0 4px var(--trace-c))}50%{filter:drop-shadow(0 0 24px var(--trace-c)) drop-shadow(0 0 10px var(--trace-c))}}@media(prefers-reduced-motion:reduce){.ccs .trace-ink.fail{animation-duration:1ms}.ccs .trace-pulse,.ccs .game-tracing-next-ready{animation:none}.ccs .trace-glow{filter:drop-shadow(0 0 14px var(--trace-c));animation:none}}.ccs .board-attendance-actions{flex-wrap:wrap;gap:12px;display:flex}.ccs .attendance-celebration{z-index:5;min-height:0;color:var(--ink);border-radius:var(--radius-lg);background:#fff;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;transition:opacity .25s ease-in;animation:.2s ease-out attendance-celebration-fade-in;display:flex;position:fixed;overflow:hidden;container-type:size}.ccs .attendance-celebration.leaving{opacity:0}.ccs .attendance-celebration-close{z-index:3;border:2px solid var(--border);width:52px;height:52px;color:var(--muted-fg);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.ccs .attendance-celebration-content{z-index:1;flex-direction:column;align-items:center;gap:3cqh;max-width:100%;padding:0 16px;display:flex;position:relative}.ccs .attendance-celebration-figure{width:40cqh;max-width:80cqw;height:40cqh;max-height:80cqw;position:relative}.ccs .attendance-celebration-star-wrap{pointer-events:none;z-index:0;width:260%;height:260%;margin:-130% 0 0 -130%;animation:.5s ease-out .35s backwards attendance-celebration-star-in;position:absolute;top:50%;left:50%}.ccs .attendance-celebration-star{opacity:.55;width:100%;height:100%;animation:8s linear infinite attendance-celebration-spin}.ccs .attendance-celebration-emoji{z-index:1;justify-content:center;align-items:center;font-size:min(40cqh,80cqw);line-height:1;display:flex;position:absolute;inset:0}.ccs .attendance-celebration-bob{animation:2.4s ease-in-out .8s infinite attendance-celebration-bob;display:flex}.ccs .attendance-celebration-name{z-index:2;border-radius:var(--radius-md);text-shadow:0 0 10px #fff;text-align:center;overflow-wrap:anywhere;background:#ffffffd9;padding:.05em .4em;font-size:clamp(28px,9cqh,96px);font-weight:800;animation:.4s ease-out .3s backwards attendance-celebration-name-in;position:relative}.ccs .attendance-celebration-here{z-index:2;min-height:64px;padding:.4em 1.8em;font-size:clamp(24px,7cqh,52px);animation:.3s ease-out .5s backwards attendance-celebration-fade-in;position:relative;box-shadow:0 6px 18px #0000004d}@keyframes attendance-celebration-fade-in{0%{opacity:0}to{opacity:1}}@keyframes attendance-celebration-star-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes attendance-celebration-spin{to{transform:rotate(360deg)}}@keyframes attendance-celebration-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3%)}}@keyframes attendance-celebration-name-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ccs .attendance-celebration-star,.ccs .attendance-celebration-bob{animation:none}.ccs .attendance-celebration-star-wrap{animation:.3s ease-out backwards attendance-celebration-fade-in}.ccs .attendance-celebration-name{animation:.3s ease-out .15s backwards attendance-celebration-fade-in}}.ccs .today-view{gap:var(--board-gap,12px);height:calc(100dvh - var(--board-bar-min) - 12px);grid-template-columns:minmax(0,1fr) minmax(320px,38%);display:grid}.ccs .today-side{min-height:0;color:var(--hub-on-bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2vmin;display:flex}.ccs .today-clock-wrap{--today-clock-face:252.6px;--today-clock-digits:199.6px;--today-clock-period:79.8px;--today-clock-gap:25.3px;--avail-h:calc(100dvh - var(--board-bar-min) - 12px - 35vmin);--avail-w:100cqw;--w:3.1;--k:1;--clock-face:min(var(--today-clock-face), var(--avail-h), calc(var(--avail-w) / var(--k)));--clock-digits:min(var(--today-clock-digits), var(--avail-h), calc(var(--avail-w) / var(--w)));flex:none;justify-content:center;align-items:center;width:100%;min-height:184px;padding-right:52px;display:flex;position:relative;container-type:inline-size}.ccs .today-clock-wrap.today-clock-12h{--w:3.7}.ccs .today-clock-side{--k:calc(1.1 + .7902 * var(--w));--clock-digits:min(var(--today-clock-digits), calc(var(--clock-face) * .7902))}.ccs .today-clock{font-size:var(--clock-digits);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800;line-height:1;display:block}.ccs .today-clock-coloured .today-clock-hour{color:var(--red)}.ccs .today-clock-coloured .today-clock-minute{color:var(--chalk-700)}.ccs .today-clock-period{font-size:min(var(--today-clock-period),calc(var(--clock-digits) * .4));margin-inline:.25em}.ccs .today-clock-pair{justify-content:center;align-items:center;gap:min(var(--today-clock-gap),calc(var(--clock-face) * .1));display:inline-flex}.ccs .today-clock-toggles{grid-template-rows:repeat(4,40px);gap:8px;display:grid;position:absolute;top:50%;right:0;transform:translateY(-50%)}.ccs .today-clock-open{border-radius:var(--radius-lg);color:inherit;font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0}.ccs .today-clock-open:hover,.ccs .today-clock-open:focus-visible{outline:3px solid var(--hub-control-bg);outline-offset:4px}.ccs .clock-face{-webkit-user-select:none;user-select:none;display:block}.ccs .clock-face-disc{fill:#fff;stroke:#000;stroke-width:2.4px}.ccs .clock-face-tick{stroke:#000;stroke-width:.5px}.ccs .clock-face-hour-tick{stroke:#000;stroke-width:1.2px}.ccs .clock-face-number{fill:#000;font-family:Inter,sans-serif;font-size:7.5px;font-weight:800}.ccs .clock-face-hand{stroke:#000;stroke-linecap:round}.ccs .clock-face-hand-hour{stroke-width:3.6px}.ccs .clock-face-hand-minute{stroke-width:2.4px}.ccs .clock-face-coloured .clock-face-hand-hour{stroke:var(--red)}.ccs .clock-face-coloured .clock-face-hand-minute{stroke:var(--chalk-700)}.ccs .clock-face-hand.grabbed{stroke-width:5px;filter:drop-shadow(0 0 1.5px #000)}.ccs .clock-face-pin{fill:#000}.ccs .clock-face-hit{stroke:#0000;stroke-width:12px;stroke-linecap:round;cursor:grab;touch-action:none}.ccs .clock-face-hit:active{cursor:grabbing}.ccs .learning-clock-modal{flex-direction:column;gap:1.2vmin;width:min(94vw,1100px);max-width:94vw;height:min(92dvh,900px);max-height:92dvh;display:flex;overflow:hidden;container-type:size}.ccs .learning-clock-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ccs .learning-clock-head h3{margin:0;font-size:clamp(20px,4cqh,36px)}.ccs .learning-clock-close{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:inline-flex}.ccs .learning-clock-stage{flex:1 1 0;place-items:center;min-height:0;display:grid;container-type:size}.ccs .learning-clock-readout{text-align:center;min-height:clamp(48px,9cqh,96px);color:var(--ink);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:1vmin 3vmin;display:flex}.ccs .learning-clock-readout.hidden{visibility:hidden}.ccs .learning-clock-digital{font-variant-numeric:tabular-nums;font-size:clamp(32px,8cqh,84px);font-weight:800}.ccs .learning-clock-words{font-size:clamp(22px,5cqh,52px);font-weight:700}.ccs .learning-clock-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.ccs .learning-clock-btn{touch-action:manipulation;align-items:center;gap:10px;min-height:56px;padding:10px 24px;font-size:clamp(16px,3cqh,28px);display:inline-flex}.ccs .today-clock-toggle{background:var(--hub-control-bg);width:40px;height:40px;color:var(--hub-control-fg);font:inherit;opacity:.7;cursor:pointer;touch-action:manipulation;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:inline-flex}.ccs .today-clock-toggle[aria-pressed=true],.ccs .today-clock-toggle:hover{opacity:1}.ccs .today-date{font-size:clamp(22px,4.5vmin,56px);font-weight:700}.ccs button.today-date{max-width:100%;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.4em;padding:.1em .5em;font-family:inherit;display:inline-flex}.ccs button.today-date:hover,.ccs button.today-date:focus-visible{background:var(--hub-control-bg);outline:none}.ccs .today-date-icon{opacity:.6;flex:none;width:.7em;height:.7em}.ccs button.today-date:hover .today-date-icon,.ccs button.today-date:focus-visible .today-date-icon{opacity:1}.ccs .today-date-text{overflow-wrap:anywhere;min-width:0}.ccs .today-attendance{border-radius:var(--radius-lg);color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border:none;align-items:center;gap:12px;padding:1.2vmin 3vmin;font-family:inherit;font-size:clamp(20px,4vmin,48px);font-weight:700;display:inline-flex;box-shadow:0 6px 20px #00000038}.ccs .today-attendance:active{transform:scale(.98)}.ccs .today-attendance-take{background:var(--yellow);font-size:clamp(24px,5vmin,60px);font-weight:800}.ccs .today-attendance-icon{font-size:1.4em;line-height:1}.ccs .today-attendance-count{font-variant-numeric:tabular-nums;font-weight:800}.ccs .today-side-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:3vmin;display:flex}.ccs .today-temperature{color:var(--hub-on-bg);align-items:center;gap:1vmin;display:inline-flex}.ccs .today-temperature-gauge{width:auto;height:clamp(56px,11vmin,120px);display:block}.ccs .today-temperature-outline{fill:#fff;stroke:var(--hub-on-bg);stroke-width:2px}.ccs .today-temperature-patch{fill:#fff}.ccs .today-temperature-number{font-variant-numeric:tabular-nums;font-size:clamp(32px,7vmin,80px);font-weight:800;line-height:1}.ccs .today-temperature-open{border-radius:var(--radius-lg);color:inherit;font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0;display:inline-flex}.ccs .today-temperature-open:hover,.ccs .today-temperature-open:focus-visible{outline:3px solid var(--hub-control-bg);outline-offset:4px}.ccs .modal.thermometer-modal{--thermo-skin:#f1c9a5;--thermo-hair:#5a3a22;width:min(94vw,1000px);height:min(92dvh,760px)}.ccs .thermometer-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ccs .thermometer-head h3{margin:0}.ccs .thermometer-close{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:inline-flex}.ccs .thermometer-body{flex:1 1 0;gap:3cqw;min-height:0;display:flex}.ccs .thermometer-stage{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:1.5cqh;min-width:0;min-height:0;display:flex}.ccs .thermometer-gauge-col{flex-direction:column;flex:1 1 0;align-self:stretch;align-items:center;gap:1.5cqh;min-width:0;min-height:0;display:flex}.ccs .thermometer-drag{touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;border-radius:var(--radius-md);flex:1 1 0;justify-content:center;align-items:stretch;max-width:100%;min-height:0;display:flex}.ccs .thermometer-drag:focus-visible{outline:3px solid var(--hub-control-bg);outline-offset:4px}.ccs .thermometer-gauge{width:auto;max-width:100%;height:100%;display:block;overflow:visible}.ccs .thermometer-gauge .today-temperature-outline{stroke:var(--ink);stroke-width:3px}.ccs .thermometer-tick{stroke:var(--ink);stroke-width:1.5px}.ccs .thermometer-tick-label{fill:var(--ink);dominant-baseline:central;font-size:3.4px;font-weight:700}.ccs .thermometer-readout{text-align:center;flex-flow:wrap;order:-1;justify-content:center;align-items:baseline;gap:0 2cqw;display:flex}.ccs .thermometer-number{font-variant-numeric:tabular-nums;font-size:clamp(36px,min(8cqw,12cqh),96px);font-weight:800;line-height:1}.ccs .thermometer-band{font-size:clamp(20px,min(4.5cqw,6.5cqh),48px);font-weight:700}.ccs .thermometer-companion{min-width:0;min-height:0;color:var(--ink);flex:1 1 0;align-items:stretch;gap:2cqw;display:flex}.ccs .companion-figure{text-align:center;flex-direction:column;flex:1 1 0;align-items:center;gap:.6cqh;min-width:0;min-height:0;margin:0;display:flex}.ccs .companion-art{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.ccs .weather-outfit,.ccs .water-glass{width:100%;height:auto;max-height:100%;display:block}.ccs .weather-outfit{aspect-ratio:100/146}.ccs .water-glass{aspect-ratio:60/80}.ccs .weather-outfit-set{opacity:0;transition:opacity .2s}.ccs .weather-outfit-set.on{opacity:1}@media(prefers-reduced-motion:reduce){.ccs .weather-outfit-set{transition:none}}@container (aspect-ratio<1) or (width<640px){.ccs .thermometer-body{flex-direction:column;gap:1.5cqh}.ccs .thermometer-stage{flex-direction:row;flex:1.15 1 0;align-items:stretch;gap:4cqw}.ccs .thermometer-readout{flex-direction:column;order:0;align-self:center;align-items:center;gap:.5cqh}.ccs .thermometer-number{font-size:clamp(32px,min(11cqw,8cqh),72px)}.ccs .thermometer-band{font-size:clamp(18px,min(6cqw,4.5cqh),36px)}}.ccs .thermometer-actions{flex:none;justify-content:center;display:flex}.ccs .thermometer-frost rect,.ccs .thermometer-frost circle{fill:none;stroke:var(--blue);stroke-width:8px;stroke-opacity:.35}.ccs .thermometer-btn{touch-action:manipulation;align-items:center;gap:10px;min-height:56px;padding:10px 24px;font-size:clamp(16px,3cqh,28px);display:inline-flex}.ccs .today-weather{border-radius:var(--radius-lg);color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border:none;align-items:center;gap:1.5vmin;padding:1vmin 2.5vmin;font-family:inherit;font-size:clamp(18px,3.4vmin,40px);font-weight:700;display:inline-flex;box-shadow:0 6px 20px #00000038}.ccs .today-weather:active{transform:scale(.98)}.ccs .today-weather-empty{background:var(--hub-control-bg);color:var(--hub-control-fg);box-shadow:none}.ccs .today-weather-emoji{font-size:clamp(32px,7vmin,80px);line-height:1}.ccs .modal.modal-board{flex-direction:column;gap:1.2vmin;max-width:94vw;max-height:92dvh;display:flex;overflow:hidden;container-type:size}.ccs .modal.modal-board h3{margin:0;font-size:clamp(20px,4cqh,36px)}.ccs .modal.today-weather-modal{width:min(92vw,880px);height:min(86dvh,640px)}.ccs .today-weather-grid{flex:1 1 0;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:12px;min-height:0;display:grid}.ccs .today-weather-opt{background:var(--cream);border:2px solid var(--border);border-radius:var(--radius-md);touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:1cqh;min-height:0;padding:6px;font-size:clamp(48px,9cqh,120px);display:flex}.ccs .today-weather-opt.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 18%,#fff)}.ccs .today-weather-opt-label{color:var(--ink);font-size:clamp(16px,2.8cqh,36px);font-weight:700}.ccs .today-weather-clear{touch-action:manipulation;align-self:center;min-height:56px;padding:10px 28px;font-size:clamp(16px,2.8cqh,28px)}.ccs .modal.today-calendar-modal{width:min(94vw,1100px);height:min(92dvh,900px)}.ccs .today-calendar-head{align-items:center;gap:10px;display:flex}.ccs .today-calendar-title{text-align:center;flex:1;min-width:0}.ccs .today-calendar-nav,.ccs .today-calendar-close{touch-action:manipulation;border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:inline-flex}.ccs .today-calendar-today{touch-action:manipulation;flex:none;min-height:48px;padding:8px 18px}.ccs .today-calendar-edit{touch-action:manipulation;flex:none;min-height:48px;padding:8px 18px;font-size:16px}.ccs .today-calendar-hint{margin:0;font-size:clamp(13px,2.4cqh,18px)}.ccs .today-ordinal-toggle{border:1.5px solid var(--border);border-radius:var(--radius-sm);flex:none;display:inline-flex;overflow:hidden}.ccs .today-ordinal-option{min-height:48px;color:var(--muted-fg);cursor:pointer;touch-action:manipulation;background:#fff;border:none;padding:8px 14px;font-family:inherit;font-size:16px;font-weight:700}.ccs .today-ordinal-option.active{background:var(--blue);color:#fff}.ccs .today-calendar-body{flex:1 1 0;gap:12px;min-height:0;display:flex}.ccs .today-calendar-grid{flex:1 1 0;grid-template-rows:auto repeat(6,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-width:0;min-height:0;display:grid}.ccs .today-calendar-weekday{text-align:center;color:var(--muted-fg);font-size:clamp(12px,2.2cqh,20px);font-weight:700}.ccs .today-calendar-cell{border:1.5px solid var(--border);border-radius:var(--radius-sm);min-width:0;min-height:0;color:var(--ink);text-align:left;background:#fff;grid-template-rows:auto 1fr;padding:4px 6px;font-family:inherit;display:grid;position:relative;overflow:hidden;container-type:size}.ccs button.today-calendar-cell{cursor:pointer;touch-action:manipulation}.ccs .today-calendar-cell.outside{color:var(--muted-fg);opacity:.45;background:0 0;border-color:#0000}.ccs .today-calendar-cell.holiday{background:color-mix(in srgb,var(--red) 14%,#fff);border-color:color-mix(in srgb,var(--red) 40%,#fff)}.ccs .today-calendar-cell.today{border:3px solid var(--blue)}.ccs .today-calendar-cell.selected{outline:3px solid var(--chalk-700);outline-offset:-3px}.ccs .today-calendar-cell.crossed{opacity:.5}.ccs .today-calendar-cell.crossed:after{content:"";background:linear-gradient(to top right,transparent calc(50% - 1.5px),var(--ink) calc(50% - 1.5px),var(--ink) calc(50% + 1.5px),transparent calc(50% + 1.5px));pointer-events:none;position:absolute;inset:0}.ccs .today-calendar-cell-top{align-items:baseline;gap:6px;min-width:0;min-height:clamp(14px,20cqh,31px);display:flex}.ccs .today-calendar-num{font-size:clamp(12px,17cqh,26px);font-weight:500}.ccs .today-calendar-cell.today .today-calendar-num{font-weight:800}.ccs .today-calendar-weather{pointer-events:none;font-size:clamp(14px,20cqh,31px);line-height:1;position:absolute;top:4px;right:6px}.ccs .today-calendar-emojis{justify-content:center;align-items:center;gap:3cqw;min-width:0;min-height:0;line-height:1;display:flex;container-type:size}.ccs .today-calendar-emojis>*{pointer-events:none;flex:none;font-size:min(85cqh,85cqw)}.ccs .today-calendar-emojis.two{position:relative}.ccs .today-calendar-emojis.two>*{z-index:1;font-size:70cqmin;position:absolute;top:0;left:0}.ccs .today-calendar-emojis.two>*+*{z-index:2;inset:auto 0 0 auto}.ccs .today-calendar-chip-icon{flex:none;width:1em;height:1em}.ccs .today-day-panel{border:1.5px solid var(--border);border-radius:var(--radius-md);background:#fff;flex-direction:column;flex:none;gap:14px;width:min(38%,400px);min-height:0;padding:12px;display:flex;overflow-y:auto;container-type:size}.ccs .today-day-panel-head{align-items:center;gap:10px;display:flex}.ccs .today-day-panel-title{overflow-wrap:anywhere;min-width:0;margin:0;font-size:20px;font-weight:800}.ccs .today-day-panel-section{flex-direction:column;gap:8px;display:flex}.ccs .today-day-panel-section h5{text-transform:uppercase;letter-spacing:.04em;color:var(--muted-fg);margin:0;font-size:13px;font-weight:800}.ccs .today-day-panel .today-weather-grid{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:6px}.ccs .today-day-panel .today-weather-opt{padding:6px 2px;font-size:34px}.ccs .today-day-panel .today-weather-opt-label{font-size:12px}.ccs .today-day-panel .today-weather-clear{min-height:44px;font-size:15px}.ccs .today-day-panel-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ccs .today-day-panel-row{border-radius:var(--radius-sm);background:var(--cream);align-items:center;gap:8px;padding:6px 8px;font-size:18px;font-weight:600;display:flex}.ccs .today-day-panel-row.school{background:color-mix(in srgb,var(--blue) 20%,#fff)}.ccs .today-day-panel-row.editing{display:block}.ccs .today-day-panel-row-title{overflow-wrap:anywhere;flex:1;min-width:0}.ccs .today-day-panel-icon{touch-action:manipulation;flex:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.ccs .today-day-panel-empty{color:var(--muted-fg);margin:0;font-size:16px}.ccs .today-day-panel-form{flex-direction:column;gap:8px;display:flex}.ccs .today-day-panel-label{flex-direction:column;gap:4px;font-size:14px;font-weight:700;display:flex}.ccs .today-day-panel-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);min-height:48px;padding:8px 12px;font-family:inherit;font-size:18px}.ccs .today-day-panel-input[aria-invalid=true]{border-color:var(--red)}.ccs .today-day-panel-error{color:var(--red);font-size:14px;font-weight:600}.ccs .today-day-panel-actions{justify-content:flex-end;gap:10px;display:flex}.ccs .today-day-panel-actions .btn{touch-action:manipulation;min-height:48px;padding:8px 22px}.ccs .today-day-panel .bt-emoji-opt{font-size:26px}@media(max-width:599.98px){.ccs .today-day-panel{z-index:5;border:none;border-radius:0;width:auto;padding:16px;position:fixed;inset:0}.ccs .modal.modal-board{border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;overflow:auto}.ccs .today-weather-grid{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(120px,auto)}.ccs .today-calendar-head{flex-wrap:wrap}.ccs .today-calendar-grid{min-height:60dvh}}.ccs .today-schedule{border-radius:var(--radius-lg);min-height:0;color:var(--ink);background:#fff;flex-direction:column;gap:1.5vmin;padding:2vmin;display:flex;box-shadow:0 6px 20px #00000038}.ccs .today-schedule-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.ccs .today-pill{border:2px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.ccs .today-pill-option{color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:.5em 1.4em;font-family:inherit;font-size:clamp(16px,3vmin,32px);font-weight:700}.ccs .today-pill-option.active{background:var(--blue)}.ccs .today-times-toggle{border:2px solid var(--border);width:44px;height:44px;color:var(--muted-fg);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ccs .today-times-toggle.active{border-color:var(--blue);color:var(--ink)}.ccs .today-lessons{--today-row-h:calc(100cqh / var(--today-rows,4));flex:auto;grid-auto-rows:minmax(0,1fr);gap:1.2vmin;min-height:0;margin:0;padding:0;list-style:none;display:grid;container-type:size}.ccs .today-lesson{--today-subject-color:var(--border);align-items:center;gap:clamp(8px,calc(var(--today-row-h) * .18),24px);min-height:0;padding:0 clamp(8px,calc(var(--today-row-h) * .2),24px);border:2px solid color-mix(in srgb,var(--today-subject-color) 45%,#fff);border-left:clamp(8px,1.8vmin,20px) solid var(--today-subject-color);border-radius:var(--radius-md);background:color-mix(in srgb,var(--today-subject-color) 20%,#fff);display:flex;overflow:hidden}.ccs .today-lesson.current{border-color:var(--blue);border-left-color:var(--today-subject-color);box-shadow:0 0 0 3px var(--blue)}.ccs .today-lesson.done{opacity:.5}.ccs .today-lesson.done .today-lesson-main{text-decoration:line-through}.ccs .today-tick{--today-tick-size:clamp(36px, calc(var(--today-row-h) * .62), 96px);width:var(--today-tick-size);height:var(--today-tick-size);border:3px solid var(--ink);border-radius:var(--radius-sm);color:#fff;cursor:pointer;touch-action:manipulation;background:#fff;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ccs .today-tick[aria-checked=true]{border-color:var(--green);background:var(--green)}.ccs .today-tick-check{width:80%;height:80%}.ccs .today-lesson-main{flex-direction:column;flex:1 1 0;justify-content:center;min-width:0;display:flex}.ccs .today-lesson-label{font-size:calc(clamp(16px,calc(var(--today-row-h) * .36),52px) * var(--fit,1));overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;font-weight:800;line-height:1.1}.ccs .today-lesson-time{font-size:clamp(12px,calc(var(--today-row-h) * .2),28px);color:var(--muted-fg);font-variant-numeric:tabular-nums;font-weight:600}.ccs .today-lesson-actions{gap:clamp(6px,calc(var(--today-row-h) * .1),14px);flex:none;display:flex}.ccs .today-lesson-actions .today-lesson-action{--today-action-size:clamp(36px, calc(var(--today-row-h) * .62), 96px);width:var(--today-action-size);height:var(--today-action-size);touch-action:manipulation;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.ccs .today-lesson-action svg{width:55%;height:55%}.ccs .today-hint{text-align:center;color:var(--muted-fg);margin:auto;padding:4vmin;font-size:clamp(18px,3.4vmin,40px);font-weight:600}.ccs .today-banner{text-align:center;flex-direction:column;align-items:center;gap:2vmin;margin:auto;display:flex}.ccs .today-banner-icon{font-size:clamp(56px,14vmin,160px);line-height:1}.ccs .today-banner-label{font-size:clamp(28px,7vmin,80px);font-weight:800}@media(max-width:599.98px){.ccs .today-view{grid-template-columns:minmax(0,1fr);height:auto;padding-bottom:12px}.ccs .today-side{gap:12px}.ccs .today-clock-wrap{--avail-h:9999px}.ccs .today-lessons{--today-row-h:76px;grid-auto-rows:minmax(76px,auto);container-type:normal}}.ccs .class-calendar-hub{width:100%;color:var(--ink);flex-direction:column;gap:14px;display:flex}.ccs .class-calendar-hub .today-calendar-title{margin:0;font-size:22px}.ccs .class-calendar-hub .today-calendar-hint{font-size:15px}.ccs .class-calendar-hub .today-calendar-body{flex:none;align-items:flex-start}.ccs .class-calendar-hub .today-calendar-grid{grid-template-rows:auto repeat(6,clamp(84px,9vw,128px))}.ccs .class-calendar-hub .today-calendar-weekday{font-size:14px}.ccs .class-calendar-hub .today-day-panel{width:min(38%,400px);padding-bottom:20px;overflow:visible;container-type:normal}.ccs .class-calendar-hub input.bt-emoji-input{flex:1 1 0;min-width:0;min-height:48px;padding:9px 12px;font-size:15px}@media(max-width:767.98px){.ccs .class-calendar-hub .today-calendar-body{flex-direction:column;align-items:stretch}.ccs .class-calendar-hub .today-calendar-grid{flex:none;grid-template-rows:auto repeat(6,clamp(56px,13vw,84px));min-height:0}.ccs .class-calendar-hub .today-calendar-title{white-space:nowrap;flex:1 0 auto;font-size:18px}.ccs .class-calendar-hub .today-day-panel{z-index:auto;border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;padding:12px 12px 20px;position:static;inset:auto}}
