:root{--bg:#0f1117;--panel:#171a23;--panel2:#1f2330;--border:#2a2f3d;--text:#e6e8ee;--muted:#9aa3b2;--accent:#4f8cff;--green:#2ecc71;--yellow:#f1c40f;--red:#e74c3c;--sidebar-w:220px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.content{margin-left:var(--sidebar-w);flex:1 1;min-height:100vh}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--panel);border-right:1px solid var(--border);position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;overflow-y:auto}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:20px 18px 16px;font-weight:700;font-size:14px;border-bottom:1px solid var(--border)}.sidebar-links{list-style:none;margin:12px 0 0;padding:0 10px;display:flex;flex-direction:column;gap:2px}.sidebar-links a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--muted);font-weight:500;transition:background .15s,color .15s;text-decoration:none}.sidebar-links a:hover{background:var(--panel2);color:var(--text);text-decoration:none}.sidebar-links a.active{background:rgba(79,140,255,.12);color:var(--accent)}main{padding:24px;max-width:1100px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.card-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.stat-card{text-align:left;padding:18px 20px}.grid-4{grid-template-columns:repeat(4,1fr);grid-gap:12px}.grid-2,.grid-4{display:grid;gap:12px}.grid-2{grid-template-columns:1fr 1fr;grid-gap:12px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}tr:last-child td{border-bottom:none}tr:hover td{background:var(--panel2)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge.ok{background:rgba(46,204,113,.15);color:var(--green)}.badge.no{background:rgba(231,76,60,.15);color:var(--red)}.badge.stage{background:rgba(79,140,255,.15);color:var(--accent)}.badge.pending{background:rgba(241,196,15,.15);color:var(--yellow)}button,input,select{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 12px}button{cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.btn-outline{display:inline-block;font-size:13px;color:var(--accent);border:1px solid rgba(79,140,255,.3);border-radius:6px;padding:5px 12px;cursor:pointer;text-decoration:none!important;transition:background .15s}.btn-outline:hover{background:rgba(79,140,255,.08)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.funnel{display:flex;gap:12px;flex-wrap:wrap}.funnel .pill{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 14px}.funnel .pill b{font-size:18px;display:block}.funnel .pill span{color:var(--muted);font-size:12px}pre.raw{background:#0b0d12;border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;max-height:360px;font-size:12px;line-height:1.5}.kv{display:grid;grid-template-columns:160px 1fr;grid-gap:6px 12px;gap:6px 12px}.kv .k{color:var(--muted)}