:root{--primary-50: oklch(97% .015 190);--primary-100: oklch(94% .03 190);--primary-200: oklch(89% .05 190);--primary-300: oklch(80% .07 190);--primary-400: oklch(70% .08 190);--primary-500: oklch(58% .08 190);--primary-600: oklch(50% .07 190);--primary-700: oklch(42% .06 190);--primary-800: oklch(32% .05 190);--primary-900: oklch(22% .03 190);--neutral-50: oklch(98% 0 0);--neutral-100: oklch(96% 0 0);--neutral-200: oklch(92% 0 0);--neutral-300: oklch(85% 0 0);--neutral-400: oklch(70% 0 0);--neutral-500: oklch(55% 0 0);--neutral-600: oklch(45% 0 0);--neutral-700: oklch(35% 0 0);--neutral-800: oklch(25% 0 0);--neutral-900: oklch(18% 0 0);--primary-color: var(--primary-500);--primary-hover: var(--primary-600);--primary-content: oklch(98.5% 0 0);--bg-app: oklch(96.5% 0 0);--bg-surface: oklch(98.5% 0 0);--bg-surface-solid: oklch(98.5% 0 0);--bg-surface-hover: oklch(96% 0 0);--bg-surface-active: oklch(94% 0 0);--bg-panel: oklch(97.5% 0 0);--bg-inset: oklch(96.5% 0 0);--text-primary: oklch(18% 0 0);--text-secondary: oklch(45% 0 0);--text-tertiary: oklch(62% 0 0);--text-on-primary: oklch(98.5% 0 0);--text-muted: oklch(72% 0 0);--border-color: oklch(88% 0 0);--border-light: oklch(93% 0 0);--border-strong: oklch(82% 0 0);--success-bg: oklch(96% .02 155);--success-text: oklch(45% .1 155);--warning-bg: oklch(96% .02 80);--warning-text: oklch(52% .1 65);--warning-500: oklch(58% .12 55);--error-bg: oklch(96% .02 25);--error-text: oklch(50% .12 25);--info-bg: oklch(96% .02 240);--info-text: oklch(45% .1 240);--font-sans: "Plus Jakarta Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px oklch(0% 0 0 / .03);--shadow-sm: 0 1px 3px oklch(0% 0 0 / .04), 0 1px 2px oklch(0% 0 0 / .02);--shadow-md: 0 4px 8px oklch(0% 0 0 / .04), 0 2px 4px oklch(0% 0 0 / .02);--shadow-lg: 0 10px 25px oklch(0% 0 0 / .06), 0 4px 10px oklch(0% 0 0 / .03);--shadow-xl: 0 20px 50px oklch(0% 0 0 / .07), 0 8px 20px oklch(0% 0 0 / .04);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--transition-fast: all .15s var(--ease-out-quart);--transition: all .25s var(--ease-out-quart);--focus-ring: 0 0 0 2px var(--primary-300);--overlay-bg: oklch(16% .01 70 / .4);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px}[data-theme=dark]{--primary-50: oklch(22% .02 190);--primary-100: oklch(25% .03 190);--primary-200: oklch(30% .04 190);--primary-300: oklch(38% .06 190);--primary-400: oklch(50% .07 190);--primary-500: oklch(62% .09 190);--primary-600: oklch(55% .08 190);--primary-700: oklch(65% .07 190);--neutral-50: oklch(18% 0 0);--neutral-100: oklch(20% 0 0);--neutral-200: oklch(25% 0 0);--neutral-300: oklch(30% 0 0);--neutral-400: oklch(40% 0 0);--neutral-500: oklch(55% 0 0);--neutral-600: oklch(65% 0 0);--neutral-700: oklch(75% 0 0);--primary-content: oklch(16% 0 0);--bg-app: oklch(14% .005 260);--bg-surface: oklch(19% .005 260);--bg-surface-solid: oklch(19% .005 260);--bg-surface-hover: oklch(24% .008 260);--bg-surface-active: oklch(27% .008 260);--bg-panel: oklch(17% .005 260);--bg-inset: oklch(13% .005 260);--text-primary: oklch(93% 0 0);--text-secondary: oklch(70% 0 0);--text-tertiary: oklch(50% 0 0);--text-on-primary: oklch(98% 0 0);--text-muted: oklch(40% 0 0);--border-color: oklch(27% .005 260);--border-light: oklch(22% .005 260);--border-strong: oklch(34% .008 260);--success-bg: oklch(20% .03 155);--success-text: oklch(65% .12 155);--warning-bg: oklch(20% .03 80);--warning-text: oklch(68% .12 65);--error-bg: oklch(20% .03 25);--error-text: oklch(65% .14 25);--shadow-sm: 0 1px 3px oklch(0% 0 0 / .16), 0 1px 2px oklch(0% 0 0 / .1);--shadow-md: 0 4px 8px oklch(0% 0 0 / .18), 0 2px 4px oklch(0% 0 0 / .1);--shadow-lg: 0 10px 25px oklch(0% 0 0 / .25), 0 4px 10px oklch(0% 0 0 / .12);--focus-ring: 0 0 0 2px var(--primary-400);--overlay-bg: oklch(0% 0 0 / .6);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;height:100%}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}body{font-family:var(--font-sans);background:var(--bg-app);color:var(--text-primary);line-height:1.65;height:100%;overflow:hidden;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}#app{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:14px;transition:var(--transition-fast)}input,select{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-sans);outline:none;transition:border-color .15s;background:var(--bg-surface);color:var(--text-primary)}input:focus,select:focus{border-color:var(--primary-color)}input::placeholder{color:var(--text-muted)}.page-transition{animation:fadeIn .35s var(--ease-out-expo) forwards}.text-h2{font-size:1.3rem;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--text-primary)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:12px 16px;background:var(--bg-panel);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border-color)}td{padding:12px 16px;border-bottom:1px solid var(--border-light)}tr:hover td{background:var(--bg-surface-hover)}.badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.badge-active{background:var(--success-bg);color:var(--success-text)}.badge-pending{background:var(--warning-bg);color:var(--warning-text)}.badge-disabled{background:var(--error-bg);color:var(--error-text)}.empty-state{text-align:center;padding:48px 0;color:var(--text-muted)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
