/*  Reset & Root  */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:        #000000;
  --bg2:       #0a0a0a;
  --bg3:       #111111;
  --bg4:       #1a1a1a;
  --bg-hover:  #0d0d0d;
  --border:    #1f1f1f;
  --border2:   #363a45;
  --text:      #dde1e8;
  --text2:     #9199a8;
  --muted:     #555e6e;
  --dim:       #222222;
  --green:     #26a69a;
  --green-dim: rgba(38,166,154,0.12);
  --red:       #ef5350;
  --red-dim:   rgba(239,83,80,0.12);
  --gold:      #f59e0b;
  --gold-dim:  rgba(245,158,11,0.12);
  --blue:      #888888;
  --blue-dim:  rgba(255,255,255,0.04);
  --accent:    #f0a500;
  --mono:      'DM Mono', 'Roboto Mono', monospace;
  --sans:      'DM Sans', -apple-system, sans-serif;
  --r:         6px;
  --r-sm:      4px;
  --nav-h:     48px;
}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;}

/*  App Shell  */
.app{display:grid;grid-template-rows:var(--nav-h) 1fr;height:100vh;}

/*  TOP NAV  */
.topnav{
  display:flex;align-items:center;gap:0;
  background:var(--bg2);border-bottom:1px solid var(--border);
  padding:0 16px;position:relative;z-index:100;
  min-width:0;overflow:hidden;  /* prevent nav from forcing horizontal page scroll */
}
.nav-logo{
  font-family:var(--mono);font-size:14px;font-weight:700;
  letter-spacing:-.5px;
  margin-right:20px;flex-shrink:0;cursor:pointer;
}
.nav-logo span{color:var(--text2);font-weight:400;}
/* Tab strip — scrolls horizontally if it can't fit; right-side buttons stay pinned. */
.nav-tabs{display:flex;gap:2px;height:100%;align-items:stretch;min-width:0;flex:0 1 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
.nav-tabs::-webkit-scrollbar{display:none;}
.nav-tab{
  display:flex;align-items:center;gap:5px;
  padding:0 10px;font-size:11px;font-weight:500;color:var(--text2);
  cursor:pointer;border-bottom:2px solid transparent;
  transition:color .15s,border-color .15s;white-space:nowrap;
  background:none;border-top:none;border-left:none;border-right:none;
}
.nav-tab:hover{color:#b2b5be;}
.nav-tab.active{color:#ffffff;border-bottom-color:#ffffff;}
.nav-tab .tab-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:0.5;}
.nav-spacer{flex:1;}
.nav-search{
  display:flex;align-items:center;gap:6px;
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  padding:0 8px;height:30px;margin-right:6px;
}
.nav-search input{
  background:none;border:none;outline:none;color:var(--text);
  font-family:var(--mono);font-size:11px;width:110px;
}
.nav-search input::placeholder{color:var(--muted);}
.nav-search-icon{color:var(--muted);font-size:11px;}
.nav-status{
  display:flex;align-items:center;gap:6px;
  font-family:var(--mono);font-size:10px;color:var(--muted);
  background:var(--bg3);border:1px solid var(--border);
  border-radius:20px;padding:3px 10px;flex-shrink:0;
}
.status-dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.nav-wire-btn{
  display:flex;align-items:center;gap:4px;
  margin-left:4px;padding:4px 8px;
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  font-size:11px;color:var(--text2);cursor:pointer;transition:.15s;
  font-family:var(--mono);white-space:nowrap;
}
.nav-wire-btn:hover,.nav-wire-btn.active{color:#f59e0b;border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06);}
.nav-wire-btn .wire-dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;}

/*  Main Layout  */
.main-layout{
  display:grid;
  grid-template-columns:1fr;
  height:calc(100vh - var(--nav-h));
  overflow:hidden;
  transition:grid-template-columns .2s;
}
.main-layout.no-sidebar{grid-template-columns:1fr;}
.main-layout.wire-open{grid-template-columns:1fr 280px;}

/*  Left Sidebar  */
.sidebar{display:none;}
.sidebar-search{padding:10px 8px;border-bottom:1px solid var(--border);flex-shrink:0;}
.sidebar-search input{
  width:100%;background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:5px 8px;color:var(--text);
  font-size:11px;font-family:var(--sans);outline:none;
}
.sidebar-search input:focus{border-color:var(--border2);}
.sidebar-list{flex:1;overflow-y:auto;padding:6px 0;}
.sidebar-list::-webkit-scrollbar{width:3px;}
.sidebar-list::-webkit-scrollbar-track{background:var(--bg2);}
.sidebar-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px;}
.cat-group{margin-bottom:2px;}
.sg-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:5px 10px;cursor:pointer;user-select:none;
}
.sg-header:hover{background:var(--bg-hover);}
.sg-label{font-size:9px;font-weight:600;color:#4c525e;text-transform:uppercase;letter-spacing:.8px;}
.sg-arrow{font-size:9px;color:var(--dim);transition:transform .15s;}
.sg-arrow.open{transform:rotate(90deg);}
.sg-body{display:none;}
.sg-body.open{display:block;}
.scan-btn{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:5px 12px 5px 16px;
  background:none;border:none;color:var(--text2);
  font-size:11px;font-family:var(--sans);cursor:pointer;
  text-align:left;transition:.1s;
}
.scan-btn:hover{background:#111;color:#b2b5be;}
.scan-btn.active{background:#111111;color:#ffffff;border-left:2px solid #ffffff;padding-left:14px;}
.scan-btn-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.scan-tag{
  font-size:9px;font-family:var(--mono);font-weight:500;
  padding:1px 5px;border-radius:3px;flex-shrink:0;margin-left:4px;
}
.tag-EP{background:rgba(251,146,60,.12);color:#fb923c;}
.tag-RS{background:rgba(38,166,154,.1);color:#4ade80;}
.tag-Fund{background:rgba(255,255,255,.06);color:#a3a3a3;}
.tag-Vol{background:rgba(168,85,247,.1);color:#c084fc;}
.tag-ARC{background:rgba(148,163,184,.1);color:#a3a3a3;}
.sidebar-bottom{padding:8px;border-top:1px solid var(--border);flex-shrink:0;}

/*  Content Area  */
.content{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg);min-width:0;
}
.view{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0;min-width:0;}
.view.active{display:flex;}
/*  Split-pane layouts — driven by setLayout(). The .content gets a
    .split-mode-N class that turns it into a CSS grid; views tagged
    .split-active become visible regardless of .active state. Single mode
    leaves these classes off entirely so existing showTab/.active logic
    handles it. */
/* Pane widths are CSS variables so the drag-resize handler can mutate them
   in real time. Defaults: 2-pane = 60/40, 3-pane = 33/33/33. */
.content.split-mode-2{display:grid;grid-template-columns:var(--split2-w1,60%) 4px 1fr;grid-template-rows:1fr;grid-auto-rows:0;height:100%;background:#0a0a0a;}
.content.split-mode-3{display:grid;grid-template-columns:var(--split3-w1,33.333%) 4px var(--split3-w2,33.333%) 4px 1fr;grid-template-rows:1fr;grid-auto-rows:0;height:100%;background:#0a0a0a;}
/* Quad: 2x2 grid. Vertical divider at col 2 spans both rows; horizontal
   divider at row 2 spans both cols; they cross at the empty center cell. */
.content.split-mode-4{display:grid;grid-template-columns:var(--split4-w1,50%) 4px 1fr;grid-template-rows:var(--split4-h1,50%) 4px 1fr;grid-auto-rows:0;height:100%;background:#0a0a0a;}
.content.split-mode-2 > .split-divider,
.content.split-mode-3 > .split-divider,
.content.split-mode-2 > .view.split-active,
.content.split-mode-3 > .view.split-active{grid-row:1;}
.content.split-mode-2 > .view.split-active,
.content.split-mode-3 > .view.split-active,
.content.split-mode-4 > .view.split-active{display:flex !important;background:#0a0a0a;min-width:0;border-left:1px solid var(--border);}
.content.split-mode-2 > .view.split-pane-1,
.content.split-mode-3 > .view.split-pane-1,
.content.split-mode-4 > .view.split-pane-1,
.content.split-mode-4 > .view.split-pane-3{border-left:none;}
.content.split-mode-4 > .view.split-pane-3,
.content.split-mode-4 > .view.split-pane-4{border-top:1px solid var(--border);}
.content.split-mode-2 > .view:not(.split-active):not(.split-divider),
.content.split-mode-3 > .view:not(.split-active):not(.split-divider),
.content.split-mode-4 > .view:not(.split-active):not(.split-divider){display:none !important;}
.content.split-mode-2 > .view.split-pane-1{grid-column:1;}
.content.split-mode-2 > .split-divider{grid-column:2;}
.content.split-mode-2 > .view.split-pane-2{grid-column:3;}
.content.split-mode-3 > .view.split-pane-1{grid-column:1;}
.content.split-mode-3 > .split-divider.divider-1{grid-column:2;}
.content.split-mode-3 > .view.split-pane-2{grid-column:3;}
.content.split-mode-3 > .split-divider.divider-2{grid-column:4;}
.content.split-mode-3 > .view.split-pane-3{grid-column:5;}
.content.split-mode-4 > .view.split-pane-1{grid-column:1;grid-row:1;}
.content.split-mode-4 > .view.split-pane-2{grid-column:3;grid-row:1;}
.content.split-mode-4 > .view.split-pane-3{grid-column:1;grid-row:3;}
.content.split-mode-4 > .view.split-pane-4{grid-column:3;grid-row:3;}
.content.split-mode-4 > .split-divider.divider-v{grid-column:2;grid-row:1 / span 3;}
.content.split-mode-4 > .split-divider.divider-h{grid-column:1 / span 3;grid-row:2;cursor:row-resize;}
.content.split-mode-4 > .split-divider.divider-h::after{width:30px;height:2px;}
/* Draggable divider between panes — TC2000-style col-resize. */
.split-divider{background:var(--border);cursor:col-resize;position:relative;user-select:none;transition:background .12s;}
.split-divider:hover,.split-divider.dragging{background:rgba(255,255,255,.22);}
.split-divider::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:30px;background:rgba(255,255,255,.18);border-radius:1px;}
/* Per-pane swap chip — tiny floating control in the pane's top-right
   corner that opens a menu of replacement views. Hidden in single mode. */
.pane-swap-chip{position:absolute;top:6px;right:6px;z-index:50;background:rgba(0,0,0,.65);border:1px solid #1f1f1f;border-radius:4px;color:#cbd5e1;font-size:10px;font-family:var(--mono);padding:3px 8px;cursor:pointer;display:flex;align-items:center;gap:5px;backdrop-filter:blur(4px);transition:.12s;}
.pane-swap-chip:hover{background:rgba(20,25,37,.95);color:#fff;border-color:#3a3f50;}
.pane-swap-chip .caret{opacity:.5;font-size:8px;}
.pane-swap-menu{position:fixed;background:#0a0a0a;border:1px solid #1f1f1f;border-radius:5px;box-shadow:0 10px 32px rgba(0,0,0,.55);z-index:99999;padding:4px 0;font-size:12px;min-width:170px;}
.pane-swap-menu .psm-item{padding:7px 14px;color:#cbd5e1;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.pane-swap-menu .psm-item:hover{background:#141925;color:#fff;}
.pane-swap-menu .psm-item.disabled{color:#5d606b;cursor:not-allowed;}
.pane-swap-menu .psm-item.disabled:hover{background:transparent;color:#5d606b;}
.pane-swap-menu .psm-current{color:#26a69a;font-size:9px;}
/* Layout dropdown menu */
.layout-menu-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;color:#cbd5e1;cursor:pointer;font-size:12px;}
.layout-menu-item:hover{background:#141925;color:#fff;}
.layout-menu-item.active{background:#141925;color:#fff;}
.layout-menu-item .layout-hint{color:#5d606b;font-size:10px;font-family:var(--mono);}
.layout-section-label{padding:6px 14px;color:#5d606b;font-size:9px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #1e1e1e;}
.layout-menu-item.ws-item .ws-del{color:#5d606b;font-size:14px;line-height:1;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;}
.layout-menu-item.ws-item .ws-del:hover{background:#ef535044;color:#ef5350;}
.page-scroll > *{max-width:100%;}  /* clip any child that tries to overflow horizontally */

/*  Page Header  */
.page-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;border-bottom:1px solid var(--border);
  flex-shrink:0;background:var(--bg2);
}
.page-title{font-size:14px;font-weight:600;color:#b2b5be;}
.page-desc{font-size:11px;color:var(--text2);margin-left:10px;}
.page-hdr-right{display:flex;align-items:center;gap:8px;}
.hdr-btn{
  padding:4px 10px;background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-sm);font-size:11px;color:var(--text2);cursor:pointer;
  font-family:var(--mono);transition:.15s;
}
.hdr-btn:hover{border-color:var(--border2);color:var(--text);}

/*  E badge — earnings within 7 days (replaces global Wire button per UX cleanup).
    Positioned absolutely so it doesn't push the centered symbol off-center
    when present. Cell needs position:relative for this to anchor correctly —
    .scan-row td:nth-child(2) below provides that. */
.er-badge{
  position:absolute;right:4px;top:50%;transform:translateY(-50%);
  padding:1px 5px;border-radius:3px;
  background:rgba(251,191,36,.15);color:#fbbf24;border:1px solid rgba(251,191,36,.3);
  font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.5px;
  cursor:pointer;line-height:1.4;
}
.er-badge:hover{background:rgba(251,191,36,.28);}
/* Anchor for the absolutely-positioned er-badge. Symbol cell is column 2
   (column 1 is the star button). */
.scan-row td:nth-child(2){position:relative;}

/*  User dropdown menu items — hover state */
#user-menu .user-menu-item:hover,
#user-menu div[onclick]:hover{background:rgba(167,139,250,.06);}

/*  Scrollbar — always thin and faint so users always know where they are
    in long lists, but visually unobtrusive. Brightens on direct hover. */
*{scrollbar-width:thin;scrollbar-color:rgba(140,160,200,.22) transparent;}
*::-webkit-scrollbar{width:6px;height:6px;background:transparent;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:rgba(140,160,200,.22);border-radius:3px;}
*::-webkit-scrollbar-thumb:hover{background:rgba(140,160,200,.55);}
.page-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px;}

/*  Cards  */
.card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--r);padding:14px;
}
.card-title{
  font-size:10px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;
}
.card:hover{border-color:#363a45;}

/*  Grid Layouts  */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}

/*  Stat Cards  */
.stat-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:12px 14px;
}
.stat-label{font-size:9px;font-family:var(--mono);color:#787b86;text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px;}
.stat-value{font-size:24px;font-weight:600;font-family:var(--mono);line-height:1;margin-bottom:3px;}
.stat-sub{font-size:9px;color:var(--text2);font-family:var(--mono);}
.stat-bar{height:2px;background:var(--border);border-radius:1px;margin-top:8px;}
.stat-bar-fill{height:2px;border-radius:1px;transition:width .4s;}
.c-green{color:var(--green);}
.c-red{color:var(--red);}
.c-gold{color:var(--gold);}
.c-blue{color:#888;}
.c-muted{color:var(--muted);}

/*  Market Breadth  */
.monitor-grid{display:none;}
.index-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:14px;margin-bottom:8px;transition:.15s;
}
.index-card:hover{border-color:var(--border2);}
.index-name{font-size:11px;font-weight:600;font-family:var(--mono);color:var(--text2);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
.dd-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--border);}
.dd-row:last-child{border-bottom:none;}
.dd-label{font-size:10px;color:var(--text2);}
.dd-value{font-size:10px;font-family:var(--mono);font-weight:500;}
.dd-badge{font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;font-weight:600;}
.dd-warn{background:rgba(239,83,80,.12);color:var(--red);}
.dd-ok{background:rgba(38,166,154,.08);color:#26a69a;}
.dd-gold{background:rgba(245,158,11,.12);color:var(--gold);}
.dd-blue{background:rgba(255,255,255,0.04);color:#888;}
.leader-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.leader-stat{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;}
.leader-stat-lbl{font-size:9px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;}
.leader-stat-val{font-size:16px;font-weight:600;font-family:var(--mono);}

/*  Breadth Bars  */
.bbar-row{display:flex;align-items:center;gap:8px;padding:3px 0;}
.bbar-lbl{font-size:9px;color:var(--muted);font-family:var(--mono);width:100px;flex-shrink:0;}
.bbar-track{flex:1;height:4px;background:var(--border);border-radius:2px;}
.bbar-fill{height:4px;border-radius:2px;transition:width .4s;}
.bbar-val{font-size:9px;font-family:var(--mono);color:var(--text2);width:36px;text-align:right;flex-shrink:0;}

/*  Regime Banner  */
.regime-banner{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:12px 16px;margin-bottom:10px;
}
.regime-pill{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:600;font-family:var(--mono);
  padding:4px 10px;border-radius:20px;
}
.regime-pill.bull{background:rgba(38,166,154,.08);color:#26a69a;border:1px solid rgba(38,166,154,.2);}
.regime-pill.neut{background:rgba(245,158,11,.12);color:var(--gold);border:1px solid rgba(245,158,11,.25);}
.regime-pill.bear{background:rgba(239,83,80,.12);color:var(--red);border:1px solid rgba(239,83,80,.25);}
.regime-dot{width:6px;height:6px;border-radius:50%;}
.regime-desc{font-size:11px;color:var(--text2);}
.regime-stats{display:flex;gap:16px;margin-left:auto;align-items:center;}
.regime-stat{text-align:center;}
.regime-stat-lbl{font-size:8px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;}
.regime-stat-val{font-size:22px;font-weight:600;font-family:var(--mono);line-height:1.1;}
.regime-divider{width:1px;height:28px;background:var(--border);}

/*  Scanner  */
.scanner-layout{
  display:grid;
  grid-template-columns:1fr;
  height:100%;
  overflow:hidden;
}
.scanner-layout.chart-open{grid-template-columns:1fr 300px;}
.scanner-layout.chart-open .wl-panel{width:100%;}
/* Watchlist resize handle hidden — locked panel size for consistent layout */
.wl-resize-handle{display:none !important;}
.wl-panel{position:relative;}
.scan-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;background:transparent;
}
.scan-title{font-size:12px;font-weight:600;color:#b2b5be;}
.scan-sep{color:var(--muted);margin:0 6px;}
.scan-desc{font-size:10px;color:#64748b;}
.scan-count{font-size:9px;font-family:var(--mono);color:#64748b;background:transparent;border:1px solid rgba(255,255,255,.06);padding:1px 7px;border-radius:3px;}
.scan-table-wrap{flex:1;overflow:auto;}
.scan-table-wrap::-webkit-scrollbar{width:4px;height:4px;}
.scan-table-wrap::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px;}


/*  Split View  */
.scanner-layout.split-open{
  grid-template-columns:1fr 520px;
}
#split-panel{
  display:none;flex-direction:column;overflow:hidden;
  background:#0a0a0a;border-left:1px solid #222;
  height:100%;order:-1;
}
.scanner-layout.split-open #split-panel{display:flex;}
#split-tv{width:100%;flex:1;min-height:0;overflow:hidden;position:relative;}
.tf-bar{display:flex;gap:2px;padding:3px 8px;background:#0a0a0a;border-bottom:1px solid #1a1a1a;flex-shrink:0;}
.tf-btn{background:#111;border:1px solid #1e1e1e;color:#555;padding:2px 8px;border-radius:3px;cursor:pointer;font-size:10px;font-family:var(--mono);}
.tf-btn:hover{color:#a3a3a3;border-color:#1f1f1f;}
.tf-btn.tf-active{background:#111;border-color:#ffffff;color:#ffffff;}
#split-list-wrap{display:none;}
.split-btn-active{background:#111 !important;border-color:#ffffff !important;color:#ffffff !important;}
/* Compact scan table in split mode */
.scanner-layout.split-open .scan-header{padding:4px 8px;flex-wrap:wrap;gap:3px;}
.scanner-layout.split-open .scan-title{font-size:10px;}
.scanner-layout.split-open .scan-desc{display:none !important;}
.scanner-layout.split-open #criteria-bar{display:none !important;}
.scanner-layout.split-open .hdr-btn{padding:2px 6px;font-size:9px;}
.scanner-layout.split-open .page-hdr-right{gap:3px;}
.scanner-layout.split-open thead th{padding:2px 4px !important;font-size:8px !important;white-space:nowrap;height:24px !important;}
.scanner-layout.split-open tbody td{padding:2px 4px !important;font-size:10px !important;line-height:1.4 !important;height:26px !important;color:#dde1e8 !important;}
.scanner-layout.split-open .sym{font-size:9px;font-weight:700;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;color:#ffffff !important;}
.scanner-layout.split-open td:nth-child(5),.scanner-layout.split-open th:nth-child(5),.scanner-layout.split-open td:nth-child(6),.scanner-layout.split-open th:nth-child(6),.scanner-layout.split-open td:nth-child(7),.scanner-layout.split-open th:nth-child(7),.scanner-layout.split-open td:nth-child(11),.scanner-layout.split-open th:nth-child(11),.scanner-layout.split-open td:nth-child(14),.scanner-layout.split-open th:nth-child(14){display:none !important;}
/* split-mode column widths — all 10 visible cols fit in 520px */
.scanner-layout.split-open th:nth-child(1),.scanner-layout.split-open td:nth-child(1){width:28px !important;min-width:28px !important;max-width:28px !important;}
.scanner-layout.split-open th:nth-child(2),.scanner-layout.split-open td:nth-child(2){width:62px !important;min-width:62px !important;max-width:62px !important;}
.scanner-layout.split-open th:nth-child(3),.scanner-layout.split-open td:nth-child(3){width:58px !important;min-width:58px !important;max-width:58px !important;}
.scanner-layout.split-open th:nth-child(4),.scanner-layout.split-open td:nth-child(4){width:55px !important;min-width:55px !important;max-width:55px !important;}
.scanner-layout.split-open th:nth-child(8),.scanner-layout.split-open td:nth-child(8){width:34px !important;min-width:34px !important;max-width:34px !important;}
.scanner-layout.split-open th:nth-child(9),.scanner-layout.split-open td:nth-child(9){width:48px !important;min-width:48px !important;max-width:48px !important;}
.scanner-layout.split-open th:nth-child(10),.scanner-layout.split-open td:nth-child(10){width:48px !important;min-width:48px !important;max-width:48px !important;}
.scanner-layout.split-open th:nth-child(12),.scanner-layout.split-open td:nth-child(12){width:62px !important;min-width:62px !important;max-width:62px !important;}
.scanner-layout.split-open th:nth-child(13),.scanner-layout.split-open td:nth-child(13){width:55px !important;min-width:55px !important;max-width:55px !important;}
.scanner-layout.split-open .scan-table-wrap{overflow-x:hidden !important;}
.scanner-layout.split-open .scan-table-wrap table{width:100% !important;table-layout:fixed !important;}
.scanner-layout.split-open .scan-hdr-wrap{display:none !important;}.scanner-layout.split-open #criteria-bar{display:none !important;}.scanner-layout.split-open #scan-count-inline{display:none !important;}
.scanner-layout.split-open .sym-badge{width:auto;min-width:32px;height:20px;font-size:8px;padding:0 4px;border-radius:2px;}
.scanner-layout.split-open .star-btn{font-size:10px;padding:0 2px;}
.scanner-layout.split-open tbody tr{border-bottom:1px solid rgba(255,255,255,0.05);}
.scanner-layout.split-open tbody tr:nth-child(even){background:rgba(255,255,255,0.03);}
.scanner-layout.split-open tbody tr:nth-child(odd){background:transparent;}
.scanner-layout.split-open tbody tr:hover{background:rgba(255,255,255,0.06) !important;}
.scanner-layout.split-open tbody tr.selected{background:rgba(255,255,255,0.12) !important;}
.scanner-layout.split-open thead th{border-right:1px solid rgba(255,255,255,0.06);}
.scanner-layout.split-open tbody td{border-right:1px solid rgba(255,255,255,0.04);}
.scanner-layout.split-open thead{border-bottom:1px solid rgba(255,255,255,0.12);position:sticky;top:0;z-index:2;background:#0d0d0d;}

/*  Table  */
/*  Horizontal Scan Tab Strip  */
#scan-cat-strip{
  display:flex;align-items:center;gap:2px;
  padding:6px 10px 0;background:#0a0a0a;
  border-bottom:1px solid #1a1a1a;flex-shrink:0;
  overflow-x:auto;scrollbar-width:none;
}
#scan-cat-strip::-webkit-scrollbar{display:none;}
.scan-cat-btn{
  background:transparent;border:none;border-bottom:2px solid transparent;
  color:#666666;font-size:10px;font-weight:600;font-family:var(--mono);
  padding:4px 10px 6px;cursor:pointer;white-space:nowrap;
  text-transform:uppercase;letter-spacing:.5px;transition:.12s;
}
.scan-cat-btn:hover{color:#a3a3a3;}
.scan-cat-btn.active{color:#f1f5f9;border-bottom-color:#ffffff;}
#scan-name-strip{
  display:flex;align-items:center;gap:4px;
  padding:5px 10px;background:#0a0a0a;
  border-bottom:1px solid #111;flex-shrink:0;
  overflow-x:auto;scrollbar-width:none;flex-wrap:wrap;
}
#scan-name-strip::-webkit-scrollbar{display:none;}
.scan-name-btn{
  background:#111;border:1px solid #1a1a1a;
  color:#666666;font-size:9px;font-weight:600;font-family:var(--mono);
  padding:3px 9px;border-radius:3px;cursor:pointer;white-space:nowrap;
  transition:.12s;
}
.scan-name-btn:hover{border-color:#1f1f1f;color:#a3a3a3;}
.scan-name-btn.active{background:#111;border-color:#ffffff;color:#ffffff;}
/*  Table  */
table{width:100%;border-collapse:collapse;user-select:none;}
/* Compact table in split view */
.scanner-layout.split-open .scan-table-wrap table thead th{
  padding:4px 6px;font-size:8px;
}
.scanner-layout.split-open .scan-table-wrap table tbody tr td{
  padding:4px 6px;font-size:10px;
}
.scanner-layout.split-open .scan-table-wrap table tbody tr .sym-badge{
  width:36px;height:24px;font-size:9px;
}
thead th{
  position:sticky;top:0;z-index:10;
  background:var(--bg2);border-bottom:2px solid rgba(255,255,255,0.1);
  padding:7px 10px;font-size:9px;font-weight:600;color:#6b7280;
  text-transform:uppercase;letter-spacing:.6px;font-family:var(--mono);
  cursor:pointer;white-space:nowrap;
  border-right:1px solid rgba(255,255,255,0.06);
}
thead th:hover{color:var(--text2);}
thead th.sort-desc::after{content:' ↓';}
thead th.sort-asc::after{content:' ↑';}
tbody tr{border-bottom:1px solid rgba(255,255,255,0.04);cursor:pointer;transition:background .1s;}
/* Zebra striping removed 2026-05-27 — flat tables read cleaner across the
   platform (matches TradingView's flat style). Hover state still distinguishes
   the active row; selection adds a stronger highlight via .scan-row.selected. */
tbody tr:nth-child(even){background:transparent;}
tbody tr:hover{background:rgba(255,255,255,0.05) !important;}
tbody td{
  padding:5px 10px;font-size:11px;color:#dde1e8;
  font-family:var(--mono);white-space:nowrap;
  border-right:1px solid rgba(255,255,255,0.04);
  height:28px;text-align:left;
}
tbody tr.selected{background:var(--bg4)!important;}
td{padding:5px 10px;font-size:11px;white-space:nowrap;color:#dde1e8;overflow:hidden;text-overflow:ellipsis;text-align:left;}
td.price-col{color:#ffffff;font-weight:600;}
td.center{text-align:center;}
td.right{text-align:right;}
td.center{text-align:center;}
.sym{
  font-family:var(--mono);font-size:13px;font-weight:700;color:#ffffff;
  background:transparent;border:0;
  padding:0;border-radius:0;display:inline-block;
  letter-spacing:.3px;text-align:center;
}
.utag{font-size:9px;font-family:var(--mono);font-weight:600;padding:2px 6px;border-radius:3px;margin-left:4px;vertical-align:middle;border:1px solid transparent;}
.utag.MOMENTUM{background:rgba(38,166,154,.15);color:#4ade80;border-color:rgba(74,222,128,.2);}
.pct-pill{font-size:11px;font-family:var(--mono);font-weight:600;padding:2px 6px;border-radius:3px;}
.pct-pill.up{background:rgba(38,166,154,.1);color:var(--green);}
.pct-pill.down{background:rgba(239,83,80,.1);color:var(--red);}
.pct-pill.flat{color:var(--muted);}
.up{color:var(--green);}
.down{color:var(--red);}
.neutral{color:var(--muted);}
.rs-val{font-family:var(--mono);font-size:12px;font-weight:700;}
.num{font-family:var(--mono);font-size:11px;}
.scan-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--muted);font-size:12px;}

/*  Stock Detail Panel  */
.detail-panel{
  border-left:1px solid var(--border);background:var(--bg2);
  display:flex;flex-direction:column;overflow:hidden;
}
.detail-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;
}
.detail-sym{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--text);}
.detail-name{font-size:10px;color:var(--text2);margin-top:1px;}
.detail-close-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px;}
.detail-close-btn:hover{color:var(--text);}
.detail-scroll{flex:1;overflow-y:auto;padding:12px;}
.detail-scroll::-webkit-scrollbar{width:3px;}
.detail-scroll::-webkit-scrollbar-thumb{background:var(--dim);}
.tv-chart-wrap{height:280px;background:var(--bg3);border-radius:var(--r);margin-bottom:10px;overflow:hidden;}
.tv-chart-wrap iframe,.tv-chart-wrap>div{width:100%!important;height:100%!important;}
.detail-meta-strip{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px;}
.meta-pill{background:var(--bg3);border:1px solid var(--border);border-radius:3px;padding:3px 8px;}
.meta-pill-lbl{font-size:8px;color:var(--muted);font-family:var(--mono);display:block;}
.meta-pill-val{font-size:11px;font-weight:500;font-family:var(--mono);}
.detail-section-title{font-size:9px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;margin-top:10px;}

/*  Fundamentals Table  */
.fund-tbl{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:9.5px;}
.fund-tbl th{padding:4px 6px;color:var(--muted);border-bottom:1px solid var(--border);text-align:center;font-weight:500;}
.fund-tbl td{padding:4px 6px;border-bottom:1px solid rgba(255,255,255,0.03);text-align:center;}
.fund-tbl .fund-row-label{text-align:left;color:var(--text2);font-size:9px;}
.fund-tbl .fund-section-hdr td{font-size:9px;font-weight:600;color:#9aa0ab;text-transform:uppercase;letter-spacing:.5px;padding:8px 6px 3px;border-top:1px solid var(--border);}
/* Stock-profile fundamentals table: pure black, kill zebra striping (the global
   `tbody tr:nth-child(even)` stripe was the grey the user saw). TradingView-style. */
.fund-tbl tbody tr,.fund-tbl tbody tr:nth-child(even){background:#000;}
.fund-tbl tbody tr:hover{background:#0c0c0c !important;}
/* Profile tables (fundamentals, industry peers, ETF holdings, …): no sticky
   column headers, pure-black header row — overrides the app-wide `thead th`
   rule which is sticky + var(--bg2). */
#view-profile thead th,#qpm-content thead th{position:static;top:auto;z-index:auto;background:#000;border-right:none;}
.fund-cell.pos{color:var(--green);}
.fund-cell.neg{color:var(--red);}
.fund-cell.neu{color:var(--muted);}

/*  Profile View  */
.profile-view-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden;}
.profile-topbar{
  display:flex;align-items:center;gap:8px;
  padding:0 0 12px 0;
  flex-shrink:0;background:transparent;
}
.profile-back{background:none;border:1px solid var(--border);color:var(--text2);padding:4px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:11px;}
.profile-back:hover{color:var(--text);border-color:var(--border2);}
#ticker-input{
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);
  padding:5px 10px;color:var(--text);font-family:var(--mono);font-size:12px;
  width:120px;outline:none;text-transform:uppercase;
}
#ticker-input:focus{border-color:var(--border2);}
.run-btn{background:#ffffff;border:none;color:#000;padding:5px 14px;border-radius:var(--r-sm);font-size:11px;font-weight:600;cursor:pointer;}
.profile-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;}
.pview{max-width:960px;margin:0 auto;width:100%;}
.pview-hdr{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.pview-sym{font-family:var(--mono);font-size:22px;font-weight:700;color:#ffffff;}
.pview-name{font-size:12px;color:var(--text2);}
.pview-sector{font-size:10px;color:var(--muted);margin-left:auto;}
.pview-price{font-family:var(--mono);font-size:18px;font-weight:600;}
.pview-chg{font-family:var(--mono);font-size:13px;font-weight:500;}
.pview-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px;padding:10px 12px;background:#000;border:1px solid var(--border);border-radius:var(--r);}
.pmeta-item{padding:3px 10px;border-right:1px solid var(--border);}
.pmeta-item:last-child{border-right:none;}
.pmeta-lbl{font-size:8px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;}
.pmeta-val{font-size:12px;font-family:var(--mono);font-weight:500;}
.pview-fund{background:#000;border:1px solid var(--border);border-radius:var(--r);padding:14px;}
.fund-period-btn{background:#0a0a0a;border:1px solid var(--border);color:var(--muted);font-family:var(--mono);font-size:10px;font-weight:600;padding:3px 9px;border-radius:3px;cursor:pointer;letter-spacing:.3px;transition:.15s;}
.fund-period-btn:hover{color:var(--text2);border-color:#3a3a3a;}
.fund-period-active{background:#1a1a1a;color:#ffffff;border-color:#3a3a3a;}
/* TV embed widget iframe — TV's dark theme has a known flash where the iframe
   element itself renders white before TV's content paints. Force black on the
   iframe so even during load and across tickers the background stays black.
   The wrapper container is also pinned to #000 for the same reason. */
#profile-tv-chart, #tv-chart-container{background:#000 !important;}
#profile-tv-chart iframe, #tv-chart-container iframe{background:#000 !important;}
.pcol-title{font-size:11px;font-weight:600;color:var(--text);display:flex;align-items:center;margin-bottom:10px;}
.guidance-badge{font-size:9px;font-family:var(--mono);padding:2px 7px;border-radius:3px;font-weight:600;}
.pview-section{background:#000;border:1px solid var(--border);border-radius:var(--r);padding:12px;margin-top:10px;}
.pview-section-title{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
.pview-kv{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.pview-kv:last-child{border-bottom:none;}
.pview-kv-lbl{font-size:10px;color:var(--text2);}
.pview-kv-val{font-size:10px;font-family:var(--mono);color:var(--text);}
.etf-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(38,166,154,.1);border:1px solid rgba(38,166,154,.2);border-radius:3px;padding:2px 7px;font-size:9px;font-family:var(--mono);color:#4ade80;margin:2px;}
.ipo-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(255,255,255,0.03);cursor:pointer;}
.ipo-row:hover{background:rgba(255,255,255,.02);}
.ma-chip{font-size:9px;font-family:var(--mono);padding:2px 7px;border-radius:3px;background:rgba(251,146,60,.1);border:1px solid rgba(251,146,60,.2);color:#fb923c;}
.luld-bar{display:flex;align-items:center;gap:6px;padding:3px 6px;background:rgba(239,83,80,.08);border:1px solid rgba(239,83,80,.2);border-radius:4px;font-size:10px;font-family:var(--mono);color:#ef5350;}
.luld-dot{width:6px;height:6px;border-radius:50%;background:#ef5350;animation:pulse 1s infinite;}
.idx-chip{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg3);border-radius:4px;}
.idx-sym{font-size:10px;font-weight:700;font-family:var(--mono);color:var(--text);}
.idx-px{font-size:10px;font-family:var(--mono);color:var(--text);}
.idx-chg{font-size:9px;font-family:var(--mono);}
.guidance-badge.raises{background:rgba(38,166,154,.12);color:var(--green);}
.guidance-badge.lowers{background:rgba(239,83,80,.12);color:var(--red);}
.guidance-badge.flat,.guidance-badge.loading{background:rgba(148,163,184,.1);color:var(--text2);}
.pstat-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.pstat-lbl{font-size:10px;color:var(--text2);}
.pstat-val{font-size:10px;font-family:var(--mono);font-weight:500;}

/*  Theme Tracker  */
.theme-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:10px 12px;cursor:pointer;transition:.15s;
}
.theme-card:hover{border-color:var(--border2);background:var(--bg3);}
.theme-name{font-size:11px;font-weight:600;color:#e2e8f0;margin-bottom:4px;line-height:1.3;}
.theme-tf-badges{display:flex;gap:3px;flex-wrap:wrap;}
.tf-badge{font-size:8px;font-family:var(--mono);padding:2px 5px;border-radius:3px;}
#scan-theme-content .grid-3{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;}
#scan-theme-content{padding:12px;}
.theme-leader-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:10px 12px;cursor:pointer;transition:.15s;
}
.theme-leader-card:hover{border-color:#ffffff;background:var(--bg3);}
.theme-card-active{border-color:#ffffff !important;background:rgba(255,255,255,0.06) !important;}
/*  Earnings Intelligence  */
.ei-view{display:flex;flex-direction:column;height:100%;overflow:hidden;}
.ei-header{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:10px 14px;border-bottom:1px solid var(--border);
  flex-shrink:0;background:var(--bg2);
}
.ei-title{font-size:12px;font-weight:600;font-family:var(--mono);color:var(--text);}
.ei-chip{padding:3px 10px;border:1px solid transparent;border-radius:20px;font-size:10px;cursor:pointer;background:none;color:var(--muted);font-family:var(--mono);transition:.15s;opacity:0.45;}
.ei-chip:hover{opacity:0.8;color:var(--text2);border-color:var(--border);}
.ei-chip.active{background:var(--bg3);color:var(--text);border-color:var(--border2);opacity:1;}

/* Ask AI tab — chat bubble + chip styles */
.askai-chip{padding:5px 11px;border:1px solid rgba(38,166,154,.25);background:rgba(38,166,154,.04);color:#9aa0a6;font-size:10.5px;font-family:var(--mono);border-radius:4px;cursor:pointer;transition:.15s;letter-spacing:.3px;}
.askai-chip:hover{background:rgba(38,166,154,.12);border-color:rgba(38,166,154,.4);color:#e0e3eb;}
.askai-msg{display:flex;flex-direction:column;gap:4px;max-width:88%;}
.askai-msg.user{align-self:flex-end;}
.askai-msg.bot{align-self:flex-start;}
.askai-msg-label{font-size:9px;color:#475569;font-family:var(--mono);letter-spacing:.4px;text-transform:uppercase;}
.askai-msg.user .askai-msg-label{text-align:right;}
.askai-msg-body{background:#0a0a0a;border:1px solid rgba(255,255,255,.06);padding:10px 14px;border-radius:6px;font-size:12px;line-height:1.6;color:#d1d4dc;white-space:pre-wrap;}
.askai-msg.user .askai-msg-body{background:rgba(38,166,154,.06);border-color:rgba(38,166,154,.2);color:#e0e3eb;}
.askai-msg.refused .askai-msg-body{background:rgba(245,158,11,.04);border-color:rgba(245,158,11,.2);color:#cbd5e1;}
.askai-msg-source{font-size:9px;color:#475569;font-family:var(--mono);margin-top:3px;}
.ei-chip.raise.active{color:var(--green);}
.ei-chip.beat.active{color:#ccc;}
.ei-chip.miss.active{color:var(--red);}
.ei-chip.raise:hover{color:var(--green);}
.ei-chip.beat:hover{color:#ccc;}
.ei-chip.miss:hover{color:var(--red);}
.ei-meta{font-size:10px;font-family:var(--mono);color:var(--muted);}
.ei-scroll{flex:1;overflow-y:auto;padding:10px 14px;}
.ei-empty{color:var(--muted);font-size:11px;padding:20px 0;}
.ei-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:12px 14px;margin-bottom:6px;cursor:pointer;transition:.15s;
  /* Cap width on wide screens so body text doesn't run 250 chars wide */
  max-width:1100px;
}
.ei-card:hover{border-color:var(--border2);}
.ei-card-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px;}
.ei-ticker{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text);}
.ei-company{font-size:10px;color:var(--text2);margin-top:1px;}
.ei-badges{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px;}
.ei-badge{font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;font-weight:600;}
.ei-badge.beat{background:rgba(38,166,154,.08);color:#26a69a;}
.ei-badge.miss{background:rgba(239,83,80,.12);color:var(--red);}
.ei-badge.raise{background:rgba(38,166,154,.12);color:var(--green);}
.ei-badge.lower{background:rgba(239,83,80,.12);color:var(--red);}
.ei-badge.flat{background:rgba(148,163,184,.1);color:var(--text2);}
.ei-badge.pending{background:rgba(124,158,248,.10);color:#7c9ef8;border:1px dashed rgba(124,158,248,.35);padding:1px 5px;}
.ei-summary{font-size:10px;color:var(--text2);line-height:1.5;}
/* Call Summary toggle — scoped to the PURPLE Earnings Call block only.
   The short gray raw_summary stays visible because for non-earnings filings
   (material/exec/m&a) it is the only thing telling the reader what the filing
   is about. Persisted to localStorage and re-applied on render. */
.ei-hide-summary .ei-transcript-summary { display:none !important; }

/* Outcome dropdown — multi-select popover anchored under the OUTCOME button.
   Sits beside the AI Summary toggle in the EI controls bar. Pure white-chrome
   on dark; checkboxes stay native to keep the build minimal. */
.ei-outcome-menu{
  position:absolute;top:calc(100% + 4px);right:0;z-index:50;
  min-width:170px;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-sm);
  padding:6px 4px;box-shadow:0 6px 24px rgba(0,0,0,.35);
  font-family:var(--mono);font-size:10px;color:var(--text);
}
.ei-outcome-menu label{
  display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;
  user-select:none;border-radius:2px;
}
.ei-outcome-menu label:hover{ background:rgba(255,255,255,.04); }
.ei-outcome-menu input[type=checkbox]{ accent-color:#7c9ef8; cursor:pointer; }
.ei-outcome-group{
  font-size:8px;color:var(--muted);letter-spacing:.5px;
  padding:6px 8px 2px;text-transform:uppercase;
}
.ei-outcome-footer{
  border-top:1px solid var(--border);margin-top:4px;padding:4px 8px 0;text-align:right;
}
.ei-outcome-clear{
  background:transparent;border:none;color:#7c9ef8;cursor:pointer;
  font-family:var(--mono);font-size:9px;padding:2px 4px;
}
.ei-outcome-clear:hover{ text-decoration:underline; }
/* OUTCOME + TYPE dropdown buttons — plain dark with a white border on
   active. Text stays bright white so the labels read clearly against the
   dark chrome (var(--text2) was too dim and looked greyed out). */
#ei-outcome-btn, #ei-type-btn{
  background:var(--bg3);
  border:1px solid var(--border);
  color:#ffffff;
  font-weight:600;
}
#ei-outcome-btn:hover, #ei-type-btn:hover{ background:#111; color:#ffffff; }
#ei-outcome-btn.active, #ei-type-btn.active{
  background:#111;
  border-color:#ffffff;
  color:#ffffff;
}
/* Days select + search input in the same EI controls bar — match the
   bright white treatment so the row reads as one consistent set. */
#ei-days-select,
#ei-search,
#ei-toggle-summary{
  color:#ffffff !important;
}
/* Brighten the option labels inside the popover menus too — radios/checks
   should read clearly, not as a muted greyed-out list. */
.ei-outcome-menu label{ color:#ffffff; }

/*  Earnings Wire Panel  */
.wire-panel{
  background:var(--bg2);border-left:1px solid var(--border);
  display:flex;flex-direction:column;overflow:hidden;width:280px;
}
.wire-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;
}
.wire-hdr-left{display:flex;align-items:center;gap:6px;}
.wire-live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;}
.wire-hdr-title{font-size:11px;font-weight:600;color:var(--text);}
.wire-meta{font-size:9px;font-family:var(--mono);color:var(--muted);}
.wire-hdr-right{display:flex;align-items:center;gap:6px;}
.wire-filter-bar{display:flex;gap:3px;}
.wf-btn{background:none;border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-size:9px;font-family:var(--mono);color:var(--muted);cursor:pointer;}
.wf-btn:hover,.wf-btn.active{background:var(--bg3);color:var(--text);border-color:var(--border2);}
.wf-btn.earn.active{color:var(--green);}
.wf-btn.guid.active{color:var(--gold);}
.wire-refresh{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px;}
.wire-refresh:hover{color:var(--text);}
.wire-table-wrap{flex:1;overflow-y:auto;}
.wire-table-wrap::-webkit-scrollbar{width:3px;}
.wire-table-wrap::-webkit-scrollbar-thumb{background:var(--dim);}
.wire-tbl{width:100%;border-collapse:collapse;font-size:10px;}
.wire-source-badge{font-size:8px;font-family:var(--mono);padding:1px 5px;border-radius:2px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
.wire-source-sec{background:rgba(255,255,255,.08);color:#cbd5e1;}
.wire-source-prn{background:rgba(167,139,250,.12);color:#a78bfa;}
.wire-source-globe{background:rgba(52,211,153,.12);color:#34d399;}
.wire-source-bw{background:rgba(251,146,60,.12);color:#fb923c;}
.wire-source-halt{background:rgba(239,83,80,.12);color:#ef5350;}
.wire-item{padding:7px 10px;border-bottom:1px solid #111;cursor:pointer;transition:background .08s;}
.wire-item:hover{background:#0a0a0a;}
.wire-item-hdr{display:flex;align-items:center;gap:5px;margin-bottom:3px;}
.wire-item-time{font-size:9px;color:var(--muted);font-family:var(--mono);}
.wire-item-title{font-size:10px;color:var(--text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.wire-item-earn{display:inline-block;font-size:8px;font-weight:700;padding:1px 4px;border-radius:2px;margin-left:4px;background:rgba(38,166,154,.2);color:#26a69a;}
.wire-item-guid{display:inline-block;font-size:8px;font-weight:700;padding:1px 4px;border-radius:2px;margin-left:2px;background:rgba(245,158,11,.2);color:#f59e0b;}
.wire-tbl thead th{
  position:sticky;top:0;background:var(--bg2);border-bottom:1px solid var(--border);
  padding:5px 8px;font-size:8px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.5px;font-family:var(--mono);
}
.wire-tbl tbody tr{border-bottom:1px solid #1a1a1a;cursor:pointer;transition:background .1s;}
.wire-tbl tbody tr:hover{background:#0d0d0d;}
.wire-tbl td{padding:5px 8px;}
.wire-tbl tr.w-earn{background:rgba(38,166,154,.04);}
.wire-tbl tr.w-guid{background:rgba(245,158,11,.04);}
.wire-td-time{font-family:var(--mono);font-size:9px;color:var(--muted);white-space:nowrap;}
.wire-td-form{font-family:var(--mono);font-size:9px;padding:1px 4px;border-radius:2px;background:var(--bg3);color:var(--text2);}
.wire-td-form.ka{color:var(--gold);}
.wire-td-co{display:block;font-size:10px;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wire-td-items{display:block;font-size:8px;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wire-bd-earn{font-size:8px;font-family:var(--mono);background:rgba(38,166,154,.12);color:var(--green);padding:1px 4px;border-radius:2px;margin-right:2px;}
.wire-bd-guid{font-size:8px;font-family:var(--mono);background:rgba(245,158,11,.12);color:var(--gold);padding:1px 4px;border-radius:2px;margin-right:2px;}
.wire-classify-btn{font-size:8px;font-family:var(--mono);background:var(--bg3);border:1px solid var(--border);color:var(--text2);padding:2px 6px;border-radius:3px;cursor:pointer;}
.wire-classify-btn:hover{border-color:var(--border2);color:var(--text);}
.wire-classify-btn.loading{color:var(--gold);}
.wire-classify-btn.done{color:var(--green);}
.wire-result-row td{padding:0;}
.wire-result-inner{padding:8px 10px;background:var(--bg3);border-top:1px solid var(--border);}
.wire-empty-tr td{padding:20px;text-align:center;color:var(--muted);font-size:10px;}

/*  Subtabs  */
.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 14px;flex-shrink:0;background:var(--bg2);}
.subtab{
  background:none;border:none;border-bottom:2px solid transparent;
  color:var(--muted);font-family:var(--mono);font-size:9px;letter-spacing:.6px;
  padding:6px 10px;cursor:pointer;transition:.15s;text-transform:uppercase;
}
.subtab.active{color:#ffffff;border-bottom-color:#ffffff;}
.subtab:hover{color:var(--text2);}

/*  Breadth Modal  */
#breadth-modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.85);backdrop-filter:blur(4px);align-items:center;justify-content:center;}
#breadth-modal.open{display:flex;}
#breadth-modal-inner{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);padding:20px;width:85vw;max-width:1100px;}
#breadth-modal-canvas{width:100%!important;display:block;}

/*  Drill Panel  */
#breadth-drill-panel{
  display:none;position:fixed;right:0;top:var(--nav-h);bottom:0;width:320px;
  background:var(--bg2);border-left:1px solid var(--border);z-index:50;
  flex-direction:column;overflow:hidden;
}
#breadth-drill-panel.open{display:flex;}

/*  Earnings Calendar  */
/*  Earnings Calendar  */
.earn-cal-wrap{margin-top:10px;}
.earn-cal-timeline{display:flex;gap:3px;margin-bottom:8px;flex-wrap:wrap;}
.earn-cal-tab{display:flex;flex-direction:column;align-items:center;padding:3px 7px;background:#0a0a0a;border:1px solid #1f1f1f;border-radius:5px;cursor:pointer;transition:.15s;min-width:44px;line-height:1.15;}
.earn-cal-tab:hover{border-color:#787b86;}
.earn-cal-tab.active{border-color:#ffffff;background:rgba(255,255,255,0.05);}
.earn-cal-tab-day{font-size:8px;font-family:var(--mono);color:#787b86;text-transform:uppercase;letter-spacing:.8px;}
.earn-cal-tab-date{font-size:11px;font-family:var(--mono);font-weight:700;color:#b2b5be;margin:1px 0;}
.earn-cal-tab.active .earn-cal-tab-date{color:#ffffff;}
.earn-cal-tab-count{font-size:8px;font-family:var(--mono);color:#4c525e;}
.earn-cal-tab.active .earn-cal-tab-count{color:#787b86;}
.earn-cal-tape-wrap{position:relative;overflow:hidden;background:#0a0a0a;border:1px solid #1f1f1f;border-radius:6px;height:36px;}
.earn-cal-tape-wrap::before,.earn-cal-tape-wrap::after{content:'';position:absolute;top:0;width:60px;height:100%;z-index:2;pointer-events:none;}
.earn-cal-tape-wrap::before{left:0;background:linear-gradient(to right,#0a0a0a,transparent);}
.earn-cal-tape-wrap::after{right:0;background:linear-gradient(to left,#0a0a0a,transparent);}
.earn-cal-tape{display:flex;align-items:center;height:100%;white-space:nowrap;animation:earnScroll 30s linear infinite;}
.earn-cal-tape:hover{animation-play-state:paused;}
@keyframes earnScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.earn-cal-chip{display:inline-flex;align-items:center;margin:0 6px;padding:3px 10px;background:#111;border:1px solid #1f1f1f;border-radius:4px;font-size:11px;font-weight:700;font-family:var(--mono);color:#b2b5be;cursor:pointer;transition:.1s;}
.earn-cal-chip:hover{color:#ffffff;border-color:#787b86;}
.earn-cal-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:10px;font-family:var(--mono);color:#4c525e;}
/*  Docs Page  */
/*  Docs Page  */
.doc-wrap{max-width:900px;margin:0 auto;padding:28px 24px;}
.doc-hero{text-align:center;padding:40px 0 36px;}
.doc-hero-title{font-size:28px;font-weight:800;color:#ffffff;letter-spacing:-.5px;margin-bottom:8px;}
.doc-hero-title span{color:#ffffff;}
.doc-hero-sub{font-size:13px;color:#787b86;max-width:500px;margin:0 auto;}
.doc-section-label{font-size:9px;font-family:var(--mono);font-weight:700;color:#4c525e;text-transform:uppercase;letter-spacing:1px;margin:32px 0 12px;}
.faq-item{background:#0a0a0a;border:1px solid #1e1e1e;border-radius:6px;overflow:hidden;transition:.15s;cursor:pointer;}
.faq-item:hover{border-color:#1f1f1f;}
.doc-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px;}
.doc-feature-grid.two{grid-template-columns:repeat(2,1fr);}
.doc-card{background:#0a0a0a;border:1px solid #1e1e1e;border-radius:8px;padding:18px;transition:.15s;}
.doc-card:hover{border-color:#1f1f1f;}
.doc-card-icon{font-size:20px;margin-bottom:10px;}
.doc-card-title{font-size:12px;font-weight:700;color:#ffffff;margin-bottom:6px;font-family:var(--mono);}
.doc-card-body{font-size:11px;color:#787b86;line-height:1.6;}
.doc-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px;}
.doc-compare-col{background:#0a0a0a;border:1px solid #1e1e1e;border-radius:8px;padding:18px;}
.doc-compare-col.with{border-color:rgba(38,166,154,.3);background:rgba(38,166,154,.03);}
.doc-compare-label{font-size:9px;font-family:var(--mono);font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;}
.doc-compare-col .doc-compare-label{color:#4c525e;}
.doc-compare-col.with .doc-compare-label{color:#26a69a;}
.doc-compare-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid #111;font-size:11px;color:#787b86;}
.doc-compare-item:last-child{border-bottom:none;}
.doc-compare-item.with{color:#b2b5be;}
.doc-compare-x{color:#ef5350;font-size:10px;flex-shrink:0;margin-top:1px;}
.doc-compare-check{color:#26a69a;font-size:10px;flex-shrink:0;margin-top:1px;}
.doc-faq{margin-bottom:8px;}
.doc-faq-item{border:1px solid #1e1e1e;border-radius:6px;margin-bottom:6px;overflow:hidden;}
.doc-faq-q{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;font-size:12px;font-weight:600;color:#b2b5be;transition:.1s;}
.doc-faq-q:hover{color:#ffffff;background:#0d0d0d;}
.doc-faq-icon{font-size:16px;color:#787b86;transition:.2s;}
.doc-faq-item.open .doc-faq-icon{transform:rotate(45deg);color:#ffffff;}
.doc-faq-a{display:none;padding:0 16px 14px;font-size:11px;color:#787b86;line-height:1.7;}
.doc-faq-item.open .doc-faq-a{display:block;}
.doc-ref-table{width:100%;border-collapse:collapse;table-layout:fixed;}
.doc-ref-table th{font-size:9px;font-family:var(--mono);color:#4c525e;text-transform:uppercase;letter-spacing:.6px;padding:8px 12px;border-bottom:1px solid #1e1e1e;text-align:left;}
.doc-ref-table td{font-size:11px;padding:9px 12px;border-bottom:1px solid #0d0d0d;color:#787b86;}
.doc-ref-table td:first-child{font-family:var(--mono);font-weight:700;color:#b2b5be;}
.doc-ref-table tr:hover td{background:#0a0a0a;}

/*  Toast  */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--bg4);border:1px solid var(--border2);color:var(--text);padding:8px 16px;border-radius:var(--r);font-size:11px;z-index:9999;pointer-events:none;}

/*  Misc  */
.copy-btn{padding:4px 10px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);font-size:11px;color:var(--text2);cursor:pointer;font-family:var(--mono);transition:.15s;}
.copy-btn:hover{border-color:var(--border2);color:var(--text);}
.copy-btn.copied{color:#26a69a;border-color:rgba(38,166,154,.25);}
/*  Watchlist  */
.wl-panel{background:#000;border-left:1px solid #222222;display:flex;flex-direction:column;overflow:hidden;width:100%;min-width:220px;}
.wl-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #222222;flex-shrink:0;}
.wl-title{font-size:11px;font-weight:600;color:#fff;font-family:var(--mono);}
.wl-actions{display:flex;gap:4px;}
.wl-btn{background:none;border:1px solid #222222;border-radius:3px;padding:2px 7px;font-size:9px;color:#555;cursor:pointer;font-family:var(--mono);transition:.15s;}
.wl-btn:hover{color:#fff;border-color:rgba(255,255,255,.2);}
.wl-scroll{flex:1;overflow-y:auto;}
.wl-scroll::-webkit-scrollbar{width:3px;}
.wl-scroll::-webkit-scrollbar-thumb{background:#222;}
.wl-empty{color:#333;font-size:10px;font-family:var(--mono);padding:16px 12px;}
.wl-item{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,0.03);cursor:pointer;transition:.1s;}
.wl-item:hover{background:#0a0a0a;}
.wl-item-sym{font-family:var(--mono);font-size:13px;font-weight:700;color:#ffffff;}
.wl-item-ret{font-size:10px;font-family:var(--mono);}
.wl-item-remove{background:none;border:none;color:#222;cursor:pointer;font-size:12px;padding:0 2px;transition:.1s;}
.wl-item-remove:hover{color:#ef5350;}
.star-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:0 4px;color:#3a3f4b;transition:.15s;line-height:1;}
#ctx-menu{position:fixed;z-index:99999;background:#000;border:1px solid #1f1f1f;border-radius:4px;padding:5px 0;min-width:220px;box-shadow:0 4px 18px rgba(0,0,0,.8);display:none;font-family:'DM Sans',-apple-system,sans-serif;}
#ctx-menu.open{display:block;}
.ctx-item{padding:6px 14px;font-size:12px;color:#d1d4dc;cursor:pointer;display:flex;align-items:center;gap:10px;white-space:nowrap;line-height:1.4;}
.ctx-item:hover{background:#141925;color:#ffffff;}
.ctx-item.ctx-list-item:hover{background:#141925;}
.ctx-divider{height:1px;background:#363a45;margin:4px 0;}
.ctx-sym-hdr{padding:8px 14px 6px;font-size:11px;font-weight:600;color:#b2b5be;font-family:var(--mono);letter-spacing:.5px;border-bottom:1px solid #363a45;margin-bottom:3px;text-transform:uppercase;}
.ctx-list-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.row-flag{display:inline-block;width:3px;border-radius:1px;height:18px;margin-right:4px;flex-shrink:0;vertical-align:middle;}
.scan-row[data-flag="green"] td:first-child{border-left:3px solid #26a69a;}
.scan-row[data-flag="yellow"] td:first-child{border-left:3px solid #f59e0b;}
.scan-row[data-flag="red"] td:first-child{border-left:3px solid #ef5350;}
.scan-row[data-flag="blue"] td:first-child{border-left:3px solid #60a5fa;}
.wl-list-tab{display:block;width:100%;text-align:left;padding:6px 12px;font-size:11px;font-family:var(--mono);background:none;border:none;border-bottom:1px solid #111;color:#64748b;cursor:pointer;transition:.1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wl-list-tab:hover{background:#0a0a0a;color:#a3a3a3;}
.wl-list-tab.active{background:#ffffff11;color:#ffffff;border-left:2px solid #ffffff;padding-left:10px;}
.star-btn:hover{color:#f59e0b;}
.star-btn.saved{color:#f59e0b;}
/* Criteria badge */
.criteria-bar{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,0.03);flex-shrink:0;flex-wrap:wrap;background:#050505;}
.crit-badge{font-size:9px;font-family:var(--mono);padding:2px 7px;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#555;white-space:nowrap;}
.crit-label{font-size:9px;font-family:var(--mono);color:#333;}
/* Filter panel */
.filter-panel{display:none;position:absolute;top:100%;right:0;z-index:200;background:#0a0a0a;border:1px solid #363a45;border-radius:6px;padding:12px;width:280px;box-shadow:0 8px 24px rgba(0,0,0,.8);}
.filter-panel.open{display:block;}
.filter-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.filter-lbl{font-size:10px;color:#888;font-family:var(--mono);}
.filter-inputs{display:flex;align-items:center;gap:4px;}
.filter-input{background:#111;border:1px solid rgba(255,255,255,.1);border-radius:3px;padding:3px 6px;color:#fff;font-size:10px;font-family:var(--mono);width:70px;outline:none;}
.filter-input:focus{border-color:rgba(255,255,255,.25);}
.filter-sep{color:#333;font-size:10px;}
/*  Builder  */
.builder-pattern-btn{
  background:var(--bg4);border:1px solid var(--border2);border-radius:6px;
  padding:10px 14px;cursor:pointer;transition:.15s;text-align:left;min-width:200px;flex:1;max-width:280px;
}
.builder-pattern-btn:hover{border-color:#f59e0b;background:rgba(245,158,11,0.06);}
.bpat-name{font-family:var(--mono);font-size:11px;font-weight:600;color:#fff;margin-bottom:4px;letter-spacing:.3px;}
.bpat-desc{font-size:10px;color:var(--muted);line-height:1.4;}
.builder-cat-tab{
  font-family:var(--mono);font-size:9px;letter-spacing:.8px;text-transform:uppercase;
  padding:7px 14px;border:none;border-bottom:2px solid transparent;
  background:none;color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap;flex-shrink:0;
}
.builder-cat-tab:hover{color:var(--text2);}
.builder-cat-tab.active{color:#fff;border-bottom-color:#fff;}
.builder-field-btn{
  font-family:var(--mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;
  padding:3px 9px;border-radius:3px;border:1px solid var(--border2);
  background:none;color:var(--text2);cursor:pointer;transition:.15s;white-space:nowrap;
}
.builder-field-btn:hover{border-color:var(--accent);color:var(--accent);}
.builder-filter-row{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--bg4);border:1px solid var(--border2);border-radius:4px;
  padding:4px 8px;flex-shrink:0;
}
.builder-filter-label{font-family:var(--mono);font-size:9px;color:var(--text2);letter-spacing:.4px;white-space:nowrap;text-transform:uppercase;}
.builder-filter-op{
  font-family:var(--mono);font-size:10px;background:var(--bg3);border:1px solid var(--border);
  border-radius:3px;color:var(--text);padding:2px 4px;cursor:pointer;outline:none;
}
.builder-filter-val{
  font-family:var(--mono);font-size:11px;background:var(--bg3);border:1px solid var(--border);
  border-radius:3px;color:var(--text);padding:2px 6px;width:80px;outline:none;
}
.builder-filter-val:focus{border-color:var(--accent);}
.builder-filter-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 2px;line-height:1;}
.builder-filter-remove:hover{color:var(--red);}
.builder-saved-item{
  padding:8px 14px;cursor:pointer;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;transition:.1s;
}
.builder-saved-item:hover{background:var(--bg3);}
.builder-saved-item.active{background:var(--bg4);border-left:2px solid var(--accent);padding-left:12px;}
.builder-saved-name{font-size:12px;font-weight:500;color:var(--text);}
.builder-saved-meta{font-size:9px;font-family:var(--mono);color:var(--muted);margin-top:2px;}
.builder-saved-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;padding:0 4px;}
.builder-saved-del:hover{color:var(--red);}
.filter-apply-btn{width:100%;margin-top:8px;padding:6px;background:#ffffff;border:none;border-radius:4px;font-size:11px;font-weight:600;color:#000;cursor:pointer;font-family:var(--mono);}
.filter-apply-btn:hover{background:#e0e0e0;}
.filter-clear-btn{width:100%;margin-top:4px;padding:5px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:4px;font-size:10px;color:#555;cursor:pointer;font-family:var(--mono);}
.filter-clear-btn:hover{color:#fff;border-color:rgba(255,255,255,.2);}
.scan-hdr-wrap{position:relative;}

.pos{color:var(--green);}
.neg{color:var(--red);}
#debug-panel{display:none;}
#debug-out{display:none;position:fixed;bottom:56px;right:16px;width:360px;max-height:400px;overflow-y:auto;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:6px;padding:12px;font-size:10px;font-family:var(--mono);z-index:1000;}
#debug-out-content{white-space:pre-wrap;}
.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;padding:40px;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/*  Episodic Pivot View  */
.ep-preset-btn.active{color:#ffffff;border-color:#ffffff;}
/* EP table */
.ep-tbl{width:100%;border-collapse:collapse;}
.ep-tbl thead th{position:sticky;top:0;z-index:10;background:#050505;border-bottom:1px solid rgba(255,255,255,0.04);padding:6px 10px;font-size:9px;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.6px;font-family:var(--mono);white-space:nowrap;}
.ep-tbl thead th.r{text-align:right;}
.ep-tbl tbody tr{border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;transition:.1s;}
.ep-tbl tbody tr:hover{background:#0a0a0a;}
.ep-tbl td{padding:7px 10px;font-size:12px;}
.ep-tbl td.r{text-align:right;}
.ep-catalyst-tag{font-size:8px;font-family:var(--mono);padding:2px 6px;border-radius:3px;font-weight:600;margin-left:4px;}
.ep-catalyst-earn{background:rgba(255,255,255,0.04);color:#888;border:1px solid rgba(255,255,255,.1);}
.ep-catalyst-fda{background:rgba(168,85,247,.08);color:#a78bfa;border:1px solid rgba(168,85,247,.15);}
.ep-catalyst-guide{background:rgba(245,158,11,.08);color:#f59e0b;border:1px solid rgba(245,158,11,.15);}
.ep-catalyst-contract{background:rgba(255,255,255,.06);color:#cbd5e1;border:1px solid rgba(255,255,255,.12);}
.ep-neglect-badge{font-size:8px;font-family:var(--mono);padding:2px 6px;border-radius:3px;background:rgba(255,255,255,0.03);color:#555;border:1px solid #222222;}


/*  Collapsible Sidebar  */
.sidebar{transition:width .2s ease;}
.sidebar.collapsed{width:42px!important;overflow:hidden;}
.sidebar.collapsed .sidebar-search,
.sidebar.collapsed .sg-header,
.sidebar.collapsed .sg-body,
.sidebar.collapsed .scan-btn-name,
.sidebar.collapsed .scan-tag,
.sidebar.collapsed .sidebar-bottom{display:none!important;}
.sidebar-toggle{
  display:flex;align-items:center;justify-content:center;
  width:100%;padding:8px 0;border:none;background:none;
  color:var(--muted);cursor:pointer;font-size:14px;
  border-bottom:1px solid var(--border);flex-shrink:0;
  transition:.15s;
}
.sidebar-toggle:hover{color:var(--text);}
.sidebar.collapsed .sidebar-toggle{border-bottom:none;padding:10px 0;}
.main-layout{transition:grid-template-columns .2s;}


/*  Chart Modal  */
#chart-modal{
  display:none;position:fixed;inset:0;z-index:9000;
  background:rgba(0,0,0,.92);backdrop-filter:blur(3px);
  flex-direction:column;
}
#chart-modal.open{display:flex;}
#chart-modal-inner{
  display:flex;flex-direction:column;
  width:100%;height:100%;
  background:#000000;
}
#chart-modal-topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;border-bottom:1px solid #222222;
  flex-shrink:0;
}
#chart-modal-sym{font-family:var(--mono);font-size:18px;font-weight:600;color:#f1f5f9;}
#chart-modal-name{font-size:11px;color:#a3a3a3;margin-left:8px;}
#chart-modal-meta{display:flex;gap:8px;margin-left:16px;flex-wrap:wrap;}
.cmod-pill{font-size:10px;font-family:var(--mono);padding:2px 8px;background:#1a2235;border:1px solid #222222;border-radius:3px;}
.cmod-pill span{color:#f1f5f9;font-weight:500;}
#chart-modal-close{
  background:none;border:1px solid rgba(255,255,255,.1);color:#a3a3a3;
  padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px;
  font-family:var(--mono);margin-left:auto;transition:.15s;
}
#chart-modal-close:hover{color:#f1f5f9;border-color:rgba(255,255,255,.2);}
#chart-modal-body{
  /* Two-column grid (chart | sidebar). The resize handle (cmod-resize-handle)
     is permanently disabled, so we no longer reserve a column for it — keeping
     the 3-column layout caused the sidebar to render in the gap track when
     auto-flow placed it (collapsed to 8-29px instead of 520px). */
  display:grid;grid-template-columns:1fr 520px;
  grid-template-rows:1fr;
  flex:1;overflow:hidden;min-height:0;height:0;
}
#cmod-resize-handle{display:none !important;width:0 !important;pointer-events:none !important;}
#chart-modal-tv{width:100%;height:100%;overflow:hidden;min-height:0;position:relative;}
#chart-modal-sidebar{
  border-left:1px solid #222222;
  display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;
  background:#0a0a0a;padding:18px;
  gap:0;
}
#chart-modal-sidebar::-webkit-scrollbar{width:6px;}
#chart-modal-sidebar::-webkit-scrollbar-track{background:#0a0a0a;}
#chart-modal-sidebar::-webkit-scrollbar-thumb{background:#1e2b42;border-radius:3px;}
#chart-modal-sidebar::-webkit-scrollbar-thumb:hover{background:#2a3b56;}
.cmod-scan-pill{
  font-family:var(--mono);font-size:11px;font-weight:600;
  padding:5px 11px;border-radius:4px;cursor:pointer;
  background:#111;border:1px solid #1e1e1e;color:#666666;
  transition:.12s;white-space:nowrap;letter-spacing:.4px;
}
.cmod-scan-pill:hover{color:#a3a3a3;border-color:#1f1f1f;}
.cmod-scan-pill.active{background:#111;border-color:#ffffff;color:#ffffff;}
.cmod-section{margin-bottom:16px;}
.cmod-section-title{font-size:9px;font-weight:600;color:#666666;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;}
.cmod-fund-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.cmod-fund-lbl{font-size:10px;color:#a3a3a3;}
.cmod-fund-val{font-size:10px;font-family:var(--mono);font-weight:500;color:#f1f5f9;}


/* === SECTION 2: RS + Perf + Breadth + Charts Tab + Mini Cards === */
/*  RS Rankings  */
.sep-v{width:1px;height:16px;background:var(--border);flex-shrink:0;}

.rs-method-btn.active{background:#000000;border-color:rgba(255,255,255,0.25);color:#ffffff;}
.rs-tf-btn.active{background:var(--bg4);color:var(--text);}

.rs-filter-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid #111;}
.rs-filter-row:last-child{border-bottom:none;}
.rs-filter-chk{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text2);flex:1;cursor:pointer;}
.rs-filter-chk input{accent-color:#ffffff;cursor:pointer;}
.rs-filter-input{width:56px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px 5px;color:var(--text);font-family:var(--mono);font-size:10px;outline:none;text-align:right;}
.rs-filter-input:focus{border-color:var(--border2);}

.rs-view-btn{background:var(--bg3);border:1px solid var(--border);color:var(--muted);padding:3px 9px;font-size:13px;cursor:pointer;border-radius:var(--r-sm);transition:.1s;}
.rs-view-btn.active{background:var(--bg4);color:var(--text);border-color:var(--border2);}

/* RS Table */
.rs-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;}
.rs-table thead th{
  position:sticky;top:0;background:#050505;border-bottom:1px solid var(--border);
  padding:10px 14px;font-size:10px;font-weight:600;color:#64748b;
  text-transform:uppercase;letter-spacing:.5px;font-family:var(--mono);
  cursor:pointer;white-space:nowrap;user-select:none;
}
.rs-table thead th:hover{color:var(--text2);}
.rs-table thead th.sort-asc::after{content:' ↑';color:#ffffff;}
.rs-table thead th.sort-desc::after{content:' ↓';color:#ffffff;}
.rs-table tbody tr{border-bottom:1px solid rgba(255,255,255,0.03);cursor:pointer;transition:background .08s;height:44px;}
.rs-table tbody tr:hover{background:rgba(255,255,255,0.03);}
.rs-table td{padding:0 14px;color:var(--text2);font-family:var(--mono);font-size:12px;vertical-align:middle;}

/* Column widths & alignment — explicit, consistent */
.rs-table th.col-rank,.rs-table td.col-rank{width:48px;text-align:center;color:#666666;font-size:11px;}
.rs-table th.col-sym,.rs-table td.col-sym{width:160px;text-align:left;}
.rs-table td.col-sym{font-weight:700;color:var(--text);font-size:13px;line-height:1.2;}
.rs-table th.col-ind,.rs-table td.col-ind{width:auto;text-align:left;color:#64748b;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rs-table th.col-num,.rs-table td.col-num{width:88px;text-align:right;font-variant-numeric:tabular-nums;}
.rs-table th.col-num-wide,.rs-table td.col-num-wide{width:100px;text-align:right;font-variant-numeric:tabular-nums;}
.rs-pct{font-weight:700;text-align:right;}
.rs-pct-hdr{text-align:right;}

/* RS Cards */
.rs-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}
.rs-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:12px;cursor:pointer;transition:.12s;min-width:0;
}
.rs-card:hover{border-color:var(--border2);background:var(--bg3);}
.rs-card-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;}
.rs-card-sym{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text);}
.rs-card-name{font-size:9px;color:var(--text2);margin-top:1px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rs-card-price{font-family:var(--mono);font-size:12px;color:var(--text);text-align:right;}
.rs-card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.rs-badge{font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;background:var(--bg3);color:var(--text2);}
.rs-card-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;}
.rs-stat-box{background:var(--bg3);border-radius:var(--r-sm);padding:5px 7px;text-align:center;}
.rs-stat-lbl{font-size:8px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.3px;}
.rs-stat-val{font-size:13px;font-weight:600;font-family:var(--mono);}

/* Performance page */
.perf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.perf-col{padding:24px 20px;border-right:1px solid var(--border);}
.perf-col:last-child{border-right:none;}
.perf-col-hdr{font-size:14px;font-weight:700;color:#ffffff;padding:0 0 16px;margin-bottom:4px;display:flex;align-items:center;gap:8px;}
.perf-col-hdr::before{content:'';display:block;width:3px;height:18px;background:var(--border2);border-radius:2px;flex-shrink:0;}
.perf-row{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer;transition:.08s;}
.perf-row:hover .perf-name{color:#ffffff;}
.perf-name{font-size:12px;font-weight:600;color:var(--text2);width:130px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.08s;}
.perf-bar-wrap{flex:1;min-width:50px;}
.perf-bar-track{height:4px;background:var(--bg4);border-radius:2px;position:relative;}
.perf-bar-fill{height:4px;border-radius:2px;position:absolute;top:0;}
.perf-pct{font-size:11px;font-family:var(--mono);font-weight:600;width:52px;text-align:right;flex-shrink:0;}

/* Sector/Industry drill panel */
#perf-drill{
  display:none;position:fixed;right:0;top:var(--nav-h);bottom:0;width:340px;
  background:var(--bg2);border-left:1px solid var(--border);z-index:50;
  flex-direction:column;overflow:hidden;
}
#perf-drill.open{display:flex;}

/* Col checkbox list */
.rs-col-chk{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11px;color:var(--text2);cursor:pointer;}
.rs-col-chk input{accent-color:#ffffff;cursor:pointer;}

.mb-idx-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:14px 16px;cursor:pointer;transition:.12s;position:relative;overflow:hidden;
}
.mb-idx-card:hover{border-color:var(--border2);}
.mb-idx-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2px;}
.mb-idx-sym{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px;}
.mb-idx-arrow{font-size:10px;}
.mb-idx-pct{font-family:var(--mono);font-size:26px;font-weight:700;line-height:1;margin-bottom:2px;}
.mb-idx-label{font-size:9px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;}
.mb-idx-sub{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap;}
.mb-idx-sub-item{font-size:10px;font-family:var(--mono);}
.mb-idx-sub-lbl{color:var(--muted);}
.mb-idx-sparkline{width:100%;height:48px;margin-top:8px;}
.mb-idx-ema-dots{display:flex;flex-direction:column;gap:3px;margin-top:6px;}
.mb-ema-row{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--text2);font-family:var(--mono);}
.mb-ema-dot{width:8px;height:2px;border-radius:1px;flex-shrink:0;}

/*  Breadth Internals Row  */
.mb-internals-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
.mb-int-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:12px 14px;
}
.mb-int-lbl{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center;gap:4px;}
.mb-int-val{font-size:22px;font-weight:700;font-family:var(--mono);line-height:1;margin-bottom:3px;}
.mb-int-delta{font-size:10px;font-family:var(--mono);}
.mb-int-sub{font-size:9px;color:var(--muted);font-family:var(--mono);}
.mb-int-sparkline{width:100%;height:36px;margin-top:8px;}

/*  % Above SMA Multi-line chart  */
.mb-sma-chart-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;}
.mb-sma-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px;}
.mb-sma-title{font-size:11px;font-weight:600;color:var(--text);}
.mb-sma-legend{display:flex;gap:12px;flex-wrap:wrap;}
.mb-sma-leg-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text2);font-family:var(--mono);cursor:pointer;}
.mb-sma-leg-line{width:16px;height:2px;border-radius:1px;}
.mb-sma-tf-btns{display:flex;gap:2px;}
.mb-sma-tf-btn{background:none;border:1px solid var(--border);color:var(--muted);font-size:9px;font-family:var(--mono);padding:2px 7px;border-radius:3px;cursor:pointer;}
.mb-sma-tf-btn.active{background:var(--bg4);color:var(--text);border-color:var(--border2);}
#mb-sma-canvas{width:100%;display:block;}

/*  Summary stats row  */
.mb-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
.mb-sum-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;}
.mb-sum-lbl{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.mb-sum-val{font-size:18px;font-weight:700;font-family:var(--mono);}
.mb-sum-row{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap;}
.mb-sum-sub{font-size:9px;font-family:var(--mono);color:var(--muted);}

/*  Scanner card view — bare-black, white-chrome / colored-data  */
.scan-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:18px;padding:14px;}
/* Density override — picked from the toolbar density selector and persisted
   per-user (si_card_cols). At 3+ cols we shrink the chart so the cards
   stay roughly square instead of getting comically tall. */
.scan-card-grid.cols-1{grid-template-columns:1fr;}
.scan-card-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.scan-card-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.scan-card-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.scan-card-grid.cols-1 .src-chart{height:380px;}
.scan-card-grid.cols-3 .src-chart{height:220px;}
.scan-card-grid.cols-4 .src-chart{height:170px;}
.scan-result-card{
  background:transparent;border:0;border-radius:0;
  padding:6px 0 14px;cursor:pointer;transition:.12s;min-width:0;
  display:flex;flex-direction:column;gap:10px;
}
.scan-result-card:hover .src-sym{color:#fff;}
.src-hdr{display:flex;align-items:flex-start;justify-content:space-between;}
/* Reserve space for the optional 2-line catalyst headline so the mini-chart
   below starts at the same Y position across every card in a row — without
   this, news-having cards push their chart down and break visual alignment
   with neighbors. Sized for: ticker + name + 2-line catalyst + stats row. */
.scan-card-grid .scan-result-card > .src-hdr{min-height:86px;}
.src-sym{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text);transition:color .12s;}
.src-name{font-size:9px;color:var(--text2);margin-top:2px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.src-price{font-family:var(--mono);font-size:13px;font-weight:600;text-align:right;}
.src-chg{font-size:10px;font-family:var(--mono);text-align:right;}
.src-meta{display:flex;gap:8px;flex-wrap:wrap;}
.src-badge{font-size:9px;font-family:var(--mono);padding:0;background:transparent;color:var(--text2);white-space:nowrap;letter-spacing:.3px;}
.src-stats{display:flex;gap:18px;}
.src-stat{background:transparent;padding:0;text-align:left;}
.src-stat-lbl{font-size:8px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;}
.src-stat-val{font-size:12px;font-weight:600;font-family:var(--mono);}
.src-chart{height:300px;width:100%;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:2px;margin-top:2px;overflow:hidden;}

/* Market Brief — restructured for hierarchy + color discipline */
.brief-wrap{max-width:1100px;margin:0 auto;padding:4px 0 40px;}

/* Hero — sentiment pill removed 2026-05-25 (no characterizing the market) */
.brief-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 4px 10px;border-bottom:1px solid #1a1a1a;margin-bottom:14px;}
.brief-hero-date{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.3px;line-height:1.1;}
.brief-hero-sub{font-size:10px;color:#5d606b;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;}

/* Snapshot strip — fixed-width pills so ETH/BTC don't stretch when there are few items.
   MA position tag removed 2026-05-25 (visible at a glance on any chart). */
.brief-snap-strip{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.brief-snap-pill{flex:0 0 130px;width:130px;background:#0a0a0a;border:1px solid #1a1a1a;border-radius:6px;padding:7px 10px;}
.brief-snap-lbl{font-size:9px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;color:#5d606b;margin-bottom:2px;}
.brief-snap-px{font-size:14px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;}
.brief-snap-chg{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:1px;}
.brief-snap-chg.up{color:#26a69a;}
.brief-snap-chg.down{color:#ef5350;}

/* AI disclaimer beneath the synthesis card */
.brief-ai-disclaimer{font-family:var(--mono);font-size:9px;color:#5d606b;letter-spacing:.3px;line-height:1.6;padding:10px 14px;border-top:1px solid #1a1a1a;margin-top:10px;}

/* Two-column grid */
.brief-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;}
@media (max-width:900px){.brief-grid{grid-template-columns:1fr;}}

/* Narrow viewport: collapse right-side nav button labels so tabs stay readable.
   Tabs already scroll via overflow-x:auto, but right-side actions consume so much
   width on small windows that the user can't see Earnings/RS/Performance/Docs. */
@media (max-width:1100px){
  #nav-ask-ai kbd{display:none;}
  #nav-ask-ai{padding:0 7px !important;}
  #wire-toggle-btn{padding:0 7px;}
}
@media (max-width:920px){
  /* Hide Ask AI text label, keep ✦ icon */
  #nav-ask-ai{font-size:0 !important;padding:0 8px !important;}
  #nav-ask-ai > span{font-size:13px !important;margin-right:0 !important;}
  /* Collapse Journal label too */
  .nav-wire-btn[title="Trade Journal"]{font-size:0 !important;padding:0 8px !important;}
  .nav-wire-btn[title="Trade Journal"]::before{content:'J';font-size:11px;color:#a78bfa;font-family:var(--mono);}
}

/* Cards */
.brief-card{background:#0a0a0a;border:1px solid #1a1a1a;border-radius:6px;padding:18px;margin-bottom:14px;}
.brief-card-title{font-size:11px;font-weight:600;color:#5d606b;font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #1a1a1a;display:flex;align-items:center;justify-content:space-between;}
.brief-card-title .meta{font-size:10px;color:#5d606b;font-weight:400;letter-spacing:.3px;text-transform:none;}
.brief-card-body{font-size:13px;color:#d1d4dc;line-height:1.65;}
.brief-card.hero{border-color:#ffffff33;}

/* AI summary typography (markdown-rendered) */
.brief-summary p,.brief-summary br+span{display:block;margin:0 0 8px;}
.brief-h3{font-size:13px;font-weight:700;color:#fff;margin:18px 0 8px;letter-spacing:-.2px;}
.brief-h3:first-child{margin-top:0;}
.brief-h4{font-size:11px;font-weight:600;color:#ffffff;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 6px;}
.brief-hr{border:none;border-top:1px solid #1a1a1a;margin:14px 0;}
.brief-bullet{padding:3px 0 3px 14px;position:relative;color:#d1d4dc;font-size:13px;}
.brief-bullet::before{content:'';position:absolute;left:0;top:10px;width:5px;height:5px;border-radius:50%;background:#26a69a;}

/* Symbol pills */
.brief-sym{display:inline-block;padding:2px 7px;margin:2px 4px 2px 0;background:#0a0a0a;border:1px solid #1f1f1f;border-radius:3px;color:#fff;font-family:var(--mono);font-size:11px;font-weight:600;cursor:pointer;transition:.08s;}
.brief-sym:hover{border-color:#ffffff;color:#ffffff;}

/* Scan tile */
.brief-scan-tile{background:#000;border:1px solid #1a1a1a;border-radius:5px;padding:10px 12px;margin-bottom:8px;transition:.08s;}
.brief-scan-name{font-size:10px;color:#5d606b;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;}
.brief-scan-count{font-size:18px;font-weight:700;color:#fff;margin:4px 0 6px;font-variant-numeric:tabular-nums;}
.brief-scan-count .qual{font-size:10px;color:#5d606b;font-weight:400;margin-left:6px;letter-spacing:.3px;}

/* Earnings rows */
.brief-er-row{display:grid;grid-template-columns:60px 1fr auto;gap:12px;padding:6px 0;border-bottom:1px solid #131313;font-size:12px;align-items:baseline;}
.brief-er-row:last-child{border-bottom:none;}
.brief-er-sym{font-family:var(--mono);font-weight:700;color:#fff;cursor:pointer;}
.brief-er-sym:hover{color:#ffffff;}
.brief-er-meta{color:#787b86;font-size:11px;}
.brief-er-pct.up{color:#26a69a;font-weight:700;font-variant-numeric:tabular-nums;}
.brief-er-pct.down{color:#ef5350;font-weight:700;font-variant-numeric:tabular-nums;}

/* Economic calendar */
.brief-econ-row{display:grid;grid-template-columns:50px 1fr 60px;gap:10px;padding:6px 0;border-bottom:1px solid #131313;font-size:11px;align-items:baseline;}
.brief-econ-row:last-child{border-bottom:none;}
.brief-econ-time{color:#5d606b;font-family:var(--mono);}
.brief-econ-event{color:#d1d4dc;}
.brief-econ-impact.high{color:#ef5350;font-weight:700;font-size:9px;letter-spacing:.5px;text-align:right;}
.brief-econ-impact.med{color:#f59e0b;font-weight:600;font-size:9px;letter-spacing:.5px;text-align:right;}
.brief-econ-impact.low{color:#5d606b;font-size:9px;letter-spacing:.5px;text-align:right;}

/* Section sub-label */
.brief-sub{font-size:10px;color:#5d606b;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px;padding-top:8px;border-top:1px solid #131313;}
.brief-sub:first-child{margin-top:0;padding-top:0;border-top:none;}

/* Empty state */
.brief-empty{padding:40px 20px;text-align:center;color:#5d606b;font-size:12px;}

/* scan view toggle */
.scan-view-toggle{display:flex;gap:2px;align-items:center;}
.svt-btn{background:var(--bg3);border:1px solid var(--border);color:var(--muted);padding:3px 8px;font-size:12px;cursor:pointer;border-radius:var(--r-sm);transition:.1s;}
.svt-btn.active{background:var(--bg4);color:var(--text);border-color:var(--border2);}
/* Card-density selector — sits next to the table/cards toggle, only visible
   while in card view (visibility toggled by scanSetView). */
.scan-density-toggle{display:flex;gap:2px;margin-left:8px;}
.scan-density-toggle.hidden{display:none;}
.sdt-btn{background:var(--bg3);border:1px solid var(--border);color:var(--muted);padding:3px 7px;font-size:10px;font-family:var(--mono);font-weight:600;cursor:pointer;border-radius:var(--r-sm);transition:.1s;min-width:22px;text-align:center;}
.sdt-btn.active{background:var(--bg4);color:var(--text);border-color:var(--border2);}
/* Mini-chart timeframe toggle (Daily / Weekly) — mirrors density-toggle styling */
.mini-tf-toggle{display:flex;gap:2px;margin-left:8px;}
.mini-tf-toggle.hidden{display:none;}
.mini-tf-toggle button{background:var(--bg3);border:1px solid var(--border);color:var(--muted);padding:3px 9px;font-size:10px;font-family:var(--mono);font-weight:600;cursor:pointer;border-radius:var(--r-sm);transition:.1s;min-width:24px;text-align:center;letter-spacing:.4px;}
.mini-tf-toggle button.active{background:var(--bg4);color:var(--text);border-color:var(--border2);}

/*  Improved drawing tools  */
.draw-tool-bar{
  position:absolute;left:8px;top:8px;z-index:20;
  display:flex;flex-direction:column;gap:3px;
}
.draw-tool-btn{
  background:rgba(10,10,10,0.9);border:1px solid var(--border);
  color:var(--muted);width:28px;height:28px;border-radius:var(--r-sm);
  cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;
  transition:.1s;
}
.draw-tool-btn:hover{border-color:var(--border2);color:var(--text);}
.draw-tool-btn.active{border-color:#ffffff;color:#ffffff;background:rgba(255,255,255,0.06);}
.draw-tool-btn.snap-on{border-color:#f59e0b;color:#f59e0b;}

/* ── AUTH OVERLAY ─────────────────────────────────────────── */
#auth-overlay{
  position:fixed;inset:0;z-index:99999;
  background:#000000;
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Sans',sans-serif;
}
#auth-overlay.hidden{display:none;}
#auth-box{
  width:380px;background:#0a0a0a;
  border:1px solid rgba(255,255,255,.08);border-radius:12px;
  padding:36px 32px 32px;
  box-shadow:0 24px 64px rgba(0,0,0,.6);
}
#auth-logo{
  text-align:center;margin-bottom:28px;
  font-size:22px;font-weight:700;letter-spacing:-.5px;
}
#auth-logo span{color:#ffffff;}
#auth-tabs{
  display:flex;gap:0;margin-bottom:24px;
  border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow:hidden;
}
.auth-tab-btn{
  flex:1;padding:8px;background:none;border:none;
  color:#888888;font-size:12px;font-family:'DM Sans',sans-serif;
  font-weight:500;cursor:pointer;transition:all .15s;
}
.auth-tab-btn.active{background:#111111;color:#ffffff;}
#auth-msg{
  font-size:11px;padding:8px 10px;border-radius:5px;
  margin-bottom:14px;display:none;
}
#auth-msg.error{background:rgba(239,83,80,.12);color:#ef5350;border:1px solid rgba(239,83,80,.2);}
#auth-msg.success{background:rgba(255,255,255,.08);color:#ffffff;border:1px solid rgba(255,255,255,.2);}
.auth-field{margin-bottom:14px;}
.auth-field label{display:block;font-size:10px;color:#888888;margin-bottom:5px;letter-spacing:.4px;text-transform:uppercase;}
.auth-field input{
  width:100%;background:#111111;border:1px solid rgba(255,255,255,.08);
  border-radius:5px;padding:9px 11px;color:#ffffff;
  font-size:13px;font-family:'DM Sans',sans-serif;outline:none;
  transition:border-color .15s;box-sizing:border-box;
}
.auth-field input:focus{border-color:#ffffff;}
#auth-submit{
  width:100%;padding:10px;margin-top:4px;
  background:#000000;border:1px solid rgba(255,255,255,.35);border-radius:6px;
  color:#ffffff;font-size:13px;font-weight:600;
  font-family:'DM Sans',sans-serif;cursor:pointer;
  transition:.15s;
}
#auth-submit:hover{background:#0a0a0a;border-color:#ffffff;box-shadow:0 0 0 3px rgba(255,255,255,.06);}
#auth-submit:disabled{background:#111111;color:#666666;border-color:rgba(255,255,255,.08);cursor:not-allowed;}
#auth-trial-note{
  text-align:center;font-size:10px;color:#666666;
  margin-top:14px;line-height:1.6;
}
#auth-trial-note strong{color:#64748b;}

/* ── TIER BADGE in nav ────────────────────────────────────── */
#nav-tier-badge{
  font-size:9px;font-family:'DM Mono',monospace;font-weight:500;
  padding:2px 7px;border-radius:3px;letter-spacing:.5px;
  text-transform:uppercase;margin-left:4px;
}
#nav-tier-badge.paid{background:rgba(255,255,255,0.12);color:#ffffff;border:1px solid rgba(255,255,255,0.2);}
#nav-tier-badge.trial{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.2);}
#nav-tier-badge.free{background:rgba(100,116,139,.1);color:#64748b;border:1px solid rgba(100,116,139,.2);}
#nav-user-email{font-size:10px;color:#666666;font-family:'DM Mono',monospace;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ── LOCKED TAB overlay ───────────────────────────────────── */
.tab-locked-badge{
  font-size:8px;color:#666666;margin-left:4px;
  vertical-align:middle;
}
#upgrade-gate{
  position:fixed;inset:0;z-index:9998;
  background:rgba(0,0,0,.85);backdrop-filter:blur(6px);
  display:none;align-items:center;justify-content:center;
}
#upgrade-gate.open{display:flex;}
#upgrade-gate-box{
  background:#1a1a1a;border:1px solid #333;border-radius:12px;
  padding:40px 36px;width:380px;text-align:center;
}
#upgrade-gate-box h3{color:#ffffff;font-size:20px;font-weight:700;margin-bottom:8px;}
#upgrade-gate-box .gate-subtitle{color:#888;font-size:12px;margin-bottom:16px;}
#upgrade-gate-box .gate-pitch{color:#777;font-size:12px;line-height:1.7;margin-bottom:24px;}
#upgrade-gate-close{
  position:absolute;top:12px;right:14px;
  background:none;border:none;color:#555;font-size:18px;cursor:pointer;
}
#upgrade-gate-close:hover{color:#fff;}
.upgrade-btn-primary{
  display:block;width:100%;padding:12px;
  background:#ffffff;border:none;border-radius:8px;
  color:#000;font-size:13px;font-weight:600;cursor:pointer;
  font-family:'DM Sans',sans-serif;text-decoration:none;text-align:center;
  transition:.15s;
}
.upgrade-btn-primary:hover{background:#e0e0e0;}
.upgrade-btn-secondary{
  display:block;width:100%;padding:12px;margin-top:10px;
  background:transparent;border:1px solid #444;border-radius:8px;
  color:#fff;font-size:13px;font-weight:500;cursor:pointer;
  font-family:'DM Sans',sans-serif;text-decoration:none;text-align:center;
  transition:.15s;
}
.upgrade-btn-secondary:hover{background:#222;border-color:#666;}

/* === SECTION 3: Alert Modal tabs === */
.nalrt-tab{flex:1;padding:10px;text-align:center;font-size:11px;color:#787b86;cursor:pointer;border-right:1px solid #1f1f1f;}
.nalrt-tab:last-child{border-right:none;}
.nalrt-tab.active{color:#ffffff;border-bottom:2px solid #ffffff;background:#111;}
.nalrt-tab:hover{color:#d1d4dc;}
@keyframes alertSlide { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ══════════════════════════════════════════════════════════════
   Ask ScanInsight AI drawer
   ══════════════════════════════════════════════════════════════ */
#ask-ai-drawer{
  position:fixed;top:var(--nav-h);right:0;bottom:0;width:400px;
  background:#0a0a0a;border-left:1px solid var(--border);
  z-index:9500;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .2s ease-out;
  box-shadow:-8px 0 24px rgba(0,0,0,0.5);
}
#ask-ai-drawer.open{transform:translateX(0);}
.aad-hdr{
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0;
  background:var(--bg2);
}
.aad-title{font-size:12px;font-weight:600;color:#ffffff;text-transform:uppercase;letter-spacing:.8px;font-family:var(--mono);}
.aad-sym{font-family:var(--mono);font-size:18px;font-weight:700;color:#fff;margin-top:2px;}
.aad-close{
  background:none;border:none;color:var(--muted);font-size:22px;cursor:pointer;
  padding:0;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:4px;transition:.15s;
}
.aad-close:hover{color:var(--text);background:var(--bg3);}
.aad-presets{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 14px;
  border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg2);
}
.aad-preset{
  background:var(--bg3);border:1px solid var(--border);
  color:var(--text2);padding:8px 10px;border-radius:var(--r-sm);
  font-size:11px;font-weight:500;cursor:pointer;transition:.15s;
  font-family:var(--sans);text-align:left;
}
.aad-preset:hover{border-color:#ffffff;color:#ffffff;background:rgba(255,255,255,0.05);}
.aad-preset:disabled{opacity:0.5;cursor:wait;}
.aad-body{
  flex:1;overflow-y:auto;padding:16px;
  font-size:13px;line-height:1.7;color:var(--text);
}
.aad-body::-webkit-scrollbar{width:4px;}
.aad-body::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px;}
.aad-placeholder{color:var(--muted);font-size:12px;text-align:center;padding:40px 20px;}
.aad-loading{color:var(--muted);font-size:11px;text-align:center;padding:20px;font-family:var(--mono);}
.aad-loading::after{content:'...';animation:aad-dots 1.2s steps(4,end) infinite;}
@keyframes aad-dots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}80%,100%{content:'...'}}
.aad-response{white-space:pre-wrap;}
.aad-error{color:var(--red);font-size:11px;}
.aad-upgrade{text-align:center;padding:18px 6px;}
.aad-upgrade-title{font-size:13px;font-weight:600;color:#ffffff;margin-bottom:8px;}
.aad-upgrade-text{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:14px;}
.aad-upgrade-btn{
  display:inline-block;background:#26a69a;color:#fff;text-decoration:none;
  font-size:11px;font-weight:600;padding:8px 16px;border-radius:var(--r-sm);
}
.aad-upgrade-btn:hover{background:#2ebfb0;}
.aad-prompt-label{
  font-size:9px;color:var(--muted);font-family:var(--mono);
  text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;
}
.aad-footer{
  display:flex;gap:6px;padding:10px 14px;
  border-top:1px solid var(--border);flex-shrink:0;background:var(--bg2);
}
#aad-custom-input{
  flex:1;background:var(--bg3);border:1px solid var(--border);
  color:var(--text);padding:7px 10px;border-radius:var(--r-sm);
  font-size:11px;font-family:var(--sans);outline:none;
}
#aad-custom-input:focus{border-color:#ffffff;}
.aad-send-btn{
  background:#26a69a;border:none;color:#000;
  padding:7px 14px;border-radius:var(--r-sm);
  font-size:11px;font-weight:600;cursor:pointer;font-family:var(--mono);
}
.aad-send-btn:hover{background:#2ebfb2;}
.aad-send-btn:disabled{opacity:0.5;cursor:wait;}
.aad-disclaimer{
  padding:6px 14px 10px;font-size:9px;color:var(--muted);
  font-family:var(--mono);text-align:center;line-height:1.4;
  background:var(--bg2);border-top:1px solid var(--border);
}

/* Builder field picker — cap height so it doesn't dominate the screen
   and squeeze the results pane. Added 2026-05-27 with the Builder UI redesign.
   Without this, picking the "Performance" category (which has ~25 fields)
   pushes the Results pane down to ~30% of the viewport. */
#builder-field-picker .builder-cat-fields{max-height:220px;overflow-y:auto;}
/* Empty-state styling for the builder results placeholder. Was inline on the
   div, which leaked padding:32px + text-align:center into the populated state
   (the rendered table sat in a centered, padded box). Now the empty class
   carries the styles and the JS clears it when the table renders. */
.builder-results-empty{padding:32px;text-align:center;color:var(--muted);font-size:12px;font-family:var(--mono);}

/* Builder view toggle — table/cards switcher in the Builder header.
   Mirrors the Scanner's view toggle for visual consistency. */
.builder-view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.builder-view-toggle button{
  background:none;border:none;padding:5px 10px;font-size:10px;font-family:var(--mono);
  color:var(--muted);cursor:pointer;transition:.1s;letter-spacing:.4px;
}
.builder-view-toggle button.active{background:var(--bg3);color:var(--text);}
.builder-view-toggle button:not(:last-child){border-right:1px solid var(--border);}
