:root{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-sunken:#f1f5f9;--color-border:#cbd5e1;--color-border-subtle:#e2e8f0;--color-text:#0f172a;--color-text-muted:#475569;--color-primary:#1d4ed8;--color-primary-strong:#1e40af;--color-primary-soft:#eff6ff;--color-primary-text:#fff;--color-danger:#b91c1c;--color-danger-bg:#fef2f2;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-warning:#a16207;--color-warning-bg:#fefce8;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius:.75rem;--radius-sm:.5rem;--radius-pill:999px;--touch-target:2.75rem;--font-system:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-sm:.875rem;--font-size-xs:.75rem;--shadow-raised:0 1px 2px #0f172a0f, 0 2px 8px #0f172a14;--shadow-overlay:0 4px 12px #0f172a26, 0 12px 32px #0f172a2e}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-system);background:var(--color-bg);color:var(--color-text);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3,p{margin:0}button,input{font-family:inherit}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes score-pulse{0%{transform:scale(1.18)}to{transform:scale(1)}}.score-pulse{animation:.45s ease-out score-pulse;display:inline-block}.page{flex-direction:column;gap:1.25rem;min-height:100%;padding:1.25rem;display:flex}.page-centered{text-align:center;justify-content:center;align-items:center;min-height:100vh}.loading-screen{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;color:var(--color-text-muted);padding:2rem 1rem}.empty-state__title{color:var(--color-text);font-size:1.1rem;font-weight:600}.error-message{background:var(--color-danger-bg);border:1px solid var(--color-danger);color:var(--color-danger);border-radius:var(--radius);text-align:left;padding:.75rem 1rem}.error-message__title{margin-bottom:.25rem;display:block}.button{border-radius:var(--radius);cursor:pointer;touch-action:manipulation;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;min-height:3rem;padding:0 1.25rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.button--primary{background:var(--color-primary);color:var(--color-primary-text)}.button--secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.button--icon{min-width:3rem;padding:0;font-size:1.25rem}.button:disabled{opacity:.6;cursor:not-allowed}.link-button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-self:center;min-height:2.75rem;padding:0 .5rem;font-size:.9rem;text-decoration:underline}.teacher-auth{width:min(100%,56rem)}.arena-entry{background:linear-gradient(145deg,#fff 0%,#f1f7fd 100%);border:1px solid #c8d9ec;border-radius:1.5rem;width:100%;padding:clamp(1.5rem,4vw,3rem);box-shadow:0 1.25rem 3rem #0f2b5c1f}.arena-entry__brand{color:#ea580c;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .45rem;font-size:.8rem;font-weight:900}.arena-entry h1{color:#0f2b5c;margin:0;font-size:clamp(2.25rem,6vw,4rem);line-height:1}.arena-entry__intro{color:#496684;max-width:31rem;margin:.9rem auto 2rem;font-size:1.05rem;line-height:1.5}.arena-entry__cards{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.arena-entry-card{color:#0f2b5c;min-height:17rem;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #c8d9ec;border-radius:1rem;flex-direction:column;align-items:flex-start;padding:1.4rem;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.arena-entry-card:hover,.arena-entry-card:focus-visible{border-color:#407bb7;outline:none;transform:translateY(-.2rem);box-shadow:0 .8rem 1.8rem #0f2b5c21}.arena-entry-card--teacher{border-top:.35rem solid #0f2b5c}.arena-entry-card--student{border-top:.35rem solid #ea580c}.arena-entry-card__icon{color:#0f2b5c;background:#e8f2fb;border-radius:.7rem;place-items:center;width:2.5rem;height:2.5rem;font-size:1.15rem;font-weight:900;display:grid}.arena-entry-card--student .arena-entry-card__icon{color:#c2410c;background:#fff0e5}.arena-entry-card__eyebrow{color:#407bb7;letter-spacing:.07em;text-transform:uppercase;margin-top:1rem;font-size:.77rem;font-weight:800}.arena-entry-card strong{margin:.3rem 0 .55rem;font-size:1.45rem}.arena-entry-card>span:not(.arena-entry-card__icon):not(.arena-entry-card__eyebrow){color:#496684;line-height:1.45}.arena-entry-card em{color:#0f2b5c;margin-top:auto;padding-top:1rem;font-style:normal;font-weight:800}.arena-entry-card--student em{color:#c2410c}.arena-entry__catalogue{color:#0f2b5c;margin-top:1.5rem;font-weight:800;display:inline-block}@media (width<=38rem){.arena-entry{padding:1.25rem}.arena-entry__cards{grid-template-columns:1fr}.arena-entry-card{min-height:14rem}}.connection-status{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.connection-status__dot{background:var(--color-text-muted);border-radius:50%;width:.55rem;height:.55rem}.connection-status--connected .connection-status__dot{background:var(--color-success)}.connection-status--connecting .connection-status__dot,.connection-status--reconnecting .connection-status__dot{background:#ca8a04}.connection-status--disconnected .connection-status__dot,.connection-status--error .connection-status__dot{background:var(--color-danger)}.teacher-code-gate{text-align:left;flex-direction:column;gap:.9rem;width:100%;max-width:22rem;display:flex}.teacher-code-gate h1{text-align:center;font-size:1.75rem}.teacher-code-gate__subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:.5rem}.teacher-code-gate label{font-weight:600}.teacher-code-gate__field{gap:.5rem;display:flex}.teacher-code-gate__field input{border-radius:var(--radius);border:1px solid var(--color-border);letter-spacing:.05em;flex:1;min-height:3rem;padding:0 .9rem;font-size:1.1rem}.teacher-code-gate__toggle{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:3rem;padding:0 .9rem}.teacher-code-gate__submit{border-radius:var(--radius);background:var(--color-primary);min-height:3.25rem;color:var(--color-primary-text);cursor:pointer;border:none;font-size:1.1rem;font-weight:700}.app-header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-header__leading{flex:none}.app-header__titles{flex:1;min-width:0}.app-header__titles h1{overflow-wrap:anywhere;font-size:1.35rem}.app-header__titles p{color:var(--color-text-muted);font-size:.9rem}.app-header__eyebrow{letter-spacing:.08em;color:var(--color-primary);text-transform:uppercase;font-size:.8rem;font-weight:700;display:block}.app-header__trailing{flex:none}.classes-page__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.classes-page__header-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.classes-grid{grid-template-columns:1fr;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.class-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.class-card__season{color:var(--color-text-muted)}.class-card__meta{color:var(--color-text-muted);font-size:.9rem}.class-card__actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}@media (width>=720px){.classes-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1080px){.classes-grid{grid-template-columns:repeat(3,1fr)}}.class-card__fictitious-tag{color:var(--color-text-muted);font-size:.85rem;display:inline-block}.class-card__empty{color:var(--color-text-muted);font-size:.9rem;font-style:italic}.backup-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.9rem;padding:1.25rem;display:flex}.backup-panel__row{flex-wrap:wrap;gap:.75rem;display:flex}.backup-panel__class-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.backup-panel__class-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.backup-panel__status{color:var(--color-text-muted);font-size:.85rem}.backup-panel__restore{border-top:1px solid var(--color-border);flex-direction:column;gap:.6rem;padding-top:.9rem;display:flex}.backup-panel__restore label{font-weight:600}.backup-panel__restore input[type=text]{border-radius:var(--radius);border:1px solid var(--color-border);width:100%;min-height:2.75rem;padding:0 .75rem}.backup-panel__errors{color:var(--color-danger);margin:0;padding-left:1.25rem}.backup-panel__preview{border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.9rem;display:flex}.backup-panel__preview ul{margin:0;padding-left:1.25rem}.backup-panel__success{border:1px solid var(--color-success);border-radius:var(--radius);padding:.9rem}.backup-panel__success ul{margin:0;padding-left:1.25rem}.pwa-banner-stack{z-index:40;flex-direction:column;gap:.4rem;display:flex;position:sticky;top:0}.pwa-banner-stack:empty{display:none}.pwa-banner{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:.9rem;display:flex}.pwa-banner p{flex:1;min-width:0}.pwa-banner ol{flex:1;min-width:0;margin:0;padding-left:1.1rem}.pwa-banner--update{color:var(--color-text);background:#eef2ff}.pwa-banner--install,.pwa-banner--ios{background:var(--color-surface);color:var(--color-text)}.pwa-banner--offline,.pwa-banner--supabase-unavailable{background:var(--color-danger-bg);color:var(--color-danger)}.pwa-banner--reconnecting{color:#854d0e;background:#fefce8}.pwa-banner__dismiss{cursor:pointer;color:inherit;background:0 0;border:none;padding:.25rem .5rem;font-size:1.25rem;line-height:1}.app-version-badge{color:var(--color-text-muted);text-align:center;padding:.5rem 0 0;font-size:.75rem}.classes-page__feedback{background:var(--color-surface);border:1px solid var(--color-success);border-radius:var(--radius);color:var(--color-success);padding:.75rem 1rem}.classes-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.5rem;display:flex}.classes-tabs__tab{min-height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:0 1rem;font-size:1rem;font-weight:600}.classes-tabs__tab--current{color:var(--color-primary);border-bottom-color:var(--color-primary)}.new-class-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.9rem;padding:1rem;display:flex}.new-class-form__fields{grid-template-columns:1fr;gap:.75rem;display:grid}.new-class-form__field{flex-direction:column;gap:.35rem;display:flex}.new-class-form__field label{font-weight:600}.new-class-form__field input{border-radius:var(--radius);border:1px solid var(--color-border);min-height:2.75rem;padding:0 .75rem;font-size:1rem}.new-class-form__actions{flex-wrap:wrap;gap:.75rem;display:flex}@media (width>=720px){.new-class-form__fields{grid-template-columns:repeat(3,1fr)}}.classes-page__demo-cleanup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem .9rem;display:flex}.classes-page__demo-explanation{color:var(--color-text-muted);font-size:.9rem}.classes-page__demo-actions{flex-wrap:wrap;gap:.75rem;display:flex}.class-card__title-row{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.class-card__menu{flex:none;position:relative}.class-card__menu-summary{border:1px solid var(--color-border);border-radius:var(--radius);min-height:2.5rem;color:var(--color-primary);cursor:pointer;align-items:center;padding:0 .75rem;font-weight:600;list-style:none;display:inline-flex}.class-card__menu-summary::-webkit-details-marker{display:none}.class-card__menu-items{z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;min-width:10rem;margin-top:.35rem;padding:.35rem;display:flex;position:absolute;right:0}.class-card__menu-items a,.class-card__menu-button{border-radius:calc(var(--radius) / 2);min-height:2.5rem;color:var(--color-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;padding:0 .6rem;font-size:1rem;text-decoration:none;display:flex}.class-card__confirm{border-top:1px solid var(--color-border);flex-direction:column;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.class-card__confirm-explanation{color:var(--color-text-muted);font-size:.9rem}.class-card__confirm-actions{flex-wrap:wrap;gap:.75rem;display:flex}.class-card--archived{background:var(--color-bg)}.class-groups-page{flex-direction:column;gap:1rem;display:flex}.class-groups__hint{color:var(--color-text-muted);font-size:.9rem}.class-groups__list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.class-groups__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:1rem;display:flex}.class-groups__card-header{align-items:center;gap:.5rem;display:flex}.class-groups__card-position{flex:1;font-weight:600}.class-groups__swatch{border:1px solid var(--color-border);border-radius:50%;flex:none;width:1rem;height:1rem;display:inline-block}.class-groups__fields{grid-template-columns:1fr auto;align-items:center;gap:.25rem .75rem;display:grid}.class-groups__card label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.class-groups__card input[type=text],.class-groups__card select,.class-groups__card textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;padding:.5rem .75rem}.class-groups__card textarea{resize:vertical;min-height:8rem}.class-groups__count{color:var(--color-text-muted);font-size:.85rem}.class-groups__preview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.class-groups__preview-group h3{align-items:center;gap:.5rem;font-size:1rem;display:flex}.class-groups__preview-group ul{margin:.25rem 0 0;padding-left:1.5rem}.class-groups__issues{gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.class-groups__issue{border-radius:var(--radius);padding:.5rem .75rem;font-size:.9rem}.class-groups__issue--error{background:var(--color-danger-bg);color:var(--color-danger)}.class-groups__issue--warning{color:#854d0e;background:#fefce8}.class-groups__result{background:var(--color-surface);border:1px solid var(--color-success);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem;display:flex}.class-groups__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.class-groups__summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:1rem;display:flex}.class-groups__summary ul{margin:0;padding-left:1.25rem}.class-groups__duplicates-link{text-align:center}.roster-import__error{color:var(--color-danger);font-weight:600}.duplicate-teams-page{flex-direction:column;gap:1rem;display:flex}.duplicate-teams-page table{border-collapse:collapse;width:100%}.duplicate-teams-page th,.duplicate-teams-page td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:.5rem .75rem}.duplicate-teams-page td:has(>input[type=radio]){text-align:center}.duplicate-teams__team-name{align-items:center;gap:.5rem;display:flex}.duplicate-teams__comparison,.duplicate-teams__result{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem;display:flex}.duplicate-teams__confirm{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.toast-viewport{left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));z-index:60;gap:var(--space-2);width:min(30rem, calc(100vw - 2 * var(--space-4)));pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);color:#f8fafc;box-shadow:var(--shadow-overlay);background:#1e293b;animation:.18s ease-out toast-in;display:flex}.toast--success{background:#14532d}.toast--error{background:#7f1d1d}.toast__message{font-size:var(--font-size-sm);flex:1;line-height:1.35}.toast__action{min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);color:inherit;font:inherit;cursor:pointer;background:#f8fafc24;border:0;flex-shrink:0;font-weight:700;text-decoration:underline}.toast__action:hover{background:#f8fafc3d}.toast__close{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-sm);color:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;font-size:1.5rem;line-height:1}.toast__close:hover{background:#f8fafc24}.toast :focus-visible{outline-offset:2px;outline:3px solid #f8fafc}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media (width>=48rem){.toast-viewport{left:auto;right:var(--space-5);transform:none}}.control-page{width:100%;max-width:30rem;margin:0 auto}.control-page__meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.control-page__meta .button{margin-left:auto}.control-tabs{border-bottom:1px solid var(--color-border);gap:.5rem;margin:.75rem 0;display:flex}.control-tabs__link{text-align:center;min-height:2.75rem;color:var(--color-text-muted);border-bottom:3px solid #0000;flex:1 1 0;justify-content:center;align-items:center;padding:.5rem .75rem;font-weight:700;text-decoration:none;display:flex}.control-tabs__link--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.view-toggle{gap:.5rem;margin-bottom:.5rem;display:flex}.view-toggle__button{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.5rem;color:var(--color-text);cursor:pointer;flex:1 1 0;padding:.4rem .7rem;font-weight:600}.view-toggle__button--active{border-color:var(--color-primary);color:var(--color-primary)}.team-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.team-list__item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding-bottom:.5rem;overflow:hidden}.team-card{flex-direction:column;gap:.35rem;padding:.75rem .9rem;display:flex}.team-card__row{grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:.6rem;display:grid}.team-card__rank{color:var(--color-text-muted);min-width:1.6rem;font-weight:700}.team-card__swatch{border-radius:50%;flex:none;width:1.25rem;height:1.25rem}.team-card__swatch--light{border:1px solid var(--color-border)}.team-card__name{overflow-wrap:anywhere;font-weight:600}.team-card__students{color:var(--color-text-muted);white-space:nowrap;font-size:.85rem}.team-card__score{white-space:nowrap;font-weight:700}.team-card__participation{color:var(--color-text-muted);flex-wrap:wrap;align-items:baseline;gap:.4rem .75rem;font-size:.85rem;display:flex}.team-card__participation-empty{font-style:italic}.team-card__completed-cycles{white-space:nowrap}.team-list__students-toggle{color:var(--color-primary);cursor:pointer;background:0 0;border:none;min-height:2rem;margin:0 .9rem;padding:.4rem 0;font-size:.85rem;font-weight:600;display:block}.student-list{color:var(--color-text-muted);flex-direction:column;gap:.25rem;margin:0;padding:.25rem .9rem .25rem 1.3rem;list-style:none;display:flex}.student-participation-list{flex-direction:column;gap:.6rem;margin:0;padding:.25rem .9rem .5rem;list-style:none;display:flex}.student-participation-list__item{border-top:1px solid var(--color-border);grid-template-columns:1fr auto;align-items:center;gap:.35rem .6rem;padding-top:.5rem;display:grid}.student-participation-list__name{grid-column:1;font-weight:600}.student-participation-list__status{color:var(--color-text-muted);text-align:right;grid-column:2;font-size:.8rem}.student-participation-list__participate-button,.student-participation-list__absence-button{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;grid-column:span 1;min-height:2.5rem;padding:0 .75rem;font-size:.85rem;font-weight:600}.student-participation-list__participate-button{grid-column:1}.student-participation-list__absence-button{grid-column:2}.student-participation-list__participate-button:disabled,.student-participation-list__absence-button:disabled{opacity:.6;cursor:not-allowed}.student-participation-list__confirm{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.student-participation-list__confirm-button,.student-participation-list__cancel-button{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:2.25rem;padding:0 .75rem;font-weight:600}.student-participation-list__confirm-button{border-color:var(--color-danger);color:var(--color-danger)}.score-controls{flex-direction:column;gap:.5rem;padding:0 .9rem .5rem;display:flex}.score-controls__row{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.score-controls__button{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:2.75rem;font-size:1rem;font-weight:700}.score-controls__button--add{color:var(--color-success);border-color:var(--color-success)}.score-controls__button--remove{color:var(--color-danger);border-color:var(--color-danger)}.score-controls__custom{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.75rem;color:var(--color-text);cursor:pointer;font-weight:600}.undo-button{flex-direction:column;gap:.25rem;display:flex}.undo-button__action{border-radius:var(--radius);border:1px solid var(--color-danger);background:var(--color-surface);min-height:3rem;color:var(--color-danger);cursor:pointer;font-size:1rem;font-weight:700}.undo-button__description{color:var(--color-text-muted);font-size:.85rem}.control-page__feedback{color:var(--color-primary);min-height:1.25rem;font-size:.9rem;font-weight:600}.score-history{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem}.score-history__toggle{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;min-height:2.5rem;font-size:1rem;font-weight:700}.score-history__empty{color:var(--color-text-muted);font-size:.9rem}.score-history__list{flex-direction:column;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.score-history__item{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding-top:.5rem;font-size:.9rem;display:flex}.score-history__time{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.score-history__tag{color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;font-weight:700}.score-history__tag--bonus{color:var(--color-primary);border-color:var(--color-primary)}.modal-overlay{z-index:100;background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.custom-score-modal{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:22rem;padding:1.25rem}.custom-score-modal__form{flex-direction:column;gap:.6rem;display:flex}.custom-score-modal__form label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.custom-score-modal__form input{border-radius:var(--radius);border:1px solid var(--color-border);min-height:2.75rem;padding:0 .75rem;font-size:1rem}.custom-score-modal__error{color:var(--color-danger);font-size:.9rem}.custom-score-modal__actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.custom-score-modal__actions button{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:2.75rem;padding:0 1.1rem;font-weight:700}.custom-score-modal__actions button[type=submit]{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primary-text)}.control-page__sync{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:1rem;display:flex}.control-page__sync h2{font-size:1rem}.demo-sync-panel{flex-direction:column;gap:.6rem;display:flex}.demo-sync-panel label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.demo-sync-panel input{border-radius:var(--radius);border:1px solid var(--color-border);min-height:2.75rem;padding:0 .75rem}.demo-sync-panel button{border-radius:var(--radius);background:var(--color-primary);min-height:2.75rem;color:var(--color-primary-text);cursor:pointer;border:none;font-weight:700}.demo-sync-panel__status{color:var(--color-text-muted);font-size:.85rem}.demo-sync-panel__offline{color:var(--color-danger);font-size:.85rem}.new-lesson-control{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.75rem .9rem;display:flex}.new-lesson-control__current{font-weight:600}.new-lesson-control__confirm{flex-direction:column;gap:.5rem;width:100%;display:flex}.new-lesson-control__explanation{color:var(--color-text-muted);font-size:.9rem}.new-lesson-control__confirm-actions{flex-wrap:wrap;gap:.75rem;display:flex}.student-score{border-top:1px dashed var(--color-border);flex-direction:column;gap:.5rem;width:100%;padding:.5rem 0 .25rem;display:flex}.student-score__header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.student-score__name{font-weight:600}.student-score__total{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.student-score__buttons{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.student-score__button{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:2.75rem;color:var(--color-text);cursor:pointer;padding:.5rem .25rem;font-size:1rem;font-weight:600}.student-score__button:hover:not(:disabled){border-color:var(--color-accent,currentColor)}.student-score__button--custom{font-size:.9rem}.student-score__button:disabled,.student-score__undo:disabled{opacity:.5;cursor:not-allowed}.student-score__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.student-score__status{align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.student-score__status-icon{font-weight:700}.student-score__status--done{color:var(--color-success,#15803d)}.student-score__status--pending,.student-score__status--deferred,.student-score__status--absent{color:var(--color-text-muted)}.student-score__undo{border:1px solid var(--color-border);border-radius:var(--radius);min-height:2.5rem;color:var(--color-text);cursor:pointer;background:0 0;padding:.4rem .7rem;font-size:.85rem}.cycle-progress{flex-direction:column;gap:.3rem;padding:.5rem .75rem .65rem;display:flex}.cycle-progress__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem;display:flex}.cycle-progress__cycle{font-weight:600}.cycle-progress__bonus{color:var(--color-text-muted)}.cycle-progress__label{font-variant-numeric:tabular-nums;margin:0;font-size:.9rem}.cycle-progress__track{background:var(--color-border);border-radius:999px;height:.55rem;overflow:hidden}.cycle-progress__bar{background:var(--color-success,#15803d);border-radius:999px;height:100%;transition:width .32s ease-out}.cycle-toast-region{min-height:0}.cycle-toast{border:1px solid var(--color-success,#15803d);border-radius:var(--radius);background:var(--color-surface);align-items:center;gap:.6rem;margin:.4rem 0;padding:.65rem .8rem;animation:.26s ease-out cycle-toast-in;display:flex}.cycle-toast__icon{font-size:1.4rem}.cycle-toast__text{flex-direction:column;gap:.1rem;font-size:.9rem;display:flex}@keyframes cycle-toast-in{0%{opacity:0;transform:translateY(-.4rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cycle-toast{animation:none}.cycle-progress__bar{transition:none}}.control-page__settings{margin-top:1rem}.cycle-bonus{flex-direction:column;gap:.35rem;display:flex}.cycle-bonus__label{font-size:.9rem;font-weight:600}.cycle-bonus__row{gap:.5rem;display:flex}.cycle-bonus__input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-width:0;min-height:2.75rem;color:var(--color-text);flex:auto;padding:.5rem .6rem;font-size:1rem}.cycle-bonus__save{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:2.75rem;color:var(--color-text);cursor:pointer;padding:.5rem 1rem;font-weight:600}.cycle-bonus__hint{color:var(--color-text-muted);margin:0;font-size:.8rem}.cycle-bonus__error{color:var(--color-danger,#b91c1c);margin:0;font-size:.85rem}.control-page__attendance{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.6rem;margin-top:.75rem;padding:.9rem;display:flex}.control-page__attendance h2{margin:0;font-size:1.1rem}.attendance-summary{border:1px solid var(--color-success);border-radius:var(--radius);background:var(--color-surface);padding:.6rem .75rem}.attendance-summary__title{color:var(--color-success);margin:0;font-weight:700}.attendance-summary__counts{color:var(--color-text-muted);margin:.2rem 0 0}.attendance-progress{color:var(--color-text-muted);margin:0;font-size:.9rem}.attendance-team{border-top:1px solid var(--color-border);padding-top:.5rem}.attendance-team--unassigned{border-top-style:dashed}.attendance-team__header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.attendance-team__name{margin:0;font-size:.95rem}.attendance-list{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.attendance-list__item{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.attendance-list__name{flex:1;min-width:0}.attendance-list__dirty{color:var(--color-primary);font-weight:700}.attendance-list__controls{gap:.4rem;display:flex}.attendance-status{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-width:4.5rem;min-height:2.5rem;color:var(--color-text);cursor:pointer;padding:.4rem .7rem;font-weight:600}.attendance-status:disabled{opacity:.5;cursor:not-allowed}.attendance-status--present.attendance-status--active{border-color:var(--color-success);color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.attendance-status--absent.attendance-status--active{border-color:var(--color-danger);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.attendance-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.3rem;display:flex}.attendance-actions__hint{color:var(--color-primary);font-size:.85rem}.button--small{min-height:2.2rem;padding:.35rem .7rem;font-size:.85rem}.scoring-panel{flex-direction:column;gap:.75rem;display:flex}.scoring-team{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding-bottom:.5rem}.scoring-team--unassigned{border-style:dashed}.scoring-team__name{margin:.75rem .9rem 0;font-size:1rem}.scoring-team__empty{color:var(--color-text-muted);margin:.5rem .9rem;font-size:.9rem;font-style:italic}.scoring-team__collective{border-top:1px solid var(--color-border);flex-direction:column;gap:.3rem;margin-top:.5rem;padding:.6rem .9rem 0;display:flex}.scoring-team__collective-title{margin:0;font-size:.95rem}.scoring-team__collective-score{color:var(--color-text-muted);margin:0;font-weight:700}.student-score__status--unassigned{color:var(--color-text-muted)}.history-panel{flex-direction:column;gap:1rem;display:flex}.history-panel__section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.9rem}.history-panel__filters{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.history-panel__filters label{color:var(--color-text-muted);flex-direction:column;flex:8rem;gap:.2rem;font-size:.8rem;font-weight:600;display:flex}.history-panel__filters select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.5rem;color:var(--color-text);padding:.3rem .5rem}.history-panel__summary{color:var(--color-text-muted);margin:0 0 .5rem;font-size:.9rem}.history-panel__table-wrap{overflow-x:auto}.history-panel__table{border-collapse:collapse;width:100%;font-size:.85rem}.history-panel__table th,.history-panel__table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.45rem .6rem}.history-panel__table th{color:var(--color-text-muted);font-weight:700}.grades-panel{flex-direction:column;gap:.9rem;display:flex}.grades-panel__toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.75rem;display:flex}.grades-panel__field{color:var(--color-text-muted);flex-direction:column;flex:0 7rem;gap:.2rem;font-size:.8rem;font-weight:600;display:flex}.grades-panel__field--activity{flex:12rem}.grades-panel__field input,.grades-panel__field select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.5rem;color:var(--color-text);padding:.3rem .5rem}.grades-panel__toolbar-actions{flex-wrap:wrap;gap:.4rem;margin-left:auto;display:flex}.grades-panel__stage{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.6rem;display:flex}.grades-panel__stage-line{margin:0;font-weight:700}.grades-panel__loading,.grades-panel__empty{color:var(--color-text-muted);margin:0;font-style:italic}.grades-panel__feedback{color:var(--color-text-muted);margin:0;font-weight:600}.grades-panel__retry{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.grades-panel__footer{justify-content:flex-end;display:flex}.grades-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0;padding:.75rem}.grades-group__legend{padding:0 .35rem;font-weight:700}.grades-group__stage{color:var(--color-text-muted);margin:0 0 .6rem;font-size:.85rem}.grades-group__empty{color:var(--color-text-muted);margin:0;font-size:.9rem;font-style:italic}.grades-group__list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.grades-group__actions{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding-top:.6rem;display:flex}.grades-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding-bottom:.6rem;display:flex}.grades-row:last-child{border-bottom:none;padding-bottom:0}.grades-row__name{flex:10rem;font-weight:600}.grades-row__grade{color:var(--color-text-muted);align-items:center;gap:.35rem;font-size:.85rem;display:flex}.grades-row__grade input{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);width:4.5rem;min-height:2.5rem;color:var(--color-text);padding:.3rem .5rem}.grades-row__grade input:disabled{opacity:.5}.grades-row__statuses{flex-wrap:wrap;gap:.3rem;display:flex}.grades-status{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.25rem;color:var(--color-text);cursor:pointer;padding:.25rem .6rem;font-size:.8rem;font-weight:600}.grades-status--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.grades-status:disabled{opacity:.5;cursor:not-allowed}.grades-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.9rem;display:flex}.grades-form__title{margin:0;font-size:1rem}.grades-form__preview{color:var(--color-text-muted);margin:0;font-size:.85rem}.grades-form__row{flex-wrap:wrap;gap:.6rem;display:flex}.grades-form__field{color:var(--color-text-muted);flex-direction:column;flex:8rem;gap:.2rem;font-size:.8rem;font-weight:600;display:flex}.grades-form__field input,.grades-form__field select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.5rem;color:var(--color-text);padding:.3rem .5rem}.grades-form__types{border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;gap:.75rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.grades-form__types legend{color:var(--color-text-muted);padding:0 .35rem;font-size:.8rem;font-weight:700}.grades-form__error{color:var(--color-danger);margin:0;font-size:.85rem;font-weight:600}.grades-form__actions{flex-wrap:wrap;gap:.5rem;display:flex}.team-score-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.team-score-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius);flex-wrap:wrap;display:flex}.team-score-row__identity{align-items:center;gap:var(--space-2);flex:8rem;min-width:0;display:flex}.team-score-row__color{border-radius:var(--radius-pill);flex:none;width:.75rem;height:1.75rem}.team-score-row__name{overflow-wrap:anywhere;min-width:0;font-weight:600}.team-score-row__score{font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.25rem;font-weight:700}.team-score-row__actions{gap:var(--space-2);flex:none;display:flex}.score-chip{min-width:var(--touch-target);min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-text);cursor:pointer;touch-action:manipulation;font-size:1rem;font-weight:700}.score-chip--ghost{background:var(--color-surface);color:var(--color-primary)}.score-chip:disabled{opacity:.5;cursor:not-allowed}@media (width>=48rem){.team-score-list{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr))}}.class-bar{align-items:center;gap:var(--space-2);min-width:0;display:flex}.class-bar__back{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);flex:none;justify-content:center;align-items:center;font-size:1.25rem;text-decoration:none;display:inline-flex}.class-bar__identity{flex:1;min-width:0}.class-bar__name{overflow-wrap:anywhere;font-size:1.15rem;font-weight:700;line-height:1.2}.class-bar__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.class-bar__tools{flex:none;position:relative}.class-bar__tools>summary{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;justify-content:center;align-items:center;font-size:1.25rem;list-style:none;display:inline-flex}.class-bar__tools>summary::-webkit-details-marker{display:none}.class-bar__tools-menu{right:0;top:calc(100% + var(--space-1));z-index:20;min-width:14rem;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-overlay);flex-direction:column;display:flex;position:absolute}.class-bar__tools-menu a{padding:var(--space-3);min-height:var(--touch-target);border-radius:var(--radius-sm);color:var(--color-text);align-items:center;text-decoration:none;display:flex}.class-bar__tools-menu a:hover{background:var(--color-surface-sunken)}.score-activity{border:1px solid var(--color-border,#d7dce5);background:var(--color-surface,#fff);border-radius:.875rem;gap:.5rem;margin:1rem 0;padding:1rem;display:grid}.score-activity label{font-weight:700}.score-activity input{border:1px solid var(--color-border,#aeb7c5);width:100%;min-height:2.75rem;font:inherit;border-radius:.625rem;padding:.65rem .75rem}.score-activity p{color:var(--color-text-muted,#566174);margin:0;font-size:.9rem}.control-page__hint{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.9rem}.control-page__loading{color:var(--color-text-muted);padding:1.5rem 0}.roster-failure,.roster-empty{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.roster-failure{border-color:var(--color-danger)}.roster-failure__code{color:var(--color-text-muted);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.roster-empty p{margin:0;font-weight:600}.team-score-panel__list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.team-score-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;gap:.5rem;padding:1rem;display:flex}.team-score-card__header{align-items:center;gap:.5rem;display:flex}.team-score-card__header h3{margin:0;font-size:1.05rem}.team-score-card__color{border-radius:50%;flex:none;width:.9rem;height:.9rem}.team-score-card__score{color:var(--color-text-muted);margin:0}.team-score-card__score strong{color:var(--color-text);font-size:1.25rem}.team-score-card__actions{flex-wrap:wrap;gap:.5rem;display:flex}.team-score-card__undo{align-self:flex-start;font-size:.85rem}.attendance-team__count{color:var(--color-text-muted);font-size:.85rem}.attendance-team__actions{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.attendance-actions--sticky{z-index:2;border-top:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem;display:flex;position:sticky;bottom:0}@media (width<=480px){.team-score-card__actions .button{flex:4rem}}.activities-filter{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.75rem 0;display:flex}.activities-filter label{color:var(--color-text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.activities-filter input,.activities-filter select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.4rem;color:var(--color-text);padding:.3rem .5rem}.activities-filter .button{margin-left:auto}.activities-list ul{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.activities-empty{color:var(--color-text-muted);text-align:center;padding:1rem}.activity-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.activity-card--selected{border-color:var(--color-primary)}.activity-card__head{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;flex-direction:column;gap:.25rem;padding:.75rem .9rem;display:flex}.activity-card__title{font-size:1.05rem;font-weight:700}.activity-card__meta,.activity-card__last{color:var(--color-text-muted);font-size:.85rem}.activity-detail{flex-direction:column;gap:.6rem;padding:0 .9rem .9rem;display:flex}.activity-detail__actions{flex-wrap:wrap;gap:.5rem;display:flex}.stage-chips{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.stage-chip{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.35rem .6rem;font-size:.85rem}.stage-chip--active{border-color:var(--color-primary);color:var(--color-primary)}.activity-indicators{color:var(--color-text-muted);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.75rem;padding:.5rem 0;font-size:.85rem;display:flex}.activity-form{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;gap:.6rem;margin-bottom:.75rem;padding:.9rem;display:flex}.activity-form h3{margin:0}.activity-form__field{color:var(--color-text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.activity-form__field input,.activity-form__field select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.4rem;color:var(--color-text);padding:.35rem .5rem}.activity-form__row{flex-wrap:wrap;gap:.6rem;display:flex}.activity-form__row .activity-form__field{flex:1;min-width:8rem}.activity-form__type{border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;gap:1rem;padding:.5rem;display:flex}.activity-form__type label{align-items:center;gap:.3rem;display:flex}.activity-form__preview{color:var(--color-primary);margin:0;font-weight:600}.activity-form__error,.stage-results__error{color:var(--color-danger);margin:0}.activity-form__actions{gap:.6rem;display:flex}.stage-results{border-top:1px solid var(--color-border);flex-direction:column;gap:.6rem;padding-top:.6rem;display:flex}.stage-results__max{margin:0;font-weight:600}.stage-results__team{border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem}.stage-results__team legend{padding:0 .3rem;font-weight:700}.stage-results__list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.stage-results__row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding-bottom:.5rem;display:flex}.stage-results__student{flex-direction:column;flex:1;min-width:8rem;display:flex}.stage-results__name{font-weight:600}.stage-results__hint{color:var(--color-danger);font-size:.8rem}.stage-results__field{color:var(--color-text-muted);flex-direction:column;gap:.15rem;font-size:.8rem;display:flex}.stage-results__field-label{font-size:.75rem}.stage-results__field input,.stage-results__field select{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.4rem;color:var(--color-text);padding:.3rem .4rem}.stage-results__field--points input{width:5rem}.stage-results__of{font-size:.75rem}.stage-results__check{align-items:center;gap:.3rem;font-size:.85rem;display:flex}.public-bonus-config{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem 0;font-size:.85rem;display:flex}.public-bonus-config--editing{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;padding:.75rem}.public-bonus-config--editing label{flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.public-bonus-config--editing input[type=number]{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:2.2rem;color:var(--color-text);max-width:6rem;padding:.3rem .5rem}.public-bonus-config__locked{font-style:italic}.public-bonus-config__hint{font-size:.75rem}.team-progress{border-top:1px dashed var(--color-border);margin-top:.6rem;padding-top:.6rem}.team-progress__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.team-progress__row{border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.3rem;padding:.5rem .75rem;display:flex}.team-progress__team{font-weight:600}.team-progress__hint{color:var(--color-text-muted);margin:0;font-size:.85rem}.team-progress__live,.team-progress__awarded{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.team-progress__reached{color:var(--color-primary);font-weight:600}.team-progress__disabled{color:var(--color-text-muted);font-style:italic}.modal{background:var(--color-surface);border-radius:var(--radius);flex-direction:column;gap:.6rem;width:100%;max-width:26rem;padding:1.25rem;display:flex}.activity-board__meta,.activity-board__progress{color:var(--color-text-muted);font-size:var(--font-size-sm)}.activity-board__progress{font-weight:600}.activity-board__list{margin:var(--space-3) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.activity-team-card{gap:var(--space-1);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius);flex-direction:column;display:flex}.activity-team-card__head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.activity-team-card__name{font-size:1rem;font-weight:700}.activity-team-card__counts{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:600}.activity-team-card__detail,.activity-team-card__average{font-size:var(--font-size-sm);color:var(--color-text-muted)}.activity-team-card__average{color:var(--color-text);font-weight:600}.activity-team-card__average--none{color:var(--color-warning);font-weight:500}.activity-team-card__actions{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.activity-team-card__sent{color:var(--color-success);font-weight:700;font-size:var(--font-size-sm)}.activity-team-card__blocked{color:var(--color-text-muted);font-size:var(--font-size-sm)}.grading-flow{gap:var(--space-3);flex-direction:column;display:flex}.grading-flow__header{align-items:center;gap:var(--space-3);display:flex}.grading-flow__team{font-size:1rem;font-weight:700}.grading-flow__position{font-size:var(--font-size-sm);color:var(--color-text-muted)}.grading-flow__header .save-indicator{margin-left:auto}.grading-flow__student{overflow-wrap:anywhere;font-size:1.5rem;font-weight:700}.grading-flow__current{font-size:var(--font-size-sm);color:var(--color-text-muted);min-height:1.25em}.grading-flow__grades{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(4rem,1fr));display:grid}.grade-key{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-height:3.25rem;color:var(--color-text);cursor:pointer;touch-action:manipulation;font-size:1.25rem;font-weight:700}.grade-key--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.grade-key--small{min-height:var(--touch-target);padding:0 var(--space-2);font-size:1rem}.grade-key:disabled{opacity:.5;cursor:not-allowed}.grading-flow__nudges,.grading-flow__statuses,.grading-flow__nav{gap:var(--space-2);flex-wrap:wrap;display:flex}.grading-flow__nav{justify-content:space-between}.status-key{min-height:var(--touch-target);border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;flex:1;font-size:1rem;font-weight:600}.status-key--active{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning);border-width:2px}.grading-flow__custom{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-primary-soft);border-radius:var(--radius);flex-wrap:wrap;display:flex}.grading-flow__custom input{min-height:var(--touch-target);min-width:5rem;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:1.1rem}.grading-flow__error{color:var(--color-danger);font-size:var(--font-size-sm);width:100%}.grading-flow__bulk summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-muted);min-height:var(--touch-target);align-items:center;display:flex}.grading-flow__bulk-actions{gap:var(--space-2);padding-top:var(--space-2);flex-direction:column;display:flex}.grading-flow__bulk-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.grading-flow__bulk-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.grading-flow__confirm{gap:var(--space-2);padding:var(--space-3);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius);flex-direction:column;display:flex}.grading-flow__footer{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2)}.grading-flow__summary,.grading-flow__average{font-size:var(--font-size-sm);color:var(--color-text-muted)}.grading-flow__average{color:var(--color-text);font-weight:700}.save-indicator{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);white-space:nowrap;font-weight:700}.save-indicator--saving{background:var(--color-surface-sunken);color:var(--color-text-muted)}.save-indicator--saved{background:var(--color-success-bg);color:var(--color-success)}.save-indicator--error{background:var(--color-danger-bg);color:var(--color-danger)}@media (width>=48rem){.activity-board__list{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}}.performance-privacy-note{color:var(--color-text-muted);margin:.25rem 0 .5rem;font-size:.8rem;font-style:italic}.performance-export{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 .75rem;display:flex}.performance-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.performance-tabs__item{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem .75rem;font-size:.9rem}.performance-tabs__item--active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:600}.performance-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius);max-width:100%;overflow-x:auto}.performance-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.85rem}.performance-table th,.performance-table td{border-bottom:1px solid var(--color-border);text-align:left;padding:.45rem .6rem}.performance-table thead th{background:var(--color-surface);position:sticky;top:0}.performance-table__ra{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);width:6rem;min-height:2rem;color:var(--color-text);padding:.2rem .4rem}.performance-table-wrap--history{margin-top:1rem}.performance-table-wrap--history h3{margin:.5rem .75rem;font-size:.95rem}@media (width<=640px){.performance-table{font-size:.78rem}}.games-page{color:#0f2b5c;background:#f4f8fc;min-height:100vh}.games-hero{color:#fff;background:#0f2b5c;padding:4.5rem max(1.5rem,50% - 34rem)}.games-hero__eyebrow{color:#e8f2fb;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6rem;margin:0 0 .7rem;font-weight:800;display:flex}.games-hero__eyebrow img{border:1px solid #819cb9;border-radius:.45rem;width:2rem;height:2rem}.games-hero h1{max-width:42rem;margin:0;font-size:clamp(2.25rem,6vw,4.5rem);line-height:1}.games-hero>p:not(.games-hero__eyebrow){max-width:42rem;margin:1.25rem 0;font-size:1.15rem;line-height:1.55}.games-hero__teacher-link{color:#fff;background:#ea580c;border-radius:.75rem;padding:.75rem 1rem;font-weight:800;text-decoration:none;display:inline-block}.games-catalogue{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.25rem;max-width:68rem;margin:0 auto;padding:2.5rem 1.5rem 4rem;display:grid}.game-card{background:#fff;border:1px solid #c8d9ec;border-radius:1rem;flex-direction:column;padding:1.5rem;display:flex;box-shadow:0 .4rem 1.5rem #0f2b5c14}.game-card__topline{color:#407bb7;justify-content:space-between;gap:.5rem;font-size:.85rem;font-weight:800;display:flex}.game-status{color:#4a5568;background:#e7edf5;border-radius:999px;padding:.15rem .45rem}.game-status--live{color:#17663a;background:#dff5e6}.game-card h2{margin:1rem 0 .25rem;font-size:1.45rem}.game-card__topic{color:#ea580c;margin:0;font-weight:800}.game-card dl{margin:1.25rem 0}.game-card dl div{margin-top:.85rem}.game-card dt{color:#407bb7;text-transform:uppercase;font-size:.78rem;font-weight:800}.game-card dd{margin:.25rem 0 0;line-height:1.45}.game-card__action{color:#fff;text-align:center;background:#0f2b5c;border-radius:.65rem;margin-top:auto;padding:.7rem .9rem;font-weight:800;text-decoration:none}.game-card__waiting{color:#64748b;margin-top:auto;font-weight:700}.game-shell{color:#0f2b5c;background:#f4f8fc;min-height:100vh;padding:clamp(1rem,4vw,3rem);font-family:inherit}.game-entry,.game-board{background:#fff;border:1px solid #c8d9ec;border-radius:1.5rem;max-width:56rem;margin:4vh auto;padding:clamp(1.5rem,5vw,3rem);box-shadow:0 .8rem 2rem #0f2b5c14}.game-entry{max-width:32rem}.game-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#2774b2;margin:0 0 .65rem;font-size:.8rem;font-weight:900}.game-entry h1,.game-board h1{margin:.25rem 0 1rem;font-size:clamp(2rem,5vw,3.25rem);line-height:1.1}.game-entry p,.game-board p{line-height:1.5}.game-entry form{gap:.55rem;margin:2rem 0 1rem;display:grid}.game-entry label{margin-top:.8rem;font-weight:800}.game-entry input{width:100%;font:inherit;border:2px solid #9bb9d7;border-radius:.75rem;padding:.9rem 1rem;font-size:1rem}.game-entry input:focus-visible,.game-shell button:focus-visible{outline-offset:3px;outline:3px solid #ea580c}.game-entry button,.game-feedback button,.teacher-games__heading button{color:#fff;font:inherit;cursor:pointer;background:#ea580c;border:0;border-radius:.75rem;padding:.9rem 1.2rem;font-weight:900}.game-entry button{margin-top:1rem}.game-shell button:disabled{opacity:.5;cursor:not-allowed}.game-error{color:#9a251e;background:#fff1f0;border-radius:.75rem;padding:.8rem 1rem;font-weight:700}.game-board header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:1rem;display:flex}.game-board header p:last-child{margin:0;font-weight:700}.game-progress{background:#dce9f5;border-radius:999px;height:.65rem;margin:1.5rem 0 2.5rem;overflow:hidden}.game-progress span{background:#ea580c;height:100%;transition:width .25s;display:block}.game-instruction{font-size:1.2rem;font-weight:700}.number-line{grid-template-columns:repeat(13,minmax(2.5rem,1fr));padding:2rem 0 1rem;display:grid;position:relative;overflow-x:auto}.number-line:before{content:"";background:#447cb5;height:4px;position:absolute;top:4.7rem;left:2%;right:2%}.number-line__point{color:#0f2b5c;font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:.6rem;min-width:2.5rem;padding:.4rem 0;font-size:1.1rem;font-weight:900;display:flex;position:relative}.number-line__point span{background:#e7f1fb;border-radius:50%;place-items:center;width:2.1rem;height:2.1rem;display:grid}.number-line__point i{z-index:1;background:#fff;border:3px solid #447cb5;border-radius:50%;width:1rem;height:1rem;display:block}.number-line__point:not(:disabled):hover span{background:#ffd9c0}.number-line__point--start span,.number-line__point--start i{color:#fff;background:#2774b2}.game-legend{color:#45617d;font-size:.95rem}.game-feedback{border-radius:1rem;gap:.45rem;margin-top:2rem;padding:1.2rem;display:grid}.game-feedback--correct{color:#145d32;background:#dff5e6}.game-feedback--wrong{color:#8a3908;background:#fff0e5}.game-feedback strong{font-size:1.3rem}.game-feedback button{justify-self:start;margin-top:.6rem}.game-loading{text-align:center;margin:20vh auto}.teacher-games{color:#0f2b5c;background:#fff;border:1px solid #c8d9ec;border-radius:1rem;margin:2rem 0;padding:1.5rem}.teacher-games__heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.teacher-games__heading h2{margin:.1rem 0}.teacher-games__heading p:last-child{margin:.3rem 0 0}.teacher-game-session{border-top:1px solid #d4e1ed;margin-top:1.5rem;padding-top:1.2rem}.teacher-game-session__top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.teacher-game-session__top>div{gap:.25rem;display:grid}.teacher-game-session__top strong{letter-spacing:.14em;font-size:2rem}.teacher-game-session__top small{font-size:.9rem}.teacher-game-session__top button{color:#0f2b5c;cursor:pointer;background:#fff;border:1px solid #b5cadf;border-radius:.6rem;padding:.6rem .9rem}.teacher-game-results{overflow-x:auto}.teacher-game-results table{border-collapse:collapse;text-align:left;width:100%}.teacher-game-results th,.teacher-game-results td{border-bottom:1px solid #d4e1ed;padding:.65rem}@media (width<=700px){.game-board{padding:1.2rem}.number-line{grid-template-columns:repeat(13,2.5rem)}.teacher-games__heading{flex-direction:column;align-items:start}}.game-race{border-bottom:3px dashed #b5cadf;height:2.1rem;margin:-1.2rem 0 2rem;position:relative}.game-race span{z-index:1;color:#ea580c;font-size:1.65rem;line-height:1;transition:left .35s;position:absolute;bottom:-.55rem}.game-race i{background:#fff;border:3px solid #0f2b5c;border-radius:50%;width:.8rem;height:.8rem;position:absolute;bottom:-.45rem;right:0}.game-competency{color:#0f2b5c;background:#e7f1fb;border-radius:999px;padding:.35rem .7rem;font-size:.85rem;font-weight:800;display:inline-block;margin:0 0 .9rem!important}.number-line__point--path i{background:#b8d8f1}.number-line__point--correct span,.number-line__point--correct i{color:#fff;background:#15723c;border-color:#15723c}.number-line__point--wrong span,.number-line__point--wrong i{color:#fff;background:#ac3d24;border-color:#ac3d24}.game-feedback span{line-height:1.5}.teacher-game-diagnostics{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem;margin:1rem 0;display:grid}.teacher-game-diagnostics div{background:#eef5fc;border-radius:.7rem;padding:.8rem}.teacher-game-diagnostics strong{font-size:.9rem;display:block}.teacher-game-diagnostics span{margin-top:.3rem;font-size:1.15rem;font-weight:900;display:block}.teacher-game-diagnostics small{color:#45617d;margin-top:.2rem;display:block}.teacher-game-session details{margin-top:1rem}.teacher-game-session summary{cursor:pointer;font-weight:800}.teacher-game-results th{text-align:left}.teacher-game-results td{vertical-align:top}.teacher-game-results td:last-child{min-width:7rem}.teacher-game-results .game-mistakes{color:#6c3b24;font-size:.85rem}.teacher-game-session__top>.teacher-game-session__actions{flex-wrap:wrap;gap:.5rem;display:flex}.teacher-game-session__actions button:first-child{color:#fff;background:#0f2b5c}.teacher-game-session__actions button:focus-visible{outline-offset:2px;outline:3px solid #ea580c}@media (width<=700px){.teacher-game-session__top{flex-direction:column;align-items:flex-start}.teacher-game-session__actions{width:100%}}.game-eyebrow--brand{align-items:center;gap:.6rem;display:flex}.game-eyebrow--brand img{border-radius:.4rem;width:2rem;height:2rem}.professor-page{color:#0f2b5c;background:#f4f8fc;min-height:100vh;padding:2rem max(1.25rem,50% - 32rem)}.professor-hero p,.professor-class-header p{color:#407bb7;margin:0 0 .35rem;font-weight:800}.professor-hero h1,.professor-class-header h1{margin:0;font-size:clamp(2rem,5vw,3.25rem)}.professor-hero span{max-width:43rem;margin-top:.75rem;line-height:1.5;display:block}.professor-safety,.professor-integration-note{color:#6b350e;background:#fff4e9;border-left:.3rem solid #ea580c;margin:1.5rem 0;padding:1rem;line-height:1.45}.professor-classes{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;display:grid}.professor-class-card{background:#fff;border:1px solid #c8d9ec;border-radius:1rem;flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.professor-class-card p,.professor-class-card h2{margin:0}.professor-class-card span{color:#58708f}.professor-class-card .button{width:fit-content;margin-top:.75rem}.professor-empty{background:#fff;border-radius:1rem;padding:1.5rem}.professor-empty h2,.professor-empty p{margin-top:0}.professor-class-page{max-width:72rem}.professor-class-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.professor-back{color:#0f2b5c;font-weight:800;text-decoration:none}.professor-class-tools{flex-wrap:wrap;gap:.75rem;margin:1.25rem 0;display:flex}.scoreboard{background:var(--color-bg);flex-direction:column;gap:clamp(.5rem,1.5vh,1rem);width:100%;height:100dvh;padding:clamp(.75rem,2vh,1.75rem) clamp(1rem,2.5vw,2.5rem);display:flex;overflow:hidden}.scoreboard__header{justify-content:space-between;align-items:baseline;gap:var(--space-4);flex:none;display:flex}.scoreboard__class{overflow-wrap:anywhere;font-size:clamp(1.5rem,3.5vw,3rem);line-height:1.1}.scoreboard__round{color:var(--color-text-muted);font-size:clamp(.95rem,1.6vw,1.5rem);font-weight:600}.scoreboard__status{align-items:center;gap:var(--space-3);flex:none;display:flex}.scoreboard__fullscreen{min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer;font-weight:600}.scoreboard__tie-banner{text-align:center;color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius);flex:none;padding:clamp(.35rem,1vh,.75rem);font-size:clamp(1.1rem,2.2vw,1.9rem);font-weight:700}.scoreboard__ranking{flex:1;grid-auto-rows:1fr;gap:clamp(.35rem,1vh,.75rem);min-height:0;margin:0;padding:0;list-style:none;display:grid}.scoreboard__ranking--two-columns{grid-template-columns:1fr}.scoreboard-row{border-radius:var(--radius);grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(.75rem,2vw,2rem);min-height:0;padding:0 clamp(1rem,2.5vw,2rem);font-size:clamp(1.1rem,3.2vh,2.75rem);font-weight:700;transition:box-shadow .3s,transform .3s;display:grid}.scoreboard-row--dark{color:#f8fafc}.scoreboard-row--light{color:#0f172a;border:2px solid var(--color-border)}.scoreboard-row--changed{box-shadow:0 0 0 .35rem var(--color-primary);transform:scale(1.015)}.scoreboard-row__rank{opacity:.9;flex-direction:column;align-items:flex-start;min-width:2.5ch;line-height:1;display:flex}.scoreboard-row__tie{letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:.4em;font-weight:600}.scoreboard-row__name{overflow-wrap:anywhere;min-width:0}.scoreboard-row__score{font-variant-numeric:tabular-nums}.scoreboard__footer{text-align:center;color:var(--color-text-muted);flex:none;min-height:1.5em;font-size:clamp(.9rem,1.6vw,1.35rem);font-weight:600}@media (width>=60rem){.scoreboard__ranking--two-columns{grid-template-rows:repeat(4,1fr);grid-template-columns:1fr 1fr;grid-auto-flow:column}}@media (prefers-reduced-motion:reduce){.scoreboard-row{transition:none}.scoreboard-row--changed{transform:none}}
