@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-vietnamese-800-normal-D4LFh2W4.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-800-normal-CA0HL1e4.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/be-vietnam-pro-latin-800-normal-BpHZASpI.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-800-normal-Cwp5p0gU.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--latin-font);background:var(--app-bg);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--brand:#9b2734;--brand-strong:#761d29;--brand-lift:#c95560;--brand-soft:#faecee;--brand-wash:#fff8f3;--accent:#3f7067;--accent-strong:#2f5a52;--accent-soft:#eaf4f0;--ink:#27232b;--muted:#6f6a74;--line:#e8dedb;--app-bg:#f7f2ee;--panel:#fff;--panel-soft:#fffaf7;--blue:var(--brand);--blue-soft:var(--brand-soft);--teal:var(--accent);--teal-soft:var(--accent-soft);--green:#148f5a;--green-soft:#e5f6ee;--red:#c7353f;--red-soft:#fde8ea;--amber:#a76507;--amber-soft:#fff4d7;--focus-ring:#9b273438;--radius-panel:16px;--radius-card:13px;--radius-control:10px;--sidebar-expanded:232px;--sidebar-collapsed:72px;--sidebar-radius:8px;--sidebar-item-size:44px;--sidebar-item-gap:5px;--sidebar-icon-size:17px;--sidebar-label-size:.84rem;--sidebar-label-weight:500;--sidebar-label-active-weight:600;--sidebar-active-bg:#ffebee;--sidebar-hover-bg:#fff6f3;--sidebar-paper:#fffaf7;--sidebar-paper-soft:#fff4f1;--sidebar-red-top:#a32433;--sidebar-red-mid:#7f1d2a;--sidebar-red-bottom:#38141c;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.22, .61, .36, 1);--motion-fast:.16s;--motion-medium:.22s;--latin-font:"Be Vietnam Pro", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--hanzi-font:"Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", SimHei, sans-serif}*{box-sizing:border-box}body{background:var(--app-bg);letter-spacing:-.012em;min-width:320px;min-height:100vh;margin:0;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;letter-spacing:-.008em}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}::selection{color:var(--ink);background:#c9556038}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.icon{flex:none;width:18px;height:18px}.app-shell{grid-template-columns:var(--sidebar-expanded) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns var(--motion-medium) var(--ease-out);display:grid}.mobile-brand-bar{display:none}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) minmax(0, 1fr)}.sidebar{background:var(--sidebar-paper);height:100vh;color:var(--ink);transition:background var(--motion-medium) var(--ease-out);border-right:1px solid #7f1d2a38;padding:0 14px 12px;position:sticky;top:0;overflow:hidden auto}.sidebar:before,.sidebar:after{display:none}.sidebar-inner{z-index:1;flex-direction:column;gap:14px;min-height:100%;display:flex;position:relative}.brand{background:var(--brand);min-height:76px;transition:background var(--motion-medium) var(--ease-out);border:0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;margin:0 -14px -2px;padding:14px;display:flex}.brand-copy{min-width:0;max-width:154px;max-height:52px;transition:max-width var(--motion-medium) var(--ease-out), max-height var(--motion-medium) var(--ease-out), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);flex:1;overflow:hidden}.brand-mark{border-radius:var(--sidebar-radius);color:#fff7ed;width:44px;height:44px;font-family:var(--hanzi-font);background:0 0;border:1px solid #fff7ed85;flex:0 0 44px;place-items:center;font-size:1.56rem;font-weight:900;line-height:1;display:grid;position:relative}.brand-mark:after{display:none}.brand strong,.brand span{display:block}.brand strong{color:#fffaf3;letter-spacing:0;font-size:.96rem;font-weight:650;line-height:1.16}.brand span{color:#fff7edd1;font-size:.79rem;font-weight:430;line-height:1.3}.sidebar-toggle{color:#fff7ed;width:32px;height:32px;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-medium) var(--ease-out);background:#fff7ed12;border:1px solid #fff7ed33;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.sidebar-toggle:hover{background:#fff7ed1f;border-color:#fff7ed52}.sidebar-toggle .icon{width:16px;height:16px}@keyframes rail-control-in{0%{opacity:0;transform:translate(-50%)translateY(5px)}to{opacity:1;transform:translate(-50%)}}@keyframes rail-avatar-in{0%{opacity:0;transform:translateY(5px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes account-menu-in{0%{opacity:0;transform:translateY(4px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.sidebar-kicker{max-width:160px;max-height:24px;color:var(--brand);letter-spacing:.06em;text-transform:uppercase;transition:max-width var(--motion-medium) var(--ease-out), max-height var(--motion-medium) var(--ease-out), margin var(--motion-medium) var(--ease-out), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);margin:4px 10px -2px;font-size:.72rem;font-weight:750;line-height:1.35;display:block;overflow:visible}.nav{gap:11px;display:grid}.nav-section{gap:var(--sidebar-item-gap);display:grid}.nav-section-tools{border-top:1px solid #582b271a;margin-top:2px;padding-top:11px}.nav-section-label{color:var(--brand);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:max-width var(--motion-medium) var(--ease-out), max-height var(--motion-medium) var(--ease-out), margin var(--motion-medium) var(--ease-out), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);margin:0 10px 3px;font-size:.7rem;font-weight:760;line-height:1.25;display:block;overflow:hidden}.nav .mobile-more-trigger,.mobile-more-scrim,.mobile-more-sheet{display:none}.nav button{min-height:var(--sidebar-item-size);border-radius:var(--sidebar-radius);color:#46343b;font-size:var(--sidebar-label-size);font-weight:var(--sidebar-label-weight);text-align:left;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #0000;align-items:center;gap:11px;padding:0 12px;display:inline-flex;position:relative}.nav button .icon{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);color:var(--brand-strong);transition:color var(--motion-fast) var(--ease-standard)}.nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:140px;transition:max-width var(--motion-medium) var(--ease-out), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);overflow:hidden}.nav button:hover{color:var(--brand-strong);background:var(--sidebar-hover-bg);border-color:#0000}.nav button.active{color:var(--brand-strong);background:var(--sidebar-active-bg);font-weight:var(--sidebar-label-active-weight);border-color:#0000}.nav button.active:before{content:none}.nav button.active .icon{color:var(--brand)}.sidebar-card{max-height:132px;transition:max-height var(--motion-medium) var(--ease-out), margin var(--motion-medium) var(--ease-out), padding var(--motion-medium) var(--ease-out), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-top:1px solid #582b271c;border-radius:0;margin:auto 0 8px;padding:10px 0 0;position:relative;overflow:visible}.sidebar-account-trigger{width:100%;min-height:42px;color:inherit;text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:5px 6px 5px 0;display:grid}.sidebar-account-trigger:hover,.sidebar-card.active .sidebar-account-trigger,.sidebar-account-trigger[aria-expanded=true]{background:#fff0f1c7;border-color:#9f273424}.sidebar-account-trigger:focus-visible{outline-offset:2px;outline:2px solid #9f27346b}.sidebar-user{align-items:center;gap:9px;min-width:0;display:inline-flex}.sidebar-avatar{color:#fff7ed;background:var(--brand);border-radius:999px;flex:0 0 32px;place-items:center;width:32px;height:32px;font-size:.84rem;font-weight:750;line-height:1;display:grid}.sidebar-user>span:last-child{gap:1px;min-width:0;display:grid}.sidebar-user-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:650;line-height:1.18;overflow:hidden}.sidebar-user small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.69rem;line-height:1.2;overflow:hidden}.sidebar-account-stat{color:var(--ink);white-space:nowrap;font-size:.92rem;font-weight:700;line-height:1.1}.sidebar-account-caret{width:24px;height:24px;color:var(--brand);transition:transform var(--motion-fast) var(--ease-standard);border-radius:999px;place-items:center;display:grid}.sidebar-account-trigger[aria-expanded=true] .sidebar-account-caret{transform:rotate(-90deg)}.sidebar-account-caret .icon{width:15px;height:15px}.sidebar-account-menu{z-index:8;animation:account-menu-in var(--motion-fast) var(--ease-out) both;background:#fffdfb;border:1px solid #582b271c;border-radius:10px;gap:6px;padding:8px;display:grid;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.sidebar-account-menu[hidden]{display:none}.sidebar-account-menu button{text-align:left;min-height:52px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;padding:8px;display:grid}.sidebar-account-menu button:hover,.sidebar-account-menu button:focus-visible{background:var(--brand-soft);border-color:#9f273421;outline:none}.sidebar-account-menu button>span:first-child{width:32px;height:32px;color:var(--brand);background:#fff0f1;border-radius:8px;place-items:center;display:grid}.sidebar-account-menu strong,.sidebar-account-menu small{display:block}.sidebar-account-menu strong{color:var(--ink);font-size:.82rem;font-weight:760}.sidebar-account-menu small{color:var(--muted);margin-top:2px;font-size:.68rem;font-weight:550;line-height:1.25}.sidebar-progress{background:#ede3de;border-radius:999px;height:6px;margin:9px 0 8px;overflow:hidden}.sidebar-progress span{width:var(--progress);border-radius:inherit;background:var(--brand);height:100%;display:block}.sidebar-card-meta{justify-content:space-between;align-items:center;gap:6px;display:flex}.sidebar-card-meta span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;font-weight:550;line-height:1.25;overflow:hidden}.sidebar-cta{color:#fff7ed;background:var(--brand);width:100%;min-height:36px;transition:background var(--motion-fast) var(--ease-standard);border:1px solid #7f1d2a1f;border-radius:8px;justify-content:center;align-items:center;gap:7px;margin-top:9px;font-size:.84rem;font-weight:650;line-height:1;display:inline-flex}.sidebar-cta:hover{background:var(--brand-strong)}.sidebar-cta .icon{color:#fff7ed}.app-shell.sidebar-collapsed .sidebar{background:var(--sidebar-paper);padding:0 14px 12px;overflow:visible}.app-shell.sidebar-collapsed .sidebar-inner{gap:12px}.app-shell.sidebar-collapsed .brand{background:var(--brand);flex-direction:row;justify-content:center;width:auto;min-height:76px;margin:0 -14px;padding:14px}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .sidebar-kicker,.app-shell.sidebar-collapsed .nav-section-label,.app-shell.sidebar-collapsed .nav button span{opacity:0;pointer-events:none;max-width:0;transform:translate(-4px)}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .sidebar-kicker,.app-shell.sidebar-collapsed .nav-section-label{max-height:0}.app-shell.sidebar-collapsed .sidebar-kicker,.app-shell.sidebar-collapsed .nav-section-label{margin-block:0;overflow:hidden}.app-shell.sidebar-collapsed .sidebar-card{width:var(--sidebar-item-size);min-height:var(--sidebar-item-size);max-height:var(--sidebar-item-size);opacity:1;background:0 0;border:0;place-items:center;margin:auto 0 54px;padding:0;display:grid;overflow:visible;transform:none}.app-shell.sidebar-collapsed .sidebar-account-trigger{background:var(--brand);width:40px;min-height:40px;animation:rail-avatar-in .16s var(--ease-out) 80ms both;border:1px solid #9f27342e;border-radius:999px;grid-template-columns:1fr;place-items:center;padding:0;display:grid}.app-shell.sidebar-collapsed .sidebar-user{gap:0}.app-shell.sidebar-collapsed .sidebar-avatar{color:#fff7ed;background:0 0;flex-basis:36px;width:36px;height:36px;font-size:.94rem;font-weight:760}.app-shell.sidebar-collapsed .sidebar-user-copy,.app-shell.sidebar-collapsed .sidebar-account-stat,.app-shell.sidebar-collapsed .sidebar-account-caret,.app-shell.sidebar-collapsed .sidebar-progress,.app-shell.sidebar-collapsed .sidebar-card-meta,.app-shell.sidebar-collapsed .sidebar-cta{display:none}.app-shell.sidebar-collapsed .sidebar-account-menu{width:230px;bottom:0;left:calc(100% + 10px);right:auto}.app-shell.sidebar-collapsed .brand-mark{flex-basis:44px;width:44px;height:44px;font-size:1.56rem}.app-shell.sidebar-collapsed .sidebar-toggle{z-index:2;width:var(--sidebar-item-size);height:38px;color:var(--brand);background:var(--sidebar-paper-soft);animation:rail-control-in .17s var(--ease-out) 90ms both;border-color:#9f27342e;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}.app-shell.sidebar-collapsed .sidebar-toggle:hover{background:#fff6f3;border-color:#9f273442;transform:translate(-50%)}.app-shell.sidebar-collapsed .nav,.app-shell.sidebar-collapsed .nav-section{gap:8px}.app-shell.sidebar-collapsed .nav-section-tools{margin-top:0;padding-top:10px}.app-shell.sidebar-collapsed .nav button{width:var(--sidebar-item-size);min-height:var(--sidebar-item-size);color:var(--brand-strong);justify-content:center;padding:0}.app-shell.sidebar-collapsed .nav button .icon{color:#6f2833}.app-shell.sidebar-collapsed .nav button:hover{color:var(--brand-strong);background:var(--sidebar-hover-bg);border-color:#0000;transform:none}.app-shell.sidebar-collapsed .nav button.active{background:var(--sidebar-active-bg);border-color:#0000}.app-shell.sidebar-collapsed .nav button.active .icon{color:var(--brand)}.main{min-width:0;padding:22px clamp(18px,2.2vw,34px) 30px}.topbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.topbar-title{align-items:center;gap:14px;min-width:0;display:inline-flex}.topbar-date{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:.86rem;font-weight:650;display:inline-flex}.topbar-date .icon{width:16px;height:16px}.app-update-banner{background:#fff6f3;border:1px solid #9f27342e;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px;padding:12px;display:grid}.app-update-banner>span{width:34px;height:34px;color:var(--brand);background:var(--brand-soft);border-radius:8px;place-items:center;display:grid}.app-update-banner strong,.app-update-banner small{display:block}.app-update-banner small{color:var(--muted);margin-top:2px;font-size:.8rem;line-height:1.45}.main.view-study .topbar,.main.view-mock .topbar{display:none}.topbar h1,.section-title h2,.focus-panel h2,.table-head h2,.settings-card h2,.data-card h2,.empty-state h2,.study-card h2{color:var(--ink);letter-spacing:0;margin:0}.topbar h1{font-size:clamp(1.35rem,2vw,2.12rem);font-weight:700;line-height:1.1}.view-dashboard .topbar h1{white-space:nowrap}.eyebrow{color:var(--blue);letter-spacing:.055em;text-transform:uppercase;margin:0 0 5px;font-size:.76rem;font-weight:700}.top-actions,.action-row,.answer-actions,.button-grid{flex-wrap:wrap;gap:8px;display:flex}.language-switcher{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.language-switcher select{min-height:32px;color:var(--ink);font:inherit;background:0 0;border:0}.primary-button,.ghost-button,.danger-button{border-radius:var(--radius-control);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:700;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.primary-button{color:#fff;background:var(--blue)}.ghost-button{color:var(--ink);border-color:var(--line);background:#fff}.danger-button{color:var(--red);background:var(--red-soft);border-color:#f4b7bd}.primary-button:hover{background:var(--brand-strong)}.ghost-button:hover{background:var(--brand-wash);border-color:#9f273442}.metrics-grid,.health-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:12px;display:grid}.metric,.readiness-banner,.progress-strip,.focus-panel,.queue-panel,.study-card,.review-panel,.mode-panel,.table-panel,.settings-card,.data-card,.empty-state{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel)}.metric{min-height:106px;padding:12px}.metric span,.metric small{display:block}.metric span{color:var(--muted);font-size:.78rem;font-weight:800}.metric strong{color:var(--ink);font-variant-numeric:tabular-nums;margin:8px 0 4px;font-size:clamp(1.28rem,1.75vw,1.82rem);line-height:1;display:block}.metric small{color:var(--muted);line-height:1.35}.readiness-banner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:12px;display:grid}.readiness-banner.ready{background:var(--green-soft);border-color:#b8ead7}.readiness-banner.needs-work{background:var(--amber-soft);border-color:#f3d291}.banner-icon{width:40px;height:40px;color:var(--ink);background:#ffffffa6;border-radius:8px;place-items:center;display:grid}.readiness-banner strong,.progress-strip strong,.checklist-row strong{color:var(--ink);display:block}.readiness-banner p{color:#5f4b1d;margin:4px 0 0;line-height:1.45}.progress-strip{grid-template-columns:1.1fr 1fr .8fr;gap:14px;margin-bottom:14px;padding:14px;display:grid}.progress-strip>div{gap:6px;display:grid}.progress-strip span,.progress-strip small,.session-strip span,.answer-hint{color:var(--muted);font-size:.82rem}.progress-track{background:#eee7e4;border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--brand);height:100%;display:block}.study-card .progress-track span{background:var(--brand)}.workbench,.study-layout,.lesson-layout,.plan-panel,.plan-rationale,.data-layout{gap:14px;display:grid}.workbench,.study-layout{grid-template-columns:minmax(0,1.4fr) minmax(320px,.7fr);align-items:start}.focus-panel,.queue-panel,.table-panel,.study-card,.review-panel,.mode-panel,.settings-card,.data-card,.empty-state{padding:20px}.lead{max-width:74ch;color:var(--muted);line-height:1.6}.today-checklist{gap:8px;margin:16px 0;display:grid}.checklist-row{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.check-index{color:#fff;background:var(--teal);border-radius:999px;place-items:center;width:28px;height:28px;font-size:.78rem;font-weight:900;display:grid}.checklist-row .icon{color:var(--blue)}.checklist-row small{color:var(--muted);margin-top:2px;line-height:1.35;display:block}.checklist-row b{color:var(--ink);white-space:nowrap}.queue-panel{gap:12px;display:grid}.queue-panel h3,.study-side h3,.queue-preview p{margin:0}.queue-preview{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:12px}.queue-title,.table-head,.study-meta,.detail-list div,.timeline-row,.lesson-bars div{justify-content:space-between;align-items:center;gap:10px;display:flex}.queue-title span{min-width:28px;color:var(--blue);background:var(--blue-soft);text-align:center;border-radius:999px;padding:2px 8px;font-weight:900}.queue-preview ul{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.queue-preview li{color:var(--muted);justify-content:space-between;gap:10px;display:flex}.queue-preview li span{color:var(--ink);font-weight:800}.today-dashboard{gap:14px;display:grid}.today-hero,.today-readiness-strip,.today-progress-panel,.today-queue-panel{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel)}.today-hero{background:var(--panel-soft);gap:14px;padding:18px;display:grid;overflow:hidden}.today-hero-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.today-hero h2,.today-progress-panel h2,.today-queue-panel h2{color:var(--ink);letter-spacing:-.025em;margin:0}.today-hero h2{max-width:840px;font-size:1.02rem;font-weight:700;line-height:1.12}.today-hero .eyebrow{display:none}.today-hero p{max-width:68ch;color:var(--muted);margin:7px 0 0;line-height:1.5}.today-lesson-badge{color:var(--brand-strong);background:#fff0f1d1;border:1px solid #0000;border-radius:999px;flex:none;align-items:center;gap:7px;padding:6px 9px;font-size:.78rem;font-weight:800;display:inline-flex}.today-lesson-badge small{color:var(--muted);font-size:.78rem;font-weight:650}.today-lesson-badge strong{color:var(--brand);font-weight:900}.today-plan{grid-template-columns:minmax(0,1fr) 260px;align-items:stretch;gap:12px;display:grid}.today-focus-card{border-radius:var(--radius-card);background:#fffdfbd1;border:1px solid #582b271a;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:96px;padding:14px 16px;display:grid}.today-focus-card>span:first-child{width:44px;height:44px;color:var(--brand);background:var(--brand-soft);border-radius:8px;place-items:center;display:grid}.today-focus-card strong,.today-focus-card small{display:block}.today-focus-card strong{color:var(--brand);font-variant-numeric:tabular-nums;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1}.today-focus-card small{color:var(--ink);font-family:var(--hanzi-font);margin-top:8px;font-size:1.05rem;font-weight:800;line-height:1.25}.today-plan-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.today-plan-item,.today-queue-row{border-radius:var(--radius-card);color:var(--ink);text-align:left;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);background:#fffdfbd1;border:1px solid #582b271a}.today-plan-item{grid-template-columns:auto minmax(0,1fr);gap:10px;min-height:82px;padding:12px;display:grid}.today-plan-item:hover,.today-queue-row:hover{background:#fff8f4;border-color:#9f27342e}.today-plan-icon,.today-queue-icon,.today-strip-icon{color:var(--brand);background:var(--brand-soft);border-radius:8px;place-items:center;display:grid}.today-plan-item[data-tone=today] .today-plan-icon,.today-queue-row[data-tone=today] .today-queue-icon{color:var(--accent);background:var(--accent-soft)}.today-plan-item[data-tone=wrong] .today-plan-icon,.today-queue-row[data-tone=wrong] .today-queue-icon{color:#d95d2f;background:#fff0e7}.today-plan-item[data-tone=lesson] .today-plan-icon,.today-queue-row[data-tone=lesson] .today-queue-icon{color:#5b68bd;background:#eef1ff}.today-plan-icon{width:38px;height:38px}.today-plan-item strong{color:var(--ink);font-size:1.35rem;line-height:1;display:block}.today-plan-item small,.today-plan-item em{color:var(--muted);font-style:normal;line-height:1.35;display:block}.today-plan-item small{margin-top:4px;font-weight:750}.today-plan-mobile-count{display:none}.today-plan-item em{grid-column:1/-1;font-size:.78rem}.today-start-card{border-radius:var(--radius-card);background:var(--brand-soft);border:1px solid #9f27341f;align-content:center;gap:8px;padding:14px;display:grid}.today-start-card>span{color:var(--muted);font-size:.78rem;font-weight:700}.today-start-card>strong{color:var(--ink);line-height:1.25}.today-start-button{width:100%;margin-top:4px}.today-readiness-strip{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 12px;display:grid}.today-readiness-strip.ready{background:#dff7f2b8;border-color:#0f766e2e}.today-readiness-strip.needs-work{background:#fff4d7bd;border-color:#e59e0b38}.today-strip-icon{width:36px;height:36px;color:var(--amber);background:#ffffff9e}.today-readiness-strip.ready .today-strip-icon{color:var(--accent)}.today-readiness-strip strong{color:var(--ink)}.today-readiness-strip p{color:#6b5a37;margin:2px 0 0;font-size:.86rem}.today-strip-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;font-size:.78rem;font-weight:700;display:inline-flex}.today-strip-meta .ghost-button{min-height:34px;padding-inline:10px}.today-grid{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);align-items:stretch;gap:12px;display:grid}.today-progress-panel,.today-queue-panel{padding:18px}.today-progress-stack,.today-queue-list{gap:9px;margin-top:14px;display:grid}.today-progress-row{border-radius:var(--radius-card);background:var(--panel-soft);border:1px solid #582b2714;gap:7px;padding:11px 12px;display:grid}.today-progress-row>div:first-child{justify-content:space-between;gap:10px;display:flex}.today-progress-row span{color:var(--muted);font-size:.82rem}.today-progress-row strong{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.today-progress-track[data-tone=accent] span{background:var(--accent)}.today-progress-track[data-tone=brand] span{background:var(--brand)}.today-progress-track[data-tone=warning] span{background:var(--amber)}.today-mini-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.today-mini-stats>div{border-radius:var(--radius-card);background:#fff8f4;min-width:0;padding:10px}.today-mini-stats strong,.today-mini-stats span,.today-mini-stats small{display:block}.today-mini-stats strong{color:var(--ink);font-size:1.15rem}.today-mini-stats span{color:var(--ink);margin-top:2px;font-size:.78rem;font-weight:760}.today-mini-stats small{color:var(--muted);margin-top:2px;font-size:.72rem;line-height:1.25}.today-queue-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:74px;padding:11px 12px;display:grid}.today-queue-icon{width:38px;height:38px}.today-queue-copy{gap:5px;min-width:0;display:grid}.today-queue-copy strong{color:var(--ink)}.today-queue-copy small{color:var(--muted);line-height:1.35}.today-queue-preview{flex-wrap:wrap;gap:5px;display:flex}.hanzi-chip{min-width:32px;min-height:28px;color:var(--ink);font-family:var(--hanzi-font);background:#fff0f1;border-radius:8px;place-items:center;padding:2px 8px;font-weight:800;display:inline-grid}.today-queue-count{min-width:32px;height:32px;color:var(--brand);background:var(--brand-soft);border-radius:999px;place-items:center;font-weight:900;display:grid}.today-queue-row[data-tone=today] .today-queue-count{color:var(--accent);background:var(--accent-soft)}.today-queue-row[data-tone=wrong] .today-queue-count{color:#d95d2f;background:#fff0e7}.today-queue-row[data-tone=lesson] .today-queue-count{color:#5b68bd;background:#eef1ff}.study-card{border-radius:18px;align-content:start;gap:16px;display:grid}.study-direction-bar{border-radius:var(--radius-card);background:#faf7f5;border:1px solid #582b271a;grid-template-columns:minmax(150px,.62fr) minmax(310px,1fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.study-direction-copy,.study-direction-copy strong,.study-direction-copy small{display:block}.study-direction-controls{gap:7px;display:grid}.study-direction-copy strong{color:var(--ink);font-size:.8rem;font-weight:700}.study-direction-copy small{color:var(--muted);margin-top:2px;font-size:.72rem;line-height:1.35}.study-direction-switch{background:#fff;border:1px solid #582b271a;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.study-direction-switch button{min-height:38px;color:var(--muted);transition:color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:700}.study-direction-switch button:hover{color:var(--ink);background:#faf5f2}.study-direction-switch button.active{color:#fff;background:var(--brand)}.study-direction-switch button span{opacity:.7;margin:0 3px}.study-alternate-toggle{width:fit-content;color:var(--muted);cursor:pointer;align-items:flex-start;gap:8px;display:flex}.study-alternate-toggle input{width:16px;height:16px;accent-color:var(--brand);flex:none;margin:2px 0 0}.study-alternate-toggle span,.study-alternate-toggle strong,.study-alternate-toggle small{display:block}.study-alternate-toggle strong{color:var(--ink);font-size:.72rem;font-weight:700;line-height:1.3}.study-alternate-toggle small{margin-top:1px;font-size:.68rem;line-height:1.35}.session-strip{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:minmax(180px,auto) minmax(0,1fr);align-items:center;gap:14px;padding:0 0 14px;display:grid}.session-strip strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;display:block}.study-meta{flex-wrap:wrap;justify-content:flex-start}.study-meta span,.mini-stats span,.status{border-radius:8px;min-height:28px;padding:5px 9px;font-size:.78rem;font-weight:800}.study-meta span,.mini-stats span{color:#344054;background:#eef2f7}.prompt{border-radius:var(--radius-card);background:#fffaf8;border:1px solid #9b27341c;gap:10px;padding:18px;display:grid;position:relative}.prompt-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.prompt-head .eyebrow{margin:0}.answer-help{justify-self:end;position:relative}.answer-help summary{border:1px solid var(--line);border-radius:var(--radius-control);min-height:32px;color:var(--muted);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:0 9px;font-size:.76rem;font-weight:800;line-height:1;list-style:none;display:inline-flex}.answer-help summary::-webkit-details-marker{display:none}.answer-help[open] summary{color:var(--brand);background:var(--brand-soft);border-color:#9f273438}.answer-help-popover{z-index:6;border-radius:var(--radius-card);text-align:left;background:#fff;border:1px solid #582b271f;gap:6px;width:min(300px,100vw - 40px);padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.answer-help-popover p{color:var(--muted);margin:0;font-size:.78rem;font-weight:560;line-height:1.45}.prompt h2{max-width:28ch;font-family:var(--latin-font);letter-spacing:-.03em;font-size:clamp(1.45rem,2vw,2.2rem);font-weight:700;line-height:1.18}.prompt.prompt-hanzi h2{max-width:none;font-family:var(--hanzi-font);letter-spacing:.045em;font-size:clamp(2.8rem,5.4vw,5.2rem);font-weight:800;line-height:1.05}.hanzi-cell,.brand-mark,.char-tabs button,.stroke-lab-head h3,.exam-hanzi,.fragment-bank button{font-family:var(--hanzi-font)}.pinyin{color:var(--amber);font-family:var(--latin-font);letter-spacing:0;font-size:.98rem;font-weight:750}.example{border-left:3px solid var(--brand);border-radius:var(--radius-control);background:var(--blue-soft);color:#2a3b68;gap:8px;padding:12px;display:grid}.answer-form{gap:10px;display:grid}.answer-form label,.settings-card label{color:var(--muted);gap:6px;font-size:.82rem;font-weight:800;display:grid}.answer-form input{width:100%;min-height:66px;color:var(--ink);border:2px solid #cfc4c2;border-radius:12px;outline:none;padding:10px 14px;font-size:clamp(1.45rem,2.4vw,2.2rem);font-weight:600;line-height:1}.answer-form-vi-to-zh input{font-family:var(--hanzi-font);font-weight:700}.answer-form-zh-to-vi input{font-family:var(--latin-font);font-size:clamp(1.15rem,1.7vw,1.5rem)}.answer-form input::placeholder{color:#778196;opacity:.55;font-size:clamp(1.25rem,2vw,1.8rem)}.answer-form input:focus{border-color:var(--blue);outline:3px solid var(--focus-ring);outline-offset:2px}.answer-toggle.active{color:var(--brand);background:var(--brand-soft);border-color:#efbcc2}.answer-form input.is-correct{border-color:var(--green);background:var(--green-soft)}.answer-form input.is-wrong{border-color:var(--red);background:var(--red-soft)}.answer-hint{margin:-2px 0 0;line-height:1.45}.feedback{border-radius:var(--radius-card);align-items:center;gap:12px;padding:12px;font-weight:700;display:flex}.feedback.good{color:var(--green);background:var(--green-soft)}.feedback.bad{color:var(--red);background:var(--red-soft)}.neko-shell{z-index:24;pointer-events:none;position:fixed;inset:0}.neko-launcher{color:#fff;background:var(--brand);width:58px;height:58px;transition:transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-standard);pointer-events:auto;border:1px solid #ffffffa3;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:24px;right:24px;box-shadow:0 14px 34px #661a253d}.neko-launcher:hover{background:var(--brand-strong);transform:translateY(-2px)}.neko-launcher:active{transform:scale(.97)}.neko-launcher .icon{width:24px;height:24px}.neko-launcher:after{color:var(--ink);content:attr(data-label);opacity:0;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-out);white-space:nowrap;pointer-events:none;background:#fff;border:1px solid #582b271a;border-radius:8px;padding:6px 9px;font-size:.72rem;font-weight:750;position:absolute;right:calc(100% + 10px);transform:translate(4px);box-shadow:0 8px 22px #492a261c}.neko-launcher:hover:after,.neko-launcher:focus-visible:after{opacity:1;transform:translate(0)}.neko-shell.is-open .neko-launcher:after{display:none}.neko-launcher-dot{background:var(--accent);border:3px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:3px;right:3px}.neko-panel-scrim{display:none}.neko-panel{pointer-events:auto;background:#fffdfb;border:1px solid #582b2724;border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;width:min(430px,100vw - 32px);height:min(700px,100dvh - 126px);display:grid;position:absolute;bottom:96px;right:24px;overflow:hidden;box-shadow:0 22px 56px #4d1d2233}.neko-panel-head{border-bottom:1px solid var(--line);background:#fffdfbf5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:10px 12px 10px 14px;display:grid}.neko-panel-brand,.neko-state-icon{width:38px;height:38px;color:var(--brand);background:var(--brand-soft);border-radius:11px;place-items:center;display:grid}.neko-panel-title{min-width:0;line-height:1.25;display:grid}.neko-panel-title strong{font-size:.96rem;font-weight:800}.neko-panel-title small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.neko-panel-title small span{font-family:var(--hanzi-font)}.neko-panel-actions{align-items:center;gap:2px;display:flex}.neko-icon-button{width:36px;height:36px;color:var(--muted);transition:color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.neko-icon-button:hover{color:var(--brand-strong);background:var(--brand-soft)}.neko-panel-menu{position:relative}.neko-panel-menu summary{list-style:none}.neko-panel-menu summary::-webkit-details-marker{display:none}.neko-panel-menu-popover{z-index:1;border:1px solid var(--line);background:#fff;border-radius:10px;min-width:150px;padding:5px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #492a2624}.neko-panel-menu-popover button{width:100%;min-height:38px;color:var(--ink);background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:7px 9px;font-size:.76rem;font-weight:700;display:flex}.neko-panel-menu-popover button:hover{color:var(--brand-strong);background:var(--brand-soft)}.neko-panel-body{overscroll-behavior:contain;scrollbar-color:#9b27343d transparent;align-content:start;gap:12px;min-height:0;padding:14px;display:grid;overflow-y:auto}.neko-panel-state{color:var(--muted);text-align:center;align-content:center;justify-items:center;padding:32px}.neko-panel-state>strong{color:var(--ink);font-size:1rem}.neko-panel-state>p{max-width:30ch;margin:0;font-size:.82rem;line-height:1.55}.neko-panel-state .primary-button{margin-top:4px}.neko-panel-locked .neko-state-icon{color:var(--muted);background:#f3efed}.neko-empty{text-align:center;justify-items:center;gap:6px;padding:18px 12px 10px;display:grid}.neko-empty-mark{width:54px;height:54px;color:var(--brand);background:var(--brand-soft);font-family:var(--hanzi-font);border-radius:15px;place-items:center;font-size:1.5rem;font-weight:800;display:grid}.neko-empty strong{color:var(--ink);margin-top:3px;font-size:.94rem}.neko-empty p{max-width:34ch;color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.neko-notice{color:#5f464d;background:var(--brand-wash);border-radius:8px;margin:0;padding:9px 10px;font-size:.77rem;line-height:1.5}.neko-clear-confirm{background:#fff8f6;border:1px solid #9b27342b;border-radius:11px;gap:8px;padding:12px;display:grid}.neko-clear-confirm>strong{color:var(--ink);font-size:.86rem}.neko-clear-confirm p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.5}.neko-clear-confirm>div{flex-wrap:wrap;gap:7px;display:flex}.neko-clear-confirm button{min-height:36px;padding:6px 10px;font-size:.74rem}.neko-thread-wrap,.neko-thread{display:grid}.neko-thread{gap:10px;margin:0;padding:0;list-style:none}.neko-message,.neko-pending-question{border-radius:12px;gap:5px;width:min(88%,34rem);padding:10px 12px;display:grid}.neko-message>div{align-items:baseline;gap:7px;display:flex}.neko-message>div strong,.neko-pending-question>strong{color:var(--ink);font-size:.71rem}.neko-message>div span{color:var(--brand);font-family:var(--hanzi-font);font-size:.76rem}.neko-message-learner,.neko-pending-question{color:#4d2a30;background:#f8e8e8;justify-self:end}.neko-message-tutor{color:#433b3e;background:#f4f1ef;justify-self:start}.neko-streaming-answer.is-empty{display:none}.neko-streaming-answer p{white-space:pre-wrap}.neko-message p,.neko-pending-question p,.neko-error p{margin:0;font-size:.84rem;line-height:1.58}.neko-loading{color:var(--brand-strong);align-items:center;gap:9px;font-size:.8rem;font-weight:750;display:flex}.neko-loading .compact-button{min-height:32px;margin-left:auto;padding:5px 8px}.neko-pulse{background:var(--brand-lift);border-radius:50%;width:9px;height:9px;animation:1.35s ease-in-out infinite neko-pulse}@keyframes neko-pulse{50%{opacity:.35}}.neko-cancelled{color:var(--muted);background:#f4f1ef;border-radius:8px;padding:9px 10px;font-size:.78rem;line-height:1.45}.neko-suggestions{flex-wrap:wrap;gap:7px;display:flex}.neko-suggestions button{color:var(--brand-strong);text-align:left;background:#fff;border:1px solid #9b27342b;border-radius:999px;padding:7px 9px;font-size:.7rem;font-weight:720}.neko-suggestions button:hover{background:var(--brand-soft);border-color:#9b27345c}.neko-composer{border-top:1px solid var(--line);background:#fffdfb;padding:11px 12px 12px}.neko-question-form{transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);background:#fff;border:1px solid #d8c8c7;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:5px;display:grid}.neko-question-form:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.neko-question-form input{min-width:0;min-height:38px;color:var(--ink);background:0 0;border:0;outline:0;padding:7px 9px}.neko-send-button{color:#fff;background:var(--brand);border:0;border-radius:10px;place-items:center;width:38px;height:38px;padding:0;display:grid}.neko-send-button:hover{background:var(--brand-strong)}.neko-error{color:var(--red);background:var(--red-soft);border-radius:9px;gap:9px;padding:11px;display:grid}.neko-error button{justify-self:start}.study-side{align-self:start;gap:14px;display:grid}.review-panel,.mode-panel{border-radius:var(--radius-panel);gap:12px;display:grid}.review-panel.review-panel-empty{display:none}.review-panel h3,.mode-panel h3,.study-side h3{margin:0}.panel-heading{gap:2px;display:grid}.panel-heading .eyebrow{margin:0}.stroke-lab{border-radius:var(--radius-panel);background:#faf7f5;border:1px solid #582b271f;gap:12px;padding:14px;display:grid}.stroke-lab-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.stroke-lab-head h3{margin:0}.stroke-lab-head span{min-width:42px;color:var(--blue);background:var(--blue-soft);text-align:center;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:900}.char-tabs,.stroke-actions{flex-wrap:wrap;gap:6px;display:flex}.char-tabs button{border:1px solid var(--line);min-width:40px;min-height:44px;color:var(--ink);background:#fff;border-radius:8px;font-size:1.1rem;font-weight:900}.char-tabs button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.stroke-target{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-card);touch-action:none;background:linear-gradient(90deg,#0000 49.5%,#9f273424 50%,#0000 50.5%),linear-gradient(#0000 49.5%,#9f273424 50%,#0000 50.5%),#fff;place-items:center;width:min(100%,280px);margin:0 auto;display:grid}.stroke-target svg,.stroke-target canvas{width:100%;height:100%;display:block}.stroke-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stroke-actions button{min-height:44px;padding:0 10px}.stroke-status{border-radius:var(--radius-control);color:#475467;background:#eef2f7;min-height:34px;margin:0;padding:8px 10px;font-size:.82rem;font-weight:800;line-height:1.35}.stroke-status[data-status=quiz]{color:var(--amber);background:var(--amber-soft)}.stroke-status[data-status=ready]{color:var(--green);background:var(--green-soft)}.stroke-status[data-status=error]{color:var(--red);background:var(--red-soft)}.stroke-locked{background:#fffdfb;padding:12px}.stroke-lock-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;display:grid}.stroke-lock-icon{width:36px;height:36px;color:var(--brand);background:var(--brand-soft);border-radius:8px;place-items:center;display:grid}.stroke-lock-icon .icon{width:18px;height:18px}.stroke-lock-row strong,.stroke-lock-row small{display:block}.stroke-lock-row strong{color:var(--ink);font-size:.98rem}.stroke-lock-row small{color:var(--muted);margin:0;font-size:.8rem;line-height:1.35}.stroke-lock-row>.icon:last-child{color:#8b6264}.detail-list{gap:8px;margin:0;display:grid}.detail-list div{border-bottom:1px solid var(--line);padding:10px 0}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:900}.mode-box{grid-template-columns:1fr 1fr;gap:8px;display:grid}.detail-list dd,.lesson-progress-badge,.today-mini-stats strong,.today-queue-count,.sidebar-account-stat,.sidebar-card-meta{font-variant-numeric:tabular-nums}.lesson-layout{grid-template-columns:220px minmax(0,1fr)}.lesson-picker{align-self:start;gap:6px;max-height:calc(100vh - 140px);display:grid;overflow:auto}.lesson-picker button{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;min-height:44px;padding:0 10px;display:flex}.lesson-picker button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.table-head{align-items:flex-start;margin-bottom:12px}.mini-stats{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.table-wrap{border:1px solid var(--line);border-radius:8px;max-width:100%;margin-top:12px;overflow:auto}table{border-collapse:collapse;background:#fff;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}th{z-index:1;color:#475467;text-transform:uppercase;background:#f1f4f9;font-size:.78rem;position:sticky;top:0}td{color:#344054;line-height:1.4}.hanzi-cell{color:var(--ink);font-size:1.25rem;font-weight:900}.status.good{color:var(--green);background:var(--green-soft)}.status.bad{color:var(--red);background:var(--red-soft)}.status.neutral{color:var(--blue);background:var(--blue-soft)}.exam-intro,.exam-runner,.exam-results{gap:14px;display:grid}.exam-hero,.exam-note,.exam-question,.result-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:18px}.exam-hero{gap:14px;display:grid}.exam-hero h2,.result-card h2{color:var(--ink);margin:0;font-size:clamp(1.7rem,3vw,3rem);line-height:1.05}.exam-hero p,.exam-note p,.result-card p{max-width:78ch;color:var(--muted);margin:0;line-height:1.6}.exam-spec-grid,.exam-set-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.exam-set-card{border:1px solid var(--line);min-height:132px;color:var(--ink);text-align:left;background:#fff;border-radius:8px;gap:7px;padding:12px;display:grid}.exam-set-card span{color:var(--blue);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:900}.exam-set-card strong{font-size:1rem;line-height:1.2}.exam-set-card small{color:var(--muted);font-weight:750;line-height:1.35}.exam-set-card.active{border-color:var(--blue);background:var(--blue-soft)}.exam-source-note{background:var(--green-soft);border:1px solid #b8ead7;border-radius:8px;gap:6px;padding:12px;display:grid}.exam-source-note strong{color:#08603a}.exam-source-note p{color:#235244;max-width:none}.exam-blueprint{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exam-blueprint li{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:82px 68px minmax(0,1fr);align-items:start;gap:8px;padding:10px;display:grid}.exam-blueprint strong,.exam-blueprint span{color:var(--ink);font-weight:900}.exam-blueprint small{color:var(--muted);line-height:1.35}.exam-status{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.exam-status h2,.exam-question h3{color:var(--ink);margin:0}.exam-clock{min-height:44px;color:var(--blue);background:var(--blue-soft);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-weight:900;display:inline-flex}.exam-progress{color:var(--muted);gap:8px;font-size:.86rem;font-weight:750;display:grid}.exam-question{gap:14px;display:grid}.exam-question-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.exam-question-head>span{min-height:28px;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:900}.audio-button{min-width:128px}.exam-hanzi{color:var(--ink);margin:0;font-size:clamp(2rem,5vw,4rem);font-weight:800;line-height:1.05}.exam-statement{color:var(--ink);font-family:var(--hanzi-font);margin:0;font-size:clamp(1.3rem,3vw,2.2rem);font-weight:850;line-height:1.28}.exam-passage,.exam-order-lines,.exam-cue,.exam-question-line{color:var(--ink);font-family:var(--hanzi-font);margin:0}.exam-passage,.exam-order-lines{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:8px;padding:14px;font-size:clamp(1.05rem,2.2vw,1.45rem);line-height:1.65;display:grid}.exam-order-lines p{margin:0}.exam-cue,.exam-question-line{font-size:clamp(1.05rem,2vw,1.35rem);font-weight:850}.exam-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.exam-options button{border:1px solid var(--line);min-height:56px;color:var(--ink);text-align:left;background:#fff;border-radius:8px;padding:12px;font-weight:800;line-height:1.35}.exam-options button.selected{color:#fff;border-color:var(--blue);background:var(--blue)}.fragment-bank{flex-wrap:wrap;gap:8px;display:flex}.fragment-bank button{min-width:74px;font-size:1.05rem;font-weight:850}.exam-text-answer{color:var(--muted);gap:8px;font-size:.82rem;font-weight:800;display:grid}.exam-text-answer input,.exam-text-answer textarea{width:100%;min-height:58px;color:var(--ink);font-family:var(--hanzi-font);background:#fff;border:2px solid #b8c2d6;border-radius:8px;outline:none;padding:12px;font-size:1.45rem;font-weight:750;line-height:1.35}.exam-text-answer textarea{resize:vertical;min-height:132px}.exam-text-answer input:focus,.exam-text-answer textarea:focus{border-color:var(--blue);outline:3px solid var(--focus-ring);outline-offset:2px}.compact-button{justify-self:start}.exam-nav{grid-template-columns:auto auto minmax(180px,1fr);gap:8px;display:grid}.exam-nav .primary-button{justify-self:end}.result-card{gap:14px;display:grid}.result-card>strong{color:var(--blue);font-size:clamp(2rem,6vw,4rem);line-height:1}.exam-score-line{background:var(--blue-soft);border:1px solid #d7e1fb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.exam-score-line span{color:var(--muted);font-weight:850}.exam-score-line b{color:var(--blue);font-size:1.4rem}.exam-score-line em{color:var(--ink);font-style:normal;font-weight:900}.plan-panel{grid-template-columns:300px minmax(0,1fr)}.plan-rationale{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.plan-rationale article{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:14px;display:grid}.plan-rationale span{color:#fff;background:var(--teal);border-radius:999px;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.plan-rationale strong{color:var(--ink)}.plan-rationale p{color:var(--muted);margin:0;line-height:1.5}.settings-card{align-self:start;gap:14px;display:grid}.settings-card input,.settings-card select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:#fff;border-radius:8px;padding:0 12px;font-weight:700}.settings-card input:focus,.settings-card select:focus{outline:3px solid var(--focus-ring);outline-offset:2px;background:#fffdfb;border-color:#9f27346b}.settings-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);align-items:start;gap:14px;display:grid}.account-settings-layout{grid-template-columns:minmax(0,1.08fr) minmax(280px,.68fr)}.account-hero-card{background:#fff6f3;border-color:#9f27341f;grid-column:1/-1;padding:18px;position:relative;overflow:hidden}.account-hero-card:after{content:"";pointer-events:none;border:1px solid #9f273414;border-radius:50%;width:190px;height:190px;position:absolute;bottom:-88px;right:-54px}.account-hero-main{z-index:1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid;position:relative}.account-hero-main h2,.account-hero-main p,.settings-helper{margin:0}.account-hero-main h2{color:var(--ink);font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.08}.account-hero-main p,.settings-helper{color:var(--muted);line-height:1.5}.account-hero-avatar{border-radius:14px;flex-basis:58px;width:58px;height:58px}.account-hero-stats{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid;position:relative}.account-hero-stats span{background:#ffffffc2;border:1px solid #9f27341a;border-radius:8px;gap:3px;min-width:0;min-height:82px;padding:12px;display:grid}.account-hero-stats small,.account-hero-stats em{color:var(--muted);font-style:normal;line-height:1.35}.account-hero-stats small{font-size:.75rem;font-weight:800}.account-hero-stats strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.2rem;line-height:1.05}.account-hero-stats em{font-size:.74rem}.profile-settings-card{grid-column:auto}.settings-rhythm-card{grid-column:1/-1}.account-data-card{align-self:stretch}.settings-wide-action{width:100%}.settings-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.settings-card-head h2,.settings-card-head p{margin:0}.account-settings-layout .settings-card-head h2{font-size:clamp(1.16rem,2vw,1.42rem);line-height:1.16}.settings-save-state,.settings-card-icon{min-height:32px;color:var(--brand);background:var(--brand-soft);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;font-size:.76rem;font-weight:800;display:inline-flex}.settings-save-state{gap:6px;padding:0 10px}.settings-save-state .icon{width:15px;height:15px}.settings-card-icon{width:34px;height:34px}.settings-profile-preview{background:var(--panel-soft);border:1px solid #9f27341f;border-radius:8px;align-items:center;gap:14px;padding:14px 16px;display:flex}.settings-avatar-preview{color:#fff7ed;background:var(--brand);border-radius:999px;flex:0 0 54px;place-items:center;width:54px;height:54px;font-size:1.22rem;font-weight:850;display:grid}.settings-profile-preview h2,.settings-profile-preview p,.settings-profile-preview small,.settings-note p{margin:0}.settings-profile-preview small,.settings-note p{color:var(--muted);line-height:1.5}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.settings-form-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-field{min-width:0}.settings-field>span{color:var(--muted);font-size:.78rem;font-weight:800}.settings-field-short{max-width:180px}.settings-note{background:#fff8f4;border:1px solid #9f27341a;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:11px 12px;display:grid}.settings-note>span{color:#a96c00;background:#fff3d7;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.settings-toggle-row{background:#fffdfb;align-items:center}.settings-toggle-row span{gap:2px;display:grid}.settings-toggle-row small{color:var(--muted);font-size:.76rem;font-weight:560}.version-settings-card{grid-column:1/-1}.version-summary{background:#fffdfb;border:1px solid #9f27341a;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.version-summary strong,.version-summary small{display:block}.version-summary strong{color:var(--ink);margin-top:6px;font-size:1.06rem}.version-summary small,.version-message,.version-detail-grid small{color:var(--muted);line-height:1.5}.version-status{min-height:26px;color:var(--muted);background:#f4efec;border-radius:999px;align-items:center;padding:0 9px;font-size:.72rem;font-weight:850;display:inline-flex}.version-status-current{color:var(--accent);background:var(--accent-soft)}.version-status-available{color:var(--brand);background:var(--brand-soft)}.version-status-offline,.version-status-unknown{color:var(--amber);background:var(--amber-soft)}.version-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.version-detail-grid span{background:#fffaf8;border:1px solid #9f273414;border-radius:8px;gap:3px;min-width:0;padding:10px;display:grid}.version-detail-grid strong{color:var(--ink);font-size:.82rem}.version-update-note{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.version-message{margin:0;font-size:.84rem}.timeline{gap:8px;display:grid}.timeline-row{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px}.timeline-row.today{border-color:var(--blue);background:var(--blue-soft)}.timeline-row span{color:var(--blue);flex:0 0 72px;font-weight:900}.timeline-row strong{flex:260px}.timeline-row small{color:var(--muted);flex:1.2 320px}.data-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.data-card{gap:12px;display:grid}.data-card.wide{grid-column:1/-1}.data-card p,.muted,.fine-print,.empty-block{color:var(--muted);line-height:1.55}.toggle-row{border:1px solid var(--line);background:var(--panel-soft);color:#344054;border-radius:8px;align-items:flex-start;gap:10px;padding:12px;font-weight:800;line-height:1.45;display:flex}.toggle-row input{width:18px;height:18px;accent-color:var(--blue);margin-top:2px}.file-box{grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.file-picker,.file-name{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:inline-flex}.file-picker{color:var(--ink);cursor:pointer;font-weight:850}.file-name{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.button-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.health-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.lesson-bars{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.lesson-bars div{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:8px}.qa-panel{border:1px solid var(--line);border-radius:8px;gap:8px;margin-bottom:12px;padding:14px;display:grid}.qa-panel.good{background:var(--green-soft);border-color:#b8ead7}.qa-panel.warning{background:var(--amber-soft);border-color:#f3d291}.qa-panel strong{color:var(--ink)}.qa-panel p{color:#5f4b1d;margin:0}.qa-panel ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.qa-panel li{background:#ffffffa6;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.qa-panel small{color:var(--muted)}meter{width:100%}.empty-state{max-width:720px}.empty-block{background:#fff;border:1px dashed #b8c2d6;border-radius:8px;padding:24px}.page-stack{gap:14px;display:grid}.page-hero,.lesson-picker-panel,.lesson-progress-card,.recovery-metric,.recovery-preview,.plan-principle,.data-quality-card{border:1px solid var(--line);background:var(--panel);border-radius:8px}.page-hero{background:#fffaf7;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.page-hero-copy{min-width:0}.page-hero-copy h2{color:var(--ink);letter-spacing:0;margin:0;font-size:clamp(1.28rem,2vw,2rem);line-height:1.12}.page-hero-copy p:not(.eyebrow){max-width:68ch;color:var(--muted);margin:7px 0 0;line-height:1.55}.page-hero-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;display:flex}.lesson-workspace{grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.lesson-picker-panel{align-self:start;padding:12px}.panel-kicker{color:var(--ink);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.panel-kicker small{color:var(--muted);font-size:.76rem;font-weight:740}.lesson-picker{gap:7px;max-height:calc(100vh - 206px);padding-right:2px;display:grid;overflow:auto}.lesson-picker button{color:#4b3640;text-align:left;min-height:46px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffdfb;border:1px solid #9f27341f;border-radius:8px;grid-template-columns:auto minmax(42px,1fr) auto;align-items:center;gap:9px;padding:8px 9px;display:grid}.lesson-picker button:hover{background:#fff8f6;border-color:#9f273447}.lesson-picker button.active{color:var(--brand);background:var(--brand-soft);border-color:#9f273452;transform:translate(2px)}.lesson-picker button>span:first-child{gap:1px;display:grid}.lesson-picker strong,.lesson-picker em{font-style:normal;font-weight:850}.lesson-picker small,.lesson-picker em{color:var(--muted);font-size:.72rem}.lesson-button-progress{background:#efe7e3;border-radius:999px;height:5px;overflow:hidden}.lesson-button-progress span{border-radius:inherit;background:var(--brand);height:100%;display:block}.lesson-detail-panel{min-width:0}.lesson-detail-head{align-items:flex-start}.lesson-progress-badge,.data-quality-badge{min-height:30px;color:var(--brand);background:var(--brand-soft);white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;font-weight:850;display:inline-flex}.lesson-progress-card{background:#fffaf8;gap:10px;margin-bottom:10px;padding:12px;display:grid}.lesson-progress-card>div:first-child,.data-quality-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lesson-progress-card span{color:var(--muted);font-weight:760}.lesson-progress-card strong{color:var(--ink);font-size:1.18rem}.lesson-progress-track span,.plan-hero-meter .progress-track span,.data-hero-score .progress-track span{background:var(--brand)}.lesson-stat-row,.recovery-summary-grid,.plan-summary-row,.data-command-grid{gap:10px;display:grid}.lesson-stat-row{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.lesson-stat,.recovery-metric,.plan-principle{background:#fffaf8;border:1px solid #9f27341a;border-radius:8px;gap:7px;min-width:0;padding:12px;display:grid}.lesson-stat{grid-template-columns:auto minmax(0,1fr);align-items:center}.lesson-stat span,.recovery-metric>span,.plan-principle>span,.data-card-head>span,.qa-panel>span{width:34px;height:34px;color:var(--brand);background:var(--brand-soft);border-radius:8px;place-items:center;display:grid}.lesson-stat strong{color:var(--ink);grid-row:1;font-size:1.2rem;line-height:1}.lesson-stat small{color:var(--muted);grid-column:2;font-size:.76rem;font-weight:760}.lesson-listening{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:18px;display:grid}.lesson-listening-head,.lesson-track-main,.lesson-audio-player{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.lesson-listening-head h3{color:var(--ink);margin:0;font-size:1.08rem;line-height:1.28}.lesson-source-link{white-space:nowrap;text-decoration:none}.lesson-track-list{background:#fff;border:1px solid #9f27341f;border-radius:8px;overflow:hidden}.lesson-track{border-top:1px solid #9f27341a;gap:10px;padding:12px;display:grid}.lesson-track:first-child{border-top:0}.lesson-track.active{background:#fff8f6}.lesson-track-title{gap:4px;min-width:0;display:grid}.lesson-track-title strong{color:var(--ink);font-size:.96rem;line-height:1.25}.lesson-track-title small{color:var(--muted);word-break:break-word;font-size:.78rem;line-height:1.35}.lesson-track-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.lesson-audio-panel{gap:8px;padding-top:4px;display:grid}.lesson-audio-player audio{width:100%;min-width:0}.speed-controls{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;padding:4px;display:flex}.speed-controls button{min-width:48px;min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:.82rem;font-weight:850}.speed-controls button.active{color:#fff;background:var(--accent)}.audio-error{color:var(--red);margin:0;font-size:.86rem;font-weight:750}.lesson-transcript-panel{background:#fff;border:1px dashed #9f273442;border-radius:8px;gap:10px;padding:12px;display:grid}.lesson-transcript-text{color:var(--ink);font-family:var(--hanzi-font);font-size:1.12rem;font-weight:650;line-height:1.7}.transcript-form{gap:8px;display:grid}.transcript-form label{color:var(--muted);font-size:.82rem;font-weight:800}.transcript-form textarea{border:1px solid var(--line);width:100%;min-height:110px;color:var(--ink);font-family:var(--hanzi-font);resize:vertical;background:#fff;border-radius:8px;padding:11px 12px;font-size:1.05rem;line-height:1.55}.transcript-form textarea:focus{border-color:var(--brand);outline:3px solid var(--focus-ring);outline-offset:2px}.transcript-form button{justify-self:start}.recovery-summary-grid,.plan-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recovery-metric,.plan-principle{grid-template-columns:auto minmax(0,1fr);align-items:center}.recovery-metric strong,.plan-principle strong{color:var(--ink);font-size:1.35rem;line-height:1;display:block}.recovery-metric small,.plan-principle small{color:var(--muted);font-size:.78rem;font-weight:760}.recovery-metric em,.plan-principle em{color:var(--muted);grid-column:1/-1;font-size:.78rem;font-style:normal;line-height:1.35}.recovery-preview{background:#fffdfb;gap:8px;padding:12px;display:grid}.recovery-preview article{background:var(--panel-soft);border:1px solid #9f27341a;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.recovery-preview .hanzi-cell{min-width:54px;color:var(--brand);text-align:center;font-size:1.32rem}.recovery-preview strong,.recovery-preview small{display:block}.recovery-preview small{color:var(--muted);margin-top:2px;line-height:1.35}.plan-hero{align-items:stretch}.plan-hero-meter,.data-hero-score{background:#fffdfb;border:1px solid #9f27341f;border-radius:8px;align-content:center;gap:7px;min-width:220px;padding:12px;display:grid}.plan-hero-meter span,.data-hero-score span{color:var(--muted);font-size:.78rem;font-weight:760}.plan-hero-meter strong,.data-hero-score strong{color:var(--ink);font-size:1.22rem}.plan-panel{grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);align-items:start}.plan-settings-card{position:sticky;top:18px}.timeline{gap:7px}.timeline-row{background:#fff;border:1px solid #9f27341a;border-radius:8px;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.timeline-row.today{background:var(--brand-soft);border-color:#9f273457}.timeline-row.past{background:#fffaf8}.timeline-day{color:var(--brand);font-weight:850}.timeline-main{min-width:0}.timeline-main strong,.timeline-main small{display:block}.timeline-main strong{color:var(--ink)}.timeline-main small{color:var(--muted);margin-top:2px;line-height:1.35}.timeline-row em{color:var(--brand);background:var(--brand-soft);white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:.72rem;font-style:normal;font-weight:800}.timeline-row[data-phase=review] em{color:#b45309;background:#fff3d7}.timeline-row[data-phase=mixed] em,.timeline-row[data-phase=mock] em{color:var(--accent);background:var(--accent-soft)}.data-command-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.data-card-head{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;display:grid}.data-card-head h2,.data-card-head p{margin:0}.data-card-head p{margin-top:4px}.data-quality-card{gap:12px;display:grid}.data-quality-head h2{margin:0}.data-quality-head .eyebrow{margin-bottom:4px}.data-quality-badge{color:var(--accent);background:var(--accent-soft)}.qa-panel{grid-template-columns:auto minmax(0,1fr);align-items:start}.qa-panel p{line-height:1.5}.lesson-bars div{min-width:0}.lesson-bars meter{height:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1180px){.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-strip,.today-plan,.today-grid,.settings-layout,.workbench,.study-layout,.lesson-layout,.lesson-workspace,.plan-panel,.plan-rationale,.data-command-grid,.data-layout,.exam-set-grid,.exam-spec-grid{grid-template-columns:1fr}.plan-settings-card{order:2;position:static}.plan-panel .timeline{order:1}.lesson-picker{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none}.lesson-listening-head,.lesson-track-main,.lesson-audio-player{grid-template-columns:1fr}.lesson-track-actions{justify-content:stretch}.lesson-track-actions .primary-button,.lesson-track-actions .ghost-button{flex:138px}.lesson-source-link{white-space:normal}}@media (width<=820px){html{scroll-padding-bottom:108px}.neko-launcher{right:16px;bottom:calc(88px + env(safe-area-inset-bottom));width:54px;height:54px}.neko-launcher:after,.neko-shell.is-open .neko-launcher{display:none}.neko-panel-scrim{pointer-events:auto;background:#27232b2e;border:0;padding:0;display:block;position:absolute;inset:0}.neko-panel{right:10px;bottom:calc(84px + env(safe-area-inset-bottom));border-radius:17px;width:auto;height:min(72dvh,640px);left:10px}.app-shell{display:block}.mobile-brand-bar{z-index:16;min-height:82px;padding:calc(10px + env(safe-area-inset-top)) 20px 12px;color:#fffaf3;background:var(--brand);justify-content:flex-start;align-items:center;display:flex;position:sticky;top:0}.mobile-brand-lockup{align-items:center;gap:12px;min-width:0;display:inline-flex}.mobile-brand-mark{color:#fff7ed;width:46px;height:46px;font-family:var(--hanzi-font);background:0 0;border:1px solid #fff7ed85;border-radius:9px;flex:0 0 46px;place-items:center;font-size:1.62rem;font-weight:900;line-height:1;display:grid;position:relative}.mobile-brand-mark:after{display:none}.mobile-brand-lockup strong,.mobile-brand-lockup span{display:block}.mobile-brand-lockup strong{color:#fffaf3;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;font-weight:700;line-height:1.16;overflow:hidden}.mobile-brand-lockup span{color:#fff7edd6;margin-top:2px;font-size:.8rem;line-height:1.2}.sidebar{z-index:20;height:auto;padding:7px max(8px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;background:#fffffff5;border-top:1px solid #582b271a;border-right:0;position:fixed;inset:auto 0 0}.app-shell.sidebar-collapsed .sidebar{padding:7px max(8px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:#fffffff5}.sidebar:before,.sidebar:after{display:none}.sidebar-inner{height:auto;display:block}.brand,.sidebar-kicker,.nav-section-label,.sidebar-cta,.sidebar-card{display:none}.nav{overscroll-behavior-x:auto;scrollbar-width:none;pointer-events:auto;background:#fffdfbf0;border:1px solid #582b2714;border-radius:16px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;width:100%;max-width:520px;margin:0 auto;padding:4px;display:grid;overflow:hidden}.nav::-webkit-scrollbar{display:none}.nav-section{display:contents}.nav [data-mobile-nav=overflow]{display:none}.nav .mobile-more-trigger{order:5;display:inline-flex}.nav button{color:#60494f;text-align:center;border-color:#0000;border-radius:12px;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:56px;padding:5px 2px 6px;font-size:0;font-weight:700;line-height:1.08;transform:none}.nav [data-view=study]{order:1}.nav [data-view=dashboard]{order:2}.nav [data-view=lessons]{order:3}.nav [data-view=mock]{order:4}.nav button span{max-width:100%;color:inherit;text-overflow:clip;white-space:nowrap;font-size:0;line-height:1.08}.nav button span:after{content:attr(data-mobile-label);letter-spacing:0;font-size:.61rem}.app-shell.sidebar-collapsed .nav button span{opacity:1;pointer-events:auto;width:auto;transform:none}.app-shell.sidebar-collapsed .nav button{color:#60494f;background:0 0;border-color:#0000}.nav button .icon{color:#8b6264;width:18px;height:18px}.app-shell.sidebar-collapsed .nav button .icon{color:#8b6264}.nav button:hover,.nav button.active{color:var(--blue);background:var(--blue-soft);border-color:#0000;transform:none}.nav button.active:before{display:none}.nav button.active:after{background:var(--brand);content:"";border-radius:999px;height:2px;position:absolute;bottom:4px;left:16px;right:16px}.nav button.active .icon{color:var(--brand)}.mobile-more-scrim{z-index:19;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto;background:#1f22306b;border:0;display:block;position:fixed;inset:0}.mobile-more-scrim[hidden],.mobile-more-sheet[hidden]{display:none}.mobile-more-sheet{right:0;bottom:calc(76px + env(safe-area-inset-bottom));z-index:22;width:auto;max-width:none;padding:8px max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left));pointer-events:auto;background:#fffdfb;border:0;border-top:1px solid #582b271c;border-radius:22px 22px 0 0;gap:10px;margin:0;display:grid;position:fixed;left:0}.mobile-more-handle{cursor:grab;touch-action:none;background:#ded3ce;border-radius:999px;justify-self:center;width:42px;height:4px}.mobile-more-handle:active{cursor:grabbing}.mobile-more-head{padding:0 0 2px;display:block}.mobile-more-head strong{color:var(--ink);font-size:.98rem;font-weight:750;line-height:1.2}.mobile-more-list{gap:8px;display:grid}.mobile-more-list button{min-height:52px;color:var(--ink);text-align:left;background:#fffdfb;border:1px solid #582b271a;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 12px 0 10px;font-size:.94rem;font-weight:680;display:grid}.mobile-more-list button.active{color:var(--brand-strong);background:var(--brand-soft);border-color:#9f27342e}.mobile-more-list button>span:not(.mobile-more-icon){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-more-icon{width:34px;height:34px;color:var(--brand);background:var(--brand-soft);border-radius:10px;place-items:center;display:grid}.mobile-more-list button>.icon:last-child{color:#8b6264}.mobile-more-close-button{min-height:42px;color:var(--brand);background:#fffdfb;border:1px solid #9f27345c;border-radius:10px;justify-content:center;align-items:center;padding:0 12px;font-size:.9rem;font-weight:760;display:inline-flex}.app-shell.sidebar-collapsed .nav button:hover,.app-shell.sidebar-collapsed .nav button.active{color:var(--blue);background:var(--blue-soft);border-color:#0000}.app-shell.sidebar-collapsed .nav button.active .icon{color:var(--brand)}.main{z-index:17;padding:18px 14px calc(88px + env(safe-area-inset-bottom));background:var(--app-bg);border-radius:18px 18px 0 0;margin-top:-12px;position:relative}.app-shell.view-study .mobile-brand-bar{display:none}.main.view-study{padding:0 12px calc(88px + env(safe-area-inset-bottom));background:var(--app-bg);border-radius:0;margin-top:0}.main.view-study .topbar{z-index:10;min-height:52px;padding:calc(4px + env(safe-area-inset-top)) 14px 4px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdfbf5;border-bottom:1px solid #582b2714;justify-content:center;align-items:center;margin:0 -12px 10px;display:flex;position:sticky;top:0}.main.view-study .topbar-title{display:block}.main.view-study .topbar h1{color:var(--ink);text-align:center;font-size:.98rem;font-weight:780;line-height:1.1}.primary-button,.ghost-button,.danger-button,input,textarea,select{scroll-margin-bottom:108px}.topbar{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:12px}.topbar-title{display:block}.topbar-date{display:none}.topbar h1{font-size:clamp(1.55rem,8vw,2rem);line-height:1.08}.main.view-settings .topbar h1{font-size:1.5rem}.account-hero-main h2{font-size:1.52rem}.account-settings-layout .settings-card-head h2{font-size:1.28rem}.top-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.top-actions .language-switcher{grid-column:1/-1;justify-content:space-between}.main.view-study .top-actions,.main.view-mock .top-actions,.main.view-dashboard .top-actions{display:none}.today-dashboard{flex-direction:column;gap:12px;display:flex}.today-hero{border-radius:var(--radius-panel);order:1;grid-template-columns:1fr;grid-template-areas:"focus""start";gap:12px;padding:13px}.today-hero-head{display:none}.today-focus-card{border-radius:var(--radius-card);background:var(--brand-soft);text-align:center;border:1px solid #9f27341f;grid-area:focus;grid-template-columns:1fr;place-items:center;min-height:124px;padding:14px 10px;display:grid}.today-focus-card>span:first-child{width:34px;height:34px;color:var(--brand);place-items:center;margin-bottom:8px;display:grid}.today-focus-card strong{color:var(--brand);font-size:clamp(1.38rem,7vw,2rem);line-height:1}.today-focus-card small{max-width:100%;color:var(--ink);font-family:var(--hanzi-font);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:clamp(.94rem,4.2vw,1.08rem);font-weight:800;line-height:1.2;display:-webkit-box;overflow:hidden}.today-plan{display:contents}.today-plan-list{border-left:1px solid #582b271a;grid-area:plan;grid-template-columns:1fr;align-self:center;gap:0}.today-plan-item{background:0 0;border:0;border-bottom:1px solid #582b271a;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;min-height:48px;padding:8px 0 8px 12px}.today-plan-item:last-child{border-bottom:0}.today-plan-item:hover{background:0 0;transform:none}.today-plan-item em{grid-column:auto;align-self:center;display:none}.today-plan-mobile-count{color:var(--brand);text-align:right;font-size:1.16rem;font-weight:900;line-height:1;display:block}.today-plan-item[data-tone=today] .today-plan-mobile-count{color:var(--accent)}.today-plan-item[data-tone=wrong] .today-plan-mobile-count{color:#d95d2f}.today-plan-item[data-tone=lesson] .today-plan-mobile-count{color:#5b68bd}.today-plan-icon,.today-queue-icon{width:34px;height:34px}.today-plan-item strong{display:none}.today-plan-item small{margin-top:0;font-size:.86rem}.today-start-card{border-radius:var(--radius-card);text-align:center;grid-area:start;padding:12px}.today-readiness-strip{order:3;grid-template-columns:auto minmax(0,1fr);align-items:start}.today-strip-meta{grid-column:1/-1;justify-content:space-between;width:100%}.today-grid{flex-direction:column;order:2;gap:12px;display:flex}.today-queue-panel{order:1}.today-queue-list{gap:8px;margin-top:12px}.today-queue-row{min-height:64px;padding:9px 10px}.today-queue-copy{gap:3px}.today-queue-copy small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.today-progress-panel{order:2}.metrics-grid,.health-grid,.lesson-bars{grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-banner,.session-strip{grid-template-columns:1fr}.readiness-banner{align-items:start}.readiness-banner button{width:100%}.study-card,.stroke-lab,.review-panel,.mode-panel,.focus-panel,.queue-panel,.table-panel,.data-card,.settings-card,.exam-hero,.exam-note,.exam-question,.result-card{padding:14px}.settings-form-grid{grid-template-columns:1fr}.account-hero-card{padding:14px}.account-hero-main{grid-template-columns:auto minmax(0,1fr);align-items:start}.account-hero-main .settings-save-state{grid-column:1/-1;justify-self:start}.account-hero-avatar{flex-basis:50px;width:50px;height:50px}.account-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.account-hero-stats span{min-height:62px;padding:9px 8px}.account-hero-stats small{font-size:.67rem}.account-hero-stats strong{font-size:1.02rem}.account-hero-stats em{display:none}.settings-profile-preview{align-items:flex-start}.study-layout{gap:12px}.main.view-study .study-layout{gap:10px}.main.view-study .study-card{border-radius:var(--radius-panel);background:#fffdfb;border-color:#582b271f;gap:12px;padding:13px}.main.view-study .study-direction-bar{grid-template-columns:1fr;gap:8px;padding:10px}.main.view-study .study-direction-copy{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.main.view-study .study-direction-copy small{text-align:right;margin:0}.main.view-study .study-direction-switch button{min-height:40px;padding-inline:7px;font-size:.75rem}.main.view-study .session-strip{background:0 0;border:0;border-radius:0;grid-template-columns:1fr;gap:9px;padding:0 0 10px}.main.view-study .session-strip>div:first-child{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.main.view-study .session-strip span{font-size:.78rem}.main.view-study .session-strip strong{margin:0;font-size:.82rem;font-weight:850}.main.view-study .progress-track{background:#eee7e4;height:6px}.main.view-study .study-meta{scrollbar-width:none;flex-wrap:nowrap;gap:7px;padding-bottom:1px;overflow-x:auto}.main.view-study .study-meta::-webkit-scrollbar{display:none}.main.view-study .study-meta span{color:#4d5162;background:#f4f1ef;flex:none;min-height:28px;padding:5px 10px;font-size:.74rem;font-weight:760}.main.view-study .prompt{border-radius:var(--radius-card);text-align:center;background:#fffaf8;border:1px solid #9f273424;gap:8px;padding:14px 12px;display:grid}.main.view-study .prompt-head{align-items:center}.main.view-study .prompt .eyebrow{color:var(--brand);text-align:left;margin:0;font-size:.7rem;font-weight:850}.main.view-study .answer-help summary{min-height:30px;padding:0 8px;font-size:.72rem}.main.view-study .answer-help-popover{width:min(280px,100vw - 44px);right:0}.main.view-study .prompt h2{max-width:100%;font-size:clamp(1.55rem,8vw,2.2rem);font-weight:850;line-height:1.12}.main.view-study .prompt.prompt-hanzi h2{letter-spacing:.04em;font-size:clamp(2.7rem,16vw,4.4rem)}.main.view-study .prompt .pinyin{color:#a45d05;margin:-2px 0 0;font-size:.9rem}.main.view-study .example{background:var(--brand-soft);color:#54282f;text-align:left;border-left:0;border-radius:8px;gap:4px;padding:10px 12px;font-size:.94rem}.main.view-study .example strong{font-family:var(--hanzi-font)}.main.view-study .answer-form{gap:9px}.main.view-study .answer-form label{color:#5f6576;font-size:.78rem;font-weight:760}.main.view-study .answer-form input{background:#fff;border:1px solid #d6d9e3;min-height:50px;padding:0 12px;font-size:1.04rem;font-weight:600}.main.view-study .answer-form-vi-to-zh input{font-size:1.5rem;font-weight:700}.main.view-study .answer-form-zh-to-vi input{font-size:1rem}.main.view-study .answer-form input::placeholder{font-size:1rem;font-weight:650}.main.view-study .answer-actions{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:8px;display:grid}.main.view-study .answer-actions .answer-toggle{order:1}.main.view-study .answer-actions .primary-button{order:2}.main.view-study .answer-actions button{min-height:46px;padding-inline:10px;font-size:.9rem;font-weight:780}.study-side{gap:12px}.main.view-study .study-side{gap:10px}.main.view-study .study-side .stroke-lab.stroke-locked{display:grid}.main.view-study .stroke-lab.stroke-locked{background:#fffdfb;border-color:#582b271a;gap:8px;padding:12px}.main.view-study .stroke-lock-row{min-height:48px}.main.view-study .stroke-lock-row strong{font-size:.9rem}.main.view-study .stroke-lock-row small{font-size:.76rem}.main.view-study .mode-panel{display:none}.main.view-study .stroke-lab,.main.view-study .review-panel{border-radius:var(--radius-panel)}.study-side .stroke-lab.stroke-locked,.review-panel.review-panel-empty{display:none}.prompt h2{max-width:100%;font-size:clamp(1.35rem,7vw,2rem)}.answer-form input{min-height:58px;font-size:clamp(1.35rem,8vw,2rem)}.answer-actions,.action-row{grid-template-columns:1fr;display:grid}.stroke-target{width:min(100%,250px)}.exam-status{flex-direction:column;align-items:stretch}.exam-clock{justify-content:center}.exam-options{grid-template-columns:1fr}.exam-options button{min-height:54px}.exam-nav{grid-template-columns:1fr 1fr}.exam-nav .primary-button{grid-column:1/-1;justify-self:stretch}.page-stack{gap:12px}.page-hero{flex-direction:column;align-items:stretch;padding:14px}.page-hero-copy h2{font-size:clamp(1.24rem,6vw,1.72rem)}.page-hero-actions,.page-hero-actions button,.plan-hero-meter,.data-hero-score{width:100%}.page-hero-actions{grid-template-columns:1fr;display:grid}.lesson-picker-panel,.lesson-detail-panel,.recovery-table-panel,.plan-settings-card,.data-card,.data-quality-card{padding:14px}.lesson-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.lesson-picker button{text-align:center;grid-template-columns:1fr;gap:6px;min-height:58px}.lesson-button-progress{width:100%}.lesson-picker em{display:none}.lesson-detail-head,.data-quality-head{flex-direction:column;align-items:flex-start}.lesson-stat-row,.recovery-summary-grid,.plan-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recovery-preview{padding:10px}.timeline-row{grid-template-columns:1fr;gap:7px}.timeline-row em{justify-self:start}.table-wrap{border:0;overflow:visible}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap td{width:100%;display:block}.table-wrap thead{display:none}.table-wrap tr{background:#fffdfb;border:1px solid #9f27341f;border-radius:8px;margin-bottom:10px;padding:12px}.table-wrap td{border-bottom:1px solid #e2d9d6b8;grid-template-columns:86px minmax(0,1fr);align-items:baseline;gap:10px;padding:7px 0;display:grid}.table-wrap td:last-child{border-bottom:0}.table-wrap td:before{color:var(--muted);content:attr(data-label);font-size:.72rem;font-weight:820}.table-wrap td.hanzi-cell{color:var(--brand);font-size:1.24rem;font-weight:850}.table-wrap td.hanzi-cell:before{color:var(--muted);font-family:var(--latin-font);font-size:.72rem}.file-box,.button-grid{grid-template-columns:1fr}}@media (width<=560px){.main,.sidebar{padding:14px}.main{padding:12px 12px calc(90px + env(safe-area-inset-bottom))}.sidebar{padding:7px max(7px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left))}.nav button{flex-basis:70px}.metrics-grid,.health-grid,.lesson-bars,.lesson-picker,.exam-blueprint li,.exam-spec-grid{grid-template-columns:1fr}.lesson-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.lesson-stat-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recovery-summary-grid,.plan-summary-row{grid-template-columns:1fr}.health-grid,.lesson-bars{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-metric,.plan-principle{grid-template-columns:auto minmax(0,1fr) auto}.recovery-metric em,.plan-principle em{grid-column:2/-1}.lesson-stat{text-align:center;grid-template-columns:1fr;justify-items:center}.lesson-stat small{grid-column:1}.lesson-stat strong{grid-row:auto}.timeline-row{flex-direction:column;align-items:flex-start}.checklist-row{grid-template-columns:auto minmax(0,1fr)}.checklist-row .icon,.checklist-row b{display:none}.top-actions,.app-update-banner,.version-summary,.version-update-note{grid-template-columns:1fr}.app-update-banner>span,.version-update-note>span{display:none}.version-detail-grid{grid-template-columns:1fr}.metric{min-height:auto}.stroke-actions{grid-template-columns:1fr}.neko-panel-head{min-height:60px;padding-inline:11px 9px}.neko-panel-body{padding:12px}.neko-composer{padding:9px 10px 10px}.neko-message,.neko-pending-question{width:92%}.exam-hanzi{font-size:clamp(2rem,14vw,3rem)}}@media (width<=380px){.nav{gap:1px;padding:3px}.nav button{min-height:54px;padding-inline:1px}.nav button .icon{width:17px;height:17px}.nav button span:after{font-size:.56rem}}
