@font-face{font-family:Noto Sans SC;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/NotoSansSC-subset-DJQv4Akm.woff2)format("woff2")}:root,[data-theme=celadon]{--bg-primary:#fdfcfa;--bg-secondary:#f4f1ec;--bg-card:#fff;--bg-card-hover:#faf8f4;--bg-sunken:#efebe4;--text-primary:#1b1a18;--text-secondary:#6e6a63;--text-tertiary:#9a958c;--text-pinyin:#0e7c6b;--text-on-accent:#fff;--border:#e9e4db;--border-strong:#d9d3c7;--accent:#0e7c6b;--accent-hover:#0c6c5d;--accent-press:#095448;--accent-shade:#0a5f53;--accent-dim:#0e7c6b1a;--accent-light:#e7f2ef;--accent-contrast:#fff;--accent-warm:#c1832c;--accent-warm-dim:#c1832c1f;--accent-secondary:#3c4e8f;--input-bg:#fff;--btn-secondary-bg:#f1ede6;--btn-secondary-text:#4a463f;--badge-hsk1-bg:#e7f2ef;--badge-hsk1-text:#0c6455;--badge-hsk2-bg:#ecf0f9;--badge-hsk2-text:#3a4e8c;--badge-hsk3-bg:#f4efe4;--badge-hsk3-text:#866020;--badge-hsk4-bg:#f2ecf5;--badge-hsk4-text:#6a4880;--card-vocabulary:#0e7c6b;--card-vocabulary-alpha:#0e7c6b17;--card-grammar:#3c4e8f;--card-grammar-alpha:#3c4e8f17;--card-reading:#6a4880;--card-reading-alpha:#6a488017;--card-scenarios:#a85b3c;--card-scenarios-alpha:#a85b3c17;--card-tones:#4a7c4e;--card-tones-alpha:#4a7c4e17;--success:#17795f;--success-bg:#e6f3ef;--warning:#9a6b18;--warning-bg:#f7f0e0;--danger:#b3453c;--danger-bg:#fbeceb;--shadow-xs:0 1px 2px #1c1a170d;--shadow-sm:0 1px 2px #1c1a170a, 0 2px 8px #1c1a170d;--shadow-md:0 2px 4px #1c1a170a, 0 8px 20px #1c1a1712;--shadow-lg:0 4px 10px #1c1a170d, 0 16px 36px #1c1a171a;--shadow-xl:0 8px 20px #1c1a1712, 0 28px 60px #1c1a1721;--shadow-accent:0 4px 14px #0e7c6b38;--ring-focus:0 0 0 3px var(--accent-dim);--sheen:inset 0 1px 0 #ffffff8c;--grad-accent:linear-gradient(140deg, #17917d 0%, #0e7c6b 55%, #0a6355 100%);--grad-warm:linear-gradient(140deg, #d69a3f 0%, #c1832c 100%);--grad-surface:linear-gradient(180deg, #fff 0%, #fbf9f6 100%);--grad-app:linear-gradient(180deg, #f7f5f1 0%, #f2eee7 100%);--grad-hero:linear-gradient(120deg, #0e7c6b 0%, #2a8f77 45%, #c1832c 100%);--grad-hero-deep:linear-gradient(163deg, #1ba58d 0%, #16947e 26%, #0e7c6b 62%, #0a5f53 100%);--hero-bloom-a:#e2b0586b;--hero-bloom-b:#8ce8ce57;--hero-contrast:#fff;--hero-ink:#0a5f53;--hero-mix-top:#fff3;--hero-mix-bot:#00000042;--grad-bridge:linear-gradient(112deg, #94431f 0%, #b3542f 38%, #c1832c 72%, #d9a441 100%);--bridge-bloom:#ffd68c66;--bridge-contrast:#fffaf2;--tone-1:#0e7c6b;--tone-2:#2f8f5f;--tone-3:#8a6320;--tone-4:#a85b3c;--tone-neutral:#9a958c;--scrim:#1b1a1873}[data-theme=ink]{--bg-primary:#fffef9;--bg-secondary:#f7f4ec;--bg-card:#fffef9;--bg-card-hover:#f0ead8;--bg-sunken:#f0ead8;--text-primary:#1a1410;--text-secondary:#7a6a52;--text-tertiary:#a2937a;--text-pinyin:#9a7a2a;--text-on-accent:#fffef9;--border:#e8dfc8;--border-strong:#d5c8a6;--accent:#b8860b;--accent-hover:#9a6f08;--accent-press:#855f06;--accent-shade:#8a6508;--accent-dim:#b8860b1f;--accent-light:#fdf6e3;--accent-contrast:#fffef9;--accent-warm:#b8860b;--accent-warm-dim:#b8860b1f;--accent-secondary:#2a4a8a;--input-bg:#fffef9;--btn-secondary-bg:#f2ead8;--btn-secondary-text:#5a4a2a;--badge-hsk1-bg:#fdf3d0;--badge-hsk1-text:#7a5c00;--badge-hsk2-bg:#f0f4ff;--badge-hsk2-text:#2a4a8a;--badge-hsk3-bg:#e9f7ee;--badge-hsk3-text:#1f6b3f;--badge-hsk4-bg:#f5eeff;--badge-hsk4-text:#5b3a9e;--card-vocabulary:#b8860b;--card-vocabulary-alpha:#b8860b1a;--card-grammar:#2563eb;--card-grammar-alpha:#2563eb14;--card-reading:#7c3aed;--card-reading-alpha:#7c3aed14;--card-scenarios:#ea580c;--card-scenarios-alpha:#ea580c14;--card-tones:#16a34a;--card-tones-alpha:#16a34a14;--success:#16a34a;--success-bg:#e9f7ee;--warning:#a16207;--warning-bg:#fdf3d0;--danger:#b91c1c;--danger-bg:#fdeaea;--shadow-xs:0 1px 2px #6450140f;--shadow-sm:0 1px 2px #6450140d, 0 2px 8px #6450140f;--shadow-md:0 2px 4px #6450140d, 0 8px 20px #64501414;--shadow-lg:0 4px 10px #6450140f, 0 16px 36px #6450141c;--shadow-xl:0 8px 20px #64501414, 0 28px 60px #64501426;--shadow-accent:0 4px 14px #b8860b40;--ring-focus:0 0 0 3px var(--accent-dim);--sheen:inset 0 1px 0 #fff9;--grad-accent:linear-gradient(140deg, #d09a1c 0%, #b8860b 55%, #9a6f08 100%);--grad-warm:linear-gradient(140deg, #d09a1c 0%, #b8860b 100%);--grad-surface:linear-gradient(180deg, #fffef9 0%, #fbf7ea 100%);--grad-app:linear-gradient(180deg, #f9f6ee 0%, #f5f1e6 100%);--grad-hero:linear-gradient(120deg, #b8860b 0%, #d0a52c 100%);--grad-hero-deep:linear-gradient(163deg, #d9ac35 0%, #c2901a 28%, #a8790a 64%, #7a5806 100%);--hero-bloom-a:#ffe9a870;--hero-bloom-b:#d6a03c57;--hero-contrast:#fffef9;--hero-ink:#6b4d05;--hero-mix-top:#ffffff38;--hero-mix-bot:#00000047;--grad-bridge:linear-gradient(112deg, #6e2a15 0%, #9b3f1c 40%, #c05a22 74%, #d98a35 100%);--bridge-bloom:#ffcd8c5c;--bridge-contrast:#fff8ee;--tone-1:#b8860b;--tone-2:#a1731a;--tone-3:#8a6508;--tone-4:#7a5410;--tone-neutral:#a2937a;--scrim:#1a141073}[data-theme=lantern]{--bg-primary:#0e0b0b;--bg-secondary:#160f0f;--bg-card:#1c1212;--bg-card-hover:#251818;--bg-sunken:#120c0c;--text-primary:#f0e6e6;--text-secondary:#8a7070;--text-tertiary:#6b5555;--text-pinyin:#e05555;--text-on-accent:#fff;--border:#2e1e1e;--border-strong:#432c2c;--accent:#cc2929;--accent-hover:#e03333;--accent-press:#a81f1f;--accent-shade:#8f1a1a;--accent-dim:#cc292924;--accent-light:#2a0a0a;--accent-contrast:#fff;--accent-warm:#d9913a;--accent-warm-dim:#d9913a29;--accent-secondary:#8080f0;--input-bg:#1c1212;--btn-secondary-bg:#251818;--btn-secondary-text:#c9b6b6;--badge-hsk1-bg:#2a0a0a;--badge-hsk1-text:#f08080;--badge-hsk2-bg:#0a0a2a;--badge-hsk2-text:#8080f0;--badge-hsk3-bg:#0a2412;--badge-hsk3-text:#6ede93;--badge-hsk4-bg:#1a0a2a;--badge-hsk4-text:#b088f0;--card-vocabulary:#e05555;--card-vocabulary-alpha:#e0555524;--card-grammar:#60a5fa;--card-grammar-alpha:#60a5fa24;--card-reading:#a78bfa;--card-reading-alpha:#a78bfa24;--card-scenarios:#fb923c;--card-scenarios-alpha:#fb923c24;--card-tones:#4ade80;--card-tones-alpha:#4ade8024;--success:#4ade80;--success-bg:#0a2412;--warning:#d9913a;--warning-bg:#2a1c0a;--danger:#f08080;--danger-bg:#2a0a0a;--shadow-xs:0 1px 2px #00000080;--shadow-sm:0 1px 2px #00000080, 0 2px 8px #0006;--shadow-md:0 2px 6px #0000008c, 0 10px 24px #00000080;--shadow-lg:0 6px 14px #0009, 0 20px 44px #0000008c;--shadow-xl:0 10px 24px #000000a6, 0 32px 70px #0009;--shadow-accent:0 4px 18px #cc292959;--ring-focus:0 0 0 3px var(--accent-dim);--sheen:inset 0 1px 0 #ffffff0d;--grad-accent:linear-gradient(140deg, #e03333 0%, #cc2929 55%, #a81f1f 100%);--grad-warm:linear-gradient(140deg, #e0a04a 0%, #d9913a 100%);--grad-surface:linear-gradient(180deg, #1f1414 0%, #1a1010 100%);--grad-app:linear-gradient(180deg, #120d0d 0%, #0e0b0b 100%);--grad-hero:linear-gradient(120deg, #cc2929 0%, #e0703a 100%);--grad-hero-deep:linear-gradient(163deg, #7d221f 0%, #5a1a18 30%, #351312 66%, #1d0e0e 100%);--hero-bloom-a:#e2604a57;--hero-bloom-b:#d9913a38;--hero-contrast:#f7ecec;--hero-ink:#4a1614;--hero-mix-top:#00000057;--hero-mix-bot:#000000c2;--grad-bridge:linear-gradient(112deg, #5c1613 0%, #93301b 40%, #b8562a 74%, #d9913a 100%);--bridge-bloom:#ffbe784d;--bridge-contrast:#fdf1e6;--tone-1:#cc2929;--tone-2:#e05555;--tone-3:#c0392b;--tone-4:#a01919;--tone-neutral:#8a7070;--scrim:#0009}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--fs-3xs:9px;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:15px;--fs-xl:16px;--fs-2xl:18px;--fs-3xl:20px;--fs-4xl:23px;--fs-5xl:26px;--fs-6xl:30px;--fs-7xl:34px;--fs-display-1:42px;--fs-display-2:52px;--fs-display-3:62px;--fs-display-4:72px;--fs-display-5:88px;--lh-hero:.86;--tracking-hero:-.045em;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.65;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.02em;--tracking-caps:.08em;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:800;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-3-5:14px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-9:36px;--space-10:40px;--space-12:48px;--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--radius-2xl:34px;--radius-pill:999px;--bw-hairline:.5px;--bw:1px;--bw-thick:2px;--bw-accent:3px;--dur-instant:90ms;--dur-fast:.15s;--dur-base:.24s;--dur-slow:.38s;--dur-slower:.56s;--dur-reveal:.76s;--dur-ambient:16s;--ease:cubic-bezier(.4, 0, .2, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--press-scale:.972;--press-sink:3px;--tap-min:44px;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}:root,[data-theme=celadon],[data-theme=ink],[data-theme=lantern]{--shadow:var(--shadow-sm);--shadow-hover:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){:root{--dur-instant:.01ms;--dur-fast:.01ms;--dur-base:.01ms;--dur-slow:.01ms;--dur-slower:.01ms;--press-scale:1;--press-sink:0px}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.surface{background:var(--bg-card);border:var(--bw) solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.surface-flat{box-shadow:none}.surface-raised{box-shadow:var(--shadow-md)}.surface-float{box-shadow:var(--shadow-lg)}.surface-sheet{box-shadow:var(--shadow-xl);border-radius:var(--radius-xl)}.well{background:var(--bg-sunken);border:var(--bw) solid var(--border);border-radius:var(--radius-sm)}.pressable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);will-change:transform}.pressable:active{transform:scale(var(--press-scale));transition-duration:var(--dur-instant)}@media (hover:hover) and (pointer:fine){.lift:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-2px)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--tracking-snug);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out);border:none;line-height:1;display:inline-flex}.btn-primary{background:var(--grad-accent);color:var(--accent-contrast);box-shadow:0 var(--press-sink) 0 var(--accent-shade), var(--shadow-sm), var(--sheen)}.btn-primary:active{transform:translateY(var(--press-sink));box-shadow:0 0 0 var(--accent-shade), var(--shadow-xs);transition-duration:var(--dur-instant)}@media (hover:hover) and (pointer:fine){.btn-primary:hover{filter:brightness(1.06)}}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:var(--bw) solid var(--border-strong);box-shadow:0 var(--press-sink) 0 var(--border), var(--shadow-xs)}.btn-secondary:active{transform:translateY(var(--press-sink));box-shadow:0 0 0 var(--border);transition-duration:var(--dur-instant)}.btn-ghost{color:var(--accent);background:0 0}.btn-ghost:active{background:var(--accent-dim);transform:scale(var(--press-scale))}.btn:focus-visible,.pressable:focus-visible{box-shadow:var(--ring-focus), var(--shadow-sm);outline:none}.chip-base{align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3-5);border-radius:var(--radius-pill);border:var(--bw) solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);display:inline-flex}.chip-base:active{transform:scale(.95)}.chip-selected{background:var(--grad-accent);color:var(--accent-contrast);box-shadow:var(--shadow-accent);border-color:#0000}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.animate-rise{animation:rise-in var(--dur-slow) var(--ease-out) both}.animate-fade{animation:fade-in var(--dur-base) var(--ease-out) both}.animate-scale{animation:scale-in var(--dur-base) var(--ease-out) both}.stagger>*{animation:rise-in var(--dur-slow) var(--ease-out) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:45ms}.stagger>:nth-child(3){animation-delay:90ms}.stagger>:nth-child(4){animation-delay:.135s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.225s}.stagger>:nth-child(n+7){animation-delay:.27s}.route-enter{animation:rise-in var(--dur-base) var(--ease-out) both}.text-gradient{background:var(--grad-hero);color:#0000;-webkit-background-clip:text;background-clip:text}.eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-secondary)}.numeric{font-variant-numeric:tabular-nums}html{transition:none}html.theme-ready{transition:background-color var(--dur-slow) ease, color var(--dur-slow) ease}*,:before,:after{box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}html,body{height:100%;overflow:hidden}body{background:var(--bg-secondary,#f8fafc);margin:0}#root{width:100%;height:100%;overflow:hidden}p,h1,h2,h3{margin:0}button{font-family:inherit}*{-webkit-tap-highlight-color:transparent}.screen-container{background:var(--bg-primary);height:100%;min-height:0;color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.screen-header{z-index:100;background:var(--bg-primary);border-bottom:.5px solid var(--border);padding-top:max(env(safe-area-inset-top), 16px);flex-shrink:0;padding-bottom:12px;padding-left:16px;padding-right:16px;position:relative}.screen-content{-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:max(env(safe-area-inset-bottom), 16px);flex:1;overflow-y:auto}.screen-sub-bar{background:var(--bg-primary);border-bottom:.5px solid var(--border);z-index:100;flex-shrink:0;padding:10px 16px}.screen-bottom-bar{background:var(--bg-primary);border-top:.5px solid var(--border);padding-top:12px;padding-left:16px;padding-right:16px;padding-bottom:max(env(safe-area-inset-bottom), 16px);z-index:100;flex-shrink:0}._bar_1y2so_5{background:var(--bg-primary);border-top:var(--bw) solid var(--border);box-shadow:0 -1px 0 var(--border), 0 -8px 24px color-mix(in srgb, var(--text-primary) 5%, transparent);padding-top:6px;padding-left:4px;padding-right:4px;padding-bottom:max(env(safe-area-inset-bottom), 6px);z-index:200;flex-shrink:0;align-items:stretch;display:flex}._tab_1y2so_37{min-height:46px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px 2px 2px;font-family:inherit;text-decoration:none;display:flex;position:relative}._tab_1y2so_37:active ._icon_1y2so_83{transform:scale(.88)}._tabActive_1y2so_91:before{content:"";inset:0 var(--space-2);border-radius:var(--radius-sm);background:var(--accent-dim);animation:_scale-in_1y2so_1 var(--dur-base) var(--ease-spring) both;position:absolute}._tabActive_1y2so_91{color:var(--accent)}._icon_1y2so_83{transition:transform var(--dur-base) var(--ease-spring);flex-shrink:0;position:relative}._tabActive_1y2so_91 ._icon_1y2so_83{stroke-width:2.2px}._label_1y2so_141{font-size:var(--fs-3xs);letter-spacing:.2px;font-weight:600;line-height:1;position:relative}._tabActive_1y2so_91 ._label_1y2so_141{font-weight:700}@media (width>=640px){._bar_1y2so_5{justify-content:center;gap:8px}._tab_1y2so_37{flex:0 0 120px}}._shell_1xnz7_9{background:var(--bg-primary);flex-direction:column;height:100dvh;display:flex;overflow:hidden}._viewport_1xnz7_31{flex-direction:column;flex:1;min-height:0;display:flex}._fallback_1xnz7_53{background:var(--bg-primary);flex:1;place-items:center;min-height:0;display:grid}._fallbackMark_1xnz7_77{font-family:Noto Sans SC,PingFang SC,serif;font-size:var(--fs-display-2);color:var(--accent);opacity:0;animation:_fallback-in_1xnz7_1 var(--dur-slow) var(--ease-out) .32s forwards, _fallback-pulse_1xnz7_1 1.6s var(--ease-out) .32s infinite;line-height:1}@keyframes _fallback-in_1xnz7_1{0%{opacity:0;transform:scale(.94)}to{opacity:.22;transform:scale(1)}}@keyframes _fallback-pulse_1xnz7_1{0%,to{opacity:.22}50%{opacity:.42}}@media (prefers-reduced-motion:reduce){._fallbackMark_1xnz7_77{animation:_fallback-in_1xnz7_1 var(--dur-base) var(--ease-out) .32s forwards}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-secondary);color:var(--text-primary);min-height:100vh;transition:background var(--dur-base), color var(--dur-base);font-family:system-ui,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.app{flex-direction:column;height:100%;min-height:0;display:flex}.header{background:var(--bg-primary);padding-top:max(env(safe-area-inset-top), 16px);padding-bottom:var(--space-2);border-bottom:var(--bw) solid var(--border);z-index:100;flex-direction:column;flex-shrink:0;display:flex}.header-row{justify-content:space-between;align-items:center;padding:0 16px;display:flex}.header-subtitle{text-align:center;font-size:var(--fs-sm);color:var(--text-secondary);padding:4px 0 0}.title{font-size:var(--fs-3xl);letter-spacing:-.3px;font-weight:800;line-height:1.1}.title-hanzi{color:var(--accent);font-family:Noto Sans SC,PingFang SC,serif}.title-text{color:var(--text-primary)}.back-home-btn{font-size:var(--fs-md);color:var(--accent);cursor:pointer;white-space:nowrap;z-index:10;background:0 0;border:none;flex-shrink:0;align-items:center;gap:3px;min-height:44px;padding:8px 12px 8px 4px;font-weight:600;display:flex;position:relative}.back-home-btn:hover{opacity:.75}.theme-toggle{background:var(--btn-secondary-bg);border:1px solid var(--border);font-size:var(--fs-lg);cursor:pointer;color:var(--text-primary);transition:background var(--dur-fast);border-radius:8px;padding:5px 10px;line-height:1}.theme-toggle:hover{background:var(--bg-card-hover)}.hdr-back{font-size:var(--fs-md);color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;gap:4px;min-width:44px;min-height:44px;padding:8px 12px 8px 4px;font-weight:600;display:flex}.hdr-back:hover{opacity:.75}.hdr-title{font-size:var(--fs-2xl);letter-spacing:-.3px;color:var(--text-primary);font-weight:800}.hdr-hanzi{color:var(--accent);font-family:Noto Sans SC,PingFang SC,serif}.hdr-theme-btn{background:var(--btn-secondary-bg);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);min-width:44px;min-height:44px;transition:background var(--dur-fast);border-radius:8px;justify-content:center;align-items:center;padding:5px 10px;display:flex}.hdr-theme-btn:hover{background:var(--bg-card-hover)}.header-vbadge{font-size:var(--fs-xs);border-radius:var(--radius-lg);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:3px 9px;font-weight:600;overflow:hidden}.vbadge-good{background:var(--badge-hsk1-bg);color:var(--badge-hsk1-text);border:1px solid var(--accent)}.vbadge-ok{background:var(--badge-hsk2-bg);color:var(--badge-hsk2-text);border:1px solid var(--border)}.vbadge-basic{background:var(--btn-secondary-bg);color:var(--text-secondary);border:1px solid var(--border)}.vbadge-warn{background:var(--badge-hsk1-bg);color:var(--badge-hsk1-text);border:1px solid var(--border)}.main{-webkit-overflow-scrolling:touch;flex:1;width:100%;max-width:1000px;margin:0 auto;padding:16px;overflow-y:auto}.stats-bar{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-card);border:var(--bw) solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot{color:var(--border)}.stats-total{color:var(--text-primary);font-weight:700}.hsk-badge{border-radius:var(--radius-lg);font-size:var(--fs-xs);padding:2px 8px;font-weight:700}.hsk-badge-1{background:var(--badge-hsk1-bg);color:var(--badge-hsk1-text)}.hsk-badge-2{background:var(--badge-hsk2-bg);color:var(--badge-hsk2-text)}.hsk-badge-3{background:var(--badge-hsk3-bg);color:var(--badge-hsk3-text)}.hsk-badge-4{background:var(--badge-hsk4-bg);color:var(--badge-hsk4-text)}.hint{color:var(--text-secondary);font-size:var(--fs-sm)}@media (width<=500px){.hide-sm{display:none}}.search-row{margin-bottom:12px;position:relative}.search-input{width:100%;padding:var(--space-3) var(--space-10) var(--space-3) var(--space-4);font-size:var(--fs-xl);border:var(--bw) solid var(--border);border-radius:var(--radius-sm);background:var(--bg-sunken);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);outline:none}.search-input:focus{border-color:var(--accent);background:var(--bg-card);box-shadow:var(--ring-focus)}.search-input::placeholder{color:var(--text-secondary)}.search-clear{cursor:pointer;font-size:var(--fs-md);color:var(--text-secondary);background:0 0;border:none;border-radius:4px;padding:4px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.search-clear:hover{color:var(--text-primary)}.main-tabs-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:10px;overflow-x:auto}.main-tabs-scroll::-webkit-scrollbar{display:none}.main-tabs{gap:6px;min-width:max-content;padding-bottom:2px;display:flex}.main-tab{padding:var(--space-2) var(--space-3-5);border-radius:var(--radius-pill);border:var(--bw) solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-md);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;min-height:36px;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out)}.main-tab:hover{border-color:var(--border-strong);color:var(--text-primary)}.main-tab-active{box-shadow:var(--shadow-accent);background:var(--grad-accent)!important;color:var(--accent-contrast)!important;border-color:#0000!important}.level-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:10px;overflow-x:auto}.level-scroll::-webkit-scrollbar{display:none}.level-row{gap:6px;min-width:max-content;padding-bottom:2px;display:flex}.level-btn{padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-pill);border:var(--bw) solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:all var(--dur-instant);align-items:center;gap:5px;min-height:32px;font-weight:600;display:inline-flex}.level-btn:hover{border-color:var(--accent);color:var(--accent)}.level-btn:active{transform:scale(.96)}.level-active{border-color:currentColor}.level-btn.level-active{background:var(--accent-dim);color:var(--accent)}.level-hsk1.level-active{background:var(--badge-hsk1-bg);color:var(--badge-hsk1-text)}.level-hsk2.level-active{background:var(--badge-hsk2-bg);color:var(--badge-hsk2-text)}.level-hsk3.level-active{background:var(--badge-hsk3-bg);color:var(--badge-hsk3-text)}.level-hsk4.level-active{background:var(--badge-hsk4-bg);color:var(--badge-hsk4-text)}.sub-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:12px;overflow-x:auto}.sub-scroll::-webkit-scrollbar{display:none}.sub-row{gap:6px;min-width:max-content;padding-bottom:2px;display:flex}.sub-btn{padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-pill);border:var(--bw) solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;min-height:32px;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-instant) var(--ease-out)}.sub-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.sub-active{background:var(--accent-dim)!important;border-color:var(--accent)!important;color:var(--accent)!important}.custom-banner{background:var(--badge-hsk1-bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--badge-hsk1-text);margin-bottom:12px;padding:10px 16px}.custom-link{color:var(--accent);cursor:pointer;font-weight:700;font-size:var(--fs-md);background:0 0;border:none;padding:0;text-decoration:underline}.result-count{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:12px;font-weight:500}.grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.empty{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty p{font-size:var(--fs-2xl);margin-bottom:8px}.empty-hint{font-size:var(--fs-md);color:var(--text-secondary)}.filter-row{gap:var(--space-1-5);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-top:var(--space-2);margin:0 calc(var(--space-4) * -1);padding-left:var(--space-4);padding-right:var(--space-4);display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.chip{padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-pill);border:var(--bw) solid var(--border);color:var(--text-secondary);font-family:inherit;font-size:var(--fs-md);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-instant) var(--ease), color var(--dur-instant) var(--ease), border-color var(--dur-instant) var(--ease), transform var(--dur-instant) var(--ease);background:0 0;flex-shrink:0;font-weight:600}.chip:active{transform:scale(.95)}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.icon-btn{min-width:var(--tap-min);min-height:var(--tap-min);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent;transition:color var(--dur-instant) var(--ease), transform var(--dur-instant) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.icon-btn:active{color:var(--accent);transform:scale(.9)}.vocab-stats{justify-content:center;align-items:center;gap:var(--space-1-5);font-size:var(--fs-sm);color:var(--text-secondary);padding-top:var(--space-1);flex-wrap:wrap;display:flex}.vocab-stats strong{color:var(--text-primary);font-weight:700}.main-tab,.sub-btn,.search-clear,.back-home-btn,.custom-link{-webkit-tap-highlight-color:transparent}.main-tab:active,.sub-btn:active{transform:scale(.95)}.search-clear:active{color:var(--accent);transform:translateY(-50%)scale(.85)}.empty-icon{width:56px;height:56px;margin-bottom:var(--space-3);border-radius:var(--radius-pill);background:var(--accent-dim);color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.empty-title{font-size:var(--fs-2xl);color:var(--text-primary);margin-bottom:var(--space-1-5);font-weight:700}.empty-action{margin-top:var(--space-4);padding:var(--space-2-5) var(--space-5);border-radius:var(--radius-pill);border:var(--bw) solid var(--accent);color:var(--accent);font-family:inherit;font-size:var(--fs-base);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-instant) var(--ease), transform var(--dur-instant) var(--ease);background:0 0;font-weight:600}.empty-action:active{background:var(--accent-dim);transform:scale(.96)}
