:root{--bg: #0b0f17;--panel: #131a26;--panel-2: #1a2333;--border: #263248;--text: #e6edf6;--muted: #8ea0bd;--accent: #4f8cff;--accent-2: #22c55e;--warn: #f59e0b;--danger: #ef4444;--radius: 12px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,#16233b 0%,var(--bg) 55%);color:var(--text);min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:0 20px 60px}.topbar{display:flex;align-items:center;gap:20px;padding:18px 0;position:sticky;top:0;background:linear-gradient(var(--bg),rgba(11,15,23,.75));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10}.brand{display:flex;align-items:center;gap:12px}.logo{font-size:26px;color:var(--accent);filter:drop-shadow(0 0 10px rgba(79,140,255,.6))}.brand h1{font-size:18px;margin:0;letter-spacing:.3px}.tagline{font-size:12px;color:var(--muted)}.tabs{display:flex;gap:6px;margin-left:auto}.tabs button{background:transparent;color:var(--muted);border:1px solid transparent;padding:8px 16px;border-radius:999px;cursor:pointer;font-size:14px}.tabs button.active{color:var(--text);background:var(--panel-2);border-color:var(--border)}.health{font-size:12px;color:var(--muted);min-width:90px;text-align:right}button{font-family:inherit}input[type=text],.composer input,.dash-form input{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:12px 14px;border-radius:10px;font-size:15px;width:100%}input:focus{outline:none;border-color:var(--accent)}.dash-form,.composer{display:flex;gap:10px;margin-top:10px}.dash-form button,.composer button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:0 22px;font-size:15px;cursor:pointer;white-space:nowrap}.dash-form button:disabled,.composer button:disabled{opacity:.5;cursor:default}.composer button.stop{background:var(--danger)}.samples,.suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.samples button,.suggestions button{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer}.samples button:hover,.suggestions button:hover{color:var(--text);border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:14px 0}.card h3{margin:0 0 8px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.card.warn{border-color:#f59e0b80;background:#f59e0b14}.card.sql pre{margin:10px 0 0;background:#0a0e15;border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;font-size:13px;color:#cfe0ff}.card summary{cursor:pointer;color:var(--text)}.notice{background:#4f8cff1a;border:1px solid rgba(79,140,255,.4);color:#cfe0ff;padding:10px 14px;border-radius:10px;font-size:13px;margin:14px 0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}.kpi{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.kpi-value{font-size:26px;font-weight:700;color:var(--accent-2)}.kpi-label{font-size:12px;color:var(--muted);margin-top:6px}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.chart-card{padding:12px}.chart{width:100%}.chart-error{color:var(--danger);font-size:13px}.table-scroll{overflow:auto;max-height:420px;margin-top:10px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;white-space:nowrap}th{position:sticky;top:0;background:var(--panel-2);color:var(--muted)}.chat{display:flex;flex-direction:column;height:calc(100vh - 130px)}.messages{flex:1;overflow-y:auto;padding:10px 0}.empty{text-align:center;margin-top:12vh;color:var(--muted)}.empty h2{color:var(--text);font-weight:600}.bubble{margin:12px 0;max-width:80%}.bubble.user{margin-left:auto;text-align:right}.bubble .role{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.bubble .content{display:inline-block;margin-top:4px;padding:12px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--border);white-space:pre-wrap;text-align:left;line-height:1.5}.bubble.user .content{background:var(--accent);border-color:var(--accent);color:#fff}.error-banner{background:#ef44441f;border:1px solid rgba(239,68,68,.5);color:#ffd7d7;padding:10px 14px;border-radius:10px;font-size:13px;margin:12px 0}
