:root{--color-primary: #0f172a;--color-primary-dark: #020617;--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-bg: #fafbfc;--color-bg-card: #ffffff;--color-text: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-border: #e5e7eb;--color-border-light: #f1f5f9;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--font-sans: -apple-system, "PingFang SC", "Helvetica Neue", "Segoe UI", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(15,23,42,.04);--shadow-md: 0 4px 12px rgba(15,23,42,.06);--shadow-lg: 0 10px 32px rgba(15,23,42,.1);--shadow-card: 0 1px 2px rgba(15,23,42,.04), 0 0 0 1px rgba(15,23,42,.04);--shadow-hover: 0 4px 12px rgba(15,23,42,.1)}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-sans)}body{background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-container{padding:24px;min-height:100%}.page-header{margin-bottom:24px;padding:0 0 16px;border-bottom:1px solid var(--color-border-light);background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-title{font-family:var(--font-sans);font-size:22px;font-weight:600;color:var(--color-text);letter-spacing:-.3px;margin:0;padding:0;display:flex;align-items:center;gap:10px}.page-title:before{display:none}.page-subtitle{font-size:13px;color:var(--color-text-secondary);margin-top:4px}.filter-bar{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px;box-shadow:none;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.table-card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.table-card .ant-table{border-radius:var(--radius-md);overflow:hidden}.ant-table-thead>tr>th{background:#f8fafc!important;color:var(--color-text-secondary)!important;font-weight:600!important;font-size:13px!important;border-bottom:1px solid var(--color-border-light)!important}.ant-table-tbody>tr:hover>td{background:#f1f5f9!important}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;border-radius:var(--radius-sm);border:1px solid;background:var(--bg);color:var(--fg);border-color:var(--border)}.status-badge.success{--bg:#ecfdf5;--fg:#059669;--border:#a7f3d0}.status-badge.warning{--bg:#fffbeb;--fg:#d97706;--border:#fcd34d}.status-badge.error{--bg:#fef2f2;--fg:#dc2626;--border:#fca5a5}.status-badge.info{--bg:#eff6ff;--fg:#2563eb;--border:#bfdbfe}.status-badge.neutral{--bg:#f1f5f9;--fg:#475569;--border:#e2e8f0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.alert-badge .ant-badge-count{background:var(--color-error);box-shadow:0 0 0 2px var(--color-primary)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.card{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm)}.card-title{font-size:13px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.3px;text-transform:uppercase;margin:0 0 12px}.kpi-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;color:var(--color-text);letter-spacing:-.5px;line-height:1}.kpi-value .unit{font-size:13px;color:var(--color-text-muted);margin-left:2px;font-weight:500}.kpi-label{font-size:11px;color:var(--color-text-secondary);letter-spacing:.5px;text-transform:uppercase;font-weight:600}
