:root{font-family:Aptos,Segoe UI,system-ui,sans-serif;color:#26243a;background:#f7f6f2;font-synthesis:none;--ink: #26243a;--muted: #777486;--purple: #6f61a8;--purple-dark: #594b93;--purple-soft: #ece8f7;--paper: #ffffff;--warm: #f7f6f2;--line: #e8e5de;--mint: #dff1e8;--green: #3f8c6a;--peach: #fae6d8;--coral: #d97558;--gold: #f4c95d;--shadow: 0 14px 40px rgba(50, 42, 74, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--warm)}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(111,97,168,.26);outline-offset:2px}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#29243f;color:#fff;padding:30px 20px 22px;display:flex;flex-direction:column;z-index:10}.logo-lockup{display:inline-flex;align-items:center;gap:10px;font-family:Fraunces,serif;font-size:22px;font-weight:700;letter-spacing:-.5px}.logo-mark{width:35px;height:35px;display:grid;place-items:center;border-radius:11px 11px 11px 4px;color:#fff;background:var(--purple)}.logo-dot{color:#b9a8ee}.sidebar .logo-lockup{padding:0 9px 33px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-caption{text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:#8f88ab;font-weight:700;padding:0 12px 8px}.side-nav button,.sidebar-bottom>button{appearance:none;border:0;background:transparent;color:#aaa5bd;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;cursor:pointer;text-align:left;font-weight:600;transition:.18s ease}.side-nav button:hover,.sidebar-bottom>button:hover{color:#fff;background:#ffffff0f}.side-nav button.active{color:#fff;background:#b9a8ee24;box-shadow:inset 3px 0 #a994e8}.mobile-settings{display:none!important}.nav-count{margin-left:auto;min-width:24px;height:20px;border-radius:10px;display:grid;place-items:center;background:#ffffff1a;font-size:11px}.sidebar-class-switcher{position:relative;margin-top:28px}.sidebar-class-card{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:13px 12px;border:1px solid rgba(255,255,255,.09);background:#ffffff0a;color:#fff;border-radius:12px;cursor:pointer;text-align:left}.sidebar-class-card:hover,.sidebar-class-switcher.open .sidebar-class-card{background:#ffffff14;border-color:#ffffff26}.sidebar-class-switcher.open .sidebar-class-card>svg{transform:rotate(180deg)}.class-card-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#655895;color:#fff}.class-card-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.sidebar-class-card strong{overflow:hidden;text-overflow:ellipsis;font-size:13px}.sidebar-class-card small{color:#9f9ab1;font-size:9px;white-space:nowrap}.classroom-menu{position:absolute;z-index:20;left:0;top:calc(100% + 8px);width:260px;padding:8px;border:1px solid #e5e1eb;border-radius:13px;background:#fff;color:var(--ink);box-shadow:0 18px 45px #120e1f47}.classroom-menu>span{display:block;padding:6px 8px 8px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.classroom-menu button{width:100%;min-height:44px;padding:8px;border:0;border-radius:9px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:9px;cursor:pointer;text-align:left}.classroom-menu button:hover,.classroom-menu button.active{background:#f3f0f8;color:var(--purple)}.classroom-menu button>span{display:flex;min-width:0;flex-direction:column;gap:2px}.classroom-menu strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.classroom-menu small{color:var(--muted);font-size:8px}.classroom-menu .add-classroom-button{justify-content:flex-start;min-height:38px;margin-top:6px;padding-top:9px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;color:var(--purple);font-size:9px;font-weight:800}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:2px}.sidebar-bottom>button.active{color:#fff;background:#b9a8ee24;box-shadow:inset 3px 0 #a994e8}.teacher-mini-profile{margin-top:15px;padding:14px 4px 0;border-top:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center}.teacher-mini-profile div{display:flex;flex-direction:column;gap:2px}.teacher-mini-profile strong{font-size:12px}.teacher-mini-profile span{font-size:10px;color:#9c96b0}.mini-signout{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:transparent;color:#aaa4bc;cursor:pointer}.mini-signout:hover{color:#fff;border-color:#ffffff4d}.avatar{width:38px;height:38px;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;font-size:12px;flex:0 0 auto}.avatar-teacher{background:#f2b897;color:#593527!important}.teacher-workspace{grid-column:2;min-width:0}.topbar{height:80px;padding:0 42px;display:flex;align-items:center;gap:24px;background:#ffffffdb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:8}.topbar h1{font-family:Fraunces,serif;font-size:23px;margin:2px 0 0;letter-spacing:-.4px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);font-weight:700}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;display:inline-grid;place-items:center;cursor:pointer;position:relative}.icon-button:hover{background:#f6f4fa}.icon-button.small{width:32px;height:32px;border-radius:8px}.notification-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border:2px solid #fff;box-sizing:content-box;background:#d87062;border-radius:50%}.mobile-logo{display:none}.teacher-main{max-width:1330px;margin:0 auto;padding:32px 42px 54px}.page-stack{display:flex;flex-direction:column;gap:22px}.welcome-row,.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.section-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.welcome-row h2,.section-intro h2{font-family:Fraunces,serif;font-size:30px;letter-spacing:-.8px;margin:3px 0 8px}.welcome-row h2 span{font-family:system-ui;font-size:25px}.welcome-row p,.section-intro p{color:var(--muted);font-size:13px;margin:0}.overline,.panel-kicker{text-transform:uppercase;color:var(--purple);font-weight:700;font-size:10px!important;letter-spacing:1.2px}.primary-button,.secondary-button,.student-primary,.student-secondary{border-radius:10px;min-height:42px;padding:0 17px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary-button,.student-primary{background:var(--purple);color:#fff;box-shadow:0 7px 16px #5b4c932e}.primary-button:hover,.student-primary:hover{background:var(--purple-dark);transform:translateY(-1px)}.primary-button:disabled,.student-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.secondary-button,.student-secondary{border:1px solid var(--line);background:#fff;color:#4b475a;box-shadow:none}.secondary-button:hover,.student-secondary:hover{border-color:#cfc8e2;background:#faf9fd}.danger-button{min-height:42px;padding:0 14px;border:1px solid #e5c7c1;border-radius:10px;background:#fff8f6;color:#994f43;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:700;cursor:pointer}.danger-button:hover{background:#fcebe7;border-color:#dca99f}.danger-button:disabled{opacity:.48;cursor:not-allowed}.full-width{width:100%}.text-button{border:0;background:none;color:var(--purple);font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:5px;cursor:pointer;padding:5px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:0 5px 20px #302b4509}.stat-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.stat-icon.lavender{background:var(--purple-soft);color:var(--purple)}.stat-icon.mint{background:var(--mint);color:var(--green)}.stat-icon.peach{background:var(--peach);color:var(--coral)}.stat-copy{display:grid;grid-template-columns:1fr auto;align-items:baseline;width:100%}.stat-copy>span{grid-column:1 / -1;color:var(--muted);font-size:11px;font-weight:600}.stat-copy strong{font-family:Fraunces,serif;font-size:24px;margin-top:2px}.stat-copy small{color:var(--green);font-size:9px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 22px #332c4b0a}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:18px}.current-list-panel,.attention-panel,.mastery-chart,.distribution-card{padding:22px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.panel-heading h3,.list-card h3,.student-panel h3,.parent-grid h3{font-family:Fraunces,serif;margin:3px 0 0;font-size:19px;letter-spacing:-.3px}.panel-kicker{display:block}.list-summary{display:grid;grid-template-columns:116px 1fr;gap:24px;align-items:center;padding:24px 4px 20px}.mastery-ring{border-radius:50%;background:conic-gradient(var(--purple) var(--progress),#eeeaf4 0);position:relative;display:grid;place-items:center;flex:0 0 auto}.mastery-ring:before{content:"";position:absolute;inset:9px;background:#fff;border-radius:50%}.mastery-ring.large{width:108px;height:108px}.mastery-ring.small{width:52px;height:52px}.mastery-ring.small:before{inset:5px}.mastery-ring>div{z-index:1;display:flex;flex-direction:column;text-align:center}.mastery-ring strong{font-family:Fraunces,serif;font-size:22px}.mastery-ring span{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-size:8px}.mastery-ring.small strong{font-size:11px}.meta-pills{display:flex;gap:6px;flex-wrap:wrap}.meta-pills span,.soft-badge{display:inline-flex;align-items:center;gap:5px;background:#f5f3f8;color:#696376;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:600}.list-summary-copy h4{font-size:14px;margin:13px 0 5px}.list-summary-copy p{color:var(--muted);font-size:11px;line-height:1.55;margin:0 0 13px}.student-face-row{display:flex;align-items:center}.mini-avatar{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:50%;border:2px solid #fff;margin-left:-6px;color:#3f394b;font-size:8px;font-weight:800}.mini-avatar:first-child{margin-left:0}.mini-avatar.c0,.mini-avatar.coral{background:#f5bda8}.mini-avatar.c1,.mini-avatar.blue{background:#b9d5ef}.mini-avatar.c2,.mini-avatar.mint{background:#bfe1d4}.mini-avatar.c3,.mini-avatar.purple{background:#d1c4e8}.mini-avatar.c4,.mini-avatar.gold{background:#f3d795}.more-students{font-size:9px;color:var(--muted);margin-left:8px;font-weight:600}.panel-divider{height:1px;background:var(--line);margin:0 -22px}.list-footer{display:flex;justify-content:space-between;padding-top:13px;color:var(--muted);font-size:9px}.list-footer span{display:flex;align-items:center;gap:6px}.list-footer strong{color:var(--ink)}.tricky-list{margin:20px 0 17px;display:flex;flex-direction:column;gap:17px}.tricky-row{display:grid;grid-template-columns:32px 1fr 36px;gap:10px;align-items:center}.word-rank{width:32px;height:32px;border-radius:9px;background:#f3eff9;color:var(--purple);display:grid;place-items:center;font-family:Fraunces,serif;font-weight:700}.tricky-copy strong{display:block;font-size:11px;margin-bottom:6px}.progress-track{height:6px;background:#eeecf1;border-radius:6px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--purple);border-radius:inherit}.mastery-value{font-size:10px;text-align:right}.activity-panel{padding:21px 22px 8px}.activity-table,.roster-table{margin-top:13px}.activity-head,.activity-row{display:grid;grid-template-columns:1.25fr 1.2fr .65fr .6fr;align-items:center;min-height:46px;gap:12px}.activity-head,.roster-head{color:#9793a0;font-size:9px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;border-bottom:1px solid var(--line)}.activity-row{border-bottom:1px solid #f0eee9;font-size:10px;color:var(--muted)}.activity-row:last-child{border:0}.activity-row>span{display:flex;align-items:center;gap:7px}.activity-row>strong{color:var(--ink)}.student-name strong{color:var(--ink);font-size:11px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.activity-empty{min-height:72px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:10px}.list-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.list-card{padding:20px;display:flex;flex-direction:column;gap:17px}.list-card-top{display:flex;justify-content:space-between}.list-status{text-transform:capitalize;font-size:9px;font-weight:700;border-radius:20px;padding:5px 9px;height:fit-content}.list-status.active{color:#35775b;background:var(--mint)}.list-status.scheduled{color:var(--purple);background:var(--purple-soft)}.list-status.complete{color:#77717d;background:#efeded}.list-card p{color:var(--muted);font-size:11px;margin:5px 0 0}.word-preview{display:flex;flex-wrap:wrap;gap:5px;min-height:53px;align-content:flex-start}.word-preview span{padding:5px 8px;background:#f7f5fa;border:1px solid #eeebf3;color:#625c6e;border-radius:7px;font-size:9px}.audio-ready{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:9px}.audio-ready span{color:var(--green);display:flex;align-items:center;gap:5px}.audio-ready.generating span{color:var(--purple)}.audio-ready.missing span{color:#9a6c1b}.audio-generation-message{display:flex;align-items:center;gap:7px;margin-top:-9px;padding:11px 13px;border:1px solid #cde4d7;border-radius:10px;background:var(--mint);color:#35775b;font-size:10px;font-weight:700}.audio-generation-message .spinner{flex:0 0 auto;border-color:#35775b3d;border-top-color:#35775b}.roster-panel{padding:20px}.roster-head,.roster-row{display:grid;grid-template-columns:1.3fr 1fr .65fr .65fr .9fr 32px;align-items:center;min-height:56px;gap:12px}.roster-row{border-bottom:1px solid #f0eee9;color:var(--muted);font-size:11px}.roster-row:last-child{border:0}.roster-row>strong{color:var(--ink)}.mono{font-family:ui-monospace,monospace;font-size:10px}.student-status{display:inline-block;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:700}.student-status.good{background:var(--mint);color:#35775b}.student-status.waiting{background:#f8ecd0;color:#9a6c1b}.student-status.support{background:#f8e0dc;color:#9b5348}.table-action-button{width:31px;height:31px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--purple);display:grid;place-items:center;cursor:pointer}.table-action-button:hover{background:var(--purple-soft);border-color:#d7cfea}.roster-empty{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--muted);text-align:center}.roster-empty>svg{color:var(--purple)}.roster-empty strong{color:var(--ink);font-family:Fraunces,serif;font-size:18px}.roster-empty span{font-size:10px}.roster-empty button{margin-top:8px}.report-grid{display:grid;grid-template-columns:1.7fr .8fr;gap:18px}.trend-chip{display:flex;align-items:center;gap:5px;color:var(--green);background:var(--mint);padding:6px 9px;border-radius:20px;font-size:9px;font-weight:700}.chart-area{height:236px;display:grid;grid-template-columns:25px 1fr;padding-top:25px}.y-labels{display:flex;flex-direction:column;justify-content:space-between;color:#aaa5ae;font-size:8px;padding-bottom:22px}.bars{display:flex;gap:5%;align-items:flex-end;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 24%,#f1efeb 25%)}.bar-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;position:relative}.bar{width:65%;min-width:18px;background:#dcd5ee;border-radius:7px 7px 0 0;position:relative}.bar.current{background:var(--purple)}.bar span{opacity:0;position:absolute;top:-20px;font-size:8px;left:50%;transform:translate(-50%)}.bar:hover span,.bar.current span{opacity:1}.bar-column small{height:14px;color:var(--muted);font-size:8px}.distribution-card{text-align:center}.distribution-card>.panel-kicker{text-align:left}.distribution-card h3{text-align:left}.distribution-number{font-family:Fraunces,serif;font-weight:700;font-size:62px;color:var(--purple);margin-top:25px;line-height:.9}.distribution-number span{font-size:24px}.distribution-card>p{margin:8px 0 18px;color:var(--muted);font-size:10px}.distribution-line{height:8px;background:#eeebf3;border-radius:9px}.distribution-line span{display:block;width:0;height:100%;background:linear-gradient(90deg,#b5a4e6,var(--purple));border-radius:inherit}.distribution-meta{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.distribution-meta span{font-size:8px;color:var(--muted);display:flex;flex-direction:column;gap:3px}.distribution-meta strong{color:var(--ink);font-size:14px}.insight-banner{padding:17px 20px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:13px}.insight-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#f4e9d1;color:#9a6d28}.insight-banner strong{font-size:12px}.insight-banner p{color:var(--muted);font-size:10px;margin:3px 0 0}.report-empty{min-height:235px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;color:var(--muted);text-align:center}.report-empty svg{color:#b3a7cb}.report-empty strong{color:var(--ink);font-size:12px}.report-empty span{font-size:9px}.report-empty.compact{min-height:90px}.recent-report{padding:22px}.report-session-list{display:grid;margin-top:12px}.report-session-list>div{min-height:52px;display:grid;grid-template-columns:1fr 70px 90px;gap:14px;align-items:center;border-top:1px solid var(--line)}.report-session-list>div>span{display:flex;flex-direction:column;gap:3px}.report-session-list strong{font-size:10px}.report-session-list small,.report-session-list time{color:var(--muted);font-size:9px}.report-session-list time{text-align:right}.student-report-panel{padding:22px}.student-report-grid{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.6fr);gap:18px;margin-top:14px}.student-picker{display:flex;flex-direction:column;gap:4px}.student-picker button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);font-size:11px;font-weight:600;cursor:pointer;text-align:left}.student-picker button:hover{background:#f6f4fa}.student-picker button.active{background:var(--purple-soft);color:var(--purple);border-color:#d7cfea}.student-report-detail{display:flex;flex-direction:column;gap:16px;min-width:0}.chart-area.compact{height:130px;padding-top:14px}.parent-email-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px}.parent-email-row label{flex:1 1 200px;display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.parent-email-row input{width:100%;height:40px;padding:0 11px;border:1px solid #ddd9e3;border-radius:9px;background:#fbfaf9;color:var(--ink)}.notify-message{display:block;margin-top:-4px;color:var(--muted);font-size:9px}.notification-history{display:flex;flex-direction:column;gap:6px}.notification-history>div{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:9px;color:var(--muted)}.list-insights-panel{padding:22px}.engagement-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.list-insights-section{margin-top:18px}.list-insights-section h4{font-size:11px;margin:0 0 10px}.heatmap-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.mastery-heatmap{border-collapse:collapse;width:100%;font-size:9px}.mastery-heatmap th,.mastery-heatmap td{padding:7px 9px;text-align:center;white-space:nowrap}.mastery-heatmap thead th{background:#fbfaf9;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:8px;letter-spacing:.5px;border-bottom:1px solid var(--line)}.mastery-heatmap thead th span{display:inline-block;max-width:70px;overflow:hidden;text-overflow:ellipsis}.mastery-heatmap tbody th{text-align:left;color:var(--ink);font-weight:600;background:#fff;position:sticky;left:0;border-right:1px solid var(--line)}.mastery-heatmap td{border-bottom:1px solid #f3f1ec;font-weight:700}.mastery-heatmap td.untried{background:repeating-linear-gradient(45deg,#f7f6f2,#f7f6f2 4px,#efece6 4px 8px);color:#b3a7cb;font-weight:400}.mastery-heatmap td svg{vertical-align:-1px;margin-left:2px}.heatmap-legend{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--muted);font-size:8px}.heatmap-legend-ramp{width:70px;height:8px;border-radius:5px;background:linear-gradient(90deg,#6f61a81f,#6f61a8e6)}.heatmap-legend-mastered{display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--purple);font-weight:700}.misspellings-list{display:flex;flex-direction:column;gap:10px}.misspelling-row{padding:10px 12px;border:1px solid var(--line);border-radius:10px}.misspelling-word{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.misspelling-word strong{font-size:11px}.misspelling-word span{color:var(--muted);font-size:9px}.misspelling-chips{display:flex;flex-wrap:wrap;gap:6px}.misspelling-chip{padding:5px 8px;border-radius:7px;background:#f9e4df;color:#92564a;font-size:9px;font-weight:600}.misspelling-chip b{font-weight:800}.teacher-account-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.teacher-account-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.teacher-account-row>div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.teacher-account-row strong{font-size:11px}.portal-switcher{position:fixed;right:20px;bottom:18px;z-index:30;display:flex;gap:3px;padding:4px;background:#29243feb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:11px;box-shadow:0 12px 30px #1e192d3d}.portal-switcher button{border:0;background:transparent;color:#c8c3d5;padding:7px 10px;border-radius:8px;font-size:9px;text-transform:capitalize;cursor:pointer}.portal-switcher button.active{background:#fff;color:var(--ink);font-weight:700}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#1f1b2d75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:22px}.modal{width:min(820px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 28px 80px #1a142e3d;padding:26px}.compact-modal{width:min(460px,96vw)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal-header h2{font-family:Fraunces,serif;margin:3px 0 0;font-size:25px}.form-grid{display:grid;grid-template-columns:1.5fr .75fr;gap:14px}.modal label,.stacked-label{display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.modal input,.practice-card input{border:1px solid #ddd9e3;background:#fbfaf9;height:43px;border-radius:9px;padding:0 12px;color:var(--ink)}.word-fields-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:24px 0 9px}.word-fields-heading div{display:flex;flex-direction:column;gap:3px}.word-fields-heading strong{font-size:13px}.word-fields-heading span{color:var(--muted);font-size:9px}.word-fields-heading>span{color:var(--green);font-weight:700}.word-fields{display:flex;flex-direction:column;gap:7px}.word-field-row{display:grid;grid-template-columns:26px .55fr 1.45fr 32px;gap:7px;align-items:center}.word-number{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple);font-size:9px;font-weight:800}.add-row-button{border:0;background:transparent;color:var(--purple);display:flex;align-items:center;gap:6px;font-weight:700;font-size:10px;padding:11px 33px;cursor:pointer}.audio-note{margin-top:10px;padding:13px 14px;border-radius:10px;background:#f4f1fa;color:var(--purple);display:flex;align-items:center;gap:10px}.audio-note div{display:flex;flex-direction:column;gap:2px}.audio-note strong{font-size:10px}.audio-note span{color:#777085;font-size:9px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:19px;margin-top:19px;border-top:1px solid var(--line)}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.audio-speed-control{margin-top:8px;padding:15px;border:1px solid #e7e1f0;border-radius:12px;background:#fcfafd}.audio-speed-control>div:first-child{display:flex;align-items:center;gap:10px}.audio-speed-control>div:first-child>div{display:flex;flex-direction:column;gap:2px}.audio-speed-control strong{font-size:11px}.audio-speed-control span,.audio-speed-control small{color:var(--muted);font-size:9px}.audio-speed-control>small{display:block;margin:9px 0 0 46px}.audio-speed-row{display:grid;grid-template-columns:minmax(240px,1fr) 48px auto;align-items:center;gap:10px;margin-top:14px}.modal .audio-speed-row label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.modal .audio-speed-row input[type=range]{width:100%;height:22px;padding:0;border:0;background:transparent;accent-color:var(--purple);cursor:pointer}.audio-speed-row output{color:var(--purple);font-family:Fraunces,serif;font-size:17px;font-weight:700;text-align:center}.preview-audio-button{min-height:36px;padding-inline:12px;font-size:10px}.privacy-copy{display:flex;gap:8px;line-height:1.5;padding:13px;background:#f4f1fa;border-radius:10px;color:#716985;font-size:10px;margin:16px 0 0}.credential-card{text-align:center}.success-check{width:46px;height:46px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:var(--mint);color:var(--green)}.credential-card h3{font-family:Fraunces,serif;margin:0;font-size:21px}.credential-card>p{color:var(--muted);font-size:11px;margin-bottom:18px}.credential-card>div{padding:11px 13px;border:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.credential-card>div:first-of-type{border-radius:10px 10px 0 0}.credential-card>div:last-of-type{border-radius:0 0 10px 10px;border-top:0}.credential-card div span{color:var(--muted);font-size:10px}.credential-card .pin{font-family:ui-monospace,monospace;letter-spacing:3px}.credential-card button{margin-top:18px}.reset-pin-copy{color:var(--muted);font-size:11px;line-height:1.55}.classroom-form-fields{display:grid;gap:14px}.classroom-form-fields label{display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.classroom-form-fields input,.classroom-form-fields select{width:100%;height:43px;padding:0 12px;border:1px solid #ddd9e3;border-radius:9px;background:#fbfaf9;color:var(--ink)}.csv-button{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px!important;padding:8px 10px;border:1px solid #d9d3e5;border-radius:9px;color:var(--purple)!important;cursor:pointer;background:#faf9fd;white-space:nowrap}.csv-button input{display:none}.form-error{margin-top:10px;padding:10px 12px;border-radius:9px;background:#f9e4df;color:#92564a;font-size:10px;font-weight:600}.delete-list-button{color:#9a6e66}.delete-list-button:hover{color:#a64c3e;background:#fbe9e5;border-color:#efd1ca}.empty-state{grid-column:1 / -1;padding:42px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--muted)}.empty-state h3{font-family:Georgia,serif;color:var(--ink);margin:2px 0}.empty-state p{margin:0 0 10px;font-size:11px}.app-error-banner{margin-bottom:17px;padding:11px 14px;border:1px solid #edcfc8;background:#fbe9e5;color:#8c4d42;border-radius:10px;display:flex;justify-content:space-between;align-items:center;font-size:11px}.app-error-banner button{border:0;background:#fff;color:#8c4d42;border-radius:7px;padding:6px 9px;cursor:pointer;font-weight:700}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted)}.spinner.dark{border-color:#d8d2e5;border-top-color:var(--purple)}.local-only-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d8d2e5;border-radius:20px;background:#fff;color:var(--purple);font-size:9px;font-weight:700}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px}.settings-main,.settings-side{display:flex;flex-direction:column;gap:16px}.settings-card{padding:22px}.settings-card-heading{display:flex;align-items:flex-start;gap:12px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.settings-card-heading h3,.data-card h3{font-family:Fraunces,serif;font-size:19px;margin:1px 0 4px}.settings-card-heading p,.data-card p,.settings-save-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.settings-section-icon{width:40px;height:40px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center}.settings-section-icon.lavender{color:var(--purple);background:var(--purple-soft)}.settings-section-icon.peach{color:var(--coral);background:var(--peach)}.settings-section-icon.mint{color:var(--green);background:var(--mint)}.settings-fields{display:grid;gap:16px}.classroom-selector-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.classroom-selector-row label{display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.classroom-selector-row select{width:100%;height:43px;padding:0 11px;border:1px solid #ddd9e3;border-radius:9px;background:#fbfaf9;color:var(--ink)}.classroom-actions{display:flex;gap:8px}.settings-fields.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-fields label{display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.settings-fields input:not([type=range]),.settings-fields select{width:100%;height:43px;padding:0 11px;border:1px solid #ddd9e3;border-radius:9px;background:#fbfaf9;color:var(--ink)}.settings-fields input[type=range]{width:100%;accent-color:var(--purple)}.settings-fields label>span{display:flex;justify-content:space-between;gap:12px}.settings-fields label>span strong{color:var(--purple)}.tts-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tts-summary>div{min-height:98px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfaf9;display:flex;flex-direction:column;gap:5px}.tts-summary span{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.tts-summary strong{font-family:Fraunces,serif;font-size:16px}.tts-summary small{margin-top:auto;color:var(--muted);font-size:8px;line-height:1.4}.tts-summary .ready-text{color:var(--green)}.tts-summary .needs-text{color:#9a6c1b}.inline-setting{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.toggle-list{display:flex;flex-direction:column}.toggle-list label{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:67px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.toggle-list label:first-child{padding-top:0}.toggle-list label:last-child{padding-bottom:0;border-bottom:0}.toggle-list label>div{display:flex;flex-direction:column;gap:4px}.toggle-list strong{font-size:11px}.toggle-list span{color:var(--muted);font-size:9px;line-height:1.4}.toggle-list input{appearance:none;position:relative;width:38px;height:22px;flex:0 0 auto;border-radius:12px;background:#d9d6dd;cursor:pointer;transition:background .18s ease}.toggle-list input:after{content:"";position:absolute;width:16px;height:16px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #28223733;transition:transform .18s ease}.toggle-list input:checked{background:var(--purple)}.toggle-list input:checked:after{transform:translate(16px)}.data-card{padding:21px}.data-card>.settings-section-icon{margin-bottom:13px}.storage-status{display:flex;justify-content:space-between;align-items:center;padding:12px 0;margin:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px}.storage-status span{display:flex;align-items:center;gap:6px;color:var(--muted)}.storage-status i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--mint)}.storage-status strong{color:var(--green)}.data-card a{text-decoration:none}.data-card small{display:block;margin-top:10px;color:var(--muted);font-size:8px;line-height:1.5}.settings-save-card{padding:18px;border:1px solid #d8d2e5;border-radius:14px;background:#f4f1fa}.settings-save-card>button{margin-top:14px}.save-message{display:flex;align-items:center;gap:6px;margin-top:11px;padding:9px 10px;border-radius:8px;background:var(--mint);color:var(--green);font-size:9px;font-weight:700}.student-shell{min-height:100vh;background:#fbfaf5;color:#2c2941}.student-top,.parent-top{height:74px;border-bottom:1px solid #ebe7df;background:#ffffffe0;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,28px)}.student-top .logo-mark,.parent-top .logo-mark{background:#7159a7}.student-top-right,.parent-top>div{display:flex;align-items:center;gap:10px}.student-top-right>div,.parent-top>div>div{display:flex;flex-direction:column}.student-top-right strong,.parent-top strong{font-size:11px}.student-top-right span,.parent-top span{font-size:9px;color:var(--muted)}.student-avatar{background:#f5bda8;color:#60382a!important}.streak-chip{color:#8a5b24!important;background:#f8eccd;padding:7px 10px;border-radius:20px;font-weight:700}.student-signout{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#665f75;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:9px;font-weight:700}.student-signout:hover{color:var(--purple);border-color:#cfc8e2}.student-account-button{min-height:48px;padding:4px 8px 4px 5px;border:1px solid transparent;border-radius:12px;background:transparent;display:flex;align-items:center;gap:10px;color:var(--ink);cursor:pointer;text-align:left}.student-account-button:hover,.student-account-button:focus-visible{background:#f6f3fa;border-color:#ded7eb;outline:none}.student-account-button>div{display:flex;flex-direction:column;gap:2px}.student-account-button>div span{color:var(--purple);font-weight:700}.student-account-modal .stacked-label+.stacked-label{margin-top:12px}.student-account-modal input{text-align:center;font-size:18px;letter-spacing:7px}.account-intro{margin:-4px 0 18px;color:var(--muted);font-size:11px;line-height:1.55}.student-login-shell{min-height:100vh;background:#f6f2ec}.student-login-stage{min-height:calc(100vh - 74px);display:grid;place-items:center;padding:32px 20px 80px}.student-login-card{width:min(430px,100%);padding:36px 38px;border:1px solid var(--line);border-radius:21px;background:#fff;box-shadow:var(--shadow);text-align:center}.login-icon{width:52px;height:52px;margin:0 auto 15px;border-radius:15px;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple)}.student-login-card h1{margin:2px 0 7px;font-family:Fraunces,serif;font-size:29px}.student-login-card>p{margin:0 0 22px;color:var(--muted);font-size:11px;line-height:1.5}.student-login-card form{display:flex;flex-direction:column;gap:13px;text-align:left}.student-login-card label{display:flex;flex-direction:column;gap:7px;color:#5e596b;font-size:10px;font-weight:700}.student-login-card input{width:100%;height:47px;padding:0 13px;border:1px solid #ddd9e3;border-radius:10px;background:#fbfaf9;color:var(--ink)}.student-login-card:not(.teacher-access-card) label:nth-child(2) input{text-align:center;font-size:18px;letter-spacing:7px}.student-login-card form button{margin-top:3px}.test-login-tip{display:flex;align-items:flex-start;gap:8px;margin-top:19px;padding:12px;border-radius:10px;background:#f4f1fa;color:#716985;text-align:left}.test-login-tip svg{flex:0 0 auto}.test-login-tip span{font-size:9px;line-height:1.5}.test-login-tip strong{display:block;color:#554b70}.entry-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 83% 14%,rgba(214,204,239,.72),transparent 32%),#f8f5ef}.entry-header{height:78px;padding:0 max(5vw,28px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(64,56,79,.08)}.entry-header>span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.entry-main{width:min(1080px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center;padding:58px 0}.entry-copy h1{margin:7px 0 17px;font-family:Fraunces,serif;font-size:clamp(46px,6vw,72px);line-height:.96;letter-spacing:-2.5px}.entry-copy h1 em{color:var(--purple);font-style:normal}.entry-copy p{max-width:440px;color:var(--muted);font-size:13px;line-height:1.7}.persona-grid{display:grid;gap:15px}.persona-card{width:100%;min-height:160px;padding:26px;display:grid;grid-template-columns:58px 1fr 24px;gap:18px;align-items:center;border:1px solid var(--line);border-radius:20px;background:#ffffffeb;box-shadow:0 10px 35px #2d264112;color:var(--ink);text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.persona-card:hover{transform:translateY(-3px);border-color:#c9bee2;box-shadow:0 18px 42px #2d26411f}.persona-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:var(--purple-soft);color:var(--purple)}.student-persona .persona-icon{background:var(--mint);color:var(--green)}.persona-card>span:nth-child(2){display:flex;flex-direction:column}.persona-card small{color:var(--purple);font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.student-persona small{color:var(--green)}.persona-card strong{margin:5px 0 6px;font-family:Fraunces,serif;font-size:22px}.persona-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.persona-card>svg{color:#afa6c0}.entry-footer{padding:18px;text-align:center;color:var(--muted);font-size:9px}.app-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;background:#f7f4ee;color:var(--muted)}.app-loading .spinner{border-color:#ddd5eb;border-top-color:var(--purple)}.app-loading p{margin:0;font-size:10px}.teacher-access-card{width:min(460px,100%)}.teacher-access-card .password-guidance{margin-top:-7px;color:var(--muted);font-size:9px;text-align:left}.access-link{margin-top:17px;border:0;background:transparent;color:var(--purple);font-size:10px;font-weight:700;cursor:pointer}.recovery-card{width:min(510px,100%)}.recovery-code{margin:20px 0 14px;padding:17px 12px;border:1px dashed #aaa0c2;border-radius:12px;background:#f7f4fb;color:#4f416f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px;font-weight:800;letter-spacing:1px;overflow-wrap:anywhere}.security-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 18px;padding:11px;border-radius:10px;background:var(--mint);color:#48735f;text-align:left;font-size:9px;line-height:1.5}.security-note svg{flex:0 0 auto}.student-home{max-width:1080px;margin:0 auto;padding:30px 28px 60px}.student-welcome-card{height:310px;border-radius:24px;background:#ddd6f0;position:relative;overflow:hidden;display:flex;align-items:center;padding:40px 48px;box-shadow:0 14px 40px #49396f17}.student-welcome-card:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:#ffffff52;right:-50px;top:-80px}.student-welcome-card:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:#ffffff30;right:270px;bottom:-125px}.student-welcome-copy{position:relative;z-index:2;max-width:540px}.student-kicker{display:block;color:#6a5795;font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:7px}.student-welcome-card h1{font-family:Fraunces,serif;font-size:39px;line-height:1.06;letter-spacing:-1.2px;margin:0 0 10px}.student-welcome-card h1 em{color:#665092;font-style:normal}.student-welcome-card p{color:#5f5870;font-size:12px;line-height:1.5;max-width:420px}.student-actions{display:flex;gap:9px;margin-top:19px}.student-primary,.student-secondary{min-height:45px;padding:0 19px}.student-welcome-card img{position:absolute;right:25px;bottom:-38px;height:330px;z-index:1;filter:drop-shadow(0 18px 20px rgba(50,34,60,.15))}.student-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.student-summary-grid article{border:1px solid var(--line);background:#fff;border-radius:15px;min-height:82px;padding:15px;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center}.summary-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.summary-icon.purple{background:var(--purple-soft);color:var(--purple)}.summary-icon.peach{background:var(--peach);color:var(--coral)}.summary-icon.mint{background:var(--mint);color:var(--green)}.student-summary-grid article>div{display:flex;flex-direction:column;gap:2px}.student-summary-grid small{color:var(--muted);font-size:9px}.student-summary-grid strong{font-family:Fraunces,serif;font-size:18px}.streak-dots{color:#f0ae40;letter-spacing:1px;font-size:9px}.streak-dots i{color:#e8e5de;font-style:normal}.days-left{background:#f1f6f3;color:var(--green);padding:5px 7px;border-radius:20px;font-size:8px;font-weight:700}.days-left.preparing{color:#80641f;background:#fbf1d7}.student-bottom-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:14px;margin-top:16px}.student-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.student-panel-heading{display:flex;justify-content:space-between}.student-panel-heading span{color:var(--purple);font-size:9px;text-transform:uppercase;letter-spacing:1px;font-weight:700}.student-panel-heading strong{color:var(--muted);font-size:10px}.student-word-cloud{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 13px}.student-word-cloud>span{display:inline-flex;align-items:center;gap:4px;padding:7px 10px;border-radius:8px;font-size:10px;font-weight:600}.student-word-cloud span.mastered{background:#eef6f1;color:#3f755d}.student-word-cloud span.needs-work{background:#f0ebf8;color:#665490}.legend{display:flex;gap:15px;color:var(--muted);font-size:8px}.legend span{display:flex;align-items:center;gap:4px}.legend i{width:6px;height:6px;border-radius:50%}.lavender-dot{background:#aa94d2}.green-dot{background:#80ba9c}.encouragement{display:flex;flex-direction:column;justify-content:center;background:#f9eadc;border-color:#f0dccb;position:relative;overflow:hidden}.encouragement .quote-mark{position:absolute;font-family:Fraunces,serif;font-size:90px;color:#bc6b4a21;top:-17px;left:14px}.encouragement p{font-family:Fraunces,serif;font-size:18px;line-height:1.35;margin:8px 0 15px;position:relative}.encouragement>span:last-child{color:#8b6b5d;font-size:9px}.practice-pickers{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;max-width:390px;margin-top:14px}.practice-pickers label{display:flex;flex-direction:column;gap:4px;color:#5d5670;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.practice-pickers select{height:38px;border:1px solid rgba(83,69,115,.2);background:#ffffffb8;color:var(--ink);border-radius:9px;padding:0 28px 0 10px;font:inherit;font-size:10px}.hero-error{margin-top:9px;color:#8f4f44;font-size:9px;font-weight:700}.empty-copy{color:var(--muted);font-size:10px}.result-trophy{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#f8eccd;color:#a66b1c;margin:6px auto 10px}.result-actions{display:flex;justify-content:center;gap:9px}.practice-pickers.single{grid-template-columns:minmax(220px,1fr);max-width:300px}.practice-stage{min-height:calc(100vh - 74px);max-width:800px;margin:0 auto;padding:30px 24px 70px}.back-button{border:0;background:transparent;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;cursor:pointer}.practice-progress{margin:23px auto 18px;max-width:580px}.practice-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:9px;font-size:10px}.practice-progress span{color:var(--purple);text-transform:uppercase;letter-spacing:.8px;font-weight:700}.practice-card,.result-card{max-width:580px;margin:0 auto;padding:34px 54px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow);text-align:center}.audio-button{margin:12px auto 20px;width:104px;height:104px;border:0;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;cursor:pointer;position:relative;box-shadow:0 0 0 10px #f0ecf7,0 15px 30px #5e4c9740}.audio-button.playing{animation:pulse 1.1s ease infinite}@keyframes pulse{50%{box-shadow:0 0 0 17px #f0ecf7,0 15px 30px #5e4c9740}}.audio-wave{position:absolute;right:-53px;display:flex;gap:3px;align-items:center}.audio-wave i{display:block;width:3px;background:#a895d2;border-radius:3px;height:12px}.audio-wave i:nth-child(2){height:22px}.audio-wave i:nth-child(3){height:16px}.audio-wave i:nth-child(4){height:8px}.practice-card h1{font-family:Fraunces,serif;font-size:25px;margin:0 0 6px}.practice-card>p{color:var(--muted);font-size:10px;margin:0 0 24px}.practice-card form{text-align:left}.practice-card label{display:flex;flex-direction:column;gap:8px;font-size:10px;color:#605b69;font-weight:700}.practice-card input{height:53px;font-size:18px;text-align:center;letter-spacing:.4px}.keyboard-hint{color:var(--muted);font-size:8px;text-align:center;margin:7px 0 13px}.feedback-box{display:flex;gap:10px;align-items:center;border-radius:10px;padding:11px 12px;margin:10px 0 13px;text-align:left}.feedback-box.correct{color:#397b5c;background:var(--mint)}.feedback-box.incorrect{color:#92564a;background:#f9e4df}.feedback-box.pending{color:#5e5870;background:#f4f1fa}.feedback-box div{display:flex;flex-direction:column;gap:2px}.feedback-box strong{font-size:10px}.feedback-box span{font-size:9px;opacity:.82}.test-notice{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:8px;margin-top:14px}.result-card{padding-top:42px}.result-score{width:115px;height:115px;border-radius:50%;margin:10px auto 18px;background:var(--purple-soft);color:var(--purple);display:flex;align-items:center;justify-content:center}.result-score strong{font-family:Fraunces,serif;font-size:52px}.result-score span{font-size:17px}.result-card h1{font-family:Fraunces,serif;font-size:25px;margin:0}.result-card>p{color:var(--muted);font-size:10px}.missed-words{margin:20px 0;text-align:left}.missed-words>div{display:flex;justify-content:space-between;padding:11px;border-bottom:1px solid var(--line);font-size:10px}.missed-words span{color:#a25d4f;display:flex;gap:5px;align-items:center}.perfect-result{justify-content:center!important;color:var(--green);background:var(--mint);border-radius:10px}.parent-shell{min-height:100vh;background:#f5f2ec}.parent-avatar{background:#c9d9ed;color:#354c6c!important}.parent-main{max-width:1040px;margin:0 auto;padding:37px 28px 64px}.parent-intro{text-align:center}.parent-kicker{color:var(--purple);font-weight:800;font-size:9px;letter-spacing:1.3px;text-transform:uppercase}.parent-intro h1{font-family:Fraunces,serif;font-size:34px;margin:5px 0 7px}.parent-intro p{color:var(--muted);font-size:11px;margin:0 0 25px}.parent-highlight{min-height:245px;border-radius:19px;background:#2d2942;color:#fff;display:grid;grid-template-columns:155px 1fr 170px;align-items:center;padding:29px 35px;overflow:hidden;position:relative}.parent-score{border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;height:130px;justify-content:center}.parent-score>span{color:#b8b2c8;font-size:9px}.parent-score>strong{font-family:Fraunces,serif;color:#f5d47b;font-size:59px;line-height:1;margin:7px 0 3px}.parent-score strong span{font-size:19px}.parent-score small{color:#b8b2c8;font-size:9px}.parent-result-copy{padding-left:28px;z-index:2}.success-pill{display:inline-flex;align-items:center;gap:5px;background:#69b99126;color:#a8dabf;border-radius:20px;padding:6px 9px;font-size:8px}.parent-result-copy h2{font-family:Fraunces,serif;font-size:25px;margin:9px 0 5px}.parent-result-copy>p{color:#b9b5c3;font-size:10px;line-height:1.5;max-width:440px}.parent-stats{display:flex;gap:23px;margin-top:14px}.parent-stats span{display:flex;flex-direction:column;color:#aaa5b6;font-size:8px}.parent-stats strong{color:#fff;font-size:13px}.parent-highlight img{position:absolute;height:220px;right:-15px;bottom:-32px;filter:drop-shadow(0 15px 20px rgba(0,0,0,.18));opacity:.95}.parent-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.parent-grid>article{padding:21px}.missed-parent-word{display:flex;align-items:flex-end;gap:10px;margin:20px 0 15px}.missed-parent-word>span,.missed-parent-word div span{display:block;color:var(--muted);font-size:8px;margin-bottom:4px}.missed-parent-word s{color:#b06153;font-size:14px}.missed-parent-word strong{font-size:18px;color:var(--green)}.context-sentence{background:#f8f6f2;border-radius:9px;padding:11px;color:var(--muted);font-size:10px;font-style:italic}.upcoming-card>p{color:var(--muted);font-size:10px}.parent-progress{margin:18px 0}.parent-progress>div{display:flex;justify-content:space-between;font-size:9px;margin-bottom:7px}.notification-setting{border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;gap:9px;color:var(--purple)}.notification-setting div{display:flex;flex-direction:column;gap:2px}.notification-setting strong{font-size:9px}.notification-setting span{color:var(--muted);font-size:8px}.parent-footer-note{display:flex;justify-content:center;align-items:center;gap:6px;color:var(--muted);font-size:8px;margin-top:19px}@media(max-width:1050px){.app-shell{grid-template-columns:76px 1fr}.sidebar{width:76px;padding:26px 12px}.sidebar .logo-lockup{padding:0 7px 32px}.sidebar .logo-lockup>span:last-child,.side-nav span:not(.nav-count),.nav-caption,.class-card-copy,.sidebar-class-card>svg,.sidebar-bottom>button span,.teacher-mini-profile div,.teacher-mini-profile>svg{display:none}.side-nav button,.sidebar-bottom>button{justify-content:center}.nav-count{position:absolute;margin:-25px 0 0 20px}.sidebar-class-card{grid-template-columns:1fr;padding:9px}.class-card-icon{margin:auto}.classroom-menu{left:55px;top:0}.teacher-mini-profile{grid-template-columns:1fr}.teacher-mini-profile .avatar{margin:auto}.teacher-workspace{grid-column:2}.student-welcome-card img{right:-10px;opacity:.86}.student-welcome-copy{max-width:500px}.parent-highlight{grid-template-columns:145px 1fr}.parent-highlight img{opacity:.25}}@media(max-width:760px){.section-actions{width:100%}.section-actions button{flex:1}.tts-summary{grid-template-columns:1fr}.classroom-actions{display:grid;grid-template-columns:1fr 1fr}.audio-speed-row{grid-template-columns:1fr 48px}.preview-audio-button{grid-column:1 / 3}.audio-speed-control>small{margin-left:0}.entry-header{padding:0 20px}.entry-header>span{display:none}.entry-main{width:min(100% - 36px,560px);grid-template-columns:1fr;gap:34px;padding:38px 0}.entry-copy{text-align:center}.entry-copy h1{font-size:48px}.entry-copy p{margin-inline:auto}.persona-card{min-height:142px;padding:20px;grid-template-columns:49px 1fr 18px;gap:13px}.persona-icon{width:49px;height:49px;border-radius:14px}.persona-card strong{font-size:19px}.app-shell{display:block}.sidebar{position:fixed;inset:auto 0 0;height:65px;width:100%;padding:7px 12px;flex-direction:row;z-index:25}.sidebar .logo-lockup,.sidebar-class-switcher,.sidebar-bottom{display:none}.side-nav{width:100%;flex-direction:row;justify-content:space-around}.side-nav button{flex:1;flex-direction:column;gap:2px;padding:7px 4px;font-size:8px}.side-nav .mobile-settings{display:flex!important}.side-nav span:not(.nav-count){display:block}.side-nav button.active{box-shadow:inset 0 -3px #a994e8}.nav-count{display:none}.teacher-workspace{padding-bottom:62px}.topbar{height:68px;padding:0 18px}.topbar>div:nth-child(2) .eyebrow{display:none}.topbar h1{font-size:20px}.topbar-actions .avatar{display:none}.mobile-logo{display:block}.teacher-main{padding:24px 18px 35px}.welcome-row,.section-intro{align-items:flex-start;flex-direction:column}.welcome-row h2,.section-intro h2{font-size:26px}.stats-grid,.dashboard-grid,.list-cards,.report-grid,.student-report-grid,.student-summary-grid,.student-bottom-grid,.settings-layout,.settings-fields.two-column,.classroom-selector-row,.inline-setting{grid-template-columns:1fr}.list-summary{grid-template-columns:90px 1fr;gap:15px}.mastery-ring.large{width:86px;height:86px}.activity-head,.activity-row{grid-template-columns:1.25fr .9fr .6fr}.activity-head span:nth-child(2),.activity-row>span:nth-child(2){display:none}.roster-head,.roster-row{grid-template-columns:1.4fr 1fr .8fr 32px}.roster-head span:nth-child(2),.roster-row>span:nth-child(2),.roster-head span:nth-child(4),.roster-row>span:nth-child(4){display:none}.word-field-row{grid-template-columns:24px 1fr 32px}.word-field-row input:nth-of-type(2){grid-column:2 / 4}.form-grid{grid-template-columns:1fr}.student-top{padding:0 18px}.student-top-right>div,.streak-chip,.student-account-button>div{display:none}.student-account-button{padding-right:5px}.student-welcome-card{height:430px;padding:31px 28px;align-items:flex-start}.student-welcome-card h1{font-size:33px}.student-welcome-card img{height:235px;right:10px;bottom:-15px}.student-welcome-copy{max-width:none}.student-actions{flex-direction:column;align-items:flex-start}.student-actions button{width:170px}.practice-card,.result-card,.student-login-card{padding:29px 23px}.student-signout{padding:0 8px}.student-signout svg{display:none}.practice-card,.result-card{padding:29px 23px}.insight-banner{grid-template-columns:38px 1fr}.insight-banner .text-button{grid-column:2;justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
