:root{color-scheme:light;--bg:#f7f8fa;--surface:#ffffff;--surface-muted:#f0f3f5;--border:#e1e6ea;--text:#24333e;--muted:#606f7b;--accent:#167ca5;--accent-strong:#116184;--accent-soft:#eaf3f7;--danger:#b34343;--danger-soft:#f6dddd;--warning:#7b5a10;--warning-soft:#fff2cc;--focus:#129fd0;--radius-card:12px;--radius-control:8px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;overflow-x:hidden;width:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,Segoe UI,sans-serif;letter-spacing:0;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.page-shell{min-height:100vh}.app-header{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(180px,1fr) auto;padding:12px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.app-header__brand,.brand-link{display:flex;align-items:center}.brand-link{color:var(--accent-strong);font-weight:800;gap:12px;min-width:0}.brand-link__school{color:var(--muted);font-size:.85rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-logo{display:block;height:auto;max-width:100%;object-fit:contain;width:200px}.brand-logo--auth{width:min(100%,380px)}.app-header__menu{align-items:center;display:flex;gap:16px}.app-nav{display:flex;flex-wrap:nowrap;gap:6px;justify-content:center}.logout-form{margin:0}.nav-toggle{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);display:none;height:42px;justify-content:center;padding:0;width:42px}.nav-toggle:hover{background:var(--surface-muted)}.icon-text-button,.nav-link{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-control);color:var(--muted);display:inline-flex;gap:8px;min-height:38px;padding:8px 10px}.icon-text-button:hover,.nav-link:hover{background:var(--surface-muted);color:var(--text)}.auth-shell,.main-content,.public-shell{margin:0 auto;max-width:1040px;padding:32px 24px 64px;width:100%}.auth-shell{align-items:center;display:grid;min-height:100vh;max-width:460px}.auth-shell img{max-width:100%;height:auto;width:auto}.auth-shell .brand-logo--auth{width:min(100%,380px)}.stack{display:grid;grid-gap:24px;gap:24px}.stack-sm{display:grid;grid-gap:10px;gap:10px}.page-title{display:grid;grid-gap:6px;gap:6px;margin-bottom:32px}.page-title h1,.page-title h2{font-size:clamp(1.5rem,2vw,2.1rem);line-height:1.4;margin:0}.page-title p{color:var(--muted);margin:0}.section{margin-top:36px}.section-header{align-items:flex-end;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.section-header h2,.section-header h3{font-size:1.1rem;margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;max-width:100%}.grid-2{display:grid;grid-gap:24px;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.grid-3{grid-gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.form-grid,.grid-3{display:grid;gap:14px}.form-grid{grid-gap:14px}.session-form{display:grid;grid-gap:14px;gap:14px}.class-setup{align-items:start;display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr)}.form-heading{font-size:1rem;margin:0}.class-settings__numbers{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))}.student-registration{display:grid;grid-gap:16px;gap:16px}.student-registration__identity,.student-registration__name{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(100px,.6fr)}.student-registration__name{grid-template-columns:minmax(0,1fr) auto}.class-setup .field{min-width:0}.student-registration__bulk,.student-registration__csv{border-top:1px solid var(--border);padding-top:16px}.student-registration__bulk .field textarea{min-height:68px}.student-registration__bulk .field-hint{font-weight:400}.student-registration__csv summary{color:var(--accent-strong);cursor:pointer;font-size:.9rem;font-weight:600}.student-registration__csv[open] summary{margin-bottom:14px}@media (max-width:760px){.class-setup{grid-template-columns:1fr;gap:16px}}.form-grid--inline{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.field{display:grid;grid-gap:6px;gap:6px}.checkbox-field span,.field span,.field>label{color:var(--muted);font-size:.85rem;font-weight:700}.field input,.field select,.field textarea{background:#fff;border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);min-height:42px;padding:9px 10px;width:100%}.field textarea{min-height:112px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);outline:2px solid rgba(22,124,165,.2)}.field-hint{color:var(--muted);font-size:.82rem;line-height:1.5;margin:0}.password-field__control{position:relative}.password-field__control input{padding-right:48px}.password-field__toggle{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);display:inline-flex;height:34px;justify-content:center;padding:0;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px}.password-field__toggle:hover{background:var(--surface-muted);color:var(--text)}.password-field__toggle:focus-visible{outline:2px solid rgba(22,124,165,.3);outline-offset:2px}.checkbox-field{align-items:center;display:inline-flex;gap:10px}.checkbox-field--top{align-items:flex-start;line-height:1.55}.checkbox-field a,.policy-links a{color:var(--accent-strong);font-weight:800;text-decoration:underline;text-underline-offset:3px}.checkbox-field input{inline-size:18px;block-size:18px}.button-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.back-link{align-items:center;color:var(--accent-strong);display:inline-flex;font-size:.9rem;font-weight:800;gap:4px;width:-moz-fit-content;width:fit-content}.link-share-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.copyable-link{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem;overflow-wrap:anywhere;padding:8px 10px;word-break:break-all;max-width:100%}.button,.button-danger,.button-secondary{align-items:center;border-radius:var(--radius-control);display:inline-flex;gap:8px;justify-content:center;min-height:42px;padding:9px 13px}.button-compact{font-size:.86rem;min-height:34px;padding:6px 10px;white-space:nowrap}.button{background:var(--accent);border:1px solid var(--accent);color:#fff}.button:hover{background:var(--accent-strong)}.button-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.button-secondary:hover{background:var(--surface-muted)}.button-danger{background:var(--danger);border:1px solid var(--danger);color:#fff}.dashboard-summary{align-items:center;border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) auto;padding:10px 0}.dashboard-actions,.dashboard-metrics{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dashboard-metric{align-items:baseline;background:transparent;border:0;border-radius:0;display:inline-flex;gap:8px;min-height:0;padding:0 14px 0 0}.dashboard-metric:not(:last-child){border-right:1px solid var(--border);margin-right:6px}.dashboard-metric span{color:var(--muted);font-size:.8rem;font-weight:700}.dashboard-metric strong{color:var(--text);font-size:1.1rem;line-height:1}.dashboard-actions{justify-content:flex-end}.dashboard-recent{max-width:920px}.section-link{align-items:center;color:var(--muted);display:inline-flex;flex-shrink:0;font-size:.82rem;gap:4px;min-height:32px}.section-link:hover{color:var(--accent-strong)}.lesson-group-list{display:grid;grid-gap:14px;gap:14px}.activity-list,.lesson-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0}.lesson-group__header{align-items:baseline;display:flex;gap:16px;justify-content:space-between;padding:14px 20px}.lesson-group__header>div{min-width:0;overflow-wrap:anywhere}.lesson-group__header h3{font-size:.95rem;font-weight:600;margin:0}.lesson-group__header .meta{font-size:.82rem;margin:3px 0 0}.lesson-group__count{color:var(--muted);flex-shrink:0;font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-group__sessions{border-top:1px solid var(--border)}.activity-link{align-items:center;display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) auto 16px;min-height:74px;padding:14px 20px;transition:background-color .14s ease}.activity-link+.activity-link{border-top:1px solid var(--border)}.activity-list>.activity-link:first-child{border-radius:var(--radius-card) var(--radius-card) 0 0}.activity-link:last-child{border-radius:0 0 var(--radius-card) var(--radius-card)}.activity-list>.activity-link:only-child{border-radius:var(--radius-card)}.activity-link:hover{background:var(--surface-muted)}.activity-link__body{display:grid;grid-gap:2px;gap:2px;min-width:0}.activity-link__title{font-size:.92rem;font-weight:600;overflow-wrap:anywhere}.activity-link__date{color:var(--muted);font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.activity-link__arrow{color:var(--muted)}.table-wrap{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.data-table{border-collapse:collapse;min-width:720px;width:100%}.data-table--students{min-width:860px;table-layout:fixed}@media (max-width:720px){.data-table{min-width:100%}}@media (max-width:860px){.data-table--students{min-width:100%}}.col-student-code{width:88px}.col-student-name{width:140px}.col-student-leader,.col-student-status{width:92px}.col-student-history{width:86px}.col-student-edit{width:92px}.data-table td,.data-table th{border-bottom:1px solid var(--border);padding:11px 10px;text-align:left;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-muted)}.data-table th{color:var(--muted);font-size:.82rem;letter-spacing:0}.audit-log-table{min-width:760px}.audit-log-table .monospace-cell,.audit-log-table td:first-child{white-space:nowrap}.vote-results-summary{align-items:stretch;grid-template-columns:1fr}.vote-results-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.vote-results-metrics .dashboard-metric{display:grid;grid-gap:4px;gap:4px;min-width:0}.vote-results-metrics .dashboard-metric strong{overflow-wrap:anywhere}.vote-results-table{min-width:860px}.vote-result-rank{color:var(--accent-strong);font-weight:800;white-space:nowrap}.vote-result-idea-cell p,.vote-result-idea-cell strong{overflow-wrap:anywhere}.vote-result-percent{display:grid;grid-gap:6px;gap:6px;min-width:140px}.vote-result-percent>span{font-weight:800}.vote-result-bar{background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.vote-result-bar span{background:var(--accent);border-radius:inherit;display:block;height:100%}.student-name-cell{overflow-wrap:anywhere}.student-edit-form{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(72px,.8fr) minmax(120px,1.2fr) auto auto auto}.student-edit-form .field{min-width:0}.student-edit-form .checkbox-field span,.student-edit-form .field span{white-space:nowrap}.student-edit-details{position:relative}.student-edit-details summary{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);cursor:pointer;display:inline-flex;font-size:.86rem;justify-content:center;min-height:34px;padding:6px 10px;white-space:nowrap}.student-edit-details summary:hover{background:var(--surface-muted)}.student-edit-details[open] summary{margin-bottom:10px}.student-edit-details .student-edit-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:0 12px 30px rgba(29,36,32,.12);grid-template-columns:minmax(92px,1fr) minmax(140px,1.2fr);padding:12px;position:absolute;right:0;top:42px;width:min(520px,82vw);z-index:5}.student-edit-details .checkbox-field{min-height:36px}.student-mobile-list{display:none}.student-mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);display:grid;grid-gap:12px;gap:12px;padding:14px}.student-mobile-card__main{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.student-mobile-card__main strong{font-size:1.2rem}.student-mobile-card__main p{color:var(--muted);margin:4px 0 0}.student-mobile-card__badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.card-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);display:grid;grid-gap:10px;gap:10px;padding:16px}a.item-card:hover{border-color:var(--accent);background:var(--surface-muted)}.item-card h3{font-size:1.05rem;margin:0}.settings-admin-link{align-items:center;display:inline-grid;grid-template-columns:auto minmax(0,1fr);max-width:520px}.settings-admin-link svg{color:var(--accent-strong)}.monospace-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem}.beta-invite-table{min-width:860px}.invite-result{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) auto}.invite-result p{margin:4px 0 0}.invite-code-box{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);display:flex;flex-wrap:wrap;gap:8px;padding:8px}.invite-code-box code{font-size:1rem;font-weight:800}.beta-invite-mobile-list{display:none}.beta-invite-mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);display:grid;grid-gap:10px;gap:10px;padding:12px}.beta-invite-mobile-card strong{overflow-wrap:anywhere}.beta-invite-mobile-card p{color:var(--muted);margin:4px 0 0}.beta-invite-mobile-card__actions{align-items:center;display:flex;gap:8px;justify-content:space-between}.survey-list{gap:8px}.survey-list-card{align-items:center;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.survey-list-card__content{display:grid;grid-gap:4px;gap:4px;justify-items:start;min-width:0}.survey-list-card h3{line-height:1.25;overflow-wrap:anywhere}.survey-list-card .meta{font-size:.84rem;margin:0}.survey-list-card__actions{flex-wrap:nowrap;gap:8px;justify-content:flex-end}.survey-list-card__actions .button-secondary{font-size:.86rem;min-height:34px;padding:6px 10px}.option-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.priority-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.priority-block{display:grid;grid-gap:10px;gap:10px}.priority-block h3{font-size:.98rem;margin:0}.priority-summary{display:flex;flex-wrap:wrap;gap:8px}.choice-fieldset{border:1px solid var(--border);border-radius:var(--radius-control);display:grid;grid-gap:10px;gap:10px;margin:0;padding:12px}.choice-fieldset legend{color:var(--muted);font-size:.85rem;font-weight:700;padding:0 4px}.choice-list{display:grid;grid-gap:8px;gap:8px}.choice-option{align-items:center;background:var(--surface-muted);border:1px solid transparent;border-radius:var(--radius-control);display:flex;gap:10px;min-height:42px;padding:9px 10px}.choice-option input{block-size:18px;inline-size:18px}.empty,.hint,.meta{color:var(--muted);font-size:.92rem}.badge,.badge-success,.badge-warning{border-radius:5px;display:inline-flex;gap:5px;align-items:center;font-size:.78rem;font-weight:500;flex-shrink:0;white-space:nowrap;padding:3px 8px}.badge{background:var(--surface-muted);color:var(--muted)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-success{background:var(--accent-soft);color:var(--accent-strong)}.notice{border-radius:var(--radius-control);margin-bottom:16px;padding:12px 14px}.notice--error{background:var(--danger-soft);border:1px solid #e7b7b7;color:var(--danger)}.notice--success{background:var(--accent-soft);border:1px solid var(--border);color:var(--accent-strong)}.notice--info{background:var(--surface);border:1px solid var(--border);color:var(--text)}.notice--warning{background:var(--warning-soft);border:1px solid #ead99f;color:var(--warning)}.form-error,.form-success{border-radius:var(--radius-control);margin:0;padding:12px 14px}.form-error{background:var(--danger-soft);border:1px solid #e7b7b7;color:var(--danger)}.form-success,.form-success-box{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--accent-strong)}.form-success-box{padding:12px 14px}.form-success-box .form-success{background:transparent;border:0;padding:0}.auth-application-notice{display:grid;grid-gap:6px;gap:6px;font-size:.875rem;line-height:1.6}.auth-application-notice h2{font-size:1rem;margin:0}.auth-application-notice p{color:var(--muted);margin:0}.auth-application-notice a{color:var(--accent-strong);font-weight:800;text-decoration:underline;text-underline-offset:3px}.auth-secondary-action{display:grid;grid-gap:8px;gap:8px;justify-items:center;text-align:center}.auth-secondary-action p{color:var(--muted);font-size:.92rem;margin:0}.document-page{max-width:880px}.document-section{border-top:1px solid var(--border);display:grid;grid-gap:10px;gap:10px;padding:22px 0}.document-section h2{font-size:1.15rem;margin:0}.document-list,.document-section p{line-height:1.75;margin:0}.document-list{display:grid;grid-gap:8px;gap:8px;padding-left:1.2rem}.policy-links{display:flex;flex-wrap:wrap;gap:12px 18px}.group-editor{display:grid;grid-gap:12px;gap:12px}.group-board{align-items:start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));width:100%}@media (max-width:640px){.group-board{grid-template-columns:1fr}}.group-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-height:0;padding:10px}.group-column__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.group-column__header h2,.public-group h2{font-size:1rem;margin:0}.student-row{border:1px solid var(--border);border-radius:var(--radius-control);display:grid;grid-gap:6px;gap:6px;margin-bottom:6px;padding:8px}.student-row__top{align-items:center;display:flex;gap:8px;justify-content:space-between}.student-code{font-weight:800}.pair-list{display:flex;flex-wrap:wrap;gap:5px}.pair-chip{background:var(--warning-soft);border-radius:999px;color:var(--warning);font-size:.76rem;padding:3px 7px}.public-group-list{display:grid;grid-gap:10px;gap:10px}.public-group{border-bottom:1px solid var(--border);padding:12px 0}.public-group h2{color:var(--accent-strong);font-size:1.18rem}.public-members{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.public-member-code{align-items:center;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);display:inline-flex;font-size:1.35rem;font-weight:850;justify-content:center;line-height:1.15;min-height:50px;min-width:74px;overflow-wrap:anywhere;padding:10px 14px}.public-vote-idea,.public-vote-idea-list{display:grid;grid-gap:10px;gap:10px}.public-vote-idea{align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);grid-template-columns:auto minmax(0,1fr);padding:12px}.public-vote-idea.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.public-vote-idea input{block-size:20px;inline-size:20px;margin-top:2px}.public-vote-idea__body{display:grid;grid-gap:5px;gap:5px;min-width:0}.public-vote-idea__body span,.public-vote-idea__body strong{overflow-wrap:anywhere}.public-vote-review-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding-left:1.2rem}@media (max-width:1000px){.auth-shell,.main-content,.public-shell{padding:20px 14px 48px}.app-header{gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:10px 14px}.app-header__brand{min-width:0}.brand-link,.brand-link__school{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-shell .brand-logo--auth{width:min(100%,300px)}.nav-toggle{display:inline-flex}.app-header__menu{border-top:1px solid var(--border);display:none;gap:8px;grid-column:1/-1;padding-top:10px}.app-header__menu.is-open,.app-nav{display:grid}.app-nav{grid-gap:6px;gap:6px;justify-content:stretch}.icon-text-button,.nav-link{justify-content:flex-start;width:100%}.logout-form{width:100%}.survey-list-card{align-items:stretch;grid-template-columns:1fr}.survey-list-card__actions{justify-content:stretch}.survey-list-card__actions .button-secondary{flex:1 1}.dashboard-summary,.form-grid--inline,.grid-2,.grid-3,.option-grid,.priority-grid,.student-edit-form{grid-template-columns:1fr}.dashboard-summary{padding:10px 0}.dashboard-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.vote-results-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metric{display:grid;grid-gap:4px;gap:4px;justify-items:center;margin-right:0;min-width:0;padding:0 4px;text-align:center}.dashboard-metric:not(:last-child){margin-right:0}.dashboard-metric span{font-size:.76rem;line-height:1.2}.dashboard-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.dashboard-actions .meta{display:none}.dashboard-actions .button,.dashboard-actions .button-secondary{min-width:0;width:100%}.dashboard-recent{max-width:none}.activity-link,.lesson-group__header{padding:12px 14px}.activity-link{gap:10px}.beta-invite-table-wrap,.student-table-wrap{display:none}.beta-invite-mobile-list{display:grid;grid-gap:10px;gap:10px}.invite-result{grid-template-columns:1fr}.invite-code-box{align-items:stretch;display:grid}.student-mobile-list{display:grid;grid-gap:10px;gap:10px}.student-edit-details--mobile{flex:1 1}.student-edit-details--mobile summary{width:100%}.student-edit-details--mobile .student-edit-form{box-shadow:none;margin-top:10px;position:static;width:100%}}:where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:3px}:where(button,.button,.button-secondary,.nav-link,.choice-option,.public-vote-idea){transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--border);font-weight:700}.choice-option:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.advanced-options{border-top:1px solid var(--border);padding-top:16px}.advanced-options>summary{cursor:pointer;color:var(--accent-strong);font-weight:600}.advanced-options[open]>summary{margin-bottom:20px}.col-student-gender{width:70px}.session-form{gap:22px}.session-form>.field{max-width:620px}.group-board[aria-busy=true]{opacity:.65}.student-row{animation:reveal .15s ease-out}.vote-result-bar span{animation:reveal-bar .24s ease-out;transform-origin:left}@keyframes reveal{0%{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.loading-state{padding:32px 0;color:var(--muted)}.loading-line{height:12px;max-width:480px;margin-top:20px;background:var(--surface-muted);border-radius:4px}.session-notice{position:-webkit-sticky;position:sticky;top:0;z-index:20;padding:10px 24px;background:var(--warning-soft);color:var(--warning);display:flex;justify-content:center;align-items:center;gap:16px}.session-lock{border:1px solid var(--border);border-radius:var(--radius-control);padding:28px;width:min(480px,calc(100% - 32px));color:var(--text);background:var(--surface)}.session-lock::-webkit-backdrop{background:rgba(18,40,55,.65)}.session-lock::backdrop{background:rgba(18,40,55,.65)}.session-lock h2,.session-lock p{margin:0}.vote-result-mobile{display:none}@media (max-width:720px){.panel{padding:18px}.page-title{margin-bottom:24px}.session-notice{padding:10px 14px;flex-wrap:wrap}.vote-results-table-wrap{display:none}.vote-result-mobile{display:grid;grid-gap:16px;gap:16px}.vote-result-mobile h3,.vote-result-mobile p{margin:0}.vote-result-mobile__heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.public-shell.classroom-public{max-width:1200px;padding:16px 20px 20px}.classroom-public .page-title,.session-detail .page-title,.session-edit .page-title{margin-bottom:10px;gap:2px}.classroom-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;grid-gap:14px;gap:14px}.classroom-layout>section{padding:12px;min-width:0}.classroom-roster{border-radius:2px;box-shadow:none}.classroom-map{background:transparent}.classroom-layout h2{font-size:1rem;margin:0 0 10px}.classroom-roster__row{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.classroom-group-label{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);border:1px solid var(--border);border-radius:2px;font-size:1.1rem;font-weight:800;margin:0;padding:5px 6px}.classroom-roster__members{list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:0}.classroom-roster__members li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;font-size:1.2rem;line-height:1.5;overflow-wrap:anywhere;max-width:100%}.classroom-roster__members strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.classroom-map__room{border:2px solid #a7b5be;border-radius:0;background:var(--surface);padding:12px;height:338px;display:flex;flex-direction:column;align-items:center;gap:10px}.classroom-map__blackboard{background:#28584b;color:#fff;text-align:center;border-radius:0;padding:4px;width:85%;font-weight:700}.classroom-map__desk{border:1px solid var(--border);background:var(--surface-muted);border-radius:0;padding:2px 18px}.classroom-map__positions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,1fr);grid-gap:10px;gap:10px;flex:1 1;width:100%}.classroom-map__position{display:grid;place-items:center}.classroom-map__position .classroom-group-label{width:100%;max-width:88px;padding:10px 4px}.session-detail>.panel{padding:12px;gap:10px;margin-bottom:12px}.session-detail>.field-hint{margin:6px 0}.classroom-layout--teacher .classroom-roster__members{gap:2px 12px}.classroom-layout--teacher .classroom-roster__members li{font-size:1rem}.classroom-layout--teacher .classroom-roster__row{padding:5px 0}.session-edit .section{margin-top:12px}.group-editor>.panel{padding:10px}.group-editor .group-column{padding:8px}.group-editor .group-column__header{margin-bottom:5px}.group-editor .student-row{padding:5px;gap:3px;margin-bottom:4px}.group-editor .student-row:last-child{margin-bottom:0}.group-editor .student-row__top{flex-wrap:wrap;gap:4px 6px;justify-content:flex-start}.group-editor .student-row__top .field{display:flex;align-items:center;gap:4px;margin-left:auto}.group-editor .student-row__top select{width:auto;padding:4px 6px;min-height:34px}.group-editor .field-hint{margin:0}@media (max-width:700px){.classroom-layout{grid-template-columns:minmax(0,1fr)}.public-shell.classroom-public{padding:12px}}.classroom-roster__row{padding:4px 0}.classroom-roster__row .classroom-group-label{line-height:1.3;padding:4px}.classroom-layout--teacher .classroom-roster__row{padding:3px 0}.main-content:has(>.session-detail),.main-content:has(>.session-edit){max-width:1200px;padding:12px 20px 16px}.session-detail>.page-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}.session-detail>.panel.stack{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.session-detail>.panel .link-share-row{width:100%}.classroom-layout--teacher .classroom-roster__row{padding:2px 0}.classroom-layout--teacher .classroom-roster__row .classroom-group-label{font-size:1rem;line-height:1.25;padding:3px}.classroom-map__room{height:290px;gap:6px}.classroom-map__positions{gap:6px}.classroom-map__position .classroom-group-label{padding:6px 4px}.session-detail>.panel :is(.button,.button-secondary,.button-danger){min-height:36px;padding:5px 10px}.session-form{gap:18px}.session-form__details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;grid-gap:16px;gap:16px}.session-form__details .field{gap:6px}.session-form__details .field-hint{margin:2px 0 0;line-height:1.5}.session-form__notes{display:grid;grid-gap:6px;gap:6px}.session-form__notes p{margin:0}.classroom-layout>section{padding:8px 0}.classroom-roster__members{display:grid;grid-template-columns:repeat(auto-fill,minmax(5rem,1fr));grid-gap:4px 8px;gap:4px 8px}.classroom-layout--teacher .classroom-roster__members{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:2px 8px}.classroom-roster__members li{min-width:0}@media (max-width:900px){.classroom-layout{grid-template-columns:minmax(0,1fr)}.classroom-map{width:min(100%,360px)}}@media (max-width:640px){.session-form__details{grid-template-columns:minmax(0,1fr)}.classroom-layout--teacher .classroom-roster__members{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr))}}