:root{--bg:#0b0d10;--panel:#0f1318;--text:#e6edf3;--muted:#9da7b3;--accent:#58a6ff;--grid:rgba(88,166,255,0.08);--danger:#ff6b6b;--ok:#3fb950;--ring:#7dc4ff}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:radial-gradient(1200px 800px at 10% 10%,var(--grid) 0,transparent 60%),radial-gradient(1000px 700px at 85% 25%,var(--grid) 0,transparent 60%),var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif;line-height:1.6}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #1f2328;background:rgba(15,19,24,.75);backdrop-filter:saturate(120%) blur(6px);position:sticky;top:0}
.brand{display:flex;gap:10px;align-items:center}
.logo{width:24px;height:24px;filter:grayscale(100%) brightness(1.2)}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;border:1px solid #2d333b;padding:8px 12px;border-radius:999px;opacity:.9}
.btn-ghost:hover{transform:translateY(-2px)}
.btn-ghost:active{transform:translateY(0)}
.btn-ghost .yt{opacity:.9}

.center{display:flex;align-items:center;justify-content:center;min-height:75vh;padding:24px}
.card{width:100%;max-width:960px;min-height:70vh;background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent),var(--panel);border:1px solid #1f2328;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.02);padding:20px}
.card-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin-bottom:14px}
.glyph{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:#121922;border:1px solid #223040;color:#9cc5ff;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;padding:6px}
.glyph img{width:100%;height:100%;display:block}
.card-head h1{margin:4px 0 0 0;font-size:26px}
.byline{margin:0;font-size:14px;color:var(--muted)}
.byline a{color:var(--text)}
.kicker{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;color:#a6b3c4;letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
.lede{max-width:60ch;margin:6px auto 12px;color:#c9d1d9}
.pills-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:6px auto 12px;max-width:760px}
.pill{display:inline-flex;align-items:center;gap:8px;background:#131a22;color:var(--text);border:1px solid #2d333b;border-radius:999px;padding:10px 12px;cursor:pointer;white-space:nowrap;letter-spacing:.05em;text-transform:uppercase}
.pill .pill-ic{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#0e141b;border:1px solid #303a46;font-size:12px}
.pill:hover{transform:translateY(-2px)}
.pill:active{transform:translateY(0)}
.pill:focus{outline:2px solid var(--ring);outline-offset:2px}
.pill.active{box-shadow:0 0 0 2px var(--ring) inset}

.chat-panel{display:flex;flex-direction:column;background:rgba(14,18,23,.65);border:1px solid #1f2328;border-radius:16px;padding:12px}
.messages{flex:1;overflow:auto;padding:10px;background:#0d1117;border:1px solid #1f2328;border-radius:10px}
.message{margin:8px 0;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start}
.message-content-wrapper{display:flex;flex-direction:column;gap:12px;min-width:0}
.role-badge{background:#1b2330;border:1px solid #2d333b;border-radius:6px;padding:2px 6px;font-size:12px;color:var(--muted)}
.message-text{white-space:pre-wrap}
.assistant{color:#c9d1d9}
.user{color:#a2d2ff}
.muted{color:var(--muted)}
.composer{margin-top:10px}
textarea{width:100%;background:#0d1117;color:var(--text);border:1px solid #2d333b;border-radius:10px;padding:10px;resize:vertical}
.actions{display:flex;align-items:center;gap:10px;margin-top:10px;justify-content:flex-end}
button{background:var(--accent);color:#0b0d10;border:none;border-radius:999px;padding:10px 14px;cursor:pointer;box-shadow:0 6px 14px rgba(88,166,255,.18)}
button:hover{transform:translateY(-2px)}
button:active{transform:translateY(0)}
button[disabled]{opacity:.5;cursor:not-allowed}
button.secondary{background:#2d333b;color:var(--text);box-shadow:none}
button.stop{background:#ff6b6b;color:#fff;box-shadow:0 6px 14px rgba(255,107,107,.18)}
.uses{background:#1b2330;border:1px solid #2d333b;border-radius:999px;padding:6px 10px;color:var(--text)}
.pill-ic{display:none}
.viz{margin-top:16px;width:100%;border-radius:8px;overflow:hidden}
.viz .viz-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:16px 16px 0;background:#0d1117}
.viz .viz-header strong{color:#58a6ff;font-size:1.1em}
.table-wrap{overflow-x:auto;width:100%;background:#0d1117;border:1px solid #1f2328;border-radius:8px;position:relative}
table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}
table.responsive{table-layout:fixed}
.vega-chart-wrapper{width:100%!important;max-width:100%!important;overflow:hidden}
thead th{position:sticky;top:0;background:#11151a;border-bottom:1px solid #2d333b}
th,td{padding:6px 8px;border-bottom:1px solid #1f2328;border-right:1px solid #1f2328;white-space:nowrap}
th:first-child,td:first-child{border-left:1px solid #1f2328}
.copy-btn,.dl-btn{background:#1b2330;color:var(--text);border:1px solid #2d333b;border-radius:6px;padding:4px 8px}
.footer{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:24px auto;padding:12px 16px;color:var(--muted)}
.footer a{color:var(--muted);margin-right:12px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
@media (max-width: 700px){.pills-row{grid-template-columns:1fr}.card{padding:16px}}
/* Responsive table sizing - adapts to container like charts */
table.auto-fit{min-width:100%;max-width:100%}
table.auto-fit th,table.auto-fit td{word-wrap:break-word;max-width:200px;overflow:hidden;text-overflow:ellipsis}
table.wide-data{min-width:800px}
table.narrow-data{min-width:100%}

@media (max-width: 768px){
  table{font-size:0.9em}
  table.auto-fit th,table.auto-fit td{max-width:120px;padding:4px 6px}
  .viz{margin-left:-8px;margin-right:-8px}
  .actions{gap:8px}
  button{padding:8px 12px;font-size:0.9em}
}
@media (max-width: 480px){
  table{font-size:0.85em}
  table.auto-fit th,table.auto-fit td{max-width:80px;padding:3px 5px;font-size:0.8em}
  .message{grid-template-columns:60px 1fr;gap:6px}
  .role-badge{font-size:10px}
}
.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}


