:root{--ink-0: #07090d;--ink-1: #0a0d12;--ink-2: #11161e;--ink-3: #161c25;--ink-4: #1d2530;--text-1: #e7e9ee;--text-2: #b9bdc6;--text-3: #8a9099;--text-4: #5a6068;--amber: #e8b04b;--teal: #6cd3c0;--crimson: #f0644b;--violet: #a98bff;--line-2: rgba(255, 255, 255, .08);--sidebar-w: 244px;--header-h: 58px;--font-display: "Fraunces", "Songti SC", Georgia, serif;--font-sans: "Manrope", "PingFang SC", sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:13.5px;line-height:1.55;color:var(--text-1);background:var(--ink-1)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"brand header" "sidebar main";min-height:100vh;background:var(--ink-1)}.brand{grid-area:brand;border-right:1px solid var(--line-2);padding:18px 16px;background:var(--ink-0)}.brand-name b{display:block;font-size:14px}.brand-name span{font-size:11px;color:var(--text-3)}.header{grid-area:header;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid var(--line-2);background:var(--ink-2)}.header .crumbs{color:var(--text-3);font-size:12px}.header .crumbs b{color:var(--text-1)}.header .grow{flex:1}.search input{background:var(--ink-3);border:1px solid var(--line-2);border-radius:6px;color:var(--text-2);padding:8px 12px;width:280px;font-size:12px}.tenant,.user-pill{font-size:12px;padding:6px 10px;border-radius:100px;border:1px solid var(--line-2);color:var(--text-2)}.sidebar{grid-area:sidebar;display:flex;flex-direction:column;border-right:1px solid var(--line-2);padding:12px 10px;background:var(--ink-0);overflow-y:auto}.nav-group{margin-bottom:16px}.nav-group .label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-4);padding:0 10px 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--text-3);cursor:pointer;text-decoration:none;margin-bottom:2px;font-size:13px}.nav-item:hover{background:var(--ink-4);color:var(--text-1)}.nav-item.active{background:#e8b04b1f;color:var(--amber)}.mini-badge{margin-left:auto;font-size:10px;background:#f0644b33;color:var(--crimson);padding:2px 6px;border-radius:100px}.side-status{margin-top:auto;padding:12px 10px;font-size:11px;color:var(--text-4)}.side-status .ln{display:flex;justify-content:space-between;margin-bottom:6px}.side-status b{color:var(--teal)}.main{grid-area:main;padding:22px 26px;overflow-y:auto;background:linear-gradient(180deg,var(--ink-1) 0%,#0c1018 100%)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head .eyebrow{font-family:var(--font-mono);font-size:10.5px;color:var(--amber);letter-spacing:.22em;text-transform:uppercase;margin-bottom:6px}.page-head h1{font-family:var(--font-display);font-weight:400;font-size:34px;margin:0 0 8px;line-height:1.1}.page-head h1 em{font-style:italic;color:var(--amber)}.page-head p{margin:0;color:var(--text-3);max-width:720px;font-size:13px}.page-head .actions{display:flex;gap:8px;flex-shrink:0}.page-section{margin-bottom:20px}.page-section .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.page-section .section-head h3{margin:0;font-size:15px;font-weight:500;color:var(--text-1)}.page-section .section-head p{margin:4px 0 0;font-size:12px;color:var(--text-3)}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-5{grid-template-columns:repeat(5,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.card{background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px;padding:16px}.kpi .label{color:var(--text-3);font-size:12px;margin-bottom:8px}.kpi .value{font-family:var(--font-display);font-size:28px}.kpi .delta{font-size:11px;margin-top:6px;color:var(--teal)}.pill{display:inline-block;padding:2px 8px;border-radius:100px;font-size:11px;border:1px solid var(--line-2)}.pill.ok{color:var(--teal);border-color:#6cd3c04d}.pill.warn{color:var(--amber);border-color:#e8b04b4d}.pill.danger{color:var(--crimson);border-color:#f0644b4d}.pill.violet{color:var(--violet)}.health-list{list-style:none;padding:0;margin:0}.health-list li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:13px}.data-table-wrap{background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px;overflow:hidden}.data-table-wrap .ant-table{background:transparent;color:var(--text-1)}.data-table-wrap .ant-table-thead>tr>th{background:var(--ink-4)!important;color:var(--text-3)!important;border-bottom:1px solid var(--line-2)!important;font-size:12px}.data-table-wrap .ant-table-tbody>tr>td{border-bottom:1px solid var(--line-2)!important;background:transparent!important}.data-table-wrap .ant-table-tbody>tr:hover>td{background:var(--ink-4)!important}.data-table-wrap .ant-pagination{padding:12px 16px;margin:0!important}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kanban-col{background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px;padding:12px;min-height:420px;display:flex;flex-direction:column}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line-2)}.kanban-col-body{flex:1;overflow-y:auto}.kanban-card{background:var(--ink-4);border:1px solid var(--line-2);border-radius:8px;padding:12px;margin-bottom:8px}.kanban-card .title{font-size:13px;color:var(--text-1);margin-bottom:6px}.kanban-card .meta{font-size:11px;color:var(--text-4);margin-bottom:8px}.kanban-card .actions{display:flex;gap:6px}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-ghost{background:transparent!important;border-color:var(--line-2)!important;color:var(--text-2)!important}.btn-ghost:hover{border-color:var(--amber)!important;color:var(--amber)!important}.upload-zone{background:var(--ink-3);border:1px dashed var(--line-2);border-radius:10px;padding:8px}.upload-zone .ant-upload-drag{background:transparent!important;border:none!important}.detail-panel{background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px;padding:16px;min-height:320px}.detail-panel .empty-hint{color:var(--text-4);text-align:center;padding:48px 16px}.chat-panel{display:flex;flex-direction:column;gap:16px}.chat-messages{background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px;padding:16px;min-height:360px;max-height:520px;overflow-y:auto}.chat-bubble{max-width:80%;padding:12px 14px;border-radius:10px;margin-bottom:12px;font-size:13px;line-height:1.5}.chat-bubble.user{margin-left:auto;background:#e8b04b26;border:1px solid rgba(232,176,75,.25)}.chat-bubble.assistant{background:var(--ink-4);border:1px solid var(--line-2)}.chat-input-row{display:flex;gap:8px}.deploy-steps{list-style:none;padding:0;margin:0}.deploy-steps li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13px}.deploy-steps .step-index{width:24px;height:24px;border-radius:50%;background:var(--ink-4);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-3);flex-shrink:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink-1)}.login-card{width:380px;padding:32px;background:var(--ink-3);border:1px solid var(--line-2);border-radius:10px}.graph-viz-section .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.graph-viz-section .section-meta{font-size:11px;color:var(--text-3)}.graph-canvas{border:1px solid var(--line-2);border-radius:10px;background:radial-gradient(ellipse at center,var(--ink-3) 0%,var(--ink-2) 100%);overflow:hidden}.graph-canvas.empty{display:flex;align-items:center;justify-content:center}.graph-list-item{padding:12px 16px;border-bottom:1px solid var(--line-2);cursor:pointer;transition:background .15s}.graph-list-item:hover,.graph-list-item.active{background:var(--ink-4)}@media (max-width: 980px){:root{--sidebar-w: 76px}.brand-name,.nav-item span.txt,.label span,.side-status,.search,.tenant em{display:none}.grid.cols-4,.grid.cols-5,.grid.cols-3,.kanban{grid-template-columns:1fr 1fr}}
