/* ============================================================
   Macro Dashboard V1 — Trading Decision Dashboard
   Premium institutional dark theme (Bloomberg / Koyfin / TradingView /
  Aladdin register): flat near-black surfaces, warm ivory typography,
  champagne-gold navigation states, and restrained semantic colours.
  No gradients, no glassmorphism, no neon, no bright blue. Colour is
  reserved strictly for one meaning per state or signal.
   ============================================================ */

:root {
  color-scheme: dark;

  /* Surfaces */
  --bg: #0b0b0c;
  --panel: #101113;       /* sidebar */
  --panel-2: #1b1b1e;     /* hover / elevated surface */
  --panel-active: #1d1b18; /* selected navigation surface */
  --card-bg: #141416;     /* card background */
  --card-hover: #1b1b1e;

  /* Borders */
  --border: #2a2a2e;
  --border-strong: #37373d;

  /* Typography */
  --text: #f2f0ea;        /* primary text */
  --muted: #a8a39a;        /* secondary text */
  --muted-2: #7e7469;      /* tertiary / muted text */

  /* Accents */
  --accent: #d8bd79;       /* navigation / selection — champagne gold */
  --accent-hover: #ead49a;
  --accent-secondary: #c7a56b; /* bronze / gold secondary accent */
  --accent-soft: rgba(216, 189, 121, 0.12);
  --accent-glow: rgba(216, 189, 121, 0.18);

  /* Semantic / badge colours — warm, desaturated, non-neon */
  --positive: #7fb892;      /* desaturated green — bullish / gains */
  --positive-bg: rgba(127, 184, 146, 0.14);
  --negative: #a8322d;      /* muted dark red — bearish / risk-off */
  --negative-bg: rgba(168, 50, 45, 0.16);
  --neutral: #f2f0ea;       /* white — neutral */
  --neutral-bg: rgba(242, 240, 234, 0.1);
  --warning: #d99a3a;       /* amber — warning */
  --warning-bg: rgba(217, 154, 58, 0.15);
  --context: #7e7469;       /* muted taupe — mock / context */
  --context-bg: rgba(126, 116, 105, 0.14);

  --radius-lg: 12px;
  --radius-md: 8px;
  --radius-sm: 6px;
  --sidebar-w: 236px;

  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.5), 0 6px 18px rgba(0, 0, 0, 0.28);
}

* { box-sizing: border-box; }

html, body {
  height: 100%;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.48;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, p { margin: 0; }

button {
  font-family: inherit;
}

button:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ── App shell: fixed sidebar + scrolling main content ─────────────── */
.app-shell {
  display: flex;
  min-height: 100vh;
}

.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--panel);
  border-right: 1px solid var(--border);
  padding: 24px 14px;
  display: flex;
  flex-direction: column;
  gap: 26px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.sidebar-brand {
  padding: 0 10px;
}

.sidebar-eyebrow {
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted-2);
  font-weight: 600;
}

.sidebar-title {
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  margin-top: 5px;
  color: var(--text);
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nav-btn {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  border-left: 3px solid transparent;
  background: transparent;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.nav-btn:hover {
  background: rgba(239, 228, 211, 0.045);
  color: var(--text);
}

.nav-btn.active {
  background: var(--panel-active);
  border-color: rgba(216, 189, 121, 0.38);
  border-left-color: var(--accent);
  color: var(--text);
  box-shadow: inset 8px 0 18px rgba(216, 189, 121, 0.035), 0 0 0 1px rgba(216, 189, 121, 0.04);
}

.nav-btn .dot {
  width: 17px;
  height: 17px;
  color: var(--muted-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nav-btn.active .dot {
  color: var(--accent);
}

.sidebar-footer {
  margin-top: auto;
  padding: 14px 10px 0;
  border-top: 1px solid var(--border);
}

.sidebar-footer .demo-badge {
  display: inline-block;
}

html:not(.auth-ready) .app-shell { visibility: hidden; }

.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--bg);
}

.auth-card {
  width: min(460px, 100%);
  padding: 38px;
  border: 1px solid var(--border-strong);
  border-top-color: rgba(216, 189, 121, 0.62);
  border-radius: var(--radius-lg);
  background: var(--card-bg);
  box-shadow: var(--shadow-card), 0 24px 72px rgba(0, 0, 0, 0.38);
  color: var(--text);
}

.auth-eyebrow {
  margin: 0 0 10px;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.auth-card h1 {
  margin: 0;
  color: var(--text);
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

.auth-message {
  margin: 13px 0 26px;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.6;
}

.auth-actions { display: grid; gap: 10px; }
.auth-form { display: grid; gap: 14px; }
.auth-field {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.01em;
}

.auth-field input {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  outline: none;
  background: var(--panel);
  color: var(--text);
  font: inherit;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.auth-field input:hover { border-color: var(--muted-2); }
.auth-field input:focus {
  border-color: var(--accent);
  background: #121214;
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 3px 0;
  color: var(--muted-2);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after { content: ''; flex: 1; border-top: 1px solid var(--border); }

.auth-button {
  width: 100%;
  padding: 11px 15px;
  border: 1px solid var(--accent);
  border-radius: var(--radius-sm);
  background: var(--accent);
  color: #15130f;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease, opacity 150ms ease;
}

.auth-button:hover { border-color: var(--accent-hover); background: var(--accent-hover); }
.auth-button:disabled, .auth-field input:disabled { cursor: wait; opacity: .62; }

.auth-button-secondary {
  border-color: var(--border-strong);
  background: var(--panel-2);
  color: var(--text);
}

.auth-button-secondary:hover {
  border-color: var(--muted-2);
  background: var(--card-hover);
}

.auth-button-google {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  border-color: #747775;
  background: #fff;
  color: #1f1f1f;
  font-family: "Google Sans", Roboto, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.auth-button-google:hover {
  border-color: #747775;
  background: #f8fafd;
  color: #174ea6;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);
}

.auth-button-google:active {
  background: #f1f3f4;
  box-shadow: none;
}

.auth-google-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}

.auth-button-link {
  padding: 6px 4px;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 600;
}

.auth-button-link:hover {
  border-color: transparent;
  background: transparent;
  color: var(--accent-hover);
}

.auth-error {
  min-height: 20px;
  margin: 16px 0 0;
  color: #d77872;
  font-size: 0.76rem;
}

.auth-error.auth-notice { color: var(--positive); }

.account-actions {
  display: grid;
  gap: 3px;
  margin-top: 14px;
}

.account-actions-label {
  margin: 0 0 5px;
  color: var(--muted-2);
  font-size: 0.64rem;
  font-weight: 650;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.account-actions .auth-button {
  padding: 8px 9px;
  border: 1px solid transparent;
  border-left: 3px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 600;
  text-align: left;
}

.account-actions .auth-button:hover {
  border-color: var(--border);
  border-left-color: var(--accent-secondary);
  background: var(--panel-active);
  color: var(--text);
}

.account-actions .auth-button-account-muted { color: var(--muted-2); }

@media (max-width: 520px) {
  .auth-gate { padding: 14px; }
  .auth-card { padding: 28px 22px; }
  .auth-card h1 { font-size: 1.45rem; }
}

/* ── Main content area ─────────────────────────────────────────────── */
.main {
  flex: 1;
  min-width: 0;
  padding: 26px 32px 60px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--border);
}

.topbar-title h1 {
  font-size: 1.32rem;
  font-weight: 700;
  letter-spacing: 0.005em;
  color: var(--text);
}

.topbar-title p {
  color: var(--muted);
  font-size: 0.83rem;
  margin-top: 4px;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.last-updated-label {
  font-size: 0.78rem;
  color: var(--muted-2);
  white-space: nowrap;
}

.btn {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 9px 16px;
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  background: var(--panel-2);
  color: var(--text);
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease, opacity 150ms ease;
}

.btn:hover { background: var(--card-hover); border-color: var(--muted-2); }

.btn-primary {
  background: transparent;
  border-color: var(--accent);
  color: var(--accent-hover);
  box-shadow: none;
}

.btn-primary:hover {
  background: rgba(216, 189, 121, 0.08);
  border-color: var(--accent-hover);
  color: var(--text);
  box-shadow: 0 0 0 3px var(--accent-glow);
}

.btn:disabled {
  opacity: 0.55;
  cursor: wait;
}

/* ── Pages ──────────────────────────────────────────────────────────── */
.page { display: none; }
.page.active { display: block; }

.page-header {
  margin-bottom: 20px;
}

.page-header h2 {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.005em;
  color: var(--text);
}

.page-header p {
  color: var(--muted);
  font-size: 0.84rem;
  margin-top: 5px;
}

.section {
  margin-bottom: 28px;
}

.section-title {
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-2);
  margin-bottom: 11px;
}

.section-subtitle {
  color: var(--muted);
  font-size: 0.81rem;
  margin: -7px 0 12px;
}

/* ── Generic card / panel ─────────────────────────────────────────── */
.card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px 20px;
  box-shadow: var(--shadow-card);
  transition: background 150ms ease, border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.card-lg {
  padding: 24px 26px;
}

/* ── Hero card: Today's Macro Environment ────────────────────────── */
.hero-card {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.hero-card-title {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.hero-metric {
  padding: 13px 15px;
  border-radius: var(--radius-md);
  background: var(--panel-2);
  border: 1px solid var(--border);
}

.hero-metric-label {
  font-size: 0.7rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.hero-metric-value {
  font-size: 1.22rem;
  font-weight: 700;
  margin-top: 6px;
  display: block;
  color: var(--text);
}

/* ── Metric card grid (macro categories / asset interpretation) ──── */
.metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  align-items: stretch;
}

.metric-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.metric-card-label {
  font-size: 0.72rem;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.metric-card-value {
  font-size: 1.36rem;
  font-weight: 700;
  margin-top: 3px;
  color: var(--text);
  letter-spacing: 0.005em;
}

.metric-card-sub {
  font-size: 0.81rem;
  font-weight: 600;
}

.metric-card-meta {
  font-size: 0.77rem;
  color: var(--muted);
  margin-top: 2px;
}

.metric-card-note {
  font-size: 0.81rem;
  color: var(--muted);
  margin-top: 6px;
}

/* ── Macro page institutional dashboard presentation ───────────────── */
.macro-overview-card {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(360px, 1.4fr);
  gap: 22px;
  align-items: stretch;
  animation: macroFadeIn 800ms ease both;
}

.macro-overview-primary {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 164px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #101113;
}

.macro-overview-bias {
  margin-top: 10px;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 0.96;
  font-weight: 800;
  letter-spacing: 0;
}

.macro-asset-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }

.macro-asset-tab {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #0b0b0c;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 750;
  white-space: nowrap;
}

.macro-asset-tab:hover {
  border-color: var(--border-strong);
  color: var(--text);
}

.macro-asset-tab.active {
  border-color: rgba(216, 189, 121, 0.55);
  background: rgba(216, 189, 121, 0.11);
  color: var(--text);
}

.macro-index-empty {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 0 8px;
}

.macro-index-empty strong {
  color: var(--text);
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  line-height: 1;
  font-weight: 800;
}

.macro-index-empty span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 700;
}

.macro-index-empty-stat strong {
  color: var(--muted-2);
}

.macro-terminal-section { margin-bottom: 0; }
#page-macro .page-header { margin-bottom: 12px; }
#page-macro .page-header h2 { font-size: 1.5rem; }
#page-macro .page-header p { max-width: 720px; font-size: .78rem; }
.macro-explainability { display: grid; gap: 14px; }
.macro-terminal-label,
.macro-panel-heading > span,
.macro-explain-why h3 {
  color: var(--accent);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.macro-terminal-hero {
  display: grid;
  grid-template-columns: minmax(0, 28fr) minmax(0, 42fr) minmax(0, 30fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-color: rgba(216, 189, 121, .22);
  background: linear-gradient(135deg, #111519 0%, #101215 48%, #12110f 100%);
}
.macro-terminal-hero > div { min-width: 0; padding: 18px 20px; }
.macro-terminal-hero > div + div { border-left: 1px solid var(--border); }
.macro-hero-regime { display: flex; flex-direction: column; justify-content: center; }
.macro-hero-regime .macro-overview-bias { margin: 14px 0 16px; font-size: clamp(3.1rem, 5vw, 3.7rem); }
.macro-score-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(0, 0, 0, .18);
}
.macro-score-strip span { color: var(--muted-2); font-size: .58rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.macro-score-strip strong { font-size: .88rem; }
.macro-hero-regime > small { margin-top: 8px; color: var(--muted-2); font-size: .63rem; text-transform: uppercase; }
.macro-hero-takeaways,
.macro-hero-legend { display: grid; align-content: center; gap: 12px; }
.macro-hero-takeaways > div { display: grid; gap: 7px; }
.macro-hero-takeaways p,
.macro-hero-legend p { display: grid; grid-template-columns: 8px minmax(0, 1fr); align-items: start; gap: 9px; color: var(--muted); font-size: .74rem; line-height: 1.42; }
.macro-hero-legend p strong { color: var(--text); font-size: .72rem; }
.macro-hero-takeaways i,
.macro-hero-legend i { width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: var(--context); }
.macro-hero-takeaways .is-supportive i,
.macro-hero-legend .is-supportive i { background: var(--positive); }
.macro-hero-takeaways .is-restrictive i,
.macro-hero-legend .is-restrictive i { background: var(--negative); }
.macro-hero-takeaways .is-conclusion i { background: var(--accent); }
.macro-explain-why { display: grid; gap: 9px; }
.macro-explain-why h3 { padding-top: 2px; }
.macro-explain-driver-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.macro-explain-driver { display: grid; grid-template-rows: auto minmax(42px, 1fr) auto; gap: 11px; min-height: 174px; padding: 14px; overflow: hidden; }
.macro-explain-driver.is-supportive { border-top: 2px solid rgba(127, 184, 146, .7); }
.macro-explain-driver.is-restrictive { border-top: 2px solid rgba(168, 50, 45, .78); }
.macro-explain-driver.is-neutral { border-top: 2px solid var(--border-strong); }
.macro-driver-heading { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 9px; }
.macro-driver-heading > strong { font-size: .79rem; }
.macro-driver-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; color: var(--context); background: var(--context-bg); }
.macro-driver-icon .macro-lucide { width: 15px; height: 15px; }
.is-supportive .macro-driver-icon { color: var(--positive); background: var(--positive-bg); }
.is-restrictive .macro-driver-icon { color: var(--negative); background: var(--negative-bg); }
.macro-explain-driver > p { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.macro-driver-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--border); border-radius: 6px; background: var(--border); }
.macro-driver-metrics > div { display: grid; align-content: center; gap: 3px; min-width: 0; padding: 7px; background: rgba(8, 10, 12, .58); }
.macro-driver-metrics span { color: var(--muted-2); font-size: .5rem; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; }
.macro-driver-metrics strong { font-size: .68rem; overflow-wrap: anywhere; }
.macro-terminal-bottom { display: grid; grid-template-columns: minmax(0, 36fr) minmax(0, 64fr); gap: 10px; align-items: start; }
.macro-technical-panel,
.macro-source-panel { padding: 14px; background: linear-gradient(145deg, #121519, #111113); }
.macro-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 28px; margin-bottom: 9px; }
.macro-panel-heading > small { color: var(--muted-2); font-size: .58rem; text-transform: uppercase; }
.macro-technical-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--border); border-radius: 7px; background: var(--border); }
.macro-technical-summary > div { display: grid; gap: 4px; min-width: 0; padding: 9px; background: rgba(8, 10, 12, .62); }
.macro-technical-summary span,
.macro-explain-technical-grid span { color: var(--muted-2); font-size: .54rem; letter-spacing: .05em; text-transform: uppercase; }
.macro-technical-summary strong,
.macro-explain-technical-grid strong { font-size: .7rem; overflow-wrap: anywhere; }
.macro-explain-deep-dive { margin-top: 8px; overflow: hidden; border: 1px solid var(--border); border-radius: 7px; }
.macro-explain-deep-dive > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; cursor: pointer; color: var(--text); font-size: .68rem; font-weight: 750; }
.macro-explain-deep-dive > summary em { color: var(--muted-2); font-size: .62rem; font-style: normal; }
.macro-explain-technical-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--border); background: var(--border); }
.macro-explain-technical-grid > div { display: grid; gap: 4px; padding: 9px; background: var(--panel-2); }
.macro-source-heading { margin-bottom: 7px; }
.macro-view-all { padding: 5px 8px; border: 1px solid rgba(216, 189, 121, .35); border-radius: 6px; background: var(--accent-soft); color: var(--accent); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.macro-view-all:hover { border-color: var(--accent); color: var(--accent-hover); }
.macro-source-table { max-height: 245px; overflow: auto; }
.macro-source-table .data-table { min-width: 720px; font-size: .68rem; }
.macro-source-table .data-table th,
.macro-source-table .data-table td { padding: 7px 8px; }

.macro-outlook-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.macro-outlook-divider {
  height: 1px;
  margin: 18px 0;
  background: var(--border);
}

.macro-overview-readout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.macro-overview-readout strong {
  color: var(--text);
  font-size: 0.86rem;
}

.macro-overview-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.macro-overview-stat {
  min-height: 77px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #101113;
}

.macro-overview-stat strong {
  display: block;
  margin-top: 7px;
  color: var(--text);
  font-size: 1.06rem;
  font-weight: 750;
}

.macro-overview-stat strong.positive { color: var(--positive); }
.macro-overview-stat strong.negative { color: var(--negative); }
.macro-overview-stat strong.neutral { color: var(--neutral); }

.macro-catalyst-card {
  min-width: 0;
}

.macro-catalyst-card > strong {
  margin-top: 5px;
}

.macro-catalyst-row,
.macro-catalyst-driver {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 5px;
  color: var(--muted-2);
  font-size: 0.7rem;
  font-weight: 650;
}

.macro-catalyst-row b,
.macro-catalyst-driver b {
  min-width: 0;
  color: var(--text);
  font-size: 0.74rem;
  text-align: right;
  overflow-wrap: anywhere;
}

.macro-catalyst-row b.positive,
.macro-catalyst-driver .positive { color: var(--positive); }
.macro-catalyst-row b.negative,
.macro-catalyst-driver .negative { color: var(--negative); }

.macro-catalyst-driver {
  align-items: flex-start;
}

.macro-catalyst-card .macro-engine-score {
  margin-top: 6px;
}

.macro-catalyst-card.is-unavailable {
  border-style: dashed;
}

.macro-catalyst-card.is-error {
  border-color: rgba(168, 50, 45, 0.35);
}

.macro-catalyst-calibration-inline {
  color: var(--accent);
  font-weight: 750;
  letter-spacing: 0.025em;
}

.macro-catalyst-v2-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.macro-catalyst-v2-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.macro-catalyst-v2-metrics > div {
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #101113;
}

.macro-catalyst-v2-metrics span,
.macro-catalyst-v2-metrics small {
  display: block;
  color: var(--muted-2);
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.macro-catalyst-v2-metrics strong {
  display: block;
  margin-top: 6px;
  color: var(--text);
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.macro-catalyst-v2-metrics strong.positive { color: var(--positive); }
.macro-catalyst-v2-metrics strong.negative { color: var(--negative); }
.macro-catalyst-v2-metrics strong.neutral { color: var(--neutral); }

.macro-catalyst-v2-metrics small {
  margin-top: 5px;
  text-transform: none;
  letter-spacing: 0;
}

.macro-catalyst-v2-calibration {
  border-color: rgba(216, 189, 121, 0.34) !important;
}

.macro-catalyst-v2-unavailable {
  display: grid;
  grid-template-columns: 0.8fr 1.6fr 1fr;
  gap: 10px;
  margin-top: 16px;
}

.macro-catalyst-v2-unavailable > div {
  min-width: 0;
  padding: 13px 14px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-md);
  background: #101113;
}

.macro-catalyst-v2-unavailable span,
.macro-catalyst-v2-unavailable strong,
.macro-catalyst-v2-unavailable small {
  display: block;
}

.macro-catalyst-v2-unavailable span {
  color: var(--muted-2);
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.macro-catalyst-v2-unavailable strong {
  margin-top: 6px;
  color: var(--text);
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.macro-catalyst-v2-unavailable small {
  margin-top: 5px;
  color: var(--muted-2);
  font-size: 0.67rem;
}

.macro-catalyst-v2-section,
.macro-catalyst-v2-driver-grid,
.macro-catalyst-v2-details {
  margin-top: 18px;
}

.macro-catalyst-v2-section h4,
.macro-catalyst-v2-driver-grid h4,
.macro-catalyst-v2-details h4 {
  margin: 0 0 9px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.macro-catalyst-v2-bundles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.macro-catalyst-v2-bundles > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 130px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #101113;
}

.macro-catalyst-v2-bundles b {
  color: var(--text);
  font-size: 0.78rem;
}

.macro-catalyst-v2-bundles small,
.macro-catalyst-v2-bundles em {
  color: var(--muted-2);
  font-size: 0.67rem;
  font-style: normal;
}

.macro-catalyst-v2-driver-grid,
.macro-catalyst-v2-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.macro-catalyst-v2-driver-grid > div,
.macro-catalyst-v2-detail-grid > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #101113;
}

.macro-catalyst-v2-driver-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.macro-catalyst-v2-driver-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  color: var(--text);
  font-size: 0.78rem;
}

.macro-catalyst-v2-driver-list small {
  margin-left: 5px;
  color: var(--muted-2);
  font-size: 0.63rem;
}

.macro-catalyst-v2-empty {
  margin: 0;
  color: var(--muted-2);
  font-size: 0.76rem;
}

.macro-catalyst-v2-toggle {
  margin-top: 16px;
}

.macro-catalyst-v2-details {
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.macro-catalyst-v2-details > h4 {
  margin-top: 20px;
}

.macro-catalyst-v2-table {
  min-width: 880px;
}

.macro-catalyst-v2-supporting {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr;
  gap: 12px;
  margin-top: 16px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--muted);
  font-size: 0.76rem;
}

.macro-catalyst-v2-supporting strong {
  color: var(--text);
}

.macro-takeaways {
  grid-column: 1 / -1;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.macro-takeaway-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.macro-takeaway-list span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted);
  background: #101113;
  font-size: 0.78rem;
  font-weight: 650;
}

#macroCategoryGrid {
  display: block;
}

.macro-category-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(170px, 1fr));
  gap: 12px;
  align-items: stretch;
  min-width: 0;
}

.macro-category-card {
  min-height: 0;
  min-width: 0;
  animation: macroFadeIn 800ms ease both;
}

.macro-category-card.is-expanded {
  grid-column: 1 / -1;
}

.macro-category-summary-grid {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) auto;
  gap: 7px 14px;
  align-items: baseline;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

.macro-category-summary-grid span {
  color: var(--muted-2);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.macro-category-summary-grid strong {
  color: var(--text);
  font-size: 0.82rem;
  text-align: right;
}

.macro-show-more {
  align-self: flex-start;
  margin-top: 12px;
}

.macro-category-details {
  min-width: 0;
  max-width: calc(100% + 40px);
  overflow: hidden;
  margin: 16px -20px -18px;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--border);
  background: #101113;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.macro-detail-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.macro-detail-tabs .toggle-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.macro-detail-body {
  min-width: 0;
  max-width: 100%;
  margin-top: 16px;
}

.macro-detail-body .data-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.macro-detail-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.macro-detail-heading strong {
  display: block;
  margin-top: 3px;
  font-size: 1.05rem;
}

.macro-detail-metrics,
.macro-detail-score-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 9px;
}

.macro-detail-metrics > div,
.macro-detail-score-strip > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card-bg);
}

.macro-detail-metrics span,
.macro-detail-score-strip span {
  display: block;
  color: var(--muted-2);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.macro-detail-metrics strong,
.macro-detail-score-strip strong {
  display: block;
  margin-top: 5px;
  color: var(--text);
  font-size: 0.9rem;
}

.macro-detail-subheading {
  margin: 18px 0 9px;
}

.macro-detail-note {
  margin: 12px 0 14px;
}

.macro-detail-table {
  min-width: 880px;
}

.macro-empty-cell {
  color: var(--muted);
  text-align: center;
}

.macro-category-card:hover {
  background: #161619;
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.macro-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.macro-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted);
  background: #101113;
}

.macro-lucide {
  width: 17px;
  height: 17px;
}

.btn-lucide {
  width: 15px;
  height: 15px;
  margin-right: 7px;
  vertical-align: -2px;
}

.macro-label-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-right: 7px;
  color: var(--muted-2);
  vertical-align: -3px;
}

.macro-label-icon.positive { color: var(--positive); }
.macro-label-icon.negative { color: var(--negative); }
.macro-label-icon.neutral { color: var(--accent); }

.macro-progress {
  position: relative;
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #0b0b0c;
  border: 1px solid var(--border);
}

.macro-category-card .macro-progress {
  margin: 10px 0 8px;
}

.macro-progress span {
  display: block;
  width: var(--progress-width, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--neutral);
  animation: macroProgressIn 800ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.macro-progress span.positive { background: var(--positive); }
.macro-progress span.negative { background: var(--negative); }
.macro-progress span.neutral { background: var(--neutral); }
.macro-progress.is-empty span { opacity: 0; }

.macro-progress-bipolar {
  overflow: visible;
  background: linear-gradient(90deg, rgba(168, 50, 45, 0.22), rgba(216, 189, 121, 0.18) 50%, rgba(127, 184, 146, 0.22));
}

.macro-progress-bipolar span {
  position: absolute;
  left: var(--progress-start, 50%);
  width: var(--progress-width, 0%);
  top: -1px;
  height: calc(100% + 2px);
  animation: none;
}

.macro-progress-bipolar i {
  position: absolute;
  left: 50%;
  top: -4px;
  bottom: -4px;
  width: 1px;
  background: var(--accent);
  box-shadow: 0 0 0 1px rgba(216, 189, 121, 0.2);
}

.macro-progress-scale {
  display: flex;
  justify-content: space-between;
  color: var(--muted-2);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.macro-engine-score {
  color: var(--muted-2);
  font-size: 0.74rem;
  font-weight: 650;
}

.macro-panel-title {
  color: var(--text);
  font-size: 1rem;
  font-weight: 760;
  letter-spacing: 0.005em;
}

@keyframes macroProgressIn {
  from { width: 0; }
  to { width: var(--progress-width, 0%); }
}

@keyframes macroFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── Fed Outlook card ─────────────────────────────────────────────── */
.fed-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  flex-wrap: wrap;
}

.fed-regime-value {
  font-size: 1.6rem;
  font-weight: 800;
}

.fed-score-row {
  display: flex;
  gap: 22px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.fed-score-item {
  min-width: 110px;
}

.fed-score-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.fed-score-value {
  font-size: 1.2rem;
  font-weight: 700;
  margin-top: 3px;
}

.fed-reasons {
  margin: 14px 0 0;
  padding-left: 18px;
  color: var(--text);
  font-size: 0.88rem;
}

.fed-reasons li { margin-bottom: 3px; }

.fed-inputs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.fed-input-item {
  font-size: 0.82rem;
  color: var(--muted);
}

.fed-input-item strong {
  display: block;
  color: var(--text);
  font-size: 0.98rem;
  margin-top: 2px;
}

.disclaimer {
  margin-top: 14px;
  font-size: 0.78rem;
  font-style: italic;
  color: var(--muted-2);
}

/* ── Colour / bias helpers (reused everywhere) ────────────────────── */
.positive { color: var(--positive); }
.negative { color: var(--negative); }
.neutral  { color: var(--neutral); }
.muted-tone { color: var(--context); }

.fed-hawkish { color: var(--negative); }
.fed-dovish  { color: var(--positive); }
.fed-neutral { color: var(--neutral); }

/* ── Badges ────────────────────────────────────────────────────────── */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.badge-positive { background: var(--positive-bg); color: var(--positive); }
.badge-negative { background: var(--negative-bg); color: var(--negative); }
.badge-neutral  { background: var(--neutral-bg);  color: var(--neutral); }
.badge-context  { background: var(--context-bg);  color: var(--context); }

/* Release impact is the only semantically color-coded event metadata. */
.event-impact-high { background: var(--negative-bg); color: var(--negative); }
.event-impact-medium { background: var(--warning-bg); color: var(--warning); }
.event-impact-low { background: rgba(216, 189, 121, 0.14); color: var(--accent); }
.event-impact-unknown { background: var(--context-bg); color: var(--muted-2); }

.event-metadata-label,
.event-metadata-separator {
  color: var(--muted);
  text-transform: none;
}

.badge-demo {
  background: var(--accent-soft);
  color: var(--accent);
}

.badge-cache {
  background: var(--neutral-bg);
  color: var(--neutral);
}

/* ── Tables ────────────────────────────────────────────────────────── */
.data-table-wrap {
  overflow-x: auto;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.data-table th {
  text-align: left;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted-2);
  font-weight: 700;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border-strong);
  white-space: nowrap;
}

.data-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  color: var(--text);
}

.data-table tbody tr:hover {
  background: rgba(239, 228, 211, 0.035);
}

.data-table .category-group-row td {
  background: var(--panel-2);
  font-weight: 700;
  color: var(--text);
}

.data-table tbody tr.scanner-row {
  cursor: pointer;
}

.data-table tbody tr.scanner-row.selected {
  background: rgba(216, 189, 121, 0.075);
  box-shadow: inset 3px 0 0 var(--accent);
}

/* ── Trade Environment card ───────────────────────────────────────── */
.trade-env-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px 24px;
  margin-top: 15px;
}

.trade-env-item .label {
  font-size: 0.73rem;
  color: var(--muted-2);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.trade-env-item .value {
  font-size: 0.96rem;
  font-weight: 600;
  margin-top: 4px;
  color: var(--text);
}

.trade-env-warnings {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid var(--border);
}

.warning-chip {
  display: inline-block;
  padding: 5px 12px;
  margin: 4px 6px 0 0;
  border-radius: var(--radius-sm);
  font-size: 0.76rem;
  font-weight: 600;
  background: var(--warning-bg);
  color: var(--warning);
}

/* ── Treasury cards ────────────────────────────────────────────────── */
.treasury-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  align-items: stretch;
}

.treasury-grid .card {
  padding: 15px 17px;
}

/* ── USD Rates Intelligence presentation ─────────────────────────── */
.rates-intelligence-dashboard {
  display: flex;
  flex-direction: column;
  gap: 18px;
  grid-column: 1 / -1;
  min-width: 0;
}

.rates-intelligence-section {
  min-width: 0;
}

.rates-section-heading {
  margin-bottom: 10px;
}

.rates-section-heading h3 {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text);
}

.rates-section-heading p,
.rates-as-of,
.rates-interpretation {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.78rem;
}

.rates-summary-grid,
.rates-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  gap: 10px;
}

.rates-summary-card,
.rates-metric-card {
  min-width: 0;
}

.rates-summary-card .metric-card-value,
.rates-metric-card .metric-card-value {
  font-size: 1.14rem;
  overflow-wrap: anywhere;
}

.rates-split-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.rates-feed-banner {
  padding: 10px 13px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
}

.rates-feed-warning {
  color: var(--warning);
  background: var(--warning-bg);
}

.rates-unavailable-reason {
  color: var(--warning);
  font-size: 0.76rem;
  margin-top: 4px;
}

.rates-condition-favourable { color: var(--positive); }
.rates-condition-adverse { color: var(--negative); }
.rates-condition-active { color: var(--warning); }

.rates-momentum-table-wrap,
.rates-methodology-table-wrap {
  max-width: 100%;
}

.rates-momentum-table,
.rates-methodology-table {
  min-width: 760px;
}

.rates-methodology {
  padding: 0 !important;
  overflow: hidden;
}

.rates-methodology > summary {
  cursor: pointer;
  padding: 15px 17px;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--text);
}

.rates-methodology[open] > summary {
  border-bottom: 1px solid var(--border);
}

.rates-methodology-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 13px 17px;
  color: var(--muted);
  font-size: 0.76rem;
}

.rates-methodology-table {
  font-size: 0.72rem;
}

/* ── Toggle / filter controls ──────────────────────────────────────── */
.controls-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.toggle-btn {
  border: 1px solid var(--border-strong);
  background: var(--panel-2);
  color: var(--muted);
  padding: 7px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
  white-space: nowrap;
}

.toggle-btn:hover {
  background: var(--card-hover);
  color: var(--text);
}

.toggle-btn.active {
  background: #131313;
  color: var(--accent-hover);
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(216, 189, 121, 0.08), 0 0 16px rgba(216, 189, 121, 0.06);
}

.week-toggle {
  display: flex;
  gap: 6px;
}

/* ── Compact horizontal currency switcher (Macro / Treasury pages) ── */
.currency-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.currency-tabs::-webkit-scrollbar { height: 5px; }
.currency-tabs::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 999px; }

.currency-tabs .toggle-btn {
  flex-shrink: 0;
}

/* ── Trade Scanner page ────────────────────────────────────────────── */
.scanner-summary-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.filter-label {
  font-size: 0.7rem;
  color: var(--muted-2);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.filter-select {
  background: var(--panel-2);
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 7px 10px;
  font-size: 0.83rem;
  font-family: inherit;
}

/* ── Institutional Event Replay Terminal ─────────────────────────── */
.replay-filter-section {
  display: grid;
  gap: 14px;
}

.replay-range-controls {
  margin-bottom: 0;
}

.replay-custom-range,
.replay-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.replay-custom-range[hidden] { display: none; }

.replay-timeline {
  position: relative;
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding-left: 20px;
}

.replay-timeline::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--border-strong);
}

.replay-day {
  position: relative;
  margin: 12px 0 2px;
  color: var(--muted);
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.replay-day::before {
  content: '';
  position: absolute;
  left: -19px;
  top: 6px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--bg);
}

.replay-event-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card-bg);
  overflow: hidden;
}

.replay-event-card > summary {
  display: grid;
  grid-template-columns: 120px minmax(190px, 1.4fr) auto auto minmax(180px, 1fr);
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  cursor: pointer;
  list-style: none;
}

.replay-event-card > summary::-webkit-details-marker { display: none; }
.replay-event-card > summary:hover { background: var(--card-hover); }
.replay-event-card[open] > summary { border-bottom: 1px solid var(--border); }
.replay-time { color: var(--muted); font-variant-numeric: tabular-nums; }
.replay-event-name { color: var(--text); font-weight: 650; }
.replay-event-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.replay-event-meta { color: var(--muted); font-size: 0.76rem; text-align: right; }
.replay-event-decision { font-weight: 750; letter-spacing: 0.06em; }
.replay-event-decision.buy, .replay-decision.buy { color: var(--positive); }
.replay-event-decision.sell, .replay-decision.sell { color: var(--negative); }
.replay-event-decision.no_trade, .replay-decision.no_trade { color: var(--neutral); }
.replay-event-decision.unavailable, .replay-decision.unavailable { color: var(--muted); }
.replay-preview-badge {
  color: #f5cf7a;
  border-color: rgba(245, 207, 122, 0.5);
  background: rgba(245, 207, 122, 0.1);
}
.replay-preview-notice {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin: 20px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(245, 207, 122, 0.35);
  border-radius: 8px;
  background: rgba(245, 207, 122, 0.07);
  color: var(--muted);
  font-size: 0.8rem;
}
.replay-preview-notice strong { color: #f5cf7a; white-space: nowrap; }

.replay-detail-stack {
  display: grid;
  gap: 0;
  background: var(--card-bg);
}

.replay-executive-card {
  padding: 32px;
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(circle at 88% 0%, rgba(73, 156, 255, 0.12), transparent 35%),
    linear-gradient(145deg, var(--card-bg), var(--panel));
}

.replay-executive-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 26px;
}

.replay-executive-heading > div:first-child > span,
.replay-executive-result span {
  display: block;
  margin-bottom: 7px;
  color: var(--muted-2);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.replay-executive-heading h3 {
  margin: 0;
  color: var(--text);
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

.replay-executive-heading p {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
}

.replay-executive-result {
  min-width: 150px;
  padding: 15px 18px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: rgba(0, 0, 0, 0.12);
  text-align: right;
}

.replay-executive-result strong {
  color: var(--accent-hover);
  font-size: 1.25rem;
  letter-spacing: 0.04em;
}

.replay-executive-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.replay-executive-metric {
  min-width: 0;
  padding: 15px 0 4px;
  border-top: 1px solid var(--border-strong);
}

.replay-executive-metric span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted-2);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.replay-executive-metric strong {
  display: block;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 1.08rem;
  line-height: 1.25;
}

.replay-executive-metric:nth-child(2) strong,
.replay-executive-metric:nth-child(4) strong,
.replay-executive-metric:nth-child(5) strong {
  font-size: 1.25rem;
}

.replay-executive-metric.is-unavailable strong {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.45;
}

.replay-detail-section {
  min-width: 0;
  padding: 28px 32px;
  border-bottom: 1px solid var(--border);
  background: var(--card-bg);
}

.replay-detail-section h4 {
  margin-bottom: 18px;
  color: var(--accent-hover);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.replay-metrics,
.replay-performance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
}

.replay-evidence-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.replay-evidence-grid .replay-metric {
  min-height: 88px;
  padding: 15px;
}

.replay-evidence-grid .replay-metric strong {
  font-size: 1rem;
}

.replay-metric {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--panel);
}

.replay-metric span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted-2);
  font-size: 0.64rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.replay-metric strong {
  display: block;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 0.82rem;
}

.replay-decision {
  margin-bottom: 18px;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.replay-empty-state {
  padding: 18px 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--panel);
}

.replay-empty-state strong {
  display: block;
  color: var(--text);
  font-size: 0.92rem;
}

.replay-empty-state p {
  max-width: 720px;
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.55;
}

.replay-decision-explanation {
  margin-bottom: 18px;
  border-left: 3px solid var(--muted-2);
}

.replay-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.replay-historical-opportunity {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--panel);
  overflow: hidden;
  transition: border-color 160ms ease, background 160ms ease;
}

.replay-historical-opportunity.is-primary {
  border-color: rgba(73, 156, 255, 0.72);
  background: linear-gradient(145deg, rgba(73, 156, 255, 0.1), var(--panel));
  box-shadow: 0 0 0 1px rgba(73, 156, 255, 0.12);
}

.replay-historical-opportunity[open] {
  grid-column: 1 / -1;
  border-color: var(--border-strong);
}

.replay-historical-opportunity > summary {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 10px;
  min-height: 238px;
  padding: 18px;
  cursor: pointer;
  list-style: none;
}

.replay-historical-opportunity > summary::-webkit-details-marker { display: none; }
.replay-historical-opportunity > summary::after {
  content: '+';
  position: absolute;
  top: 16px;
  right: 17px;
  color: var(--accent-hover);
  font-size: 1.05rem;
}
.replay-historical-opportunity[open] > summary::after { content: '−'; }
.replay-historical-opportunity > summary:hover { background: var(--card-hover); }

.replay-opportunity-rank {
  color: var(--accent-hover);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.replay-opportunity-identity {
  grid-column: 1 / -1;
  display: grid;
  gap: 3px;
}

.replay-opportunity-identity strong {
  color: var(--text);
  font-size: 1.28rem;
}

.replay-opportunity-identity small {
  color: var(--muted-2);
  font-size: 0.67rem;
}

.replay-opportunity-direction {
  grid-column: 1 / -1;
  color: var(--neutral);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.replay-opportunity-direction.buy { color: var(--positive); }
.replay-opportunity-direction.sell { color: var(--negative); }

.replay-opportunity-stat {
  min-width: 0;
  padding-top: 9px;
  border-top: 1px solid var(--border);
}
.replay-opportunity-stat small {
  display: block;
  margin-bottom: 4px;
  color: var(--muted-2);
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.replay-opportunity-stat strong {
  display: block;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 0.8rem;
}
.replay-opportunity-confidence {
  grid-column: 1 / -1;
  justify-self: start;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(73, 156, 255, 0.1);
  color: var(--accent-hover);
  font-size: 0.65rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.replay-opportunity-detail {
  padding: 4px 22px 24px;
  border-top: 1px solid var(--border);
  background: var(--card-bg);
}

.replay-opportunity-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding-top: 20px;
}

.replay-opportunity-windows { margin-top: 24px; }
.replay-opportunity-windows h5,
.replay-ranking-explanation > strong {
  display: block;
  margin: 0 0 10px;
  color: var(--muted-2);
  font-size: 0.65rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.replay-opportunity-windows > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.replay-opportunity-window {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--panel);
}
.replay-opportunity-window > span,
.replay-opportunity-window > strong { grid-column: 1 / -1; }
.replay-opportunity-window > span {
  color: var(--muted-2);
  font-size: 0.62rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.replay-opportunity-window > strong { color: var(--text); font-size: 0.92rem; }
.replay-opportunity-window div { display: grid; gap: 3px; }
.replay-opportunity-window small { color: var(--muted-2); font-size: 0.6rem; }
.replay-opportunity-window b { color: var(--muted); font-size: 0.72rem; font-weight: 650; }
.replay-opportunity-window.is-unavailable { display: block; }
.replay-opportunity-window.is-unavailable strong { display: block; margin-top: 8px; color: var(--muted); }

.replay-ranking-explanation {
  margin-top: 20px;
  padding: 15px 17px;
  border-left: 3px solid var(--accent);
  background: var(--panel);
}
.replay-ranking-explanation p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.55;
}

.replay-outcome-comparison { margin-top: 10px; }

.replay-technical-details {
  background: var(--panel);
}

.replay-technical-details > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 18px 32px;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
}

.replay-technical-details > summary::-webkit-details-marker { display: none; }
.replay-technical-details > summary::after { content: '+'; color: var(--accent-hover); font-size: 1.1rem; }
.replay-technical-details[open] > summary::after { content: '−'; }
.replay-technical-details > summary span {
  color: var(--text);
  font-size: 0.76rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.replay-technical-details > summary small { margin-left: auto; color: var(--muted-2); }
.replay-technical-body { padding: 4px 32px 28px; }

.replay-performance-grid {
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.replay-performance-grid .replay-metric {
  min-height: 92px;
  padding: 16px;
  border-color: var(--border-strong);
  background: linear-gradient(145deg, var(--card-bg), var(--panel));
}

.replay-performance-grid .replay-metric strong {
  margin-top: 10px;
  font-size: 1.08rem;
}

.replay-analytics-section {
  padding-top: 26px;
  border-top: 1px solid var(--border-strong);
}

.replay-analytics-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}

.replay-analytics-window { justify-content: flex-end; margin-bottom: 0; }

.replay-analytics-status {
  margin: 12px 0 0;
  color: var(--muted-2);
  font-size: 0.75rem;
}

.replay-analytics-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.replay-analytics-kpi-grid.is-empty {
  display: block;
}

.replay-live-empty-state {
  border: 1px solid rgba(91, 146, 255, .34);
  border-radius: 14px;
  padding: clamp(1.25rem, 3vw, 2rem);
  background: linear-gradient(135deg, rgba(28, 61, 112, .2), rgba(8, 18, 34, .82));
}

.replay-live-empty-state > span {
  color: var(--accent, #6ea4ff);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.replay-live-empty-state h3 {
  margin: .55rem 0 1.25rem;
  max-width: 760px;
  font-size: clamp(1.25rem, 2.5vw, 1.8rem);
}

.replay-live-empty-state dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 0 0 1rem;
}

.replay-live-empty-state dl div {
  padding: .8rem;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 9px;
  background: rgba(2, 10, 22, .38);
}

.replay-live-empty-state dt,
.replay-capture-note {
  color: var(--muted, #8998ae);
  font-size: .76rem;
}

.replay-live-empty-state dd {
  margin: .2rem 0 0;
  font-weight: 750;
}

.replay-capture-note {
  margin: .75rem 0 0;
}

.replay-current-comparison {
  display: grid;
  gap: 18px;
  padding: 26px 32px;
  border: 1px solid rgba(91, 155, 213, .32);
  background: linear-gradient(135deg, rgba(28, 54, 78, .34), rgba(16, 17, 19, .94));
}
.replay-current-comparison > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.replay-current-comparison > header div { display: grid; gap: 5px; }
.replay-current-comparison > header span,
.replay-current-macro > span {
  color: #7db7e8;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.replay-current-comparison > header strong { color: var(--text); font-size: 1rem; text-transform: uppercase; }
.replay-current-comparison > header small,
.replay-current-macro > small { color: var(--muted-2); font-size: .62rem; text-transform: uppercase; }
.replay-comparison-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: rgba(91, 155, 213, .22);
}
.replay-version-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: rgba(91, 155, 213, .22);
}
.replay-version-comparison > p {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .7rem;
}
.replay-current-macro { display: grid; gap: 5px; }
.replay-current-macro > strong { color: var(--text); font-size: 1.35rem; }
.replay-current-opportunities { display: grid; gap: 12px; }
.replay-current-opportunities > h4 { margin: 0; color: var(--text); font-size: .75rem; text-transform: uppercase; }
.replay-current-opportunities > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.replay-current-opportunity {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(91, 155, 213, .28);
  background: rgba(12, 18, 24, .72);
}
.replay-current-opportunity.is-descriptive { border-color: var(--border); background: rgba(20, 22, 25, .82); }
.replay-current-opportunity > header { display: flex; align-items: center; gap: 10px; }
.replay-current-opportunity > header span { color: #7db7e8; font-weight: 800; }
.replay-current-opportunity > header strong { color: var(--text); }
.replay-current-opportunity > header em { margin-left: auto; color: var(--muted); font-size: .58rem; font-style: normal; }
.replay-current-opportunity-direction { color: var(--accent); font-size: 1.15rem; font-weight: 800; }
.replay-current-opportunity > p { margin: 0; color: var(--muted); font-size: .65rem; line-height: 1.5; }

@media (max-width: 720px) {
  .replay-live-empty-state dl { grid-template-columns: 1fr; }
}

.replay-analytics-kpi {
  min-width: 0;
  min-height: 94px;
  padding: 17px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: linear-gradient(145deg, var(--card-bg), var(--panel));
}

.replay-analytics-kpi span,
.replay-analytics-visual span {
  display: block;
  color: var(--muted-2);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.replay-analytics-kpi strong {
  display: block;
  margin-top: 12px;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 1.25rem;
}

.replay-analytics-kpi.is-positive strong { color: var(--positive); }
.replay-analytics-kpi.is-negative strong { color: var(--negative); }

.replay-analytics-visual-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.replay-analytics-visual {
  min-width: 0;
  padding: 19px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--panel);
}

.replay-analytics-visual strong {
  display: block;
  margin-top: 9px;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 1rem;
}

.replay-analytics-visual small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
}

.replay-analytics-block {
  margin-top: 28px;
}

.replay-analytics-block > h3 {
  margin: 0 0 13px;
  color: var(--text);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.replay-scenario-performance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.replay-scenario-performance {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card-bg);
}

.replay-scenario-performance-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--panel);
}

.replay-scenario-performance-title span { color: var(--accent-hover); font-weight: 750; }
.replay-scenario-performance-title small { color: var(--muted); }
.replay-scenario-performance > div:last-child {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.replay-scenario-performance .replay-analytics-kpi {
  min-height: 76px;
  padding: 13px;
  border: 0;
  border-radius: 0;
}
.replay-scenario-performance .replay-analytics-kpi strong { margin-top: 8px; font-size: 0.94rem; }

.replay-analytics-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.replay-analytics-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.replay-analytics-table th,
.replay-analytics-table td {
  padding: 13px 15px;
  border-bottom: 1px solid var(--border);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.replay-analytics-table thead th {
  color: var(--muted-2);
  background: var(--panel);
  font-size: 0.62rem;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  white-space: nowrap;
}

.replay-analytics-table th:first-child,
.replay-analytics-table td:first-child,
.replay-analytics-table th[scope="row"] { text-align: left; }
.replay-analytics-table tbody th { color: var(--text); font-weight: 700; }
.replay-analytics-table tbody td { color: var(--muted); }
.replay-analytics-table tbody tr:last-child th,
.replay-analytics-table tbody tr:last-child td { border-bottom: 0; }
.replay-analytics-table tbody tr:hover { background: var(--card-hover); }
.replay-analytics-rank { width: 52px; color: var(--accent-hover) !important; }

.replay-reasoning {
  margin-top: 14px;
  color: var(--muted);
  font-size: 0.78rem;
}

.replay-reasoning ul { margin: 7px 0 0; padding-left: 18px; }
.replay-reasoning li + li { margin-top: 4px; }

@media (max-width: 980px) {
  .replay-event-card > summary {
    grid-template-columns: 100px minmax(150px, 1fr) auto auto;
  }
  .replay-event-meta { grid-column: 2 / -1; text-align: left; }
  .replay-executive-grid,
  .replay-evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .replay-opportunity-grid { grid-template-columns: 1fr; }
  .replay-comparison-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .replay-current-opportunities > div { grid-template-columns: 1fr; }
  .replay-opportunity-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .replay-analytics-header { display: grid; }
  .replay-analytics-window { justify-content: flex-start; }
  .replay-analytics-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .replay-scenario-performance-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .replay-timeline { padding-left: 15px; }
  .replay-day::before { left: -14px; }
  .replay-event-card > summary { grid-template-columns: 1fr auto; gap: 8px; }
  .replay-time, .replay-event-name, .replay-event-meta { grid-column: 1 / -1; text-align: left; }
  .replay-executive-card,
  .replay-detail-section { padding: 22px 18px; }
  .replay-current-comparison { padding: 22px 18px; }
  .replay-current-comparison > header { display: grid; }
  .replay-comparison-summary,
  .replay-version-comparison { grid-template-columns: 1fr; }
  .replay-executive-heading { display: grid; }
  .replay-executive-result { min-width: 0; text-align: left; }
  .replay-executive-grid,
  .replay-evidence-grid,
  .replay-opportunity-grid { grid-template-columns: 1fr; }
  .replay-opportunity-detail-grid,
  .replay-opportunity-windows > div { grid-template-columns: 1fr; }
  .replay-technical-details > summary { padding: 17px 18px; }
  .replay-technical-details > summary small { display: none; }
  .replay-technical-body { padding: 2px 18px 22px; }
  .replay-analytics-visual-grid { grid-template-columns: 1fr; }
}

.scanner-layout {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.scanner-quicklists {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  align-items: stretch;
}

.scanner-main {
  flex: 1;
  min-width: 0;
}

.scanner-details {
  width: 340px;
  flex-shrink: 0;
}

/* ── Executive Dashboard ──────────────────────────────────────────── */
.executive-dashboard {
  max-width: 1280px;
}

.executive-section {
  margin-bottom: 32px;
}

.section-kicker {
  margin-bottom: 5px;
  color: var(--accent);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.dashboard-live-decision {
  padding: 28px 30px;
  border-color: rgba(216, 189, 121, 0.42);
  box-shadow: inset 3px 0 0 var(--accent), var(--shadow-card);
}

.dashboard-live-heading,
.dashboard-macro-data-header,
.dashboard-subsection-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.dashboard-live-heading h3 {
  margin-top: 7px;
  font-size: clamp(1.45rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.dashboard-live-release-grid,
.dashboard-live-conclusion-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}

.dashboard-live-conclusion-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.dashboard-live-release-grid > div,
.dashboard-live-conclusion-grid > div,
.dashboard-research-metrics > div {
  min-width: 0;
  padding: 14px 15px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.dashboard-live-release-grid span,
.dashboard-live-conclusion-grid span,
.dashboard-cross-asset-metrics span,
.dashboard-research-assets > span,
.dashboard-research-metrics span {
  display: block;
  color: var(--muted-2);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.dashboard-live-release-grid strong,
.dashboard-live-conclusion-grid strong {
  display: block;
  overflow-wrap: anywhere;
  margin-top: 6px;
  font-size: 0.93rem;
}

.dashboard-decision-summary {
  margin-top: 18px;
  padding: 16px 18px;
  background: var(--accent-soft);
  border-left: 2px solid var(--accent);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.dashboard-decision-summary span {
  color: var(--accent);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dashboard-decision-summary p {
  margin-top: 7px;
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.6;
}

.dashboard-cross-asset-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.dashboard-cross-asset-card {
  min-width: 0;
}

.dashboard-cross-asset-card:hover {
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.dashboard-cross-asset-bias {
  margin-top: 17px;
  font-size: 1.22rem;
  font-weight: 750;
}

.dashboard-cross-asset-metrics {
  display: grid;
  gap: 9px;
  margin-top: 15px;
  padding-top: 13px;
  border-top: 1px solid var(--border);
}

.dashboard-cross-asset-metrics > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.dashboard-cross-asset-metrics strong {
  font-size: 0.82rem;
  text-align: right;
}

.dashboard-current-market-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 15px;
}

.dashboard-supporting-regime {
  margin-top: 12px;
}

.dashboard-macro-data-card {
  padding: 0;
  overflow: hidden;
}

.dashboard-macro-data-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}

.dashboard-macro-data-header strong {
  display: block;
  margin-top: 5px;
  font-size: 1rem;
}

.dashboard-macro-table th,
.dashboard-macro-table td {
  padding-right: 20px;
  padding-left: 20px;
}

.dashboard-subsection-heading {
  margin: 24px 0 11px;
}

.dashboard-subsection-heading .dashboard-group-label {
  margin-bottom: 3px;
}

.dashboard-subsection-heading .section-subtitle {
  margin: 0;
}

.dashboard-supporting-split {
  margin-top: 24px;
}

.dashboard-supporting-split .dashboard-theme-grid {
  grid-template-columns: 1fr;
}

.dashboard-research-preview {
  padding: 22px 24px;
}

.dashboard-research-assets {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--border);
}

.dashboard-research-assets > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-research-assets strong {
  padding: 6px 10px;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid rgba(216, 189, 121, 0.28);
  border-radius: var(--radius-sm);
  font-size: 0.75rem;
}

.dashboard-research-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.dashboard-research-metrics strong {
  display: block;
  margin-top: 7px;
  font-size: 1.18rem;
  font-variant-numeric: tabular-nums;
}

.executive-section-heading,
.dashboard-card-topline,
.dashboard-event-risk-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.executive-section-heading .section-title {
  margin-bottom: 11px;
}

.executive-section-heading .section-subtitle {
  margin-bottom: 0;
}

.dashboard-regime-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr);
  gap: 30px;
  padding: 28px 30px;
  border-color: rgba(216, 189, 121, 0.38);
  box-shadow: inset 3px 0 0 var(--accent), var(--shadow-card);
}

.dashboard-regime-main h3 {
  margin-top: 14px;
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.dashboard-regime-main p {
  max-width: 760px;
  margin-top: 14px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.65;
}

.dashboard-regime-signals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.dashboard-regime-signals > div {
  min-width: 0;
  padding: 15px 16px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.dashboard-regime-signals span,
.dashboard-card-metrics span,
.dashboard-event-risk-summary > span {
  display: block;
  color: var(--muted-2);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.dashboard-regime-signals strong {
  display: block;
  margin-top: 7px;
  font-size: 1rem;
  line-height: 1.3;
}

.dashboard-regime-signals .dashboard-regime-theme {
  grid-column: 1 / -1;
}

.dashboard-opportunity-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.dashboard-opportunity-group {
  min-width: 0;
}

.dashboard-group-label {
  margin-bottom: 9px;
  color: var(--text);
  font-size: 0.83rem;
  font-weight: 700;
}

.dashboard-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dashboard-opportunity-card {
  min-width: 0;
  padding: 16px 17px;
}

.dashboard-asset-name {
  overflow: hidden;
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-opportunity-direction {
  margin-top: 16px;
  font-size: 1.3rem;
  font-weight: 750;
  letter-spacing: 0.02em;
}

.dashboard-card-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid var(--border);
}

.dashboard-card-metrics strong {
  display: block;
  margin-top: 4px;
  font-size: 0.87rem;
}

.dashboard-briefing-split {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 24px;
}

.dashboard-briefing-split .executive-section {
  min-width: 0;
  margin-bottom: 32px;
}

.dashboard-avoid-list {
  display: grid;
  gap: 10px;
}

.dashboard-avoid-card {
  padding: 15px 17px;
  border-left: 3px solid var(--negative);
}

.dashboard-avoid-card p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 0.8rem;
}

.dashboard-event-risk-card {
  min-height: 100%;
  padding: 18px 20px;
}

.dashboard-event-risk-summary {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

.dashboard-event-list {
  display: grid;
  gap: 2px;
  margin-top: 8px;
}

.dashboard-event-row {
  display: grid;
  grid-template-columns: 72px 44px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.8rem;
}

.dashboard-event-row:last-child {
  border-bottom: 0;
}

.dashboard-event-row time,
.dashboard-event-country {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.dashboard-event-country {
  color: var(--accent);
  font-weight: 700;
}

.dashboard-event-row strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-theme-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.dashboard-theme-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 76px;
  padding: 16px 17px;
}

.dashboard-theme-card strong {
  font-size: 0.84rem;
  line-height: 1.45;
}

.dashboard-theme-marker {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--accent-soft);
}

.dashboard-quick-actions-section {
  padding-top: 22px;
  border-top: 1px solid var(--border);
}

.dashboard-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.dashboard-quick-actions .btn,
.executive-section-heading .btn {
  white-space: nowrap;
}

/* ── Daily Macro Briefing Dashboard ───────────────────────────────── */
.daily-dashboard {
  width: 100%;
  max-width: 1280px;
  min-width: 0;
}

.daily-dashboard-main-grid > *,
.daily-dashboard-section { min-width: 0; }

.daily-dashboard-section {
  margin-bottom: 22px;
}

.dashboard-executive-regime-section {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.dashboard-executive-regime-section .section-title {
  margin: 2px 0 12px;
}

.dashboard-executive-regime-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.dashboard-executive-regime-card {
  display: grid;
  align-content: center;
  gap: 10px;
  min-height: 112px;
  padding: 20px 18px;
  border-top: 3px solid var(--muted-2);
  background: var(--panel-2);
}

.dashboard-executive-regime-card > span,
.dashboard-executive-regime-card small {
  color: var(--muted-2);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.dashboard-executive-regime-card > strong {
  font-size: 1.48rem;
  line-height: 1;
  letter-spacing: 0.035em;
}

.dashboard-executive-regime-quality {
  justify-self: start;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--warning-bg);
}
.dashboard-executive-regime-card.is-bullish .dashboard-executive-regime-quality,
.dashboard-executive-regime-card.is-bearish .dashboard-executive-regime-quality,
.dashboard-executive-regime-card.is-neutral .dashboard-executive-regime-quality { color: var(--muted); }
.dashboard-executive-regime-card.is-provisional .dashboard-executive-regime-quality,
.dashboard-executive-regime-card.is-unavailable .dashboard-executive-regime-quality { color: var(--warning); }

.dashboard-executive-regime-card.is-bullish { border-top-color: var(--positive); }
.dashboard-executive-regime-card.is-bullish > strong { color: var(--positive); }
.dashboard-executive-regime-card.is-slightly-bullish { border-top-color: color-mix(in srgb, var(--positive) 65%, var(--border)); }
.dashboard-executive-regime-card.is-slightly-bullish > strong,
.slightly-positive { color: color-mix(in srgb, var(--positive) 72%, var(--muted)); }
.dashboard-executive-regime-card.is-bearish { border-top-color: var(--negative); }
.dashboard-executive-regime-card.is-bearish > strong { color: var(--negative); }
.dashboard-executive-regime-card.is-slightly-bearish { border-top-color: color-mix(in srgb, var(--negative) 65%, var(--border)); }
.dashboard-executive-regime-card.is-slightly-bearish > strong,
.slightly-negative { color: color-mix(in srgb, var(--negative) 72%, var(--muted)); }
.dashboard-executive-regime-card.is-neutral > strong { color: var(--neutral); }
.dashboard-executive-regime-card.is-provisional { border-top-color: var(--warning); }
.dashboard-executive-regime-card.is-provisional > strong,
.dashboard-executive-regime-card.is-unavailable > strong { color: var(--warning); }

.badge-slightly-positive {
  color: color-mix(in srgb, var(--positive) 72%, var(--muted));
  border-color: color-mix(in srgb, var(--positive) 42%, var(--border));
  background: color-mix(in srgb, var(--positive-bg) 62%, transparent);
}
.badge-slightly-negative {
  color: color-mix(in srgb, var(--negative) 72%, var(--muted));
  border-color: color-mix(in srgb, var(--negative) 42%, var(--border));
  background: color-mix(in srgb, var(--negative-bg) 62%, transparent);
}

.daily-briefing-hero {
  padding: 26px 28px;
  border-color: rgba(216, 189, 121, 0.42);
  box-shadow: inset 3px 0 0 var(--accent), var(--shadow-card);
}

.daily-briefing-topline,
.daily-section-heading,
.gameplan-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.daily-briefing-topline p {
  max-width: 720px;
  color: var(--muted);
  font-size: 0.82rem;
}

.daily-briefing-metrics {
  display: grid;
  grid-template-columns: 1.3fr repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 20px;
}

.daily-briefing-metrics > div {
  min-width: 0;
  padding: 13px 14px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.daily-briefing-metrics span,
.daily-event-values span,
.daily-event-interpretation span,
.daily-summary span,
.gameplan-list span,
.daily-events-status > span {
  display: block;
  color: var(--muted-2);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.daily-briefing-metrics strong {
  display: block;
  margin-top: 5px;
  overflow-wrap: anywhere;
  font-size: 0.84rem;
}

.daily-summary {
  margin-top: 13px;
  padding: 13px 16px;
  background: var(--accent-soft);
  border-left: 2px solid var(--accent);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.daily-summary p {
  margin-top: 5px;
  line-height: 1.55;
}

.daily-dashboard-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(330px, 0.8fr);
  gap: 18px;
  align-items: start;
}

.daily-section-heading {
  margin-bottom: 10px;
}

.daily-event-item + .daily-event-item {
  border-top: 1px solid var(--border);
}

.daily-event-item {
  padding: 17px 18px;
}

.daily-event-title {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.daily-event-title time {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 750;
}

.daily-event-title strong,
.daily-event-title span {
  display: block;
}

.daily-event-title div > span {
  margin-top: 2px;
  color: var(--muted-2);
  font-size: 0.68rem;
}

.daily-event-values {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}

.daily-event-values > div {
  padding: 9px 10px;
  background: var(--panel-2);
  border-radius: var(--radius-sm);
}

.daily-event-values strong {
  display: block;
  margin-top: 4px;
  font-size: 0.78rem;
}

.daily-event-interpretation {
  display: grid;
  grid-template-columns: 0.8fr 1.5fr 0.8fr;
  gap: 10px;
  margin-top: 11px;
}

.daily-event-interpretation strong {
  display: inline-block;
  margin-top: 4px;
  font-size: 0.72rem;
  line-height: 1.4;
}

.daily-events-status,
.daily-events-complete {
  padding: 14px 18px;
  border-top: 1px solid var(--border);
  background: var(--panel-2);
}

.daily-events-complete {
  color: var(--positive);
  font-size: 0.78rem;
  font-weight: 650;
}

.daily-upcoming-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  font-size: 0.76rem;
}

.daily-upcoming-row time {
  color: var(--accent);
}

.dashboard-gameplan {
  padding: 20px 21px;
  border-color: rgba(216, 189, 121, 0.35);
}

.gameplan-heading > strong {
  font-size: 1.02rem;
}

.gameplan-list {
  margin-top: 13px;
}

.gameplan-list > div {
  padding: 9px 0;
  border-top: 1px solid var(--border);
}

.gameplan-list p {
  margin-top: 4px;
  color: var(--text);
  font-size: 0.76rem;
  line-height: 1.45;
}

.dashboard-market-checklist {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 0;
  overflow: hidden;
}

.market-checklist-row {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  gap: 5px 8px;
  align-content: center;
  min-height: 74px;
  padding: 14px;
  border-right: 1px solid var(--border);
}

.market-checklist-row:last-child {
  border-right: 0;
}

.market-checklist-row strong {
  font-size: 0.7rem;
}

.market-checklist-row > span:last-child {
  grid-column: 2;
  color: var(--muted);
  font-size: 0.75rem;
}

.market-checklist-dot {
  width: 7px;
  height: 7px;
  margin-top: 4px;
  border-radius: 50%;
  background: var(--muted-2);
}

.market-checklist-dot.positive { background: var(--positive); }
.market-checklist-dot.negative { background: var(--negative); }

.dashboard-scanner-snapshot {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0;
  overflow: hidden;
}

.scanner-snapshot-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  gap: 9px;
  align-items: center;
  min-height: 51px;
  padding: 11px 15px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  font-size: 0.76rem;
}

.scanner-snapshot-row:nth-child(even) { border-right: 0; }
.scanner-snapshot-row:nth-last-child(-n + 2) { border-bottom: 0; }
.scanner-snapshot-row > span:first-child { color: var(--muted-2); }

/* ── Placeholder / loading / empty states ─────────────────────────── */
.placeholder {
  color: var(--muted);
  font-size: 0.86rem;
  padding: 26px 10px;
  text-align: center;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-md);
}

.placeholder.loading {
  display: grid;
  min-height: 92px;
  place-items: center;
  color: var(--muted);
}
.placeholder.error { color: var(--negative); border-color: rgba(168, 50, 45, 0.35); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ── Calendar day blocks (reused pattern) ─────────────────────────── */
.day-block {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 14px;
}

.day-block-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: var(--panel-2);
  border-bottom: 1px solid var(--border);
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--text);
}

/* ── Responsive: Desktop / Laptop / Tablet / Mobile ───────────────── */
@media (max-width: 1180px) {
  .main { padding: 22px 22px 50px; }
  .macro-category-cards { grid-template-columns: repeat(3, minmax(190px, 1fr)); }
  .macro-catalyst-v2-metrics { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .dashboard-current-market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-research-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .daily-briefing-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-market-checklist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-checklist-row { border-bottom: 1px solid var(--border); }
  .macro-terminal-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); }
  .macro-hero-legend { grid-column: 1 / -1; border-top: 1px solid var(--border); border-left: 0 !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .macro-hero-legend > .macro-terminal-label { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .app-shell { width: 100vw; max-width: 100vw; flex-direction: column; overflow-x: hidden; }
  .sidebar {
    width: 100%;
    max-width: 100vw;
    height: auto;
    position: static;
    flex-direction: row;
    align-items: center;
    overflow-x: hidden;
    gap: 16px;
    padding: 14px;
  }
  .sidebar-brand { width: 180px; min-width: 180px; flex: 0 0 180px; }
  .sidebar-title { overflow-wrap: anywhere; }
  .sidebar-nav { flex: 1 1 auto; min-width: 0; flex-direction: row; overflow-x: auto; }
  .sidebar-footer { display: none; }
  .main { width: 100%; max-width: 100vw; padding: 18px 16px 40px; overflow-x: hidden; }
  .trade-env-grid { grid-template-columns: 1fr; }
  .scanner-layout { flex-direction: column; }
  .scanner-details { width: 100%; }
  .card-lg { padding: 18px 18px; }
  .macro-overview-card { grid-template-columns: 1fr; }
  .macro-explain-driver-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .macro-explain-technical-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .macro-terminal-bottom { grid-template-columns: 1fr; }
  .macro-catalyst-v2-driver-grid,
  .macro-catalyst-v2-detail-grid { grid-template-columns: 1fr; }
  .dashboard-regime-hero,
  .dashboard-briefing-split { grid-template-columns: 1fr; }
  .dashboard-opportunity-groups { grid-template-columns: 1fr; }
  .dashboard-cross-asset-grid { grid-template-columns: 1fr; }
  .dashboard-live-release-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-live-conclusion-grid { grid-template-columns: 1fr; }
  .dashboard-research-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .daily-dashboard-main-grid { grid-template-columns: 1fr; }
  .dashboard-gameplan-section { grid-row: 1; }
  .daily-event-interpretation { grid-template-columns: 1fr; }
  .dashboard-market-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rates-split-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .hero-grid, .metric-grid, .treasury-grid { grid-template-columns: 1fr; }
  .topbar { flex-direction: column; align-items: flex-start; }
  .topbar-actions { width: 100%; justify-content: space-between; }
  .main { padding: 16px 14px 36px; }
  .page,
  .daily-dashboard,
  .daily-dashboard-main-grid,
  .daily-dashboard-section { width: 100%; max-width: calc(100vw - 28px); min-width: 0; }
  .daily-dashboard p,
  .daily-dashboard strong { overflow-wrap: anywhere; }
  .dashboard-executive-regime-grid { grid-template-columns: minmax(0, 1fr); }
  .dashboard-executive-regime-card { min-height: 104px; }
  body { font-size: 13.5px; }
  .macro-overview-stats,
  .macro-catalyst-v2-metrics,
  .macro-catalyst-v2-unavailable { grid-template-columns: 1fr; }
  .macro-category-cards { grid-template-columns: minmax(0, 1fr); }
  .macro-explain-driver-grid,
  .macro-explain-technical-grid { grid-template-columns: minmax(0, 1fr); }
  .macro-asset-tabs { display: flex; overflow-x: auto; padding-bottom: 3px; scrollbar-width: thin; }
  .macro-asset-tab { flex: 0 0 132px; }
  .macro-terminal-hero { grid-template-columns: 1fr; }
  .macro-terminal-hero > div + div { border-top: 1px solid var(--border); border-left: 0; }
  .macro-hero-legend { grid-column: auto; grid-template-columns: 1fr; }
  .macro-hero-legend > .macro-terminal-label { grid-column: auto; }
  .macro-hero-regime .macro-overview-bias { font-size: 3rem; }
  .macro-driver-metrics { grid-template-columns: repeat(3, minmax(82px, 1fr)); overflow-x: auto; }
  .macro-source-panel { min-width: 0; }
  .macro-source-heading { align-items: flex-start; }
  .macro-category-details { margin-right: -20px; margin-left: -20px; }
  .macro-detail-heading { align-items: flex-start; flex-direction: column; }
  .macro-detail-metrics,
  .macro-detail-score-strip { grid-template-columns: minmax(0, 1fr); }
  .macro-catalyst-v2-header { align-items: flex-start; }
  .macro-catalyst-v2-supporting { grid-template-columns: 1fr; }
  .dashboard-regime-hero { gap: 18px; padding: 22px 20px; }
  .dashboard-live-decision { padding: 22px 20px; }
  .dashboard-live-heading,
  .dashboard-macro-data-header,
  .dashboard-subsection-heading,
  .dashboard-research-assets { align-items: flex-start; flex-direction: column; }
  .dashboard-live-release-grid,
  .dashboard-current-market-grid,
  .dashboard-research-metrics { grid-template-columns: 1fr; }
  .dashboard-cross-asset-metrics > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .dashboard-cross-asset-metrics strong { text-align: left; }
  .dashboard-decision-summary p,
  .dashboard-cross-asset-card,
  .dashboard-live-decision { overflow-wrap: anywhere; }
  .dashboard-regime-signals,
  .dashboard-opportunity-grid { grid-template-columns: 1fr; }
  .executive-section-heading { align-items: flex-start; flex-direction: column; }
  .dashboard-event-row { grid-template-columns: 58px 38px minmax(0, 1fr); }
  .dashboard-event-row .badge { grid-column: 3; justify-self: start; }
  .dashboard-quick-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dashboard-quick-actions .btn { width: 100%; padding-right: 10px; padding-left: 10px; }
  .daily-briefing-hero { padding: 21px 19px; }
  .daily-briefing-topline,
  .daily-section-heading { align-items: flex-start; flex-direction: column; }
  .daily-briefing-metrics,
  .dashboard-market-checklist,
  .dashboard-scanner-snapshot { grid-template-columns: 1fr; }
  .daily-event-title { grid-template-columns: 48px minmax(0, 1fr); }
  .daily-event-title > .badge { grid-column: 2; justify-self: start; }
  .daily-event-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-checklist-row,
  .scanner-snapshot-row { border-right: 0; border-bottom: 1px solid var(--border); }
  .market-checklist-row:last-child,
  .scanner-snapshot-row:last-child { border-bottom: 0; }
  .scanner-snapshot-row:nth-last-child(2) { border-bottom: 1px solid var(--border); }
  .topbar-actions { flex-wrap: wrap; }
  .last-updated-label { width: 100%; white-space: normal; }
  .rates-summary-grid,
  .rates-card-grid { grid-template-columns: 1fr; }
  .rates-intelligence-dashboard { gap: 16px; }
}

/* Macro Event Playbook — Phase 1 pre-event presentation only. */
.macro-event-playbook {
  overflow: visible;
}

.playbook-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}

.playbook-header > div {
  display: grid;
  gap: 4px;
}

.playbook-header strong {
  font-size: 1.15rem;
}

.playbook-header small,
.playbook-eyebrow {
  color: var(--muted);
  font-size: 0.7rem;
}

.playbook-eyebrow {
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.playbook-scenario-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.playbook-scenario-tab {
  display: grid;
  gap: 3px;
  padding: 13px 16px;
  border: 0;
  border-right: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.playbook-scenario-tab:last-child { border-right: 0; }
.playbook-scenario-tab small { color: var(--muted-2); font-size: 0.62rem; font-weight: 500; }
.playbook-scenario-tab.active { background: rgba(203, 174, 116, 0.08); color: var(--accent); }

.playbook-explanation {
  margin: 0;
  padding: 14px 20px;
  color: var(--muted);
  font-size: 0.74rem;
  border-bottom: 1px solid var(--border);
}

.playbook-scenario-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.playbook-scenario-summary > div {
  display: grid;
  gap: 4px;
  padding: 12px 20px;
  border-right: 1px solid var(--border);
}

.playbook-scenario-summary > div:last-child { border-right: 0; }
.playbook-scenario-summary span { color: var(--muted-2); font-size: 0.63rem; text-transform: uppercase; }
.playbook-scenario-summary strong { font-size: 0.83rem; }

.playbook-ranking-wrap { overflow-x: auto; }
.playbook-ranking-table { min-width: 1020px; }
.playbook-ranking-table th,
.playbook-ranking-table td { white-space: nowrap; }

.playbook-ranking-block + .playbook-ranking-block {
  border-top: 1px solid var(--border);
}

.playbook-ranking-block.primary {
  background: rgba(216, 189, 121, 0.025);
}

.playbook-header.live { border-bottom-color: rgba(216, 189, 121, 0.34); }

.playbook-live-values,
.playbook-live-evidence,
.playbook-confirmation-factors {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 20px;
}

.playbook-live-values > div,
.playbook-live-evidence > div,
.playbook-confirmation-factors > div,
.playbook-institutional-decision,
.playbook-conflicts {
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.018);
}

.playbook-live-evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.playbook-confirmation-factors { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.playbook-live-values span,
.playbook-live-evidence span,
.playbook-confirmation-factors span,
.playbook-institutional-decision > span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted-2);
  font-size: 0.63rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.playbook-live-evidence small { display: block; margin-top: 4px; color: var(--muted); }
.playbook-conflicts,
.playbook-institutional-decision { margin: 14px 20px; }
.playbook-conflicts ul,
.playbook-institutional-decision p { margin: 8px 0 0; }

@media (max-width: 760px) {
  .playbook-live-values,
  .playbook-live-evidence,
  .playbook-confirmation-factors { grid-template-columns: minmax(0, 1fr); }
}

.playbook-ranking-heading {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: baseline;
  padding: 13px 20px;
  border-bottom: 1px solid var(--border);
}

.playbook-ranking-heading span {
  color: var(--muted-2);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.playbook-ranking-heading strong {
  font-size: 0.82rem;
}

.playbook-ranking-unavailable td {
  color: var(--muted);
}

.playbook-limitations,
.playbook-scenario-unavailable,
.playbook-empty-state {
  padding: 16px 20px;
}

.playbook-limitations {
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.7rem;
}

.playbook-limitations ul,
.playbook-scenario-unavailable p { margin-bottom: 0; }

.playbook-scenario-unavailable,
.playbook-empty-state {
  display: grid;
  gap: 8px;
}

.playbook-unavailable-assets {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.playbook-unavailable-assets span {
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted);
  font-size: 0.67rem;
}

.playbook-guardrails {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 11px 20px;
  border-top: 1px solid var(--border);
  color: var(--muted-2);
  font-size: 0.64rem;
}

@media (max-width: 640px) {
  .playbook-header { flex-direction: column; }
  .playbook-scenario-tabs,
  .playbook-scenario-summary { grid-template-columns: minmax(0, 1fr); }
  .playbook-scenario-tab,
  .playbook-scenario-summary > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .playbook-scenario-tab:last-child,
  .playbook-scenario-summary > div:last-child { border-bottom: 0; }
}

/* Macro Event Playbook — institutional workflow presentation. */
.playbook-terminal-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
  background: rgba(216, 189, 121, 0.035);
}

.playbook-terminal-header.live { background: rgba(102, 187, 144, 0.04); }
.playbook-event-identity { display: grid; gap: 5px; }
.playbook-event-identity > strong { font-size: clamp(1.25rem, 2.2vw, 1.65rem); letter-spacing: -0.02em; }
.playbook-event-identity small { color: var(--muted); font-variant-numeric: tabular-nums; }
.playbook-header-status { display: grid; justify-items: end; gap: 4px; min-width: 170px; }
.playbook-header-status > span,
.playbook-panel-label { color: var(--muted-2); font-size: 0.61rem; letter-spacing: 0.08em; text-transform: uppercase; }
.playbook-header-status > strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.playbook-header-status > em { margin-top: 4px; font-style: normal; }

.playbook-lifecycle {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  padding: 13px 24px;
  border-bottom: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.08);
}

.playbook-lifecycle-step { position: relative; display: flex; align-items: center; gap: 7px; color: var(--muted-2); font-size: 0.66rem; }
.playbook-lifecycle-step:not(:last-child)::after { content: ''; position: absolute; right: 10px; width: 28%; height: 1px; background: var(--border); }
.playbook-lifecycle-step i { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid var(--border); border-radius: 50%; font-style: normal; font-size: 0.58rem; }
.playbook-lifecycle-step.complete { color: var(--text); }
.playbook-lifecycle-step.complete i { color: var(--bg); border-color: var(--accent); background: var(--accent); }

.playbook-scenario-comparison {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.playbook-scenario-comparison .playbook-scenario-tab { min-height: 88px; padding: 16px 20px; }
.playbook-scenario-tab > span { font-size: 0.92rem; }
.playbook-scenario-tab > em { margin-top: 7px; color: var(--text); font-size: 0.7rem; font-style: normal; font-weight: 500; }
.playbook-scenario-tab.activated { box-shadow: inset 0 2px 0 var(--accent); }

.playbook-release-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
  background: rgba(102, 187, 144, 0.025);
}

.playbook-release-strip > div { display: grid; gap: 5px; padding: 14px 18px; border-right: 1px solid var(--border); }
.playbook-release-strip > div:last-child { border-right: 0; }
.playbook-release-strip span,
.playbook-scenario-overview span,
.playbook-best-opportunity span,
.playbook-best-opportunity dt,
.playbook-confirmation-grid span,
.playbook-decision-steps span { color: var(--muted-2); font-size: 0.61rem; letter-spacing: 0.05em; text-transform: uppercase; }
.playbook-release-strip strong { font-size: 0.82rem; }

.playbook-scenario-overview { display: grid; grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1fr); gap: 22px; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--border); }
.playbook-scenario-overview > div { display: grid; gap: 5px; }
.playbook-scenario-overview > div strong { font-size: 1rem; }
.playbook-scenario-overview p { margin: 0; color: var(--muted); font-size: 0.75rem; line-height: 1.6; }

.playbook-best-opportunity { display: grid; grid-template-columns: minmax(200px, 0.8fr) minmax(0, 2fr); gap: 24px; align-items: center; padding: 20px 24px; border-bottom: 1px solid rgba(216, 189, 121, 0.28); background: rgba(216, 189, 121, 0.045); }
.playbook-best-opportunity > div:first-child { display: grid; gap: 5px; }
.playbook-best-opportunity > div:first-child > strong { color: var(--accent); font-size: 1.5rem; }
.playbook-best-opportunity > div:first-child > small { color: var(--text); }
.playbook-best-opportunity dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--border); }
.playbook-best-opportunity dl > div { padding: 11px 13px; background: var(--card-bg); }
.playbook-best-opportunity dt { margin-bottom: 5px; }
.playbook-best-opportunity dd { margin: 0; font-size: 0.83rem; font-weight: 700; }
.playbook-best-opportunity.unavailable { display: grid; gap: 5px; background: transparent; }

.playbook-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 18px 24px; border-bottom: 1px solid var(--border); }
.playbook-why-asset,
.playbook-workflow-panel { padding: 17px 18px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.018); }
.playbook-why-asset h4 { margin: 5px 0 12px; font-size: 1rem; }
.playbook-why-asset ul { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: var(--muted); font-size: 0.72rem; }
.playbook-why-asset li strong { color: var(--text); }
.playbook-why-asset.unavailable p,
.playbook-workflow-panel.waiting p,
.playbook-decision-flow.waiting p { color: var(--muted); font-size: 0.72rem; }

.playbook-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 13px; }
.playbook-section-heading > span { color: var(--muted-2); font-size: 0.64rem; letter-spacing: 0.07em; text-transform: uppercase; }
.playbook-section-heading > strong { font-size: 0.83rem; }
.playbook-confirmation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--border); }
.playbook-confirmation-grid > div { display: grid; gap: 4px; padding: 10px 11px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.playbook-confirmation-grid > div:nth-child(2n) { border-right: 0; }
.playbook-confirmation-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.playbook-workflow-panel > small { display: block; margin-top: 10px; color: var(--muted-2); }

details.playbook-ranking-block > summary { cursor: pointer; list-style: none; }
details.playbook-ranking-block > summary::-webkit-details-marker { display: none; }
.playbook-ranking-heading > em { margin-left: auto; color: var(--muted-2); font-size: 0.61rem; font-style: normal; font-weight: 500; text-transform: uppercase; }
.playbook-ranking-heading::after { content: '+'; color: var(--accent); }
details.playbook-ranking-block[open] .playbook-ranking-heading::after { content: '−'; }
.playbook-ranking-table { min-width: 1500px; }
.playbook-rank-reason { max-width: 250px; white-space: normal !important; color: var(--muted); font-size: 0.68rem; }

.playbook-decision-flow { padding: 20px 24px; border-top: 1px solid var(--border); background: rgba(0, 0, 0, 0.08); }
.playbook-decision-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--border); }
.playbook-decision-steps > div { display: grid; grid-template-columns: auto 1fr; gap: 4px 9px; align-items: center; padding: 13px; background: var(--card-bg); }
.playbook-decision-steps i { grid-row: 1 / 3; display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: 0.62rem; font-style: normal; }
.playbook-decision-steps strong { font-size: 0.7rem; line-height: 1.45; }
.playbook-conflict-list { margin: 13px 0 0; padding-left: 18px; color: var(--muted); font-size: 0.7rem; }

details.playbook-limitations { padding: 0; }
details.playbook-limitations > summary { padding: 13px 24px; cursor: pointer; color: var(--muted); font-size: 0.7rem; font-weight: 700; }
details.playbook-limitations > ul { margin: 0; padding: 0 42px 15px; }
.playbook-empty-state { justify-items: start; min-height: 190px; align-content: center; padding: 28px 30px; background: rgba(216, 189, 121, 0.025); }
.playbook-empty-state > strong { font-size: 1.1rem; }
.playbook-empty-state > p { margin: 0; color: var(--muted); }
.playbook-empty-state > small { color: var(--muted-2); }
.playbook-empty-icon { color: var(--accent); font-size: 1.5rem; }

@media (max-width: 980px) {
  .playbook-lifecycle { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 0; }
  .playbook-lifecycle-step::after { display: none; }
  .playbook-release-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .playbook-release-strip > div:nth-child(3) { border-right: 0; }
  .playbook-release-strip > div:nth-child(-n+3) { border-bottom: 1px solid var(--border); }
  .playbook-best-opportunity { grid-template-columns: minmax(0, 1fr); }
  .playbook-decision-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .playbook-terminal-header { grid-template-columns: minmax(0, 1fr); }
  .playbook-header-status { justify-items: start; }
  .playbook-lifecycle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .playbook-scenario-comparison,
  .playbook-release-strip,
  .playbook-scenario-overview,
  .playbook-evidence-grid,
  .playbook-best-opportunity dl,
  .playbook-decision-steps { grid-template-columns: minmax(0, 1fr); }
  .playbook-scenario-comparison .playbook-scenario-tab,
  .playbook-release-strip > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .playbook-confirmation-grid { grid-template-columns: minmax(0, 1fr); }
  .playbook-confirmation-grid > div { border-right: 0; }
  .playbook-confirmation-grid > div:not(:last-child) { border-bottom: 1px solid var(--border); }
  .playbook-terminal-header,
  .playbook-scenario-overview,
  .playbook-best-opportunity,
  .playbook-evidence-grid,
  .playbook-decision-flow { padding-left: 16px; padding-right: 16px; }
}

html, body {
  overflow-x: hidden;
}

/* ── Dashboard briefing hierarchy V2 ─────────────────────────────── */
/* Multi-event Playbook orchestration; existing card vocabulary is reused. */
.upcoming-events-header { display:flex; justify-content:space-between; gap:18px; align-items:end; padding:18px 22px; border-bottom:1px solid var(--border); background:rgba(216,189,121,.035); }
.upcoming-events-header>div { display:grid; gap:4px; }
.upcoming-events-header span,.upcoming-event-timing span,.upcoming-consensus-strip span,.upcoming-research-overview span,.upcoming-context-grid span,.upcoming-decision>span { color:var(--muted-2); font-size:.61rem; letter-spacing:.07em; text-transform:uppercase; }
.upcoming-events-header strong { font-size:1rem; }
.upcoming-events-header small { color:var(--muted); font-size:.68rem; }
.institutional-event-navigator {
  position: sticky;
  top: 8px;
  z-index: 8;
  border-bottom: 1px solid var(--border);
  background: rgba(18, 20, 24, .97);
  box-shadow: 0 8px 18px rgba(0, 0, 0, .16);
  backdrop-filter: blur(9px);
}
.institutional-event-nav-heading {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) minmax(126px, .46fr) 92px 96px;
  gap: 12px;
  padding: 7px 14px 6px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .045);
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.institutional-event-nav-list {
  max-height: min(32vh, 238px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(216, 189, 121, .28) transparent;
}
.institutional-event-nav-row {
  appearance: none;
  width: 100%;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) minmax(126px, .46fr) 92px 96px;
  gap: 12px;
  align-items: center;
  min-height: 36px;
  padding: 7px 14px 7px 14px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .04);
  border-left: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.institutional-event-nav-row:last-child { border-bottom-color: transparent; }
.institutional-event-nav-row:hover { background: rgba(255, 255, 255, .025); color: var(--text); }
.institutional-event-nav-row.is-active {
  border-left-color: var(--accent);
  background: rgba(216, 189, 121, .07);
  color: var(--text);
}
.institutional-event-nav-row:focus-visible {
  outline: 1px solid rgba(216, 189, 121, .72);
  outline-offset: -2px;
}
.institutional-event-nav-row time,
.institutional-event-nav-countdown { font-variant-numeric: tabular-nums; white-space: nowrap; }
.institutional-event-nav-row time { color: var(--muted-2); font-size: .68rem; }
.institutional-event-nav-name {
  overflow: hidden;
  font-size: .72rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.institutional-event-nav-status {
  overflow: hidden;
  color: var(--muted-2);
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.institutional-event-nav-research {
  overflow: hidden;
  color: var(--muted-2);
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.institutional-event-nav-countdown { color: var(--muted); font-size: .65rem; text-align: right; }
.institutional-event-nav-row.is-active .institutional-event-nav-name { color: #ead9a7; }
.upcoming-event-card { border-bottom:1px solid var(--border); scroll-margin-top: 286px; }

.institutional-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--border);
  background: var(--panel);
}
.institutional-opportunity-card {
  appearance: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 7px 12px;
  align-content: start;
  min-width: 0;
  padding: 17px 18px 15px;
  border: 0;
  border-right: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color .16s ease, box-shadow .16s ease;
}
.institutional-opportunity-card:last-child { border-right: 0; }
.institutional-opportunity-card:hover { background: rgba(216, 189, 121, .045); }
.institutional-opportunity-card:focus-visible {
  outline: 1px solid rgba(216, 189, 121, .75);
  outline-offset: -2px;
}
.institutional-opportunity-rank {
  grid-row: 1 / span 2;
  color: var(--accent);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
}
.institutional-opportunity-asset {
  overflow: hidden;
  font-size: .98rem;
  font-weight: 800;
  letter-spacing: .035em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.institutional-opportunity-direction {
  color: #ead9a7;
  font-size: .72rem;
  letter-spacing: .08em;
}
.institutional-opportunity-scenario {
  grid-column: 2 / -1;
  display: grid;
  gap: 1px;
  min-height: 39px;
}
.institutional-opportunity-scenario strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.institutional-opportunity-scenario small { color: var(--muted); font-size: .67rem; }
.institutional-opportunity-card dl {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  margin: 9px 0 5px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, .055);
}
.institutional-opportunity-card dl div { display: grid; gap: 2px; }
.institutional-opportunity-card dt {
  color: var(--muted-2);
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.institutional-opportunity-card dd { margin: 0; font-size: .7rem; font-weight: 750; }
.institutional-opportunity-release {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, .04);
  color: var(--muted);
  font-size: .64rem;
  font-variant-numeric: tabular-nums;
}
.institutional-opportunity-release small { color: var(--muted-2); }
.institutional-opportunity-empty {
  display: grid;
  gap: 6px;
  padding: 22px;
  border: 1px solid var(--border);
  background: rgba(216, 189, 121, .025);
}
.institutional-opportunity-empty strong { font-size: .9rem; }
.institutional-opportunity-empty p { color: var(--muted); font-size: .72rem; }
.dashboard-highest-opportunities-section > .section-subtitle { margin: -5px 0 13px; }
.dashboard-highest-opportunities-section .research-method-note { margin: 8px 0 0; }
.dashboard-gameplan-period-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}
.dashboard-gameplan-period-grid > .section { min-width: 0; margin: 0; }
.dashboard-period-accordion { min-width: 0; }
.dashboard-period-accordion > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.dashboard-period-accordion > summary::-webkit-details-marker { display: none; }
.dashboard-period-accordion > summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.dashboard-period-accordion > summary .section-title {
  margin: 0;
  font-size: 1rem;
}
.dashboard-period-arrow {
  flex: 0 0 auto;
  width: 12px;
  color: var(--muted-2);
  font-size: .67rem;
}
.dashboard-period-arrow::before { content: '▶'; }
.dashboard-period-accordion[open] .dashboard-period-arrow::before { content: '▼'; }
.dashboard-period-count {
  color: var(--muted);
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.dashboard-period-content { border-top: 1px solid var(--border); }
.gameplan-today-list,
.gameplan-period-list {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(11, 13, 16, .72);
}
.gameplan-event-container {
  display: grid;
  min-width: 0;
}
.gameplan-event-container:not(:last-child) {
  border-bottom: 1px solid var(--border);
}
.gameplan-scenario-expansion {
  display: grid;
  min-width: 0;
  grid-template-rows: minmax(0, 1fr);
  animation: gameplan-scenario-expand .28s ease-out both;
}
.gameplan-scenario-expansion-inner {
  min-width: 0;
  overflow: hidden;
  border-top: 1px solid var(--border-strong);
  background: var(--card-bg);
}
@keyframes gameplan-scenario-expand {
  from { grid-template-rows: minmax(0, 0fr); opacity: 0; }
  to { grid-template-rows: minmax(0, 1fr); opacity: 1; }
}
.gameplan-scenario-expansion .playbook-macro-regime { gap: 12px; padding: 16px 18px 14px; }
.gameplan-scenario-expansion .decision-narrative { gap: 12px; }
.gameplan-scenario-expansion .decision-narrative-final { gap: 12px; padding: 10px 13px; }
.gameplan-scenario-expansion .decision-narrative-final strong { font-size: 1.08rem; }
.gameplan-scenario-expansion .decision-narrative-why { gap: 10px; }
.gameplan-scenario-expansion .decision-story {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 18px;
}
.gameplan-scenario-expansion .upcoming-ranking-wrap,
.gameplan-scenario-expansion .playbook-research-unavailable,
.gameplan-scenario-expansion .playbook-directional-case { padding: 14px 18px; }
.gameplan-event-card {
  width: 100%;
  min-width: 0;
  background: rgba(255, 255, 255, .008);
  color: var(--text);
}
.gameplan-event-card { display: grid; padding: 0; }
.gameplan-event-header {
  display: grid;
  grid-template-columns: 72px minmax(190px, 1fr) auto auto;
  gap: 10px 16px;
  align-items: center;
  min-width: 0;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .045);
  background: rgba(216, 189, 121, .018);
}
.gameplan-event-header > time {
  color: var(--accent);
  font-size: .78rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.gameplan-event-header > strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.gameplan-event-badges { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gameplan-field { display: grid; gap: 3px; align-content: center; }
.gameplan-field > small,
.gameplan-countdown > small {
  color: var(--muted-2);
  font-size: .52rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.gameplan-field > .badge { justify-self: start; white-space: nowrap; }
.gameplan-countdown { display: grid; justify-items: end; gap: 3px; min-width: 104px; }
.gameplan-countdown > strong { color: var(--muted); font-size: .7rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gameplan-scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  min-width: 0;
  background: var(--border);
}
.gameplan-realized-result {
  display: grid;
  min-width: 0;
  border-top: 1px solid var(--border-strong);
  background: rgba(63, 185, 80, .025);
}
.gameplan-realized-result > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
}
.gameplan-realized-result > header > div { display: grid; gap: 3px; }
.gameplan-realized-result > header span,
.gameplan-realized-metrics span {
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.gameplan-realized-result > header strong { font-size: .82rem; }
.gameplan-realized-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  min-width: 0;
  border-bottom: 1px solid var(--border);
}
.gameplan-realized-metrics > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px 16px;
  border-right: 1px solid var(--border);
}
.gameplan-realized-metrics > div:last-child { border-right: 0; }
.gameplan-realized-metrics strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
}
.gameplan-realized-scenario-control .gameplan-scenario-control {
  width: 100%;
  border-top-color: var(--positive);
}
.gameplan-other-scenarios { border-top: 1px solid var(--border); }
.gameplan-other-scenarios > summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 16px;
  color: var(--muted);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}
.gameplan-other-scenarios > summary:focus-visible {
  outline: 2px solid rgba(216, 189, 121, .78);
  outline-offset: -3px;
}
.gameplan-alternative-scenario-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.gameplan-alternative-scenario-list > div {
  display: grid;
  gap: 4px;
  padding: 11px 14px;
  background: var(--card-bg);
}
.gameplan-alternative-scenario-list strong {
  font-size: .66rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.gameplan-alternative-scenario-list small {
  color: var(--muted-2);
  font-size: .6rem;
}
.gameplan-realized-unavailable {
  margin: 0;
  padding: 11px 16px;
  color: var(--muted);
  font-size: .7rem;
}
.gameplan-decision-chain-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 18px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(216, 189, 121, .025);
}
.gameplan-decision-chain-label span {
  color: var(--accent);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gameplan-decision-chain-label small { color: var(--muted); font-size: .64rem; }
.gameplan-scenario-control {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  min-height: 46px;
  padding: 11px 14px;
  border: 0;
  border-top: 2px solid var(--muted-2);
  border-radius: 0;
  background: var(--card-bg);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.gameplan-scenario-control:hover { background: rgba(216, 189, 121, .055); }
.gameplan-scenario-control:focus-visible {
  position: relative;
  z-index: 1;
  outline: 2px solid rgba(216, 189, 121, .78);
  outline-offset: -3px;
}
.gameplan-scenario-control.is-expanded {
  border-top-color: var(--accent);
  background: rgba(216, 189, 121, .08);
}
.gameplan-scenario-control.is-buy { border-top-color: var(--positive); }
.gameplan-scenario-control.is-sell { border-top-color: var(--negative); }
.gameplan-scenario-control.is-descriptive { border-top-color: var(--context); }
.gameplan-scenario-control > strong {
  overflow: hidden;
  font-size: .66rem;
  letter-spacing: .07em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gameplan-scenario-control > span {
  color: var(--muted);
  font-size: .84rem;
  line-height: 1;
}
.gameplan-period-time { display: grid; gap: 3px; min-width: 0; }
.gameplan-period-time > strong { color: var(--muted); font-size: .66rem; }
.gameplan-period-time > time { color: var(--accent); font-size: .7rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.gameplan-release-strip { grid-template-columns: minmax(190px, 1.5fr) repeat(3, minmax(0, 1fr)); }
.gameplan-empty-state {
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, .012);
  color: var(--muted);
  font-size: .73rem;
}
.playbook-best-opportunity.is-opportunity-target {
  background: rgba(216, 189, 121, .065);
  box-shadow: inset 3px 0 0 rgba(216, 189, 121, .78);
}
.playbook-directional-cases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--border);
}
.playbook-directional-case {
  display: grid;
  gap: 12px;
  padding: 18px 22px;
  background: var(--card-bg);
}
.playbook-directional-case > span,
.playbook-macro-drivers > span {
  color: var(--muted-2);
  font-size: .61rem;
  font-weight: 750;
  letter-spacing: .08em;
}
.playbook-directional-case dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
  margin: 0;
}
.playbook-directional-case dl > div { display: grid; gap: 3px; }
.playbook-directional-case dt {
  color: var(--muted-2);
  font-size: .57rem;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.playbook-directional-case dd { margin: 0; font-size: .72rem; font-weight: 700; }
.playbook-directional-case.unavailable { align-content: start; }
.playbook-directional-case.unavailable strong { font-size: .82rem; }
.playbook-directional-case.unavailable small { color: var(--muted); font-size: .68rem; }
.playbook-macro-regime {
  display: grid;
  gap: 18px;
  padding: 22px 22px 18px;
  border-bottom: 1px solid var(--border);
}
.playbook-alignment-heading {
  grid-template-columns: repeat(5, minmax(110px, 1fr));
}
.decision-narrative { display: grid; gap: 18px; }
.decision-narrative-final {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 14px 17px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: rgba(0, 0, 0, .14);
}
.decision-narrative-final span {
  color: var(--muted-2);
  font-size: .61rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.decision-narrative-final strong { font-size: 1.5rem; letter-spacing: .06em; line-height: 1; }
.decision-narrative-summary {
  flex: 1 1 300px;
  margin-left: auto;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}
.decision-narrative[data-decision-narrative="BUY"] .decision-narrative-final strong { color: var(--positive); }
.decision-narrative[data-decision-narrative="SELL"] .decision-narrative-final strong { color: var(--negative); }
.decision-narrative.is-blocked .decision-narrative-final { border-color: var(--negative); }
.decision-narrative.is-blocked .decision-narrative-final strong { color: var(--negative); }
.decision-narrative-why { display: grid; gap: 14px; }
.decision-narrative-why-label {
  color: var(--muted-2);
  font-size: .61rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.decision-story {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0 0 0 4px;
  list-style: none;
  counter-reset: decision-story;
}
.decision-story > li {
  display: grid;
  gap: 5px;
  counter-increment: decision-story;
}
.decision-story-label {
  color: var(--muted-2);
  font-size: .6rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.decision-story-label::before {
  content: counter(decision-story) '  ·  ';
  color: var(--muted-2);
  font-variant-numeric: tabular-nums;
}
.decision-story > li > p {
  margin: 0;
  color: var(--text);
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.55;
}
.decision-story-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: .62rem;
}
.decision-story-meta > span {
  color: var(--muted-2);
  font-size: .57rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.decision-narrative-reason {
  display: block;
  margin: 0;
  padding: 11px 14px;
  border-left: 2px solid var(--accent);
  background: rgba(0, 0, 0, .1);
  color: var(--text);
  font-size: .76rem;
  line-height: 1.55;
}
.decision-narrative-reason strong { letter-spacing: .05em; }
.decision-narrative.is-blocked .decision-narrative-reason { border-left-color: var(--negative); }
.decision-narrative.is-blocked .decision-narrative-reason strong { color: var(--negative); }
.decision-narrative[data-decision-narrative="BUY"] .decision-narrative-reason strong { color: var(--positive); }
.decision-narrative[data-decision-narrative="SELL"] .decision-narrative-reason strong { color: var(--negative); }
.decision-supporting > summary {
  display: flex;
  align-items: baseline;
  gap: 10px;
  cursor: pointer;
  list-style: none;
  color: var(--muted-2);
  font-size: .61rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.decision-supporting > summary::-webkit-details-marker { display: none; }
.decision-supporting > summary::before { content: '▸'; font-size: .55rem; }
.decision-supporting[open] > summary::before { content: '▾'; }
.decision-supporting > summary em {
  color: var(--muted);
  font-size: .6rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: .03em;
  text-transform: none;
}
.decision-supporting[open] > summary { margin-bottom: 14px; }
.decision-supporting-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px 18px;
  margin-bottom: 14px;
}
.decision-supporting-grid > div { display: grid; gap: 4px; }
.decision-supporting-grid span {
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.decision-supporting-grid strong { font-size: .76rem; }
.decision-drivers-summary {
  grid-column: 1 / -1;
  margin: 0;
  padding: 8px 0 2px;
  background: var(--card-bg);
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.5;
}
.playbook-alignment-explanation {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding-top: 14px;
}
.playbook-alignment-explanation > div { display: grid; gap: 6px; }
.playbook-alignment-explanation span { color: var(--muted-2); font-size: .61rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.playbook-alignment-explanation ul { display: grid; gap: 4px; margin: 0; padding-left: 17px; color: var(--muted); font-size: .68rem; }
.playbook-macro-drivers { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--border); }
.playbook-macro-drivers > span { grid-column: 1 / -1; padding-bottom: 4px; background: var(--card-bg); }
.playbook-macro-drivers > div { display: grid; gap: 4px; padding: 9px 10px; background: var(--card-bg); }
.playbook-macro-drivers > div span { color: var(--muted-2); font-size: .58rem; }
.playbook-macro-drivers > div strong { font-size: .78rem; }
.playbook-macro-drivers > div small,
.playbook-macro-drivers > small { color: var(--muted); font-size: .6rem; }
.upcoming-event-card>summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:19px 22px; cursor:pointer; list-style:none; }
.upcoming-event-card>summary::-webkit-details-marker { display:none; }
.upcoming-event-card>.upcoming-event-card-content {
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:grid-template-rows .26s ease,opacity .2s ease,visibility 0s linear .26s;
}
.upcoming-event-card[open]>.upcoming-event-card-content {
  grid-template-rows:1fr;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:grid-template-rows .26s ease,opacity .2s ease;
}
.upcoming-event-card-content-inner { min-height:0; overflow:hidden; }
.upcoming-event-card>summary>div:first-child { display:grid; gap:4px; }
.upcoming-event-card>summary>div:first-child>strong { font-size:1.12rem; }
.upcoming-event-card>summary small { color:var(--muted); }
.upcoming-event-timing { display:grid; justify-items:end; gap:4px; }
.upcoming-event-timing strong { font-variant-numeric:tabular-nums; }
.upcoming-event-timing em { font-style:normal; }
@media (max-width: 680px) {
  .playbook-directional-cases,
  .playbook-directional-case dl { grid-template-columns: minmax(0, 1fr); }
  .playbook-alignment-explanation { grid-template-columns: minmax(0, 1fr); }
  .playbook-macro-drivers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.upcoming-consensus-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.upcoming-consensus-strip.gameplan-release-strip { grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(0,1fr)); }
.upcoming-consensus-strip>div { display:grid; gap:4px; padding:11px 18px; border-right:1px solid var(--border); }
.upcoming-consensus-strip>div:last-child { border-right:0; }
.upcoming-research-overview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-bottom:1px solid var(--border); background:rgba(216,189,121,.025); }
.upcoming-research-overview>div { display:grid; gap:5px; padding:12px 15px; border-right:1px solid var(--border); }
.upcoming-research-overview>div:last-child { border-right:0; }
.upcoming-research-overview strong { font-size:.76rem; }
.upcoming-research-overview em { font-style:normal; }
.playbook-research-unavailable { display:grid; gap:7px; padding:18px 22px; border-bottom:1px solid var(--border); background:rgba(255,255,255,.012); }
.playbook-research-unavailable .badge { justify-self:start; }
.playbook-research-unavailable p { max-width:760px; margin:0; color:var(--muted); font-size:.73rem; }
.playbook-research-unavailable small { color:var(--muted-2); font-size:.66rem; }
.historical-research-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-width: 0;
  min-height: 270px;
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, .012);
}
.historical-research-card.is-opportunity-target {
  background: rgba(216, 189, 121, .04);
  box-shadow: inset 3px 0 0 rgba(216, 189, 121, .78);
}
.historical-research-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
  background: rgba(216, 189, 121, .025);
}
.historical-research-card-header > div { display: grid; gap: 4px; min-width: 0; }
.historical-research-card-header span,
.historical-research-card-footer span,
.historical-research-metric-grid dt {
  color: var(--muted-2);
  font-size: .57rem;
  font-weight: 750;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.historical-research-card-header strong { font-size: .82rem; }
.historical-research-card-header .badge { flex: 0 0 auto; }
.historical-research-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  background: var(--border);
  gap: 1px;
}
.historical-research-metric-grid > div {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 68px;
  padding: 11px 14px;
  background: var(--card-bg);
}
.historical-research-metric-grid dd {
  overflow-wrap: anywhere;
  margin: 0;
  font-size: .76rem;
  font-weight: 700;
}
.historical-research-card-footer {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr);
  gap: 1px;
  border-top: 1px solid var(--border);
  background: var(--border);
}
.historical-research-card-footer > div {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  min-height: 62px;
  padding: 11px 14px;
  background: rgba(0, 0, 0, .1);
}
.historical-research-card-footer strong {
  overflow-wrap: anywhere;
  font-size: .68rem;
  font-weight: 600;
  line-height: 1.45;
}
.executive-historical-evidence { min-height: 0; }
.executive-historical-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.gameplan-ranked-opportunities {
  display: grid;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(0, 0, 0, .1);
}
.gameplan-ranked-opportunities > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
}
.gameplan-ranked-opportunities > header span {
  color: var(--accent);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.gameplan-ranked-opportunities > header strong {
  color: var(--muted-2);
  font-size: .62rem;
  font-weight: 600;
}
.gameplan-ranked-opportunities > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.gameplan-ranked-opportunity {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
  padding: 14px 16px;
  background: var(--card-bg);
  box-shadow: inset 0 2px 0 var(--muted-2);
}
.gameplan-ranked-opportunity.is-confirmed { box-shadow: inset 0 2px 0 var(--positive); }
.gameplan-ranked-opportunity.is-conditional { box-shadow: inset 0 2px 0 var(--context); }
.gameplan-ranked-opportunity.is-blocked { box-shadow: inset 0 2px 0 var(--negative); }
.gameplan-ranked-opportunity.is-descriptive { box-shadow: inset 0 2px 0 var(--muted-2); }
.gameplan-ranked-opportunity > header,
.gameplan-ranked-identity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.gameplan-ranked-opportunity > header span {
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.gameplan-ranked-opportunity > header em {
  color: var(--muted);
  font-size: .56rem;
  font-style: normal;
  font-weight: 750;
  text-transform: uppercase;
}
.gameplan-ranked-identity > strong { font-size: .94rem; }
.gameplan-ranked-identity > b { color: var(--accent); font-size: .76rem; }
.gameplan-qualification-notice {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border: 1px solid var(--border);
  background: #101113;
}
.gameplan-qualification-notice strong {
  color: var(--muted);
  font-size: .65rem;
}
.gameplan-qualification-notice span {
  color: var(--muted-2);
  font-size: .55rem;
  text-transform: uppercase;
}
.gameplan-ranked-opportunity > dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--border);
}
.gameplan-ranked-opportunity > dl > div {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px 9px;
  background: #101113;
}
.gameplan-ranked-opportunity dt {
  color: var(--muted-2);
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.gameplan-ranked-opportunity dd { margin: 0; overflow-wrap: anywhere; font-size: .67rem; font-weight: 650; }
.gameplan-ranked-opportunity > p,
.gameplan-ranked-opportunity > small {
  margin: 0;
  color: var(--muted);
  font-size: .63rem;
  line-height: 1.45;
}
.gameplan-ranked-opportunity .gameplan-overlap-warning { color: var(--context); }
.gameplan-horizon-section {
  display: grid;
  gap: 6px;
}
.gameplan-horizon-heading {
  color: var(--muted-2);
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.gameplan-horizon-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.gameplan-horizon-cell {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px 9px;
  background: #101113;
}
.gameplan-horizon-label {
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: var(--muted-2);
  font-size: .52rem;
  font-weight: 750;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.gameplan-horizon-label small {
  color: var(--accent);
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.gameplan-horizon-value { overflow-wrap: anywhere; font-size: .78rem; font-weight: 700; }
.gameplan-horizon-direction {
  color: var(--muted);
  font-size: .58rem;
  font-style: normal;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.gameplan-horizon-comparison-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.gameplan-horizon-comparison-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: 10px 12px;
  background: #101113;
  box-shadow: inset 0 2px 0 var(--muted-2);
}
.gameplan-horizon-comparison-card.is-ranking-basis { box-shadow: inset 0 2px 0 var(--accent); }
.gameplan-horizon-comparison-card > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.gameplan-horizon-comparison-card > header span {
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.gameplan-horizon-comparison-card > header em {
  color: var(--accent);
  font-size: .52rem;
  font-style: normal;
  font-weight: 700;
  text-transform: uppercase;
}
.gameplan-horizon-comparison-card dl {
  display: grid;
  gap: 4px;
  margin: 0;
}
.gameplan-horizon-comparison-card dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.gameplan-horizon-comparison-card dt {
  color: var(--muted-2);
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.gameplan-horizon-comparison-card dd { margin: 0; overflow-wrap: anywhere; font-size: .65rem; font-weight: 650; }
.executive-brief-section {
  display: grid;
  min-width: 0;
  border-bottom: 1px solid var(--border);
  background: var(--card-bg);
}
.executive-brief-section > header {
  padding: 11px 18px 8px;
  color: var(--muted-2);
  font-size: .6rem;
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.executive-macro-alignment > dl,
.executive-supporting-statistics > dl {
  display: grid;
  margin: 0;
  background: var(--border);
  gap: 1px;
}
.executive-macro-alignment > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.executive-supporting-statistics > dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.executive-macro-alignment > dl > div,
.executive-supporting-statistics > dl > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px 14px;
  background: var(--card-bg);
}
.executive-macro-alignment dt,
.executive-supporting-statistics dt,
.executive-technical-identifiers dt {
  color: var(--muted-2);
  font-size: .56rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.executive-macro-alignment dd,
.executive-supporting-statistics dd,
.executive-technical-identifiers dd { margin: 0; font-size: .75rem; font-weight: 700; }
.executive-macro-alignment > p {
  margin: 0;
  padding: 11px 18px;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.5;
}
.executive-trading-decision {
  display: grid;
  grid-template-columns: auto auto minmax(220px, 1fr);
  align-items: center;
  gap: 10px 16px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--border);
  background: rgba(0, 0, 0, .12);
}
.executive-trading-decision > span {
  color: var(--muted-2);
  font-size: .6rem;
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.executive-trading-decision > strong { font-size: 1.08rem; letter-spacing: .055em; }
.executive-trading-decision[data-decision-narrative="BUY"] > strong { color: var(--positive); }
.executive-trading-decision[data-decision-narrative="SELL"] > strong,
.executive-trading-decision.is-blocked > strong { color: var(--negative); }
.executive-trading-decision .decision-narrative-summary {
  margin: 0;
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.45;
}
.executive-technical-details { border-bottom: 1px solid var(--border); background: rgba(0, 0, 0, .08); }
.executive-technical-details > summary {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 13px 18px;
  cursor: pointer;
  list-style: none;
  color: var(--text);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.executive-technical-details > summary::-webkit-details-marker { display: none; }
.executive-technical-details > summary::before { content: '▸'; color: var(--muted-2); font-size: .58rem; }
.executive-technical-details[open] > summary::before { content: '▾'; }
.executive-technical-details > summary span {
  color: var(--muted-2);
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .035em;
  text-transform: none;
}
.executive-technical-details-body { display: grid; border-top: 1px solid var(--border); }
.executive-technical-identifiers,
.executive-technical-narrative {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  border-bottom: 1px solid var(--border);
  background: var(--border);
}
.executive-technical-identifiers > div,
.executive-technical-narrative > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px 14px;
  background: var(--card-bg);
}
.executive-technical-identifiers dd { overflow-wrap: anywhere; }
.executive-technical-narrative span {
  color: var(--muted-2);
  font-size: .56rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.executive-technical-narrative p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.upcoming-ranking-wrap { padding:18px 22px; border-bottom:1px solid var(--border); }
.upcoming-ranking-wrap td small { display:block; margin-top:3px; color:var(--muted); }
.upcoming-context-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-bottom:1px solid var(--border); }
.upcoming-context-grid>div { display:grid; gap:4px; padding:12px 15px; border-right:1px solid var(--border); }
.upcoming-context-grid>div:last-child { border-right:0; }
.upcoming-decision { display:grid; gap:5px; padding:17px 22px; background:rgba(0,0,0,.08); }
.upcoming-decision p { margin:0; color:var(--muted); font-size:.72rem; }
.upcoming-unsupported { padding:13px 22px; color:var(--muted); font-size:.7rem; }
.upcoming-unsupported summary { cursor:pointer; }
.upcoming-unsupported ul { margin-bottom:0; }
@media (max-width:760px) {
  .upcoming-events-header,.upcoming-event-card>summary { grid-template-columns:minmax(0,1fr); align-items:start; }
  .upcoming-events-header { align-items:start; }
  .dashboard-gameplan-period-grid { grid-template-columns: minmax(0, 1fr); }
  .gameplan-event-header { grid-template-columns: 64px minmax(0, 1fr); }
  .gameplan-event-badges,
  .gameplan-countdown { justify-self: start; }
  .gameplan-event-badges { grid-column: 1 / -1; }
  .gameplan-countdown { grid-column: 1 / -1; justify-items: start; }
  .gameplan-scenario-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gameplan-realized-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gameplan-realized-metrics > div { border-bottom: 1px solid var(--border); }
  .gameplan-decision-chain-label { align-items: flex-start; flex-direction: column; }
  .gameplan-scenario-control { padding-inline: 10px; }
  .gameplan-scenario-expansion .decision-story { grid-template-columns: minmax(0, 1fr); }
  .institutional-event-navigator { top: 0; }
  .institutional-event-nav-heading { display: none; }
  .institutional-event-nav-list {
    display: flex;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
  }
  .institutional-event-nav-row {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    grid-template-columns: auto auto;
    gap: 8px;
    padding: 8px 12px;
    border-right: 1px solid rgba(255, 255, 255, .055);
    border-bottom: 2px solid transparent;
    border-left: 0;
  }
  .institutional-event-nav-row.is-active { border-bottom-color: var(--accent); border-left-color: transparent; }
  .institutional-event-nav-status,.institutional-event-nav-research,.institutional-event-nav-countdown { display: none; }
  .institutional-event-nav-name { max-width: 210px; }
  .upcoming-event-card { scroll-margin-top: 84px; }
  .institutional-opportunity-grid { grid-template-columns: minmax(0, 1fr); }
  .institutional-opportunity-card { border-right: 0; border-bottom: 1px solid var(--border); }
  .institutional-opportunity-card:last-child { border-bottom: 0; }
  .upcoming-event-timing { justify-items:start; }
  .upcoming-research-overview,.upcoming-context-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .upcoming-research-overview>div,.upcoming-context-grid>div { border-bottom:1px solid var(--border); }
  .historical-research-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-research-card-footer { grid-template-columns: minmax(0, 1fr); }
  .executive-historical-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gameplan-ranked-opportunities > div { grid-template-columns: minmax(0, 1fr); }
  .gameplan-ranked-opportunities > header { align-items: flex-start; flex-direction: column; }
  .gameplan-horizon-strip { grid-template-columns: minmax(0, 1fr); }
  .gameplan-horizon-comparison-grid { grid-template-columns: minmax(0, 1fr); }
  .executive-macro-alignment > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .executive-supporting-statistics > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .executive-trading-decision { grid-template-columns: auto minmax(0, 1fr); }
  .executive-trading-decision .decision-narrative-summary { grid-column: 1 / -1; }
  .executive-technical-identifiers,
  .executive-technical-narrative { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width:520px) {
  .gameplan-event-header > strong { white-space: normal; }
  .gameplan-realized-metrics,
  .gameplan-alternative-scenario-list { grid-template-columns: minmax(0, 1fr); }
  .gameplan-realized-metrics > div { border-right: 0; }
  .gameplan-scenario-control { justify-content: center; gap: 6px; padding-inline: 7px; }
  .upcoming-consensus-strip,.upcoming-research-overview,.upcoming-context-grid { grid-template-columns:minmax(0,1fr); }
  .upcoming-consensus-strip>div,.upcoming-research-overview>div,.upcoming-context-grid>div { border-right:0; border-bottom:1px solid var(--border); }
  .historical-research-card-header { align-items: flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .upcoming-event-card>.upcoming-event-card-content,
  .institutional-event-nav-row,
  .gameplan-scenario-control { transition:none; }
  .gameplan-scenario-expansion { animation:none; }
}

body:has(#page-dashboard.active) .topbar {
  display: none;
}

.dashboard-page-header {
  margin-bottom: 24px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}

.dashboard-trading-session {
  display: flex;
  gap: 22px;
  margin-top: 12px;
  color: var(--muted);
}

.dashboard-trading-session > span { display: grid; gap: 2px; }
.dashboard-trading-session small {
  color: var(--muted-2);
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.dashboard-trading-session strong { color: var(--text); font-size: .68rem; font-weight: 700; }

.trading-session-notification {
  position: fixed;
  top: 16px;
  right: 18px;
  z-index: 30;
  display: grid;
  gap: 2px;
  min-width: 250px;
  padding: 10px 13px;
  border: 1px solid rgba(216, 189, 121, .32);
  border-left: 2px solid var(--accent);
  background: rgba(18, 20, 24, .97);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
  pointer-events: none;
}
.trading-session-notification[hidden] { display: none; }
.trading-session-notification strong { font-size: .7rem; }
.trading-session-notification span { color: var(--muted); font-size: .64rem; }

.dashboard-page-header h1 {
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.dashboard-page-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}

.dashboard-meta-separator {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--muted-2);
}

.dashboard-refresh-link,
.dashboard-inline-link {
  padding: 0;
  color: var(--accent);
  background: transparent;
  border: 0;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}

.dashboard-refresh-link:hover,
.dashboard-inline-link:hover {
  color: var(--accent-hover);
}

.dashboard-environment-grid,
.dashboard-confirmation-grid {
  display: grid;
  gap: 18px;
  align-items: stretch;
}

.dashboard-environment-grid {
  grid-template-columns: minmax(0, 1.85fr) minmax(300px, 1fr);
}

.dashboard-confirmation-grid {
  grid-template-columns: minmax(0, 1.85fr) minmax(300px, 1fr);
}

.dashboard-confirmation-section > .section-title,
.dashboard-environment-section > .section-title {
  margin-bottom: 11px;
}

.dashboard-confirmation-section .section-subtitle {
  margin: 0 0 9px;
  color: var(--muted-2);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dashboard-completed-research {
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.012);
}

.dashboard-completed-research > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
}

.dashboard-completed-research > summary::-webkit-details-marker { display: none; }
.dashboard-completed-research > summary span { color: var(--muted); font-size: .74rem; font-weight: 700; }
.dashboard-completed-research > summary strong { color: var(--accent); font-size: .68rem; }
.dashboard-completed-research-body { padding: 0 18px 18px; border-top: 1px solid var(--border); }
.dashboard-completed-research-body > .section-subtitle { margin-top: 16px; }

.dashboard-alignment-shadow {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,255,255,.012);
}
.dashboard-alignment-shadow > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 18px;
  cursor: pointer;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.dashboard-alignment-shadow > summary::-webkit-details-marker { display: none; }
.dashboard-alignment-shadow > summary strong { color: var(--accent); font-size: .67rem; }
.dashboard-alignment-shadow-body { display: grid; gap: 10px; padding: 14px 18px 16px; border-top: 1px solid var(--border); }
.dashboard-alignment-shadow-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.dashboard-alignment-shadow-grid > div { display: grid; gap: 5px; min-width: 0; padding: 10px 11px; background: var(--surface); }
.dashboard-alignment-shadow-grid span { color: var(--muted-2); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-alignment-shadow-grid strong { color: var(--text); font-size: .72rem; overflow-wrap: anywhere; }
.dashboard-alignment-shadow-exclusion { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; align-items: center; padding: 8px 11px; border: 1px solid var(--border); background: var(--surface); }
.dashboard-alignment-shadow-exclusion span { color: var(--muted); font-size: .64rem; }
.dashboard-alignment-shadow-exclusion strong { color: var(--muted-2); font-size: .68rem; text-transform: uppercase; }
.dashboard-alignment-shadow-exclusion small { grid-column: 1 / -1; }
.dashboard-alignment-shadow-body p,.dashboard-alignment-shadow-body small { margin: 0; color: var(--muted); font-size: .67rem; }
.dashboard-alignment-shadow-body small { color: var(--muted-2); }
@media (max-width: 1000px) {
  .dashboard-alignment-shadow-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .dashboard-alignment-shadow-grid { grid-template-columns: minmax(0,1fr); }
}
.dashboard-opportunity-heading { margin-top: 18px !important; }
.dashboard-decision-heading { margin: 18px 0 9px !important; }

.dashboard-environment-grid .dashboard-market-checklist {
  height: 100%;
  padding: 0;
}

.dashboard-section-panel {
  min-width: 0;
}

.dashboard-section-panel > .section-title {
  margin-bottom: 10px;
}

.daily-section-heading .section-title {
  margin-bottom: 0;
}

.daily-briefing-hero { height: 100%; }

.dashboard-historical-expectation,
.dashboard-current-confirmation {
  height: 100%;
  min-height: 280px;
  padding: 0;
  overflow: hidden;
}

.historical-expectation-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.25fr) minmax(155px, 1fr) minmax(130px, 0.85fr);
  gap: 14px;
  align-items: center;
  min-height: 76px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
}

.historical-expectation-row.unavailable {
  grid-template-columns: minmax(150px, 1.25fr) minmax(210px, 1.85fr);
}

.historical-release-identity strong,
.historical-release-identity span,
.historical-reaction-value span,
.historical-reaction-value strong,
.historical-reaction-value small {
  display: block;
}

.historical-release-identity strong,
.historical-reaction-value strong {
  font-size: 0.77rem;
}

.historical-release-identity span,
.historical-reaction-value span,
.historical-reaction-value small {
  color: var(--muted-2);
  font-size: 0.63rem;
}

.historical-release-identity span,
.historical-reaction-value strong,
.historical-reaction-value small {
  margin-top: 3px;
}

.historical-combined-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--border);
}

.historical-combined-summary > div {
  min-width: 0;
  padding: 14px 15px;
  background: var(--panel-2);
}

.historical-combined-summary span,
.historical-combined-summary strong {
  display: block;
}

.historical-combined-summary span {
  color: var(--muted-2);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.historical-combined-summary strong {
  margin-top: 5px;
  font-size: 0.82rem;
}

.historical-combined-summary .historical-combined-unavailable {
  grid-column: 1 / -1;
}

.historical-combined-unavailable p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.45;
}

.confirmation-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 45px;
  padding: 10px 15px;
  border-bottom: 1px solid var(--border);
}

.confirmation-list span {
  color: var(--muted);
  font-size: 0.7rem;
}

.confirmation-list strong {
  font-size: 0.73rem;
  text-align: right;
}

.confirmation-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 15px;
  background: var(--panel-2);
}

.confirmation-result > span:first-child {
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 700;
}

.dashboard-current-confirmation > .metric-card-note,
.research-method-note {
  margin: 0;
  padding: 10px 15px 0;
  color: var(--muted-2);
  font-size: 0.63rem;
  line-height: 1.45;
}

.research-method-note {
  padding-bottom: 12px;
}

.confirmation-quality-copy {
  margin: 0;
  padding: 13px 15px 2px;
  color: var(--text);
  font-size: 0.7rem;
  line-height: 1.55;
}

.dashboard-opportunity-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, 1fr);
  gap: 18px;
  align-items: stretch;
}

.dashboard-historical-ranking,
.dashboard-market-confidence {
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

.dashboard-ranking-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.dashboard-ranking-table {
  min-width: 720px;
}

.dashboard-ranking-table th,
.dashboard-ranking-table td {
  padding: 12px 13px;
  white-space: nowrap;
}

.dashboard-ranking-table td:nth-child(2) strong,
.dashboard-ranking-table td:nth-child(2) small {
  display: block;
}

.dashboard-ranking-table td:nth-child(2) small {
  margin-top: 3px;
  color: var(--muted-2);
  font-size: 0.61rem;
}

.ranking-unavailable {
  min-height: 190px;
  padding: 23px 24px;
}

.ranking-unavailable span,
.ranking-unavailable strong {
  display: block;
}

.ranking-unavailable span,
.market-confidence-heading span {
  color: var(--accent);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.ranking-unavailable strong {
  margin-top: 8px;
  font-size: 1rem;
}

.ranking-unavailable p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.55;
}

.market-confidence-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 19px 20px;
  background: var(--panel-2);
  border-bottom: 1px solid var(--border);
}

.market-confidence-heading .confidence-level {
  display: block;
  margin-top: 6px;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}

.confidence-explanation,
.why-market {
  padding: 15px 20px;
}

.confidence-explanation {
  border-bottom: 1px solid var(--border);
}

.confidence-explanation > strong,
.why-market > strong,
.why-market > span {
  display: block;
}

.confidence-explanation > strong,
.why-market > strong {
  font-size: 0.74rem;
}

.why-market > span {
  margin-top: 4px;
  color: var(--muted-2);
  font-size: 0.64rem;
}

.confidence-explanation ul,
.why-market ul {
  margin: 9px 0 0;
  padding: 0;
  list-style: none;
}

.confidence-explanation li,
.why-market li {
  position: relative;
  padding: 4px 0 4px 16px;
  color: var(--muted);
  font-size: 0.67rem;
  line-height: 1.4;
}

.confidence-explanation li::before,
.why-market li::before {
  position: absolute;
  left: 0;
  color: var(--positive);
  content: "✓";
}

.dashboard-decision {
  min-height: 0;
  height: auto;
  padding: 22px 24px;
}

.institutional-decision-copy > span {
  color: var(--accent);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.institutional-decision-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.institutional-decision-copy > strong {
  display: block;
  margin-top: 7px;
  color: var(--text);
  font-size: 1rem;
}

.institutional-conviction {
  flex: 0 0 auto;
  text-align: right;
}

.institutional-conviction > span:first-child {
  display: block;
  margin-bottom: 6px;
  color: var(--muted-2);
  font-size: 0.6rem;
  text-transform: uppercase;
}

.institutional-decision-copy p {
  max-width: 1020px;
  margin-top: 8px;
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.65;
}

.decision-evidence-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}

.decision-evidence-strip > div {
  padding: 10px 12px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.decision-evidence-strip span,
.decision-evidence-strip strong {
  display: block;
}

.institutional-decision-rationale {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.institutional-decision-rationale > div {
  padding: 12px 14px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.institutional-decision-rationale strong {
  color: var(--text);
  font-size: 0.72rem;
}

.institutional-decision-rationale ul {
  margin: 8px 0 0;
  padding-left: 17px;
}

.institutional-decision-rationale li,
.institutional-decision-rationale p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.45;
}

.decision-evidence-strip span {
  color: var(--muted-2);
  font-size: 0.6rem;
  text-transform: uppercase;
}

.decision-evidence-strip strong {
  margin-top: 4px;
  font-size: 0.76rem;
}

.daily-briefing-hero {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 280px;
  padding: 27px 29px;
}

.macro-view-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.macro-view-status {
  max-width: 640px;
  margin-top: 7px;
  font-size: clamp(2rem, 4.2vw, 3.45rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
}

.macro-view-bias {
  flex: 0 0 auto;
  padding: 10px 12px;
  text-align: right;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
}

.macro-view-bias span,
.macro-condition-tags span {
  display: block;
  color: var(--muted-2);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.macro-view-bias strong {
  display: block;
  margin-top: 4px;
  font-size: 0.9rem;
}

.macro-view-summary {
  max-width: 800px;
  margin: 22px 0;
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.65;
}

.macro-condition-tags {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.macro-condition-tags > div {
  min-width: 0;
  padding: 10px 11px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.macro-condition-tags strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
  font-size: 0.75rem;
}

.dashboard-gameplan {
  min-height: 280px;
  padding: 20px 21px;
}

.focus-list > div {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.focus-list > div:first-child { padding-top: 0; }
.focus-list > div:last-child { border-bottom: 0; }

.focus-list strong {
  font-size: 0.72rem;
}

.focus-list p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.42;
}

.focus-marker {
  width: 7px;
  height: 7px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--accent);
}

.focus-marker.positive { background: var(--positive); }
.focus-marker.negative { background: var(--negative); }
.focus-marker.neutral { background: var(--muted-2); }

.dashboard-today-events,
.dashboard-market-checklist,
.dashboard-scanner-snapshot {
  padding: 0;
  overflow: hidden;
}

.dashboard-release-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.dashboard-release-table {
  min-width: 620px;
}

.dashboard-release-table th,
.dashboard-release-table td {
  padding: 11px 13px;
  white-space: nowrap;
}

.dashboard-release-table th:first-child,
.dashboard-release-table td:first-child {
  width: 42%;
  white-space: normal;
}

.release-event-cell strong,
.release-event-cell span {
  display: block;
}

.release-event-cell strong {
  font-size: 0.79rem;
}

.release-event-cell span {
  margin-top: 2px;
  color: var(--muted-2);
  font-size: 0.66rem;
}

.daily-events-status,
.daily-events-complete {
  padding: 11px 13px;
}

.dashboard-market-checklist {
  display: block;
}

.market-checklist-row {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 52px;
  padding: 10px 14px;
  border-right: 0;
  border-bottom: 1px solid var(--border);
}

.market-checklist-row:last-child {
  border-bottom: 0;
}

.market-checklist-row strong {
  font-size: 0.72rem;
}

.market-checklist-row > .market-checklist-value {
  grid-column: auto;
  color: var(--text);
  font-size: 0.75rem;
  text-align: right;
}

.market-checklist-value small {
  display: block;
  margin-top: 2px;
  color: var(--muted-2);
  font-size: 0.61rem;
}

.dashboard-markets-section {
  margin-top: 4px;
}

.dashboard-compact-button {
  padding: 7px 11px;
  font-size: 0.72rem;
}

.dashboard-scanner-snapshot {
  display: block;
}

.scanner-snapshot-row {
  display: grid;
  grid-template-columns: minmax(100px, 0.65fr) minmax(260px, 2fr) auto minmax(110px, auto);
  gap: 14px;
  align-items: center;
  min-height: 54px;
  padding: 10px 15px;
  border-right: 0;
  border-bottom: 1px solid var(--border);
}

.dashboard-scanner-snapshot .scanner-snapshot-row:nth-last-child(2) {
  border-bottom: 1px solid var(--border);
}

.dashboard-scanner-snapshot .scanner-snapshot-row:last-child {
  border-bottom: 0;
}

.scanner-focus-asset {
  font-size: 0.82rem;
}

.scanner-focus-context {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.74rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scanner-focus-confidence {
  color: var(--muted-2);
  font-size: 0.68rem;
  text-align: right;
  text-transform: capitalize;
}

@media (max-width: 900px) {
  .dashboard-environment-grid,
  .dashboard-confirmation-grid,
  .dashboard-opportunity-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .dashboard-executive-regime-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-briefing-hero,
  .dashboard-historical-expectation,
  .dashboard-current-confirmation {
    height: auto;
  }

  .historical-combined-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .scanner-snapshot-row {
    grid-template-columns: minmax(90px, 0.6fr) minmax(0, 1.8fr) auto;
  }

  .scanner-focus-confidence {
    grid-column: 2;
    text-align: left;
  }
}

@media (max-width: 640px) {
  .dashboard-page-header {
    margin-bottom: 19px;
  }

  .dashboard-page-meta {
    align-items: flex-start;
  }

  .dashboard-meta-separator {
    display: none;
  }

  #dashboardBriefingDate,
  #dashboardLastUpdated {
    width: 100%;
  }

  .dashboard-trading-session { flex-wrap: wrap; gap: 10px 20px; }
  .trading-session-notification { top: 10px; right: 10px; left: 10px; min-width: 0; }

  .macro-view-heading {
    display: block;
  }

  .macro-view-bias {
    display: inline-block;
    margin-top: 15px;
    text-align: left;
  }

  .macro-view-status {
    font-size: 2rem;
  }

  .macro-condition-tags {
    grid-template-columns: minmax(0, 1fr);
  }

  .historical-expectation-row,
  .historical-expectation-row.unavailable {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }

  .historical-reaction-value {
    padding-top: 7px;
    border-top: 1px solid var(--border);
  }

  .historical-combined-summary,
  .decision-evidence-strip,
  .institutional-decision-rationale {
    grid-template-columns: minmax(0, 1fr);
  }

  .institutional-decision-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .institutional-conviction {
    text-align: left;
  }

  .daily-section-heading {
    align-items: center;
    flex-direction: row;
  }

  .scanner-snapshot-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
  }

  .scanner-focus-context,
  .scanner-focus-confidence {
    grid-column: 1 / -1;
    white-space: normal;
  }
}
