:root{--color-primary: #9B59B6;--color-primary-light: #C39BD3;--color-primary-dark: #7D3C98;--color-primary-bg: #F5EEF8;--color-secondary: #E8A0BF;--color-secondary-light: #F2C6DE;--color-secondary-dark: #D47FA6;--color-secondary-bg: #FDF2F8;--color-accent: #F0B27A;--color-accent-light: #F8D7A8;--color-accent-dark: #E59866;--color-success: #27AE60;--color-warning: #F39C12;--color-danger: #E74C3C;--color-info: #3498DB;--status-success: #52c41a;--status-warning: #faad14;--status-danger: #ff4d4f;--status-processing: #1890ff;--status-neutral: #d9d9d9;--status-success-bg: #f6ffed;--status-success-border: #b7eb8f;--status-warning-bg: #fffbe6;--status-warning-border: #ffe58f;--status-danger-bg: #fff2f0;--status-danger-border: #ffccc7;--status-info-bg: #f6f0ff;--status-info-border: #d3adf7;--color-chart-grid: #f0f0f0;--color-text: #2C3E50;--color-text-secondary: #7F8C8D;--color-text-light: #BDC3C7;--color-border: #E8E8E8;--color-bg: #F7F8FA;--color-bg-white: #FFFFFF;--color-bg-hover: #F5F5F5;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .16);--font-family: "Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}[data-theme=dark]{--color-text: #E4E6EB;--color-text-secondary: #9AA0A6;--color-text-light: #6E7681;--color-border: #2A2D31;--color-bg: #15181C;--color-bg-white: #1E2127;--color-bg-hover: #262A30;--color-primary-bg: #2A1F33;--color-secondary-bg: #2C1E27;--status-success-bg: #162312;--status-success-border: #274916;--status-warning-bg: #2b2111;--status-warning-border: #594214;--status-danger-bg: #2a1215;--status-danger-border: #58181c;--status-info-bg: #1f1a2e;--status-info-border: #3c2a5e;--color-chart-grid: #2A2D31;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6)}[data-theme=dark] body{color-scheme:dark}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);line-height:1.6;min-height:100vh}button,input,textarea,select,.ant-btn,.ant-input,.ant-select-selector,.ant-checkbox-input{font:inherit}button:focus-visible,a:focus-visible,.ant-btn:focus-visible,.ant-input:focus-visible,.ant-select-selector:focus-visible,.ant-checkbox-input:focus-visible{outline:3px solid rgba(52,152,219,.35);outline-offset:2px}button:not(.ant-btn){min-height:40px}a{text-decoration:none;color:var(--color-primary);transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}.slide-up{animation:slideUp .4s ease forwards}.route-loading{min-height:100vh;display:grid;place-items:center;gap:12px;color:var(--color-text-secondary);background:var(--color-bg)}.route-loading__spinner{width:32px;height:32px;border:3px solid rgba(155,89,182,.18);border-top-color:var(--color-primary);border-radius:50%;animation:routeSpin .8s linear infinite}@keyframes routeSpin{to{transform:rotate(360deg)}}
