:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--on-accent:#fff;--on-solid:#fff;--danger:#c0392b;--danger-solid:#c0392b;--danger-bg:#c0392b1a;--danger-border:#c0392b59;--success:#2e7d32;--success-strong:#1e8449;--success-solid:#2e7d32;--success-bg:#27ae6026;--warning:#d68910;--warning-solid:#9a6508;--warning-bg:#d6891026;--info:#1565c0;--info-solid:#1565c0;--muted:#767676;--neutral:#7f8c8d;--neutral-deep:#566573;--neutral-bg:#7f8c8d26;--gold:#f0b429;--gold-deep:#d68910;--gold-bg:#f0b42929;--cat-verb:#5b6ee1;--cat-verb-border:#5b6ee166;--cat-structure:#0f9b8e;--cat-structure-border:#0f9b8e66;--cat-grammar-detail:#8d6e63;--cat-grammar-detail-border:#8d6e6366;--cat-vocabulary:#c2185b;--cat-vocabulary-border:#c2185b66;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--on-accent:#17131d;--danger:#ff7a6b;--danger-bg:#ff7a6b24;--danger-border:#ff7a6b66;--success:#5fd39a;--success-strong:#7ee0b0;--success-bg:#5fd39a29;--warning:#f0b429;--warning-bg:#f0b4292e;--info:#4a9eff;--muted:#838b98;--neutral:#9aa5b1;--neutral-deep:#6b7683;--neutral-bg:#9aa5b129;--gold:#f7c948;--gold-bg:#f7c9482e;--cat-verb:#8f9dff;--cat-verb-border:#8f9dff73;--cat-structure:#3fd0c0;--cat-structure-border:#3fd0c073;--cat-grammar-detail:#c2a08f;--cat-grammar-detail-border:#c2a08f73;--cat-vocabulary:#ff6ea6;--cat-vocabulary-border:#ff6ea673}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--on-accent:#17131d;--danger:#ff7a6b;--danger-bg:#ff7a6b24;--danger-border:#ff7a6b66;--success:#5fd39a;--success-strong:#7ee0b0;--success-bg:#5fd39a29;--warning:#f0b429;--warning-bg:#f0b4292e;--info:#4a9eff;--muted:#838b98;--neutral:#9aa5b1;--neutral-deep:#6b7683;--neutral-bg:#9aa5b129;--gold:#f7c948;--gold-bg:#f7c9482e;--cat-verb:#8f9dff;--cat-verb-border:#8f9dff73;--cat-structure:#3fd0c0;--cat-structure-border:#3fd0c073;--cat-grammar-detail:#c2a08f;--cat-grammar-detail-border:#c2a08f73;--cat-vocabulary:#ff6ea6;--cat-vocabulary-border:#ff6ea673}#root{box-sizing:border-box;min-height:100svh}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app{text-align:center;max-width:480px;margin:0 auto;padding:40px 20px}.tabs{justify-content:center;gap:8px;margin:20px 0 28px;display:flex}.tab{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:20px;padding:8px 20px;font-size:14px}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.status{color:var(--text);margin-bottom:20px}.error{color:var(--danger);margin-bottom:16px}.connection-dropped{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--text-h);text-align:left;border-radius:12px;margin:0 0 20px;padding:12px 40px 12px 14px;font-size:13px;line-height:1.5;position:relative}.connection-dropped-detail{color:var(--text);opacity:.7;margin-top:6px;font-size:12px;display:block}.connection-dropped button{color:var(--text);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1;position:absolute;top:8px;right:10px}.connection-dropped button:hover{color:var(--danger)}.live-controls{flex-direction:column;align-items:center;gap:8px;margin:4px 0 20px;display:flex}.live-toggle{color:var(--text);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:16px;align-items:center;gap:8px;padding:6px 16px;font-size:13px;font-weight:600;display:flex}.live-toggle.on{background:var(--danger-solid);border-color:var(--danger);color:var(--on-solid)}.live-checkbox{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.lesson-focus{background:var(--accent-bg);color:var(--text);text-align:left;border-radius:12px;margin-bottom:16px;padding:8px 16px;font-size:14px}.lesson-focus-label{color:var(--accent);font-weight:700}.call-button{color:var(--on-solid);cursor:pointer;border:none;border-radius:32px;padding:16px 40px;font-size:18px;font-weight:600}.call-button.idle{background:var(--success-solid)}.call-button.active{background:var(--danger-solid)}.call-button:disabled{opacity:.5;cursor:default}.list-header{text-align:left;margin-top:36px}.empty{color:var(--muted);margin-top:12px}.rule-translatable{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.rule-translation{color:var(--accent);margin:4px 0 0;font-size:13px;font-style:italic}.mistake-list{text-align:left;margin:0;padding:0;list-style:none}.mistake-card{background:var(--code-bg);border-radius:12px;margin-bottom:10px;padding:12px 16px}.mistake-card .original{color:var(--danger);margin:0;text-decoration:line-through}.mistake-card .correction{color:var(--success);margin:4px 0 0;font-weight:600}.mistake-card .rule{color:var(--text);margin:4px 0 0;font-size:13px}.mistake-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.category{text-transform:uppercase;letter-spacing:.04em;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:11px;display:inline-block}.category-verb{color:var(--cat-verb);border-color:var(--cat-verb-border)}.category-structure{color:var(--cat-structure);border-color:var(--cat-structure-border)}.category-grammar-detail{color:var(--cat-grammar-detail);border-color:var(--cat-grammar-detail-border)}.category-vocabulary{color:var(--cat-vocabulary);border-color:var(--cat-vocabulary-border)}.badge{border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.badge.new{background:var(--accent-bg);color:var(--accent)}.badge.repeat{background:var(--warning-bg);color:var(--warning)}.mode-picker{flex-direction:column;gap:8px;margin:0 0 24px;display:flex}.mode-option{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;font-family:inherit;display:flex}.mode-option.selected{border-color:var(--accent);background:var(--accent-bg)}.mode-label{color:var(--text-h);font-size:14px;font-weight:600}.mode-hint{color:var(--text);font-size:12px}.mode-active{color:var(--text);margin-bottom:12px;font-size:13px}.due-hint{background:var(--code-bg);color:var(--text);text-align:left;border-radius:12px;margin:0 0 20px;padding:10px 16px;font-size:13px;line-height:1.5}.due-hint strong{color:var(--warning)}.due-hint-count{margin:0}.due-hint-lead{opacity:.75;margin:10px 0 6px}.due-preview{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.due-preview li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.due-preview-form{font-weight:600}.live-review-list{text-align:left;margin:0;padding:0;list-style:none}.live-review{background:var(--code-bg);border-left:3px solid var(--text);border-radius:12px;gap:12px;margin-bottom:10px;padding:12px 16px;display:flex}.live-review-icon{font-weight:700;line-height:1.4}.live-review-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.live-review-head{justify-content:space-between;gap:12px;display:flex}.live-review-next{color:var(--text);opacity:.6;white-space:nowrap;font-size:12px}.live-review-outcome{font-size:12px;font-weight:600}.live-review-evidence{color:var(--text);opacity:.75;font-size:12px;font-style:italic}.live-review.outcome-correct-unprompted{border-left-color:var(--info)}.live-review.outcome-correct-unprompted .live-review-icon,.live-review.outcome-correct-unprompted .live-review-outcome{color:var(--info)}.live-review.outcome-correct-with-effort{border-left-color:var(--success)}.live-review.outcome-correct-with-effort .live-review-icon,.live-review.outcome-correct-with-effort .live-review-outcome{color:var(--success)}.live-review.outcome-correct-after-hint{border-left-color:var(--warning)}.live-review.outcome-correct-after-hint .live-review-icon,.live-review.outcome-correct-after-hint .live-review-outcome{color:var(--warning)}.live-review.outcome-incorrect{border-left-color:var(--danger)}.live-review.outcome-incorrect .live-review-icon,.live-review.outcome-incorrect .live-review-outcome{color:var(--danger)}.transcript-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.transcript-toggle-icon{opacity:.6;font-size:.7em}.transcript{text-align:left;background:var(--code-bg);border-radius:12px;max-height:260px;margin-bottom:8px;padding:12px 16px;overflow-y:auto}.transcript-line{margin:0 0 8px;font-size:14px;line-height:1.45}.transcript-line:last-child{margin-bottom:0}.transcript-line .speaker{text-transform:uppercase;min-width:28px;margin-right:8px;font-size:11px;font-weight:700;display:inline-block}.transcript-line.user{color:var(--text-h)}.transcript-line.user .speaker{color:var(--info)}.transcript-line.model{color:var(--text)}.transcript-line.model .speaker{color:var(--accent)}.transcript-line.clickable{cursor:pointer;border-radius:6px;margin-left:-6px;margin-right:-6px;padding:2px 6px;transition:background .15s}.transcript-line.clickable:hover{background:var(--accent-bg)}.transcript-line.active{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}.app-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.progress-stats{text-align:left}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:22px;display:grid}.stat-tile{background:var(--code-bg);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;display:flex}.stat-value{color:var(--warning);font-size:26px;font-weight:700;line-height:1.1}.stat-label{opacity:.7;font-size:11px;line-height:1.3}.stat-block{margin-bottom:24px}.stat-block h3{flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 4px;font-size:14px;display:flex}.stat-block .hint{margin:0 0 10px;font-size:12px}.delta{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.delta.better{background:var(--success-bg);color:var(--success-strong)}.delta.worse{background:var(--danger-bg);color:var(--danger)}.delta.flat{background:var(--neutral-bg);color:var(--neutral)}.bars{align-items:flex-end;gap:6px;height:120px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;height:100%;display:flex}.bar{background:linear-gradient(180deg, var(--gold), var(--gold-deep));border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:height .3s}.bar-inverse{background:linear-gradient(180deg, var(--neutral), var(--neutral-deep))}.bar-value{opacity:.75;min-height:12px;font-size:10px}.bar-label{opacity:.5;font-size:10px}.word-cloud{flex-wrap:wrap;gap:6px;display:flex}.word-chip{background:var(--gold-bg);border-radius:999px;padding:3px 10px;font-size:12px}.trend-columns{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.trend-head{text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:12px}.trend-head.better{color:var(--success-strong)}.trend-head.worse{color:var(--danger)}.trend-list,.crutch-list{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.trend-list li{justify-content:space-between;gap:10px;display:flex}.trend-numbers{opacity:.6;font-variant-numeric:tabular-nums}.crutch-list li{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.crutch-phrase{font-weight:600}.crutch-rate{opacity:.65;font-variant-numeric:tabular-nums}.calendar{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;justify-content:start;gap:3px;display:grid}.cal-day{background:var(--border);border-radius:3px;width:11px;height:11px}.cal-day.on{background:var(--gold-deep)}.suggestions{background:var(--accent-bg);border-radius:12px;padding:14px 16px}.suggestion-list{flex-direction:column;gap:10px;margin:0;padding:0;font-size:13px;line-height:1.5;list-style:none;display:flex}.suggestion-list li{padding-left:18px;position:relative}.suggestion-list li:before{content:"→";color:var(--accent);font-weight:700;position:absolute;left:0}.funnel{align-items:stretch;gap:4px;display:flex}.funnel-step{background:var(--code-bg);border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:10px 4px;display:flex}.funnel-step.done{background:var(--success-bg)}.funnel-count{font-size:18px;font-weight:700}.funnel-label{opacity:.65;text-align:center;font-size:9px;line-height:1.2}.record-list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.record-list li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.record-label{opacity:.75;flex:auto}.record-value{color:var(--gold-deep);font-weight:700}.record-when{opacity:.5;font-size:11px}.forecast-headline{color:var(--gold-deep);margin:0 0 6px;font-size:16px;font-weight:700}.forecast-target{margin:0 0 12px;font-size:13px}.forecast-waves-hint{margin-top:14px}.waves{gap:4px;display:flex}.wave{background:var(--code-bg);border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:10px 4px;display:flex}.wave.empty-wave{opacity:.45}.wave-count{font-size:18px;font-weight:700}.wave-label{opacity:.65;text-align:center;font-size:9px;line-height:1.2}.reach-bar{background:var(--border);border-radius:999px;height:10px;overflow:hidden}.reach-fill{background:linear-gradient(90deg, var(--gold), var(--gold-deep));border-radius:999px;height:100%;transition:width .3s}.reach-caption{margin:8px 0 10px;font-size:13px}.word-chip.returned{background:var(--success-bg);align-items:baseline;gap:6px;display:inline-flex}.word-chip.returned em{opacity:.6;font-size:10px;font-style:normal}.upgrade-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.upgrade-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.upgrade-word{font-weight:700}.upgrade-count{opacity:.6;font-variant-numeric:tabular-nums;font-size:11px}.word-chip.alt{background:var(--accent-bg);color:var(--accent)}.insights-panel{text-align:left}.insights-actions{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 18px;display:flex}.insight-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.insight-card{background:var(--code-bg);border-radius:12px;padding:14px 16px}.insight-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.insight-period{font-weight:600}.insight-meta{opacity:.7;font-size:12px}.insight-note{margin-top:12px}.insight-note h4{text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin:0 0 4px;font-size:12px}.insight-note p{margin:0;font-size:13px;line-height:1.5}.finding-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.finding-list li{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.finding-form{font-weight:600}.finding-rule{opacity:.7;flex:200px}.finding-add{padding:4px 10px;font-size:12px}.finding-done{opacity:.6;font-size:12px;font-style:italic}.insights-heading{margin:28px 0 6px;font-size:16px}.lessons-panel{text-align:left}.lesson-list{margin:0;padding:0;list-style:none}.lesson-row{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;gap:4px;width:100%;margin-bottom:8px;padding:12px 16px;font-family:inherit;display:flex}.lesson-row:hover{background:var(--code-bg)}.lesson-row-date{color:var(--text-h);font-size:14px;font-weight:600}.lesson-row-stats{color:var(--text);font-size:13px}.lesson-row-focus{color:var(--accent);font-size:13px;font-weight:600}.back-button{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-bottom:12px;padding:0;font-family:inherit;font-size:14px}.lesson-title{margin:0 0 4px}.lesson-meta{color:var(--text);margin-bottom:8px;font-size:13px}.lesson-audio{margin-bottom:12px}.lesson-audio-player{width:100%;display:block}.section-title{color:var(--text-h);margin:20px 0 10px;font-size:15px}.auth-form{text-align:left;border:1px solid var(--border);border-radius:12px;margin-top:8px;padding:24px 20px}.auth-form h2{text-align:center;margin:0 0 20px}.auth-form .field{margin-bottom:16px;display:block}.auth-form .field span{color:var(--text-h);margin-bottom:6px;font-size:14px;font-weight:600;display:block}.auth-form .field input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.auth-submit{background:var(--accent);width:100%;color:var(--on-accent);cursor:pointer;border:none;border-radius:24px;margin-top:4px;padding:12px;font-size:15px;font-weight:600;display:block}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{text-align:center;color:var(--text);margin-top:16px;font-size:13px}.auth-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:600}.mic-wave{justify-content:center;align-items:center;gap:5px;height:40px;margin:4px 0 20px;display:flex}.mic-wave-bar{background:var(--border);border-radius:2px;width:4px;height:6px;transition:height 80ms ease-out}.mic-wave.idle .mic-wave-bar{background:var(--border)}.mic-wave.user-active .mic-wave-bar{background:var(--info-solid)}.mic-wave.ai-speaking .mic-wave-bar{background:var(--accent);animation:.9s ease-in-out infinite mic-wave-pulse}@keyframes mic-wave-pulse{0%,to{height:6px}50%{height:30px}}.review-panel{text-align:left}.review-explainer{color:var(--text);background:var(--code-bg);border-radius:10px;margin:0 0 20px;padding:12px 14px;font-size:13px;line-height:1.5}.due-count{background:var(--warning-solid);min-width:20px;color:var(--on-solid);text-align:center;vertical-align:middle;border-radius:10px;margin-left:6px;padding:0 7px;font-size:12px;font-weight:700;display:inline-block}.add-practice-toggle{border:1px dashed var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:10px;margin-bottom:24px;padding:10px;font-size:13px;display:block}.add-practice-toggle:hover{border-color:var(--accent-border);color:var(--accent)}.add-practice-form{background:var(--code-bg);border-radius:12px;flex-direction:column;gap:8px;margin-bottom:24px;padding:14px;display:flex}.add-practice-form select,.add-practice-form textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);resize:vertical;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.add-practice-buttons{gap:8px;display:flex}.add-practice-buttons button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:8px 12px;font-family:inherit;font-size:13px}.add-practice-buttons button[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.add-practice-buttons button:disabled{opacity:.5;cursor:default}.pattern-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pattern-actions button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-family:inherit;font-size:11px}.pattern-actions button:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent)}.pattern-actions button:disabled{opacity:.5;cursor:default}.pattern-actions button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.paused-rule{color:var(--text);opacity:.75;margin:0;font-size:13px}.review-summary{align-items:stretch;gap:8px;margin:0 0 24px;display:flex}.summary-tile{background:var(--code-bg);text-align:center;border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:10px 4px;display:flex}.summary-value{color:var(--text-h);font-size:20px;font-weight:700;line-height:1}.summary-label{color:var(--text);opacity:.7;font-size:10.5px;line-height:1.3}.refresh-button{border:1px solid var(--border);background:var(--code-bg);width:40px;color:var(--text);cursor:pointer;border-radius:10px;flex:none;font-size:16px}.refresh-button:disabled{opacity:.5;cursor:default}.refresh-button:not(:disabled):hover{color:var(--accent);border-color:var(--accent-border)}.due-list{margin:0;padding:0;list-style:none}.due-card{background:var(--code-bg);border-left:3px solid var(--warning);border-radius:12px;margin-bottom:10px;padding:14px 16px}.due-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.due-when{color:var(--warning);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:600}.due-card .original{color:var(--text-h);margin:0}.due-card .correction{color:var(--success);margin:4px 0 0;font-weight:600}.due-card .rule{color:var(--text);margin:6px 0 0;font-size:13px}.due-meta{color:var(--text);opacity:.7;margin:8px 0 0;font-size:12px}.schedule-bucket{margin-bottom:4px}.bucket-header{color:var(--text);opacity:.6;text-transform:uppercase;letter-spacing:.05em;margin:14px 0 6px;font-size:11px;font-weight:700}.pattern-list{margin:0;padding:0;list-style:none}.pattern-row{background:var(--code-bg);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:6px;padding:10px 14px;display:flex}.pattern-row-top{align-items:baseline;gap:8px;display:flex}.pattern-row-bottom{align-items:center;gap:10px;display:flex}.pattern-name{color:var(--text-h);font-size:14px}.pattern-meta{color:var(--text);opacity:.7;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pattern-due{color:var(--text);white-space:nowrap;margin-left:auto;font-size:12px}.stage-badge{color:var(--text);opacity:.75;white-space:nowrap;font-size:11px}.retired-row{opacity:.6}.stability-bar{background:var(--border);border-radius:3px;flex:none;width:44px;height:5px;display:inline-block;overflow:hidden}.stability-bar-fill{background:linear-gradient(90deg, var(--warning), var(--success));border-radius:3px;height:100%;display:block}.history-list{margin:0;padding:0;list-style:none}.history-row{background:var(--code-bg);border-left:3px solid var(--text);border-radius:10px;gap:12px;margin-bottom:6px;padding:10px 14px;display:flex}.history-icon{font-size:14px;font-weight:700;line-height:1.4}.history-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-head{justify-content:space-between;gap:12px;display:flex}.history-date{color:var(--text);opacity:.6;white-space:nowrap;font-size:12px}.history-outcome{font-size:12px;font-weight:600}.history-evidence{color:var(--text);opacity:.75;font-size:12px;font-style:italic}.outcome-correct-unprompted{border-left-color:var(--info)}.outcome-correct-unprompted .history-icon,.outcome-correct-unprompted .history-outcome{color:var(--info)}.outcome-correct-with-effort{border-left-color:var(--success)}.outcome-correct-with-effort .history-icon,.outcome-correct-with-effort .history-outcome{color:var(--success)}.outcome-correct-after-hint{border-left-color:var(--warning)}.outcome-correct-after-hint .history-icon,.outcome-correct-after-hint .history-outcome{color:var(--warning)}.outcome-incorrect{border-left-color:var(--danger)}.outcome-incorrect .history-icon,.outcome-incorrect .history-outcome{color:var(--danger)}.session-summary{text-align:left}.summary-title{text-align:center;margin:0 0 20px}.summary-stats{background:var(--code-bg);border-radius:12px;justify-content:space-around;gap:12px;margin-bottom:20px;padding:16px;display:flex}.summary-audio{margin-bottom:20px}.summary-audio-player{width:100%;display:block}.stat{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-value{color:var(--text-h);font-size:22px;font-weight:700}.stat-label{color:var(--text);font-size:12px}.summary-section{color:var(--text-h);margin:0 0 12px;font-size:15px}.summary-review-list{margin:0 0 24px;padding:0;list-style:none}.summary-review{background:var(--code-bg);border-left:3px solid var(--text);border-radius:12px;align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex}.summary-review-icon{font-weight:700;line-height:1.4}.summary-review-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.summary-review-outcome{font-size:12px;font-weight:600}.summary-review-evidence{color:var(--text);opacity:.75;font-size:12px;font-style:italic}.summary-review-next{color:var(--text);opacity:.6;white-space:nowrap;font-size:12px}.summary-review.outcome-correct-unprompted{border-left-color:var(--info)}.summary-review.outcome-correct-unprompted .summary-review-icon,.summary-review.outcome-correct-unprompted .summary-review-outcome{color:var(--info)}.summary-review.outcome-correct-with-effort{border-left-color:var(--success)}.summary-review.outcome-correct-with-effort .summary-review-icon,.summary-review.outcome-correct-with-effort .summary-review-outcome{color:var(--success)}.summary-review.outcome-correct-after-hint{border-left-color:var(--warning)}.summary-review.outcome-correct-after-hint .summary-review-icon,.summary-review.outcome-correct-after-hint .summary-review-outcome{color:var(--warning)}.summary-review.outcome-incorrect{border-left-color:var(--danger)}.summary-review.outcome-incorrect .summary-review-icon,.summary-review.outcome-incorrect .summary-review-outcome{color:var(--danger)}.summary-hint{color:var(--text);margin-bottom:14px;font-size:13px}.summary-list{margin:0 0 20px;padding:0;list-style:none}.summary-card{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;padding:14px 16px}.summary-card.rejected{opacity:.5}.summary-card .original{color:var(--danger);margin:8px 0 0;text-decoration:line-through}.summary-card .correction{color:var(--success);margin:4px 0 0;font-weight:600}.summary-card .rule{color:var(--text);margin:4px 0 0;font-size:13px}.heard{color:var(--text);background:var(--code-bg);border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:12px}.heard-label{text-transform:uppercase;letter-spacing:.04em;margin-right:6px;font-size:10px;font-weight:700}.reject-buttons{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.reject-buttons button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;flex:auto;padding:8px 12px;font-family:inherit;font-size:13px}.reject-buttons button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.reject-buttons button:disabled{opacity:.5;cursor:default}.rejected-note{color:var(--text);margin:10px 0 0;font-size:12px;font-style:italic}.candidate-list{margin:0 0 20px;padding:0;list-style:none}.candidate-row{background:var(--code-bg);border-left:3px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:6px;padding:10px 14px;display:flex}.candidate-verdict{color:var(--text);opacity:.75;font-size:11px;font-weight:600}.candidate-body{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.candidate-original{color:var(--text);opacity:.85;font-size:13px;font-style:italic}.candidate-row.verification-rejected-asr{border-left-color:var(--cat-grammar-detail)}.candidate-row.verification-rejected-not-an-error{border-left-color:var(--success)}.candidate-row.verification-pending{border-left-color:var(--warning)}.candidate-row.verification-pending .candidate-verdict{color:var(--warning);opacity:1}.done-button{background:var(--accent);width:100%;color:var(--on-accent);cursor:pointer;border:none;border-radius:24px;padding:14px;font-size:16px;font-weight:600;display:block}.transcript-list{flex-direction:column;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.transcript-turn{background:var(--code-bg);border-radius:8px;align-items:baseline;gap:10px;padding:8px 10px;font-size:.9rem;line-height:1.5;transition:background .15s;display:flex}.transcript-clickable{cursor:pointer}.transcript-clickable:hover{background:var(--accent-bg)}.transcript-active{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}.transcript-user{border-left:3px solid var(--accent)}.transcript-speaker{opacity:.65;flex-shrink:0;min-width:2.2em;font-size:.8rem;font-weight:600}.transcript-text{white-space:pre-wrap;overflow-wrap:anywhere}.theme-toggle{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--code-bg);color:var(--text-h)}.theme-picker{flex-wrap:wrap;gap:8px;display:flex}.theme-option{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:20px;padding:8px 16px;font-family:inherit;font-size:13px}.theme-option:hover{background:var(--code-bg)}.theme-option.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.settings-panel{text-align:left}.settings-panel .hint{color:var(--text);margin-bottom:20px;font-size:13px}.field{margin-bottom:16px;display:block}.field span{color:var(--text-h);margin-bottom:6px;font-size:14px;font-weight:600;display:block}.field select,.field textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);resize:vertical;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.field.checkbox-field{align-items:center;gap:10px;display:flex}.field.checkbox-field input{flex-shrink:0;width:16px;height:16px}.field.checkbox-field span{margin-bottom:0;font-weight:400}.settings-actions{gap:10px;margin-top:20px;display:flex}.save-button,.reset-button{cursor:pointer;border:none;border-radius:20px;padding:10px 20px;font-size:14px}.save-button{background:var(--accent);color:var(--on-accent)}.reset-button{border:1px solid var(--border);color:var(--text);background:0 0}.status-msg{margin-top:12px;font-size:13px}.status-msg.saved{color:var(--success)}.status-msg.error{color:var(--danger)}.account-section{border-top:1px solid var(--border);margin-top:32px;padding-top:20px}.account-email{color:var(--text);margin-bottom:12px;font-size:14px}.logout-button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:20px;padding:8px 18px;font-size:13px}.admin-panel{text-align:left}.admin-heading{color:var(--text-h);margin:0 0 4px;font-size:18px}.admin-sub{color:var(--text);margin:0 0 16px;font-size:13px}.admin-section{color:var(--text-h);margin:24px 0 10px;font-size:15px}.admin-focus{color:var(--accent);margin:0 0 12px;font-size:13px}.admin-focus-label{color:var(--text);font-weight:600}.admin-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:8px;display:grid}.admin-tile{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.admin-tile-value{color:var(--text-h);font-size:22px;font-weight:600;line-height:1.2}.admin-tile-label{color:var(--text);font-size:12px}.admin-tile-hint{color:var(--text);opacity:.75;font-size:11px}.admin-warning{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--text-h);border-radius:10px;margin:12px 0 0;padding:10px 14px;font-size:13px}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.admin-table th{text-align:left;color:var(--text);border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);color:var(--text);padding:10px}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover{background:var(--code-bg)}.admin-user-email{color:var(--text-h);font-weight:600}.admin-num{font-variant-numeric:tabular-nums}.admin-table td.stale{color:var(--danger)}.admin-badge{border:1px solid var(--border);color:var(--text);vertical-align:middle;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:11px;display:inline-block}.admin-badge.admin{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.admin-bars{margin:0;padding:0;list-style:none}.admin-bar-row{grid-template-columns:minmax(120px,auto) 1fr auto;align-items:center;gap:10px;margin-bottom:8px;display:grid}.admin-bar-track{background:var(--code-bg);border-radius:4px;height:8px;overflow:hidden}.admin-bar-fill{background:var(--accent);height:100%;display:block}.admin-bar-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:13px}.admin-bar-sub{color:var(--text);font-size:11px}.admin-lesson-list,.admin-mistake-list,.admin-review-list,.admin-pattern-list{margin:0;padding:0;list-style:none}.admin-lesson-row{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;gap:4px;width:100%;margin-bottom:8px;padding:10px 14px;font-family:inherit;display:flex}.admin-lesson-row:hover{background:var(--code-bg)}.admin-lesson-date{color:var(--text-h);font-size:14px;font-weight:600}.admin-lesson-stats{color:var(--text);font-size:13px}.admin-lesson-focus{color:var(--accent);font-size:13px}.admin-mistake{border:1px solid var(--border);border-radius:12px;margin-bottom:8px;padding:10px 14px}.admin-mistake.rejected{opacity:.55}.admin-mistake .original{color:var(--danger);margin:4px 0 0;text-decoration:line-through}.admin-mistake .correction{color:var(--success);margin:4px 0 0;font-weight:600}.admin-mistake .rule{color:var(--text);margin:4px 0 0;font-size:13px}.admin-when{float:right;color:var(--text);font-size:11px}.admin-review{border:1px solid var(--border);border-radius:12px;gap:10px;margin-bottom:8px;padding:10px 14px;font-size:13px;display:flex}.admin-review-icon{flex-shrink:0}.admin-review-outcome{color:var(--text)}.admin-review-evidence{color:var(--text);margin-top:4px;font-style:italic;display:block}.admin-review-next{color:var(--text);opacity:.75;margin-top:2px;font-size:11px;display:block}.admin-pattern{border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;padding:8px 14px;font-size:13px;display:flex}.admin-pattern-form{color:var(--text-h);font-weight:600}.admin-pattern-meta{color:var(--text);font-size:12px}.admin-audio{margin-bottom:12px}.admin-audio-player{width:100%;display:block}.admin-cost-detail{color:var(--text);margin:6px 0 0;font-size:12px}.admin-cost-gap,.admin-table tr.login-bad td{color:var(--danger)}.admin-table tr.login-muted td{opacity:.65}.login-icon{width:16px;font-weight:700;display:inline-block}.admin-badge.danger{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}.admin-activity{align-items:flex-end;gap:3px;height:56px;margin-top:4px;display:flex}.admin-activity-day{flex:1;align-items:flex-end;min-width:4px;height:100%;display:flex}.admin-activity-bar{background:var(--accent);border-radius:2px;width:100%}.admin-activity-day.idle .admin-activity-bar{background:var(--border)}.admin-search{flex-wrap:wrap;gap:8px;display:flex}.admin-search input{border:1px solid var(--border);background:var(--bg);min-width:220px;color:var(--text-h);border-radius:8px;flex:1;padding:8px 12px;font-family:inherit;font-size:14px}.admin-search button{background:var(--accent);color:var(--on-accent);cursor:pointer;border:none;border-radius:20px;padding:8px 18px;font-size:13px}.admin-search button:disabled{opacity:.5;cursor:default}.admin-search-clear{border:1px solid var(--border)!important;color:var(--text)!important;background:0 0!important}.admin-hit-list{margin:12px 0 0;padding:0;list-style:none}.admin-hit{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;gap:4px;width:100%;margin-bottom:8px;padding:10px 14px;font-family:inherit;display:flex}.admin-hit:hover{background:var(--code-bg)}.admin-hit-meta{color:var(--text);font-size:12px}.admin-hit-snippet{color:var(--text-h);font-size:14px}.admin-insight{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;padding:12px 16px}.admin-insight-head{color:var(--text);margin-bottom:8px;font-size:12px}.admin-insight-note{color:var(--text-h);margin-bottom:6px;font-size:13px}.admin-insight-label{color:var(--text);font-weight:600}.admin-suggestions{color:var(--text-h);margin:8px 0 0;padding-left:20px;font-size:13px}.admin-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.admin-sort{color:var(--text);font-size:12px}.admin-sort select{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:4px 8px;font-family:inherit;font-size:12px}
