:root{--bg:#f5f6f2;--surface:#fff;--ink:#202c29;--muted:#768079;--line:#e4e9e3;--accent:#286b53;--soft:#e5efe8;--shadow:0 8px 32px #1b382809;--red:#e74c3c;--blue:#3498db;--green:#2ecc71;--nav:rgba(245,246,242,.94);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}body.dark{--bg:#141c1a;--surface:#1e2925;--ink:#edf3ef;--muted:#a0b2a8;--line:#33423a;--accent:#9fd8b7;--soft:#283f32;--shadow:none;--nav:rgba(20,28,26,.95)}button,input,select,textarea{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:14px;padding:12px 16px;background:var(--soft);color:var(--accent);font-weight:600;min-height:44px}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);color:var(--bg)}button.ghost{background:transparent}button.danger{color:#d65b52;background:#e74c3c15}.app{max-width:960px;margin:auto;padding:0 30px 110px}header{height:96px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:2px;font-weight:750}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:1.6px;margin-top:5px}.brand-icon{font-family:Georgia,serif;font-size:34px;font-weight:400;letter-spacing:-2px;display:grid;place-items:center;width:43px;height:45px;background:var(--accent);color:var(--bg);border-radius:13px}.icon{font-size:22px;width:44px;padding:8px;background:var(--surface);border:1px solid var(--line)}h1{font-family:Georgia,'Times New Roman',serif;font-size:43px;font-weight:400;letter-spacing:-1.5px;margin:0 0 8px}h2{font-size:21px;font-weight:650;letter-spacing:-.5px;margin:0 0 16px}h3{font-size:16px;margin:0 0 8px}p{line-height:1.6}.muted,small{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:10px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 23px}.title-row p{margin:0;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:19px;background:var(--surface);margin-bottom:20px;padding:17px 4px}.stat{text-align:center;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat strong{font-size:25px;font-weight:550;display:block;letter-spacing:-1px}.stat small{font-size:11px;display:block;margin-top:5px}.tools{display:flex;gap:9px;margin-bottom:12px}.search{flex:1;min-width:0}.field,input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:12px;width:100%;outline-color:var(--accent)}select{width:auto;max-width:100%}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.filters select{flex:1;min-width:90px;font-size:12px;padding:10px}.section-line{display:flex;justify-content:space-between;align-items:center;margin:18px 0 9px;font-size:11px;color:var(--muted);letter-spacing:.7px}.section-line button{font-size:12px;min-height:32px;padding:5px 8px}.words{border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden}.word{display:flex;align-items:center;gap:14px;padding:19px 21px;border-bottom:1px solid var(--line)}.word:last-child{border:0}.word-info{flex:1;min-width:0}.word-title{font-size:20px;font-weight:600;letter-spacing:-.4px;overflow-wrap:anywhere}.word-translation{font-size:13px;margin-top:5px}.word small{display:block;font-size:11px;margin-top:7px}.article{font-size:11px;letter-spacing:.5px;padding:6px 8px;border-radius:8px;vertical-align:middle;display:inline-block;margin-right:6px;background:var(--soft)}.der{color:var(--blue)}.die{color:var(--red)}.das{color:var(--green)}.article.der{background:#3498db12}.article.die{background:#e74c3c12}.article.das{background:#2ecc7112}.word-actions{display:flex;align-items:center;gap:6px}.word-actions button{padding:7px;background:transparent;min-height:36px}.word-actions select{font-size:11px;border:0;background:var(--bg);padding:8px;width:94px}.check{width:19px;height:19px;accent-color:var(--accent)}nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:14px;background:var(--nav);border-top:1px solid var(--line);backdrop-filter:blur(20px);padding:12px 14px calc(12px + env(safe-area-inset-bottom));z-index:5}nav button{background:transparent;color:var(--muted);min-width:100px;font-size:11px;font-weight:500;padding:8px 15px}nav button.active{background:var(--soft);color:var(--accent)}nav svg{display:block;margin:0 auto 5px;width:21px;height:21px}.panel{padding:25px;border:1px solid var(--line);background:var(--surface);border-radius:20px;margin-bottom:18px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.study-card{text-align:center;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;margin-top:22px}.study-card h2{font-family:Georgia,serif;font-size:38px;margin:30px 0 15px;overflow-wrap:anywhere}.study-card .translation{font-size:21px}.study-actions{display:flex;gap:10px;margin-top:18px}.study-actions>*{flex:1}.wide{width:100%}.game{width:100%;text-align:left;padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:20px;min-height:160px;color:var(--ink)}.game .game-icon{font-size:27px;display:block;margin-bottom:25px;color:var(--accent)}.game small{display:block;font-weight:400;line-height:1.5;margin-top:8px}.options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;width:100%}.options button{min-height:65px;background:var(--bg);color:var(--ink);font-weight:500}.options button.correct{background:#2ecc7125;outline:2px solid #2ecc71}.options button.wrong{background:#e74c3c25;outline:2px solid #e74c3c}.setting{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.setting:last-child{border:0}.setting p{margin:5px 0;font-size:12px;color:var(--muted)}input[type=checkbox].toggle{appearance:none;width:44px;height:26px;min-width:44px;border:0;border-radius:20px;background:var(--line);padding:3px;cursor:pointer}input.toggle:before{content:'';display:block;background:white;border-radius:100%;width:20px;height:20px;transition:transform .15s}input.toggle:checked{background:var(--accent)}input.toggle:checked:before{transform:translateX(18px)}label{display:block;font-size:13px;margin-bottom:6px}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:24px;width:min(94vw,500px);max-height:90dvh;padding:26px;box-shadow:0 25px 120px #0003}dialog::backdrop{background:#10221b80;backdrop-filter:blur(4px)}dialog input,dialog select{margin-bottom:15px}dialog h2{margin-bottom:22px}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.article-buttons{display:flex;gap:7px;margin:0 0 15px}.article-buttons button{flex:1;border:2px solid transparent}.article-buttons button.selected{border-color:currentColor}.notice{font-size:12px;color:var(--muted);line-height:1.6}.empty{text-align:center;padding:50px 15px;color:var(--muted)}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);max-width:90vw;border-radius:15px;padding:13px 20px;background:var(--ink);color:var(--bg);z-index:20;display:none;font-size:13px}.progress{height:5px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:17px}.progress span{height:100%;background:var(--accent);display:block}.good{color:var(--accent)}.summary{font-size:55px;font-family:Georgia,serif}.file-label{display:block;border:1px dashed var(--accent);padding:24px;border-radius:14px;text-align:center;cursor:pointer;color:var(--accent)}.file-label input{display:block;margin:12px 0 0;font-size:12px}.bulk{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.bulk button{font-size:12px}.category-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.category-row span{flex:1}.category-row button{font-size:12px}.intro-panel{background:var(--soft);border:0}.key-cap{font-family:Georgia,serif;font-size:45px;line-height:1;letter-spacing:-3px;color:var(--accent)}
@media(max-width:600px){.app{padding:0 18px 105px}header{height:76px}h1{font-size:35px}.title-row{margin:10px 0 18px}.title-row>button{font-size:12px;padding:12px}.stats{padding:13px 0;margin-bottom:15px}.stat strong{font-size:23px}.stat small{font-size:10px}.word{padding:15px 13px;gap:8px}.word-title{font-size:18px}.word-translation{font-size:12px}.word-actions{flex-wrap:wrap;justify-content:flex-end;max-width:98px}.word-actions select{width:92px}.word-actions button{min-height:28px;padding:3px 8px}.tools{margin-bottom:8px}.filters{gap:5px;margin-top:8px}.filters select{padding:10px 7px;font-size:11px}nav{gap:3px;padding-left:8px;padding-right:8px}nav button{min-width:0;flex:1;padding:8px;font-size:10px}.panel{padding:20px}.grid{gap:10px}.game{padding:20px 16px}.study-card{min-height:310px}.study-card h2{font-size:32px}.study-actions{flex-wrap:wrap}.study-actions button{font-size:12px}.options{grid-template-columns:1fr}.row{flex-wrap:wrap}.row>*{min-width:110px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
body{background:var(--bg);color:var(--ink);min-height:100vh}body.dark{color-scheme:dark}
/* Yoda 1.2: compact header, direct statuses and a stable training viewport. */
header{height:72px}.brand{font-size:21px;letter-spacing:-.4px;gap:9px}.brand-icon{width:30px;height:32px;border-radius:10px;font-size:24px;letter-spacing:-1px}.title-row{margin:10px 0 18px}.title-row h1{font-size:36px}.status-filters{display:flex;gap:6px;margin:0 0 12px}.status-filters button{padding:8px 14px;font-size:12px;background:transparent;color:var(--muted);border:1px solid var(--line);min-height:36px}.status-filters [aria-pressed=true]{background:var(--soft);color:var(--accent);border-color:var(--accent)}.filters{margin-bottom:9px}.word-actions{max-width:none;display:grid;grid-template-columns:1fr 1fr;width:228px;gap:4px}.word-actions>button{justify-self:end;padding:6px 11px}.word-actions>button:first-child{justify-self:end}.word-status{grid-column:1/-1;display:flex;gap:4px}.word-actions .word-status button{padding:9px 10px;min-height:36px;flex:1;font-size:11px;background:var(--bg);border:1px solid var(--line);white-space:nowrap;border-radius:10px;color:var(--muted)}.word-actions .word-status [aria-pressed=true]{color:var(--accent);background:var(--soft);border-color:var(--accent)}
.streak-badge{display:flex;align-items:center;gap:7px;padding:7px 11px;min-height:38px;border-radius:14px;background:var(--surface);border:1px solid var(--line);color:var(--fire);font-size:16px}.streak-badge svg{width:22px;height:28px;flex-shrink:0}.streak-badge small{font-size:11px;color:var(--muted);font-weight:500}.tier-1{--fire:#dba34b;--flame-core:#fff1bb}.tier-5{--fire:#ed812f;--flame-core:#ffdc99}.tier-10{--fire:#e55757;--flame-core:#ffdfad}.tier-30{--fire:#9b7de8;--flame-core:#e4d9ff}.tier-40{--fire:#449ee3;--flame-core:#b9edff}.tier-50{--fire:#efb737;--flame-core:#fff9de}.streak-badge.tier-5 svg{filter:drop-shadow(0 0 3px var(--fire))}.streak-badge:is(.tier-10,.tier-30,.tier-40,.tier-50) svg{animation:flame-glow 3s ease-in-out infinite;transform-origin:50% 90%}.streak-badge.tier-50{border-color:var(--fire);box-shadow:0 0 12px #efb73722}.streak-detail{text-align:center}.streak-detail>svg{width:64px;height:76px;color:var(--fire);filter:drop-shadow(0 0 7px var(--fire))}.streak-detail h2{margin:16px 0 5px}.milestones{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.milestones span{border:1px solid var(--line);border-radius:12px;padding:12px 5px;color:var(--muted);font-size:12px}.milestones .earned{background:var(--soft);border-color:var(--accent);color:var(--accent)}
@keyframes flame-glow{0%,100%{filter:drop-shadow(0 0 2px var(--fire));transform:scale(1)}50%{filter:drop-shadow(0 0 6px var(--fire));transform:scale(1.07)}}
body.training{overflow:hidden}body.training .app>header,body.training #nav{display:none}.session-shell{position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(100%,720px);height:var(--session-height,100dvh);padding:calc(12px + env(safe-area-inset-top)) 22px calc(12px + env(safe-area-inset-bottom));z-index:10;background:var(--bg);display:flex;flex-direction:column;gap:12px;overflow:hidden}.session-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-shrink:0;min-height:44px}.session-top strong{font-size:17px}.session-top small{display:inline-block;margin-left:10px;font-size:12px}.session-top>button{padding:10px;font-size:12px}.session-shell .progress{margin:0;flex-shrink:0}.session-content{display:flex;flex-direction:column;justify-content:center;min-height:0;overflow:auto;overscroll-behavior:contain;flex:1;padding:12px 3px;gap:16px}.session-word{text-align:center}.session-word h2{font-family:Georgia,serif;font-size:clamp(25px,5vw,39px);margin:12px 0;overflow-wrap:anywhere}.session-word .eyebrow{font-size:10px;margin:0}.session-word>.ghost{padding:7px;min-height:34px;font-size:13px}.session-word .card-back{margin-top:8px;min-height:80px;display:flex;flex-direction:column;justify-content:center;gap:8px}.session-word .translation{font-size:23px;overflow-wrap:anywhere}.session-footer{flex-shrink:0;border-top:1px solid var(--line);padding:10px 0 0;min-height:104px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px}.session-footer button{min-height:48px}.session-footer .study-actions{margin:0;display:flex;flex-wrap:nowrap;gap:9px}.answer-prompt{text-align:center;color:var(--muted);font-size:13px;min-height:24px}.answer-prompt strong{color:var(--ink);font-size:18px;letter-spacing:2px}.answer-result{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;max-height:100px;overflow:auto;overflow-wrap:anywhere}.correct-answer{color:#22864b;font-size:17px}.dark .correct-answer{color:#75df9d}.session-options{margin-top:0;grid-template-columns:1fr 1fr;gap:10px}.session-options button{min-height:58px;background:var(--surface);border:1px solid var(--line);font-size:14px;padding:11px;overflow-wrap:anywhere}.session-options button:disabled{opacity:1}.session-options button.correct{background:#2ecc7122;border-color:#22864b;outline:2px solid #22864b;color:#176e3c}.dark .session-options button.correct{color:#8ae9b0;border-color:#75df9d;outline-color:#75df9d}.session-options button.wrong{background:#e74c3c15;outline-color:#c95a4f;border-color:#c95a4f}.listen-large{font-size:36px;border-radius:24px;width:80px;height:80px;margin-top:15px}.result-card{text-align:center;align-items:center}.session-content #typing{margin-top:8px}.session-content #typed{font-size:19px;min-height:50px}.session-footer [data-action=hint]{min-width:110px}.session-footer .study-actions>*{font-size:14px}.session-word .card-back small{font-size:13px;color:var(--muted)}
@media(max-width:600px){header{height:62px}.title-row h1{font-size:32px}.word{flex-wrap:wrap;gap:8px;padding:13px}.word-info{min-width:180px}.word-actions{width:100%;display:flex;align-items:center;justify-content:flex-end;gap:5px}.word-actions>button{min-height:36px;padding:6px 9px}.word-status{display:flex;margin-left:auto;flex:1;max-width:245px}.word-actions .word-status button{font-size:11px;padding:8px 9px;min-height:36px}.session-shell{padding-left:16px;padding-right:16px;gap:8px}.session-top strong{font-size:15px}.session-options button{min-height:54px;padding:10px;font-size:13px}.session-word h2{font-size:29px}.session-word .translation{font-size:21px}.session-content{gap:12px}.status-filters button{flex:1;padding:8px 9px}}
@media(max-height:600px){.session-shell{gap:6px;padding-top:5px;padding-bottom:6px}.session-content{gap:8px;padding:4px 2px}.session-word h2{font-size:24px;margin:8px 0}.session-word .card-back{min-height:50px}.session-footer{min-height:90px;padding-top:7px}.session-options button{min-height:45px;padding:7px;font-size:12px}.session-word .eyebrow{display:none}.listen-large{width:50px;height:50px;font-size:25px;margin-top:5px}}
@media(prefers-reduced-motion:reduce){.streak-badge svg{animation:none!important;transform:none!important}}
