@font-face{font-family:Space Grotesk;src:url(/assets/space-grotesk-latin-BhU9QXUp.woff2)format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Roboto Flex;src:url(/assets/roboto-latin-ccAYIvAh.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--display:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;--font:"Roboto Flex", Roboto, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-hero:clamp(1.7rem, 1.35rem + 1.4vw, 2.25rem);--t-h1:clamp(1.5rem, 1.2rem + 1vw, 1.9rem);--t-h2:1.45rem;--t-h3:1rem;--t-body:1rem;--t-small:.875rem;--t-tiny:.785rem;--t-micro:.7rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:22px;--s6:30px;--s7:44px;--r-chip:6px;--r-ctl:8px;--r-md:12px;--r-lg:14px;--r-xl:18px;--r-pill:999px;--r-xs:var(--r-chip);--r-sm:var(--r-ctl);--radius:var(--r-lg);--radius-sm:var(--r-sm);--ring:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);--press:translateY(1px);--lift:translateY(-2px);--topbar-h:65px;--side-w:232px;--row-h:58px;--h-sm:32px;--h-md:40px;--h-lg:44px;--pad-card:20px;--pad-panel:var(--s4);--pad-x:clamp(18px, 2vw, 40px);--medida:1400px;--bg:#faf9f6;--surface:#fff;--surface-2:#f2f0ea;--surface-3:#e8e5dd;--line:#e7e3da;--line-strong:#d2ccbf;--ink:#1a1917;--ink-2:#514c45;--ink-3:#8a837a;--accent:#1f6f5c;--accent-strong:#175647;--accent-soft:#e2efe9;--accent-line:#b9d6ca;--accent-ink:#fff;--good:#1f6f5c;--good-soft:#e2efe9;--warn:#a9611b;--warn-soft:#fbecda;--bad:#a3342b;--bad-soft:#f9e4e1;--focus:#1f6f5c;--sk-listening:#2f6b96;--sk-reading:#63549f;--sk-writing:#a06a1c;--sk-speaking:#a4493c;--sk-vocabulary:#1f6f5c;--sk-grammar:#1f6b78;--tint:var(--accent);--ease:cubic-bezier(.2, .8, .2, 1);--fast:.14s;--mid:.24s;--slow:.42s;--shadow-1:0 1px 2px #1a19170a;--shadow-2:0 1px 2px #1a19170a, 0 8px 20px -12px #1a19173d;--shadow-3:0 30px 70px -24px #1a191773;--shadow:var(--shadow-1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1114;--surface:#16191e;--surface-2:#1d2128;--surface-3:#262b33;--line:#262b33;--line-strong:#3a414c;--ink:#edeff2;--ink-2:#aab1bb;--ink-3:#767d88;--accent:#5ec6a4;--accent-strong:#78d5b6;--accent-soft:#16302a;--accent-line:#29564a;--accent-ink:#06231b;--good:#5ec6a4;--good-soft:#16302a;--warn:#e0a066;--warn-soft:#33261a;--bad:#ef8b80;--bad-soft:#351f1d;--focus:#5ec6a4;--sk-listening:#7fb6e0;--sk-reading:#a99cf0;--sk-writing:#e0a75f;--sk-speaking:#ec9184;--sk-vocabulary:#5ec6a4;--sk-grammar:#6ec2d2;--shadow-1:0 1px 2px #00000080;--shadow-2:0 1px 2px #00000080, 0 12px 30px -18px #000000e6;--shadow-3:0 30px 70px -20px #000000bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1114;--surface:#16191e;--surface-2:#1d2128;--surface-3:#262b33;--line:#262b33;--line-strong:#3a414c;--ink:#edeff2;--ink-2:#aab1bb;--ink-3:#767d88;--accent:#5ec6a4;--accent-strong:#78d5b6;--accent-soft:#16302a;--accent-line:#29564a;--accent-ink:#06231b;--good:#5ec6a4;--good-soft:#16302a;--warn:#e0a066;--warn-soft:#33261a;--bad:#ef8b80;--bad-soft:#351f1d;--focus:#5ec6a4;--sk-listening:#7fb6e0;--sk-reading:#a99cf0;--sk-writing:#e0a75f;--sk-speaking:#ec9184;--sk-vocabulary:#5ec6a4;--sk-grammar:#6ec2d2;--shadow-1:0 1px 2px #00000080;--shadow-2:0 1px 2px #00000080, 0 12px 30px -18px #000000e6;--shadow-3:0 30px 70px -20px #000000bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-skill=listening]{--tint:var(--sk-listening)}[data-skill=reading]{--tint:var(--sk-reading)}[data-skill=writing]{--tint:var(--sk-writing)}[data-skill=speaking]{--tint:var(--sk-speaking)}[data-skill=vocabulary]{--tint:var(--sk-vocabulary)}[data-skill=grammar]{--tint:var(--sk-grammar)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}::selection{background:var(--accent-soft);color:var(--accent)}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.022em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3);letter-spacing:-.012em}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.grid>*,.grid-2>*{animation:rise var(--slow) var(--ease) backwards}.grid>:first-child{animation-delay:20ms}.grid>:nth-child(2){animation-delay:60ms}.grid>:nth-child(3){animation-delay:.1s}.grid>:nth-child(4){animation-delay:.14s}.grid>:nth-child(5){animation-delay:.18s}.grid>:nth-child(6){animation-delay:.22s}.grid>:nth-child(n+7){animation-delay:.26s}.grid>.ex-card{animation-delay:calc(min(var(--i,0), 11) * 42ms)}.player>*{animation:rise var(--mid) var(--ease) backwards}.player>:nth-child(2){animation-delay:40ms}.player>:nth-child(3){animation-delay:70ms}.player>:nth-child(n+4){animation-delay:.1s}.app{flex-direction:column;min-height:100%;display:flex}.app,.app-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.side,.drawer,.app-stage .main,.main{padding-bottom:max(var(--s5), env(safe-area-inset-bottom))}.app-shell{grid-template-columns:var(--side-w) minmax(0, 1fr);min-height:100%;display:grid}.side{align-self:start;gap:var(--s4);background:var(--surface);border-right:1px solid var(--line);z-index:20;flex-direction:column;height:100dvh;padding:14px 12px 16px;display:flex;position:sticky;top:0}.side-brand{padding:0 6px}.side-new{justify-content:center;width:100%}.side-nav{flex-direction:column;gap:2px;display:flex}.side-nav button{min-height:var(--h-md);color:var(--ink-2);border-radius:var(--r-ctl);cursor:pointer;text-align:left;font-size:var(--t-small);transition:color var(--fast) var(--ease), background var(--fast) var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:0 10px;font-weight:500;display:flex}.side-nav button:hover{color:var(--ink);background:var(--surface-2)}.side-nav button[aria-current=page]{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-weight:600}.side-nav button[aria-current=page] .icon{color:var(--accent)}.side-foot{padding-top:var(--s3);border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:auto;display:flex}.side-foot>.btn{justify-content:flex-start;width:100%}.side-prefs{align-items:center;gap:6px;display:flex}.side-slot{min-height:var(--h-lg)}.side-slot>.btn{width:100%}.side-account{flex-direction:row;align-items:center;gap:6px;display:flex}.side-email{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:0 4px;overflow:hidden}.side-out{color:var(--ink-3);flex:none;padding:4px 7px}.side-out:hover:not(:disabled){color:var(--ink)}.side-prefs .ui-lang{flex:none}.ui-lang.sel-btn{background:0 0;border-color:#0000;gap:7px;width:auto;padding:4px 6px}.ui-lang.sel-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.shell-main{flex-direction:column;min-width:0;display:flex}.drawer-veil{display:none}.topbar{z-index:20;align-items:center;gap:var(--s4);padding:10px var(--pad-x);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar-slim{display:none}.brand{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);align-items:center;gap:10px;font-size:1.02rem;font-weight:600;display:flex}.brand-mark{border-radius:var(--r-chip);background:var(--accent);width:30px;height:30px;color:var(--accent-ink);box-shadow:var(--shadow-1);place-items:center;display:grid;overflow:hidden}.main{width:100%;min-width:0;padding:var(--s6) var(--pad-x) var(--s7);flex:1}.app-stage .main{width:min(1280px,100%);margin-inline:auto}.main:has(>.player){flex-direction:column;justify-content:center;display:flex}.main{animation:fade-in var(--mid) var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.stack{gap:var(--s5);flex-direction:column;display:flex}.medida{max-width:var(--medida)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{gap:var(--s3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(268px,1fr));display:grid}.grid-2{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(310px,1fr));display:grid}.page-head{gap:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.page-head h1{font-size:var(--t-hero);letter-spacing:-.03em}.app-shell .page-head{padding-bottom:var(--s3)}.app-shell .page-head h1{font-size:1.62rem}.page-head .sub{color:var(--ink-3);max-width:60ch;font-size:var(--t-small);margin-top:4px}.eyebrow{font-family:var(--display);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-weight:600}.editor-bar{padding-bottom:var(--s3);border-bottom:1px solid var(--line)}.app-stage{background:radial-gradient(130% 80% at 50% -15%, color-mix(in srgb, var(--tint) 16%, transparent), transparent 72%), var(--bg)}.app-stage:has([data-skill=listening]){--tint:var(--sk-listening)}.app-stage:has([data-skill=reading]){--tint:var(--sk-reading)}.app-stage:has([data-skill=writing]){--tint:var(--sk-writing)}.app-stage:has([data-skill=speaking]){--tint:var(--sk-speaking)}.app-stage:has([data-skill=vocabulary]){--tint:var(--sk-vocabulary)}.app-stage:has([data-skill=grammar]){--tint:var(--sk-grammar)}.app-stage .main{min-height:calc(100dvh - 210px);padding-bottom:var(--s6);flex-direction:column;justify-content:center;display:flex}.app-stage .topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0}.app-stage .main{padding-top:var(--s5)}.app-stage .foot{background:0 0;border-top-color:#0000}.icon{vertical-align:-.14em;flex:none;place-items:center;display:inline-grid}.icon>svg{width:100%;height:100%;display:block}.btn .icon,.pill .icon{margin-right:-1px}.flag{vertical-align:-.2em;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 12%, transparent);border-radius:50%;flex:none;place-items:center;display:inline-grid;overflow:hidden}.flag>svg{width:100%;height:100%;display:block}.flag-none{font-family:var(--display);letter-spacing:0;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);font-size:.5em;font-weight:600}.lang-pair{font-family:var(--display);letter-spacing:.07em;color:var(--ink-2);align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:inline-flex}.lang-pair i{color:var(--ink-3);margin:0 2px;font-style:normal;font-weight:400}.lang-pair .flag{margin-right:1px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--pad-card);box-shadow:var(--shadow-1)}.card-flat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--pad-card)}.btn{min-height:var(--h-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--r-ctl);cursor:pointer;font-family:var(--font);font-size:var(--t-small);letter-spacing:0;white-space:nowrap;transition:transform var(--fast) var(--ease), background var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:500;line-height:1.2;display:inline-flex}.btn .icon{width:15px;height:15px}.btn-sm .icon{width:14px;height:14px}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.4;cursor:not-allowed}.btn[disabled]:hover{background:var(--surface)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 35%, transparent);background:0 0}.btn-danger:hover{background:var(--bad-soft)}.btn-lg{min-height:var(--h-lg);font-size:var(--t-body);padding:0 20px}.btn-sm{min-height:var(--h-sm);font-size:var(--t-tiny);gap:6px;padding:0 10px}.pill{background:var(--surface-2);min-height:24px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-chip);font-size:var(--t-tiny);white-space:nowrap;align-items:center;gap:5px;padding:2px 8px;font-weight:500;display:inline-flex}.pill .icon{width:13px;height:13px}.pill-accent{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.pill-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.pill-open{background:var(--good-soft);color:var(--good);border-color:var(--accent-line)}.muted{color:var(--ink-3)}.small{font-size:var(--t-small)}.tiny{font-size:var(--t-tiny);line-height:1.5}.mono{font-family:var(--mono)}.field{flex-direction:column;gap:6px;display:flex}.field>label{font-size:var(--t-tiny);color:var(--ink-2);font-weight:500}.input,.textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);width:100%;font-size:var(--t-small);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:9px 11px}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}@media (pointer:coarse){.input,.textarea,select,.sel-search input{font-size:16px}}.textarea{resize:vertical;min-height:120px;font-family:var(--mono);font-size:.85rem;line-height:1.55}.sel-btn{width:100%;min-height:var(--h-md);text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);font:inherit;font-size:var(--t-small);color:var(--ink);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:center;gap:8px;padding:6px 10px;display:flex}.sel-btn:hover:not(:disabled){border-color:var(--accent-line)}.sel-btn:focus-visible,.sel-btn[aria-expanded=true]{border-color:var(--accent);box-shadow:var(--ring);outline:none}.sel-btn:disabled{opacity:.55;cursor:not-allowed}.sel-value{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.sel-value .sel-label{text-overflow:ellipsis;overflow:hidden}.sel-caret{color:var(--ink-3);transition:transform var(--fast) var(--ease)}.sel-btn[aria-expanded=true] .sel-caret{transform:rotate(180deg)}.sel-pop{z-index:90;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);min-height:0;box-shadow:var(--shadow-2);animation:pop-in var(--fast) var(--ease);flex-direction:column;padding:6px;display:flex;position:fixed}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.sel-search{flex:none;margin-bottom:4px}.sel-list{min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.sel-list:focus{outline:none}.sel-opt{cursor:pointer;text-align:left;border-radius:var(--r-chip);width:100%;color:var(--ink);font:inherit;font-size:var(--t-small);background:0 0;border:0;align-items:center;gap:9px;padding:7px 9px;display:flex}.sel-opt .sel-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sel-opt.active{background:var(--surface-2)}.sel-opt.on{color:var(--accent)}.sel-opt.on.active{background:var(--accent-soft)}.sel-opt:disabled{opacity:.45;cursor:not-allowed}.sel-none{padding:10px}.sel-sm .sel-btn,.sel-btn.sel-sm{min-height:var(--h-sm);font-size:var(--t-tiny);padding:3px 8px}.divider{background:var(--line);border:0;height:1px;margin:2px 0}.ex-card{transition:transform var(--mid) var(--ease), box-shadow var(--mid) var(--ease), border-color var(--mid) var(--ease);flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.ex-card:before{content:"";z-index:2;background:var(--tint);opacity:0;height:3px;transition:opacity var(--mid) var(--ease);position:absolute;inset:0 0 auto}.ex-card:hover{transform:var(--lift);box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--tint) 35%, var(--line))}.ex-card:hover:before{opacity:1}.ex-card h3{min-height:2.2em;font-size:1.12rem}.ex-head{align-items:flex-start;gap:11px;padding:15px 17px 0;display:flex}.ex-head h3{flex:1;min-width:0;margin:0}.ex-head .pill{flex:none}.ex-body{flex-direction:column;flex:1;gap:10px;padding:11px 17px 17px;display:flex}.ex-terms{max-height:3.5em;font-family:var(--display);letter-spacing:-.01em;color:var(--ink-2);flex-wrap:wrap;gap:4px 13px;margin:0;padding:0;font-size:.84rem;font-weight:500;list-style:none;display:flex;overflow:hidden}.ex-terms li{align-items:center;gap:5px;display:inline-flex}.ex-term-emoji{font-size:.95em}.ex-term-more{color:var(--ink-3);font-weight:400}.ex-opens{font-size:var(--t-tiny);color:var(--ink-3)}.num{font-family:var(--display);color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:600}.card-meta{font-size:var(--t-tiny);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:3px 14px;display:flex}.card-meta .lead{color:var(--ink-2);font-weight:500}.mech-glyph{border-radius:var(--r-ctl);background:var(--surface);border:1px solid color-mix(in srgb, var(--tint) 26%, transparent);width:36px;height:36px;color:var(--tint);box-shadow:0 6px 16px -10px color-mix(in srgb, var(--tint) 80%, transparent);place-items:center;display:grid}.mech-card .icon{color:var(--tint)}.ex-card .actions{align-items:center;gap:6px;display:flex}.ex-card .actions-secondary{border-top:1px solid var(--line);justify-content:space-between;margin-top:auto;padding-top:10px}.mech-card{gap:var(--s3);text-align:left;cursor:pointer;width:100%;transition:transform var(--fast) var(--ease), border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:flex-start;padding:16px;display:flex}.mech-card:hover:not(.disabled){border-color:color-mix(in srgb, var(--tint) 40%, var(--line));transform:var(--lift);box-shadow:var(--shadow-2)}.mech-card>.icon{border-radius:var(--r-ctl);background:color-mix(in srgb, var(--tint) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--tint) 22%, transparent);width:40px;height:40px;color:var(--tint);transition:background var(--fast) var(--ease);flex:none;place-items:center;display:grid}.mech-card:hover:not(.disabled)>.icon{background:color-mix(in srgb, var(--tint) 18%, var(--surface))}.mech-card.disabled{opacity:.5;cursor:not-allowed}.mech-card .pill{white-space:normal;text-align:left}.card-flat.mech-card{align-items:center;gap:11px;padding:11px 13px}.card-flat.mech-card>.icon{border-radius:var(--r-chip);width:32px;height:32px}.card-flat.mech-card:after{content:"→";font-family:var(--display);color:var(--tint);opacity:0;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);transform:translate(-4px)}.card-flat.mech-card:hover:not(.disabled):after{opacity:1;transform:none}.card-flat.mech-card.disabled:after{content:""}.player{gap:var(--s5);flex-direction:column;width:min(720px,100%);margin:0 auto;display:flex;position:relative}.app:not(.app-stage) .player:before{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--tint) 15%, transparent), transparent);pointer-events:none;width:min(900px,100%);height:430px;position:absolute;top:-130px;left:50%;transform:translate(-50%)}.player>*{position:relative}.player .pill-accent{background:color-mix(in srgb, var(--tint) 12%, transparent);color:var(--tint);border-color:color-mix(in srgb, var(--tint) 26%, transparent)}.play-head{align-items:center}.play-title{text-align:center;text-wrap:balance;letter-spacing:-.025em;font-size:1.45rem}.progress{align-items:center;gap:3px;height:10px;display:flex}.progress>i{border-radius:var(--r-pill);background:var(--surface-3);transform-origin:50%;height:5px;transition:background var(--mid) var(--ease), transform var(--mid) var(--ease), box-shadow var(--mid) var(--ease);flex:1}.progress>i.hit{background:var(--tint)}.progress>i.miss{background:var(--bad)}.progress>i.review{box-shadow:inset 0 0 0 1.5px var(--line-strong);opacity:.5;background:0 0;flex:0 0 18px}.progress>i.review.due{box-shadow:inset 0 0 0 1.5px var(--bad);opacity:1}.progress>i.review.now{background:color-mix(in srgb, var(--bad) 30%, var(--surface-3));box-shadow:inset 0 0 0 1.5px var(--bad)}.progress>i.now{background:color-mix(in srgb, var(--tint) 45%, var(--surface-3));animation:breathe 2.4s var(--ease) infinite;transform:scaleY(1.9)}@keyframes breathe{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--tint) 32%, transparent)}to{box-shadow:0 0 0 6px #0000}}.prompt{background:linear-gradient(180deg, color-mix(in srgb, var(--tint) 7%, var(--surface)) 0%, var(--surface) 62%);border:1px solid color-mix(in srgb, var(--tint) 18%, var(--line));border-radius:var(--r-xl);text-align:center;box-shadow:0 26px 60px -38px color-mix(in srgb, var(--tint) 75%, transparent), var(--shadow-1);padding:40px 26px}.prompt .cue{font-family:var(--display);letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.1rem);font-weight:600;line-height:1.2}.prompt .sub{color:var(--ink-3);font-size:var(--t-small);margin-top:8px}.choices{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.choice{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);flex-direction:column;align-items:center;gap:9px;padding:20px 14px;display:flex;position:relative}.choice:hover:not(.locked){border-color:var(--accent);transform:var(--lift);box-shadow:var(--shadow-2)}.choice .glyph{font-size:3rem;line-height:1}.item-image{object-fit:cover;border-radius:var(--r-sm);display:block}.choice .item-image{aspect-ratio:4/3;width:100%;max-width:130px}.cue-image{aspect-ratio:4/3;width:132px;margin:0 auto 12px}.card-image{aspect-ratio:4/3;width:150px;margin:0 auto 10px}span.card-image{aspect-ratio:auto;width:auto;font-size:2.6rem;line-height:1;display:block}span.cue-image{aspect-ratio:auto;width:auto;font-size:2.2rem;line-height:1;display:block}.memory-card .item-image{aspect-ratio:4/3;width:100%;max-height:46px}.choice .label{font-family:var(--display);letter-spacing:-.01em;min-height:1.35em;font-size:1.02rem;font-weight:500;line-height:1.35}.choice.correct{background:var(--good-soft);border-color:var(--good);animation:pop var(--mid) var(--ease)}.choice.wrong{background:var(--bad-soft);border-color:var(--bad);animation:shake var(--slow) var(--ease)}.choice.locked{cursor:default}.choices-text{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.choices-text .choice{padding:17px 14px}.chips{flex-wrap:wrap;justify-content:center;gap:8px;min-height:46px;display:flex}.play-back{margin-bottom:calc(var(--s3) * -1)}.player .row-center{min-height:var(--h-lg);align-content:center}.player .row-center .btn-lg{justify-content:center;min-width:11rem}.action-row{gap:10px}.action-main{justify-items:center;display:grid}.action-main>.action-slot{grid-area:1/1}.action-open{align-items:center;gap:10px;display:flex}.action-skip{color:var(--ink-3)}.action-skip:hover{color:var(--ink)}.player{position:relative}.player:after{content:"";z-index:3;border-radius:var(--r-xl);pointer-events:none;opacity:0;background:radial-gradient(120% 60% at 50% 0%, var(--flash,transparent), transparent 65%);position:absolute;inset:-18px}.player[data-verdict=good]:after{--flash:color-mix(in srgb, var(--good) 30%, transparent);animation:verdict var(--slow) var(--ease)}.player[data-verdict=bad]:after{--flash:color-mix(in srgb, var(--bad) 26%, transparent);animation:verdict .62s var(--ease)}@keyframes verdict{0%{opacity:0}18%{opacity:1}to{opacity:0}}.textarea.wrong,.dictation-input.wrong{border-color:var(--bad);color:var(--bad);animation:shake var(--slow) var(--ease)}.cloze-slot.bad,.spell-slot.wrong{animation:shake var(--slow) var(--ease)}.player .row-thin{min-height:0;margin-top:calc(var(--s2) * -1)}.btn.arming{position:relative;overflow:hidden}.btn.arming:after{content:"";pointer-events:none;background:linear-gradient(to top, currentColor 0 2px, transparent 2px), color-mix(in srgb, currentColor 16%, transparent);transform-origin:100%;animation:arming var(--wait,.9s) cubic-bezier(.3, 0, .3, 1) forwards;position:absolute;inset:0;transform:scaleX(0)}@keyframes arming{0%{opacity:1;transform:scaleX(0)}84%{opacity:1}to{opacity:0;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.btn.arming:after{opacity:.55;background:linear-gradient(0deg,currentColor 0 2px,#0000 2px);animation:none;transform:scaleX(1)}}.player [tabindex="-1"]:focus,.player [tabindex="-1"]:focus-visible{outline:none}.retry-note{text-align:center}@media (prefers-reduced-motion:reduce){.player:after{animation:none!important}}.reveal{visibility:hidden}.reveal.on{visibility:visible}.chip{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);cursor:pointer;font-family:var(--display);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease), color var(--fast) var(--ease);padding:8px 14px;font-size:.97rem;font-weight:500}.chip:hover{border-color:var(--accent)}.chip.used{opacity:.28;pointer-events:none}.chip.placed{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.answer-slot{border:1.5px dashed var(--line-strong);border-radius:var(--r-md);min-height:98px;transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:11px;display:flex}.answer-slot.correct{border-style:solid;border-color:var(--good);background:var(--good-soft)}.answer-slot.wrong{border-style:solid;border-color:var(--bad);background:var(--bad-soft);animation:shake var(--slow) var(--ease)}.gap-sentence{font-family:var(--display);letter-spacing:-.015em;font-size:1.35rem;font-weight:500;line-height:2.1}.gap-input{text-align:center;vertical-align:baseline;border:0;border-bottom:2px solid var(--line-strong);width:9ch;font:inherit;color:var(--tint);transition:border-color var(--fast) var(--ease);background:0 0;margin:0 6px 0 2px;padding:0 4px;font-weight:600;display:inline-block}.gap-input:focus{border-bottom-color:var(--tint);outline:none}.gap-input.wrong{border-bottom-color:var(--bad);color:var(--bad);animation:shake var(--slow) var(--ease)}.gap-sentence .answer{text-align:center;vertical-align:baseline;border-bottom:2px solid #0000;margin:0 6px 0 2px;padding:0 4px;display:inline-block}.gap-input::placeholder{color:var(--ink-3);opacity:1;font-weight:400}.match-cols{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.match-col{flex-direction:column;gap:8px;display:flex}.match-item{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-ctl);cursor:pointer;text-align:left;font-size:var(--t-small);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease), color var(--fast) var(--ease);padding:12px 14px;font-weight:500}.match-item:hover:not(.done){border-color:var(--accent)}.match-item.sel{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.match-item.done{opacity:.3;pointer-events:none;border-style:dashed}.match-item.err{background:var(--bad-soft);border-color:var(--bad);animation:shake var(--slow) var(--ease)}.flashcard{text-align:center;background:linear-gradient(180deg, color-mix(in srgb, var(--tint) 7%, var(--surface)) 0%, var(--surface) 60%);border:1px solid color-mix(in srgb, var(--tint) 18%, var(--line));border-radius:var(--r-xl);cursor:pointer;min-height:250px;box-shadow:0 26px 60px -38px color-mix(in srgb, var(--tint) 75%, transparent), var(--shadow-1);transition:box-shadow var(--mid) var(--ease), border-color var(--mid) var(--ease), transform var(--mid) var(--ease);place-items:center;padding:34px;display:grid;position:relative}.deck{position:relative}.deck:after{content:"";background:var(--surface);border:1px solid color-mix(in srgb, var(--tint) 16%, var(--line));border-radius:0 0 var(--r-xl) var(--r-xl);z-index:0;pointer-events:none;border-top:0;height:16px;position:absolute;bottom:-7px;left:16px;right:16px}.deck>.flashcard{z-index:1}.flashcard:hover{transform:var(--lift);box-shadow:0 30px 64px -34px color-mix(in srgb, var(--tint) 80%, transparent), var(--shadow-2);border-color:color-mix(in srgb, var(--tint) 34%, var(--line))}.mic{border:2px solid var(--line-strong);background:var(--surface);cursor:pointer;width:96px;height:96px;transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);border-radius:50%;place-items:center;margin:0 auto;font-size:2.2rem;display:grid}.mic.live{border-color:var(--accent);background:var(--accent-soft);animation:1.3s ease-in-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 42%, transparent)}to{box-shadow:0 0 0 16px #0000}}.hold{min-height:1.5em}.feedback{text-align:center;min-height:26px;font-family:var(--display);letter-spacing:-.01em;font-weight:600}.feedback.good{color:var(--good)}.feedback.bad{color:var(--bad)}.dictation-input{width:min(520px,100%);min-height:96px;font-family:var(--font);text-align:center;margin:0 auto;font-size:1.05rem;line-height:1.7}.dictation-result{width:min(520px,100%);min-height:96px;font-family:var(--display);flex-wrap:wrap;place-content:center;gap:8px;margin:0 auto;padding:4px;font-size:1.15rem;display:flex}.dictation-result span{border-radius:var(--r-xs);padding:2px 8px}.dictation-result span.ok{background:var(--good-soft);color:var(--good)}.dictation-result span.ko{background:var(--bad-soft);color:var(--bad);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.memory-grid{gap:10px;display:grid}.memory-card{aspect-ratio:3/2;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:center;transition:background var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease);place-items:center;padding:8px;display:grid}.memory-card .back{font-family:var(--display);color:var(--ink-3);font-size:1.6rem;font-weight:700}.memory-card .face{flex-direction:column;align-items:center;gap:4px;display:flex}.memory-card .face .glyph{font-size:1.7rem;line-height:1}.memory-card .face .text{font-family:var(--display);overflow-wrap:anywhere;font-size:.92rem;font-weight:500;line-height:1.2}.memory-card.up{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.memory-card.up.translation{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink)}.memory-card.done{opacity:.3;pointer-events:none;border-style:dashed}.memory-card:hover:not(.done):not(.up){border-color:var(--accent);transform:var(--lift)}.key-hint{border:1px solid var(--line-strong);border-radius:var(--r-xs);min-width:20px;height:20px;font-family:var(--mono);color:var(--ink-3);background:var(--surface-2);padding:0 5px;font-size:.68rem;font-weight:600;line-height:18px;display:none}.choice .key-hint{position:absolute;top:9px;left:9px}.keys-only{text-align:center;display:none}@media (hover:hover) and (pointer:fine) and (width>=721px){.key-hint{display:inline-block}.keys-only{display:block}}.result{text-align:center;justify-content:center;min-height:58vh}.result-hero{flex-direction:column;align-items:center;gap:2px;display:flex}.result-ring{aspect-ratio:1;place-items:center;width:clamp(196px,44vw,268px);margin:6px 0 2px;display:grid;position:relative}.result-ring:before{content:"";background:conic-gradient(from -90deg, var(--tint) calc(var(--acc,0) * 1%), color-mix(in srgb, var(--ink-3) 16%, transparent) 0);animation:ring-in var(--slow) var(--ease) 50ms backwards;border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(closest-side,#0000 87%,#000 87.6%);mask:radial-gradient(closest-side,#0000 87%,#000 87.6%)}@keyframes ring-in{0%{opacity:0;transform:rotate(-24deg)scale(.92)}to{opacity:1;transform:none}}.result-ring .result-score{font-size:clamp(3.4rem,2.2rem + 5.4vw,5.4rem)}.result-score{font-family:var(--display);letter-spacing:-.055em;font-variant-numeric:tabular-nums;color:var(--tint);animation:pop var(--slow) var(--ease) .1s backwards;font-size:clamp(4.5rem,3rem + 8vw,7.5rem);font-weight:600;line-height:.95}.result-score .unit{letter-spacing:-.02em;vertical-align:.62em;color:color-mix(in srgb, var(--tint) 55%, var(--ink-3));margin-left:3px;font-size:.4em}.result-meta{color:var(--ink-2);font-variant-numeric:tabular-nums;margin-top:6px;font-size:1.05rem}.result-meta strong{font-family:var(--display);color:var(--ink);font-weight:600}.result-title{font-size:var(--t-small);color:var(--ink-3);max-width:40ch;margin-top:10px}.marks{text-align:center;letter-spacing:4px;overflow-wrap:anywhere;opacity:.9;font-size:1rem;line-height:1.7}.vis-picker.sel-btn{background:0 0;border-color:#0000;gap:0;width:auto;min-height:30px;padding:2px}.vis-picker.sel-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.vis-picker.sel-btn[aria-expanded=true]{background:var(--surface-2)}.vis-picker .sel-value{flex:none}.vis-picker .vis-pill{margin:0}.vis-pop .sel-opt{flex-wrap:wrap;align-items:flex-start;row-gap:2px}.vis-pop .sel-opt .sel-label{flex:1 0 auto;font-weight:500;overflow:visible}.vis-pop .sel-hint{white-space:normal;flex:0 0 100%;padding-left:23px}.vis-pop .sel-opt>.icon{align-self:flex-start;margin-top:.3em}.sel-legend{color:var(--ink-3);border-bottom:1px solid var(--line);margin:0 0 4px;padding:10px 12px 6px}.vis-sync{color:var(--warn)}.cat-col{gap:var(--s3);flex-direction:column;display:flex}.cat-col+.cat-col{margin-top:var(--s5)}.cat-col-head{align-items:center;gap:var(--s3);border-bottom:1px solid var(--line);flex-wrap:wrap;padding-bottom:8px;display:flex}.cat-col-meta{align-items:center;gap:var(--s3);display:flex}.cat-group{flex-direction:column;gap:10px;display:flex}.cat-group+.cat-group{margin-top:var(--s3)}.cat-group-name{color:var(--ink-2)}.voice-broken{color:var(--bad);max-width:14ch;line-height:1.25}.banner{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-md);font-size:var(--t-small);color:var(--ink-2);padding:11px 14px}.banner-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.banner-bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.progress-offer{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.progress-offer>span{max-width:68ch}html{scroll-padding-top:calc(var(--topbar-h,0px) + 10px)}.app-shell .main :is(button,a,input,textarea,select,[tabindex]){scroll-margin-top:calc(var(--topbar-h,0px) + 10px)}.sticky-panel{top:calc(var(--topbar-h) + var(--s4));max-height:calc(100vh - var(--topbar-h) - var(--s6));position:sticky;overflow-y:auto}.foot{border-top:1px solid var(--line);padding:20px var(--pad-x) 34px;text-align:center;background:var(--surface)}.app-shell .foot{text-align:left}.room-code{font-family:var(--display);letter-spacing:.3em;font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);text-align:center;padding:14px 10px 14px 24px;font-size:2.5rem;font-weight:600}.ok-num{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500}.filters{gap:8px}.filters .sel-btn{width:auto}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0b0d1094;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-3);gap:var(--s4);flex-direction:column;width:min(540px,100%);padding:24px;display:flex}.modal-wide{width:min(780px,100%)}.imp-preview{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);max-height:300px;overflow:auto}.imp-table{border-collapse:collapse;width:100%;font-size:var(--t-small)}.imp-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 11px}.imp-table tr:last-child td{border-bottom:0}.imp-table tr.dropped{opacity:.42}.imp-table tr.dropped strong{text-decoration:line-through}.imp-table td:nth-child(3){max-width:260px}.item-row{border-radius:var(--r-sm);transition:background var(--fast) var(--ease);align-items:center;gap:6px;display:grid}.item-row+.item-row{border-top:1px solid var(--line)}.item-row.tiny+.item-row{border-top:0}.item-row:not(.tiny):hover{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.item-row .input{font-size:var(--t-small);background:0 0;border-color:#0000;padding:9px}.item-row:hover .input{border-color:var(--line);background:var(--surface)}.item-row .input:focus{background:var(--surface)}.item-row .input.dim{opacity:.45;background:var(--surface-2)}.item-row .input.dim:focus{opacity:1}.field-tag{font-family:var(--display);font-size:var(--t-micro);letter-spacing:.09em;text-transform:uppercase;font-weight:600}.field-tag.key,.field-tag.off{margin-left:7px}.field-tag.key{color:var(--ink-3)}.field-tag.key:before{content:"";background:var(--accent);vertical-align:.14em;border-radius:50%;width:5px;height:5px;margin-right:5px;display:inline-block}.field-tag.off{color:var(--ink-3)}.fine-panel{gap:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--pad-panel);margin:0 0 var(--s2);box-shadow:var(--shadow-1);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.fine-head,.fine-panel>.field:last-child:first-of-type{grid-column:1/-1}.fine-panel>.stack:has(.fine-words){grid-column:1/-1}.fine-panel>.field:has(#decoys){grid-column:1/-1}.media-field{gap:8px}.media-thumb{object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line-strong);width:54px;height:54px}.media-audio{max-width:240px;height:34px}.warn-text{color:var(--warn)}.fine-words{flex-wrap:wrap;gap:6px;display:flex}.fine-words .chip{padding:5px 11px;font-size:.9rem}.fine-words .chip.auto{border-style:dashed;border-color:var(--accent);color:var(--accent)}.preview-stage{gap:var(--s3);background:linear-gradient(180deg, color-mix(in srgb, var(--tint) 9%, var(--surface-2)) 0%, var(--surface-2) 60%);border:1px solid color-mix(in srgb, var(--tint) 16%, var(--line));border-radius:var(--r-md);padding:var(--pad-panel);zoom:.86;flex-direction:column;display:flex;position:relative}.preview-stage .prompt{box-shadow:none;border-radius:var(--r-md);padding:18px 16px}.preview-stage .prompt .cue{font-size:1.3rem}.preview-stage .flashcard{min-height:140px;box-shadow:none;border-radius:var(--r-md);padding:18px}.preview-stage .deck:after{display:none}.preview-stage .choices{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.preview-stage .choice{padding:13px 8px}.preview-stage .choice .glyph{font-size:1.9rem}.preview-stage .mic{width:62px;height:62px;font-size:1.5rem}.preview-stage .match-cols{gap:8px}.preview-stage .banner{display:none}.preview-stage .gap-sentence{font-size:1.1rem;line-height:1.9}.preview-stage .memory-card{aspect-ratio:2}.preview-stage .memory-card .face .text{font-size:.8rem}.preview-stage .dictation-input{min-height:60px;font-size:.95rem}.preview-stage .key-hint,.preview-stage .keys-only{display:none}@media (width<=720px){.main{padding:var(--s5) 14px 60px}.match-cols{grid-template-columns:1fr}.page-head{align-items:flex-start}.topbar{flex-wrap:wrap;gap:8px;padding:8px 12px}.topbar .brand-text{display:none}.btn{min-height:44px}.btn-sm{min-height:38px}.player .btn-sm{min-height:44px}.choice{min-height:78px}.chip{align-items:center;min-height:44px;display:inline-flex}.match-item{min-height:48px}.memory-card{aspect-ratio:1}.input,.sel-btn,.textarea,.gap-input{font-size:16px}.player{gap:var(--s4)}.prompt{padding:24px 16px}.play-title{font-size:1.2rem}.flashcard{min-height:180px;padding:22px}.gap-sentence{font-size:1.12rem;line-height:2.1}.marks{letter-spacing:2px;font-size:1rem}.result-meta{font-size:.95rem}.player .row{justify-content:center}.player .btn-lg{flex:auto}.room-code{letter-spacing:.22em;font-size:1.9rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.gate{max-width:660px}.gate .page-head{border-bottom:0;padding-bottom:0}.gate-card{border-color:var(--accent-line);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, var(--surface)), var(--surface) 70%);flex-direction:column;gap:12px;display:flex}.gate-card .row{gap:10px}.open-code{flex-direction:column;gap:12px;max-width:560px;display:flex}.open-code h2{font-size:1.06rem}.open-code .input{letter-spacing:.1em}.empty-state{padding:var(--s5);overflow:hidden}.empty-state:has(.empty-cover){gap:var(--s5);grid-template-columns:200px minmax(0,1fr);align-items:center;padding:0;display:grid}.empty-state:has(.empty-cover)>.stack{padding:var(--s5) var(--s5) var(--s5) 0}.empty-state h2{font-size:1.35rem}.empty-state p{max-width:52ch}.cover{width:100%;height:100%}.empty-cover{min-height:190px;color:var(--accent);background:linear-gradient(140deg, color-mix(in srgb, var(--accent) 16%, var(--surface)), var(--surface) 78%);border-right:1px solid var(--line);align-self:stretch;position:relative}@media (width<=720px){.empty-state:has(.empty-cover){grid-template-columns:minmax(0,1fr)}.empty-cover{border-right:0;border-bottom:1px solid var(--line);min-height:120px}.empty-state:has(.empty-cover)>.stack{padding:var(--s4)}.empty-state{padding:var(--s4)}}.voice-note{align-items:center;gap:10px;width:100%;display:flex}.voice-note.recording,.voice-note.has-audio{min-height:var(--h-lg);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:5px 8px}.voice-note.recording{border-color:color-mix(in srgb, var(--bad) 32%, transparent);background:color-mix(in srgb, var(--bad) 5%, var(--surface))}.voice-dot{background:var(--bad);width:9px;height:9px;animation:blink 1.15s var(--ease) infinite;border-radius:50%;flex:none}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.voice-time{text-align:center;min-width:36px;font-size:var(--t-tiny);color:var(--ink-2);flex:none}.voice-wave{flex:1;align-items:center;gap:3px;min-width:60px;height:32px;display:flex}.voice-wave i{border-radius:var(--r-pill);background:var(--line-strong);min-width:3px;min-height:4px;transition:height 90ms linear, background var(--fast) var(--ease);flex:1}.voice-note.has-audio .voice-wave{cursor:pointer}.voice-wave i.on{background:var(--accent)}.voice-wave.live i{background:color-mix(in srgb, var(--bad) 62%, var(--line-strong))}.voice-wave.live i.idle{background:var(--surface-3)}.voice-wave.live i.head{background:var(--bad);height:100%}.voice-play,.voice-stop{cursor:pointer;width:32px;height:32px;transition:transform var(--fast) var(--ease), filter var(--fast) var(--ease);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.voice-play:hover,.voice-stop:hover{filter:brightness(1.08)}.voice-play:active,.voice-stop:active{transform:scale(.94)}.voice-play{background:var(--accent);color:var(--accent-ink)}.voice-stop{background:var(--bad);color:var(--surface)}.voice-square{background:currentColor;border-radius:3px;width:11px;height:11px}.voice-discard{color:var(--ink-3);flex:none}.voice-discard:hover{color:var(--bad)}.voice-actions{flex:none;gap:2px;display:flex}.voice-rec{gap:8px}.voice-mic{color:var(--bad);place-items:center;display:grid}@media (width<=720px){.voice-play,.voice-stop{width:40px;height:40px}.voice-note.recording,.voice-note.has-audio{min-height:52px}}.input,.sel-btn{border-radius:var(--r-ctl);min-height:40px;transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease), background var(--fast) var(--ease);line-height:1.4}.input:hover:not(:focus),.textarea:hover:not(:focus){border-color:var(--line-strong);background:var(--surface)}.input:focus,.textarea:focus{box-shadow:var(--ring)}.field>label{color:var(--ink-2);letter-spacing:.005em;font-weight:500}.opt-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;border-radius:var(--r-ctl);transition:background var(--fast) var(--ease);background:0 0;border:0;align-items:center;gap:10px;margin:0 -9px;padding:7px 9px;display:flex}.opt-row:hover{background:var(--surface-2)}.opt-row .switch-text{flex:1}.switch{border-radius:var(--r-pill);background:var(--surface-3);width:38px;height:22px;box-shadow:inset 0 0 0 1px var(--line-strong);transition:background var(--mid) var(--ease), box-shadow var(--mid) var(--ease);flex:none;position:relative}.switch-dot{background:var(--surface);width:16px;height:16px;box-shadow:var(--shadow-1);transition:transform var(--mid) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.switch.on{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.switch.on .switch-dot{transform:translate(16px)}.switch-row:hover .switch{box-shadow:inset 0 0 0 1px var(--accent-line)}.switch-row:focus-visible{background:var(--surface-2);box-shadow:var(--ring);outline:none}.check{cursor:pointer;color:inherit;font:inherit;font-size:var(--t-small);text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:inline-flex}.checkbox{border-radius:var(--r-chip);background:var(--surface);width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--accent-ink);transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);flex:none;place-items:center;display:grid}.checkbox .icon{transition:transform var(--fast) var(--ease);transform:scale(0)}.checkbox.on{background:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.checkbox.on .icon{transform:none}.check:hover .checkbox{box-shadow:inset 0 0 0 1.5px var(--accent-line)}.check:focus-visible{outline:none}.check:focus-visible .checkbox{box-shadow:inset 0 0 0 1.5px var(--accent), var(--ring)}.radio-set{flex-direction:column;gap:8px;display:flex}.radio-opt{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.radio-opt:hover{border-color:var(--accent)}.radio-opt.on{border-color:var(--accent);background:var(--accent-soft)}.radio-opt:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}.radio{background:var(--surface);width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);border-radius:50%;flex:none;place-items:center;margin-top:2px;display:grid}.radio-dot{background:var(--accent-ink);width:7px;height:7px;transition:transform var(--fast) var(--ease);border-radius:50%;transform:scale(0)}.radio-opt.on .radio{background:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.radio-opt.on .radio-dot{transform:none}.radio-text{flex-direction:column;gap:2px;min-width:0;display:flex}.radio-text strong{font-family:var(--display);font-weight:600}.radio-opt.on .radio-text strong{color:var(--accent)}.slider{cursor:pointer;touch-action:none;border-radius:var(--r-pill);align-items:center;height:22px;display:flex}.slider:focus-visible{box-shadow:var(--ring);outline:none}.slider-track{border-radius:var(--r-pill);background:var(--surface-3);width:100%;height:4px;position:relative}.slider-fill{border-radius:var(--r-pill);background:var(--accent);height:100%;position:absolute;inset:0 auto 0 0}.slider-dot{background:var(--surface);border:1.5px solid var(--accent);width:16px;height:16px;box-shadow:var(--shadow-1);transition:scale var(--fast) var(--ease);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.slider:hover .slider-dot{scale:1.12}.slider:active .slider-dot{scale:1.18}.field>label .opt-value{font-family:var(--display);color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.editor-bar{top:var(--topbar-h);z-index:8;margin:calc(var(--s6) * -1) 0 0;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.3);backdrop-filter:blur(12px)saturate(1.3);padding:12px 0;position:sticky}.item-head{font-size:var(--t-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding-bottom:2px;font-weight:600}.item-head .field-tag{text-transform:none;letter-spacing:.09em}.add-row{border:1px dashed var(--line-strong);border-radius:var(--r-ctl);width:100%;min-height:42px;color:var(--ink-2);cursor:pointer;font-size:var(--t-small);transition:border-color var(--fast) var(--ease), color var(--fast) var(--ease), background var(--fast) var(--ease);background:0 0;justify-content:center;align-items:center;gap:8px;font-weight:500;display:flex}.add-row:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, transparent);border-style:solid}.table-foot{flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px;display:flex}.table-foot .spacer{margin-left:auto}.fine-panel{border-radius:var(--r-md);border-color:color-mix(in srgb, var(--accent) 22%, var(--line));animation:rise var(--mid) var(--ease)}.item-row.open{background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:var(--r-sm) var(--r-sm) 0 0}.fine-head{justify-content:space-between;align-items:center;gap:var(--s3);padding-bottom:2px;display:flex}.fine-head .who{font-family:var(--display);letter-spacing:-.01em;font-size:.95rem;font-weight:600}.fine-head .who em{color:var(--ink-3);font-style:normal;font-weight:400}.fine-panel .field>span:first-child,.fine-panel .field>label,.fine-panel .stack>span:first-child,.fine-panel .media-field>span:first-child{font-size:var(--t-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.panel-head{align-items:center;gap:10px;display:flex}.panel-head .mech-glyph{border-radius:var(--r-ctl);width:34px;height:34px}.panel-head h3{font-size:1.02rem}@media (width<=720px){.editor-bar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;margin-top:0;position:static}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.item-head>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item-head .field-tag.key:before{margin-right:0}@media (hover:none){.item-row .input{border-color:var(--line);background:var(--surface)}}.stack-xs{gap:var(--s2)}.stack-sm{gap:10px}.stack-md{gap:var(--s3)}.stack-lg{gap:14px}.row-center{justify-content:center}.row-end{justify-content:flex-end}.row-top{align-items:flex-start}.row-tight{gap:var(--s2)}.grow{flex:1}.narrow{width:min(340px,100%);margin-inline:auto}.center-text{text-align:center}.mt-1{margin-top:var(--s1)}.mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.answer.good{color:var(--good)}.answer.bad{color:var(--bad)}.btn:active:not([disabled]),.chip:active,.choice:active:not(.locked),.match-item:active:not(.done),.memory-card:active:not(.done),.mech-card:active:not(.disabled),.add-row:active,.ex-card .actions .btn:active{transform:var(--press)}.input,.sel-btn,.textarea,.gap-input,.dictation-input{transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease), background var(--fast) var(--ease)}.app-shell .main{overflow-x:clip}.player,.preview-stage,.ed-sheet,.rec-sheet,.sec-list,.cat-list,.col-grid{overflow-wrap:anywhere}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.row-wide{gap:var(--s4)}.row-nowrap{flex-wrap:nowrap}.block{display:block}.sel-auto{width:auto}.textarea-lg{min-height:150px}.brand{cursor:pointer;background:0 0;border:0}.field-lang{flex:1;min-width:140px}.field-level{width:92px}.editor-cols{align-items:start}@media (width>=1000px){.editor-cols{gap:var(--s5);grid-template-columns:minmax(0,1fr) clamp(320px,30%,420px)}}.mech-name{font-weight:600;display:block}.card-cue{font-family:var(--display);letter-spacing:-.02em;font-size:2rem;font-weight:700;line-height:1.15}.card-answer{font-size:1.4rem;font-family:var(--display);font-weight:600}.card-rule{margin:14px 0}.cue-sm{font-size:1.1rem}.hold-cue{min-height:1.45em}.imp-note{padding:var(--s2) var(--s3)}.room-code-sm{padding:var(--s2) var(--s1) var(--s2) 14px;font-size:1.6rem}.anki-map{gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.anki-marks{align-items:center;gap:var(--s2);color:var(--ink-3);display:flex}.anki-bar{border-radius:var(--r-pill);background:var(--surface-3);height:6px;overflow:hidden}.anki-bar i{background:var(--accent);height:100%;transition:width var(--mid) var(--ease);display:block}.anki-table td{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.anki-table td:first-child{max-width:160px}.ex-list{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.ex-row{align-items:center;gap:var(--s3);min-height:var(--row-h);transition:background var(--fast) var(--ease);animation:rise var(--mid) var(--ease) backwards;animation-delay:calc(min(var(--i,0), 14) * 26ms);grid-template-columns:34px minmax(0,1fr) auto auto;padding:8px 12px 8px 10px;display:grid}.ex-row+.ex-row{border-top:1px solid var(--line)}.ex-row:hover{background:var(--surface-2)}.ex-row-glyph{border-radius:var(--r-ctl);width:34px;height:34px;color:var(--tint,var(--accent));background:color-mix(in srgb, var(--tint,var(--accent)) 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tint,var(--accent)) 22%, transparent);place-items:center;display:grid}.ex-row-open{cursor:pointer;text-align:left;min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;gap:2px;padding:0;display:flex}.ex-row-title{font-family:var(--display);letter-spacing:-.015em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.99rem;font-weight:600;overflow:hidden}.ex-row:hover .ex-row-title{color:var(--accent)}.ex-row-meta{font-size:var(--t-micro);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.ex-row-meta .lead{color:var(--ink-2);font-weight:500}.ex-row-state{white-space:nowrap}.ex-row-actions{align-items:center;gap:4px;display:flex}.ex-row-actions>.btn-ghost{opacity:0;transition:opacity var(--fast) var(--ease)}.ex-row:hover .ex-row-actions>.btn-ghost,.ex-row:focus-within .ex-row-actions>.btn-ghost{opacity:1}@media (hover:none){.ex-row-actions>.btn-ghost{opacity:1}}@media (width<=720px){.ex-row{grid-template-columns:34px minmax(0,1fr);row-gap:10px;padding:12px}.ex-row-glyph{grid-area:1/1}.ex-row-open{grid-area:1/2}.ex-row-state{grid-area:2/1/auto/-1;justify-self:start}.ex-row-actions{grid-area:3/1/auto/-1;gap:6px}.ex-row-actions>.btn{opacity:1;flex:1;justify-content:center}.ex-row-actions>.row-menu-btn{flex:none;width:46px}.search .input,.search{width:100%}}.ex-row-meta>*{white-space:nowrap}.search{align-items:center;display:flex;position:relative}.search .icon{color:var(--ink-3);pointer-events:none;position:absolute;left:10px}.search .input{width:230px;padding-left:32px}.cell-select{font-size:var(--t-micro);background-color:#0000;background-position:right 6px center;border-color:#0000;padding:8px 26px 8px 9px}.item-row:hover .cell-select{border-color:var(--line);background-color:var(--surface)}.cell-media{align-items:center;gap:3px;display:flex;position:relative}.cell-media .btn-sm{padding:0 8px}.cell-media .has-audio{color:var(--accent);border-color:var(--accent-line)}.thumb-btn{border:1px solid var(--line-strong);cursor:pointer;border-radius:var(--r-chip);background:0 0;flex:none;width:30px;height:30px;padding:0;line-height:0;overflow:hidden}.thumb-btn img{object-fit:cover;width:100%;height:100%}.local-dot{background:var(--warn);width:6px;height:6px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-1px;right:-1px}.rec-veil{z-index:90;animation:fade var(--fast) var(--ease);background:#10100e75;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.rec-sheet{gap:var(--s4);background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--line);width:min(520px,100%);max-height:min(92dvh,720px);box-shadow:var(--shadow-2);padding:var(--s4) var(--s4) max(var(--s4), env(safe-area-inset-bottom));animation:sheet-up var(--mid) var(--ease);border-bottom:0;flex-direction:column;display:flex}@keyframes sheet-up{0%{opacity:.6;transform:translateY(14px)}}@media (width>=721px){.rec-veil{align-items:center}.rec-sheet{border-radius:var(--r-lg);border-bottom:1px solid var(--line)}@keyframes sheet-up{0%{opacity:0;transform:translateY(8px)}}}.rec-sheet-head{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.rec-sheet-count{font-size:var(--t-small);color:var(--ink-3)}.rec-sheet-word{min-height:0;overflow-y:auto}.rec-term{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:600;line-height:1.2}.rec-term em{font-style:normal;font-weight:400}.rec-tr{font-size:var(--t-small);margin:4px 0 0}.rec-ex{color:var(--ink-2);margin:10px 0 0}.rec-sheet-mic{flex-direction:column;gap:6px;display:flex}.rec-sheet-mic .media-field>span:first-child{display:none}.rec-saved{color:var(--good)}.rec-sheet-foot{gap:var(--s3);display:flex}.rec-sheet-foot .btn{flex:1;justify-content:center;min-height:46px}.row-menu{z-index:95;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);width:224px;box-shadow:var(--shadow-2);animation:rise var(--fast) var(--ease);flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed}.row-menu-item{border-radius:var(--r-ctl);width:100%;min-height:42px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0 10px;display:flex}.row-menu-item:hover:not(:disabled){background:var(--surface-2)}.row-menu-item:focus-visible{box-shadow:var(--ring);outline:none}.row-menu-item:disabled{opacity:.4;cursor:default}.row-menu-item.is-danger{color:var(--bad)}.row-menu-item.is-danger:hover:not(:disabled){background:var(--bad-soft)}@media (width<=900px){.app-shell{grid-template-columns:minmax(0,1fr)}.side{z-index:60;width:min(272px,84vw);height:100dvh;transition:transform var(--mid) var(--ease);box-shadow:var(--shadow-2);position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.drawer-open .side{transform:none}.drawer-veil{z-index:50;cursor:default;opacity:0;pointer-events:none;transition:opacity var(--mid) var(--ease);background:#10100e6b;border:0;padding:0;display:block;position:fixed;inset:0}.drawer-open .drawer-veil{opacity:1;pointer-events:auto}.app-shell{--pad-x:16px;--topbar-h:55px}.topbar-slim{padding:8px var(--pad-x);gap:10px;display:flex}.drawer-veil{width:100vw;height:100dvh}}@media (width>=901px){.app-shell{--topbar-h:0px}.app-shell .sticky-panel{top:var(--s4);max-height:calc(100vh - var(--s6))}}@media (prefers-reduced-motion:reduce){.side{transition:none}.ex-row{animation:none}}.choices-image{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.choices-image .choice{padding:10px}.choices-image .item-image{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-md);width:100%}.choices-image .label{font-size:var(--t-small);margin-top:8px}.cloze-slot{border-bottom:2px solid var(--line-strong);text-align:center;min-width:4ch;transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease);margin:0 4px;padding:0 6px;font-weight:600;display:inline-block}.cloze-slot.good{color:var(--good);border-color:var(--good)}.cloze-slot.bad{color:var(--bad);border-color:var(--bad)}.audio-options{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.audio-option{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);flex-direction:column;gap:8px;padding:12px;display:flex}.audio-option.correct{border-color:var(--good);background:var(--good-soft)}.audio-option.wrong{border-color:var(--bad);background:var(--bad-soft)}.audio-option.locked{pointer-events:none}.audio-play{justify-content:center;gap:8px}.audio-play .num{font-variant-numeric:tabular-nums;opacity:.5}.audio-choose{justify-content:center}.audio-choose.heard{border-color:var(--accent);color:var(--accent)}.speed-clock{border-radius:var(--r-pill);background:var(--surface-2);height:6px;margin-bottom:var(--s4);overflow:hidden}.speed-fill{background:var(--accent);height:100%;transition:width .1s linear, background var(--mid) var(--ease);display:block}.speed-clock.low .speed-fill{background:var(--warn)}.spell-line{margin-bottom:var(--s4);justify-content:center;align-items:center;gap:10px;display:flex}.spell-undo{flex:none}.spell-undo:disabled{opacity:.3}.spell-slot{flex-wrap:wrap;justify-content:center;gap:6px;min-height:52px;display:flex}.spell-cell{border-bottom:2px solid var(--line-strong);min-width:38px;height:46px;font-family:var(--display);color:var(--ink);place-items:center;font-size:1.35rem;font-weight:600;display:grid}.spell-cell.filled{border-bottom-color:var(--accent)}.spell-slot.correct .spell-cell{border-bottom-color:var(--good);color:var(--good)}.spell-slot.wrong .spell-cell{border-bottom-color:var(--bad);color:var(--bad)}.chips-letters .chip{min-width:42px;font-family:var(--display);justify-content:center;font-size:1.1rem;font-weight:600}.json-problems{border:1px solid var(--bad);border-radius:var(--r-md);background:var(--bad-soft);color:var(--ink);font-size:var(--t-small);max-height:190px;margin:0;padding:10px 12px 10px 28px;overflow:auto}.json-problems li+li{margin-top:4px}.json-warnings{border-color:var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent)}.schema-sheet{gap:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--pad-panel);background:var(--surface-2);flex-direction:column;display:flex}.schema-sheet code{font-family:var(--mono);font-size:.88em}.json-example{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink-2);font-family:var(--mono);font-size:var(--t-micro);white-space:pre;max-height:320px;margin:0;padding:12px 14px;line-height:1.55;overflow:auto}.col-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.col-list{flex-direction:column;gap:8px;display:flex}.col-title-edit{width:100%;font:inherit;color:inherit;letter-spacing:inherit;border-radius:var(--r-ctl);cursor:text;text-align:left;background:0 0;border:1px solid #0000;margin-left:-8px;padding:2px 8px;line-height:1.25;display:block}.col-title-edit:hover{border-color:var(--line)}input.col-title-edit{border-color:var(--line-strong);background:var(--surface);min-height:0}.col-card{text-align:left;cursor:pointer;border:1px solid var(--line);animation:rise var(--slow) var(--ease) backwards;animation-delay:calc(min(var(--i,0), 11) * 42ms);flex-direction:column;gap:3px;padding:14px;display:flex}.col-card:hover{transform:var(--lift);border-color:var(--line-strong)}.col-title{font-family:var(--display);letter-spacing:-.015em;color:var(--ink);font-size:1.06rem;font-weight:600;display:block}.col-card:hover .col-title{color:var(--accent)}.col-meta{flex-wrap:wrap;gap:4px 12px;margin-top:auto;padding-top:10px;display:flex}.col-count{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.col-count .icon{color:var(--ink-3);opacity:.75}.col-count .num{color:var(--ink-2);font-weight:600}.col-grid .col-word{display:none}.col-grid .col-card{min-height:132px}.col-sub{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.col-list .col-card{align-items:center;gap:6px var(--s4);grid-template-columns:auto minmax(0,1fr) auto;padding:10px 14px;display:grid}.col-list .col-card:hover{transform:none}.col-list .col-meta{justify-content:flex-end;margin-top:0;padding-top:0}.col-list .col-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=560px){.col-list .col-card{grid-template-columns:minmax(0,1fr)}}.seg{border-radius:var(--r-ctl);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);align-items:center;gap:2px;padding:2px;display:inline-flex}.seg-opt{cursor:pointer;border-radius:var(--r-chip);width:32px;height:28px;color:var(--ink-3);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:0;place-items:center;padding:0;display:grid}.seg-opt:hover{color:var(--ink)}.seg-opt.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-1)}.seg-opt:focus-visible{box-shadow:var(--ring);outline:none}.sec{flex-direction:column;gap:10px;display:flex}.sec-head{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.sec-title{cursor:text;color:var(--ink);font-family:var(--display);letter-spacing:-.02em;background:0 0;border:0;padding:2px 0;font-size:1.06rem;font-weight:600}input.sec-title{border:1px solid var(--line-strong);cursor:text;padding:4px 8px}.sec-tools{flex-wrap:wrap;align-items:center;gap:4px;margin-left:auto;display:flex}.sec-list{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);margin:0;padding:0;list-style:none;overflow:hidden}.sec-empty{padding:16px 18px}.sec-list .ex-row{grid-template-columns:20px 34px minmax(0,1fr) auto auto;animation:none}.ex-grip{color:var(--ink-3);cursor:grab;opacity:0;transition:opacity var(--fast) var(--ease);place-items:center;display:grid}.ex-row:hover .ex-grip{opacity:1}.ex-row.dragging{opacity:.45;background:var(--accent-soft)}@media (hover:none){.ex-grip{opacity:1}}.link-back{cursor:pointer;color:var(--ink-3);font:inherit;letter-spacing:inherit;background:0 0;border:0;padding:0}.link-back:hover{color:var(--accent)}.ed-sheet{gap:var(--s3)}.ed-head{justify-content:space-between;align-items:flex-start;gap:var(--s3);display:flex}.ed-head h3{font-size:1.02rem}.ed-foot{align-items:center;gap:var(--s3);display:flex}.ed-foot .add-row{flex:1}.ed-label{text-transform:uppercase;letter-spacing:.07em;font-weight:600}.ed-card{align-items:start;gap:var(--s3);border-radius:var(--r-md);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);border:1px solid #0000;grid-template-columns:26px minmax(0,1fr) auto auto;padding:12px;display:grid}.ed-card+.ed-card{border-top:1px solid var(--line);border-radius:0}.ed-card:hover{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.ed-card:focus-within{border-color:var(--accent-line);background:var(--surface);border-radius:var(--r-md)}.ed-num{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:var(--t-micro);text-align:right;padding-top:12px}.ed-body{flex-direction:column;gap:8px;min-width:0;display:flex}.ed-aside{align-items:center;gap:4px;padding-top:4px;display:flex}.ed-drop{align-self:start;margin-top:3px}.ed-card .ed-body{max-width:900px}.ed-card.ed-two .ed-body{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.ed-card.ed-two .ed-body>*{min-width:0}.ed-pair{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.ed-pair>*{min-width:0}.ed-contents{display:contents}.ed-half{box-shadow:inset 0 0 0 1px var(--warn);border-radius:var(--r-md)}.ed-cols-head{gap:var(--s3);text-transform:uppercase;letter-spacing:.07em;grid-template-columns:26px 1fr 1fr auto;padding:0 12px;font-weight:600;display:grid}.ed-cols-head>span:first-child{grid-column:2}.ed-big{font-size:1.02rem;font-weight:500}.ed-sentence{min-height:var(--h-md);resize:none;line-height:1.5;font-family:var(--sans,inherit);font-size:.98rem;overflow:hidden}.ed-hint{font-weight:400;display:block}.ed-preview{border-radius:var(--r-sm);background:var(--surface-2);flex-direction:column;gap:5px;padding:9px 11px;display:flex}.chips-left{justify-content:flex-start;min-height:0}.ed-preview .chips{align-content:center;min-height:100px}.chips .chip.decoy{color:var(--ink-2);border-style:dashed}.chips .chip.decoy.auto{opacity:.55}.decoys{flex-direction:column;gap:5px;display:flex}.decoy-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.decoy-chips .chip{gap:2px;padding-right:4px}.chip-x{cursor:pointer;color:inherit;opacity:.55;background:0 0;border:0;place-items:center;padding:2px;display:inline-grid}.chip-x:hover{opacity:1;color:var(--bad)}.decoy-add{width:150px;min-height:30px;font-size:var(--t-small);padding:4px 9px}.gap-picker{flex-direction:column;gap:5px;display:flex}.ed-options{position:sticky;bottom:0}.photo-grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.photo-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex-direction:column;gap:8px;padding:10px;display:flex}.photo-card.empty{border-style:dashed;border-color:var(--warn)}.photo-drop{aspect-ratio:4/3;border-radius:var(--r-sm);background:var(--surface-2);border:1px dashed var(--line-strong);transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);position:relative;overflow:hidden}.photo-drop.has{border-style:solid;border-color:var(--line)}.photo-drop.over{border-color:var(--accent);background:var(--accent-soft)}.photo-drop.busy{opacity:.6}.photo-drop-hit{cursor:pointer;width:100%;height:100%;color:var(--ink-2);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;inset:0}.photo-drop-hit:hover{color:var(--accent)}.photo-drop-img{object-fit:cover;width:100%;height:100%;display:block}.photo-drop-empty{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:0 10px;line-height:1.3;display:flex}.photo-drop-tools{gap:4px;display:flex;position:absolute;bottom:6px;right:6px}.photo-drop-tools .btn{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-height:28px;padding:0 8px}.photo-foot{justify-content:space-between;align-items:center;gap:6px;display:flex}.mech-desc{margin-top:4px;display:block}@media (width<=720px){.ed-card{grid-template-columns:20px minmax(0,1fr) auto}.ed-card.ed-two .ed-body,.ed-pair{grid-template-columns:1fr}.ed-cols-head,.ex-grip{display:none}.sec-list .ex-row{grid-template-columns:34px minmax(0,1fr)}.sec-tools{width:100%;margin-left:0}.ed-options{position:static}}.drop{border-radius:var(--r-md);position:relative}.drop .textarea{width:100%}.drop.over .textarea{border-color:var(--accent);background:var(--accent-soft)}.btn-miss{border-color:color-mix(in srgb, var(--bad) 40%, transparent);color:var(--bad)}.btn-miss:hover{background:var(--bad-soft);border-color:var(--bad)}.btn-hard{border-color:color-mix(in srgb, var(--warn) 45%, transparent);color:var(--warn)}.btn-hard:hover{background:var(--warn-soft);border-color:var(--warn)}.btn-easy{border-color:color-mix(in srgb, var(--good) 40%, transparent);color:var(--good)}.btn-easy:hover{background:var(--good-soft);border-color:var(--good)}.stat-row{background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--surface);padding:16px 18px}.stat-n{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:600;line-height:1;display:block}.stat-n.good{color:var(--good)}.stat-n.accent{color:var(--accent)}.stat-k{font-size:var(--t-small);color:var(--ink-2);margin-top:6px;display:block}.weak-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.weak-list li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;align-items:baseline;gap:4px 12px;padding:9px 0;display:grid}.weak-list li:first-child{border-top:0}.weak-term{font-weight:600}.weak-tr{min-width:0}.weak-score{white-space:nowrap;font-variant-numeric:tabular-nums}.weak-lang{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}@media (width<=640px){.weak-list li{grid-template-columns:minmax(0,1fr) auto}}.group-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.group-row{border-top:1px solid var(--line);grid-template-columns:24px 20px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.group-row:first-child{border-top:0}.group-n{font-family:var(--mono);font-size:var(--t-tiny);color:var(--ink-3);font-variant-numeric:tabular-nums}.group-row-glyph{color:var(--ink-2);place-items:center;display:grid}.group-row-title{min-width:0;font-weight:500}.group-intro{max-width:none;margin:0}.h-sm{font-size:1.05rem}@media (pointer:coarse){.btn-sm{min-height:44px}.btn:has(>.icon:only-child){min-width:44px}.brand{min-width:44px;min-height:44px}.sel-btn,.sel-btn.sel-sm,.sel-btn.vis-picker{min-height:44px}.input,.add-row{min-height:46px}.col-title-edit,.sec-title,.side-nav button{min-height:44px}.seg-opt{width:44px;height:44px}.opt-row,.switch-row{min-height:46px}.slider{align-items:center;min-height:44px;display:flex}.link-back{align-items:center;min-height:44px;display:inline-flex}}.not-found{max-width:52ch;padding:var(--s6) 0}.not-found .prompt-glyph{color:var(--ink-3);margin:0}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}.ask{max-width:46ch}.ask-row{justify-content:flex-end}.ask .btn-danger{background:var(--bad);color:#fff;border-color:#0000}.ask .btn-danger:hover{background:color-mix(in srgb, var(--bad) 86%, #000)}@media (width<=560px){.ask-row{flex-direction:column-reverse;align-items:stretch}.ask-row .btn{justify-content:center;min-height:46px}}.col-card{position:relative}.col-open{z-index:1;cursor:pointer;border-radius:inherit;background:0 0;border:0;padding:0;position:absolute;inset:0}.col-open:focus-visible{box-shadow:var(--ring);outline:none}.col-menu{z-index:2;opacity:0;transition:opacity var(--fast) var(--ease);position:absolute;top:8px;right:8px}.col-card:hover .col-menu,.col-card:focus-within .col-menu{opacity:1}@media (hover:none){.col-menu{opacity:1}}.col-grid .col-title{padding-right:34px}.col-list .col-card{grid-template-columns:auto minmax(0,1fr) auto auto}.col-list .col-menu{position:static}.col-list .col-title{padding-right:0}.signin{gap:10px;max-width:34rem}.signin-big{gap:12px}.signin .btn-lg{justify-content:center;width:100%}.signin-alt{flex-wrap:wrap;gap:4px 16px;margin:2px 0 0;display:flex}.signin-alt .link-back{color:var(--accent)}.signin-alt .link-back:hover{text-decoration:underline}.keep-offer{justify-content:space-between;align-items:center;gap:var(--s4);text-align:left;flex-wrap:wrap;display:flex}.keep-offer>span{max-width:52ch}.cloud-state{justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.cloud-state .row{gap:var(--s1);flex-shrink:0}.result-plain{justify-content:center;align-items:baseline;gap:var(--s1);margin:var(--s3) 0 0;display:flex}.result-plain .unit{letter-spacing:.02em;font-size:.42em;font-weight:600}.path-map{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;position:relative}.path-unit{align-items:center;gap:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);grid-template-columns:auto 1fr auto;display:grid;position:relative}.path-unit:not(:last-child):before{content:"";left:calc(var(--s3) + 15px);height:var(--s2);background:var(--line);width:2px;position:absolute;top:100%}.path-unit.is-now{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.path-unit.is-done .path-name{color:var(--muted)}.path-dot{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border:1px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.path-unit.is-now .path-dot{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}.path-unit.is-done .path-dot{background:var(--good,var(--accent));color:var(--accent-ink,#fff);border-color:#0000}.path-body{flex-direction:column;gap:4px;min-width:0;display:flex}.path-name{font-weight:600}.path-bar{background:var(--surface-2);border-radius:999px;height:4px;overflow:hidden}.path-bar>span{background:var(--accent);border-radius:inherit;height:100%;transition:width .4s;display:block}.streak{white-space:nowrap}.lesson-done{margin-top:var(--s3)}@media (width<=560px){.path-unit{gap:var(--s2);padding:var(--s2)}.path-unit:not(:last-child):before{left:calc(var(--s2) + 15px)}}
