html:root{--bg:#080d1b;--surface:#0e192c;--surface-hover:#12203a;--sidebar:#091323;--border:rgba(120,160,220,.16);--text:#f7f9ff;--muted:#a9b5cc;--accent:#7dd3fc;--radius:18px;--space:24px;--sidebar-width:244px;--content-width:1520px;--shadow:0 12px 35px rgba(0,0,0,.18);--motion:160ms ease}
body.app-mode{background:var(--bg);color:var(--text);padding-bottom:28px}
.app-mode>.wrap{width:100%;max-width:none;margin:0;padding:32px 40px 0 calc(var(--sidebar-width) + 40px)}
.app-mode main{width:100%;max-width:var(--content-width);margin:auto;min-width:0}
.app-mode [data-footer]{max-width:var(--content-width);margin:0 auto}.app-mode footer{font-size:12px;padding:28px 0;opacity:.7}
.app-mode .page-head,.app-mode .course-hero{padding-top:24px}.app-mode h1{font-size:clamp(30px,3.3vw,46px);letter-spacing:-1.5px;line-height:1.15}
.app-mode .lead{font-size:16px;line-height:1.6}.app-mode main>section{margin-top:26px;margin-bottom:26px}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--sidebar);border-right:1px solid var(--border);padding:28px 18px;display:flex;flex-direction:column;z-index:60;overflow-y:auto;gap:24px}
.app-sidebar .brand{padding:0 10px;font-size:20px}.app-sidebar .logo{width:36px;height:36px;font-size:24px}
.app-sidebar{scrollbar-width:thin;scrollbar-color:#283b55 var(--sidebar)}
.app-nav-group{display:grid;gap:4px}.app-nav-group>span{color:var(--muted);font-size:10px;letter-spacing:1.4px;padding:8px 14px}
.app-sidebar a:not(.brand),.app-sidebar button{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:var(--muted);font-size:14px;text-decoration:none;background:none;border:0;text-align:left;min-height:44px}
.app-sidebar a:hover,.app-sidebar a[aria-current=page]{background:#152943;color:var(--text)}.app-sidebar a[aria-current=page]{box-shadow:inset 2px 0 var(--accent)}
.app-sidebar svg,.app-bottom svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;flex-shrink:0}.app-sidebar .app-account{margin-top:auto;border-top:1px solid var(--border);padding-top:12px}
.app-bottom{display:none}.app-topbar{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin:0 auto 32px;width:100%;max-width:var(--content-width)}
.app-topbar button,.app-topbar select{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;min-height:44px}.app-topbar button{min-width:200px;text-align:left}.app-topbar kbd{float:right;font-size:12px;margin-left:20px}.app-topbar select{max-width:300px;min-width:0}
.v2-greeting{display:flex;align-items:start;justify-content:space-between;gap:18px;margin:26px 0 34px}.v2-greeting h1{margin:0 0 10px}.v2-greeting p{margin:0;color:var(--muted)}
.app-mode main>.v2-greeting h1,.app-mode main>.page-head h1,.app-mode main>.page-head h2,.app-mode main>.section-head h2{background:linear-gradient(100deg,var(--accent),var(--accent2));color:transparent;background-clip:text;width:max-content;max-width:100%}
.v2-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;min-width:0;box-shadow:var(--shadow)}.v2-panel h2{font-size:20px;letter-spacing:-.4px;margin:0 0 16px}.v2-panel h3{margin:8px 0;font-size:18px}.v2-panel p{color:var(--muted);line-height:1.6}
.v2-priority{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;background:linear-gradient(110deg,#12263b,var(--surface) 75%);border-color:rgba(125,211,252,.25);padding:34px}.v2-priority h2{font-size:clamp(24px,2.5vw,34px);margin:10px 0}.v2-priority .eyebrow{font-size:11px;letter-spacing:1px}.v2-priority p{max-width:580px;margin:8px 0}
.v2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.v2-courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.v2-course{display:flex;flex-direction:column;gap:10px}.v2-course .btn{margin-top:auto;align-self:start}.v2-course small{color:var(--muted)}.v2-course strong{font-size:19px}.v2-course .mastery-track{height:5px;background:#253148;border-radius:5px;overflow:hidden}.v2-course .mastery-track span{display:block;background:var(--accent);height:100%}
.v2-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 16px}.v2-section-head h2{font-size:23px;margin:0}.v2-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border);padding:16px 0;text-decoration:none;color:var(--text)}.v2-row:last-child{border-bottom:0}.v2-row small{display:block;color:var(--muted);margin-top:5px;line-height:1.5}.v2-row>span:first-child{min-width:0}.v2-row strong{overflow-wrap:anywhere}.v2-row .btn{flex-shrink:0}
.v2-status{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.v2-notice{padding:14px 18px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin:16px 0;font-size:14px;line-height:1.6}.v2-notice a{color:var(--accent)}
.v2-review-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 22px}.v2-review-stats article{padding:20px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface);text-align:center}.v2-review-stats strong,.v2-review-stats span{display:block}.v2-review-stats strong{font-size:28px;color:var(--accent)}.v2-review-stats span{margin-top:5px;color:var(--muted);font-size:12px}.v2-review-site{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:20px}.v2-review-site p{margin-bottom:0}.v2-help-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.v2-help-intro{background:linear-gradient(110deg,rgba(125,211,252,.12),rgba(167,139,250,.08),var(--surface))}.v2-panel details{padding:13px 0;border-bottom:1px solid var(--border)}.v2-panel details:last-child{border-bottom:0}.v2-panel summary{cursor:pointer;font-weight:800}.v2-panel kbd{padding:3px 7px;border:1px solid var(--border);border-radius:6px;background:#091225;color:var(--accent)}
.v2-settings{max-width:760px}.v2-settings fieldset{display:grid;gap:14px;margin:0;padding:20px;border:1px solid var(--border);border-radius:14px}.v2-settings legend{padding:0 7px;color:var(--accent);font-weight:850}.v2-settings-links{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.v2-settings-links a{color:var(--accent)}
.v2-auth{max-width:470px;margin:48px auto}.v2-auth .brand{margin-bottom:28px}.v2-auth h1{font-size:32px;line-height:1.2}.v2-form{display:grid;gap:18px}.v2-form label{display:grid;gap:8px;color:var(--muted);font-size:14px}.v2-form input,.v2-form select,.v2-form textarea,.v2-search-input{box-sizing:border-box;min-width:0;width:100%;padding:14px 16px;border-radius:11px;border:1px solid var(--border);color:var(--text);background:#0a1222;font:inherit}.v2-form input[type=checkbox]{width:20px;height:20px}.v2-form .check{display:flex;align-items:center}.v2-form button{min-height:46px}.v2-form [role=status]{margin:0;line-height:1.5}.v2-auth-links{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0}.v2-auth-links a{color:var(--accent);font-size:14px}
.v2-dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:26px;width:min(620px,calc(100vw - 36px));max-height:85dvh;overflow:auto;box-shadow:var(--shadow)}.v2-dialog::backdrop{background:rgba(0,4,12,.78)}.v2-dialog-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.v2-dialog-head h2{font-size:22px;margin:0}.v2-dialog-head button{background:none;color:var(--text);border:0;font-size:26px;min-width:44px;min-height:44px}.v2-dialog .v2-row{display:block}.v2-dialog .actions{flex-wrap:wrap}
.v2-session{max-width:820px;margin:20px auto}.v2-session .session-prompt{font-size:clamp(22px,2.6vw,30px);line-height:1.45;margin:24px 0}.v2-choices{display:grid;gap:12px}.v2-choices button{padding:18px;text-align:left;white-space:normal;border:1px solid var(--border);border-radius:12px;background:#12203a;color:var(--text);font:inherit;min-height:54px}.v2-choices button:hover:not(:disabled){border-color:var(--accent)}.v2-choices button:disabled{opacity:.8}.v2-answer{margin-top:20px;border-left:3px solid var(--accent);padding:4px 18px;line-height:1.65}.v2-session .actions{flex-wrap:wrap}.v2-confidence{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.v2-confidence button[aria-pressed=true]{border-color:var(--accent);background:#214567}.v2-recap-number{font-size:52px;font-weight:800;letter-spacing:-2px}
.v2-focus{max-width:700px;margin:auto}.v2-focus .timer{font-size:clamp(60px,10vw,100px);text-align:center;margin:32px 0}.v2-focus .focus-presets{display:flex;flex-wrap:wrap;gap:10px}
.v2-public-hero{max-width:1000px;padding:70px 0 45px}.v2-public-hero h1{font-size:clamp(42px,6vw,76px);line-height:1.05;letter-spacing:-3px}.v2-public-hero .lead{max-width:620px}.v2-public-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:40px 0}.v2-public-features h2{font-size:20px}.v2-public-preview{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto}.v2-footer-cta{margin:60px 0}
.v2-review-invite{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:62px 0;padding:34px;border:1px solid rgba(125,211,252,.24);border-radius:var(--radius);background:linear-gradient(110deg,rgba(125,211,252,.1),rgba(167,139,250,.08),var(--surface))}.v2-review-invite h2{margin:8px 0}.v2-review-invite p{margin:0;max-width:680px}
.app-mode .ssai-toggle{bottom:24px}.app-mode .ssai-panel{max-height:calc(100dvh - 100px)}
body[data-reduced-motion=true] *,body[data-reduced-motion=true] *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body[data-high-contrast=true]{--bg:#030712;--surface:#101d33;--muted:#d5deeb;--border:rgba(190,220,255,.34)}body[data-high-contrast=true] .app-sidebar{background:#050d19}body[data-large-text=true]{font-size:112.5%}body[data-large-text=true] .app-sidebar a:not(.brand),body[data-large-text=true] .app-sidebar button{font-size:15px}body[data-readable-font=true]{font-family:Verdana,Arial,sans-serif}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.app-mode [hidden],.v2-dialog [hidden]{display:none!important}
@media(max-width:1200px){.v2-courses{grid-template-columns:repeat(2,minmax(0,1fr))}.app-mode>.wrap{padding:24px 24px 0 calc(var(--sidebar-width) + 24px)}}
@media(max-width:1024px){.app-sidebar{display:none}.app-mode>.wrap{padding:24px 24px 90px}.app-bottom{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--sidebar);border-top:1px solid var(--border);padding:9px 6px max(9px,env(safe-area-inset-bottom));justify-content:space-around}.app-bottom a,.app-bottom button{display:flex;align-items:center;flex-direction:column;gap:5px;text-decoration:none;color:var(--muted);background:none;border:0;font:inherit;font-size:11px;min-width:54px;min-height:46px;justify-content:center;border-radius:8px}.app-bottom [aria-current=page]{color:var(--accent);background:#152943}.app-mode .ssai-toggle{bottom:86px}.app-mode .ssai-panel{bottom:145px;max-height:calc(100dvh - 170px)}.app-topbar{margin-bottom:22px}.v2-public-features{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-review-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.app-mode>.wrap{padding:18px 16px 90px}.v2-grid,.v2-courses,.v2-priority{grid-template-columns:1fr}.v2-panel{padding:20px}.v2-priority{padding:24px}.v2-priority .btn{width:100%;text-align:center}.v2-greeting{display:block}.v2-greeting .btn{width:100%;margin-top:18px}.app-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:26px}.app-topbar button{grid-column:1/-1;width:100%;min-width:0}.app-topbar kbd{display:none}.app-topbar select{width:100%;max-width:none;min-width:0}.app-topbar .v2-status{align-self:center;justify-self:end}.v2-topbar,.v2-row{gap:10px}.v2-section-head{align-items:start;flex-wrap:wrap}.v2-auth{margin:28px auto}.v2-public-hero{padding-top:38px}.v2-public-hero h1{letter-spacing:-1.8px}.v2-public-features{grid-template-columns:1fr}.v2-form .actions{flex-wrap:wrap}.v2-row .btn{padding:10px;font-size:12px}.v2-dialog{padding:20px}.v2-course{overflow:hidden}.v2-course strong,.v2-course small,.v2-course p,.v2-row strong,.v2-row small{overflow-wrap:anywhere}.app-mode .course-crumbs{flex-wrap:wrap}.app-mode .choices,.app-mode .course-hero{min-width:0}.app-mode h1,.v2-panel h2{overflow-wrap:anywhere}.v2-review-stats{grid-template-columns:1fr 1fr}.v2-review-site,.v2-review-invite{align-items:flex-start;flex-direction:column}.v2-settings fieldset{padding:16px}}
@media(max-width:380px){.app-mode>.wrap{padding-inline:12px}.app-bottom a,.app-bottom button{flex:1;min-width:0;font-size:10px}.v2-panel{padding:17px}.v2-row{align-items:flex-start;flex-wrap:wrap}.v2-row>.btn{width:100%}.setup-course{grid-template-columns:36px minmax(0,1fr) 28px;gap:8px;padding:10px}.setup-course .course-icon{width:36px;height:36px}.setup-course strong,.setup-course small{overflow-wrap:anywhere}.setup-course small{font-size:12px}.setup-selection-summary{gap:10px;flex-wrap:wrap}.setup-actions{gap:8px;padding-inline:14px}.setup-actions .btn{min-width:0;padding-inline:10px;font-size:12px}}

/* Keep page-level grids from using heading or button content as a minimum width. */
.app-mode main>*,.app-mode main>.page-head>*,.app-topbar>*{min-width:0}
@media(max-width:600px){.app-mode main>.page-head h1,.app-mode main>.page-head h2,.app-mode main>.section-head h2{width:auto}.app-mode .page-head .actions{gap:9px}.app-mode .page-head .actions .btn{flex:1 1 150px;white-space:normal;text-align:center}}
