:root{--color-primary-rgb:31, 122, 107;--color-success-rgb:31, 122, 85;--color-primary:#1f7a6b;--color-primary-hover:#176154;--color-primary-active:#0f4a40;--color-primary-tint:#e4f1ed;--color-primary-tint-strong:#c9e6df;--color-bg:#faf9f7;--color-surface:#fff;--color-surface-2:#f3f1ed;--color-surface-3:#eae7e2;--color-border:#e6e2dc;--color-border-strong:#d6d1c9;--color-text-primary:#211f1c;--color-text-secondary:#5f5a54;--color-text-tertiary:#908a82;--color-text-on-accent:#fff;--color-success:#1f7a55;--color-success-tint:#e2f2e8;--color-danger:#c0473c;--color-danger-hover:#a53a30;--color-danger-tint:#f7e3e0;--color-danger-text:#c0473c;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", sans-serif;--font-mono:"SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.375rem;--leading-tight:1.25;--leading-normal:1.6;--leading-relaxed:1.7;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-display:-.02em;--tracking-heading:-.01em;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-base:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-1:var(--space-xs);--space-2:var(--space-sm);--space-3:var(--space-md);--space-4:var(--space-base);--space-5:var(--space-lg);--space-6:var(--space-xl);--space-7:var(--space-2xl);--space-8:var(--space-3xl);--space-10:5rem;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:9999px;--progress-size:72px;--progress-stroke:8px;--progress-bar-height:8px;--shadow-sm:0 1px 3px #211f1c0f;--shadow-md:0 4px 14px #211f1c14;--shadow-lg:0 8px 28px #211f1c1c;--z-sticky:100;--z-dropdown:200;--z-modal:300;--z-toast:400;--motion-fast:.1s;--motion-base:.18s;--motion-slow:.3s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--toast-duration:2.6s;--container-max:960px;--reading-measure:700px;--gutter:24px;--color-muted:var(--color-text-tertiary);--color-nav-bg:#faf9f7db;--color-success-text:#157a4f;--color-primary-text:#176554;--kbd-on-accent-border:#ffffff73;--kbd-on-accent-bg:#ffffff2e;--kbd-on-accent-text:#fff;--color-primary-tint-rgb:228, 241, 237;--color-info:#3b82f6;--color-info-text:#2563eb;--color-info-tint:#dbeafe;--et-prefix-bg:#e3f2fd;--et-prefix-text:#1565c0;--et-root-bg:#fff3e0;--et-root-text:#e65100;--et-suffix-bg:#e8f5e9;--et-suffix-text:#2e7d32;--cloud-new:#7a6b5d;--cloud-learning-1:#3a8b7c;--cloud-learning-2:#1f7a6b;--cloud-learning-3:#1d9364;--cloud-mastered:#c4960a;--cloud-mastered-glow:#d4af3773;--cloud-hover-shadow:#0000001f;--stats-kpi-gradient:linear-gradient(135deg, #e8f5f0 0%, #f5f0e8 100%);--stats-panel-bg:#fdfcfa;--stats-chart-accent:#1d9364;--stats-panel-divider:var(--color-border);--stats-srs-lv0:#94a3b8;--stats-srs-lv1:#6792d7;--stats-srs-lv2:#3b82f6;--stats-srs-lv3:#259dbb;--stats-srs-lv4:#10b981;--stats-srs-lv5:#82ab46;--stats-srs-lv6:#f59e0b;--color-card-bg:#fdfcfa;--font-weight-label:510;--color-warning-bg:#fff8e1;--color-warning-border:#ffe082;--color-warning-text:#795548;--color-warning-accent:#f9a825;--color-warning-accent-hover:#f57f17;--color-warning-tint:#ffaa001f;--color-diff-easy-bg:var(--color-success-tint);--color-diff-easy-text:var(--color-success-text);--color-diff-medium-bg:#fff3e0;--color-diff-medium-text:var(--color-warning-text);--color-diff-hard-bg:var(--color-danger-tint);--color-diff-hard-text:var(--color-danger);--color-ai-connected:#22c55e;--color-ai-error:#ef4444;--color-ai-warning:#f59e0b;--srs-lv0:#94a3b8;--srs-lv1:#93c5fd;--srs-lv2:#60a5fa;--srs-lv3:#34d399;--srs-lv4:#fbbf24;--srs-lv5:#f59e0b;--srs-lv6:#10b981;--text-letter-spacing-title:var(--tracking-display);--text-letter-spacing-heading:var(--tracking-heading);--text-letter-spacing-display:var(--tracking-display)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary-rgb:47, 168, 144;--color-success-rgb:61, 169, 140;--color-primary:#2fa890;--color-primary-hover:#3fb9a6;--color-primary-active:#259079;--color-primary-tint:#143029;--color-primary-tint-strong:#2fa890;--color-bg:#16140f;--color-surface:#1e1c17;--color-surface-2:#2a2722;--color-surface-3:#36322b;--color-border:#322e27;--color-border-strong:#443f36;--color-text-primary:#f1eee8;--color-text-secondary:#b5afa6;--color-text-tertiary:#8a847b;--color-text-on-accent:#16140f;--color-success:#3da98c;--color-success-tint:#15302a;--color-danger:#e06b5e;--color-danger-hover:#ea7e73;--color-danger-tint:#3a201c;--color-nav-bg:#16140fdb;--color-success-text:#3da98c;--color-danger-text:#e06b5e;--color-primary-text:#2fa890;--kbd-on-accent-border:#16140f59;--kbd-on-accent-bg:#16140f24;--kbd-on-accent-text:#16140f;--color-primary-tint-rgb:30, 60, 50;--color-info:#60a5fa;--color-info-tint:#1e3a5f;--et-prefix-bg:#1a3a5c;--et-prefix-text:#90caf9;--et-root-bg:#3e2723;--et-root-text:#ffcc80;--et-suffix-bg:#1b3d2b;--et-suffix-text:#a5d6a7;--cloud-new:#8a847b;--cloud-learning-1:#3fb9a6;--cloud-learning-2:#2fa890;--cloud-learning-3:#4cc9a8;--cloud-mastered:#e8c547;--cloud-mastered-glow:#e8c54766;--cloud-hover-shadow:#ffffff0f;--stats-kpi-gradient:linear-gradient(135deg, #1a2a28 0%, #2a2420 100%);--stats-panel-bg:#1e1c17;--stats-chart-accent:#4cc9a8;--stats-panel-divider:#322e27;--stats-srs-lv0:#64748b;--stats-srs-lv1:#93b4f5;--stats-srs-lv2:#60a5fa;--stats-srs-lv3:#38bdf8;--stats-srs-lv4:#34d399;--stats-srs-lv5:#a3e635;--stats-srs-lv6:#fbbf24;--color-card-bg:var(--color-surface);--color-info-text:#60a5fa;--color-warning-bg:#3e3518;--color-warning-border:#6d5b1c;--color-warning-text:#ffe082;--color-warning-accent:#f9a825;--color-warning-accent-hover:#f57f17;--color-warning-tint:#ffaa0026;--color-diff-medium-bg:#3e2723;--color-diff-medium-text:#ffcc80;--color-ai-connected:#4ade80;--color-ai-error:#f87171;--color-ai-warning:#fbbf24;--shadow-sm:0 1px 3px #00000052;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 8px 28px #0000008c}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-base:0s;--motion-slow:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.theme-transition,.theme-transition :not(.toast):not(.toast *){transition:background-color var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard)!important}[data-ui-style=glass]{--glass-decorative-alpha:.4;--glass-decorative-bg:rgba(255, 255, 255, var(--glass-decorative-alpha));--glass-decorative-blur:blur(16px);--glass-decorative-border:#ffffff40;--glass-decorative-shadow:0 8px 32px #0000000a;--glass-content-bg:#ffffffe6;--glass-content-border:#fff6;--color-bg:transparent;--color-surface:var(--glass-decorative-bg);--color-surface-2:#ffffff40;--color-surface-3:#ffffff2e;--color-border:#ffffff4d;--color-border-strong:#ffffff73;--shadow-xs:0 1px 2px #00000008;--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 16px #0000000d;--shadow-lg:0 8px 32px #0000000f;--color-nav-bg:var(--glass-decorative-bg);--color-card-bg:var(--glass-decorative-bg);--glass-text-shadow:0 1px 2px #ffffff80;--stats-kpi-gradient:linear-gradient(135deg, #e8f5f08c, #f5f0e88c);--stats-panel-bg:var(--glass-decorative-bg);--stats-chart-accent:#1d9364;--stats-panel-divider:#ffffff4d;background:linear-gradient(135deg,#e8f5f0 0%,#f5f0e8 50%,#f0e8f0 100%) fixed}[data-theme=dark][data-ui-style=glass]{--glass-decorative-alpha:.4;--glass-decorative-bg:rgba(44, 44, 46, var(--glass-decorative-alpha));--glass-decorative-border:#ffffff1a;--glass-decorative-shadow:0 8px 32px #00000026;--glass-content-bg:#2c2c2ed9;--glass-content-border:#ffffff1f;--color-bg:transparent;--color-surface:var(--glass-decorative-bg);--color-surface-2:#2c2c2e40;--color-surface-3:#2c2c2e26;--color-border:#ffffff1f;--color-border-strong:#ffffff2e;--shadow-xs:0 1px 2px #00000014;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 16px #00000024;--shadow-lg:0 8px 32px #0000002e;--color-nav-bg:var(--glass-decorative-bg);--color-card-bg:var(--glass-decorative-bg);--stats-kpi-gradient:linear-gradient(135deg, #1a2a288c, #2a24208c);--stats-panel-bg:var(--glass-decorative-bg);--stats-chart-accent:#4cc9a8;--stats-panel-divider:#ffffff1f;background:linear-gradient(135deg,#1a2a28 0%,#2a2420 50%,#24202a 100%) fixed}.glass-transition,.glass-transition *{transition:background var(--motion-base) var(--ease-standard), backdrop-filter var(--motion-base) var(--ease-standard), -webkit-backdrop-filter var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard)!important}.glass-decorative{background:var(--glass-decorative-bg,var(--color-surface));-webkit-backdrop-filter:var(--glass-decorative-blur,none);border:1px solid var(--glass-decorative-border,var(--color-border));box-shadow:var(--glass-decorative-shadow,var(--shadow-md))}.glass-content-plate{background:var(--glass-content-bg,var(--color-surface))}[data-ui-style=glass] .vocab-row__inner.glass-content-plate{border-radius:var(--radius-sm);box-shadow:0 0 8px 2px var(--glass-content-bg)}[data-ui-style=glass] .glass-decorative{transition:box-shadow var(--motion-base) var(--ease-standard)}[data-ui-style=glass] .glass-decorative:hover{box-shadow:var(--glass-decorative-shadow), inset 0 1px 0 #ffffff1f}[data-theme=dark][data-ui-style=glass] .glass-decorative:hover{box-shadow:var(--glass-decorative-shadow), inset 0 1px 0 #ffffff0f}.glass-surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:transform var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard)}.glass-surface:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}[data-ui-style=glass] .glass-surface{-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border-color:#ffffff4d}[data-ui-style=glass] .glass-surface:hover{background:#ffffffc7;transform:translateY(-2px);box-shadow:0 8px 32px #0000000f}[data-theme=dark][data-ui-style=glass] .glass-surface{background:#1e1e23a6;border-color:#ffffff0f}[data-theme=dark][data-ui-style=glass] .glass-surface:hover{background:#1e1e23bf;box-shadow:0 8px 32px #00000040}[data-theme=dark] .glass-surface{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .glass-surface:hover{box-shadow:var(--shadow-lg)}*,:before,:after{box-sizing:border-box}::selection{background:rgba(var(--color-primary-rgb), .18);color:var(--color-text-primary)}html{scroll-behavior:smooth;margin:0;padding:0}body{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text-primary);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit}a{color:var(--color-primary-text);text-decoration:none}a:hover{color:var(--color-primary-hover)}h1,h2,h3,h4{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--color-text-primary);margin:0}h1{font-size:var(--text-3xl);letter-spacing:var(--tracking-display)}h2{font-size:var(--text-2xl);letter-spacing:var(--tracking-heading)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0}:focus-visible{box-shadow:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-primary);border-radius:var(--radius-sm);outline:none}.container{max-width:var(--container-max);padding:0 var(--gutter);margin:0 auto}.view{padding:var(--space-xl) 0 var(--space-3xl)}.view--fullscreen{max-width:100%;padding:0}@media (max-width:600px){.view{padding:var(--space-lg) 0 var(--space-2xl)}.container{padding:0 var(--space-base)}}.view--with-fixed-bottom{padding-bottom:120px}.page-enter-active{transition:opacity .28s ease-out,transform .28s ease-out}.page-leave-active{transition:opacity .2s ease-in,transform .2s ease-in}.page-enter-from{opacity:0;transform:translateY(14px)}.page-leave-to{opacity:0;transform:translateY(-6px)}@media (prefers-reduced-motion:reduce){.page-enter-active,.page-leave-active{transition:none}.page-enter-from,.page-leave-to{transform:none}}.app-nav{z-index:var(--z-sticky);background:var(--color-nav-bg);-webkit-backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid var(--color-border);position:sticky;top:0;transform:translateZ(0)}.app-nav__inner{max-width:var(--container-max);padding:0 var(--gutter);align-items:center;gap:var(--space-lg);height:56px;margin:0 auto;display:flex}.nav-brand{height:100%;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.nav-brand:hover{background:0 0}.nav-brand:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.nav-brand-logo{object-fit:contain;width:auto;max-width:280px;height:40px;display:block}.nav-brand-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);white-space:nowrap}.nav-links{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:1;align-items:center;gap:2px;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-link{-webkit-appearance:none;appearance:none;color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:0 0;border:none}.nav-link:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.nav-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.nav-link.is-active{color:var(--color-primary-text);background:var(--color-primary-tint);font-weight:var(--font-weight-semibold)}.nav-link--icon{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-secondary);transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);justify-content:center;align-items:center;display:inline-flex}.nav-link--icon:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.nav-link--icon:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.nav-link--icon:active{transform:scale(.92)}.nav-badge{min-width:18px;height:18px;margin-left:var(--space-sm);border-radius:var(--radius-pill);background:var(--color-danger);color:var(--color-text-on-accent);font-size:11px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;padding:0 5px;line-height:1;display:inline-flex}.theme-icon{width:20px;height:20px;position:relative}.theme-icon-sun,.theme-icon-moon{transition:opacity var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);position:absolute;top:0;bottom:0;left:0;right:0}.theme-icon-sun{opacity:0;transform:rotate(90deg)scale(.6)}.theme-icon-moon,[data-theme=dark] .theme-icon-sun{opacity:1;transform:rotate(0)scale(1)}[data-theme=dark] .theme-icon-moon{opacity:0;transform:rotate(-90deg)scale(.6)}@media (max-width:600px){.app-nav__inner{gap:var(--space-sm)}.nav-link{padding:var(--space-sm);font-size:var(--text-xs)}.nav-links{gap:0}.nav-badge{margin-left:2px}}@media (max-width:420px){.nav-link--icon{width:32px;height:32px}.nav-brand-logo{max-width:140px}}.app-bottom-nav{z-index:var(--z-sticky);height:56px;padding-bottom:env(safe-area-inset-bottom,0);background:var(--color-nav-bg);-webkit-backdrop-filter:saturate(180%)blur(16px);border-top:1px solid var(--color-border);justify-content:space-around;align-items:stretch;display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--color-text-tertiary);cursor:pointer;transition:color var(--motion-fast);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;min-width:0;padding:4px 0;display:flex;position:relative}.bottom-nav-item:hover{color:var(--color-text-secondary)}.bottom-nav-item.is-active{color:var(--color-primary)}.bottom-nav-item--primary{color:var(--color-text-on-accent);margin-top:-8px;position:relative}.bottom-nav-item--primary:before{content:"";background:var(--color-primary);z-index:-1;width:44px;height:44px;box-shadow:var(--shadow-md);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bottom-nav-item--primary:hover,.bottom-nav-item--primary.is-active{color:var(--color-text-on-accent)}.bottom-nav-item--primary.is-active:after{content:"";box-shadow:0 0 0 2px var(--color-primary-tint-strong);border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.bottom-nav-icon{justify-content:center;align-items:center;line-height:0;display:flex}.bottom-nav-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;line-height:1;overflow:hidden}.bottom-nav-item .nav-badge{min-width:16px;height:16px;padding:0 4px;font-size:10px;position:absolute;top:2px;right:50%;transform:translate(calc(50% + 12px))}@media (max-width:640px){.app-nav{display:none}.app-bottom-nav{display:flex}.view{padding-bottom:calc(var(--space-xl) + 56px)}}@media (min-width:641px){.app-bottom-nav{display:none}}.btn{-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);padding:var(--space-sm) var(--space-base);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-sm);transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);border:1px solid #0000;line-height:1.4;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";background:radial-gradient(circle at var(--ripple-x,50%) var(--ripple-y,50%), #ffffff4d 0%, transparent 60%);opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0;right:0}.btn:active:not(:disabled){transform:scale(.96)}.btn:active:not(:disabled):after{opacity:1;transition:opacity}.btn--primary{background:var(--color-primary);color:var(--color-text-on-accent)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--primary:active{background:var(--color-primary-active);transform:scale(.97)}.btn--secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn--secondary:hover{background:var(--color-surface-2);border-color:var(--color-text-tertiary)}.btn--secondary:active{transform:scale(.97)}.btn--ghost{color:var(--color-text-secondary);background:0 0}.btn--ghost:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.btn--danger{color:var(--color-danger);border-color:var(--color-border-strong);background:0 0}.btn--danger:hover{background:var(--color-danger-tint);border-color:var(--color-danger)}.btn--danger:active{transform:scale(.97)}.btn--block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--sm{font-size:var(--text-xs);padding:5px 12px}.speaker-btn{transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);cursor:pointer;color:var(--color-primary-text);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.speaker-btn:hover{background:var(--color-surface-2)}.speaker-btn:active{transform:scale(.92)}.speaker-btn-sm{cursor:pointer;color:var(--color-primary-text);border-radius:var(--radius-xs);width:36px;height:36px;transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.speaker-btn-sm:hover{background:var(--color-surface-2)}.speaker-btn-sm:active{transform:scale(.9)}.card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.muted{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.tertiary{color:var(--color-text-tertiary);font-size:var(--text-sm)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.badge{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);white-space:nowrap;align-items:center;padding:4px 9px;line-height:1;display:inline-flex}.badge--new{background:var(--color-primary-tint);color:var(--color-primary-text)}.badge--learning{background:var(--color-surface-2);color:var(--color-text-secondary)}.badge--mastered{background:var(--color-success-tint);color:var(--color-success-text)}.kbd{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-surface-2);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);border-radius:3px;align-items:center;padding:2px 7px;display:inline-flex}.kbd--on-accent{border:1px solid var(--kbd-on-accent-border);background:var(--kbd-on-accent-bg);color:var(--kbd-on-accent-text)}.hint{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-tertiary);display:inline-flex}.section-head{margin-bottom:var(--space-base)}.section-head__title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading)}.section-head__sub{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.section-head--row{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-base);color:var(--color-text-tertiary);font-size:var(--text-sm)}.progress-ring{display:inline-block}.progress-ring__track{stroke:var(--color-surface-3)}.progress-ring__fill{stroke:var(--color-primary);transition:stroke-dashoffset var(--motion-slow) var(--ease-standard)}.progress-ring__label{fill:var(--color-text-primary);font-weight:var(--font-weight-bold)}.spinner{border:2px solid var(--color-surface-3);border-top-color:var(--color-primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:var(--color-primary);opacity:.7;animation:none}}.toast-host{left:50%;bottom:var(--space-xl);z-index:var(--z-toast);gap:var(--space-sm);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-base);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-md);background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);animation:toast-in var(--motion-base) var(--ease-out);pointer-events:auto;max-width:88vw;display:inline-flex}.toast--success{background:var(--color-success-tint);color:var(--color-success-text);border-color:#0000}.toast--error{background:var(--color-danger-tint);color:var(--color-danger);border-color:#0000}.toast--info{background:var(--color-surface-2);color:var(--color-info-text);border-left:3px solid var(--color-info)}.toast--undo{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);gap:var(--space-md)}.toast__undo-btn{-webkit-appearance:none;appearance:none;background:var(--color-primary-tint);color:var(--color-primary-text);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:none;padding:3px 10px}.toast__undo-btn:hover{background:var(--color-primary);color:var(--color-text-on-accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.toast-leave-active{animation:toast-out var(--motion-base) var(--ease-standard) forwards}.stat-card{transition:transform var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;justify-content:center;align-items:center;gap:var(--space-xs);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);flex-direction:column;display:flex}.stat-card__num{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);color:var(--color-primary-text);line-height:1.1}.stat-card__label{font-size:var(--text-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.tab-bar{background:var(--color-surface-2);border-radius:var(--radius-sm);padding:3px;display:inline-flex}.tab-item{-webkit-appearance:none;appearance:none;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);padding:var(--space-xs) var(--space-md);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);background:0 0;border:none;border-radius:5px}.tab-item:hover{color:var(--color-text-primary)}.tab-item.active{background:var(--color-surface);color:var(--color-primary-text);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay,.modal-confirm-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);padding:var(--space-lg);animation:overlay-in var(--motion-fast) var(--ease-out);background:#211f1c59;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-confirm-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:var(--space-lg);text-align:center;animation:modal-in var(--motion-base) var(--ease-out)}.modal-confirm-message{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-lg);line-height:var(--leading-relaxed)}.modal-confirm-actions{gap:var(--space-md);justify-content:center;display:flex}.wordcloud-text{font-family:var(--font-sans);letter-spacing:var(--tracking-heading);font-feature-settings:"kern" 1;text-rendering:geometricprecision}.wordcloud-text.is-mastered{letter-spacing:-.8px;font-weight:var(--font-weight-bold)}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:100%}}.progress-shimmer{background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-hover) 50%, var(--color-primary) 100%);background-size:200% 100%;animation:3s ease-in-out infinite shimmer}@keyframes skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}[data-ui-style=glass] .card{-webkit-backdrop-filter:blur(12px);background:var(--glass-decorative-bg,var(--color-card-bg));border-color:var(--glass-decorative-border,var(--color-border));box-shadow:var(--glass-decorative-shadow,var(--shadow-sm))}[data-ui-style=glass] .card:hover{box-shadow:var(--glass-decorative-shadow), 0 8px 32px #0000000f;background:#ffffff7a}[data-theme=dark][data-ui-style=glass] .card{background:#2c2c2e8c}[data-theme=dark][data-ui-style=glass] .card:hover{background:#2c2c2ea6}[data-theme=dark] .card{background-image:none}
