:root{--ink: #101a2f;--ink-soft: #56637a;--canvas: #f4f6fa;--bg: #ffffff;--surface: #eef1f8;--border: #e2e8f2;--blue: #2e6df6;--teal: #22c7b7;--purple: #7c5cfc;--highlight: #e4f56c;--grad: linear-gradient(120deg, var(--blue) 0%, var(--teal) 55%, var(--purple) 100%);--radius-control: 8px;--radius-card: 12px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(16, 26, 47, 0.04), 0 8px 24px -18px rgba(16, 26, 47, 0.3)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Inter",sans-serif;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}.mono-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:"Space Grotesk",sans-serif;font-size:14.5px;font-weight:600;line-height:1.2;padding:12px 22px;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-control);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.btn:active{transform:translateY(1px)}.btn-sm{padding:7px 13px;font-size:13px}.btn-lg{padding:15px 26px;font-size:15.5px}.btn--pill{border-radius:var(--radius-pill)}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 1px 2px rgba(16,26,47,.16)}.btn-primary:hover{background:#1d2b48;border-color:#1d2b48}.btn-secondary{background:var(--bg);color:var(--ink);border-color:var(--border);box-shadow:0 1px 2px rgba(16,26,47,.04)}.btn-secondary:hover{border-color:#c9d3e4;background:#fbfcfe}.btn-ghost{background:rgba(0,0,0,0);color:var(--ink-soft)}.btn-ghost:hover{color:var(--ink)}.pill{display:inline-flex;align-items:center;padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);font-size:12.5px;font-weight:500;color:var(--ink-soft);white-space:nowrap}.pill-active{border-color:rgba(34,199,183,.55);color:var(--ink)}.logo{display:flex;align-items:center;gap:10px}.logo-mark{display:block}.logo-word{font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:22px;letter-spacing:-0.01em}.logo-word .light{font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0)}.logo-stack{display:flex;flex-direction:column;line-height:1}.logo-tagline{font-family:"Inter",sans-serif;font-size:9px;font-weight:600;letter-spacing:.18em;color:var(--ink-soft);margin-top:3px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px}.header-collapse{display:contents}.main-nav{display:flex;align-items:center;gap:34px}.main-nav a{position:relative;font-size:14.5px;font-weight:500;color:var(--ink-soft);transition:color .15s ease}.main-nav a:hover{color:var(--ink)}.main-nav a.active{color:var(--ink);font-weight:600}.main-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-27px;height:2px;background:var(--grad);border-radius:2px}.header-actions{display:flex;align-items:center;gap:14px}.menu-toggle{display:none;padding:8px;background:none;border:none;cursor:pointer}.menu-toggle span{display:block;width:22px;height:2px;margin:5px 0;background:var(--ink);border-radius:2px}@media(max-width: 860px){.header-collapse{display:none}.menu-toggle{display:block}.site-header.nav-open .header-collapse{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:76px;left:0;right:0;padding:10px 28px 20px;background:var(--bg);border-bottom:1px solid var(--border)}.site-header.nav-open .main-nav{flex-direction:column;align-items:stretch;gap:0}.site-header.nav-open .main-nav a{padding:13px 0;font-size:16px}.site-header.nav-open .main-nav a.active::after{display:none}.site-header.nav-open .header-actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:12px;padding-top:16px;border-top:1px solid var(--border)}.site-header.nav-open .header-actions .btn{width:100%;padding:13px 22px}.site-header.nav-open .header-actions .btn-ghost{color:var(--ink);border-color:var(--border)}.site-header.nav-open .header-user{padding:4px 0;text-align:center}}.header-user{font-size:14px;font-weight:600;color:var(--ink)}.header-user:hover{color:var(--blue)}.header-logout{margin:0}.site-footer{padding:60px 0 26px;background:var(--ink);color:#c6ccda}.site-footer .logo-word{color:#fff}.footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.08)}.footer-blurb{max-width:260px;margin-top:14px;font-size:13.5px;line-height:1.65;color:#9aa3b8}.footer-col h4{margin-bottom:16px;font-family:"Space Grotesk",sans-serif;font-size:13px;font-weight:600;letter-spacing:.02em;color:#fff}.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}.footer-col a{font-size:13.5px;color:#9aa3b8;transition:color .15s ease}.footer-col a:hover{color:#fff}.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:24px}.footer-bottom .copyright{font-size:12.5px;color:#7b849c}.footer-socials{display:flex;gap:12px}.footer-socials a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.06)}.footer-socials a:hover{background:rgba(255,255,255,.12)}@media(max-width: 860px){.footer-top{grid-template-columns:1fr 1fr}}.footer-socials svg{display:block;color:#9aa3b8}.footer-socials a:hover svg{color:#fff}.content-page{min-height:40vh;padding:64px 0 90px}.auth{min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:var(--bg)}.auth-header{display:flex;align-items:center;padding:18px 32px;border-bottom:1px solid var(--border);background:var(--bg)}.auth-header .logo{color:var(--ink);text-decoration:none}.auth-form{display:flex;align-items:flex-start;justify-content:center;padding:56px 24px 64px}.authbox{width:100%;max-width:388px}.auth-head{margin-bottom:26px}.auth-head h2{margin-bottom:7px;font-family:"Space Grotesk",sans-serif;font-size:27px;font-weight:700;letter-spacing:-0.01em}.auth-head p{font-size:14.5px;line-height:1.5;color:var(--ink-soft)}.auth-beta{margin-bottom:22px;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.auth-beta p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-soft)}.auth-beta p+p{margin-top:10px}.auth-beta .auth-beta-lead{font-family:"Space Grotesk",sans-serif;font-size:14.5px;font-weight:600;color:var(--ink)}.auth-divider{display:flex;align-items:center;gap:14px;margin:20px 0;font-size:12px;font-weight:500;color:var(--ink-soft)}.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--border)}.auth-field{margin-bottom:16px}.auth-field input{width:100%;padding:12px 14px;font-family:"Inter",sans-serif;font-size:15px;color:var(--ink);background:var(--bg);border:1.5px solid var(--border);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}.auth-field input::placeholder{color:#9aa5b8}.auth-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(46,109,246,.18)}.auth-field-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px}.auth-field-row label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.auth-field-row a{font-size:12.5px;font-weight:600;color:var(--blue)}.auth-field-row a:hover{text-decoration:underline}.auth-pw{position:relative}.auth-pw input{padding-right:64px}.auth-pw-toggle{position:absolute;top:50%;right:12px;transform:translateY(-50%);padding:4px 6px;font-family:"Inter",sans-serif;font-size:12px;font-weight:600;color:var(--ink-soft);background:none;border:none;cursor:pointer}.auth-pw-toggle:hover{color:var(--blue)}.auth-remember{display:flex;align-items:center;gap:9px;margin:4px 0 22px;font-size:13.5px;color:var(--ink-soft)}.auth-remember input{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.auth-remember label{cursor:pointer}.auth-terms{align-items:flex-start}.auth-terms input{margin-top:2px;flex-shrink:0}.auth-terms a{font-weight:600;color:var(--blue)}.auth-terms a:hover{text-decoration:underline}.auth-roleselect{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-role{position:relative;cursor:pointer}.auth-role input{position:absolute;inset:0;opacity:0;cursor:pointer}.auth-role span{display:flex;align-items:center;justify-content:center;padding:11px 12px;font-size:14px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1.5px solid var(--border);border-radius:10px;transition:border-color .15s ease,color .15s ease,background .15s ease}.auth-role input:checked+span{color:var(--blue);border-color:var(--blue);background:rgba(46,109,246,.06)}.auth-role input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.auth-submit{width:100%;padding:14px 16px;font-family:"Space Grotesk",sans-serif;font-size:15px;font-weight:600;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-control);cursor:pointer;box-shadow:0 1px 2px rgba(16,26,47,.16);transition:background-color .15s ease,border-color .15s ease,transform .12s ease}.auth-submit:hover{background:#1d2b48;border-color:#1d2b48}.auth-submit:active{transform:translateY(1px)}.auth-signup{margin-top:22px;text-align:center;font-size:14px;color:var(--ink-soft)}.auth-signup a{font-weight:600;color:var(--blue)}.auth-signup a:hover{text-decoration:underline}.auth-error{margin-bottom:18px;padding:11px 14px;font-size:13.5px;color:#b42318;background:#fef3f2;border:1px solid #fecdc9;border-radius:10px}.auth-devhint{margin-top:18px;padding:10px 12px;font-size:11.5px;line-height:1.7;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--border);border-radius:8px}.auth-devhint span{display:block;font-weight:600;margin-bottom:2px}.auth-devhint code{font-size:11px;color:var(--ink)}.auth-confirm{text-align:center}.auth-confirm .auth-head{margin-bottom:22px}.auth-confirm .auth-head p strong{color:var(--ink);font-weight:600}.auth-badge{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:18px;border-radius:50%;color:#16967f;background:rgba(34,199,183,.14)}.auth-submit-link{display:block;text-align:center;text-decoration:none}.auth-legal{max-width:320px;margin:26px auto 0;text-align:center;font-size:11.5px;line-height:1.5;color:var(--ink-soft)}.auth-legal a{color:var(--ink-soft);text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@keyframes auth-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.authbox{animation:auth-rise .5s ease both}@media(prefers-reduced-motion: reduce){.authbox{animation:none}*{transition:none !important}}@media(max-width: 600px){.auth-form{padding:36px 16px 48px}.auth-header{padding:14px 16px}}.dash-head{margin-bottom:24px}.dash-head-split{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 24px}.dash-head-split .course-current{flex:0 1 auto}@media(max-width: 860px){.dash-head-split .course-current{flex-basis:100%}}.dash-eyebrow{display:inline-block;margin-bottom:10px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.dash h1{margin-bottom:8px;font-family:"Space Grotesk",sans-serif;font-size:32px;font-weight:700;letter-spacing:-0.01em}.dash-sub{font-size:15px;line-height:1.55;color:var(--ink-soft)}.dash-sub strong{color:var(--ink);font-weight:600}.dash-roles{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dash-rolechip{padding:5px 12px;font-size:12px;font-weight:500;color:var(--ink-soft);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill)}.dash-section{margin-bottom:36px}.dash-section:last-of-type{margin-bottom:32px}.dash-section-bar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.dash-section-bar .dash-section-head{margin-bottom:0;padding-bottom:0;border-bottom:0}.dash-section-head{margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.toolkit-intro{max-width:68ch;margin:0 0 18px;font-size:14px;line-height:1.6;color:var(--ink-soft)}.toolkit-intro strong{color:var(--ink);font-weight:600}.toolkit-intro-lead{color:var(--ink);font-weight:600}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:18px;margin-bottom:32px}.dash-section .dash-grid{margin-bottom:0}.dash-card{padding:24px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.dash-card h1{font-size:24px;margin-bottom:10px}.dash-card h2{margin-bottom:8px;font-family:"Space Grotesk",sans-serif;font-size:17px;font-weight:600}.dash-card p{margin-bottom:16px;font-size:14px;line-height:1.6;color:var(--ink-soft)}.dash-card p:last-child{margin-bottom:0}.dash-card .btn{text-decoration:none}.dash-card-admin{border-color:rgba(124,92,252,.4)}.setup-banner{display:flex;align-items:flex-start;gap:14px;margin-bottom:28px;padding:18px 20px;background:#eef4ff;border:1px solid #c7d8fd;border-left:4px solid var(--blue);border-radius:0 var(--radius-card) var(--radius-card) 0}.setup-banner h2{margin:0 0 4px;font-family:"Space Grotesk",sans-serif;font-size:18px;font-weight:600;color:#1d4fc4}.setup-banner p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink)}.setup-banner p strong{font-weight:600;overflow-wrap:anywhere}.setup-banner-icon{flex:none;margin-top:2px;color:var(--blue)}.setup-banner-body{flex:1;min-width:0}.setup-banner-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:14px;font-size:13.5px;color:var(--ink-soft)}.setup-banner-actions form{margin:0}.setup-banner-done{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:#0f7a55}.setup-banner-places{display:inline-flex;align-items:center;gap:8px}.setup-banner-dots{display:inline-flex;gap:5px}.setup-banner-dots span{width:10px;height:10px;border:1.5px solid var(--blue);border-radius:50%}.setup-banner-dots span.is-filled{background:var(--blue)}.setup-banner.is-danger{background:#fef2f2;border-color:#fecaca;border-left-color:#d92d20}.setup-banner.is-danger h2{color:#b42318}.setup-banner.is-danger .setup-banner-icon{color:#d92d20}.admin-navcard{display:block;text-decoration:none;transition:border-color .15s ease}.admin-navcard:hover{border-color:var(--blue)}.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.admin-back{font-size:13.5px;font-weight:600;color:var(--ink-soft)}.admin-back:hover{color:var(--blue)}.admin-msg{margin-bottom:18px;padding:11px 14px;border-radius:10px;font-size:13.5px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.admin-error{margin-bottom:18px;padding:11px 14px;border-radius:10px;font-size:13.5px;background:#fef2f2;border:1px solid #fecaca;color:#b42318}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{padding:0 12px 10px;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--border)}.admin-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table .muted{color:var(--ink-soft)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}.admin-empty{padding:22px;text-align:center;color:var(--ink-soft);font-size:14px}.admin-form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.admin-input,.admin-select,.admin-textarea{font-family:"Inter",sans-serif;font-size:14px;color:var(--ink);background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-control);padding:9px 12px}.admin-input:focus,.admin-select:focus,.admin-textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(46,109,246,.15)}.admin-textarea{width:100%;min-height:240px;resize:vertical;font-family:ui-monospace,"Cascadia Code","Consolas",monospace;font-size:13px;line-height:1.55}.usage-totals{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:24px}.usage-total{flex:1 1 140px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.usage-total span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.usage-total strong{display:block;margin-top:4px;font-family:"Space Grotesk",sans-serif;font-size:22px;color:var(--ink)}.usage-studenthead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.usage-studenthead h2{margin:0}.usage-studentcost{margin-left:auto;font-size:14px;font-weight:600;color:var(--ink-soft)}.btn-danger{background:#fef2f2;color:#b42318;border:1.5px solid #fecaca}.btn-danger:hover{background:#fee2e2}.pill-on,.pill-off,.pill-scope,.pill-ready,.pill-done,.pill-processing,.pill-failed{border-color:rgba(0,0,0,0);font-weight:600}.pill-on{background:rgba(34,199,183,.14);color:#16967f}.pill-off{background:var(--surface);color:var(--ink-soft)}.pill-scope{background:rgba(124,92,252,.12);color:#6b46e0}.pill-ready{background:rgba(34,199,183,.14);color:#16967f}.pill-done{background:#ecfdf5;color:#15803d}.pill-processing{background:#fff7ed;color:#9a3412}.pill-failed{background:#fef2f2;color:#b42318}.admin-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width: 760px){.admin-cols{grid-template-columns:1fr}}.admin-section{margin-bottom:34px}.admin-section h2{margin-bottom:14px;font-family:"Space Grotesk",sans-serif;font-size:18px;font-weight:600}.inline-form{display:inline}.version-list{display:flex;flex-direction:column;gap:10px}.version{padding:12px 14px;border:1px solid var(--border);border-radius:10px}.version.active{border-color:var(--teal);background:rgba(34,199,183,.05)}.version-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.version-meta{font-size:12px;color:var(--ink-soft)}.version-content{margin-top:8px;padding:8px;max-height:120px;overflow:auto;font-family:ui-monospace,monospace;font-size:12.5px;white-space:pre-wrap;color:var(--ink-soft);background:var(--surface);border-radius:8px}.breadcrumbs{margin-bottom:14px}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none;font-size:13px}.breadcrumbs li{display:flex;align-items:center}.breadcrumbs li:not(:last-child)::after{content:"/";margin:0 8px;color:var(--border)}.breadcrumbs a{color:var(--ink-soft);text-decoration:none}.breadcrumbs a:hover{color:var(--blue)}.breadcrumbs [aria-current=page]{color:var(--ink);font-weight:600}.quiz-suggestions{display:grid;grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));gap:12px}.quiz-suggestion{display:flex;flex-direction:column;gap:4px;text-align:left;padding:13px 15px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);cursor:pointer;font-family:"Inter",sans-serif;transition:border-color .15s ease,background .15s ease}.quiz-suggestion strong{font-size:14.5px;color:var(--ink)}.quiz-suggestion span{font-size:12.5px;color:var(--ink-soft)}.quiz-suggestion:hover{border-color:var(--blue);background:var(--surface)}.quiz-suggestion.is-test{border-color:#fed7aa;background:#fff7ed}.quiz-question{padding:18px;margin-bottom:16px;border:1px solid var(--border);border-radius:12px}.quiz-qhead{font-size:15.5px;font-weight:600;color:var(--ink);margin-bottom:12px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.quiz-qnum{font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.03em}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-control);cursor:pointer;font-size:14px}.quiz-option:hover{border-color:var(--blue)}.quiz-option input{width:17px;height:17px}.quiz-option:has(input:checked){border-color:var(--blue);background:rgba(46,109,246,.06)}.quiz-blank{width:100%;max-width:340px}.quiz-progress{margin:4px 0 16px;font-size:13px;font-weight:600;color:var(--ink-soft)}.quiz-score{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:var(--radius-card);margin-bottom:26px;border:1px solid var(--border)}.quiz-score.is-good{background:rgba(34,199,183,.1);border-color:rgba(34,199,183,.35)}.quiz-score.is-low{background:#fff7ed;border-color:#fed7aa}.quiz-score-pct{font-family:"Space Grotesk",sans-serif;font-size:40px;font-weight:700;color:var(--ink)}.quiz-score-detail{font-size:15px;color:var(--ink-soft)}.quiz-feedback{padding:14px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:14.5px;line-height:1.6;white-space:pre-wrap}.quiz-review{padding:16px 18px;margin-bottom:14px;border:1px solid var(--border);border-left-width:4px;border-radius:10px}.quiz-review.is-correct{border-left-color:var(--teal)}.quiz-review.is-incorrect{border-left-color:#b42318}.quiz-review-options{list-style:none;display:flex;flex-direction:column;gap:6px;margin:4px 0 0;padding:0}.quiz-review-options li{padding:8px 11px;border-radius:8px;font-size:14px;background:var(--surface);display:flex;align-items:center;gap:8px}.quiz-review-options .opt-correct{background:rgba(34,199,183,.14);color:#16967f;font-weight:600}.quiz-review-options .opt-wrong{background:#fef2f2;color:#b42318}.opt-tag{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;opacity:.8}.quiz-review-fill{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--ink-soft)}.quiz-review-fill strong{color:var(--ink)}.quiz-explain{margin-top:10px;font-size:13px;color:var(--ink-soft);line-height:1.55}.result-actions{display:flex;gap:10px;flex-wrap:wrap}.note-list{display:flex;flex-direction:column;gap:12px}.note-card{padding:14px 16px;border:1px solid var(--border);border-radius:12px}.note-card.is-suggested{border-color:#fed7aa;background:#fff7ed}.note-card.is-superseded{opacity:.7}.note-card.is-superseded .note-body{text-decoration:line-through;color:var(--ink-soft)}.note-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.note-date{font-size:12px;color:var(--ink-soft);margin-left:auto}.note-superseded-label{font-size:12px;color:var(--ink-soft);font-style:italic}.note-body{font-size:14.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap}.note-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.note-toggle{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-soft)}.note-toggle input{width:16px;height:16px}.chat{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.chat-row{display:flex}.chat-row.is-user{justify-content:flex-end}.chat-row.is-assistant{justify-content:flex-start}.chat-bubble{max-width:80%;padding:11px 14px;border-radius:var(--radius-card);font-size:14.5px;line-height:1.55}.chat-bubble.is-user{background:var(--blue);color:#fff;border-bottom-right-radius:4px}.chat-bubble.is-assistant{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-bottom-left-radius:4px}.chat-answer{white-space:pre-wrap}.chat-attribution{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}.chat-form{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.has-brain-chat .brain-fallback{display:none}.brain{display:grid;grid-template-columns:240px minmax(0, 1fr);gap:20px;align-items:start}.brain-threads{position:sticky;top:92px;display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);box-shadow:var(--shadow-card)}.brain-threads-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.brain-threads-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.brain-threads-empty{margin:0;font-size:13px;line-height:1.5;color:var(--ink-soft)}.brain-thread-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.brain-thread{display:block;padding:9px 10px;border-radius:8px;border:1px solid rgba(0,0,0,0)}.brain-thread:hover{background:var(--surface)}.brain-thread.is-active{background:var(--surface);border-color:var(--border)}.brain-thread-title{display:-webkit-box;font-size:13.5px;line-height:1.35;color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.brain-thread-when{display:block;margin-top:3px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.brain-main{display:flex;flex-direction:column;min-width:0}.brain-transcript{display:flex;flex-direction:column;gap:12px;min-height:320px;max-height:60vh;overflow-y:auto;padding:20px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);box-shadow:var(--shadow-card)}.brain-welcome{margin:auto 0;max-width:52ch;text-align:center;align-self:center}.brain-welcome h2{margin-bottom:10px;font-family:"Space Grotesk",sans-serif;font-size:20px;font-weight:600}.brain-welcome p{font-size:14px;line-height:1.6;color:var(--ink-soft)}.brain-thinking{display:inline-flex;gap:4px;padding:2px 0}.brain-thinking span{width:6px;height:6px;border-radius:50%;background:var(--ink-soft);animation:brain-blink 1.2s infinite ease-in-out}.brain-thinking span:nth-child(2){animation-delay:.16s}.brain-thinking span:nth-child(3){animation-delay:.32s}@keyframes brain-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}@media(prefers-reduced-motion: reduce){.brain-thinking span{animation:none;opacity:.6}}.brain-note-offer{display:inline-block;margin-top:10px;font-size:13px;color:var(--blue);text-decoration:underline;text-underline-offset:2px}.brain-note-offer:hover{color:var(--ink)}.brain-error{margin:12px 0 0}.brain-composer{display:flex;align-items:flex-end;gap:10px;margin-top:14px}.brain-input{flex:1 1 auto;min-width:0;padding:12px 14px;font-family:inherit;font-size:14.5px;line-height:1.5;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card);resize:none}.brain-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(46,109,246,.15)}.brain-input:disabled{color:var(--ink-soft)}.brain-send{flex:0 0 auto}.brain-hint{margin:8px 0 0;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.06em;color:var(--ink-soft)}@media(max-width: 860px){.brain{grid-template-columns:minmax(0, 1fr)}.brain-threads{position:static;max-height:220px;overflow-y:auto}.brain-transcript{max-height:none}}.brain-thread-row{display:flex;align-items:center;gap:2px}.brain-thread-row .brain-thread{flex:1 1 auto;min-width:0}.brain-thread-row form{margin:0;display:flex}.brain-thread-row:hover .brain-thread-delete,.brain-thread-row .brain-thread-delete:focus-visible{opacity:1}.brain-thread-delete{flex:0 0 auto;width:24px;height:24px;padding:0;font-size:17px;line-height:1;color:var(--ink-soft);background:none;border:none;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease,background-color .12s ease}.brain-thread-delete:hover{color:#b42318;background:#fef2f2}@media(hover: none){.brain-thread-delete{opacity:1}}.ctx-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 20px;margin-bottom:14px}.ctx-count{margin:0;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.ctx-count strong{color:var(--ink);font-weight:500}.ctx-reading{display:inline-flex;align-items:baseline;gap:8px;margin:0;padding:4px 12px;border:1px solid #fde68a;border-radius:var(--radius-pill);background:#fffbeb;font-size:12.5px;color:#92400e}.ctx-reading strong{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#78350f;font-weight:500}.ctx-lead{max-width:58ch;margin:0 0 8px;font-family:"Space Grotesk",sans-serif;font-size:17px;font-weight:600;line-height:1.35;color:var(--ink)}.ctx-explain{max-width:62ch;margin:0 0 20px;font-size:14px;line-height:1.6;color:var(--ink-soft)}.ctx-explain em{color:var(--ink);font-style:normal}.ctx-explain-lead{color:var(--ink)}.ctx-strip{display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));gap:2px;max-width:560px;margin:0 0 20px;padding:0;list-style:none}.ctx-cell{display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 0 11px;border:1px solid rgba(0,0,0,0);border-radius:10px;text-align:center}.ctx-cell-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1.5px solid rgba(0,0,0,0);border-radius:50%}.ctx-cell.is-in .ctx-cell-mark{background:var(--teal);border-color:var(--teal);color:#fff}.ctx-cell.is-thin .ctx-cell-mark{border-color:#ccd6e6}.ctx-cell.is-missing .ctx-cell-mark{border-color:#fbbf24;border-style:dashed}.ctx-cell-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.ctx-sources{display:flex;flex-direction:column;gap:8px}.ctx-source,.doc-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:10px}.ctx-source .lesson-chip,.doc-row .lesson-chip{flex:0 0 auto}.ctx-source.is-pending,.doc-row.is-pending{border-color:#ccd6e6;box-shadow:var(--shadow-card)}.ctx-source.is-pending .ctx-source-when,.doc-row.is-pending .ctx-source-when{color:var(--ink)}.doc-row{transition:border-color .15s ease,box-shadow .15s ease}.doc-row:hover{border-color:#ccd6e6;box-shadow:var(--shadow-card)}.doc-row:hover .doc-row-go{color:var(--ink)}.doc-row.is-failed{border-color:#fecaca}.doc-row-go{flex:0 0 auto;font-size:13px;font-weight:600;color:var(--ink-soft);transition:color .15s ease}.ctx-source-when{flex:0 0 56px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.ctx-source-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;color:var(--ink)}.ctx-source-state{flex:0 0 auto;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.06em;color:var(--ink-soft)}.ctx-insights{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.ctx-start{margin-top:4px}.dash-section .dash-grid.ctx-ways{margin-top:18px}.ctx-way{display:flex;flex-direction:column}.ctx-way p{flex:1 1 auto}.ctx-way-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}@media(max-width: 860px){.ctx-strip{grid-template-columns:repeat(3, minmax(0, 1fr));gap:4px}.ctx-source,.doc-row{flex-wrap:wrap}.ctx-source .ctx-source-title,.doc-row .ctx-source-title{flex:1 1 calc(100% - 68px)}}.upload-ways{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:16px;margin-bottom:22px}.upload-way{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);box-shadow:var(--shadow-card)}.upload-way-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.upload-file{width:100%;font-size:14px;color:var(--ink-soft)}.upload-file::file-selector-button{margin-right:12px;padding:9px 16px;font-family:"Space Grotesk",sans-serif;font-size:14px;font-weight:600;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-control);cursor:pointer}.upload-file::file-selector-button:hover{border-color:#c9d3e4}.upload-photo-button{gap:10px}.upload-photo-button[hidden]{display:none}.upload-hint{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}.doc-photo-clear{display:flex;align-items:center}.doc-photo-panel{width:100%;max-width:520px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#0e1a33}.doc-photo-panel[hidden]{display:none}.doc-photo-preview{display:block;width:100%;max-height:60vh;background:#0e1a33}.doc-photo-actions{display:flex;gap:8px;padding:10px}.doc-photo-error{width:100%;margin:0}.doc-photo-error[hidden]{display:none}.doc-photo-list{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:0;list-style:none}.doc-photo-item{position:relative;line-height:0}.doc-photo-thumb{display:block;width:92px;height:92px;object-fit:cover;border:1px solid var(--border);border-radius:10px}.doc-photo-remove{position:absolute;top:-7px;right:-7px;width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg);color:var(--ink-soft);font-size:15px;line-height:1;cursor:pointer}.doc-photo-remove:hover{border-color:var(--blue);color:var(--blue)}.doc-photo-name{font-size:13px;line-height:1.4;color:var(--ink-soft)}@media(max-width: 860px){.upload-way--photo{order:-1}}.upload-photo-alt{font-size:13px;font-weight:500;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.upload-photo-alt[hidden]{display:none}.upload-photo-alt:hover{color:var(--ink)}.upload-photo-alt:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}.busy-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:rgba(255,255,255,.88);backdrop-filter:blur(2px);animation:busy-overlay-in .15s ease-out}.busy-overlay-spinner{width:38px;height:38px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:busy-overlay-spin .8s linear infinite}.busy-overlay-message{margin:0;font-family:"Space Grotesk",sans-serif;font-size:18px;font-weight:600;color:var(--ink)}.busy-overlay-note{margin:0;max-width:34ch;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}body.is-busy{overflow:hidden}@keyframes busy-overlay-in{from{opacity:0}to{opacity:1}}@keyframes busy-overlay-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion: reduce){.busy-overlay{animation:none}.busy-overlay-spinner{animation-duration:2.4s}}.course-current{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:14.5px}.course-current strong{color:var(--ink)}.course-list{display:flex;flex-direction:column;gap:10px}.course-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 16px;border:1px solid var(--border);border-radius:12px}.course-card.is-current{border-color:var(--teal);background:rgba(34,199,183,.06)}.course-name{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--ink)}.course-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-note{margin-bottom:18px;padding:11px 14px;border-radius:10px;font-size:13.5px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.convo-suggestions{display:flex;flex-direction:column;gap:10px}.convo-suggestion-form{margin:0}.convo-suggestion{display:block;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}.convo-suggestion strong{display:block;font-size:15px;color:var(--ink);margin-bottom:3px}.convo-suggestion span{display:block;font-size:13.5px;color:var(--ink-soft);line-height:1.5}.convo-suggestion:hover{border-color:var(--blue);box-shadow:0 1px 4px rgba(14,26,51,.08)}.convo-setting{margin-bottom:16px;padding:11px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:13.5px;line-height:1.55;color:var(--ink-soft)}.convo-messages{margin-bottom:16px}.convo-target{white-space:pre-wrap;font-size:15px;line-height:1.55}.convo-english{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);font-size:13.5px;line-height:1.5;color:var(--ink-soft);font-style:italic}.convo-bubble-actions{display:flex;gap:12px;margin-top:8px}.convo-iconbtn{background:none;border:none;padding:0;font-size:12.5px;color:var(--blue);cursor:pointer}.convo-iconbtn:hover{text-decoration:underline}.convo-typing{letter-spacing:2px;color:var(--ink-soft)}.convo-input{display:flex;flex-direction:column;gap:10px}.convo-textarea{width:100%;resize:vertical;font-family:inherit}.convo-input-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}.convo-mic.is-listening{color:#b42318;border-color:#fecaca;background:#fef3f2}.convo-textarea.is-recording{border-color:#fca5a5;background:#fffbfb;cursor:default}.convo-recording-hint{display:flex;align-items:center;gap:8px;margin:0;font-size:13.5px;color:#b42318}.convo-rec-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#d92d20;animation:convo-rec-pulse 1.4s ease-in-out infinite}@keyframes convo-rec-pulse{0%,100%{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion: reduce){.convo-rec-dot{animation:none}}.convo-error{margin:10px 0 0}.convo-end{margin-top:16px;text-align:right}.convo-feedback-body{font-size:14.5px;line-height:1.6;color:var(--ink);white-space:pre-wrap}.convo-corrections{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}.convo-corrections li{font-size:14px;line-height:1.55;color:var(--ink)}.convo-vocab{display:flex;flex-wrap:wrap;gap:8px}.convo-transcript{display:flex;flex-direction:column;gap:12px}.match-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.match-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.match-foreign{flex:1 1 200px;font-size:15.5px;font-weight:600;color:var(--ink)}.match-num{display:inline-block;min-width:22px;margin-right:6px;font-size:12.5px;font-weight:700;color:var(--ink-soft)}.match-select{flex:1 1 240px;max-width:320px}.match-review{display:flex;flex-direction:column;gap:10px}.match-review-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:12px;border-left-width:4px}.match-review-row.is-correct{border-left-color:var(--green, #16a34a)}.match-review-row.is-incorrect{border-left-color:#dc2626}.match-review-foreign{flex:1 1 160px;font-size:15.5px;font-weight:600;color:var(--ink)}.match-review-answer{flex:2 1 240px;font-size:14px;line-height:1.55;color:var(--ink)}.match-review-answer .pill{margin-bottom:6px}.match-your{color:var(--ink-soft)}.flash-study{display:flex;flex-direction:column;align-items:center;gap:18px}.flash-progress{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.flash-card{position:relative;width:100%;max-width:460px;min-height:200px;perspective:1200px}.flash-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);backface-visibility:hidden;transition:transform .5s;box-shadow:0 2px 10px rgba(14,26,51,.06)}.flash-front{transform:rotateY(0deg)}.flash-back{transform:rotateY(180deg);background:var(--surface)}.flash-card.is-flipped .flash-front{transform:rotateY(-180deg)}.flash-card.is-flipped .flash-back{transform:rotateY(0deg)}.flash-eyebrow{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.flash-word{font-family:"Space Grotesk",sans-serif;font-size:30px;font-weight:700;text-align:center;line-height:1.25;color:var(--ink)}.flash-input-row{display:flex;gap:10px;width:100%;max-width:460px;flex-wrap:wrap;justify-content:center}.flash-input{flex:1 1 240px}.flash-check{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:460px}.flash-yours{font-size:14.5px;color:var(--ink);text-align:center}.flash-hint{margin-left:8px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600}.flash-hint.is-match{background:#dcfce7;color:#166534}.flash-hint.is-miss{background:#fef3c7;color:#92400e}.flash-mark{display:flex;gap:10px}.flash-missed{border-color:#fecaca;color:#b42318}.flash-finish{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.flash-finish-line{font-size:16px;color:var(--ink)}.writing-prompt{margin-bottom:20px;padding:16px 18px;border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:12px;background:var(--surface)}.writing-prompt p{margin:0;font-size:16px;line-height:1.6;color:var(--ink)}.writing-prompt-label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.writing-textarea{width:100%;resize:vertical;font-family:inherit;line-height:1.6}.writing-rating{display:inline-block;margin-bottom:20px;padding:8px 16px;border-radius:999px;font-family:"Space Grotesk",sans-serif;font-size:15px;font-weight:700}.writing-rating.is-good{background:#dcfce7;color:#166534}.writing-rating.is-mid{background:#fef3c7;color:#92400e}.writing-rating.is-low{background:#fee2e2;color:#b42318}.writing-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}.writing-list li{font-size:14.5px;line-height:1.55;color:var(--ink)}.writing-corrections li{color:var(--ink)}.writing-sample{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--bg);font-size:15px;line-height:1.7;color:var(--ink);white-space:pre-wrap}.writing-revision{border-color:#bbf7d0;background:#f0fdf4}.reading-passage{margin-bottom:22px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.reading-passage-label{display:block;margin-bottom:8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.reading-passage-body{font-size:16px;line-height:1.75;color:var(--ink);white-space:pre-wrap}.reading-cat{display:inline-block;margin-right:8px;padding:2px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:capitalize;color:var(--ink-soft);vertical-align:middle}.plan-dates{display:flex;flex-direction:column;gap:10px}.plan-date{display:flex;align-items:flex-start;gap:16px;padding:14px 16px;border:1px solid var(--border);border-left:3px solid var(--blue);border-radius:12px;background:var(--bg)}.plan-date.is-soon{border-left-color:#d97706;background:#fffbeb}.plan-date-when{flex:0 0 96px;display:flex;flex-direction:column;gap:2px}.plan-date-when strong{font-family:"Space Grotesk",sans-serif;font-size:15px;color:var(--ink)}.plan-date-when span{font-size:12.5px;color:var(--ink-soft)}.plan-date-what{flex:1 1 auto;min-width:0}.plan-date-what p{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-soft)}.plan-date-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plan-date-head strong{font-size:15px;color:var(--ink)}.plan-kind{padding:2px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-family:"Space Grotesk",sans-serif;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.plan-note{margin:12px 0 0;font-size:13px;line-height:1.55;color:var(--ink-soft)}.plan-insights{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:14px}@media(max-width: 860px){.plan-insights{grid-template-columns:1fr}}.plan-insight{padding:18px 20px;border:1px solid var(--border);border-top:3px solid var(--border);border-radius:12px;background:var(--bg)}.plan-insight h3{margin:0 0 8px;font-family:"Space Grotesk",sans-serif;font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft)}.plan-insight p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink)}.plan-insight ul{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.plan-insight li{font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.plan-insight.is-strength{border-top-color:var(--teal)}.plan-insight.is-focus{border-top-color:var(--purple)}.plan-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.plan-stat{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;color:var(--ink-soft)}.plan-stat strong{color:var(--ink);font-weight:600;margin-right:5px}.plan-stat-count{opacity:.75}.plan-stat-label{align-self:center;font-size:12.5px;font-weight:500;color:var(--ink-soft)}.plan-days{display:flex;flex-direction:column;gap:20px}.plan-day.is-today .plan-day-name{color:var(--blue)}.plan-day-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.plan-day-name{font-family:"Space Grotesk",sans-serif;font-size:14.5px;font-weight:600;color:var(--ink)}.plan-day-minutes{margin-left:auto;font-size:12.5px;color:var(--ink-soft)}.lesson-minutes{font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.lesson-empty{padding:26px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.lesson-empty h2{margin-bottom:8px;font-family:"Space Grotesk",sans-serif;font-size:19px;font-weight:600}.lesson-empty p{margin-bottom:16px;font-size:14.5px;line-height:1.6;color:var(--ink-soft);max-width:620px}.lesson-empty-actions{display:flex;gap:10px;flex-wrap:wrap}.lesson-empty-form{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.lesson-stale.is-rework{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.pill-low{border-color:#fde68a;background:#fffbeb;color:#b45309}.lesson-stale{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px;padding:12px 16px;border-radius:12px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:14px}.lesson-stale form{margin:0;margin-left:auto}.lesson-list{display:flex;flex-direction:column;gap:12px}.lesson-item{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.lesson-item.is-done{opacity:.72}.lesson-item-main{flex:1 1 auto;min-width:0}.lesson-item-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lesson-item-head strong{font-size:15.5px;color:var(--ink)}.lesson-chip{padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);color:var(--ink-soft);font-size:11.5px;font-weight:500;white-space:nowrap}.lesson-item-detail{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.lesson-item-action{margin:0;flex:0 0 auto}.lesson-count{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--ink-soft)}.week-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 20px;margin-bottom:14px}.week-count{margin:0;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.week-count strong{color:var(--ink);font-weight:500}.week-milestone{display:inline-flex;align-items:baseline;gap:8px;margin:0;padding:4px 12px;border:1px solid #fde68a;border-radius:var(--radius-pill);background:#fffbeb;font-size:12.5px;color:#92400e}.week-milestone strong{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#78350f}.week-strip{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));gap:2px;max-width:400px;margin:0 0 20px;padding:0;list-style:none}.week-day{display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 0 11px;border:1px solid rgba(0,0,0,0);border-radius:10px}.week-day-initial{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.1em;color:var(--ink-soft)}.week-day-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1.5px solid rgba(0,0,0,0);border-radius:50%;font-size:12px;line-height:1}.week-day.is-rest .week-day-mark::before{content:"";width:5px;height:5px;border-radius:50%;background:#d3dbe8}.week-day.is-practice .week-day-mark{border-color:#ccd6e6}.week-day.is-done .week-day-mark{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:700}.week-day.is-missed .week-day-mark{border-color:#fbbf24;border-style:dashed}.week-day.is-milestone .week-day-mark{color:#b45309;font-size:14px}.week-day.is-done.is-milestone .week-day-mark{color:#fff}.week-day.is-today{background:var(--surface);border-color:var(--border)}.week-day.is-today .week-day-initial{color:var(--ink);font-weight:600}.week-plan{display:flex;flex-direction:column;gap:8px}.week-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:10px}.week-item .lesson-chip{flex:0 0 auto}.week-item form{margin:0;flex:0 0 auto}.week-item.is-due{border-color:#ccd6e6;box-shadow:var(--shadow-card)}.week-item-day{flex:0 0 44px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.week-item.is-due .week-item-day{color:var(--ink)}.week-item-title{flex:1 1 auto;min-width:0;font-size:14.5px;color:var(--ink)}.week-clear{margin:0;font-size:14px;color:var(--ink-soft)}.week-insights{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.insight-chip{display:inline-flex;align-items:baseline;gap:8px;padding:6px 13px;border:1px solid var(--border);border-radius:var(--radius-pill);font-size:13px;color:var(--ink)}.insight-chip-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.insight-chip.is-strength{border-color:rgba(34,199,183,.45)}.insight-chip.is-strength .insight-chip-label{color:#16967f}.insight-chip.is-focus{border-color:#fcd9a4}.insight-chip.is-focus .insight-chip-label{color:#b45309}.insight-asof{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.06em;color:var(--ink-soft)}.week-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}.today-empty{font-size:14px;line-height:1.6;color:var(--ink-soft);margin-bottom:14px}@media(max-width: 860px){.week-item{flex-wrap:wrap;row-gap:10px}.week-item .week-item-title{flex:1 1 calc(100% - 56px)}.week-item form{margin-left:auto}}.ask{max-width:740px;margin:0 auto;padding:8px 0 0}.ask-narrow{max-width:620px}.ask-page{padding-top:24px}.ask-title{margin:0;font-family:"Space Grotesk",sans-serif;font-size:34px;font-weight:700;letter-spacing:-0.02em;line-height:1.2;text-align:center;color:var(--ink)}.ask-sub{margin:12px 0 0;font-size:15px;line-height:1.6;color:var(--ink-soft);text-align:center}.ask-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;font-size:13.5px;color:var(--ink-soft);text-decoration:none}.ask-back:hover{color:var(--blue)}.mono-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.doors{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:18px;margin-top:36px;align-items:stretch}@media(max-width: 860px){.doors{grid-template-columns:minmax(0, 1fr)}}.door{display:flex;flex-direction:column;padding:26px 24px 24px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:inherit;text-align:left;text-decoration:none;transition:border-color .15s ease,transform .15s ease}.door h3{margin:0;font-family:"Space Grotesk",sans-serif;font-size:19px;font-weight:700;letter-spacing:-0.01em;line-height:1.3;color:var(--ink)}.door p{flex:1 1 auto;margin:10px 0 0;font-size:14px;line-height:1.6;color:var(--ink-soft)}a.door:hover{border-color:var(--blue);transform:translateY(-1px)}.door-primary{border-top:3px solid rgba(0,0,0,0);background-image:linear-gradient(var(--bg), var(--bg)),var(--grad);background-origin:border-box;background-clip:padding-box,border-box}.door.is-off{background:var(--surface);box-shadow:none}.door-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}.door-go{font-family:"Space Grotesk",sans-serif;font-size:14px;font-weight:600;color:var(--ink)}.door-tools{margin-top:16px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8a95a8;line-height:1.9}.door-eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:12px}.door-dot{width:7px;height:7px;border-radius:50%;background:var(--teal)}.door-dot.is-warn{background:#f59e0b}.ready-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:14px 0 8px}.ready-pct{font-family:"Space Grotesk",sans-serif;font-size:15px;font-weight:700;color:var(--ink)}.ready-note{font-size:12.5px;color:var(--ink-soft)}.ready-track{display:block;height:8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.ready-fill{display:block;height:100%;background:var(--grad);border-radius:999px}.quiet{margin:28px 0 0;text-align:center;font-size:13.5px;line-height:1.6;color:var(--ink-soft)}.quiet a{color:var(--blue);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(46,109,246,.3)}.field{margin-top:30px}.field-label{margin-bottom:12px;font-family:"Space Grotesk",sans-serif;font-size:16px;font-weight:600;color:var(--ink)}.field-hint{margin:9px 0 0;font-size:13px;line-height:1.55;color:var(--ink-soft)}.textbox-input{display:block;width:100%;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg);font-family:"Inter",sans-serif;font-size:14.5px;color:var(--ink)}.textbox-input::placeholder{color:#9aa5b8}.textbox-input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}label.field-label{display:block}.composer{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);transition:border-color .12s ease,box-shadow .12s ease}.composer:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px rgba(46,109,246,.18)}.composer-input{display:block;width:100%;min-height:104px;padding:15px 16px 6px;border:0;background:rgba(0,0,0,0);font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.55;color:var(--ink);resize:vertical}.composer-input::placeholder{color:#9aa5b8}.composer-input:focus{outline:none}.composer-bar{display:flex;align-items:center;gap:10px;padding:6px 10px 10px}.composer-add-wrap{position:relative}.composer-add{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg);color:var(--ink-soft);cursor:pointer;transition:border-color .12s ease,color .12s ease,background-color .12s ease}.composer-add:hover,.composer-add[aria-expanded=true]{border-color:#c9d3e4;background:var(--surface);color:var(--ink)}.composer-add:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.composer-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:5;min-width:250px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--bg);box-shadow:0 1px 2px rgba(16,26,47,.06),0 12px 32px -12px rgba(16,26,47,.35)}.composer-menu[hidden]{display:none}.composer-menu-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:0;border-radius:8px;background:rgba(0,0,0,0);font-family:"Inter",sans-serif;font-size:14px;font-weight:500;color:var(--ink);text-align:left;cursor:pointer}.composer-menu-item svg{flex:0 0 auto;color:var(--ink-soft)}.composer-menu-item:hover,.composer-menu-item:focus-visible,.composer-menu-item:has(input:focus-visible){background:var(--surface);outline:none}.composer-menu-note{margin:4px 0 2px;padding:6px 12px 4px;border-top:1px solid var(--border);font-size:12px;line-height:1.5;color:var(--ink-soft)}.composer-attachments{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.composer-attachments[hidden]{display:none}.composer-chip{display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font-size:12.5px;color:var(--ink)}.composer-chip span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.composer-clear{padding:0 4px;border:0;background:rgba(0,0,0,0);font-size:12.5px;font-weight:500;color:var(--ink-soft);cursor:pointer}.composer-clear:hover{color:var(--blue)}.composer-mic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:auto;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg);color:var(--ink-soft);cursor:pointer;transition:border-color .12s ease,color .12s ease,background-color .12s ease}.composer-mic[hidden]{display:none}.composer-mic:hover{border-color:#c9d3e4;background:var(--surface);color:var(--ink)}.composer-mic:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.composer-mic[aria-pressed=true]{border-color:#fca5a5;background:#fef2f2;color:#b42318;animation:composer-mic-pulse 1.6s ease-in-out infinite}@keyframes composer-mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(180,35,24,.25)}50%{box-shadow:0 0 0 6px rgba(180,35,24,0)}}.composer.is-listening{border-color:#fca5a5;background:#fffbfb}.composer-status{font-size:12.5px;color:var(--ink-soft)}.composer-status.is-error{color:#b42318}.composer-status[hidden]{display:none}.prep-camera{margin-top:12px}.prep-camera[hidden]{display:none}.textbox{display:flex;align-items:center;gap:12px;margin-top:12px;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg);font-size:14.5px;color:#9aa5b8;text-decoration:none}.textbox svg{flex:0 0 auto}a.textbox-link:hover{color:var(--ink);border-color:#c9d3e4}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);font-family:"Inter",sans-serif;font-size:13.5px;font-weight:500;color:var(--ink-soft);cursor:pointer;transition:border-color .12s ease,color .12s ease,box-shadow .12s ease}.chip input[type=radio]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.chip:hover{color:var(--ink);border-color:#c9d3e4}.chip:has(input:checked),.chip.is-on{border-color:rgba(34,199,183,.65);color:var(--ink);box-shadow:0 0 0 1px rgba(34,199,183,.25)}.chip:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}.plan-switcher{margin-bottom:22px}.plan-switcher a.chip{text-decoration:none}.plan-switcher a.chip .chip-note{color:var(--ink-soft)}.plan-switcher .chip.is-past{color:#8a95a8}.chip.is-suggested{border-color:rgba(46,109,246,.4);color:var(--ink);background:#f7faff}.chip-note{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}.chip-date{gap:10px}.chip-date input[type=date]{font-family:"Inter",sans-serif;font-size:13px;color:var(--ink);border:0;background:rgba(0,0,0,0);padding:0}.chip-date:has(input:not(:placeholder-shown)),.chip-date:has(input:focus){border-color:rgba(34,199,183,.65);color:var(--ink)}.preview-line{display:flex;align-items:center;gap:10px;margin-top:26px;padding:14px 16px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e40af;font-size:13.5px;line-height:1.5}.preview-line svg{flex:0 0 auto}.preview-line strong{font-weight:600}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:26px}.form-actions .btn{text-decoration:none}.session{margin-top:32px;padding:30px 28px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.session h2{margin:0;font-family:"Space Grotesk",sans-serif;font-size:24px;font-weight:700;letter-spacing:-0.015em;color:var(--ink)}.session-list{display:flex;flex-direction:column;gap:9px;margin:18px 0 0;padding:0;list-style:none}.session-list li{display:flex;align-items:center;gap:11px;font-size:14.5px;color:var(--ink-soft)}.session-list .lesson-chip{flex:0 0 auto}.session-step{flex:1 1 auto;min-width:0;color:var(--ink)}.tick{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 auto;border:1.5px solid #ccd6e6;border-radius:50%}.session-foot{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.session-foot form{margin:0}.session-foot .btn-ghost{margin-left:auto;text-decoration:none}.rest{margin:16px 0 0;text-align:center;font-size:13px;color:var(--ink-soft)}@media(max-width: 860px){.ask-title{font-size:28px}.session{padding:22px 18px}.session-foot .btn-ghost{margin-left:0}}.course-bar{background:var(--bg);border-bottom:1px solid var(--border)}.course-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;min-height:48px}.course-bar-links{display:flex;align-items:stretch;gap:26px;overflow-x:auto;scrollbar-width:none}.course-bar-links::-webkit-scrollbar{display:none}.course-bar-links a{position:relative;display:inline-flex;align-items:center;padding:14px 0;font-size:13.5px;font-weight:500;white-space:nowrap;color:var(--ink-soft);text-decoration:none;transition:color .15s ease}.course-bar-links a:hover{color:var(--ink)}.course-bar-links a.is-active{color:var(--ink);font-weight:600}.course-bar-links a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--grad);border-radius:2px}.course-bar-course{display:flex;align-items:center;gap:12px;flex:0 0 auto;font-size:13.5px;color:var(--ink)}.course-bar-name{display:inline-flex;align-items:center;gap:8px;font-weight:600}.course-bar-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.course-bar-change{font-size:12.5px;font-weight:500;color:var(--ink-soft);text-decoration:none}.course-bar-change:hover{color:var(--blue)}@media(max-width: 860px){.course-bar-inner{flex-wrap:wrap;gap:0 16px}.course-bar-links{flex:1 1 100%;gap:22px}.course-bar-course{flex:1 1 100%;justify-content:flex-end;padding:8px 0 10px;border-top:1px solid var(--border)}}.course-bar-exit{padding-left:12px;border-left:1px solid var(--border)}.family-list{display:flex;flex-direction:column;gap:12px}.family-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.family-main{flex:1 1 260px;min-width:0}.family-head{display:flex;align-items:center;gap:12px}.family-head strong{font-size:15.5px;color:var(--ink)}.family-meta{font-size:13px;color:var(--ink-soft);margin-top:2px;display:flex;gap:4px;flex-wrap:wrap}.family-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.family-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.family-invite{display:flex;gap:6px;align-items:center}.pin-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--grad);color:#fff;font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:17px}.devmail-body{font-size:14px;line-height:1.6;color:var(--ink)}.devmail-body a{color:var(--blue);word-break:break-all}.auth-hint{font-size:13px;line-height:1.5;color:var(--ink-soft);margin:0 0 16px}.acting-for{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-bottom:20px;padding:10px 16px;border:1px solid rgba(124,92,252,.35);border-radius:var(--radius-card);background:rgba(124,92,252,.06)}.acting-for-label{font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#6b46e0}.acting-for-name{font-family:"Space Grotesk",sans-serif;font-size:15px;font-weight:600;color:var(--ink)}.acting-for-note{font-size:13px;color:var(--ink-soft)}.student-card{display:flex;align-items:center;gap:14px}.student-card .pin-avatar{flex:0 0 40px}.student-card h2{margin-bottom:2px}.student-card p{margin-bottom:0}.student-card-body{flex:1 1 auto;min-width:0}.history-ranges{display:flex;flex-wrap:wrap;gap:4px}.history-range{padding:3px 10px;border-radius:var(--radius-pill);font-size:12px;color:var(--ink-soft);text-decoration:none;white-space:nowrap;transition:color .12s ease,background-color .12s ease}.history-range:hover,.history-range:focus-visible{color:var(--ink);background:var(--surface)}.history-range.is-active{color:var(--bg);background:var(--ink)}.history-list{display:flex;flex-direction:column;gap:6px}.history-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--border);border-radius:10px}.history-item .lesson-chip{flex:0 0 auto}a.history-item.is-linked{text-decoration:none;color:inherit;transition:border-color .12s ease,background-color .12s ease}a.history-item.is-linked:hover,a.history-item.is-linked:focus-visible{border-color:var(--blue);background:var(--surface)}a.history-item.is-linked:hover .history-title,a.history-item.is-linked:focus-visible .history-title{text-decoration:underline}.history-when{flex:0 0 52px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.history-title{flex:1 1 auto;min-width:0;font-size:14.5px;color:var(--ink)}.history-score{flex:0 0 auto;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:12px;font-weight:500;white-space:nowrap}.history-score.is-good{color:#16967f}.history-score.is-ok{color:#b45309}.history-score.is-low{color:#b42318}.history-score.is-note{color:var(--ink-soft)}.history-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.history-count,.history-page-of{font-size:12px;color:var(--ink-soft)}.history-pager-actions{display:flex;align-items:center;gap:10px}.history-page-link{padding:3px 10px;border-radius:var(--radius-pill);font-size:12.5px;color:var(--ink);text-decoration:none;white-space:nowrap;transition:background-color .12s ease}.history-page-link:hover,.history-page-link:focus-visible{background:var(--surface)}.history-page-link.is-disabled{color:var(--ink-soft);opacity:.45}@media(max-width: 860px){.history-item{flex-wrap:wrap;row-gap:8px}.history-item .history-title{flex:1 1 calc(100% - 64px)}.history-item .history-score{margin-left:auto}.history-pager{justify-content:center}}.family-group-head{margin:24px 0 10px;font-family:"JetBrains Mono",ui-monospace,"Cascadia Code","Consolas",monospace;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.family-card.is-paused{background:rgba(0,0,0,0);border-style:dashed}.family-card.is-paused .pin-avatar{filter:grayscale(1);opacity:.6}.family-card.is-paused .family-head strong{color:var(--ink-soft)}.pause-points{max-width:560px;margin:0 0 18px;padding-left:20px;font-size:14.5px;line-height:1.6;color:var(--ink)}.pause-points li+li{margin-top:6px}.install-card[hidden]{display:none}.install-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;margin-bottom:24px;padding:18px 20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card)}.install-card h2{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink)}.install-card p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-soft)}.install-card-body{flex:1 1 260px}.install-card-actions{display:flex;align-items:center;gap:8px}@media(max-width: 860px){.install-card-actions{width:100%}.install-card-actions .btn{flex:1}}.install-page{max-width:560px;margin:0 auto;padding:32px 0 48px}.install-head{margin-bottom:24px}.install-head h1{margin:0 0 8px;font-size:24px}.install-head p{margin:0;color:var(--ink-soft);line-height:1.6}.install-panel{padding:22px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-card)}.install-steps{margin:0;padding-left:20px;color:var(--ink-soft);line-height:1.7}.install-steps strong{color:var(--ink)}.install-note{margin:0 0 16px;color:var(--ink);line-height:1.6}.install-hint{margin:12px 0 0;font-size:13px;color:var(--ink-soft)}.install-note-quiet{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--border);font-size:14px;color:var(--ink-soft)}.install-note-quiet strong{color:var(--ink)}.install-native{display:none}.can-install .install-native{display:block}.can-install .install-manual{display:none}.ai-notice{margin-bottom:20px;padding:10px 16px;border:1px solid;border-radius:var(--radius-card);line-height:1.5}.ai-notice-warning{border-color:#fde68a;background:#fffbeb}.ai-notice-blocked{border-color:#fecaca;background:#fef2f2}.ai-limit{max-width:560px;margin:48px auto;text-align:center}.ai-limit h1{margin-bottom:12px}.ai-limit-message{margin-bottom:24px;line-height:1.6}.plan-hero{max-width:880px;margin-bottom:24px;overflow:hidden;background:var(--bg);border:1px solid rgba(46,109,246,.25);border-radius:16px;box-shadow:var(--shadow-card)}.plan-hero-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 28px;background:linear-gradient(120deg, rgba(46, 109, 246, 0.12) 0%, rgba(34, 199, 183, 0.12) 100%);border-bottom:1px solid rgba(46,109,246,.15)}.plan-hero-head h2{margin-bottom:4px;font-family:"Space Grotesk",sans-serif;font-size:26px;font-weight:700;color:var(--blue)}.plan-hero-head p{font-size:15px;color:var(--ink-soft)}.plan-pill{padding:6px 14px;border-radius:var(--radius-pill);background:rgba(46,109,246,.14);color:#1d4fd8;font-size:13px;font-weight:600;white-space:nowrap}.plan-hero-body{display:grid;grid-template-columns:minmax(240px, 300px) 1fr;gap:28px;padding:24px 28px}@media(max-width: 860px){.plan-hero-body{grid-template-columns:1fr}}.plan-hero-price{display:flex;flex-direction:column;gap:10px}.plan-unit{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.plan-unit strong{font-family:"Space Grotesk",sans-serif;font-size:34px;font-weight:700}.plan-unit span{font-size:14px;color:var(--ink-soft)}.plan-select-label{font-size:13px;font-weight:600}.plan-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg);color:var(--ink);font:inherit;font-size:15px}.plan-select:focus{outline:2px solid rgba(46,109,246,.35);border-color:var(--blue)}.plan-total{display:flex;flex-direction:column;gap:2px;margin-top:4px;padding:14px 16px;border-radius:var(--radius-control);background:rgba(34,199,183,.1);border:1px solid rgba(34,199,183,.3)}.plan-total strong{font-family:"Space Grotesk",sans-serif;font-size:28px;font-weight:700;color:#0f766e}.plan-total-label{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:#0f766e}.plan-total-line{font-size:13px;color:var(--ink-soft)}.plan-promo{display:flex;flex-direction:column;gap:2px;align-self:stretch;padding:12px 16px;border-radius:var(--radius-control);background:rgba(124,92,252,.08);border:1px solid rgba(124,92,252,.3);font-size:13.5px;line-height:1.5}.plan-promo strong{color:#5b3fd6;font-size:14.5px}.plan-continue.btn-primary{width:100%;margin-top:6px;justify-content:center;background:var(--blue);border-color:var(--blue)}.plan-continue.btn-primary:hover{background:#1d4fd8;border-color:#1d4fd8}.plan-checks{display:grid;align-content:start;gap:14px;margin:0;padding:4px 0 0;list-style:none;font-size:15px;line-height:1.45}.plan-checks li{position:relative;padding-left:32px}.plan-checks li::before{content:"";position:absolute;top:0;left:0;width:22px;height:22px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/13px no-repeat}.plan-hero-foot{display:flex;align-items:center;gap:12px;margin:0 28px 24px;padding:12px 16px;border-radius:var(--radius-control);background:rgba(124,92,252,.08);color:#5b3fd6;font-size:14px;font-weight:500}.plan-foot-icon{flex:0 0 auto;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.plan-trust{display:grid;grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));gap:16px;max-width:880px;margin:0;padding:0;list-style:none}.plan-trust li{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink-soft)}.plan-trust strong{display:block;color:var(--ink);font-size:13.5px}.plan-trust svg{flex:0 0 auto;width:24px;height:24px;fill:none;stroke:var(--blue);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.checkout-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:18px;align-items:start}.checkout .checkout-grid{margin-bottom:24px}.checkout-lines{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:12px 0 16px;font-size:14px}.checkout-lines dt{color:var(--ink-soft)}.checkout-lines dd{margin:0;font-weight:500}.checkout-card{max-width:none;margin-bottom:0}.checkout-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:22px 28px 26px}.checkout-card-body>p{font-size:14px;line-height:1.6;color:var(--ink-soft)}.checkout-card-body .plan-total{align-self:stretch}.checkout-head-pay{align-items:center;background:linear-gradient(120deg, rgba(124, 92, 252, 0.13) 0%, rgba(46, 109, 246, 0.1) 100%);border-bottom-color:rgba(124,92,252,.18)}.checkout-head-pay h2{color:#5b3fd6}.checkout-lock{width:30px;height:30px;fill:none;stroke:#5b3fd6;stroke-width:1.7;stroke-linecap:round}.checkout-change{font-size:14px;font-weight:600;color:var(--blue);text-decoration:none}.checkout-change:hover{text-decoration:underline}.checkout-placeholder{display:flex;flex-direction:column;gap:4px;align-self:stretch;padding:14px 16px;border:1px dashed rgba(124,92,252,.4);border-radius:var(--radius-control);background:rgba(124,92,252,.06);font-size:14px;line-height:1.5}.checkout-placeholder strong{color:#5b3fd6}.usage-students{margin:0 0 16px;padding:0;list-style:none;font-size:14px}.usage-students li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--border)}.card-form{align-self:stretch}.card-form-frame{display:block;width:100%;height:560px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg)}.card-form-note{margin-top:10px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.card-form-done{margin-top:12px}.card-form-card{max-width:640px}.card-form-card .checkout-change{display:inline-block;margin-top:12px}.card-choices{display:flex;flex-direction:column;gap:8px;align-self:stretch;margin:0;padding:0;border:0}.card-choices legend{margin-bottom:8px;padding:0;font-size:13px;font-weight:600}.card-choice{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-control);cursor:pointer}.card-choice:has(input:checked){border-color:var(--blue);background:rgba(46,109,246,.06)}.card-choice span{display:flex;flex-direction:column;font-size:14.5px}.card-choice small{font-size:13px;color:var(--ink-soft)}.card-list{margin:12px 0 16px;padding:0;list-style:none}.card-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 0;border-top:1px solid var(--border)}.card-list-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:14.5px}.card-list-main>span:not(.pill){color:var(--ink-soft);font-size:13.5px}.card-list-actions{display:flex;flex-wrap:wrap;gap:8px}.card-list-note{margin-bottom:16px;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.admin-billing-over{color:#b42318;font-weight:600}.usage-flag{color:#b45309;font-weight:600}.plan-change{max-width:460px;margin-bottom:16px;padding:14px 16px;background:#eef4ff;border:1px solid #c7d8fd;border-radius:var(--radius-card)}.plan-change-eyebrow{margin:0 0 10px;font-size:12.5px;font-weight:600;color:#1d4fc4}.plan-change-compare{display:grid;grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);align-items:center;gap:10px}.plan-change-compare>svg{color:var(--blue)}.plan-change-plan{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-control)}.plan-change-plan small{display:block;font-size:12px;color:var(--ink-soft)}.plan-change-plan strong{display:block;font-size:15px;font-weight:600;color:var(--ink)}.plan-change-plan.is-new{border:1.5px solid var(--blue)}.plan-change-plan.is-new strong{color:#1d4fc4}.plan-change-due{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid #c7d8fd;font-size:13.5px;color:var(--ink-soft)}.plan-change-due strong{font-size:16px;font-weight:600;color:var(--ink)}.plan-change-note{margin:0;font-size:14px;line-height:1.55;color:var(--ink)}.plan-change-note strong{font-weight:600}.billing-cancel-link{display:inline-block;margin-top:6px;font-size:13.5px;color:var(--ink-soft);text-decoration:underline}.billing-cancel-link:hover{color:var(--ink)}
