:root,:root[data-theme="dark"]{--bg:#05070f;--bg2:#0a0f1c;--card:#0d1424;--card2:#111a2f;--fg:#e8eefc;--mut:#8593b3;--ok:#19c37d;--bad:#ff4d6a;--warn:#f5b73b;--line:#1c2742;--acc:#00e0ff;--acc2:#8a5cff;--inset:#0a1120;--inputbg:#070b16;--chip:#1b2540;--btn:#1a2440;--gridline:#16213a;--segon:#16305a;--okbg:#0f5d42;--badbg:#7a1f32;--warnbg:#6b5310;--purplebg:#3a2d7a;--navon1:#0f2a44;--navon2:#1a1646;--glow:#101a3a;--topbg:rgba(10,15,28,.8);--askbg:rgba(255,77,106,.16);--bidbg:rgba(25,195,125,.16);--onacc:#05070f;--s0:#00e0ff;--s1:#8a5cff;--s2:#19c37d;--s3:#f5b73b;--s4:#ff4d6a;--s5:#4c6fff;--s6:#ff8a3d;--s7:#9aa7c7;--link:#00e0ff;color-scheme:dark}
:root[data-theme="light"]{--bg:#f2f5fb;--bg2:#ffffff;--card:#ffffff;--card2:#f6f8fd;--fg:#0f1830;--mut:#536080;--ok:#0a7a4b;--bad:#c4183b;--warn:#8a5a00;--line:#d3daea;--acc:#005fb8;--acc2:#6a3fd6;--inset:#edf1f9;--inputbg:#ffffff;--chip:#e3e9f6;--btn:#eef2fb;--gridline:#dde4f2;--segon:#cfe0ff;--okbg:#0a7a4b;--badbg:#c4183b;--warnbg:#8a5a00;--purplebg:#5b3fd1;--navon1:#d6e8ff;--navon2:#e6defc;--glow:#dfe8ff;--topbg:rgba(255,255,255,.85);--askbg:rgba(196,24,59,.12);--bidbg:rgba(10,122,75,.13);--onacc:#ffffff;--s0:#005fb8;--s1:#6a3fd6;--s2:#0a7a4b;--s3:#a86b00;--s4:#c4183b;--s5:#2a48d6;--s6:#c2540a;--s7:#5b6684;--link:#005fb8;color-scheme:light}
@media(prefers-color-scheme:light){:root[data-theme="system"]{--bg:#f2f5fb;--bg2:#ffffff;--card:#ffffff;--card2:#f6f8fd;--fg:#0f1830;--mut:#536080;--ok:#0a7a4b;--bad:#c4183b;--warn:#8a5a00;--line:#d3daea;--acc:#005fb8;--acc2:#6a3fd6;--inset:#edf1f9;--inputbg:#ffffff;--chip:#e3e9f6;--btn:#eef2fb;--gridline:#dde4f2;--segon:#cfe0ff;--okbg:#0a7a4b;--badbg:#c4183b;--warnbg:#8a5a00;--purplebg:#5b3fd1;--navon1:#d6e8ff;--navon2:#e6defc;--glow:#dfe8ff;--topbg:rgba(255,255,255,.85);--askbg:rgba(196,24,59,.12);--bidbg:rgba(10,122,75,.13);--onacc:#ffffff;--s0:#005fb8;--s1:#6a3fd6;--s2:#0a7a4b;--s3:#a86b00;--s4:#c4183b;--s5:#2a48d6;--s6:#c2540a;--s7:#5b6684;--link:#005fb8;color-scheme:light}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,var(--glow) 0,transparent 60%),var(--bg);color:var(--fg);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.05rem;margin:0}h2{font-size:.78rem;margin:0 0 .6rem;color:var(--mut);text-transform:uppercase;letter-spacing:.08em;font-weight:600}h3{font-size:.85rem;margin:.2rem 0 .5rem}
small,.mut{color:var(--mut)}.center{text-align:center}.big{font-size:1.2rem;font-weight:700;margin-left:.4rem}
.pos{color:var(--ok)}.neg{color:var(--bad)}
/* shell */
body.app{display:grid;grid-template-columns:200px 1fr;min-height:100vh}
.side{background:var(--bg2);border-right:1px solid var(--line);padding:.8rem .6rem;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--fg);font-weight:800;letter-spacing:.25em;margin-bottom:1.2rem}.brand:hover{text-decoration:none}
.brand span{display:flex;flex-direction:column;line-height:1.05}.brand small{font-size:.55rem;letter-spacing:.45em;color:var(--acc)}
.side nav{display:grid;gap:.2rem}.side nav a{display:flex;gap:.7rem;align-items:center;padding:.6rem .7rem;border-radius:9px;color:var(--mut);min-height:44px}
.side nav a b{width:1.2rem;text-align:center}.side nav a:hover{background:var(--card);color:var(--fg);text-decoration:none}
.side nav a.on{background:linear-gradient(90deg,var(--navon1),var(--navon2));color:var(--fg);box-shadow:inset 2px 0 var(--acc)}
.main{min-width:0}.top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);background:var(--topbg);backdrop-filter:blur(6px);position:sticky;top:0;z-index:5}
.ttl{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.hdr-logo{border-radius:7px}
.ticker{overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg2);white-space:nowrap;font-size:.82rem;position:relative;touch-action:pan-y}.ticker em{font-style:normal;margin-left:.2rem}
main{padding:1rem;display:grid;gap:1rem;max-width:1500px}
.foot{font-size:.75rem;text-align:center;margin:.5rem 0}
/* components */
.panel,.card{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:12px;padding:.9rem;min-width:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem}.card .v{font-size:1.35rem;font-weight:700}.card .l{color:var(--mut);font-size:.76rem}
.grid2{display:grid;grid-template-columns:1fr;gap:1rem}.col{display:grid;gap:1rem;align-content:start;min-width:0}
.grid3{display:grid;grid-template-columns:1fr;gap:1.2rem}
.head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.badge{padding:.12rem .55rem;border-radius:99px;font-size:.7rem;font-weight:700;background:var(--chip);color:var(--fg)}
.badge.live{background:var(--bad)}.badge.paper{background:var(--okbg)}
.tier-net_positive{background:var(--okbg)}.tier-carry{background:var(--purplebg)}.tier-prefunded_only{background:var(--warnbg)}.tier-none{background:var(--chip)}
.btn,button{background:var(--btn);color:var(--fg);border:1px solid var(--line);border-radius:9px;padding:.55rem 1rem;font-size:.95rem;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-family:inherit}
.btn:hover,button:hover{border-color:var(--acc);text-decoration:none}
.btn.sm{min-height:32px;padding:.2rem .6rem;font-size:.8rem}.btn.primary{background:linear-gradient(90deg,#0b7a8c,#5b3fd1);border-color:transparent;font-weight:700}
.btn.ok{background:var(--okbg);border-color:var(--s2)}.btn.kill,button.kill{background:var(--bad);border-color:var(--bad);font-weight:800;width:100%;color:#fff}
input,select{background:var(--inputbg);color:var(--fg);border:1px solid var(--line);border-radius:9px;padding:.55rem .6rem;font-size:.95rem;min-height:44px;width:100%;font-family:inherit}
input.sm{min-height:32px;width:78px;padding:.2rem .4rem;font-size:.8rem}input[type=radio],input[type=checkbox]{width:auto;min-height:0}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.stack{display:grid;gap:.55rem}.row{display:flex;gap:.5rem;flex-wrap:wrap}.row>*{flex:1 1 110px}.inline{display:flex;gap:.3rem;align-items:center}.inline>*{flex:0 0 auto}
.radio{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem;border:1px solid var(--line);border-radius:9px}.radio span{display:grid}.radio input{margin-top:.25rem}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tablewrap.short{max-height:320px;overflow-y:auto}
table{border-collapse:collapse;width:100%;min-width:480px}th,td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--line);font-size:.84rem;vertical-align:top}th{color:var(--mut);font-weight:500;white-space:nowrap}
table.kv{min-width:0}table.kv td:last-child{text-align:right}tr.sub td{border-bottom:1px solid var(--line);background:var(--inset)}
.flash{padding:.6rem .9rem;border-radius:9px;border:1px solid var(--line);background:var(--card)}.flash.ok{border-color:var(--ok)}.flash.bad{border-color:var(--bad)}.flash.warn{border-color:var(--warn)}
.banner{background:var(--bad);padding:.6rem 1rem;font-weight:800;text-align:center}
.appr{border:1px solid var(--warn);border-radius:9px;padding:.7rem;margin-bottom:.6rem}
.alert-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:.3rem;overflow-x:auto}.tabs a{padding:.55rem 1rem;border-radius:9px 9px 0 0;color:var(--mut);white-space:nowrap;min-height:44px;display:flex;align-items:center}.tabs a.on{background:var(--card2);color:var(--fg);box-shadow:inset 0 -2px var(--acc)}
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.toolbar select{width:auto;min-width:170px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg label{cursor:pointer}.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:flex;align-items:center;padding:.45rem .7rem;min-height:40px;color:var(--mut);font-size:.82rem}.seg input:checked+span{background:var(--segon);color:var(--fg)}.seg input:focus-visible+span{outline:2px solid var(--acc)}
.seg.wide{display:flex}.seg.wide label{flex:1}.seg.wide span{justify-content:center}.seg.wide input:checked+span.buy{background:var(--okbg)}.seg.wide input:checked+span.sell{background:var(--badbg)}.seg input:disabled+span{opacity:.35;cursor:not-allowed}
.slider{display:grid;gap:.3rem}.slider input{padding:0}
details.why summary{cursor:pointer;color:var(--acc);font-size:.8rem}details.why div{max-width:340px;color:var(--mut);padding:.3rem 0}
.empty{padding:2rem;text-align:center;color:var(--mut)}
.bar{height:8px;background:var(--inset);border-radius:99px;overflow:hidden;margin-top:.6rem}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--acc2))}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.4rem;background:var(--mut)}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}.dot.idle{background:var(--warn)}
.alloc{display:grid;grid-template-columns:1fr;gap:1rem;align-items:center}.alloc .donut{max-width:200px;margin:auto}
/* trade layout */
.trade-grid{display:grid;grid-template-columns:1fr;gap:1rem}
/* charts (colour via classes: strict CSP has no inline styles) */
svg.chart{width:100%;height:auto;display:block}svg .grid{stroke:var(--gridline);stroke-width:1}svg .ax{fill:var(--mut);font-size:10px}
svg .up{fill:var(--ok);stroke:var(--ok)}svg .dn{fill:var(--bad);stroke:var(--bad)}svg .vol{opacity:.35;stroke:none}svg .wick{stroke-width:1}
svg .ind{fill:none;stroke-width:1.4}svg .sma{stroke:var(--s3)}svg .ema{stroke:var(--s1)}svg .bb{stroke:var(--s5);opacity:.7}svg .bbm{stroke:var(--s5);opacity:.4;stroke-dasharray:3 3}svg .rsi{stroke:var(--acc)}svg .panel{fill:var(--inset)}
svg .last{stroke:var(--mut);stroke-dasharray:2 3}svg .lastbox{stroke:none}svg .lasttxt{fill:var(--onacc);font-size:10px;font-weight:700}
svg .lvl{stroke-dasharray:6 4;stroke-width:1}svg .lvl.sl,svg .ax.sl{stroke:var(--bad);fill:var(--bad)}svg .lvl.tp,svg .ax.tp{stroke:var(--ok);fill:var(--ok)}svg .lvl.ent,svg .ax.ent{stroke:var(--acc);fill:var(--acc)}svg line.lvl{fill:none}svg text.ax.sl,svg text.ax.tp,svg text.ax.ent{stroke:none}
svg .eq{stroke-width:2}svg .eq.up{stroke:var(--ok)}svg .eq.dn{stroke:var(--bad)}svg .area{stroke:none;opacity:.12}svg polyline{stroke-linejoin:round}
svg .ring0{stroke:var(--inset)}svg .seg{stroke:var(--acc)}svg .seg.c1{stroke:var(--s1)}svg .seg.c2{stroke:var(--s2)}svg .seg.c3{stroke:var(--s3)}svg .seg.c4{stroke:var(--s4)}svg .seg.c5{stroke:var(--s5)}svg .seg.c6{stroke:var(--s6)}svg .seg.c7{stroke:var(--s7)}
.dot.c0{background:var(--acc)}.dot.c1{background:var(--s1)}.dot.c2{background:var(--s2)}.dot.c3{background:var(--s3)}.dot.c4{background:var(--s4)}.dot.c5{background:var(--s5)}.dot.c6{background:var(--s6)}.dot.c7{background:var(--s7)}
/* order book depth bars via bucketed classes */
table.ob{min-width:0}table.ob td,table.ob th{padding:.15rem .4rem;font-size:.78rem}table.ob td:nth-child(n+2),table.ob th:nth-child(n+2){text-align:right}
table.ob tr.ask td:first-child{color:var(--bad)}table.ob tr.bid td:first-child{color:var(--ok)}table.ob tr.spread td{text-align:center;color:var(--mut);background:var(--inset)}
table.ob tr.ask{background:linear-gradient(to left,var(--askbg) var(--w,0),transparent 0)}table.ob tr.bid{background:linear-gradient(to left,var(--bidbg) var(--w,0),transparent 0)}

/* width buckets */
.w0{--w:0%}.w5{--w:5%}.w10{--w:10%}.w15{--w:15%}.w20{--w:20%}.w25{--w:25%}.w30{--w:30%}.w35{--w:35%}.w40{--w:40%}.w45{--w:45%}.w50{--w:50%}.w55{--w:55%}.w60{--w:60%}.w65{--w:65%}.w70{--w:70%}.w75{--w:75%}.w80{--w:80%}.w85{--w:85%}.w90{--w:90%}.w95{--w:95%}.w100{--w:100%}.bar i.w0{width:0}.bar i.w5{width:5%}.bar i.w10{width:10%}.bar i.w15{width:15%}.bar i.w20{width:20%}.bar i.w25{width:25%}.bar i.w30{width:30%}.bar i.w35{width:35%}.bar i.w40{width:40%}.bar i.w45{width:45%}.bar i.w50{width:50%}.bar i.w55{width:55%}.bar i.w60{width:60%}.bar i.w65{width:65%}.bar i.w70{width:70%}.bar i.w75{width:75%}.bar i.w80{width:80%}.bar i.w85{width:85%}.bar i.w90{width:90%}.bar i.w95{width:95%}.bar i.w100{width:100%}
/* login */
body.auth{display:grid;place-items:center;min-height:100vh}.login{width:min(380px,92vw);display:grid;gap:.8rem;padding:1.4rem}.logo-big{margin:0 auto;border-radius:16px;max-width:60%;height:auto}.login h1{text-align:center}
@media(min-width:900px){.grid2{grid-template-columns:2fr 1fr}.grid3{grid-template-columns:1.2fr 1fr 1fr}.alloc{grid-template-columns:220px 1fr}.trade-grid{grid-template-columns:minmax(0,1fr) 250px 290px;grid-template-areas:'chart book ticket' 'chart tape ticket' 'mkts mkts mkts'}.chartp{grid-area:chart}.book{grid-area:book}.tape{grid-area:tape}.ticket{grid-area:ticket;align-self:start}.mkts{grid-area:mkts}}
@media(max-width:899px){body.app{grid-template-columns:1fr;padding-bottom:62px}.side{position:fixed;bottom:0;top:auto;left:0;right:0;height:auto;z-index:20;border-right:0;border-top:1px solid var(--line);padding:.2rem}.brand{display:none}.side nav{grid-template-columns:repeat(8,1fr)}.side nav a{flex-direction:column;gap:0;justify-content:center;padding:.25rem;font-size:.68rem}.hdr-logo{display:inline}}
@media(min-width:900px){.hdr-logo{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.badge.live,.badge.paper,.badge[class*="tier-"],.btn.ok,.btn.kill,button.kill,.seg.wide input:checked+span.buy,.seg.wide input:checked+span.sell,.banner{color:#fff}
.btn.primary{color:#fff}
svg .lasttxt{fill:var(--onacc)}
html{background:var(--bg)}
.logo-big,.hdr-logo,.brand img{box-shadow:0 0 0 1px var(--line)}
.theme-opts{display:flex;gap:.4rem;flex-wrap:wrap}.theme-opts label{flex:1 1 90px}
.pill{display:inline-block;padding:.05rem .5rem;border-radius:99px;font-size:.72rem;font-weight:700;color:#fff}.pill.long{background:var(--okbg)}.pill.short{background:var(--badbg)}
.openlist .sub td{background:var(--inset)}.age{white-space:nowrap}
svg .wseg{stroke:none;opacity:.85}svg .wseg.c0{fill:var(--s0)}svg .wseg.c1{fill:var(--s1)}svg .wseg.c2{fill:var(--s2)}svg .wseg.c3{fill:var(--s3)}svg .wseg.c4{fill:var(--s4)}svg .wseg.c5{fill:var(--s5)}svg .wseg.c6{fill:var(--s6)}svg .wseg.c7{fill:var(--s7)}
.qr svg{width:200px;height:200px;background:#fff;padding:6px;border-radius:8px}code{background:var(--inset);padding:.3rem .5rem;border-radius:6px;word-break:break-all}

/* marquee: the track holds two identical groups; translating by -50% loops seamlessly. Colours only via theme variables. */
.ticker .track{display:inline-flex;min-width:100%;will-change:transform;animation:nova-marquee 60s linear infinite}
.ticker .tgroup{display:inline-flex;flex:0 0 auto;min-width:50%}.ticker .tick{padding:.45rem 1.4rem;display:inline-block}
.ticker:hover .track,.ticker:focus-within .track,.ticker.paused .track,.ticker:focus .track{animation-play-state:paused}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:28px;z-index:1;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--bg2),transparent)}.ticker::after{right:0;background:linear-gradient(270deg,var(--bg2),transparent)}
@keyframes nova-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker{overflow-x:auto}.ticker .track{animation:none!important;transform:none}.ticker .tgroup[aria-hidden="true"]{display:none}.ticker::before,.ticker::after{display:none}}
.lwc{width:100%;height:430px;min-height:300px}.chart-note{margin-top:.4rem}@media(max-width:899px){.lwc{height:340px}}

/* EURO page */
[hidden]{display:none!important}
.euro{display:grid;gap:1rem}.euro-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.euro label{display:grid;gap:.25rem}.euro label.radio{display:flex}.euro .seg label{display:block}.euro .seg.wide label{display:block}
.euro-amt{display:flex;gap:.4rem}.euro-amt input{flex:1 1 auto}.euro-amt .btn{flex:0 0 auto}
.euro-h2{margin-top:1rem}.euro-bal b{font-variant-numeric:tabular-nums}
.euro-risk ul{margin:.3rem 0 .8rem 1.1rem;padding:0;display:grid;gap:.3rem}.euro-risk{border-color:var(--warn)}
.euro-steps{margin:.6rem 0 0 1.2rem;padding:0;display:grid;gap:.3rem}
.euro-txs{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.euro-txs li{padding:.4rem .5rem;border:1px solid var(--line);border-radius:9px;word-break:break-all}
.euro-txs .st-pending{border-color:var(--warn)}.euro-txs .st-confirmed{border-color:var(--ok)}.euro-txs .st-failed{border-color:var(--bad)}
.euro table.kv td:last-child{word-break:break-all}.euro code{font-size:.78rem}
.euro-wallet select{max-width:100%}
@media(min-width:900px){.euro-grid{grid-template-columns:1fr 1fr}}
.euro-qr{background:#fff;padding:8px;border-radius:10px;max-width:100%;height:auto;width:240px}.euro-wc{display:grid;gap:.5rem;justify-items:start}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.chk{display:flex;gap:.5rem;align-items:flex-start}.chk input{width:auto;margin-top:.2rem}
.steps li{margin:.6rem 0}
.status-banner{padding:.7rem 1rem;margin:.5rem 0;border-radius:8px;font-weight:600;background:#5b1d1d;color:#fff;border:1px solid #ff6b6b}
.status-banner.warn{background:#5b4a1d;border-color:#ffc857}
