.toast-container[data-v-7b3b0698]{position:fixed;top:20px;right:20px;z-index:var(--z-toast, 9999);display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border-radius:12px;box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:400px;min-width:280px;overflow:hidden;cursor:default;border:1px solid rgba(255,255,255,.1)}.toast-bar[data-v-7b3b0698]{position:absolute;left:0;top:0;bottom:0;width:4px}.bar-info[data-v-7b3b0698]{background:#3b82f6}.bar-success[data-v-7b3b0698]{background:#22c55e}.bar-warning[data-v-7b3b0698]{background:#f59e0b}.bar-error[data-v-7b3b0698]{background:#ef4444}.toast-content[data-v-7b3b0698]{display:flex;align-items:center;gap:10px;flex:1;padding-left:8px}.toast-icon[data-v-7b3b0698]{flex-shrink:0;width:18px;height:18px}.toast-message[data-v-7b3b0698]{font-size:14px;font-weight:500;line-height:1.5;word-break:break-word}.toast-close[data-v-7b3b0698]{background:none;border:none;cursor:pointer;opacity:.6;flex-shrink:0;padding:4px;color:inherit;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:opacity .2s,background .2s}.toast-close[data-v-7b3b0698]:hover{opacity:1;background:#ffffff26}.toast-progress[data-v-7b3b0698]{position:absolute;left:0;bottom:0;height:2px;width:0%;background:#ffffff80}.toast-info[data-v-7b3b0698]{background:#3b82f6e6;color:#fff}.toast-success[data-v-7b3b0698]{background:#22c55ee6;color:#fff}.toast-warning[data-v-7b3b0698]{background:#f59e0be6;color:#fff}.toast-error[data-v-7b3b0698]{background:#ef4444e6;color:#fff}.toast-enter-active[data-v-7b3b0698],.toast-leave-active[data-v-7b3b0698]{transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1)}.toast-enter-from[data-v-7b3b0698],.toast-leave-to[data-v-7b3b0698]{opacity:0;transform:translate(40px) scale(.95)}@media (max-width: 480px){.toast-container[data-v-7b3b0698]{top:10px;right:10px;left:10px;max-width:none;min-width:0}}.route-loading-bar{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--gradient-primary, linear-gradient(135deg, #4f46e5, #6366f1, #818cf8));z-index:var(--z-loading, 999);animation:route-loading-progress 1.5s ease-out forwards;box-shadow:0 0 8px rgba(var(--color-primary-rgb, 79, 70, 229),.4)}@keyframes route-loading-progress{0%{width:0%}50%{width:70%}to{width:90%}}.page-enter-active,.page-leave-active{transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.page-wrapper{min-height:100vh}@media (prefers-reduced-motion: reduce){.page-enter-active,.page-leave-active{transition:none}.page-enter-from,.page-leave-to{opacity:1;transform:none}}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:var(--transition-glass)}.glass-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover)}.glass-surface{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.glass-nav{background:#ffffffe6;backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border-bottom:1px solid var(--glass-border)}.interactive-btn{transition:all var(--duration-fast) var(--ease-out)}.interactive-btn:hover{transform:translateY(-1px)}.interactive-btn:active{transform:translateY(0) scale(.97)}:root{--spacing-2xs: 2px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--spacing-4xl: 64px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--line-height-tight: 1.3;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-tooltip: 500;--z-loading: 450;--tab-height: 56px;--header-height: 48px;--min-touch-target: 44px;--content-max-width: 640px}:root,:root[data-theme=professional-blue],.theme-professional-blue{--color-primary: #4F46E5;--color-primary-rgb: 79, 70, 229;--color-primary-light: #6366F1;--color-primary-lighter: #818CF8;--color-primary-dark: #4338CA;--color-secondary: #6366F1;--color-secondary-light: #A5B4FC;--color-accent: #C9A96E;--color-accent-light: #E8D5B0;--color-accent-dark: #A68B4B;--color-highlight: #8B5CF6;--color-highlight-light: #C4B5FD;--color-cta: #F97316;--color-cta-light: #FED7AA;--color-cta-dark: #EA580C;--color-bg: #F8F9FC;--color-bg-solid: #FFFFFF;--color-bg-mesh-1: #E0F2FE;--color-bg-mesh-2: #F3E8FF;--color-bg-mesh-3: #FDF2F8;--color-bg-mesh-4: #ECFDF5;--color-bg-mesh-5: #FFF7ED;--color-surface: #FFFFFF;--color-surface-hover: #F1F5F9;--color-surface-active: #E2E8F0;--color-text: #1E293B;--color-text-secondary: #475569;--color-text-muted: #64748B;--color-text-light: #94A3B8;--color-border: #E2E8F0;--color-border-light: #F1F5F9;--color-divider: #F1F5F9;--color-success: #22C55E;--color-success-light: #DCFCE7;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-info: #2563EB;--color-info-light: #DBEAFE;--gradient-primary: linear-gradient(135deg, #4F46E5 0%, #6366F1 50%, #818CF8 100%);--gradient-accent: linear-gradient(135deg, #A68B4B 0%, #C9A96E 50%, #E8D5B0 100%);--gradient-highlight: linear-gradient(135deg, #8B5CF6 0%, #6366F1 50%, #4F46E5 100%);--gradient-premium: linear-gradient(135deg, #0B1426 0%, #1E3A5F 40%, #C9A96E 100%);--gradient-cta: linear-gradient(135deg, #F97316 0%, #EA580C 100%);--gradient-success: linear-gradient(135deg, #22C55E 0%, #16A34A 100%);--gradient-surface: linear-gradient(135deg, #F8F9FC 0%, #FFFFFF 100%);--glass-bg: rgba(255, 255, 255, .78);--glass-bg-hover: rgba(255, 255, 255, .9);--glass-bg-active: rgba(255, 255, 255, .68);--glass-border: rgba(255, 255, 255, .55);--glass-border-hover: rgba(255, 255, 255, .75);--glass-blur: 20px;--glass-blur-heavy: 32px;--glass-blur-light: 12px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .1);--shadow-card: 0 4px 16px rgba(0, 0, 0, .06);--shadow-card-hover: 0 8px 32px rgba(0, 0, 0, .1);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .02);--glass-shadow-hover: 0 8px 32px rgba(0, 0, 0, .07), 0 2px 6px rgba(0, 0, 0, .03);--glass-shadow-elevated: 0 16px 48px rgba(0, 0, 0, .09);--glass-inset-highlight: inset 0 1px 0 rgba(255, 255, 255, .7);--font-family: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--font-family-serif: "Noto Serif SC", Georgia, "Times New Roman", serif;--font-family-mono: "SF Mono", "Fira Code", "Consolas", monospace;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-glass: background var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out);--transition-transform: transform var(--duration-fast) var(--ease-out);--border-width: 1px;--border-color: #E2E8F0;--border-style: solid;--btn-height-sm: 36px;--btn-height-md: 44px;--btn-height-lg: 48px;--btn-radius: 6px;--card-radius: 16px;--card-padding: 16px;--card-shadow: var(--shadow-card);--card-border: 1px solid var(--color-border);--navbar-bg: rgba(255, 255, 255, .88);--navbar-border: 1px solid var(--color-border);--navbar-active-color: var(--color-primary);--navbar-inactive-color: var(--color-text-light);--input-bg: var(--color-surface);--input-border: var(--color-border);--input-focus-border: var(--color-primary);--input-radius: 6px;--skeleton-bg: var(--color-border);--skeleton-shine: var(--color-surface-hover)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes meshFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--color-primary)}50%{box-shadow:0 0 0 8px transparent}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce-in{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes slide-in-right{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-out-left{0%{transform:translate(0);opacity:1}to{transform:translate(-100%);opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.6}}@keyframes bounceSoft{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes success-pulse{0%{box-shadow:0 0 #22c55e66}70%{box-shadow:0 0 0 10px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes error-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes btn-spin{to{transform:rotate(360deg)}}@keyframes skeletonShimmer{0%{left:-100%}to{left:100%}}@keyframes progressShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes exp-rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-24px)}}@keyframes xp-bounce{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background-color:var(--color-bg);background-image:radial-gradient(at 20% 30%,var(--color-bg-mesh-1) 0%,transparent 50%),radial-gradient(at 80% 20%,var(--color-bg-mesh-2) 0%,transparent 50%),radial-gradient(at 40% 80%,var(--color-bg-mesh-3) 0%,transparent 50%),radial-gradient(at 90% 70%,var(--color-bg-mesh-4) 0%,transparent 50%),radial-gradient(at 10% 90%,var(--color-bg-mesh-5) 0%,transparent 50%);background-attachment:fixed;background-size:200% 200%;animation:meshFlow 20s ease-in-out infinite}@media (hover: none) and (pointer: coarse){body{animation:none}}:focus-visible{outline:2px solid var(--color-primary, #4F46E5);outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary, #4F46E5);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body{animation:none!important;background-attachment:scroll!important}.stagger-enter>*{animation:none!important;opacity:1!important;transform:none!important}}.stem,.options,.opt,.analysis-detail-content,.wrongbook-container,.graph-container{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}@media (max-width: 768px){button,[role=button],.opt,.zoom-btn,.feedback-link,.fb-feedback-small{min-height:var(--min-touch-target, 44px);min-width:var(--min-touch-target, 44px)}.fb-feedback-small{min-height:auto;min-width:auto;padding:4px 8px}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-clip-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.min-load-time{min-height:40px}.error-boundary{padding:24px;text-align:center;color:var(--color-error, #EF4444);background:var(--color-error-light, #FEE2E2);border-radius:12px;margin:16px 0}@media (prefers-contrast: high){:root{--color-border: #000000;--color-text-secondary: #1E293B;--color-text-muted: #334155}}:root{--chart-color-1: #1E40AF;--chart-color-2: #3B82F6;--chart-color-3: #06B6D4;--chart-color-4: #8B5CF6;--chart-color-5: #10B981;--chart-color-6: #F59E0B;--chart-color-7: #EF4444;--chart-color-8: #64748B;--chart-gradient-primary: linear-gradient(135deg, #1E40AF 0%, #3B82F6 100%);--chart-gradient-secondary: linear-gradient(135deg, #06B6D4 0%, #22D3EE 100%);--chart-gradient-accent: linear-gradient(135deg, #F59E0B 0%, #FBBF24 100%);--chart-gradient-success: linear-gradient(135deg, #10B981 0%, #34D399 100%);--chart-gradient-error: linear-gradient(135deg, #EF4444 0%, #F87171 100%);--chart-bg: rgba(255, 255, 255, .95);--chart-bg-hover: rgba(255, 255, 255, 1);--chart-border: rgba(148, 163, 184, .2);--chart-grid: rgba(148, 163, 184, .1);--chart-text-primary: #1E293B;--chart-text-secondary: #475569;--chart-text-muted: #94A3B8;--chart-hover-highlight: rgba(30, 64, 175, .1);--chart-active-highlight: rgba(30, 64, 175, .2);--chart-selected-highlight: rgba(30, 64, 175, .3);--chart-height-sm: 200px;--chart-height-md: 280px;--chart-height-lg: 360px;--chart-height-xl: 440px;--chart-padding: 16px;--chart-margin: 24px}.chart-container{position:relative;width:100%;background:var(--chart-bg);border-radius:12px;border:1px solid var(--chart-border);box-shadow:0 4px 16px #0000000f;overflow:hidden;transition:background .25s cubic-bezier(.16,1,.3,1),border-color .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1),opacity .25s cubic-bezier(.16,1,.3,1),color .25s cubic-bezier(.16,1,.3,1)}.chart-container:hover{background:var(--chart-bg-hover);border-color:#94a3b84d;box-shadow:0 8px 32px #0000001a}.chart-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px;border-bottom:1px solid var(--chart-border)}.chart-title{font-size:14px;font-weight:600;color:var(--chart-text-primary);margin:0}.chart-subtitle{font-size:12px;color:var(--chart-text-muted);margin:2px 0 0}.chart-actions{display:flex;align-items:center;gap:8px}.chart-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--chart-text-muted);cursor:pointer;transition:all .15s ease}.chart-action-btn:hover{background:var(--chart-hover-highlight);color:var(--chart-text-primary)}.chart-action-btn.active{background:var(--chart-active-highlight);color:var(--chart-color-1)}.chart-content{padding:var(--chart-padding);min-height:var(--chart-height-md);display:flex;align-items:center;justify-content:center}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;padding:12px 20px 16px;border-top:1px solid var(--chart-border)}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--chart-text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.radar-chart{position:relative}.radar-chart .radar-axis{stroke:var(--chart-border);stroke-width:1}.radar-chart .radar-grid{stroke:var(--chart-grid);stroke-width:1}.radar-chart .radar-area{fill-opacity:.15;transition:fill-opacity .2s ease}.radar-chart:hover .radar-area{fill-opacity:.25}.radar-chart .radar-point{stroke-width:2;stroke:#fff;transition:r .2s ease}.radar-chart:hover .radar-point{r:6}.bar-chart{position:relative}.bar-chart .bar{border-radius:4px 4px 0 0;transition:all .2s ease;cursor:pointer}.bar-chart .bar:hover{filter:brightness(1.1);transform:scaleY(1.02);transform-origin:bottom}.bar-chart .bar-label{font-size:11px;fill:var(--chart-text-muted)}.line-chart{position:relative}.line-chart .line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .2s ease}.line-chart:hover .line{stroke-width:3.5}.line-chart .area{opacity:.1;transition:opacity .2s ease}.line-chart:hover .area{opacity:.2}.line-chart .point{fill:#fff;stroke-width:2;transition:r .2s ease}.line-chart:hover .point{r:5}.progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring .ring-bg{stroke:var(--chart-border);opacity:.6}.progress-ring .ring-progress{transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .1s linear}.progress-ring .ring-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700}.progress-ring .ring-value{font-variant-numeric:tabular-nums}.chart-tooltip{position:absolute;z-index:var(--z-tooltip);padding:12px 16px;background:var(--chart-bg);border:1px solid var(--chart-border);border-radius:8px;box-shadow:0 8px 32px #0000001f;pointer-events:none;opacity:0;transform:translateY(4px);transition:all .2s ease}.chart-tooltip.visible{opacity:1;transform:translateY(0)}.chart-tooltip-title{font-size:13px;font-weight:600;color:var(--chart-text-primary);margin-bottom:4px}.chart-tooltip-value{font-size:20px;font-weight:700;color:var(--chart-color-1);font-variant-numeric:tabular-nums}.chart-tooltip-label{font-size:12px;color:var(--chart-text-muted);margin-top:2px}.chart-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;color:var(--chart-text-muted)}.chart-loading-spinner{width:32px;height:32px;border:3px solid var(--chart-border);border-top-color:var(--chart-color-1);border-radius:50%;animation:spin 1s linear infinite}.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;color:var(--chart-text-muted);text-align:center}.chart-empty-icon{width:48px;height:48px;opacity:.5}.chart-empty-text{font-size:13px}@keyframes chartFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chartScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chartSlideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.chart-animate-fade{animation:chartFadeIn .4s ease-out}.chart-animate-scale{animation:chartScaleIn .3s ease-out}.chart-animate-slide{animation:chartSlideIn .3s ease-out}.chart-stagger>*{opacity:0;animation:chartFadeIn .4s ease-out forwards}.chart-stagger>*:nth-child(1){animation-delay:.05s}.chart-stagger>*:nth-child(2){animation-delay:.1s}.chart-stagger>*:nth-child(3){animation-delay:.15s}.chart-stagger>*:nth-child(4){animation-delay:.2s}.chart-stagger>*:nth-child(5){animation-delay:.25s}.chart-stagger>*:nth-child(6){animation-delay:.3s}@media (max-width: 768px){.chart-header{padding:12px 16px 8px}.chart-content{padding:12px}.chart-legend{padding:8px 16px 12px;gap:8px}.chart-title{font-size:13px}.chart-subtitle,.legend-item{font-size:11px}}[data-theme=stardome-quantum]{--chart-bg: rgba(30, 41, 59, .95);--chart-bg-hover: rgba(30, 41, 59, 1);--chart-border: rgba(148, 163, 184, .15);--chart-grid: rgba(148, 163, 184, .08);--chart-text-primary: #F1F5F9;--chart-text-secondary: #CBD5E1;--chart-text-muted: #94A3B8;--chart-hover-highlight: rgba(59, 130, 246, .15);--chart-active-highlight: rgba(59, 130, 246, .25);--chart-selected-highlight: rgba(59, 130, 246, .35)}@media print{.chart-container{border:1px solid #ccc;box-shadow:none;-moz-column-break-inside:avoid;break-inside:avoid}.chart-actions,.chart-legend{display:none}.chart-content{min-height:auto}}.interactive-card{transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out);cursor:pointer;position:relative;overflow:hidden}.interactive-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.interactive-card:active{transform:translateY(0) scale(.98)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--btn-radius);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);text-decoration:none;white-space:nowrap;position:relative;min-height:44px}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0) scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.is-loading{pointer-events:none;opacity:.7}.btn.is-loading:before{content:"";width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .8s linear infinite;margin-right:8px}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px rgba(var(--color-primary-rgb, 37, 99, 235),.3)}.btn-primary:hover{filter:brightness(1.05);box-shadow:0 4px 16px rgba(var(--color-primary-rgb, 37, 99, 235),.4)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover)}.btn-cta{background:var(--gradient-cta);color:#fff;box-shadow:0 2px 8px #f973164d}.btn-cta:hover{box-shadow:0 4px 16px #f9731666}.btn-success{background:var(--gradient-success);color:#fff;box-shadow:0 2px 8px #22c55e4d}.btn-success:hover{box-shadow:0 4px 16px #22c55e66}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid transparent}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text)}.btn-danger{background:var(--color-error);color:#fff;box-shadow:0 2px 8px #ef44444d}.btn-danger:hover{filter:brightness(1.05);box-shadow:0 4px 16px #ef444466}.btn-warning{background:var(--color-warning);color:#fff;box-shadow:0 2px 8px #f59e0b4d}.btn-warning:hover{filter:brightness(1.05);box-shadow:0 4px 16px #f59e0b66}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-block{width:100%}.action-link-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);background:rgba(var(--color-primary-rgb, 79, 70, 229),.08);border:1.5px solid rgba(var(--color-primary-rgb, 79, 70, 229),.2);border-radius:var(--radius-full);text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:44px}.action-link-btn:hover{background:rgba(var(--color-primary-rgb, 79, 70, 229),.12);border-color:rgba(var(--color-primary-rgb, 79, 70, 229),.4);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-primary-rgb, 79, 70, 229),.15)}.action-link-btn:active{transform:translateY(0) scale(.97)}.input{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:var(--input-bg);border:1.5px solid var(--input-border);border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);min-height:44px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.input:hover{border-color:rgba(var(--color-primary-rgb, 79, 70, 229),.4)}.input:focus{outline:none;border-color:var(--input-focus-border);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 79, 70, 229),.12)}.input::-moz-placeholder{color:var(--color-text-light)}.input::placeholder{color:var(--color-text-light)}.input:disabled{background:var(--color-surface-hover);color:var(--color-text-muted);cursor:not-allowed;opacity:.7}.input.is-error{border-color:var(--color-error);background:rgba(var(--color-error-rgb, 239, 68, 68),.03)}.input.is-error:focus{box-shadow:0 0 0 4px rgba(var(--color-error-rgb, 239, 68, 68),.12)}.input.is-success{border-color:var(--color-success)}.input.is-success:focus{box-shadow:0 0 0 4px #22c55e1f}.input-hint{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.input-hint.is-error{color:var(--color-error)}.input-hint.is-success{color:var(--color-success)}textarea.input{min-height:100px;resize:vertical;line-height:var(--line-height-normal);padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.tag{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1}.tag-primary{background:var(--color-primary-light);color:var(--color-primary)}.tag-success{background:var(--color-success-light);color:var(--color-success)}.tag-warning{background:var(--color-warning-light);color:var(--color-warning)}.tag-error{background:var(--color-error-light);color:var(--color-error)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-error);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-lg);text-align:center}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--spacing-lg);color:var(--color-text-light)}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-base);color:var(--color-text-muted);max-width:300px}.loading-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.toast{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:var(--z-toast);animation:slide-in-right var(--duration-normal) var(--ease-out)}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-error)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info{border-left:4px solid var(--color-info)}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration-normal) var(--ease-out)}.fade-enter-from,.fade-leave-to{opacity:0}.page-transition-enter-active,.page-transition-leave-active{transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}.page-transition-enter-from{opacity:0;transform:translateY(8px)}.page-transition-leave-to{opacity:0;transform:translateY(-8px)}@media (max-width: 375px){:root{--font-size-base: 14px;--spacing-lg: 12px;--spacing-xl: 16px}}@media (min-width: 376px) and (max-width: 767px){:root{--font-size-base: 15px}}@media (min-width: 768px){:root{--font-size-base: 16px;--spacing-lg: 20px;--spacing-xl: 28px}}@media (min-width: 1024px){:root{--font-size-base: 16px;--spacing-lg: 24px;--spacing-xl: 32px}}a,button,[role=button],input[type=submit],input[type=button],.clickable,.interactive-card,.btn,.tab-item,.nav-item,.skin-card,.skin-btn,.shop-tab,.task-item,.picker-item{cursor:pointer}.glass-card,.interactive-card{transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out)}.glass-card:hover,.interactive-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover),0 0 0 1px rgba(var(--color-primary-rgb),.1)}.list-item,.task-item,.picker-item{transition:background-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.input,input[type=text],input[type=password],input[type=number],input[type=date],input[type=email],textarea,select{transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.tab-item,.shop-tab,.nav-item{transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.tab-item:active,.shop-tab:active,.nav-item:active{transform:scale(.95)}.animate-success{animation:success-pulse .6s ease-out}.animate-error{animation:error-shake .4s ease-out}.counter-animate{display:inline-block;transition:transform .2s var(--ease-out)}.counter-animate.bump{transform:scale(1.2)}@media (hover: none) and (pointer: coarse){.scrollable,[class*=scroll],.story-section,.about-page,.profile-page,.home-page,.practice-page,.settings-page,.mastery-page,.review-page,.report-page{-webkit-overflow-scrolling:touch}body{overflow-x:hidden;width:100%}html{width:100%}.btn,.interactive-card,.glass-card{-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}button,.btn,[role=button],.nav-item,.tab-item,.interactive-card,.clickable,input[type=submit],input[type=button]{min-height:var(--min-touch-target, 44px)}*:not(img){-webkit-touch-callout:none}}.list-group{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-border);overflow:hidden}.list-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light);transition:background-color var(--duration-fast) var(--ease-out),padding-left var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);cursor:pointer;position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-item:last-child{border-bottom:none}.list-item:hover{background-color:var(--color-surface-hover);padding-left:calc(var(--spacing-lg) + 4px)}.list-item:active{background-color:var(--color-surface-active);transform:scale(.995)}.list-item.clickable{cursor:pointer}.list-item.clickable .list-item-arrow{margin-left:auto;color:var(--color-text-light);font-size:var(--font-size-sm)}.list-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:rgba(var(--color-primary-rgb, 79, 70, 229),.08);color:var(--color-primary);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-out)}.list-item:hover .list-item-icon{transform:scale(1.05)}.list-item-content{flex:1;min-width:0}.list-item-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.4}.list-item-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px;line-height:1.4}.divider{height:1px;background:var(--color-border);margin:var(--spacing-lg) 0}.divider-light{height:1px;background:var(--color-border-light);margin:var(--spacing-md) 0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-light{color:var(--color-text-light)}.text-error{color:var(--color-error)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-right{text-align:right}.tabular-nums{font-variant-numeric:tabular-nums;-webkit-font-variant-numeric:tabular-nums}.icon-xs{width:14px;height:14px}.icon-sm{width:16px;height:16px}.icon-md{width:20px;height:20px}.icon-lg{width:24px;height:24px}.icon-xl{width:32px;height:32px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.icon-btn:active{transform:scale(.92)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn.primary{color:var(--color-primary)}.icon-btn.primary:hover{background:rgba(var(--color-primary-rgb, 79, 70, 229),.08)}.flex-col{flex-direction:column}.justify-center{justify-content:center}.flex-1{flex:1;min-width:0}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}@media print{body{background:#fff;color:#000}.no-print{display:none!important}.print-only{display:block!important}}:focus-visible{outline:2px solid var(--color-primary, #4f46e5);outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary, #4f46e5);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 2px #4f46e540;border-color:var(--color-primary, #4f46e5)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.route-loading-bar,.skeleton-pulse,.shimmer{animation:none!important}}*{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.scroll-y{touch-action:pan-y}.scroll-x{touch-action:pan-x}.tabular-nums,[data-tabular=true],.tsc-num,.metric-value,.ring-center b,.dz-metric-value,.today-count b,.rank-num,.progress-num,.kp-mastery-val{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}h1,h2,h3,h4,h5,h6,.hero-title,.card-title,.section-title{text-wrap:balance}p,.paragraph{text-wrap:pretty}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.layout-tabbar{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.layout-header{padding-top:env(safe-area-inset-top)}.page-bottom-safe{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.icon-btn,.icon-button,.header-admin-btn,.back-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],textarea,select{min-height:44px}@media (max-width: 480px){html{font-size:15px}}@media (max-width: 360px){html{font-size:14px}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}@media (min-width: 768px){::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-primary, #4f46e5);color:#fff;padding:8px 16px;z-index:1000;transition:top .2s}.skip-link:focus{top:0}img{content-visibility:auto}img[alt=""],img.decorative{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.btn-primary,button.btn-primary{position:relative;overflow:hidden;isolation:isolate}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .6s var(--ease-out, cubic-bezier(.16, 1, .3, 1));z-index:-1}.btn-primary:hover:before{left:100%}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{transform:none;cursor:not-allowed}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.btn-ripple:active:after{width:200px;height:200px;opacity:0;transition:width .4s ease-out,height .4s ease-out,opacity .4s ease-out}.field-input{transition:border-color .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),box-shadow .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),background .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.field-input:focus{border-color:var(--color-primary, #4f46e5);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 79, 70, 229),.12),0 0 0 1px var(--color-primary, #4f46e5);outline:none}.field-input-wrap{position:relative}.field-input-wrap:focus-within .field-icon{color:var(--color-primary, #4f46e5)}.field-icon{transition:color .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.field-label{transition:color .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),transform .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.field-input:not(:-moz-placeholder)~.field-label{color:var(--color-primary, #4f46e5)}.field-input:focus~.field-label,.field-input:not(:placeholder-shown)~.field-label{color:var(--color-primary, #4f46e5)}.glass-card,.section-card,.metric-card{transition:transform .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),box-shadow .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),border-color .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.card-hoverable:hover{transform:translateY(-2px);box-shadow:0 8px 32px #00000014,0 2px 8px #0000000a}.card-hoverable:active{transform:translateY(0)}.animate-fade-in-up{animation:fadeInUp .5s var(--ease-out, cubic-bezier(.16, 1, .3, 1)) both}.animate-fade-in-scale{animation:fadeInScale .4s var(--ease-out, cubic-bezier(.16, 1, .3, 1)) both}.animate-fade-in{animation:fadeIn .3s ease-out both}.animate-slide-in-left{animation:slideInLeft .4s var(--ease-out, cubic-bezier(.16, 1, .3, 1)) both}.animate-slide-in-right{animation:slideInRight .4s var(--ease-out, cubic-bezier(.16, 1, .3, 1)) both}.animate-pulse-soft{animation:pulseSoft 2s ease-in-out infinite}.animate-bounce-soft{animation:bounceSoft 2s ease-in-out infinite}.animate-shake{animation:shake .4s ease-in-out}.stagger-enter>*{opacity:0;transform:translateY(12px);animation:fade-in-up .5s var(--ease-out, cubic-bezier(.16, 1, .3, 1)) forwards}.stagger-enter>*:nth-child(1){animation-delay:.05s}.stagger-enter>*:nth-child(2){animation-delay:.1s}.stagger-enter>*:nth-child(3){animation-delay:.15s}.stagger-enter>*:nth-child(4){animation-delay:.2s}.stagger-enter>*:nth-child(5){animation-delay:.25s}.stagger-enter>*:nth-child(6){animation-delay:.3s}.stagger-enter>*:nth-child(7){animation-delay:.35s}.stagger-enter>*:nth-child(8){animation-delay:.4s}[data-theme=professional-blue] .stagger-enter>*,[data-theme=warm-orange] .stagger-enter>*{animation:none;opacity:1;transform:none}.skeleton-pulse{position:relative;overflow:hidden}.skeleton-pulse:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:skeletonShimmer 1.5s ease-in-out infinite}.spinner,.btn-spinner{animation:spin .8s linear infinite}.empty-state{transition:opacity .3s ease,transform .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.empty-icon{animation:bounceSoft 3s ease-in-out infinite;animation-delay:.5s}.error-state{transition:opacity .3s ease,transform .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.error-icon{animation:pulseSoft 2s ease-in-out infinite}.error-box{animation:shake .4s ease-in-out}.progress-bar{position:relative;overflow:hidden}.progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:translate(-100%);animation:progressShine 2s ease-in-out infinite}a,[role=button],button{transition:color .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),background .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),border-color .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),opacity .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1)),transform .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.link-underline{position:relative;text-decoration:none}.link-underline:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:currentColor;transition:width .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}.link-underline:hover:after{width:100%}img{transition:opacity .3s ease,transform .3s var(--ease-out, cubic-bezier(.16, 1, .3, 1))}img:not([src]),img[src=""]{opacity:0}img[loaded]{opacity:1}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}input[type=checkbox],input[type=radio]{cursor:pointer;accent-color:var(--color-primary, #4f46e5)}@media (min-width: 768px){*{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb, 79, 70, 229),.3) transparent}}::-moz-selection{background:rgba(var(--color-primary-rgb, 79, 70, 229),.15);color:var(--color-primary-dark, #4338ca)}::selection{background:rgba(var(--color-primary-rgb, 79, 70, 229),.15);color:var(--color-primary-dark, #4338ca)}.badge-dot{position:relative}.badge-dot:after{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--color-error, #ef4444);border:2px solid var(--color-bg, #fff);animation:pulseSoft 2s ease-in-out infinite}.tooltip{position:relative}.tooltip:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(4px);padding:6px 10px;font-size:12px;color:#fff;background:#1e293b;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s var(--ease-out, cubic-bezier(.16, 1, .3, 1));z-index:100}.tooltip:hover:before{opacity:1;transform:translate(-50%) translateY(-4px)}.is-disabled,[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}*,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-family);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-family-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,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{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px)}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background-color:var(--color-bg, #f1f5f9);color:var(--color-text, #1e293b);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);overscroll-behavior:none;touch-action:manipulation}h1{font-size:1.5rem;line-height:2rem;font-weight:700;letter-spacing:-.5px;line-height:1.3}h2{font-size:1.25rem;line-height:1.75rem;font-weight:600;letter-spacing:-.3px;line-height:1.4}h3{font-size:1.125rem;line-height:1.75rem;font-weight:600;letter-spacing:-.2px;line-height:1.4}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.btn{padding:.5rem 1rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--transition-fast);border-radius:var(--btn-radius);min-height:var(--btn-height-md)}.btn-primary{padding:.5rem 1rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--transition-fast);border-radius:var(--btn-radius);min-height:var(--btn-height-md);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));background-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-primary:disabled{background-color:var(--color-text-muted);color:var(--color-bg)}.btn-ghost{padding:.5rem 1rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--transition-fast);border-radius:var(--btn-radius);min-height:var(--btn-height-md);background-color:var(--color-bg);color:var(--color-text);border:var(--border-width) var(--border-style) var(--color-border)}.btn-ghost:hover{background-color:var(--color-surface)}.card{background-color:var(--color-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--card-padding)}.input{width:100%;padding:.5rem .75rem;outline:2px solid transparent;outline-offset:2px;background-color:var(--input-bg);border:var(--border-width) var(--border-style) var(--input-border);border-radius:var(--input-radius)}.input:focus{border-color:var(--input-focus-border)}.label{margin-bottom:.25rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--color-text)}.badge{display:inline-block;border-radius:var(--radius-full);padding:.125rem .5rem;font-size:.75rem;line-height:1rem}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.badge-success{background-color:#22c55e1a;color:var(--color-success)}.badge-error{background-color:#ef44441a;color:var(--color-error)}.badge-warning{background-color:#f59e0b1a;color:var(--color-warning)}.skeleton{background:linear-gradient(90deg,var(--skeleton-bg) 25%,var(--skeleton-shine) 50%,var(--skeleton-bg) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.page-container{min-height:100vh;background-color:transparent}.content-area{margin-left:auto;margin-right:auto;max-width:100%;padding:var(--spacing-md)}@media (min-width: 768px){.content-area{max-width:var(--content-max-width);padding:var(--spacing-lg)}}.divider{height:1px;background-color:var(--color-divider)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-3{top:.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.w-12{width:3rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-width:1px}.fill-error{fill:var(--color-error)}.fill-success{fill:var(--color-success)}.fill-warning{fill:var(--color-warning)}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-bg{--tw-ring-color: var(--color-bg)}.blur{--tw-blur: blur(8px);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)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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)}.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)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (max-width: 767px){.mobile-only{display:initial}.desktop-only{display:none!important}.content-area{padding-left:var(--spacing-md, 12px);padding-right:var(--spacing-md, 12px)}}@media (max-width: 480px){.content-area{padding-left:var(--spacing-sm, 8px);padding-right:var(--spacing-sm, 8px)}}.auth-page-enter{animation:fadeSlideUp .4s ease-out}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}:root{--chart-axis-color: var(--color-text-muted);--chart-grid-color: var(--color-border);--chart-series-1: var(--color-primary);--chart-series-2: var(--color-success);--chart-series-3: var(--color-warning);--chart-series-4: var(--color-error);--chart-series-5: var(--color-accent, #C9A96E);--chart-fill-opacity: .12;--chart-tooltip-bg: var(--color-bg-solid);--chart-tooltip-text: var(--color-text);--chart-skeleton-bg: var(--color-bg-secondary)}.katex{font-size:1.05em;line-height:1.5;color:var(--color-text, #1e293b)}.katex .katex-html{vertical-align:-.15em}.katex-display{margin:14px 0;padding:12px 8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;background:linear-gradient(135deg,#4f46e505,#6366f105);border-radius:10px;border:1px solid rgba(79,70,229,.08)}.katex-display::-webkit-scrollbar{height:4px}.katex-display::-webkit-scrollbar-track{background:#00000008;border-radius:2px}.katex-display::-webkit-scrollbar-thumb{background:#4f46e533;border-radius:2px}.katex-display::-webkit-scrollbar-thumb:hover{background:#4f46e566}.katex-display>.katex{white-space:nowrap;max-width:none;display:inline-block;min-width:100%;text-align:center}.katex .mord{font-feature-settings:"tnum"}.katex .frac{padding:0 2px}.katex .msupsub{font-size:.9em}.katex .sqrt{margin:0 1px}.katex .pmatrix,.katex .bmatrix,.katex .vmatrix,.katex .det{margin:4px 0}.katex .op-symbol{margin:0 2px}.katex-display{cursor:zoom-in;transition:background .2s,border-color .2s}.katex-display:hover{background:linear-gradient(135deg,#4f46e50d,#6366f10d);border-color:#4f46e526}.formula-zoom-modal{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:formulaFadeIn .2s ease}@keyframes formulaFadeIn{0%{opacity:0}to{opacity:1}}.formula-zoom-content{background:var(--color-bg-solid, #ffffff);border-radius:16px;padding:30px 24px;max-width:95vw;max-height:85vh;overflow:auto;box-shadow:0 20px 60px #0000004d;animation:formulaScaleIn .25s cubic-bezier(.16,1,.3,1)}@keyframes formulaScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.formula-zoom-content .katex{font-size:1.4em}.formula-zoom-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:#0000000d;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #64748b);transition:background .2s,color .2s}.formula-zoom-close:hover{background:#0000001a;color:var(--color-text, #1e293b)}.katex-fallback{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;color:#64748b;background:#ef44440f;padding:2px 6px;border-radius:6px;font-size:.95em;border:1px solid rgba(239,68,68,.15)}.katex-fallback-display{display:block;text-align:center;padding:12px;margin:12px 0;font-size:1em;word-break:break-all}
