/* ELRIC STUDIOS · V3.0 : precision layout, restrained glass, accessible reading */
:root{color-scheme:light;--bg:#f5f5f6;--text:#1a1b20;--ink:#16171a;--muted:#7a7c86;--sub:#a0a2ab;--border:rgba(50,52,65,.075);--edge:rgba(31,32,45,.1);--panel:#fff;--panel-tint:#f9f9fb;--glass:rgba(255,255,255,.73);--accent:#355eaa;--accent-soft:#eaf0fc;--positive:#21866e;--negative:#bd5454;--sidebar:#191a1e;--shadow:0 12px 44px rgba(21,24,34,.035);--glass-shadow:0 7px 28px rgba(29,32,48,.05);--radius:22px;--t:.2s cubic-bezier(.2,.72,.2,1);font-synthesis:none}
[data-theme="dark"]{color-scheme:dark;--bg:#101114;--text:#f2f2f5;--ink:#fff;--muted:#989aa4;--sub:#696c77;--border:rgba(255,255,255,.065);--edge:rgba(255,255,255,.14);--panel:#1b1c21;--panel-tint:#202126;--glass:rgba(30,31,37,.81);--accent:#a2baf5;--accent-soft:#2c3854;--positive:#75c6a5;--negative:#f49e98;--sidebar:#17181c;--shadow:0 12px 44px rgba(0,0,0,.14);--glass-shadow:0 7px 28px rgba(0,0,0,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(80,126,207,.45);outline-offset:3px}img{max-width:100%}a{color:var(--accent)}[hidden]{display:none!important}::selection{background:rgba(98,131,207,.22)}
.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 83% 2%,rgba(198,201,213,.16),transparent 44%),radial-gradient(circle at 2% 97%,rgba(203,207,223,.14),transparent 38%);pointer-events:none}[data-theme="dark"] .ambient{background:radial-gradient(circle at 93% 7%,rgba(91,97,116,.10),transparent 44%)}
.app-shell{display:flex;min-height:100vh;max-width:1800px;margin:auto}.glass{background:var(--glass);-webkit-backdrop-filter:blur(28px) saturate(1.5);backdrop-filter:blur(28px) saturate(1.5)}
.sidebar{position:sticky;top:0;height:100vh;width:242px;flex:0 0 242px;display:flex;flex-direction:column;padding:29px 14px 18px;color:#f0f1f2;background:linear-gradient(160deg,rgba(34,35,40,.96),rgba(22,23,27,.98));border-right:1px solid rgba(255,255,255,.07);overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;padding:3px 13px 20px}.brand-icon{height:38px;width:38px;display:grid;place-items:center;background:#2d2e33;border:1px solid #44454b;border-radius:13px}.brand-icon img{width:27px;height:27px;object-fit:contain}.brand-type{display:flex;flex-direction:column;gap:3px;letter-spacing:.21em}.brand-type b{font-size:14px;font-weight:600}.brand-type span{font-size:9px;color:#92949d;letter-spacing:.34em}.side-rule{height:1px;background:rgba(255,255,255,.08);margin:0 13px 24px}.sidebar-section-label,.micro-label{color:#777982;font-size:10px;letter-spacing:.2em;font-weight:650;padding:0 15px;margin-bottom:12px}.side-nav{display:flex;flex-direction:column;gap:6px}.side-link{display:flex;align-items:center;gap:12px;border:1px solid transparent;border-radius:12px;min-height:46px;padding:0 13px;background:transparent;color:#a8aab3;text-align:left;transition:background var(--t),color var(--t),transform var(--t)}.side-link span[data-icon]{width:18px;height:18px;display:flex;align-items:center}.side-link span:nth-child(2){font-weight:580;font-size:13px;flex:1}.side-link small{font-size:10px;color:#777a83}.side-link.active{background:rgba(255,255,255,.095);border-color:rgba(255,255,255,.055);color:white}.side-link.active small{color:#b6b8bf}.side-link:hover{background:rgba(255,255,255,.07);color:white}.sidebar-bottom{margin-top:auto;padding-top:32px}.sidebar-tip{display:flex;align-items:center;gap:9px;color:#bdc0ca;padding:13px 14px;background:rgba(255,255,255,.045);border-radius:13px;font-size:11px;margin-bottom:12px}.sidebar-tip svg{color:#bac7e5}.side-settings{display:flex;gap:10px;align-items:center;width:100%;padding:12px 14px;border:0;background:transparent;color:#a9abb5;text-align:left;font-size:12px}.side-settings span:last-child{margin-left:auto}.sidebar-foot{font-size:9px;color:#6c6e77;letter-spacing:.14em;border-top:1px solid rgba(255,255,255,.07);margin:13px 12px 0;padding-top:17px;display:flex;justify-content:space-between}
.workspace{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:74px;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(22px,4vw,64px)}.breadcrumbs{font-size:12px;display:flex;align-items:center;gap:13px;white-space:nowrap}.crumb-home{font-weight:560;color:var(--muted)}.crumb-sep{color:var(--sub)}.breadcrumbs strong{font-weight:650}.top-actions{display:flex;align-items:center;gap:10px}.status-dot{height:6px;width:6px;border-radius:50%;background:#71af8d;box-shadow:0 0 0 4px rgba(113,175,141,.1)}.top-status{font-size:11px;color:var(--muted)}.top-divider{height:19px;width:1px;background:var(--edge);margin:0 6px}.icon-button{border:1px solid transparent;background:transparent;color:var(--muted);height:34px;width:34px;display:grid;place-items:center;border-radius:10px;transition:background var(--t)}.icon-button:hover{background:var(--panel-tint);color:var(--text)}.icon-button svg{height:18px;width:18px}
#main{width:100%;max-width:1360px;margin:0 auto;flex:1;padding:clamp(30px,4vw,60px) clamp(22px,4vw,64px) 75px}.workspace-foot{max-width:1360px;width:100%;margin:auto;padding:24px clamp(22px,4vw,64px);border-top:1px solid var(--border);display:flex;gap:16px;font-size:10px;letter-spacing:.12em;color:var(--sub)}.workspace-foot span:nth-child(2){margin-left:auto}
.eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:650;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.eyebrow .line{height:1px;width:22px;background:var(--sub)}.hero-title{font-size:clamp(38px,5vw,64px);font-weight:610;letter-spacing:-.065em;line-height:1.08;margin:17px 0 13px}.hero-description{font-size:15px;color:var(--muted);line-height:1.8;margin:0}.page-title{font-size:clamp(29px,3.3vw,43px);line-height:1.1;letter-spacing:-.055em;font-weight:650;margin:12px 0 10px}.page-subtitle{font-size:14px;color:var(--muted);line-height:1.8;margin:0}.section-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:32px 0 16px}.section-row h2{margin:0;font-size:19px;font-weight:630;letter-spacing:-.025em}.section-row .section-extra{color:var(--muted);font-size:12px}.section-label{font-size:11px;letter-spacing:.16em;color:var(--muted);font-weight:670;text-transform:uppercase}
.panel{border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow)}.panel-inner{padding:26px}.panel-soft{background:var(--panel-tint)}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px}.metric-number{font-size:clamp(27px,3vw,39px);font-weight:620;letter-spacing:-.06em;line-height:1.1}.mono{font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:6px;background:var(--panel-tint);border:1px solid var(--border);border-radius:99px;padding:7px 11px;color:var(--muted);font-size:11px;font-weight:550}.pill-accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.btn{min-height:43px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;border:1px solid var(--edge);background:var(--panel);color:var(--text);font-size:13px;font-weight:620;transition:transform var(--t),background var(--t),box-shadow var(--t)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 15px rgba(0,0,0,.055)}.btn:active:not(:disabled){transform:scale(.985)}.btn svg{width:16px;height:16px}.btn-dark{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-dark:hover{background:var(--text)}.btn-light{background:var(--panel-tint)}.btn-plain{border-color:transparent;background:transparent;color:var(--muted)}.btn-danger{color:var(--negative)}.btn-block{width:100%}.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.label{display:block;font-size:12px;font-weight:625;color:var(--muted);margin-bottom:9px}.field,.text-area,.select{border:1px solid var(--edge);background:var(--panel-tint);color:var(--text);border-radius:12px;padding:13px 14px;width:100%;outline:none;transition:border-color var(--t),box-shadow var(--t);font-size:14px;min-height:46px}.field:focus,.text-area:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.text-area{resize:vertical;min-height:116px;line-height:1.7}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-row{display:flex;align-items:end;gap:12px}.form-row>*{flex:1}.form-row>.btn{flex:0 0 auto}.segmented{display:inline-flex;max-width:100%;gap:3px;border:1px solid var(--border);padding:4px;background:var(--panel-tint);border-radius:13px;overflow:auto}.segment{white-space:nowrap;border:0;background:transparent;border-radius:9px;padding:10px 14px;color:var(--muted);font-size:12px;font-weight:600}.segment.active{background:var(--panel);box-shadow:0 2px 10px rgba(0,0,0,.065);color:var(--text)}.progress-track{width:100%;height:6px;background:rgba(255,255,255,.15);border-radius:50px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#d0d7e5,#fff);border-radius:50px;transition:width .35s ease}.progress-track.light{background:var(--panel-tint)}.progress-track.light .progress-fill{background:var(--accent)}
/* Today */
.today-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:36px}.today-date{font-size:11px;color:var(--muted);text-align:right;margin-bottom:9px}.day-chip{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--border);padding:9px 13px;border-radius:12px;color:var(--muted);font-size:11px}.session-panel{position:relative;overflow:hidden;min-height:280px;background:linear-gradient(116deg,#23242b,#101114 80%);color:white;border-radius:27px;padding:clamp(28px,4vw,42px);box-shadow:0 18px 47px rgba(13,15,24,.15);display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px}.session-panel:before{content:"";position:absolute;pointer-events:none;inset:0;background:radial-gradient(circle at 80% -20%,rgba(181,187,203,.14),transparent 55%),linear-gradient(120deg,transparent 44%,rgba(255,255,255,.028) 58%,transparent 76%)}.session-panel:after{content:"";position:absolute;right:-40px;bottom:-110px;width:390px;height:390px;border-radius:50%;border:1px solid rgba(255,255,255,.065);box-shadow:0 0 0 48px rgba(255,255,255,.022),0 0 0 100px rgba(255,255,255,.014);pointer-events:none}.session-content{z-index:1;position:relative;display:flex;flex-direction:column;align-items:start}.session-eyebrow{font-size:11px;letter-spacing:.2em;color:#aaaeb9;font-weight:650;display:flex;align-items:center;gap:9px}.session-eyebrow:before{content:"";height:6px;width:6px;border-radius:50%;background:#c8d9c3}.session-title{font-size:clamp(25px,3vw,37px);font-weight:600;letter-spacing:-.055em;margin:20px 0 7px}.session-sub{font-size:13px;color:#adaeb7;line-height:1.7}.session-actions{margin-top:auto;padding-top:23px;display:flex;gap:10px;flex-wrap:wrap}.session-cta{border:0;background:#f7f7f9;color:#17181e;border-radius:12px;padding:13px 20px;display:flex;align-items:center;gap:18px;font-weight:640;transition:transform var(--t)}.session-cta:hover{transform:translateY(-2px)}.session-stat{z-index:1;position:relative;display:flex;flex-direction:column;align-items:end;justify-content:end;gap:20px}.session-stat .large{font-size:clamp(42px,5.5vw,71px);font-weight:540;letter-spacing:-.08em;line-height:1}.session-stat .large small{font-size:15px;letter-spacing:0;color:#aeb0ba;font-weight:450}.session-progress{width:175px;max-width:100%}.session-progress .rows{display:flex;justify-content:space-between;font-size:11px;color:#b9bbc3;margin-bottom:9px}.today-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.quick-card{padding:24px;min-height:184px;display:flex;flex-direction:column;align-items:start;transition:transform var(--t),box-shadow var(--t);cursor:pointer;text-align:left;color:var(--text)}.quick-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(0,0,0,.065)}.quick-card .quick-icon{height:38px;width:38px;border-radius:12px;background:var(--panel-tint);color:var(--muted);display:grid;place-items:center;margin-bottom:18px}.quick-card .quick-icon svg{height:19px;width:19px}.quick-card strong{font-size:16px;letter-spacing:-.02em}.quick-card small{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.6}.quick-card .quick-foot{margin-top:auto;padding-top:18px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:space-between;width:100%}.today-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.today-insights{padding:24px}.insight-row{display:flex;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid var(--border)}.insight-row:last-child{border-bottom:0}.insight-icon{height:34px;width:34px;background:var(--panel-tint);border-radius:10px;display:grid;place-items:center;color:var(--muted)}.insight-text{flex:1}.insight-text strong{font-size:13px}.insight-text small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.insight-number{font-size:18px;font-weight:600;letter-spacing:-.05em}
/* Practice */
.top-intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.top-intro .mini-tag{align-self:flex-start}.main-split{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:20px}.quiz-panel{padding:clamp(22px,3vw,36px);min-height:410px}.quiz-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--border)}.quiz-prompt{font-size:12px;color:var(--muted);margin:29px 0 16px}.sentence{font-size:clamp(22px,2.7vw,31px);font-weight:560;letter-spacing:-.022em;line-height:1.65;min-height:80px;overflow-wrap:anywhere}.word-token{border:0;display:inline;background:transparent;color:inherit;padding:0 1px;border-radius:4px;font-size:inherit;line-height:inherit;text-decoration:none;cursor:help}.word-token:hover{background:var(--accent-soft)}.word-token:not(:disabled):focus-visible{outline:2px solid var(--accent)}.target{border-bottom:2px dotted var(--accent)}.blank{color:var(--accent);font-weight:650}.quiz-actions{margin-top:30px;display:flex;align-items:center;justify-content:space-between;gap:15px}.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0 0}.quiz-opt{border:1px solid var(--edge);background:var(--panel-tint);border-radius:13px;text-align:left;display:flex;align-items:center;gap:12px;padding:13px;min-height:62px;color:var(--text);font-size:13px}.quiz-opt:hover{border-color:var(--accent)}.quiz-opt.selected{background:var(--accent-soft);border-color:var(--accent)}.quiz-opt.correct{background:rgba(43,161,116,.12);border-color:var(--positive)}.quiz-opt.wrong{background:rgba(206,85,78,.09);border-color:var(--negative)}.quiz-opt .option-letter{width:26px;height:26px;border:1px solid var(--edge);background:var(--panel);border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:650;flex:none}.question-result{margin-top:26px;border-top:1px solid var(--border);padding-top:25px;animation:page-in .25s both}.result-state{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}.result-state.good{color:var(--positive)}.result-state.bad{color:var(--negative)}.result-grid{display:grid;gap:10px;margin-top:18px}.result-block{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--panel-tint)}.result-block .tiny{display:block;color:var(--muted);margin-bottom:8px;font-weight:630}.result-en{font-size:16px;line-height:1.8}.result-zh{font-size:14px;line-height:1.8}.result-explain{font-size:13px;line-height:1.85;color:var(--muted)}.side-panel{padding:22px}.side-panel h3{font-size:15px;letter-spacing:-.02em;margin:0 0 14px}.mode-list{display:flex;flex-direction:column;gap:6px}.mode-button{width:100%;text-align:left;border:1px solid transparent;border-radius:11px;padding:12px 13px;background:transparent;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-weight:560;font-size:12px}.mode-button.active{background:var(--accent-soft);color:var(--accent)}.mode-button:hover{background:var(--panel-tint)}.aside-help{padding:17px;border-radius:13px;background:var(--panel-tint);margin-top:22px;line-height:1.8;color:var(--muted);font-size:12px}
/* Vocabulary */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:23px;overflow:hidden}.strip-item{padding:23px;border-right:1px solid var(--border)}.strip-item:last-child{border-right:0}.strip-item .meta{display:block;color:var(--muted);font-size:11px;margin-bottom:10px}.strip-item strong{font-size:29px;font-weight:600;letter-spacing:-.06em}.section-panel{padding:26px;margin-bottom:18px}.word-layout{display:grid;grid-template-columns:1.04fr .96fr;gap:18px}.word-list{max-height:410px;overflow-y:auto}.word-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;border-bottom:1px solid var(--border)}.word-row:last-child{border:0}.word-row b{font-size:14px;font-weight:610}.word-row small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.word-row .word-meta{font-size:11px;color:var(--muted);text-align:right;white-space:nowrap}.word-practice-box{min-height:290px;display:flex;flex-direction:column;align-items:start;justify-content:center}.word-big{font-size:clamp(30px,4vw,49px);line-height:1.22;letter-spacing:-.045em;font-weight:620;margin:20px 0}.word-meaning{font-size:17px;line-height:1.8;margin:18px 0;color:var(--text)}.word-choice{width:100%;display:block;text-align:left;padding:12px 16px;border:1px solid var(--edge);border-radius:11px;background:var(--panel-tint);margin:6px 0;color:var(--text)}.word-choice:hover{border-color:var(--accent)}.empty{padding:36px 18px;text-align:center;border:1px dashed var(--edge);border-radius:17px;color:var(--muted);line-height:1.9}.empty svg{display:block;margin:0 auto 14px;width:27px;height:27px}.empty strong{display:block;color:var(--text);font-size:15px}
/* Reading */
.reading-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:18px;align-items:start}.reading-article{padding:clamp(23px,3vw,37px)}.reading-article h2{font-size:clamp(24px,3vw,35px);letter-spacing:-.05em;line-height:1.24;margin:16px 0 24px}.reading-text{font-size:18px;line-height:2.05;white-space:pre-wrap;word-break:normal;color:var(--text)}.reading-text .word-token{font-size:inherit}.reading-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}.reading-test{padding:25px}.reading-test h3{font-size:18px;margin:0 0 21px}.reading-question{border-top:1px solid var(--border);padding:19px 0}.reading-question:first-of-type{border-top:0}.reading-question strong{display:block;font-size:13px;line-height:1.8;margin-bottom:14px}.reading-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid transparent;border-radius:9px;font-size:12px;line-height:1.6;cursor:pointer}.reading-choice:hover{background:var(--panel-tint)}.reading-choice input{accent-color:var(--accent);margin-top:3px}.reading-choice:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.reading-explain{margin:11px 0 2px;padding:14px;border-radius:12px;background:var(--panel-tint);font-size:12px;line-height:1.8;color:var(--muted)}.reading-results{border-radius:14px;padding:15px;background:var(--accent-soft);font-weight:610;font-size:14px;margin:16px 0}.reading-translation{margin-top:28px;padding-top:24px;border-top:1px solid var(--border);font-size:14px;line-height:2;color:var(--muted);white-space:pre-wrap}.reading-translation h3{color:var(--text)}.reading-library{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 24px}.reading-lib-btn{border:1px solid var(--edge);border-radius:12px;background:var(--panel);padding:12px 15px;color:var(--text);font-size:12px;max-width:100%;text-align:left}.reading-lib-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
/* Review */
.review-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review-stats .panel{padding:24px}.review-stats .value{font-size:35px;font-weight:620;letter-spacing:-.06em;margin-top:12px}.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.mistake-row{border-top:1px solid var(--border);padding:15px 0}.mistake-row:first-child{border:0}.mistake-row .text{font-size:13px;line-height:1.7}.mistake-row .sub{font-size:11px;color:var(--muted);margin-top:7px}.bar-row{margin:18px 0}.bar-labels{display:flex;justify-content:space-between;font-size:12px;margin-bottom:9px}.bar-labels span:last-child{color:var(--muted)}
/* AI and settings */
.ai-card{padding:29px;background:linear-gradient(130deg,var(--panel),var(--panel-tint))}.ai-heading{display:flex;gap:13px;align-items:center;margin-bottom:18px}.ai-symbol{height:40px;width:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.ai-heading strong{font-size:17px}.ai-heading small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.ai-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.ai-output{min-height:110px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.ai-info{display:flex;gap:12px;font-size:12px;color:var(--muted);line-height:1.8;background:var(--panel-tint);border-radius:13px;padding:15px}.notice{border:1px solid var(--border);background:var(--panel-tint);border-radius:12px;padding:14px 16px;color:var(--muted);font-size:12px;line-height:1.8;margin-top:12px}.notice.danger{color:var(--negative)}.notice.success{color:var(--positive)}
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(17,18,22,.35);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:grid;place-items:center;padding:16px;animation:fade .18s ease both}.modal{width:min(520px,100%);max-height:min(85vh,770px);overflow:auto;border-radius:24px;background:var(--panel);box-shadow:0 30px 90px rgba(0,0,0,.17);padding:28px;border:1px solid var(--border);animation:pop .22s cubic-bezier(.2,.75,.2,1) both}.modal-head{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px}.modal-head h2{font-size:24px;letter-spacing:-.045em;margin:7px 0}.modal-dismiss{border:0;background:var(--panel-tint);color:var(--text);height:34px;width:34px;border-radius:10px;display:grid;place-items:center}.lookup-word{font-size:30px;font-weight:660;letter-spacing:-.055em;margin:8px 0}.lookup-meaning{font-size:16px;line-height:1.8;margin-bottom:16px}.lookup-context{padding:15px;border-radius:12px;background:var(--panel-tint);line-height:1.8;color:var(--muted);font-size:13px;max-height:155px;overflow:auto}.lookup-footer{display:flex;justify-content:end;gap:9px;margin-top:20px;flex-wrap:wrap}.settings-stack>div{margin:18px 0}.settings-stack p{line-height:1.8;font-size:12px;color:var(--muted)}.toast{position:fixed;z-index:200;left:50%;bottom:25px;transform:translate(-50%,15px);opacity:0;background:#25262c;color:white;padding:12px 18px;border-radius:12px;font-size:12px;box-shadow:0 12px 35px rgba(0,0,0,.2);pointer-events:none;transition:opacity var(--t),transform var(--t);max-width:min(90%,460px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}
/* responsive */
@media(max-width:1150px){.sidebar{width:205px;flex-basis:205px}.side-link small{display:none}.main-split{grid-template-columns:minmax(0,1fr) 236px}.today-grid{gap:12px}.ai-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sidebar{width:76px;flex-basis:76px;padding:23px 9px}.brand{padding:4px 8px 22px}.brand-type,.sidebar-section-label,.side-rule,.sidebar-bottom,.side-link span:nth-child(2),.side-link small{display:none}.side-nav{gap:9px}.side-link{justify-content:center;min-height:50px;padding:0}.side-link span[data-icon]{width:21px;height:21px}.topbar{height:65px}.main-split{grid-template-columns:1fr}.mode-list{flex-direction:row;overflow:auto}.mode-button{white-space:nowrap;width:auto}.aside-help{display:none}.reading-layout{grid-template-columns:1fr}.today-bottom{grid-template-columns:1fr}}
@media(max-width:620px){.sidebar{display:none}.topbar{height:58px;padding:0 18px}.top-status,.status-dot,.top-divider{display:none}#main{padding:30px 18px 105px}.workspace-foot{display:none}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;z-index:40;justify-content:space-around;padding:8px 7px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);box-shadow:0 -4px 28px rgba(0,0,0,.04)}.mobile-link{flex:1;display:flex;align-items:center;flex-direction:column;gap:4px;border:0;background:transparent;color:var(--muted);font-size:10px;padding:6px 0;border-radius:10px}.mobile-link svg{width:20px;height:20px}.mobile-link.active{color:var(--accent);font-weight:650}.hero-title{font-size:43px}.today-head{align-items:start}.today-date{display:none}.session-panel{grid-template-columns:1fr;min-height:280px;padding:27px}.session-stat{align-items:start;gap:9px}.session-stat .large{font-size:40px}.session-progress{width:100%}.today-grid{grid-template-columns:1fr;gap:10px}.quick-card{min-height:118px;padding:18px;display:grid;grid-template-columns:35px 1fr auto;align-items:center;column-gap:14px}.quick-card .quick-icon{margin:0}.quick-card strong{font-size:14px}.quick-card small{grid-column:2;grid-row:2;margin-top:-8px}.quick-card .quick-foot{grid-column:3;grid-row:1/3;margin:0}.quick-card .quick-foot span{display:none}.section-row{margin:27px 0 14px}.top-intro{display:block}.top-intro .mini-tag{margin-top:18px}.stats-strip{grid-template-columns:repeat(2,1fr)}.strip-item:nth-child(2){border-right:0}.strip-item:nth-child(-n+2){border-bottom:1px solid var(--border)}.word-layout,.review-layout{grid-template-columns:1fr}.review-stats{gap:8px}.review-stats .panel{padding:15px}.review-stats .value{font-size:25px}.field-grid,.ai-controls{grid-template-columns:1fr}.quiz-options{grid-template-columns:1fr}.quiz-panel{padding:22px}.reading-test{padding:19px}.form-row{flex-direction:column;align-items:stretch}.form-row>.btn{flex:auto}.modal{padding:20px;border-radius:20px}.btn-row .btn{flex:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@keyframes page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade{from{opacity:0}to{opacity:1}}

/* V3.1 refined interaction layer: position-aware lookup, soft specular lighting, focus-safe motion */
:root{--lookup-glass:rgba(255,255,255,.94);--lookup-edge:rgba(80,86,102,.15);--soft-halo:rgba(141,160,214,.16)}
[data-theme="dark"]{--lookup-glass:rgba(29,30,36,.95);--lookup-edge:rgba(255,255,255,.14);--soft-halo:rgba(151,168,210,.11)}
body.has-dialog{overflow:hidden}
#main.page-enter{animation:route-flow .33s cubic-bezier(.18,.75,.22,1) both}
@keyframes route-flow{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* The navigation and touch targets receive a direct, quiet material response. */
.side-link:active,.mobile-link:active,.quick-card:active{transform:scale(.985)}
.side-link,.mobile-link,.quick-card,.segment,.quiz-opt,.reading-lib-btn{transition:transform .19s cubic-bezier(.18,.75,.22,1),background .19s ease,border-color .19s ease,box-shadow .19s ease,color .19s ease}
.topbar{background:var(--glass);box-shadow:0 1px 0 var(--border),0 8px 28px rgba(24,28,42,.018)}
.modal-overlay.lookup-layer{display:block;background:rgba(15,16,25,.045);-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;animation:fade .12s ease both}
.lookup-layer .modal{position:fixed;left:16px;top:16px;width:min(420px,calc(100vw - 32px));padding:23px;border:1px solid var(--lookup-edge);background:var(--lookup-glass);-webkit-backdrop-filter:blur(26px) saturate(1.45);backdrop-filter:blur(26px) saturate(1.45);box-shadow:0 26px 65px rgba(21,25,39,.18),0 4px 14px rgba(20,24,30,.065);border-radius:21px;animation:lookup-appear .23s cubic-bezier(.18,.8,.24,1) both;max-height:min(72vh,620px)}
.lookup-layer .modal-head{margin-bottom:12px}.lookup-layer .lookup-word{font-size:clamp(27px,3.5vw,34px)}
.lookup-layer .lookup-meaning{font-size:15px;margin:8px 0 13px}.lookup-layer .lookup-footer{justify-content:flex-start;gap:7px}
.lookup-layer .lookup-footer .btn{min-height:38px;padding:0 12px;font-size:12px}
.lookup-layer .lookup-context{border-left:2px solid var(--accent);border-radius:0 10px 10px 0}
@keyframes lookup-appear{from{opacity:0;transform:translateY(8px) scale(.973)}to{opacity:1;transform:translateY(0) scale(1)}}
.question-result{animation:feedback-in .34s cubic-bezier(.18,.76,.25,1) both;transform-origin:top center}
@keyframes feedback-in{from{opacity:0;transform:translateY(-7px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
.result-block{animation:feedback-in .32s cubic-bezier(.2,.8,.2,1) both}
.result-block:nth-child(2){animation-delay:.045s}.result-block:nth-child(3){animation-delay:.08s}.result-block:nth-child(4){animation-delay:.12s}
.word-token{transition:background .17s ease,color .17s ease,border-radius .17s ease}
.word-token:active{background:var(--accent-soft);color:var(--accent)}
.reading-article,.quiz-panel{background:var(--panel)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .quick-card,.session-panel{position:relative;isolation:isolate;overflow:hidden}
 .quick-card::before,.session-panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(330px circle at var(--pointer-x,50%) var(--pointer-y,20%),var(--soft-halo),transparent 74%);transition:opacity .4s ease}
 .quick-card:hover::before,.session-panel:hover::before{opacity:1}
 .quick-card>*,.session-panel>*{position:relative;z-index:1}
 .quick-card:hover{transform:translateY(-2px)}
}
@media(max-width:680px){
 .modal-overlay.lookup-layer{background:rgba(12,13,20,.19)}
 .lookup-layer .modal{left:0!important;top:auto!important;bottom:0;width:100%;max-height:min(78dvh,720px);border-radius:25px 25px 0 0;padding:25px 20px calc(22px + env(safe-area-inset-bottom));border-left:none;border-right:none;border-bottom:none;animation:lookup-sheet .28s cubic-bezier(.2,.8,.2,1) both}
 @keyframes lookup-sheet{from{opacity:.5;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
 .lookup-layer .lookup-footer .btn{flex:1}
}
@media(prefers-reduced-motion:reduce){#main.page-enter,.question-result,.result-block,.lookup-layer .modal{animation:none!important}.quick-card::before,.session-panel::before{display:none}}

/* V3.2: visible, first-class AI Studio */
.ai-studio-shell{margin-top:26px;max-width:1100px}
.ai-providers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ai-provider{display:flex;align-items:center;text-align:left;gap:12px;min-height:98px;padding:18px;border:1px solid var(--border);border-radius:19px;background:var(--panel);color:var(--text);cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;font:inherit}
.ai-provider:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(24,28,38,.08)}
.ai-provider.selected{border-color:var(--accent);background:var(--panel-tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}
.ai-provider-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.ai-provider strong{display:block;font-size:15px;font-weight:650;letter-spacing:-.02em}
.ai-provider small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:4px}
.ai-provider-mark{margin-left:auto;color:var(--muted)}.ai-provider.selected .ai-provider-mark{color:var(--accent)}
.ai-card{max-width:1100px}
.ai-connection{background:var(--panel-tint);border:1px solid var(--border);border-radius:19px;padding:22px;margin-top:22px}
.ai-connection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:18px}
.ai-connection-head strong{font-size:17px;letter-spacing:-.03em}.ai-connection-head p{font-size:12px;line-height:1.8;color:var(--muted);margin:7px 0 0}
.ai-chip{font-size:11px;white-space:nowrap;border-radius:50px;color:var(--muted);border:1px solid var(--border);padding:6px 11px}
.ai-connection .label{display:block;margin:8px 0 7px}.ai-connection .btn-row{margin-top:16px}.ai-connection p.small{line-height:1.9;margin-top:12px}
.ai-local-grid{display:grid;grid-template-columns:1fr 2fr;gap:13px}.ai-model-field{grid-column:1/-1}
.ai-word-count{display:flex;align-items:center;gap:25px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0;margin-top:18px}
.ai-word-count>div{display:flex;gap:7px;align-items:baseline}.ai-word-count strong{font-size:19px;letter-spacing:-.04em}.ai-word-count span{font-size:11px;color:var(--muted)}.ai-word-count .btn{margin-left:auto}
.ai-run{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0 8px}.ai-run-button{min-height:48px}.ai-disclaimer{line-height:1.9;margin:13px 0 0}
.reading-ai-cta{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-top:30px;padding:22px 26px}
.reading-ai-cta h2{font-size:20px;letter-spacing:-.035em;margin:8px 0}.reading-ai-cta p{line-height:1.7;margin:0}
@media(max-width:940px){.ai-providers{grid-template-columns:1fr}.ai-provider{min-height:68px;padding:13px 15px}}
@media(max-width:620px){.ai-studio-shell{margin-top:22px}.ai-provider{min-height:65px}.ai-connection{padding:16px}.ai-local-grid{grid-template-columns:1fr}.ai-model-field{grid-column:auto}.ai-word-count{flex-wrap:wrap;gap:12px}.ai-word-count .btn{width:100%;margin-left:0}.reading-ai-cta{flex-direction:column;align-items:stretch}.mobile-link{font-size:9px}.mobile-link svg{width:19px;height:19px}.ai-run .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.ai-provider{transition:none}.ai-provider:hover{transform:none}}

/* V3.3 product polish: learning-first motion & clear AI review states */
:root{--studio-motion:cubic-bezier(.22,.78,.22,1);--studio-glow:rgba(97,120,163,.085)}
[data-theme="dark"]{--studio-glow:rgba(159,172,214,.085)}
#main.page-enter{animation:studio-arrive .3s var(--studio-motion) both}
@keyframes studio-arrive{from{opacity:.55;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.topbar,.mobile-nav{background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.22);backdrop-filter:blur(24px) saturate(1.22)}
.topbar{border-bottom-color:var(--border)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.55}
.quality-summary{background:var(--panel-tint);border:1px solid var(--border);border-radius:17px;padding:17px 19px;margin:16px 0 20px}
.quality-summary>b{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}
.quality-summary p,.quality-summary li{color:var(--muted);font-size:12px;line-height:1.8}
.quality-summary p{margin:8px 0 0}.quality-summary ul{margin:8px 0 0;padding-left:20px}
.quality-flag{margin-top:13px;display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border);border-radius:99px;color:var(--muted);padding:7px 12px;min-height:38px;cursor:pointer;font-size:11px;transition:background .18s ease,border-color .18s ease,color .18s ease}
.quality-flag:hover{background:var(--panel-tint);color:var(--text)}
.quality-flag.flagged{border-color:rgba(207,138,72,.48);background:rgba(207,138,72,.10);color:var(--text)}
.ai-run-button{min-width:178px}.btn-stop{border-color:rgba(207,126,93,.4)!important;color:var(--text)!important}
.ai-provider{position:relative;overflow:hidden}
.ai-provider.selected:after{content:"";position:absolute;top:-40px;right:-25px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--studio-glow),transparent 75%);pointer-events:none}
.ai-card .notice{min-height:46px;display:flex;align-items:center;line-height:1.65}
.save-failed #saveStatus{color:#c96454;font-weight:700}
@media(hover:hover) and (pointer:fine){.quality-flag:active,.ai-provider:active{transform:scale(.985)}.quiz-opt:hover{box-shadow:0 8px 26px rgba(30,37,56,.035)}}
@media(max-width:680px){.quality-summary{padding:14px}.quality-flag{min-height:44px;padding:9px 14px}.ai-run-button,.btn-stop{width:100%}}
@media(prefers-reduced-motion:reduce){#main.page-enter{animation:none!important}.quality-flag,.ai-provider{transition:none!important}}

/* V3.3.1 — Visual contrast hotfix. Keep the intentionally dark sidebar independent of the light glass navigation. */
.sidebar.glass{background:linear-gradient(155deg,rgba(34,35,41,.98),rgba(20,21,26,.99));color:#f4f5f8;border-right-color:rgba(255,255,255,.10);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15)}
.sidebar .brand-type b{color:#f8f8fa}
.sidebar .brand-type span{color:#c7c8cf}
.sidebar .sidebar-section-label{color:#b4b6c1}
.sidebar .side-link{color:#c8cad2}
.sidebar .side-link small{color:#b2b4bf}
.sidebar .side-link.active{color:#ffffff;background:rgba(255,255,255,.115);border-color:rgba(255,255,255,.11);box-shadow:inset 2px 0 0 rgba(255,255,255,.8)}
.sidebar .side-link.active small{color:#e0e1e6}
.sidebar .side-link:hover{background:rgba(255,255,255,.095);color:#ffffff}
.sidebar .side-link:hover small{color:#dfe0e5}
.sidebar .side-settings{color:#c9cad3}
.sidebar .sidebar-tip{color:#d0d2da}
.sidebar .sidebar-foot{color:#aeb0bb}
