@import "https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,700;6..72,800&family=Work+Sans:wght@400;500;600;700&display=swap";:root{--immi-bg-yellow:#f5d300;--immi-yellow:#e8e1c8;--immi-yellow-soft:#e8e1c8;--immi-yellow-pale:#d8d8d8;--immi-black:#111;--immi-ink:#1c1a12;--immi-paper:#fff7da;--immi-panel:#f0e2b5;--immi-panel-deep:#e6d69d;--immi-cream:#f7efcf;--immi-red:#ff3b30;--immi-gold:#f2c100;color:var(--immi-black);background:var(--immi-bg-yellow);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Work Sans,Inter,Avenir Next,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--immi-bg-yellow);min-width:320px;min-height:100vh;margin:0}h1,h2,h3,h4{letter-spacing:-.03em;color:var(--immi-black);font-family:Newsreader,Georgia,Times New Roman,serif;line-height:.96}button,input,textarea{font:inherit}h1,h2,h3,h4,p{margin:0}#root{min-height:100vh}.app-shell{max-width:1240px;min-height:100vh;color:var(--immi-black);margin:0 auto;padding:24px}.home-hero{text-align:center;gap:12px;max-width:760px;margin:10px auto 24px;display:grid}.home-hero-title{margin:0;font-size:clamp(2.6rem,5vw,4.2rem);line-height:.95}.home-hero-copy{margin:0;font-size:1.22rem;line-height:1.45}.hero-panel,.panel,.mode-card,.metric-card,.attempt-card,.answer-card,.question-panel,.empty-state,.chart-card,.feedback-card,.timer-chip,.hero-note,.helper-card{background:var(--immi-yellow);border:3px solid var(--immi-black);box-shadow:none}.hero-panel{border-radius:34px;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding:28px 30px;display:flex}.hero-copy{max-width:60ch}.hero-note{border-radius:22px;gap:8px;min-width:300px;padding:16px 18px;display:grid}.hero-note span,.hero-note strong,.eyebrow,.mode-kicker,.question-label{color:var(--immi-black)}.eyebrow,.mode-kicker,.question-label,.step-label,.field span{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700}.step-label{color:#7d7040;white-space:nowrap}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.full-span{grid-column:1/-1}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.home-choice-grid{background:0 0;border:0;padding:0}.mode-card,.panel{border-radius:34px}.mode-card{text-align:left;color:var(--immi-black);cursor:pointer;padding:28px;transition:transform .14s}.mode-card:hover,.mode-card:focus-visible{transform:translateY(-3px)}.mode-card h2{margin:8px 0 10px}.panel{gap:16px;padding:22px;display:grid}.view-teacher .hero-panel{background:0 0;border:0;border-radius:0;margin-bottom:22px;padding:0}.view-teacher .content-grid{grid-template-columns:minmax(0,1fr);gap:24px;max-width:760px;margin:0 auto}.view-teacher .hero-note{display:none}.view-teacher .identity-panel,.view-teacher .entry-panel,.view-teacher .goals-panel{background:0 0;border:0;border-radius:0;padding:0}.view-teacher .teacher-masthead{background:0 0;border:0;border-radius:0;margin-bottom:6px;padding:0}.view-teacher .teacher-masthead h2,.view-teacher .teacher-masthead p{display:none}.view-teacher .teacher-masthead .toolbar-actions{justify-content:flex-end;align-items:center;width:100%;position:relative}.view-teacher .teacher-current-class{max-width:calc(100% - 380px);color:var(--immi-black);letter-spacing:-.03em;text-align:center;white-space:nowrap;text-overflow:ellipsis;font-family:Cormorant Garamond,Times New Roman,serif;font-size:clamp(1.45rem,2.8vw,2.2rem);font-weight:700;line-height:1;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.view-teacher .identity-panel form.stack,.view-teacher .entry-panel form.stack,.view-teacher .goals-panel .goal-row{border-radius:34px;padding:22px}.view-teacher .entry-panel>.section-heading{justify-content:flex-start}.view-student-dashboard .hero-panel{display:none}.student-page{background:0 0;border:0;border-radius:0;gap:18px;padding:0}.student-page-header,.student-summary-card,.student-progress-card{background:var(--immi-yellow);border:3px solid var(--immi-black);border-radius:28px;padding:18px}.student-page-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-overview-title{margin:0;font-size:clamp(2rem,3.6vw,3rem);line-height:1}.student-page-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.student-summary-card{gap:12px;display:grid}.student-profile-card h3{margin:0}.radar-wrap{justify-items:center;width:100%;display:grid;overflow-x:auto}.radar-chart{width:min(100%,460px);min-width:320px}.radar-grid-ring{fill:none;stroke:#11111138;stroke-width:1.6px}.radar-grid-ring-goal{stroke:#169a43;stroke-width:2px}.radar-grid-ring-strong{stroke:var(--immi-gold);stroke-width:2.2px}.radar-axis-line{stroke:#11111147;stroke-width:1.6px}.radar-value-area{fill:#0f5abead;stroke:#0f5abe;stroke-width:2.4px}.radar-value-point{fill:#0f5abe;stroke:var(--immi-black);stroke-width:1.4px}.radar-label{fill:var(--immi-black);font-size:.75rem;font-weight:700}.topic-summary-table{border:2px solid var(--immi-black);border-radius:18px;overflow:hidden}.topic-summary-head,.topic-summary-row{grid-template-columns:minmax(140px,1.3fr) minmax(88px,1fr) 1fr 1fr minmax(140px,1.2fr);align-items:center;gap:10px;padding:10px 12px;display:grid}.topic-summary-head>span,.topic-summary-row>span{text-align:center}.topic-summary-head>span:first-child,.topic-summary-row>span:first-child{text-align:left}.topic-summary-head{text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--immi-black);font-size:.82rem;font-weight:700}.topic-summary-row{border-radius:0}.topic-name{font-weight:700}.topic-name-link{color:var(--immi-black);font:inherit;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.topic-name-link:hover,.topic-name-link:focus-visible{opacity:.76}.status-chip{border:2px solid var(--immi-black);border-radius:999px;justify-content:center;justify-self:center;align-items:center;width:34px;height:34px;font-size:1rem;font-weight:700;display:inline-flex}.status-chip-success{color:#fff;background:#16a34a}.status-chip-strong{background:var(--immi-gold);color:var(--immi-black)}.status-chip-fail{background:var(--immi-red);color:#fff}.summary-action-slot{justify-content:center;display:flex}.summary-action-button{white-space:nowrap;width:100%;max-width:170px;padding:9px 12px}.summary-inline-note{border:2px solid var(--immi-black);text-align:center;border-radius:999px;width:100%;max-width:170px;padding:8px 10px;font-weight:700}.student-progress-card{gap:12px;display:grid}.diagram-section{gap:10px;display:grid}.diagram-section-title{text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.76rem;font-weight:700}.diagram-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.topic-diagram-card{border:2px solid var(--immi-black);background:var(--immi-yellow);border-radius:16px;justify-items:start;gap:8px;padding:10px;display:grid}.diagram-topic-title{text-align:center;width:min(100%,420px);margin:0;font-weight:700}.chart-compact-wrap{width:min(100%,420px);margin:0}.diagram-legend-inline{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.student-progress-card .chart-card{border-width:2px;border-radius:16px;gap:6px;padding:8px}.student-progress-card .chart-caption{font-size:.76rem}.student-progress-card .progress-chart{min-width:220px}.history-table-panel{gap:10px;display:grid}.home-leaderboard-panel{gap:12px;display:grid}.home-leaderboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.home-leaderboard-table td:nth-child(2),.home-leaderboard-table th:nth-child(2){text-align:center;width:88px}.home-leaderboard-table td:nth-child(3),.home-leaderboard-table th:nth-child(3){width:116px}.history-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.history-column-card{border:2px solid var(--immi-black);background:var(--immi-yellow);border-radius:16px;gap:8px;padding:12px;display:grid}.history-column-card h4{margin:0}.history-table-wrap{border:2px solid var(--immi-black);border-radius:16px;overflow:hidden}.history-table{border-collapse:collapse;width:100%}.history-table th,.history-table td{border-bottom:2px solid var(--immi-black);text-align:left;color:var(--immi-black);vertical-align:top;padding:12px 14px}.history-table th{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.history-table tbody tr:last-child td{border-bottom:0}.result-overview-title{text-align:center;font-size:clamp(2rem,4vw,3rem);line-height:1}.result-masthead{position:relative}.result-masthead>div:first-child{flex:1;justify-content:center;display:flex}.results-summary-layout{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.results-summary-main{gap:12px;display:grid}.results-summary-side{border:2px solid var(--immi-black);background:var(--immi-yellow);border-radius:16px;justify-items:start;gap:8px;padding:10px;display:grid}.results-summary-side .diagram-topic-title{text-align:left}.goal-sections{gap:0;display:grid}.goal-row{grid-template-columns:minmax(200px,1.45fr) minmax(72px,.36fr) minmax(92px,.56fr) minmax(92px,.56fr) minmax(78px,.38fr);align-items:center;gap:14px;display:grid}.goal-row h4{margin:0;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.2}.goal-inline-field{align-self:stretch;min-width:0}.goal-inline-field input{min-height:42px;padding:8px 10px;font-size:1.05rem;font-weight:700}.goal-inline-toggle{place-self:center;min-height:42px;margin-top:0;font-size:1rem;font-weight:700}.goal-inline-toggle input{width:22px;height:22px;margin:0}.goals-table-card{border:3px solid var(--immi-black);background:var(--immi-yellow);border-radius:22px;overflow:hidden}.goal-table-head{border-bottom:2px solid var(--immi-black);grid-template-columns:minmax(200px,1.45fr) minmax(72px,.36fr) minmax(92px,.56fr) minmax(92px,.56fr) minmax(78px,.38fr);gap:14px;padding:12px 18px;display:grid}.goal-table-head span{text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:700}.goal-table-head span:not(:first-child){text-align:center}.goal-row-compact{border-bottom:2px solid var(--immi-black);padding:12px 18px}.goal-row-compact>:not(h4){justify-self:center}.goal-row-compact:last-child{border-bottom:0}.goal-inline-field-compact{justify-self:center;gap:0;width:100%;max-width:114px}.goal-inline-field-compact span{display:none}.goal-inline-toggle-compact{justify-content:center;min-height:0}.goal-bulk-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.topic-access-panel .assignment-table{min-width:1420px}.topic-access-toggle{justify-content:center;align-items:center;display:inline-flex}.topic-access-toggle input{width:20px;height:20px}.date-cell{gap:2px;display:grid}.time-cell{font-size:.86rem}.section-headline,.section-heading,.toolbar,.session-header,.topic-card,.results-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.section-headline h3,.section-headline h2{margin-right:10px}.compact-heading{align-items:flex-start}.toolbar-actions{flex-wrap:wrap;gap:10px;display:flex}.stack{gap:14px;display:grid}.field{gap:7px;display:grid}.field span,.section-copy,.session-note,.status-text,.panel p{color:var(--immi-black)}.identity-panel form.stack,.entry-panel form.stack,.goals-panel .goal-row,.login-panel form.stack{border:3px solid var(--immi-black);background:var(--immi-yellow);border-radius:22px;padding:18px}.goals-panel .goal-row{background:0 0;border:0;border-radius:0}.home-login-form{background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.teacher-request-row{margin:4px 0 0;font-size:.98rem}.home-request-outside{text-align:center;margin-top:-4px}.home-request-outside strong{font-weight:800}.teacher-request-link{color:var(--immi-black);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.teacher-request-link:hover,.teacher-request-link:focus-visible{opacity:.72}.field input,.field textarea,.answer-form input{box-sizing:border-box;border:2px solid var(--immi-black);width:100%;color:var(--immi-black);font:inherit;background:#d9d9d9;border-radius:0;padding:14px 16px}.field textarea{resize:vertical;min-height:180px}.field input:focus,.field textarea:focus,.answer-form input:focus{outline:2px solid var(--immi-black);outline-offset:2px}.primary-button,.secondary-button,.ghost-button,.danger-button{font:inherit;cursor:pointer;border:3px solid var(--immi-black);background:var(--immi-yellow);color:var(--immi-black);border-radius:0;padding:12px 18px;font-weight:700;transition:transform .12s}.primary-button{background:var(--immi-yellow);color:var(--immi-black);border-color:var(--immi-black)}.cta-button{background:var(--immi-black);color:var(--immi-yellow-soft)}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.danger-button:hover,.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible,.danger-button:focus-visible{transform:translateY(-1px)}.danger-button{background:var(--immi-red);color:var(--immi-yellow-soft);border-color:#9d2d26}.small-button{padding:9px 12px}.form-actions{background:0 0;border-width:0;border-radius:0;grid-template-columns:1fr 1fr;gap:10px;padding:0;display:grid}.helper-grid{grid-template-columns:minmax(220px,1fr);gap:14px;display:grid}.helper-card{border-radius:26px;gap:6px;padding:18px;display:grid}.metrics-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.metrics-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.results-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.toggle-row,.inline-toggle{color:var(--immi-black);align-items:center;gap:9px;display:inline-flex}.student-table-wrapper{overflow-x:auto}.student-table{border-collapse:collapse;width:100%;min-width:0}.teacher-status-table{width:max-content;min-width:940px}.class-selector-table{table-layout:fixed;width:100%;min-width:0}.class-selector-table th,.class-selector-table td{padding:7px 8px}.class-selector-table th:first-child,.class-selector-table td:first-child{width:38%}.class-selector-table th:nth-child(2),.class-selector-table td:nth-child(2){text-align:center;width:16%}.class-selector-table th:nth-child(3),.class-selector-table td:nth-child(3),.class-selector-table th:nth-child(4),.class-selector-table td:nth-child(4){text-align:center;width:23%}.class-table-button{border-width:2px;padding:5px 10px}.class-row-link{font-weight:600}.teacher-insights-panel{gap:12px;display:grid}.teacher-insights-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.teacher-insight-table th:nth-child(3),.teacher-insight-table td:nth-child(3){width:132px}.compact-empty-state{align-content:center;min-height:140px}.student-table th,.student-table td{text-align:left;border-bottom:2px solid var(--immi-black);color:var(--immi-black);padding:12px 10px}.student-table th{font-weight:700}.topic-status-heading{text-align:center;white-space:normal;min-width:118px;line-height:1.2}.teacher-status-table .topic-status-heading{min-width:110px;max-width:150px}.topic-status-cell{text-align:center!important}.student-table code{border:2px solid var(--immi-black);background:var(--immi-yellow);color:var(--immi-black);padding:5px 10px;display:inline-block}.student-row-link{color:var(--immi-black);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.student-row-link:hover,.student-row-link:focus-visible{opacity:.76}.inline-text-button{color:var(--immi-black);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0 0 0 4px;font-weight:700;text-decoration:underline}.inline-text-button:hover,.inline-text-button:focus-visible{opacity:.76}.teacher-topic-status{border:2px solid var(--immi-black);background:var(--immi-yellow);border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:42px;margin:0 auto;font-size:1.2rem;font-weight:700;display:inline-flex}.teacher-topic-status-disabled{color:#777166}.teacher-topic-status-not-yet{color:var(--immi-red)}.teacher-topic-status-fluent{color:#169a43}.teacher-topic-status-strong{color:var(--immi-gold)}.success-pill,.pending-pill{border:2px solid var(--immi-black);background:var(--immi-yellow);color:var(--immi-black);justify-content:center;align-items:center;padding:7px 10px;font-size:.9rem;font-weight:700;display:inline-flex}.centered-panel{max-width:620px;margin:0 auto}.topic-card{align-items:flex-end}.metric-card,.attempt-card,.answer-card,.question-panel,.empty-state,.chart-card,.feedback-card{border-radius:20px;padding:16px}.metric-card{gap:8px;display:grid}.metric-card span,.metric-card strong,.answer-card strong,.attempt-card strong,.question-panel h3,.feedback-card h4,.attempt-card p,.answer-card p,.feedback-card p,.chart-caption,.legend-item,.chart-axis-text,.error-text{color:var(--immi-black)}.metric-card-danger,.feedback-card-danger,.answer-card-danger{background:var(--immi-red);border-color:#9d2d26}.metric-card-danger span,.metric-card-danger strong,.feedback-card-danger h4,.feedback-card-danger p,.answer-card-danger p,.answer-card-danger strong{color:var(--immi-yellow-soft)}.attempt-list,.feedback-list,.answer-review,.chart-card{gap:12px;display:grid}.chart-scroll{overflow-x:auto}.progress-chart{width:100%;min-width:420px;display:block}.chart-legend{flex-wrap:wrap;gap:14px;display:flex}.legend-item{align-items:center;gap:8px;display:inline-flex}.legend-swatch{width:18px;height:3px}.legend-swatch-blue{background:var(--immi-black)}.legend-swatch-red{background:var(--immi-red)}.legend-swatch-green{background:#169a43}.legend-swatch-gold{background:var(--immi-gold)}.chart-grid-line{stroke:#1a1a1a47;stroke-width:1px}.chart-goal-text{fill:#169a43;font-weight:700}.chart-strong-goal-text{fill:var(--immi-gold);font-weight:700}.chart-line{fill:none;stroke:var(--immi-black);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chart-goal-line{stroke:#169a43;stroke-width:3px;stroke-dasharray:8 6}.chart-strong-goal-line{stroke:var(--immi-gold);stroke-width:3px;stroke-dasharray:12 6}.chart-point{fill:var(--immi-yellow);stroke:var(--immi-black);stroke-width:2px}.session-stage{background:var(--immi-yellow);color:var(--immi-black);align-content:center;gap:22px;min-height:calc(100vh - 210px)}.session-stage p,.session-stage h2,.session-stage h3,.session-stage .eyebrow,.session-stage .question-label,.session-stage .session-note{color:var(--immi-black)}.timer-chip{text-align:center;border-radius:18px;gap:6px;min-width:148px;padding:14px 16px;display:grid}.timer-chip span,.timer-chip strong{color:var(--immi-black)}.timer-chip strong{font-size:2.4rem;line-height:1}.question-panel{gap:18px;padding:30px}.question-panel h3{max-width:16ch;font-size:clamp(2rem,4vw,3.8rem);line-height:1.06}.answer-form{gap:12px;display:flex}.answer-form input{font-size:1.1rem}.results-actions{justify-content:flex-start;margin-top:8px}.view-session .hero-panel,.view-results .hero-panel{display:none}@media (width<=1100px){.metrics-strip,.results-metrics,.home-leaderboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=960px){.app-shell{padding:14px}.hero-panel,.choice-grid,.content-grid,.metrics-panel,.helper-grid,.form-actions,.student-page-grid,.history-columns,.teacher-insights-grid,.results-summary-layout,.home-leaderboard-grid{grid-template-columns:1fr}.topic-summary-head,.topic-summary-row{grid-template-columns:1.2fr .9fr .9fr .9fr 1.1fr;gap:6px}.topic-summary-head{font-size:.66rem}.status-chip{width:26px;height:26px;font-size:.8rem}.summary-action-button,.summary-inline-note{max-width:none;padding:8px 6px;font-size:.78rem}.hero-panel,.toolbar,.section-heading,.section-headline,.session-header,.topic-card,.answer-form{flex-direction:column;align-items:stretch}.hero-panel,.panel,.mode-card,.question-panel{padding:20px}.view-teacher .teacher-current-class{text-align:center;width:100%;max-width:none;margin-bottom:6px;font-size:clamp(1.35rem,7vw,1.8rem);position:static;transform:none}.view-teacher .hero-panel,.view-teacher .identity-panel,.view-teacher .entry-panel,.view-teacher .goals-panel{padding:0}.goal-row{grid-template-columns:1fr;align-items:stretch;gap:10px}.goal-table-head{display:none}.goal-row-compact{border-bottom:2px solid var(--immi-black);padding:12px}.goal-bulk-actions{margin-top:8px}.goal-inline-toggle{justify-self:start;min-height:0;margin-top:0;font-size:1.2rem}.goal-inline-field input{min-height:0;font-size:1.2rem}.goal-inline-field-compact span{display:inline}.timer-chip{min-width:0}.student-page-header{flex-direction:column;align-items:stretch}}
