@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#2563eb;--color-primary-light:#3b82f6;--color-primary-dark:#1d4ed8;--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-900:#1e3a5f;--color-accent:#f59e0b;--color-accent-light:#fbbf24;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--color-bg:#f8fafc;--color-bg-card:#ffffff;--color-bg-elevated:#ffffff;--color-bg-dark:#0f172a;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-text:#0f172a;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-text-inverse:#f8fafc;--font-sans:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.07),0 2px 4px -2px rgba(0,0,0,0.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.08),0 4px 6px -4px rgba(0,0,0,0.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.04);--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease;--color-surface-alt:#f8f9fc;--max-width:1200px;--nav-height:64px}[data-theme=dark]{--color-primary-50:#172554;--color-primary-100:#1e3a8a;--color-bg:#0f172a;--color-bg-card:#1e293b;--color-bg-elevated:#243044;--color-border:#334155;--color-border-light:#243044;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-text-inverse:#0f172a;--color-surface-alt:#243044}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);line-height:1.6;min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;text-decoration:none;line-height:1.5}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:white;box-shadow:0 2px 8px rgba(37,99,235,.3)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.4)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-50);border-color:var(--color-primary-light)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost.is-active,.btn-ghost:hover:not(:disabled){background:var(--color-primary-50);color:var(--color-primary)}.btn-ghost.is-active{box-shadow:inset 0 0 0 1px var(--color-primary-100)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full)}.card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);margin-bottom:var(--space-2)}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.form-input::placeholder{color:var(--color-text-muted)}.form-error{font-size:var(--text-sm);color:var(--color-error);margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.badge-primary{background:var(--color-primary-100);color:var(--color-primary-dark)}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}.badge-part3{background:linear-gradient(135deg,#e17055,#fdcb6e);color:#fff;font-weight:var(--font-semibold)}.badge-month{background:#ede9fe;color:#5b21b6}.badge-location{background:#e0f2fe;color:#075985}.badge-retained{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.badge-season-current{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#ffffff;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 10px rgba(99,102,241,.3);text-shadow:0 1px 2px rgba(0,0,0,.15);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.badge-season-current:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.3) 50%,rgba(255,255,255,0));transform:skewX(-20deg);animation:badge-shimmer 3s infinite}@keyframes badge-shimmer{0%{left:-100%}to{left:200%}}.badge-season-current:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 14px rgba(139,92,246,.4)}.badge-season-past{background:rgba(241,245,249,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(148,163,184,.3);color:var(--color-text-secondary);box-shadow:inset 0 1px 2px rgba(255,255,255,.5),0 2px 4px rgba(0,0,0,.02);transition:all .3s cubic-bezier(.4,0,.2,1)}.badge-season-past:hover{background:rgba(255,255,255,.9);color:var(--color-text);border-color:rgba(148,163,184,.5);transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.05)}.score-circle{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary-50),var(--color-primary-100));border:3px solid var(--color-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-primary-dark)}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-overlay{position:fixed;inset:0;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);z-index:50}.navbar{position:-webkit-sticky;position:sticky;top:0;height:var(--nav-height);background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-light);z-index:40}.navbar-inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6);height:100%;justify-content:space-between}.navbar-brand,.navbar-inner{display:flex;align-items:center}.navbar-brand{gap:var(--space-3);font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text)}.navbar-brand img{width:36px;height:36px;border-radius:var(--radius-full)}.navbar-links{display:flex;align-items:center;gap:var(--space-2)}.nav-icon{line-height:1}.locale-switcher{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.locale-switcher:hover{border-color:var(--color-primary-light);color:var(--color-primary)}.locale-switcher:disabled{opacity:.5;cursor:progress}.locale-switcher--subtle{border-color:transparent;color:var(--color-text-muted);font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.locale-switcher--subtle:hover{background:var(--color-surface-alt);border-color:var(--color-border-light);color:var(--color-text-secondary)}.hero{min-height:calc(100vh - var(--nav-height));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-16) var(--space-6);background:linear-gradient(180deg,var(--color-primary-50) 0,var(--color-bg) 100%)}.hero-logo{width:120px;height:120px;border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);margin-bottom:var(--space-12);animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.hero h1{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text);margin-bottom:var(--space-8);line-height:1.2}.hero p{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:600px;margin-bottom:var(--space-12)}.hero-actions{gap:var(--space-4);flex-wrap:wrap}.auth-page,.hero-actions{display:flex;justify-content:center}.auth-page{min-height:calc(100vh - var(--nav-height));align-items:center;padding:var(--space-8) var(--space-6)}.auth-card{width:100%;max-width:420px}.auth-card h1{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.auth-card .subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-8)}.auth-footer{text-align:center;margin-top:var(--space-6);color:var(--color-text-secondary);font-size:var(--text-sm)}.auth-submit{width:100%;margin-top:var(--space-4)}.form-label-hint{color:var(--color-text-muted)}.quota-badge{display:inline-block;font-size:var(--text-sm);color:var(--color-text-secondary)}.quota-badge--low{color:var(--color-warning);font-weight:var(--font-semibold)}.empty-card{text-align:center;padding:var(--space-10)}.empty-card-icon{font-size:2.5rem;margin-bottom:var(--space-4)}.empty-card-title{font-weight:var(--font-semibold);font-size:var(--text-lg);margin-bottom:var(--space-2)}.empty-card-desc{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-6)}.empty-card-actions{display:flex;justify-content:center;gap:var(--space-4)}.submit-dialog{border:none;border-radius:var(--radius-xl);padding:var(--space-8);margin:auto;min-width:320px;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,.3);text-align:center;background:var(--color-bg-card);color:inherit}.submit-dialog::-webkit-backdrop{background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.submit-dialog::backdrop{background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.submit-dialog h3{margin:0 0 var(--space-4);font-size:var(--text-lg)}.submit-dialog .submit-line{margin:0 0 var(--space-2);font-size:var(--text-sm)}.submit-dialog .submit-warn{color:var(--color-warning);font-weight:var(--font-semibold)}.submit-dialog .submit-error{color:var(--color-error);font-weight:var(--font-semibold)}.submit-dialog .submit-after{margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary)}.submit-dialog .submit-after.is-warn{color:var(--color-warning)}.submit-dialog .submit-actions{display:flex;justify-content:center;gap:var(--space-3)}.audio-player-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2);font-weight:var(--font-semibold)}.audio-player-retry{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 var(--space-1) 0}.audio-player-bar{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4)}.audio-player-play{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-full);border:none;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),transform .1s}.audio-player-time{flex-shrink:0;font-size:var(--text-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text-secondary);min-width:75px;text-align:center}.audio-player-track{flex:1 1;height:6px;border-radius:3px;background:var(--color-border);position:relative;cursor:pointer;overflow:visible}.audio-player-fill{height:100%;border-radius:3px;background:var(--color-primary);transition:width .1s linear}.audio-player-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:var(--radius-full);background:#fff;border:2px solid var(--color-primary);transform:translate(-50%,-50%);transition:opacity .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}.dashboard-header{padding:var(--space-8) 0}.dashboard-header h1{font-size:var(--text-3xl);font-weight:var(--font-bold)}.dashboard-header .greeting{color:var(--color-text-secondary);margin-top:var(--space-2)}.quota-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-6);gap:var(--space-6);margin-bottom:var(--space-8)}.quota-card{display:flex;align-items:center;gap:var(--space-5)}.quota-card .quota-info h3{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.quota-card .quota-remaining{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-primary)}.practice-page{max-width:800px;margin:0 auto;padding:var(--space-8) var(--space-6)}.card.topic-card{margin-bottom:var(--space-5)}.topic-card h2{font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-3)}.question-text{font-size:var(--text-lg);color:var(--color-text);padding:var(--space-5);background:var(--color-primary-50);border-left:4px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:var(--space-6)}.recorder{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8);border:2px dashed var(--color-border);border-radius:var(--radius-xl);transition:border-color var(--transition-base)}.recorder.recording{border-color:var(--color-error);background:#fef2f2}.record-btn{width:80px;height:80px;border-radius:var(--radius-full);border:none;background:linear-gradient(135deg,var(--color-error),#dc2626);color:white;font-size:var(--text-2xl);cursor:pointer;transition:all var(--transition-base);box-shadow:0 4px 15px rgba(239,68,68,.3);display:flex;align-items:center;justify-content:center}.record-btn:hover{transform:scale(1.05)}.record-btn.recording{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 15px rgba(239,68,68,0)}}.result-page{max-width:900px;margin:0 auto;padding:var(--space-8) var(--space-6)}.result-header{text-align:center;margin-bottom:var(--space-8)}.score-overview{display:flex;align-items:center;justify-content:center;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-8)}.score-breakdown{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-4);gap:var(--space-4)}.score-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md)}.score-item .label{font-size:var(--text-sm);color:var(--color-text-secondary)}.score-item .value{font-weight:var(--font-bold);color:var(--color-primary)}.feedback-section{margin-bottom:var(--space-8)}.feedback-section h3{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.feedback-list{list-style:none}.feedback-list li{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-border);margin-bottom:var(--space-3);font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.feedback-list.strengths li{border-left-color:var(--color-success)}.feedback-list.improvements li{border-left-color:var(--color-warning)}.sample-answer{background:linear-gradient(135deg,var(--color-primary-50),#f0f9ff);border:1px solid var(--color-primary-100);border-radius:var(--radius-xl);padding:var(--space-6)}.sample-answer h3{margin-bottom:var(--space-4)}.sample-answer p{line-height:1.8;color:var(--color-text)}@media (max-width:768px){:root{--nav-height:56px}.hero{min-height:auto;padding:var(--space-10) var(--space-4)}.hero h1{font-size:var(--text-3xl)}.hero-logo{width:80px;height:80px}.quota-cards,.score-breakdown{grid-template-columns:1fr}.score-overview{flex-direction:column}.navbar-inner{padding:0 var(--space-4)}.navbar-links{gap:var(--space-1)}.navbar-links .btn{padding:var(--space-2)}.navbar-brand{font-size:var(--text-base);gap:var(--space-2);min-width:0}.navbar-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar-brand img{width:30px;height:30px;flex-shrink:0}}@media (max-width:480px){.hero h1{font-size:var(--text-2xl)}.hero-actions{flex-direction:column;width:100%}.hero-actions .btn{width:100%}.navbar-inner{padding:0 var(--space-2)}.locale-switcher,.navbar-links .btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-card{opacity:.9;animation:fadeInUp .3s ease-out}.skeleton-line{background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-surface-alt) 50%,var(--color-border-light) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.hero-update-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);background:linear-gradient(135deg,#4f6ef7,#6c5ce7);color:#fff;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.02em;margin-bottom:var(--space-8);box-shadow:0 2px 8px rgba(79,110,247,.3)}.hero-lead{text-align:left}.dashboard-greeting{margin-bottom:var(--space-8)}.dashboard-greeting h1{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-1)}.dashboard-greeting p{color:var(--color-text-secondary);font-size:var(--text-sm)}.quota-pill-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap}.practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-5);gap:var(--space-5);margin-bottom:var(--space-10)}.recent-section{margin-bottom:var(--space-8)}.recent-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.recent-head h2{font-size:var(--text-lg);font-weight:var(--font-bold)}.recent-list{display:flex;flex-direction:column;gap:var(--space-3)}.recent-empty{text-align:center;padding:var(--space-10)}.recent-empty .recent-empty-icon{font-size:2.5rem;margin-bottom:var(--space-3)}.recent-empty p{color:var(--color-text-secondary);font-size:var(--text-sm)}.recent-loading{text-align:center;padding:var(--space-8)}.recent-loading .spinner{margin:0 auto}.quota-pill{flex:1 1;min-width:200px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.quota-pill-main{flex:1 1}.quota-pill-label{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.quota-pill-track{height:6px;border-radius:3px;background:var(--color-surface-alt);overflow:hidden}.quota-pill-fill{height:100%;border-radius:3px;transition:width .5s ease}.quota-pill-count{text-align:right;flex-shrink:0}.quota-pill-remaining{font-size:var(--text-xl);font-weight:800}.quota-pill-total{font-size:var(--text-xs);color:var(--color-text-muted)}.practice-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.practice-card-header{padding:var(--space-5) var(--space-5) var(--space-4);color:#fff}.practice-card-icon{font-size:2rem;margin-bottom:var(--space-2)}.practice-card-header h3{font-size:var(--text-lg);font-weight:var(--font-bold)}.practice-card-body{padding:var(--space-4) var(--space-5) var(--space-5);flex:1 1;display:flex;flex-direction:column}.practice-card-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-4);flex:1 1}.practice-card-actions{display:flex;gap:var(--space-2)}.practice-card-actions .btn-primary{flex:1 1}.practice-card-actions .btn-primary.is-disabled{pointer-events:none;opacity:.5}.practice-card-random{padding:var(--space-2) var(--space-3)}.recent-item{padding:var(--space-3) var(--space-4);cursor:pointer;display:flex;align-items:center;gap:var(--space-3);transition:border-color .15s,transform .15s}.recent-item-badge{width:2rem;height:2rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-bold);font-size:.7rem;flex-shrink:0}.recent-item-info{flex:1 1;min-width:0}.recent-item-title{font-weight:var(--font-semibold);font-size:var(--text-sm)}.recent-item-q,.recent-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-item-q{font-size:.78rem;color:var(--color-text-secondary);margin-top:.1rem}.recent-item-time{font-size:var(--text-xs);color:var(--color-text-muted)}.recent-item-score{flex-shrink:0}.recent-item-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.recent-item-redo{padding:.25rem .6rem;font-size:var(--text-xs)}.recent-score-chip{display:flex;align-items:center;gap:.2rem;color:#fff;border-radius:var(--radius-full);padding:.2rem .6rem}.recent-score-chip-label{font-size:.65rem;opacity:.85}.recent-score-chip-value{font-size:var(--text-sm);font-weight:800}.recent-status{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:var(--font-semibold);border-radius:var(--radius-full);padding:.2rem .6rem}.recent-status--failed{color:#d63031;background:#ffeaea}.recent-status--rejected{color:#e17055;background:#fef0e6}.recent-arrow{font-size:var(--text-sm);color:var(--color-text-muted)}.result-subtitle{color:var(--color-text-secondary);margin-top:var(--space-2)}.result-seasons{display:flex;gap:var(--space-2);justify-content:center;margin-top:var(--space-2)}.result-overall{text-align:center;margin-bottom:var(--space-8);padding:var(--space-8)}.score-circle--lg{width:120px;height:120px;font-size:var(--text-4xl);margin:0 auto var(--space-4)}.result-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);overflow-x:auto}.detail-note,.result-section-head{margin-bottom:var(--space-4)}.detail-note h4{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary);margin-bottom:var(--space-1);text-transform:capitalize}.detail-note p{line-height:1.7}.detail-note p,.result-transcript{font-size:var(--text-sm);color:var(--color-text-secondary)}.result-transcript{line-height:1.8;font-style:italic}.result-actions{display:flex;justify-content:center;gap:var(--space-4);margin-top:var(--space-8)}.card-mb{margin-bottom:var(--space-6)}.select-head{margin-bottom:var(--space-2)}.select-hint{color:var(--color-text-secondary);margin-bottom:var(--space-8)}.select-toolbar{display:flex;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap}.select-season{width:auto;min-width:150px}.select-current-season{min-height:3.25rem;padding-inline:var(--space-4);flex-shrink:0}.select-search{flex:1 1;min-width:12rem}@media (max-width:640px){.select-toolbar{gap:var(--space-3);margin-bottom:var(--space-6)}.select-season{flex:1 1 100%;min-width:0;order:-1}.select-current-season{flex:1 1 100%;justify-content:center;order:-1}.select-search{flex:1 1 auto;min-width:0}.select-toolbar .btn{flex-shrink:0}}.select-loading{text-align:center;padding:var(--space-12)}.select-loading p{margin-top:var(--space-4);color:var(--color-text-muted)}.select-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-8)}.select-groups{display:flex;flex-direction:column;gap:var(--space-4)}.group-card{overflow:hidden;padding:0}.group-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);cursor:pointer}.group-header--required{background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(99,102,241,.08))}.group-header--default{background:linear-gradient(135deg,rgba(168,85,247,.06),rgba(236,72,153,.06))}.group-header[data-open=true]{border-bottom:1px solid var(--color-border)}.group-header-left{display:flex;align-items:center;gap:var(--space-3)}.group-icon{font-size:1.2rem}.group-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text)}.group-title--required{color:var(--color-primary)}.group-count{background:var(--color-surface-alt);color:var(--color-text-secondary)}.chevron,.group-count{font-size:var(--text-xs)}.chevron{transition:transform .2s;color:var(--color-text-muted);display:inline-block}.chevron[data-open=true]{transform:rotate(180deg)}.group-body{padding:var(--space-3) var(--space-5)}.group-body-list{gap:var(--space-2)}.group-body-list,.subcat-list{display:flex;flex-direction:column}.subcat-list{gap:var(--space-3)}.subcat-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-md);transition:background .15s}.subcat-header[data-open=true]{background:var(--color-surface-alt)}.subcat-header-left{display:flex;align-items:center;gap:var(--space-2)}.subcat-name{font-weight:var(--font-semibold);font-size:var(--text-sm)}.subcat-count{font-size:var(--text-xs);color:var(--color-text-muted)}.subcat-topics{padding-left:var(--space-6);margin-top:var(--space-1);display:flex;flex-direction:column;gap:var(--space-2)}.topic-card{border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden;background:var(--color-bg-card)}.topic-card-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:var(--space-3) var(--space-4)}.topic-card-head h3{font-size:var(--text-sm);font-weight:var(--font-semibold)}.topic-card-meta{display:flex;gap:var(--space-2);align-items:center}.topic-card-qcount{font-size:var(--text-sm);color:var(--color-text-muted)}.topic-q-list{border-top:1px solid var(--color-border);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.topic-q-item{padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-sm);background:var(--color-surface-alt);border:1px solid transparent;transition:all .15s;font-size:var(--text-sm)}.topic-q-item:hover{border-color:var(--color-primary);background:var(--color-primary-50)}.topic-q-num{font-weight:var(--font-medium)}.group-header--p2{background:linear-gradient(135deg,rgba(16,185,129,.06),rgba(6,182,212,.06))}.group-header--p2,.group-header--p3{-webkit-user-select:none;-moz-user-select:none;user-select:none}.group-header--p3{background:linear-gradient(135deg,rgba(225,112,85,.07),rgba(253,203,110,.07))}.group-body-cards{padding:var(--space-3) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.sel-topic{padding:var(--space-3) var(--space-4);cursor:pointer;transition:all .15s;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-card)}.sel-topic:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,110,247,.12)}.sel-topic-row{display:flex;justify-content:space-between;align-items:flex-start}.sel-topic-title{font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:1.4}.sel-topic-zh{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.sel-topic-arrow{font-size:var(--text-lg);margin-left:var(--space-3);flex-shrink:0}.sel-cue-preview{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#fffbe6,#fff8e1);border-radius:var(--radius-sm);border:1px solid #ffe0a0;font-size:var(--text-xs);color:#8b6914}.sel-cue-preview .sel-cue-label{font-weight:var(--font-semibold)}.p3-cat-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);cursor:pointer}.p3-cat-name{font-weight:var(--font-bold);font-size:var(--text-base)}.p3-cat-sub{font-size:var(--text-sm);color:var(--color-text-secondary);margin-left:var(--space-2)}.p3-topic{padding:var(--space-3) var(--space-5);cursor:pointer;transition:background .15s}.p3-topic:hover{background:var(--color-surface-alt)}.p3-topic-row{display:flex;align-items:center;gap:var(--space-3)}.p3-topic-en{font-weight:var(--font-semibold);font-size:var(--text-sm)}.p3-topic-zh{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:.15rem}.p3-topic-count{margin-top:var(--space-1)}.p3-cue-hint,.p3-topic-count{font-size:var(--text-xs);color:var(--color-text-muted)}.p3-cue-hint{margin-top:.35rem;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p3-divider{border-top:1px solid var(--color-border);margin:0 var(--space-5)}.p3-q-list{padding:0 var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.p3-q-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#fff5f0,#fef6e8);border-radius:var(--radius-md);border-left:3px solid #e17055;cursor:pointer;transition:transform .15s}.p3-q-item:hover{transform:translateX(4px)}.p3-q-num{width:1.6rem;height:1.6rem;border-radius:var(--radius-full);background:linear-gradient(135deg,#e17055,#fdcb6e);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-bold);font-size:.7rem;flex-shrink:0}.p3-q-text{font-size:var(--text-sm);font-weight:var(--font-medium)}.p3-q-zh{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:.1rem}.p3-q-mic{font-size:var(--text-sm);color:#e17055;font-weight:var(--font-semibold)}.practice-topic-tags{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-2)}.practice-question-zh,.practice-topic-zh{color:var(--color-text-secondary);font-size:var(--text-sm)}.practice-question-zh{margin-top:var(--space-1)}.practice-submit-row{text-align:center;margin-top:var(--space-6)}.practice-submit-quota{margin-top:var(--space-2)}.practice-status-card{text-align:center;padding:var(--space-12)}.practice-status-card--sm{text-align:center;padding:var(--space-8)}.practice-status-icon{font-size:3rem;margin-bottom:var(--space-4)}.practice-status-icon--sm{font-size:2rem;margin-bottom:var(--space-4)}.practice-status-icon--pulse{animation:eval-pulse 2s infinite}.practice-status-title{font-weight:var(--font-semibold);font-size:var(--text-lg);margin-bottom:var(--space-2)}.practice-status-title--error{color:var(--color-error)}.practice-status-hint{color:var(--color-text-secondary);font-size:var(--text-sm)}.practice-status-spinner{margin-bottom:var(--space-4)}.practice-actions{margin-top:var(--space-6)}.practice-actions,.practice-report-actions{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.practice-report-actions{margin-top:var(--space-8)}.practice-report-actions--page-top{justify-content:flex-start}.practice-report-actions--page-top,.practice-report-actions--top{margin-top:0;margin-bottom:var(--space-4)}@keyframes eval-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.hist-head{justify-content:space-between;align-items:center}.hist-head,.hist-tabs{display:flex;margin-bottom:var(--space-6)}.hist-tabs{gap:var(--space-1);background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-1)}.hist-tab{flex:1 1;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);font-weight:var(--font-semibold);font-size:var(--text-sm);cursor:pointer;background:transparent;color:var(--color-text-secondary);transition:all .2s}.hist-tab--active{color:#fff}.hist-loading{text-align:center;padding:var(--space-12)}.hist-list{flex-direction:column}.hist-list,.hist-practiced-row{display:flex;gap:var(--space-4)}.hist-practiced-row{align-items:center;padding:var(--space-4) var(--space-5);border-left:3px solid transparent}.hist-practiced-row--failed{border-left-color:#d63031}.hist-practiced-row--evaluating{border-left-color:#fdcb6e}.hist-row{gap:var(--space-4);padding:var(--space-4) var(--space-5);transition:background .15s}.hist-badge,.hist-row{display:flex;align-items:center}.hist-badge{width:2.5rem;height:2.5rem;border-radius:var(--radius-full);justify-content:center;color:#fff;font-weight:var(--font-bold);font-size:var(--text-sm);flex-shrink:0}.hist-info{flex:1 1;min-width:0}.hist-title{font-weight:var(--font-semibold);font-size:var(--text-base);margin-bottom:.15rem}.hist-cat{font-size:var(--text-sm);color:var(--color-text-secondary)}.hist-stats{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.hist-q-text{font-size:var(--text-sm);font-weight:var(--font-medium);margin:0}.hist-q-zh{font-size:var(--text-xs);color:var(--color-text-secondary);margin:.2rem 0 0}.hist-row-actions{flex-wrap:wrap;justify-content:flex-end}.hist-chip{display:flex;align-items:center;gap:.3rem;color:#fff;border-radius:var(--radius-full);padding:.3rem .75rem}.hist-chip-label{font-size:var(--text-xs);opacity:.85}.hist-chip-value{font-size:var(--text-base);font-weight:800}.btn-mini{font-size:var(--text-sm);padding:.3rem .6rem}@media (max-width:640px){.hist-practiced-row{align-items:flex-start;flex-wrap:wrap}.hist-practiced-row .hist-info{flex-basis:calc(100% - 3.5rem)}.hist-row-actions{justify-content:flex-start;margin-left:calc(2.5rem + var(--space-4))}}.recorder-status{text-align:center}.recorder-timer{font-size:var(--text-2xl);font-weight:var(--font-bold);font-family:var(--font-mono);color:var(--color-error)}.recorder-remaining{font-size:var(--text-sm);font-weight:var(--font-semibold);margin-top:var(--space-1);color:var(--color-warning)}.recorder-remaining.is-urgent{color:var(--color-error)}.recorder-bars{display:flex;align-items:center;justify-content:center;gap:2px;height:40px;margin:var(--space-3) 0 var(--space-2)}.recorder-bar{width:4px;border-radius:2px;background:var(--color-text-muted);height:4px;transition:height .08s ease-out,background .15s}.recorder-hint{color:var(--color-text-secondary)}.recorder-hint,.recorder-silent{font-size:var(--text-sm);margin-top:var(--space-1)}.recorder-silent{color:var(--color-warning);display:flex;align-items:center;justify-content:center;gap:.35rem;font-weight:var(--font-semibold)}.recorder-idle{text-align:center}.recorder-idle-hint{color:var(--color-text-secondary);margin-bottom:var(--space-3)}.recorder-upload-row{display:flex;align-items:center;gap:var(--space-3)}.recorder-or{font-size:var(--text-sm);color:var(--color-text-muted)}.recorder-tooshort{text-align:center;padding:var(--space-2) var(--space-4);background:#fff3cd;border-radius:var(--radius-md);border:1px solid #ffc107;margin-bottom:var(--space-3);font-size:var(--text-sm);color:#856404}.recorder-playback{width:100%;text-align:center}.recorder-playback-inner{display:inline-block;max-width:380px;width:100%}.recorder-playback-actions{margin-top:var(--space-3);display:flex;justify-content:center;gap:var(--space-2)}.evaluation-report>.card,.evaluation-report>.skeleton-card{margin-bottom:var(--space-6)}.eval-section-enter{animation:fadeInUp .4s ease-out}.eval-heading{font-weight:var(--font-bold);margin-bottom:var(--space-3)}.eval-banner-warn{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffb74d;border-left:4px solid #ff9800;padding:var(--space-5)}.eval-banner-warn .eval-banner-body{display:flex;align-items:flex-start;gap:var(--space-3)}.eval-banner-warn .eval-banner-icon{font-size:1.5rem;flex-shrink:0}.eval-banner-warn .eval-banner-title{font-weight:var(--font-bold);font-size:var(--text-sm);color:#e65100;margin-bottom:var(--space-2)}.eval-banner-warn .eval-banner-text{font-size:var(--text-sm);color:#bf360c;line-height:1.6}.eval-transcript{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.8;font-style:italic;padding:var(--space-4);background:var(--color-surface-alt);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.eval-band{text-align:center;padding:var(--space-6) var(--space-4)}.eval-band .eval-band-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-1);letter-spacing:.05em}.eval-band .eval-band-score{font-size:2.75rem;font-weight:800;line-height:1.1}.eval-band .eval-band-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.eval-band[data-band=high]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #66bb6a}.eval-band[data-band=high] .eval-band-score{color:#2e7d32}.eval-band[data-band=good]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid #42a5f5}.eval-band[data-band=good] .eval-band-score{color:#1565c0}.eval-band[data-band=mid]{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:1px solid #ffa726}.eval-band[data-band=mid] .eval-band-score{color:#e65100}.eval-band[data-band=low]{background:linear-gradient(135deg,#fce4ec,#f8bbd0);border:1px solid #ef5350}.eval-band[data-band=low] .eval-band-score{color:#c62828}.eval-dim{margin-bottom:var(--space-5);padding:var(--space-4);background:var(--color-surface-alt);border-radius:var(--radius-md);border:1px solid var(--color-border)}.eval-dim:last-child{margin-bottom:0}.eval-dim-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.eval-dim-head h4{font-size:var(--text-sm);font-weight:var(--font-semibold)}.eval-dim-score{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-primary)}.eval-dim-note{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7}.correction-list{display:flex;flex-direction:column;gap:var(--space-2)}.correction-row{padding:var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md);font-size:var(--text-sm)}.correction-row--pron{border-left:3px solid #00b894}.correction-row--grammar{border-left:3px solid #fdcb6e}.correction-arrow{color:var(--color-text-muted);margin:0 var(--space-2)}.correction-from-pron{font-weight:var(--font-semibold);color:#d63031}.correction-to{font-weight:var(--font-semibold);color:#00b894}.correction-strike{text-decoration:line-through;color:#d63031}.correction-tag{margin-left:var(--space-2);font-size:var(--text-xs);padding:.15rem var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-semibold)}.correction-tag--pron{background:#e0f7f0;color:#00b894}.correction-tag--grammar{background:#fef9e7;color:#f39c12}.correction-note{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--text-xs)}.eval-sample{border-left:4px solid #00b894}.eval-sample p{font-size:var(--text-sm);line-height:1.8;color:var(--color-text)}.tts-loading{margin-top:var(--space-4);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,#e8f4fd,#f0e6ff);border-radius:var(--radius-md);border:1px solid #c4d9f2;animation:pulse-bg 2s ease-in-out infinite}.tts-loading .tts-text{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary)}.tts-spinner{display:inline-block;animation:spin 1.5s linear infinite}@keyframes pulse-bg{0%,to{opacity:1}50%{opacity:.65}}