@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-synthesis:none;--primary:#2563eb;--indigo:#4f46e5;--purple:#7c3aed;--bg:#f7f9ff;--surface:#fff;--surface-alt:#f0f4ff;--text:#172033;--muted:#667085;--border:#e3e8f3;--shadow-sm:0 2px 8px #1e40af0f;--shadow-md:0 14px 34px #1e40af1c;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--ease:.18s cubic-bezier(.2,.8,.2,1);--vocabulary:#14b8a6;--grammar:#8b5cf6;--listening:#38bdf8;--speaking:#f97316;--reading:#22c55e;--writing:#ec4899;--hskk:#f59e0b;--mock:#ef4444;--progress:#2563eb;--settings:#64748b;color:var(--text);background:var(--bg);font-family:Inter,Noto Sans SC,Segoe UI,Arial,sans-serif}[data-theme=dark]{--bg:#0f172a;--surface:#111827;--surface-alt:#1e293b;--text:#f8fafc;--muted:#94a3b8;--border:#293548;--primary:#60a5fa;--indigo:#818cf8;--purple:#a78bfa;--shadow-sm:0 2px 8px #0003;--shadow-md:0 18px 40px #0005;--vocabulary:#2dd4bf;--grammar:#a78bfa;--listening:#7dd3fc;--speaking:#fb923c;--reading:#4ade80;--writing:#f472b6;--hskk:#fbbf24;--mock:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html.large-text{font-size:112.5%}body{background:var(--bg);min-width:320px;color:var(--text);margin:0;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 38%,transparent);outline-offset:3px}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{letter-spacing:-.025em}p{line-height:1.65}.app-shell{min-height:100vh}.topbar{z-index:40;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);align-items:center;gap:24px;height:72px;padding:0 22px;display:flex;position:fixed;top:0;left:0;right:0}.brand{align-items:center;gap:11px;min-width:208px;font-size:18px;font-weight:800;display:flex}.brand img{object-fit:contain;width:42px;height:42px}.brand span{flex-direction:column;display:flex}.brand small{color:var(--muted);letter-spacing:.01em;font-size:10px;font-weight:500}.top-search{background:var(--surface-alt);border:1px solid var(--border);width:min(480px,38vw);height:42px;color:var(--muted);border-radius:12px;align-items:center;gap:10px;margin:auto;padding:0 12px;font-size:13px;display:flex}.top-search span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-search kbd{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-left:auto;padding:2px 5px;font:11px inherit}.top-actions{gap:8px;display:flex}.icon-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:42px;height:42px;color:var(--text);border-radius:12px;place-items:center;display:grid}.menu-button{display:none}.sidebar{z-index:30;background:var(--surface);border-right:1px solid var(--border);width:240px;padding:20px 14px;position:fixed;top:72px;bottom:0;left:0;overflow:auto}.sidebar nav{flex-direction:column;gap:3px;display:flex}.sidebar a{--module:var(--primary);color:var(--muted);transition:background var(--ease),color var(--ease),transform var(--ease);border-radius:12px;align-items:center;gap:12px;padding:11px 13px;font-size:14px;font-weight:500;display:flex}.sidebar a:hover{background:var(--surface-alt);color:var(--text);transform:translate(2px)}.sidebar a.active{background:color-mix(in srgb,var(--module) 11%,var(--surface));color:var(--module);font-weight:700}.nav-vocabulary,.module-vocabulary{--module:var(--vocabulary)}.nav-grammar,.module-grammar{--module:var(--grammar)}.nav-listening,.module-listening{--module:var(--listening)}.nav-speaking,.module-speaking{--module:var(--speaking)}.nav-reading,.module-reading{--module:var(--reading)}.nav-writing,.module-writing{--module:var(--writing)}.nav-hskk,.module-hskk{--module:var(--hskk)}.nav-mock,.module-mock{--module:var(--mock)}.nav-progress,.module-progress{--module:var(--progress)}.nav-settings{--module:var(--settings)}.sidebar-note{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 14%,var(--surface)),color-mix(in srgb,var(--purple) 10%,var(--surface)));border-radius:16px;flex-direction:column;gap:4px;margin-top:24px;padding:16px;display:flex}.sidebar-note span{color:var(--primary);font-family:Noto Sans SC,sans-serif;font-size:18px}.sidebar-note b{font-size:11px;line-height:1.5}.mobile-nav{display:none}main{max-width:1680px;min-height:calc(100vh - 132px);margin:72px 0 0 240px;padding:40px clamp(26px,4.5vw,72px) 64px}main>section,main>div>section{animation:.26s both page-in}main>section+section{margin-top:52px}footer{border-top:1px solid var(--border);color:var(--muted);margin-left:240px;padding:20px clamp(26px,4.5vw,72px);font-size:12px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-size:11px;font-weight:800}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 30px;display:flex}.page-header h1{margin:10px 0;font-size:clamp(36px,5vw,58px);line-height:1.08}.page-header p{color:var(--muted);max-width:680px;margin:0}.section-header{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:19px;display:flex}.section-header h2{margin:6px 0 0;font-size:clamp(24px,3vw,31px)}.pill{background:color-mix(in srgb,var(--primary) 10%,var(--surface));width:max-content;color:var(--primary);border-radius:99px;align-items:center;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;transition:transform var(--ease),box-shadow var(--ease),background var(--ease);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:650;display:inline-flex}.button:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-2px)}.button.primary{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:#0000}.button.success{color:#fff;background:#16a34a;border-color:#0000}.button:disabled{opacity:.55;cursor:not-allowed}.actions{flex-wrap:wrap;gap:10px;margin-top:25px;display:flex}.dashboard-hero{isolation:isolate;border-radius:var(--radius-xl);color:#fff;background:linear-gradient(135deg,#2563eb 0%,#4f46e5 52%,#7c3aed 100%);grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr);gap:30px;min-height:430px;padding:clamp(30px,5vw,65px);display:grid;position:relative;overflow:hidden;box-shadow:0 24px 60px #4f46e538}.dashboard-hero:before{content:"";opacity:.35;z-index:-1;background:radial-gradient(circle at 80% 15%,#fff3 0 2px,#0000 3px) 0 0/24px 24px;position:absolute;inset:0}.hero-copy{align-self:center;max-width:700px}.hero-badge{background:#fff1;border:1px solid #fff3;border-radius:99px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:700;display:inline-flex}.hero-greeting{color:#dbeafe;font-family:Noto Sans SC,sans-serif;font-size:clamp(21px,2.5vw,29px);margin:24px 0 8px!important}.dashboard-hero h1{margin:0;font-size:clamp(37px,5vw,62px);line-height:1.08}.dashboard-hero p{color:#eef2ff;max-width:620px;margin:18px 0 0}.button.glass{color:#fff;background:#fff1;border-color:#fff4}.hero-stats{align-self:end;gap:10px;display:grid}.hero-stats>div{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff1;border:1px solid #fff2;border-radius:16px;grid-template-rows:auto auto;grid-template-columns:42px auto;align-items:center;column-gap:12px;padding:14px 16px;display:grid}.stat-icon{background:#fff2;border-radius:12px;grid-row:1/3;place-items:center;width:42px;height:42px;display:grid}.hero-stats b{font-size:21px}.hero-stats small{color:#dbeafe}.hero-hanzi{z-index:-1;color:#fff;opacity:.045;font:380px Noto Sans SC;position:absolute;top:-80px;right:-22px}.plan-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.plan-card{--module:var(--primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-template-columns:45px 1fr;gap:13px;padding:18px;display:grid}.plan-card>svg{width:45px;height:45px;color:var(--module);background:color-mix(in srgb,var(--module) 12%,var(--surface));border-radius:13px;padding:11px}.plan-card div{flex-direction:column;gap:4px;display:flex}.plan-card span{color:var(--muted);font-size:12px}.plan-card .progress-wrap{grid-column:1/3}.progress-wrap{width:100%}.progress-label{justify-content:space-between;margin-bottom:7px;font-size:12px;display:flex}.progress-track{background:color-mix(in srgb,var(--module,var(--primary)) 12%,var(--border));border-radius:99px;height:7px;overflow:hidden}.progress-track span{height:100%;width:var(--progress);border-radius:inherit;background:var(--module,var(--primary));animation:.65s both progress-in;display:block}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;display:grid}.module-card{--module:var(--primary);background:color-mix(in srgb,var(--module) 5%,var(--surface));border:1px solid color-mix(in srgb,var(--module) 15%,var(--border));border-radius:var(--radius-md);min-width:0;transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease);padding:20px;position:relative}.module-card:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--module) 40%,var(--border));transform:translateY(-4px)}.module-icon{width:44px;height:44px;color:var(--module);background:color-mix(in srgb,var(--module) 12%,var(--surface));border-radius:13px;place-items:center;display:grid}.module-card .zh{color:var(--module);font:600 23px Noto Sans SC;position:absolute;top:22px;right:18px}.module-card h3{margin:23px 0 7px;font-size:18px}.module-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.module-cta{color:var(--module);align-items:center;gap:6px;margin-top:18px;font-size:12px;font-weight:700;display:flex}.hsk-journey{grid-template-columns:repeat(7,1fr);display:grid;position:relative}.hsk-journey:before{content:"";background:var(--border);height:2px;position:absolute;top:23px;left:7%;right:7%}.hsk-journey a{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.hsk-journey a>span{background:var(--surface);border:2px solid var(--border);width:47px;height:47px;color:var(--muted);border-radius:50%;place-items:center;font-weight:800;display:grid}.hsk-journey a.current>span{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 7px color-mix(in srgb,var(--primary) 13%,transparent)}.hsk-journey small{color:var(--muted);font-size:10px}.level-tabs{scrollbar-width:thin;gap:8px;margin-bottom:16px;padding:2px 2px 16px;display:flex;overflow:auto}.level-tabs a{white-space:nowrap;border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:9px 14px;font-size:13px}.level-tabs a.active{background:var(--primary);border-color:var(--primary);color:#fff}.level-grid,.stat-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;display:grid}.level-grid>a,.stat-grid>article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:20px;display:flex}.level-grid b{color:var(--primary);font-size:20px}.level-grid span,.stat-grid span{color:var(--muted);font-size:12px}.list-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.word-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;transition:var(--ease);padding:19px;position:relative}.word-card:hover{border-color:var(--vocabulary);box-shadow:var(--shadow-md);transform:translateY(-3px)}.hanzi{color:var(--vocabulary);overflow-wrap:anywhere;font-family:Noto Sans SC,sans-serif;font-size:36px;font-weight:600;display:block}.word-card>b{margin:7px 0 5px;font-size:13px;line-height:1.5;display:block}.word-card p{color:var(--muted);min-height:38px;margin:0;font-size:12px}.learned{color:#16a34a;align-items:center;gap:4px;margin-top:12px;font-size:10px;font-weight:700;display:inline-flex}.notice,.inline-notice{color:var(--muted);font-size:12px}.inline-notice{background:var(--surface-alt);border:1px solid var(--border);border-radius:12px;margin-top:18px;padding:16px 18px}.learning-studio,.grammar-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:900px;box-shadow:var(--shadow-sm);margin:auto;padding:clamp(22px,5vw,52px)}.lesson-toolbar{justify-content:space-between;align-items:center;display:flex}.lesson-toolbar>a{color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex}.vocab-focus{text-align:center;padding:50px 12px}.vocab-focus .hanzi{font-size:clamp(52px,9vw,80px)}.vocab-focus h1{color:var(--primary);margin:12px 0;font-size:clamp(20px,3vw,25px);font-weight:600}.vocab-focus>p{max-width:620px;margin:0 auto;font-size:clamp(18px,2.5vw,21px)}.learning-actions{justify-content:center;gap:10px;margin-top:25px;display:flex}.round-action{background:var(--surface-alt);border:1px solid var(--border);width:46px;height:46px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;display:grid}.round-action.active{color:#ec4899;background:color-mix(in srgb,#ec4899 10%,var(--surface))}.round-action:disabled{opacity:.45}.lesson-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding-top:20px;display:flex}.lesson-footer p{color:var(--muted);margin:0;font-size:12px}.grammar-detail>header{padding:36px 0 18px}.grammar-detail>header h1{margin:8px 0;font:700 clamp(34px,6vw,52px) Noto Sans SC}.grammar-detail>header h2{color:var(--muted);font-size:20px}.section-card{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);padding:21px;margin:14px 0!important}.section-card h3{align-items:center;gap:9px;margin:0 0 14px;display:flex}.section-card h3 svg{color:var(--grammar)}.formula{background:color-mix(in srgb,var(--grammar) 10%,var(--surface));border-left:4px solid var(--grammar);border-radius:9px;padding:18px;font:600 clamp(18px,3vw,23px) Noto Sans SC}.examples{gap:10px;display:grid}.examples blockquote{border-left:3px solid var(--grammar);background:var(--surface);border-radius:10px;flex-direction:column;gap:4px;margin:0;padding:16px 18px;display:flex}.examples b,.zh-copy{font-family:Noto Sans SC,sans-serif}.examples span{color:var(--primary)}.examples small{color:var(--muted)}.content-list{flex-direction:column;gap:9px;display:flex}.content-list>a{background:var(--surface);border:1px solid var(--border);transition:var(--ease);border-radius:13px;align-items:center;gap:16px;padding:15px 18px;display:flex}.content-list>a:hover{border-color:var(--primary);transform:translate(3px)}.content-list>a>div{flex:1;min-width:0}.content-list h3{margin:0 0 4px;font-family:Noto Sans SC,sans-serif}.content-list p{color:var(--muted);margin:0;font-size:12px}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.skill-list article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:20px}.skill-card-head{justify-content:space-between;display:flex}.skill-list h3{font-family:Noto Sans SC;font-size:18px}.skill-list>article>p{color:var(--muted);font-size:13px}.skill-list details{border-top:1px solid var(--border);padding-top:12px}.skill-list summary{cursor:pointer;color:var(--module);font-weight:650}.zh-copy{white-space:pre-line;font-size:18px;line-height:1.9}.practice-panel{background:color-mix(in srgb,var(--module) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--module) 20%,var(--border));border-radius:var(--radius-lg);align-items:center;gap:22px;margin-bottom:22px;padding:24px;display:flex}.practice-panel h2,.practice-panel p{margin:0}.practice-panel p{color:var(--muted);font-size:13px}.mic-orb{background:var(--speaking);color:#fff;width:76px;height:76px;box-shadow:0 0 0 10px color-mix(in srgb,var(--speaking) 13%,transparent);border-radius:50%;flex:none;place-items:center;display:grid}.tian-grid{width:84px;height:84px;color:var(--writing);background:linear-gradient(45deg,transparent 49.5%,color-mix(in srgb,var(--writing) 30%,transparent) 50%,transparent 50.5%),linear-gradient(-45deg,transparent 49.5%,color-mix(in srgb,var(--writing) 30%,transparent) 50%,transparent 50.5%),linear-gradient(90deg,transparent 49.5%,color-mix(in srgb,var(--writing) 30%,transparent) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,color-mix(in srgb,var(--writing) 30%,transparent) 50%,transparent 50.5%);border:2px solid var(--writing);flex:none;place-items:center;font:42px Noto Sans SC;display:grid}.empty-state{text-align:center;min-height:220px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:38px;display:flex}.empty-state>svg{width:42px;height:42px;color:var(--primary)}.empty-state.loading>svg{animation:1s linear infinite spin}.empty-state.error>svg{color:var(--mock)}.empty-state h2{color:var(--text);margin:14px 0 4px;font-size:18px}.empty-state p{max-width:520px;margin:0;font-size:13px}.section-card .empty-state{min-height:130px;padding:18px}.hskk-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:minmax(260px,.7fr) 1fr;align-items:center;gap:30px;padding:20px;display:grid}.hskk-hero img{object-fit:cover;border-radius:15px;width:100%;height:310px}.hskk-hero h2{font-size:clamp(25px,4vw,38px)}.hskk-hero p{color:var(--muted)}.hskk-grid,.test-grid{grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px;display:grid}.hskk-grid article,.test-grid article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px}.hskk-grid article>b{color:var(--hskk);font-size:42px}.hskk-grid article p{color:var(--muted);font-size:12px}.hskk-grid article a{color:var(--hskk);align-items:center;font-size:13px;font-weight:700;display:flex}.test-grid article{border-top:4px solid var(--mock);position:relative}.test-grid article>svg{color:var(--mock);position:absolute;top:20px;right:20px}.test-level{color:var(--mock);font-weight:800}.test-grid h2{font-size:19px}.test-grid p,.test-meta{color:var(--muted);font-size:12px}.test-meta{flex-direction:column;gap:7px;margin:15px 0;display:flex}.test-meta span{gap:6px;display:flex}.stat-grid article svg{color:var(--primary)}.stat-grid article b{font-size:38px}.progress-list{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.progress-list article{--module:var(--primary);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px}.progress-list article>div{justify-content:space-between;margin-bottom:12px;display:flex}.progress-list article span{color:var(--muted);font-size:12px}.search-box{background:var(--surface);border:1px solid var(--border);width:min(850px,100%);height:58px;box-shadow:var(--shadow-sm);border-radius:15px;align-items:center;gap:12px;margin-bottom:20px;padding:0 16px;display:flex}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 12%,transparent)}.search-box>svg{color:var(--muted);flex:none}.search-box input{min-width:0;color:var(--text);white-space:nowrap;background:0 0;border:0;outline:0;flex:1}.search-box button{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.settings{max-width:720px}.settings fieldset,.settings label{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:0 0 12px;padding:19px}.settings fieldset p,.settings small{color:var(--muted);font-size:12px}.settings label{justify-content:space-between;align-items:center;display:flex}.settings label span{flex-direction:column;gap:5px;display:flex}.settings input{width:20px;height:20px;accent-color:var(--primary)}.segmented{background:var(--surface-alt);border-radius:11px;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;display:grid}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px}.segmented button.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm);font-weight:700}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@keyframes progress-in{0%{width:0}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1150px){.module-grid,.list-grid{grid-template-columns:repeat(3,1fr)}.dashboard-hero{grid-template-columns:1fr}.hero-stats{grid-template-columns:repeat(3,1fr)}.hero-stats>div{text-align:center;grid-template-rows:auto;grid-template-columns:1fr}.stat-icon{grid-row:auto;margin:auto}.hskk-grid,.test-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.topbar{height:66px}.top-search{flex:1;width:auto}.brand{min-width:0}.brand span{display:none}.menu-button{display:grid}.sidebar{transition:transform var(--ease);box-shadow:var(--shadow-md);top:66px;transform:translate(-105%)}.sidebar.open{transform:none}.nav-scrim{z-index:25;background:#0f172a66;border:0;position:fixed;inset:66px 0 0}.top-actions>.icon-button:first-child{display:none}main{margin:66px 0 0;padding:30px 22px 100px}footer{display:none}.mobile-nav{z-index:35;padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{color:var(--muted);flex-direction:column;align-items:center;gap:3px;padding:5px;font-size:10px;display:flex}.mobile-nav a.active{color:var(--primary);font-weight:700}.plan-grid{grid-template-columns:1fr}.hsk-journey{grid-template-columns:1fr;gap:0}.hsk-journey:before{width:2px;height:auto;inset:24px auto 24px 23px}.hsk-journey a{text-align:left;grid-template-rows:auto auto;grid-template-columns:47px 1fr;column-gap:14px;padding-bottom:14px;display:grid}.hsk-journey a>span{grid-row:1/3}.hsk-journey small{font-size:11px}.hskk-hero{grid-template-columns:1fr}.hskk-hero img{height:260px}.skill-list{grid-template-columns:1fr}}@media (width<=700px){.top-search kbd{display:none}.dashboard-hero{border-radius:22px;padding:28px 22px}.hero-stats{grid-template-columns:1fr}.hero-stats>div{text-align:left;grid-template-rows:auto auto;grid-template-columns:42px 1fr}.stat-icon{grid-row:1/3}.module-grid,.list-grid,.level-grid,.stat-grid,.progress-list,.hskk-grid,.test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header,.lesson-footer{flex-direction:column;align-items:flex-start}.practice-panel{align-items:flex-start}.hskk-hero{padding:14px}.content-list>a{padding:13px}.content-list .pill{display:none}}@media (width<=430px){main{padding:24px 14px 92px}.topbar{gap:10px;padding:0 13px}.top-search{font-size:12px}.dashboard-hero h1{font-size:36px}.module-grid,.list-grid,.level-grid,.stat-grid,.progress-list,.hskk-grid,.test-grid{grid-template-columns:1fr}.module-card{padding:18px}.word-card p{min-height:0}.page-header h1{font-size:38px}.learning-studio,.grammar-detail{border-radius:18px;padding:20px}.vocab-focus{padding:42px 0}.lesson-footer .button{width:100%}.practice-panel{flex-direction:column}.search-box{height:54px}.segmented{grid-template-columns:1fr}.hskk-hero img{height:220px}}.recording-runtime,.hanzi-practice,.mock-runtime{border:1px solid var(--border);background:var(--surface);border-radius:18px;margin:1rem 0;padding:1rem}.recording-actions,.hanzi-actions,.mock-runtime footer{flex-wrap:wrap;gap:.6rem;margin:.75rem 0;display:flex}.recording-waveform{align-items:center;gap:4px;height:42px;display:flex}.recording-waveform i{background:var(--primary);border-radius:4px;width:4px;height:8px}.recording-waveform.active i{animation:.8s ease-in-out infinite alternate wave}.tian-runtime{aspect-ratio:1;border:2px solid var(--primary);background:linear-gradient(90deg,transparent 49.5%,var(--border) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,var(--border) 50%,transparent 50.5%);width:280px;max-width:100%;margin:1rem auto}.question-palette{flex-wrap:wrap;gap:.35rem;display:flex}.question-palette button.answered{background:var(--primary);color:#fff}.question-palette button.flagged{outline:3px solid #f59e0b}.mock-runtime label{padding:.6rem;display:block}.mock-runtime textarea{width:100%;min-height:100px}@keyframes wave{to{height:34px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
