:root{--bg:#0b0f17;--panel:#131a26;--panel-2:#1a2333;--border:#243043;--text:#e6edf6;--muted:#8a97ab;--accent:#4f8cff;--green:#2ec38b;--amber:#f6b23a;--red:#f2555a;--purple:#a06bff;--radius:14px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}.container{max-width:1400px;margin:0 auto;padding:24px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.topbar h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:650}.topbar .sub{color:var(--muted);margin-top:2px;font-size:12px}.badge{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge.live{color:var(--green);border-color:#2ec38b66}.badge.mock{color:var(--amber);border-color:#f6b23a66}.badge.mixed{color:var(--accent);border-color:#4f8cff66}.grid{gap:16px;display:grid}.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-3,.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.grid{grid-template-columns:1fr!important}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 4px;font-size:13px;font-weight:600}.card .big{letter-spacing:-.02em;font-size:30px;font-weight:700}.section-title{margin:28px 0 12px;font-size:15px;font-weight:650}.kpi{flex-direction:column;gap:2px;display:flex}.kpi .label{color:var(--muted);font-size:11px}.kpi .value{font-size:17px;font-weight:650}.delta{font-size:12px;font-weight:600}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.delta.flat{color:var(--muted)}.health-wrap{align-items:center;gap:20px;display:flex}.ring{flex-shrink:0;width:120px;height:120px;position:relative}.ring svg{transform:rotate(-90deg)}.ring .score{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring .score .n{font-size:30px;font-weight:750}.ring .score .d{color:var(--muted);font-size:11px}.status-pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:650;display:inline-block}.status-healthy{color:var(--green);background:#2ec38b26}.status-watch{color:var(--accent);background:#4f8cff26}.status-degraded{color:var(--amber);background:#f6b23a26}.status-critical{color:var(--red);background:#f2555a26}.bar{background:var(--panel-2);border-radius:4px;height:6px;overflow:hidden}.bar>span{border-radius:4px;height:100%;display:block}.alert-row{border-bottom:1px solid var(--border);gap:12px;padding:10px 0;display:flex}.alert-row:last-child{border-bottom:none}.sev-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.sev-critical{background:var(--red)}.sev-high{background:var(--amber)}.sev-medium{background:var(--accent)}.sev-low{background:var(--muted)}.alert-row .t{font-weight:620}.alert-row .m{color:var(--muted);font-size:12.5px}.alert-row .cat{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-left:auto;font-size:10px}.ai-card{background:linear-gradient(135deg,#a06bff1f,#4f8cff14);border-color:#a06bff59}.ai-card .headline{letter-spacing:-.01em;margin:6px 0 8px;font-size:18px;font-weight:680}.ai-card .body{color:#cdd7e6}.ai-drivers{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.ai-drivers li{color:#cdd7e6;padding-left:18px;font-size:13px;position:relative}.ai-drivers li:before{content:"▸";color:var(--purple);position:absolute;left:0}.chip{color:var(--purple);background:#a06bff33;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.row{align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.tag{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:2px 7px;font-size:10px}.tag.active{color:var(--green)}.tag.paused{color:var(--muted)}.tag.limited{color:var(--amber)}table.mini{border-collapse:collapse;width:100%;font-size:12.5px}table.mini td{border-bottom:1px solid var(--border);padding:5px 0}table.mini tr:last-child td{border-bottom:none}table.mini td:last-child{text-align:right;color:var(--muted)}.rec-row{border-bottom:1px solid var(--border);padding:10px 0}.rec-row:last-child{border-bottom:none}.rec-row .k{font-weight:620}.rec-row .why{color:var(--muted);margin-top:2px;font-size:12.5px}.rec-kind{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;margin-right:8px;padding:2px 7px;font-size:10px}.rec-increase{color:var(--green);background:#2ec38b26}.rec-reduce{color:var(--red);background:#f2555a26}.rec-other{color:var(--accent);background:#4f8cff26}.assistant{flex-direction:column;display:flex}.chat{flex-direction:column;gap:10px;min-height:120px;max-height:340px;margin-top:12px;padding-right:4px;display:flex;overflow-y:auto}.chat-empty{padding:8px 0}.suggest-wrap{flex-wrap:wrap;gap:8px;display:flex}.suggest{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 12px;font-size:12.5px;transition:border-color .15s}.suggest:hover{border-color:var(--purple);color:#fff}.bubble{white-space:pre-wrap;border-radius:12px;max-width:88%;padding:10px 13px;font-size:13.5px;line-height:1.55}.bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{background:var(--panel-2);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.src-tag{color:var(--muted);margin-top:6px;font-size:10px;font-style:italic;display:block}.dots span{font-size:20px;line-height:0;animation:1.2s infinite blink}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}.chat-input{gap:8px;margin-top:12px;display:flex}.chat-input input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;flex:1;padding:10px 12px;font-size:13.5px}.chat-input input:focus{border-color:var(--purple)}.chat-input button{background:var(--purple);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:0 18px;font-size:13.5px;font-weight:600}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:100%;max-width:360px;padding:32px;display:flex}.login-brand{letter-spacing:-.01em;font-size:18px;font-weight:680}.login-card input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;margin-bottom:12px;padding:12px 14px;font-size:14px}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:650}.login-card button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:var(--red);margin-bottom:12px;font-size:12.5px}.logout-link{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px}.logout-link:hover{color:var(--text);border-color:var(--muted)}.tab-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:600}.tab-btn:hover:not(:disabled){border-color:var(--accent)}.tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tab-btn:disabled{opacity:.5;cursor:not-allowed}.report-pre{white-space:pre-wrap;word-break:break-word;color:#d7e0ee;max-height:70vh;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.65;overflow:auto}.nav-link{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px}.nav-link:hover{color:var(--text);border-color:var(--muted)}.footer{color:var(--muted);text-align:center;margin-top:32px;padding-bottom:24px;font-size:12px}
