:root{--bg:#f5f5f3;--surface:#fff;--text:#171717;--muted:#747474;--line:#e7e7e3;--good:#2f6b4f;--good-bg:#edf5f0;--warn:#8a6518;--warn-bg:#faf2de;--bad:#9c4040;--bad-bg:#f8eaea;--shadow:0 18px 50px rgba(0,0,0,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}
.app{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px 18px;border-right:1px solid var(--line);background:rgba(250,250,248,.93);backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text);padding:6px 8px 25px}.brand-mark{width:36px;height:36px;border-radius:11px;background:#1f1f1f;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;letter-spacing:.04em}.brand strong{display:block;font-size:13px}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.nav{display:grid;gap:3px}.nav-item{border:0;background:transparent;border-radius:10px;color:#5d5d5d;min-height:42px;padding:0 10px;display:flex;gap:11px;align-items:center;text-align:left;transition:.16s ease;font-size:13px}.nav-item:hover{background:#f0f0ed;color:var(--text)}.nav-item.active{background:#eaeae7;color:var(--text);font-weight:650}.nav-glyph{width:17px;text-align:center;color:#7c7c78}.nav-count{margin-left:auto;min-width:21px;height:21px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#deded9;color:#555;font-size:10px;font-weight:700}.sidebar-bottom{margin-top:auto}.privacy-note{font-size:10px;line-height:1.5;color:#9a9a96;padding:12px 10px}
.main{min-width:0;padding:0 42px 70px;max-width:1480px;width:100%;margin:0 auto}.topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between}.crumb{display:flex;align-items:center;gap:8px;color:#777;font-size:11px;font-weight:600}.language-dot{width:7px;height:7px;border-radius:50%;background:#404040}.muted-dot{color:#c4c4c1}.top-actions{display:flex;align-items:center;gap:9px}.script-switch{background:#eaeae7;padding:3px;border-radius:9px;display:flex}.script-btn{border:0;background:transparent;color:#777;padding:7px 9px;border-radius:7px;font-size:10px;font-weight:700}.script-btn.active{background:#fff;color:#222;box-shadow:0 1px 4px rgba(0,0,0,.07)}.icon-btn{width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:10px;color:#777}.view{display:none}.view.active{display:block}
.hero{margin-top:38px;background:#1f1f1f;color:#fff;border-radius:26px;padding:44px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:32px;box-shadow:var(--shadow)}.kicker,.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:800;color:#91918d}.hero .kicker{color:#a8a8a2}.hero h1{font-size:42px;line-height:1.06;letter-spacing:-.045em;margin:14px 0 16px;font-weight:680}.hero-copy{max-width:720px;color:#bcbcb7;line-height:1.65;font-size:14px;margin:0}.hero-actions{display:flex;gap:10px;margin-top:28px}.btn{border:1px solid transparent;border-radius:11px;padding:11px 15px;font-size:12px;font-weight:700;transition:.15s}.btn.primary{background:#fff;color:#1e1e1e}.btn.secondary{background:#f0f0ed;color:#242424;border-color:#e4e4e0}.btn.tertiary{background:#fff;border-color:var(--line);color:#555}.btn.danger{background:var(--bad-bg);color:var(--bad);border-color:#efd2d2}.btn.wide{width:100%;margin-top:20px}.hero-status{display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid #383838}.ring{width:122px;height:122px;border-radius:50%;background:conic-gradient(#f5f5f1 0 95%,#444 95% 100%);display:grid;place-items:center;position:relative}.ring:after{content:"";position:absolute;inset:8px;background:#1f1f1f;border-radius:50%}.ring>div{position:relative;z-index:2;text-align:center}.ring strong{display:block;font-size:27px}.ring span{color:#8d8d89;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.hero-status p{margin:15px 0 3px;color:#92928e;font-size:10px}.hero-status>strong{font-size:13px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.metric-card,.level-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:19px 20px}.metric-label{display:block;color:#777;font-size:10px;font-weight:650;margin-bottom:18px}.metric-card strong,.level-card strong{display:block;font-size:27px;letter-spacing:-.035em;font-weight:650}.metric-card small,.level-card small{display:block;color:#989894;font-size:10px;margin-top:5px}.home-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.panel-head h2{font-size:17px;margin:5px 0 0;letter-spacing:-.025em}.next-panel>p,.subtle-copy{color:#777;font-size:12px;line-height:1.65}.status-pill{border-radius:999px;background:#f0f0ed;color:#62625e;font-size:9px;font-weight:750;padding:6px 9px}.next-meta{display:flex;gap:26px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px;color:#8e8e89;font-size:10px}.next-meta b{color:#363633}.memory-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;margin-top:23px}.memory-flow div{text-align:center}.memory-flow div span{width:30px;height:30px;border-radius:9px;background:#f0f0ed;display:grid;place-items:center;margin:0 auto 8px;font-size:10px;font-weight:800}.memory-flow p{margin:0;color:#60605d;font-size:10px;line-height:1.4}.memory-flow i{font-style:normal;color:#c0c0bb}.chart-panel{margin-top:14px}.text-btn{border:0;background:transparent;color:#757570;font-size:10px;font-weight:700;padding:6px}canvas{width:100%;display:block;margin-top:20px}
.page-head{margin:43px 0 26px;max-width:800px}.page-head.split{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.page-head h1{font-size:32px;letter-spacing:-.04em;margin:8px 0 9px;font-weight:650}.page-head p{margin:0;color:#7b7b76;font-size:12px;line-height:1.6}.length-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.length-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;text-align:left;transition:.15s}.length-card:hover,.length-card.active{border-color:#aaa9a3;box-shadow:0 8px 26px rgba(0,0,0,.04)}.length-card.active{background:#1f1f1f;color:#fff}.length-card strong{display:block;font-size:13px}.length-card span{display:block;color:#999994;font-size:10px;margin-top:5px}.length-card.active span{color:#aaa}.section-divider{height:1px;background:var(--line);margin:28px 0}.topic-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.topic-head h2{font-size:20px;letter-spacing:-.025em;margin:6px 0 0}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.topic-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;text-align:left;min-height:205px;display:flex;flex-direction:column;transition:.15s}.topic-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d5d5d0}.topic-card .topic-no{font-size:9px;color:#aaa;letter-spacing:.1em;text-transform:uppercase}.topic-card h3{font-size:18px;letter-spacing:-.025em;margin:18px 0 9px}.topic-card p{color:#7c7c77;font-size:11px;line-height:1.55;margin:0}.topic-card footer{margin-top:auto;padding-top:20px;display:flex;justify-content:space-between;align-items:center;color:#8c8c87;font-size:9px}.coverage-chip{background:var(--good-bg);color:var(--good);padding:5px 8px;border-radius:999px;font-weight:750}
.hidden{display:none!important}.reader-topline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:27px 0 15px}.back-btn{justify-self:start;border:0;background:transparent;color:#777;font-size:11px;padding:7px 0}.reader-meta{display:flex;gap:8px;color:#999;font-size:10px}.reader-topline .btn{justify-self:end}.reader-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.72fr);gap:14px}.reading-card,.analysis-card{background:#fff;border:1px solid var(--line);border-radius:20px}.reading-card{padding:33px}.reading-header h1{font-size:29px;letter-spacing:-.035em;margin:7px 0 8px}.reading-header p{color:#888883;font-size:11px;line-height:1.55;margin:0;max-width:700px}.text-toolbar{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;margin-top:22px;color:#9a9a96;font-size:9px}.target-text{font-family:Inter,system-ui,sans-serif;font-size:19px;line-height:2.05;margin-top:15px;color:#252523;user-select:text}.word{border-radius:5px;padding:2px 1px;margin:0 1px;cursor:pointer;transition:.12s}.word:hover{background:#efefec}.word.learning.highlight{background:var(--warn-bg);color:#72510f}.word.known.highlight{background:var(--good-bg);color:var(--good)}.word.unknown.highlight{background:var(--bad-bg);color:var(--bad)}.selection-hint{margin-top:26px;border-top:1px solid var(--line);padding-top:17px;color:#999994;font-size:9px}.reading-card>.btn{margin-top:12px}.analysis-card{padding:22px;align-self:start;position:sticky;top:92px;min-height:390px}.analysis-empty{text-align:center;padding:62px 15px;color:#8b8b87}.analysis-symbol{width:45px;height:45px;border-radius:13px;background:#f0f0ed;display:grid;place-items:center;margin:0 auto 13px;color:#4f4f4c;font-weight:800}.analysis-empty h3{margin:0 0 7px;color:#40403d;font-size:14px}.analysis-empty p{font-size:10px;line-height:1.5;margin:0}.word-headline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.word-headline h2{font-size:29px;margin:0;letter-spacing:-.03em}.word-headline small{display:block;color:#aaa;font-size:10px;margin-top:4px}.meaning{font-size:17px;font-weight:650;margin:20px 0}.morph-table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.morph-row{display:grid;grid-template-columns:95px 1fr;gap:10px;padding:9px 10px;border-bottom:1px solid var(--line);font-size:10px}.morph-row:last-child{border-bottom:0}.morph-row span:first-child{color:#999}.morph-row span:last-child{font-weight:650}.context-box{margin-top:13px;background:#f7f7f5;border-radius:12px;padding:13px}.context-box p{margin:0;font-size:11px;line-height:1.55}.context-box small{display:block;color:#999;margin-top:6px}.analysis-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.analysis-actions button{border:0;border-radius:10px;padding:10px;font-size:10px;font-weight:750}.unknown-btn{background:var(--warn-bg);color:#785913}.known-btn{background:var(--good-bg);color:var(--good)}.grammar-note{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.grammar-note strong{font-size:10px}.grammar-note p{font-size:10px;line-height:1.55;color:#777;margin:6px 0 0}
.review-options{display:flex;gap:10px;align-items:end}.select-label{display:grid;gap:5px;color:#999;font-size:9px}select,.search{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;color:#444;font-size:10px;outline:none}.check-row{display:flex;align-items:center;gap:7px;color:#777;font-size:10px;padding-bottom:9px}.review-shell{max-width:730px;margin:20px auto 0}.review-progress{display:flex;justify-content:space-between;color:#999;font-size:9px;margin-bottom:9px}.review-bar{height:4px;background:#e9e9e5;border-radius:999px;overflow:hidden;margin-bottom:15px}.review-bar span{display:block;height:100%;background:#3b3b39}.flashcard{min-height:360px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px;display:grid;place-items:center;text-align:center}.card-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#aaa}.card-main{font-size:34px;letter-spacing:-.035em;font-weight:650;margin:18px 0}.card-example{margin-top:24px;color:#70706b;font-size:12px;font-style:italic}.card-hint{color:#aaa;font-size:9px;margin-top:7px}.flashcard button{margin-top:22px}.rating-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.rating-row button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;font-size:10px;font-weight:700}.rating-row .again{color:var(--bad)}.rating-row .easy{color:var(--good)}.review-empty{background:#fff;border:1px dashed #d6d6d1;border-radius:20px;padding:50px;text-align:center;color:#81817d}.review-empty h3{color:#333;font-size:16px;margin:0 0 8px}.review-empty p{font-size:10px;line-height:1.6}
.lexicon-actions{display:flex;gap:8px}.search{min-width:210px}.lexicon-table{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.lex-row{display:grid;grid-template-columns:1.15fr 1.05fr .75fr .75fr .65fr;gap:14px;align-items:center;padding:13px 17px;border-bottom:1px solid var(--line);font-size:10px}.lex-row:last-child{border-bottom:0}.lex-row.header{background:#fafaf8;color:#999;font-size:9px;font-weight:700}.lex-target strong{display:block;font-size:14px}.lex-target small{display:block;color:#aaa;margin-top:3px}.lex-state{display:inline-flex;width:max-content;padding:5px 7px;border-radius:999px;font-size:9px;font-weight:750}.lex-state.known{background:var(--good-bg);color:var(--good)}.lex-state.learning{background:var(--warn-bg);color:var(--warn)}.empty-row{padding:35px;text-align:center;color:#999;font-size:10px}
.progress-top{display:grid;grid-template-columns:230px 1fr;gap:14px;margin-bottom:14px}.level-card{display:flex;flex-direction:column;justify-content:center}.level-card strong{font-size:48px}.progress-chart-card{min-width:0}.grammar-list{display:grid;gap:13px;margin-top:20px}.grammar-item{display:grid;grid-template-columns:180px 1fr 42px;gap:13px;align-items:center;font-size:10px}.grammar-track{height:7px;background:#efefec;border-radius:999px;overflow:hidden}.grammar-fill{height:100%;background:#3a3a37;border-radius:999px}.grammar-item b{text-align:right;font-size:9px;color:#666}.history-panel{margin-top:14px}.history-row{display:grid;grid-template-columns:1.3fr .5fr .6fr .6fr;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:10px}.history-row:last-child{border-bottom:0}.history-row span{color:#888}.history-row strong{font-weight:650}

.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.setting-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;font-size:10px}.setting-row:first-of-type{margin-top:18px}.setting-row span{color:#888}.setting-row strong{font-weight:650}.danger-zone{display:flex;gap:8px;margin-top:15px}.add-language-panel{background:#fafaf8}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#202020;color:#fff;border-radius:999px;padding:10px 14px;font-size:10px;font-weight:650;opacity:0;pointer-events:none;transition:.2s;z-index:99}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.app{grid-template-columns:76px 1fr}.sidebar{padding:20px 11px}.brand span:last-child,.nav-item span:not(.nav-glyph):not(.nav-count),.privacy-note{display:none}.brand{justify-content:center}.nav-item{justify-content:center}.nav-count{position:absolute;margin:0 0 25px 28px}.sidebar-bottom{display:grid}.main{padding:0 26px 55px}.hero{grid-template-columns:1fr}.hero-status{border-left:0;border-top:1px solid #383838;padding-top:24px}}
@media(max-width:780px){.app{display:block}.sidebar{position:fixed;bottom:0;top:auto;width:100%;height:66px;border-right:0;border-top:1px solid var(--line);padding:7px 10px;z-index:50}.brand,.sidebar-bottom{display:none}.nav{display:grid;grid-template-columns:repeat(6,1fr);height:100%}.nav-item{min-height:auto;padding:0}.nav-count{position:absolute;margin:0 0 27px 25px}.main{padding:0 16px 95px}.topbar{min-height:64px}.hero{padding:29px 24px;margin-top:20px}.hero h1{font-size:32px}.metric-grid{grid-template-columns:1fr 1fr}.home-grid,.settings-grid,.reader-layout,.progress-top{grid-template-columns:1fr}.length-grid{grid-template-columns:1fr 1fr}.topic-grid{grid-template-columns:1fr}.page-head.split{align-items:flex-start;flex-direction:column}.reader-topline{grid-template-columns:1fr 1fr}.reader-meta{display:none}.reading-card{padding:23px}.analysis-card{position:static}.lex-row{grid-template-columns:1fr 1fr}.lex-row>*:nth-child(3),.lex-row>*:nth-child(4){display:none}.grammar-item{grid-template-columns:110px 1fr 35px}.history-row{grid-template-columns:1fr 1fr}.history-row>*:nth-child(3),.history-row>*:nth-child(4){display:none}}

/* V2: multi-language */
.language-select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;color:#444;font-size:10px;font-weight:700;outline:none;min-width:138px}
.language-select:focus{border-color:#b7b7b1}
.script-switch.is-hidden{display:none}
.module-list{display:grid;gap:8px;margin-top:16px}.module-list span{display:flex;align-items:center;justify-content:space-between;background:#f3f3f0;border-radius:10px;padding:10px 12px;font-size:10px;font-weight:650}.module-list span:after{content:'actif';font-size:8px;color:var(--good);background:var(--good-bg);border-radius:999px;padding:4px 7px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:780px){.language-select{min-width:112px;max-width:145px}.script-switch{display:none}}


/* --- Contextual explanations --- */
.analysis-card{min-height:500px}
.analysis-prose{display:grid;gap:13px;margin-top:17px}
.analysis-prose p{margin:0;color:#565652;font-size:11px;line-height:1.72}
.analysis-prose strong{color:#252523}
.explanation-block{background:#f7f7f5;border:1px solid #ecece8;border-radius:13px;padding:14px}
.explanation-block h4{margin:0 0 7px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#777}
.context-translation{margin-top:7px!important;color:#8a8a85!important;font-size:10px!important}
.word-form-line{font-size:11px;color:#6c6c67;margin-top:4px}
.analysis-divider{height:1px;background:var(--line);margin:3px 0}
.breakdown-list{display:grid;gap:9px;margin-top:13px}
.breakdown-item{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.breakdown-item-header{display:flex;align-items:baseline;gap:9px;margin-bottom:5px}
.breakdown-token{font-weight:760;font-size:14px}
.breakdown-gloss{font-size:10px;color:#7c7c77}
.breakdown-item p{margin:0;color:#62625e;font-size:10px;line-height:1.6}
.sentence-translation{font-size:16px;font-weight:650;line-height:1.45;margin:8px 0 0}
.sentence-original{font-size:15px;line-height:1.6;margin:0}
.analysis-section-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:#888;margin:2px 0 0}

/* --- Alphabet learning --- */
.alphabet-head-actions{display:flex;align-items:center;gap:10px}
.alphabet-progress-chip{background:#fff;border:1px solid var(--line);border-radius:13px;padding:8px 12px;min-width:88px}
.alphabet-progress-chip strong{display:block;font-size:17px;line-height:1}
.alphabet-progress-chip span{display:block;font-size:8px;color:#999;margin-top:4px;text-transform:uppercase;letter-spacing:.08em}
.alphabet-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,.6fr);gap:14px}
.alphabet-list-panel{min-width:0}
.alphabet-focus-panel{align-self:start;position:sticky;top:92px;min-height:360px}
.alphabet-grid{display:grid;grid-template-columns:repeat(8,minmax(54px,1fr));gap:8px;margin-top:18px}
.alphabet-letter{
  border:1px solid var(--line);background:#fff;border-radius:12px;min-height:68px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  transition:.15s ease;padding:7px;
}
.alphabet-letter:hover{border-color:#b9b9b3;transform:translateY(-1px)}
.alphabet-letter.learned{background:var(--good-bg);border-color:#d9e9df}
.alphabet-letter strong{font-size:21px;letter-spacing:-.02em}
.alphabet-letter small{font-size:8px;color:#999;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alphabet-focus-char{font-size:64px;font-weight:650;letter-spacing:-.05em;margin:5px 0 7px}
.alphabet-focus-equivalent{font-size:12px;color:#777;margin:0 0 17px}
.alphabet-example{background:#f7f7f5;border-radius:13px;padding:14px;margin:15px 0}
.alphabet-example strong{font-size:15px}
.alphabet-example p{font-size:10px;color:#777;margin:6px 0 0;line-height:1.55}
.alphabet-mark-btn{width:100%;margin-top:10px}
.alphabet-practice-panel{margin-top:14px}
.alphabet-practice-wrap{max-width:720px;margin:22px auto 5px;text-align:center}
.alphabet-question{font-size:13px;color:#777;margin-bottom:17px}
.alphabet-prompt{font-size:40px;font-weight:700;letter-spacing:-.03em;margin:8px 0 22px}
.alphabet-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.alphabet-option{border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px;font-size:17px;font-weight:700}
.alphabet-option:hover{background:#f5f5f2}
.alphabet-option.correct{background:var(--good-bg);border-color:#cfe2d7;color:var(--good)}
.alphabet-option.wrong{background:var(--bad-bg);border-color:#edcdcd;color:var(--bad)}
.alphabet-feedback{min-height:25px;margin-top:14px;font-size:10px;color:#777}
.alphabet-nav-count{min-width:34px}
.module-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.module-list span{background:#f0f0ed;border-radius:999px;padding:6px 8px;font-size:9px;color:#666}

@media(max-width:1000px){
  .alphabet-grid{grid-template-columns:repeat(6,minmax(52px,1fr))}
}
@media(max-width:780px){
  .nav{grid-template-columns:repeat(7,1fr)}
  .alphabet-nav-count{display:none!important}
  .alphabet-layout{grid-template-columns:1fr}
  .alphabet-focus-panel{position:static}
  .alphabet-grid{grid-template-columns:repeat(5,minmax(48px,1fr))}
  .alphabet-head-actions{align-items:stretch;flex-direction:column}
  .alphabet-options{grid-template-columns:1fr 1fr}
}


/* ===== Alphabet trainer V3 ===== */
.alphabet-page-head{max-width:none}
.alphabet-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.alphabet-summary h2{font-size:19px;margin:5px 0 0}
.alphabet-summary .subtle-copy{margin:7px 0 0;max-width:720px}
.alphabet-legend{display:flex;flex-wrap:wrap;gap:12px;color:#858580;font-size:9px;white-space:nowrap}
.alphabet-legend span{display:flex;align-items:center;gap:5px}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;border:1px solid #d7d7d2;background:transparent}
.status-dot.learning{border-color:#d7ad45;background:#f1c75b}
.status-dot.mastered{border-color:#6caa86;background:#6caa86}
.alphabet-grid{grid-template-columns:repeat(7,minmax(70px,1fr))}
.alphabet-letter{position:relative;min-height:86px;background:transparent}
.alphabet-letter .letter-status{position:absolute;right:7px;top:7px;width:8px;height:8px;border-radius:50%;border:1px solid #d7d7d2;background:transparent}
.alphabet-letter.learning{background:#fff9e8;border-color:#ead9a2}
.alphabet-letter.learning .letter-status{background:#f1c75b;border-color:#d7ad45}
.alphabet-letter.mastered{background:#eff7f2;border-color:#d5e7dc}
.alphabet-letter.mastered .letter-status{background:#66a780;border-color:#66a780}
.alphabet-letter.future{opacity:.78}
.alphabet-letter strong{font-size:24px}
.alphabet-letter small{font-size:9px;color:#858580;white-space:normal;line-height:1.25;text-align:center}
.alphabet-letter em{font-style:normal;font-size:8px;color:#aaa;margin-top:1px}
.alphabet-focus-panel{min-height:420px}
.alphabet-focus-char{font-size:72px;margin-top:10px}
.alphabet-sound-hint{display:inline-flex;align-items:center;background:#f1f1ee;border-radius:999px;padding:7px 10px;font-size:10px;color:#555;margin:4px 0 12px}
.speak-letter-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:12px 0 5px}
.audio-disclaimer{font-size:8px;color:#aaa;line-height:1.5;margin:8px 0 0}
.alphabet-session-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px}
.alphabet-session-head h2{font-size:20px;margin:5px 0 0}
.alphabet-session-head p{margin:6px 0 0}
.alphabet-session-actions{display:flex;gap:8px;align-items:center}
.batch-strip{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 8px}
.batch-chip{border:1px solid var(--line);border-radius:11px;padding:8px 10px;display:flex;align-items:center;gap:7px;background:#fff}
.batch-chip.current{background:#fff9e8;border-color:#ead9a2}.batch-chip.done{background:#eff7f2;border-color:#d5e7dc}
.batch-chip strong{font-size:15px}.batch-chip span{font-size:8px;color:#999}
.alphabet-practice-wrap{max-width:760px;margin:26px auto 5px}
.exercise-type{text-align:center;color:#999;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.alphabet-question{text-align:center;margin:9px 0 16px;font-size:13px;color:#555}
.audio-prompt{display:flex;justify-content:center;margin:16px 0 22px}
.audio-circle{width:78px;height:78px;border-radius:50%;border:1px solid var(--line);background:#f7f7f4;font-size:25px;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.audio-circle:hover{background:#eeeeea}
.alphabet-options{max-width:560px;margin:0 auto}
.alphabet-option{min-height:58px}
.transcription-card{text-align:center;background:#f7f7f5;border:1px solid var(--line);border-radius:16px;padding:22px;margin:12px auto 17px;max-width:520px}
.transcription-card .target-word{display:block;font-size:34px;font-weight:680;letter-spacing:.03em}
.transcription-card small{display:block;color:#999;font-size:9px;margin-top:5px}
.alpha-answer-row{max-width:560px;margin:0 auto;display:flex;gap:8px}
.alpha-text-input{flex:1;border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px 13px;outline:none;font-size:16px;text-align:center}
.alpha-text-input:focus{border-color:#aaa}
.keyboard-toggle{border:1px solid var(--line);background:#f5f5f2;border-radius:11px;padding:0 13px;font-size:16px}
.virtual-keyboard{max-width:650px;margin:12px auto 0;padding:12px;background:#f2f2ef;border-radius:14px;display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.virtual-key{border:1px solid #deded9;background:#fff;border-radius:8px;padding:8px 3px;font-size:13px;font-weight:650;min-width:0}
.virtual-key.current{background:#fff3c9;border-color:#e2c76b}
.virtual-key.utility{font-size:10px;color:#777}
.keyboard-hidden{display:none}
.alpha-submit{display:block;margin:11px auto 0;min-width:150px}
.alphabet-feedback{text-align:center;min-height:32px}
.exercise-next{display:block;margin:7px auto 0}
.batch-complete{text-align:center;padding:35px 15px}
.batch-complete-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--good-bg);color:var(--good);font-size:24px;margin:0 auto 14px}
.batch-complete h3{font-size:19px;margin:0 0 7px}.batch-complete p{color:#777;font-size:10px;line-height:1.6;max-width:500px;margin:0 auto 17px}

@media(max-width:1000px){.alphabet-grid{grid-template-columns:repeat(5,minmax(58px,1fr))}.virtual-keyboard{grid-template-columns:repeat(8,1fr)}}
@media(max-width:780px){.alphabet-summary{align-items:flex-start;flex-direction:column}.alphabet-legend{white-space:normal}.alphabet-grid{grid-template-columns:repeat(4,minmax(54px,1fr))}.virtual-keyboard{grid-template-columns:repeat(6,1fr)}.alphabet-session-head{flex-direction:column}.alphabet-session-actions{width:100%;justify-content:space-between}}


/* ===== Alphabet trainer V4: finite immersive sessions ===== */
.alphabet-letter em{display:none!important}
.alphabet-practice-panel{
  position:fixed!important;inset:0!important;margin:0!important;padding:28px!important;z-index:120;
  background:rgba(20,20,19,.48);backdrop-filter:blur(14px);display:grid;place-items:center;
}
.alphabet-practice-panel.hidden{display:none!important}
.alphabet-session-window{
  width:min(1040px,96vw);height:min(760px,92vh);background:#fbfbf9;border:1px solid rgba(255,255,255,.55);
  border-radius:28px;box-shadow:0 30px 90px rgba(0,0,0,.22);overflow:hidden;display:grid;
  grid-template-rows:auto 5px auto minmax(0,1fr);position:relative;
}
.alphabet-session-topbar{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:22px 26px 18px;border-bottom:1px solid var(--line)}
.session-close{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:24px;line-height:1;color:#666}
.session-heading h2{font-size:21px;letter-spacing:-.03em;margin:4px 0 0}.session-heading p{margin:4px 0 0}
.session-counter{display:flex;align-items:baseline;gap:4px;color:#999;font-size:11px}.session-counter strong{font-size:22px;color:#2d2d2a}
.alphabet-session-progress{height:5px;background:#ecece8}.alphabet-session-progress span{display:block;height:100%;width:0;background:#33332f;transition:width .25s ease}
.session-letter-strip{display:flex;gap:8px;justify-content:center;padding:14px 22px 0;min-height:54px}
.session-letter-chip{width:43px;height:43px;border-radius:13px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;font-weight:760;font-size:18px}
.session-letter-chip.new{background:#fff6d8;border-color:#ead18a}
.session-letter-chip.mastered{background:#eaf4ee;border-color:#cae0d2}
.alphabet-session-body{min-height:0;overflow:auto;display:grid;align-items:center;padding:20px 36px 34px}
.alphabet-practice-wrap{width:min(820px,100%);max-width:820px;margin:0 auto;text-align:center}
.exercise-type{font-size:10px;color:#9a9a95;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.alphabet-question{font-size:17px;color:#3e3e3a;margin:10px 0 22px;line-height:1.45}
.exercise-letter-large{font-size:104px;line-height:1;font-weight:680;letter-spacing:-.06em;margin:12px 0 30px}
.audio-prompt .audio-circle{width:104px;height:104px;font-size:31px}
.alphabet-options{max-width:680px;gap:12px}.alphabet-option{min-height:76px;font-size:25px;border-radius:15px}
.audio-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:650px;margin:0 auto}
.audio-choice-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.audio-choice-play{height:62px;border:0;background:#f2f2ef;border-radius:13px;font-size:24px}.audio-choice-play:hover{background:#e9e9e5}
.audio-choice-select{height:62px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:0 15px;font-size:10px;font-weight:800;color:#555}
.transcription-card{max-width:660px;padding:27px}.transcription-card .target-word{font-size:45px}
.alpha-answer-row{max-width:660px}.alpha-text-input{font-size:22px;padding:15px}.keyboard-toggle{padding:0 18px}
.virtual-keyboard{max-width:760px;grid-template-columns:repeat(10,1fr)}
.alpha-submit{min-width:180px;padding:13px 19px;margin-top:15px}
.session-feedback-overlay{position:absolute;inset:0;z-index:4;background:rgba(238,248,242,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;transition:opacity .12s}
.session-feedback-overlay.hidden{display:none}
.session-feedback-overlay.incorrect{background:rgba(251,237,237,.97)}
.feedback-symbol{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:#58a373;color:#fff;font-size:46px;font-weight:800;margin-bottom:18px}
.session-feedback-overlay.incorrect .feedback-symbol{background:#c96a6a}.session-feedback-overlay strong{font-size:27px;letter-spacing:-.03em}.session-feedback-overlay p{margin:8px 0 0;color:#6f6f69;font-size:12px;max-width:520px;line-height:1.6}
.session-complete{max-width:600px;margin:0 auto;text-align:center}.session-complete .complete-icon{width:86px;height:86px;border-radius:50%;background:#e9f4ed;color:#4c8c65;display:grid;place-items:center;font-size:42px;margin:0 auto 20px}.session-complete h3{font-size:30px;letter-spacing:-.04em;margin:0 0 9px}.session-complete p{color:#777;font-size:12px;line-height:1.65;margin:0 auto 22px}.session-complete-actions{display:flex;justify-content:center;gap:9px}.session-result{display:inline-flex;background:#f0f0ed;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:750;margin-bottom:18px}
.alphabet-focus-ipa{font-size:12px;color:#999;margin:-6px 0 10px}.audio-disclaimer{display:none!important}

@media(max-width:780px){
  .alphabet-practice-panel{padding:0!important}.alphabet-session-window{width:100vw;height:100dvh;max-height:none;border-radius:0;border:0}
  .alphabet-session-topbar{padding:16px;grid-template-columns:40px 1fr auto}.session-heading p{display:none}.session-heading h2{font-size:17px}
  .alphabet-session-body{padding:18px 16px 28px}.exercise-letter-large{font-size:86px}.audio-choice-grid{grid-template-columns:1fr 1fr}.alphabet-option{font-size:21px;min-height:66px}.virtual-keyboard{grid-template-columns:repeat(6,1fr)}
}


/* ===== V5: IPA sound bank + selectable dark mode ===== */
.settings-select{
  border:1px solid var(--line);background:var(--surface);color:var(--text);
  border-radius:10px;padding:8px 10px;font-size:10px;font-weight:700;outline:none;min-width:120px;
}
.appearance-setting{align-items:center}
.audio-source-link{
  display:block;text-align:center;margin:8px 0 2px;color:var(--muted);font-size:8px;
  text-decoration:none;
}
.audio-source-link:hover{text-decoration:underline}
.audio-source-link.fallback{opacity:.75}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#111210;
  --surface:#191a17;
  --text:#f1f1ed;
  --muted:#a3a39d;
  --line:#2c2d29;
  --good:#80c59d;
  --good-bg:#173126;
  --warn:#e1bb62;
  --warn-bg:#372d17;
  --bad:#df8888;
  --bad-bg:#3a2020;
  --shadow:0 18px 50px rgba(0,0,0,.3);
}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .sidebar{background:rgba(18,19,16,.95)}
html[data-theme="dark"] .brand-mark{background:#f1f1ed;color:#171815}
html[data-theme="dark"] .nav-item{color:#b0b0aa}
html[data-theme="dark"] .nav-item:hover{background:#22231f;color:var(--text)}
html[data-theme="dark"] .nav-item.active{background:#292a26;color:var(--text)}
html[data-theme="dark"] .nav-count{background:#30312d;color:#bbb}
html[data-theme="dark"] .language-select,
html[data-theme="dark"] select,
html[data-theme="dark"] .search,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .alpha-text-input,
html[data-theme="dark"] .settings-select{background:#1c1d1a;color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .script-switch{background:#242521}
html[data-theme="dark"] .script-btn{color:#aaa}
html[data-theme="dark"] .script-btn.active{background:#33342f;color:#fff}
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .btn.tertiary,
html[data-theme="dark"] .btn.secondary{background:#242521;color:#e4e4df;border-color:#32332e}
html[data-theme="dark"] .btn.primary{background:#f1f1ed;color:#181916}
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .level-card,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .length-card,
html[data-theme="dark"] .topic-card,
html[data-theme="dark"] .reading-card,
html[data-theme="dark"] .analysis-card,
html[data-theme="dark"] .lexicon-table,
html[data-theme="dark"] .flashcard,
html[data-theme="dark"] .alphabet-progress-chip{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .length-card.active{background:#ecece7;color:#1a1a18}
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .memory-flow div span,
html[data-theme="dark"] .analysis-symbol,
html[data-theme="dark"] .alphabet-sound-hint,
html[data-theme="dark"] .session-result{background:#282925;color:#c6c6c0}
html[data-theme="dark"] .explanation-block,
html[data-theme="dark"] .context-box,
html[data-theme="dark"] .alphabet-example,
html[data-theme="dark"] .transcription-card,
html[data-theme="dark"] .coverage-stat{background:#20211e;border-color:var(--line)}
html[data-theme="dark"] .breakdown-item{background:#1d1e1b;border-color:var(--line)}
html[data-theme="dark"] .target-text,
html[data-theme="dark"] .analysis-prose strong,
html[data-theme="dark"] .analysis-empty h3{color:var(--text)}
html[data-theme="dark"] .word:hover{background:#292a26}
html[data-theme="dark"] .alphabet-letter{border-color:var(--line)}
html[data-theme="dark"] .alphabet-letter.learning{background:#342b18;border-color:#6b5727}
html[data-theme="dark"] .alphabet-letter.mastered{background:#183026;border-color:#29513d}
html[data-theme="dark"] .alphabet-letter.future{background:transparent}
html[data-theme="dark"] .alphabet-session-window{background:#161714;border-color:#30312d}
html[data-theme="dark"] .session-close,
html[data-theme="dark"] .session-letter-chip,
html[data-theme="dark"] .audio-choice-card,
html[data-theme="dark"] .audio-choice-select,
html[data-theme="dark"] .alphabet-option,
html[data-theme="dark"] .virtual-key{background:#20211e;color:var(--text);border-color:#33342f}
html[data-theme="dark"] .session-letter-chip.new{background:#342b18;border-color:#6b5727}
html[data-theme="dark"] .session-letter-chip.mastered{background:#183026;border-color:#29513d}
html[data-theme="dark"] .audio-choice-play,
html[data-theme="dark"] .audio-circle,
html[data-theme="dark"] .keyboard-toggle,
html[data-theme="dark"] .virtual-keyboard{background:#252622;color:var(--text);border-color:#34352f}
html[data-theme="dark"] .alphabet-session-progress{background:#292a26}
html[data-theme="dark"] .alphabet-session-progress span{background:#deded8}
html[data-theme="dark"] .session-counter strong,
html[data-theme="dark"] .alphabet-question{color:#e5e5df}
html[data-theme="dark"] .session-feedback-overlay{background:rgba(20,44,32,.97)}
html[data-theme="dark"] .session-feedback-overlay.incorrect{background:rgba(55,28,28,.98)}
html[data-theme="dark"] .module-list span{background:#252622;color:#c9c9c3}
html[data-theme="dark"] mark{background:#472525;color:#f1a1a1}


/* ===== V6: Lecture & écriture, not alphabet-for-everything ===== */
.alphabet-letter.reading-unit{min-height:84px}
.alphabet-letter .unit-variant{
  display:block;font-size:8px;color:var(--muted);line-height:1.1;max-width:72px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.unit-focus-variant{
  display:inline-block;background:var(--accent-soft);border-radius:999px;padding:5px 8px;
  color:var(--muted);font-size:9px;margin-bottom:7px;
}
.grapheme-mark{
  background:var(--warn-bg);color:var(--warn);padding:1px 4px;border-radius:5px;
}
.carrier-word-large{
  font-size:50px;font-weight:700;letter-spacing:-.035em;margin:22px auto 30px;
  padding:24px 32px;border:1px solid var(--line);border-radius:18px;max-width:620px;
}
.sound-text-options .alphabet-option{font-size:13px;line-height:1.35}
.alphabet-option small{display:block;font-size:8px;color:var(--muted);margin-top:4px}
.inline-audio{margin:0 auto}
html[data-theme="dark"] .unit-focus-variant{background:#292a26}
html[data-theme="dark"] .grapheme-mark{background:#4a391a;color:#f0ca73}


/* ===== V7: session presentation + target spacing + whole-word audio ===== */
.alpha-intro-screen{
  width:min(980px,100%);margin:auto;text-align:center;padding:10px 0 6px;
}
.alpha-intro-kicker{
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);
}
.alpha-intro-screen h3{
  font-size:29px;letter-spacing:-.035em;margin:8px 0 8px;
}
.alpha-intro-screen>p{
  margin:0 auto 25px;max-width:650px;color:var(--muted);font-size:11px;line-height:1.6;
}
.alpha-intro-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
}
.alpha-intro-card{
  border:1px solid var(--line);border-radius:20px;background:var(--surface-2,#fafaf8);
  padding:23px 18px;min-height:285px;display:flex;flex-direction:column;align-items:center;
}
.alpha-intro-symbol{
  width:92px;height:92px;border:1px solid var(--line);border-radius:23px;background:var(--surface);
  color:var(--text);font-size:47px;font-weight:760;cursor:pointer;
  box-shadow:0 7px 24px rgba(0,0,0,.035);
}
.alpha-intro-symbol:hover{transform:translateY(-1px);border-color:#aaa9a3}
.alpha-intro-sound{font-size:13px;margin-top:15px}
.alpha-intro-ipa{font-size:10px;color:var(--muted);margin-top:5px}
.alpha-intro-variant{
  margin-top:7px;padding:4px 7px;border-radius:999px;background:var(--accent-soft);
  color:var(--muted);font-size:8px;
}
.alpha-intro-example{
  margin-top:18px;font-size:21px;font-weight:700;min-height:34px;
}
.alpha-word-audio{margin-top:auto;width:100%}
.alpha-intro-start{margin-top:22px;min-width:220px;padding:13px 20px}
.carrier-word-audio{margin:-16px auto 25px;display:block}
html[data-theme="dark"] .alpha-intro-card{background:#1e1f1c}
html[data-theme="dark"] .alpha-intro-symbol{background:#242521;color:var(--text)}
@media(max-width:780px){
  .alpha-intro-grid{grid-template-columns:1fr}
  .alpha-intro-card{min-height:220px}
  .alpha-intro-screen h3{font-size:24px}
}


/* ===== V8 — only Lire & écrire ===== */
.rw-home{max-width:1120px;margin:32px auto 0}
.rw-main-card{
  min-height:510px;border:1px solid var(--line);border-radius:28px;background:var(--surface);
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.55fr);
  gap:30px;padding:48px;box-shadow:var(--shadow);align-items:center;
}
.rw-main-copy{max-width:680px}
.rw-badge{
  display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--accent-soft);
  color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
}
.rw-main-copy h1{font-size:44px;line-height:1.05;letter-spacing:-.05em;margin:14px 0 12px}
.rw-main-copy>p{font-size:13px;line-height:1.65;color:var(--muted);max-width:620px;margin:0}
.rw-next-block{margin-top:32px;padding:20px;border-radius:18px;background:var(--bg);border:1px solid var(--line)}
.rw-mini-label{font-size:8px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.rw-next-block>strong{display:block;font-size:18px;margin-top:7px}
.rw-next-block>p{color:var(--muted);font-size:10px;margin:10px 0 0}
.rw-next-units{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.rw-next-units span{
  min-width:48px;height:48px;padding:0 10px;display:grid;place-items:center;border-radius:13px;
  background:var(--surface);border:1px solid var(--line);font-size:18px;font-weight:800;
}
.rw-primary-actions{display:flex;gap:10px;margin-top:18px}
.rw-continue{
  border:0;border-radius:13px;background:var(--text);color:var(--surface);
  padding:14px 24px;font-weight:800;font-size:12px;min-width:170px;cursor:pointer;
}
.rw-explore-button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:12px;cursor:pointer}
.rw-progress-side{padding-left:30px;border-left:1px solid var(--line)}
.rw-progress-number strong{display:block;font-size:54px;letter-spacing:-.055em}
.rw-progress-number span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.rw-progress-track{height:8px;background:var(--accent-soft);border-radius:999px;overflow:hidden;margin-top:18px}
.rw-progress-track span{display:block;height:100%;width:0;background:#4587ff;border-radius:999px;transition:width .25s ease}
.rw-progress-side p{font-size:10px;line-height:1.5;color:var(--muted);margin:12px 0 0}
.rw-explorer{margin-top:18px}
.rw-explorer.hidden{display:none}

/* In-word target: blue text only, no highlight box. */
.grapheme-focus{color:#2f7cf6;background:none!important;padding:0!important;border-radius:0!important}
.grapheme-mark{background:none!important;color:#2f7cf6!important;padding:0!important}

/* No fake keyboard: only buttons from the currently introduced Lire & écrire units. */
.compact-answer{max-width:620px;margin-left:auto;margin-right:auto}
.compact-answer .alpha-text-input{text-align:center;font-size:22px;font-weight:700}
.symbol-palette{
  max-width:720px;margin:14px auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;
  padding:0;background:transparent;
}
.symbol-button{
  min-width:52px;height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);
  color:var(--text);font-size:15px;font-weight:800;padding:0 13px;cursor:pointer;
}
.symbol-button:hover{transform:translateY(-1px);border-color:#aaa9a3;background:var(--accent-soft)}
.symbol-button.utility{color:var(--muted)}

html[data-theme="dark"] .rw-main-card,
html[data-theme="dark"] .rw-next-units span,
html[data-theme="dark"] .symbol-button{background:var(--surface)}
html[data-theme="dark"] .rw-next-block{background:#151613}
html[data-theme="dark"] .rw-continue{background:#efefe9;color:#151613}
html[data-theme="dark"] .grapheme-focus,
html[data-theme="dark"] .grapheme-mark{color:#69a2ff!important}

@media(max-width:850px){
  .rw-main-card{grid-template-columns:1fr;padding:28px;min-height:auto}
  .rw-progress-side{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}
  .rw-main-copy h1{font-size:35px}
}
@media(max-width:560px){
  .rw-home{margin-top:18px}
  .rw-main-card{padding:22px;border-radius:22px}
  .rw-primary-actions{flex-direction:column}
  .rw-continue{width:100%}
}


/* ===== V10 accounts + phone/PWA ===== */
.app-locked{visibility:hidden;pointer-events:none;height:100vh;overflow:hidden}
.auth-screen{position:fixed;inset:0;z-index:300;background:var(--bg);display:grid;place-items:center;padding:24px}
.auth-screen.hidden{display:none}
.auth-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.auth-brand strong{display:block;font-size:16px}.auth-brand small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--accent-soft);padding:4px;border-radius:12px;margin-bottom:20px}.auth-tabs button{border:0;background:transparent;border-radius:9px;padding:10px;font-size:10px;font-weight:800;color:var(--muted)}.auth-tabs button.active{background:var(--surface);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.auth-form{display:grid;gap:13px}.auth-form.hidden{display:none}.auth-form label{display:grid;gap:6px;font-size:9px;font-weight:750;color:var(--muted)}.auth-form input{width:100%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:12px;padding:12px 13px;outline:none;font-size:13px}.auth-form input:focus{border-color:#8f8f88}.auth-submit{border:0;border-radius:12px;background:var(--text);color:var(--surface);padding:13px;font-size:11px;font-weight:800;margin-top:4px}.auth-submit:disabled{opacity:.6}.auth-message{min-height:18px;margin:12px 0 0;color:var(--bad);font-size:10px;text-align:center}.auth-message[data-type="ok"]{color:var(--good)}.auth-footnote{margin:10px 10px 0;text-align:center;color:var(--muted);font-size:9px;line-height:1.5}
.account-pill{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:5px 9px 5px 5px;font-size:9px;font-weight:750}.account-avatar{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft)}
html[data-theme="dark"] .auth-card,html[data-theme="dark"] .auth-tabs button.active,html[data-theme="dark"] .account-pill{background:var(--surface)}

/* iPhone safe areas and phone navigation */
body{padding-top:env(safe-area-inset-top)}
@media(max-width:780px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .sidebar{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:calc(7px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(18px)}
  .nav{grid-template-columns:repeat(7,1fr)}
  .main{padding:0 14px 24px}
  .topbar{position:sticky;top:env(safe-area-inset-top);z-index:35;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px);margin:0 -14px;padding:0 14px}
  .crumb{max-width:42vw;overflow:hidden;white-space:nowrap}.crumb span{overflow:hidden;text-overflow:ellipsis}
  .language-select{max-width:125px}.account-pill span:last-child{display:none}.account-pill{padding-right:5px}
  .hero{margin-top:12px;padding:25px 21px;border-radius:22px}.hero h1{font-size:29px}.hero-copy{font-size:12px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}
  .metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{padding:15px}.metric-card strong{font-size:23px}
  .home-grid{grid-template-columns:1fr}.panel{padding:19px;border-radius:16px}.chart-panel{overflow:hidden}
  .page-head{margin:24px 0 18px}.page-head h1{font-size:27px}.page-head.split{display:block}.page-head.split>div+div{margin-top:14px}
  .reader-layout{grid-template-columns:1fr}.reading-card{padding:20px}.target-text{font-size:18px;line-height:1.9}.analysis-card{position:static;min-height:300px}
  .length-grid{grid-template-columns:1fr 1fr}.topic-grid{grid-template-columns:1fr}.topic-card{min-height:170px}
  .review-options,.lexicon-actions{width:100%;flex-wrap:wrap}.search{min-width:0;flex:1}.lexicon-table{overflow-x:auto}
  .settings-grid{grid-template-columns:1fr}.progress-top{grid-template-columns:1fr}
  .auth-screen{padding:14px;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom))}.auth-card{padding:22px;border-radius:22px;max-height:calc(100vh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto}
}
@media(display-mode:standalone){.topbar{padding-top:2px}.privacy-note{display:none}}


/* ===== V11 · Lire & écrire exercise polish only ===== */
#view-alphabet,
#view-alphabet button,
#view-alphabet input{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif}
#view-alphabet .rw-badge,
#view-alphabet #alphabetIntro,
#view-alphabet #alphabetSetLabel,
#view-alphabet #alphabetDescription,
#view-alphabet #writingGridEyebrow{display:none!important}
#view-alphabet .rw-main-copy h1{font-size:clamp(2rem,4vw,2.55rem);line-height:1.08;letter-spacing:-.035em;margin:0 0 22px}
#view-alphabet .rw-next-block{margin-top:0}
#view-alphabet .rw-next-block>strong{font-size:1.08rem}
#view-alphabet .rw-next-block>p{font-size:.78rem;line-height:1.5}
#view-alphabet .rw-mini-label{font-size:.68rem;letter-spacing:.08em}
#view-alphabet .rw-progress-number strong{font-size:clamp(2.4rem,6vw,3.15rem)}
#view-alphabet .rw-progress-number span,#view-alphabet .rw-progress-side p{font-size:.72rem}

/* iOS buttons must inherit the app color instead of Safari's native blue. */
#view-alphabet .alphabet-letter,
#view-alphabet .alphabet-letter strong,
#view-alphabet .alpha-intro-symbol,
#view-alphabet .alphabet-option,
#view-alphabet .symbol-button{
  color:var(--text);-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
}
#view-alphabet .alphabet-focus-char{font-size:clamp(3.2rem,8vw,4rem);margin:0 0 10px}
#view-alphabet .rw-focus-card{text-align:center}
#view-alphabet .rw-simple-equivalent{font-size:.82rem;color:var(--muted);margin:0 0 14px}
#view-alphabet .audio-source-link,
#view-alphabet .alphabet-focus-ipa{display:none!important}
#view-alphabet .alphabet-example.rw-example-clean{margin-top:15px;padding:14px}
#view-alphabet .alphabet-example.rw-example-clean p{display:none!important}
#view-alphabet .alphabet-example.rw-example-clean strong{font-size:1.05rem}
#view-alphabet .alphabet-sound-hint{font-size:.83rem;margin:0 0 12px}

/* Session hierarchy */
#view-alphabet .alphabet-session-window{font-size:16px}
#view-alphabet .session-heading h2{font-size:1.15rem;letter-spacing:-.02em}
#view-alphabet .session-heading .eyebrow{font-size:.68rem;letter-spacing:.08em}
#view-alphabet .session-heading p{font-size:.74rem}
#view-alphabet .session-counter{font-size:.72rem}
#view-alphabet .session-counter strong{font-size:1.15rem}
#view-alphabet .session-letter-strip{gap:7px;min-height:48px;padding-top:12px}
#view-alphabet .session-letter-chip{width:39px;height:39px;border-radius:11px;background:transparent!important;border-color:var(--line)!important;color:var(--text)!important;font-size:1rem;box-shadow:none!important}
#view-alphabet .session-letter-chip.new{background:transparent!important;border-color:var(--line)!important}
#view-alphabet .session-letter-chip.mastered{background:var(--good-bg)!important;border-color:color-mix(in srgb,var(--good) 30%,var(--line))!important}
#view-alphabet .alphabet-practice-wrap{font-size:1rem;animation:rwQuestionIn .28s cubic-bezier(.2,.75,.25,1) both}
#view-alphabet .alphabet-practice-wrap.question-leave{animation:rwQuestionOut .22s ease both}
#view-alphabet .exercise-type{font-size:.72rem;letter-spacing:.07em}
#view-alphabet .alphabet-question{font-size:clamp(1rem,2.2vw,1.12rem);line-height:1.45;margin:10px 0 20px}
#view-alphabet .exercise-letter-large{font-size:clamp(4.5rem,13vw,6rem);margin:8px 0 24px}
#view-alphabet .alphabet-option{font-size:clamp(1.1rem,3vw,1.35rem);min-height:66px;transition:border-color .16s,background .16s,transform .16s}
#view-alphabet .alphabet-option.selected{border-color:#3b82f6!important;background:color-mix(in srgb,#3b82f6 10%,var(--surface))!important;box-shadow:0 0 0 2px color-mix(in srgb,#3b82f6 18%,transparent)}
#view-alphabet .audio-choice-select.selected{border-color:#3b82f6!important;background:color-mix(in srgb,#3b82f6 10%,var(--surface))!important;color:var(--text)}
#view-alphabet .audio-choice-card:has(.audio-choice-select.selected){border-color:#3b82f6;box-shadow:0 0 0 2px color-mix(in srgb,#3b82f6 16%,transparent)}
#view-alphabet .alpha-validate,#view-alphabet .alpha-submit{display:block;min-width:180px;margin:18px auto 0;padding:12px 20px;font-size:.82rem}
#view-alphabet .alpha-validate:disabled,#view-alphabet .alpha-submit:disabled{opacity:.38}
#view-alphabet .carrier-word-large{font-size:clamp(2.2rem,7vw,3.2rem);margin:18px auto 26px;padding:20px 26px}
#view-alphabet .transcription-card .target-word{font-size:clamp(2rem,6vw,2.7rem)}
#view-alphabet .alpha-text-input{font-size:1.2rem;padding:13px}
#view-alphabet .symbol-button{font-size:1rem;min-width:48px;height:46px}

/* Intro: clean and balanced */
#view-alphabet .alpha-intro-screen h3{font-size:clamp(1.5rem,4vw,1.9rem);margin:0 0 22px}
#view-alphabet .alpha-intro-screen>p,#view-alphabet .alpha-intro-kicker,#view-alphabet .alpha-intro-ipa,#view-alphabet .alpha-intro-variant{display:none!important}
#view-alphabet .alpha-intro-card{min-height:245px;padding:20px 16px}
#view-alphabet .alpha-intro-symbol{width:80px;height:80px;font-size:clamp(2rem,6vw,2.55rem)}
#view-alphabet .alpha-intro-sound{font-size:.88rem;margin-top:12px}
#view-alphabet .alpha-intro-example{font-size:1.05rem;margin-top:14px}
#view-alphabet .alpha-word-audio{font-size:.76rem}

/* Smooth inline feedback drawer instead of a full-screen flash. */
#view-alphabet .session-feedback-overlay{
  position:absolute;left:18px;right:18px;bottom:18px;top:auto;z-index:8;
  min-height:82px;padding:13px 18px;border:1px solid color-mix(in srgb,var(--good) 25%,var(--line));
  border-radius:18px;background:color-mix(in srgb,var(--good-bg) 94%,var(--surface));
  box-shadow:0 18px 50px rgba(0,0,0,.14);display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;
  column-gap:12px;align-items:center;text-align:left;opacity:0;transform:translateY(26px);pointer-events:none;
  transition:opacity .22s ease,transform .28s cubic-bezier(.2,.75,.25,1);
}
#view-alphabet .session-feedback-overlay.show{opacity:1;transform:translateY(0)}
#view-alphabet .session-feedback-overlay.incorrect{background:color-mix(in srgb,var(--bad-bg) 94%,var(--surface));border-color:color-mix(in srgb,var(--bad) 25%,var(--line))}
#view-alphabet .feedback-symbol{grid-row:1/3;width:40px;height:40px;font-size:1.15rem;margin:0;border-radius:12px}
#view-alphabet .session-feedback-overlay strong{font-size:.95rem;letter-spacing:0}
#view-alphabet .session-feedback-overlay p{font-size:.76rem;line-height:1.35;margin:2px 0 0;max-width:none}

@keyframes rwQuestionIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@keyframes rwQuestionOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-18px)}}

@media(max-width:780px){
  #view-alphabet .rw-home{margin-top:12px}
  #view-alphabet .rw-main-card{padding:20px;border-radius:20px;gap:20px}
  #view-alphabet .rw-main-copy h1{font-size:1.85rem;margin-bottom:18px}
  #view-alphabet .rw-next-block{padding:16px}
  #view-alphabet .rw-next-units span{min-width:44px;height:44px;font-size:1rem;color:var(--text)!important}
  #view-alphabet .alphabet-grid{grid-template-columns:repeat(4,minmax(54px,1fr));gap:8px}
  #view-alphabet .alphabet-letter{min-height:76px;color:var(--text)!important}
  #view-alphabet .alphabet-letter strong{font-size:1.22rem;color:var(--text)!important}
  #view-alphabet .alphabet-letter small{font-size:.72rem;color:var(--muted)!important}
  #view-alphabet .session-letter-strip{overflow-x:auto;justify-content:flex-start;padding-left:16px;padding-right:16px}
  #view-alphabet .session-letter-chip{flex:0 0 37px;width:37px;height:37px}
  #view-alphabet .alphabet-session-body{padding:16px 14px 94px}
  #view-alphabet .audio-choice-grid{grid-template-columns:1fr 1fr;gap:9px}
  #view-alphabet .audio-choice-card{padding:10px}
  #view-alphabet .audio-choice-play,#view-alphabet .audio-choice-select{height:54px}
  #view-alphabet .session-feedback-overlay{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border-radius:15px}
}


/* ===== V14 · Accueil minimal + reprise ===== */
#view-home{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif}
.home-v14{max-width:980px;margin:clamp(42px,7vh,86px) auto 0}
.home-v14-title h1{margin:0 0 26px;font-size:clamp(2rem,4vw,2.7rem);line-height:1.08;letter-spacing:-.045em;font-weight:690}
.home-v14-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:14px;align-items:stretch}
.home-resume-card,.home-stats-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 46px rgba(0,0,0,.035)}
.home-resume-card{min-height:280px;padding:30px;display:flex;flex-direction:column;justify-content:space-between}
.home-resume-main{display:flex;gap:18px;align-items:flex-start}
.home-resume-icon{flex:0 0 auto;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--accent-soft);color:var(--text);font-size:18px;font-weight:800}
.home-resume-copy h2{margin:2px 0 8px;max-width:620px;font-size:clamp(1.45rem,3vw,2rem);line-height:1.18;letter-spacing:-.035em;font-weight:680}
.home-resume-copy p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}
.home-resume-button{align-self:flex-start;min-width:150px;border:0;border-radius:13px;padding:13px 20px;background:var(--text);color:var(--surface);font-size:.84rem;font-weight:760}
.home-resume-button:hover{transform:translateY(-1px)}
.home-stats-card{padding:10px 24px;display:grid;align-content:center}
.home-stat{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px;border-bottom:1px solid var(--line)}
.home-stat:last-child{border-bottom:0}
.home-stat span{color:var(--muted);font-size:.82rem;font-weight:600}
.home-stat strong{font-size:1.55rem;letter-spacing:-.04em;font-weight:690}
html[data-theme="dark"] .home-resume-card,html[data-theme="dark"] .home-stats-card{background:var(--surface)}
html[data-theme="dark"] .home-resume-button{background:#efefe9;color:#151613}
@media(max-width:780px){
  .home-v14{margin-top:28px}
  .home-v14-title h1{margin-bottom:18px;font-size:2rem}
  .home-v14-grid{grid-template-columns:1fr}
  .home-resume-card{min-height:250px;padding:23px;border-radius:21px}
  .home-resume-main{gap:14px}
  .home-resume-icon{width:43px;height:43px;border-radius:13px}
  .home-resume-copy h2{font-size:1.5rem}
  .home-resume-copy p{font-size:.8rem}
  .home-resume-button{width:100%;align-self:stretch}
  .home-stats-card{padding:7px 20px;border-radius:21px}
  .home-stat{min-height:64px}
  .home-stat span{font-size:.78rem}
  .home-stat strong{font-size:1.35rem}
}


/* ===== V15 · Lire — interface claire + explications naturelles ===== */
#view-read{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif;
}
.read-setup-v15{max-width:1040px;margin:clamp(34px,6vh,68px) auto 0}
.read-setup-head{margin-bottom:30px}
.read-setup-head h1{margin:0;font-size:clamp(2rem,4vw,2.65rem);line-height:1.08;letter-spacing:-.045em;font-weight:690}
.read-choice-section{margin-top:26px}
.read-choice-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.read-choice-head h2{margin:0;font-size:1rem;letter-spacing:-.015em;font-weight:700}
#view-read .length-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#view-read .length-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:17px 18px;color:var(--text);box-shadow:none;min-height:82px}
#view-read .length-card:hover{border-color:#b8b8b2;transform:translateY(-1px)}
#view-read .length-card.active{background:var(--text);color:var(--surface);border-color:var(--text);box-shadow:none}
#view-read .length-card strong{font-size:.92rem;line-height:1.2;font-weight:720}
#view-read .length-card span{font-size:.76rem;line-height:1.3;margin-top:7px;color:var(--muted)}
#view-read .length-card.active span{color:color-mix(in srgb,var(--surface) 70%,transparent)}
.topic-section-v15{margin-top:34px}
.read-refresh-btn{border:0;background:transparent;color:var(--muted);font-size:.78rem;font-weight:650;padding:8px 0;cursor:pointer}
.read-refresh-btn:hover{color:var(--text)}
#view-read .topic-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
#view-read .topic-card{min-height:210px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:21px;text-align:left;color:var(--text);box-shadow:none}
#view-read .topic-card:hover{transform:translateY(-2px);border-color:#b8b8b2;box-shadow:0 12px 34px rgba(0,0,0,.045)}
.topic-label-v15{display:block;font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:17px}
#view-read .topic-card h3{font-size:1.18rem;line-height:1.25;letter-spacing:-.025em;margin:0 0 9px;font-weight:690}
#view-read .topic-card p{font-size:.82rem;line-height:1.55;color:var(--muted);margin:0}
#view-read .topic-card footer{margin-top:auto;padding-top:20px;display:flex;justify-content:flex-start}
#view-read .coverage-chip{font-size:.7rem;font-weight:700;padding:6px 9px;border-radius:999px}

.reader-v15{max-width:1180px;margin:0 auto}
#view-read .reader-topline{margin:24px 0 14px;min-height:38px}
#view-read .back-btn{font-size:.78rem;font-weight:650;color:var(--muted);cursor:pointer}
#view-read .reader-meta{font-size:.75rem;color:var(--muted);gap:7px}
#view-read .reader-layout{grid-template-columns:minmax(0,1.55fr) minmax(330px,.72fr);gap:14px}
#view-read .reading-card,#view-read .analysis-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:none}
#view-read .reading-card{padding:34px 38px 32px}
.reader-topic{display:block;color:var(--muted);font-size:.76rem;font-weight:700;margin-bottom:8px}
#view-read .reading-header h1{font-size:clamp(1.7rem,3vw,2.15rem);line-height:1.12;letter-spacing:-.04em;margin:0;font-weight:690}
#view-read .text-toolbar{justify-content:flex-end;border-top:1px solid var(--line);padding-top:15px;margin-top:22px}
#view-read .text-btn{font-size:.75rem;font-weight:650}
#view-read .target-text{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;font-size:1.18rem;line-height:1.95;margin-top:20px;color:var(--text)}
#view-read .target-text[lang="ka"]{font-family:"Noto Sans Georgian","Sylfaen",Inter,system-ui,sans-serif;line-height:2}
.selection-actions{border-top:1px solid var(--line);padding-top:18px;margin-top:30px;display:flex;justify-content:flex-start}
.selection-actions .btn{margin:0;font-size:.78rem}

#view-read .analysis-card{padding:24px;position:sticky;top:82px;min-height:390px;max-height:calc(100vh - 105px);overflow:auto}
#view-read .analysis-empty{padding:72px 18px}
#view-read .analysis-empty h3{font-size:1rem;margin-bottom:7px}
#view-read .analysis-empty p{font-size:.8rem;line-height:1.55;max-width:260px;margin:0 auto;color:var(--muted)}
#view-read .analysis-symbol{width:46px;height:46px;border-radius:14px;font-size:.9rem}
#view-read .word-headline.simple{align-items:flex-start}
#view-read .word-headline h2{font-size:1.75rem;line-height:1.1;letter-spacing:-.035em;margin:0}
.word-meaning-main{font-size:1rem;font-weight:700;margin-top:7px;color:var(--text)}
.base-form-line{font-size:.78rem;color:var(--muted);margin-top:10px;line-height:1.45}
#view-read .status-pill{font-size:.68rem;white-space:nowrap}
.analysis-context-main{margin-top:18px;padding:15px 16px;border-radius:14px;background:var(--accent-soft);border:1px solid var(--line)}
#view-read .sentence-original{font-size:.97rem;line-height:1.6;font-weight:650;color:var(--text)}
#view-read .context-translation{font-size:.82rem!important;line-height:1.55!important;color:var(--muted)!important;margin-top:6px!important}
#view-read .analysis-prose{gap:15px;margin-top:15px}
#view-read .analysis-prose p{font-size:.84rem;line-height:1.68;color:var(--text)}
#view-read .explanation-block{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:15px 0 0}
#view-read .explanation-block:first-child{border-top:0;padding-top:0}
#view-read .explanation-block h4,.example-block-v15 h4{font-size:.75rem;line-height:1.3;text-transform:none;letter-spacing:0;color:var(--muted);margin:0 0 7px;font-weight:700}
.example-block-v15{border-top:1px solid var(--line);padding-top:15px}
#view-read .analysis-actions{gap:8px;margin-top:19px}
#view-read .analysis-actions button{padding:11px 10px;font-size:.76rem;border-radius:11px}
#view-read .breakdown-list{gap:8px;margin-top:10px}
#view-read .breakdown-item{background:transparent;border:1px solid var(--line);border-radius:13px;padding:13px}
#view-read .breakdown-item-header{gap:10px;margin-bottom:7px;flex-wrap:wrap}
#view-read .breakdown-token{font-size:.95rem}
#view-read .breakdown-gloss{font-size:.76rem;color:var(--muted)}
#view-read .breakdown-item p{font-size:.79rem;line-height:1.62;color:var(--text)}
#view-read .analysis-section-title{font-size:.73rem;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:700;margin-bottom:8px}
.grammar-takeaways{border-top:1px solid var(--line);padding-top:15px}
.grammar-takeaway{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}
.grammar-takeaway:last-child{border-bottom:0}
.grammar-takeaway strong{font-size:.8rem}
.grammar-takeaway span{font-size:.79rem;line-height:1.58;color:var(--text)}
.selection-translation{margin-top:16px}

html[data-theme="dark"] #view-read .length-card,
html[data-theme="dark"] #view-read .topic-card,
html[data-theme="dark"] #view-read .reading-card,
html[data-theme="dark"] #view-read .analysis-card{background:var(--surface);color:var(--text)}
html[data-theme="dark"] #view-read .length-card.active{background:#efefe9;color:#151613;border-color:#efefe9}
html[data-theme="dark"] #view-read .length-card.active span{color:#6f706b}

@media(max-width:900px){
  #view-read .reader-layout{grid-template-columns:minmax(0,1fr) minmax(290px,.72fr)}
  #view-read .reading-card{padding:28px}
}
@media(max-width:780px){
  .read-setup-v15{margin-top:25px}
  .read-setup-head{margin-bottom:22px}
  .read-setup-head h1{font-size:2rem}
  #view-read .length-grid{grid-template-columns:1fr 1fr}
  #view-read .length-card{min-height:78px;padding:15px}
  #view-read .topic-grid{grid-template-columns:1fr}
  #view-read .topic-card{min-height:165px;padding:19px}
  #view-read .reader-topline{grid-template-columns:1fr auto}
  #view-read .reader-meta{display:none}
  #view-read .reader-topline .btn{font-size:.72rem}
  #view-read .reader-layout{grid-template-columns:1fr}
  #view-read .reading-card{padding:23px 20px}
  #view-read .analysis-card{position:static;max-height:none;min-height:260px;padding:20px}
  #view-read .target-text{font-size:1.08rem;line-height:1.9}
  #view-read .word-headline h2{font-size:1.55rem}
  #view-read .analysis-prose p{font-size:.82rem}
}


/* ===== V17 · topbar + profile ===== */
.topbar{min-height:78px}
.top-actions-v17{width:100%;justify-content:space-between;gap:16px}
.language-select-v17{min-width:180px;height:44px;padding:0 14px;border-radius:13px;font-size:14px;font-weight:720;color:var(--text);background:var(--surface);box-shadow:0 1px 0 rgba(0,0,0,.02)}
.account-pill-v17{min-height:42px;padding:6px 12px 6px 6px;font-size:12px;gap:9px;cursor:pointer}
.account-pill-v17 .account-avatar{width:30px;height:30px;font-size:12px;background-color:var(--accent-soft);background-repeat:no-repeat}
.account-pill-v17.active{border-color:color-mix(in srgb,var(--text) 22%,var(--line))}
.profile-page{max-width:980px;margin:34px auto 0;padding-bottom:30px}
.profile-header-card,.profile-chart-card,.profile-edit-card,.profile-stat-card{background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 46px rgba(0,0,0,.035)}
.profile-header-card{border-radius:26px;padding:28px 30px}
.profile-identity{display:flex;align-items:center;gap:20px}
.profile-avatar-large{width:86px;height:86px;flex:0 0 86px;border:0;border-radius:50%;background:var(--accent-soft);color:var(--text);font-size:30px;font-weight:750;display:grid;place-items:center;cursor:pointer;background-repeat:no-repeat;background-size:cover;background-position:center}
.profile-identity-copy h1{margin:0;font-size:31px;line-height:1.08;letter-spacing:-.045em;font-weight:700}
.profile-identity-copy>p{margin:7px 0 0;color:var(--muted);font-size:13px}
.profile-photo-actions{display:flex;gap:12px;margin-top:12px}
.profile-text-button{border:0;background:transparent;padding:0;color:var(--text);font-size:12px;font-weight:700;cursor:pointer}
.profile-text-button.danger-text{color:#a44}
.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.profile-stat-card{border-radius:20px;padding:20px 22px;min-height:112px;display:flex;flex-direction:column;justify-content:space-between}
.profile-stat-card span{font-size:12px;color:var(--muted);font-weight:650}
.profile-stat-card strong{font-size:32px;line-height:1;letter-spacing:-.05em;font-weight:700}
.profile-chart-card{margin-top:12px;border-radius:24px;padding:24px 26px 18px}
.profile-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.profile-chart-head h2,.profile-edit-head h2{margin:0;font-size:20px;letter-spacing:-.025em}
.profile-chart-head p,.profile-edit-head p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.profile-range-switch{display:flex;padding:3px;background:var(--accent-soft);border-radius:11px}
.profile-range-switch button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:8px 11px;border-radius:8px;cursor:pointer}
.profile-range-switch button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.06)}
#profileChart{display:block;width:100%;height:210px}
.profile-edit-card{margin-top:12px;border-radius:24px;padding:24px 26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:28px;align-items:center}
.profile-username-form{display:flex;gap:9px}
.profile-username-form input{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:12px;padding:12px 13px;font-size:13px;outline:none}
.profile-username-form input:focus{border-color:color-mix(in srgb,var(--text) 35%,var(--line))}
html[data-theme="dark"] .profile-header-card,html[data-theme="dark"] .profile-chart-card,html[data-theme="dark"] .profile-edit-card,html[data-theme="dark"] .profile-stat-card{background:var(--surface)}
@media(max-width:780px){
  .topbar{min-height:66px}.top-actions-v17{gap:10px}.language-select-v17{min-width:0;width:155px;max-width:52vw;height:42px;font-size:13px}.account-pill-v17{padding-right:6px}.account-pill-v17 #accountPillName{display:none}.account-pill-v17 .account-avatar{width:31px;height:31px}
  .profile-page{margin-top:22px}.profile-header-card{padding:22px;border-radius:22px}.profile-avatar-large{width:72px;height:72px;flex-basis:72px}.profile-identity{gap:15px}.profile-identity-copy h1{font-size:25px}.profile-identity-copy>p{font-size:11px}.profile-stats-grid{grid-template-columns:1fr 1fr}.profile-stat-card:last-child{grid-column:1/-1}.profile-stat-card{min-height:96px;padding:17px 18px}.profile-stat-card strong{font-size:27px}.profile-chart-card{padding:20px 16px 14px;border-radius:22px}.profile-chart-head{flex-direction:column;gap:14px}.profile-range-switch{width:100%}.profile-range-switch button{flex:1}.profile-edit-card{grid-template-columns:1fr;padding:20px;border-radius:22px;gap:17px}.profile-username-form{flex-direction:column}.profile-username-form .btn{width:100%}
}


/* ===== V17.2 · real flag picker + separated language stats ===== */
.language-picker{position:relative;z-index:40}
.language-picker-trigger{min-width:174px;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);display:flex;align-items:center;gap:10px;padding:0 12px;cursor:pointer;font:inherit;font-size:14px;font-weight:720;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.language-picker-trigger img,.language-picker-option img,.profile-scope-switch img{width:24px;height:16px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:0 0 auto}
.language-picker-chevron{margin-left:auto;color:var(--muted);font-size:15px;transform:translateY(-1px)}
.language-picker-menu{position:absolute;top:calc(100% + 7px);left:0;width:100%;min-width:190px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.12)}
.language-picker-option{width:100%;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:10px;padding:10px;border-radius:9px;font:inherit;font-size:13px;font-weight:680;text-align:left;cursor:pointer}
.language-picker-option:hover,.language-picker-option.active{background:var(--accent-soft)}
.profile-scope-row{margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:10px 12px 10px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 10px 30px rgba(0,0,0,.025)}
.profile-scope-row>span{font-size:12px;color:var(--muted);font-weight:680}
.profile-scope-switch{display:flex;align-items:center;gap:4px;padding:3px;background:var(--accent-soft);border-radius:11px}
.profile-scope-switch button{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:8px;font-size:11px;font-weight:720;cursor:pointer}
.profile-scope-switch button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.06)}
.profile-scope-switch img{width:20px;height:13px}
@media(max-width:780px){
  .language-picker-trigger{min-width:142px;height:42px;font-size:13px;padding:0 10px}.language-picker-trigger img{width:22px;height:15px}.language-picker-menu{min-width:170px}
  .profile-scope-row{align-items:flex-start;flex-direction:column;padding:14px;gap:10px}.profile-scope-switch{width:100%}.profile-scope-switch button{flex:1;justify-content:center;padding:8px 6px}.profile-scope-switch img{display:none}
}


/* ===== V17.3 · language manager ===== */
.language-picker-menu{
  min-width:230px;
  width:244px;
}
.language-picker-selected{
  display:grid;
  gap:2px;
}
.language-picker-add{
  width:100%;
  margin-top:6px;
  padding:10px;
  border:0;
  border-top:1px solid var(--line);
  background:transparent;
  color:var(--text);
  display:flex;
  align-items:center;
  gap:10px;
  font:inherit;
  font-size:12px;
  font-weight:720;
  text-align:left;
  cursor:pointer;
}
.language-add-symbol{
  width:24px;
  height:24px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:var(--accent-soft);
  font-size:17px;
  line-height:1;
}
.language-picker-add:hover{opacity:.72}
.language-catalog{
  margin-top:6px;
  padding-top:7px;
  border-top:1px solid var(--line);
}
.language-catalog-title{
  padding:5px 10px 7px;
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.language-option-action{
  margin-left:auto;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
}
.language-catalog-empty{
  padding:11px 10px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.settings-language-list{
  display:grid;
  margin-top:12px;
  border-top:1px solid var(--line);
}
.settings-language-item{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid var(--line);
}
.settings-language-item:last-child{border-bottom:0}
.settings-language-identity{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
}
.settings-language-identity img{
  width:30px;
  height:20px;
  border-radius:4px;
  object-fit:cover;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.settings-language-identity div{
  min-width:0;
  display:grid;
  gap:2px;
}
.settings-language-identity strong{
  font-size:13px;
  font-weight:720;
}
.settings-language-identity small{
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.settings-language-remove{
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:9px;
  background:transparent;
  color:#a34f4f;
  padding:7px 10px;
  font-size:10px;
  font-weight:750;
  cursor:pointer;
}
.settings-language-remove:hover:not(:disabled){background:rgba(170,60,60,.06)}
.settings-language-remove:disabled{
  opacity:.35;
  cursor:not-allowed;
}
@media(max-width:780px){
  .language-picker-menu{width:218px;min-width:218px}
  .settings-language-item{min-height:62px}
}


/* ===== V18 · Révisions redesign ===== */
.review-head{align-items:flex-end;gap:18px}
.review-title-block h1{margin-bottom:0}
.review-toolbar{gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.review-control{display:grid;gap:8px;color:var(--muted);font-size:11px;font-weight:700}
.review-control select{min-width:220px;height:46px;border-radius:14px;padding:0 14px;font-size:14px;font-weight:650;background:var(--surface);color:var(--text);border:1px solid var(--line)}
.review-check{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 2px 0 2px;color:var(--text);font-size:14px;font-weight:650}
.review-check input{width:18px;height:18px}
.review-shell{max-width:780px;margin:24px auto 0}
.review-progress{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:10px}
.review-bar{height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin-bottom:18px}
.review-bar span{display:block;height:100%;background:var(--text)}
.review-launch,.review-empty{max-width:760px;margin:24px auto 0;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:44px 34px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.04)}
.review-launch-count{font-size:56px;line-height:1;font-weight:780;letter-spacing:-.05em}
.review-launch-label{margin-top:10px;font-size:18px;font-weight:680}
.review-launch-steps{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:24px 0 28px}
.review-launch-steps span{padding:10px 14px;border-radius:999px;background:var(--accent-soft);font-size:13px;font-weight:700;color:var(--text)}
.review-start{min-width:220px;height:52px;border-radius:16px;font-size:16px}
.review-empty-badge{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:var(--accent-soft);font-size:24px;font-weight:800}
.review-empty h3{font-size:28px;letter-spacing:-.03em;margin:0 0 20px;color:var(--text)}
.review-empty p{display:none}
.review-card.flashcard{min-height:430px;background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:42px 34px;display:grid;place-items:center;text-align:center;box-shadow:0 18px 48px rgba(0,0,0,.03)}
.flashcard-inner{width:min(100%,560px)}
.card-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:750}
.card-main{font-size:clamp(38px,6vw,54px);line-height:1.05;letter-spacing:-.05em;font-weight:780;margin:20px 0 0;color:var(--text)}
.review-reveal{margin-top:28px;min-width:240px;height:52px;border-radius:16px;font-size:15px}
.review-example-wrap{margin-top:28px;display:grid;gap:10px}
.card-example{color:var(--text);font-size:18px;line-height:1.5;font-style:italic}
.card-translation{color:var(--muted);font-size:15px;line-height:1.55}
.card-hint{display:none}
.rating-row.rating-row-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.rating-row.rating-row-duo button{height:54px;border-radius:16px;border:1px solid var(--line);font-size:16px;font-weight:760;background:var(--surface)}
.rating-row.rating-row-duo .review-bad{background:rgba(212,71,71,.1);border-color:rgba(212,71,71,.18);color:#cc5f5f}
.rating-row.rating-row-duo .review-good{background:rgba(76,166,117,.12);border-color:rgba(76,166,117,.2);color:#3c9a62}
html[data-theme="dark"] .review-launch,html[data-theme="dark"] .review-empty,html[data-theme="dark"] .review-card.flashcard{box-shadow:none}
@media(max-width:780px){
  .review-head{align-items:flex-start}
  .review-toolbar{width:100%;justify-content:flex-start}
  .review-control{width:100%}
  .review-control select{width:100%;min-width:0}
  .review-check{min-height:auto;padding-top:4px}
  .review-launch,.review-empty{padding:30px 18px;border-radius:24px}
  .review-launch-count{font-size:44px}
  .review-launch-label{font-size:16px}
  .review-card.flashcard{min-height:360px;padding:30px 20px;border-radius:24px}
  .card-main{font-size:clamp(32px,10vw,44px)}
  .card-example{font-size:16px}
  .card-translation{font-size:14px}
  .rating-row.rating-row-duo button{height:50px;font-size:15px}
}


/* ===== V19 · Review / Lexicon / Progress polish ===== */
.review-head{display:grid;grid-template-columns:1fr auto;align-items:start;gap:18px;max-width:780px;margin:34px auto 18px}
.review-title-block h1{font-size:38px;line-height:1.05;margin:0}
.review-toolbar{justify-content:flex-end;align-items:end}
.review-shell,.review-launch,.review-empty{margin-top:0}
.lexicon-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px;max-width:none}
.lexicon-title-block h1{margin:0;font-size:38px;line-height:1.05}
.lexicon-toolbar{display:flex;gap:12px;align-items:center}
.lexicon-toolbar .search,.lexicon-toolbar select{height:48px;border-radius:14px;padding:0 16px;font-size:14px;background:var(--surface);color:var(--text);border:1px solid var(--line)}
.lexicon-toolbar .search{min-width:260px}
.lexicon-table{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.03)}
.lex-row{display:grid;grid-template-columns:1.25fr 1fr .95fr .85fr .9fr;gap:18px;align-items:center;padding:18px 18px;border-bottom:1px solid var(--line);font-size:14px}
.lex-row.header{background:transparent;color:var(--muted);font-size:12px;font-weight:700}
.lex-target strong{display:block;font-size:26px;letter-spacing:-.04em;line-height:1.05}
.lex-target small{display:block;color:var(--muted);margin-top:6px;font-size:12px}
.lex-state{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}
.lex-due{font-weight:700;color:var(--text)}
.lex-due.now{color:#c46a6a}
.empty-row{padding:48px 22px;text-align:center;color:var(--muted);font-size:14px}
.progress-head{margin-bottom:18px}.progress-head h1{margin:0;font-size:38px;line-height:1.05}
.progress-summary{display:grid;grid-template-columns:1fr;gap:14px}
.progress-hero-card{padding:28px;border-radius:24px}
.progress-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}
.progress-hero-top h2{margin:0;font-size:28px;letter-spacing:-.04em}.progress-hero-top p{margin:8px 0 0;color:var(--muted);font-size:14px}
.progress-level-badge{min-width:130px;padding:14px 16px;border-radius:18px;background:var(--bg);border:1px solid var(--line);text-align:right}
.progress-level-badge span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.progress-level-badge strong{display:block;margin-top:6px;font-size:28px;letter-spacing:-.04em}
.progress-stats-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.progress-mini-stat{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:16px}
.progress-mini-stat span{display:block;color:var(--muted);font-size:12px;font-weight:650}
.progress-mini-stat strong{display:block;margin-top:10px;font-size:28px;letter-spacing:-.04em}
.progress-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.progress-detail-actions .btn{height:44px;border-radius:14px;padding:0 16px;font-size:14px;background:var(--surface)}
.progress-detail-panel,.history-panel{margin-top:0}
.grammar-list{display:grid;gap:16px;margin-top:14px}
.grammar-item{display:grid;grid-template-columns:200px 1fr 48px;gap:14px;align-items:center;font-size:13px}
.grammar-track{height:10px;background:var(--bg);border-radius:999px;overflow:hidden}.grammar-fill{height:100%;background:var(--text);border-radius:999px}.grammar-item b{text-align:right;font-size:12px;color:var(--muted)}
.history-row{display:grid;grid-template-columns:1.1fr .7fr .9fr .9fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.history-row span{color:var(--muted)}.history-row strong{font-size:16px}
html[data-theme="dark"] .lexicon-table{box-shadow:none}
@media(max-width:900px){
  .review-head,.lexicon-head{grid-template-columns:1fr;max-width:none}
  .review-toolbar,.lexicon-toolbar{justify-content:flex-start;width:100%;flex-wrap:wrap}
  .review-toolbar .review-control,.review-toolbar .review-check{width:auto}
  .lexicon-toolbar .search{min-width:0;flex:1}
  .progress-hero-top{flex-direction:column}
  .progress-level-badge{text-align:left;width:100%}
}
@media(max-width:780px){
  .review-title-block h1,.lexicon-title-block h1,.progress-head h1{font-size:32px}
  .review-control{width:100%}.review-control select{width:100%}
  .review-check{padding:0}
  .lex-row{grid-template-columns:1fr 1fr;gap:12px;padding:16px}
  .lex-row>*:nth-child(3),.lex-row>*:nth-child(4),.lex-row.header>*:nth-child(3),.lex-row.header>*:nth-child(4){display:none}
  .lex-target strong{font-size:22px}
  .progress-stats-inline{grid-template-columns:1fr}
  .grammar-item{grid-template-columns:1fr;gap:8px}
  .grammar-item b{text-align:left}
  .history-row{grid-template-columns:1fr;gap:6px}
}


/* ===== V20 · Reviews aligned + Settings rebuilt ===== */
.review-stage{width:min(780px,100%);margin:34px auto 0}
.review-stage .review-head{width:100%;max-width:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px}
.review-stage .review-title-block h1{margin:0;font-size:38px;line-height:1.02;letter-spacing:-.045em}
.review-stage .review-toolbar{display:flex;align-items:end;justify-content:flex-end;gap:14px}
.review-stage .review-control{min-width:225px}
.review-stage .review-control select{width:100%}
.review-stage .review-check{height:46px;padding:0;white-space:nowrap}
.review-stage .review-shell,.review-stage .review-launch,.review-stage .review-empty{width:100%;max-width:none;margin:0}

.settings-v20{max-width:900px;margin:38px auto 0;padding-bottom:24px}
.settings-page-title{margin-bottom:20px}
.settings-page-title h1{margin:0;font-size:38px;line-height:1.04;letter-spacing:-.045em;font-weight:700}
.settings-stack{display:grid;gap:12px}
.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px 26px;box-shadow:0 14px 40px rgba(0,0,0,.025)}
.settings-card-head{margin-bottom:18px}
.settings-card-head-inline{display:flex;align-items:center;justify-content:space-between;gap:18px}
.settings-card-head h2{margin:0;font-size:21px;line-height:1.1;letter-spacing:-.025em;font-weight:700}
.settings-count,.settings-sync{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:var(--accent-soft);color:var(--muted);font-size:11px;font-weight:750}
.settings-main-row,.settings-account-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px;border-top:1px solid var(--line)}
.settings-main-row strong{font-size:14px}
.settings-select-large{min-width:170px;height:44px;padding:0 13px;border-radius:13px;font-size:13px;background:var(--bg);color:var(--text);border:1px solid var(--line)}
.settings-account-copy{display:grid;gap:4px}
.settings-account-copy span{color:var(--muted);font-size:11px;font-weight:650}
.settings-account-copy strong{font-size:18px;letter-spacing:-.02em}
.settings-card-actions{display:flex;gap:10px;margin-top:16px}
.settings-card-actions .btn,.settings-data-actions .btn{min-height:43px;border-radius:13px;font-size:12px}
.settings-data-actions{display:flex;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.settings-v20 .settings-language-list{margin-top:0;border-top:1px solid var(--line)}
.settings-v20 .settings-language-item{min-height:72px}
.settings-v20 .settings-language-identity strong{font-size:14px}
.settings-v20 .settings-language-identity small{font-size:11px}
.settings-v20 .settings-language-remove{font-size:11px;padding:8px 11px}
html[data-theme="dark"] .settings-card{box-shadow:none}

@media(max-width:780px){
  .review-stage{margin-top:24px}
  .review-stage .review-head{grid-template-columns:1fr;align-items:start;gap:14px;margin-bottom:14px}
  .review-stage .review-toolbar{width:100%;display:grid;grid-template-columns:1fr;justify-content:stretch;gap:10px}
  .review-stage .review-control{min-width:0;width:100%}
  .review-stage .review-check{height:auto}
  .review-stage .review-title-block h1{font-size:32px}
  .settings-v20{margin-top:24px}
  .settings-page-title h1{font-size:32px}
  .settings-card{padding:20px;border-radius:21px}
  .settings-card-head-inline{align-items:flex-start}
  .settings-main-row,.settings-account-row{align-items:flex-start;flex-direction:column}
  .settings-select-large{width:100%}
  .settings-account-row .btn{width:100%}
  .settings-data-actions,.settings-card-actions{flex-direction:column}
  .settings-data-actions .btn,.settings-card-actions .btn{width:100%}
}


/* ===== V21 · Auth + first language selection ===== */
.auth-screen{background:radial-gradient(circle at top left,rgba(217,210,188,.08),transparent 30%),var(--bg)}
.auth-card.auth-card-v21{width:min(980px,100%);padding:0;border-radius:32px;overflow:hidden}
.auth-layout{display:grid;grid-template-columns:1.02fr .98fr;min-height:620px}
.auth-panel{padding:42px 40px}
.auth-panel-copy{display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(180deg,rgba(217,210,188,.08),transparent)}
.auth-brand-v21{display:flex;align-items:center;gap:14px}.auth-brand-v21 strong{display:block;font-size:30px;letter-spacing:-.04em}.auth-brand-v21 small{display:block;margin-top:4px;font-size:15px;color:var(--muted)}
.auth-copy-block h1{margin:28px 0 12px;font-size:48px;line-height:1;letter-spacing:-.06em}.auth-copy-block p{margin:0;max-width:420px;font-size:18px;line-height:1.6;color:var(--muted)}
.auth-benefits{display:grid;gap:12px;margin-top:28px}.auth-benefit{display:flex;align-items:center;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.02);font-size:15px;font-weight:680}
.auth-panel-form{display:flex;flex-direction:column;justify-content:center;background:var(--surface)}
.auth-tabs.auth-tabs-v21{margin:0 0 26px;background:var(--accent-soft);padding:5px;border-radius:15px}
.auth-tabs.auth-tabs-v21 button{padding:13px 14px;font-size:14px;font-weight:760;border-radius:11px}
.auth-form.auth-form-v21{gap:16px}.auth-form.auth-form-v21 label{gap:8px;font-size:13px;font-weight:760}.auth-form.auth-form-v21 input{padding:16px 16px;border-radius:15px;font-size:16px;background:var(--surface-2)}
.auth-submit{padding:16px;border-radius:15px;font-size:16px;font-weight:780;margin-top:8px}
.auth-message{min-height:24px;margin:16px 0 0;font-size:14px;text-align:left}
.onboarding-screen{position:fixed;inset:0;z-index:310;background:rgba(0,0,0,.52);backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px}
.onboarding-screen.hidden{display:none}
.onboarding-card{width:min(960px,100%);background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:34px;box-shadow:var(--shadow)}
.onboarding-head{text-align:center;max-width:700px;margin:0 auto 24px}.onboarding-brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:18px}.onboarding-brand strong{font-size:18px}
.onboarding-head h1{margin:0;font-size:42px;line-height:1.05;letter-spacing:-.05em}.onboarding-head p{margin:12px auto 0;font-size:17px;line-height:1.6;color:var(--muted)}
.onboarding-language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.onboarding-language-card{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:26px;min-height:220px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font:inherit;font-size:22px;font-weight:760;letter-spacing:-.03em;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.onboarding-language-card:hover{transform:translateY(-2px)}
.onboarding-language-card img{width:108px;height:72px;object-fit:cover;border-radius:12px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.onboarding-language-card.selected{border-color:#8c7a43;background:var(--accent-soft);box-shadow:0 0 0 2px rgba(140,122,67,.12) inset}
.onboarding-actions{display:flex;justify-content:center;margin-top:28px}.onboarding-continue{min-width:240px;height:56px;border-radius:18px;font-size:17px}
.onboarding-continue:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:860px){
  .auth-card.auth-card-v21{width:min(620px,100%)}
  .auth-layout{grid-template-columns:1fr}
  .auth-panel{padding:28px 24px}
  .auth-panel-copy{gap:22px}
  .auth-copy-block h1{font-size:38px}
  .auth-copy-block p{font-size:16px}
}
@media(max-width:640px){
  .auth-screen{padding:16px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .auth-card.auth-card-v21{border-radius:24px}
  .auth-panel{padding:24px 18px}
  .auth-brand-v21 strong{font-size:26px}.auth-brand-v21 small{font-size:14px}
  .auth-copy-block h1{font-size:32px;margin-top:10px}
  .auth-benefit{padding:14px 14px;font-size:14px}
  .auth-tabs.auth-tabs-v21 button{font-size:13px;padding:12px 10px}
  .auth-form.auth-form-v21 input{padding:15px 14px;font-size:15px}
  .auth-submit{font-size:15px}
  .auth-message{text-align:center}
  .onboarding-screen{padding:16px}
  .onboarding-card{padding:24px 16px;border-radius:24px}
  .onboarding-head h1{font-size:30px}
  .onboarding-head p{font-size:15px}
  .onboarding-language-grid{grid-template-columns:1fr;gap:14px}
  .onboarding-language-card{min-height:170px;font-size:19px;padding:18px}
  .onboarding-language-card img{width:92px;height:62px}
  .onboarding-continue{width:100%;min-width:0}
}


/* ===== V22 · Lire plus naturel ===== */
#view-read .reading-header h1 .title-word{display:inline;border-radius:7px;padding:1px 2px;margin:0 -1px;cursor:pointer;transition:background .14s ease,color .14s ease}
#view-read .reading-header h1 .title-word:hover{background:var(--accent-soft)}
#view-read .analysis-card .primary-explanation p{font-size:13px;line-height:1.62;color:var(--text)}
#view-read .analysis-card .base-form-line{font-size:11px;color:var(--muted)}
#view-read .analysis-card .explanation-block h4,#view-read .analysis-card .example-block-v15 h4{font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--muted)}
@media(max-width:780px){#view-read .analysis-card .primary-explanation p{font-size:14px}}


/* ===== V23 · Balanced word explanations ===== */
.reader-topline{grid-template-columns:1fr auto;}
.reader-topline .btn{grid-column:2;justify-self:end}
.word-grammar-line{margin-top:8px;color:var(--muted);font-size:12px;font-weight:680;line-height:1.45}
.base-form-line{margin-top:15px;padding:11px 13px;border-radius:12px;background:var(--accent-soft);color:var(--muted);font-size:12px;line-height:1.45}
.base-form-line strong{color:var(--text);font-weight:760}
.primary-explanation p{font-size:13px;line-height:1.65}
@media(max-width:780px){
  .reader-topline{grid-template-columns:1fr auto}
  .word-grammar-line{font-size:11px}
  .base-form-line{font-size:11px}
  .primary-explanation p{font-size:12px}
}


/* ===== V24 · Reading recap + Exercises ===== */
.reading-recap-overlay{position:fixed;inset:0;z-index:360;background:rgba(20,20,19,.48);backdrop-filter:blur(12px);display:grid;place-items:center;padding:22px}
.reading-recap-overlay.hidden{display:none}
.reading-recap-modal{position:relative;width:min(720px,100%);background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:32px;box-shadow:0 30px 90px rgba(0,0,0,.18)}
.reading-recap-close{position:absolute;right:18px;top:16px;width:38px;height:38px;border:0;border-radius:50%;background:var(--bg);color:var(--muted);font-size:24px;line-height:1}
.reading-recap-head span{display:block;color:var(--muted);font-size:12px;font-weight:720}.reading-recap-head h2{margin:7px 0 24px;font-size:32px;letter-spacing:-.045em}
.reading-recap-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.reading-recap-stat{min-height:122px;padding:20px;border-radius:20px;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.reading-recap-stat span{color:var(--muted);font-size:13px;font-weight:650}.reading-recap-stat strong{font-size:36px;letter-spacing:-.05em}.reading-recap-stat.known strong{color:var(--good)}.reading-recap-stat.learning strong{color:var(--warn)}
.reading-recap-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.reading-recap-actions .btn{min-width:150px;height:48px;border-radius:15px;font-size:14px}
.exercise-page{max-width:900px;margin:0 auto;padding-bottom:34px}.exercise-page-head{margin-bottom:18px}.exercise-page-head h1{margin:0;font-size:38px}
.exercise-setup-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 16px 44px rgba(0,0,0,.03)}
.exercise-choice-group+ .exercise-choice-group{margin-top:26px}.exercise-choice-group h2{margin:0 0 12px;font-size:16px}
.exercise-segment{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.exercise-segment button{min-height:54px;border:1px solid var(--line);border-radius:15px;background:var(--bg);color:var(--text);font-size:14px;font-weight:720;padding:10px 14px}.exercise-segment button.active{background:var(--text);color:var(--surface);border-color:var(--text)}
#exerciseLengthChoice{grid-template-columns:repeat(3,1fr)}
.exercise-availability{margin:24px 0 16px;padding:14px 16px;border-radius:14px;background:var(--bg);color:var(--muted);font-size:13px;line-height:1.5}.exercise-availability strong{color:var(--text)}
.exercise-start-btn{width:100%;height:52px;border-radius:16px;font-size:15px}
.exercise-session-card,.exercise-complete{max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:0 16px 44px rgba(0,0,0,.03)}
.exercise-session-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:700}.exercise-exit{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700}
.exercise-prompt-label{margin-top:30px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.exercise-prompt{margin-top:12px;font-size:clamp(28px,5vw,44px);line-height:1.25;letter-spacing:-.035em;font-weight:700}.exercise-prompt.small{font-size:22px}.exercise-prompt.target-language{font-weight:680}
.exercise-answer{width:100%;margin-top:28px;border:1px solid var(--line);border-radius:18px;background:var(--bg);color:var(--text);padding:18px;font:inherit;font-size:17px;line-height:1.6;resize:vertical;outline:none}.exercise-answer:focus{border-color:color-mix(in srgb,var(--text) 35%,var(--line))}.exercise-check,.exercise-next{width:100%;height:52px;margin-top:14px;border-radius:16px;font-size:15px}
.exercise-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}.exercise-comparison>div{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:18px}.exercise-comparison span{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.exercise-comparison p{margin:10px 0 0;font-size:17px;line-height:1.5}.exercise-reference.exact{border-color:rgba(76,166,117,.35);background:rgba(76,166,117,.08)}
.exercise-complete{text-align:center;padding:54px 28px}.exercise-complete-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:var(--good-bg);color:var(--good);font-size:28px}.exercise-complete h2{font-size:28px;margin:0 0 22px}
@media(max-width:780px){
  .nav{grid-template-columns:repeat(7,1fr)!important}.nav-item{font-size:10px;gap:3px;justify-content:center;flex-direction:column}.nav-glyph{height:15px}.nav-count{margin:0 0 24px 28px}
  .reading-recap-modal{padding:26px 18px;border-radius:24px}.reading-recap-stats{grid-template-columns:1fr 1fr}.reading-recap-stat{min-height:104px;padding:16px}.reading-recap-stat strong{font-size:30px}.reading-recap-actions{flex-direction:column-reverse}.reading-recap-actions .btn{width:100%}
  .exercise-page-head h1{font-size:32px}.exercise-setup-card,.exercise-session-card{padding:20px;border-radius:22px}.exercise-segment,#exerciseLengthChoice{grid-template-columns:1fr}.exercise-prompt{font-size:30px}.exercise-comparison{grid-template-columns:1fr}
}


/* ===== V25 · Sidebar redesign ===== */
.app{grid-template-columns:252px minmax(0,1fr)}
.sidebar{padding:26px 18px 20px;background:linear-gradient(180deg,rgba(252,252,249,.96),rgba(247,247,243,.94));border-right:1px solid rgba(0,0,0,.06);backdrop-filter:blur(18px)}
.brand{padding:6px 10px 24px;gap:14px}
.brand-mark{width:44px;height:44px;border-radius:14px;font-size:12px;letter-spacing:.05em;box-shadow:0 10px 25px rgba(0,0,0,.08)}
.brand strong{font-size:24px;letter-spacing:-.04em;line-height:1.02;font-weight:760}
.brand small{font-size:12px;margin-top:6px;color:#7f7f79;letter-spacing:-.01em}
.nav{gap:8px;margin-top:4px}
.nav-item{position:relative;min-height:50px;padding:0 14px;border-radius:16px;font-size:15px;font-weight:600;color:#5c5c56;gap:13px;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.nav-item:hover{background:rgba(255,255,255,.88);color:#161616;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.04)}
.nav-item.active{background:linear-gradient(180deg,#f4f1e8,#efede4);color:#171717;font-weight:760;box-shadow:inset 0 0 0 1px rgba(110,96,59,.07)}
.nav-glyph{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:10px;background:rgba(0,0,0,.035);color:#4b4b45;font-size:13px;font-weight:700;transition:inherit}
.nav-item:hover .nav-glyph,.nav-item.active .nav-glyph{background:rgba(0,0,0,.055);color:#1f1f1c}
.nav-count{margin-left:auto;min-width:28px;height:28px;padding:0 9px;border-radius:999px;background:#e5e5df;color:#4a4a45;font-size:11px;font-weight:800}
.sidebar-bottom{margin-top:auto;padding-top:18px;border-top:1px solid rgba(0,0,0,.06)}
.settings-nav-item{background:rgba(255,255,255,.7)}
.settings-nav-item:hover{background:#fff}
html[data-theme="dark"] .sidebar{background:linear-gradient(180deg,rgba(15,16,14,.96),rgba(18,19,16,.95));border-right-color:rgba(255,255,255,.07)}
html[data-theme="dark"] .brand small{color:#8e8e88}
html[data-theme="dark"] .nav-item{color:#a7a7a1}
html[data-theme="dark"] .nav-item:hover{background:rgba(255,255,255,.04);color:#fafaf7;box-shadow:none}
html[data-theme="dark"] .nav-item.active{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.05));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
html[data-theme="dark"] .nav-glyph{background:rgba(255,255,255,.05);color:#d7d7d1}
html[data-theme="dark"] .nav-item:hover .nav-glyph,html[data-theme="dark"] .nav-item.active .nav-glyph{background:rgba(255,255,255,.09);color:#fff}
html[data-theme="dark"] .nav-count{background:rgba(255,255,255,.1);color:#f2f2ec}
html[data-theme="dark"] .sidebar-bottom{border-top-color:rgba(255,255,255,.07)}
html[data-theme="dark"] .settings-nav-item{background:rgba(255,255,255,.03)}
@media(max-width:1050px){
  .app{grid-template-columns:88px 1fr}
  .sidebar{padding:20px 12px 18px}
  .brand{justify-content:center;padding-bottom:20px}
  .brand span:last-child,.nav-item span:not(.nav-glyph):not(.nav-count){display:none}
  .nav{gap:9px}
  .nav-item{justify-content:center;padding:0;min-height:48px;border-radius:15px}
  .nav-glyph{width:30px;height:30px}
  .nav-count{position:absolute;right:6px;top:5px;margin:0;min-width:22px;height:22px;padding:0 6px;font-size:10px}
  .sidebar-bottom{padding-top:14px}
}
@media(max-width:780px){
  .sidebar{height:72px;padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 96%,transparent)}
  .nav{grid-template-columns:repeat(7,1fr);gap:6px;height:100%}
  .nav-item,.settings-nav-item{min-height:auto;border-radius:12px;padding:0;background:transparent;box-shadow:none;transform:none}
  .nav-item.active{background:rgba(255,255,255,.06)}
  .nav-glyph{width:24px;height:24px;background:transparent;font-size:12px}
  .nav-count{right:3px;top:2px;min-width:18px;height:18px;font-size:9px;padding:0 4px}
}


/* ===== V26 · Mobile-first pass ===== */
.mobile-only{display:none}
.mobile-more-overlay{display:none}
@media(max-width:780px){
  body{overflow-x:hidden}
  body.mobile-sheet-open{overflow:hidden}
  .app{display:block}
  .main{padding:0 14px calc(104px + env(safe-area-inset-bottom));max-width:none}

  /* Sticky top controls */
  .topbar{position:sticky;top:0;z-index:45;min-height:62px;margin:0 -14px;padding:8px 14px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
  .top-actions-v17{gap:9px}
  .language-picker{min-width:0;flex:1}
  .language-picker-trigger{width:100%;min-width:0;max-width:185px;height:44px;border-radius:14px;font-size:13px;padding:0 11px}
  .language-picker-menu{position:fixed;top:68px;left:14px;right:14px;width:auto;min-width:0;border-radius:18px;padding:8px;box-shadow:0 22px 60px rgba(0,0,0,.16)}
  .language-picker-option{min-height:46px;font-size:14px;padding:11px 12px}
  .account-pill-v17{width:44px;height:44px;min-height:44px;padding:5px;border-radius:14px;justify-content:center}
  .account-pill-v17 #accountPillName{display:none}
  .account-pill-v17 .account-avatar{width:34px;height:34px}

  /* Bottom nav: 4 primary + More */
  .sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;height:calc(76px + env(safe-area-inset-bottom));padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(20px);z-index:60}
  .brand,.sidebar-bottom,.nav .mobile-secondary{display:none!important}
  .nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;height:100%;margin:0}
  .nav .mobile-only{display:flex}
  .nav-item{min-height:0;height:100%;padding:5px 2px;border-radius:13px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:650;background:transparent;box-shadow:none;transform:none;color:var(--muted)}
  .sidebar .nav>.nav-item span:not(.nav-glyph):not(.nav-count){display:block;font-size:9px;line-height:1.05;white-space:nowrap}
  .nav-glyph{width:26px;height:26px;flex:0 0 26px;background:transparent;border-radius:8px;font-size:12px}
  .nav-item:hover{transform:none;box-shadow:none;background:transparent}
  .nav-item.active{background:var(--accent-soft);box-shadow:none;color:var(--text)}
  .nav-item.active .nav-glyph{background:transparent}
  .nav-count{position:absolute;top:4px;right:12%;margin:0;min-width:18px;height:18px;padding:0 4px;font-size:9px}

  /* More bottom sheet */
  .mobile-more-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.34);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding:0}
  .mobile-more-overlay.hidden{display:none}
  .mobile-more-sheet{width:100%;max-height:82vh;background:var(--surface);border-radius:24px 24px 0 0;padding:10px 16px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(0,0,0,.18)}
  .mobile-more-handle{width:42px;height:5px;border-radius:999px;background:var(--line);margin:0 auto 8px}
  .mobile-more-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 14px}
  .mobile-more-head h2{margin:0;font-size:24px;letter-spacing:-.035em}
  .mobile-more-head button{width:36px;height:36px;border:0;border-radius:50%;background:var(--accent-soft);color:var(--text);font-size:24px;line-height:1}
  .mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .mobile-more-grid button{min-height:92px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:18px;padding:14px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;font-size:14px;font-weight:730;text-align:left}
  .mobile-more-icon{width:34px;height:34px;border-radius:11px;background:var(--accent-soft);display:grid;place-items:center;font-size:13px;font-weight:800}

  /* Global page rhythm */
  .page-head,.page-head.split{margin:24px 0 18px;max-width:none}
  .page-head h1{font-size:30px;margin:0;line-height:1.08}
  .page-head p{font-size:13px;line-height:1.5;margin-top:8px}
  .panel{padding:18px;border-radius:20px}
  .btn{min-height:44px;border-radius:13px;font-size:13px}

  /* Home */
  .home-v14{margin-top:22px}
  .home-v14-title h1{font-size:30px;margin-bottom:16px}
  .home-v14-grid{grid-template-columns:1fr;gap:12px}
  .home-resume-card{min-height:220px;padding:20px;border-radius:22px}
  .home-resume-main{gap:13px}
  .home-resume-icon{width:42px;height:42px;border-radius:13px}
  .home-resume-copy h2{font-size:22px;line-height:1.18}
  .home-resume-copy p{font-size:13px}
  .home-resume-button{width:100%;min-height:48px;font-size:14px}
  .home-stats-card{border-radius:22px;padding:6px 18px}
  .home-stat{min-height:58px}
  .home-stat span{font-size:12px}
  .home-stat strong{font-size:22px}

  /* Reading setup */
  .read-setup-v15{margin-top:22px}
  .read-setup-head h1{font-size:30px}
  .read-choice-section{padding:18px;border-radius:22px}
  .read-choice-head h2{font-size:16px}
  .length-grid{grid-template-columns:1fr 1fr;gap:8px}
  .length-card{padding:15px 14px;border-radius:14px}
  .length-card strong{font-size:14px}.length-card span{font-size:11px}
  .topic-grid{grid-template-columns:1fr;gap:10px}
  .topic-card{min-height:150px;padding:18px;border-radius:18px}
  .topic-card h3{font-size:20px;margin:10px 0 7px}
  .topic-card p{font-size:12px}

  /* Reader */
  .reader-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 12px}
  .reader-meta{display:none}
  .reader-topline .btn{min-width:auto;padding:0 14px}
  #view-read .reader-layout{grid-template-columns:1fr;gap:12px}
  .reading-card{padding:20px 17px;border-radius:22px}
  .reading-header h1{font-size:27px;line-height:1.18}
  .text-toolbar{font-size:11px;gap:10px;align-items:center}
  .target-text{font-size:18px;line-height:1.9;margin-top:18px}
  .selection-hint{font-size:11px;line-height:1.5}
  .analysis-card{position:static;min-height:0;padding:18px;border-radius:22px}
  .analysis-empty{padding:36px 12px}
  .word-headline h2{font-size:27px}.meaning{font-size:18px;margin:16px 0}.analysis-prose p{font-size:14px;line-height:1.62}
  .analysis-actions{gap:9px}.analysis-actions button{min-height:46px;font-size:13px;border-radius:13px}

  /* Review */
  .review-stage{max-width:none;margin-top:22px}
  .review-stage .review-head{grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .review-title-block h1{font-size:30px}
  .review-toolbar{display:grid;grid-template-columns:1fr auto;gap:10px;width:100%}
  .review-control{width:100%}.review-control select{width:100%;min-width:0;height:46px}
  .review-check{align-self:end;height:46px;padding:0 4px}
  .review-card.flashcard{min-height:330px;padding:26px 18px;border-radius:24px}
  .card-main{font-size:38px}.card-example{font-size:16px}.card-translation{font-size:14px}
  .rating-row.rating-row-duo{gap:10px}.rating-row.rating-row-duo button{height:52px}

  /* Exercises */
  .exercise-page{padding-bottom:12px;margin-top:22px}
  .exercise-page-head h1{font-size:30px}
  .exercise-setup-card,.exercise-session-card,.exercise-complete{padding:18px;border-radius:22px}
  .exercise-choice-group+ .exercise-choice-group{margin-top:20px}
  .exercise-segment,#exerciseLengthChoice{grid-template-columns:1fr;gap:8px}
  .exercise-segment button{min-height:50px;font-size:13px}
  .exercise-prompt-label{margin-top:22px}
  .exercise-prompt{font-size:29px;line-height:1.3}
  .exercise-answer{font-size:16px;padding:15px;min-height:130px}
  .exercise-comparison{grid-template-columns:1fr}

  /* Lexicon as cards */
  .lexicon-head{grid-template-columns:1fr;gap:12px}
  .lexicon-title-block h1{font-size:30px}
  .lexicon-toolbar{display:grid;grid-template-columns:1fr 120px;gap:8px;width:100%}
  .lexicon-toolbar .search{min-width:0;width:100%;height:44px}.lexicon-toolbar select{width:100%;height:44px}
  .lexicon-table{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible;display:grid;gap:10px}
  .lex-row.header{display:none}
  .lex-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'word status' 'meaning meaning' 'due due';gap:7px 12px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px}
  .lex-row .lex-target{grid-area:word}.lex-row>span:nth-child(2){grid-area:meaning;color:var(--muted)}.lex-row>span:nth-child(3){display:none}.lex-row>span:nth-child(4){grid-area:due}.lex-row>span:nth-child(5){grid-area:status;justify-self:end}
  .lex-target strong{font-size:22px}.lex-target small{font-size:11px}.lex-due{font-size:12px}.lex-state{font-size:10px;padding:6px 8px}

  /* Progress */
  .progress-head h1{font-size:30px}.progress-hero-card{padding:18px;border-radius:22px}.progress-hero-top{gap:12px}.progress-hero-top h2{font-size:22px}.progress-hero-top p{font-size:12px}.progress-level-badge{min-width:0;width:100%;padding:12px 14px}.progress-level-badge strong{font-size:24px}.progress-stats-inline{grid-template-columns:1fr;gap:8px}.progress-mini-stat{padding:14px;border-radius:16px}.progress-mini-stat strong{font-size:24px;margin-top:6px}.progress-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.progress-detail-actions .btn{width:100%;padding:0 10px;font-size:12px}.grammar-item{grid-template-columns:1fr;gap:7px}.history-row{grid-template-columns:1fr;gap:5px}

  /* Profile */
  .profile-page{margin-top:20px;padding-bottom:8px}.profile-header-card{padding:18px;border-radius:22px}.profile-avatar-large{width:64px;height:64px;flex-basis:64px}.profile-identity{gap:13px}.profile-identity-copy h1{font-size:23px}.profile-photo-actions{gap:10px;flex-wrap:wrap}.profile-stats-grid{grid-template-columns:1fr 1fr;gap:8px}.profile-stat-card{min-height:90px;padding:15px;border-radius:18px}.profile-stat-card:last-child{grid-column:1/-1}.profile-stat-card strong{font-size:25px}.profile-scope-row{padding:12px;border-radius:16px}.profile-scope-switch{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.profile-chart-card{padding:18px 14px 12px;border-radius:22px}.profile-chart-head{gap:12px}.profile-range-switch{width:100%}.profile-edit-card{padding:18px;border-radius:22px}

  /* Settings */
  .settings-v20{margin-top:20px}.settings-page-title h1{font-size:30px}.settings-stack{gap:10px}.settings-card{padding:18px;border-radius:20px}.settings-card-head h2{font-size:18px}.settings-main-row,.settings-account-row{align-items:flex-start;gap:12px}.settings-select-large{min-width:135px;height:44px}.settings-language-item{min-height:64px}.settings-data-actions,.settings-card-actions{display:grid;grid-template-columns:1fr;gap:8px}.settings-data-actions .btn,.settings-card-actions .btn{width:100%}

  /* Auth + onboarding */
  .auth-screen{padding:12px;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .auth-card.auth-card-v21{border-radius:22px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto}
  .auth-panel-copy{padding-bottom:12px}.auth-copy-block p,.auth-benefits{display:none}.auth-copy-block h1{font-size:28px;margin:8px 0 0}.auth-panel-form{padding-top:14px}
  .onboarding-card{max-height:calc(100dvh - 24px);overflow:auto}.onboarding-language-grid{grid-template-columns:1fr 1fr}.onboarding-language-card{min-height:150px}.onboarding-language-card img{width:82px;height:54px}
}
@media(max-width:390px){
  .main{padding-left:10px;padding-right:10px}.topbar{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.length-grid{grid-template-columns:1fr}.lexicon-toolbar{grid-template-columns:1fr}.profile-stats-grid{grid-template-columns:1fr}.profile-stat-card:last-child{grid-column:auto}.progress-detail-actions{grid-template-columns:1fr}.onboarding-language-grid{grid-template-columns:1fr}
}


/* ===== V30 · Turnstile ===== */
.turnstile-slot{min-height:0;width:100%;display:flex;justify-content:center;margin:2px 0 0}
.turnstile-slot:empty{display:none}
.turnstile-slot iframe{max-width:100%}
@media(max-width:640px){.turnstile-slot{overflow:hidden}}


/* ===== V31 · Account security ===== */
.settings-danger-card{border-color:color-mix(in srgb,var(--bad) 24%,var(--line))}
.settings-danger-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:16px;border-top:1px solid var(--line)}
.settings-danger-row strong{display:block;font-size:14px}
.settings-danger-row p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55;max-width:560px}
.account-danger-overlay{position:fixed;inset:0;z-index:360;display:grid;place-items:center;padding:22px;background:rgba(10,10,10,.54);backdrop-filter:blur(8px)}
.account-danger-overlay.hidden{display:none}
.account-danger-modal{position:relative;width:min(520px,100%);background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 28px 80px rgba(0,0,0,.2)}
.account-danger-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:var(--accent-soft);color:var(--text);font-size:22px}
.account-danger-head span{display:block;color:var(--bad);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.account-danger-head h2{margin:8px 0 0;font-size:28px;letter-spacing:-.04em}
.account-danger-copy{margin:14px 0 20px;color:var(--muted);font-size:13px;line-height:1.6}
.account-danger-fields{display:grid;gap:14px}.account-danger-fields label{display:grid;gap:7px;font-size:12px;font-weight:740}.account-danger-fields input{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:13px;padding:13px 14px;font-size:14px;outline:none}.account-danger-fields input:focus{border-color:color-mix(in srgb,var(--text) 32%,var(--line))}
.account-danger-message{min-height:20px;margin:12px 0 0;color:var(--bad);font-size:12px}
.account-danger-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:18px}.account-danger-actions .btn{min-height:46px;border-radius:13px}
@media(max-width:640px){.settings-danger-row{align-items:stretch;flex-direction:column}.settings-danger-row .btn{width:100%}.account-danger-modal{padding:24px 18px;border-radius:22px}.account-danger-head h2{font-size:24px}.account-danger-actions{grid-template-columns:1fr}.account-danger-actions .btn{width:100%}}


/* ===== V33 · email / account recovery ===== */
.auth-link-button{border:0;background:transparent;color:var(--muted);padding:10px 4px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:center}.auth-link-button:hover{color:var(--text)}
.auth-form-heading{display:grid;gap:6px;margin-bottom:4px}.auth-form-heading h2{margin:0;font-size:24px;letter-spacing:-.035em}.auth-form-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.settings-email-row{align-items:center}.settings-account-copy small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:600}.settings-email-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.email-settings-modal{max-width:520px}
@media(max-width:640px){.settings-email-row{align-items:flex-start}.settings-email-actions{width:100%;justify-content:flex-start}.settings-email-actions .btn{flex:1}.auth-form-heading h2{font-size:21px}}


/* ===== V34 · public legal/privacy pages ===== */
.auth-legal-note{margin:14px 0 0;color:var(--muted);font-size:11px;line-height:1.55;text-align:center}
.auth-legal-note button,.auth-legal-links button,.legal-inline-link{border:0;background:transparent;color:var(--text);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}
.auth-legal-links{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:11px;color:var(--muted);font-size:10px}
.auth-legal-links button{color:var(--muted);text-decoration:none}.auth-legal-links button:hover{color:var(--text)}
.legal-settings-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.public-legal-screen{position:fixed;inset:0;z-index:400;background:var(--bg);color:var(--text);overflow:auto}
.public-legal-screen.hidden{display:none}
.public-legal-topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:12px max(24px,calc((100vw - 980px)/2));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.public-legal-brand{border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:10px;font:inherit;cursor:pointer}.public-legal-brand strong{font-size:17px;letter-spacing:-.025em}
.public-legal-close{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 14px;font-size:12px;font-weight:750;cursor:pointer}
.public-legal-main{width:min(920px,calc(100% - 36px));margin:0 auto;padding:48px 0 80px}
.legal-document-head{max-width:760px;margin-bottom:32px}.legal-kicker{display:block;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.legal-document-head h1{margin:0;font-size:clamp(36px,6vw,58px);line-height:1;letter-spacing:-.055em}.legal-document-head p{margin:16px 0 0;color:var(--muted);font-size:17px;line-height:1.6}
.legal-warning{display:flex;flex-direction:column;gap:5px;margin:0 0 28px;padding:16px 18px;border-radius:16px;border:1px solid rgba(190,130,40,.28);background:rgba(190,130,40,.08)}.legal-warning strong{font-size:13px}.legal-warning span{font-size:12px;color:var(--muted);line-height:1.5}.legal-warning code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.legal-document-body{display:grid;gap:14px}.legal-document-body section{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px 26px}.legal-document-body h2{margin:0 0 14px;font-size:20px;letter-spacing:-.03em}.legal-document-body p,.legal-document-body li{font-size:14px;line-height:1.72}.legal-document-body p{margin:0 0 12px}.legal-document-body p:last-child{margin-bottom:0}.legal-document-body ul{margin:0;padding-left:20px;display:grid;gap:8px}
.legal-missing{display:inline-block;color:#b15b48;font-weight:750;background:rgba(190,80,50,.08);border-radius:7px;padding:2px 5px}
.legal-definition-list{margin:0;display:grid}.legal-definition-list>div{display:grid;grid-template-columns:210px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.legal-definition-list>div:last-child{border-bottom:0}.legal-definition-list dt{color:var(--muted);font-size:12px;font-weight:700}.legal-definition-list dd{margin:0;font-size:14px;line-height:1.5}
.legal-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.legal-table{width:100%;border-collapse:collapse;min-width:620px}.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:13px 14px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.55}.legal-table th{color:var(--muted);font-size:11px}.legal-table tr:last-child td{border-bottom:0}
@media(max-width:780px){.legal-settings-actions{grid-template-columns:1fr}.public-legal-topbar{min-height:62px;padding:9px 14px}.public-legal-main{width:min(100% - 24px,920px);padding:28px 0 60px}.legal-document-head{margin-bottom:22px}.legal-document-head h1{font-size:34px}.legal-document-head p{font-size:15px}.legal-document-body section{padding:19px 17px;border-radius:18px}.legal-document-body h2{font-size:18px}.legal-document-body p,.legal-document-body li{font-size:13px}.legal-definition-list>div{grid-template-columns:1fr;gap:4px;padding:10px 0}}
