.study{flex-direction:column;min-height:100%;display:flex}.study__top{align-items:center;gap:var(--sp-5);margin-bottom:var(--sp-6);display:flex}.study__meter{align-items:center;gap:var(--sp-3);flex:1;display:flex}.study__count{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--c-text-muted);white-space:nowrap;min-width:52px}.study__bar{flex:1}.study__modes{border-radius:var(--r-md);background:var(--c-bg-sunken);border:1px solid var(--c-border);gap:2px;padding:3px;display:flex}.seg{padding:5px var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--c-text-secondary);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;font-weight:600}.seg:hover{color:var(--c-text)}.seg--on{background:var(--c-bg-elevated);color:var(--c-primary-600);box-shadow:var(--sh-sm)}.study__stage{justify-content:center;align-items:center;gap:var(--sp-4);padding:var(--sp-4) 0;flex-direction:column;flex:1;display:flex}.study__tags{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;min-height:22px;display:flex}.flipcard{justify-content:center;align-items:center;gap:var(--sp-3);width:100%;max-width:560px;min-height:280px;padding:var(--sp-8) var(--sp-6);background:var(--c-bg-elevated);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-md);cursor:pointer;transition:border-color var(--t-base), box-shadow var(--t-base), transform var(--t-fast);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.flipcard:hover{border-color:var(--c-primary-200);box-shadow:var(--sh-lg)}.flipcard:active{transform:scale(.995)}.flipcard--open{justify-content:flex-start}.flipcard__word{align-items:center;gap:var(--sp-3);font-size:var(--fs-3xl);letter-spacing:-.02em;font-weight:700;font-family:var(--font-serif);text-align:center;word-break:break-word;display:flex}.speak{border:1px solid var(--c-border);border-radius:var(--r-full);background:var(--c-bg-sunken);width:32px;height:32px;transition:background var(--t-fast), transform var(--t-fast);flex:none;place-items:center;font-size:14px;display:grid}.speak:hover{background:var(--c-primary-50);transform:scale(1.06)}.flipcard__phonetic{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-muted)}.flipcard__hint{margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--c-text-muted)}.flipcard__back{gap:var(--sp-4);width:100%;margin-top:var(--sp-2);flex-direction:column;animation:.18s fadein;display:flex}.flipcard__def{font-size:var(--fs-lg);color:var(--c-text);white-space:pre-wrap;text-align:left;padding:var(--sp-4);background:var(--c-bg-sunken);border-radius:var(--r-md);border-left:3px solid var(--c-primary-500);line-height:1.75}.flipcard__phrases{gap:var(--sp-2);flex-direction:column;display:flex}.phrase{padding-left:var(--sp-3);border-left:2px solid var(--c-border);flex-direction:column;gap:1px;display:flex}.phrase__en{font-size:var(--fs-sm);color:var(--c-text);font-weight:600}.phrase__cn{font-size:var(--fs-xs);color:var(--c-text-muted)}.flipcard__due{font-size:var(--fs-xs);color:var(--c-text-muted);text-align:center}.quiz{gap:var(--sp-4);flex-direction:column;width:100%;max-width:620px;display:flex}.quiz__prompt{text-align:center;font-size:var(--fs-sm);color:var(--c-text-muted)}.quiz__def{margin-top:var(--sp-2);font-size:var(--fs-lg);color:var(--c-text);font-weight:600;line-height:1.6}.quiz__options{gap:var(--sp-2);flex-direction:column;display:flex}.quizopt{padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-bg-elevated);text-align:left;transition:border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.quizopt:hover:not(:disabled){border-color:var(--c-primary-400);background:var(--c-primary-50);transform:translate(2px)}.quizopt__w{font-size:var(--fs-lg);font-weight:600;font-family:var(--font-serif)}.quizopt__cn{font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.5}.quizopt--correct{border-color:var(--c-success);background:var(--c-success-bg)}.quizopt--wrong{border-color:var(--c-danger);background:var(--c-danger-bg)}.quizopt--dim{opacity:.5}.quiz__next{justify-content:center;display:flex}.quiz__result{font-size:var(--fs-sm);font-weight:650;animation:.18s fadein}.grader{gap:var(--sp-3);max-width:620px;margin:var(--sp-4) auto 0;grid-template-columns:repeat(3,1fr);width:100%;display:grid}.gradebtn{padding:var(--sp-3) var(--sp-2);border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:var(--c-bg-elevated);transition:border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);flex-direction:column;align-items:center;gap:2px;display:flex}.gradebtn:hover{transform:translateY(-2px)}.gradebtn:active{transform:translateY(0)}.gradebtn__key{color:var(--c-text-muted);font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.gradebtn__label{font-size:var(--fs-sm);font-weight:650}.gradebtn__sub{color:var(--c-text-muted);font-size:10px}.gradebtn--unknown:hover{border-color:var(--c-danger);background:var(--c-danger-bg)}.gradebtn--fuzzy:hover{border-color:var(--c-warning);background:var(--c-warning-bg)}.gradebtn--known:hover{border-color:var(--c-success);background:var(--c-success-bg)}.study__foot{padding-top:var(--sp-5);gap:var(--sp-2);flex-direction:column;margin-top:auto;display:flex}.study__footrow{font-size:var(--fs-xs);color:var(--c-text-muted);justify-content:space-between;display:flex}.study__footrow strong{color:var(--c-text-secondary);font-variant-numeric:tabular-nums}@media (max-width:640px){.flipcard{min-height:220px;padding:var(--sp-6) var(--sp-4)}.flipcard__word{font-size:var(--fs-2xl)}.study__top{align-items:stretch;gap:var(--sp-3);flex-direction:column}.grader{grid-template-columns:1fr}}.study__loading{margin-left:var(--sp-2);color:var(--c-warning);opacity:.9;font-size:10px}:root{--c-primary-50:#eef2ff;--c-primary-100:#e0e7ff;--c-primary-200:#c7d2fe;--c-primary-400:#818cf8;--c-primary-500:#6366f1;--c-primary-600:#4f46e5;--c-primary-700:#4338ca;--c-accent-50:#fff7ed;--c-accent-100:#ffedd5;--c-accent-400:#fb923c;--c-accent-500:#f97316;--c-accent-600:#ea580c;--c-success:#10b981;--c-success-bg:#ecfdf5;--c-warning:#f59e0b;--c-warning-bg:#fffbeb;--c-danger:#ef4444;--c-danger-bg:#fef2f2;--c-info:#3b82f6;--c-bg:#f8fafc;--c-bg-elevated:#fff;--c-bg-sunken:#f1f5f9;--c-border:#e2e8f0;--c-border-strong:#cbd5e1;--c-text:#0f172a;--c-text-secondary:#475569;--c-text-muted:#94a3b8;--c-overlay:#0f172a73;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:999px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono:ui-monospace, "Cascadia Code", Consolas, "SF Mono", monospace;--font-serif:Georgia, "Songti SC", "Noto Serif SC", serif;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:26px;--fs-3xl:34px;--sh-sm:0 1px 2px #0f172a0f;--sh-md:0 4px 12px #0f172a14;--sh-lg:0 12px 32px #0f172a1f;--t-fast:.12s ease;--t-base:.2s ease;--sidebar-w:232px;--content-max:1080px}[data-theme=dark]{--c-primary-50:#1e1b4b;--c-primary-100:#252058;--c-primary-200:#312e81;--c-primary-400:#818cf8;--c-primary-500:#818cf8;--c-primary-600:#a5b4fc;--c-primary-700:#c7d2fe;--c-accent-50:#2a1a0d;--c-accent-100:#3a2413;--c-accent-400:#fb923c;--c-accent-500:#fdba74;--c-accent-600:#fed7aa;--c-success:#34d399;--c-success-bg:#052e22;--c-warning:#fbbf24;--c-warning-bg:#2a2005;--c-danger:#f87171;--c-danger-bg:#2c0f0f;--c-info:#60a5fa;--c-bg:#0b1120;--c-bg-elevated:#131c2e;--c-bg-sunken:#0f172a;--c-border:#1e293b;--c-border-strong:#334155;--c-text:#e2e8f0;--c-text-secondary:#94a3b8;--c-text-muted:#64748b;--c-overlay:#000000a6;--sh-sm:0 1px 2px #0006;--sh-md:0 4px 12px #00000080;--sh-lg:0 12px 32px #0009}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.6}#root{height:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--c-primary-600);text-decoration:none}code{font-family:var(--font-mono);border-radius:var(--r-sm);background:var(--c-bg-sunken);border:1px solid var(--c-border);padding:1px 5px;font-size:.92em}.boot{justify-content:center;align-items:center;gap:var(--sp-4);height:100%;color:var(--c-text-secondary);flex-direction:column;display:flex}.boot__spinner{border:3px solid var(--c-border);border-top-color:var(--c-primary-500);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot--error{color:var(--c-danger);padding:var(--sp-8);text-align:center}.boot__msg{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-secondary);word-break:break-all;max-width:600px}.boot__hint{color:var(--c-text-muted);font-size:var(--fs-sm)}.shell{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid;overflow:hidden}.sidebar{background:var(--c-bg-elevated);border-right:1px solid var(--c-border);padding:var(--sp-5) var(--sp-3);flex-direction:column;display:flex;overflow-y:auto}.sidebar__brand{align-items:center;gap:var(--sp-3);padding:0 var(--sp-2) var(--sp-5);display:flex}.sidebar__logo{border-radius:var(--r-md);background:linear-gradient(135deg, var(--c-primary-500), var(--c-primary-700));color:#fff;width:36px;height:36px;font-weight:700;font-size:var(--fs-lg);flex:0 0 36px;place-items:center;display:grid}.sidebar__title{font-weight:650;font-size:var(--fs-base);letter-spacing:-.01em}.sidebar__sub{font-size:var(--fs-xs);color:var(--c-text-muted);letter-spacing:.04em;text-transform:uppercase}.sidebar__nav{flex-direction:column;flex:1;gap:2px;display:flex}.navitem{align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-md);color:var(--c-text-secondary);font-size:var(--fs-sm);transition:background var(--t-fast), color var(--t-fast);font-weight:500;display:flex}.navitem:hover{background:var(--c-bg-sunken);color:var(--c-text)}.navitem--active{background:var(--c-primary-50);color:var(--c-primary-700);font-weight:600}[data-theme=dark] .navitem--active{color:var(--c-primary-400)}.navitem__icon{text-align:center;flex:0 0 20px;width:20px;font-size:15px}.navitem__label{flex:1}.navitem__badge{border-radius:var(--r-full);background:var(--c-accent-500);color:#fff;font-variant-numeric:tabular-nums;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:grid}.sidebar__foot{padding:var(--sp-3) var(--sp-2) 0;border-top:1px solid var(--c-border);font-size:var(--fs-xs);color:var(--c-text-muted);align-items:center;gap:var(--sp-2);display:flex}.dot{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.dot--ok{background:var(--c-success);box-shadow:0 0 0 3px color-mix(in srgb, var(--c-success) 18%, transparent)}.content{padding:var(--sp-8) var(--sp-10);animation:.22s fadein;overflow-y:auto}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page{max-width:var(--content-max);margin:0 auto}.page__head{margin-bottom:var(--sp-6)}.page__title{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0 0 var(--sp-1);font-weight:700}.page__desc{color:var(--c-text-secondary);font-size:var(--fs-sm);margin:0}.card{background:var(--c-bg-elevated);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--sh-sm)}.card+.card{margin-top:var(--sp-4)}.card__title{font-size:var(--fs-base);margin:0 0 var(--sp-3);font-weight:650}.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:9px var(--sp-4);border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:var(--c-bg-elevated);color:var(--c-text);font-size:var(--fs-sm);transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:var(--c-bg-sunken)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--c-primary-600);border-color:var(--c-primary-600);color:#fff}.btn--primary:hover:not(:disabled){background:var(--c-primary-700);border-color:var(--c-primary-700)}.btn--danger{background:var(--c-danger);border-color:var(--c-danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--c-bg-sunken)}.btn--sm{padding:5px var(--sp-3);font-size:var(--fs-xs)}.btn--lg{padding:12px var(--sp-6);font-size:var(--fs-base)}.field{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.field__label{font-size:var(--fs-sm);color:var(--c-text-secondary);font-weight:600}.field__hint{font-size:var(--fs-xs);color:var(--c-text-muted)}.input,.textarea,.select{width:100%;padding:9px var(--sp-3);border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:var(--c-bg-elevated);font-size:var(--fs-sm);transition:border-color var(--t-fast), box-shadow var(--t-fast)}.input:focus,.textarea:focus,.select:focus{border-color:var(--c-primary-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--c-primary-500) 18%, transparent);outline:none}.textarea{resize:vertical;min-height:180px;line-height:1.7}.bar{border-radius:var(--r-full);background:var(--c-bg-sunken);height:8px;overflow:hidden}.bar__fill{border-radius:var(--r-full);background:linear-gradient(90deg, var(--c-primary-500), var(--c-accent-500));height:100%;transition:width var(--t-base)}.badge{border-radius:var(--r-full);letter-spacing:.01em;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:650;display:inline-flex}.badge--success{background:var(--c-success-bg);color:var(--c-success)}.badge--warning{background:var(--c-warning-bg);color:var(--c-warning)}.badge--danger{background:var(--c-danger-bg);color:var(--c-danger)}.badge--neutral{background:var(--c-bg-sunken);color:var(--c-text-secondary)}.badge--primary{background:var(--c-primary-50);color:var(--c-primary-600)}.empty{text-align:center;padding:var(--sp-12) var(--sp-6);color:var(--c-text-muted)}.empty__icon{margin-bottom:var(--sp-3);opacity:.6;font-size:40px}.empty__title{font-size:var(--fs-base);color:var(--c-text-secondary);margin:0 0 var(--sp-1);font-weight:600}.empty__hint{font-size:var(--fs-sm);margin:0}.grid{gap:var(--sp-4);display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1100px){.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--c-border);padding:var(--sp-2) var(--sp-3);flex-direction:row;align-items:center;overflow-x:auto}.sidebar__brand{padding:0 var(--sp-3) 0 0}.sidebar__sub,.sidebar__foot{display:none}.sidebar__nav{gap:var(--sp-1);flex-direction:row}.navitem__label{display:none}.navitem{padding:8px 10px}.content{padding:var(--sp-5) var(--sp-4)}.grid--2,.grid--3{grid-template-columns:1fr}}.stat{flex-direction:column;gap:2px;display:flex}.stat__value{font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:700;line-height:1.15}.stat__label{font-size:var(--fs-xs);color:var(--c-text-muted)}
