:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; background:#0c1016; color:#ecf2f8; }
.chart-wrap { min-height:290px; border:1px solid #213043; border-radius:10px; background:#141b25; padding:10px; } .chart-wrap svg { width:100%; height:270px; display:block; } .chart-wrap .axis { stroke:#526275; stroke-width:1; } .chart-wrap .grid { stroke:#263445; stroke-width:1; } .chart-wrap .tick { fill:#9eb0c3; font-size:11px; } .chart-wrap .legend-label { font-size:12px; font-weight:700; } .chart-empty { color:#9eb0c3; padding:18px; }
.research-console { border:1px solid #213043; border-radius:10px; background:#111821; padding:16px; } .research-console.running { border-color:#167c5a; } .research-console.failed { border-color:#9d3c50; } .research-console details { margin-top:14px; color:#9eb0c3; } .research-console summary { cursor:pointer; } #research-log { min-height:150px; max-height:280px; margin:10px 0 0; overflow:auto; padding:12px; border-radius:7px; background:#080c11; color:#b7c6d6; font:12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space:pre-wrap; }
.research-errors { margin:14px 0 0; color:#ff9aac; font-weight:700; } .research-errors.hidden { display:none; }
.timeframe-picker { display:flex; gap:8px; align-items:center; color:#b7c6d6; flex-wrap:wrap; } .timeframe-picker label { display:flex; gap:3px; align-items:center; font-size:.86rem; } .timeframe-picker input { min-width:0; padding:0; } #timeframe-note { color:#f8c15b; }
.refresh-choice { display:flex; align-items:center; gap:5px; color:#b7c6d6; font-size:.86rem; } .refresh-choice input { min-width:0; padding:0; }
* { box-sizing:border-box; } body { margin:0; max-width:1280px; padding:28px; margin-inline:auto; } header,.toolbar,.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; } h1,h2,p { margin:0; } h1 { font-size:1.65rem; } h2 { font-size:1.1rem; } .eyebrow { color:#69e2b2; font-size:.72rem; font-weight:700; letter-spacing:.11em; } .auth { display:flex; gap:8px; } input,select,button { border:1px solid #2b394a; border-radius:8px; background:#141b25; color:inherit; padding:10px 12px; } input { min-width:240px; } button { cursor:pointer; background:#167c5a; border:0; font-weight:700; } button.danger { background:#9d3c50; } button:disabled { cursor:not-allowed; opacity:.45; } main { display:grid; gap:32px; margin-top:28px; } .hidden { display:none; } .toolbar { background:#141b25; padding:12px; border-radius:10px; flex-wrap:wrap; justify-content:flex-start; } .status { flex:1 1 320px; color:#b7c6d6; } .cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; } article { background:#141b25; border:1px solid #213043; border-radius:10px; padding:18px; } article p,small { color:#9eb0c3; } article strong { display:block; margin-top:8px; font-size:1.15rem; } .section-heading { align-items:end; } .table-wrap { overflow:auto; border:1px solid #213043; border-radius:10px; } table { border-collapse:collapse; width:100%; font-size:.88rem; } th,td { padding:11px 12px; text-align:left; border-bottom:1px solid #213043; white-space:nowrap; } th { color:#9eb0c3; font-size:.72rem; text-transform:uppercase; } tbody tr:last-child td { border-bottom:0; } #message { min-height:1.5rem; color:#69e2b2; } #message.error { color:#ff9aac; } @media(max-width:700px) { body{padding:16px} header{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:1fr}.auth,input{width:100%} }
