: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:#9f2734;--brand-strong:#7f1d2a;--brand-lift:#d95d67;--brand-soft:#fff0f1;--brand-wash:#fff7f0;--accent:#0f766e;--accent-strong:#0b5d56;--accent-soft:#dff7f2;--ink:#1f2230;--muted:#697085;--line:#e2d9d6;--app-bg:#f8f3ef;--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:#9f27343d;--shadow:0 14px 34px #582b2717;--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:Inter, 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:linear-gradient(180deg, #fffaf4 0%, var(--app-bg) 340px, #f5f0ed 100%);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}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:linear-gradient(180deg, #ffffffd1, transparent 180px), linear-gradient(180deg, var(--sidebar-paper) 0%, #f8f0eb 100%);height:100vh;color:var(--ink);transition:background var(--motion-medium) var(--ease-out), box-shadow var(--motion-medium) var(--ease-out);border-right:1px solid #7f1d2a38;padding:0 14px 12px;position:sticky;top:0;overflow:hidden auto;box-shadow:10px 0 28px #582b2714}.sidebar:before{content:"";opacity:.36;pointer-events:none;background-color:#0000;background-image:linear-gradient(#9f273409 1px,#0000 1px),linear-gradient(90deg,#9f273408 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.sidebar:after{content:"";pointer-events:none;border:1px solid #9f273417;border-radius:50%;width:180px;height:180px;position:absolute;bottom:84px;right:-74px}.sidebar-inner{z-index:1;flex-direction:column;gap:14px;min-height:100%;display:flex;position:relative}.brand{min-height:76px;transition:background var(--motion-medium) var(--ease-out), box-shadow var(--motion-medium) var(--ease-out);background:linear-gradient(#fff7ed14 0%,#fff7ed00 44%),linear-gradient(#a52a38 0%,#8b2431 54%,#7f1d2a 100%);border:0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;margin:0 -14px -2px;padding:14px;display:flex;box-shadow:inset 0 1px #fff7ed1f,inset 0 -1px #32090f33,0 10px 20px #7f1d2a1c}.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:linear-gradient(#d95d6729,#7f1d2a14),#fff7ed0d;flex:0 0 44px;place-items:center;font-size:1.56rem;font-weight:900;line-height:1;display:grid;position:relative;box-shadow:inset 0 0 0 1px #fff7ed80,inset 0 0 0 4px #fff7ed0b,0 1px 2px #32090f24}.brand-mark:after{content:"";border:1px solid #fff7ed8f;border-radius:6px;position:absolute;inset:5px}.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), box-shadow 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);box-shadow:none;border-color:#0000}.nav button.active:before{background:var(--brand);content:"";border-radius:999px;width:2px;position:absolute;top:9px;bottom:9px;left:0}.nav button.active .icon{color:var(--brand)}.sidebar-card{max-height:132px;box-shadow:none;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:linear-gradient(135deg, #bd3546 0%, var(--brand) 70%, var(--brand-strong) 100%);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;box-shadow:inset 0 1px #fff7ed47}.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;box-shadow:0 12px 30px #1f223024}.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:linear-gradient(90deg, var(--brand), var(--brand-lift));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:transform var(--motion-fast) var(--ease-standard), box-shadow 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;box-shadow:0 5px 12px #9f27341a}.sidebar-cta:hover{background:var(--brand-strong);transform:translateY(-1px);box-shadow:0 8px 16px #9f27341f}.sidebar-cta .icon{color:#fff7ed}.app-shell.sidebar-collapsed .sidebar{background:linear-gradient(180deg, #ffffffe6, transparent 145px), linear-gradient(180deg, var(--sidebar-paper) 0%, #f7eeea 100%);padding:0 14px 12px;overflow:visible;box-shadow:8px 0 24px #582b2717}.app-shell.sidebar-collapsed .sidebar-inner{gap:12px}.app-shell.sidebar-collapsed .brand{background:linear-gradient(#fff7ed14 0%,#fff7ed00 44%),linear-gradient(#a52a38 0%,#8b2431 54%,#7f1d2a 100%);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);box-shadow:none;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{width:40px;min-height:40px;animation:rail-avatar-in .16s var(--ease-out) 80ms both;background:linear-gradient(135deg,#bd3546 0%,#9f2734 62%,#7f1d2a 100%);border:1px solid #9f27342e;border-radius:999px;grid-template-columns:1fr;place-items:center;padding:0;display:grid;box-shadow:inset 0 1px #fff7ed4d,0 7px 15px #582b271c}.app-shell.sidebar-collapsed .sidebar-user{gap:0}.app-shell.sidebar-collapsed .sidebar-avatar{color:#fff7ed;width:36px;height:36px;box-shadow:none;background:0 0;flex-basis: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:linear-gradient(180deg, #fffdfb, 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%);box-shadow:0 8px 18px #582b271f}.app-shell.sidebar-collapsed .sidebar-toggle:hover{background:#fff6f3;border-color:#9f273442;transform:translate(-50%)translateY(-1px)}.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);box-shadow:none;border-color:#0000}.app-shell.sidebar-collapsed .nav button.active .icon{color:var(--brand)}.main{min-width:0;padding:18px}.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;box-shadow:0 8px 18px #582b270f}.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);line-height:1.1}.view-dashboard .topbar h1{white-space:nowrap}.eyebrow{color:var(--blue);letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:.76rem;font-weight:800}.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:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-weight:750;transition:transform .14s,box-shadow .14s,background .14s;display:inline-flex}.primary-button{color:#fff;background:var(--blue);box-shadow:0 8px 20px #9f27342e}.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,.ghost-button:hover,.danger-button:hover{transform:translateY(-1px)}.primary-button:active,.ghost-button:active,.danger-button:active{transform:translateY(0)}.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);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.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);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:#e5eaf3;border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--brand), var(--accent));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:18px}.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:12px;display:grid}.today-hero,.today-readiness-strip,.today-progress-panel,.today-queue-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.today-hero{background:radial-gradient(circle at 94% 0,#9f27341a,#0000 30%),linear-gradient(135deg,#fffdfb 0%,#fff8f4 58%,#fff0f1 100%);gap:14px;padding:16px;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:0;margin:0}.today-hero h2{max-width:840px;font-size:1.02rem;font-weight:800;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{background:#fffdfbd1;border:1px solid #582b271a;border-radius:8px;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-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{color:var(--ink);text-align:left;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#fffdfbd1;border:1px solid #582b271a;border-radius:8px}.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;transform:translateY(-1px);box-shadow:0 8px 18px #582b2712}.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{background:linear-gradient(180deg, #ffffffb8, #fff0f1b8), var(--brand-soft);border:1px solid #9f27341f;border-radius:8px;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:16px}.today-progress-stack,.today-queue-list{gap:9px;margin-top:14px;display:grid}.today-progress-row{background:var(--panel-soft);border:1px solid #582b2714;border-radius:8px;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);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{background:#fff8f4;border-radius:8px;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{align-content:start;gap:18px;display:grid}.session-strip{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;grid-template-columns:minmax(180px,auto) minmax(0,1fr);align-items:center;gap:14px;padding:12px;display:grid}.session-strip strong{color:var(--ink);margin-top:2px;display:block}.study-meta{flex-wrap:wrap;justify-content:flex-start}.study-meta span,.mini-stats span,.status{border-radius:999px;min-height:28px;padding:5px 9px;font-size:.78rem;font-weight:800}.study-meta span,.mini-stats span{color:#344054;background:#eef2f7}.prompt{gap:10px;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);min-height:32px;color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;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;text-align:left;background:#fff;border:1px solid #582b271f;border-radius:8px;gap:6px;width:min(300px,100vw - 40px);padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 26px #582b271f}.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);font-size:clamp(1.45rem,2vw,2.2rem);font-weight:800;line-height:1.18}.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:4px solid var(--blue);background:var(--blue-soft);color:#2a3b68;border-radius:8px;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 #b8c2d6;border-radius:8px;outline:none;padding:10px 14px;font-size:clamp(1.45rem,2.4vw,2.2rem);font-weight:800;line-height:1}.answer-form input::placeholder{color:#778196;opacity:.55;font-size:clamp(1.25rem,2vw,1.8rem)}.answer-form input:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--focus-ring)}.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:8px;align-items:center;gap:12px;padding:12px;font-weight:800;display:flex}.feedback.good{color:var(--green);background:var(--green-soft)}.feedback.bad{color:var(--red);background:var(--red-soft)}.study-side{align-self:start;gap:14px;display:grid}.review-panel,.mode-panel{gap:12px;display:grid}.review-panel.review-panel-empty{display:none}.review-panel h3,.mode-panel h3,.study-side h3{margin:0}.stroke-lab{background:linear-gradient(#fff,#f8fafc);border:1px solid #cdd6e6;border-radius:8px;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);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;border-radius:8px;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{color:#475467;background:#eef2f7;border-radius:8px;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}.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);box-shadow:var(--shadow);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);box-shadow:inset 0 0 0 1px #9f27342e}.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);box-shadow:var(--shadow);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);box-shadow:0 8px 20px #9f27342e}.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);box-shadow:0 0 0 4px var(--focus-ring)}.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);box-shadow:var(--shadow);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), box-shadow 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{background:#fffdfb;border-color:#9f27346b;outline:none;box-shadow:0 0 0 3px #9f273414}.settings-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);align-items:start;gap:14px;display:grid}.profile-settings-card,.settings-rhythm-card{grid-column:1/-1}.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}.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:radial-gradient(circle at 0% 0%, #9f273412, transparent 40%), 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:linear-gradient(135deg, #bd3546 0%, var(--brand) 70%, var(--brand-strong) 100%);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);box-shadow:var(--shadow);border-radius:8px}.page-hero{background:radial-gradient(circle at 0 0,#9f273412,#0000 36%),linear-gradient(135deg,#fff 0%,#fffaf7 100%);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{box-shadow:none;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);box-shadow:0 0 0 4px var(--focus-ring);outline:none}.transcript-form button{justify-self:start}.recovery-summary-grid,.plan-summary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.recovery-metric,.plan-principle{box-shadow:none;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;box-shadow:0 10px 24px #9f273414}.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}.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:linear-gradient(#fff7ed14 0%,#fff7ed00 44%),linear-gradient(#a52a38 0%,#8b2431 54%,#7f1d2a 100%);justify-content:flex-start;align-items:center;display:flex;position:sticky;top:0;box-shadow:inset 0 1px #fff7ed24,inset 0 -1px #32090f33,0 10px 22px #7f1d2a1f}.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:linear-gradient(#d95d6729,#7f1d2a14),#fff7ed0d;border-radius:9px;flex:0 0 46px;place-items:center;font-size:1.62rem;font-weight:900;line-height:1;display:grid;position:relative;box-shadow:inset 0 0 0 1px #fff7ed80,inset 0 0 0 4px #fff7ed0b,0 1px 2px #32090f24}.mobile-brand-mark:after{content:"";border:1px solid #fff7ed8f;border-radius:7px;position:absolute;inset:5px}.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;box-shadow:0 -12px 30px #1b27421c}.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;box-shadow:0 -12px 30px #1b27421c}.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;box-shadow:inset 0 1px #ffffffdb,0 6px 18px #582b2712}.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);box-shadow:none;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;box-shadow:inset 0 1px #ffffffe6,0 -18px 44px #1f22302e}.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;box-shadow:0 2px 8px #582b2709}.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:linear-gradient(180deg, #fffaf7f0 0%, #f8f3ef00 84px), 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:linear-gradient(180deg, #fffdfb 0%, #fff9f6 72px, var(--app-bg) 320px), 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}.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{order:1;grid-template-columns:1fr;grid-template-areas:"focus""start";gap:12px;padding:14px}.today-hero-head{display:none}.today-focus-card{background:radial-gradient(circle at 50% 0%, #d95d671a, transparent 58%), var(--brand-soft);text-align:center;border:1px solid #9f27341f;border-radius:8px;grid-area:focus;grid-template-columns:1fr;place-items:center;min-height:150px;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{min-height:48px;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #582b271a;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;padding:8px 0 8px 12px}.today-plan-item:last-child{border-bottom:0}.today-plan-item:hover{box-shadow:none;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{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}.settings-profile-preview{align-items:flex-start}.study-layout{gap:12px}.main.view-study .study-layout{gap:10px}.main.view-study .study-card{background:#fffdfb;border-color:#582b271f;gap:12px;padding:14px;box-shadow:0 8px 18px #582b270f}.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{text-align:center;background:#fffaf8;border:1px solid #9f273424;border-radius:8px;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 .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:700}.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;box-shadow:0 8px 18px #582b270b}.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,.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;box-shadow:0 8px 18px #582b270b}.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}.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}}
