:root,:root[data-theme=dark]{--color-bg: #08090F;--color-surface: rgba(22, 25, 36, .72);--color-surface2: rgba(33, 37, 54, .66);--color-surface3: rgba(45, 50, 70, .72);--color-border: rgba(255, 255, 255, .08);--color-border2: rgba(255, 255, 255, .16);--color-text: #ECEEF7;--color-text2: #C3C8DB;--color-muted: #888EAC;--color-muted2: #595F7A;--color-primary: #6D7BFF;--color-primary-h: #5563F5;--color-primary-bg:rgba(109,123,255,.16);--color-accent: #A855F7;--color-accent-bg: rgba(168,85,247,.16);--color-success: #2DD4A7;--color-success-bg:rgba(45,212,167,.16);--color-warn: #FBBF24;--color-warn-bg: rgba(251,191,36,.16);--color-danger: #FB7185;--color-danger-bg: rgba(251,113,133,.16);--glass-bg: rgba(22, 25, 36, .55);--glass-border: rgba(255, 255, 255, .1);--glass-blur: 16px;--gradient-brand: linear-gradient(135deg, #6D7BFF 0%, #A855F7 52%, #EC4899 100%);--gradient-soft: linear-gradient(135deg, rgba(109,123,255,.18), rgba(168,85,247,.18));--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 8px 28px rgba(0,0,0,.45);--shadow-lg: 0 18px 50px rgba(0,0,0,.55);--glow-primary: 0 0 0 1px rgba(109,123,255,.3), 0 10px 36px rgba(109,123,255,.22);--glow-accent: 0 0 0 1px rgba(168,85,247,.3), 0 10px 36px rgba(168,85,247,.22)}:root[data-theme=light]{--color-bg: #EEF1F8;--color-surface: rgba(255, 255, 255, .78);--color-surface2: rgba(248, 250, 252, .85);--color-surface3: rgba(241, 245, 249, .9);--color-border: rgba(15, 23, 42, .08);--color-border2: rgba(15, 23, 42, .16);--color-text: #1E293B;--color-text2: #334155;--color-muted: #64748B;--color-muted2: #94A3B8;--color-primary: #5B5BF0;--color-primary-h: #4848D6;--color-primary-bg:rgba(91,91,240,.1);--color-accent: #9333EA;--color-accent-bg: rgba(147,51,234,.1);--color-success: #10B981;--color-success-bg:rgba(16,185,129,.1);--color-warn: #D97706;--color-warn-bg: rgba(217,119,6,.1);--color-danger: #E11D48;--color-danger-bg: rgba(225,29,72,.1);--glass-bg: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .6);--glass-blur: 16px;--gradient-brand: linear-gradient(135deg, #5B5BF0 0%, #9333EA 52%, #DB2777 100%);--gradient-soft: linear-gradient(135deg, rgba(91,91,240,.1), rgba(147,51,234,.1));--shadow-sm: 0 1px 3px rgba(15,23,42,.06);--shadow-md: 0 8px 28px rgba(15,23,42,.1);--shadow-lg: 0 18px 50px rgba(15,23,42,.14);--glow-primary: 0 0 0 1px rgba(91,91,240,.18), 0 10px 30px rgba(91,91,240,.16);--glow-accent: 0 0 0 1px rgba(147,51,234,.18), 0 10px 30px rgba(147,51,234,.16)}:root{--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--sidebar-width: 224px;--header-height: 56px;--transition-fast: .14s ease;--transition-base: .22s ease;--transition-slow: .38s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-text-size-adjust:100%}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background var(--transition-base),color var(--transition-base);overflow:hidden;height:100vh}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(72vw 62vh at 14% -12%,rgba(109,123,255,.08),transparent 62%),radial-gradient(64vw 58vh at 92% 4%,rgba(130,120,180,.05),transparent 64%),radial-gradient(58vw 56vh at 80% 108%,rgba(120,110,170,.04),transparent 64%)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted2)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-muted)}.text-success{color:var(--color-success)}.text-warn{color:var(--color-warn)}.text-danger{color:var(--color-danger)}.bg-surface{background:var(--color-surface)}.bg-surface2{background:var(--color-surface2)}.border{border:1px solid var(--color-border)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.card{position:relative;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-5);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-md);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{border-color:var(--color-border2);box-shadow:var(--glow-primary);transform:translateY(-2px)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500}.badge-blue{background:var(--color-primary-bg);color:var(--color-primary)}.badge-green{background:var(--color-success-bg);color:var(--color-success)}.badge-warn{background:var(--color-warn-bg);color:var(--color-warn)}.badge-purple{background:var(--color-accent-bg);color:var(--color-accent)}.tag{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-size:11px;background:var(--color-surface2);color:var(--color-muted);border:1px solid var(--color-border)}.page-wrap{padding:28px clamp(20px,4vw,56px);max-width:1560px;margin:0 auto}.page-title{font-size:22px;font-weight:800;margin-bottom:4px;letter-spacing:-.01em}.page-subtitle{font-size:13px;color:var(--color-muted);margin-bottom:22px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border)}.stat-row:last-child{border-bottom:none}.stat-label{font-size:13px;color:var(--color-muted)}.stat-value{font-size:13px;font-weight:600}.progress-bar{height:5px;background:var(--color-border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .5s ease}.el-button{font-family:inherit;border-radius:var(--radius-md)}.el-button--primary{background:var(--color-primary-bg)!important;color:var(--color-primary)!important;border:1px solid transparent!important;box-shadow:none!important;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.el-button--primary:hover:not(.is-disabled){background:var(--color-primary)!important;color:#fff!important;transform:translateY(-1px)}.el-button--primary:active:not(.is-disabled){background:var(--color-primary-h)!important}.el-button--primary.is-disabled{opacity:.5}.el-button--danger{background:var(--color-danger-bg)!important;color:var(--color-danger)!important;border:1px solid transparent!important;box-shadow:none!important}.el-button--danger:hover:not(.is-disabled){background:var(--color-danger)!important;color:#fff!important}.el-input__wrapper,.el-textarea__inner{background:var(--color-surface2)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;box-shadow:none!important}.el-input__wrapper:hover,.el-input__wrapper.is-focus,.el-textarea__inner:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px var(--color-primary-bg)!important}.el-input__inner{color:var(--color-text)!important}.el-drawer,.el-dialog{background:var(--glass-bg)!important;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-base)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all var(--transition-base)}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(12px)}.scale-enter-active,.scale-leave-active{transition:all var(--transition-base)}.scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}
