﻿:root{
  --bg-app:        #0a0907;     /* warm near-black, slight gold undertone */
  --bg-panel:      #111008;     /* warm panel */
  --bg-panel-2:    #16140d;     /* slightly lifted panel for table heads */
  --bg-elev:       #1c1a12;     /* elevated surface for inputs/tags */
  --bg-row-hover:  #1f1c12;     /* row hover with warm tint */

  --line:          #2a2418;     /* warm hairline (was cool grey) */
  --line-soft:     #1c1810;     /* soft inner divider */
  --line-strong:   #3a3221;     /* stronger divider */

  --t-0:           #f5efde;     /* primary text â€” warm cream */
  --t-1:           #c4bca6;     /* secondary text â€” warm tan */
  --t-2:           #8a8068;     /* tertiary / labels â€” muted gold-grey */
  --t-3:           #5a5240;     /* muted */

  --au:            #f5c542;     /* gold primary */
  --au-bright:     #ffd866;     /* brighter gold for highlights */
  --au-dim:        #c89a2a;     /* darker gold for subtle accents */
  --au-soft:       rgba(245,197,66,0.12);
  --au-softer:     rgba(245,197,66,0.06);
  --au-line:       rgba(245,197,66,0.32);
  --au-line-soft:  rgba(245,197,66,0.16);
  --au-glow:       rgba(245,197,66,0.22);

  --green:         #4ec9a8;
  --green-soft:    rgba(78,201,168,0.12);
  --red:           #e06c75;
  --red-soft:      rgba(224,108,117,0.12);
  --blue:          #6ab5ff;
  --blue-soft:     rgba(106,181,255,0.12);
  --orange:        #e9a857;
  --orange-soft:   rgba(233,168,87,0.12);
  --purple:        #b86dff;
  --purple-soft:   rgba(184,109,255,0.14);

  --r-pill: 100px;
  --r-card: 6px;

  --f-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --h-topbar: 44px;
  --w-sidebar: 220px;
  --h-statusbar: 28px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: var(--f-sans);
  background:
    radial-gradient(ellipse 1200px 400px at 50% -100px, rgba(245,197,66,0.04), transparent 70%),
    var(--bg-app);
  color: var(--t-0);
  font-size: 13px;
  line-height: 1.45;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
}

.app{
  display: grid;
  grid-template-columns: var(--w-sidebar) 1fr;
  grid-template-rows: 1fr var(--h-statusbar);
  grid-template-areas: "side main" "side status";
  height: 100vh;
}

/* ============== SIDEBAR ============== */
.side{
  grid-area: side;
  background: var(--bg-panel);
  border-right: 1px solid var(--line);
  display: flex; flex-direction: column;
  min-height: 0; overflow: hidden;
}
.side-brand{
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--line);
}
.side-mark{
  width: 22px; height: 22px;
  border-radius: 100px;
  background: radial-gradient(circle at 35% 35%, rgba(255,216,102,0.28), rgba(245,197,66,0.08) 70%);
  border: 1px solid var(--au-line);
  display: inline-grid; place-items: center;
  box-shadow: 0 0 12px rgba(245,197,66,0.18), inset 0 0 8px rgba(245,197,66,0.08);
}
.side-mark::after{
  content:"";
  width: 7px; height: 7px; border-radius: 100px;
  background: var(--au);
  box-shadow: 0 0 10px var(--au-glow), 0 0 4px rgba(255,216,102,0.6);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:0.45;} }
.side-brand-name{
  font-size: 11.5px; font-weight: 600;
  letter-spacing: -0.005em; color: var(--t-0); line-height: 1.2;
  white-space: nowrap;
}
.side-brand-sub{
  font-size: 10px; color: var(--t-2); font-weight: 500;
  letter-spacing: 0.03em; text-transform: uppercase; margin-top: 1px;
}
.side-section{
  padding: 14px 12px 6px;
  font-size: 9.5px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--au-dim);
}
.side-nav{ display: flex; flex-direction: column; padding: 0 8px; gap: 1px; }
.side-link{
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px;
  font-size: 12.5px; font-weight: 500;
  color: var(--t-1);
  border: 1px solid transparent;
  border-radius: var(--r-card);
  cursor: pointer; user-select: none;
  position: relative;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.side-link:hover{
  background: var(--bg-panel-2);
  color: var(--t-0);
}
.side-link.is-active{
  background: linear-gradient(180deg, rgba(245,197,66,0.10), rgba(245,197,66,0.02));
  border-color: var(--au-line);
  color: var(--t-0);
  box-shadow: 0 0 0 1px rgba(245,197,66,0.04), inset 0 1px 0 rgba(255,216,102,0.10);
}
.side-link.is-active::before{
  content: "";
  position: absolute;
  left: -1px; top: 6px; bottom: 6px;
  width: 2px;
  background: linear-gradient(180deg, var(--au-bright), var(--au) 50%, var(--au-dim));
  border-radius: 2px;
  box-shadow: 0 0 6px var(--au-glow);
}
.side-link-dot{
  width: 6px; height: 6px; border-radius: 100px;
  background: var(--t-3); flex-shrink: 0;
  transition: background 0.12s, box-shadow 0.12s;
}
.side-link.is-active .side-link-dot{
  background: var(--au);
  box-shadow: 0 0 8px var(--au-glow);
}
.side-link-count{
  margin-left: auto;
  font-family: var(--f-mono); font-size: 10px;
  color: var(--t-2); font-weight: 500;
}
.side-link.is-active .side-link-count{ color: var(--au); }
.side-spacer{ flex: 1; }
.side-foot{
  border-top: 1px solid var(--line);
  padding: 10px 12px 12px;
}
.side-foot-row{
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px; color: var(--t-2); padding: 3px 0;
}
.side-foot-row .v{
  font-family: var(--f-mono); color: var(--t-1); font-weight: 500;
}
.side-foot-row .v.au{ color: var(--au); }
.side-foot-row .v.green{ color: var(--green); }
.side-foot-account{
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: 10.5px; color: var(--t-2);
}
.side-foot-account-name{
  color: var(--t-0); font-weight: 500;
  font-size: 11.5px; margin-bottom: 2px;
}

/* ============== MAIN ============== */
.main{
  grid-area: main;
  display: flex; flex-direction: column;
  min-height: 0; min-width: 0; overflow: hidden;
}

.topbar{
  display: flex; align-items: center;
  height: var(--h-topbar);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, var(--bg-panel) 0%, var(--bg-panel) 70%, #0e0d08 100%);
  padding: 0 14px; gap: 14px; flex-shrink: 0;
  position: relative;
}
.topbar::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--au-line-soft) 25%, var(--au-line-soft) 75%, transparent 100%);
  pointer-events: none;
}
.tb-section{
  font-size: 13px; font-weight: 600;
  letter-spacing: -0.01em; color: var(--t-0);
}
.tb-crumb{
  font-size: 11.5px; color: var(--t-2); font-weight: 500;
}
.tb-divider{
  width: 1px; height: 18px; background: var(--line); flex-shrink: 0;
}
.tb-tabs{ display: flex; align-items: center; height: 100%; }
.tb-tab{
  height: 100%;
  display: inline-flex; align-items: center;
  padding: 0 14px;
  font-size: 12px; font-weight: 500; color: var(--t-2);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 0.12s, border-color 0.12s;
}
.tb-tab:hover{ color: var(--t-0); }
.tb-tab.is-active{
  color: var(--au);
  border-bottom-color: var(--au);
  text-shadow: 0 0 12px rgba(245,197,66,0.3);
}
.tb-tab-count{
  font-family: var(--f-mono); font-size: 10px;
  color: var(--t-3); margin-left: 6px; font-weight: 500;
}
.tb-tab.is-active .tb-tab-count{ color: var(--au); }
.tb-spacer{ flex: 1; }
.tb-meta{
  display: flex; align-items: center; gap: 14px;
  font-size: 11px; color: var(--t-2);
}
.tb-meta-cell{
  display: flex; align-items: center; gap: 5px;
  font-family: var(--f-mono); font-weight: 500;
}
.tb-meta-cell .lbl{
  font-family: var(--f-sans);
  text-transform: uppercase; letter-spacing: 0.06em;
  font-size: 9.5px; color: var(--t-3); font-weight: 600;
}
.tb-meta-cell .v{ color: var(--t-1); }
.tb-meta-cell .v.au{ color: var(--au); }
.tb-meta-cell .v.green{ color: var(--green); }

/* ============== TICKER TAPE ============== */
.tape{
  height: 26px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, var(--bg-panel) 0%, #0e0d08 100%);
  overflow: hidden; position: relative; flex-shrink: 0;
}
.tape::after{
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line-soft) 50%, transparent);
  pointer-events: none;
}
.tape-track{
  display: inline-flex; align-items: center; height: 100%;
  white-space: nowrap;
  animation: tape-scroll 480s linear infinite;
  padding-left: 14px;
}
.tape-item{
  display: inline-flex; align-items: baseline; gap: 6px;
  margin-right: 22px;
  font-family: var(--f-mono); font-size: 11px;
}
.tape-item .sym{ color: var(--t-0); font-weight: 600; }
.tape-item .tag{
  font-size: 9px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.06em;
  padding: 1px 5px; border-radius: 2px;
  font-family: var(--f-sans);
}
.tape-item .tag.ial{ background: var(--green-soft); color: var(--green); }
.tape-item .tag.iae{ background: var(--red-soft); color: var(--red); }
.tape-item .tag.coil{ background: var(--au-soft); color: var(--au); }
.tape-item .tf{ color: var(--t-2); font-size: 10px; }
.tape-item .px{ color: var(--t-1); }
.tape-item .delta{ font-size: 10px; }
.tape-item .delta.up{ color: var(--green); }
.tape-item .delta.down{ color: var(--red); }
@keyframes tape-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ============== CONTENT ============== */
.content{
  flex: 1; overflow: auto; background: var(--bg-app);
  padding: 0; min-height: 0;
}
.section-pane{ display: none; }
.section-pane.is-active{ display: block; }

/* ============== KPI BAR ============== */
.kpis{
  display: grid;
  grid-template-columns: repeat(var(--kpi-n, 4), 1fr);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, var(--bg-panel) 0%, #0e0d08 100%);
  position: relative;
}
.kpis::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--au-line-soft) 20%, var(--au-line) 50%, var(--au-line-soft) 80%, transparent 100%);
  pointer-events: none;
}
.kpi{
  padding: 12px 16px 11px;
  border-right: 1px solid var(--line);
  position: relative;
  display: flex; flex-direction: column; gap: 2px;
}
.kpi:last-child{ border-right: none; }
.kpi-label{
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--t-2);
}
.kpi-val{
  font-family: var(--f-mono);
  font-size: 22px; font-weight: 600;
  color: var(--t-0); letter-spacing: -0.01em; line-height: 1.1;
}
.kpi-val.au{
  color: var(--au);
  text-shadow: 0 0 14px rgba(245,197,66,0.25);
}
.kpi-val.green{ color: var(--green); }
.kpi-val.red{ color: var(--red); }
.kpi-foot{
  font-size: 10.5px; color: var(--t-2);
  margin-top: 1px; font-weight: 500;
}
.kpi-pulse{
  position: absolute; top: 14px; right: 16px;
  width: 6px; height: 6px; border-radius: 100px;
  background: var(--au);
  box-shadow: 0 0 6px var(--au-glow);
  animation: pulse 1.6s ease-in-out infinite;
}

/* ============== CONTROLS ============== */
.controls{
  display: flex; align-items: center;
  gap: 14px; padding: 8px 16px;
  background: var(--bg-panel);
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
.ctrl{ display: inline-flex; align-items: center; gap: 8px; }
.ctrl-label{
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--t-2);
}
.seg{
  display: inline-flex; background: var(--bg-elev);
  border: 1px solid var(--line); border-radius: 4px;
  padding: 2px;
}
.seg-btn{
  background: none; border: none; color: var(--t-2);
  font-family: var(--f-sans);
  font-size: 11px; font-weight: 500;
  padding: 4px 10px; border-radius: 3px;
  cursor: pointer; letter-spacing: -0.005em;
  transition: color 0.12s, background 0.12s;
}
.seg-btn:hover{ color: var(--t-0); }
.seg-btn.is-active{
  background: linear-gradient(180deg, var(--au-bright), var(--au) 60%, var(--au-dim));
  color: #0a0907;
  font-weight: 700;
  box-shadow: 0 0 8px var(--au-glow), inset 0 1px 0 rgba(255,255,255,0.18);
}
.dropdown{
  background: var(--bg-elev); border: 1px solid var(--line);
  border-radius: 4px; color: var(--t-0);
  font-family: var(--f-sans); font-size: 11.5px;
  padding: 5px 26px 5px 10px;
  appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--t-2) 50%), linear-gradient(135deg, var(--t-2) 50%, transparent 50%);
  background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.input{
  background: var(--bg-elev); border: 1px solid var(--line);
  border-radius: 4px; color: var(--t-0);
  font-family: var(--f-mono); font-size: 11.5px;
  padding: 5px 10px; min-width: 140px;
}
.input::placeholder{ color: var(--t-3); }

.chip-group{ display: inline-flex; gap: 4px; flex-wrap: wrap; }
.chip{
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--bg-elev); border: 1px solid var(--line);
  border-radius: var(--r-pill);
  padding: 3px 9px;
  font-size: 10.5px; font-weight: 500;
  color: var(--t-1);
  cursor: pointer; transition: all 0.12s;
  letter-spacing: -0.005em;
}
.chip:hover{ border-color: var(--line-strong); color: var(--t-0); }
.chip.is-active{
  background: linear-gradient(180deg, rgba(245,197,66,0.18), rgba(245,197,66,0.06));
  border-color: var(--au-line);
  color: var(--au-bright);
  font-weight: 600;
  box-shadow: inset 0 1px 0 rgba(255,216,102,0.12);
}
.chip .x{ font-size: 13px; color: var(--t-3); margin-left: 1px; line-height: 1; }

/* ============== TABLES ============== */
.tbl-wrap{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow: hidden;
}
.tbl-head{
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 14px 8px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #1d1a10 0%, var(--bg-panel-2) 60%);
  position: relative;
}
.tbl-head::before{
  content:"";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line-soft) 50%, transparent);
  pointer-events: none;
}
.tbl-title{
  font-size: 11.5px; font-weight: 600;
  color: var(--t-0); letter-spacing: -0.005em;
}
.tbl-title-kicker{
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--au-dim);
  margin-right: 8px;
}
.tbl-meta{
  font-size: 10.5px; color: var(--t-2);
  font-family: var(--f-mono);
}
.tbl-meta .au{ color: var(--au); font-weight: 600; }
table.tbl{
  width: 100%; border-collapse: collapse; font-size: 11.5px;
}
table.tbl thead th{
  background: linear-gradient(180deg, #1a170e, var(--bg-panel-2));
  color: var(--t-2);
  font-weight: 600; font-size: 9.5px;
  letter-spacing: 0.1em; text-transform: uppercase;
  text-align: left; padding: 7px 10px;
  border-bottom: 1px solid var(--au-line-soft);
  white-space: nowrap; user-select: none;
}
table.tbl thead th.num{ text-align: right; }
table.tbl tbody td{
  padding: 6px 10px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: middle; white-space: nowrap;
  font-family: var(--f-sans);
}
table.tbl tbody td.num{
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  text-align: right; font-size: 11.5px; color: var(--t-0);
}
table.tbl tbody td.muted{ color: var(--t-2); }
table.tbl tbody td.sym{
  font-family: var(--f-mono); font-weight: 600;
  font-size: 11.5px; color: var(--t-0); letter-spacing: -0.01em;
}

/* Column-group separators â€” light vertical line between data avenues.
   Applied via .col-sep on the first cell of each group after the first.
   Uses inset box-shadow so it overlays cleanly without disrupting padding. */
table.tbl thead th.col-sep,
table.tbl tbody td.col-sep{
  box-shadow: inset 1px 0 0 var(--line);
  padding-left: 14px;
}
table.tbl thead th.col-sep{
  box-shadow: inset 1px 0 0 var(--au-line-soft);
}
table.tbl tbody td.sym a{
  color: inherit; text-decoration: none;
  border-bottom: 1px dotted var(--au-line);
}
table.tbl tbody td.sym a:hover{
  color: var(--au);
  border-bottom-color: var(--au);
  text-shadow: 0 0 8px rgba(245,197,66,0.3);
}
table.tbl tbody tr{
  position: relative;
}
table.tbl tbody tr:hover{
  background: linear-gradient(90deg, rgba(245,197,66,0.06) 0%, var(--bg-row-hover) 8%, var(--bg-row-hover) 100%);
}
table.tbl tbody tr:hover td:first-child{
  box-shadow: inset 2px 0 0 var(--au);
}
table.tbl tbody tr:last-child td{ border-bottom: none; }
table.tbl tbody td.pos{ color: var(--green); }
table.tbl tbody td.neg{ color: var(--red); }

/* tag/chip cells */
.t-tag{
  display: inline-flex; align-items: center;
  padding: 2px 7px;
  border-radius: var(--r-pill);
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  border: 1px solid transparent;
  font-family: var(--f-sans);
  position: relative;
}
.t-tag::after{
  content:"";
  position: absolute; inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 50%);
  pointer-events: none;
}
.t-tag.active{ background: var(--green-soft); color: var(--green); border-color: rgba(78,201,168,0.32); }
.t-tag.armed{ background: var(--orange-soft); color: var(--orange); border-color: rgba(233,168,87,0.3); }
.t-tag.tier-a{ background: var(--bg-elev); color: var(--t-1); border-color: var(--line-strong); }
.t-tag.tier-b{ background: var(--bg-elev); color: var(--t-2); border-color: var(--line-strong); }
.t-tag.tier-gold{
  background: linear-gradient(180deg, rgba(245,197,66,0.20), rgba(245,197,66,0.08));
  color: var(--au-bright);
  border-color: var(--au-line);
  box-shadow: 0 0 8px rgba(245,197,66,0.15);
}
.t-tag.tier-elite{ background: rgba(106,181,255,0.12); color: var(--blue); border-color: rgba(106,181,255,0.32); }
.t-tag.tier-ultra{ background: rgba(186,109,255,0.14); color: #b86dff; border-color: rgba(186,109,255,0.32); }
.t-tag.dir-long{ background: var(--green-soft); color: var(--green); border-color: rgba(78,201,168,0.32); }
.t-tag.dir-short{ background: var(--red-soft); color: var(--red); border-color: rgba(224,108,117,0.32); }
.t-tag.engine{
  background: var(--bg-elev); color: var(--t-1);
  border-color: var(--line-strong);
  font-weight: 500; letter-spacing: 0.03em;
}
.t-tag.tf{
  background: var(--bg-elev); color: var(--t-2);
  border-color: var(--line);
  font-family: var(--f-mono); font-weight: 500;
  text-transform: none; letter-spacing: 0.02em;
}
.t-tag.zone-risk{ background: rgba(233,168,87,0.14); color: var(--orange); border-color: rgba(233,168,87,0.3); }
.t-tag.zone-above{ background: var(--green-soft); color: var(--green); border-color: rgba(78,201,168,0.32); }
.t-tag.zone-below{ background: var(--red-soft); color: var(--red); border-color: rgba(224,108,117,0.32); }
.t-tag.confl-solo{ background: var(--bg-elev); color: var(--t-2); border-color: var(--line); }
.t-tag.confl-aligned{ background: var(--blue-soft); color: var(--blue); border-color: rgba(106,181,255,0.32); }
.t-tag.confl-strong{
  background: linear-gradient(180deg, rgba(245,197,66,0.20), rgba(245,197,66,0.08));
  color: var(--au-bright);
  border-color: var(--au-line);
  box-shadow: 0 0 8px rgba(245,197,66,0.15);
}
.t-tag.bucket-base{ background: var(--bg-elev); color: var(--t-1); border-color: var(--line-strong); }
.t-tag.bucket-cont{ background: var(--blue-soft); color: var(--blue); border-color: rgba(106,181,255,0.32); }
.t-tag.bucket-resume{ background: var(--green-soft); color: var(--green); border-color: rgba(78,201,168,0.32); }
.t-tag.stack-1{ background: var(--bg-elev); color: var(--t-2); border-color: var(--line); font-family: var(--f-mono); }
.t-tag.stack-2{ background: rgba(106,181,255,0.12); color: var(--blue); border-color: rgba(106,181,255,0.32); font-family: var(--f-mono); }
.t-tag.stack-3{
  background: linear-gradient(180deg, rgba(245,197,66,0.20), rgba(245,197,66,0.08));
  color: var(--au-bright);
  border-color: var(--au-line);
  font-family: var(--f-mono);
  box-shadow: 0 0 8px rgba(245,197,66,0.15);
}
.t-tag.active::before{
  content:""; display:inline-block;
  width:5px; height:5px; border-radius:100px;
  background: var(--green); margin-right: 5px;
  box-shadow: 0 0 5px rgba(78,201,168,0.6);
}
.t-tag.armed::before{
  content:""; display:inline-block;
  width:5px; height:5px; border-radius:100px;
  background: var(--orange); margin-right: 5px;
}

/* ============== OVERVIEW LAYOUT ============== */
.ov-grid{
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 0; align-items: start;
}
.ov-left{
  border-right: 1px solid var(--line);
  padding: 14px;
  display: flex; flex-direction: column; gap: 14px;
  min-width: 0;
}
.ov-right{
  padding: 14px;
  display: flex; flex-direction: column; gap: 14px;
  min-width: 0;
}
.section-kicker{
  font-size: 9.5px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--au-dim);
  margin: 0; padding: 0 0 7px 10px;
  display: flex; align-items: center; gap: 8px;
  position: relative;
}
.section-kicker::before{
  content: "";
  position: absolute;
  left: 0; top: 1px; bottom: 9px;
  width: 2px;
  background: linear-gradient(180deg, var(--au), var(--au-dim));
  border-radius: 2px;
}
.section-kicker .au{ color: var(--au); }
.section-kicker .ct{
  font-family: var(--f-mono); font-size: 10px;
  color: var(--t-3); font-weight: 500; letter-spacing: 0;
  margin-left: auto; text-transform: none;
}
.heat{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 3px;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: 6px;
}
.heat-cell{
  aspect-ratio: 1.7 / 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  padding: 6px 9px;
  gap: 1px;
  border-radius: 3px;
  font-family: var(--f-sans);
  cursor: pointer;
  position: relative;
  transition: filter 0.15s, transform 0.12s, box-shadow 0.12s;
  overflow: hidden;
}
.heat-cell:hover{
  filter: brightness(1.25);
  transform: scale(1.04);
  box-shadow: 0 0 0 1px var(--au), 0 0 8px var(--au-glow);
  z-index: 2;
}
.heat-cell .hc-tag{
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: flex; align-items: baseline;
  gap: 4px;
  opacity: 0.85;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
}
.heat-cell .hc-bias{
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.04em;
  opacity: 0.75;
}
.heat-cell .hc-tf{
  font-family: var(--f-mono);
  font-size: 8px;
  font-weight: 500;
  opacity: 0.7;
  margin-left: auto;
  letter-spacing: 0.02em;
}
.heat-cell .hc-sym{
  font-family: var(--f-mono);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: -0.01em;
  margin-top: 1px;
  line-height: 1.05;
}
.heat-cell .hc-val{
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 500;
  opacity: 0.85;
  font-variant-numeric: tabular-nums;
  line-height: 1.05;
}

.sect-card{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: 12px;
  display: flex; flex-direction: column; gap: 8px;
}
.sect-bars{
  display: flex; flex-direction: column; gap: 5px;
  font-family: var(--f-mono);
}
.sect-bar{
  display: grid;
  grid-template-columns: 64px 1fr 28px;
  gap: 8px; align-items: center;
  font-size: 10.5px;
}
.sect-bar .lbl{
  color: var(--t-1);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-family: var(--f-sans);
}
.sect-bar .track{
  height: 6px;
  background: var(--bg-elev);
  border-radius: 100px;
  overflow: hidden;
  border: 1px solid rgba(245,197,66,0.06);
}
.sect-bar .fill{
  height: 100%;
  background: linear-gradient(90deg, var(--au-dim) 0%, var(--au) 50%, var(--au-bright) 100%);
  border-radius: 100px;
  box-shadow: 0 0 6px rgba(245,197,66,0.3), inset 0 1px 0 rgba(255,216,102,0.4);
}
.sect-bar .ct{ color: var(--t-2); text-align: right; }

.pulse-card{
  background: linear-gradient(180deg, var(--bg-panel) 0%, #0e0d08 100%);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: 12px;
  display: flex; gap: 16px; align-items: stretch;
  position: relative;
  overflow: hidden;
}
.pulse-card::before{
  content:"";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line) 50%, transparent);
}
.pulse-side{
  flex: 1;
  display: flex; flex-direction: column; gap: 2px;
}
.pulse-side .lbl{
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--t-2);
}
.pulse-side .v{
  font-family: var(--f-mono);
  font-size: 22px; font-weight: 600; line-height: 1.05;
}
.pulse-side.long .v{ color: var(--green); }
.pulse-side.short .v{ color: var(--red); }
.pulse-side .sub{ font-size: 10.5px; color: var(--t-2); margin-top: 2px; }
.pulse-divider{ width: 1px; background: var(--line); }

.section-pad{ padding: 14px; }
.tbl-stack{ display: flex; flex-direction: column; gap: 14px; }

/* Placeholder for not-yet-implemented sub-views (e.g., Review tab).
   Matches the visual language of the other panels (gold edge, panel bg)
   but signals "this is coming". */
.empty-box{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: 56px 28px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.empty-box::before{
  content: "";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line) 50%, transparent);
}
.empty-box-icon{
  font-size: 36px;
  color: var(--au);
  opacity: 0.5;
  font-family: var(--f-mono);
  line-height: 1;
  margin-bottom: 10px;
}
.empty-box-title{
  font-family: var(--f-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--t-0);
  letter-spacing: -0.005em;
  margin-bottom: 6px;
}
.empty-box-desc{
  font-family: var(--f-sans);
  font-size: 11.5px;
  color: var(--t-2);
  line-height: 1.55;
  max-width: 460px;
  margin: 0 auto;
}

/* ============== STATUS BAR ============== */
.status{
  grid-area: status;
  background: linear-gradient(180deg, #0e0d08 0%, var(--bg-panel) 100%);
  border-top: 1px solid var(--line);
  display: flex; align-items: center;
  padding: 0 max(14px, env(safe-area-inset-right)) 0 max(14px, env(safe-area-inset-left));
  padding-bottom: env(safe-area-inset-bottom);
  font-size: 10.5px; color: var(--t-2);
  gap: 18px;
  font-family: var(--f-mono);
  flex-shrink: 0;
  position: relative;
}
.status::before{
  content: "";
  position: absolute;
  left: 0; right: 0; top: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line-soft) 30%, var(--au-line-soft) 70%, transparent);
  pointer-events: none;
}
.status-cell{ display: flex; align-items: center; gap: 5px; }
.status-cell .lbl{
  font-family: var(--f-sans);
  font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--t-3); font-size: 9px;
}
.status-cell .v{ color: var(--t-1); }
.status-cell .v.au{ color: var(--au); }
.status-cell .v.green{ color: var(--green); }
.status-cell .dot{
  width: 6px; height: 6px; border-radius: 100px;
  background: var(--green);
  box-shadow: 0 0 5px rgba(78,201,168,0.5);
  margin-right: 1px;
}
.status-spacer{ flex: 1; }

/* ============================================
   COIL & MACRO SUB-VIEWS
   ============================================ */
.coil-subview, .macro-subview{ display: none; }
.coil-subview.is-active, .macro-subview.is-active{ display: block; }

/* When Coil is in Chart View mode, hide the console-only inner tabs */
.section-pane.is-coil-chart-mode .tb-tabs{ display: none; }
.section-pane.is-coil-chart-mode .tb-divider-tabs{ display: none; }

/* ============================================
   CHART FRAME (the candlestick card)
   ============================================ */
.chart-frame{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
}
.chart-frame::before{
  content:"";
  position: absolute; left: 0; right: 0; top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--au-line) 50%, transparent);
}
.cf-head{
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px 9px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #1d1a10 0%, var(--bg-panel-2) 60%);
  gap: 14px;
  flex-wrap: wrap;
}
.cf-symbol{
  display: flex; align-items: baseline; gap: 10px;
}
.cf-sym{
  font-family: var(--f-mono);
  font-size: 16px; font-weight: 700;
  color: var(--au-bright);
  letter-spacing: -0.01em;
  text-shadow: 0 0 12px var(--au-glow);
}
.cf-tf{
  font-size: 10px; color: var(--t-2);
  font-family: var(--f-mono);
  text-transform: uppercase; letter-spacing: 0.06em;
  font-weight: 600;
}
.cf-px{
  font-family: var(--f-mono);
  font-size: 14px; font-weight: 600;
  color: var(--t-0);
  font-variant-numeric: tabular-nums;
}
.cf-delta{
  font-family: var(--f-mono);
  font-size: 11px; font-weight: 500;
}
.cf-delta.up{ color: var(--green); }
.cf-delta.down{ color: var(--red); }
.cf-controls{
  display: flex; align-items: center; gap: 10px;
}
.cf-body{
  background: #0a0907;
  position: relative;
  height: 380px;
}
.cf-body svg{
  display: block; width: 100%; height: 100%;
}
.cf-legend{
  position: absolute;
  top: 8px; left: 12px;
  display: flex; flex-direction: column; gap: 4px;
  background: rgba(10,9,7,0.78);
  border: 1px solid var(--au-line-soft);
  border-radius: 4px;
  padding: 6px 10px;
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--t-1);
  pointer-events: none;
}
.cf-legend-item{
  display: flex; align-items: center; gap: 6px;
  font-size: 10px;
}
.cf-legend-item .dot{
  width: 8px; height: 2px; border-radius: 1px;
  display: inline-block;
}
.cf-legend-item .v{
  margin-left: 4px;
  color: var(--t-0);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.cf-foot{
  display: flex; justify-content: space-between;
  padding: 8px 14px;
  background: var(--bg-panel-2);
  font-size: 10.5px;
  color: var(--t-2);
  font-family: var(--f-mono);
  flex-wrap: wrap;
  gap: 10px;
}
.cf-foot .au{ color: var(--au); font-weight: 600; }
.cf-foot .lbl{
  font-family: var(--f-sans);
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--t-3);
  margin-right: 4px;
}

/* ============================================
   TICKER BROWSER COMPONENTS
   ============================================ */
.brow-list, .brow-strip, .brow-grid{
  font-family: var(--f-sans);
}
.brow-item{
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px;
  border-bottom: 1px solid var(--line-soft);
  cursor: pointer;
  transition: background 0.1s;
  gap: 10px;
}
.brow-item-l{
  display: inline-flex; align-items: center; gap: 7px;
  min-width: 0;
}
.brow-item:hover{ background: var(--bg-row-hover); }
.brow-item.is-active{
  background: linear-gradient(90deg, rgba(245,197,66,0.10), rgba(245,197,66,0.02));
  border-left: 2px solid var(--au);
  padding-left: 10px;
  box-shadow: inset 0 0 0 1px rgba(245,197,66,0.06);
}
.brow-item .pip{
  display: inline-block;
  width: 6px; height: 6px; border-radius: 100px;
  flex-shrink: 0;
}
.brow-item .pip.green{ background: var(--green); box-shadow: 0 0 5px rgba(78,201,168,0.5); }
.brow-item .pip.red{ background: var(--red); box-shadow: 0 0 5px rgba(224,108,117,0.5); }
.brow-item .pip.au{ background: var(--au); box-shadow: 0 0 5px var(--au-glow); }
.brow-item .sym{
  font-family: var(--f-mono);
  font-weight: 600;
  font-size: 11.5px;
  color: var(--t-0);
}
.brow-item.is-active .sym{ color: var(--au-bright); }
.brow-item .meta{
  font-family: var(--f-mono);
  font-size: 10.5px;
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}
.brow-item .meta.pos{ color: var(--green); }
.brow-item .meta.neg{ color: var(--red); }

.brow-tabs{
  display: flex;
  border-bottom: 1px solid var(--line);
  background: var(--bg-panel-2);
}
.brow-tab{
  flex: 1;
  background: none;
  border: none;
  text-align: center;
  padding: 8px 4px;
  font-size: 10.5px;
  color: var(--t-2);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: var(--f-mono);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.brow-tab .cnt{
  font-family: var(--f-mono);
  font-size: 9px;
  color: var(--t-3);
  font-weight: 500;
}
.brow-tab:hover{ color: var(--t-0); }
.brow-tab.is-active{ color: var(--au); border-bottom-color: var(--au); }
.brow-tab.is-active .cnt{ color: var(--au); }

.brow-empty{
  padding: 18px 14px;
  font-size: 10.5px;
  color: var(--t-3);
  text-align: center;
}

/* ============================================
   CHART VIEW LAYOUT VARIANTS (a/b/c/d)
   ============================================ */

.cv{
  display: grid;
  gap: 14px;
}

/* ---- variant A â€” vertical strip on the left ---- */
.cv-a{
  grid-template-columns: 280px 1fr;
}
.cv-a .cv-browser{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  display: flex; flex-direction: column;
  overflow: hidden;
  align-self: start;
  position: sticky; top: 14px;
  max-height: calc(100vh - 200px);
}
.cv-a .cv-browser-head{
  padding: 10px 0 4px;
  border-bottom: 1px solid var(--line-soft);
}
.cv-a .brow-list{
  overflow-y: auto;
  flex: 1;
}

/* ---- variant B â€” horizontal strip across the top ---- */
.cv-b{
  grid-template-columns: 1fr;
}
.cv-b .cv-browser-h{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow: hidden;
}
.cv-b .cv-browser-h-head{
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(180deg, #1d1a10 0%, var(--bg-panel-2) 60%);
  flex-wrap: wrap; gap: 10px;
}
.cv-b .cv-browser-h-controls{
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.cv-b .brow-strip{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0;
  padding: 0;
}
.cv-b .brow-strip .brow-item{
  border-right: 1px solid var(--line-soft);
}

/* ---- variant C â€” tabbed + search ---- */
.cv-c{
  grid-template-columns: 1fr;
}
.cv-c .cv-c-bar{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.cv-c .cv-c-search{
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(180deg, #1d1a10 0%, var(--bg-panel-2) 60%);
}
.cv-c .cv-c-search .input{
  flex: 1; max-width: 320px; min-width: 140px;
}
.cv-c .cv-c-tfs{
  display: flex;
  border-bottom: 1px solid var(--line-soft);
  background: var(--bg-panel-2);
}
.cv-c .cv-c-tfs .brow-tab{ flex: 1; }
.cv-c .cv-c-strip{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  max-height: 180px;
  overflow-y: auto;
}
.cv-c .cv-c-strip .brow-item{
  border-right: 1px solid var(--line-soft);
}

/* ---- variant D â€” browser BELOW chart ---- */
.cv-d{
  grid-template-columns: 1fr;
}
.cv-d .cv-browser-d{
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow: hidden;
}
.cv-d .cv-browser-d-head{
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(180deg, #1d1a10 0%, var(--bg-panel-2) 60%);
  flex-wrap: wrap; gap: 10px;
}
.cv-d .cv-browser-d-controls{
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.cv-d .brow-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0;
}
.cv-d .brow-grid .brow-item{
  border-right: 1px solid var(--line-soft);
}

.cv-detail{
  display: flex; flex-direction: column; gap: 14px;
  min-width: 0;
}

/* split-bottom for chart-view companion tables */
.cv-detail .split-bottom{
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 14px;
  margin-top: 0;
}
.cv-a .cv-detail .split-bottom,
.cv-b .cv-detail .split-bottom,
.cv-c .cv-detail .split-bottom,
.cv-d .cv-detail .split-bottom{
  /* macro chart view has 2 tables, override */
}
/* macro chart has only 2 companion tables â€” drop to 2 cols */
.macro-subview .split-bottom{ grid-template-columns: 1.4fr 1fr; }


.tb-burger{
  display: none;  /* hidden on desktop, shown <= 980px */
  width: 32px; height: 32px;
  background: none;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-shrink: 0;
  transition: border-color 0.15s, background 0.15s;
}
.tb-burger:hover, .tb-burger:active{
  border-color: var(--au-line);
  background: var(--au-softer);
}
.tb-burger span{
  display: block;
  width: 14px; height: 1.5px;
  background: var(--au);
  border-radius: 2px;
  transition: transform 0.2s, opacity 0.2s;
}

.menu-overlay{
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(2px);
  z-index: 90;
  opacity: 0;
  transition: opacity 0.2s;
}
.menu-open .menu-overlay{
  display: block;
  opacity: 1;
}
.menu-open{ overflow: hidden; }

/* ============================================
   TABLE SCROLL WRAPPER (mobile sticky-left)
   ============================================ */
.tbl-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--au-line) transparent;
}
.tbl-scroll::-webkit-scrollbar{ height: 6px; }
.tbl-scroll::-webkit-scrollbar-track{ background: var(--bg-panel-2); }
.tbl-scroll::-webkit-scrollbar-thumb{
  background: var(--au-line);
  border-radius: 100px;
}

/* ============================================
   BREAKPOINT: 1280px â€” narrower desktop / large tablet
   ============================================ */
@media (max-width: 1280px){
  .ov-grid{ grid-template-columns: 1fr; }
  .ov-left{ border-right: none; border-bottom: 1px solid var(--line); }
}

/* ============================================
   BREAKPOINT: 980px â€” tablet / mobile
   Sidebar becomes off-canvas, hamburger appears
   ============================================ */
@media (max-width: 980px){
  :root{ --w-sidebar: 260px; }

  .app{
    grid-template-columns: 1fr;
    grid-template-areas: "main" "status";
  }
  .side{
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: var(--w-sidebar);
    z-index: 100;
    transform: translateX(-100%);
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 8px 0 24px rgba(0,0,0,0.4);
    border-right: 1px solid var(--au-line-soft);
  }
  .menu-open .side{ transform: translateX(0); }

  .tb-burger{ display: inline-flex; }

  /* topbar reorganizes â€” section name + hamburger only on first row */
  .topbar{
    flex-wrap: wrap;
    height: auto;
    min-height: var(--h-topbar);
    padding: 0 12px;
    gap: 10px;
  }
  .tb-section{ font-size: 13px; }
  .tb-crumb, .tb-divider{ display: none; }
  .tb-meta{ gap: 10px; font-size: 10.5px; }
  .tb-meta-cell .lbl{ display: none; }  /* labels too noisy on mobile */

  /* sub-tabs become horizontally scrolling strip */
  .tb-tabs{
    order: 99;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    border-top: 1px solid var(--line);
    height: 38px;
    padding: 0;
  }
  .tb-tabs::-webkit-scrollbar{ display: none; }
  .tb-tab{
    flex-shrink: 0;
    padding: 0 12px;
    font-size: 12px;
    height: 38px;
  }

  /* KPI bar â€” keep grid but tighter */
  .kpis{
    grid-template-columns: repeat(var(--kpi-n, 4), 1fr);
  }
  .kpi{
    padding: 10px 12px 9px;
  }
  .kpi-val{ font-size: 18px; }

  /* tables â€” wrap in scroll container with sticky-left columns */
  .tbl-wrap > table.tbl{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--au-line) transparent;
  }
  .tbl-wrap > table.tbl thead,
  .tbl-wrap > table.tbl tbody{
    display: table;
    width: max-content;
    min-width: 100%;
  }
  .tbl-wrap > table.tbl::-webkit-scrollbar{ height: 6px; }
  .tbl-wrap > table.tbl::-webkit-scrollbar-track{ background: var(--bg-panel-2); }
  .tbl-wrap > table.tbl::-webkit-scrollbar-thumb{
    background: var(--au-line);
    border-radius: 100px;
  }
  /* sticky-left: status pill + symbol */
  table.tbl thead th:nth-child(1),
  table.tbl tbody td:nth-child(1){
    position: sticky;
    left: 0;
    background: var(--bg-panel);
    z-index: 2;
    box-shadow: 1px 0 0 var(--line);
  }
  table.tbl thead th:nth-child(1){ background: linear-gradient(180deg, #1a170e, var(--bg-panel-2)); }
  table.tbl thead th:nth-child(2),
  table.tbl tbody td:nth-child(2){
    position: sticky;
    left: 76px;  /* width of status col */
    background: var(--bg-panel);
    z-index: 2;
    box-shadow: 1px 0 0 var(--au-line-soft);
  }
  table.tbl thead th:nth-child(2){ background: linear-gradient(180deg, #1a170e, var(--bg-panel-2)); }
  table.tbl tbody tr:hover td:nth-child(1),
  table.tbl tbody tr:hover td:nth-child(2){
    background: linear-gradient(90deg, rgba(245,197,66,0.10) 0%, var(--bg-row-hover) 100%);
  }

  /* confluence table â€” only Symbol col (no Status) so adjust sticky */
  /* (handled via table-specific class below if needed) */

  /* controls row â€” stack vertically with smaller chips */
  .controls{ padding: 10px 12px; gap: 10px; }
  .ctrl{ flex-wrap: wrap; row-gap: 6px; }

  /* touch target enlargement */
  .seg-btn{ padding: 7px 12px; font-size: 11.5px; }
  .chip{ padding: 5px 10px; font-size: 11px; }

  /* sector right rail panels stack at full width */
  .ov-right{ padding: 14px 12px; }
  .ov-left{ padding: 14px 12px; }
  .section-pad{ padding: 14px 12px; }

  /* heatmap tighter cells */
  .heat{ grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); }
  .heat-cell .hc-sym{ font-size: 11px; }
  .heat-cell .hc-val{ font-size: 9px; }
  .heat-cell .hc-tag{ font-size: 7.5px; }

  /* sidebar links â€” bigger tap area */
  .side-link{ padding: 11px 12px; font-size: 13.5px; }
  .side-link-count{ font-size: 11px; }

  /* ===== chart view layouts collapse on mobile ===== */
  /* All variants: ticker browser becomes a horizontal scrolling strip
     above the chart, chart goes full-width, companion tables stack */
  .cv-a, .cv-b, .cv-c, .cv-d{
    grid-template-columns: 1fr !important;
  }
  .cv-a .cv-browser{
    position: static; max-height: none;
    flex-direction: column;
  }
  .cv-a .brow-list{
    display: flex; flex-direction: row;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    max-height: none;
  }
  .cv-a .brow-list::-webkit-scrollbar{ display: none; }
  .cv-a .brow-list .brow-item{
    flex-shrink: 0;
    min-width: 220px;
    border-right: 1px solid var(--line-soft);
    border-bottom: none;
  }
  .cv-b .brow-strip,
  .cv-c .cv-c-strip,
  .cv-d .brow-grid{
    grid-template-columns: 1fr !important;
    max-height: 240px;
    overflow-y: auto;
  }
  .cv-detail .split-bottom,
  .macro-subview .split-bottom{
    grid-template-columns: 1fr !important;
  }
  .cf-body{ height: 280px; }
  .cf-head{ flex-direction: column; align-items: stretch; gap: 8px; }
  .cf-symbol{ justify-content: space-between; }
  .cf-controls{ flex-wrap: wrap; gap: 8px; }
  .cf-legend{ font-size: 9px; padding: 4px 8px; }
}

/* ============================================
   BREAKPOINT: 640px â€” phone
   ============================================ */
@media (max-width: 640px){
  :root{ --h-topbar: 48px; --h-statusbar: 32px; }

  .side-brand-name{ font-size: 12.5px; }

  /* KPI bar collapses to 2-up on phone (regardless of section's --kpi-n) */
  .kpis{ grid-template-columns: repeat(2, 1fr) !important; }
  .kpi{ border-bottom: 1px solid var(--line); }
  .kpi:nth-child(2n){ border-right: none; }
  /* an orphan last odd tile spans full width so it doesn't look lonely */
  .kpi:last-child:nth-child(odd){
    grid-column: 1 / -1;
    border-right: none;
  }
  .kpi-val{ font-size: 17px; }
  .kpi-label{ font-size: 9px; }
  .kpi-foot{ font-size: 9.5px; }

  /* tighten ticker */
  .tape-item{ font-size: 10.5px; margin-right: 16px; }

  /* topbar metas â€” keep only Feed dot */
  .tb-meta-cell:not(:last-child){ display: none; }
  .tb-section{ font-size: 12px; }

  /* table heads + cells slightly tighter */
  table.tbl thead th{ padding: 6px 9px; font-size: 9px; letter-spacing: 0.06em; }
  table.tbl tbody td{ padding: 5px 9px; font-size: 11px; }
  table.tbl tbody td.num{ font-size: 11px; }

  /* table head meta line wraps */
  .tbl-head{ flex-wrap: wrap; gap: 4px; padding: 8px 12px; }
  .tbl-meta{ font-size: 10px; }

  /* sticky-left widths shrink */
  table.tbl thead th:nth-child(2),
  table.tbl tbody td:nth-child(2){ left: 64px; }

  /* pulse card stacks */
  .pulse-card{ flex-direction: column; gap: 0; }
  .pulse-divider{ width: 100%; height: 1px; margin: 12px 0; }
  .pulse-side .v{ font-size: 20px; }

  /* heatmap â€” 6-7 cells per row */
  .heat{ grid-template-columns: repeat(auto-fill, minmax(42px, 1fr)); gap: 1px; padding: 4px; }

  /* sect bars â€” labels truncate harder */
  .sect-bar{ grid-template-columns: 56px 1fr 24px; }

  /* section kicker tighter */
  .section-kicker{ font-size: 9px; padding-bottom: 6px; }

  /* sidebar slightly narrower */
  :root{ --w-sidebar: 240px; }

  /* tags slightly tighter */
  .t-tag{ font-size: 9px; padding: 2px 6px; }
}

/* ============================================
   STATUS BAR â€” hidden on mobile (locked v4 default)
   ============================================ */
@media (max-width: 980px){
  .status{ display: none; }
  .app{
    grid-template-rows: 1fr;
    grid-template-areas: "main";
  }
}
