:root{color-scheme:light;--bg:#f6f7f4;--surface:#ffffff;--surface-muted:#eef3ec;--border:#d9ded4;--text:#1d2420;--muted:#68746c;--accent:#2f7a5f;--accent-strong:#1f5f49;--accent-soft:#dceee5;--danger:#b34343;--danger-soft:#f6dddd;--warning:#8a5a13;--warning-soft:#f5e8c7;--focus:#c9822c}*{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,Segoe UI,sans-serif;letter-spacing:0}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:rgba(255,255,255,.92);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}.app-header__brand span{color:var(--muted);font-size:.85rem}.app-header__menu{align-items:center;display:flex;gap:16px}.app-nav{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.logout-form{margin:0}.nav-toggle{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;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:8px;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:1120px;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}.stack{display:grid;grid-gap:18px;gap:18px}.stack-sm{display:grid;grid-gap:10px;gap:10px}.page-title{display:grid;grid-gap:6px;gap:6px;margin-bottom:24px}.page-title h1,.page-title h2{font-size:clamp(1.5rem,2vw,2.1rem);line-height:1.15;margin:0}.page-title p{color:var(--muted);margin:0}.section{margin-top:28px}.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:8px;padding:18px;max-width:100%}.grid-2{display:grid;grid-gap:18px;gap:18px;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}.form-grid--inline{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr)) auto}.field{display:grid;grid-gap:6px;gap:6px}.checkbox-field span,.field span{color:var(--muted);font-size:.85rem;font-weight:700}.field input,.field select,.field textarea{background:#fff;border:1px solid var(--border);border-radius:8px;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(201,130,44,.18)}.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:8px;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:8px;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:820px}.lesson-group,.lesson-group-list{display:grid;grid-gap:10px;gap:10px}.lesson-group{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:8px;padding:12px}.lesson-group__header{align-items:start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto}.lesson-group__header h3{font-size:1.02rem;margin:0}.lesson-group__header .meta{margin-top:3px}.lesson-group__summary{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.lesson-group__sessions{border-top:1px solid var(--border);display:grid}.lesson-session-link{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:100px minmax(0,1fr) auto;min-height:34px;padding:7px 0}.lesson-session-link+.lesson-session-link{border-top:1px solid var(--border)}.lesson-session-link:hover{color:var(--accent-strong)}.lesson-session-link span:first-child{color:var(--muted);font-size:.86rem;font-weight:700}.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 th{color:var(--muted);font-size:.82rem;letter-spacing:0}.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:8px;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:8px;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:8px;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:8px;display:grid;grid-gap:10px;gap:10px;padding:16px}.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:8px;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:8px;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:8px;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:8px;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:999px;display:inline-flex;gap:5px;align-items:center;font-size:.78rem;font-weight:700;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:8px;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 #bbddcd;color:var(--accent-strong)}.notice--warning{background:var(--warning-soft);border:1px solid #e5d199;color:var(--warning)}.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:8px;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:8px;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:8px;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}@media (max-width:860px){.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}.app-header__brand span,.brand-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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%}.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}.lesson-group{padding:10px}.lesson-group__header{grid-template-columns:1fr}.lesson-group__summary{justify-content:flex-start}.lesson-session-link{grid-template-columns:92px minmax(0,1fr) auto;min-height:36px}.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%}}