@font-face{font-family:Literata Local;src:local(Literata),local(Georgia)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafc;--surface:#fff;--surface-elevated:#ffffffeb;--panel:#f1f5f9;--panel-strong:#e2e8f0;--text:#0f172a;--muted:#374151;--soft:#6b7280;--line:#e2e8f0;--line-strong:#cbd5e1;--accent:#1e293b;--accent-strong:#0f172a;--danger:#ef4444;--success:#10b981;--warning:#f59e0b;--overlay:#0000004d;--focus-ring:#1e293b24;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--radius-xs:10px;--radius-sm:14px;--radius:24px;--radius-lg:32px;--control-height:44px;--content-max-width:1200px}:root[data-theme=dark],body[data-theme=dark],.theme-dark{--bg:#0b0e14;--surface:#121720;--surface-elevated:#121720e0;--panel:#1a222e;--panel-strong:#242e3f;--text:#f1f5f9;--muted:#94a3b8;--soft:#64748b;--line:#1e293b;--line-strong:#334155;--accent:#f8fafc;--accent-strong:#fff;--overlay:#00000080;--focus-ring:#f8fafc24;--danger:#f87171;--success:#34d399;--warning:#fbbf24;--shadow-sm:none;--shadow:0 20px 25px -5px #0000004d, 0 10px 10px -5px #0003;--shadow-lg:0 35px 50px -12px #00000080}:root[data-theme=serif],body[data-theme=serif],.theme-serif{--bg:#faf7f2;--surface:#fffdf8;--surface-elevated:#fffdf8f0;--panel:#f3ece0;--panel-strong:#e8dcc8;--text:#1c1917;--muted:#57534e;--soft:#a8a29e;--line:#e8dcc8;--line-strong:#d6c4a8;--accent:#c2410c;--accent-strong:#9a3412;--overlay:#1c191747;--focus-ring:#c2410c24;--shadow-sm:0 1px 2px 0 #1c19170d;--shadow:0 4px 6px -1px #1c191714;--shadow-lg:0 20px 25px -5px #1c191714}:root[data-theme=forest],body[data-theme=forest],.theme-forest{--bg:#f0f4f0;--surface:#f9fbf9;--surface-elevated:#f9fbf9eb;--panel:#e0e8e0;--panel-strong:#cedbcd;--text:#1a2f1a;--muted:#4a5f4a;--soft:#7a8f7a;--line:#cedbcd;--line-strong:#b8c8b7;--accent:#2d4f2d;--accent-strong:#1a2f1a;--overlay:#1a2f1a47;--focus-ring:#2d4f2d24;--shadow-sm:0 1px 2px 0 #1a2f1a0d;--shadow:0 4px 6px -1px #1a2f1a14;--shadow-lg:0 20px 25px -5px #1a2f1a0f}:root[data-theme=ocean],body[data-theme=ocean],.theme-ocean{--bg:#f0f7ff;--surface:#fff;--surface-elevated:#fffffff0;--panel:#e0efff;--panel-strong:#c7dffb;--text:#1e3a5f;--muted:#3b5a7c;--soft:#64819e;--line:#c7dffb;--line-strong:#93c5fd;--accent:#2563eb;--accent-strong:#1d4ed8;--overlay:#1e3a5f40;--focus-ring:#2563eb24;--shadow-sm:0 1px 2px 0 #2563eb0f;--shadow:0 4px 6px -1px #2563eb14, 0 2px 4px -1px #2563eb0a;--shadow-lg:0 20px 25px -5px #2563eb1a, 0 10px 10px -5px #2563eb0a}:root[data-theme=ink],body[data-theme=ink],.theme-ink{--bg:#fff;--surface:#fff;--surface-elevated:#fffffff5;--panel:#f1f1f1;--panel-strong:#e5e5e5;--text:#000;--muted:#404040;--soft:#737373;--line:#d4d4d4;--line-strong:#a3a3a3;--accent:#000;--accent-strong:#171717;--overlay:#0003;--focus-ring:#00000024;--shadow-sm:0 0 0 1px #00000014;--shadow:0 0 0 1px #0000001f, 0 1px 3px #0000000a;--shadow-lg:0 0 0 1px #00000026, 0 4px 12px #0000000f}:root[data-theme=claude],body[data-theme=claude],.theme-claude{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#faf9f5;--surface:#f5f2ec;--surface-elevated:#f5f2ecf0;--panel:#f3ede5;--panel-strong:#e9e2d8;--text:#2b2621;--muted:#72695e;--soft:#a09484;--line:#ddd5ca;--line-strong:#cbb9a6;--accent:#bc6a3a;--accent-strong:#9d552d;--overlay:#2b262140;--focus-ring:#bc6a3a29;--shadow-sm:0 1px 2px 0 #2b26210d;--shadow:0 4px 6px -1px #2b262114, 0 2px 4px -1px #2b26210a;--shadow-lg:0 20px 25px -5px #2b26211a, 0 10px 10px -5px #2b26210a}:root[data-theme=claude-dark],body[data-theme=claude-dark],.theme-claude-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#151210;--surface:#181512;--surface-elevated:#181512eb;--panel:#1d1917;--panel-strong:#241d19;--text:#ddd4ca;--muted:#a7998b;--soft:#7a6e62;--line:#2f2924;--line-strong:#4c4037;--accent:#d59567;--accent-strong:#b87a4f;--overlay:#00000080;--focus-ring:#d595672e;--danger:#e07a6a;--success:#6dbf8b;--warning:#d4a54a;--shadow-sm:none;--shadow:0 20px 25px -5px #0000004d, 0 10px 10px -5px #0003;--shadow-lg:0 35px 50px -12px #00000080}:root[data-theme=claude-grey],body[data-theme=claude-grey],.theme-claude-grey{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#444a52;--surface:#474d55;--surface-elevated:#474d55f0;--panel:#4b525a;--panel-strong:#535a63;--text:#dde2e7;--muted:#9aa3ac;--soft:#7a838c;--line:#535a63;--line-strong:#6a7178;--accent:#c89478;--accent-strong:#a87a60;--overlay:#0006;--focus-ring:#c894782e;--danger:#e88a7a;--success:#72c494;--warning:#d4a85a;--shadow-sm:0 1px 2px 0 #0000001a;--shadow:0 4px 6px -1px #00000026, 0 2px 4px -1px #0000001a;--shadow-lg:0 20px 25px -5px #0003, 0 10px 10px -5px #0000001a}:root[data-theme=custom],body[data-theme=custom],.theme-custom{--bg:var(--custom-bg,#f8fafc);--surface:var(--custom-surface,#fff);--surface-elevated:color-mix(in srgb, var(--custom-surface,#fff) 92%, transparent);--panel:color-mix(in srgb, var(--custom-bg,#f8fafc) 92%, var(--custom-text,#0f172a) 8%);--panel-strong:color-mix(in srgb, var(--custom-bg,#f8fafc) 85%, var(--custom-text,#0f172a) 15%);--text:var(--custom-text,#0f172a);--muted:color-mix(in srgb, var(--custom-text,#0f172a) 70%, var(--custom-bg,#f8fafc) 30%);--soft:color-mix(in srgb, var(--custom-text,#0f172a) 50%, var(--custom-bg,#f8fafc) 50%);--line:color-mix(in srgb, var(--custom-text,#0f172a) 12%, var(--custom-bg,#f8fafc) 88%);--line-strong:color-mix(in srgb, var(--custom-text,#0f172a) 22%, var(--custom-bg,#f8fafc) 78%);--accent:var(--custom-accent,#1e293b);--accent-strong:color-mix(in srgb, var(--custom-accent,#1e293b) 80%, black 20%);--overlay:#0000004d;--focus-ring:color-mix(in srgb, var(--custom-accent,#1e293b) 14%, transparent)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(circle at top left, color-mix(in srgb, var(--panel) 32%, transparent), transparent 38%), linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), var(--bg));color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:Söhne,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;transition:background-color .3s,color .3s}button,input,select,textarea{font:inherit;transition:border-color .18s cubic-bezier(.4,0,.2,1),background-color .18s cubic-bezier(.4,0,.2,1),color .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-click{0%{transform:scale(1)}50%{transform:scale(.96)}to{transform:scale(1)}}.animate-fade-in{animation:.3s ease-out fade-in}.animate-slide-up{animation:.4s cubic-bezier(.22,1,.36,1) slide-up}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}button{color:inherit}::selection{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.6}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{width:100%;min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--text);margin:6px 0 12px;padding:0 16px;transition:border-color .14s,background-color .14s,box-shadow .14s}input::-moz-placeholder{color:var(--soft);opacity:1;padding-inline-start:0}textarea::-moz-placeholder{color:var(--soft);opacity:1;padding-inline-start:0}input::placeholder,textarea::placeholder{color:var(--soft);opacity:1;padding-inline-start:0}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}input[type=checkbox],input[type=range]{accent-color:var(--accent);cursor:pointer}input[type=range]{appearance:none;background:color-mix(in srgb, var(--panel) 80%, transparent);border:0;border-radius:999px;outline:none;width:100%;height:6px;margin:12px 0;padding:0;transition:background .2s}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid var(--surface);border-radius:50%;width:20px;height:20px;transition:transform .18s,box-shadow .18s;box-shadow:0 1px 4px #00000026}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 8px #0003}input[type=range]::-webkit-slider-thumb:active{transform:scale(1.05)}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid var(--surface);border-radius:50%;width:20px;height:20px;transition:transform .18s,box-shadow .18s;box-shadow:0 1px 4px #00000026}input[type=range]::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 2px 8px #0003}input[type=checkbox]{appearance:none;border:2px solid color-mix(in srgb, var(--line-strong) 80%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);cursor:pointer;border-radius:6px;flex-shrink:0;width:20px;height:20px;min-height:auto;margin:0;transition:background .18s,border-color .18s,transform .12s;position:relative}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";border:solid var(--surface);border-width:0 2px 2px 0;width:6px;height:10px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}input[type=checkbox]:hover{border-color:var(--accent)}input[type=checkbox]:active{transform:scale(.9)}textarea{resize:vertical;min-height:96px;padding-top:12px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.error{color:var(--danger)}.screen-center,.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.loading-logo{background:var(--accent);width:56px;height:56px;color:var(--surface);border-radius:16px;place-items:center;animation:1.8s cubic-bezier(.4,0,.6,1) infinite loading-pulse;display:grid}@keyframes loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.94)}}.login-panel{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), color-mix(in srgb, var(--surface) 96%, transparent)), radial-gradient(ellipse at top left, color-mix(in srgb, var(--panel) 35%, transparent), transparent 50%);width:min(432px,100%);box-shadow:var(--shadow);padding:32px;animation:.4s cubic-bezier(.22,1,.36,1) login-panel-in}@keyframes login-panel-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-stage{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:stretch;gap:28px;width:min(1180px,100%);display:grid}.login-story{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:calc(var(--radius-lg) + 6px);background:radial-gradient(circle at top left, color-mix(in srgb, var(--panel) 52%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), color-mix(in srgb, var(--surface) 94%, transparent));box-shadow:var(--shadow);align-content:center;gap:18px;padding:42px;animation:.5s cubic-bezier(.22,1,.36,1) login-story-in;display:grid}@keyframes login-story-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.login-story h1,.login-panel-head h2{letter-spacing:-.04em;margin:0}.login-story h1{max-width:12ch;font-size:clamp(44px,5.3vw,70px);line-height:.95}.login-story p,.login-panel-head p,.login-hints span{color:var(--muted);margin:0;line-height:1.7}.login-panel-head{gap:10px;margin-bottom:10px;display:grid}.login-panel-head h2{font-size:clamp(30px,3vw,36px);line-height:1.02}.login-submit{border-radius:16px;width:100%;min-height:48px;margin-top:4px;font-size:16px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background-color .2s}.login-submit:hover:not(:disabled){box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 20%, transparent);transform:translateY(-1px)}.login-submit:active:not(:disabled){transform:translateY(0)scale(.98)}.login-steps,.login-hints{gap:12px;display:grid}.login-steps{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px}.login-steps div,.login-hints div{gap:8px;display:grid}.login-steps div{border:1px solid color-mix(in srgb, var(--line) 84%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:16px;align-content:center;min-height:86px;padding:16px}.login-steps strong{font-size:19px;font-weight:650}.login-steps span,.login-hints span{font-size:16px}.login-hints{border-top:1px solid color-mix(in srgb, var(--line) 84%, transparent);margin-top:12px;padding-top:14px}.login-hints div{grid-template-columns:auto 1fr;align-items:start}.brand{align-items:center;gap:10px;min-height:42px;padding:0 10px;font-size:16px;font-weight:650;display:flex}.login-brand{margin-bottom:22px}.nav-button,.icon-action,.tool-pill,.primary,.ghost{min-height:var(--control-height);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;transition:background .14s,border-color .14s,color .14s,transform .12s,box-shadow .16s;display:inline-flex}.icon-action,.tool-pill,.ghost{background:color-mix(in srgb, var(--surface) 92%, transparent);border-color:color-mix(in srgb, var(--line) 90%, transparent);box-shadow:var(--shadow-sm)}.icon-action:hover,.tool-pill:hover,.ghost:hover{border-color:var(--line-strong);background:color-mix(in srgb, var(--panel) 82%, var(--surface))}.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);letter-spacing:-.01em;padding:0 20px;font-weight:600}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.primary:active,.ghost:active,.icon-action:active,.tool-pill:active,.nav-button:active{transform:translateY(1px)}.ghost{padding:0 14px}.small{min-height:34px;font-size:15px}.field{display:block}.field>span{color:var(--muted);letter-spacing:.02em;margin-bottom:6px;font-size:14px;font-weight:600;display:block}.field:focus-within>span{color:var(--accent)}.notice{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 90%, transparent);margin-bottom:16px;padding:12px 14px}.toast{z-index:60;background:var(--accent);color:var(--surface);border-radius:16px;padding:14px 20px;font-size:15px;font-weight:600;animation:.3s cubic-bezier(.22,1,.36,1) toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000026}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.theme-transitioning,.theme-transitioning *,.theme-transitioning :before,.theme-transitioning :after{transition:background-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1)!important}.mobile-nav-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:100%;font-size:12px;font-weight:500;transition:color .2s;display:flex;position:relative}.mobile-nav-btn:active{transform:scale(.92)}.mobile-nav-indicator{background:var(--accent);border-radius:999px;width:20px;height:3px;animation:.25s cubic-bezier(.22,1,.36,1) mobile-indicator-in;position:absolute;top:-2px;left:50%;transform:translate(-50%)}@keyframes mobile-indicator-in{0%{opacity:0;width:0}to{opacity:1;width:20px}}.mobile-nav-hint{background:color-mix(in srgb, var(--accent) 14%, transparent);min-width:16px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:1px 5px;font-size:11px;font-weight:700;line-height:1.4;display:flex;position:absolute;top:-4px;right:-8px;box-shadow:0 1px 3px #00000014}.sidebar-nav-btn{width:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:14px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:15px;font-weight:550;transition:background .2s,color .2s,transform .14s;display:flex;position:relative;overflow:hidden}.sidebar-nav-btn:hover:not(.active){background:color-mix(in srgb, var(--panel) 82%, transparent);color:var(--text)}.sidebar-nav-btn:hover:not(.active) .sidebar-nav-icon{color:var(--text)}.sidebar-nav-btn.active{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.sidebar-nav-btn:active{transform:scale(.97)}.sidebar-nav-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:-2px}.sidebar-nav-icon{color:var(--soft);transition:color .2s}.sidebar-nav-btn.active .sidebar-nav-icon{color:var(--accent)}.sidebar-nav-hint.active{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.app-layout{width:100%;height:100vh;font-family:Söhne,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;display:flex;overflow:hidden}.app-sidebar{border-right:1px solid color-mix(in srgb, var(--line) 60%, transparent);background:color-mix(in srgb, var(--surface) 50%, transparent);flex-direction:column;flex-shrink:0;justify-content:space-between;width:260px;display:none;overflow:hidden}@media (width>=768px){.app-sidebar{display:flex}}.app-sidebar-nav{flex-direction:column;gap:4px;padding:16px;display:flex;overflow-y:auto}.app-sidebar-brand{align-items:center;gap:10px;margin-bottom:32px;padding:4px 8px 0;font-size:1.5rem;font-weight:700;line-height:2rem;display:flex}.app-sidebar-title{letter-spacing:-.025em}.app-sidebar-links{flex-direction:column;gap:2px;display:flex}.sidebar-nav-content{align-items:center;gap:12px;display:flex}.app-sidebar-user{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 8px;display:flex}.app-sidebar-user-info{flex-direction:column;min-width:0;display:flex}.app-sidebar-user-email{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.app-main-content{z-index:0;background:var(--bg);border:1px solid color-mix(in srgb, var(--line) 50%, transparent);border-right:none;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}@media (width>=768px){.app-main-content{border-top-left-radius:16px;border-bottom-left-radius:16px;margin-top:8px;margin-bottom:8px;margin-right:8px;box-shadow:0 1px 2px #0000000d}}.app-main-scroll{position:absolute;inset:0;overflow-y:auto}.app-logo-icon{background:var(--accent);color:var(--surface);border-radius:12px;justify-content:center;align-items:center;padding:8px;display:flex;box-shadow:0 1px 2px #0000000d}.app-sidebar-footer{border-top:1px solid color-mix(in srgb, var(--line) 60%, transparent);padding:16px}.app-sidebar-user-role{color:var(--muted);font-size:13px}.mobile-bottom-nav{z-index:50;height:68px;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0);-webkit-backdrop-filter:blur(24px);border-top:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 85%, transparent);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.mobile-bottom-nav{display:none}}.app-reader-active .app-sidebar{display:none}.app-reader-active .app-main-content{box-shadow:none;border:none;border-radius:0;margin:0}.mobile-nav-btn.active{color:var(--accent)}.sidebar-nav-active-bar{background:var(--accent);border-radius:999px;width:3px;height:20px;animation:.25s cubic-bezier(.22,1,.36,1) sidebar-bar-in;position:absolute;top:50%;left:0;transform:translateY(-50%)}@keyframes sidebar-bar-in{0%{opacity:0;height:0}to{opacity:1;height:20px}}.sidebar-nav-hint{background:color-mix(in srgb, var(--panel) 80%, transparent);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:13px;font-weight:650}.logout-btn{width:36px;height:36px;color:var(--soft);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;transition:color .2s,background .2s,transform .14s;display:flex}.logout-btn:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.logout-btn:active{transform:scale(.92)}.mobile-fab{background:var(--accent);width:52px;height:52px;color:var(--surface);cursor:pointer;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 30%, transparent);-webkit-tap-highlight-color:transparent;z-index:2;border:0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;margin-top:-18px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s;display:flex;position:relative}.mobile-fab:active{box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 20%, transparent);transform:scale(.92)}.mobile-fab span{margin-top:1px;font-size:11px;font-weight:600}.skeleton-pulse{background:linear-gradient(90deg, color-mix(in srgb, var(--panel) 80%, transparent) 25%, color-mix(in srgb, var(--panel-strong) 60%, transparent) 50%, color-mix(in srgb, var(--panel) 80%, transparent) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{border-radius:8px;height:16px;margin-bottom:10px}.skeleton-line.short{width:40%}.skeleton-line.medium{width:65%}.skeleton-line.long{width:90%}.skeleton-card{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:var(--radius);padding:24px}.error-boundary{place-items:center;min-height:100vh;padding:24px;display:grid}.error-boundary-card{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:var(--radius-lg);background:var(--surface);max-width:420px;box-shadow:var(--shadow-lg);text-align:center;padding:32px;animation:.4s cubic-bezier(.22,1,.36,1) slide-up}.error-boundary-card h1{color:var(--text);margin:0 0 12px;font-size:24px}.error-boundary-card p{color:var(--muted);word-break:break-word;margin:0 0 20px;font-size:15px;line-height:1.6}.error-boundary-card button{border-radius:14px;min-height:44px;padding:0 24px}.page-view-enter{animation:.28s cubic-bezier(.22,1,.36,1) page-view-in}@keyframes page-view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.review-card-enter{animation:.36s cubic-bezier(.22,1,.36,1) review-card-in}@keyframes review-card-in{0%{opacity:0;transform:translate(24px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}.review-answer-reveal{animation:.4s cubic-bezier(.22,1,.36,1) answer-reveal}@keyframes answer-reveal{0%{opacity:0;transform:perspective(600px)rotateX(-8deg)translateY(12px)}to{opacity:1;transform:perspective(600px)rotateX(0)translateY(0)}}:root[data-theme=ink] *,:root[data-theme=ink] :before,:root[data-theme=ink] :after,body[data-theme=ink] *,body[data-theme=ink] :before,body[data-theme=ink] :after,.theme-ink *,.theme-ink :before,.theme-ink :after{text-shadow:none!important;box-shadow:none!important;transition:none!important;animation:none!important}.page{width:min(var(--content-max-width), calc(100vw - 288px));margin:0 auto;padding:34px 32px 112px;animation:.24s ease-out fade-in-up}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;min-height:120px;margin-bottom:24px;display:flex}.page-header-copy{gap:8px;max-width:780px;display:grid}.page-header-copy h1{letter-spacing:-.035em;margin:0;font-size:clamp(32px,4vw,44px);line-height:1}.page-header-copy p{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.page-header-actions{align-items:flex-start;gap:10px;display:flex}.page-header-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page-workspace{grid-template-columns:248px minmax(0,1fr);align-items:start;gap:18px;display:grid}.page-main-column{gap:18px;min-width:0;display:grid}.section-card{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), color-mix(in srgb, var(--surface) 96%, transparent)), radial-gradient(ellipse at top left, color-mix(in srgb, var(--panel) 30%, transparent), transparent 50%);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.section-card-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 22px 0;display:flex}.section-card-copy{gap:6px;display:grid}.section-card-copy h2{letter-spacing:-.03em;margin:0;font-size:24px;line-height:1.08}.section-card-copy p{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.section-card-eyebrow{color:var(--soft);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:700}.section-card-action{align-items:center;gap:8px;display:flex}.section-card-body{padding:22px}.toolbar{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px 14px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar .field-search{flex:260px;min-width:min(280px,100%)}.toolbar .field-search input,.toolbar .field-inline input,.toolbar .field-inline select{margin:0}.toolbar .field-inline{min-width:130px}.toolbar .field-inline>span,.toolbar .field-search>span{margin-bottom:6px}.workspace-nav{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow-sm);border-radius:22px;gap:6px;padding:10px;display:grid;position:sticky;top:28px}.workspace-nav button{min-height:62px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:16px;align-content:center;gap:4px;padding:12px 14px 12px 22px;transition:background .2s,color .2s,border-color .2s,transform .14s;display:grid;position:relative;overflow:hidden}.workspace-nav button:before{content:"";background:var(--accent);border-radius:999px;width:3px;height:0;transition:height .25s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:0;transform:translateY(-50%)}.workspace-nav button strong{font-size:16px;font-weight:680}.workspace-nav button span{font-size:14px;line-height:1.45}.workspace-nav button.active{border-color:color-mix(in srgb, var(--accent) 18%, transparent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));color:var(--text)}.workspace-nav button.active:before{height:24px}.workspace-nav button:hover:not(.active){border-color:color-mix(in srgb, var(--line) 80%, transparent);background:color-mix(in srgb, var(--panel) 82%, var(--surface));color:var(--text)}.workspace-nav button:active{transform:scale(.98)}.status-badge{background:color-mix(in srgb, var(--panel) 86%, transparent);min-height:26px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.status-badge.tone-ready,.status-badge.tone-success{color:var(--text)}.status-badge.tone-warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, var(--surface))}.status-badge.tone-processing{color:var(--text);background:color-mix(in srgb, var(--panel-strong) 72%, var(--surface))}.status-badge.tone-failed{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.status-badge.tone-muted{color:var(--soft)}.stat-tile{border:1px solid color-mix(in srgb, var(--line) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 94%, transparent);align-content:start;gap:6px;min-height:128px;padding:18px 20px 16px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.stat-tile:hover{border-color:color-mix(in srgb, var(--line-strong) 60%, transparent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-tile strong{letter-spacing:-.02em;font-size:clamp(26px,2.4vw,34px);font-weight:720;line-height:1.05;display:block}.metric-icon{background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 80%, transparent), color-mix(in srgb, var(--panel-strong) 60%, transparent));width:36px;height:36px;color:var(--text);border-radius:12px;place-items:center;margin-bottom:10px;display:inline-grid}.stat-tile span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:14px;font-weight:700}.stat-tile small{color:var(--muted);font-size:14px;line-height:1.5}.stat-tile.tone-accent{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 98%, transparent), color-mix(in srgb, var(--surface) 92%, transparent)), radial-gradient(circle at top left, color-mix(in srgb, var(--panel) 44%, transparent), transparent 52%)}.metric{display:block}.stats-mini-grid,.overview-metrics-grid,.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stats-trends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.stats-mini-chart{align-items:flex-end;gap:6px;height:80px;padding:0 4px;display:flex}.stats-mini-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.stats-mini-bar{border-radius:4px 4px 0 0;width:100%;min-height:0;transition:height .3s cubic-bezier(.22,1,.36,1)}.stats-mini-bar-label{color:var(--muted);font-size:11px;line-height:1}.stats-vocab-summary{color:var(--muted);margin:0 0 8px;font-size:14px}.stats-vocab-summary strong{color:var(--text);font-weight:700}.empty{border:1px dashed color-mix(in srgb, var(--line-strong) 78%, transparent);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--panel) 40%, transparent);min-height:260px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.empty h2{color:var(--text);margin:0;font-size:20px}.empty p{max-width:420px;margin:0;font-size:16px;line-height:1.65}.journey-empty{border:1px dashed color-mix(in srgb, var(--line-strong) 72%, transparent);border-radius:var(--radius-lg);background:radial-gradient(circle at top left, color-mix(in srgb, var(--panel) 42%, transparent), transparent 48%), linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));text-align:left;align-content:center;justify-items:start;gap:14px;min-height:320px;padding:40px;animation:.3s ease-out fade-in-up;display:grid}.journey-empty-icon{background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 74%, transparent), color-mix(in srgb, var(--panel-strong) 50%, transparent));width:56px;height:56px;color:var(--soft);border-radius:18px;place-items:center;transition:transform .3s;display:inline-grid}.journey-empty:hover .journey-empty-icon{transform:scale(1.06)}.journey-empty h2{letter-spacing:-.04em;margin:0;font-size:clamp(26px,3vw,34px);line-height:1.04}.journey-empty p{max-width:46ch;color:var(--muted);margin:0;line-height:1.72}.journey-empty-action{margin-top:6px}.overflow-menu{position:relative}.overflow-panel{z-index:45;border:1px solid color-mix(in srgb, var(--line) 84%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 98%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)), radial-gradient(circle at top right, color-mix(in srgb, var(--panel) 44%, transparent), transparent 56%);border-radius:18px;gap:2px;width:min(230px,100vw - 28px);padding:8px;animation:.18s cubic-bezier(.22,1,.36,1) overflow-in;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 40px #0000001f}@keyframes overflow-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.overflow-panel button{min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-items:start;gap:4px;padding:10px 12px;transition:background .14s,transform .12s;display:grid}.overflow-panel button:hover{background:color-mix(in srgb, var(--panel) 82%, var(--surface))}.overflow-panel button:active{transform:scale(.98)}.overflow-panel button.danger{color:var(--danger)}.overflow-panel button small{color:var(--muted);font-size:14px;line-height:1.45}.overflow-item-main{align-items:center;gap:8px;display:inline-flex}.overflow-item-icon{place-items:center;display:inline-grid}.hero-kicker{border:1px solid color-mix(in srgb, var(--line) 90%, transparent);background:color-mix(in srgb, var(--surface) 80%, var(--panel));width:fit-content;min-height:28px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 10px;font-size:14px;font-weight:700;display:inline-flex}.login-error{background:color-mix(in srgb, var(--danger) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 20%, var(--line));border-radius:var(--radius-xs);color:var(--danger);padding:10px 14px;font-size:15px}.section-head{justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 18px;display:flex}.section-head h2{margin:0 0 6px;font-size:22px;line-height:1.1}.section-head p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.library-stack,.stats-stack,.settings-stack,.vocabulary-stack{gap:18px;display:grid}.library-next-step-card .section-card-body{gap:16px;display:grid}.next-step-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.next-step-item{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 90%, transparent);border-radius:20px;gap:10px;padding:18px;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s,border-color .22s;display:grid}.next-step-item:hover{border-color:color-mix(in srgb, var(--line-strong) 65%, transparent);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.next-step-item-head{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.next-step-icon{background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 72%, transparent), color-mix(in srgb, var(--panel-strong) 50%, transparent));width:32px;height:32px;color:var(--text);border-radius:10px;place-items:center;transition:transform .22s;display:inline-grid}.next-step-item:hover .next-step-icon{transform:scale(1.06)}.next-step-item strong{letter-spacing:-.04em;font-size:clamp(26px,2.8vw,36px);line-height:1}.next-step-item p{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.next-step-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.library-hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);align-items:stretch;gap:18px;display:grid}.library-current-reading{flex-direction:column;height:100%;display:flex}.library-current-reading>.current-reading-shell,.library-current-reading>.empty-state{flex:1}.current-reading-shell{grid-template-columns:144px minmax(0,1fr);align-items:start;gap:18px;display:grid}.current-reading-cover{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--panel) 82%, transparent);width:144px;height:196px;box-shadow:var(--shadow-sm);border-radius:20px;place-items:center;display:grid;overflow:hidden}.current-reading-cover img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.current-reading-copy{align-content:start;gap:10px;display:grid}.current-reading-copy h2{letter-spacing:-.04em;margin:0;font-size:clamp(28px,2.6vw,34px);line-height:1.04}.current-reading-copy p{color:var(--muted);margin:0;line-height:1.62}.current-reading-meta,.book-card-meta,.book-card-progress-meta,.toolbox-list li,.stats-overview-copy{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.progress-track{background:color-mix(in srgb, var(--panel) 88%, transparent);border-radius:999px;height:6px;margin-bottom:6px;position:relative;overflow:hidden}.progress-track>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 80%, var(--success)));height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.progress-track.secondary{height:4px}.progress-track.secondary>span{background:linear-gradient(90deg, var(--success), color-mix(in srgb, var(--success) 80%, var(--warning)))}.current-reading-actions,.book-card-footer,.toolbox-actions,.row-actions,.dialog-actions,.review-card-tools,.admin-user-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.current-reading-actions{margin-top:2px}.current-reading-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px;display:grid}.current-reading-detail{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:16px;gap:4px;padding:12px 14px;display:grid}.current-reading-detail span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:700}.current-reading-detail strong{font-size:17px;line-height:1.35}.library-side-column{gap:18px;display:grid}.queue-list{gap:10px;display:grid}.queue-item{border:1px solid color-mix(in srgb, var(--line) 84%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);text-align:left;border-radius:16px;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px;display:grid}.queue-item-cover{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--panel) 84%, transparent);border-radius:12px;place-items:center;width:56px;height:74px;display:grid;overflow:hidden}.queue-item-cover img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.queue-item-copy{gap:6px;display:grid}.queue-item-copy strong{font-size:17px;line-height:1.35}.queue-item-copy span{color:var(--muted);font-size:15px}.queue-item-progress{min-width:42px;color:var(--muted);text-align:right;font-size:14px}.library-collection-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.book-card-compact{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-sm);border-radius:20px;grid-template-columns:88px minmax(0,1fr);align-items:stretch;gap:18px;padding:18px;transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .24s cubic-bezier(.22,1,.36,1),border-color .24s;display:grid}.book-card-compact:hover{border-color:color-mix(in srgb, var(--line-strong) 74%, transparent);background:color-mix(in srgb, var(--surface) 98%, transparent);box-shadow:var(--shadow);transform:translateY(-2px)}.book-card-cover{aspect-ratio:.72;border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 70%, transparent), color-mix(in srgb, var(--panel-strong) 50%, transparent));border-radius:12px;align-self:start;place-items:center;width:100%;transition:box-shadow .24s,transform .24s;display:grid;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f}.book-card-compact:hover .book-card-cover{transform:scale(1.02);box-shadow:0 4px 16px #0000001a}.book-card-cover img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .3s cubic-bezier(.22,1,.36,1)}.book-card-compact:hover .book-card-cover img{transform:scale(1.04)}.book-card-cover>svg{color:var(--soft);opacity:.5}.book-card-cover button{cursor:pointer;z-index:1;background:0 0;border:0;position:absolute;inset:0}.book-card-cover button:hover{background:color-mix(in srgb, var(--accent) 4%, transparent)}.book-card-content{flex-direction:column;min-width:0;height:100%;display:flex}.book-card-head{justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:6px;display:flex}.book-card-title{gap:3px;min-width:0;display:grid}.book-card-title h3{white-space:nowrap;text-overflow:ellipsis;color:var(--text);margin:0;font-size:17px;font-weight:700;line-height:1.35;overflow:hidden}.book-card-title p{color:var(--soft);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;overflow:hidden}.book-card-meta{color:var(--muted);flex-wrap:wrap;gap:6px;margin-bottom:8px;font-size:14px;display:flex}.book-card-progress-meta{color:var(--soft);justify-content:space-between;margin-top:6px;margin-bottom:4px;font-size:13px;font-weight:600;display:flex}.book-card-progress-meta span:first-child{color:var(--text);font-weight:700}.book-card-footer{align-self:end;margin-top:auto;padding-top:8px}.toolbox-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.92fr);gap:18px;display:grid}.toolbox-stack{gap:14px;display:grid}.toolbox-callout{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);border-radius:18px;gap:10px;padding:18px;display:grid}.toolbox-callout p,.toolbox-list span,.toolbox-list strong,.book-time-row span,.book-time-row strong,.user-row span:not(.status-badge),.review-meta,.word-row span,.word-row small{overflow-wrap:anywhere}.toolbox-callout p{color:var(--muted);margin:0;line-height:1.62}.toolbox-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.toolbox-list li{border:1px solid color-mix(in srgb, var(--line) 84%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);border-radius:16px;justify-content:space-between;padding:12px 14px}.translate-progress{gap:10px;display:grid}.translate-progress .toolbox-actions{justify-content:flex-end}.table-list{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);max-height:min(62vh,860px);box-shadow:var(--shadow-sm);border-radius:22px;display:block;overflow:auto}.word-edit-grid{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) 120px 120px;gap:10px;display:grid}.word-edit-grid input,.word-edit-grid select,.word-edit-grid textarea{border-radius:12px;margin:0}.word-edit-grid textarea{grid-column:1/-1;min-height:78px}.book-time-list{gap:10px;display:grid}.book-time-row{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);text-align:left;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:14px 18px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.book-time-row:hover{border-color:color-mix(in srgb, var(--line-strong) 70%, transparent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.book-time-row:before{content:"";width:var(--time-bar,0%);background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 6%, transparent), color-mix(in srgb, var(--accent) 3%, transparent));border-radius:inherit;pointer-events:none;transition:width .6s cubic-bezier(.22,1,.36,1);position:absolute;top:0;bottom:0;left:0}.book-time-row>div{z-index:1;gap:4px;min-width:0;display:grid;position:relative}.book-time-row strong{font-size:16px;font-weight:650}.book-time-row span{color:var(--muted);font-size:14px}.book-time-row>div:last-child{text-align:right;align-items:flex-end}.book-time-row>div:last-child strong{letter-spacing:-.02em;font-size:18px;font-weight:700}.book-progress-ring{z-index:1;flex-shrink:0;width:40px;height:40px;position:relative}.book-progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.book-progress-ring circle{fill:none;stroke-width:3px}.book-progress-ring .ring-bg{stroke:color-mix(in srgb, var(--panel) 88%, transparent)}.book-progress-ring .ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}.book-progress-ring .ring-text{color:var(--text);place-items:center;font-size:10px;font-weight:700;display:grid;position:absolute;inset:0}.stats-overview-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;display:grid}.stats-overview-card{gap:14px;display:grid}.stats-overview-card h2{letter-spacing:-.04em;margin:0;font-size:clamp(30px,3.2vw,36px);line-height:1.02}.stats-overview-card p{color:var(--muted);margin:0;line-height:1.68}.stats-overview-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stats-overview-copy{gap:10px;display:grid}.overview-count-block{background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 60%, var(--surface)), color-mix(in srgb, var(--panel-strong) 40%, var(--surface)));border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:20px;gap:8px;padding:20px;transition:transform .2s,box-shadow .2s;display:grid}.overview-count-block:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.overview-count-block strong{letter-spacing:-.05em;background:linear-gradient(135deg, var(--text), color-mix(in srgb, var(--text) 70%, var(--accent)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(34px,3.2vw,50px);line-height:.92}.overview-count-block span{color:var(--soft);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:700}.segment-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.segmented{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 94%, transparent);padding:0;display:inline-flex;overflow:hidden}.segmented button,.theme-buttons button{min-height:38px;color:var(--muted);background:0 0;border:0;padding:0 14px}.segmented button.active,.theme-buttons button.active{background:var(--accent);color:var(--surface)}.segmented button:hover,.theme-buttons button:hover{background:color-mix(in srgb, var(--panel) 84%, var(--surface));color:var(--text)}.segmented button.active:hover,.theme-buttons button.active:hover{background:var(--accent);color:var(--surface)}.vocab-controls,.batch-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.batch-bar{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--panel) 40%, var(--surface)));min-height:44px;box-shadow:var(--shadow-sm);border-radius:16px;margin-bottom:12px;padding:10px 14px}.vocabulary-overview-grid,.review-rail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.vocabulary-stage-callout{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--panel) 50%, var(--surface)), color-mix(in srgb, var(--panel-strong) 30%, var(--surface)));border-radius:20px;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;padding:18px 20px;display:flex}.vocabulary-stage-callout>div{gap:6px;display:grid}.vocabulary-stage-callout strong{font-size:17px;line-height:1.42}.vocabulary-stage-callout p{color:var(--muted);margin:0;font-size:15px;line-height:1.65}.vocabulary-search{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-sm);border-radius:16px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.vocabulary-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.vocabulary-search input{background:0 0;border:0;flex:1;min-height:32px;margin:0;padding:0}.vocabulary-search input:focus{box-shadow:none}.vocabulary-search svg{color:var(--soft);flex-shrink:0}.search-count{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600}.vocabulary-load-more{justify-content:center;padding:16px 0 8px;display:flex}.vocabulary-sort-select{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);width:auto;min-height:32px;color:var(--muted);cursor:pointer;border-radius:8px;flex-shrink:0;margin:0;padding:0 8px;font-size:14px;font-weight:600}.vocabulary-sort-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent)}.select-row,.select-cell{color:var(--muted);align-items:center;gap:8px;font-size:15px;display:inline-flex}.word-row{background:color-mix(in srgb, var(--surface) 96%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 92%, transparent);grid-template-columns:22px 1fr auto;gap:18px;padding:18px 22px;transition:background-color .16s;display:grid}.word-row:last-child{border-bottom:0}.word-row:hover{background:color-mix(in srgb, var(--panel) 30%, var(--surface))}.word-row.editing{background:color-mix(in srgb, var(--panel) 20%, var(--surface));align-items:start}.word-content{min-width:0}.word-title-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.word-row strong{letter-spacing:-.01em;font-size:19px;font-weight:600}.word-due-tag{background:color-mix(in srgb, var(--panel) 80%, transparent);min-height:24px;color:var(--muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.word-speak-btn{width:26px;height:26px;color:var(--soft);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .14s,background-color .14s;display:inline-flex}.word-speak-btn:hover{color:var(--accent);background:color-mix(in srgb, var(--panel) 80%, transparent)}.word-phonetic{color:var(--soft);font-size:15px;font-style:italic;font-weight:400}.word-row span,.word-row small{color:var(--muted)}.word-row p{margin:8px 0 0;line-height:1.55}.word-row small{margin-top:8px;display:block}.icon-text{gap:6px}.danger-action{color:var(--danger)}.danger-action:hover{border-color:color-mix(in srgb, var(--danger) 44%, var(--line));background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.settings-section-stack{gap:14px;display:grid}.settings-two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.theme-picker{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px;display:grid}.theme-picker.two{grid-template-columns:repeat(2,1fr)}.theme-pick{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;transition:border-color .18s,box-shadow .18s,transform .14s;display:flex}.theme-pick:hover{border-color:var(--line-strong);transform:translateY(-1px)}.theme-pick.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.theme-pick-swatch{border:1px solid #0000000f;border-radius:10px;width:100%;height:36px;display:flex;overflow:hidden}.theme-pick-swatch>span{flex:1;height:100%}.theme-pick-label{color:var(--text);align-items:center;gap:5px;font-size:14px;font-weight:600;display:flex}.theme-pick-check{background:var(--accent);width:16px;height:16px;color:var(--surface);border-radius:50%;place-items:center;display:inline-grid}.theme-buttons{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--line) 88%, transparent);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:6px;display:grid;overflow:hidden}.theme-buttons.two{grid-template-columns:repeat(2,1fr)}.theme-buttons button{background:var(--surface);justify-content:center;align-items:center;gap:6px;display:inline-flex}.custom-theme-colors{flex-wrap:wrap;gap:16px;margin-top:6px;display:flex}.custom-color-pick{min-height:36px;color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.custom-color-pick input[type=color]{border:1px solid var(--line);border-radius:var(--radius-xs);cursor:pointer;background:var(--surface);width:36px;height:36px;min-height:36px;margin:0;padding:2px}.ai-models-toolbar{align-items:center;gap:10px;margin-bottom:6px;display:flex}.check-row{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);cursor:pointer;border-radius:14px;align-items:center;gap:10px;min-height:44px;padding:10px 14px;font-size:15px;line-height:1.5;transition:background .18s,border-color .18s;display:flex}.check-row:hover{background:color-mix(in srgb, var(--panel) 40%, var(--surface));border-color:color-mix(in srgb, var(--line-strong) 70%, transparent)}.font-picker{min-width:0}.font-list{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--line) 88%, transparent);gap:1px;margin-top:6px;display:grid;overflow:hidden}.font-row{background:var(--surface);grid-template-columns:minmax(0,1fr) auto;display:grid}.font-row>button:first-child{min-height:52px;color:var(--muted);text-align:left;white-space:normal;background:0 0;border:0;padding:8px 12px;overflow:visible}.font-row.active>button:first-child{color:var(--text);background:color-mix(in srgb, var(--panel) 84%, var(--surface))}.font-delete{border:0;border-left:1px solid color-mix(in srgb, var(--line) 88%, transparent);width:38px;min-height:38px;color:var(--muted);background:0 0;place-items:center;display:grid}.font-delete:hover{color:var(--danger);background:color-mix(in srgb, var(--panel) 84%, var(--surface))}.field-hint{color:var(--muted);margin:-4px 0 12px;font-size:15px;line-height:1.5}.font-upload-row{border-top:1px solid color-mix(in srgb, var(--line) 86%, transparent);margin-top:8px;padding-top:14px}.font-upload-row input[type=file]{width:100%}.settings-save-row{justify-content:flex-end;padding-top:8px;display:flex}.save-button{border-radius:16px;gap:10px;min-height:48px;padding:0 28px;font-size:16px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background-color .2s}.save-button:hover{box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 20%, transparent);transform:translateY(-1px)}.save-button:active{transform:translateY(0)scale(.98)}.save-button-dirty{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.save-dirty-dot{background:var(--warning);border-radius:50%;flex-shrink:0;width:8px;height:8px}.admin-tools{gap:12px;display:grid}.admin-user-form{-moz-column-gap:12px;grid-template-columns:minmax(190px,1.35fr) minmax(160px,1fr) minmax(120px,.6fr) auto;align-items:end;gap:8px 12px;display:grid}.admin-user-form h3{grid-column:1/-1;margin:0;font-size:18px}.admin-user-form input,.admin-user-form select,.admin-user-edit input,.admin-user-edit select{margin-bottom:0}.user-list{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--line) 88%, transparent);gap:1px;display:grid;overflow:hidden}.user-row{background:color-mix(in srgb, var(--surface) 96%, transparent);grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:12px;min-height:52px;padding:10px 12px;display:grid}.user-row.editing{grid-template-columns:minmax(160px,.9fr) minmax(300px,1.6fr) auto;align-items:end}.user-summary{gap:3px;min-width:0;display:grid}.user-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-row span:not(.status-badge){color:var(--muted);font-size:14px}.admin-user-edit{grid-template-columns:minmax(150px,1.2fr) minmax(130px,1fr) minmax(112px,.7fr);gap:10px;min-width:0;display:grid}.review-page{flex-direction:column;align-items:center;width:100%;min-height:100dvh;padding:16px;display:flex}.review-stage{flex-direction:column;gap:16px;width:100%;max-width:720px;margin:auto;display:flex}.review-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.review-topbar-left{align-items:center;gap:8px;display:flex}.review-topbar-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:13px;font-weight:700}.review-topbar-progress{color:var(--muted);font-size:15px}.review-topbar-right{align-items:center;gap:6px;display:flex}.review-undo-btn{white-space:nowrap;color:var(--warning);border-color:color-mix(in srgb, var(--warning) 30%, var(--line))}.review-card{border:1px solid color-mix(in srgb, var(--line) 50%, transparent);border-radius:var(--radius-lg);background:var(--surface);width:100%;box-shadow:var(--shadow-lg);padding:clamp(26px,4vw,42px);transition:all .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.literary-card{background:radial-gradient(ellipse at top left, color-mix(in srgb, var(--panel) 20%, transparent), transparent 50%), radial-gradient(ellipse at bottom right, color-mix(in srgb, var(--panel) 8%, transparent), transparent 40%), var(--surface)}.review-progress{background:color-mix(in srgb, var(--panel) 50%, transparent);border-radius:999px;height:4px;margin:0 0 24px;overflow:hidden}.review-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 70%, var(--success)));height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.review-word-block{text-align:center;margin-bottom:28px;position:relative}.review-word-block h1{letter-spacing:-.03em;color:var(--text);margin:0 auto;font-size:clamp(36px,7vw,64px);font-weight:750;line-height:1.05;animation:.4s cubic-bezier(.22,1,.36,1) slide-up}.review-word-block .speak{color:var(--muted);margin-top:12px;display:inline-flex}.review-word-block .review-phonetic{color:var(--soft);margin:8px 0 0;font-size:20px;font-style:italic;animation:.5s cubic-bezier(.22,1,.36,1) slide-up}.review-word-block .review-hint{color:var(--soft);text-transform:uppercase;letter-spacing:.1em;margin:6px 0 0;font-size:15px;font-weight:600;animation:.6s cubic-bezier(.22,1,.36,1) slide-up}.review-card blockquote{color:var(--muted);text-align:center;border:0;margin:24px 0;padding:0;line-height:1.6}.example-en{font-size:clamp(20px,2vw,24px);font-style:italic;font-weight:400;color:var(--text)!important}.review-highlight{background:color-mix(in srgb, var(--warning) 12%, transparent);border-bottom:2px solid var(--warning);color:inherit;padding:0 1px}.example-empty{border-top:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 88%, transparent);justify-content:space-between;align-items:center;gap:14px;margin:16px 0 0;padding:12px 0;display:flex}.example-empty p{color:var(--muted);margin:0;line-height:1.55}.review-answer{border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 35%, transparent);border:1px solid color-mix(in srgb, var(--line) 40%, transparent);border-left:3px solid var(--accent);margin-top:24px;padding:20px 24px;animation:.4s cubic-bezier(.22,1,.36,1) answer-reveal-content}@keyframes answer-reveal-content{0%{opacity:0;border-left-color:#0000;transform:translateY(8px)}to{opacity:1;border-left-color:var(--accent);transform:translateY(0)}}.review-answer span{text-transform:uppercase;letter-spacing:.1em;color:var(--soft);margin-bottom:4px;font-size:12px;font-weight:700;display:block}.review-answer p{color:var(--text);margin:0;font-size:20px;font-weight:600;line-height:1.5}.review-answer p+span{margin-top:16px}.reveal-button{letter-spacing:.01em;border-radius:16px;width:100%;min-height:52px;margin-top:28px;font-size:16px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background-color .2s}.reveal-button:hover{box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 18%, transparent);transform:translateY(-1px)}.reveal-button:active{transform:translateY(0)scale(.98)}.review-actions,.summary-grid{gap:8px;margin:24px 0 12px;display:grid}.review-actions{grid-template-columns:repeat(4,1fr)}.rating-button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:68px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,border-color .2s,background-color .2s;display:flex}.rating-button:hover:not(:disabled){border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.rating-button:active:not(:disabled){transition-duration:80ms;transform:translateY(0)scale(.94)}.rating-key{color:var(--soft);opacity:.7;border:1px solid color-mix(in srgb, var(--line) 80%, transparent);background:color-mix(in srgb, var(--panel) 60%, transparent);border-radius:5px;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:11px;font-weight:800;display:inline-flex}.rating-button strong{font-size:16px;font-weight:700}.rating-button span{color:var(--soft);font-size:12px;font-weight:500}.rating-button.failed{border-color:color-mix(in srgb, var(--danger) 35%, var(--line));background:color-mix(in srgb, var(--danger) 6%, var(--surface))}.rating-button.failed:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 55%, var(--line));background:color-mix(in srgb, var(--danger) 12%, var(--surface));box-shadow:0 8px 24px color-mix(in srgb, var(--danger) 12%, transparent)}.rating-button.failed strong{color:var(--danger)}.rating-button.failed .rating-key{border-color:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.rating-button.warning{border-color:color-mix(in srgb, var(--warning) 35%, var(--line));background:color-mix(in srgb, var(--warning) 6%, var(--surface))}.rating-button.warning:hover:not(:disabled){border-color:color-mix(in srgb, var(--warning) 55%, var(--line));background:color-mix(in srgb, var(--warning) 12%, var(--surface));box-shadow:0 8px 24px color-mix(in srgb, var(--warning) 12%, transparent)}.rating-button.warning strong{color:var(--warning)}.rating-button.warning .rating-key{border-color:color-mix(in srgb, var(--warning) 25%, transparent);color:var(--warning)}.rating-button.ready{border-color:color-mix(in srgb, var(--success) 30%, var(--line));background:color-mix(in srgb, var(--success) 5%, var(--surface))}.rating-button.ready:hover:not(:disabled){border-color:color-mix(in srgb, var(--success) 50%, var(--line));background:color-mix(in srgb, var(--success) 10%, var(--surface));box-shadow:0 8px 24px color-mix(in srgb, var(--success) 12%, transparent)}.rating-button.ready strong{color:var(--success)}.rating-button.ready .rating-key{border-color:color-mix(in srgb, var(--success) 25%, transparent);color:var(--success)}.rating-button.easy{background:var(--text);border-color:var(--text);color:var(--surface)}.rating-button.easy:hover:not(:disabled){background:var(--accent-strong);box-shadow:0 8px 24px color-mix(in srgb, var(--text) 20%, transparent)}.rating-button.easy .rating-key{border-color:color-mix(in srgb, var(--surface) 30%, transparent);color:var(--surface);opacity:.85;background:color-mix(in srgb, var(--surface) 12%, transparent)}.rating-button.easy span{color:var(--surface);opacity:.75}.review-shortcuts{border-top:1px solid color-mix(in srgb, var(--line) 88%, transparent);color:var(--soft);letter-spacing:.02em;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding-top:16px;font-size:14px;display:flex}.review-card-tools{border-top:1px solid color-mix(in srgb, var(--line) 92%, transparent);flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;padding-top:14px;display:flex}.review-meta{color:var(--soft);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;margin-bottom:24px;font-size:15px;font-weight:600;display:flex}.summary-header{text-align:center;margin-bottom:32px}.summary-header h1{color:var(--text);margin:0;font-size:34px;font-weight:800}.summary-header p{color:var(--muted);margin:8px 0 0}.summary-accuracy-ring{border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 25%, transparent);border:1px solid color-mix(in srgb, var(--line) 40%, transparent);justify-content:center;align-items:center;gap:28px;margin:28px 0;padding:32px;animation:.4s cubic-bezier(.22,1,.36,1) slide-up;display:flex}.accuracy-svg{flex-shrink:0;width:120px;height:120px;transform:rotate(-90deg)}.accuracy-svg circle{fill:none;stroke-width:6px}.accuracy-svg .ring-bg{stroke:color-mix(in srgb, var(--panel) 80%, transparent)}.accuracy-svg .ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.22,1,.36,1)}.accuracy-text{gap:4px;display:grid}.accuracy-text strong{color:var(--text);letter-spacing:-.04em;font-size:48px;font-weight:800;line-height:1}.accuracy-text span{color:var(--muted);font-size:16px;font-weight:600}.accuracy-text small{color:var(--soft);font-size:14px;font-weight:600}.summary-grid-colored{grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0 12px;display:grid}.summary-metric{text-align:center;border:1px solid #0000;border-radius:16px;gap:6px;padding:16px;transition:transform .2s;display:grid}.summary-metric:hover{transform:translateY(-1px)}.summary-metric strong{letter-spacing:-.02em;font-size:28px;font-weight:750;line-height:1}.summary-metric span{text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600}.summary-metric.metric-forgot{background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 20%, transparent)}.summary-metric.metric-forgot strong{color:var(--danger)}.summary-metric.metric-forgot span{color:color-mix(in srgb, var(--danger) 70%, var(--muted))}.summary-metric.metric-hard{background:color-mix(in srgb, var(--warning) 8%, transparent);border-color:color-mix(in srgb, var(--warning) 20%, transparent)}.summary-metric.metric-hard strong{color:var(--warning)}.summary-metric.metric-hard span{color:color-mix(in srgb, var(--warning) 70%, var(--muted))}.summary-metric.metric-remember{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 20%, transparent)}.summary-metric.metric-remember strong{color:var(--success)}.summary-metric.metric-remember span{color:color-mix(in srgb, var(--success) 70%, var(--muted))}.summary-metric.metric-easy{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 20%, transparent)}.summary-metric.metric-easy strong{color:var(--accent)}.summary-metric.metric-easy span{color:color-mix(in srgb, var(--accent) 70%, var(--muted))}.spelling-prompt{border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 30%, transparent);margin:0 0 32px;padding:32px;animation:.4s cubic-bezier(.22,1,.36,1) slide-up}.spelling-prompt span{text-transform:uppercase;letter-spacing:.1em;color:var(--soft);margin-bottom:8px;font-size:14px;font-weight:700;display:block}.spelling-prompt p{color:var(--text);margin:0;font-size:24px;font-weight:600;line-height:1.6}.spelling-prompt p+span{margin-top:24px}.spelling-input-row{align-items:center;gap:16px;margin:32px 0;display:flex;position:relative}.spelling-input-row input{text-align:center;border:0;border-bottom:3px solid var(--line);min-height:80px;color:var(--text);background:0 0;border-radius:0;flex:1;margin:0;padding:0;font-size:clamp(34px,5vw,50px);font-weight:700;transition:border-color .3s}.spelling-input-row input:focus{box-shadow:none;border-color:var(--accent)}.spelling-result{border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:32px;padding:24px;animation:.4s cubic-bezier(.22,1,.36,1) slide-up;display:flex}.spelling-result.correct{background:color-mix(in srgb, var(--success) 10%, transparent);color:var(--success)}.spelling-result.wrong{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger);animation:.4s cubic-bezier(.36,.07,.19,.97) both shake}.spelling-result strong{letter-spacing:-.02em;font-size:34px;font-weight:800}.spelling-your-answer{opacity:.8;font-size:16px;text-decoration:line-through}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.ai-provider-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ai-provider-pick{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;transition:border-color .18s,box-shadow .18s;display:flex}.ai-provider-pick strong{color:var(--text);font-size:13px;font-weight:600}.ai-provider-pick small{color:var(--muted);font-size:11px;line-height:1.3}.ai-provider-pick:hover{border-color:var(--line-strong)}.ai-provider-pick.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent)}.ai-model-suggestions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ai-model-chips{flex-wrap:wrap;gap:6px;display:flex}.ai-model-chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:20px;padding:3px 10px;font-size:12px;transition:border-color .15s,color .15s}.ai-model-chip:hover{border-color:var(--accent);color:var(--accent)}.reader-shell{background:var(--bg);grid-template-rows:auto minmax(0,1fr);height:100%;display:grid;position:relative;overflow:hidden}.prose-reader-shell{color:var(--text)}.prose-reader-layout{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.reader-reveal-zone{z-index:13;pointer-events:auto;position:absolute}.reader-shell.reader-chrome-visible>.reader-reveal-zone,.reader-standard>.reader-reveal-zone{pointer-events:none}.reader-reveal-zone-top{height:18px;top:0;left:0;right:0}.reader-chrome{z-index:14;border-bottom:1px solid color-mix(in srgb, var(--line) 84%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .18s,transform .22s;position:relative}.reader-immersive.reader-chrome-hidden .reader-chrome{opacity:0;pointer-events:none;transform:translateY(-14px)}.reader-standard .reader-chrome,.reader-chrome-visible .reader-chrome{opacity:1;pointer-events:auto;transform:none}.prose-reader-top{justify-content:center;align-items:center;padding:8px 16px 6px;display:flex;position:relative}.reader-top-left{z-index:1;align-items:center;gap:8px;display:flex;position:absolute;top:8px;left:16px}.reader-chrome-btn-group{background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid color-mix(in srgb, var(--line) 84%, transparent);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex}.reader-chrome-btn{color:var(--soft);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:background .16s,color .16s;display:flex}.reader-chrome-btn:hover:not(.active){color:var(--text);background:color-mix(in srgb, var(--panel) 60%, transparent)}.reader-chrome-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.reader-chrome-divider{background:color-mix(in srgb, var(--line) 70%, transparent);width:1px;height:16px;margin:0 4px}.reader-chrome-immersive-active{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);box-shadow:var(--shadow-sm)}.reader-primary-actions{gap:10px}.prose-reader-top>.reader-top-right{z-index:1;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:absolute;top:8px;right:16px}.reader-title{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.reader-title strong,.reader-title span{text-overflow:ellipsis;white-space:nowrap;max-width:min(50vw,600px);overflow:hidden}.reader-title strong{font-size:17px;font-weight:700}.reader-title span{color:var(--muted);font-size:14px}.reader-tools{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.reader-primary-actions .icon-action,.reader-top-right .icon-action,.reader-top-right .tool-pill,.reader-top-right .mode-toggle{box-shadow:none}.mode-toggle{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);white-space:nowrap;border-radius:999px;flex:none;display:inline-flex;overflow:hidden}.mode-toggle button{min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 12px}.mode-toggle button.active{background:var(--accent);color:var(--surface)}.mode-toggle button:hover:not(.active):not(:disabled){background:color-mix(in srgb, var(--panel) 50%, transparent);color:var(--text)}.mode-toggle-translation button{align-items:center;gap:6px;display:inline-flex}.page-jump-inline{flex:none;position:relative}.mobile-status-trigger{font-variant-numeric:tabular-nums;letter-spacing:.01em;width:auto;min-width:78px;padding:0 14px;font-weight:600}.reader-page-jump .mobile-status-trigger{justify-content:center}.reader-page-jump .prose-page-count{color:var(--text)}.reader-page-jump.open .mobile-status-trigger{border-color:var(--line-strong);background:color-mix(in srgb, var(--panel) 80%, transparent)}.page-jump-popover{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);min-width:164px;box-shadow:var(--shadow);z-index:18;align-items:center;gap:8px;padding:10px;display:none;position:absolute;top:calc(100% + 8px);right:0}.page-jump-inline.open .page-jump-popover{display:flex}.page-jump-popover input{width:72px;min-width:0;min-height:34px;margin:0}.page-jump-popover .ghost.small{min-width:56px}.reader-options-inline{display:block;position:relative}.reader-options-popover{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);min-width:220px;box-shadow:var(--shadow);z-index:18;padding:12px;display:none;position:absolute;top:calc(100% + 8px);right:0}.reader-options-inline.open .reader-options-popover{gap:12px;display:grid}.reader-options-group{gap:8px;display:grid}.reader-options-group-mobile-only{display:none}.reader-options-label{color:var(--muted);font-size:14px;font-weight:700}.reader-options-slider-row{align-items:center;gap:12px;display:flex}.reader-options-slider-row input[type=range]{height:4px;accent-color:var(--accent);cursor:pointer;flex:1}.reader-options-slider-value{text-align:right;min-width:40px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px}.reader-popover-action{justify-content:center;gap:8px;width:100%}.reader-notice-strip{justify-content:space-between;align-items:center;gap:10px;padding:0 16px 6px;display:flex}.reader-inline-notice{border:1px solid color-mix(in srgb, var(--warning) 30%, var(--line));background:color-mix(in srgb, var(--warning) 8%, var(--surface));min-height:36px;color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:15px;display:inline-flex}.reader-install-entry{margin-left:auto}.prose-toc,.reader-side-sheet{background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid color-mix(in srgb, var(--line) 84%, transparent);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px}.toc-panel{z-index:20;visibility:hidden;opacity:0;grid-template-rows:auto auto auto auto minmax(0,1fr);align-content:start;width:min(332px,100vw - 40px);padding:14px 14px 12px;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s,visibility .22s;display:grid;position:absolute;top:14px;bottom:14px;left:14px;overflow:hidden;transform:translate(calc(-100% - 18px))}.toc-open-local .toc-panel,.reader-side-panel.open{visibility:visible;opacity:1;transform:translate(0)}.toc-head,.reader-help-head,.reader-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.toc-head{margin-bottom:10px}.toc-head-copy{gap:2px;display:grid}.toc-eyebrow{color:var(--soft);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:700}.toc-progress-badge,.reader-panel-count{background:color-mix(in srgb, var(--panel) 72%, transparent);min-height:28px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:14px;font-weight:700;display:inline-flex}.toc-current-card,.reader-side-jump-card{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:color-mix(in srgb, var(--surface) 84%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface) 28%, transparent);border-radius:16px;gap:6px;padding:10px;display:grid}.toc-current-card{margin-bottom:10px}.toc-current-label{color:var(--soft);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:700}.toc-current-card strong,.reader-side-jump-card strong,.reader-panel-head strong,.reader-help-head strong{font-size:17px;font-weight:600;line-height:1.35}.toc-current-meta{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.toc-current-progress{background:color-mix(in srgb, var(--panel) 82%, transparent);border-radius:999px;height:5px;overflow:hidden}.toc-current-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 60%, var(--surface)));height:100%;display:block}.reader-side-jump-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.reader-side-jump-row input{min-width:0;margin:0}.reader-panel-switch{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px;padding:4px;display:inline-grid}.reader-panel-switch button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;font-size:15px;font-weight:700}.reader-panel-switch button.active{background:color-mix(in srgb, var(--panel) 82%, transparent);color:var(--text)}.reader-panel-switch button:hover:not(.active){background:color-mix(in srgb, var(--panel) 60%, transparent);color:var(--text)}.reader-bookmarks-panel{grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;margin-top:16px;display:grid;overflow:hidden}.reader-bookmarks-panel.collapsed{display:none}.reader-bookmarks-list,.reader-shortcuts-grid{gap:8px;display:grid}.reader-bookmarks-list{min-height:0;padding-right:4px;overflow:auto}.reader-bookmark-item{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:color-mix(in srgb, var(--surface) 84%, transparent);border-radius:16px;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:8px;width:100%;padding:10px;transition:background .14s,transform .14s,border-color .14s;display:grid}.reader-bookmark-item:hover{background:color-mix(in srgb, var(--panel) 88%, transparent);border-color:color-mix(in srgb, var(--line-strong) 66%, transparent);transform:translate(2px)}.reader-bookmark-jump{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:4px;padding:2px 4px;display:grid}.reader-bookmark-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.4;overflow:hidden}.reader-bookmark-item span,.reader-bookmark-item small,.reader-bookmarks-empty,.toc-empty{color:var(--muted)}.reader-bookmark-item small,.toc-empty,.reader-bookmarks-empty{font-size:15px}.reader-bookmark-delete{width:34px;height:34px;min-height:34px;color:var(--muted);box-shadow:none;border-radius:10px}.reader-bookmark-delete:hover{color:var(--danger)}.toc-list{gap:8px;min-height:0;padding-right:4px;display:grid;overflow:auto}.toc-panel .toc-item{width:100%;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:16px;grid-template-columns:1fr;gap:6px;padding:12px 14px;line-height:1.45;transition:background .14s,color .14s,transform .14s,box-shadow .14s;display:grid}.toc-panel .toc-item strong{min-width:0;font-size:16px;font-weight:500}.toc-panel .toc-item.active{color:var(--accent);background:color-mix(in srgb, var(--panel) 74%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent)}.toc-panel .toc-item.active strong{font-weight:700}.toc-panel .toc-item:hover{color:var(--text);background:color-mix(in srgb, var(--panel) 88%, transparent);transform:translate(2px)}.reader-side-sheet{z-index:21;width:min(344px,100vw - 40px);max-height:calc(100% - 28px);padding:18px 16px;position:absolute;top:14px;right:14px;overflow:hidden}.reader-help-panel{grid-template-rows:auto minmax(0,1fr);gap:14px;display:grid}.reader-study-panel{z-index:21;opacity:0;visibility:hidden;width:min(392px,100vw - 40px);transition:opacity .22s,transform .22s cubic-bezier(.22,1,.36,1),visibility .22s;position:absolute;top:14px;bottom:14px;right:14px;overflow:hidden;transform:translate(18px)}.reader-study-panel.open{opacity:1;visibility:visible;transform:translate(0)}.reader-shortcuts-grid{min-height:0;padding-right:4px;overflow:auto}.reader-shortcut-row{border:1px solid color-mix(in srgb, var(--line) 74%, transparent);background:color-mix(in srgb, var(--surface) 84%, transparent);border-radius:14px;grid-template-columns:minmax(72px,auto) 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.reader-shortcut-row span{color:var(--text);font-size:15px}.reader-shortcut-row kbd{border:1px solid color-mix(in srgb, var(--line-strong) 52%, transparent);background:color-mix(in srgb, var(--panel) 78%, transparent);min-height:30px;color:var(--text);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:0 10px;font-family:inherit;font-size:14px;font-weight:700;display:inline-flex}.prose-reader-page{min-width:0;height:100%;min-height:0;font-family:var(--reader-chinese-font-family), var(--reader-english-font-family);font-weight:var(--reader-font-weight,400);font-size:var(--reader-font-size);line-height:var(--reader-line-height);background:0 0;flex-direction:column;padding:0 12px;display:flex;position:relative;overflow:hidden}@media (width>=1200px){.prose-reader-page{padding:0 8px}}.prose-engine-host{opacity:0;contain:paint;background:0 0;flex:1;width:100%;max-width:100%;min-height:0;margin:0 auto;transition:opacity 80ms;overflow:hidden}.prose-engine-host.ready{opacity:1}.prose-engine-host.turning{isolation:isolate;transition:none}.paginated-single .prose-engine-host{width:min(var(--reader-single-width), calc(100vw - 280px))}.paginated-double .prose-engine-host{width:min(var(--reader-double-width), calc(100vw - 240px))}.reader-block-engine .prose-engine-host{width:100%!important;max-width:100%!important}.prose-engine-host [class*=prose-reader-enhancer-loading]{display:none!important}.prose-engine-host [data-prose-reader-scroll-navigator]{width:100%;height:100%;position:relative;overflow:hidden;background:var(--bg)!important;display:block!important}.prose-engine-host [data-prose-reader-viewport]{width:100%;height:100%;position:relative;overflow:hidden}.prose-engine-host [data-prose-reader-spine-item],.prose-engine-host [data-prose-reader-container]{background-color:var(--bg)!important}.prose-engine-host .prose-reader-controlled-navigator,.prose-engine-host iframe{backface-visibility:hidden;background-color:var(--bg)!important}.page-hotzone{z-index:4;cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:min(76px,9vw);transition:background .12s,opacity .12s;position:absolute;top:12px;bottom:28px}.page-hotzone-left{left:0}.page-hotzone-right{right:0}.page-hotzone:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--panel) 11%, transparent), transparent 66%)}.page-hotzone-right:hover{background:linear-gradient(270deg, color-mix(in srgb, var(--panel) 11%, transparent), transparent 66%)}.page-hotzone.flash{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 56%)}.page-hotzone-right.flash{background:linear-gradient(270deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 56%)}.page-hotzone:disabled{cursor:wait;opacity:.4}.reader-interacting .page-hotzone,.reader-translation-refreshing .page-hotzone{pointer-events:none}.reader-refresh-mask{z-index:18;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:var(--text);text-align:center;pointer-events:auto;place-content:center;gap:4px;display:grid;position:absolute;inset:0}.reader-refresh-mask span{font-size:15px;font-weight:700}.reader-refresh-mask small{color:var(--muted);font-size:12px}.reader-translation-chip{z-index:17;border:1px solid color-mix(in srgb, var(--line) 74%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;border-radius:999px;padding:7px 11px;font-size:12px;position:absolute;bottom:18px;right:18px;box-shadow:0 8px 24px #0000001a}.reader-hotzone-hint{z-index:6;border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;cursor:pointer;border-radius:999px;gap:2px;min-width:min(300px,100vw - 56px);padding:9px 13px;display:grid;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #0000001a}.reader-hotzone-hint span{font-size:15px;font-weight:600}.reader-hotzone-hint small{color:var(--muted);font-size:12px;line-height:1.4}.reader-reading-progress{z-index:19;pointer-events:none;background:color-mix(in srgb, var(--line) 36%, transparent);height:2px;position:absolute;bottom:0;left:0;right:0}.reader-reading-progress span{background:color-mix(in srgb, var(--accent) 74%, var(--text) 6%);width:0;height:100%;transition:width .18s;display:block}.prose-page-count{min-width:74px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;font-size:14px}.reader-highlight{text-decoration:underline;-webkit-text-decoration-color:var(--warning);text-decoration-color:var(--warning);text-underline-offset:3px;cursor:pointer;background:0 0;padding:0 .08em;text-decoration-thickness:2px}[data-highlight-container]{background:0 0!important;border:none!important;width:auto!important;height:auto!important}[data-highlight-container]>div{opacity:1!important;border-bottom:2px solid var(--warning)!important;background:0 0!important}.selection-toolbar{z-index:22;border:1px solid color-mix(in srgb, var(--line-strong) 70%, transparent);background:color-mix(in srgb, var(--text) 92%, transparent);width:max-content;min-height:40px;color:var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;justify-content:center;align-items:center;gap:1px;padding:3px;display:inline-flex;position:fixed}.selection-toolbar button{min-height:34px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:0 12px;transition:background .14s;display:inline-flex}.selection-toolbar button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, transparent)}.selection-toolbar button:disabled{opacity:.42;cursor:not-allowed}.word-lookup-popup{z-index:24;border:1px solid color-mix(in srgb, var(--line-strong) 60%, transparent);background:var(--surface);width:280px;max-width:calc(100vw - 24px);color:var(--text);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;padding:14px;font-size:14px;line-height:1.5;position:fixed}.word-lookup-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.word-lookup-word{letter-spacing:.01em;font-size:17px;font-weight:600}.word-lookup-actions{gap:2px;display:flex}.word-lookup-icon-btn{width:28px;height:28px;color:var(--text-muted,color-mix(in srgb, var(--text) 60%, transparent));cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .12s;display:inline-flex}.word-lookup-icon-btn:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.word-lookup-phonetic{color:var(--text-muted,color-mix(in srgb, var(--text) 55%, transparent));margin-top:4px;font-family:Lucida Sans Unicode,DejaVu Sans,sans-serif;font-size:13px}.word-lookup-source{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text-muted,color-mix(in srgb, var(--text) 60%, transparent));border-radius:999px;margin-top:8px;padding:2px 8px;font-size:11px;display:inline-flex}.word-lookup-meanings{margin:10px 0 0;padding:0;list-style:none}.word-lookup-meanings li{padding:3px 0 3px 16px;position:relative}.word-lookup-meanings li:before{content:"";background:color-mix(in srgb, var(--accent) 50%, transparent);border-radius:50%;width:5px;height:5px;position:absolute;top:11px;left:2px}.word-lookup-loading,.word-lookup-empty{color:var(--text-muted,color-mix(in srgb, var(--text) 55%, transparent));align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.word-lookup-status{margin-top:10px}.word-status-badge{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.word-status-badge.status-known{color:#16a34a;background:#22c55e26}.word-status-badge.status-learning{color:#b45309;background:#f59e0b26}.word-lookup-add-btn{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);width:100%;color:var(--accent);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:4px;margin-top:10px;padding:7px 0;font-size:13px;font-weight:500;transition:background .12s;display:flex}.word-lookup-add-btn:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.reader-mobile-dock{left:50%;right:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:18;border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.05);backdrop-filter:blur(20px)saturate(1.05);border-radius:20px;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:min(420px,100vw - 24px);padding:7px;transition:opacity .16s,transform .2s;display:none;position:absolute;box-shadow:0 18px 42px #00000024}.reader-mobile-dock button{min-height:46px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:15px;place-items:center;gap:3px;padding:6px 3px;font-size:12px;font-weight:700;transition:background .12s,color .12s,transform .12s;display:grid}.reader-mobile-dock button.active{background:color-mix(in srgb, var(--panel) 78%, transparent);color:var(--text)}.reader-mobile-dock button:active{background:color-mix(in srgb, var(--panel) 68%, transparent);transform:translateY(1px)}.reader-mobile-dock .mobile-dock-page{font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.study-workspace-sheet{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;gap:12px;min-width:0;height:100%;padding:18px 16px;display:flex;overflow:hidden auto}.study-workspace-sheet>*{min-width:0}.study-workspace-sheet h3{color:var(--muted);letter-spacing:.04em;margin:4px 0 -2px;font-size:14px;font-weight:700;line-height:1.35}.study-workspace-sheet p{overflow-wrap:anywhere;margin:0;line-height:1.72}.study-workspace-sheet textarea{resize:vertical;margin:0}.study-workspace-sheet .selected-quote{overflow-wrap:anywhere;border-left:3px solid var(--accent);background:color-mix(in srgb, var(--panel) 72%, transparent);border-radius:0 8px 8px 0;max-height:min(180px,30dvh);margin:0;padding:10px 12px;line-height:1.62;overflow:auto}.study-sheet-headline{gap:6px;display:grid}.study-workspace-summary{gap:8px;display:grid}.study-workspace-summary>div{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);min-height:40px;color:var(--muted);border-radius:14px;align-items:center;gap:8px;padding:10px 12px;font-size:15px;line-height:1.35;display:inline-flex}.study-workspace-summary span{overflow-wrap:anywhere;min-width:0}.study-workspace-rail{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--panel) 68%, var(--surface));border-radius:16px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex}.study-workspace-rail>button{flex-shrink:0}.study-rail-copy{gap:6px;min-width:0;display:grid}.study-rail-copy strong{overflow-wrap:anywhere;font-size:16px;line-height:1.4}.study-rail-copy span{color:var(--muted);overflow-wrap:anywhere;font-size:15px;line-height:1.6}.study-sheet-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.candidate-stack{gap:10px;display:grid}.candidate-card{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:16px;grid-template-columns:20px minmax(0,1fr);gap:10px;min-width:0;padding:14px;transition:border-color .14s,background-color .14s;display:grid}.candidate-card.selected{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--accent) 4%, var(--surface))}.candidate-checkbox{align-items:flex-start;padding-top:2px;display:flex}.candidate-search{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;display:flex}.candidate-search svg{color:var(--soft);flex-shrink:0}.candidate-search input{background:0 0;border:0;flex:1;min-height:28px;margin:0;padding:0;font-size:15px}.candidate-search input:focus{box-shadow:none}.candidate-search-count{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:600}.candidate-select-all{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.candidate-batch-bar{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:15px;font-weight:600;display:flex}.candidate-type{letter-spacing:.02em;border-radius:6px;align-items:center;padding:1px 6px;font-size:13px;font-weight:600;display:inline-flex}.candidate-type-word{color:#3b82f6;background:#3b82f61f}.candidate-type-phrase{color:#8b5cf6;background:#8b5cf61f}.candidate-type-term{color:#b45309;background:#f59e0b1f}.candidate-type-idiom{color:#047857;background:#10b9811f}:root[data-theme=dark] .candidate-type-word,:root[data-theme=claude-dark] .candidate-type-word,:root[data-theme=claude-grey] .candidate-type-word{color:#93c5fd;background:#60a5fa2e}:root[data-theme=dark] .candidate-type-phrase,:root[data-theme=claude-dark] .candidate-type-phrase,:root[data-theme=claude-grey] .candidate-type-phrase{color:#c4b5fd;background:#a78bfa2e}:root[data-theme=dark] .candidate-type-term,:root[data-theme=claude-dark] .candidate-type-term,:root[data-theme=claude-grey] .candidate-type-term{color:#fcd34d;background:#fbbf242e}:root[data-theme=dark] .candidate-type-idiom,:root[data-theme=claude-dark] .candidate-type-idiom,:root[data-theme=claude-grey] .candidate-type-idiom{color:#6ee7b7;background:#34d3992e}.candidate-copy{grid-column:2;gap:5px;min-width:0;display:grid}.candidate-copy strong{overflow-wrap:anywhere;font-size:18px;line-height:1.35}.candidate-copy span,.candidate-copy em{color:var(--muted);overflow-wrap:anywhere;font-size:15px;font-style:normal;line-height:1.55}.candidate-copy em{line-height:1.6}.candidate-copy p{color:var(--muted);margin:2px 0 0;font-size:15px;line-height:1.6}.candidate-actions,.study-note-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.candidate-card .candidate-actions{grid-column:2}.candidate-actions button,.study-note-actions button{min-width:max-content}.bilingual-translation{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--panel) 72%, transparent);color:var(--text);margin-top:.65em;padding:10px 12px}.bilingual-translation>span{color:var(--muted);margin-bottom:4px;font-size:14px;font-weight:700;display:block}.bilingual-translation p{margin:0;font-size:.9em;line-height:1.7}.iread-bilingual-unit,[data-iread-has-translation="1"],.iread-inline-translation{display:block}@media (width>=769px){.prose-reader-shell .reader-tools>*{flex-shrink:0}}@media (width<=860px){.reader-shell{grid-template-rows:minmax(0,1fr)}.reader-chrome{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border-bottom:0;position:absolute;inset:0 0 auto}.reader-chrome>*{pointer-events:auto}.reader-mobile-back{top:calc(12px + env(safe-area-inset-top,0px));z-index:20;border:1px solid color-mix(in srgb, var(--line) 80%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;transition:opacity .18s,transform .22s;display:grid;position:absolute;left:12px}.reader-chrome:not(.visible) .reader-mobile-back{opacity:0;pointer-events:none;transform:translateY(-8px)}.prose-reader-top{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;padding:12px 12px 0;display:grid}.reader-top-left,.reader-title,.reader-notice-strip{display:none}.prose-reader-top>.reader-top-right{justify-content:space-between;width:100%;position:static}.reader-tools{justify-content:space-between;gap:8px;width:100%}.reader-tools .page-jump-inline,.reader-tools .add-bookmark-entry,.reader-tools .mode-toggle,.reader-tools .reader-options-inline{display:none}.reader-tools>.icon-action,.reader-tools>.reader-options-inline>.icon-action{min-height:44px}.reader-options-group-mobile-only{display:grid}.prose-reader-page{padding:52px 0 78px}.paginated-single .prose-engine-host,.paginated-double .prose-engine-host,.prose-engine-host{width:100%;box-shadow:none;background:0 0;border-inline:0}.reader-side-sheet,.reader-study-panel{top:auto;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--surface) 96%, transparent);width:auto;max-height:min(58dvh,560px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px;position:absolute}.reader-study-panel{transition:opacity .22s,transform .32s cubic-bezier(.34,1.56,.64,1),visibility .22s;right:12px;transform:translateY(32px)}.reader-study-panel.open{transform:translateY(0)}.study-workspace-rail{flex-direction:column}.study-workspace-rail>button{width:100%}.candidate-actions,.study-note-actions{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.candidate-actions button,.study-note-actions button{width:100%;min-width:0}.toc-panel{left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));bottom:calc(102px + env(safe-area-inset-bottom,0px));width:auto;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s,visibility .2s;transform:translateY(32px)}.toc-open-local .toc-panel,.reader-side-panel.open{transform:translateY(0)}.reader-mobile-sheet{gap:14px;padding:18px 16px;display:grid;overflow:auto}.reader-mobile-options-sheet{max-height:min(54dvh,520px)}.reader-mobile-sheet .page-jump-popover,.reader-mobile-sheet .reader-options-popover{min-width:0;box-shadow:none;border-radius:18px;position:static;top:auto;right:auto}.reader-mobile-sheet .page-jump-popover.mobile-open{border:1px solid color-mix(in srgb, var(--line) 88%, transparent);background:color-mix(in srgb, var(--surface) 94%, transparent);grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;display:grid}.reader-mobile-sheet .reader-options-popover.mobile-open{background:0 0;border:0;gap:12px;padding:0;display:grid}.reader-mobile-segmented{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.reader-mobile-segmented button{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);min-height:46px;color:var(--muted);border-radius:16px;font-weight:700}.reader-mobile-segmented button.active{border-color:color-mix(in srgb, var(--accent) 44%, transparent);background:color-mix(in srgb, var(--panel) 86%, transparent);color:var(--text)}.reader-mobile-dock{opacity:0;pointer-events:none;transition:opacity .18s,transform .24s cubic-bezier(.2,.8,.2,1);display:grid;transform:translate(-50%,24px)}.reader-mobile-dock.visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.reader-search-panel{z-index:25;border-left:0;width:auto;inset:0}.page-hotzone{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.reader-skeleton{background:var(--bg);grid-template-rows:auto 1fr;height:100%;animation:.2s fade-in;display:grid}.reader-skeleton-chrome{border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.reader-skeleton-btn{border-radius:10px;flex-shrink:0;width:36px;height:36px}.reader-skeleton-title{border-radius:8px;flex:1;max-width:280px;height:20px}.reader-skeleton-content{flex-direction:column;gap:14px;max-width:min(720px,80%);margin:48px auto 0;padding:0 20px;display:flex}.reader-skeleton-line{border-radius:8px;height:16px}.reader-search-panel{background:var(--surface);border-left:1px solid var(--line);z-index:40;flex-direction:column;width:340px;max-height:100%;display:flex;position:absolute;top:0;right:0;box-shadow:-4px 0 16px #0000000f}.reader-search-header{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px;display:flex}.reader-search-input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;outline:none;flex:1;padding:6px 10px;font-size:14px}.reader-search-input:focus{border-color:var(--accent)}.reader-search-results{flex:1;padding:8px 0;overflow-y:auto}.reader-search-status{color:var(--muted);align-items:center;gap:6px;padding:8px 16px;font-size:12px;display:flex}.reader-search-result-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;flex-direction:column;gap:2px;padding:8px 16px;font-size:13px;line-height:1.5;display:flex}.reader-search-result-item:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.reader-search-chapter{color:var(--muted);font-size:11px}.reader-search-snippet{color:var(--text)}.reader-search-snippet mark{color:inherit;background:#ffdc5066;border-radius:2px;padding:0 2px}.dialog-overlay{z-index:50;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:.2s ease-out overlay-fade-in;position:fixed;inset:0}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-slide-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.dialog-content{z-index:51;border:1px solid color-mix(in srgb, var(--line) 84%, transparent);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), color-mix(in srgb, var(--surface) 96%, transparent)), radial-gradient(ellipse at top left, color-mix(in srgb, var(--panel) 30%, transparent), transparent 50%);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);width:min(460px,100vw - 32px);padding:26px;animation:.28s cubic-bezier(.22,1,.36,1) dialog-slide-in;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 64px #0000002e}.dialog-content h2,.dialog-content [data-radix-dialog-title]{letter-spacing:-.02em;margin:0 0 14px;font-size:22px;font-weight:700}.highlight-dialog p{color:var(--muted);margin:0 0 12px;font-size:16px;line-height:1.55}.highlight-dialog textarea{min-height:112px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.sheet{z-index:32;border:1px solid color-mix(in srgb, var(--line) 84%, transparent);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 99%, transparent), color-mix(in srgb, var(--surface) 96%, transparent)), radial-gradient(ellipse at top right, color-mix(in srgb, var(--panel) 30%, transparent), transparent 50%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:min(460px,100vw - 36px);max-height:min(680px,100vh - 140px);padding:22px;animation:.3s cubic-bezier(.22,1,.36,1) sheet-slide-up;position:absolute;bottom:62px;right:18px;overflow:auto;box-shadow:0 20px 48px #00000024}@keyframes sheet-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-sheet{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 24px 64px #0000002e}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sheet-head strong{letter-spacing:-.01em;font-size:18px;font-weight:700}.sheet h3{color:var(--muted);margin:18px 0 8px;font-size:15px;font-weight:600;line-height:1.2}.sheet p{line-height:1.65}.selected-quote{border-left:3px solid var(--accent);border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:color-mix(in srgb, var(--panel) 70%, transparent);padding:12px;line-height:1.6}.note-line{border-left:1px solid var(--line-strong);padding-left:10px}.candidate-list{flex-wrap:wrap;gap:8px;display:flex}.candidate-list span{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);background:color-mix(in srgb, var(--panel) 84%, transparent);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:500;display:inline-flex}.candidate-list em{font-style:normal}.candidate-list button{border:1px solid color-mix(in srgb, var(--line) 86%, transparent);border-radius:var(--radius-xs);background:color-mix(in srgb, var(--surface) 94%, transparent);min-height:24px;padding:0 8px}@media (width<=980px){.page-workspace,.library-hero-grid,.toolbox-grid,.stats-overview-grid,.next-step-grid,.login-stage,.login-steps,.vocabulary-overview-grid,.review-rail-grid,.review-stage{grid-template-columns:1fr}.current-reading-shell{grid-template-columns:120px minmax(0,1fr)}.workspace-nav{grid-template-columns:repeat(4,minmax(0,1fr));position:static}.workspace-nav button{min-height:56px}.workspace-nav button span{display:none}}@media (width<=860px){.nav{display:none}.page{width:100%;padding:22px 20px 96px}.page-header{flex-direction:column;align-items:stretch;gap:16px;min-height:auto}.page-header-copy h1{font-size:32px}.page-header-actions{justify-content:flex-start;width:100%}.workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-metrics-grid,.stats-mini-grid,.stats-overview-meta,.current-reading-detail-grid,.settings-two-column,.review-actions,.summary-grid,.admin-user-form,.admin-user-edit,.word-edit-grid,.summary-grid-colored{grid-template-columns:1fr 1fr}.summary-accuracy-ring{text-align:center;flex-direction:column;gap:16px}.accuracy-text{text-align:center;justify-items:center}.theme-picker{grid-template-columns:repeat(2,1fr)}.library-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.queue-item,.book-time-row{align-items:flex-start}.book-time-row{flex-direction:column;align-items:stretch;gap:12px}.book-time-row>div:last-child{text-align:left;flex-direction:row;align-items:flex-start;gap:12px}.book-progress-ring{width:36px;height:36px}.book-card-compact{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:14px}.user-row,.user-row.editing{grid-template-columns:1fr;align-items:stretch}.admin-user-actions,.row-actions,.toolbox-actions{justify-content:flex-start}.vocabulary-stage-callout{flex-direction:column}.word-row{grid-template-columns:22px 1fr;gap:12px}.word-row .row-actions{grid-column:2}.sheet{width:auto;bottom:58px;left:8px;right:8px}.modal-sheet{width:calc(100vw - 16px);top:50%;bottom:auto}}@media (width<=640px){.workspace-nav,.overview-metrics-grid,.stats-mini-grid,.stats-overview-meta,.current-reading-detail-grid,.settings-two-column,.admin-user-form,.admin-user-edit,.word-edit-grid,.summary-grid,.library-collection-grid{grid-template-columns:1fr}.section-card-body{padding:16px}.book-card-compact{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px}.review-actions{grid-template-columns:1fr 1fr}.word-row .row-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.word-row .row-actions button{justify-content:center;width:100%;min-width:0}.current-reading-shell{grid-template-columns:1fr}.current-reading-cover{aspect-ratio:.76;width:min(180px,50vw);height:auto}.queue-item{grid-template-columns:52px minmax(0,1fr)}.queue-item-progress{text-align:left;grid-column:2}.toolbar,.page-header-actions,.current-reading-actions,.toolbox-actions,.row-actions{flex-direction:column;align-items:stretch}.toolbar .field-search,.toolbar .field-inline{width:100%;min-width:0}.review-page{padding:12px}.review-topbar{gap:8px}.review-card{padding:20px 16px}.review-word-block{margin-bottom:20px}.rating-button{border-radius:14px;gap:3px;min-height:64px}.rating-button strong{font-size:15px}.spelling-input-row input{min-height:64px;font-size:clamp(28px,6vw,40px)}.login-wrap{padding:14px}.login-story,.login-panel{padding:22px}.journey-empty{padding:26px 22px}.example-empty{flex-direction:column;align-items:flex-start}.ai-provider-grid{grid-template-columns:repeat(2,1fr)}}
