/* Dashboard V3 — parallel decision-first shell */
:root {
  --v3-bg: #06080d;
  --v3-sidebar: #090c13;
  --v3-surface: #0d111a;
  --v3-surface-raised: #121824;
  --v3-border: rgba(255,255,255,.075);
  --v3-border-strong: rgba(255,255,255,.13);
  --v3-text: #edf2f7;
  --v3-muted: #7f8b9d;
  --v3-faint: #4f5a69;
  --v3-teal: #2dd4bf;
  --v3-teal-soft: rgba(45,212,191,.11);
  --v3-red: #fb7185;
  --v3-red-soft: rgba(251,113,133,.1);
  --v3-amber: #fbbf24;
  --v3-amber-soft: rgba(251,191,36,.1);
  --v3-blue: #60a5fa;
  --v3-sidebar-width: 224px;
  --v3-topbar-height: 52px;
  --v3-radius: 9px;
}

body.dashboard-v3 {
  background: var(--v3-bg);
  color: var(--v3-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  min-height: 100vh;
}
body.dashboard-v3 button,
body.dashboard-v3 input { font: inherit; }

.btv3-shell {
  display: grid;
  grid-template-columns: var(--v3-sidebar-width) minmax(0,1fr);
  grid-template-rows: var(--v3-topbar-height) minmax(calc(100vh - var(--v3-topbar-height)),auto);
  grid-template-areas: "sidebar topbar" "sidebar content";
  min-height: 100vh;
}
.btv3-sidebar {
  grid-area: sidebar;
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--v3-sidebar-width);
  display: flex;
  flex-direction: column;
  background: var(--v3-sidebar);
  border-right: 1px solid var(--v3-border);
  z-index: 120;
}
.btv3-brand {
  min-height: var(--v3-topbar-height);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 15px;
  border-bottom: 1px solid var(--v3-border);
}
.btv3-brand-mark {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  color: var(--v3-teal);
  background: var(--v3-teal-soft);
  border: 1px solid rgba(45,212,191,.22);
  border-radius: 7px;
}
.btv3-brand-mark svg { width: 16px; height: 16px; }
.btv3-brand strong { display:block; font: 700 12px/1.1 var(--font-mono); letter-spacing:.09em; }
.btv3-brand small { display:block; color:var(--v3-faint); font:600 8px/1.4 var(--font-mono); letter-spacing:.12em; margin-top:3px; }
.btv3-sidebar-head { display:flex;align-items:center;border-bottom:1px solid var(--v3-border); }
.btv3-sidebar-head .btv3-brand { min-width:0;flex:1;border-bottom:0; }
.btv3-collapse { width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;margin-right:7px;color:var(--v3-muted);background:transparent;border:0;border-radius:6px;cursor:pointer; }
.btv3-collapse:hover,.btv3-collapse:focus-visible { color:var(--v3-text);background:rgba(255,255,255,.05); }
.btv3-collapse svg { width:15px;height:15px; }
.btv3-sidebar nav { padding: 12px 8px; overflow-y:auto; flex:1; }
.btv3-nav-section { margin-bottom:15px; }
.btv3-nav-section h2 { color:var(--v3-faint); font:700 9px/1 var(--font-mono); letter-spacing:.14em; padding:8px 9px; }
.btv3-nav-link {
  min-height: 34px;
  display:flex; align-items:center; gap:10px;
  padding:7px 9px;
  color:var(--v3-muted);
  border:1px solid transparent;
  border-radius:6px;
  transition:background .12s,color .12s,border-color .12s;
}
.btv3-nav-link svg { width:15px; height:15px; stroke-width:1.7; }
.btv3-nav-link:hover { color:var(--v3-text); background:rgba(255,255,255,.035); }
.btv3-nav-link.active { color:#dffcf7; background:var(--v3-teal-soft); border-color:rgba(45,212,191,.16); }
.btv3-nav-link.active svg { color:var(--v3-teal); }
.btv3-sidebar-foot { display:flex; align-items:center; gap:8px; padding:13px 16px; color:var(--v3-faint); font:500 9px var(--font-mono); border-top:1px solid var(--v3-border); }
.btv3-health-dot { width:6px;height:6px;border-radius:50%;background:var(--v3-amber); }
body.btv3-sidebar-collapsed .btv3-shell { grid-template-columns:56px minmax(0,1fr); }
body.btv3-sidebar-collapsed .btv3-sidebar { width:56px; }
body.btv3-sidebar-collapsed .btv3-brand-copy,
body.btv3-sidebar-collapsed .btv3-nav-section h2,
body.btv3-sidebar-collapsed .btv3-nav-link span,
body.btv3-sidebar-collapsed .btv3-sidebar-foot span:last-child { display:none; }
body.btv3-sidebar-collapsed .btv3-brand { justify-content:center;padding:0; }
body.btv3-sidebar-collapsed .btv3-collapse { position:absolute;left:9px;bottom:43px;margin:0; }
body.btv3-sidebar-collapsed .btv3-sidebar nav { padding-top:12px; }
body.btv3-sidebar-collapsed .btv3-nav-link { justify-content:center;padding-inline:0; }
body.btv3-sidebar-collapsed .btv3-sidebar-foot { justify-content:center;padding-inline:0; }
body.btv3-sidebar-collapsed .btv3-collapse svg { transform:rotate(180deg); }

.btv3-topbar {
  grid-area:topbar;
  position:sticky; top:0; z-index:100;
  min-width:0;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 20px;
  background:rgba(6,8,13,.9);
  border-bottom:1px solid var(--v3-border);
  backdrop-filter:blur(14px);
}
.btv3-menu { display:none;width:44px;height:44px;background:none;border:0;color:var(--v3-muted);padding:0;cursor:pointer; }
.btv3-search { width:min(440px,45vw); position:relative; display:flex;align-items:center;gap:8px; }
.btv3-search > svg { position:absolute;left:10px;color:var(--v3-faint);width:14px;height:14px; }
.btv3-search input { width:100%;height:32px;padding:0 50px 0 32px;color:var(--v3-text);background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:6px;outline:0;-webkit-appearance:none;appearance:none; }
.btv3-search input::placeholder { color:var(--v3-faint); }
.btv3-search input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; }
.btv3-search input:focus { border-color:rgba(45,212,191,.45);box-shadow:0 0 0 3px rgba(45,212,191,.07); }
.btv3-search kbd { position:absolute;right:8px;color:var(--v3-faint);font:600 9px var(--font-mono);border:1px solid var(--v3-border);padding:2px 5px;border-radius:3px; }
.btv3-top-actions { display:flex;align-items:center;gap:15px; }
.btv3-market-status { display:flex;align-items:center;gap:6px;color:var(--v3-muted);font:600 10px var(--font-mono);white-space:nowrap; }
.btv3-market-status .market-dot { width:6px;height:6px;border-radius:50%;background:var(--v3-muted); }
.btv3-strip-mode,.btv3-settings,.btv3-timezone { height:30px;color:var(--v3-muted);background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:5px; }
.btv3-strip-mode { display:flex;align-items:center;gap:5px;padding:0 8px;cursor:pointer; }
.btv3-strip-mode svg,.btv3-settings svg { width:13px;height:13px; }
.btv3-strip-mode[data-mode="snapshot"] { color:var(--v3-amber); }
.btv3-strip-mode[data-mode="tape"] { color:var(--v3-teal); }
.btv3-settings { width:30px;display:grid;place-items:center;cursor:pointer; }
.btv3-timezone { padding:0 5px;font:600 9px var(--font-mono); }
.btv3-strip-mode:hover,.btv3-settings:hover,.btv3-timezone:hover { color:var(--v3-text);border-color:var(--v3-border-strong); }

.btv3-content { grid-area:content;min-width:0;padding:26px clamp(18px,3vw,42px) 56px; }
.btv3-route-loading,.btv3-route-error,.cc-loading { min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--v3-muted); }
.btv3-route-loading svg { animation:btv3-spin 1s linear infinite;color:var(--v3-teal); }
@keyframes btv3-spin { to { transform:rotate(360deg); } }
.cc-loading-mark { width:42px;height:42px;display:grid;place-items:center;color:var(--v3-teal);background:var(--v3-teal-soft);border-radius:10px; }
.cc-loading strong { color:var(--v3-text);margin-top:6px; }

.cc-page { max-width:1500px;margin:0 auto; }
.cc-hero { display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 23px;border-bottom:1px solid var(--v3-border); }
.cc-eyebrow { display:flex;align-items:center;gap:7px;color:var(--v3-muted);font:700 9px var(--font-mono);letter-spacing:.12em;margin-bottom:10px; }
.cc-eyebrow > span:not(.cc-pulse) { color:var(--v3-faint); }
.cc-pulse { width:6px;height:6px;border-radius:50%;background:var(--v3-teal);box-shadow:0 0 9px rgba(45,212,191,.65); }
.cc-hero h1 { color:var(--v3-text);font-size:clamp(25px,3vw,38px);line-height:1.12;letter-spacing:-.035em;font-weight:650; }
.cc-hero h1 .positive { color:var(--v3-teal); }
.cc-hero h1 .negative { color:var(--v3-red); }
.cc-hero h1 .warning { color:var(--v3-amber); }
.cc-hero p { color:var(--v3-muted);font-size:12px;margin-top:9px; }
.cc-controls { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.cc-segmented { display:flex;padding:3px;background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:6px; }
.cc-segmented button,.cc-density { color:var(--v3-muted);background:transparent;border:0;border-radius:4px;padding:6px 9px;font-size:10px;cursor:pointer; }
.cc-segmented button.active { color:var(--v3-text);background:var(--v3-surface-raised); }
.cc-density { min-height:32px;display:flex;align-items:center;gap:6px;border:1px solid var(--v3-border); }
.cc-density:hover { color:var(--v3-text);border-color:var(--v3-border-strong); }
.cc-density svg { width:13px;height:13px; }
.cc-feed-warning { display:flex;align-items:center;gap:8px;margin-top:13px;padding:9px 11px;color:var(--v3-amber);background:var(--v3-amber-soft);border:1px solid rgba(251,191,36,.18);border-radius:6px;font-size:11px; }
.cc-feed-warning svg { width:14px;height:14px; }

.cc-metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0; }
.cc-metric { min-width:0;padding:14px 15px;background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:var(--v3-radius); }
.cc-metric.positive { border-top-color:rgba(45,212,191,.6); }
.cc-metric.negative { border-top-color:rgba(251,113,133,.6); }
.cc-metric.warning { border-top-color:rgba(251,191,36,.6); }
.cc-metric-head { display:flex;justify-content:space-between;align-items:center;color:var(--v3-muted);font:700 9px var(--font-mono);letter-spacing:.08em;text-transform:uppercase; }
.cc-metric-head svg { width:14px;height:14px;color:var(--v3-faint); }
.cc-metric > strong { display:block;color:var(--v3-text);font:650 22px/1.15 var(--font-mono);letter-spacing:-.04em;margin:9px 0 4px; }
.cc-metric > small { display:block;color:var(--v3-muted);font-size:10px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }

.cc-daily-brief { display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.75fr);margin:0 0 12px;background:linear-gradient(135deg,rgba(45,212,191,.07),transparent 42%),var(--v3-surface);border:1px solid rgba(45,212,191,.18);border-radius:var(--v3-radius);overflow:hidden; }
.cc-brief-main { padding:18px 20px; }
.cc-brief-kicker { display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--v3-faint);font:700 8px var(--font-mono);letter-spacing:.1em; }
.cc-brief-kicker span:first-child { display:flex;align-items:center;gap:6px;color:var(--v3-teal); }
.cc-brief-kicker svg { width:13px;height:13px; }
.cc-brief-main h2 { max-width:900px;color:var(--v3-text);font-size:19px;line-height:1.35;font-weight:620;letter-spacing:-.015em;margin:11px 0 8px; }
.cc-brief-main > p,.cc-brief-detail { color:#a8b4c3;font-size:11px;line-height:1.7; }
.cc-brief-main details { margin-top:11px; }
.cc-brief-main summary { display:flex;align-items:center;gap:6px;width:max-content;color:var(--v3-teal);font-size:10px;cursor:pointer;list-style:none; }
.cc-brief-main summary::-webkit-details-marker { display:none; }
.cc-brief-main summary svg { width:12px;height:12px;transition:transform .15s; }
.cc-brief-main details[open] summary svg { transform:rotate(180deg); }
.cc-brief-detail { padding:13px 0 2px; }
.cc-brief-detail p + p { margin-top:10px; }
.cc-brief-actions { padding:18px;border-left:1px solid var(--v3-border);background:rgba(255,255,255,.015); }
.cc-brief-actions > small { color:var(--v3-amber);font:700 8px var(--font-mono);letter-spacing:.12em; }
.cc-brief-actions > div { display:flex;align-items:flex-start;gap:8px;color:#c4cdd8;font-size:10px;line-height:1.45;padding:10px 0;border-bottom:1px solid var(--v3-border); }
.cc-brief-actions > div:last-child { border-bottom:0; }
.cc-brief-actions svg { width:12px;height:12px;color:var(--v3-amber);flex:0 0 auto;margin-top:1px; }

.cc-workspace { display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:12px;align-items:start; }
.cc-panel { background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:var(--v3-radius);overflow:hidden; }
.cc-panel-head { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-bottom:1px solid var(--v3-border); }
.cc-panel-head small { display:block;color:var(--v3-teal);font:700 8px var(--font-mono);letter-spacing:.13em;margin-bottom:4px; }
.cc-panel-head h2 { color:var(--v3-text);font-size:14px;font-weight:600; }
.cc-panel-head a { display:flex;align-items:center;gap:5px;color:var(--v3-muted);font-size:10px; }
.cc-panel-head a:hover { color:var(--v3-teal); }
.cc-panel-head a svg { width:12px;height:12px; }
.cc-setup-head,.cc-setup-row { display:grid;grid-template-columns:58px 115px 90px minmax(200px,1fr) 90px 70px;align-items:center;gap:8px;padding-inline:16px; }
.cc-setup-head { min-height:31px;color:var(--v3-faint);font:700 8px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--v3-border); }
.cc-setup-row { min-height:58px;border-bottom:1px solid var(--v3-border);transition:background .12s; }
.cc-setup-row:hover { background:rgba(255,255,255,.025); }
.cc-rank { color:var(--v3-faint);font:600 10px var(--font-mono); }
.cc-ticker strong,.cc-price strong { display:block;color:var(--v3-text);font:650 12px var(--font-mono); }
.cc-ticker small,.cc-price small { display:block;color:var(--v3-muted);font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.cc-status { justify-self:start;padding:3px 6px;border-radius:4px;color:var(--v3-muted);background:rgba(255,255,255,.04);font:700 8px var(--font-mono);letter-spacing:.04em;text-transform:uppercase; }
.cc-status.triggered,.cc-status.active { color:var(--v3-teal);background:var(--v3-teal-soft); }
.cc-status.approaching { color:var(--v3-amber);background:var(--v3-amber-soft); }
.cc-thesis { min-width:0;color:#b2bdca;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.cc-price { text-align:right; }
.cc-price .up { color:var(--v3-teal); }.cc-price .down { color:var(--v3-red); }
.cc-review { display:flex;align-items:center;justify-content:flex-end;gap:4px;color:var(--v3-muted);font-size:9px; }
.cc-review svg { width:11px;height:11px; }
.cc-setup-row:hover .cc-review { color:var(--v3-teal); }
.cc-source { display:flex;align-items:center;gap:6px;padding:9px 15px;color:var(--v3-faint);font:500 8px/1.4 var(--font-mono); }
.cc-source svg { width:11px;height:11px;flex:0 0 auto; }
.cc-rail { display:grid;gap:12px; }
.cc-catalyst > strong { display:block;color:var(--v3-text);font-size:13px;line-height:1.45;padding:15px 16px 0; }
.cc-catalyst > p,.cc-risks > p { color:var(--v3-muted);font-size:10px;line-height:1.5;padding:6px 16px 13px; }
.cc-risk { display:flex;gap:10px;padding:12px 15px;border-bottom:1px solid var(--v3-border); }
.cc-risk > span { width:3px;border-radius:3px;background:var(--v3-muted); }
.cc-risk.warning > span { background:var(--v3-amber); }.cc-risk.negative > span { background:var(--v3-red); }
.cc-risk strong { display:block;color:#cbd4df;font-size:10px;line-height:1.35;font-weight:550; }
.cc-risk small { display:block;color:var(--v3-faint);font-size:8px;margin-top:3px; }
.cc-social-copy { color:var(--v3-muted);font-size:10px;line-height:1.5;padding:13px 15px 4px; }
.cc-social-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:9px 15px;background:var(--v3-border);border:1px solid var(--v3-border);border-radius:5px;overflow:hidden; }
.cc-social-stats span { padding:8px 6px;text-align:center;color:var(--v3-faint);font-size:8px;background:var(--v3-surface-raised); }
.cc-social-stats strong { display:block;color:var(--v3-text);font:650 14px var(--font-mono);margin-bottom:2px; }
.cc-social-tickers { padding:0 15px 8px; }
.cc-social-tickers a { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--v3-border); }
.cc-social-tickers a:last-child { border-bottom:0; }
.cc-social-tickers strong { color:var(--v3-text);font:650 11px var(--font-mono); }
.cc-social-tickers small { color:var(--v3-faint);font-size:8px;text-align:right; }
.cc-social-tickers a.bull strong { color:var(--v3-teal); }.cc-social-tickers a.bear strong { color:var(--v3-red); }.cc-social-tickers a.mixed strong { color:var(--v3-amber); }
.social-pulse-intro { display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--v3-border); }
.social-pulse-kicker { display:block;color:var(--v3-teal);font:700 9px var(--font-mono);letter-spacing:.13em;margin-bottom:6px; }
.social-pulse-intro h1 { color:var(--v3-text);font-size:24px;letter-spacing:-.02em; }
.social-pulse-intro p { max-width:560px;color:var(--v3-muted);font-size:11px;line-height:1.6; }
.cc-unavailable,.cc-empty { display:flex;align-items:center;gap:10px;padding:18px;color:var(--v3-muted); }
.cc-unavailable svg { width:16px;height:16px;color:var(--v3-amber); }
.cc-unavailable strong { display:block;color:var(--v3-text);font-size:11px; }.cc-unavailable span { display:block;font-size:9px;margin-top:3px; }
.focus-setups .cc-rail { display:none; }.focus-setups .cc-workspace { grid-template-columns:1fr; }
.focus-risk .cc-setups { display:none; }.focus-risk .cc-workspace { grid-template-columns:minmax(280px,520px);justify-content:end; }
body[data-density="comfortable"] .cc-setup-row { min-height:72px; }

.btv3-backdrop { position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:110; }
.btv3-settings-drawer { position:fixed;inset:0 0 0 auto;width:min(360px,92vw);z-index:150;padding:20px;background:var(--v3-sidebar);border-left:1px solid var(--v3-border-strong);box-shadow:-20px 0 60px rgba(0,0,0,.45); }
.btv3-settings-drawer[hidden] { display:none; }
.btv3-settings-drawer header { display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--v3-border); }
.btv3-settings-drawer small { color:var(--v3-teal);font:700 9px var(--font-mono);letter-spacing:.12em; }
.btv3-settings-drawer h2 { margin-top:4px;font-size:20px; }
.btv3-settings-drawer button { width:40px;height:40px;display:grid;place-items:center;color:var(--v3-muted);background:transparent;border:1px solid var(--v3-border);border-radius:6px;cursor:pointer; }
.btv3-settings-drawer button svg { width:16px;height:16px; }
.btv3-settings-drawer p { margin:18px 0;color:var(--v3-muted);line-height:1.6; }
.btv3-settings-drawer a { color:var(--v3-teal); }
.btv3-settings-drawer { overflow-y:auto; }
.btv3-settings-section { padding:16px 0;border-top:1px solid var(--v3-border); }
.btv3-settings-section h3 { margin-bottom:11px;color:var(--v3-text);font-size:12px; }
.btv3-settings-section label { display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0;color:var(--v3-muted);font-size:11px; }
.btv3-settings-section select,.btv3-settings-section input { min-width:120px;height:32px;padding:0 8px;color:var(--v3-text);background:var(--v3-surface);border:1px solid var(--v3-border);border-radius:5px; }
.btv3-settings-section input { min-width:72px;width:72px; }
.btv3-settings-section label > span { display:flex;align-items:center;gap:6px; }
.btv3-settings-actions { padding:12px 0 24px; }
.btv3-settings-actions #v3-settings-reset { width:100%;height:36px;display:block;color:var(--v3-red); }
.cc-filters { display:flex;align-items:end;gap:10px;margin:14px 0;padding:12px;overflow-x:auto; }
.cc-filters > div { display:flex;align-items:end;gap:6px; }
.cc-filters label { min-width:130px;color:var(--v3-faint);font:700 8px var(--font-mono);letter-spacing:.06em;text-transform:uppercase; }
.cc-filters select { display:block;width:100%;height:32px;margin-top:5px;padding:0 7px;color:var(--v3-text);background:var(--v3-surface-raised);border:1px solid var(--v3-border);border-radius:5px; }
.cc-filters button { height:32px;padding:0 10px;color:var(--v3-teal);background:var(--v3-teal-soft);border:1px solid rgba(45,212,191,.18);border-radius:5px;white-space:nowrap; }
.cc-what-changed,.cc-insights,.cc-setups { margin-bottom:12px; }
.cc-change-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--v3-border); }
.cc-change-list p { padding:13px;color:#b8c3cf;background:var(--v3-surface);font-size:10px;line-height:1.5; }
.cc-suppression { padding:9px 15px;color:var(--v3-faint);font-size:9px;border-bottom:1px solid var(--v3-border); }
.cc-insights { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
.cc-insights .cc-panel-head { grid-column:1/-1; }
.cc-insight { padding:14px 16px;border-right:1px solid var(--v3-border);border-bottom:1px solid var(--v3-border); }
.cc-insight strong { display:block;color:var(--v3-text);font-size:11px; }
.cc-insight p { margin-top:6px;color:var(--v3-muted);font-size:9px;line-height:1.55; }
.cc-insight.warning { box-shadow:inset 2px 0 var(--v3-amber); }
.cc-chart-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px; }
.cc-chart { padding:13px;min-width:0; }
.cc-chart > small { color:var(--v3-teal);font:700 8px var(--font-mono);letter-spacing:.1em; }
.cc-chart h3 { margin:4px 0 10px;color:var(--v3-text);font-size:11px; }
.cc-chart-frame { position:relative;height:150px; }
.cc-chart-fallback { padding:20px 8px;color:var(--v3-muted);font-size:9px;line-height:1.5; }
.btv3-mobile-nav { display:none; }
@media (max-width:1100px) {
  .cc-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-workspace { grid-template-columns:1fr; }
  .cc-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-social { grid-column:1/-1; }
  .cc-chart-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .btv3-shell { grid-template-columns:1fr;grid-template-rows:var(--v3-topbar-height) minmax(calc(100vh - var(--v3-topbar-height)),auto);grid-template-areas:"topbar" "content"; }
  .btv3-sidebar { width:var(--v3-sidebar-width);transform:translateX(-100%);transition:transform .18s ease;box-shadow:20px 0 60px rgba(0,0,0,.4); }
  body.btv3-sidebar-collapsed .btv3-sidebar { width:var(--v3-sidebar-width); }
  body.btv3-sidebar-collapsed .btv3-brand-copy,
  body.btv3-sidebar-collapsed .btv3-nav-section h2,
  body.btv3-sidebar-collapsed .btv3-nav-link span,
  body.btv3-sidebar-collapsed .btv3-sidebar-foot span:last-child { display:block; }
  body.btv3-sidebar-collapsed .btv3-collapse { display:none; }
  body.btv3-drawer-open .btv3-sidebar { transform:translateX(0); }
  .btv3-collapse { display:none; }
  .btv3-menu { display:grid;place-items:center; }
  .btv3-topbar { padding:0 12px; }
  .btv3-search { width:min(460px,60vw); }
  .btv3-market-status,.btv3-timezone { display:none; }
  .btv3-top-actions { gap:7px; }
  .btv3-content { padding:20px 14px 88px; }
  .btv3-mobile-nav { position:fixed;left:0;right:0;bottom:0;z-index:105;display:grid;grid-template-columns:repeat(4,1fr);min-height:62px;padding-bottom:env(safe-area-inset-bottom);background:rgba(9,12,19,.96);border-top:1px solid var(--v3-border-strong);backdrop-filter:blur(14px); }
  .btv3-mobile-link { min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--v3-muted);background:transparent;border:0;font-size:9px;cursor:pointer; }
  .btv3-mobile-link svg { width:17px;height:17px; }
  .btv3-mobile-link.active { color:var(--v3-teal); }
  .cc-hero { align-items:flex-start;flex-direction:column; }
  .cc-hero p { white-space:normal;overflow:visible; }
  .cc-controls { width:100%;justify-content:space-between; }
  .cc-setup-head { display:none; }
  .cc-setup-row { grid-template-columns:42px 82px 78px 1fr 72px; }
  .cc-review { display:none; }
  .cc-daily-brief { grid-template-columns:1fr; }
  .cc-brief-actions { border-left:0;border-top:1px solid var(--v3-border); }
  .social-pulse-intro { align-items:flex-start;flex-direction:column;gap:8px; }
  .cc-change-list,.cc-insights { grid-template-columns:1fr; }
  .cc-insights .cc-panel-head { grid-column:auto; }
}
@media (max-width:560px) {
  .btv3-search { width:calc(100vw - 60px); }
  .btv3-search kbd { display:none; }
  .cc-hero h1 { font-size:26px; }
  .cc-controls { align-items:stretch;flex-direction:column; }
  .cc-segmented { justify-content:space-between; }.cc-segmented button { min-height:44px;flex:1; }
  .cc-density { min-height:44px;justify-content:center; }
  .cc-metrics { grid-template-columns:1fr 1fr;gap:8px; }
  .cc-metric { padding:12px; }.cc-metric > strong { font-size:17px; }
  .cc-metric > small { white-space:normal;min-height:27px; }
  .cc-rail { grid-template-columns:1fr; }
  .cc-social { grid-column:auto; }
  .cc-panel-head { align-items:flex-start; }
  .cc-panel-head a { flex:0 0 auto;padding:8px 0 8px 8px; }
  .cc-setup-row { min-height:82px;grid-template-columns:30px 72px 1fr 68px;gap:6px;padding:12px; }
  .cc-status { grid-column:3;grid-row:1; }.cc-thesis { grid-column:2/4;grid-row:2;white-space:normal;line-height:1.35; }
  .cc-price { grid-column:4;grid-row:1/3; }.cc-source { align-items:flex-start; }
  .cc-brief-main,.cc-brief-actions { padding:15px; }
  .cc-brief-main h2 { font-size:16px; }
  .cc-filters { align-items:stretch;flex-direction:column;overflow:visible; }
  .cc-filters > div { align-items:stretch;flex-direction:column; }
  .cc-filters label { width:100%; }
  .cc-chart-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .btv3-sidebar,.btv3-nav-link,.btv3-collapse svg,.btv3-route-loading svg { transition:none;animation:none; }
}

/* ── Command Center: data freshness strip ── */
.cc-freshness { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 12px; padding: 8px 12px; background: var(--panel, #0f1729); border: 1px solid var(--border, #1e293b); border-radius: 10px; }
.cc-freshness.has-stale { border-color: #b45309; background: rgba(180,83,9,0.08); }
.cc-fresh-lead { font-size: 10px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--text-dim, #94a3b8); margin-right: 4px; }
.cc-freshness.has-stale .cc-fresh-lead { color: #fbbf24; }
.cc-fresh-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-dim, #cbd5e1); background: var(--bg, #0b1120); border: 1px solid var(--border, #1e293b); padding: 2px 8px; border-radius: 20px; cursor: default; }
.cc-fresh-dot { width: 7px; height: 7px; border-radius: 50%; background: #64748b; }
.cc-fresh-pill.fresh .cc-fresh-dot { background: #22c55e; }
.cc-fresh-pill.stale { color: #fca5a5; border-color: #7f1d1d; }
.cc-fresh-pill.stale .cc-fresh-dot { background: #ef4444; animation: statusPulse 2s ease-in-out infinite; }
.cc-fresh-pill.missing { color: #94a3b8; opacity: 0.7; }
.cc-fresh-pill.missing .cc-fresh-dot { background: #475569; }

/* ── v3 sticky-header offset fix ──
   The watchlist/EM table headers stick at var(--sticky-top-offset), which
   equals the OLD UI's --nav-height (48px). The v3 shell has no such fixed nav
   above the scrolling content area, so the header floated 48px down and
   overlapped the first data row. Inside the v3 shell the tables scroll under
   the shell's own sticky topbar, so the header should stick at 0. */
.btv3-shell { --sticky-top-offset: 0px; }
.btv3-shell .watchlist-table th,
.btv3-shell .em-table th { top: 0; }

/* ============================================================
 * Snapshot strip (moved from shell.css — that file isn't linked
 * in index.html, so .snap-* rules never loaded and the strip
 * rendered as an unstyled vertical text dump). See snapshot-strip.js.
 * ============================================================ */
.snap-strip {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--bg-card);
  border-bottom: 1px solid var(--border);
  padding: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}
.snap-strip::-webkit-scrollbar { height: 4px; }
.snap-strip::-webkit-scrollbar-thumb { background: #333; border-radius: 2px; }

.snap-tile {
  display: flex; align-items: baseline;
  flex-shrink: 0;
  gap: 8px;
  padding: 8px 18px;
  border-right: 1px solid var(--border);
  cursor: pointer;
  transition: background 0.12s;
  min-width: 140px;
}
.snap-tile:hover { background: rgba(0,200,255,0.05); }

.snap-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-dim);
  font-weight: 600;
  min-width: 50px;
}
.snap-price {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.5px;
  transition: color 0.4s;
}
.snap-change {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  margin-left: auto;
}
.snap-change.sn-up { color: #26a69a; }
.snap-change.sn-down { color: #ef5350; }

.snap-flash-up { animation: snFlashUp 0.7s ease-out; }
.snap-flash-down { animation: snFlashDown 0.7s ease-out; }
@keyframes snFlashUp {
  0%   { background: rgba(38,166,154,0.4); color: #26a69a; }
  100% { background: transparent; color: var(--text); }
}
@keyframes snFlashDown {
  0%   { background: rgba(239,83,80,0.4); color: #ef5350; }
  100% { background: transparent; color: var(--text); }
}

.snap-clock {
  display: flex; flex-direction: column; align-items: flex-end;
  margin-left: auto;
  padding: 6px 18px;
  border-left: 1px solid var(--border);
  flex-shrink: 0;
}
.snap-clock-time {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text);
  font-weight: 600;
}
.snap-clock-status {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 700;
  margin-top: 2px;
}
.snap-clock-status.sn-up { color: #26a69a; }
.snap-clock-status.sn-dim { color: var(--text-dim); }

@media (max-width: 600px) {
  .snap-tile { padding: 6px 12px; min-width: 110px; }
  .snap-label { font-size: 9px; }
  .snap-price { font-size: 13px; }
  .snap-change { font-size: 10px; }
  .snap-clock { padding: 4px 12px; }
}
