:root{--color-primary: #475569;--color-primary-hover: #334155;--color-primary-active: #1e293b;--color-primary-bg: #f1f5f9;--color-primary-bg-hover: #e2e8f0;--color-primary-border: #cbd5e1;--bg-base: #ffffff;--bg-layout: #fafafa;--bg-container: #ffffff;--bg-elevated: #ffffff;--bg-spotlight: #f5f5f5;--bg-hover: #f9fafb;--bg-mask: rgba(0, 0, 0, .45);--color-success: #059669;--color-success-hover: #047857;--color-success-active: #065f46;--color-success-bg: #ecfdf5;--color-success-border: #a7f3d0;--color-warning: #d97706;--color-warning-hover: #b45309;--color-warning-active: #92400e;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-error: #dc2626;--color-error-hover: #b91c1c;--color-error-active: #991b1b;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-info: #0284c7;--color-info-hover: #0369a1;--color-info-active: #075985;--color-info-bg: #f0f9ff;--color-info-border: #bae6fd;--gray-50: #fafafa;--gray-100: #f4f4f5;--gray-200: #e4e4e7;--gray-300: #d4d4d8;--gray-400: #a1a1aa;--gray-500: #71717a;--gray-600: #52525b;--gray-700: #3f3f46;--gray-800: #27272a;--gray-900: #18181b;--text-primary: #18181b;--text-secondary: #52525b;--text-tertiary: #a1a1aa;--text-disabled: #d4d4d8;--text-inverse: #ffffff;--text-link: #475569;--border-base: #e4e4e7;--border-light: #f4f4f5;--border-strong: #d4d4d8;--border-focus: #475569;--font-family: "Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", "Consolas", monospace;--font-number: "Plus Jakarta Sans", var(--font-family);--font-size-h1: 32px;--font-size-h2: 26px;--font-size-h3: 22px;--font-size-h4: 18px;--font-size-h5: 16px;--font-size-base: 14px;--font-size-sm: 13px;--font-size-xs: 12px;--font-size-xxs: 11px;--line-height-tight: 1.25;--line-height-snug: 1.4;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--letter-spacing-wider: .05em;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--border-width-none: 0;--border-width-thin: 1px;--border-width-medium: 2px;--border-width-thick: 3px;--radius-none: 0;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .08);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .08);--shadow-focus-primary: 0 0 0 2px rgba(71, 85, 105, .1);--shadow-focus-success: 0 0 0 2px rgba(5, 150, 105, .1);--shadow-focus-error: 0 0 0 2px rgba(220, 38, 38, .1);--shadow-focus-warning: 0 0 0 2px rgba(217, 119, 6, .1);--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .4s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--transition-colors: color .15s ease, background-color .15s ease, border-color .15s ease;--transition-transform: transform .2s var(--ease-out);--transition-opacity: opacity .2s ease;--transition-shadow: box-shadow .2s ease;--transition-all: all .2s var(--ease-out);--btn-height-sm: 30px;--btn-height-md: 36px;--btn-height-lg: 42px;--btn-radius: var(--radius-md);--input-height-sm: 30px;--input-height-md: 36px;--input-height-lg: 42px;--input-radius: var(--radius-md);--card-padding: var(--spacing-6);--card-radius: var(--radius-lg);--table-header-bg: #fafafa;--table-row-hover-bg: #fafafa;--table-border-color: #f4f4f5;--sidebar-width: 240px;--sidebar-width-collapsed: 64px;--sidebar-bg: #ffffff;--z-dropdown: 1000;--z-sticky: 1100;--z-fixed: 1200;--z-modal-backdrop: 1300;--z-modal: 1400;--z-popover: 1500;--z-tooltip: 1600;--z-toast: 1700;--screen-xs: 480px;--screen-sm: 576px;--screen-md: 768px;--screen-lg: 992px;--screen-xl: 1200px;--screen-2xl: 1600px}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5ig.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lc.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU7NSg.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_m07NSg.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_d0nNSg.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNSg.ttf) format("truetype")}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background-color:var(--bg-layout)}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);line-height:var(--line-height-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-layout);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}*{scrollbar-width:thin;scrollbar-color:var(--gray-300) var(--bg-layout)}::selection{background-color:var(--color-primary-bg);color:var(--text-primary)}a{color:var(--text-link);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--color-primary-hover)}code,pre{font-family:var(--font-mono)}code{padding:2px 6px;background:var(--bg-spotlight);border-radius:var(--radius-xs);font-size:.9em;color:var(--text-secondary)}pre{padding:var(--spacing-4);background:var(--bg-spotlight);border-radius:var(--radius-md);overflow-x:auto}.ant-pro-layout{height:100vh;overflow:hidden}.ant-pro-layout .ant-layout.ant-layout-has-sider{height:100%;overflow:hidden}.ant-pro-layout .ant-pro-layout-container{height:100%;overflow:hidden;display:flex;flex-direction:column}.ant-pro-layout .ant-pro-sider{background:var(--bg-container)!important;border-right:1px solid var(--border-light)}.ant-pro-layout .ant-pro-sider .ant-pro-sider-logo{padding:16px;border-bottom:1px solid var(--border-light)}.ant-pro-layout .ant-pro-sider .ant-pro-sider-logo h1{color:var(--text-primary);font-weight:600;letter-spacing:-.02em}.ant-pro-layout .ant-pro-layout-header{background:var(--bg-container)!important;border-bottom:1px solid var(--border-light);flex-shrink:0}.ant-pro-layout .ant-pro-layout-content{background:var(--bg-layout);flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.ant-pro-page-container{padding:var(--spacing-6)}.ant-pro-page-container .ant-pro-page-container-children-content{margin:0;padding:0}.ant-card{background:var(--bg-container);border:1px solid var(--border-light);transition:var(--transition-all)}.ant-card:hover{border-color:var(--border-base);box-shadow:var(--shadow-md)}.ant-card .ant-card-head{border-bottom-color:var(--border-light)}.ant-card .ant-card-head .ant-card-head-title{font-weight:600}.ant-table .ant-table-thead>tr>th{font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--text-secondary);background:var(--table-header-bg)}.ant-table .ant-table-tbody>tr{transition:var(--transition-colors)}.ant-table .ant-table-tbody>tr:hover>td{background:var(--table-row-hover-bg)!important}.ant-table .table-cell-mono{font-family:var(--font-mono);font-size:var(--font-size-sm)}.ant-form .ant-form-item-label>label{color:var(--text-secondary);font-size:var(--font-size-sm)}.ant-btn{font-weight:500;transition:var(--transition-all)}.ant-btn.ant-btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.status-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-xs)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;margin-right:6px;background:currentColor}.status-badge.status-online,.status-badge.status-success{background:var(--color-success-bg);color:var(--color-success)}.status-badge.status-offline,.status-badge.status-error{background:var(--color-error-bg);color:var(--color-error)}.status-badge.status-warning{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge.status-info{background:var(--color-info-bg);color:var(--color-info)}.status-badge.status-inactive,.status-badge.status-disabled{background:var(--gray-100);color:var(--gray-500)}.stat-card .ant-statistic-title{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.stat-card .ant-statistic-content{color:var(--text-primary)}.stat-card .ant-statistic-content .ant-statistic-content-value{font-family:var(--font-number);font-weight:600;letter-spacing:-.02em}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{transition:transform .2s var(--ease-out)}.ant-menu-item:hover .anticon,.ant-menu-submenu-title:hover .anticon{transform:scale(1.1)}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s ease}.loading-skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.font-mono{font-family:var(--font-mono)}.font-number{font-family:var(--font-number);font-variant-numeric:tabular-nums}
