:root{color-scheme:dark;--bg:#0b0f14;--panel:#111821;--inset:#0d131a;--border:#263241;--muted:#8293a8;--text:#edf3f9;--green:#45d483;--red:#ff5c5c;--yellow:#f4c542}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI",Arial,sans-serif;font-size:13px}button,select,input{font:inherit}button,select{background:#1b2633;color:var(--text);border:1px solid #405062;border-radius:2px;padding:7px 12px;cursor:pointer}button:hover,select:hover{background:#253447}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:3px}.topbar{min-height:120px;background:#02060b;display:flex;align-items:center;justify-content:space-between;padding:8px 24px;gap:20px}.topbar>img{width:124px;height:104px;object-fit:contain;position:absolute;left:50%;transform:translateX(-50%)}.selection,.connection{display:flex;align-items:center;gap:18px}.selection select{min-width:110px;font-weight:700}.viewer-name{color:var(--muted);text-transform:capitalize}.connection{font-size:12px;font-weight:700}.connection form{margin-left:4px}.connection button{font-size:11px;color:#a8b7c8;background:transparent;border-color:#263241}.dashboard{display:grid;grid-template-columns:minmax(235px,.9fr) minmax(350px,1.6fr) minmax(335px,1.45fr) minmax(280px,1.1fr);grid-template-rows:auto 240px 295px 280px;gap:8px;padding:10px;max-width:2400px;margin:auto}.panel{border:1px solid var(--border);background:var(--panel);padding:14px;min-width:0;overflow:hidden}.panel h2{font-size:12px;color:#8b9aaa;margin:0 0 13px;font-weight:700}.states{grid-column:1/-1;padding:13px}.states>div{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.state{background:var(--inset);text-align:center;padding:17px 3px;color:#778ca4;font-size:12px;font-weight:700;min-height:53px}.state.active{background:#253447}.score{grid-column:1}.breakdown{grid-column:2}.pressure{grid-column:3}.premove{grid-column:4}.market{grid-column:1;grid-row:3/5}.chart{grid-column:2;grid-row:3;padding:0}.footprint{grid-column:3;grid-row:3}.trades{grid-column:4;grid-row:3}.liquidity{grid-column:2;grid-row:4}.guidance{grid-column:3;grid-row:4}.context{grid-column:4;grid-row:4}.inset{background:var(--inset);padding:12px;margin-bottom:6px}.gauge{position:relative;max-width:245px;margin:auto;height:150px}.gauge svg{width:100%;height:100%;overflow:visible}.gauge path{fill:none;stroke-width:12}.gauge-red{stroke:var(--red)}.gauge-yellow{stroke:var(--yellow)}.gauge-green{stroke:var(--green)}.gauge-value{position:absolute;left:0;right:0;top:67px;text-align:center;display:flex;flex-direction:column}.gauge-value strong{font-size:43px;line-height:48px}.gauge-value span{color:var(--muted)}.fine{font-size:10px;color:#718096}.centered{text-align:center}.breakdown-row{display:grid;grid-template-columns:115px 105px 1fr;align-items:center;gap:9px;background:var(--inset);padding:7px 8px;margin-bottom:3px;font-size:11px}.breakdown-row>span:last-child{text-align:right;font-family:Consolas,monospace}.bar-track{height:9px;background:#1b2633}.bar-fill{height:100%;background:var(--green)}.pressure-values{display:flex;justify-content:space-between;gap:8px;font:700 13px Consolas,monospace}.pressure-track{background:var(--red);height:11px;margin-top:14px}.pressure-track>div{height:100%;width:50%;background:var(--green)}h3{font-size:14px;margin:0 0 14px;white-space:pre-line}.metric{font:12px/1.7 Consolas,"Courier New",monospace;white-space:pre-wrap;margin:5px 0;color:#9aa7b5}.market h1{font-size:31px;margin:6px 0}.muted{color:var(--muted);font-size:12px}.last-price{display:block;font:700 23px Consolas,monospace;padding:12px;background:var(--inset);margin:20px 0 6px}.quote{display:flex;justify-content:space-between;gap:8px;font-family:Consolas,monospace;margin-bottom:8px}.quote strong{font-size:15px}.market h2:not(:first-child){margin-top:16px}.market dl{background:var(--inset);margin:0;padding:8px}.session-row{display:flex;justify-content:space-between;gap:10px;padding:7px 2px}.session-row dt{color:var(--muted);font-size:11px}.session-row dd{font:11px Consolas,monospace;margin:0;text-align:right}.access{margin-top:26px;padding:12px;background:#0a1016;display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:10px}.access strong{color:var(--green);font-size:14px;text-transform:capitalize}.access p{margin:0}.chart-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}.chart-heading{height:46px;padding:10px}.chart-heading h2{margin:0;color:white;font-size:12px}.timeframes{display:flex;gap:3px}.timeframes button{font-size:10px;padding:5px;border:0}.timeframes .selected{background:#3a506b;color:#fff}#chart{display:block;width:100%;height:calc(100% - 46px);background:#0a1016}.footprint-header{font:10px Consolas,monospace;color:var(--muted);background:#0a1016;padding:7px 0;margin:0 0 16px;white-space:pre}#footprint_live{font:700 11px/1.55 Consolas,"Courier New",monospace;white-space:pre;margin:0;overflow:auto;max-height:210px}#trades>pre{font:11px/1.8 Consolas,monospace;white-space:pre;margin:0}.liquidity-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:170px}.liquidity h3{font-size:11px;white-space:nowrap}.liquidity pre{font:11px/1.5 Consolas,monospace;white-space:pre-wrap;margin:0 0 12px}.buy,#long_pressure,#ask_label{color:var(--green)}.sell,#short_pressure,#bid_label{color:var(--red)}#health{font:11px Consolas,monospace;align-self:flex-start}.guidance h3{text-align:center;font-size:13px}.guidance .inset{padding:10px}.guidance .metric{font-size:11px}.guidance .fine{font-size:9px}footer{display:flex;justify-content:space-between;padding:10px 20px 20px;color:var(--muted);font-size:11px}#notice{display:none;background:#332312;color:#ffd492;text-align:center;padding:10px;border-bottom:1px solid #5b411e}.unavailable #notice{display:block}.unavailable .dashboard{opacity:.6}.unavailable .guidance{filter:grayscale(1)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 35%,#13212b,#080e14 60%)}.login-card{width:min(420px,90vw);background:var(--panel);border:1px solid var(--border);padding:30px 38px;border-radius:4px;box-shadow:0 24px 80px #0005}.login-logo{display:block;width:150px;height:125px;object-fit:contain;margin:auto}.login-card h1{font-size:24px;margin:20px 0 9px}.login-card>p{color:var(--muted);font-size:13px;line-height:1.5}.login-card label{display:block;font-size:12px;margin:19px 0 8px}.login-card input{display:block;width:100%;padding:12px;background:#090f15;border:1px solid #344459;color:white;border-radius:3px}.login-card .primary{background:#167a4a;border-color:#278c59;display:block;width:100%;margin:24px 0 18px;padding:12px;font-weight:bold}.login-card .error{color:#ffaaa4;background:#3a191e;padding:10px}.login-card .fine{font-size:9px;text-align:center;margin-top:25px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1800px){.dashboard{grid-template-rows:auto 250px 310px 295px}.breakdown-row{grid-template-columns:130px 105px 1fr}.metric{font-size:13px}#footprint_live{font-size:12px}}@media(max-width:1250px){.dashboard{grid-template-columns:minmax(220px,1fr) minmax(310px,1.6fr);grid-template-rows:auto}.states{grid-column:1/-1}.states>div{grid-template-columns:repeat(4,1fr)}.score,.breakdown,.pressure,.premove,.market,.chart,.footprint,.trades,.liquidity,.guidance,.context{grid-column:auto;grid-row:auto;min-height:220px}.chart{height:300px}.market{grid-row:4/6}.topbar>img{position:static;transform:none;width:95px}.connection{gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:280px;font-size:10px}}@media(max-width:640px){.topbar{padding:10px;gap:8px;min-height:90px}.topbar>img{width:70px;height:70px}.selection{flex-direction:column;gap:6px;align-items:flex-start}.connection{flex-direction:column;align-items:flex-end;gap:5px}.dashboard{display:flex;flex-direction:column}.states>div{grid-template-columns:repeat(2,1fr)}.panel{min-height:unset}.score{min-height:225px}.chart{height:300px}.liquidity-columns{min-height:unset}.viewer-name{font-size:11px}.breakdown-row{grid-template-columns:115px 105px 1fr}footer{gap:20px;font-size:10px}}
