/* PaperTrade Hub – full-page Trading Terminal layout. Loaded only on /terminal/. Builds on style.css (colours, buttons) and the chart-pane classes from panes.js / draw.js. */
body.termpage{margin:0;height:100vh;height:100dvh;overflow:hidden;background-image:none}
.term{display:flex;flex-direction:column;height:100vh;height:100dvh;min-width:0}
.tbar{flex:none;display:flex;align-items:center;gap:.7rem;min-height:44px;padding:.25rem .7rem;border-bottom:1px solid var(--brd);background:var(--card);overflow-x:auto;white-space:nowrap}
.tlogo{display:flex;align-items:center;flex:none}.tlogo img{height:26px;width:auto;display:block}.tlogo .logo-l{display:none}[data-theme=light] .tlogo .logo-d{display:none}[data-theme=light] .tlogo .logo-l{display:block}
.tlink{color:var(--mut);text-decoration:none;font-size:.85rem;padding:.2rem .5rem;border-radius:8px}.tlink:hover{color:var(--fg);background:var(--soft)}
.tstats{display:flex;gap:1rem;margin-left:auto;font-size:.8rem;color:var(--mut)}.tstats b{color:var(--fg);font-variant-numeric:tabular-nums;margin-left:.2rem}
.tstats .pos,.pos{color:var(--up)}.tstats .neg,.neg{color:var(--dn)}
.tlay{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--mut)}.tlay select,.tlay button{padding:.2rem .5rem;font-size:.8rem;margin:0;width:auto}
.tbody{flex:1;min-height:0;display:flex;flex-direction:column;padding:6px;--lw:250px;--rw:320px;--bh:220px}
.trow{flex:1 1 0;min-height:0;display:flex}
.zone{display:flex;min-width:0;min-height:0;position:relative}
.zone[data-z=left]{flex:0 0 var(--lw);flex-direction:column}
.zone[data-z=right]{flex:0 0 var(--rw);flex-direction:column}
.zone[data-z=center]{flex:1 1 0;flex-direction:column}
.zone[data-z=bottom]{flex:0 0 var(--bh);flex-direction:row;min-height:0}
.zone.empty:not([data-z=center]){display:none}
.zone.empty[data-z=center]{align-items:center;justify-content:center}
.dropph{display:none;align-items:center;justify-content:center;text-align:center;color:var(--mut);font-size:.8rem;border:2px dashed var(--brd);border-radius:10px;padding:.5rem;flex:1}
.zone.empty .dropph{display:flex}
.tdragging .zone.empty{display:flex}.tdragging .zone[data-z=left].empty{flex:0 0 110px}.tdragging .zone[data-z=right].empty{flex:0 0 110px}.tdragging .zone[data-z=bottom].empty{flex:0 0 80px}
.tdragging .zone.over{outline:2px solid var(--ac);outline-offset:-2px;border-radius:10px;background:var(--glow)}.tdragging .zone.over .dropph{border-color:var(--ac);color:var(--fg)}
.tdragging,.tdragging *{cursor:grabbing!important;user-select:none}
.dropmark{flex:none;background:var(--ac);border-radius:3px;height:4px;margin:2px 0;box-shadow:0 0 8px var(--ac)}.dropmark.v{width:4px;height:auto;margin:0 2px;align-self:stretch}
.dghost{position:fixed;z-index:90;pointer-events:none;padding:.25rem .6rem;border-radius:8px;background:var(--ac);color:var(--btnfg);font-size:.8rem;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.tsplit{flex:none;width:8px;cursor:col-resize;position:relative;touch-action:none}.tsplit.h{width:auto;height:8px;cursor:row-resize}
.tsplit::after{content:"";position:absolute;inset:3px 3px;border-radius:3px;background:transparent;transition:background .15s}
.tsplit:hover::after,.tsplit.on::after,.tsplit:focus-visible::after{background:var(--ac)}
.tsplit[hidden]{display:none}
.tp{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--brd);border-radius:10px;background:var(--card);overflow:hidden}
.tp.dragging{opacity:.45}
.tph{flex:none;display:flex;align-items:center;gap:.4rem;padding:.15rem .35rem;border-bottom:1px solid var(--brd);font-size:.78rem;background:var(--soft)}
.tpt{font-weight:700;letter-spacing:.01em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdrag,.tmenu{padding:.05rem .45rem;margin:0;border:0;background:transparent;color:var(--mut);font-size:1rem;line-height:1.3;border-radius:6px;box-shadow:none}
.tdrag{cursor:grab;touch-action:none}.tdrag:hover,.tmenu:hover{background:var(--card);color:var(--fg);transform:none;box-shadow:none}
.tpb{flex:1 1 0;min-height:0;overflow:auto;position:relative;padding:.4rem}
.tp[data-p=charts] .tpb{padding:0;display:flex;flex-direction:column;overflow:hidden}
.tp[data-p=positions] .tpb,.tp[data-p=orders] .tpb,.tp[data-p=watchlist] .tpb{padding:0}
.tk-pad{padding:.6rem;margin:0}.tk-fine{font-size:.72rem;margin:.4rem 0 0;line-height:1.4}
/* chart toolbar */
.ct{flex:none;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.25rem .5rem;border-bottom:1px solid var(--brd);font-size:.8rem}
.ct .lb-btns{display:inline-flex;gap:.2rem}.ct .lb-btns button{padding:.1rem .5rem;font-size:.95rem;line-height:1.2;display:inline-flex;flex-direction:column;align-items:center}.ct .lb-btns small{font-size:.58rem;color:var(--mut)}.ct .lb-btns button.on{border-color:var(--ac);background:var(--glow)}
.lb-chk{display:inline-flex;align-items:center;gap:.3rem;color:var(--mut);cursor:pointer}.lb-chk input{width:auto;margin:0}.ct-hint{margin-left:auto;font-size:.72rem}
.term #panegrid{flex:1 1 0;min-height:0;height:auto;display:grid;gap:6px;padding:6px}
.term #panegrid.l1{grid-template:minmax(0,1fr) / minmax(0,1fr)}
.term #panegrid.l2{grid-template:minmax(0,1fr) / repeat(2,minmax(0,1fr))}
.term #panegrid.l2s{grid-template:repeat(2,minmax(0,1fr)) / minmax(0,1fr)}
.term #panegrid.l4{grid-template:repeat(2,minmax(0,1fr)) / repeat(2,minmax(0,1fr))}
.term #panegrid .pane{min-height:0;min-width:0;height:auto}
.term #panegrid .pane-head{display:flex;padding:.2rem .4rem;gap:.4rem}
.term #panegrid .pane-mainwrap{flex:1 1 0;min-height:60px;height:auto}
.term #panegrid .pane-main{position:absolute;inset:0;height:auto}
.term #panegrid .pane-subs{flex:0 1 auto;max-height:45%;overflow:auto}
.term #panegrid .subchart{height:90px}.term #panegrid.multi .subchart{height:70px}
.term #panegrid .pane-ipop{position:absolute;top:34px;left:6px;right:6px;z-index:8;max-height:70%;overflow:auto;border:1px solid var(--brd);border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.4)}
.term #panegrid .pane-status{position:absolute;left:8px;bottom:4px;z-index:2;margin:0;font-size:.72rem}
.term #panegrid .pane-empty{z-index:1}
.term #panegrid .pane-asset{padding:.1rem .5rem;margin:0}.term #panegrid .pane-act{white-space:nowrap}
/* ticket */
.tk-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.tk-head b{font-size:1.05rem}.tk-pr{text-align:right}.tk-pr .big{display:block;font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.term .src{font-size:.7rem;margin:.3rem 0;padding:.15rem .5rem;border-radius:99px;border:1px solid var(--brd);color:var(--mut);display:inline-block}
.term .src.live{color:var(--up);border-color:var(--up)}.term .src.delayed,.term .src.eod{color:var(--warnbd);border-color:var(--warnbd)}.term .src.sim{color:var(--dn);border-color:var(--dn)}
.tk-closed{font-size:.78rem;margin:.3rem 0;padding:.3rem .5rem}
.tk-type{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:.3rem 0;border:1px solid var(--brd);border-radius:10px;overflow:hidden}
.tk-type button{border:0;border-radius:0;margin:0;padding:.35rem;font-size:.82rem;background:transparent;box-shadow:none;transform:none}.tk-type button.on{background:var(--ac);color:var(--btnfg);font-weight:700}
.tk-typehelp{margin:0 0 .4rem;font-size:.74rem}
.tk-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.tp[data-p=ticket] label{display:block;font-size:.74rem;color:var(--mut);margin:.2rem 0}.tp[data-p=ticket] input,.tp[data-p=ticket] select{width:100%;box-sizing:border-box;margin:.1rem 0 0;padding:.4rem .5rem;font-size:.9rem}
.tk-lv label.armed input{border-color:var(--ac);box-shadow:0 0 0 2px var(--glow)}.lv-sl span{color:var(--dn)}.lv-tp span{color:var(--up)}
.tk-quick{display:flex;gap:.3rem;flex-wrap:wrap;margin:.3rem 0}.tk-quick .sm{padding:.15rem .5rem;font-size:.72rem}
#est{font-size:.75rem;margin:.3rem 0;min-height:1.1em}
.tk-bs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.4rem}.tk-bs button{display:flex;flex-direction:column;align-items:center;gap:0;padding:.65rem .3rem;border:0;font-size:1rem;line-height:1.25;margin:0}.tk-bs button small{font-size:.75rem;font-weight:500;opacity:.9;font-variant-numeric:tabular-nums}.tk-bs .buy{background:var(--up);color:#04140a}.tk-bs .sell{background:var(--dn);color:#fff}
.msg{font-size:.78rem;margin:.4rem 0 0;min-height:1em}
/* tables & lists */
.tk-tabs{display:flex;gap:.2rem;padding:.25rem .4rem;border-bottom:1px solid var(--brd);position:sticky;top:0;background:var(--card);z-index:2}.tk-tabs button{padding:.15rem .6rem;font-size:.78rem;margin:0}.tk-tabs button.on{border-color:var(--ac);background:var(--glow)}.tk-tabs i{font-style:normal;color:var(--mut);margin-left:.2rem}.tk-tabs .flash{box-shadow:0 0 0 2px var(--warnbd)}
.tw table{width:100%;border-collapse:collapse;font-size:.76rem;font-variant-numeric:tabular-nums}.tw th{position:sticky;top:0;background:var(--card);text-align:left;font-weight:600;color:var(--mut);padding:.3rem .5rem;white-space:nowrap}.tw td{padding:.25rem .5rem;border-top:1px solid var(--brd);white-space:nowrap}
.tp[data-p=orders] .tw th{top:0}.tp[data-p=positions] .tw th{top:0}
.term .mini{width:5.2rem;padding:.15rem .3rem;font-size:.76rem;margin:0}.term td .sm{padding:.1rem .45rem;font-size:.72rem;margin:0}
.events{list-style:none;margin:0;padding:.4rem .6rem;font-size:.76rem}.events li{padding:.2rem 0;border-bottom:1px solid var(--brd)}.events .pos{color:var(--up)}.events .neg{color:var(--dn)}.events .warn{color:var(--warnbd)}
.wlist{list-style:none;margin:0;padding:.3rem;display:flex;flex-direction:column;gap:.2rem}.wlist li{display:flex;gap:.3rem}.wlb{flex:1;display:grid;grid-template-columns:1fr auto auto;gap:.5rem;text-align:left;padding:.3rem .5rem;font-size:.8rem;margin:0}.wlb em{font-style:normal;min-width:3.6rem;text-align:right}.wlb em.pos{color:var(--up)}.wlb em.neg{color:var(--dn)}
.acc{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem}.acc div{border:1px solid var(--brd);border-radius:10px;padding:.4rem .6rem}.acc span{display:block;font-size:.7rem;color:var(--mut)}.acc b{font-size:1rem;font-variant-numeric:tabular-nums}
.tp[data-p=trending] .tpb{padding:.3rem}
.term .trendpanel{font-size:.8rem}
.pmenu{position:fixed;z-index:95;width:170px;background:var(--card);border:1px solid var(--ac);border-radius:10px;padding:.3rem;display:flex;flex-direction:column;gap:.1rem;box-shadow:0 10px 30px rgba(0,0,0,.5)}.pmenu small{color:var(--mut);padding:.1rem .4rem;font-size:.7rem}.pmenu hr{border:0;border-top:1px solid var(--brd);margin:.2rem 0;width:100%}.pmenu button{text-align:left;padding:.3rem .5rem;font-size:.8rem;margin:0;border:0;background:transparent}.pmenu button:hover:not(:disabled){background:var(--soft)}.pmenu button:disabled{opacity:.4}
.tfoot{flex:none;display:flex;gap:.6rem;align-items:center;flex-wrap:nowrap;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:.2rem .7rem;border-top:1px solid var(--brd);background:var(--card);font-size:.68rem;color:var(--mut)}.tfoot strong{color:var(--fg)}.tfoot span{overflow:hidden;text-overflow:ellipsis}
.termlink{margin:.2rem 0 .6rem}
@media(max-width:1100px) and (min-width:901px){.zone[data-z=left]{flex-basis:min(var(--lw),200px)}.zone[data-z=right]{flex-basis:min(var(--rw),280px)}.tstats span:nth-child(n+3){display:none}}
/* phones & small tablets: panels stack in a single column (page scrolls), charts first */
@media(max-width:900px){
 body.termpage{height:auto;overflow:auto}.term{height:auto;min-height:100dvh}
 .tbar{position:static;flex-wrap:wrap;overflow:visible;white-space:normal;gap:.3rem .6rem}.tstats{margin-left:0;gap:.6rem;width:100%;order:5;flex-wrap:wrap}.tlay{flex-wrap:wrap}
 .tbody{display:block;padding:6px}.trow{display:flex;flex-direction:column;min-height:0}
 .zone,.zone[data-z=left],.zone[data-z=right],.zone[data-z=center],.zone[data-z=bottom]{flex:none;flex-direction:column;width:auto;margin-bottom:8px}
 .zone[data-z=center]{order:1}.zone[data-z=right]{order:2}.zone[data-z=left]{order:3}.zone[data-z=bottom]{display:flex;margin-top:0}
 .trow{display:flex}.trow .tsplit,.tsplit{display:none}
 .zone[data-z=bottom]{margin-top:0}
 .tp{flex:none!important;min-height:220px;max-height:75vh}
 .tp[data-p=charts]{height:84vh;max-height:none;min-height:480px}
 .tp[data-p=ticket]{max-height:none}
 .term #panegrid.l2,.term #panegrid.l4{grid-template:none;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(300px,1fr);overflow:auto}
 .term #panegrid.l2s{grid-template:none;grid-auto-rows:minmax(300px,1fr)}
 .tp[data-p=charts]:has(.l2),.tp[data-p=charts]:has(.l2s){height:auto}
 .tpb{flex:1 1 auto}.tp[data-p=charts] .tpb{flex:1 1 0}
 .tdrag{display:none}.ct-hint{display:none}
 .tfoot{white-space:normal;flex-wrap:wrap}
}

.tk-foot{position:sticky;bottom:-.4rem;background:var(--card);padding:.2rem 0 .1rem;margin-top:.3rem;border-top:1px solid var(--brd);z-index:3}
