:root{
  --bg:#0a0e17; --panel:#0f1420; --panelhead:#141a29; --border:#232c40; --text:#e7ebf3; --sub:#7d8aa3;
  --up:#22c58b; --down:#ef5a5f; --accent:#4c8dff; --ema9:#f5a623; --ema20:#c77dff; --ema200:#6ee7f0; --vwap:#ff6f9c;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    --bg:#eef1f6; --panel:#ffffff; --panelhead:#f4f6fa; --border:#dde2ec; --text:#161a22; --sub:#667085;
    --up:#0f9d58; --down:#d93025;
  }
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:13px}
header{position:sticky;top:0;padding:12px 14px calc(12px + env(safe-area-inset-top,0px));background:var(--panelhead);border-bottom:1px solid var(--border);z-index:20}
.headtop{display:flex;justify-content:space-between;align-items:center;gap:8px}
h1{margin:0;font-size:15px}
.sub{color:var(--sub);font-size:11px;margin-top:1px}
.livedot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--up);margin-right:5px;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.filterToggle{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:11.5px;white-space:nowrap}
.filterToggle.active{background:var(--accent);border-color:var(--accent);color:#fff}
.headActions{display:flex;gap:8px;align-items:center;position:relative;z-index:3}
.headActions>button{position:relative;z-index:1;isolation:isolate;cursor:pointer}
.soundToggle{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 10px;font-size:11.5px;white-space:nowrap}
.soundToggle .swdot{width:8px;height:8px;border-radius:50%;background:var(--sub)}
.soundToggle.on{border-color:var(--up);color:var(--up)}
.soundToggle.on .swdot{background:var(--up)}
.gearBtn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;width:32px;height:32px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.modalBackdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;align-items:flex-end;justify-content:center}
.modalBackdrop.open{display:flex}
@media(min-width:600px){.modalBackdrop{align-items:center}}
.modalPanel{background:var(--panel);border:1px solid var(--border);border-radius:14px 14px 0 0;width:100%;max-width:480px;max-height:80vh;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
@media(min-width:600px){.modalPanel{border-radius:14px;max-height:70vh}}
.modalHead{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.modalTitle{font-size:14px;font-weight:600}
.modalClose{cursor:pointer;color:var(--sub);font-size:16px;padding:2px 6px}
.modalTabs{display:flex;gap:8px;padding:12px 16px 0}
.modalTab{flex:1;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:9px;padding:8px;font-size:12.5px;cursor:pointer}
.modalTab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.modalBody{padding:14px 16px 18px}
.soundRows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.soundRow{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:9px;padding:8px 10px}
.soundRow .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.soundRow .lvlName{width:52px;font-weight:600;font-size:12.5px;flex-shrink:0}
.soundRow .status{flex:1;font-size:11px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.soundRow .iconBtn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;width:26px;height:26px;font-size:11px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.soundRow .uploadLabel{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 8px;font-size:10.5px;cursor:pointer;flex-shrink:0}
.soundRow input[type="file"]{display:none}
.bgRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#pageBgUpload, #widgetBgUpload{display:none}

/* Custom page background: a fixed full-screen layer sitting behind everything */
#pageBgLayer{position:fixed;inset:0;z-index:-2;background-size:cover;background-position:center;background-repeat:no-repeat;
  background-image:var(--page-bg-image, none);opacity:var(--page-bg-opacity, 1);pointer-events:none}

/* Custom widget background: a pseudo-element behind each panel's content so
   text/tables stay fully legible on top of it */
.panel{position:relative;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;min-width:180px;min-height:140px}
.panel-fill{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.panel-fill::-webkit-scrollbar{display:none}
.panel-fixed{flex-shrink:0}
.colBtn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;color:var(--sub);user-select:none}
.colBtn:hover{background:rgba(127,127,127,.15)}
.span-group{display:flex;align-items:center;gap:1px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:1px 3px;margin-right:4px}
.span-btn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:16px;font-size:10px;font-weight:700;color:var(--sub);cursor:pointer;border-radius:3px;user-select:none}
.span-btn:hover{background:var(--panelhead);color:var(--text)}
.span-label{font-size:8px;color:var(--sub);padding:0 1px;letter-spacing:.02em}
.panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:var(--widget-bg-image, none);background-size:cover;background-position:center;
  opacity:var(--widget-bg-opacity, 1)}
.panel-head, .tablewrap, #breadthBody, .closed-note{position:relative;z-index:1}
/* Only lighten the panel's own solid backgrounds when a widget image is actually set,
   so nothing changes visually until this feature is used */
body.has-widget-bg .panel-head{background:color-mix(in srgb, var(--panelhead) 82%, transparent)}
body.has-widget-bg .tablewrap, body.has-widget-bg #breadthBody, body.has-widget-bg .closed-note{
  background:color-mix(in srgb, var(--panel) 82%, transparent)}
body.has-widget-bg th{background:color-mix(in srgb, var(--panelhead) 82%, transparent)}
#filterPanel{display:none;margin-top:10px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px}
#filterPanel.open{display:block}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fitem{display:flex;flex-direction:column;gap:3px}
.fitem label{font-size:10px;color:var(--sub)}
.fitem input, .fitem select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 7px;font-size:12px;width:100%}
.fwide{grid-column:1/-1}
.indRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px;align-items:center}
.ind-chip{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--sub);border:1px solid var(--border);border-radius:7px;padding:5px 8px;cursor:pointer}
.ind-chip input{accent-color:var(--accent)}
.ind-chip .dot{width:8px;height:8px;border-radius:50%}
.ind-colorItem{display:flex;align-items:center;gap:4px}
.colorPick{width:20px;height:20px;padding:0;border:1px solid var(--border);border-radius:5px;background:none;cursor:pointer}
.colorPick::-webkit-color-swatch-wrapper{padding:1px}
.resetColorsBtn{background:transparent;border:1px solid var(--border);color:var(--sub);border-radius:7px;padding:4px 8px;font-size:10.5px;cursor:pointer}
.toggleRow{display:flex;gap:6px;flex-wrap:wrap}
.toggle-btn{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:7px;padding:6px 10px;font-size:11.5px;cursor:pointer}
.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.factions{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:8px}
.factions .count{font-size:11px;color:var(--sub)}
.resetBtn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:7px;padding:6px 10px;font-size:11.5px}
main{padding:6px;max-width:none;margin:0;display:flex;flex-direction:column;gap:6px;height:100vh;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}
main::-webkit-scrollbar{display:none;width:0;height:0}
.dashboard-bottom-handle{flex-shrink:0;height:10px;width:100%;cursor:row-resize;position:relative;touch-action:none;margin-top:2px}
.dashboard-bottom-handle::after{content:"";position:absolute;left:0;right:0;top:3px;height:3px;border-radius:3px;background:var(--border)}
.dashboard-bottom-handle:hover::after,.dashboard-bottom-handle.dragging::after{background:var(--accent)}
#panelsContainer{display:flex;gap:10px;flex:1;min-height:0;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}
#panelsContainer::-webkit-scrollbar{display:none;width:0;height:0}
.resize-handle-col{flex:0 0 8px;width:8px;cursor:col-resize;position:relative;z-index:5;touch-action:none}
.resize-handle-col::after{content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background:transparent;border-radius:2px}
.resize-handle-col:hover::after,.resize-handle-col.dragging::after{background:var(--accent)}
.resize-handle-row{flex:0 0 8px;height:8px;cursor:row-resize;position:relative;z-index:5;touch-action:none}
.resize-handle-row::after{content:"";position:absolute;top:3px;left:0;right:0;height:2px;background:transparent;border-radius:2px}
.resize-handle-row:hover::after,.resize-handle-row.dragging::after{background:var(--accent)}
.row-resize-handle{flex:0 0 6px;height:6px;cursor:row-resize;position:relative;z-index:5;touch-action:none}
.row-resize-handle::after{content:"";position:absolute;top:2px;left:0;right:0;height:2px;background:transparent;border-radius:2px}
.row-resize-handle:hover::after,.row-resize-handle.dragging::after{background:var(--accent)}
.panel.dragging{opacity:0.4}
.drag-handle{cursor:grab;touch-action:none;font-size:15px;padding:0 4px;user-select:none;color:var(--sub)}
.drag-handle:active{cursor:grabbing}
.panel.dragging{opacity:.5;outline:2px dashed var(--accent);outline-offset:2px}
.panel.drag-over-top{box-shadow:inset 0 3px 0 var(--accent)}
.panel.drag-over-bottom{box-shadow:inset 0 -3px 0 var(--accent)}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:11px}
.panel-head{background:var(--panelhead);padding:9px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0}
/* The content area (whatever follows the header) stretches to fill all
   remaining panel height, so resizing/growing a panel actually grows its
   visible content instead of leaving empty space below it. Scrolling still
   works for overflow, but the scrollbar itself is hidden for a cleaner look. */
.panel > *:last-child{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}
.panel > *:last-child::-webkit-scrollbar{display:none;width:0;height:0}
.panel-head .title{font-size:12.5px;font-weight:600}
.panel-head .title{display:flex;align-items:center;gap:6px}
.formula-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:1px solid var(--sub);border-radius:50%;background:transparent;color:var(--sub);font:700 11px/1 system-ui;cursor:help;vertical-align:middle;flex:0 0 auto}
.formula-help:hover,.formula-help:focus-visible,.formula-help.open{border-color:var(--accent);color:var(--accent);outline:none}
.formula-help-text{display:none}
.formula-tooltip-global{position:fixed;z-index:10000;width:min(370px,calc(100vw - 24px));max-height:min(55vh,420px);overflow:auto;padding:11px 12px;border:1px solid var(--accent);border-radius:9px;background:var(--panel);box-shadow:0 14px 38px rgba(0,0,0,.55);color:var(--text);font:400 11px/1.45 system-ui;text-align:left;white-space:pre-line;pointer-events:none}
.panel-filter-summary{font-size:10px;color:var(--sub);white-space:normal}
.breadth-filter-summary{font-size:9px;color:var(--sub);font-weight:400;margin-left:4px}
.breadthFold:not([open]) .breadth-filter-summary{display:none}
.panel.bound-panel{box-shadow:inset 0 0 0 2px var(--accent)}
.panel.bound-panel>.panel-head::before{content:"GROUP";position:absolute;right:70px;top:8px;color:var(--accent);font-size:8px;font-weight:800;letter-spacing:.08em}
body.bind-mode .panel{cursor:crosshair}
body.bind-mode .panel:hover{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 65%,transparent)}
#bindModeBtn.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
.breadthFold>summary{display:flex;align-items:center;gap:6px}
.breadthFold>summary .formula-help{display:inline-flex}
.panel-head .sub{font-size:10px}
.panel-actions{display:flex;gap:10px;color:var(--sub);font-size:13px}
.panel-actions span{cursor:pointer}
.panel-mute-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--sub);font-size:9px;font-weight:800;letter-spacing:.04em;user-select:none;transition:none}
.panel-mute-btn.muted{background:var(--down);border-color:var(--down);color:#fff}
.panel-mute-btn.muted{opacity:.5;filter:grayscale(1)}
.tablewrap{overflow-x:auto;overflow-y:auto;flex:1;min-height:0;scrollbar-width:none;-ms-overflow-style:none}
.tablewrap::-webkit-scrollbar{display:none}
table{width:100%;border-collapse:collapse;min-width:700px}
th,td{padding:6px 8px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}
th:nth-child(1),td:nth-child(1){text-align:left}
th:nth-child(2),td:nth-child(2){text-align:left}
th{position:sticky;top:0;background:var(--panelhead);font-size:10px;color:var(--sub);font-weight:600;border-bottom:1px solid var(--border);z-index:1}
tbody tr{border-bottom:1px solid var(--border)}
tbody tr.new{animation:flash 1.4s ease-out}
@keyframes flash{0%{background:rgba(76,141,255,.35)}100%{background:transparent}}
a.sym{color:var(--accent);text-decoration:none;font-weight:700}
a.sym:active{opacity:.7}
a.sym.up{color:var(--up)}
a.sym.down{color:var(--down)}
.ema-badge{font-size:10px;padding:1px 6px;border-radius:5px;font-weight:700}
.ema-badge.e9{background:color-mix(in srgb, var(--ema9) 18%, transparent);color:var(--ema9)}
.ema-badge.e20{background:color-mix(in srgb, var(--ema20) 18%, transparent);color:var(--ema20)}
.ema-badge.e200{background:color-mix(in srgb, var(--ema200) 18%, transparent);color:var(--ema200)}
.ema-badge.vwap{background:color-mix(in srgb, var(--vwap) 18%, transparent);color:var(--vwap)}
.outcome-badge{font-size:10px;padding:1px 6px;border-radius:5px;font-weight:700}
.outcome-badge.positive{background:rgba(34,197,139,.18);color:var(--up)}
.outcome-badge.failed{background:rgba(239,90,95,.18);color:var(--down)}
.outcome-badge.holding{background:rgba(127,127,127,.15);color:var(--sub)}

.boardCols{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));grid-auto-rows:minmax(0,1fr);gap:8px;padding:10px}
.boardCol{display:flex;flex-direction:column;min-height:0;min-width:0}
.boardColHead{flex-shrink:0}
.boardColHead{font-size:10.5px;font-weight:700;padding:6px 8px;border-radius:7px 7px 0 0;background:var(--panelhead);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:6px}
.boardColHead .lvlName{text-transform:uppercase;letter-spacing:.02em}
.boardColHead .lvlCounts{display:flex;gap:5px;font-size:10px;font-weight:700}
.boardColHead .lvlCounts .up{color:var(--up)}
.boardColHead .lvlCounts .hold{color:var(--sub)}
.boardColHead .lvlCounts .down{color:var(--down)}
.boardList{background:var(--panelhead);border-radius:0 0 8px 8px;flex:1;min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:5px}
.boardChip{flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;padding:6px 7px;font-size:11px;display:flex;flex-direction:column;gap:2px}
.boardChip.outc-positive{border-left-color:var(--up)}
.boardChip.outc-holding{border-left-color:var(--sub)}
.boardChip.outc-failed{border-left-color:var(--down)}
.boardChip .bcSym{font-weight:700;font-size:12px;display:flex;justify-content:space-between;align-items:baseline}
.boardChip .bcPrice{font-weight:600;font-size:10.5px;color:var(--sub);font-variant-numeric:tabular-nums}
.boardChip .bcMeta{color:var(--sub);font-size:9.5px;display:flex;justify-content:space-between;gap:4px}
.boardEmpty{color:var(--sub);font-size:10.5px;text-align:center;padding:10px 4px}
@media(max-width:420px){
  .boardCols{grid-template-columns:1fr}
  .boardColHead{border-radius:7px}
  .boardList{border-radius:8px;margin-bottom:2px}
}
.breadth-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12.5px;flex-wrap:wrap;cursor:pointer}
.breadth-row:hover .breadth-lvl{color:var(--accent)}
.breadth-dropdown{display:none;width:100%;padding:6px 0 4px 20px;flex-wrap:wrap;gap:5px}
.breadth-row.open .breadth-dropdown{display:flex}
.breadth-drop-chip{font-size:10.5px;padding:2px 7px;border-radius:10px;border:1px solid var(--border);display:flex;gap:5px;align-items:center}
.breadth-drop-chip .up{color:var(--up)}.breadth-drop-chip .down{color:var(--down)}.breadth-drop-chip .hold{color:var(--sub)}
.breadth-row:last-child{border-bottom:none}
.breadth-lvl{width:62px;font-weight:700;flex-shrink:0;display:flex;flex-direction:column;line-height:1.25}
.breadth-bar{flex:1;height:8px;border-radius:4px;background:var(--panelhead);overflow:hidden;display:flex}
.breadth-bar .pos{background:var(--up)}
.breadth-bar .neg{background:var(--down)}
.breadth-bar .hold{background:var(--sub);opacity:.55}
.breadth-pct{width:150px;text-align:right;color:var(--sub);font-size:11px;flex-shrink:0;line-height:1.3}
.breadth-vol{width:54px;text-align:right;color:var(--sub);font-size:11px;flex-shrink:0}
.breadth-count{display:flex;gap:6px;font-weight:600;font-size:12px;text-align:right}
.breadth-count .up{color:var(--up)}
.breadth-count .hold{color:var(--sub)}
.breadth-count .down{color:var(--down)}
.breadth-header{display:flex;align-items:center;gap:10px;padding:2px 0 6px;font-size:10px;color:var(--sub);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);margin-bottom:4px}
#sessionTotalsBody{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;padding:20px 0;align-items:center}
.session-badge{flex:0 1 160px;min-width:108px;max-width:160px;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;text-align:center;gap:3px;border:2px solid var(--border);cursor:pointer;will-change:transform;transition:transform 0.25s ease;container-type:inline-size}
.session-badge:hover{transform:translateY(-14px)}
.session-badge.up{border-color:var(--up);background:rgba(52,197,148,0.1)}
.session-badge.down{border-color:var(--down);background:rgba(235,59,90,0.1)}
.session-badge.neutral{border-color:var(--border);background:rgba(148,163,184,0.08)}
.session-badge.extended{border-color:var(--accent);background:rgba(76,141,255,0.1)}
.session-badge.extended .session-badge-rate{color:var(--accent)}
.session-badge-label{font-size:clamp(9px, 7cqw, 12px);color:var(--sub);text-transform:uppercase;letter-spacing:.05em}
.session-badge-rate{font-size:clamp(18px, 24cqw, 42px);line-height:1}
.session-badge-rate.up{color:var(--up)}
.session-badge-rate.down{color:var(--down)}
.session-badge-rate.neutral{color:var(--sub)}
.session-badge-meta{font-size:clamp(7px, 5.5cqw, 9px);color:var(--sub)}
.session-badge-details{font-size:clamp(8px, 6.5cqw, 11px);font-weight:600;display:flex;gap:6px;margin-top:2px}
.session-badge-details .up{color:var(--up)}
.session-badge-details .hold{color:var(--sub)}
.session-badge-details .down{color:var(--down)}
.breadth-section-label{font-size:10.5px;font-weight:700;color:var(--sub);padding:10px 0 5px;text-transform:uppercase;letter-spacing:.02em}
.breadth-section-label:first-child{padding-top:0}
.breadth-row.dragging{opacity:.5}
.drag-handle-sm{cursor:grab;touch-action:none;font-size:12px;padding:0 5px 0 0;color:var(--sub);user-select:none;flex-shrink:0}
.drag-handle-sm:active{cursor:grabbing}
.up{color:var(--up)} .down{color:var(--down)} .hold{color:var(--sub)}
.closed-note{padding:14px;color:var(--sub);font-size:12px;display:flex;justify-content:space-between;align-items:center}
.closed-note button{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:6px 10px;font-size:11.5px}
footer{color:var(--sub);font-size:10.5px;padding:2px 4px 10px}
code{background:rgba(127,127,127,.15);padding:1px 5px;border-radius:4px}
.empty-row td{text-align:center;color:var(--sub);padding:14px}
.panel-tf-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.panel-tf-btn{font-size:10px;padding:2px 7px;border-radius:10px;border:1px solid var(--border);cursor:pointer;color:var(--sub);user-select:none;transition:none}
.panel-tf-btn.active{border-color:var(--accent);color:var(--accent);font-weight:700}
.panel-tf-btn.master-disabled{opacity:0.55;pointer-events:auto;cursor:pointer}

/* Keep scrollbar geometry stable; reveal only the thumb during scrolling. */
html,body,body *{scrollbar-width:thin;scrollbar-color:transparent transparent}
html.is-scrolling,body.is-scrolling,body .is-scrolling{scrollbar-color:var(--sub) transparent}
html::-webkit-scrollbar,body::-webkit-scrollbar,body *::-webkit-scrollbar{display:block;width:6px;height:6px}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{background:transparent;border-radius:6px}
html.is-scrolling::-webkit-scrollbar-thumb,body.is-scrolling::-webkit-scrollbar-thumb,body .is-scrolling::-webkit-scrollbar-thumb{background:var(--sub)}
body *::-webkit-scrollbar-track,body *::-webkit-scrollbar-corner{background:transparent}

/* Natural-height rows show each widget's content rather than compressing
   five widgets into one viewport. Explicit row resizing remains available. */
main{height:auto;min-height:calc(100vh - 64px);overflow:visible}
#panelsContainer{min-height:0;overflow:visible}
.panel.auto-sized{height:auto;min-height:180px}
.panel.auto-sized > :last-child{flex:1 0 auto;min-height:auto;overflow-x:auto;overflow-y:visible}
.panel.auto-sized .boardCols{grid-auto-rows:auto}
.panel.auto-sized .boardList{flex:1 0 auto;overflow:visible}
.panel-head{flex-wrap:wrap;min-width:0}
.panel.auto-sized .session-badge{flex-shrink:0}
.docking-active .row-resize-handle{background:rgba(76,141,255,.15)}
/* Override older per-panel rules that completely removed scrollbar tracks. */
html,body,body *{scrollbar-width:thin!important;scrollbar-color:transparent transparent!important}
html.is-scrolling,body.is-scrolling,body .is-scrolling{scrollbar-color:var(--sub) transparent!important}
html::-webkit-scrollbar,body::-webkit-scrollbar,body *::-webkit-scrollbar{display:block!important;width:6px!important;height:6px!important}

.headtop,.headActions{flex-wrap:wrap;row-gap:8px}
h1{white-space:nowrap}

/* Live Alerts reserves twenty complete rows; history scrolls inside it. */
#panelAlerts{min-height:calc(var(--alerts-header-height,72px) + var(--alerts-viewport-height,480px) + 2px)}
#panelAlerts > .tablewrap{flex:0 0 var(--alerts-viewport-height,480px);height:var(--alerts-viewport-height,480px);min-height:var(--alerts-viewport-height,480px);max-height:var(--alerts-viewport-height,480px);overflow:auto}
#panelAlerts table tr{height:30px}
#panelAlerts th,#panelAlerts td{line-height:16px;padding-top:6px;padding-bottom:6px}
#panelAlerts thead th{position:sticky;top:0;background:var(--panelhead);z-index:2}

/* A ticker keeps one card as its current lifecycle state changes. */
.boardChip{transition:border-color .25s,background-color .25s}
.boardChip.outc-positive{--ticker-state:var(--up)}
.boardChip.outc-failed{--ticker-state:var(--down)}
.boardChip.outc-holding{--ticker-state:var(--sub)}
.boardChip.outc-extended{--ticker-state:var(--accent)}
.boardChip{border-left-color:var(--ticker-state)}
.boardChip .sym,.boardChip .bcMeta{color:var(--ticker-state)}

.boardChip a.sym,.boardChip a.sym.up,.boardChip a.sym.down{color:var(--ticker-state)}

.session-count-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}
.session-count-toggle button{padding:5px 12px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);cursor:pointer}
.session-count-toggle button.active{background:var(--accent);color:white;border-color:var(--accent)}
#sessionCountSummary{font-size:11px;color:var(--sub)}

/* Indicator categories remain visible in both Live Count and Total. */

/* V10 compact terminal header */
header{padding:0;background:#25292f;border-color:#3b4048}
.terminalBar{min-height:46px;padding:5px 10px;gap:10px;flex-wrap:wrap;color:#c9cdd3}
.terminalBrand{display:flex;align-items:center;gap:7px;text-decoration:none;color:#b8d0d0;font-size:23px;font-weight:800;letter-spacing:-2px}
.terminalBrand span{font-size:10px;letter-spacing:1px;white-space:nowrap}
.terminalSearch{position:relative;margin:0;width:145px}
.terminalSearch input{width:100%;height:28px;border:1px solid #373c45;border-radius:3px;background:#1c2026;color:#e4e9ee;padding:5px 8px;font-size:11px}
#terminalSearchStatus:not(:empty){position:absolute;top:34px;left:0;background:#25292f;padding:8px;width:200px;border:1px solid #59616c;font-size:11px}
.terminalShortcuts{display:flex;gap:3px}
.terminalShortcuts button{height:32px;min-width:auto;padding:0 5px;background:transparent;color:var(--ink);border:0;border-radius:0;font-size:10px;font-weight:800;cursor:pointer}
.terminalShortcuts button:hover{color:var(--text);text-decoration:underline;text-underline-offset:4px}
.terminalStatus{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:9px;letter-spacing:.5px}
.terminalStatus i{height:5px;width:5px;background:#91ce72;border-radius:50%}
.terminalStatus small{display:block;color:#949ca7;font-size:8px;letter-spacing:0;margin-top:2px}
.terminalClock{font-size:10px;font-variant-numeric:tabular-nums;text-align:center;min-width:61px;color:#c7ccd4}
.terminalClock small{display:block;font-size:8px;color:#8d96a3}
.terminalBar .headActions{gap:4px}
.terminalBar .headActions button{border-color:#454b55;border-radius:3px;color:#cbd1da!important;background:#2b3038;font-size:10px;padding:5px 7px;min-height:28px}
.terminalBar .gearBtn{width:28px;height:28px}
header #filterPanel{background:var(--panelhead);color:var(--text)}
.panel{scroll-margin-top:100px}
.terminalFound{outline:2px solid #e7bc58!important;outline-offset:3px}
@media(max-width:850px){.terminalBar .headActions{width:100%;flex-wrap:wrap}.terminalBrand span{display:none}.terminalStatus{margin-left:auto}.terminalBar{gap:7px}}

/* V11 appearance palettes */
:root[data-theme]{color-scheme:dark}
:root[data-theme="dark"]{--bg:#0a0e17;--panel:#0f1420;--panelhead:#141a29;--border:#29344a;--text:#e7ebf3;--sub:#9aa8be;--accent:#649dff}
:root[data-theme="space"]{--bg:#080719;--panel:#10102b;--panelhead:#191638;--border:#3b3260;--text:#f0edff;--sub:#b3a9d5;--accent:#ae95ff}
:root[data-theme="hollywood"]{--bg:#16100f;--panel:#221916;--panelhead:#30231d;--border:#574331;--text:#fff1d6;--sub:#c8b597;--accent:#e5bc68}
:root[data-theme="space"] body{background-image:radial-gradient(ellipse at 15% 0%,#34235666,transparent 55%),radial-gradient(ellipse at 90% 70%,#173f5555,transparent 50%);background-attachment:fixed}
:root[data-theme="hollywood"] body{background-image:radial-gradient(ellipse at 50% 0%,#77502044,transparent 65%);background-attachment:fixed}
:root[data-theme="space"] header{background:#151127;border-color:#403461}
:root[data-theme="hollywood"] header{background:#241b17;border-color:#685034}
.themePicker{margin-bottom:18px}
.themePicker select{width:100%;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}
.themePicker p{margin:7px 0 0;line-height:1.4}

/* V12 workspace refinements */
main{padding-left:28px!important;padding-right:28px!important}
:root[data-theme] header{background:var(--panelhead);border-color:var(--border)}
.terminalBar .headActions button{background:var(--panel);border-color:var(--border);color:var(--text)!important}
.details-panel{min-height:720px}
.details-panel iframe{display:block;width:100%;height:100%;min-height:680px;border:0;background:var(--bg)}
.details-popout{color:var(--accent);font-size:9px;font-weight:800;text-decoration:none;padding:4px}
.details-popout:hover{text-decoration:underline}
.templateSaveDialog{width:min(420px,calc(100vw - 32px));border:1px solid var(--border);border-radius:10px;background:var(--panelhead);color:var(--text);padding:0;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.templateSaveDialog::backdrop{background:rgba(0,0,0,.65)}
.templateSaveDialog form{display:flex;flex-direction:column;gap:14px;padding:20px}.templateSaveDialog h2{margin:0;font-size:16px}.templateSaveDialog label{display:flex;flex-direction:column;gap:6px;color:var(--sub);font-size:11px}.templateSaveDialog input{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:9px}.templateSaveDialog p{margin:0;color:var(--sub);font-size:11px;line-height:1.45}.templateSaveDialog form>div{display:flex;justify-content:flex-end;gap:8px}.templateSaveDialog button{background:var(--panel);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:7px 14px;cursor:pointer}.templateSaveDialog #confirmTemplateSave{background:var(--accent);border-color:var(--accent);color:#fff}
.terminalSearch input{background:var(--panel);border-color:var(--border);color:var(--text)}
#scannerResults:not(:empty){position:absolute;top:33px;left:0;width:240px;background:var(--panel);color:var(--text);border:1px solid var(--border);padding:6px;box-shadow:0 8px 24px #0006;z-index:30}
#scannerResults button{display:block;width:100%;padding:10px;text-align:left;color:var(--text);background:transparent;border:0;cursor:pointer}
#scannerResults button:hover{background:var(--panelhead)}
.nestControls{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 18px}
.nestControls select,.nestControls button{max-width:100%;padding:7px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px}
#defaultStatus,#nestStatus{font-size:10px;color:var(--accent)}
#panelStocksUp #suTotal,#panelStocksUp #suHolding,#panelStocksUp #suRetraced,#panelStocksUp #suWinPct{font-size:16px!important}
@media(max-width:600px){main{padding-left:16px!important;padding-right:16px!important}}

/* V13 summary and clean widget boundaries */
.scannerSummary{padding:14px 12px 18px;text-align:center;border-bottom:1px solid var(--border)}
.scannerSummaryTitle{text-transform:uppercase;letter-spacing:.05em;color:var(--sub);font-size:10px;font-weight:600;margin-bottom:10px}
.scannerStats{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;align-items:center}
.scannerStats>div{display:flex;flex-direction:column;gap:3px}
.scannerStats>div:first-child{border-right:1px solid var(--border);padding-right:20px}
.scannerStats>div:last-child{border-left:1px solid var(--border);padding-left:20px}
#panelStocksUp .scannerStats strong{font-size:26px!important;font-weight:700}
#panelStocksUp .scannerStats #suWinPct{font-size:18px!important}
.scannerStats small{font-size:9.5px;color:var(--sub)}
.row-resize-handle,.resize-handle-col{pointer-events:none;background:transparent!important}
.row-resize-handle::after,.resize-handle-col::after{display:none}
.widgetEdge{position:absolute;z-index:20;touch-action:none}
.widgetEdge.top,.widgetEdge.bottom{height:14px;cursor:ns-resize}
.widgetEdge.top{top:0;left:35%;right:35%;pointer-events:none}.widgetEdge.bottom{bottom:0;left:8px;right:8px}
.widgetEdge.left,.widgetEdge.right{width:6px;top:6px;bottom:6px;cursor:ew-resize}
.widgetEdge.left{left:0}.widgetEdge.right{right:0}
.widgetEdge:hover{background:color-mix(in srgb,var(--accent) 30%,transparent)}
.panel.row-sized{min-height:140px!important}

/* V26: panels fill their assigned rectangle and crop/scroll excess content. */
.panel>.tablewrap,.panel>.panel-fill{flex:1 1 0!important;min-height:0!important;height:auto!important;max-height:none!important;overflow:auto!important}
#panelAlerts{min-height:140px}
#panelAlerts>.tablewrap{flex:1 1 0!important;height:auto!important;min-height:0!important;max-height:none!important}
#panelDetails>.detail-shell{flex:1 1 0;min-height:0;height:auto;overflow:auto}
#panelSessionTotals .sessionSplitArea{flex:1 1 0!important;height:auto!important;min-height:0!important}
#panelSessionTotals #sessionTotalsBody{width:max-content!important;flex-wrap:nowrap!important;transform-origin:center center}
#panelSessionTotals #breadthBody{width:max-content!important;transform-origin:center center}
.terminalBar .headActions>button{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.terminalBar .headActions>button:hover,.terminalBar .headActions>button:focus-visible{color:var(--accent)!important;text-decoration:underline;text-underline-offset:3px}

#panelStocksUp .scannerStats #suTotal,#panelStocksUp .scannerStats #suHolding,#panelStocksUp .scannerStats #suRetraced{font-size:26px!important}

#dataSourcesDialog{width:min(760px,94vw);max-height:85vh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:24px}
#dataSourcesDialog::backdrop{background:#0009}.dataClose{float:right}
#dataSourcesDialog button,#dataSourcesDialog input,#dataSourcesDialog select{background:var(--panelhead);color:var(--text);border:1px solid var(--border);padding:8px;border-radius:5px}
#dataSourcesDialog label{display:flex;gap:10px;align-items:center;margin:12px 0}#dataSourcesDialog small{display:block;color:var(--sub);margin-top:6px}.providerCards,.dataActions{display:flex;gap:10px;flex-wrap:wrap}.providerCards button{flex:1;padding:18px!important;text-align:left}
#providerQuotes{width:100%;font-size:12px}#providerQuotes td,#providerQuotes th{padding:8px;text-align:right}#providerQuotes td:first-child{text-align:left}
.breadthFold{border-top:1px solid var(--border);padding:12px}.breadthFold summary{cursor:pointer;font-weight:600}.breadthFold #breadthBody{overflow:auto}
th{position:relative}.columnGrip{position:absolute;right:-9px;top:0;bottom:0;width:18px;cursor:col-resize;touch-action:none;z-index:6}.columnGrip::after{content:"";position:absolute;left:8px;top:20%;bottom:20%;width:2px;border-radius:2px;background:transparent}.columnGrip:hover::after,.columnGrip:active::after{background:var(--accent)}th[draggable=true]{cursor:grab}

#panelBreadth{display:none!important}

#connectionFields label{display:flex;justify-content:space-between;gap:14px}#providerList{margin:16px 0}#capabilities{font-size:11px;color:var(--accent);line-height:1.8}#queryResult{max-height:180px;overflow:auto;font-size:11px}.connectionRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}

#dataSourcesDialog{width:min(900px,94vw);overflow-x:hidden}#providerQuotes{min-width:0;table-layout:fixed}#providerList button{min-width:120px;font-size:12px;line-height:1.4}#connectionFields input{max-width:65%}#activeConnections{overflow-wrap:anywhere}

/* V16 two-pane Connections window */
#dataSourcesDialog.connectionsWindow{width:min(740px,94vw);height:570px;max-height:88vh;padding:0;border-radius:3px;border:1px solid #425360;overflow:hidden;background:linear-gradient(145deg,#303a43,#202a33);color:#e9f1f5}
.connectionsWindow[open]{display:grid;grid-template-columns:255px minmax(0,1fr)}
.connectionClose{position:absolute;right:8px;top:5px;z-index:3}.connectionClose button{border:0!important;background:transparent!important;color:#b6c7d0!important;font-size:22px;padding:0 5px!important}
.connectionSidebar{background:linear-gradient(160deg,#1493a6,#087d92 70%,#076476);padding:26px 16px 16px;display:flex;flex-direction:column;min-height:0}
.connectionSidebar h3{font-size:12px;margin:0 0 10px;color:#daf7fa}.recentEmpty{font-size:11px;color:#c1e7ec;margin:3px 0 14px}
#dataSourcesDialog .providerSearch{display:flex;gap:5px;border-bottom:1px solid #70c6d580;margin:15px 0 12px}.providerSearch span{color:#a4d9e2}#dataSourcesDialog .providerSearch input{background:transparent;border:0;border-radius:0;width:100%;min-width:0;padding:8px 2px;font-size:11px;color:white}.providerSearch input::placeholder{color:#b6dce4;font-style:italic}
#dataSourcesDialog #providerList{display:block;overflow-y:auto;margin:0;flex:1;min-height:0}#providerList button{min-width:0!important}
.providerItem{display:flex;position:relative;align-items:center;flex-wrap:wrap;border:1px solid transparent;margin-bottom:3px;min-height:32px}.providerItem.selected{background:#a1d8e640;border-color:#a9e0eb}.providerItem:hover{background:#bde8ef22}
#dataSourcesDialog .providerItem button{background:transparent;border:0;border-radius:0;color:#effbff;padding:7px!important;font-size:12px;cursor:pointer}.providerChoose{flex:1;text-align:left;font-weight:600}.providerStar{width:30px;font-size:18px!important;color:#addde8!important}.providerItem small{width:100%;padding:0 7px 5px;font-size:8px;letter-spacing:1px;color:#b3dde4!important}.sidebarFooter{font-size:8px;letter-spacing:1.5px;color:#b0d8df;margin-top:18px}
.connectionMain{overflow:auto;padding:32px 38px 22px;min-width:0}.providerIdentity{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 0 24px;min-height:50px}.providerIdentity h2{font-size:25px;letter-spacing:-.5px;margin:0}.providerMonogram{border:2px solid #ebf3f5;padding:5px;font-size:20px;font-weight:800;line-height:1.1}.providerDescription{font-size:11px;color:#afc4d0;text-align:center;line-height:1.6;margin-bottom:25px}
#connectionFields{max-width:265px;margin:auto}#dataSourcesDialog #connectionFields label{display:flex;flex-direction:column;align-items:stretch;gap:5px;font-size:10px;color:#b0c7d5;margin:14px 0}#dataSourcesDialog #connectionFields input,#dataSourcesDialog #connectionFields select{max-width:100%;background:#14212a;border:1px solid #101a22;border-radius:0;color:#edf6fc;padding:9px}
#dataSourcesDialog .primaryConnectionButton{display:block;background:#0489a5;border:0;border-radius:0;color:white;font-size:11px;font-weight:700;letter-spacing:.5px;width:190px;margin:22px auto 12px;padding:10px;cursor:pointer}#dataSourcesDialog button:disabled{opacity:.45;cursor:not-allowed}.connectionTextButton{display:block;margin:auto;background:transparent!important;border:0!important;color:#68c4d9!important;font-size:10px}
#noCredentials,#connectionStatus{text-align:center;font-size:11px;color:#b5d1dd;line-height:1.6}.connectionGlyph{text-align:center;font-size:30px;color:#bacbd5;margin:12px 0}.connectionGlyph span{background:#368fe8;border-radius:50%;font-size:17px;padding:2px 5px;color:white}.connectionStatusCard{max-width:270px;margin:18px auto 0;background:#12212a;padding:20px;text-align:center;font-size:11px;line-height:1.9;border-radius:3px}.connectionStatusCard strong{display:block;color:#b7e6ee}
.connectionAdvanced{margin-top:34px;font-size:11px}.connectionAdvanced>summary{text-align:center;color:#60bdd2;cursor:pointer;font-size:11px}.connectionAdvanced[open]>summary{margin-bottom:18px}.connectionAdvanced .dataActions button{font-size:10px}#dataSourcesDialog .connectionAdvanced input,#dataSourcesDialog .connectionAdvanced select{max-width:100%;box-sizing:border-box}.connectionAdvanced table{font-size:9px!important}.connectionAdvanced th,.connectionAdvanced td{padding:4px!important}#activeConnections .connectionRow{align-items:flex-start;font-size:10px}
@media(max-width:600px){.connectionsWindow[open]{grid-template-columns:160px minmax(0,1fr)}.connectionSidebar{padding:22px 8px 12px}.connectionMain{padding:32px 14px 20px}.providerIdentity{gap:7px}.providerIdentity h2{font-size:18px}.providerMonogram{font-size:15px}.providerChoose{font-size:10px!important}#dataSourcesDialog .primaryConnectionButton{width:100%}}

button.terminalStatus{font-family:inherit;background:transparent;border:1px solid transparent;border-radius:4px;padding:5px 7px;color:inherit;text-align:left;cursor:pointer}button.terminalStatus:hover{background:var(--panel);border-color:var(--border)}button.terminalStatus:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* V17 compact fold and adjustable, centered content */
#panelSessionTotals .sessionSplitArea{display:flex;flex-direction:column;flex:0 0 auto!important;min-height:0!important;overflow:hidden!important;width:100%}
#panelSessionTotals .sessionSplitArea.breadth-open{height:520px;max-height:none}
#panelSessionTotals .totalsViewport{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}
#panelSessionTotals #sessionTotalsBody{position:relative;flex:none!important;min-height:0;height:auto;overflow:visible!important;transform-origin:center center;padding:10px!important;gap:12px;align-content:center;justify-content:center;box-sizing:border-box}
#panelSessionTotals .session-badge{flex:0 0 150px!important;min-width:150px;max-width:150px;width:150px!important;height:150px!important}
#panelSessionTotals .session-badge:hover{transform:none}
#panelSessionTotals .breadthFold{box-sizing:border-box;padding:0;min-height:0!important;overflow:hidden!important;margin:0;border-top:1px solid var(--border)}
#panelSessionTotals .breadthFold:not([open]){height:38px!important;flex:0 0 38px!important}
#panelSessionTotals .breadthFold>summary{height:38px;box-sizing:border-box;padding:11px 12px;font-size:12px;cursor:pointer}
#panelSessionTotals .breadthFold[open]{display:flex;flex-direction:column}
#panelSessionTotals .breadthViewport{height:calc(100% - 38px);display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}
#panelSessionTotals #breadthBody{flex:none;overflow:visible!important;height:auto;transform-origin:center center;box-sizing:border-box}
.sessionDivider{height:7px;flex:0 0 7px;cursor:row-resize;touch-action:none;position:relative;background:var(--panelhead)}
.sessionDivider:after{content:'';position:absolute;width:42px;height:2px;background:var(--sub);left:calc(50% - 21px);top:2px;border-radius:2px}.sessionDivider:hover:after,.sessionDivider:focus-visible:after{background:var(--accent)}
.sessionDivider[hidden]{display:none}
button.terminalStatus[data-connection-state="live"] i{background:#22c58b}button.terminalStatus[data-connection-state="delayed"] i{background:#e5bc68}

.sessionDivider:focus-visible{outline:none}.sessionDivider:focus-visible:after{height:3px;background:var(--accent)}

.dataLayers{border-block:1px solid var(--border);margin:18px 0;padding:10px 0}.dataLayers label{margin:10px 0 4px!important}.dataLayers button{margin:7px 4px 7px 0}.dataLayers dl{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dataLayers dd{margin:0;text-align:right}.dataLayers p{line-height:1.5}#dataReadiness{color:#e4c281}

/* V19 credentials-first login and independent header sources */
#providerNote{display:none}#providerConnectForm{padding-top:32px}#connectionFields{min-height:65px}#noCredentials:empty{display:none}#providerConnected .connectionStatusCard{margin-top:24px}
#connectionConfigFields label{display:flex;justify-content:space-between;gap:10px}
#headerConnections{display:flex;align-items:center;gap:8px;max-width:40vw;overflow-x:auto;flex-shrink:1}
.sourceChip{position:relative;flex:0 0 auto;text-align:left;background:transparent;border:1px solid transparent;border-radius:3px;padding:4px 7px 4px 17px;color:var(--text);font:inherit;cursor:pointer}
.sourceChip:before{content:'';position:absolute;left:5px;top:10px;width:5px;height:5px;border-radius:50%;background:var(--sub)}.sourceChip[data-state="connected"]:before{background:var(--up)}.sourceChip[data-state="error"]:before{background:var(--down)}.sourceChip span{font-size:10px;white-space:nowrap}.sourceChip small{display:block;font-size:8px;color:var(--sub);margin-top:2px}.sourceChip:hover{border-color:var(--border);background:var(--panel)}.sourceChip:focus-visible{outline:2px solid var(--accent)}
@media(max-width:700px){#headerConnections{max-width:100%;order:10;width:100%}}

/* V25: compact, top-document details surface keeps browser annotations addressable. */
.details-panel{min-height:260px}
.details-panel>.detail-shell{display:block;flex:1;min-height:0;overflow:auto;background:var(--bg)}
.details-panel.row-sized{min-height:140px}
.details-panel.row-sized>.detail-shell{min-height:0}
.panel.row-sized{align-self:flex-start}


/* V26: responsive panel fill, centered totals and borderless header actions. */
.panel{align-self:stretch;min-height:140px;overflow:hidden}
.panel.row-sized{align-self:stretch}
.panel>.tablewrap,.panel>.panel-fill{flex:1 1 0!important;min-height:0!important;height:auto!important;max-height:none!important;overflow:auto!important}
#panelAlerts{min-height:140px}
#panelAlerts>.tablewrap{flex:1 1 0!important;height:auto!important;max-height:none!important;overflow:auto!important}
.details-panel>.detail-shell{flex:1 1 0;min-height:0;overflow:auto}
#panelSessionTotals .sessionSplitArea{flex:1 1 0!important;height:auto!important;max-height:none!important;min-height:0!important}
#panelSessionTotals .sessionSplitArea.breadth-open{height:auto!important;max-height:none!important}
#panelSessionTotals .totalsViewport,#panelSessionTotals .breadthViewport{align-items:center;justify-content:center}
#panelSessionTotals #sessionTotalsBody{width:max-content!important;flex-wrap:nowrap!important;align-content:center;justify-content:center}
#panelSessionTotals #breadthBody{width:max-content!important}
.panel-actions>button,.panel-actions>.popout-btn,.top-actions>button{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.panel-actions>button:hover,.panel-actions>.popout-btn:hover,.top-actions>button:hover{color:var(--accent);background:transparent!important}

/* V27 independent rows and accessible top/bottom grips. */
.widgetEdge.top{pointer-events:auto!important;height:8px;left:8px;right:8px}
.widgetEdge.bottom{height:10px}
#panelsContainer{flex:0 0 auto!important;overflow:visible;max-height:none}
#panelsContainer>.tree-split{flex:0 0 auto!important}
.details-panel>.detail-shell{display:flex!important;flex-direction:column;overflow:hidden!important}
.details-panel .symbol-header{position:static!important;flex:0 0 auto;margin:0}
.details-panel .detail-scroll{flex:1 1 0;min-height:0;overflow:auto}

#panelsContainer>.tree-split{width:100%;min-width:0;max-width:100%}

/* Binding exposes every eligible widget; selected members retain their fill. */
.panel.bound-panel::after{content:"";position:absolute;inset:0;background:rgba(45,125,255,.5);pointer-events:none;z-index:40;border-radius:inherit}
body.bind-mode .panel.bound-panel::after{outline:3px solid #99c7ff;outline-offset:-3px}
#panelDetails{align-self:flex-start!important}
table.resizable-columns{table-layout:fixed!important;min-width:0!important}
table.resizable-columns th,table.resizable-columns td{min-width:0!important;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:0!important;padding-right:0!important}
table.resizable-columns th{overflow:visible}
.columnGrip{right:0!important;width:12px!important;z-index:10}
.columnGrip::after{left:auto!important;right:1px;background:rgba(110,150,200,.4)}

#panelSessionTotals #breadthBody{width:100%!important;height:100%;min-height:0;display:flex;flex-direction:column;padding:8px 12px;transform:none!important;overflow:auto!important;flex:1}
#panelSessionTotals .breadthViewport{align-items:stretch;justify-content:stretch}
#panelSessionTotals .breadth-row{flex:1 0 30px;align-content:center;align-items:center;min-height:30px}
#panelSessionTotals .breadth-bar{flex:1;min-width:20px;height:12px}
#panelSessionTotals .breadth-header,#panelSessionTotals .breadth-section-label{flex:none}

.column-caption{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 6px}

.columnGrip{width:22px!important;right:-5px!important}.columnGrip:hover{background:rgba(76,141,255,.2)}.columnGrip::after{right:5px;width:2px;top:0;bottom:0}.columnGrip:active::after{background:#b5d6ff;width:3px}

#panelSessionTotals #sessionTotalsBody{display:grid!important;grid-template-columns:repeat(var(--bubble-cols,6),150px);width:auto!important;padding:0!important;gap:12px;justify-content:center;align-content:center}
.widgetCorner{position:absolute;width:20px;height:20px;z-index:60;touch-action:none}.widgetCorner.nw{top:0;left:0;cursor:nwse-resize}.widgetCorner.ne{top:0;right:0;cursor:nesw-resize}.widgetCorner.sw{bottom:0;left:0;cursor:nesw-resize}.widgetCorner.se{bottom:0;right:0;cursor:nwse-resize}.widgetCorner:hover{background:rgba(76,141,255,.35);border-radius:5px}
.tablewrap > table.resizable-columns{margin-left:auto;margin-right:auto}

.columnGrip{max-width:calc(100% + 4px)}
.columnGrip{right:0!important;max-width:100%}.columnGrip::after{right:0!important}

.tablewrap>table.resizable-columns{margin:0}
table.resizable-columns td{padding-left:8px!important;padding-right:8px!important}
table.resizable-columns td[data-narrow="true"]{padding-left:0!important;padding-right:0!important}
.columnGrip::after{background:#3b5577}.resize-handle-col::after{content:"";position:absolute;inset:0 50%;width:2px;background:#3b5577}.resize-handle-col:hover{background:rgba(76,141,255,.2)}
.stock-extra-filters{padding:6px 10px;flex:none}.stock-extra-filters button{background:var(--panelhead);color:var(--text);border:1px solid var(--border);padding:5px 9px;border-radius:4px;cursor:pointer}#stockFilterMenu{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}#stockFilterMenu[hidden]{display:none}#stockFilterMenu label{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--sub)}#stockFilterMenu input{width:115px;background:var(--panel);color:var(--text);border:1px solid var(--border);padding:5px}

#stockFilterMenu label{flex-direction:row;align-items:center;font-size:12px;padding:4px 8px}#stockFilterMenu input{width:auto;accent-color:#5997ff}
.universe-count{font-size:10px;color:var(--sub);margin-left:5px}.universe-dialog{width:min(920px,94vw);height:min(720px,88vh);padding:0;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}.universe-dialog[open]{display:flex;flex-direction:column}.universe-dialog::backdrop{background:#020813cc}.universe-title{display:flex;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--panelhead)}.universe-title h2{font-size:16px;margin:0 0 4px}.universe-title p{font-size:11px;color:var(--sub);margin:0}.universe-title button{border:0;background:transparent;color:var(--sub);font-size:24px;cursor:pointer}.universe-tools{display:flex;gap:12px;padding:12px 18px}.universe-tools label{display:flex;flex-direction:column;gap:4px;flex:1;font-size:10px;color:var(--sub)}.universe-tools input,.universe-tools select{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:8px}.universe-dialog #universeStatus{font-size:11px;color:var(--sub);padding:0 18px;margin:0 0 8px}.universe-table-wrap{flex:1;min-height:0;overflow:auto;border-block:1px solid var(--border)}.universe-dialog table{width:100%;border-collapse:collapse;font-size:11px}.universe-dialog th{position:sticky;top:0;background:var(--panelhead);text-align:left;color:var(--sub);padding:7px 10px}.universe-dialog td{padding:6px 10px;border-top:1px solid var(--border)}.universe-dialog tbody tr{cursor:pointer}.universe-dialog tbody tr:hover{background:#17233a}.universe-dialog td:first-child{color:#68a3ff;font-weight:700}.universe-pager{display:flex;justify-content:center;align-items:center;gap:14px;padding:10px}.universe-pager button{background:var(--panelhead);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:4px}.universe-pager button:disabled{opacity:.4}

#bindModeBtn[aria-pressed="true"]{color:#20b8ff!important;background:#12334a!important;border:1px solid #20b8ff!important;box-shadow:inset 0 -2px #20b8ff}

#totalSessionFilters[hidden]{display:none!important}
#totalSessionFilters{display:flex;gap:5px;margin-top:6px}

#totalSessionFilters .toggle-btn,.panel-tf-row button{display:inline-flex;align-items:center;justify-content:center;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--sub);font-size:9px;font-weight:800;letter-spacing:.04em;padding:0 8px;transition:none}
#totalSessionFilters .toggle-btn.active,.panel-tf-row button.active{background:var(--panel);border-color:var(--accent);color:var(--accent)}

/* Settings: persistent left navigation and compact content pane. */
#settingsBackdrop .modalPanel{display:grid;grid-template-columns:145px minmax(0,1fr);width:min(720px,94vw);max-height:85vh;background:#303236;border:1px solid #55585e;border-radius:9px;overflow:hidden}
#settingsBackdrop .modalHead{grid-column:1/-1;background:#25272a;padding:10px 15px;border-bottom:1px solid #474a50}
#settingsBackdrop .modalTabs{grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:flex-start;gap:2px;padding:10px 0;border-right:1px solid #222428;background:#34363a}
#settingsBackdrop .modalTab{flex:none;text-align:left;border:0;border-radius:0;background:transparent;padding:12px 14px;font-size:12px}
#settingsBackdrop .modalTab.active{background:#4a4d53;color:#fff}
#settingsBackdrop .modalBody{grid-column:2;grid-row:2;padding:20px;overflow:auto;min-height:420px}
#settingsBackdrop .modalBody input,#settingsBackdrop .modalBody select{max-width:100%}
@media(max-width:500px){#settingsBackdrop .modalPanel{grid-template-columns:110px minmax(0,1fr)}#settingsBackdrop .modalBody{padding:12px}}

#holdingPopup{position:fixed;z-index:10000;max-width:290px;padding:14px 16px;white-space:pre-line;line-height:1.7;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #0008;pointer-events:none;font-size:12px}
.su-scope-btn{font-size:10px;padding:4px 8px;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--sub);cursor:pointer}.su-scope-btn.active{color:var(--text);border-color:#609aff;background:#28579755}

/* One stable home per live ticker; signals change in place. */
#boardCols.boardTickerRows{display:flex;flex-direction:column;gap:8px;overflow:auto}
.boardTickerRow .bcSym{display:flex;gap:16px;align-items:center;justify-content:flex-start}
.boardSignals{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.boardSignal{padding:4px 7px;border:1px solid var(--border);border-radius:5px;color:var(--sub)}
.boardSignal.outc-positive{color:var(--up)}
.boardSignal.outc-failed{color:var(--down)}


.boardStops{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.boardStop{font-size:9px;color:var(--sub);opacity:.4;padding:3px;border:1px solid var(--border);border-radius:4px}.boardStop.near{opacity:.75;border-style:dashed}.boardStop.lit{opacity:1;color:var(--accent,#63a1ff);border-color:currentColor;background:#63a1ff18}

/* Keep each scroll area bounded and reachable during live refreshes. */
#panelBoard #boardCols{flex:1 1 0;min-height:0;overflow:auto;align-items:stretch;grid-auto-rows:minmax(0,1fr)}
#panelBoard .boardCol{min-height:0;overflow:hidden}
#panelBoard .boardList{min-height:0;overflow-y:auto;flex:1 1 0;overscroll-behavior-y:auto;overflow-anchor:none}
#panelSessionTotals .breadth-dropdown{overflow-anchor:none;overscroll-behavior-y:contain}
#panelSessionTotals #breadthBody{overflow-anchor:none}

/* Static pastel rainbow; no animation or extra rendering work. */
.session-badge.gappers-badge{
 border:2px solid transparent;
 background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(#f7b7ce,#f9d7a4,#f6efb0,#bce7c5,#b9def3,#d4c2f0,#f7b7ce) border-box;
 box-shadow:inset 0 0 35px #d4c2f018;
}
.gappers-badge .session-badge-rate{color:#dccdf3;background:linear-gradient(110deg,#f7b7ce,#f9d7a4,#bce7c5,#b9def3,#d4c2f0);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.gappers-badge .session-badge-details{color:var(--sub);font-size:9px}

/* Breadth expands the panel instead of clipping rows inside a fixed split. */
#panelSessionTotals:has(.breadthFold[open]){height:auto!important;max-height:none!important;flex:0 0 auto!important}
#panelSessionTotals .sessionSplitArea.breadth-open{flex:0 0 auto!important;height:auto!important;overflow:visible!important}
#panelSessionTotals .breadth-open .totalsViewport{flex:0 0 240px!important;height:240px!important}
#panelSessionTotals .breadthFold[open]{flex:0 0 auto!important;height:auto!important;overflow:visible!important}
#panelSessionTotals .breadthFold[open] .breadthViewport,#panelSessionTotals .breadthFold[open] #breadthBody{height:auto!important;max-height:none!important;overflow:visible!important;display:block;width:100%}
#panelSessionTotals [data-breakout-note],#panelSessionTotals .gappers-badge .session-badge-meta{display:none!important}
#panelSessionTotals [data-badge-lvl]{cursor:pointer}

.gapper-ratio{font-size:18px;line-height:1.35;text-align:center;margin-top:5px;font-weight:700}.gapper-ratio[hidden]{display:none}

/* Distinct, static breakout signal badge. */
#panelAlerts .breakout-alert-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:1px 6px;border:0;border-radius:5px;background:linear-gradient(110deg,#244c75,#403765);color:#e6f2ff;font-weight:700;font-size:10px;letter-spacing:normal;line-height:normal;box-shadow:inset 0 0 0 1px #9abfff80}

/* Keep borrow status beside the symbol; price stays right-aligned. */
.boardChip .bcSym{justify-content:flex-start;gap:4px}
.boardChip .bcSym > [data-borrow-symbol]{zoom:.8;flex:none}
.boardChip .bcSym > .bcPrice{margin-left:auto}

/* Fit the scanner to its rows; long lists retain an internal scrollbar. */
#panelStocksUp:not(.widget-maximized):not(.widget-section-filled){height:auto!important;flex:0 0 auto!important;align-self:flex-start;min-height:0}
#panelStocksUp:not(.widget-maximized):not(.widget-section-filled)>.tablewrap{flex:0 1 auto!important;max-height:480px!important;height:auto!important}
