:root{--ink: #0b1620;--steel: #122836;--slate: #20404f;--rail: #7e97a5;--paper: #eef2f4;--card: #ffffff;--amber: #e3930c;--green: #12805c;--red: #b33b2e;--blue: #2a6c99;--rail-10: rgba(126, 151, 165, .1);--rail-20: rgba(126, 151, 165, .2);--rail-30: rgba(126, 151, 165, .35);--radius: 4px;--sidebar-w: 236px;--max-w: 1560px;--font-display: "Archivo", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--paper);color:var(--steel);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.display{font-family:var(--font-display);letter-spacing:-.01em}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100%}.sidebar{background:var(--ink);color:var(--paper);position:sticky;top:0;height:100vh;overflow-y:auto;padding:0;display:flex;flex-direction:column}.brand{padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.brand .name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em}.brand .sub{color:var(--rail);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;margin-top:2px}.nav-group{padding:12px 12px 4px}.nav-group .label{color:var(--rail);font-size:10px;text-transform:uppercase;letter-spacing:.14em;padding:6px 8px;font-weight:600}.nav-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius);color:#c7d3da;font-size:12.5px;cursor:pointer}.nav-item:hover{background:#ffffff0d;text-decoration:none}.nav-item.active{background:var(--steel);color:#fff}.nav-item .dot{width:6px;height:6px;border-radius:50%;background:var(--rail);flex:none}.nav-item.active .dot{background:var(--amber)}.main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--rail-20);display:flex;align-items:center;gap:16px;padding:0 24px;height:52px}.topbar h1{font-family:var(--font-display);font-size:16px;font-weight:700;margin:0}.topbar .search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--rail-20);border-radius:var(--radius);padding:6px 10px;width:280px}.topbar .search input{border:none;background:transparent;outline:none;width:100%;font-family:var(--font-body);font-size:12.5px}.synced{color:var(--rail);font-size:11px;display:flex;align-items:center;gap:6px;white-space:nowrap}.synced .pulse{width:7px;height:7px;border-radius:50%;background:var(--green)}.content{padding:22px 24px 60px;max-width:var(--max-w);width:100%}.card{background:var(--card);border:1px solid var(--rail-20);border-radius:var(--radius);padding:16px}.card h2{font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate);margin:0 0 12px}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1100px){.cols-4{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:1fr}}.kpi{display:flex;flex-direction:column;gap:4px}.kpi .k-label{color:var(--rail);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.kpi .k-value{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.05}.kpi .k-sub{font-size:11.5px;color:var(--slate)}.kpi .k-sub.mono{color:var(--rail)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:500;font-family:var(--font-mono);white-space:nowrap}.badge.amber{background:#e3930c1f;color:#8a5900}.badge.green{background:#12805c1f;color:var(--green)}.badge.red{background:#b33b2e1f;color:var(--red)}.badge.blue{background:#2a6c991f;color:var(--blue)}.badge.grey{background:var(--rail-10);color:var(--slate)}.table-wrap{overflow-x:auto;border:1px solid var(--rail-20);border-radius:var(--radius);background:var(--card)}table.data{width:100%;border-collapse:collapse;font-size:12.5px}table.data th{text-align:left;padding:9px 12px;background:var(--paper);color:var(--slate);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--rail-20);position:sticky;top:0;cursor:pointer;white-space:nowrap}table.data th.num,table.data td.num{text-align:right}table.data td{padding:8px 12px;border-bottom:1px solid var(--rail-10);white-space:nowrap}table.data tr:hover td{background:var(--rail-10)}table.data td.id,table.data td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.bar{height:7px;border-radius:3px;background:var(--rail-20);overflow:hidden;min-width:60px}.bar>span{display:block;height:100%;background:var(--amber)}.bar.green>span{background:var(--green)}.muted{color:var(--rail)}.row{display:flex;align-items:center;gap:8px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:14px}.pill-row{display:flex;flex-wrap:wrap;gap:6px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rail-20);margin-bottom:16px}.tab{padding:8px 14px;cursor:pointer;font-size:12.5px;color:var(--slate);border-bottom:2px solid transparent}.tab.active{color:var(--steel);border-bottom-color:var(--amber);font-weight:600}.tooltip{border-bottom:1px dotted var(--rail);cursor:help}.skeleton{background:linear-gradient(90deg,var(--rail-10),var(--rail-20),var(--rail-10));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:3px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.btn{font-family:var(--font-body);font-size:12.5px;font-weight:500;padding:7px 14px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--rail-30);background:var(--card);color:var(--steel)}.btn:hover{background:var(--paper)}.btn.primary{background:var(--steel);color:#fff;border-color:var(--steel)}.btn.primary:hover{background:var(--ink)}.empty{padding:40px;text-align:center;color:var(--rail)}.empty .e-title{font-family:var(--font-display);color:var(--slate);font-size:14px;margin-bottom:6px}:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card{box-shadow:0 1px 2px #0b16200a;transition:box-shadow .15s ease}.card:hover{box-shadow:0 2px 8px #0b16200f}.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rail-20)}.kpi.t-green:after{background:var(--green)}.kpi.t-red:after{background:var(--red)}.kpi.t-amber:after{background:var(--amber)}.kpi.t-blue:after{background:var(--blue)}table.data th .arrow{color:var(--amber);font-size:9px;margin-left:3px}table.data td{transition:background .1s ease}.btn{transition:background .12s ease,border-color .12s ease}.badge{transition:transform .1s ease}.loadbar{position:fixed;top:0;left:var(--sidebar-w);right:0;height:2px;z-index:50;overflow:hidden;pointer-events:none}.loadbar>span{display:block;height:100%;width:40%;background:var(--amber);animation:slide 1.1s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.toasts{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:var(--radius);font-size:12.5px;box-shadow:0 6px 20px #0b162040;display:flex;align-items:center;gap:10px;animation:rise .2s ease;max-width:360px}.toast.ok{border-left:3px solid var(--green)}.toast.err{border-left:3px solid var(--red)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-enter{animation:fade .18s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.spark{display:block;margin-top:6px}.skip-link{position:absolute;left:-999px;top:8px;z-index:200;background:var(--steel);color:#fff;padding:8px 14px;border-radius:var(--radius)}.skip-link:focus{left:8px}.menu-btn{display:none}@media (max-width: 900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;width:var(--sidebar-w);transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:none}.menu-btn{display:inline-flex}.loadbar{left:0}.topbar .search{width:160px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
