:root{--bg:#07070a;--bg-rgb:7,7,10;--panel-rgb:20,19,27;--rail-rgb:7,7,11;--text:#f6f1f7;--muted:#99919f;--line:rgba(204,185,217,.16);--accent:#a44bed;--accent-rgb:164,75,237;--focus:#d093ff;--surface:rgba(25,22,31,.72);--glass:.25;--shadow:0 24px 72px rgba(0,0,0,.34);--reward:#ff7017;--reward2:#ffad35;--good:#43d49a;--bad:#f2697d;--warn:#ffc86c;color-scheme:dark}
:root[data-theme="warm-graphite"]{--bg:#0b0907;--bg-rgb:11,9,7;--panel-rgb:29,23,17;--rail-rgb:13,10,8;--text:#fff5e8;--muted:#b1a08f;--line:rgba(243,192,132,.18);--accent:#e99131;--accent-rgb:233,145,49;--focus:#ffc171}
:root[data-theme="emerald-smoke"]{--bg:#06100d;--bg-rgb:6,16,13;--panel-rgb:13,31,25;--rail-rgb:5,14,11;--text:#ecfff7;--muted:#88a99b;--line:rgba(121,215,174,.16);--accent:#42c58a;--accent-rgb:66,197,138;--focus:#7cf2ba}
:root[data-theme="rose-charcoal"]{--bg:#0e080b;--bg-rgb:14,8,11;--panel-rgb:33,18,25;--rail-rgb:15,8,12;--text:#fff2f6;--muted:#ad929c;--line:rgba(235,157,184,.17);--accent:#e25588;--accent-rgb:226,85,136;--focus:#ff92b9}
:root[data-theme="teal-frost"]{--bg:#061013;--bg-rgb:6,16,19;--panel-rgb:12,29,34;--rail-rgb:5,14,17;--text:#effcff;--muted:#8ba7ad;--line:rgba(131,213,226,.17);--accent:#31b7cf;--accent-rgb:49,183,207;--focus:#7be8f5}
:root[data-theme="light-frosted"]{--bg:#e8e1ec;--bg-rgb:232,225,236;--panel-rgb:255,255,255;--rail-rgb:245,239,248;--text:#241d29;--muted:#746b79;--line:rgba(67,45,79,.15);--accent:#8d3fc8;--accent-rgb:141,63,200;--focus:#6d219e;color-scheme:light}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;line-height:1.45}button,input,select{font:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 0 0,rgba(var(--accent-rgb),.22),transparent 27%),radial-gradient(circle at 88% 44%,rgba(var(--accent-rgb),.09),transparent 34%)}.hidden{display:none!important}.glass,.panel,.metric,.question-card,.today-card{background:linear-gradient(145deg,rgba(var(--panel-rgb),var(--glass)),rgba(var(--bg-rgb),.82));border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(22px) saturate(125%)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.auth-gate{position:relative;min-height:100%;display:grid;place-items:center;padding:24px}.auth-card{width:min(560px,100%);border-radius:28px;padding:32px}.brand-lock{display:flex;align-items:center;gap:7px;font-size:14px;margin-bottom:28px}.brand-lock span,.rail-brand span{color:var(--accent)}.brand-lock em{font-style:normal;font-size:9px;letter-spacing:.12em;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted)}.auth-card h1{font-size:clamp(28px,5vw,42px);line-height:1.06;letter-spacing:-.035em;margin:10px 0 14px}.auth-card p{color:var(--muted)}.auth-card form{display:grid;gap:14px;margin:20px 0}.auth-card label,.inline-invite label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.auth-card input,.inline-invite input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(var(--bg-rgb),.68)}.auth-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:22px;padding:5px;border:1px solid var(--line);border-radius:14px;background:rgba(var(--bg-rgb),.42)}.auth-tab,.text-button{border:0;background:transparent;color:var(--muted);cursor:pointer}.auth-tab{padding:10px;border-radius:9px;font-weight:800}.auth-tab.active{color:var(--text);background:rgba(var(--accent-rgb),.16)}.text-button{padding:4px;text-align:left;text-decoration:underline;text-underline-offset:3px}.auth-panel small{color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text)}.status-message{min-height:22px;color:var(--warn)!important}.status-message.error{color:var(--bad)!important}
.btn{border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:11px 15px;cursor:pointer;font-weight:750}.btn:hover{border-color:var(--accent);transform:translateY(-1px)}.btn.primary{border-color:rgba(var(--accent-rgb),.7);background:linear-gradient(135deg,rgba(var(--accent-rgb),.9),rgba(var(--accent-rgb),.55));color:white}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.app{position:relative;height:100%;display:grid;grid-template-columns:92px minmax(0,1fr)}.rail{padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:9px;border-right:1px solid var(--line);background:rgba(var(--rail-rgb),.82);backdrop-filter:blur(22px)}.rail-brand{display:grid;place-items:center;height:50px;margin-bottom:16px}.nav{width:62px;min-height:58px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--muted);display:grid;place-items:center;gap:1px;cursor:pointer}.nav span{font-size:20px}.nav small{font-size:9px}.nav:hover,.nav.active{background:rgba(var(--panel-rgb),.84);border-color:var(--line);color:var(--accent)}.rail-spacer{flex:1}.mini-flame{display:grid;place-items:center;font-size:18px;gap:2px}.mini-flame b{font-size:11px}.shell{min-width:0;height:100%;display:grid;grid-template-rows:74px minmax(0,1fr)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(var(--bg-rgb),.72);backdrop-filter:blur(20px)}.topbar h1{font-size:19px;margin:3px 0 0}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pill{border:1px solid var(--line);border-radius:999px;background:rgba(var(--panel-rgb),.66);padding:7px 10px;font-size:10px;color:var(--muted)}.pill.synced{color:var(--good)}.pill.offline{color:var(--warn)}.pill.error{color:var(--bad)}.workspace{overflow:auto;padding:24px}.page{max-width:1320px;margin:0 auto;display:grid;gap:18px}.hero{display:flex;justify-content:space-between;align-items:end;gap:20px}.hero h2{font-size:clamp(26px,4vw,42px);line-height:1.05;letter-spacing:-.035em;margin:5px 0}.hero p{color:var(--muted);margin:0}.metrics{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px}.metric{border-radius:16px;padding:16px;box-shadow:none}.metric strong{display:block;font-size:28px;font-variant-numeric:tabular-nums}.metric small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.72fr);gap:16px}.panel{border-radius:20px;padding:20px}.panel h3{margin:0 0 14px}.study-pulse{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.pulse-day{display:grid;gap:6px;text-align:center;font-size:9px;color:var(--muted)}.pulse-day i{height:44px;border-radius:8px;background:rgba(var(--accent-rgb),calc(.10 + var(--level)*.14));border:1px solid rgba(var(--accent-rgb),calc(.12 + var(--level)*.12))}.activity-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.activity-row:last-child{border:0}.activity-row i{width:7px;height:7px;border-radius:50%;background:var(--good);margin-top:5px}.activity-row small{color:var(--muted)}.today-list{display:grid;gap:10px}.today-card{border-radius:16px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:none}.today-card .number{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(var(--accent-rgb),.14);color:var(--accent);font-weight:900}.today-card b{display:block}.today-card small{color:var(--muted)}.today-card .btn{margin-left:auto}
.question-shell{max-width:920px;margin:0 auto;display:grid;gap:14px}.review-head{display:flex;align-items:center;justify-content:space-between}.question-card{position:relative;border-radius:22px;overflow:hidden;isolation:isolate}.question-meta{display:flex;justify-content:space-between;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.stem{padding:24px 24px 18px;font-size:18px;line-height:1.65;font-weight:620}.choices{display:grid;gap:10px;padding:0 24px 22px}.choice{display:grid;grid-template-columns:28px minmax(0,1fr) 30px;gap:9px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;background:rgba(var(--bg-rgb),.52);padding:14px;cursor:pointer}.choice.selected{border-color:var(--accent);background:rgba(var(--accent-rgb),.12)}.choice.crossed{border-color:var(--line);background:rgba(var(--bg-rgb),.52);box-shadow:none}.choice.correct{border-color:var(--good);background:rgba(67,212,154,.10)}.choice.wrong{border-color:var(--bad);background:rgba(242,105,125,.10)}.choice.crossed .copy{text-decoration:line-through;opacity:.42}.choice .cross{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:20px}@media(hover:hover) and (pointer:fine){.choice:hover:not(.crossed):not(.correct):not(.wrong){border-color:var(--accent);background:rgba(var(--accent-rgb),.12)}}.answer-panel{margin:0 24px 22px;border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(var(--bg-rgb),.5)}.answer-panel p{white-space:pre-wrap;color:var(--muted);max-height:250px;overflow:auto}.review-actions{display:flex;gap:9px;flex-wrap:wrap;padding:0 24px 24px}.rating{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:10px 13px;cursor:pointer}.rating.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.16)}.review-actions .save{margin-left:auto}.session-combo{font-size:12px;color:var(--muted)}.session-combo b{color:var(--reward);font-size:18px}.empty{padding:28px;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.settings-row span{color:var(--muted)}select{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 11px}.audio-diagnostic{display:grid;gap:5px;margin-top:12px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(var(--bg-rgb),.34);font-size:9px;color:var(--muted)}.audio-diagnostic span{display:flex;justify-content:space-between;gap:8px}.audio-diagnostic b{color:var(--text);font-weight:650;text-align:right;overflow-wrap:anywhere}.toast{position:fixed;right:24px;bottom:24px;z-index:50;max-width:370px;border:1px solid var(--line);border-radius:13px;background:rgba(var(--panel-rgb),.96);padding:13px 16px;box-shadow:var(--shadow)}.reward-stage{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;z-index:60;opacity:0}.reward-stage.active{animation:reward-fade 1.6s ease both}.reward-popup{padding:18px 26px;border:1px solid rgba(255,173,53,.55);border-radius:20px;background:rgba(22,12,8,.9);box-shadow:0 0 72px rgba(255,112,23,.4);text-align:center}.reward-popup strong{display:block;color:var(--reward2);font-size:27px}.reward-popup span{color:#fff0d8;font-size:11px;text-transform:uppercase;letter-spacing:.15em}@keyframes reward-fade{0%{opacity:0;transform:scale(.86)}18%,72%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.04)}}
body[data-review-rewards="true"] .question-card[data-level="1"]{border-color:rgba(255,112,23,.35)}body[data-review-rewards="true"] .question-card[data-level="2"]{border-color:rgba(255,112,23,.58);box-shadow:0 0 28px rgba(255,112,23,.15)}body[data-review-rewards="true"] .question-card[data-level="3"]{border-color:rgba(255,112,23,.78);box-shadow:0 0 42px rgba(255,112,23,.22)}body[data-review-rewards="true"] .question-card[data-level="4"],body[data-review-rewards="true"] .question-card[data-level="5"]{border-color:var(--reward2);box-shadow:0 0 62px rgba(255,112,23,.31)}
.invite-admin{grid-column:1/-1}.inline-invite{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.invite-created{display:grid;gap:9px;margin:16px 0;padding:14px;border:1px solid rgba(var(--accent-rgb),.45);border-radius:14px;background:rgba(var(--accent-rgb),.10)}.invite-created code{word-break:break-all;font-size:11px}.invite-created small,.invite-row small{display:block;color:var(--muted)}.invite-list{display:grid;margin-top:14px}.invite-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.mobile-settings{display:none;border:1px solid var(--line);border-radius:11px;background:rgba(var(--panel-rgb),.72);color:var(--text);padding:7px 9px;cursor:pointer;font-weight:800;align-items:center;gap:5px}.mobile-settings small{font-size:10px}
@media(max-width:980px){.metrics{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}}
@media(max-width:720px){.app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 72px}.rail{grid-row:2;flex-direction:row;border-right:0;border-top:1px solid var(--line);padding:7px 9px;overflow:auto}.rail-brand,.rail-spacer,.mini-flame{display:none}.nav{flex:1;min-width:62px;min-height:56px}.shell{grid-row:1}.topbar{padding:0 14px;gap:8px}.topbar>div:first-child{min-width:0}.topbar h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search{display:none}.mobile-settings{display:inline-flex;width:44px;height:44px;min-width:44px;justify-content:center;padding:0;border-radius:999px;box-shadow:0 0 18px rgba(var(--accent-rgb),.10)}.mobile-settings small{display:none}.top-actions .pill:not(#syncPill){display:none}.workspace{padding:14px}.metrics{grid-template-columns:1fr 1fr}.hero{align-items:start;flex-direction:column}.stem{padding:20px;font-size:16px}.choices,.review-actions{padding-left:16px;padding-right:16px}.question-meta{flex-direction:column}.review-actions .save{margin-left:0;width:100%}.auth-card{padding:24px}.inline-invite{grid-template-columns:1fr}.invite-row{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
.pulse-day i{background:rgba(var(--accent-rgb),.10);border-color:rgba(var(--accent-rgb),.12)}
.pulse-day i[data-intensity="1"]{background:rgba(var(--accent-rgb),.24);border-color:rgba(var(--accent-rgb),.24)}
.pulse-day i[data-intensity="2"]{background:rgba(var(--accent-rgb),.38);border-color:rgba(var(--accent-rgb),.36)}
.pulse-day i[data-intensity="3"]{background:rgba(var(--accent-rgb),.52);border-color:rgba(var(--accent-rgb),.48)}
.pulse-day i[data-intensity="4"]{background:rgba(var(--accent-rgb),.66);border-color:rgba(var(--accent-rgb),.60)}

/* v2.2 premium-shell restoration: directly follows the locked v2.1 visual grammar. */
.app{grid-template-columns:236px minmax(0,1fr)}
.rail{align-items:stretch;padding:18px 14px 14px;gap:10px;min-width:0;overflow:hidden;background:linear-gradient(180deg,rgba(var(--rail-rgb),.94),rgba(var(--rail-rgb),.76));box-shadow:inset -1px 0 rgba(255,255,255,.025)}
.rail-brand{display:flex;place-items:unset;align-items:center;gap:7px;height:44px;margin:0 4px 10px;font-size:16px;white-space:nowrap}.rail-brand strong{font-weight:650}.rail-brand em{margin-left:auto;font-size:8px;font-style:normal;letter-spacing:.1em;color:var(--reward2)}
.rail-nav{display:grid;gap:3px;overflow:auto;min-height:0;padding-right:3px;scrollbar-width:none}.rail-nav::-webkit-scrollbar{display:none}
.nav{width:100%;min-height:40px;display:grid;grid-template-columns:27px minmax(0,1fr);place-items:center start;gap:8px;padding:0 11px;border-radius:11px;text-align:left}.nav span{width:27px;text-align:center;font-size:15px}.nav small{font-size:11px;font-weight:620;letter-spacing:.01em}.nav:hover,.nav.active{background:linear-gradient(90deg,rgba(var(--accent-rgb),.16),rgba(var(--panel-rgb),.62));box-shadow:inset 0 1px rgba(255,255,255,.035)}
.rail-profile{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:4px;padding:12px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(var(--panel-rgb),.82),rgba(var(--bg-rgb),.7))}.rail-profile>div:first-child{min-width:0}.rail-profile b,.rail-profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-profile b{font-size:11px}.rail-profile small{font-size:8px;color:var(--muted);margin-top:2px}.mini-flame{font-size:16px}.mini-flame b{color:var(--reward2)}
.topbar{gap:18px}.global-search{width:min(360px,32vw);display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;padding:8px 12px;background:rgba(var(--panel-rgb),.46);color:var(--muted)}.global-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:11px}.global-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.12)}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title h3{margin:0}.panel-title>span,.panel-title .text-button{font-size:9px;color:var(--muted);text-decoration:none}
.premium-dashboard{max-width:1460px}.dashboard-hero h2{font-size:clamp(25px,3vw,36px)}.metric{position:relative;overflow:hidden}.metric:after{content:"";position:absolute;inset:auto -24px -34px auto;width:74px;height:74px;border-radius:50%;background:rgba(var(--accent-rgb),.08);filter:blur(3px)}.metric.accent{border-color:rgba(var(--accent-rgb),.46);background:linear-gradient(145deg,rgba(var(--accent-rgb),.2),rgba(var(--bg-rgb),.82))}.metric.danger strong{color:var(--bad)}.metric.good strong{color:#8bd35d}.metric.reward strong{color:var(--reward2)}
.premium-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.62fr);gap:16px}.dashboard-main,.dashboard-side{display:grid;align-content:start;gap:16px}.analytics-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.weekly-progress{height:114px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:8px;padding-top:4px}.progress-day{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto auto;place-items:center;gap:3px}.progress-track{height:100%;width:15px;display:flex;align-items:end;border-radius:999px;background:rgba(var(--accent-rgb),.07);overflow:hidden}.progress-track i{display:block;width:100%;min-height:6%;height:calc(18% + attr(data-intensity number)*20%);border-radius:999px;background:linear-gradient(var(--accent),rgba(var(--accent-rgb),.28));box-shadow:0 0 12px rgba(var(--accent-rgb),.3)}.progress-track i[data-intensity="0"]{height:6%;opacity:.35}.progress-track i[data-intensity="1"]{height:24%}.progress-track i[data-intensity="2"]{height:46%}.progress-track i[data-intensity="3"]{height:70%}.progress-track i[data-intensity="4"]{height:94%}.progress-day b{font-size:10px}.progress-day small{font-size:8px;color:var(--muted)}
.suggestion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.suggestion-card{min-height:148px;display:flex;flex-direction:column;padding:14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,rgba(var(--accent-rgb),.09),rgba(var(--bg-rgb),.55))}.suggestion-card.red{background:linear-gradient(145deg,rgba(242,105,125,.1),rgba(var(--bg-rgb),.55))}.suggestion-card.green{background:linear-gradient(145deg,rgba(67,212,154,.09),rgba(var(--bg-rgb),.55))}.suggestion-card>div{display:flex;align-items:center;gap:8px}.suggestion-card p{color:var(--muted);font-size:10px;line-height:1.5}.suggestion-card .btn{margin-top:auto;align-self:start;padding:7px 12px;font-size:10px}.suggestion-count{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:rgba(var(--accent-rgb),.16);color:var(--accent);font-weight:850}
.focus-card{position:relative;overflow:hidden;border-color:rgba(255,112,23,.25);box-shadow:inset 0 0 55px rgba(255,112,23,.035),0 0 32px rgba(255,112,23,.06)}.focus-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 100% 0,rgba(255,112,23,.14),transparent 34%)}.focus-orbit{position:relative;width:116px;height:116px;margin:10px auto 16px;display:grid;place-items:center;align-content:center;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.48);background:radial-gradient(circle,rgba(var(--accent-rgb),.2),transparent 67%);box-shadow:0 0 30px rgba(var(--accent-rgb),.15)}.focus-orbit:after{content:"";position:absolute;inset:8px;border:1px dashed rgba(255,173,53,.3);border-radius:50%}.focus-orbit strong{font-size:37px;line-height:1}.focus-orbit small{color:var(--muted);font-size:9px}.focus-card>p{color:var(--muted);font-size:11px;line-height:1.6}.focus-card>.btn{width:100%}
.flame-road{display:flex;justify-content:space-between;gap:6px;margin-top:24px;padding-top:1px;border-top:2px solid rgba(255,112,23,.2)}.flame-road span{display:grid;place-items:center;transform:translateY(-15px);font-size:19px;filter:drop-shadow(0 0 8px rgba(255,112,23,.58))}.flame-road b{font-size:8px;color:var(--reward2)}.review-flames{margin:24px 24px 5px}.quick-actions{display:grid;gap:6px}.quick-actions h3{margin-bottom:8px}.quick-actions button{border:0;background:transparent;color:var(--muted);padding:7px;text-align:left;cursor:pointer;border-radius:8px}.quick-actions button:hover{background:rgba(var(--accent-rgb),.1);color:var(--text)}
.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.achievement-grid.full{grid-template-columns:repeat(4,minmax(160px,1fr))}.achievement-card{min-height:112px;display:grid;place-items:center;align-content:center;text-align:center;gap:5px;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(var(--bg-rgb),.42)}.achievement-card>span{font-size:33px;color:var(--muted)}.achievement-card.earned>span{color:#8bd35d;text-shadow:0 0 17px currentColor}.achievement-card.in_progress>span{color:var(--accent);text-shadow:0 0 17px rgba(var(--accent-rgb),.5)}.achievement-card b{font-size:11px}.achievement-card p,.achievement-card small{margin:0;color:var(--muted);font-size:9px}
.compact-metrics .metric strong{font-size:23px}.local-notice{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px;border:1px solid rgba(var(--accent-rgb),.32);border-radius:17px;background:linear-gradient(100deg,rgba(var(--accent-rgb),.12),rgba(var(--panel-rgb),.52))}.local-notice>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(var(--accent-rgb),.16);color:var(--accent);font-size:20px}.local-notice p{margin:3px 0 0;color:var(--muted);font-size:11px}.local-notice.compact{margin-top:2px}.local-notice.prominent{min-height:116px}
.lecture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lecture-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.lecture-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(var(--panel-rgb),.7),rgba(var(--bg-rgb),.72))}.lecture-card.active{border-color:rgba(var(--accent-rgb),.46);box-shadow:inset 3px 0 var(--accent)}.lecture-index{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:rgba(var(--accent-rgb),.12);color:var(--accent);font-weight:850}.lecture-card h3{margin:2px 0;font-size:13px}.lecture-card p{margin:0;color:var(--muted);font-size:9px}.lecture-status{display:grid;justify-items:end;gap:6px}.lecture-status small{font-size:9px;color:var(--muted)}.badge{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:8px;letter-spacing:.04em;text-transform:uppercase}.badge.green{color:var(--good);border-color:rgba(67,212,154,.34)}.badge.amber{color:var(--warn);border-color:rgba(255,200,108,.34)}.badge.yellow{color:var(--warn)}.badge.red{color:var(--bad)}
.segmented,.mode-switch{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid var(--line);border-radius:13px;background:rgba(var(--panel-rgb),.5);width:max-content;max-width:100%;overflow:auto}.segmented button,.mode-switch button{border:0;border-radius:9px;background:transparent;color:var(--muted);padding:8px 12px;cursor:pointer;white-space:nowrap}.segmented button.active,.mode-switch button.active{background:rgba(var(--accent-rgb),.16);color:var(--text)}.mode-switch span{margin-left:8px;padding-right:8px;color:var(--muted);font-size:9px;white-space:nowrap}.mode-switch small{display:block;font-size:7px}.incorrect-list,.question-list{display:grid;gap:10px}.incorrect-card,.question-row{padding:17px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(var(--panel-rgb),.7),rgba(var(--bg-rgb),.7))}.incorrect-card>div{display:flex;justify-content:space-between;gap:12px}.incorrect-card p,.question-row p{color:var(--text);line-height:1.55}.incorrect-card small,.question-row small{color:var(--muted)}.incorrect-card blockquote{margin:12px 0;padding:10px 12px;border-left:2px solid var(--accent);background:rgba(var(--accent-rgb),.08);color:var(--muted)}.incorrect-card .btn{margin-top:13px}.browser-search{display:flex;align-items:center;gap:8px;padding:12px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(var(--panel-rgb),.54)}.browser-search input{min-width:0;width:100%;border:0;outline:0;background:transparent}.question-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px}.question-row p{margin:6px 0}.question-state{display:grid;grid-template-columns:auto auto;align-content:start;justify-items:end;gap:7px;min-width:165px}.question-state b,.question-state small,.question-state .btn{grid-column:1/-1}.question-state .btn{padding:7px 12px;font-size:10px}
.local-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.local-feature-grid .panel{min-height:165px}.local-feature-grid p{color:var(--muted);font-size:11px;line-height:1.6}.feature-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:15px;border-radius:12px;background:rgba(var(--accent-rgb),.14);color:var(--accent);font-size:18px}.quick-links{display:flex;gap:9px;flex-wrap:wrap}.preview-lab{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(280px,.8fr) minmax(340px,1.3fr);align-items:center;gap:18px}.preview-lab p{color:var(--muted);font-size:11px}.preview-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.preview-levels button{border:1px solid var(--line);border-radius:9px;background:rgba(var(--bg-rgb),.46);padding:8px;cursor:pointer}.preview-levels button.active{border-color:var(--reward2);color:var(--reward2);box-shadow:0 0 15px rgba(255,112,23,.18)}.preview-levels b,.preview-levels small{display:block}.preview-levels small{font-size:7px;color:var(--muted)}.preview-card{padding:0 14px 7px}.preview-card .stem{padding:18px 8px;font-size:13px}.review-actions.lower{padding:0}.activity-row i.bad{background:var(--bad)}

@media(max-width:1180px){.app{grid-template-columns:82px minmax(0,1fr)}.rail-brand strong,.rail-brand em,.nav small,.rail-profile>div:first-child{display:none}.rail-brand{justify-content:center}.nav{grid-template-columns:1fr;place-items:center;padding:0}.rail-profile{grid-template-columns:1fr}.global-search{display:none}.premium-dashboard-grid{grid-template-columns:1fr}.dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-card{grid-row:span 2}.settings-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.analytics-pair,.lecture-grid,.lecture-grid.wide,.local-feature-grid,.preview-lab{grid-template-columns:1fr}.suggestion-grid{grid-template-columns:1fr 1fr}.achievement-grid,.achievement-grid.full{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-side{grid-template-columns:1fr}.focus-card{grid-row:auto}}
@media(max-width:720px){.app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 72px}.rail{grid-row:2;display:block;padding:7px 8px;overflow:hidden}.rail-nav{height:58px;display:flex;overflow-x:auto;overflow-y:hidden;gap:5px}.nav{display:grid;grid-template-columns:1fr;place-items:center;min-width:68px;min-height:54px;padding:3px}.nav small{display:block;font-size:8px}.nav span{font-size:15px}.rail-brand,.rail-spacer,.rail-profile{display:none}.shell{grid-row:1}.topbar{height:70px;padding:0 13px}.topbar h1{font-size:16px}.topbar .eyebrow{font-size:7px}.workspace{padding:14px 12px 24px}.premium-dashboard-grid{display:block}.dashboard-main,.dashboard-side{margin-bottom:14px}.dashboard-side{display:grid}.analytics-pair,.suggestion-grid{grid-template-columns:1fr}.metrics{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.metric{min-width:132px;scroll-snap-align:start}.hero{align-items:flex-start}.hero .btn{width:100%}.lecture-card{grid-template-columns:42px minmax(0,1fr)}.lecture-status{grid-column:2;justify-items:start}.local-notice{grid-template-columns:38px minmax(0,1fr)}.local-notice .btn{grid-column:1/-1;width:100%}.question-row{grid-template-columns:1fr}.question-state{grid-template-columns:auto auto;justify-items:start}.question-state b,.question-state small,.question-state .btn{grid-column:auto}.mode-switch{width:100%}.mode-switch span{display:none}.settings-grid{grid-template-columns:1fr}.question-shell{width:100%}.review-flames{margin-left:16px;margin-right:16px}.achievement-grid,.achievement-grid.full{grid-template-columns:1fr 1fr}.top-actions{gap:5px}.pill{padding:6px 8px}.top-actions #profilePill{display:none}}
@media(max-width:420px){.achievement-grid,.achievement-grid.full{grid-template-columns:1fr}.suggestion-card{min-height:130px}.question-state{display:flex;flex-wrap:wrap}.global-search{display:none}}

/* Frozen visual theme editor: preview is ephemeral until Apply. */
:root{--glass-blur:16px;--reward-intensity-scale:1}
.glass,.panel,.metric,.question-card,.today-card,.rail,.topbar{backdrop-filter:blur(var(--glass-blur)) saturate(125%)}
.ambient{transition:opacity .2s ease}
:root[data-wallpaper="off"] .ambient{opacity:0}
:root[data-reward-intensity="minimal"]{--reward-intensity-scale:.46}
:root[data-reward-intensity="unhinged"]{--reward-intensity-scale:1.42}
:root[data-reward-intensity="minimal"] .reward-popup{box-shadow:0 0 28px rgba(255,112,23,.22)}
:root[data-reward-intensity="unhinged"] .reward-popup{box-shadow:0 0 104px rgba(255,112,23,.62),0 0 180px rgba(var(--accent-rgb),.22)}
:root[data-reward-intensity="minimal"] body[data-review-rewards="true"] .question-card[data-level="2"],:root[data-reward-intensity="minimal"] body[data-review-rewards="true"] .question-card[data-level="3"],:root[data-reward-intensity="minimal"] body[data-review-rewards="true"] .question-card[data-level="4"],:root[data-reward-intensity="minimal"] body[data-review-rewards="true"] .question-card[data-level="5"]{box-shadow:0 0 18px rgba(255,112,23,.12)}
:root[data-reward-intensity="unhinged"] body[data-review-rewards="true"] .question-card[data-level="3"],:root[data-reward-intensity="unhinged"] body[data-review-rewards="true"] .question-card[data-level="4"],:root[data-reward-intensity="unhinged"] body[data-review-rewards="true"] .question-card[data-level="5"]{box-shadow:0 0 82px rgba(255,112,23,.43),0 0 128px rgba(var(--accent-rgb),.16)}
.theme-panel{grid-column:1/-1;padding:18px}.theme-panel-head{display:flex;align-items:start;justify-content:space-between;gap:14px}.theme-panel-head h3{margin:3px 0}.ui-only-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:var(--muted);font-size:8px;white-space:nowrap}.theme-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:15px}.theme-preview{position:relative;min-height:72px;padding:11px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--preview-bg);color:var(--preview-text);text-align:left;cursor:pointer}.theme-preview::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 10%,var(--preview-glow),transparent 56%)}.theme-preview>*{position:relative}.theme-preview b,.theme-preview small{display:block}.theme-preview b{font-size:11px}.theme-preview small{opacity:.7;margin-top:5px;font-size:8px}.theme-preview i{position:absolute;right:10px;bottom:10px;width:18px;height:18px;border-radius:50%;background:var(--preview-accent);box-shadow:0 0 14px var(--preview-accent)}.theme-preview.active{outline:2px solid var(--accent);outline-offset:2px}.theme-preview[data-theme-preview="midnight-plum"]{--preview-bg:#08070b;--preview-accent:#a44bed;--preview-glow:rgba(164,75,237,.42);--preview-text:#f8f3fa}.theme-preview[data-theme-preview="warm-graphite"]{--preview-bg:#0b0907;--preview-accent:#e99131;--preview-glow:rgba(233,145,49,.40);--preview-text:#fff5e8}.theme-preview[data-theme-preview="emerald-smoke"]{--preview-bg:#06100d;--preview-accent:#42c58a;--preview-glow:rgba(66,197,138,.38);--preview-text:#ecfff7}.theme-preview[data-theme-preview="rose-charcoal"]{--preview-bg:#0e080b;--preview-accent:#e25588;--preview-glow:rgba(226,85,136,.38);--preview-text:#fff2f6}.theme-preview[data-theme-preview="teal-frost"]{--preview-bg:#061013;--preview-accent:#31b7cf;--preview-glow:rgba(49,183,207,.40);--preview-text:#effcff}.theme-preview[data-theme-preview="light-frosted"]{--preview-bg:#e8e1ec;--preview-accent:#8d3fc8;--preview-glow:rgba(141,63,200,.28);--preview-text:#241d29}.glass-control{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin-top:16px;color:var(--muted);font-size:10px}.glass-control input{width:100%;accent-color:var(--accent)}.theme-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.theme-control-grid label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:10px;background:rgba(var(--bg-rgb),.36)}.theme-control-grid input{accent-color:var(--accent)}.theme-actions{display:flex;gap:8px;margin-top:14px}.theme-actions .btn{padding:8px 12px}
@media(max-width:720px){.theme-presets{grid-template-columns:repeat(2,1fr)}.theme-control-grid{grid-template-columns:1fr}.theme-panel-head{display:grid}.theme-actions .btn{flex:1}}
@media(max-width:720px){.top-actions .pill#updatePill{display:inline-flex;align-items:center}}

/* v2.3 Block F — canonical Lecture / Resource UI. */
.resource-page{max-width:1180px;margin-inline:auto}.resource-hero-status{display:grid;gap:9px;justify-items:end}.resource-hero-status small{color:var(--muted)}
.resource-selector{display:flex;align-items:end;justify-content:space-between;gap:20px}.resource-selector label{display:grid;gap:8px;min-width:min(520px,100%)}.resource-selector label>span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.resource-selector select{width:100%}
.resource-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px}.resource-legend span{display:flex;gap:7px;align-items:center}.resource-legend i{width:8px;height:8px;border-radius:50%;background:var(--line)}.resource-legend i.green{background:var(--good)}.resource-legend i.amber{background:var(--warn)}.resource-legend i.red{background:var(--bad)}
.resource-principles{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);background:color-mix(in srgb,var(--warn) 7%,var(--panel));border-radius:14px}.resource-principles b{color:var(--warn);white-space:nowrap}.resource-principles span{color:var(--muted);font-size:13px}
.resource-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.resource-card{display:grid;gap:16px;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 96%,white 4%),var(--panel));box-shadow:var(--shadow)}.resource-card[data-acceptance="PENDING_ACCEPTANCE"],.resource-card[data-acceptance="REFERENCE_ONLY"]{border-color:color-mix(in srgb,var(--warn) 28%,var(--line))}.resource-card-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.resource-card-head h3{margin:5px 0 0;font-size:17px;line-height:1.3}.resource-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.resource-facts div{display:grid;gap:4px;padding:10px 12px;background:var(--panel)}.resource-facts span,.canonical-identity span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.resource-facts b{font-size:12px;overflow-wrap:anywhere}
.canonical-identity{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 12px;align-items:start}.canonical-identity code{font-size:11px;color:var(--text);overflow-wrap:anywhere;white-space:normal}.resource-boundary{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--warn) 7%,transparent);border-left:3px solid var(--warn)}.resource-boundary.accepted{background:color-mix(in srgb,var(--good) 7%,transparent);border-left-color:var(--good)}.resource-boundary b{font-size:13px}.resource-boundary p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.resource-loading{min-height:45vh;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--muted)}.resource-loading span{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.resource-loading b{color:var(--text)}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.resource-list{grid-template-columns:1fr}.resource-selector{align-items:stretch;flex-direction:column}.resource-legend{justify-content:flex-start}}
@media(max-width:560px){.resource-hero-status{justify-items:start}.resource-principles{align-items:flex-start;flex-direction:column;gap:5px}.resource-card{padding:16px}.resource-facts{grid-template-columns:1fr}.canonical-identity{grid-template-columns:1fr;gap:4px}.canonical-identity code{margin-bottom:6px}}

/* Approval metadata is separate from the existing active-selection outline. */
.theme-preview b .theme-approved-mark {
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.5em;min-height:1.5em;margin-inline-start:.45em;
  color:#684609;background:#fff2bf;border:1px solid #c39738;border-radius:50%;
  font-size:13px;line-height:1;text-shadow:none;white-space:nowrap;
}

/* The paid upgrade offer. Present but quiet: it sits above the workspace rather
   than interrupting it, and is absent entirely for an entitled account. */
/* The shell is a two row grid sized for the topbar and the workspace. The offer
 * is a third child, so it would be placed into a cell that is already spoken
 * for and paint underneath the page rather than above it. The column owns one
 * cell and stacks its own children, so the offer can be added or removed
 * without the grid having to know about it. */
.shell-body{min-width:0;min-height:0;display:flex;flex-direction:column}
.shell-body>#content{flex:1 1 auto;min-height:0}
/* Tokens the themes actually define. --surface-raised was never one of them, so
 * the panel fell back to white and read as unstyled text on every dark theme. */
.upgrade-offer{display:flex;flex-direction:column;gap:.15rem;margin:18px 24px 0;padding:14px 16px;
  border:1px solid var(--line);border-radius:16px;text-decoration:none;color:inherit;
  background:rgba(var(--panel-rgb),.66)}
.upgrade-offer:hover,.upgrade-offer:focus-visible{border-color:var(--accent)}
.upgrade-offer strong{font-size:.95rem}
.upgrade-offer span{font-size:.82rem;color:var(--muted)}
.upgrade-offer[hidden]{display:none}
/* .btn sets padding and a border but no display, which is fine for a <button>
   because the user agent already makes it inline-block. An <a class="btn">
   would otherwise render underlined, in the link colour, and as an inline box
   whose vertical padding spills over the line above it. */
a.btn{display:inline-block;text-decoration:none;color:inherit}
@media(max-width:720px){.upgrade-offer{margin:14px 12px 0}}
