:root{
  --bg:#0b0d10; --panel:#12151a; --panel2:#161a21; --line:#222833; --line2:#2c343f;
  --txt:#e6e9ee; --mut:#8b95a4; --mut2:#5f6a78;
  --acc:#3ddc97; --acc-dim:#2aa876;
  --up:#26a69a; --dn:#ef5350; --pos:#3ddc97; --neg:#ff6b6b;
  --r:10px; --r2:7px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:13px;-webkit-font-smoothing:antialiased;overflow:hidden}
#app{display:flex;flex-direction:column;height:100vh}
button{font-family:inherit;cursor:pointer}
select,input,textarea{font-family:inherit;color:var(--txt)}
.muted{color:var(--mut)} .spacer{flex:1}

/* topbar */
.topbar{display:flex;align-items:center;gap:14px;padding:0 16px;height:52px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}
.brand{display:flex;align-items:center;gap:9px}
.logo{color:var(--acc);letter-spacing:-3px;font-size:16px}
.brand .name{font-weight:650;letter-spacing:.2px}
.tagline{color:var(--mut2);font-size:11px;margin-left:4px}
.brand,.modes,.engsel{flex:none}
.modes{display:flex;background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r2)}
.modes .md:first-child{border-radius:var(--r2) 0 0 var(--r2)} .modes .md:last-child{border-radius:0 var(--r2) var(--r2) 0}
.md{background:transparent;border:none;color:var(--mut);font-size:12.5px;padding:7px 14px;white-space:nowrap}
.md.on{background:var(--acc-dim);color:#06231a;font-weight:600}
.pf-badge{margin-left:5px;font:700 10px/1.4 var(--mono);background:var(--acc);color:#06231a;border-radius:9px;padding:1px 6px}
.md.on .pf-badge{background:#06231a;color:var(--acc)}
/* "⋯ More" popover — low-frequency controls collapsed out of the bar */
.moremenu{position:relative;flex:none}
.morepop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;flex-direction:column;gap:7px;padding:9px;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);box-shadow:0 12px 40px rgba(0,0,0,.5);min-width:200px}
.morepop .btn{width:100%;justify-content:flex-start;text-align:left}
.more-lbl{display:flex;flex-direction:column;gap:5px;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.more-lbl select{width:100%}
@media(max-width:1180px){.topbar{gap:10px} .tagline{display:none}}
@media(max-width:1000px){.market-picker label{display:none}}
.market-picker{display:flex;align-items:center;gap:7px}
/* indicator mode: different grid columns, no realistic toggle */
body.mode-ind .qtoggle{display:none}
body.mode-ind .grid-head,body.mode-ind .row{grid-template-columns:minmax(0,1fr) 50px minmax(0,1.5fr) 52px}
body.mode-ind .c-num{text-align:right}
.market-picker label{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
select{background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r2);padding:6px 10px;font-size:12.5px;outline:none}
select:focus{border-color:var(--acc-dim)}
.btn{background:var(--panel2);border:1px solid var(--line2);color:var(--txt);border-radius:var(--r2);padding:7px 12px;font-size:12.5px;transition:.12s}
.btn:hover{border-color:var(--acc-dim);background:#1b212a}
.btn.primary{background:var(--acc);color:#06231a;border-color:var(--acc);font-weight:600}
.btn.primary:hover{background:#4fe8a6}
.btn.ghost{background:transparent}
.btn.sm{padding:5px 9px;font-size:11.5px}
.engsel{display:flex;background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r2);overflow:hidden}
.eng{background:transparent;border:none;color:var(--mut);font-size:11.5px;padding:6px 10px}
.eng.on{background:#23303a;color:var(--acc);font-weight:600}
.engine-badge{font-size:11px;color:#cdbb88;background:rgba(224,166,87,.08);border:1px solid rgba(224,166,87,.25);border-radius:var(--r2);padding:6px 10px;margin-bottom:2px}
.engine-badge b{color:#e0b878}
.numfilters{display:flex;gap:14px;align-items:center;width:100%;padding-top:2px}
.numfilters label{display:flex;align-items:center;gap:7px;color:var(--mut);font-size:11px}
.numfilters input[type=range]{width:84px;accent-color:var(--acc-dim)}
.numfilters span{font-family:var(--mono);color:var(--txt);min-width:26px}
body.mode-ind .numfilters{display:none}
.keys{padding:12px 18px 18px;display:flex;flex-direction:column;gap:9px}
.keys>div{display:flex;align-items:center;gap:8px;color:var(--mut)}
.keys span{margin-left:auto;color:var(--txt);font-size:12.5px}
kbd{font-family:var(--mono);font-size:11px;background:var(--panel2);border:1px solid var(--line2);border-bottom-width:2px;border-radius:5px;padding:2px 7px;color:var(--txt)}
.engine{font-size:11px;color:var(--mut2);font-family:var(--mono);padding:4px 8px;border-radius:20px;border:1px solid var(--line)}
.engine.loading{color:#e0b657} .engine.ready{color:var(--acc)} .engine.ready::before{content:"● "}

/* layout */
.layout{display:flex;flex:1;min-height:0}
.catalog{width:46%;max-width:680px;min-width:360px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel)}
.viz{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);overflow:hidden;isolation:isolate}

/* catalog tools */
.catalog-tools{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
#search{flex:1;min-width:140px;background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r2);padding:7px 11px;font-size:12.5px;outline:none}
#search:focus{border-color:var(--acc-dim)}
.filters{display:flex;gap:5px;flex-wrap:wrap}
.chip{font-size:11px;padding:4px 9px;border-radius:20px;border:1px solid var(--line2);color:var(--mut);background:transparent;transition:.12s}
.chip:hover{color:var(--txt)} .chip.on{background:var(--acc-dim);color:#06231a;border-color:var(--acc-dim);font-weight:600}
.count{color:var(--mut2);font-size:11px;font-family:var(--mono)}
.qtoggle{display:flex;background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r2);overflow:hidden}
.qt{background:transparent;border:none;color:var(--mut);font-size:11.5px;padding:6px 11px}
.qt.on{background:var(--acc-dim);color:#06231a;font-weight:600}
.row .wild{color:#e0a657;margin-left:5px;font-size:10px}
.v2-badge{display:inline-block;margin-left:5px;padding:1px 5px;border:1px solid rgba(201,139,255,.42);border-radius:4px;background:rgba(201,139,255,.1);color:#d7a7ff;font:700 9px/1.35 var(--mono);letter-spacing:.35px;vertical-align:1px}
.vsub .v2-tag{border-color:rgba(201,139,255,.42);background:rgba(201,139,255,.1);color:#d7a7ff}

/* grid: name | lang | net | pf | trades | sparkline | paper-trade pill */
.grid-head,.row{display:grid;grid-template-columns:minmax(0,1fr) 44px 58px 42px 54px 72px 84px;align-items:center;gap:8px}
/* Portfolio mode uses its own per-row inline grid-template — selector
   weight matches body.mode-X above so this base rule doesn't fight it. */
body.mode-pf .grid-head{display:none}
.grid-head>span,.row>span{min-width:0;overflow:hidden}
.grid-head{padding:8px 12px;border-bottom:1px solid var(--line);color:var(--mut);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;flex:none;user-select:none}
.grid-head span{cursor:pointer} .grid-head .c-num{text-align:right} .grid-head span[data-active]{color:var(--acc)}
.grid-head .c-spark{cursor:default;text-align:center}
.grid{flex:1;overflow-y:auto;overflow-x:hidden;width:100%;min-width:0}
.row{padding:7px 12px;border-bottom:1px solid #181c23;cursor:pointer;transition:background .08s}
.row:hover{background:#181d25} .row.sel{background:#16241f;box-shadow:inset 2px 0 0 var(--acc)}
.row .c-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.row .c-name .inds{color:var(--mut2);font-size:10.5px;margin-left:6px;font-weight:400}
.badge{font-size:10px;font-family:var(--mono);padding:2px 5px;border-radius:4px;background:#1e2630;border:1px solid var(--line2);color:var(--mut)}
.lang-pine{color:#5b9bff} .lang-mql4,.lang-mql5{color:#e0a657} .lang-afl{color:#c98bff} .lang-csharp{color:#5fd0c0} .lang-thinkscript{color:#ff8a8a}
.c-cat{color:var(--mut);font-size:11px}
.c-num{text-align:right;font-family:var(--mono);font-size:12px}
.pos{color:var(--pos)} .neg{color:var(--neg)}
.c-spark{display:flex;justify-content:center}
.c-spark svg{display:block}

/* viz */
.viz-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:40px}
.viz-empty .hint{max-width:440px;text-align:center}
.viz-empty h2{font-weight:600;font-size:18px;margin:0 0 10px}
.viz-empty p{color:var(--mut);line-height:1.6;margin:0}
.viz-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}
.viz-head{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 18px 8px;gap:12px}
.vh-title h2{margin:0;font-size:16px;font-weight:600}
.vsub{color:var(--mut);font-size:12px;margin-top:3px}
.vsub .tag{display:inline-block;padding:1px 7px;border-radius:20px;border:1px solid var(--line2);margin-right:5px;font-size:11px}

/* metrics */
.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);margin:4px 18px 0;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.metric{background:var(--panel);padding:9px 12px}
.metric .k{color:var(--mut2);font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.metric .v{font-family:var(--mono);font-size:16px;font-weight:600;margin-top:2px}

/* charts */
.charts{padding:12px 18px 0;display:flex;flex-direction:column;gap:8px}
.chart{width:100%;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--panel);position:relative}
.chart.price{height:340px} .chart.equity{height:130px}
/* zerox engine draws equity as its own pane → hide the separate LWC equity chart, grow price */
body.eng-zerox .chart.equity{display:none!important}
body.eng-zerox .chart.price{height:480px}

/* works heatmap */
.works{padding:14px 18px 4px}
.works-head{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.heat{display:flex;flex-wrap:wrap;gap:5px}
.cell{min-width:74px;border:1px solid var(--line2);border-radius:6px;padding:6px 8px;cursor:pointer;transition:.1s}
.cell:hover{border-color:var(--acc-dim)}
.cell .m{font-size:10.5px;color:var(--mut);font-family:var(--mono)}
.cell .n{font-family:var(--mono);font-size:13px;font-weight:600;margin-top:1px}
.cell.cur{outline:2px solid var(--acc);outline-offset:-1px}
.cell.flat{opacity:.4}

/* indicator param editor */
.param-panel{margin:6px 18px 24px;border:1px solid var(--line);border-radius:var(--r2);background:var(--panel);overflow:hidden}
.pp-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--panel2)}
.pp-title{font-size:12px;font-weight:600;color:var(--txt)}
.pp-actions{display:flex;gap:6px}
.pp-inputs{padding:8px 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.pp-row{display:flex;align-items:center;gap:9px}
.pp-row label{flex:none;width:108px;color:var(--mut);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-row input[type=range]{flex:1;min-width:60px;accent-color:var(--acc-dim)}
.pp-row .val{font-family:var(--mono);font-size:11.5px;color:var(--txt);min-width:42px;text-align:right}
.pp-row .toggle{margin-left:auto}
.pp-sec{padding:7px 12px 2px;color:var(--mut2);font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--line)}
.pp-lines{padding:6px 12px 12px;display:flex;flex-direction:column;gap:7px}
.pp-line{display:flex;align-items:center;gap:10px}
.pp-line .nm{flex:1;font-size:12px;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-line input[type=color]{width:26px;height:22px;border:1px solid var(--line2);border-radius:5px;background:none;padding:0;cursor:pointer}
.pp-line input[type=range]{width:80px;accent-color:var(--acc-dim)}
.pp-line .wv{font-family:var(--mono);font-size:11px;color:var(--mut);min-width:24px}
#vTitle{cursor:text;border-radius:5px;padding:0 4px;margin-left:-4px}
#vTitle:hover{background:var(--panel2)}
#vTitle[contenteditable]{outline:1px solid var(--acc-dim);background:#0d1014}
@media(max-width:1100px){.pp-inputs{grid-template-columns:1fr}}
.legend{padding:6px 18px 24px;color:var(--mut2);font-size:11px;display:flex;gap:16px;flex-wrap:wrap}
.legend .li{display:flex;align-items:center;gap:5px}
.legend .sw{width:11px;height:11px;border-radius:3px;display:inline-block}

/* modal */
.modal{position:fixed;inset:0;background:rgba(5,7,9,.72);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}
.modal-card{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);width:min(720px,92vw);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.modal-card.wide{width:min(1100px,95vw)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h3{margin:0;font-size:15px;font-weight:600}
.x{background:none;border:none;color:var(--mut);font-size:16px;padding:4px 8px;border-radius:6px}
.x:hover{color:var(--txt);background:var(--panel2)}
.modal-row{display:flex;align-items:center;gap:10px;padding:14px 18px 0}
.modal-row label{color:var(--mut);font-size:12px}
#pasteSrc{margin:12px 18px;height:300px;background:#0d1014;border:1px solid var(--line2);border-radius:var(--r2);padding:12px;font-family:var(--mono);font-size:12.5px;line-height:1.5;resize:none;outline:none}
#pasteSrc:focus{border-color:var(--acc-dim)}
.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:0 18px 16px}
.err{color:var(--neg);font-size:12px;font-family:var(--mono);margin-right:auto;text-align:left}

/* source drawer */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:var(--panel);border-left:1px solid var(--line2);z-index:40;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.4)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--mut)}
.src{flex:1;overflow:auto;margin:0;padding:14px 16px;font-family:var(--mono);font-size:12px;line-height:1.55;color:#cfd6e0;white-space:pre;tab-size:2}

/* matrix */
.mx-body{padding:12px 16px;overflow:auto;min-height:200px}
.mx-progress{color:var(--mut);font-size:12px;font-family:var(--mono);margin-bottom:10px}
.mx-grid{display:grid;gap:2px;font-size:11px}
.mx-grid .h{color:var(--mut2);font-family:var(--mono);font-size:10px;padding:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-grid .nm{color:var(--txt);padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.mx-grid .mc{font-family:var(--mono);text-align:center;padding:3px;border-radius:3px;cursor:pointer}

/* scrollbars */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#262d38;border-radius:6px;border:2px solid var(--panel)}
::-webkit-scrollbar-thumb:hover{background:#323b48}
::-webkit-scrollbar-track{background:transparent}
@media(max-width:880px){.catalog{width:100%;max-width:none} .viz{display:none} body.show-viz .catalog{display:none} body.show-viz .viz{display:flex}}

/* ============ paper trading: row pill + toast + dock ============ */
/* Row pill — labeled, real touch target. Shows ▶ Trade (unsubscribed) or
   ● live (subscribed). Always visible on touch; fade-in on hover for desktop. */
.row .pt-pill{background:var(--acc);color:#06231a;border:none;border-radius:6px;font-size:11px;font-weight:600;padding:5px 9px;line-height:1.15;white-space:nowrap;width:100%;opacity:.0;transition:opacity .1s}
.row:hover .pt-pill,.row.sel .pt-pill{opacity:1}
.row .pt-pill:hover{background:#4fe8a6}
.row .pt-pill[data-busy]{background:var(--acc-dim);pointer-events:none}
.row .pt-pill.live{background:transparent;color:var(--acc);border:1px solid var(--acc-dim);opacity:1;cursor:default}
@media(hover:none){.row .pt-pill{opacity:1}}

/* Toasts — non-blocking confirmation bottom-right, one accent surface */
.toasts{position:fixed;right:16px;bottom:62px;z-index:70;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.toast{display:flex;align-items:center;gap:11px;background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--acc);border-radius:var(--r);padding:11px 13px;max-width:340px;box-shadow:0 10px 34px rgba(0,0,0,.5);pointer-events:auto;transform:translateY(8px);opacity:0;transition:transform .18s ease,opacity .18s ease}
.toast.in{transform:none;opacity:1}
.toast.err{border-left-color:var(--neg)}
.toast .ico{color:var(--acc);font-size:14px;flex:none}
.toast.err .ico{color:var(--neg)}
.toast .body{flex:1;min-width:0}
.toast .t1{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast .t2{font-size:11px;color:var(--mut);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toast .act{background:transparent;border:1px solid var(--line2);color:var(--txt);border-radius:6px;font-size:11px;padding:4px 9px;white-space:nowrap}
.toast .act:hover{border-color:var(--acc-dim)} .toast .act.undo{color:var(--mut)}

/* Paper Dock — slim always-visible tracker, last flex child of #app */
.pt-dock{flex:none;display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;background:var(--panel);border-top:1px solid var(--line2)}
.pt-dock.collapsed{height:26px}
.pt-dock.collapsed .dk-strip,.pt-dock.collapsed #dkOpen{display:none}
.dk-agg{display:flex;align-items:center;gap:6px;flex:none;padding-right:10px;border-right:1px solid var(--line)}
.dk-lbl{color:var(--mut);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.dk-pnl{font:600 13px var(--mono)} .dk-pnl.pos{color:var(--pos)} .dk-pnl.neg{color:var(--neg)}
.dk-count{color:var(--mut);font-size:11px}
.dk-strip{display:flex;gap:8px;flex:1;overflow-x:auto;scrollbar-width:thin;align-items:center}
.dk-empty{color:var(--mut2);font-size:11.5px}
.dk-chip{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:5px 9px;flex:none;cursor:pointer}
.dk-chip:hover{border-color:var(--acc-dim)}
.dk-chip .nm{font-size:11px;max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk-chip .pc{font:600 12px var(--mono)} .dk-chip .pc.pos{color:var(--pos)} .dk-chip .pc.neg{color:var(--neg)}
.dk-chip.flash{animation:dkflash 1s ease-out}
@keyframes dkflash{0%{box-shadow:0 0 0 2px var(--acc)}100%{box-shadow:0 0 0 0 transparent}}
.dk-icon{background:transparent;border:1px solid var(--line2);color:var(--mut);border-radius:6px;font-size:12px;line-height:1;padding:3px 7px;flex:none}
.dk-icon:hover{border-color:var(--acc-dim);color:var(--txt)}
@media(max-width:880px){.dk-chip .nm{display:none}}
@media(prefers-reduced-motion:reduce){.toast{transition:none;transform:none} .dk-chip.flash{animation:none}}

/* Portfolio board: summary strip + inline-editable capital */
.pf-summary{display:flex;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.pf-summary .cell{flex:1;background:var(--panel);padding:9px 14px}
.pf-summary .k{color:var(--mut);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.pf-summary .v{font:600 16px var(--mono);margin-top:2px} .pf-summary .v.pos{color:var(--pos)} .pf-summary .v.neg{color:var(--neg)}
.cap-edit{width:74px;padding:2px 5px;font:inherit;font-size:12px;background:var(--panel2);border:1px solid var(--acc-dim);border-radius:5px;color:var(--txt)}
.cap-cell{cursor:text;border-bottom:1px dotted var(--line2)}

/* ============ paper-trade DETAIL view ============ */
.row .chev{color:var(--mut2);font-weight:400;margin-left:2px}
.row:hover .chev{color:var(--acc)}

/* hero */
.pf-hero{margin:0 18px 4px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.pf-hero.win{border-color:var(--acc-dim);background:linear-gradient(180deg,rgba(61,220,151,.07),transparent 70%)}
.ph-kick{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--mut2)}
.ph-line{display:flex;align-items:center;gap:16px;margin-top:8px;flex-wrap:wrap}
.ph-cap{font:600 14px var(--mono);color:var(--txt)}
.ph-arrow{color:var(--mut2);font-size:20px}
.ph-big{font:700 40px/1 var(--mono);letter-spacing:-.5px}
.ph-big.pos{color:var(--acc)} .ph-big.neg{color:var(--neg)}
.pf-hero.win .ph-big.pos{text-shadow:0 0 22px rgba(61,220,151,.35)}
.ph-delta{font:600 14px var(--mono);margin-top:3px}
.ph-delta.pos{color:var(--acc)} .ph-delta.neg{color:var(--neg)}
.ph-toggle{display:flex;gap:6px;margin-top:12px}
.ph-toggle .seg{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:var(--r2);font-size:11.5px;padding:5px 11px}
.ph-toggle .seg.on{background:var(--acc-dim);color:#06231a;border-color:var(--acc-dim);font-weight:600}
.ph-toggle .seg.rp{margin-left:auto;color:var(--acc)}

/* trade ledger */
.pf-trades{margin:14px 18px 4px}
.pft-head{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--txt);margin-bottom:8px}
.pft-head .wl{flex:0 0 120px;display:flex;height:7px;border-radius:4px;overflow:hidden;background:var(--line)}
.pft-head .wl .w{background:var(--pos)} .pft-head .wl .l{background:var(--neg)}
.pft-head .muted{margin-left:auto;font-family:var(--mono)}
.pft-chips{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.chip2{font:600 11px var(--mono);padding:2px 8px;border-radius:6px;background:var(--panel2);border:1px solid var(--line2);color:var(--mut)}
.chip2.pos{color:var(--acc)} .chip2.neg{color:var(--neg)}
.pft-list.dense{max-height:240px;overflow-y:auto}
.tr{display:grid;grid-template-columns:26px 1fr 1fr 54px 74px 60px;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid #181c23;font-size:11.5px;cursor:pointer}
.tr:hover{background:#181d25} .tr.active{box-shadow:inset 2px 0 0 var(--acc);background:#16241f}
.ts{font:700 10px var(--mono);text-align:center;border-radius:4px;padding:1px 0}
.ts.long{background:rgba(38,166,154,.16);color:var(--up)} .ts.short{background:rgba(239,83,80,.16);color:var(--dn)}
.tcell{font-family:var(--mono);color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcell.pos{color:var(--acc)} .tcell.neg{color:var(--neg)}
.tr-mag{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.tr-mag i{display:block;height:100%} .tr-mag i.pos{background:var(--acc-dim)} .tr-mag i.neg{background:var(--neg)}

/* deposit CTA */
.pf-cta{margin:18px;padding:18px;border:1px solid var(--line2);border-radius:var(--r);background:var(--panel2)}
.pf-cta.win{border-color:var(--acc);background:linear-gradient(180deg,rgba(61,220,151,.12),rgba(61,220,151,.03));box-shadow:0 0 40px rgba(61,220,151,.10)}
.cta-h{font-size:15px;line-height:1.5;color:var(--txt)}
.cta-s{font-size:13px;color:var(--mut);margin-top:6px;line-height:1.5}
.cta-go{margin-top:13px;background:var(--panel);border:1px solid var(--line2);color:var(--txt);border-radius:var(--r2);font-size:13.5px;font-weight:600;padding:11px 18px;width:100%}
.pf-cta.win .cta-go{background:var(--acc);color:#06231a;border-color:var(--acc)}
.pf-cta.win .cta-go:hover{background:#4fe8a6}
.cta-fine{font-size:10.5px;color:var(--mut2);margin-top:10px;line-height:1.5}
@media(max-width:880px){ body.pf-detail .pf-cta{position:sticky;bottom:0;margin-bottom:0;border-radius:var(--r) var(--r) 0 0} }
@media(prefers-reduced-motion:reduce){ .pf-hero.win .ph-big.pos{text-shadow:none} }
.ph-trades{margin-top:9px;font-size:12.5px;color:var(--mut)}
.ph-trades .pht-n{font:700 14px var(--mono);color:var(--txt)}
.ph-trades .pos{color:var(--acc)} .ph-trades .neg{color:var(--neg)}
/* paper leaderboard */
.lb-banner{padding:11px 14px;margin:0;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--txt);line-height:1.5;background:linear-gradient(180deg,rgba(61,220,151,.06),transparent)}
.lb-row .lb-rank{font:700 13px var(--mono);color:var(--mut);text-align:center}
.lb-row .lb-rank.top{color:var(--acc)}
.lb-row:hover{background:#181d25}
