:root{--bg:#0e1116;--card:#161b22;--line:#2a313c;--fg:#e6edf3;--muted:#8b949e;--up:#26a269;--up2:#57e389;--dn:#e01b24;--dn2:#ff7b72;--rg:#d4a72c;--warn:#f0883e}
*{box-sizing:border-box}
body{margin:0;padding:10px;background:var(--bg);color:var(--fg);font:14px/1.4 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;max-width:1400px;margin:auto}
a{color:#58a6ff;text-decoration:none}a:hover{text-decoration:underline}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;overflow-x:auto}
h2{font-size:15px;margin:0 0 8px 0}
.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid2>.card{margin-bottom:0}.grid2{margin-bottom:10px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.hdr-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.hdr-right{text-align:right;font-size:13px}
@media(max-width:600px){.hdr-right{text-align:left}}
.kicker{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.bias-label{font-size:32px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.reason{margin-top:6px;font-size:13px}.inval{margin-top:4px;font-size:13px}
.warn{margin-top:8px;padding:6px 8px;border-radius:6px;background:rgba(240,136,62,.15);border:1px solid var(--warn);color:#ffb77c;font-size:13px}
header.bias-strong_up{border-left:8px solid var(--up2)}header.bias-strong_up .bias-label{color:var(--up2)}
header.bias-mild_up{border-left:8px solid var(--up)}header.bias-mild_up .bias-label{color:var(--up)}
header.bias-range{border-left:8px solid var(--rg)}header.bias-range .bias-label{color:var(--rg)}
header.bias-mild_down{border-left:8px solid var(--dn)}header.bias-mild_down .bias-label{color:var(--dn2)}
header.bias-strong_down{border-left:8px solid var(--dn2)}header.bias-strong_down .bias-label{color:#ff4d4d}
header.bias-unknown{border-left:8px solid var(--muted)}header.bias-unknown .bias-label{color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tile{background:#0d1117;border:1px solid var(--line);border-radius:8px;padding:8px}
.tile .t{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tile .v{font-size:19px;font-weight:700;margin-top:2px}.tile .c{font-size:12px}
.tile.stale{opacity:.6;border-style:dashed}
.pos{color:var(--up2)}.neg{color:var(--dn2)}.flat{color:var(--muted)}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{color:var(--muted);font-weight:600}td.l,th.l{text-align:left;white-space:normal}
tr.atm td{background:rgba(88,166,255,.10);font-weight:700}
.score{display:inline-block;min-width:26px;text-align:center;border-radius:4px;padding:0 4px;font-weight:700}
.s2{background:var(--up2);color:#000}.s1{background:var(--up);color:#fff}.s0{background:#30363d}.s-1{background:var(--dn);color:#fff}.s-2{background:var(--dn2);color:#000}
.badge{display:inline-block;padding:0 6px;border-radius:9px;font-size:11px;border:1px solid var(--line)}
.b-ok{border-color:var(--up);color:var(--up2)}.b-stale,.b-partial,.b-old{border-color:var(--warn);color:var(--warn)}
.b-missing,.b-error,.b-auth_error{border-color:var(--dn);color:var(--dn2)}.b-closed,.b-dry_run,.b-pre_market,.b-market_closed{border-color:var(--muted);color:var(--muted)}
.waiting{color:var(--muted);font-style:italic;padding:8px 0}
#chart{height:420px;width:100%}
@media(max-width:600px){#chart{height:300px}.bias-label{font-size:26px}}
.news-item{padding:6px 0;border-bottom:1px solid var(--line)}
.news-item .h{font-weight:600}.news-item .m{font-size:12px;color:var(--muted)}
.imp{display:inline-block;min-width:24px;text-align:center;border-radius:4px;font-size:12px;font-weight:700;margin-right:6px}
.levels{display:flex;flex-wrap:wrap;gap:4px}.lvl{font-size:12px;padding:2px 6px;border-radius:5px;background:#0d1117;border:1px solid var(--line)}
.lvl.support{border-color:var(--up)}.lvl.resistance{border-color:var(--dn)}
footer{padding:10px 0 30px}
/* early warning panel */
.ew-head{padding:8px 10px;border-radius:6px;margin-bottom:8px}
.ew-on{background:rgba(255,170,0,.18);border:1px solid rgba(255,170,0,.6)}
.ew-off{background:rgba(127,127,127,.08);border:1px solid rgba(127,127,127,.25)}
.ew-item{border-left:3px solid #f0a000;padding:4px 8px;margin:6px 0}
.ew-tab{width:100%;border-collapse:collapse;margin:8px 0}
.ew-tab th,.ew-tab td{text-align:left;padding:3px 6px;border-bottom:1px solid rgba(127,127,127,.2);vertical-align:top}
.ew-tab td:last-child{white-space:normal;min-width:320px}
.ew-tab td:first-child{white-space:normal;min-width:140px}
/* closing auction (CAS) + pre-market */
.cas-banner{position:sticky;top:0;z-index:20;margin-bottom:10px;padding:8px 12px;border-radius:8px;background:rgba(88,166,255,.18);border:1px solid #58a6ff;color:#cfe3ff;font-size:14px}
.premarket{border-left:8px solid #58a6ff;font-size:13px}
.b-frozen,.b-frozen_closing_auction{border-color:#58a6ff;color:#9ecbff}
/* Refresh button (refresh.js, 2026-10-30) */
.refresh-wrap{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.refresh-btn{background:#21262d;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:4px 12px;font:inherit;font-size:13px;cursor:pointer}
.refresh-btn:hover:not(:disabled){border-color:var(--muted);background:#30363d}
.refresh-btn:disabled{opacity:.7;cursor:progress}
.refresh-btn .ico{display:inline-block}
.refresh-btn.spinning .ico{animation:mls-spin 1s linear infinite}
@keyframes mls-spin{to{transform:rotate(360deg)}}
.refresh-status{font-size:12px}.warn-txt{color:var(--warn)}
/* FII/DII trend view (fiidii.js, 2026-10-30) */
.tile.clickable{cursor:pointer}.tile.clickable:hover,.tile.clickable:focus{border-color:#58a6ff;outline:none}
.tile-more{color:#58a6ff;white-space:nowrap}
.fd-overlay{position:fixed;inset:0;background:rgba(1,4,9,.72);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:24px 10px;overflow-y:auto}
.fd-overlay.hidden{display:none}
.fd-box{width:100%;max-width:1000px;margin:0}
.fd-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.fd-head h2{margin:0}
.fd-stats{margin:10px 0}
.fd-h3{font-size:13px;color:var(--muted);margin:12px 0 4px;font-weight:600}
.fd-svg{width:100%;height:230px;display:block;background:#0d1117;border:1px solid var(--line);border-radius:8px}
.fd-ax{fill:#8b949e;font-size:11px}.fd-leg{fill:#c9d1d9;font-size:12px}
.fd-tablewrap{margin-top:10px;overflow-x:auto}
.fd-gap td{background:rgba(139,148,158,.08)}
.fd-foot{margin-top:8px;line-height:1.5}
body.fd-noscroll{overflow:hidden}
.fd-head .refresh-wrap{margin-left:auto}
