@import "https://fonts.loli.net/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Nunito:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--color-brand-50:#fff3e8;--color-brand-100:#ffe2bf;--color-brand-500:#ff8f3d;--color-brand-600:#ef7f2d;--color-brand-700:#cf651d;--color-brand-800:#a84e12;--color-accent-50:#fff2f7;--color-accent-500:#f37aa2;--color-accent:#ff7a45;--color-accent-light:#ff7a451f;--color-accent-shadow:#ff7a4547;--color-accent-shadow-strong:#ff7a455c;--color-primary:var(--color-brand-500);--color-primary-soft:#ff8f3d1f;--color-primary-strong:#ff8f3d73;--color-primary-ring:#ff8f3d2e;--color-primary-surface:#ff8f3d14;--color-primary-border:#ff8f3d33;--color-success-50:#ecfdf3;--color-success-500:#18b26b;--color-success-600:#0e9a5d;--color-success-light:#d1fae5;--color-success-soft:#18b26b1a;--color-success-strong:#18b26b80;--color-warning-50:#fff8e8;--color-warning-500:#f5a623;--color-warning-soft:#f5a6231a;--color-warning-strong:#f5a62380;--color-danger-50:#fff1f2;--color-danger-500:#ef5466;--color-danger-soft:#ef54661a;--color-danger-border:#ef546640;--color-danger-strong:#ef546680;--color-warm:#ff9f43;--color-warm-soft:#ff9f4329;--color-warm-glow:#ff9f4338;--color-gold:#fbbf24;--color-violet-500:#7a5af8;--color-violet-light:#7a5af81a;--color-violet-soft:#7a5af81f;--color-violet-border:#7a5af829;--color-violet-strong:#7a5af880;--color-cyan-500:#179fd6;--color-cyan-light:#31c3ff1a;--color-cyan-strong:#31c3ff80;--color-white:#fff;--color-white-96:#fffffff5;--color-white-95:#fffffff2;--color-white-92:#ffffffeb;--color-white-88:#ffffffe0;--color-white-80:#fffc;--color-white-90:#ffffffe6;--color-white-70:#ffffffb3;--color-white-72:#ffffffb8;--color-white-68:#ffffffad;--color-white-60:#fff9;--color-white-50:#ffffff80;--color-white-24:#ffffff3d;--color-white-18:#ffffff2e;--color-white-16:#ffffff29;--color-white-15:#ffffff26;--color-white-14:#ffffff24;--color-white-12:#ffffff1f;--color-white-08:#ffffff14;--color-white-06:#ffffff0f;--color-white-04:#ffffff0a;--color-black-25:#00000040;--color-black-15:#00000026;--color-primary-tint:#ff8f3d1a;--color-primary-soft-14:#ff8f3d24;--color-primary-focus-ring:#ff8f3d29;--color-primary-glow:#ff8f3d4d;--color-primary-pulse:#ff8f3d66;--color-violet-surface:#7a5af814;--color-cyan-surface:#31c3ff14;--color-cyan-soft-14:#6bcff624;--color-cyan-brand:#2f9fd9;--color-success-surface:#18b26b14;--color-success-soft-14:#18b26b24;--color-success-border:#18b26b33;--color-warning-surface:#f5a62314;--color-warning-tint:#f5a6231f;--color-danger-surface:#ef546614;--color-danger-border-soft:#ef546629;--color-warm-surface:#ff9f4314;--color-warm-tint:#ff9f431a;--color-warm-soft-14:#ff9f4324;--color-warm-border:#ff9f432e;--color-warm-border-strong:#ff9f434d;--color-warm-pulse:#ff9f4366;--color-accent-pink-soft:#f37aa214;--color-accent-pink-tint:#f37aa21a;--color-white-40:#fff6;--color-white-55:#ffffff8c;--color-white-75:#ffffffbf;--color-white-78:#ffffffc7;--color-text:#3d2d4f;--color-text-primary:var(--color-text);--color-text-secondary:#6f6280;--color-text-muted:#9b90aa;--text-primary:var(--color-text);--text-muted:var(--color-text-muted);--color-bg:#fff8f2;--color-bg-elevated:#fff;--color-bg-soft:#fff4eb;--color-surface:var(--color-bg-elevated);--color-border:#f1dfcf;--color-border-strong:#e8ceb8;--gradient-ai:linear-gradient(135deg, #ff9f43 0%, #ff7a45 52%, #f37aa2 100%);--gradient-hero:linear-gradient(135deg, #ffb14a 0%, #ff8a5b 48%, #f37aa2 100%);--gradient-sidebar:linear-gradient(180deg, #35215f 0%, #49307f 58%, #5b3994 100%);--gradient-brand-text:linear-gradient(135deg, var(--color-white) 0%, #fff3da 52%, #ffd59d 100%);--gradient-warm-accent:linear-gradient(135deg, var(--color-warm) 0%, var(--color-accent) 100%);--gradient-achievement:linear-gradient(135deg, var(--color-accent-light), var(--color-violet-soft));--gradient-login-page:radial-gradient(ellipse 80% 60% at 50% -10%, #ff9f4333 0%, transparent 60%), linear-gradient(160deg, #fff7ef 0%, #fffaf5 48%, #fff3e6 100%);--gradient-logo-surface:linear-gradient(135deg, var(--color-white-92), #fff0dfe0);--gradient-surface-warm:linear-gradient(180deg, var(--color-white-96), #fff8efeb);--icon-size-nav:18px;--sidebar-avatar-size:34px;--radius-btn-sm:6px;--radius-bubble:18px;--sidebar-width:248px;--sidebar-logo-size:38px;--header-height:64px;--header-blur:18px;--metric-card-min-width:180px;--dashboard-banner-orb-size:200px;--dashboard-banner-visual-min-width:144px;--dashboard-banner-visual-icon-size:84px;--login-container-max-width:900px;--login-container-min-height:560px;--login-panel-width:380px;--radius-xs:12px;--radius-sm:16px;--radius-md:20px;--radius-lg:24px;--radius-xl:32px;--radius-pill:9999px;--radius-control:10px;--radius-logo:14px;--radius-field:12px;--shadow-xs:0 2px 8px #1f2a440f;--shadow-sm:0 4px 16px #1f2a4414;--shadow-md:0 8px 28px #2d4caa1f;--shadow-lg:0 16px 48px #14265e29;--shadow-header:0 2px 12px #1f2a440f;--shadow-accent-md:0 4px 12px var(--color-accent-shadow);--shadow-accent-lg:0 6px 20px var(--color-accent-shadow-strong);--shadow-warm-glow:0 8px 18px var(--color-warm-glow);--shadow-icon-glow:0 8px 28px #ff8f3d4d;--shadow-dark-sm:drop-shadow(0 4px 12px var(--color-black-15));--shadow-dark-md:drop-shadow(0 8px 20px var(--color-black-25));--shadow-focus-ring-primary:0 0 0 3px var(--color-primary-ring);--shadow-warm-outline:0 0 8px #ff9f4399;--chat-blur:12px;--icon-size-display:1.5rem;--motion-fast:.16s;--motion-base:.24s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--ease-out:ease-out;--duration-fast:.2s;--duration-normal:.3s;--duration-slow:1.8s;--duration-float:3.2s;--border-width-thin:1px;--border-width-medium:1.5px;--tracking-tight:-.3px;--tracking-tighter:-.5px;--tracking-wide:.1px;--opacity-muted:.6;--focus-ring-width:6px;--focus-ring-offset:4px;--focus-ring-width-sm:2px;--font-family-primary:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "Nunito", "Inter", system-ui, -apple-system, sans-serif;--space-1:4px;--space-2:8px;--space-0-5:2px;--space-0-75:3px;--space-1-5:6px;--space-2-5:10px;--space-2-75:11px;--space-3:12px;--space-3-5:14px;--space-4:16px;--space-4-5:18px;--space-5:20px;--space-5-5:22px;--space-6:24px;--space-7:28px;--space-7-5:30px;--space-8:32px;--space-8-5:34px;--space-9-5:38px;--space-10:40px;--space-11:44px;--space-12:48px;--space-13:52px;--space-14:56px;--space-15:60px;--space-16:64px;--space-20:80px;--space-32:128px;--space-21:84px;--space-36:144px;--space-45:180px;--space-50:200px;--space-55:220px;--space-75:300px;--font-size-xs:.75rem;--font-size-2xs:.6875rem;--font-size-13:.8125rem;--font-size-sm:.875rem;--font-size-md:.9375rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl-plus:1.375rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3.75rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.025em;--letter-spacing-wider:.05em;--letter-spacing-widest:.1em;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,Nunito,Inter,system-ui,-apple-system,sans-serif;line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}:focus:not(:focus-visible){outline:none}:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm)}body{background:var(--color-bg);margin:0}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.page-shell{gap:var(--space-6);max-width:1100px;padding:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.page-shell-wide{max-width:1400px}.page-header{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.display-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary)}.section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal)}.label-sm{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wider);color:var(--text-muted);text-transform:uppercase}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1);line-height:var(--line-height-relaxed)}.gradient-text{background:var(--gradient-ai);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.panel{background:var(--color-bg-elevated);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-6)}.panel--clickable{transition:transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease;cursor:pointer}.panel--clickable:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.panel-header{margin:calc(var(--space-6) * -1) calc(var(--space-6) * -1) 0;padding:var(--space-4) var(--space-6);border-bottom:var(--border-width-thin) solid var(--color-border)}.panel-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.title-with-icon{align-items:center;gap:var(--space-2-5);display:inline-flex}.title-with-icon svg{flex-shrink:0}.panel-body{padding:var(--space-6) 0 0}.metric-grid{grid-template-columns:repeat(auto-fit, minmax(var(--metric-card-min-width), 1fr));gap:var(--space-4);display:grid}.metric-card{background:var(--color-bg-elevated);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-6);gap:var(--space-1-5);box-shadow:var(--shadow-xs);flex-direction:column;display:flex}.metric-card-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-semibold)}.metric-card-value{font-size:var(--font-size-3xl);color:var(--color-brand-600);font-weight:700;line-height:1}.metric-card-unit{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-left:var(--space-0-75);font-weight:400}.metric-card-icon{width:var(--sidebar-logo-size);height:var(--sidebar-logo-size);border-radius:var(--radius-sm);font-size:var(--font-size-lg);margin-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.dashboard-cards{grid-template-columns:repeat(auto-fill, minmax(var(--space-55), 1fr));gap:var(--space-4);display:grid}.dashboard-banner{background:var(--gradient-hero);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-10);color:var(--color-white);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;display:flex;position:relative;overflow:hidden}.gradient-hero{padding:var(--space-8) var(--space-10)}.dashboard-banner:before{content:"";top:calc(var(--space-10) * -1);right:calc(var(--space-10) * -1);width:var(--dashboard-banner-orb-size);height:var(--dashboard-banner-orb-size);background:var(--color-white-06);border-radius:50%;position:absolute}.dashboard-banner h2{margin:0 0 var(--space-1-5)}.dashboard-banner p{font-size:var(--font-size-sm);opacity:.85;margin:0}.dashboard-banner-emoji{font-size:var(--font-size-5xl);filter:var(--shadow-dark-sm);line-height:1}.dashboard-banner-visual{z-index:1;min-width:var(--dashboard-banner-visual-min-width);align-items:center;gap:var(--space-2);flex-direction:column;display:flex;position:relative}.dashboard-banner-visual-icon{width:var(--dashboard-banner-visual-icon-size);height:var(--dashboard-banner-visual-icon-size);border-radius:var(--radius-lg);background:var(--color-white-16);border:1px solid var(--color-white-24);box-shadow:var(--shadow-md);color:var(--color-white);justify-content:center;align-items:center;line-height:1;display:flex}.dashboard-banner-visual-label{align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--color-white-14);border:1px solid var(--color-white-18);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex}.dashboard-section-title{font-size:var(--font-size-base)}.dashboard-cards-spaced{margin-top:var(--space-3-5)}.panel--spaced{margin-top:var(--space-4)}.metric-card--playful{background:var(--gradient-surface-warm)}.dash-card-icon{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-control);margin-bottom:var(--space-3);justify-content:center;align-items:center;display:flex}.dash-card--brand{border-top:var(--space-0-75) solid var(--color-primary-strong)}.dash-card--violet{border-top:var(--space-0-75) solid var(--color-violet-strong)}.dash-card--cyan{border-top:var(--space-0-75) solid var(--color-cyan-strong)}.dash-card--success{border-top:var(--space-0-75) solid var(--color-success-strong)}.dash-card--warning{border-top:var(--space-0-75) solid var(--color-warning-strong)}.dash-card--danger{border-top:var(--space-0-75) solid var(--color-danger-strong)}.dash-card-icon--brand{background:var(--color-primary-soft);color:var(--color-brand-600)}.dash-card-icon--violet{background:var(--color-violet-light);color:var(--color-violet-500)}.dash-card-icon--cyan{background:var(--color-cyan-light);color:var(--color-cyan-500)}.dash-card-icon--success{background:var(--color-success-soft);color:var(--color-success-500)}.dash-card-icon--warning{background:var(--color-warning-soft);color:var(--color-warning-500)}.dash-card-icon--danger{background:var(--color-danger-soft);color:var(--color-danger-500)}.dash-card{background:var(--color-bg-elevated);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5-5) var(--space-5);transition:transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease, border-color var(--motion-fast);cursor:pointer}.dash-card:hover{box-shadow:var(--shadow-md);transform:translateY(calc(var(--space-0-75) * -1));border-color:var(--color-brand-100)}.dash-card:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.dash-card h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-1-5)}.dash-card p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.5}.ai-capability-grid{gap:var(--space-4);padding:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ai-capability-card{text-align:center;padding:var(--space-4) var(--space-2)}.ai-capability-card-icon{width:var(--space-12);height:var(--space-12);border-radius:var(--radius-logo);margin:0 auto var(--space-2-5);justify-content:center;align-items:center;display:flex}.ai-capability-card-icon--brand{background:var(--color-primary-soft-14);color:var(--color-brand-600)}.ai-capability-card-icon--violet{background:var(--color-violet-soft);color:var(--color-violet-500)}.ai-capability-card-icon--cyan{background:var(--color-cyan-soft-14);color:var(--color-cyan-brand)}.ai-capability-card-title{font-weight:700;font-size:var(--font-size-sm);color:var(--text-primary);margin-bottom:var(--space-1)}.ai-capability-card-desc{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.5}.btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-4-5);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);white-space:nowrap;border:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--gradient-ai);color:var(--color-white);border-radius:var(--radius-control);box-shadow:var(--shadow-accent-md);padding:var(--space-3) var(--space-6)}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-accent-lg);filter:brightness(1.06)}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);padding:var(--space-3) var(--space-6)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-soft);border-color:var(--color-brand-500);color:var(--color-brand-600)}.btn-danger{background:var(--color-danger-50);color:var(--color-danger-500)}.btn-danger:hover:not(:disabled){background:var(--color-danger-500);color:var(--color-white)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-bg-soft)}.form-group{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-2);display:block}.form-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-field);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);outline:none;font-family:inherit}.form-input:focus,.form-input:focus-visible{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring-primary)}.form-input::placeholder{color:var(--color-text-muted)}.w-full{width:100%}.form-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 13px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;width:auto;min-width:108px;padding-right:36px}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table thead tr{background:var(--color-bg-soft)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);letter-spacing:0;border-bottom:1px solid var(--color-border)}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}.data-table tbody tr{transition:background var(--motion-fast)}.data-table--interactive tbody tr:hover{background:var(--color-bg-soft)}.data-table tbody tr:last-child td{border-bottom:none}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.badge-brand{background:var(--color-brand-50);color:var(--color-brand-700)}.badge-success{background:var(--color-success-50);color:var(--color-success-500)}.badge-warning{background:var(--color-warning-50);color:var(--color-warning-500)}.badge-danger{background:var(--color-danger-50);color:var(--color-danger-500)}.badge-muted{background:var(--color-bg-soft);color:var(--color-text-muted);border:1px solid var(--color-border)}.toolbar{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;flex-wrap:wrap;display:flex}.empty-state{padding:var(--space-16) var(--space-8);color:var(--color-text-muted);text-align:center;justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.empty-state-icon{font-size:var(--space-12);line-height:1}.empty-state-icon--mascot{width:var(--space-21);height:var(--space-21);border-radius:var(--radius-lg);background:var(--color-white-80);box-shadow:var(--shadow-xs);justify-content:center;align-items:center;display:flex}.empty-state-text{font-size:var(--font-size-sm)}.empty-state-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state--compact{padding:var(--space-8) var(--space-5)}.loading-state,.error-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center;flex-direction:column;display:flex}.loading-state--full,.error-state--full{min-height:320px}.loading-state--compact,.error-state--compact{padding:var(--space-7) var(--space-5);min-height:var(--space-45)}.loading-spinner{width:var(--space-8-5);height:var(--space-8-5);border:3px solid var(--color-primary-focus-ring);border-top-color:var(--color-brand-500);border-radius:50%;animation:.8s linear infinite spin}.loading-spinner-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.skeleton{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-white-40) 50%, var(--color-border) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-text{height:1em;margin-bottom:var(--space-2)}.skeleton-title{width:60%;height:1.5em;margin-bottom:var(--space-3)}.skeleton-card{border-radius:var(--radius-xl);height:120px}.skeleton-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.skeleton-toolbar-input{flex:280px;height:44px}.skeleton-toolbar-badge{width:120px;height:32px}.skeleton-card-grid{gap:var(--space-4);margin-top:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.skeleton-panel-block{height:180px}.flex-1{flex:1}.skeleton-text-width-compact{width:4.75rem}.skeleton-text-width-short{width:5.25rem}.skeleton-text-width-label{width:5.5rem}.skeleton-text-width-medium{width:6rem}.skeleton-text-width-wide{width:15rem}.skeleton-text-width-extended{width:17.5rem}.skeleton-panel-block-sm{height:10.625rem}.skeleton-panel-block-md{height:11.25rem}.skeleton-panel-block-lg{height:12.5rem}.error-state-icon{background:var(--color-danger-50);width:56px;height:56px;color:var(--color-danger-500);font-size:var(--font-size-2xl);border-radius:18px;justify-content:center;align-items:center;display:flex}.error-state-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.error-state-description{font-size:var(--font-size-13);color:var(--color-text-muted);max-width:420px}.text-danger-sm{font-size:var(--font-size-13);color:var(--color-danger-500)}.error-boundary{justify-content:center;align-items:center;gap:var(--space-4);min-height:100vh;color:var(--color-text-secondary);flex-direction:column;display:flex}.error-boundary-icon{font-size:var(--space-12)}.error-boundary-title{color:var(--color-text);margin:0}.error-boundary-text{color:var(--color-text-muted);margin:0}.error-boundary-button{padding:var(--space-2) var(--space-6);background:var(--gradient-ai);color:var(--color-white);border-radius:var(--radius-control);cursor:pointer;font-size:var(--font-size-sm);border:none}.toast-viewport{z-index:120;gap:var(--space-2-5);flex-direction:column;width:min(360px,100vw - 24px);display:flex;position:fixed;top:18px;right:18px}.toast-card{gap:var(--space-3);padding:var(--space-3-5) var(--space-3-5) var(--space-3-5) var(--space-4);background:var(--color-white-95);border:1px solid var(--color-border);border-radius:var(--radius-bubble);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:.22s ease-out fadeSlideIn;display:flex}.toast-card--success{border-color:var(--color-success-border)}.toast-card--error{border-color:var(--color-danger-border)}.toast-card--info{border-color:var(--color-primary-border)}.toast-icon{border-radius:var(--radius-xs);width:36px;height:36px;font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-card--success .toast-icon{background:var(--color-success-50);color:var(--color-success-500)}.toast-card--error .toast-icon{background:var(--color-danger-50);color:var(--color-danger-500)}.toast-card--info .toast-icon{background:var(--color-brand-50);color:var(--color-brand-600)}.toast-body{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.toast-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.toast-description{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.toast-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.toast-actions .btn{font-size:var(--font-size-xs);padding:7px 12px}.toast-close{border-radius:var(--radius-control);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0}.toast-close:hover{background:var(--color-bg-soft);color:var(--color-text)}.metrics-icon--brand{background:var(--color-primary-soft);color:var(--color-brand-600)}.metrics-icon--violet{background:var(--color-violet-surface);color:var(--color-violet-500)}.metrics-icon--cyan{background:var(--color-cyan-surface);color:var(--color-cyan-500)}.metrics-icon--success{background:var(--color-success-surface);color:var(--color-success-500)}.metrics-icon--warning{background:var(--color-warning-surface);color:var(--color-warning-500)}.metrics-icon--danger{background:var(--color-danger-surface);color:var(--color-danger-500)}.metrics-icon--warm{background:var(--color-warm-soft);color:var(--color-warm)}.two-column-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.table-scroll{margin:var(--space-4) calc(var(--space-6) * -1) calc(var(--space-6) * -1);overflow-x:auto}.text-strong{font-weight:var(--font-weight-medium)}.panel-body--compact{padding:var(--space-3) 0 0}.chart-canvas{height:220px}.panel-stack-lg{gap:var(--space-5);flex-direction:column;display:flex}.card-list{gap:var(--space-2-5);flex-direction:column;display:flex}.achievement-banner{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4-5) var(--space-5);border-radius:var(--radius-lg);background:var(--gradient-achievement);border:1px solid var(--color-violet-border);box-shadow:var(--shadow-xs);display:flex}.achievement-banner-copy{gap:var(--space-1);flex-direction:column;display:flex}.achievement-banner-label{font-size:var(--font-size-xs);letter-spacing:.1px;color:var(--color-accent-500);font-weight:700}.achievement-banner-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text)}.achievement-banner-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.achievement-banner-icon{width:var(--space-13);height:var(--space-13);border-radius:var(--radius-xs);background:var(--color-white-70);box-shadow:var(--shadow-xs);color:var(--color-accent-500);justify-content:center;align-items:center;display:flex}.uploader-shell{gap:var(--space-3-5);flex-direction:column;display:flex}.uploader-toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.uploader-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.uploader-dropzone{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-6);text-align:center;cursor:pointer;background:var(--color-bg-soft);transition:border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast)}.uploader-dropzone:hover{border-color:var(--color-brand-500);box-shadow:0 10px 28px var(--color-primary-surface);transform:translateY(-1px)}.uploader-dropzone--active{border-color:var(--color-brand-500);background:var(--color-primary-surface)}.uploader-icon{width:var(--space-14);height:var(--space-14);margin:0 auto var(--space-3-5);border-radius:var(--radius-xs);background:var(--gradient-ai);color:var(--color-white);font-size:var(--icon-size-display);box-shadow:var(--shadow-accent-md);justify-content:center;align-items:center;display:flex}.uploader-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.uploader-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1-5)}.uploader-meta{margin-top:var(--space-3);justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.export-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.template-panel{border-width:var(--border-width-medium)}.template-panel--word{border-color:var(--color-brand-100)}.template-panel--excel{border-color:var(--color-success-border)}.template-icon{border-radius:var(--radius-xs);width:48px;height:48px;font-size:var(--icon-size-display);margin-bottom:var(--space-3-5);justify-content:center;align-items:center;display:flex}.template-icon--word{background:var(--color-primary-surface)}.template-icon--excel{background:var(--color-success-surface)}.template-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-1-5)}.template-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-4)}.template-format{margin-bottom:var(--space-4)}.template-spacer{height:var(--space-10);margin-bottom:var(--space-3)}.btn-full{width:100%}.btn-success-gradient{background:linear-gradient(135deg, var(--color-success-500), var(--color-success-600))}.chat-page{background:var(--color-bg);flex-direction:column;height:100%;display:flex}.chat-header{background:var(--color-white-90);-webkit-backdrop-filter:blur(var(--chat-blur));backdrop-filter:blur(var(--chat-blur));border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.chat-header-title{align-items:center;gap:var(--space-2-5);color:var(--color-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);display:inline-flex}.chat-brand-description{margin-top:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-relaxed)}.chat-header-status{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-0-5);display:flex}.chat-header-status--connected{color:var(--color-success-500)}.chat-ai-indicator{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--color-primary-surface);border:1px solid var(--color-primary-soft-14);color:var(--color-brand-700);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex}.chat-ai-pulse{width:var(--space-2);height:var(--space-2);background:var(--color-brand-500);box-shadow:0 0 0 0 var(--color-primary-pulse);border-radius:50%;animation:1.8s infinite pulseRing}.chat-messages{padding:var(--space-5) var(--space-4);flex:1;overflow-y:auto}.chat-empty{justify-content:center;align-items:center;gap:var(--space-4);height:100%;padding-bottom:var(--space-10);flex-direction:column;display:flex}.chat-empty-icon{background:var(--gradient-ai);width:72px;height:72px;box-shadow:var(--shadow-icon-glow);color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;display:flex}.chat-empty-copy{text-align:center}.chat-empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.chat-empty-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1-5)}.chat-suggestions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;max-width:720px;display:flex}.chat-suggestion-chip{min-width:176px;padding:var(--space-3) var(--space-3);border-radius:var(--radius-sm);border:var(--border-width-medium) solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);align-items:flex-start;gap:var(--space-2-5);text-align:left;box-shadow:var(--shadow-xs);flex-direction:column;display:flex}.chat-suggestion-chip:hover{border-color:var(--color-brand-500);color:var(--color-brand-600);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.chat-suggestion-chip:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.chat-suggestion-chip-header{gap:var(--space-2-5);width:var(--space-7-5);height:var(--space-7-5);border-radius:var(--radius-control);background:var(--color-primary-surface);color:var(--color-brand-600);justify-content:center;align-items:center;display:inline-flex}.chat-suggestion-chip-category{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.1px;color:var(--color-text-muted)}.chat-suggestion-chip-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.chat-thinking{justify-content:flex-start;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.chat-thinking-bubble{gap:var(--space-2);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg, var(--color-primary-tint), var(--color-accent-pink-soft), var(--color-white-96));border:1px solid var(--color-border);border-radius:var(--radius-bubble) var(--radius-bubble) var(--radius-bubble) var(--space-1);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;position:relative;overflow:hidden}.chat-thinking-bubble:after{content:"";background:linear-gradient(110deg, transparent 0%, var(--color-white-55) 46%, transparent 100%);animation:2.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.chat-thinking-bubble>*{z-index:1;position:relative}.chat-thinking-text{font-size:var(--font-size-13);font-weight:var(--font-weight-semibold);color:var(--color-brand-600)}.chat-thinking-caption{font-size:var(--font-size-xs);color:var(--color-text-muted)}.chat-thinking-dots{gap:var(--space-1-5);display:inline-flex}.chat-thinking-dot{background:var(--color-brand-500);border-radius:50%;width:7px;height:7px;animation:1.2s infinite bounce;display:inline-block}.chat-thinking-dot--0{animation-delay:0s}.chat-thinking-dot--1{animation-delay:.15s}.chat-thinking-dot--2{animation-delay:.3s}.chat-composer{background:var(--color-white-95);-webkit-backdrop-filter:blur(var(--chat-blur));backdrop-filter:blur(var(--chat-blur));border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);flex-shrink:0}.chat-composer-row{gap:var(--space-2-5);align-items:flex-end;display:flex}.chat-textarea{resize:none;border-radius:var(--radius-md);border:var(--border-width-medium) solid var(--color-border);padding:var(--space-2-75) var(--space-3-5);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg-soft);min-height:var(--space-11);max-height:var(--space-32);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);outline:none;flex:1;font-family:inherit}.chat-textarea:focus{border-color:var(--color-brand-500);box-shadow:0 0 0 var(--focus-ring-width) var(--color-primary-focus-ring)}.chat-send-btn{flex-shrink:0;min-width:56px}.chat-avatar{width:var(--space-8);height:var(--space-8);font-size:var(--font-size-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.chat-avatar--ai{background:var(--gradient-ai);color:var(--color-white);box-shadow:0 4px 12px var(--color-primary-glow)}.chat-avatar--user{background:var(--color-brand-50);border:2px solid var(--color-brand-100);color:var(--color-brand-600);font-size:var(--font-size-13)}.chat-bubble-row{align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-3-5);display:flex}.chat-bubble-row--user{justify-content:flex-end}.chat-bubble-row--assistant{justify-content:flex-start}.chat-bubble-stack{gap:var(--space-1-5);flex-direction:column;max-width:72%;display:flex}.chat-bubble-stack--user{align-items:flex-end}.chat-bubble-stack--assistant{align-items:flex-start}.chat-bubble{padding:var(--space-2-75) var(--space-4);border-radius:var(--radius-bubble);font-size:var(--font-size-sm);opacity:1;line-height:1.65}.chat-bubble--pending{opacity:.7}.chat-bubble--user{border-radius:var(--radius-bubble) var(--radius-bubble) var(--space-1) var(--radius-bubble);background:var(--gradient-ai);color:var(--color-white);box-shadow:0 4px 14px var(--color-primary-glow)}.chat-bubble--assistant{border-radius:var(--radius-bubble) var(--radius-bubble) var(--radius-bubble) var(--space-1);background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text);box-shadow:var(--shadow-xs)}.chat-meta-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chat-confidence-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-success-soft);color:var(--color-success-500);display:inline-flex}.chat-confidence-badge--medium{background:var(--color-warning-tint);color:var(--color-warning-500)}.chat-ref-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.chat-ref-chip{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-pill);background:var(--color-bg-soft);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:inline-flex}.panel-stack{gap:var(--space-3);flex-direction:column;display:flex}.exercise-question{padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.exercise-question:last-child{border-bottom:none;padding-bottom:0}.exercise-question-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-3)}.exercise-question-index{padding:var(--space-0-25,1px) var(--space-2);border-radius:var(--radius-btn-sm);font-size:var(--font-size-xs);margin-right:var(--space-2);background:var(--color-brand-50);color:var(--color-brand-600);align-items:center;display:inline-flex}.exercise-option-grid{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.exercise-option{text-align:left;padding:var(--space-2-5) var(--space-3-5);border-radius:var(--radius-sm);font-size:var(--font-size-sm);border:1.5px solid var(--color-border);background:var(--color-bg-soft);color:var(--color-text);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard)}.exercise-option:hover{box-shadow:var(--shadow-xs);transform:translateY(-1px)}.exercise-option--selected{border-color:var(--color-brand-500);background:var(--color-brand-50);color:var(--color-brand-600)}.exercise-option--correct{border-color:var(--color-success-500);background:var(--color-success-50);color:var(--color-success-500)}.exercise-option--wrong{border-color:var(--color-danger-500);background:var(--color-danger-50);color:var(--color-danger-500)}.exercise-result{padding:var(--space-3) var(--space-3-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:1px solid #0000}.exercise-result--success{background:linear-gradient(135deg, var(--color-success-soft-14), var(--color-warm-surface));border-color:var(--color-success-border);color:var(--color-success-500)}.exercise-result--error{background:var(--color-danger-50);border-color:var(--color-danger-border-soft);color:var(--color-danger-500)}.exercise-result-title{align-items:center;gap:var(--space-2);display:flex}.exercise-result-copy{font-weight:400;font-size:var(--font-size-13);margin-top:var(--space-1-5);color:var(--color-text-secondary)}.exercise-celebration{align-items:center;gap:var(--space-1-5);padding:var(--space-1) var(--space-2-5);margin-left:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent-light);color:var(--color-accent-500);font-size:var(--font-size-xs);font-weight:700;display:inline-flex}.progress-list{gap:var(--space-2-5);flex-direction:column;display:flex}.progress-item{align-items:center;gap:var(--space-3);display:flex}.progress-rank{width:var(--space-6);height:var(--space-6);font-size:var(--font-size-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.progress-rank--danger{background:var(--color-danger-50);color:var(--color-danger-500)}.progress-rank--warning{background:var(--color-warning-50);color:var(--color-warning-500)}.progress-rank--muted{background:var(--color-bg-soft);color:var(--color-text-muted)}.progress-item-name{font-size:var(--font-size-sm);color:var(--color-text);flex:1}.record-text-ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.profile-gamification{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-warm-border);background:linear-gradient(135deg, var(--color-warm-soft-14), var(--color-accent-pink-tint));grid-template-columns:1.4fr 1fr;display:grid}.profile-gamification-main,.profile-gamification-side{gap:var(--space-2-5);flex-direction:column;display:flex}.profile-gamification-kicker{font-size:var(--font-size-xs);color:var(--color-brand-700);font-weight:700}.profile-gamification-title{font-size:var(--font-size-2xl-plus);color:var(--color-text)}.profile-gamification-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.profile-xp-bar{width:100%;height:var(--space-3);background:var(--color-white-75);border-radius:999px;overflow:hidden}.profile-xp-bar-fill{border-radius:inherit;background:var(--gradient-ai);width:78%;height:100%;display:block}.profile-gamification-badge,.profile-gamification-pill{align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-2) var(--space-3);background:var(--color-white-78);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);border-radius:999px;display:inline-flex}.profile-gamification-row{gap:var(--space-2-5);flex-wrap:wrap;display:flex}.profile-gamification-pill--success{color:var(--color-success-500)}.profile-gamification-icon{justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.profile-gamification-icon--warm{color:var(--color-warm)}.profile-gamification-icon--gold{color:var(--color-gold)}.cards-item{overflow:hidden}.cards-item-toggle{width:100%;padding:var(--space-4) var(--space-5);cursor:pointer;transition:background var(--motion-fast);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.cards-item-toggle:hover{background:var(--color-bg-soft)}.cards-item-heading{text-align:left}.cards-item-title{font-size:var(--font-size-md);color:var(--color-text);font-weight:700}.cards-item-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-0-75)}.cards-item-arrow{color:var(--color-text-muted);font-size:var(--font-size-xs);transition:transform var(--motion-fast)}.cards-item-arrow--expanded{transform:rotate(180deg)}.cards-item-body{border-top:1px solid var(--color-border);padding:var(--space-4) var(--space-5);gap:var(--space-3-5);flex-direction:column;display:flex}.cards-item-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.2px;margin-bottom:var(--space-2)}.cards-item-section-title--brand{color:var(--color-brand-600)}.cards-item-section-title--success{color:var(--color-success-500)}.cards-item-section-title--accent{color:var(--color-accent-500)}.cards-item-list{gap:var(--space-1-5);flex-direction:column;list-style:none;display:flex}.cards-item-list-entry{font-size:var(--font-size-sm);color:var(--color-text);align-items:flex-start;gap:var(--space-2);display:flex}.cards-item-list-dot{color:var(--color-brand-500);flex-shrink:0;font-weight:700}.cards-item-example,.cards-item-mnemonic{border-radius:var(--radius-sm);padding:var(--space-3) var(--space-3-5);font-size:var(--font-size-sm);color:var(--color-text)}.cards-item-example{background:var(--color-success-light)}.cards-item-label-strong{font-weight:var(--font-weight-semibold)}.cards-item-example-answer{margin-top:var(--space-1-5)}.cards-item-mnemonic{background:var(--color-accent-50)}.cards-item-footer{justify-content:flex-end;display:flex}.student-summary{align-items:center;gap:var(--space-2-5);display:flex}.student-avatar{width:var(--space-8);height:var(--space-8);background:var(--gradient-ai);color:var(--color-white);font-weight:var(--font-weight-bold);font-size:var(--font-size-13);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.error-bar{background:var(--color-border);border-radius:3px;flex-shrink:0;width:120px;height:6px;overflow:hidden}.error-bar-fill{border-radius:3px;height:100%}.error-bar-fill--danger{background:var(--color-danger-500)}.error-bar-fill--warning{background:var(--color-warning-500)}.error-bar-fill--brand{background:var(--color-brand-500)}.ai-insight-banner{align-items:center;gap:var(--space-3-5);margin-bottom:var(--space-4);padding:var(--space-3-5) var(--space-5);border-radius:var(--radius-sm);color:var(--color-white);background:var(--gradient-warm-accent);display:flex}.ai-insight-icon{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-logo);background:var(--color-white-18);justify-content:center;align-items:center;display:flex}.ai-insight-title{font-weight:700;font-size:var(--font-size-sm);margin-bottom:var(--space-0-5)}.ai-insight-body{font-size:var(--font-size-13);opacity:.92}.compliance-badge{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-0-5) var(--space-2);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-pill);display:inline-flex}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}@keyframes pulseRing{0%{box-shadow:0 0 #ff9f4359}70%{box-shadow:0 0 0 10px #ff9f4300}to{box-shadow:0 0 #ff9f4300}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.chat-message{animation:.22s ease-out fadeSlideIn}.page-container,.page-fade-in{animation:.25s ease-out page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-math-decoration{right:var(--space-8);bottom:var(--space-4);font-size:var(--font-size-lg);color:var(--color-white-15);pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:1px;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,Nunito,sans-serif;animation:3.2s ease-in-out infinite float;position:absolute}@media (width<=960px){.two-column-grid,.export-grid,.profile-gamification,.ai-capability-grid{grid-template-columns:1fr}.dashboard-banner{align-items:flex-start;gap:var(--space-5);flex-direction:column}.dashboard-banner-visual{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.section-title--spaced{margin-bottom:var(--space-4)}.panel--process-spaced{margin-top:var(--space-6)}.ai-process-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.ai-process-step{text-align:center;padding:var(--space-4);background:var(--color-primary-surface);border-radius:var(--radius-lg);border:1px solid var(--color-primary-border);transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.ai-process-icon{width:52px;height:52px;margin:0 auto var(--space-2);color:var(--color-primary);background:var(--color-white-78);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);justify-content:center;align-items:center;display:inline-flex}.ai-process-icon svg{width:24px;height:24px}.ai-process-title{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);color:var(--color-text-primary)}.ai-process-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.ai-process-grid--spaced{margin-bottom:var(--space-6)}.chart-container{width:100%}.gamification-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.gamification-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-warm-tint);border:1px solid var(--color-warm-border-strong);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.gamification-chip .chip-icon{color:var(--color-primary);justify-content:center;align-items:center;display:inline-flex}.stat-card{background:var(--color-surface);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-xl,16px);padding:var(--space-6);transition:transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease;cursor:pointer}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.stat-card:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.dash-card.stat-card{padding:var(--space-5-5) var(--space-5);border-radius:var(--radius-lg);color:inherit;text-decoration:none;display:block}.dash-card.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-brand-100)}button.stat-card{width:100%;font:inherit;text-align:left}.btn-primary:focus-visible,.btn-secondary:focus-visible,.sidebar-logout:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset);box-shadow:0 0 0 var(--focus-ring-width) var(--color-primary-soft)}input:focus-visible,textarea:focus-visible,select:focus-visible,.form-input:focus-visible,.form-select:focus-visible{outline:var(--focus-ring-width-sm) solid var(--color-primary);outline-offset:0;box-shadow:0 0 0 var(--focus-ring-offset) var(--color-primary-soft);border-color:var(--color-primary)!important}a:focus-visible,button:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{text-decoration:none}.nav-item:focus-visible,.sidebar-nav a:focus-visible{outline:var(--focus-ring-width-sm) solid var(--color-white-80);outline-offset:var(--focus-ring-width-sm);border-radius:var(--radius-md)}.panel:focus-within{box-shadow:var(--shadow-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--gradient-sidebar);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-brand{align-items:center;gap:var(--space-3);padding:var(--space-5-5) var(--space-5) var(--space-4-5);border-bottom:1px solid var(--color-white-08);display:flex}.sidebar-logo{width:var(--sidebar-logo-size);height:var(--sidebar-logo-size);background:var(--gradient-logo-surface);border-radius:var(--radius-logo);font-size:var(--font-size-xl);box-shadow:var(--shadow-warm-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo-svg{width:var(--space-6);height:var(--space-6);color:var(--color-white)}.sidebar-brand-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);background:linear-gradient(135deg, var(--color-white), var(--color-white-80));-webkit-text-fill-color:transparent;color:#0000;letter-spacing:var(--tracking-tight);-webkit-background-clip:text;background-clip:text}.sidebar-brand-sub{font-size:var(--font-size-xs);color:var(--color-white-68);margin-top:var(--space-0-5)}.sidebar-nav{padding:var(--space-3) var(--space-2-5);gap:var(--space-0-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-item{align-items:center;gap:var(--space-2-5);padding:var(--space-2-5) var(--space-3-5);border-radius:var(--radius-control);color:var(--color-white-72);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--color-white-08);color:var(--color-white)}.nav-item:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.nav-item--active{background:var(--color-white-12);color:var(--color-white);font-weight:var(--font-weight-semibold)}.nav-item--active:before{content:"";width:var(--space-0-75);height:var(--space-5);background:var(--color-warm);border-radius:0 var(--space-0-5) var(--space-0-5) 0;box-shadow:var(--shadow-warm-outline);position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-icon{width:var(--icon-size-nav);height:var(--icon-size-nav);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nav-icon svg{width:var(--icon-size-nav);height:var(--icon-size-nav)}.nav-label{letter-spacing:var(--tracking-wide)}.sidebar-gamification{margin:0 var(--space-3) var(--space-3-5);padding:var(--space-3-5);border-radius:var(--radius-sm);background:var(--color-white-08);border:var(--border-width-thin) solid var(--color-white-12);gap:var(--space-2-5);flex-direction:column;display:flex}.sidebar-mascot-tip{align-items:center;gap:var(--space-2);color:var(--color-white-92);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:flex}.sidebar-mascot-icon{flex-shrink:0}.sidebar-gamification-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.sidebar-gamification-pill{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-white);background:var(--color-white-12);display:inline-flex}.sidebar-gamification-pill--warm{background:var(--color-warm-soft)}.sidebar-user{align-items:center;gap:var(--space-2-5);padding:var(--space-3-5);border-top:1px solid var(--color-white-08);display:flex}.sidebar-avatar{width:var(--sidebar-avatar-size);height:var(--sidebar-avatar-size);background:var(--gradient-ai);color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-user-name{font-size:var(--font-size-sm);color:var(--color-white);font-weight:var(--font-weight-semibold)}.sidebar-user-role{font-size:var(--font-size-xs);color:var(--color-white-50);margin-top:var(--border-width-thin)}.sidebar-user-info{flex:1;min-width:0}.sidebar-logout{background:var(--color-white-08);border:var(--border-width-thin) solid var(--color-white-15);color:var(--color-white-60);width:var(--space-7);height:var(--space-7);border-radius:var(--radius-btn-sm);cursor:pointer;font-size:var(--font-size-sm);transition:background-color var(--motion-fast), color var(--motion-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logout:hover{background:var(--color-white-15);color:var(--color-white)}.sidebar-logout:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.sidebar-logout svg{width:var(--space-4);height:var(--space-4)}.right-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.header{height:var(--header-height,var(--space-16));padding:0 var(--space-7);background:var(--color-white-88);-webkit-backdrop-filter:blur(var(--header-blur));border-bottom:var(--border-width-thin) solid var(--color-border);box-shadow:var(--shadow-header);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-breadcrumb{align-items:center;gap:var(--space-2);display:flex}.header-app{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.header-actions{align-items:center;gap:var(--space-3);display:flex}.header-ai-badge{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-brand-600);background:var(--color-brand-50);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-brand-100);display:flex}.header-ai-dot{width:var(--space-2);height:var(--space-2);background:var(--color-brand-500);box-shadow:0 0 0 0 var(--color-warm-pulse);animation:pulseRing var(--duration-slow) infinite;border-radius:50%;flex-shrink:0}.content{background:var(--color-bg);flex:1;overflow-y:auto}.login-page{background:var(--gradient-login-page);min-height:100vh;padding:var(--space-8) var(--space-5);justify-content:center;align-items:center;display:flex}.login-container{width:100%;max-width:var(--login-container-max-width);min-height:var(--login-container-min-height);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;overflow:hidden}.login-brand{background:var(--gradient-sidebar);padding:var(--space-13) var(--space-11);color:var(--color-white);flex-direction:column;flex:1;justify-content:center;display:flex;position:relative;overflow:hidden}.login-brand:before{content:"";top:calc(-1 * var(--space-20));right:calc(-1 * var(--space-20));width:var(--space-75);height:var(--space-75);background:var(--color-white-04);border-radius:50%;position:absolute}.login-brand:after{content:"";bottom:calc(-1 * var(--space-15));left:calc(-1 * var(--space-15));width:var(--space-55);height:var(--space-55);background:var(--color-warm-soft);border-radius:50%;position:absolute}.login-brand-logo{width:var(--space-16);height:var(--space-16);margin-bottom:var(--space-5);color:var(--color-white);filter:var(--shadow-dark-md);justify-content:center;align-items:center;display:inline-flex}.login-brand h1{margin:0 0 var(--space-2)}.login-brand-tagline{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-relaxed);color:var(--color-white-88);margin-bottom:var(--space-7-5)}.login-features{gap:var(--space-3-5);z-index:1;flex-direction:column;display:flex;position:relative}.login-feature{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);opacity:.9;display:flex}.login-feature-icon{width:var(--space-8);height:var(--space-8);background:var(--color-white-12);border-radius:var(--radius-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-mascot{margin:var(--space-4-5) 0 var(--space-2-5);z-index:1;animation:float var(--duration-float) ease-in-out infinite;justify-content:center;display:flex;position:relative}.math-symbols-row{gap:var(--space-4);margin-top:var(--space-4-5);opacity:.42;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-widest);color:var(--color-white-80);font-family:var(--font-family-primary);z-index:1;flex-wrap:wrap;display:flex;position:relative}.login-form-panel{width:min(100%, var(--login-panel-width));background:var(--color-bg-elevated);padding:var(--space-13) var(--space-10);flex-direction:column;flex-shrink:0;justify-content:center;display:flex}.login-form-header{margin-bottom:var(--space-8)}.login-form-header h2{font-size:var(--font-size-2xl-plus);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0 0 var(--space-1-5);letter-spacing:var(--letter-spacing-tight)}.login-form-header p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-form .form-group{margin-bottom:0}.login-submit{margin-top:var(--space-2);letter-spacing:var(--letter-spacing-wide)}.login-status{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.login-error{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2-5) var(--space-3-5);background:var(--color-danger-50);border:var(--border-width-thin) solid var(--color-danger-border);border-radius:var(--radius-sm);color:var(--color-danger-500);font-size:var(--font-size-sm);display:flex}.login-error-dismiss{color:var(--color-danger-500);cursor:pointer;font-size:var(--font-size-sm);padding:var(--space-0-5) var(--space-1);border-radius:var(--radius-control);background:0 0;border:none;flex-shrink:0;line-height:1}.login-error-dismiss:hover{background:var(--color-danger-soft)}.login-error-dismiss:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.login-hint{margin-top:var(--space-4-5);padding:var(--space-3) var(--space-3-5);background:var(--color-brand-50);border:var(--border-width-thin) solid var(--color-brand-100);border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}@media (width<=640px){.login-container{flex-direction:column}.login-brand{display:none}.login-form-panel{width:100%}}
