@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}

/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.hidden{display:none}.table{display:table}.grow{flex-grow:1}}:root{--ink:#213d3a;--muted:#596b68;--forest:#175f55;--forest-dark:#104b43;--mint:#dff4ec;--mint-soft:#f1faf6;--coral:#c04f40;--coral-soft:#fff0ed;--gold:#f0b84d;--paper:#fffefa;--line:#dce7e2;--shadow:0 18px 45px #274b441c;--background:#f4f8f5;--foreground:var(--ink)}*{box-sizing:border-box}html{background:var(--background)}body{background:radial-gradient(circle at 75% 5%,#dff4eccc,transparent 28rem),var(--background);min-width:320px;color:var(--foreground);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}a,button,input,select,textarea{outline-offset:3px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #175f5559}button{color:inherit}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell{min-height:100vh}.skip-link{z-index:500;background:var(--forest-dark);color:#fff;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:800;text-decoration:none;transition:transform .12s;position:fixed;top:8px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.topbar{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffefaf0;justify-content:space-between;min-height:76px;padding:12px 28px;display:flex;position:sticky;top:0}.brand,.topbar{align-items:center}.brand{gap:11px;display:inline-flex}.brand-icon{border-radius:13px;width:41px;height:41px;display:block;box-shadow:0 6px 14px #175f5533}.brand-name{color:var(--ink);letter-spacing:-.045em;font-size:24px;font-weight:800}.brand-name span{color:var(--coral)}.export-button,.header-actions,.header-signin,.manage-button,.save-status,.teacher-menu{align-items:center;display:flex}.header-actions{gap:17px}.save-status{color:var(--muted);gap:7px;font-size:12px;font-weight:650}.save-status>span{background:#43a577;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #43a5771c}.export-button{border:1px solid var(--forest);background:var(--forest);color:#fff;cursor:pointer;border-radius:12px;gap:8px;min-height:42px;padding:0 16px;font-size:13px;font-weight:750;transition:transform .16s,background .16s}.export-button:hover{background:var(--forest-dark);transform:translateY(-1px)}.export-button>span{font-size:18px;line-height:1}.manage-button{background:var(--mint-soft);min-height:42px;color:var(--forest-dark);cursor:pointer;border:1px solid #b8d7cd;border-radius:12px;gap:6px;padding:0 13px;font-size:12px;font-weight:800}.manage-button:hover{background:var(--mint);border-color:#8bbcae}.manage-button>span{font-size:17px;line-height:1}.header-signin{min-height:42px;color:var(--forest-dark);white-space:nowrap;background:#fff;border:1px solid #b8d7cd;border-radius:12px;padding:0 13px;font-size:12px;font-weight:800;text-decoration:none}.teacher-menu{border-left:1px solid var(--line);gap:9px;padding-left:17px}.avatar,.student-avatar{color:var(--forest-dark);background:#dbeee8;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.avatar{width:37px;height:37px;font-size:12px}.teacher-name{text-overflow:ellipsis;white-space:nowrap;max-width:132px;font-size:13px;font-weight:700;overflow:hidden}.signout-link{color:var(--muted);font-size:11px}.workspace{grid-template-columns:238px minmax(560px,1fr) 220px;min-height:calc(100vh - 76px);display:grid}.roster-panel,.session-panel{background:#fffefac2;padding:26px 18px}.roster-panel{border-right:1px solid var(--line);flex-direction:column;display:flex}.session-panel{border-left:1px solid var(--line)}.panel-heading{justify-content:space-between;align-items:flex-start;padding:0 5px;display:flex}.eyebrow{color:var(--forest);letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:850}.panel-heading h2,.session-panel h2{letter-spacing:-.025em;margin:0;font-size:18px}.count-badge{background:var(--mint);min-width:27px;height:27px;color:var(--forest-dark);border-radius:9px;place-items:center;font-size:12px;font-weight:850;display:grid}.class-picker-panel{flex-direction:column;gap:6px;margin:19px 2px 13px;display:flex}.class-picker-panel>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:800}.class-picker-panel select{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:10px;padding:0 30px 0 10px;font-size:11px;font-weight:700}.student-search{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:11px;align-items:center;gap:7px;margin:20px 2px 13px;padding:0 11px;display:flex}.student-search input{width:100%;min-height:38px;color:var(--ink);background:0 0;border:0;font-size:12px}.student-search input:disabled{opacity:1}.student-list{flex-direction:column;flex:1;gap:5px;min-height:250px;display:flex}.student-row{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:37px 1fr 8px;align-items:center;gap:10px;width:100%;padding:9px 8px;display:grid}.student-row:hover{background:#f3f8f5}.student-row.selected{background:var(--mint-soft);box-shadow:inset 3px 0 var(--forest);border-color:#c9e8dd}.student-avatar{width:37px;height:37px;font-size:11px}.student-avatar.color-1{color:#94452f;background:#fbe6d9}.student-avatar.color-2{color:#62559b;background:#e8e5fa}.student-avatar.color-3{color:#466a97;background:#e8effa}.student-avatar.color-4{color:#765114;background:#f9edcf}.student-row small,.student-row strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.student-row strong{margin-bottom:3px;font-size:12px}.student-row small{color:var(--muted);font-size:10px}.active-dot{background:var(--coral);border-radius:50%;width:7px;height:7px}.upload-roster{background:var(--mint-soft);min-height:41px;color:var(--forest-dark);cursor:pointer;border:1px dashed #9cc3b7;border-radius:11px;justify-content:center;font-size:12px;font-weight:750}.upload-roster,.upload-with-info{align-items:center;gap:7px;display:flex}.upload-with-info{position:relative}.roster-upload-control{margin-top:16px}.management-upload-control .management-upload,.roster-upload-control .upload-roster{flex:1}.upload-info{z-index:6;flex:none;position:relative}.upload-info summary{width:29px;height:29px;color:var(--forest-dark);cursor:pointer;background:#fff;border:1px solid #a9cbc0;border-radius:50%;place-items:center;list-style:none;transition:background .14s,border-color .14s;display:grid}.upload-info summary::-webkit-details-marker{display:none}.upload-info summary:hover,.upload-info[open] summary{border-color:var(--forest);background:var(--mint)}.upload-info summary:focus-visible{outline-offset:3px;outline:3px solid #175f5559}.upload-info summary span{font-family:Georgia,serif;font-size:15px;font-weight:800;line-height:1}.upload-info-popover{z-index:20;width:min(292px,100vw - 32px);color:var(--ink);text-align:left;background:#fff;border:1px solid #c8ddd5;border-radius:13px;padding:14px;position:absolute;bottom:calc(100% + 9px);right:0;box-shadow:0 16px 38px #1c433c33}.upload-info-popover:after{content:"";background:#fff;border-bottom:1px solid #c8ddd5;border-right:1px solid #c8ddd5;width:10px;height:10px;position:absolute;bottom:-6px;right:9px;transform:rotate(45deg)}.roster-upload-control .upload-info-popover{left:0;right:auto}.roster-upload-control .upload-info-popover:after{left:9px;right:auto}.upload-info-popover>strong{color:var(--forest-dark);margin-bottom:8px;font-size:12px;display:block}.upload-info-popover ul{color:var(--muted);gap:5px;margin:0;padding-left:17px;font-size:10px;line-height:1.35;display:grid}.upload-info-popover b{color:var(--ink)}.upload-info-popover p{border-top:1px solid var(--line);color:var(--forest-dark);margin:10px 0 0;padding-top:9px;font-size:9px;font-weight:700;line-height:1.4}.file-hint{color:var(--muted);text-align:center;margin:8px 4px 0;font-size:10px;line-height:1.4}.panel-title-row{align-items:center;gap:8px;display:flex}.panel-title-row h2{min-width:0}.rename-current-class{background:var(--mint-soft);color:var(--forest-dark);cursor:pointer;border:1px solid #b8d7cd;border-radius:7px;flex:none;padding:4px 7px;font-size:9px;font-weight:800}.rename-current-class:hover{background:var(--mint);border-color:#8bbcae}.management-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#13312c94;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.management-modal{background:var(--paper);border:1px solid #ffffffbf;border-radius:24px;width:min(100%,900px);max-height:calc(100vh - 48px);padding:27px;overflow-y:auto;box-shadow:0 28px 80px #0f352e47}.management-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:21px;display:flex}.management-header h2{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:25px}.management-header p:not(.eyebrow){max-width:540px;color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.management-close{border:1px solid var(--line);width:39px;height:39px;color:var(--muted);cursor:pointer;background:#fff;border-radius:11px;flex:none;place-items:center;padding:0 0 2px;font-size:25px;line-height:1;display:grid}.management-tabs{border:1px solid var(--line);background:#f3f8f6;border-radius:15px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:17px;padding:5px;display:grid}.management-tabs button{min-width:0;min-height:47px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:800;display:flex}.management-tabs button>span{width:25px;height:25px;color:var(--forest-dark);background:#deebe6;border-radius:8px;place-items:center;font-size:10px;display:grid}.management-tabs button>small{background:#e5eeeb;border-radius:7px;place-items:center;min-width:22px;height:22px;font-size:9px;display:grid}.management-tabs button[aria-selected=true]{color:var(--ink);background:#fff;border-color:#bfd8d0;box-shadow:0 4px 12px #175f5514}.management-tabs button[aria-selected=true]>span{background:var(--forest);color:#fff}.management-tabs button[aria-selected=true]>small{background:var(--mint);color:var(--forest-dark)}.class-hub{background:linear-gradient(135deg,var(--mint-soft),#fff 72%);border:1px solid #c9e2d8;border-radius:17px;margin-bottom:15px;padding:18px}.class-hub-heading{align-items:center;gap:10px;margin-bottom:16px;display:flex}.class-hub-heading>span{background:var(--forest);color:#fff;border-radius:11px;flex:none;place-items:center;width:38px;height:38px;font-size:14px;font-weight:900;display:grid}.class-hub h3{letter-spacing:-.02em;margin:0;font-size:15px}.class-hub-heading p{color:var(--muted);margin:3px 0 0;font-size:10px}.class-hub-controls{grid-template-columns:minmax(170px,.8fr) minmax(310px,1.4fr);align-items:end;gap:12px;display:grid}.class-hub-controls>label,.create-class-form label,.roster-class-name{min-width:0;color:var(--ink);flex-direction:column;gap:7px;font-size:10px;font-weight:800;display:flex}.class-hub-controls>label>span,.create-class-form label>span{color:var(--ink)}.class-hub input,.class-hub select,.roster-class-name input{width:100%;min-height:41px;color:var(--ink);background:#fff;border:1px solid #c6dcd4;border-radius:10px;padding:0 11px;font-size:12px}.create-class-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.class-upload-launch,.create-class-form button{cursor:pointer;border-radius:10px;min-height:41px;font-size:11px;font-weight:800}.create-class-form button{border:1px solid var(--forest);background:var(--forest);color:#fff;padding:0 14px}.class-upload-control{width:100%;margin-top:12px}.class-upload-launch{color:var(--forest-dark);background:#ffffffd1;border:1px dashed #9cc3b7;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.active-class-editor{background:#fff;border:1px solid #bfd8d0;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:12px;padding:12px;display:grid}.active-class-editor>div>span,.active-class-editor>div>strong{display:block}.active-class-editor>div>span{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:750}.active-class-editor>div>strong{color:var(--ink);margin-top:3px;font-size:13px}.active-class-editor>button{border:1px solid var(--forest);min-height:38px;color:var(--forest-dark);cursor:pointer;background:#fff;border-radius:9px;padding:0 12px;font-size:10px;font-weight:800}.active-class-editor .record-edit-form{grid-column:1/-1;width:100%;margin:0}.class-upload-launch:disabled,.create-class-form button:disabled,.roster-upload-modal button:disabled{cursor:default;opacity:.55}.management-grid{grid-template-columns:minmax(0,1fr);gap:15px;display:grid}.management-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:18px}.management-card-heading{align-items:center;gap:10px;margin-bottom:17px;display:flex}.management-card-heading>span{background:var(--coral-soft);color:#944b3e;border-radius:11px;flex:none;place-items:center;width:38px;height:38px;font-size:14px;font-weight:900;display:grid}.management-card-heading.word-list-heading>span{background:var(--mint);color:var(--forest-dark)}.management-card h3{letter-spacing:-.02em;margin:0;font-size:15px}.management-card-heading p{color:var(--muted);margin:3px 0 0;font-size:10px}.management-context-select{color:var(--ink);flex-direction:column;gap:7px;margin-bottom:14px;font-size:10px;font-weight:800;display:flex}.management-context-select select{width:100%;min-height:41px;color:var(--ink);background:#fff;border:1px solid #c6dcd4;border-radius:10px;padding:0 11px;font-size:12px}.management-form{flex-direction:column;gap:7px;display:flex}.management-name-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.management-name-fields>div{flex-direction:column;gap:7px;min-width:0;display:flex}.management-form label{color:var(--ink);margin-top:2px;font-size:10px;font-weight:800}.management-form label span{color:var(--coral);letter-spacing:.05em;text-transform:uppercase;margin-left:4px;font-size:8px}.management-form input,.management-form textarea{width:100%;color:var(--ink);background:#fbfdfc;border:1px solid #cfdfd9;border-radius:10px;font-size:12px}.management-form input{min-height:41px;padding:0 11px}.management-form textarea{resize:vertical;min-height:95px;padding:10px 11px;line-height:1.45}.management-form input:disabled,.management-form textarea:disabled,.management-submit:disabled,.management-upload:disabled{cursor:default;opacity:.58}.management-hint{color:var(--muted);margin:-1px 0 2px;font-size:9px;line-height:1.35}.management-submit,.management-upload{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;min-height:41px;font-size:11px;font-weight:800;display:flex}.management-upload-control{width:100%}.management-submit{border:1px solid var(--forest);background:var(--forest);color:#fff;margin-top:5px}.management-upload{background:var(--mint-soft);width:100%;color:var(--forest-dark);border:1px dashed #9cc3b7;gap:6px}.management-divider{color:var(--muted);text-transform:uppercase;align-items:center;gap:8px;margin:13px 0;font-size:10px;display:flex}.management-divider:after,.management-divider:before{background:var(--line);content:"";flex:1;height:1px}.management-status{color:var(--forest-dark);text-align:center;margin:16px 0 0;font-size:11px;font-weight:700}.management-status span{color:#43a577;margin-right:4px;font-size:8px}.management-privacy{color:var(--muted);text-align:center;margin:6px 0 0;font-size:10px}.management-records{border:1px solid var(--line);background:#fbfdfc;border-radius:17px;margin-top:16px;padding:18px}.management-records-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:13px;display:flex}.management-records-heading h3{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:16px}.management-records-heading>p{max-width:340px;color:var(--muted);text-align:right;margin:0;font-size:10px;line-height:1.45}.record-manager{background:#fff;border:1px solid #d5e4de;border-radius:12px;margin-top:8px;overflow:hidden}.record-manager summary{min-height:45px;color:var(--ink);cursor:pointer;align-items:center;gap:9px;padding:0 13px;font-size:12px;font-weight:850;list-style:none;display:flex}.record-manager summary::-webkit-details-marker{display:none}.record-manager summary:before{color:var(--forest);content:"▸";font-size:13px;transition:transform .12s}.record-manager[open] summary:before{transform:rotate(90deg)}.record-count{background:var(--mint);min-width:25px;height:25px;color:var(--forest-dark);border-radius:8px;place-items:center;margin-left:auto;font-size:10px;display:grid}.record-manager-body{border-top:1px solid var(--line);padding:0 12px 12px}.record-entry{border-bottom:1px solid var(--line)}.record-entry:last-child{border-bottom:0}.record-row{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 2px;display:flex}.record-row small,.record-row strong,.record-row>span:first-child{display:block}.record-row>span:first-child{min-width:0}.record-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.record-row small{color:var(--muted);margin-top:3px;font-size:9px}.record-actions,.record-edit-actions{flex:none;gap:6px;display:flex}.record-actions button,.record-edit-actions button{min-height:34px;color:var(--forest-dark);cursor:pointer;background:#fff;border:1px solid #bfd5ce;border-radius:8px;padding:0 10px;font-size:10px;font-weight:800}.record-actions .record-delete{color:#983a30;border-color:#e6bbb4}.record-actions button:disabled,.record-edit-actions button:disabled,.record-edit-form input:disabled,.record-edit-form textarea:disabled{cursor:default;opacity:.55}.record-edit-form{background:var(--mint-soft);border:1px solid #c9e2d8;border-radius:11px;flex-direction:column;gap:7px;margin:0 0 12px;padding:12px;display:flex}.record-edit-form label{color:var(--ink);font-size:10px;font-weight:800}.record-edit-form input,.record-edit-form textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bfd5ce;border-radius:9px;font-size:12px}.record-edit-form input{min-height:40px;padding:0 10px}.record-edit-form textarea{resize:vertical;min-height:105px;padding:9px 10px;line-height:1.45}.record-name-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.record-name-fields label{flex-direction:column;gap:7px;min-width:0;display:flex}.record-edit-actions{justify-content:flex-end;margin-top:3px}.record-edit-actions .record-save{border-color:var(--forest);background:var(--forest);color:#fff}.record-empty{color:var(--muted);margin:12px 2px 0;font-size:11px}.roster-upload-modal{background:var(--paper);border:1px solid #ffffffbf;border-radius:24px;width:min(100%,560px);max-height:calc(100vh - 48px);padding:27px;overflow-y:auto;box-shadow:0 28px 80px #0f352e47}.roster-class-name>span{color:var(--coral);letter-spacing:.05em;text-transform:uppercase;margin-left:4px;font-size:8px}.roster-upload-dropzone{background:var(--mint-soft);text-align:center;border:1px dashed #9cc3b7;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:215px;margin-top:15px;padding:26px 20px;display:flex}.roster-upload-icon{width:48px;height:48px;color:var(--forest);background:#fff;border-radius:14px;place-items:center;margin-bottom:11px;font-size:24px;font-weight:800;display:grid;box-shadow:0 7px 18px #175f551a}.roster-upload-dropzone>strong{color:var(--ink);font-size:14px}.roster-upload-dropzone>p{color:var(--muted);margin:6px 0 17px;font-size:10px}.roster-dialog-upload .primary-button{flex:1}.assessment-area{padding:25px 32px 18px}.session-only-banner{background:var(--mint-soft);border:1px solid #c7dfd6;border-radius:13px;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;max-width:820px;margin:0 auto 14px;padding:10px 12px;display:grid}.session-only-icon{background:var(--forest);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:24px;font-weight:900;display:grid}.session-only-banner strong{color:var(--forest-dark);margin-bottom:2px;font-size:11px;display:block}.session-only-banner p{color:var(--muted);margin:0;font-size:9px;line-height:1.4}.session-only-banner a{background:var(--forest);color:#fff;white-space:nowrap;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:800;text-decoration:none}.assessment-toolbar{align-items:flex-end;gap:14px;max-width:820px;margin:0 auto 18px;display:flex}.field-group{flex-direction:column;gap:6px;display:flex}.list-field{flex:1;min-width:210px}.class-field{flex:.85;min-width:170px}.field-group label,.field-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:800}.field-group select{color:var(--ink);padding:0 35px 0 12px;font-size:12px;font-weight:700}.field-group select,.mode-toggle{border:1px solid var(--line);min-height:42px;background:#fff;border-radius:11px}.mode-toggle{padding:3px;display:flex}.mode-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:11px;font-weight:700}.mode-toggle button.active{background:var(--mint);color:var(--forest-dark)}.custom-list-button{border:1px solid var(--line);min-height:42px;color:var(--forest);white-space:nowrap;cursor:pointer;background:#fff;border-radius:11px;align-items:center;gap:4px;padding:0 11px;font-size:11px;font-weight:750;display:flex}.assessment-card,.empty-card{background:var(--paper);max-width:820px;min-height:500px;box-shadow:var(--shadow);border:1px solid #d1e2dbeb;border-radius:23px;margin:0 auto}.assessment-card{flex-direction:column;display:flex;overflow:hidden}.student-strip{border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--mint-soft),#fffefa 62%);grid-template-columns:32px 45px 1fr auto 32px;align-items:center;gap:10px;padding:15px 19px;display:grid}.student-avatar.large{background:var(--forest);color:#fff;width:45px;height:45px;font-size:12px}.student-strip small,.student-strip strong{display:block}.student-strip small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px;font-size:9px;font-weight:750}.student-strip strong{font-size:15px}.student-position{color:var(--muted);font-size:11px;font-weight:650}.student-nav{border:1px solid var(--line);width:31px;height:31px;color:var(--forest);cursor:pointer;background:#fff;border-radius:9px;place-items:center;font-weight:800;display:grid}.student-nav:disabled{cursor:default;opacity:.35}.word-stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:265px;padding:28px 24px 20px;display:flex}.quiet-prompt,.word-prompt{color:var(--muted);margin:0}.word-prompt{font-size:12px;font-weight:700}.quiet-prompt{font-size:11px}.sight-word{color:#173a36;letter-spacing:-.065em;overflow-wrap:anywhere;justify-content:center;align-items:center;max-width:100%;min-height:142px;font-size:clamp(64px,8vw,102px);font-weight:800;line-height:1;display:flex}.response-buttons{grid-template-columns:1fr 1fr;gap:12px;padding:0 24px 22px;display:grid}.response-button{cursor:pointer;border:1px solid;border-radius:15px;justify-content:space-between;align-items:center;min-height:66px;padding:10px 15px;transition:transform .15s,box-shadow .15s;display:flex}.response-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2a4d461a}.response-button.missed{background:var(--coral-soft);color:#8a4337;border-color:#f4c6bd}.response-button.correct{background:var(--mint-soft);color:var(--forest-dark);border-color:#b8dfd2}.response-button small,.response-button strong{display:block}.response-button strong{font-size:15px}.response-button small{color:var(--muted);margin-top:3px;font-size:9px;font-weight:650}.keycap{background:#ffffffb8;border:1px solid;border-radius:10px;place-items:center;width:39px;height:39px;font-size:22px;font-weight:800;display:grid}.mobile-compass{display:none}.progress-section{border-top:1px solid var(--line);padding:15px 24px 18px}.progress-heading{color:var(--muted);justify-content:space-between;margin-bottom:9px;font-size:10px;font-weight:700;display:flex}.progress-heading strong{color:var(--forest)}.progress-track{background:#e9efec;border-radius:99px;height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,var(--forest),#54b184);height:100%;transition:width .22s;display:block}.completion-panel{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:365px;padding:32px;display:flex}.completion-check{background:var(--mint);width:54px;height:54px;color:var(--forest);border-radius:50%;place-items:center;margin-bottom:17px;font-size:28px;font-weight:900;display:grid}.perfect-score-star{isolation:isolate;place-items:center;width:clamp(168px,23vw,210px);height:clamp(152px,21vw,190px);margin:-15px 0 4px;display:grid;position:relative}.perfect-score-star:before{z-index:-1;content:"";opacity:0;background:radial-gradient(circle,#ffd8654d 0 25%,#ffe8a129 26% 48%,#0000 70%);border-radius:50%;width:122%;height:122%;animation:perfect-halo-fade .9s ease-out .18s forwards;position:absolute}.perfect-star-core{aspect-ratio:1;filter:drop-shadow(0 9px 9px #a6600833)drop-shadow(0 20px 24px #eda4202e);opacity:0;width:clamp(142px,19vw,178px);animation:perfect-star-fade-in .82s cubic-bezier(.16,1.24,.42,1) forwards;display:block;position:relative;transform:scale(.35)rotate(-13deg)}.perfect-star-core:after,.perfect-star-core:before{clip-path:polygon(50% 1%,61% 35%,97% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,3% 35%,39% 35%);content:"";position:absolute;inset:0}.perfect-star-core:before{background:linear-gradient(145deg,#fff3a8 2%,#ffd45f 34%,#f3a51f 68%,#d8790a)}.perfect-star-core:after{background:linear-gradient(115deg,#ffffffb8 4%,#ffffff38 27%,#0000 44%);transform:scale(.84)translate(-4%,-5%)}.perfect-sparkle{color:#eaa11c;opacity:0;text-shadow:0 4px 12px #cf7c0a33;font-size:26px;line-height:1;animation:perfect-sparkle-pop .52s cubic-bezier(.16,1.25,.42,1) forwards;position:absolute;transform:scale(.25)rotate(-18deg)}.sparkle-one{animation-delay:.36s;top:18%;left:1%}.sparkle-two{color:#f5c647;font-size:19px;animation-delay:.49s;top:1%;right:8%}.sparkle-three{color:#f5c647;font-size:18px;animation-delay:.61s;bottom:12%;left:10%}.sparkle-four{font-size:24px;animation-delay:.72s;bottom:21%;right:0}@keyframes perfect-star-fade-in{0%{opacity:0;transform:scale(.35)rotate(-13deg)}68%{opacity:1;transform:scale(1.06)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes perfect-halo-fade{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes perfect-sparkle-pop{0%{opacity:0;transform:scale(.25)rotate(-18deg)}70%{opacity:1;transform:scale(1.18)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.completion-panel h2{color:var(--forest);letter-spacing:-.06em;margin:0;font-size:64px}.completion-panel>p:not(.eyebrow){color:var(--muted);margin:7px 0 22px;font-size:13px}.primary-button{background:var(--forest);color:#fff;border:0;border-radius:12px;text-decoration:none}.primary-button,.secondary-button{cursor:pointer;justify-content:center;align-items:center;min-height:44px;padding:0 19px;font-size:13px;font-weight:800;display:inline-flex}.secondary-button{color:var(--forest-dark);background:#fff;border:1px solid #b8d7cd;border-radius:12px}.empty-actions{justify-content:center;gap:9px;display:flex}.empty-upload-control .primary-button,.empty-upload-control .secondary-button{flex:1}.keyboard-guide{max-width:820px;color:var(--muted);justify-content:center;align-items:center;gap:16px;margin:13px auto 0;font-size:9px;font-weight:650;display:flex}.keyboard-guide span{align-items:center;gap:5px;display:flex}.keyboard-guide .guide-title{color:var(--ink);font-weight:800}.keyboard-guide kbd{width:23px;height:23px;color:var(--forest-dark);background:#fff;border:solid #cfdcd7;border-width:1px 1px 2px;border-radius:6px;place-items:center;font-family:inherit;font-size:11px;font-weight:850;display:grid}.guide-divider{background:var(--line);width:1px;height:19px}.session-panel .eyebrow{margin-top:4px}.score-ring{background:conic-gradient(var(--forest) calc(var(--score) * 1%),#e5eeea 0);border-radius:50%;place-items:center;width:132px;height:132px;margin:30px auto 26px;display:grid;position:relative}.score-ring:after{background:var(--paper);content:"";border-radius:50%;width:106px;height:106px;position:absolute}.score-ring small,.score-ring span{z-index:1;grid-area:1/1;position:relative}.score-ring span{color:var(--forest-dark);letter-spacing:-.055em;margin-top:-13px;font-size:29px;font-weight:850}.score-ring small{color:var(--muted);text-transform:uppercase;margin-top:31px;font-size:9px;font-weight:700}.score-stats{margin:0}.score-stats div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 3px;display:flex}.score-stats dt{color:var(--muted);font-size:11px;font-weight:650}.score-stats dd{color:var(--ink);margin:0;font-size:17px;font-weight:850}.session-tip{color:#795f25;background:#fff9e9;border:1px solid #f1dfae;border-radius:13px;gap:9px;margin-top:24px;padding:13px;display:flex}.session-tip>span{color:var(--gold)}.session-tip p{margin:0;font-size:9px;line-height:1.5}.session-tip strong{color:#5f4919;margin-bottom:2px;font-size:10px;display:block}.empty-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.empty-card h2{margin:15px 0 7px}.empty-card p{color:var(--muted);margin:0 0 20px;font-size:13px}.empty-icon{background:var(--mint);width:54px;height:54px;color:var(--forest);border-radius:15px;place-items:center;font-size:26px;display:grid}.signin-shell{background:radial-gradient(circle at 10% 10%,#f079671f,#0000 25rem),radial-gradient(circle at 88% 18%,#58b1862e,#0000 30rem),#f4f8f5;place-items:center;min-height:100vh;padding:24px;display:grid}.signin-card{border:1px solid var(--line);background:var(--paper);width:min(100%,520px);box-shadow:var(--shadow);text-align:center;border-radius:28px;padding:48px}.signin-card .brand{justify-content:center;margin-bottom:42px}.signin-card h1{color:var(--ink);letter-spacing:-.06em;margin:8px 0 15px;font-size:clamp(38px,7vw,56px);line-height:1}.signin-copy{max-width:390px;color:var(--muted);margin:0 auto 25px;font-size:15px;line-height:1.65}.signin-button{min-width:210px}.privacy-note{max-width:340px;color:var(--muted);margin:19px auto 0;font-size:10px;line-height:1.5}@media (max-width:1120px){.workspace{grid-template-columns:220px minmax(520px,1fr)}.session-panel{display:none}}@media (max-width:820px){.topbar{padding:12px 17px;position:static}.signout-link,.teacher-name{display:none}.save-status{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teacher-menu{border:0;padding-left:0}.header-actions{gap:8px}.workspace{display:block}.roster-panel{display:none}.assessment-area{padding:18px 14px}.assessment-toolbar{grid-template-columns:1fr 1fr;display:grid}.session-only-banner{grid-template-columns:36px 1fr}.session-only-banner a{grid-column:2;justify-self:start}.list-field{grid-column:1/-1}.custom-list-button{justify-content:center}.class-hub-controls{grid-template-columns:1fr}}@media (max-width:560px){.brand-name{font-size:20px}.brand-icon{width:36px;height:36px}.export-button,.manage-button{justify-content:center;width:42px;padding:0;font-size:0}.header-signin{min-height:40px;padding:0 10px;font-size:10px}.export-button span,.manage-button>span{font-size:19px}.avatar{display:none}.management-backdrop{align-items:start;padding:10px}.management-modal,.roster-upload-modal{border-radius:18px;max-height:calc(100vh - 20px);padding:19px 14px}.management-header{margin-bottom:16px}.management-header h2{font-size:22px}.management-tabs{gap:4px;padding:4px}.management-tabs button{flex-wrap:wrap;gap:4px;min-height:58px;padding:4px;font-size:10px}.management-tabs button>span{width:22px;height:22px}.management-tabs button>small{min-width:20px;height:20px}.management-grid{grid-template-columns:1fr}.management-card{padding:15px}.active-class-editor{grid-template-columns:1fr}.active-class-editor>button{width:100%}.management-records{padding:14px}.management-records-heading{display:block}.management-records-heading>p{text-align:left;margin-top:7px}.record-row{flex-direction:column;align-items:flex-start}.record-actions{width:100%}.record-actions button{flex:1;min-height:40px}.record-name-fields{grid-template-columns:1fr}.class-hub{padding:15px}.create-class-form{grid-template-columns:1fr}.create-class-form button{min-height:43px}.roster-upload-dropzone{min-height:195px}.empty-actions{flex-direction:column;width:min(230px,100%)}.empty-upload-control{width:100%}.upload-info-popover{width:auto;max-height:calc(100vh - 40px);position:fixed;bottom:20px;left:16px;right:16px;overflow-y:auto}.roster-upload-control .upload-info-popover:after,.upload-info-popover:after{display:none}.roster-upload-control .upload-info-popover{left:16px;right:16px}.assessment-toolbar{grid-template-columns:1fr}.session-only-banner{grid-template-columns:32px 1fr;gap:9px;padding:9px 10px}.session-only-icon{width:32px;height:32px;font-size:20px}.list-field{grid-column:auto}.student-strip{grid-template-columns:39px 1fr;padding:12px}.student-strip .student-nav{display:none}.student-avatar.large{width:39px;height:39px}.student-position{display:none}.sight-word{min-height:125px;font-size:clamp(58px,20vw,86px)}.word-stage{min-height:245px}.response-buttons{display:none}.mobile-compass{aspect-ratio:1;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;width:min(236px,100% - 28px);margin:-5px auto 17px;display:grid;position:relative}.mobile-compass:before{content:"";background:linear-gradient(90deg,#0000 49.6%,#dbe8e3 49.6% 50.4%,#0000 50.4%),linear-gradient(#0000 49.6%,#dbe8e3 49.6% 50.4%,#0000 50.4%),#f8fbf9;border:1px solid #cfe0da;border-radius:50%;position:absolute;inset:22px;box-shadow:inset 0 0 0 7px #ffffffb3}.compass-action,.compass-center{z-index:1;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative}.compass-action{border:1px solid var(--line);color:var(--forest-dark);cursor:pointer;touch-action:manipulation;background:#fff;flex-direction:column;gap:1px;font-family:inherit;box-shadow:0 5px 13px #2a4d461a}.compass-action:active:not(:disabled){transform:scale(.96);box-shadow:0 2px 7px #2a4d461f}.compass-action:disabled{cursor:default;opacity:.36}.compass-action>span{font-size:27px;font-weight:850;line-height:.95}.compass-action small{text-align:center;font-size:8px;font-weight:800;line-height:1.05}.compass-up{grid-area:1/2}.compass-left{background:var(--coral-soft);color:#8a4337;border-color:#f4c6bd;grid-area:2/1}.compass-center{background:var(--forest);color:#fff;border:1px solid #c9ddd5;grid-area:2/2;width:48px;height:48px;box-shadow:0 4px 12px #1f5b4b33}.compass-center span{font-size:20px}.compass-right{background:var(--mint-soft);border-color:#b8dfd2;grid-area:2/3}.compass-down{grid-area:3/2}.progress-section{padding:14px}.keyboard-guide{display:none}.signin-card{padding:38px 24px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}