.wrap.wide{max-width:1600px}
.sc-top{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 10px} .presets{display:flex; gap:6px; flex-wrap:wrap; flex:1}
.presets button{font:inherit; font-size:12px; font-weight:600; padding:5px 11px; border:1px solid var(--line-2); border-radius:999px; background:var(--card); cursor:pointer; color:var(--ink-2)} .presets button:hover{border-color:var(--ink)} .presets button.on{background:var(--ink); color:#fff; border-color:var(--ink)}
.seg{display:inline-flex; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden} .seg button{font:inherit; font-size:12.5px; font-weight:600; color:var(--ink-2); padding:6px 12px; border-right:1px solid var(--line-2); background:var(--card); cursor:pointer} .seg button:last-child{border-right:0} .seg button.on{background:var(--ink); color:#fff}
.sc-filters{background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:10px 12px; margin-bottom:12px}
.conds{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px} .conds .empty{font-size:12.5px; color:var(--ink-3); padding:4px 2px}
.cond{display:inline-flex; gap:4px; align-items:center; padding:4px 6px; border:1px solid var(--line-soft); border-radius:var(--r); background:var(--bg)} .cond select,.cond input{font:inherit; font-size:12.5px; padding:3px 6px; border:1px solid var(--line-2); border-radius:4px; background:var(--card)} .cond input{width:76px} .cond .x{font-size:14px; color:var(--ink-3); background:none; cursor:pointer; padding:0 3px} .cond .x:hover{color:var(--up)}
.fa{display:flex; gap:6px; align-items:center; flex-wrap:wrap; font-size:12.5px} .fa .sp{flex:1} .fa label{display:inline-flex; gap:4px; align-items:center; color:var(--ink-2)} .fa select,.fa input{font:inherit; font-size:12.5px; padding:4px 7px; border:1px solid var(--line-2); border-radius:4px; background:var(--card)}
.tb{font:inherit; font-size:12.5px; font-weight:600; color:var(--ink-2); padding:5px 9px; border:1px solid transparent; border-radius:var(--r); background:none; cursor:pointer} .tb:hover{background:var(--hover); color:var(--ink)}
.sc-bar{display:flex; gap:12px; align-items:center; margin:6px 0 8px; font-size:12.5px; flex-wrap:wrap} .sc-bar .sp{flex:1} .sc-bar label{display:inline-flex; gap:4px; align-items:center} .sc-bar select{font:inherit; font-size:12.5px; padding:3px 6px; border:1px solid var(--line-2); border-radius:4px; background:var(--card)}
.table-scroll{overflow:auto; max-height:calc(100vh - 330px); border-block:1px solid var(--line); background:var(--card)}
#tbl{width:100%; border-collapse:collapse; white-space:nowrap; font-size:13px} #tbl th,#tbl td{padding:7px 10px; text-align:right; border-bottom:1px solid var(--line-soft); font-variant-numeric:tabular-nums} #tbl th{font-size:11.5px; color:var(--ink-3); background:var(--bg-2); position:sticky; top:0; z-index:1; cursor:pointer; user-select:none} #tbl th.on{color:var(--blue)} #tbl th:first-child,#tbl td:first-child{text-align:left; position:sticky; left:0; background:var(--card); z-index:2} #tbl th:first-child{z-index:3}
#tbl td a{color:inherit; font-weight:700; display:inline-flex; align-items:center; gap:7px} #tbl td a small{color:var(--ink-3); font-weight:400} .ci{display:inline-flex; width:20px; height:20px; border-radius:50%; background:var(--blue-soft); color:var(--blue); align-items:center; justify-content:center; font-size:7px; font-weight:800; overflow:hidden; flex:none} .ci img{width:100%; height:100%; object-fit:contain; background:#fff}
.up{color:var(--up)} .down{color:var(--down)} .na{color:var(--ink-4)} .sg{display:inline-block; font-size:10px; font-weight:700; padding:0 5px; border-radius:3px; background:var(--bg-2); color:var(--ink-2); margin-left:3px}
.heat{position:relative; width:100%; height:calc(100vh - 300px); min-height:520px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden}
.heat .tile{position:absolute; overflow:hidden; border:1px solid rgba(255,255,255,.6); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; text-decoration:none; font-weight:800; text-shadow:0 1px 2px rgba(0,0,0,.35); line-height:1.15} .heat .tile:hover{outline:2px solid #fff; z-index:2} .heat .tile b{font-size:13px} .heat .tile small{font-size:11px; font-weight:600} .heat .tile.sm b{font-size:10px} .heat .tile.sm small{display:none} .heat .tile.xs b{display:none}
.heat .grp{position:absolute; border:2px solid var(--card); box-sizing:border-box} .heat .grp .gl{position:absolute; left:4px; top:2px; font-size:11px; font-weight:800; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.5); z-index:1; pointer-events:none}
.legend{display:flex; gap:2px; align-items:center; margin:8px 0; font-size:11.5px; color:var(--ink-3)} .legend i{display:inline-block; width:34px; height:12px}
.note{font-size:12px; color:var(--ink-3); margin:10px 0}
@media (max-width:900px){ .heat{height:60vh} }
