:root{--bg: #fdfaf5;--surface: #ffffff;--surface-2: #f6f0e6;--surface-3: #efe7d8;--text: #262119;--muted: #6d6355;--border: #e6dccd;--border-strong: #d6c9b4;--accent: #b4531f;--accent-strong: #96430f;--accent-active: #7c3809;--accent-soft: #f7e5d8;--on-accent: #ffffff;--success: #2f7d4f;--success-soft: #e6f4ec;--warning: #8a6d1f;--warning-soft: #fbf2d6;--danger: #b42318;--danger-strong: #8f1c13;--danger-soft: #fdeceb;--intro: #3538cd;--intro-soft: #e6e7ff;--practicing: #78601a;--practicing-soft: #fbf2d6;--mastered: #276b41;--mastered-soft: #e6f4ec;--radius: 14px;--radius-sm: 10px;--radius-xs: 7px;--shadow-sm: 0 1px 2px rgb(38 33 25 / .06);--shadow: 0 1px 2px rgb(38 33 25 / .06), 0 12px 32px rgb(38 33 25 / .08);--ring: 0 0 0 3px var(--accent-soft);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;font-family:var(--font-sans);line-height:1.6;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #191511;--surface: #221d17;--surface-2: #2b241c;--surface-3: #342b21;--text: #ece6db;--muted: #a89d8d;--border: #3a3227;--border-strong: #4a4031;--accent: #e58a51;--accent-strong: #f0a171;--accent-active: #f6b487;--accent-soft: #3a2b1f;--on-accent: #1a120b;--success: #93d6ac;--success-soft: #1e2f25;--warning: #e6cf8a;--warning-soft: #322a17;--danger: #f5a3a3;--danger-strong: #f7bcbc;--danger-soft: #3a1f1d;--intro: #b6b8ff;--intro-soft: #26264a;--practicing: #e6cf8a;--practicing-soft: #322a17;--mastered: #93d6ac;--mastered-soft: #1e2f25;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 12px 32px rgb(0 0 0 / .35);--ring: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)}}*{box-sizing:border-box}html{scroll-padding-top:4.5rem}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);-webkit-font-smoothing:antialiased}img,svg{max-width:100%;height:auto}:where(a,button,input,select,textarea,[tabindex],[role=button]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}h1,h2,h3,h4{line-height:1.25;letter-spacing:-.015em;text-wrap:balance;color:var(--text)}h1{font-size:var(--fs-2xl);margin:0 0 var(--sp-5)}h2{font-size:var(--fs-xl);margin:0 0 var(--sp-3)}h3{font-size:var(--fs-lg);margin:0 0 var(--sp-2)}h4{font-size:var(--fs-md);margin:0 0 var(--sp-2)}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--accent-strong)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3) var(--sp-4);background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.app-header .brand{font-weight:700;font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--text);margin-inline-end:auto}.app-header .brand:first-letter{color:var(--accent)}.app-header nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-1);flex:1 1 auto}.app-header nav a{color:var(--muted);text-decoration:none;font-size:var(--fs-sm);font-weight:500;padding:var(--sp-2) var(--sp-3);border-radius:999px;line-height:1;white-space:nowrap;transition:background-color .12s ease,color .12s ease}.app-header nav a:hover{color:var(--text);background:var(--surface-2)}.app-header nav a.active,.app-header nav a[aria-current=page]{color:var(--accent-strong);background:var(--accent-soft);font-weight:600}.app-header-user{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}.app-header-user>span{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.app-header-user button{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.app-header-user button:hover{background:var(--surface-2);border-color:var(--border-strong)}.app-main{flex:1 1 auto;width:100%;max-width:62rem;margin:0 auto;padding:var(--sp-6) var(--sp-4) var(--sp-7)}.app-main>section>section,.plan-summary,.report-cards,.teacher-note,.scenario-picker,.security,.privacy,.admin-user-detail .profile,.admin-user-detail .lesson-history,.admin-user-detail .notes,.plan-editor,.rubric,.exercise-slot,.paywall,.at-capacity,.lesson-live{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--sp-5);margin-top:var(--sp-5)}.app-main>section>h1{margin-bottom:var(--sp-5)}.app-main button,.modal button,.feedback-popover button{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.app-main button:hover:not(:disabled),.modal button:hover:not(:disabled),.feedback-popover button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.app-main button:disabled,.modal button:disabled,.feedback-popover button:disabled{opacity:.55;cursor:not-allowed}.app-main button[type=submit],.feedback-popover button[type=submit],.push-to-start,.scenario-controls button,.paywall button,.flashcard-grade button:first-child{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.app-main button[type=submit]:hover:not(:disabled),.feedback-popover button[type=submit]:hover:not(:disabled),.push-to-start:hover:not(:disabled),.scenario-controls button:hover:not(:disabled),.paywall button:hover:not(:disabled),.flashcard-grade button:first-child:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.app-main button.danger,.modal button.danger{background:var(--surface);border-color:color-mix(in srgb,var(--danger) 50%,var(--border));color:var(--danger)}.app-main button.danger:hover:not(:disabled),.modal button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.push-to-start{font-size:var(--fs-md);padding:.7rem 1.5rem}.cta{display:inline-block;margin:var(--sp-4) 0 0;padding:.7rem 1.5rem;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;transition:background-color .12s ease}.cta:hover{background:var(--accent-strong);color:var(--on-accent)}.app-main label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--text)}.app-main input[type=text],.app-main input[type=email],.app-main input[type=password],.app-main input[type=search],.app-main input[type=number],.app-main select,.app-main textarea,.feedback-popover select,.feedback-popover textarea,.modal input,.modal textarea{font:inherit;font-size:var(--fs-sm);font-weight:400;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .75rem;transition:border-color .12s ease,box-shadow .12s ease}.app-main input:focus-visible,.app-main select:focus-visible,.app-main textarea:focus-visible,.feedback-popover select:focus-visible,.feedback-popover textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.app-main textarea{resize:vertical;min-height:4rem;font-family:var(--font-mono);line-height:1.5}.app-main input[type=range]{accent-color:var(--accent);width:100%}.app-main input[type=radio],.app-main input[type=checkbox]{accent-color:var(--accent)}.settings-form{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start;max-width:26rem}.settings-form input[type=number]{max-width:8rem}.settings-error{color:var(--danger);font-weight:600}.security button,.privacy button{margin-inline-end:var(--sp-3);margin-top:var(--sp-2)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--sp-4);margin-top:var(--sp-2)}.stat{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.stat-label{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.stat-value{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;color:var(--accent-strong)}.objectives{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}.objectives li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;border:1px solid transparent}.badge:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.badge-intro{background:var(--intro-soft);color:var(--intro);border-color:color-mix(in srgb,var(--intro) 30%,transparent)}.badge-practicing{background:var(--practicing-soft);color:var(--practicing);border-color:color-mix(in srgb,var(--practicing) 30%,transparent)}.badge-mastered{background:var(--mastered-soft);color:var(--mastered);border-color:color-mix(in srgb,var(--mastered) 30%,transparent)}.empty,.no-profile,.admin-feedback-empty{color:var(--muted);font-style:italic;margin:0}.hint{color:var(--muted);margin:var(--sp-1) 0 0;font-size:var(--fs-sm)}.query-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.query-error p{margin:0}.teacher-note blockquote{margin:0;padding:var(--sp-3) var(--sp-4);border-inline-start:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.teacher-note blockquote p{margin:0 0 var(--sp-2)}.teacher-note blockquote footer{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.scenario-controls{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.scenario-controls select{min-width:14rem}.report-card{padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.report-metrics{font-weight:600;color:var(--accent-strong);margin:0 0 var(--sp-3)}.report-card ul{margin:0 0 var(--sp-3);padding-inline-start:1.2rem}.report-card li{margin-bottom:var(--sp-1)}.report-vocab{margin:0;color:var(--muted);font-size:var(--fs-sm)}.lesson-status{display:inline-block;margin:0 0 var(--sp-3);padding:.2rem .7rem;font-size:var(--fs-sm);font-weight:600;color:var(--success);background:var(--success-soft);border-radius:999px}.paywall,.at-capacity{border-color:var(--accent)}.paywall h2,.at-capacity h2{margin-top:0}.assist-panel{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-4)}.assist-panel button{flex:0 1 auto}.transcript{display:flex;flex-direction:column;gap:var(--sp-3)}.turn{margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);max-width:90%}.turn-tutor{background:var(--surface-2);border:1px solid var(--border);align-self:flex-start}.turn-student{background:var(--accent-soft);align-self:flex-end}.turn-speaking{opacity:.72}.turn-speaking-indicator{display:block;margin-top:var(--sp-2);font-size:.8em;font-style:italic;color:var(--accent-strong)}.listening-indicator{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-3) 0}.mic-meter{flex:1 1 auto;min-width:6rem;max-width:16rem;height:.5rem;border-radius:999px;background:var(--surface-3);overflow:hidden}.mic-meter-fill{height:100%;border-radius:inherit;background:var(--accent-strong);transition:width .08s linear}.listening-status{margin:0;font-size:.85em;color:var(--text-2, var(--accent-strong))}.listening-heard .listening-status{color:var(--accent-strong);font-weight:600}.listening-tutor_speaking .mic-meter-fill{opacity:.5}.lang-primary{color:inherit}.lang-support{font-style:italic;color:var(--accent-strong)}.word{cursor:pointer;border-radius:var(--radius-xs);transition:background-color .1s ease}.word:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.translation-slot{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:600}.player{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start}.flashcard-front{font-size:var(--fs-xl);font-weight:700;margin:0}.flashcard-back{font-size:var(--fs-lg);color:var(--muted);margin:0}.flashcard-grade{display:flex;gap:var(--sp-3)}.cloze-text,.passage,.prompt{margin:0;line-height:1.7}.passage{padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.prompt{font-weight:600}.choices{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2);width:100%}.choices li label{flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:400;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.choices li label:hover{border-color:var(--border-strong);background:var(--surface-2)}.player audio{width:100%}.result{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start}.result-correct,.result-wrong{margin:0;font-weight:700;padding:.25rem .75rem;border-radius:999px}.result-correct{color:var(--success);background:var(--success-soft)}.result-wrong{color:var(--danger);background:var(--danger-soft)}.admin-users input[type=search]{margin-bottom:var(--sp-4);min-width:min(22rem,100%)}.admin-table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm)}.admin-table thead{background:var(--surface-2)}.admin-table th{position:sticky;top:0;z-index:1;text-align:start;font-weight:600;color:var(--muted);background:var(--surface-2);white-space:nowrap}.admin-table th,.admin-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);vertical-align:top}.admin-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-2) 45%,transparent)}.admin-table tbody tr:hover{background:var(--surface-2)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-feedback-filters{display:flex;flex-wrap:wrap;gap:var(--sp-5);margin-bottom:var(--sp-4)}.admin-feedback-message{max-width:24rem;white-space:pre-wrap;word-break:break-word}.admin-table td textarea{width:100%;min-width:12rem;margin-bottom:var(--sp-2)}.side-by-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--sp-4)}.transcript-viewer ol{padding-inline-start:1.2rem;display:grid;gap:var(--sp-2)}.speaker{font-weight:700;margin-inline-end:var(--sp-1)}.lang{color:var(--muted);font-size:var(--fs-xs);margin-inline-end:var(--sp-1)}.intake,.analysis-col pre,.transcript-viewer pre{overflow-x:auto;padding:var(--sp-3);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.5}.rubric{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start;max-width:34rem}.rubric input,.rubric textarea,.plan-editor textarea{width:100%}.version-history{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:grid;gap:var(--sp-2);font-size:var(--fs-sm)}.version-history li{padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xs)}.active-badge{color:var(--success);font-weight:600}.source-badge{font-size:var(--fs-xs);font-weight:600;padding:.05rem .45rem;border-radius:var(--radius-xs);margin-left:.4rem;border:1px solid transparent}.source-analysis{background:var(--intro-soft);color:var(--intro);border-color:color-mix(in srgb,var(--intro) 30%,transparent)}.source-teacher{background:var(--mastered-soft);color:var(--mastered);border-color:color-mix(in srgb,var(--mastered) 30%,transparent)}.source-proposed{background:var(--warning-soft);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.danger{color:var(--danger)}.verify-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--warning-soft);color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--warning) 55%,var(--border))}.verify-banner-text{flex:1;font-weight:600}.verify-banner-actions{display:flex;align-items:center;gap:var(--sp-2)}.verify-banner-actions>button:first-child{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:.4rem .9rem;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer}.verify-banner-actions>button:first-child:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.verify-banner-actions>button:first-child:disabled{opacity:.6;cursor:not-allowed}.verify-banner-dismiss{border:none;background:transparent;color:var(--muted);font-size:1.3rem;line-height:1;padding:.1rem .4rem;cursor:pointer;border-radius:var(--radius-xs)}.verify-banner-dismiss:hover{color:var(--text);background:color-mix(in srgb,var(--warning) 25%,transparent)}.verify-banner-status{flex-basis:100%;margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--muted)}.feedback-widget{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40}.feedback-launcher{padding:.65rem 1.1rem;font:inherit;font-size:var(--fs-sm);font-weight:600;background:var(--accent);color:var(--on-accent);border:none;border-radius:999px;box-shadow:var(--shadow);cursor:pointer;transition:background-color .12s ease}.feedback-launcher:hover{background:var(--accent-strong)}.feedback-popover{position:absolute;right:0;bottom:calc(100% + .6rem);width:min(22rem,calc(100vw - 2.5rem));max-height:min(30rem,calc(100vh - 6rem));overflow:auto;padding:var(--sp-4);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--sp-3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#00000073;z-index:50}.modal{width:min(28rem,100%);max-height:90vh;overflow:auto;padding:var(--sp-5);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--sp-3)}.feedback-popover h2,.modal h2{margin:0}.feedback-popover form{display:flex;flex-direction:column;gap:var(--sp-2)}.feedback-popover label{font-size:var(--fs-sm);font-weight:600}.feedback-popover select,.feedback-popover textarea{width:100%}.feedback-popover textarea{resize:vertical;min-height:6rem}.feedback-counter{font-size:var(--fs-xs);color:var(--muted);text-align:right}.feedback-actions,.modal-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.lang-menu{position:relative;display:inline-block}.lang-menu-trigger{display:inline-flex;align-items:center;gap:var(--sp-1);padding:.28rem .6rem;font:inherit;font-size:var(--fs-xs);font-weight:600;color:var(--text);border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.lang-menu-trigger:hover{background:var(--surface-2)}.lang-menu-globe{font-size:.9em;line-height:1}.lang-menu-caret{font-size:.7em;color:var(--muted)}.lang-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:9rem;max-height:60vh;overflow-y:auto;margin:0;padding:var(--sp-1);list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.lang-menu-item{display:block;width:100%;text-align:left;padding:.4rem .6rem;font:inherit;font-size:var(--fs-sm);color:var(--text);border:none;border-radius:calc(var(--radius) - 4px);background:transparent;cursor:pointer}.lang-menu-item:hover{background:var(--surface-2)}.lang-menu-item.active{color:var(--accent);font-weight:700}.login,.forgot,.callback-error{max-width:25rem;margin:var(--sp-7) auto;padding:var(--sp-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--sp-4)}.callback-error{align-items:stretch;text-align:center}.callback-error .lang-menu{align-self:flex-end}.callback-error [role=alert]{margin:0;color:var(--text)}.forgot form{display:flex;flex-direction:column;gap:var(--sp-4)}.forgot label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600}.forgot input[type=email]{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .75rem}.forgot input[type=email]:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.login button,.forgot button{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:.6rem 1.2rem;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer}.login button:hover:not(:disabled),.forgot button:hover:not(:disabled){background:var(--accent-strong)}.login button:disabled,.forgot button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.app-header{gap:var(--sp-2)}.app-header nav{order:3;flex-basis:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--sp-1)}.app-main{padding:var(--sp-5) var(--sp-3) var(--sp-6)}.turn{max-width:100%}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.lesson-live-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap}.lesson-end{flex-shrink:0}.lesson-timer{display:inline-flex;align-items:baseline;gap:var(--sp-2);margin:0;margin-inline-end:auto;padding:.2rem .7rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}.lesson-timer-label{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.lesson-timer-value{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;letter-spacing:.02em;color:var(--text);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--sp-3);top:-3rem;z-index:60;padding:var(--sp-2) var(--sp-4);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;transition:top .15s ease}.skip-link:focus,.skip-link:focus-visible{top:var(--sp-3);color:var(--on-accent)}.dashboard-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4) var(--sp-5);margin-top:var(--sp-5);padding:var(--sp-5) var(--sp-6);background:linear-gradient(180deg,var(--accent-soft),var(--surface));border:1px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.dashboard-hero-copy{flex:1 1 20rem}.dashboard-hero-copy h2{margin:0 0 var(--sp-2)}.dashboard-hero-copy p{margin:0;color:var(--muted)}.dashboard-hero-copy .hint{color:var(--accent-strong);font-weight:600}.dashboard-hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);flex:0 0 auto}.cta-hero{margin:0;font-size:var(--fs-lg);padding:.85rem 1.75rem;box-shadow:var(--shadow-sm)}.hero-secondary{font-size:var(--fs-sm);font-weight:600;color:var(--accent-strong)}.dashboard-stats{margin-top:var(--sp-5)}.section-intro{margin:0 0 var(--sp-4);color:var(--muted);font-size:var(--fs-sm)}.stat-hint{font-size:var(--fs-xs);color:var(--muted);font-weight:500}.stat-accent .stat-value{color:var(--accent-strong)}.stat-streak{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.stat-muted .stat-value{color:var(--text)}.stat-link{text-decoration:none;color:inherit;transition:border-color .12s ease,background-color .12s ease}.stat-link:hover{border-color:var(--border-strong);background:var(--surface-3);color:inherit}.stat-meter{gap:var(--sp-2)}.stat-meter-bar{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:.5rem;border:none;border-radius:999px;overflow:hidden;background:var(--surface-3)}.stat-meter-bar::-webkit-progress-bar{background:var(--surface-3);border-radius:999px}.stat-meter-bar::-webkit-progress-value{background:var(--accent);border-radius:999px}.stat-meter-bar::-moz-progress-bar{background:var(--accent);border-radius:999px}.onboarding{padding:var(--sp-5);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius)}.onboarding h3{margin-top:0}.onboarding-progress{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.onboarding-progress progress{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:.6rem;border:none;border-radius:999px;background:var(--surface-3)}.onboarding-progress progress::-webkit-progress-bar{background:var(--surface-3);border-radius:999px}.onboarding-progress progress::-webkit-progress-value{background:var(--accent);border-radius:999px}.onboarding-progress progress::-moz-progress-bar{background:var(--accent);border-radius:999px}.onboarding-progress p{margin:0;font-weight:600}.report-card-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3)}.report-card-summary{padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.report-card-summary-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.report-card-summary-head time{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.report-card-summary p{margin:0;line-height:1.6}.report-card-summary{padding:0}.report-card-summary-link{display:block;padding:var(--sp-4);color:inherit;text-decoration:none;border-radius:var(--radius-sm);transition:background-color .12s ease}.report-card-summary-link:hover{background:var(--surface-3);color:inherit}.report-card-detail .cta-secondary{margin-top:var(--sp-5)}.history-empty{display:grid;justify-items:start;gap:var(--sp-4)}.billing .section-intro{max-width:46rem}.plan-cards{list-style:none;margin:0 0 var(--sp-6);padding:0;display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.plan-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.plan-card-name{margin:0;font-size:var(--fs-lg)}.plan-card-price{margin:0;display:flex;align-items:baseline;gap:var(--sp-1)}.plan-card-amount{font-size:var(--fs-2xl);font-weight:700;color:var(--accent-strong)}.plan-card-period{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.plan-card-credits{margin:0;font-weight:600}.plan-card-tagline{margin:0 0 var(--sp-3);color:var(--muted);line-height:1.5;flex:1 1 auto}.plan-card .cta{margin:0;text-align:center;cursor:pointer;border:none;font-size:var(--fs-md)}.plan-card .cta:disabled{opacity:.6;cursor:default}.billing-manage{padding:var(--sp-5);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.billing-manage h2{margin-top:0}.cta-secondary{display:inline-block;margin:var(--sp-3) 0 0;padding:.6rem 1.25rem;background:var(--surface);color:var(--accent-strong);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .12s ease}.cta-secondary:hover:not(:disabled){background:var(--surface-3);color:var(--accent-strong)}.cta-secondary:disabled{opacity:.6;cursor:default}.billing-error{margin-top:var(--sp-3);color:var(--danger-strong);font-weight:600}.paywall-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.paywall-see-plans{font-weight:600}
