
.intraday-box {
  border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--surface); margin-bottom: 14px;
}
.intraday-box-head {
  display: flex; align-items: center; gap: .6rem;
  padding: .75rem 1.1rem; cursor: pointer; user-select: none;
  background: var(--surface2); transition: background .15s;
  border-radius: var(--radius);
}
.intraday-box.open .intraday-box-head { border-radius: var(--radius) var(--radius) 0 0; }
.intraday-box-head:hover { background: var(--surface3); }
.intraday-box-icon { width: 20px; height: 20px; color: var(--gold); flex-shrink: 0; }
.intraday-box-title { font-size: .92rem; font-weight: 800; color: var(--text); }
.intraday-box-caret {
  width: 13px; height: 13px; color: var(--muted); flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform .2s; margin-left: 12px;
}
.intraday-box-date {
  margin-left: auto; font-size: 11px; font-weight: 700; letter-spacing: .04em;
  color: var(--muted); text-transform: uppercase; white-space: nowrap;
}
.intraday-box-caret svg { width: 100%; height: 100%; display: block; }
.intraday-box.open .intraday-box-caret { transform: rotate(90deg); }
.intraday-box-body { display: none; padding: 0; border-radius: 0 0 var(--radius) var(--radius); overflow: hidden; }
.intraday-box.open .intraday-box-body { display: block; }
.intraday-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; }
.intraday-tab {
  padding: .45rem .9rem; font-size: .78rem; font-weight: 700; border-radius: 8px;
  border: 1px solid var(--border); background: var(--surface); color: var(--muted);
  cursor: pointer; font-family: inherit; transition: all .15s;
}
.intraday-tab:hover { color: var(--text); border-color: var(--border-hi); }
.intraday-tab.active { background: var(--gold); color: #fff; border-color: var(--gold); }

/* ─── Level chart (full-screen, tabbed, per-timeframe) ────── */
.lvl-screen {
  display: flex; flex-direction: column;
  min-height: 320px;
  padding: 0;
  position: relative; z-index: 0;
}
.lvl-tabs {
  position: absolute; top: 14px; left: 12px; right: 12px; z-index: 6;
  display: flex; gap: 6px; overflow-x: auto;
}
.lvl-tabs[hidden] { display: none !important; }
.lvl-tab {
  flex: 1 1 0; min-width: 48px; padding: .4rem .2rem; font-size: .72rem; font-weight: 700;
  border-radius: 8px; border: 1px solid var(--border);
  background: rgba(255,255,255,0.85); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: var(--muted); cursor: pointer; font-family: inherit; transition: all .15s;
  white-space: nowrap; text-align: center;
}
.lvl-tab:hover { color: var(--text); border-color: var(--border-hi); }
.lvl-tab.active { background: var(--gold); color: #fff; border-color: var(--gold); }
.lvl-chart-wrap { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; padding: 0; }
/* Candlestick chart */
.ac-host { position: absolute; inset: 0; }
.ac-empty { display: flex; align-items: center; justify-content: center; height: 100%; color: #94a3b8; font-size: .85rem; }
.ac-svg { display: block; }
.ac-grid { stroke: #f1f5f9; stroke-width: 1; }
/* Order-block zones */
.ac-ob { stroke: none; }
.ac-ob-bull { fill: rgba(22,163,74,.20); }
.ac-ob-bear { fill: rgba(220,38,38,.20); }
.ac-ob-mid { stroke-width: 1.5; stroke-dasharray: 4 3; }
.ac-ob-mid.ac-ob-bull { stroke: rgba(22,163,74,.85); }
.ac-ob-mid.ac-ob-bear { stroke: rgba(220,38,38,.85); }
.ac-vgrid { stroke: #cbd2da; stroke-width: 1; stroke-dasharray: 3 4; }
.ac-axis-border { stroke: #d8e2f0; stroke-width: 1; }
.ac-axis-y { fill: #94a3b8; font-size: 9px; text-anchor: start; }
.ac-axis-x { fill: #94a3b8; font-size: 9px; text-anchor: middle; }
.ac-wick.ac-up { stroke: #16a34a; }
.ac-wick.ac-down { stroke: #dc2626; }
.ac-body.ac-up { fill: #16a34a; }
.ac-body.ac-down { fill: #dc2626; }
.ac-lvl { stroke-width: 1; stroke-dasharray: 4 3; opacity: .8; }
/* Level source colors: Intra vs H1 */
.ac-lvl-intra { stroke: #f59e0b; }   /* Intra levels — amber */
.ac-lvl-h1 { stroke: #6366f1; }      /* H1 levels — indigo */
/* Position-based level colors: above price = red/orange, below = green/blue */
.ac-lvl-red { stroke: #dc2626; }     /* above · H1 */
.ac-lvl-orange { stroke: #f59e0b; }  /* above · Intra */
.ac-lvl-green { stroke: #16a34a; }   /* below · Intra */
.ac-lvl-blue { stroke: #2563eb; }    /* below · H1 */
.ac-lvl-tag.ac-lvl-intra { fill: #fbbf24; }
.ac-lvl-tag.ac-lvl-h1 { fill: #4f46e5; }
.ac-lvl-tagtxt { font-size: 10px; font-weight: 500; text-anchor: start; stroke: none; fill: #4b5563; }
.ac-lvl-tagtxt.ac-lvl-intra { fill: #4b5563; stroke: none; }
.ac-lvl-tagtxt.ac-lvl-h1 { fill: #4b5563; stroke: none; }
/* Left-side S / R / Last markers */
.ac-lvl-mark.ac-mk-r { fill: #dc2626; }
.ac-lvl-mark.ac-mk-s { fill: #16a34a; }
.ac-lvl-mark.ac-mk-last { fill: #111827; }
.ac-lvl-marktxt { font-size: 10px; font-weight: 800; text-anchor: middle; fill: #fff; stroke: none; }
.ac-lvl-marktxt.ac-mk-last-txt { font-size: 9px; text-anchor: middle; fill: #fff; stroke: none; }
.ac-price-line { stroke: #111827; stroke-width: 1; stroke-dasharray: 4 2; }
.ac-price-tag { fill: #111827; }
.ac-price-tag-txt { fill: #ffffff; font-size: 10px; font-weight: 800; text-anchor: start; stroke: none; }
.ac-zoom-tag { fill: #94a3b8; font-size: 9px; font-weight: 800; text-anchor: end; }
#view-levels .ac-host { cursor: default; }
/* Chart-mode toggle (Candles / Levels) */
.chart-mode { position: absolute; top: 12px; right: 12px; z-index: 8; display: inline-flex; background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.chart-mode button { font-family: inherit; font-size: .68rem; font-weight: 700; color: var(--muted); background: transparent; border: none; padding: .35rem .6rem; cursor: pointer; }
.chart-mode button.on { background: #111827; color: #fff; }
.lvl-date-overlay {
  position: absolute; top: 46px; left: 12px; z-index: 5;
  font-size: .72rem; font-weight: 700; letter-spacing: .03em; color: var(--muted);
  background: rgba(255,255,255,0.7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  padding: 3px 9px; border-radius: 6px; pointer-events: none;
}
.lvl-chart { width: 100%; height: 100%; display: block; font-variant-numeric: tabular-nums; }
#js-lvl-chart { width: 100%; height: 100%; }




.intraday-scope .matrix-cols {
  display: flex; flex-direction: row; align-items: stretch;
  gap: 0; font-variant-numeric: tabular-nums; overflow-x: auto;
  background: var(--surface);
}
.intraday-scope .mx-col { flex: 1 1 0; min-width: 72px; }
.intraday-scope .mx-col:last-child { border-right: none; }
.intraday-scope .mx-col-head {
  font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: #4a5160; padding: .65rem .5rem; text-align: center;
  white-space: nowrap;
  background: #f1f3f7;
  height: auto; display: flex; align-items: center; justify-content: center;
  box-sizing: border-box;
}
.intraday-scope .mx-col-body { display: flex; flex-direction: column; }
.intraday-scope .mx-cell {
  height: 32px; padding: 0 8px; text-align: center;
  box-sizing: border-box; display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.intraday-scope .mx-level { font-size: 12px; font-weight: 600; color: var(--ink); }
.intraday-scope .mx-level.mx-above { color: #dc2626; }
.intraday-scope .mx-level.mx-below { color: #16a34a; }
.intraday-scope .mx-blank { color: #cbd3df; font-weight: 400; }
.intraday-scope .mx-marker {
  background: transparent; color: var(--ink);
}
.intraday-scope .mx-marker-val { font-size: 13px; font-weight: 800; color: var(--ink); line-height: 1; }
.intraday-scope .matrix-table th.mx-lock, .intraday-scope .matrix-table td.mx-lock {
  text-align: center; padding-left: 4px; padding-right: 4px; color: var(--ink-mute); font-weight: 700; font-size: 10px;
}
.intraday-scope .matrix-table td.mx-lock-on {
  color: #fff; background: #dc2626; border-radius: 3px; font-size: 9px; letter-spacing: .04em;
}

@media (max-width: 700px) {
  
  
  
}
@media (max-width: 900px) { }

/* ── Original intraday CSS, scoped under .intraday-scope ── */
  .intraday-scope .levels-head{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
  }
  .intraday-scope .levels-head .ldate{
    font-family: var(--display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--ink-mute);
    text-transform: uppercase;
  }
  .intraday-scope .levels-head .ldate b{ color: var(--ink); font-weight: 800; }
  .intraday-scope .levels-head .ldate.ldate-bold{
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
    text-transform: none;
  }
  .intraday-scope .levels-head .lcount{
    font-family: var(--display);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--cyan);
    background: #e6f2f3;
    padding: 4px 10px;
    border-radius: 999px;
  }
  .intraday-scope .levels-head .lcount.lcount-plain{
    font-family: inherit;
    color: #1e40af;
    background: transparent;
    padding: 0;
    border-radius: 0;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    font-size: 10.5px;
  }

  .intraday-scope .level-row{
    display: grid;
    grid-template-columns: 100px 1fr 1fr;
    align-items: center;
    gap: 14px;
    padding: 9px 14px;
    border-radius: 0;
    margin-bottom: 4px;
    background: #f6f7f8;
  }
  .intraday-scope /* No bottom margin on the last row in the keys list — keeps content flush
     against the card's bottom border (no awkward gap). */
  #js-keys-host .level-row:last-child{
    margin-bottom: 0;
  }

  .intraday-scope /* row backgrounds neutral — strength shown via text color */
  .level-row.r,
  .intraday-scope .level-row.s{
    background: transparent;
    border-bottom: 1px solid var(--line-soft);
  }
  .intraday-scope .level-row.r.tone-0,
  .intraday-scope .level-row.s.tone-0,
  .intraday-scope .level-row.r.tone-1,
  .intraday-scope .level-row.s.tone-1,
  .intraday-scope .level-row.r.tone-2,
  .intraday-scope .level-row.s.tone-2,
  .intraday-scope .level-row.r.tone-3,
  .intraday-scope .level-row.s.tone-3,
  .intraday-scope .level-row.r.tone-4,
  .intraday-scope .level-row.s.tone-4{
    background: transparent;
  }
  .intraday-scope /* old r/s rules retired — see tone-N classes above */

  /* column header row — same grid, .intraday-scope subdued styling */
  .level-row.level-header{
    background: transparent;
    padding: 6px 14px 8px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
  }
  .intraday-scope .level-row.level-header > *{
    font-family: var(--display);
    font-size: 12px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ink-mute);
    background: transparent;
    padding: 0;
  }
  .intraday-scope .level-row.level-header .price{
    text-align: left;
    font-weight: 500;
    font-size: 12px;
    color: var(--ink-mute);
  }
  .intraday-scope .level-row.level-header .score{
    background: transparent;
    color: var(--ink-mute);
    font-weight: 500;
    font-size: 12px;
    padding: 0;
  }
  .intraday-scope .level-row.level-header .note{
    text-align: right;
  }

  .intraday-scope .level-row .label{
    font-family: var(--display);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0;
    color: var(--ink-mute);
  }
  .intraday-scope /* % distance from D-Open, .intraday-scope shown next to R/S label */
  .key-pct{
    display: inline-block;
    margin-left: 3px;
    font-family: var(--display);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--ink-mute);
    font-variant-numeric: tabular-nums;
  }
  .intraday-scope .key-pct.pct-up{ color: #15803d; }
  .intraday-scope .key-pct.pct-down{ color: #b91c1c; }

  .intraday-scope /* Resistance text colors — light → dark by strength */
  .level-row.r.tone-0 .label,
  .intraday-scope .level-row.r.tone-0 .price{ color: #e5b5af; }   .intraday-scope /* palest red */
  .level-row.r.tone-1 .label,
  .intraday-scope .level-row.r.tone-1 .price{ color: #d68a82; }
  .intraday-scope .level-row.r.tone-2 .label,
  .intraday-scope .level-row.r.tone-2 .price{ color: #c25a4d; }
  .intraday-scope .level-row.r.tone-3 .label,
  .intraday-scope .level-row.r.tone-3 .price{ color: #a8362a; }
  .intraday-scope .level-row.r.tone-4 .label,
  .intraday-scope .level-row.r.tone-4 .price{ color: #821e15; }   .intraday-scope /* deepest red */

  /* Support text colors — light → dark by strength */
  .level-row.s.tone-0 .label,
  .intraday-scope .level-row.s.tone-0 .price{ color: #aacbb1; }   .intraday-scope /* palest green */
  .level-row.s.tone-1 .label,
  .intraday-scope .level-row.s.tone-1 .price{ color: #6fb088; }
  .intraday-scope .level-row.s.tone-2 .label,
  .intraday-scope .level-row.s.tone-2 .price{ color: #2d8d50; }
  .intraday-scope .level-row.s.tone-3 .label,
  .intraday-scope .level-row.s.tone-3 .price{ color: #156b34; }
  .intraday-scope .level-row.s.tone-4 .label,
  .intraday-scope .level-row.s.tone-4 .price{ color: #0a4d1f; }   .intraday-scope /* deepest green */

  .level-row .price{
    font-family: var(--display);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
  }

  .intraday-scope .level-row .gap{ display: none; }

  .intraday-scope .level-row .score{
    font-family: var(--display);
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    padding: 0;
    background: transparent;
    color: var(--ink-mute);
  }
  .intraday-scope .level-row.r .score{ background: transparent; color: #b8362a; }
  .intraday-scope .level-row.s .score{ background: transparent; color: #156b34; }

  .intraday-scope .level-row .note{
    font-family: var(--display);
    font-size: 10.5px;
    font-weight: 500;
    color: var(--ink-mute);
    text-align: right;
    white-space: nowrap;
    position: relative;
  }

  .intraday-scope /* D-OPEN row — interleaved with R/S keys at its price position.
     Uniform light grey; no side-tint. */
  .level-row.daily-open-row{
    background: #ececea;
    padding: 9px 16px;
    margin: 0;
  }
  .intraday-scope .level-row.daily-open-row .label{
    color: var(--ink);
    font-weight: 600;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
  }
  .intraday-scope .level-row.daily-open-row .price{
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
  }
  .intraday-scope .level-row.daily-open-row .note{
    text-align: right;
    font-family: var(--display);
    font-size: 10.5px;
    color: var(--ink-mute);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    line-height: 1.1;
  }
  .intraday-scope .level-row.daily-open-row .do-fetched{
    font-family: var(--display);
    font-size: 10px;
    font-weight: 500;
    color: var(--ink-mute);
    letter-spacing: 0.02em;
  }
  .intraday-scope .level-row.daily-open-row .src-tag{
    margin-left: 0;
  }
  .intraday-scope /* No gap between adjacent rows in the keys/open/latest stack */
  .level-row:has(+ .level-row.daily-open-row){
    margin-bottom: 0;
  }
  .intraday-scope .level-row.daily-open-row + .level-row.open,
  .intraday-scope .level-row.daily-open-row + .level-row{
    margin-top: 0;
  }

  .intraday-scope /* OPEN row with gradient */
  .level-row.open{
    background: linear-gradient(90deg, #fde6dc 0%, #fef3d4 50%, #ddf1e0 100%);
    grid-template-columns: 100px 1fr 1fr;
    gap: 14px;
    padding: 13px 16px;
    margin: 0;
  }
  .intraday-scope /* zero the gap between R1 (last row before OPEN) and OPEN */
  .level-row:has(+ .level-row.open){
    margin-bottom: 0;
  }
  .intraday-scope .level-row.open .label-col{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
  }
  .intraday-scope .level-row.open .label{
    color: var(--ink);
    font-weight: 700;
    font-size: 12px;
    text-transform: none;
    letter-spacing: -0.01em;
  }
  .intraday-scope .latest-pct{
    font-family: var(--display);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--ink-mute);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
  }
  .intraday-scope .latest-pct.pct-up{ color: #15803d; }
  .intraday-scope .latest-pct.pct-down{ color: #b91c1c; }
  .intraday-scope .level-row.open .price{
    color: var(--ink);
    font-size: 18px;
    font-weight: 700;
  }
  .intraday-scope .level-row.open .price-col{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .intraday-scope .level-row.open .price-line{
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .intraday-scope .level-row.open .latest-converge{
    display: none;
    font-family: var(--display);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 3px;
    background: #fef0e3;
    color: #b04a16;
    border: 1px solid #f5d4ae;
    line-height: 1.3;
    white-space: nowrap;
  }
  .intraday-scope .level-row.open .latest-converge.visible{ display: inline-flex; }

  .intraday-scope /* Stretched-from-MA badge: signals mean-reversion / pullback potential.
     stretch-up (price below SMA21, .intraday-scope expect pullback up) = green
     stretch-down (price above SMA21, .intraday-scope expect pullback down) = red */
  .level-row.open .latest-stretched{
    display: none;
    font-family: var(--display);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 3px;
    line-height: 1.3;
    white-space: nowrap;
  }
  .intraday-scope .level-row.open .latest-stretched.visible{ display: inline-flex; }
  .intraday-scope .level-row.open .latest-stretched.stretch-up{
    background: #e6f4ec;
    color: #0e6b30;
    border: 1px solid #b8dec6;
  }
  .intraday-scope .level-row.open .latest-stretched.stretch-down{
    background: #fbe8e4;
    color: #9a2f22;
    border: 1px solid #f3c4bb;
  }
  .intraday-scope .level-row.open .open-meta .atr-line{
    font-size: 10px;
    color: var(--ink-mute);
    letter-spacing: 0.02em;
  }
  .intraday-scope .level-row.open .latest-fetched{
    font-family: var(--display);
    font-size: 10px;
    font-weight: 500;
    color: var(--ink-mute);
    letter-spacing: 0.02em;
    line-height: 1;
  }
  .intraday-scope /* Inline data-source tag (e.g. "polygon", .intraday-scope "twelvedata", .intraday-scope "goldapi") */
  .src-tag{
    display: inline-block;
    font-family: inherit;
    font-size: 9px;
    font-weight: 500;
    color: #6b6b66;
    opacity: 0.7;
    letter-spacing: 0;
    text-transform: lowercase;
    margin-left: 4px;
  }
  .intraday-scope /* Loading spinner — inline circular indicator while fetching */
  .loading-spinner{
    display: inline-block;
    width: 9px;
    height: 9px;
    border: 1.5px solid #c8d8f0;
    border-top-color: #1e40af;
    border-radius: 50%;
    animation: loading-spin 0.7s linear infinite;
    vertical-align: -1px;
    margin-right: 3px;
  }
  @keyframes loading-spin {
    to { transform: rotate(360deg); }
  }
  .intraday-scope .level-row.open .open-meta{
    text-align: right;
    font-family: var(--display);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--ink-mute);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
  }
  .intraday-scope .level-row.open .open-meta .src-tag{
    margin-left: 0;
    line-height: 1.1;
  }
  .intraday-scope .level-row.open .open-meta .bull{
    color: #1f8a48;
    font-weight: 700;
  }
  .intraday-scope .level-row.open .open-meta .bear{
    color: #d44638;
    font-weight: 700;
  }

  .intraday-scope .strength-legend{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 10px;
    padding: 0;
    background: transparent;
    border-radius: 0;
    font-family: var(--display);
    font-size: 11.5px;
    color: var(--ink-mute);
  }
  .intraday-scope .strength-legend b{
    color: var(--ink);
    font-weight: 700;
    margin-right: 4px;
  }

  .intraday-scope /* match badges shown in note column */
  .match-badge{
    display: inline-block;
    font-family: var(--display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 2px 6px;
    margin-left: 4px;
    border-radius: 3px;
    background: #ececec;
    color: var(--ink-mute);
    vertical-align: middle;
  }
  .intraday-scope .match-badge.s{ background: #e2f1e6; color: #1f8a48; }   .intraday-scope /* strong */
  .match-badge.m{ background: #fff4d6; color: #a37a1a; }   .intraday-scope /* medium */
  .match-badge.n{ background: #ececec; color: var(--ink-mute); }   .intraday-scope /* nearby */
  .match-badge.brk{
    background: #fef0e3;
    color: #b04a16;
    font-weight: 800;
    border: 1px solid #f5d4ae;
  }

  .intraday-scope /* ── Match count chip + tooltip ──────────────────────────── */
  .match-count{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-family: var(--display);
    font-size: 11px;
    font-weight: 600;
    color: var(--ink-mute);
    cursor: pointer;
    position: relative;
    padding: 3px 8px;
    border-radius: 3px;
    background: #f1f1ef;
    transition: background 0.15s ease;
    min-width: 84px;
    box-sizing: border-box;
    text-align: center;
  }
  .intraday-scope .match-count:hover:not(.bias-chip),
  .intraday-scope .match-count:focus:not(.bias-chip),
  .intraday-scope .match-count.open:not(.bias-chip){
    background: #e6e6e3;
    color: var(--ink);
    outline: none;
  }
  .intraday-scope .match-count-empty{
    background: transparent;
    color: var(--ink-mute);
    cursor: default;
  }
  .intraday-scope .match-count-empty:hover{ background: transparent; }

  .intraday-scope /* ── Bias chip (next to confluence chip) ─────────────────── */
  .note-cell{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: nowrap;
  }
  .intraday-scope .bias-chip{
    display: inline-block;
    font-family: var(--display);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 3px 7px;
    border-radius: 3px;
    white-space: nowrap;
    cursor: pointer;
    position: relative;
    transition: box-shadow 0.15s ease;
    min-width: 84px;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.45;
  }
  .intraday-scope /* No `filter` anywhere — it creates a new containing block that traps
     position:fixed descendants (the mobile bottom-sheet tooltip).
     Use box-shadow for all interactive states. */
  .bias-chip:hover,
  .intraday-scope .bias-chip:focus,
  .intraday-scope .bias-chip.open{
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.18);
    outline: none;
  }
  .intraday-scope .bias-chip .match-tooltip{
    /* tooltip inherits styling from .match-tooltip; override font weight to normal */
    font-weight: 400;
    letter-spacing: 0;
  }
  .intraday-scope .bias-chip:hover .match-tooltip,
  .intraday-scope .bias-chip:focus .match-tooltip,
  .intraday-scope .bias-chip.open .match-tooltip{
    display: block;
  }
  .intraday-scope .bias-chip.bias-strong-r{ background: #fbe1de; color: #821e15; }
  .intraday-scope .bias-chip.bias-r{ background: #fde9e6; color: #b8362a; }
  .intraday-scope .bias-chip.bias-weak-r{ background: #fff5f3; color: #c97370; }
  .intraday-scope .bias-chip.bias-strong-s{ background: #cfe6d4; color: #0a4d1f; }
  .intraday-scope .bias-chip.bias-s{ background: #e2f1e6; color: #156b34; }
  .intraday-scope .bias-chip.bias-weak-s{ background: #f3f8f4; color: #5a8a68; }

  .intraday-scope /* ── Bias header at top of Intraday Keys card ─────────────── */
  .bias-header{
    font-family: var(--display);
    font-size: 12px;
    color: var(--ink-mute);
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: #fafdfa;
    line-height: 1.4;
  }
  .intraday-scope .bias-header b{
    font-weight: 700;
    margin-right: 6px;
  }
  .intraday-scope .bias-header .bias-bull{ color: #156b34; }
  .intraday-scope .bias-header .bias-bear{ color: #b8362a; }
  .intraday-scope .bias-header .bias-mixed{ color: #a37a1a; }

  .intraday-scope /* ── Trade plan tooltip styles ────────────────────────────── */
  .mt-trade-head{
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #cfcec8;
    margin-bottom: 8px;
  }
  .intraday-scope .mt-trade-row{
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 10px;
    padding: 3px 0;
    font-variant-numeric: tabular-nums;
    align-items: baseline;
  }
  .intraday-scope .mt-trade-row .mt-trade-key{
    color: #93908a;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
  }
  .intraday-scope .mt-trade-row .mt-trade-val{
    color: #fafdfa;
    font-size: 12.5px;
    font-weight: 700;
  }
  .intraday-scope .mt-trade-row .mt-trade-val .mt-trade-sub{
    color: #93908a;
    font-size: 10.5px;
    font-weight: 500;
    margin-left: 3px;
  }
  .intraday-scope .mt-trade-row .mt-trade-val.dir-long{ color: #6ee082; }
  .intraday-scope .mt-trade-row .mt-trade-val.dir-short{ color: #ff7a6c; }
  .intraday-scope .mt-trade-row .mt-trade-val.rr-good{ color: #6ee082; }
  .intraday-scope .mt-trade-row .mt-trade-val.rr-poor{ color: #f0c660; }
  .intraday-scope .mt-trade-row .mt-trade-val.rr-bad{ color: #ff7a6c; }
  .intraday-scope .mt-trade-note{
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #3a3a36;
    font-size: 9.5px;
    color: #93908a;
    line-height: 1.4;
  }

  .intraday-scope .match-tooltip{
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    right: 0;
    z-index: 100;
    background: #1a1a17;
    color: #fafdfa;
    border-radius: 6px;
    padding: 12px 14px;
    min-width: 260px;
    max-width: 320px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.25);
    font-family: var(--display);
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.4;
    cursor: default;
    text-align: left;
  }
  .intraday-scope .match-count:hover .match-tooltip,
  .intraday-scope .match-count:focus .match-tooltip,
  .intraday-scope .match-count.open .match-tooltip{
    display: block;
  }
  .intraday-scope .match-tooltip::after{
    content: '';
    position: absolute;
    top: 100%;
    right: 14px;
    border: 5px solid transparent;
    border-top-color: #1a1a17;
  }

  .intraday-scope /* Mobile: pin tooltip to bottom of viewport for guaranteed visibility */
  @media (max-width: 600px){
    .intraday-scope .match-tooltip,
    .intraday-scope .bias-chip .match-tooltip,
    .intraday-scope .match-count .match-tooltip{
      position: fixed !important;
      top: auto !important;
      bottom: 16px !important;
      left: 16px !important;
      right: 16px !important;
      width: auto !important;
      max-width: none !important;
      min-width: 0 !important;
      padding: 16px 16px 16px 16px !important;
      padding-top: 44px !important;
      font-size: 13px !important;
    }
    .intraday-scope .match-tooltip::after{ display: none !important; }
    .intraday-scope .mt-close{
      display: block !important;
    }
    .intraday-scope /* Backdrop dims the page when tooltip is open on mobile */
    .match-count.open::before,
    .intraday-scope .bias-chip.open::before{
      content: '';
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.4);
      z-index: 99;
    }
  }

  .intraday-scope /* Touch-device fallback (matches above rules but doesn't depend on viewport width).
     This catches edge cases like "Request Desktop Site" mode on iOS. */
  body.touch-device .match-tooltip{
    position: fixed !important;
    top: auto !important;
    bottom: 16px !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 44px 16px 16px 16px !important;
    font-size: 13px !important;
  }
  .intraday-scope body.touch-device .match-tooltip::after{ display: none !important; }
  .intraday-scope body.touch-device .mt-close{ display: block !important; }
  .intraday-scope body.touch-device .match-count.open::before,
  .intraday-scope body.touch-device .bias-chip.open::before{
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99;
  }
  .intraday-scope .mt-section{ margin-bottom: 10px; }
  .intraday-scope .mt-section:last-child{ margin-bottom: 0; }
  .intraday-scope .mt-group{
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #93908a;
    margin-bottom: 4px;
  }
  .intraday-scope .mt-row{
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
    align-items: baseline;
    font-variant-numeric: tabular-nums;
    padding: 2px 0;
  }
  .intraday-scope .mt-row-breakout{
    grid-template-columns: 1fr;
  }
  .intraday-scope .mt-label{
    color: #fafdfa;
    font-weight: 500;
  }
  .intraday-scope .mt-value{
    color: #cfcec8;
    font-weight: 500;
  }
  .intraday-scope .mt-dist{
    color: #93908a;
    font-size: 10.5px;
    font-weight: 700;
    text-align: right;
    min-width: 78px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  .intraday-scope .mt-dist.mt-up{ color: #6ee082; }   .intraday-scope /* data above key */
  .mt-dist.mt-down{ color: #ff7a6c; }   .intraday-scope /* data below key */
  .mt-key-header{
    font-size: 11.5px;
    font-weight: 700;
    color: #fafdfa;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid #3a3a36;
    letter-spacing: 0.02em;
  }
  .intraday-scope .mt-key-header.mt-key-r{ color: #ff7a6c; }   .intraday-scope /* resistance */
  .mt-key-header.mt-key-s{ color: #6ee082; }   .intraday-scope /* support */
  .mt-total{
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #3a3a36;
    font-size: 10.5px;
    color: #cfcec8;
  }
  .intraday-scope .mt-total b{
    color: #fafdfa;
    font-weight: 800;
    font-size: 13px;
    margin-left: 6px;
  }
  .intraday-scope .mt-close{
    display: none;
    position: absolute;
    top: 8px;
    right: 8px;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    color: #cfcec8;
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
    cursor: pointer;
    border-radius: 4px;
    padding: 0;
  }
  .intraday-scope .mt-close:hover, .intraday-scope .mt-close:focus{
    background: rgba(255,255,255,0.1);
    color: #fafdfa;
    outline: none;
  }

  .intraday-scope /* Row marker: keys sitting inside an MA convergence zone (breakout watch) */
  .level-row.breakout{
    position: relative;
  }
  .intraday-scope .level-row.breakout::before{
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #d97706;
  }


  .intraday-scope /* ── Turn Keys table ───────────────────────────────────────── */
  .turn-table{
    width: 100%;
    border-collapse: collapse;
    font-family: var(--display);
    font-variant-numeric: tabular-nums;
  }
  .intraday-scope .turn-table th{
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-mute);
    text-align: left;
    padding: 12px 14px 8px;
    border-bottom: 1px solid var(--line);
  }
  .intraday-scope .turn-table td{
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    padding: 7px 14px;
    border-bottom: 1px solid var(--line-soft);
  }
  .intraday-scope .turn-table tbody tr:last-child td{
    border-bottom: none;
    padding-bottom: 12px;
  }

  @media (max-width: 600px) {
    .intraday-scope .level-row{
      /* note column needs more space (two chips); price is short numeric */
      grid-template-columns: 78px minmax(0, 0.55fr) minmax(0, 1.45fr);
      gap: 6px;
      padding: 8px 10px;
    }
    .intraday-scope /* Last H1 and D-Open inherit the same label width for clean column alignment */
    .level-row.open,
    .intraday-scope .level-row.daily-open-row{
      grid-template-columns: 78px auto 1fr;
      gap: 6px;
    }
    .intraday-scope .level-row .note{
      display: block;
      text-align: right;
      white-space: nowrap;
      padding-left: 0;
      margin-top: 0;
      position: relative;
    }
    .intraday-scope .level-row.no-match .note{
      display: block;
    }
    .intraday-scope .level-row.level-header .note{
      display: block;
    }
    .intraday-scope .level-row .price{ font-size: 13px; }
    .intraday-scope .level-row .label{ font-size: 10px; }
    .intraday-scope .level-row .score{ font-size: 10.5px; padding: 2px 0; }
    .intraday-scope .level-row .gap{ font-size: 10px; }
    .intraday-scope .level-row.open .price{ font-size: 14px; }
    .intraday-scope .level-row.open .open-meta{ font-size: 10px; }
    .intraday-scope /* Shrink confluence + bias chips on mobile so the .note cell fits inside viewport */
    .match-count, .intraday-scope .bias-chip{
      min-width: 70px;
      font-size: 10px;
      padding: 3px 5px;
    }
    .intraday-scope .note-cell{
      gap: 4px;
    }
    .intraday-scope .strength-legend{ gap: 10px; font-size: 10.5px; }
    .intraday-scope .match-badge{
      font-size: 9px;
      padding: 1px 4px;
      margin-left: 0;
      margin-right: 0;
    }
  }

  .intraday-scope /* ── content card (matches forecast card style) ───────────── */
  .content-card{
    background: var(--bg-card);
    border: 1px solid #c8d8f0;
    border-radius: 2px;
    overflow: hidden;
  }
  .intraday-scope /* keys-card needs visible overflow so the match-tooltip can pop above row edges */
  .content-card.keys-card{
    overflow: visible;
  }
  .intraday-scope .content-card.keys-combined{
    background: transparent;
    border: none;
    border-radius: 0;
  }
  .intraday-scope .content-card .levels-head{
    margin-bottom: 0;
    padding: 14px 20px;
    background: var(--bg-elev);
  }
  .intraday-scope .content-card-body{
    padding: 20px 24px;
  }
  .intraday-scope .content-card-body.flush{
    padding: 0;
  }
  .intraday-scope .content-card-body.flush .level-row{
    padding-left: 14px;
    padding-right: 14px;
  }
  .intraday-scope .legends-block{
    padding: 0 14px 14px;
  }
  .intraday-scope /* When body is flush, .intraday-scope align the header's text padding with the rows' internal padding */
  .content-card.keys-card .levels-head{
    padding: 14px 14px;
  }
  @media (max-width: 600px) {
    .intraday-scope .content-card .levels-head{ padding: 12px 14px; }
    .intraday-scope .content-card-body{ padding: 14px 16px; }
    .intraday-scope .content-card-body.flush{ padding: 0; }
    .intraday-scope .content-card-body.flush .level-row{ padding-left: 10px; padding-right: 10px; }
    .intraday-scope .content-card.keys-card .levels-head{ padding: 10px 10px; }
    .intraday-scope .legends-block{ padding: 0 10px 10px; }
  }

  .intraday-scope /* ── intraday tab: 2 columns ───────────────────────────────── */
  .intraday-cols{
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 24px;
    align-items: start;
  }
  .intraday-scope .intraday-left,
  .intraday-scope .intraday-right{
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  @media (max-width: 900px) {
    .intraday-scope .intraday-cols{
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .intraday-scope .intraday-left,
    .intraday-scope .intraday-right{ gap: 20px; }
  }

  .intraday-scope /* ── Key Catalysts (top of Intraday left column) ──────────
     Dashed light-blue box, .intraday-scope no header — just 2 lines of data. */
  .catalysts-banner{
    padding: 10px;
    border: 1px dashed #c8d8f0;
    border-radius: 2px;
  }
  .intraday-scope .catalysts-list{
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .intraday-scope .catalyst-item{
    display: grid;
    grid-template-columns: 36px 22px 1fr;
    align-items: baseline;
    gap: 10px;
    font-size: 13px;
    color: var(--ink);
    line-height: 1.4;
  }
  .intraday-scope .catalyst-item strong{ font-weight: 700; }
  .intraday-scope .catalyst-day{
    font-family: var(--display);
    font-size: 10.5px;
    font-weight: 700;
    color: #1e40af;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .intraday-scope .catalyst-icon{
    font-size: 14px;
    line-height: 1;
  }
  .intraday-scope .catalyst-text{
    color: var(--ink);
  }
  .intraday-scope .catalyst-priority .catalyst-text strong{
    color: #b8362a;
  }
  @media (max-width: 600px) {
    .intraday-scope .catalyst-item{ font-size: 12px; gap: 8px; grid-template-columns: 30px 18px 1fr; }
    .intraday-scope .catalyst-day{ font-size: 10px; }
  }

  .intraday-scope /* ── MA pivot table (rows = MA, .intraday-scope columns = timeframe) ──────── */
  .ma-table{
    width: 100%;
    border-collapse: collapse;
    font-family: var(--display);
    font-variant-numeric: tabular-nums;
  }
  .intraday-scope .ma-table th{
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-mute);
    text-align: right;
    padding: 12px 10px 8px;
    border-bottom: 1px solid var(--line);
  }
  .intraday-scope .ma-table th:first-child{
    text-align: left;
    padding-left: 14px;
  }
  .intraday-scope .ma-table td{
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    padding: 8px 10px;
    border-bottom: 1px solid var(--line-soft);
    text-align: right;
    white-space: nowrap;
  }
  .intraday-scope .ma-table td:first-child{
    text-align: left;
    padding-left: 14px;
    color: var(--ink);
    font-weight: 600;
  }
  .intraday-scope .ma-table tbody tr:last-child td{
    border-bottom: none;
    padding-bottom: 12px;
  }
  .intraday-scope .ma-table .ma-cell{
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
  }
  .intraday-scope .ma-table .ma-cell-val{
    color: var(--ink);
  }
  .intraday-scope .ma-table .ma-cell-bias{
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 1px 4px;
    border-radius: 2px;
    text-transform: uppercase;
  }
  .intraday-scope .ma-table .bias-n{ background: #ececec; color: var(--ink-mute); }
  .intraday-scope .ma-table .bias-b{ background: #d5ead8; color: #156b34; }
  .intraday-scope .ma-table .bias-s{ background: #fbe1de; color: #b8362a; }

  .intraday-scope /* Mobile: shrink MA table fonts and tighten padding to fit 5 columns */
  @media (max-width: 600px){
    .intraday-scope .ma-table th{
      font-size: 9px;
      padding: 10px 4px 6px;
      letter-spacing: 0.04em;
    }
    .intraday-scope .ma-table th:first-child{
      padding-left: 10px;
    }
    .intraday-scope .ma-table td{
      font-size: 11px;
      padding: 6px 4px;
    }
    .intraday-scope .ma-table td:first-child{
      padding-left: 10px;
      font-size: 10.5px;
    }
    .intraday-scope .ma-table .ma-cell{ gap: 3px; }
    .intraday-scope .ma-table .ma-cell-bias{
      font-size: 8px;
      padding: 1px 3px;
    }
  }

  .intraday-scope /* ── Fibonacci list (Daily + Weekly columns) ──────────────── */
  .fib-list{
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .intraday-scope .fib-list li{
    display: grid;
    grid-template-columns: 60px 1fr 1fr;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--line-soft);
    font-family: var(--display);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
  }
  .intraday-scope .fib-list li.fib-header{
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-mute);
    padding: 12px 14px 8px;
    border-bottom: 1px solid var(--line);
  }
  .intraday-scope .fib-list li.fib-header .fib-value{ text-align: right; }
  .intraday-scope .fib-list li:last-child{ border-bottom: none; padding-bottom: 12px; }
  .intraday-scope .fib-list li.fib-empty{
    color: var(--ink-mute);
    grid-template-columns: 1fr;
    text-align: center;
    font-style: italic;
    padding: 14px;
  }
  .intraday-scope .fib-list .fib-pct{
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.01em;
  }
  .intraday-scope .fib-list .fib-row .fib-value{
    font-weight: 500;
    color: var(--ink);
    text-align: right;
  }
  .intraday-scope .fib-list .fib-row-key{
    background: #f6fafa;
  }
  .intraday-scope .fib-list .fib-row-key .fib-pct{
    font-weight: 700;
  }
  .intraday-scope .fib-arrow-up{ color: #156b34; font-weight: 700; }
  .intraday-scope .fib-arrow-down{ color: #b8362a; font-weight: 700; }
  .intraday-scope .fib-list .fib-header .trend-up{ color: #156b34; }
  .intraday-scope .fib-list .fib-header .trend-down{ color: #b8362a; }

  .intraday-scope /* ── RSI list ─────────────────────────────────────────────── */
  .rsi-list{
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .intraday-scope .rsi-list li{
    display: grid;
    grid-template-columns: 60px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--line-soft);
    font-family: var(--display);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
  }
  .intraday-scope .rsi-list li:last-child{ border-bottom: none; padding-bottom: 12px; }
  .intraday-scope .rsi-list .rsi-tf{
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.01em;
  }
  .intraday-scope .rsi-list .rsi-val{
    font-weight: 500;
    color: var(--ink);
    text-align: right;
  }
  .intraday-scope .rsi-list .rsi-tag{
