*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg-subtle:#f7f7f7;--border:#e5e5e5;--border-strong:#d0d0d0;--text:#111;--text-muted:#666;--text-dim:#999;--mono:"SF Mono", "Fira Code", "Cascadia Code", "Courier New", monospace;--green:#15803d;--red:#b91c1c}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.5}.header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:20px;display:flex}.logo{letter-spacing:-.3px;color:var(--text);font-size:14px;font-weight:600;text-decoration:none}.nav-link{color:var(--text-muted);border-bottom:1px solid #0000;padding:4px 0;font-size:13px;text-decoration:none;transition:color .15s,border-color .15s}.nav-link:hover,.nav-link.active{color:var(--text);border-bottom-color:var(--text)}.status-indicator{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.dot{background:#888;border-radius:50%;width:7px;height:7px;transition:background .3s}.dot.live{background:#22c55e;animation:2.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.filters,.controls{border-bottom:1px solid var(--border);background:var(--bg-subtle);flex-wrap:wrap;align-items:flex-end;gap:8px;padding:12px 24px;display:flex}.filter-group,.ctrl-group{flex-direction:column;gap:3px;display:flex}.filter-label,.ctrl-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);font-size:10px;font-weight:600}.filter-group input[type=number],.filter-group select,.ctrl-group select,.ctrl-group input{border:1px solid var(--border-strong);background:var(--bg);height:30px;color:var(--text);border-radius:4px;outline:none;min-width:120px;padding:0 8px;font-family:inherit;font-size:12px;transition:border-color .15s}.filter-group input[type=number]:focus,.filter-group select:focus,.ctrl-group select:focus,.ctrl-group input:focus{border-color:#555}.filter-group input[type=number],.ctrl-group input{font-family:var(--mono)}.ctrl-group input{min-width:100px}.ctrl-group select{min-width:130px}.checkbox-row{align-items:center;gap:6px;height:30px;display:flex}.checkbox-row input[type=checkbox]{cursor:pointer;width:14px;height:14px;accent-color:var(--text)}.checkbox-row label{color:var(--text-muted);cursor:pointer;white-space:nowrap;font-size:12px}.load-btn{background:var(--text);height:30px;color:var(--bg);cursor:pointer;border:none;border-radius:4px;align-self:flex-end;align-items:center;gap:6px;padding:0 16px;font-family:inherit;font-size:12px;font-weight:600;transition:opacity .15s;display:flex}.load-btn:hover{opacity:.8}.csv-btn{background:var(--bg);height:30px;color:var(--text);border:1px solid var(--border-strong);cursor:pointer;border-radius:4px;justify-content:center;align-self:flex-end;align-items:center;padding:0 10px;font-family:inherit;transition:border-color .15s;display:flex}.csv-btn:hover{border-color:var(--text)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}thead{border-bottom:1px solid var(--border);background:var(--bg-subtle)}th{text-align:left;letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;padding:8px 16px;font-size:10px;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:10px 16px}tr:hover td{background:var(--bg-subtle)}.sym-link{letter-spacing:-.2px;color:var(--text);border-bottom:1px solid #0000;font-size:13px;font-weight:600;text-decoration:none;transition:border-color .15s}.sym-link:hover{border-bottom-color:var(--text)}.exch{color:var(--text-muted);background:var(--border);letter-spacing:.2px;border-radius:3px;padding:2px 7px;font-size:11px;font-weight:500}.mono{font-family:var(--mono);font-size:12px}.spread-pos{color:var(--green);font-weight:600}.spread-neg{color:var(--red);font-weight:600}.funding-pos{color:var(--green)}.funding-neg{color:var(--red)}.time-pill{font-size:11px;font-family:var(--mono);color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:3px;padding:2px 7px}.time-pill.soon{color:var(--red);background:#fff5f5;border-color:#fca5a5}.time-pill.synced{color:var(--green);background:#f0fdf4;border-color:#86efac}.link-btn{width:22px;height:22px;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:3px;justify-content:center;align-items:center;font-size:10px;font-weight:700;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.link-btn:hover{color:var(--text);border-color:var(--text);background:var(--bg-subtle)}.footer-bar{border-top:1px solid var(--border);background:var(--bg-subtle);align-items:center;gap:24px;padding:10px 24px;display:flex}.stat{align-items:baseline;gap:6px;display:flex}.stat-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);font-size:10px;font-weight:600}.stat-value{font-size:18px;font-weight:700;font-family:var(--mono);color:var(--text)}.stat-value.sm{font-family:inherit;font-size:13px;font-weight:500}.empty{text-align:center;color:var(--text-dim);padding:64px 24px;font-size:13px}.content{max-width:1200px;padding:24px}.stats-row{border:1px solid var(--border);border-radius:6px;gap:0;margin-bottom:24px;display:flex;overflow:hidden}.stat-cell{border-right:1px solid var(--border);flex:1;padding:14px 20px}.stat-cell:last-child{border-right:none}.stat-cell .stat-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;font-size:10px;font-weight:600}.stat-cell .stat-value{font-size:20px;font-weight:700;font-family:var(--mono);color:var(--text)}.stat-cell .stat-value.pos{color:var(--green)}.stat-cell .stat-value.neg{color:var(--red)}.stat-cell .stat-sub{color:var(--text-dim);margin-top:3px;font-size:10px}.chart-section{margin-bottom:24px}.chart-title{letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px;font-size:11px;font-weight:600}.chart-wrap{border:1px solid var(--border);background:var(--bg);border-radius:6px;height:280px;padding:20px;position:relative}.state-box{text-align:center;color:var(--text-dim);padding:48px 24px;font-size:13px}.error-box{color:var(--red);background:#fff5f5;border:1px solid #fca5a5;border-radius:6px;margin-bottom:16px;padding:12px 16px;font-size:12px}
