:root{--bg:#08080d;--card:#101018;--card2:#141420;--line:#242433;--text:#f4f2ff;--muted:#858398;--purple:#8b5cf6;--purple2:#b08cff;--green:#43d39e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% -20%,#231441 0,transparent 35%),var(--bg);color:var(--text);font:14px Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}aside{border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;background:#09090fdd}.brand{display:flex;gap:12px;align-items:center;margin-bottom:42px}.brand b{letter-spacing:.08em}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.22em;margin-top:4px}.logo{width:38px;height:38px;border:1px solid #6843c5;border-radius:10px;display:grid;place-items:center;font-weight:800;background:linear-gradient(145deg,#1d1234,#0c0b12);box-shadow:0 0 28px #7c3aed33}nav{display:grid;gap:8px}nav button{border:0;background:transparent;color:#8f8da0;text-align:left;padding:12px;border-radius:8px}nav button.active{background:#171322;color:#c8b7ff;border:1px solid #2b2141}.foot{margin-top:auto;color:var(--muted);display:grid;grid-template-columns:12px 1fr;align-items:center;gap:5px}.foot small{grid-column:2;font-size:10px}.foot #dot{width:7px;height:7px;border-radius:50%;background:#555}.foot #dot.ok{background:var(--green);box-shadow:0 0 10px #43d39e}main{padding:38px 44px;max-width:1500px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1{font-size:30px;margin:3px 0}h2{font-size:17px;margin:3px 0 0}.eyebrow{font-size:10px;letter-spacing:.2em;color:#776a9d;margin:0}.actions{display:flex;gap:10px}.actions button,.upload{background:#15121e;color:#ddd4ff;border:1px solid #302642;padding:10px 14px;border-radius:8px;cursor:pointer}.actions button{background:#7c3aed;color:white}.upload input{display:none}.hero{min-height:190px;border:1px solid var(--line);border-radius:14px;padding:30px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#11101a,#0c0b11 60%,#171024);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:#7c3aed18;right:-70px;top:-150px}.tag{font-size:10px;color:#a98eea;border:1px solid #352650;padding:6px 8px;border-radius:5px}.price{font-size:48px;font-weight:700;letter-spacing:-.04em;margin-top:18px}.muted{color:var(--muted);font-size:12px}.reg{width:300px;z-index:1}.reg span{font-size:10px;color:var(--muted);letter-spacing:.15em}.reg strong{display:block;font-size:24px;margin:10px 0;text-transform:uppercase}.bar{height:5px;background:#292634;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7047d7,#b58cff);transition:.5s}.reg small{color:var(--muted);display:block;margin-top:9px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.metrics article,.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.metrics span{font-size:10px;letter-spacing:.13em;color:var(--muted)}.metrics b{font-size:23px;display:block;margin:10px 0 3px}.metrics small{color:#646275}.panel{margin-top:12px}.panelhead{display:flex;justify-content:space-between;align-items:end;margin-bottom:15px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:9px;letter-spacing:.13em;color:#686578;font-weight:600;padding:12px}td{padding:15px 12px;border-top:1px solid #1f1e29}td:first-child{font-weight:600}.pill{padding:5px 8px;border-radius:6px;background:#20172f;color:#c3a9ff;font-size:11px}.score{font-weight:700;color:#c3a9ff}.empty{text-align:center;color:var(--muted);padding:35px}.lower{display:grid;grid-template-columns:1fr 1fr;gap:12px}.prob{margin-top:16px}.probline{display:flex;justify-content:space-between;text-transform:capitalize;margin-bottom:6px}.probbar{height:5px;background:#242330;border-radius:8px;overflow:hidden}.probbar i{height:100%;display:block;background:#8b5cf6}.readout{line-height:1.7;color:#b7b3c5}.notice{border-left:2px solid #6d4bb5;background:#15111e;color:#777286;padding:10px 12px;margin-top:20px;font-size:11px}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{display:none}main{padding:20px}.metrics,.lower{grid-template-columns:1fr 1fr}.hero{gap:30px}.reg{width:45%}}.auction article b{font-size:15px;letter-spacing:-.02em}.auction #va,.auction #ib{font-variant-numeric:tabular-nums}
.feedmon{--st:#555;margin-bottom:12px;border:1px solid var(--line);border-left:2px solid var(--st);border-radius:12px;background:#0d0d14;padding:16px 18px;display:grid;grid-template-columns:240px 1fr;gap:10px 24px;align-items:start}.feedmon[data-state=CONNECTED]{--st:var(--green)}.feedmon[data-state=STALE]{--st:#d3a343}.feedmon[data-state=DISCONNECTED]{--st:#d35a5a}.feedtitle{display:flex;align-items:flex-start;gap:11px}.feedtitle span:not(.feed-dot),.feedgrid span{font-size:9px;letter-spacing:.14em;color:var(--muted);display:block}.feedtitle b{font-size:13px;display:block;margin-top:5px;color:var(--st);letter-spacing:.04em}.feedtitle small{display:block;margin-top:5px;color:#77748a;font-size:11px;line-height:1.4}.feed-dot{flex:none;margin-top:3px;width:9px;height:9px;border-radius:50%;background:var(--st);box-shadow:0 0 0 4px #5552}.feedmon[data-state=CONNECTED] .feed-dot{box-shadow:0 0 10px #43d39e88}.feedgrid{display:grid;grid-template-columns:repeat(8,minmax(78px,1fr));gap:12px 14px}.feedgrid>div{border-left:1px solid #20202b;padding-left:10px;min-width:0}.feedgrid b{font-size:12px;display:block;margin-top:5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedmon.dim .feedgrid b{color:#77748a}.feedqual{grid-column:1/-1;border-top:1px solid #1b1b25;padding-top:9px;font-size:10px;color:#6c6980;font-variant-numeric:tabular-nums;letter-spacing:.02em}.feedqual em{color:#d3a343;font-style:normal}@media(max-width:1200px){.feedmon{grid-template-columns:1fr}.feedgrid{grid-template-columns:repeat(4,1fr)}}
.foot #dot.warn{background:#d3a343}.actions button.ghost{background:#15121e;color:#ddd4ff}.tag[data-mode=DEMO],.tag[data-mode=HISTORICAL]{color:#d3a343;border-color:#4a3a1e}.stalebanner{border:1px solid #4a3a1e;background:#16120b;color:#d9b46a;border-radius:10px;padding:10px 14px;font-size:12px;letter-spacing:.02em;margin-bottom:12px}.analysis.is-stale .hero,.analysis.is-stale .metrics,.analysis.is-stale .panel{opacity:.45;filter:grayscale(.6)}.notice div+div{margin-top:4px}
main{min-width:0}nav button{cursor:pointer}nav button:hover:not(.active){color:#c8c4d8}[hidden]{display:none!important}
.oftabs{display:flex;gap:4px;background:#0d0d14;border:1px solid var(--line);border-radius:9px;padding:3px}.oftabs button{border:0;background:transparent;color:#8f8da0;padding:8px 14px;border-radius:6px;cursor:pointer;font:inherit;font-size:12px}.oftabs button.active{background:#1c1530;color:#d8c9ff}
.ofbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;font-size:11px;color:var(--muted)}.ofstate{--st:#555;font-size:11px;letter-spacing:.08em;font-weight:600;color:var(--st);border:1px solid #26262f;border-left:2px solid var(--st);border-radius:6px;padding:6px 10px;background:#0d0d14}.ofstate[data-state=CONNECTED]{--st:var(--green)}.ofstate[data-state=STALE]{--st:#d3a343}.ofstate[data-state=DISCONNECTED]{--st:#d35a5a}.ofsym{color:var(--text);font-weight:600;letter-spacing:.04em}.ofctl{display:flex;flex-wrap:wrap;gap:12px}.ofctl label{display:flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.14em}.ofctl select{background:#12111a;color:#ddd4ff;border:1px solid #2a2438;border-radius:6px;padding:5px 6px;font:inherit;font-size:11px;letter-spacing:0}.ofnote{margin-left:auto;font-size:10px;color:#5f5c72}
.ofpanel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px}.fpwrap{overflow:auto;max-height:calc(100vh - 260px);min-height:300px;border-radius:8px;background:#0b0b11}.fpwrap canvas,.hmwrap canvas,.fpfoot canvas{display:block}.fpfoot{overflow:hidden;background:#0b0b11;border-top:1px solid #1f1e29;border-radius:0 0 8px 8px}.oflegend{font-size:10.5px;color:#6c6980;padding:10px 4px 2px;line-height:1.6}.oflegend b{color:#b7b3c5;font-weight:600}.oflegend code{font-size:10px;color:#a98eea}.lg{display:inline-block;width:8px;height:8px;border-radius:2px;vertical-align:middle;margin:0 2px}.lg.buy{background:var(--green)}.lg.sell{background:#e0607a}
.hmgrid{display:grid;grid-template-columns:1fr 330px;gap:10px}.hmwrap{min-width:0;border-radius:8px;overflow:hidden;background:#0b0b11}.domwrap{background:#0b0b11;border-radius:8px;padding:6px;overflow:auto;max-height:calc(100vh - 250px)}.domempty{color:var(--muted);font-size:12px;padding:20px;line-height:1.6}
table.dom{font:11px ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}table.dom th{padding:6px 4px;font-size:8.5px}table.dom td{padding:0 4px;height:17px;border-top:1px solid #15151d;position:relative;font-weight:400}table.dom td:first-child{font-weight:400}table.dom td i{position:absolute;top:2px;bottom:2px;border-radius:2px;opacity:.35}table.dom td span{position:relative}table.dom .bidc{text-align:right;width:28%;color:#e3a2b0}table.dom .bidc i{right:0;background:#e0607a}table.dom .askc{width:28%;color:#9fe3c8}table.dom .askc i{left:0;background:var(--green)}table.dom .px{text-align:center;color:#8f8ca3;width:22%}table.dom .trd{color:#a49fbb;font-size:10px}table.dom .trd i{left:0;background:#8b5cf6}table.dom tr.last .px{color:#fff;background:#24193a}.domfoot{font-size:10px;color:#5f5c72;padding:6px 4px}
@media(max-width:1100px){.hmgrid{grid-template-columns:1fr}.ofnote{margin-left:0}}
#feedSrc{font-style:normal}.srcpanel{margin:-4px 0 12px;border:1px solid var(--line);border-radius:12px;background:#0d0d14;padding:0 18px}.srcpanel summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 0;font-size:11px;color:var(--muted)}.srcpanel summary::-webkit-details-marker{display:none}.srcpanel summary>span:first-child{font-size:9px;letter-spacing:.14em}.srcpanel summary b{color:#cfcbe0;font-weight:500}.srcpanel summary em{font-style:normal;color:#444}
.srcstate{--st:#555;margin-left:auto;font-size:10px;letter-spacing:.08em;font-weight:600;color:var(--st);border-left:2px solid var(--st);padding:3px 8px;background:#12111a;border-radius:4px}.srcstate[data-state=CONNECTED]{--st:var(--green)}.srcstate[data-state=CONNECTING],.srcstate[data-state=RECONNECTING]{--st:#d3a343}.srcstate[data-state=ERROR]{--st:#d35a5a}
.srcpanel form{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;padding:4px 0 10px;border-top:1px solid #1b1b25;padding-top:12px}.srcpanel label{display:flex;flex-direction:column;gap:5px;font-size:9px;letter-spacing:.14em;color:var(--muted)}.srcpanel input:not([type=checkbox]){background:#12111a;color:#e6e2f5;border:1px solid #2a2438;border-radius:6px;padding:7px 9px;font:inherit;font-size:12px;letter-spacing:0;min-width:0}.srcpanel label.chk{flex-direction:row;align-items:center;letter-spacing:.04em;font-size:11px}.srcbtns{display:flex;gap:8px;margin-left:auto}.srcbtns button{background:#7c3aed;color:#fff;border:1px solid #7c3aed;padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit;font-size:12px}.srcbtns button.ghost{background:#15121e;color:#ddd4ff;border-color:#302642}.srcbtns button:disabled{opacity:.4;cursor:default}.srcnote{font-size:10.5px;color:#6c6980;padding:0 0 12px;line-height:1.5}.srcnote.err{color:#e58a9b}
.prgrid{display:grid;grid-template-columns:1fr 360px;gap:10px}.prwrap{min-width:0;overflow:auto;max-height:calc(100vh - 250px);min-height:320px;border-radius:8px;background:#0b0b11}.prwrap canvas{display:block}.prside{background:#0b0b11;border-radius:8px;padding:12px 14px;overflow:auto;max-height:calc(100vh - 250px);font-size:11.5px}
.prside h3{font-size:9px;letter-spacing:.16em;color:#776a9d;font-weight:600;margin:14px 0 6px}.prside h3:first-child{margin-top:2px}table.lv td,table.lv th{padding:4px 6px;border-top:1px solid #17171f;font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}table.lv th{font-size:8.5px;padding:4px 6px}table.lv td:first-child{color:#8f8ca3}table.lv td b{color:#f4f2ff}table.lv em{display:block;font-style:normal;font-size:9px;color:#5f5c72}table.lv tr.na td{color:#5f5c72}
.siglist{margin-top:10px}table.sigs td,table.sigs th{padding:5px 8px;font-size:11px;border-top:1px solid #17171f;font-weight:400;font-variant-numeric:tabular-nums}table.sigs th{font-size:8.5px}table.sigs tr.up b{color:var(--green)}table.sigs tr.dn b{color:#e0607a}table.sigs em{font-style:normal;font-size:9px;color:#d3a343}.sigempty{font-size:11px;color:#6c6980;padding:8px 2px}
.rpbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:-8px 0 12px}.srcsw{display:flex;gap:3px;background:#0d0d14;border:1px solid var(--line);border-radius:9px;padding:3px}.srcsw button{border:0;background:transparent;color:#8f8da0;padding:6px 12px;border-radius:6px;cursor:pointer;font:inherit;font-size:12px}.srcsw button.active{background:#1c1530;color:#d8c9ff}
.rpctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;flex:1;background:#0d0d14;border:1px solid var(--line);border-radius:9px;padding:6px 10px}.rpctl select{background:#12111a;color:#ddd4ff;border:1px solid #2a2438;border-radius:6px;padding:5px 6px;font:inherit;font-size:11px}.rpctl button{background:#7c3aed;color:#fff;border:1px solid #7c3aed;border-radius:6px;padding:5px 10px;cursor:pointer;font:inherit;font-size:11px}.rpctl button.ghost{background:#15121e;color:#ddd4ff;border-color:#302642}.rpctl button:disabled{opacity:.4;cursor:default}
.rpfrom{display:flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.14em;color:var(--muted)}.rpfrom input{width:140px;accent-color:#8b5cf6}.rpfrom b{font-size:11px;color:#cfcbe0;font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums}.rpspeeds{display:flex;gap:3px}.rpspeeds button{background:#15121e!important;border-color:#302642!important;color:#8f8da0!important;padding:4px 7px!important}.rpspeeds button.on{background:#2a1c47!important;color:#e6dcff!important;border-color:#7c3aed!important}
.rpclock{font-size:11px;color:#cfcbe0;font-variant-numeric:tabular-nums;min-width:170px}.rpprog{flex:1;min-width:80px;height:4px;background:#22202c;border-radius:4px;overflow:hidden}.rpprog i{display:block;height:100%;width:0;background:#8b5cf6}
#aeNoEngine{position:fixed;inset:0;z-index:50;background:rgba(8,8,13,.92);display:grid;place-items:center;padding:16px}.nebox{max-width:520px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px}.nebox .logo{margin-bottom:16px}.nebox h2{font-size:19px;margin:0 0 10px}.nebox p{color:#b7b3c5;line-height:1.6;font-size:13px;margin:8px 0}.nebox .nesub{color:#6c6980;font-size:11.5px}.nebox code{color:#a98eea}
/* charts: fixed-size canvases filling the panel, navigated with wheel / drag (no scrollbars) */
.fpwrap,.prwrap,.hmwrap{overflow:hidden!important;height:calc(100vh - 330px)!important;min-height:380px;max-height:none!important}
.domwrap{height:calc(100vh - 330px);min-height:380px;max-height:none!important}.prside{max-height:calc(100vh - 330px)!important}
.fpwrap canvas,.prwrap canvas,.hmwrap canvas{cursor:crosshair;user-select:none}.fpwrap canvas.grabbing,.prwrap canvas.grabbing,.hmwrap canvas.grabbing{cursor:grabbing}
.ofbtn{background:#15121e;color:#ddd4ff;border:1px solid #302642;border-radius:7px;padding:6px 11px;cursor:pointer;font:inherit;font-size:11px}.ofbtn:hover{border-color:#7c3aed}
.ofhint{font-size:10px;color:#5a5770;margin:-6px 0 10px;letter-spacing:.02em}
body.offull .shell{grid-template-columns:1fr}body.offull aside{display:none}body.offull main{padding:8px 12px;max-width:none}
body.offull #view-orderflow>header>div:first-child,body.offull .oflegend,body.offull .siglist,body.offull .ofhint{display:none}
body.offull #view-orderflow>header{position:absolute;top:8px;right:14px;margin:0;z-index:5}body.offull .rpbar{padding-right:330px}
body.offull .rpbar{margin:0 0 6px}body.offull .ofbar{margin-bottom:6px}body.offull .ofpanel{padding:6px}
body.offull .prwrap,body.offull .hmwrap{height:calc(100vh - 150px)!important}body.offull .fpwrap{height:calc(100vh - 205px)!important}
body.offull .domwrap,body.offull .prside{height:calc(100vh - 150px);max-height:calc(100vh - 150px)!important}
.prwarn{border-left:2px solid #d3a343;background:#16120b;color:#d9b46a;font-size:10.5px;line-height:1.5;padding:7px 9px;margin-bottom:8px;border-radius:4px}
@media(max-width:1100px){.prgrid{grid-template-columns:1fr}}
