:root {
  /* Surfaces */
  --bg: #0c1218;
  --card: #161f2a;
  --text: #e8edf4;
  --muted: #8896ad;
  --border: rgba(58, 74, 94, 0.55);

  /* ── Keyline policy (design-system rule) ──────────────────────────────
     Boxes are FLAT by default. Separate content with fill + spacing, NOT
     borders, and reveal a keyline (border) on :hover / :focus-visible.
     Never nest a border inside a border (no "boxes inside boxes"): inner
     badges, pills, chips and sub-cells use a --fill tint + color instead.
     Keep a *default* keyline only for genuine structure — exceptions:
       • the outermost container card of a region,
       • form inputs / text fields,
       • the active/selected item,
       • a single divider between two major regions.
     Use these tokens so the policy stays consistent app-wide. */
  --keyline: rgba(58, 74, 94, 0.32);          /* structural line, when truly needed */
  --keyline-hover: rgba(78, 184, 201, 0.45);  /* revealed on hover / focus */
  --fill-1: rgba(255, 255, 255, 0.04);        /* subtle nested fill (replaces a border) */
  --fill-2: rgba(255, 255, 255, 0.07);        /* stronger nested fill / hover */

  /* UI chrome (links, focus, primary actions) */
  --accent: #4eb8c9;
  --accent-muted: #7ec8d4;
  --accent-bg: rgba(78, 184, 201, 0.12);
  --accent-border: rgba(78, 184, 201, 0.35);

  /* Bullish — teal */
  --bull: #2db8a8;
  --bull-strong: #1a9e92;
  --bull-muted: #8ae4d8;
  --bull-bg: rgba(45, 184, 168, 0.18);
  --bull-bg-strong: rgba(45, 184, 168, 0.38);
  --bull-border: rgba(45, 184, 168, 0.42);
  --bull-glow: rgba(45, 184, 168, 0.35);

  /* Bearish — orange */
  --bear: #e8954f;
  --bear-strong: #d4702a;
  --bear-muted: #f5c99a;
  --bear-bg: rgba(232, 149, 79, 0.18);
  --bear-bg-strong: rgba(232, 149, 79, 0.38);
  --bear-border: rgba(232, 149, 79, 0.42);
  --bear-glow: rgba(232, 149, 79, 0.3);

  /* Neutral tape */
  --flat: #6b7d94;
  --flat-bg: rgba(107, 125, 148, 0.14);

  /* Caution / mid RM tier */
  --review: #d4a24a;
  --review-bg: rgba(212, 162, 74, 0.18);

  /* Legacy semantic aliases */
  --yes: var(--bull);
  --no: var(--bear);

  /* Chart layer model (repo canonical — chart-layer-visual-v1-spec.md) */
  --chart-intel-opacity: 0.65;
  --chart-intel-opacity-mobile: 0.72;
  --chart-intel-saturate: 0.92;
  --chart-data-shadow: none;
  --chart-data-shadow-mobile: none;

  /* Chart price action — aliased to semantic (merge to bull) */
  --chart-candle-up: var(--bull);
  --chart-candle-down: var(--bear);
  --chart-trade-node: var(--bull);

  /* ca-toggle control tokens */
  --toggle-bg-off: #121820;
  --toggle-border-off: #2a3544;
  --toggle-border-hover: #3d4f63;
  --toggle-bg-hover: #1a222d;
  --toggle-min-height: 28px;
  --toggle-gap: 6px;

  /* layout: mobile <640, tablet 640–1279, desktop ≥1280 */
  --bp-tablet: 640px;
  --bp-desktop: 1280px;
  --ws-footer-space: calc(78px + env(safe-area-inset-bottom));
  --mobile-action-bar-h: 48px;
  --mobile-chrome-wash-top: linear-gradient(
      to top,
      rgba(78, 184, 201, 0.13) 0%,
      rgba(78, 184, 201, 0.05) 36%,
      transparent 70%
    ),
    var(--card);
  --mobile-chrome-wash-bottom: linear-gradient(
      to bottom,
      rgba(78, 184, 201, 0.06) 0%,
      rgba(78, 184, 201, 0.02) 30%,
      transparent 58%
    ),
    var(--card);
  --mobile-chrome-wash-footer: linear-gradient(
      to bottom,
      rgba(78, 184, 201, 0.13) 0%,
      rgba(78, 184, 201, 0.05) 36%,
      transparent 70%
    ),
    var(--card);
  --mobile-footer-chrome-stack-h: calc(
    var(--mobile-footer-bumper-h) + var(--mobile-action-bar-h) + 4px +
    max(6px, env(safe-area-inset-bottom, 0px))
  );
  --mobile-footer-chrome-bg-size: 100% var(--mobile-footer-chrome-stack-h);
  --mobile-footer-chrome-bg-pos: left bottom;
  --mobile-footer-bumper-inset: 18%;
  --mobile-footer-bumper-h: 26px;
  --mobile-footer-bumper-h-hover: 30px;
  --mobile-footer-crown-clip: path(
    "M 0 15 Q 50% 2 100% 15 L 100% 100% L 0 100% Z"
  );
  --mobile-snap-bumper-h: 34px;
  --mobile-snap-bumper-h-up: 48px;
  --mobile-snap-bumper-strip-h: 40px;
  --mobile-snap-bumper-h-hover: 40px;
  --mobile-row-nav-h: var(--mobile-snap-bumper-h-up);
  --mobile-header-pad-x: 22px;
  --mobile-chrome-curve: 14px;
  --mobile-chrome-teal-grad-down: linear-gradient(
    180deg,
    rgba(110, 220, 234, 0.5) 0%,
    rgba(88, 200, 216, 0.34) 48%,
    rgba(78, 184, 201, 0.14) 100%
  );

  /* Workspace columns — shared typography & spacing */
  --ws-head-size: 0.92rem;
  --ws-head-weight: 750;
  --ws-head-tracking: 0.11em;
  --ws-head-height: 64px;
  --ws-meta-size: 0.72rem;
  --ws-label-size: 0.68rem;
  --ws-label-tracking: 0.06em;
  --ws-body-size: 0.8rem;
  --ws-col-pad-x: 10px;
  --ws-col-pad-y: 8px;
  --ws-gap: 8px;
  /* Header: legacy bar — min 148px (safe-area + 120px logo + 10px bottom pad) */
  --header-logo-slot: 120px;
  --header-mood-h: 54px;
  --header-bottom-shade-h: 20px;
  --header-pad-bottom: 10px;
  --header-block-min: 148px;
  --header-block-h: max(
    var(--header-block-min),
    calc(
      max(8px, env(safe-area-inset-top)) + var(--header-logo-slot)
        + var(--header-pad-bottom)
    )
  );
  --ws-col-accent-wash: linear-gradient(
    180deg,
    rgba(78, 184, 201, 0.16) 0%,
    rgba(78, 184, 201, 0.07) 18%,
    rgba(78, 184, 201, 0.03) 38%,
    rgba(78, 184, 201, 0.01) 58%,
    transparent 82%
  );
  --ws-col-tone-wash: linear-gradient(
    90deg,
    rgba(14, 20, 28, 0.72) 0%,
    rgba(20, 28, 38, 0.28) 42%,
    transparent 100%
  );
}
* { box-sizing: border-box; }
html {
  height: 100%;
  overflow: hidden;
}
body {
  margin: 0;
  height: 100%;
  min-height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  padding: 0 12px var(--ws-footer-space);
  line-height: 1.45;
}
.page-shell {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
@media (min-width: 1280px) {
  .page-shell {
    max-width: none;
    padding: 0 16px;
  }
}
body.drawer-open { overflow: hidden; }

/* Capacitor / installed app shell */
html.is-native-app,
body.is-native-app {
  height: 100%;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
html.is-native-app {
  /* Top inset is already in --mobile-header-shell-h / --mobile-top-chrome-h; extra padding-top leaves a dark gap under the row nav. */
  padding: 0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
body.is-native-app .embed-open-banner {
  display: none !important;
}
body.is-native-app.is-mobile-ws-accordion .page-shell {
  min-height: 100dvh;
  height: 100dvh;
}

/* Framer / iframe embed — footer pinned inside frame, main scrolls */
html.is-embed,
body.is-embed {
  height: 100%;
  overflow: hidden;
}
body.is-embed {
  display: flex;
  flex-direction: column;
  padding: 0 8px 0;
}
body.is-embed .embed-open-banner {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  margin: 0;
  padding: 6px 8px;
  font-size: 0.72rem;
  background: var(--accent-bg);
  border-bottom: 1px solid var(--accent-border);
}
body.is-embed .embed-open-banner[hidden] {
  display: none !important;
}
body.is-embed .embed-open-banner a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: none;
}
body.is-embed .page-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
}
body.is-embed .site-header {
  position: static;
  flex-shrink: 0;
  margin-bottom: 0;
  padding: 6px 0 4px;
  border-bottom: none;
  background: transparent;
}
body.is-embed .brand-logo-stack,
body.is-embed .brand-logo {
  height: 36px;
  width: 36px;
  max-width: min(120px, 36vw);
}
body.is-embed .app-main {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-top: 4px;
  padding-bottom: 8px;
}
body.is-embed .app-footer {
  position: static;
  flex-shrink: 0;
  z-index: 1;
  margin: 0 -8px;
  width: calc(100% + 16px);
}
body.is-embed.drawer-open {
  overflow: hidden;
}
body.is-embed.drawer-open .app-main {
  overflow: hidden;
}
.meta { color: var(--muted); font-size: 0.8rem; margin: 0; }
.app-main {
  padding-top: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* —— Morning workspace: market | chart | scans —— */
.morning-workspace {
  display: grid;
  gap: var(--ws-gap);
  align-items: stretch;
  margin-bottom: 0;
  flex: 1;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  scroll-margin-top: 72px;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "market"
    "chart"
    "scans";
}
.ws-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  padding: 0;
  margin: 0;
  position: relative;
  isolation: isolate;
  background: var(--card);
  border: none;
  border-radius: 10px;
  overflow: hidden;
}
.morning-workspace .ws-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: var(--ws-col-accent-wash), var(--ws-col-tone-wash);
}
.morning-workspace .ws-panel--hidden-col {
  display: none !important;
}
.fv-map-cell--selected {
  outline: 2px solid rgba(78, 184, 201, 0.75);
  outline-offset: 1px;
  z-index: 1;
}
.fv-map-cell--scanning {
  outline: 2px solid rgba(78, 184, 201, 0.55);
  outline-offset: 1px;
  box-shadow: inset 0 0 0 1px rgba(78, 184, 201, 0.2);
}
.pick-list-virtual-top,
.pick-list-virtual-bottom {
  display: block;
  pointer-events: none;
}
.chart-hub-legend-item--selected {
  background: var(--accent-bg);
  border-radius: 6px;
  padding: 2px 6px;
}
.ca-toolbar--flash {
  animation: caToolbarFlash 1.2s ease;
}
@keyframes caToolbarFlash {
  0%, 100% { box-shadow: none; }
  40% { box-shadow: 0 0 0 2px rgba(78, 184, 201, 0.55); }
}
.morning-workspace .ws-panel > .ws-panel-body {
  position: relative;
  z-index: 1;
}
.ws-panel--market {
  grid-area: market;
}
.ws-panel--chart {
  grid-area: chart;
}
.ws-panel--scans {
  grid-area: scans;
}
.ws-panel--scans.ws-panel--dismissed {
  display: none !important;
}
.ws-panel--scans .ws-panel-head,
.ws-panel--chart .ws-panel-head {
  flex-direction: column;
  align-items: stretch;
  height: auto;
  min-height: var(--ws-head-height);
  padding: 0 var(--ws-col-pad-x);
}
.ws-panel--scans .ws-panel-head {
  border-bottom: 1px solid rgba(78, 184, 201, 0.1);
}
.ws-panel--scans .ws-panel-head-row,
.ws-panel--chart .ws-panel-head-row {
  width: 100%;
}
.ws-panel--scans .ws-panel-head-lead,
.ws-panel--chart .ws-panel-head-lead {
  min-height: var(--ws-head-height);
}
.ws-panel--scans .ws-panel-head-main .ws-panel-submeta,
.ws-panel--chart .ws-panel-head-main .ws-panel-submeta {
  padding: 0 0 3px;
}
.ws-panel--scans .ws-panel-head-main .tt-tabs {
  margin: 0 0 6px;
}
.ws-panel--scans .ws-panel-head-actions {
  gap: 8px;
}
/* Settings icon matches col1/col2 (.ws-panel-menu base) — no col3 override. */
.tt-tabs {
  display: flex;
  gap: 6px;
  margin: 0 0 8px;
  padding: 5px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.65);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.tt-tab {
  flex: 1;
  min-width: 0;
  padding: 10px 12px;
  border: none;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease;
}
.tt-tab:hover:not(.is-active) {
  color: #c8d4e0;
  background: rgba(78, 184, 201, 0.06);
}
.tt-tab.is-active {
  color: #f2f6fa;
  background: rgba(78, 184, 201, 0.16);
  box-shadow:
    0 0 0 1px rgba(78, 184, 201, 0.35),
    0 4px 14px rgba(78, 184, 201, 0.1);
}
.tt-tab-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.tt-tab-panel.hidden {
  display: none !important;
}
.ws-scans-setup {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 14px 18px;
}
.tt-results-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.tt-results-command-center {
  flex-shrink: 0;
  margin: 0 0 4px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(78, 184, 201, 0.22);
  background: linear-gradient(180deg, rgba(10, 16, 24, 0.98) 0%, rgba(12, 18, 26, 0.94) 100%);
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.rm-cc-kicker {
  margin: 0;
  padding: 12px 14px 0;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(138, 156, 176, 0.88);
}
.tt-results-perf-strip {
  padding: 10px 14px 0;
  border-bottom: 1px solid rgba(42, 53, 68, 0.45);
}
.tt-results-perf-strip[hidden] {
  display: none !important;
}
.tt-results-perf-strip .rm-perf-head {
  margin-bottom: 8px;
}
.tt-results-perf-strip .tt-results-section-title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(196, 212, 224, 0.9);
}
.tt-results-open-rail {
  padding: 0 14px 10px;
  border-top: 1px solid rgba(42, 53, 68, 0.35);
}
.tt-results-open-rail.is-empty .tt-results-open-list {
  display: none;
}
.rm-open-rail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0 6px;
}
.rm-open-rail-label {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(78, 184, 201, 0.82);
}
.rm-open-rail-meta {
  margin: 0;
  font-size: 0.62rem;
}
.tt-results-desk-cta-slot {
  padding: 0 14px 14px;
}
.rm-results-desk-cta-hint {
  margin: 0 0 8px;
  text-align: center;
  line-height: 1.35;
}
.tt-results-desk-cta-slot[hidden] {
  display: none !important;
}
.tt-results-desk-cta-slot .rm-results-desk-cta {
  width: 100%;
  justify-content: center;
}
.tt-results-command-center .tt-results-hero {
  border-bottom: none;
  background: transparent;
  box-shadow: none;
}
.tt-results-command-center .rm-results-desk {
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.tt-results-command-center .tt-results-open-list .trade-item,
.tt-results-command-center .tt-results-open-list .rm-open-row {
  background: rgba(0, 0, 0, 0.22);
  border-color: rgba(42, 53, 68, 0.55);
}
.rm-results-desk-signals {
  margin: 4px 0 0;
  font-size: 0.62rem;
  line-height: 1.35;
  color: rgba(138, 156, 176, 0.9);
}
.tt-results-hero {
  position: relative;
  flex-shrink: 0;
  padding: 0;
  border-bottom: 1px solid rgba(42, 53, 68, 0.65);
  background: linear-gradient(180deg, rgba(10, 16, 24, 0.98) 0%, rgba(12, 18, 26, 0.94) 100%);
}
.tt-results-hero-inner {
  padding: 12px 14px 14px;
  transition: opacity 0.22s ease;
}
.tt-results-hero--overview .tt-results-hero-inner {
  padding: 0;
}
.tt-results-hero--overview {
  border-bottom: none;
  background: transparent;
}
.rm-results-desk {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(78, 184, 201, 0.22);
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.rm-results-desk-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.rm-results-desk-mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 90% 70% at 100% 0%, rgba(78, 184, 201, 0.16), transparent 55%),
    radial-gradient(ellipse 60% 50% at 0% 100%, rgba(212, 160, 23, 0.08), transparent 50%),
    linear-gradient(155deg, rgba(10, 16, 24, 0.96) 0%, rgba(14, 22, 32, 0.92) 48%, rgba(8, 12, 18, 0.98) 100%);
}
.rm-results-desk-mesh::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.32;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.55), transparent 85%);
}
.rm-results-desk-glow {
  position: absolute;
  top: -30%;
  right: -10%;
  width: 55%;
  height: 80%;
  background: radial-gradient(circle, rgba(78, 184, 201, 0.18), transparent 68%);
  filter: blur(8px);
}
.rm-results-desk-mark {
  position: absolute;
  right: -6px;
  bottom: -10px;
  width: 108px;
  height: 108px;
  opacity: 0.12;
  transform: rotate(-8deg);
}
.rm-results-desk-body {
  position: relative;
  z-index: 1;
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rm-results-desk-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.rm-results-desk-kicker {
  margin: 0 0 4px;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(78, 184, 201, 0.82);
}
.rm-results-desk-title {
  margin: 0;
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: #f2f6fa;
}
.rm-results-desk-sub {
  margin: 6px 0 0;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(196, 212, 224, 0.78);
  max-width: 36ch;
}
.rm-results-desk-pulse {
  flex-shrink: 0;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 600;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(78, 184, 201, 0.25);
  color: #8ae4d8;
}
.rm-results-desk-indices {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rm-desk-index {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 5px 9px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.65);
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
}
.rm-desk-index-sym {
  font-weight: 700;
  color: var(--accent-muted);
}
.rm-desk-index-px {
  color: #e8f0f6;
}
.rm-desk-index-chg {
  font-weight: 600;
}
.rm-desk-index--up .rm-desk-index-chg {
  color: var(--yes);
}
.rm-desk-index--down .rm-desk-index-chg {
  color: var(--no);
}
.rm-results-desk-chart-band {
  height: 72px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.45);
  overflow: hidden;
}
.rm-results-desk-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rm-desk-pill {
  font-size: 0.58rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(78, 184, 201, 0.1);
  border: 1px solid rgba(78, 184, 201, 0.28);
  color: #a8dce6;
}
.rm-results-desk-personal {
  margin: 0;
  font-size: 0.62rem;
  color: var(--muted);
}
.rm-results-desk-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rm-results-desk-cta {
  width: 100%;
  justify-content: center;
}
.rm-results-desk-back {
  margin: 0;
  padding: 0 14px 10px;
  text-align: center;
}
.tt-results-hero-inner.is-desk-refreshing .rm-results-desk {
  opacity: 0.92;
  transition: opacity 0.2s ease;
}
.rm-results-desk--skeleton .rm-results-desk-body {
  gap: 12px;
}
.rm-desk-skel-line {
  height: 14px;
  border-radius: 6px;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.04) 0%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0.04) 100%
  );
  background-size: 200% 100%;
  animation: rm-desk-shimmer 1.4s ease-in-out infinite;
}
.rm-desk-skel-line--title {
  width: 58%;
  height: 18px;
}
.rm-desk-skel-line--sub {
  width: 88%;
}
.rm-desk-skel-chart {
  min-height: 72px;
  background: rgba(0, 0, 0, 0.28);
  animation: rm-desk-shimmer 1.4s ease-in-out infinite;
}
.rm-desk-spark-idle {
  background: linear-gradient(
    90deg,
    rgba(78, 184, 201, 0.06) 0%,
    rgba(78, 184, 201, 0.14) 50%,
    rgba(78, 184, 201, 0.06) 100%
  );
  background-size: 200% 100%;
  animation: rm-desk-shimmer 1.6s ease-in-out infinite;
}
@keyframes rm-desk-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rm-desk-skel-line,
  .rm-desk-skel-chart,
  .rm-desk-spark-idle {
    animation: none;
  }
}
.tt-results-open {
  padding: 14px 14px 12px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
}
.tt-results-open-meta {
  margin: 0 0 8px;
  font-size: 0.65rem;
}
.tt-results-open-list .trade-item,
.tt-results-open-list .rm-open-row {
  padding: 10px 12px;
  margin-bottom: 6px;
  border-radius: 8px;
  background: rgba(18, 24, 32, 0.55);
  border: 1px solid rgba(78, 184, 201, 0.18);
}
.tt-results-open-list .trade-item--click,
.tt-results-open-list .rm-open-row.trade-item--click {
  cursor: pointer;
}
.tt-results-open-list .trade-item--click:hover,
.tt-results-open-list .rm-open-row.trade-item--click:hover {
  background: rgba(78, 184, 201, 0.08);
  border-color: rgba(78, 184, 201, 0.32);
}
.tt-results-open-list .trade-item--active,
.tt-results-open-list .rm-open-row.trade-item--active {
  background: rgba(78, 184, 201, 0.1);
  border-color: rgba(78, 184, 201, 0.4);
}
.rm-open-row-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.rm-open-row-title {
  min-width: 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: #e6edf4;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.rm-open-row-pnl {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}
.rm-open-row-meta {
  margin-top: 4px;
  font-size: 0.62rem;
  font-weight: 400;
  color: #8b9cb3;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}
.rm-open-pnl--pos {
  color: #4eb8c9;
}
.rm-open-pnl--neg {
  color: #e07a5a;
}
.tt-results-hero--position .tt-hero-card--position .tt-hero-metrics--position {
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
}
.tt-tab-panel:not(.hidden) {
  animation: tt-tab-enter 0.24s ease;
}
@keyframes tt-tab-enter {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ca-plan-flag-fabric {
  transition: transform 0.2s ease, filter 0.2s ease;
}
@media (prefers-reduced-motion: reduce) {
  .tt-results-hero-inner,
  .tt-tab-panel:not(.hidden),
  .ca-chart-mount .ca-trade-plan-lines,
  .ca-chart-mount .ca-trade-proj,
  .ca-plan-flag-fabric {
    transition: none;
    animation: none;
  }
}
.tt-results-hero-setup-slot {
  padding: 0 14px 12px;
  border-top: 1px solid rgba(42, 53, 68, 0.45);
}
.tt-results-hero-setup-slot {
  display: none !important;
}
.tt-results-hero-setup-slot.hidden {
  display: none !important;
}
.tt-hero-news--buy,
.tt-hero-news--signal {
  border-color: rgba(212, 160, 23, 0.45);
  background: rgba(212, 160, 23, 0.08);
}
.tt-hero-card {
  border-radius: 14px;
  border: 1px solid rgba(78, 184, 201, 0.22);
  background: rgba(8, 14, 22, 0.72);
  overflow: hidden;
}
.tt-hero-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 10px;
}
.tt-hero-head--setup {
  border-bottom: 1px solid rgba(42, 53, 68, 0.45);
}
.tt-hero-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.tt-hero-logo-wrap {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(78, 184, 201, 0.2), rgba(139, 127, 212, 0.15));
  border: 1px solid transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.tt-hero-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 6px;
}
.tt-hero-logo--fallback,
.tt-hero-logo-fallback {
  display: none;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #8ae4d8;
}
.tt-hero-logo--fallback + .tt-hero-logo-fallback,
.tt-hero-logo-wrap:not(:has(img[src])) .tt-hero-logo-fallback {
  display: block;
}
.tt-hero-titles {
  min-width: 0;
}
.tt-hero-kicker {
  margin: 0 0 4px;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent-muted);
}
.tt-hero-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
  color: #f2f6fa;
}
.tt-hero-exchange {
  margin: 4px 0 0;
  font-size: 0.62rem;
  color: var(--muted);
}
.tt-hero-price-block {
  text-align: right;
  flex-shrink: 0;
}
.tt-hero-price {
  display: block;
  font-size: 1.55rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.tt-hero-chg {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tt-hero-session {
  display: block;
  margin-top: 2px;
  font-size: 0.58rem;
  color: var(--muted);
}
.tt-hero-price--up .tt-hero-price,
.tt-hero-price--up .tt-hero-chg {
  color: var(--yes);
}
.tt-hero-price--down .tt-hero-price,
.tt-hero-price--down .tt-hero-chg {
  color: var(--no);
}
.tt-hero-chart-band {
  margin: 0 14px 10px;
  height: 72px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid transparent;
  overflow: hidden;
}
.tt-hero-spark {
  width: 100%;
  height: 100%;
  display: block;
}
.tt-hero-spark-fill {
  fill: rgba(78, 184, 201, 0.12);
  stroke: none;
}
.tt-hero-spark-line {
  fill: none;
  stroke: #4eb8c9;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.tt-hero-spark-placeholder {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  color: var(--muted);
}
.tt-hero-news {
  margin: 0 14px 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(78, 184, 201, 0.06);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 10px;
}
.tt-hero-news-icon {
  font-size: 0.9rem;
  line-height: 1.3;
}
.tt-hero-news-text {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.45;
  color: #dce8f0;
  grid-column: 2;
}
.tt-hero-news-meta {
  margin: 0;
  font-size: 0.58rem;
  color: var(--muted);
  grid-column: 2;
}
.tt-hero-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px 0;
  /* One faint divider between the chart band and the stat grid (a region
     separator — an allowed default keyline). No internal cell lines. */
  border-top: 1px solid var(--keyline);
}
.tt-hero-metric {
  padding: 7px 10px;
}
.tt-hero-metric-label {
  display: block;
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 2px;
}
.tt-hero-metric-value {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: #e8f0f6;
}
.tt-hero-footnote,
.tt-hero-idle-copy,
.tt-hero-signal-desc {
  margin: 0;
  padding: 10px 14px 12px;
  font-size: 0.62rem;
  line-height: 1.45;
  color: var(--muted);
}
.tt-hero-loading {
  padding: 24px 14px;
  text-align: center;
  font-size: 0.75rem;
  color: var(--muted);
}
.tt-hero-setup-body {
  display: grid;
  grid-template-columns: 1fr minmax(0, 1.1fr);
  gap: 12px;
  padding: 12px 14px 14px;
}
.tt-hero-setup-svg {
  width: 100%;
  height: auto;
  background: rgba(0, 0, 0, 0.22);
  border-radius: 10px;
  border: 1px solid rgba(42, 53, 68, 0.55);
}
.tt-hero-setup-line--entry { stroke: #4eb8c9; stroke-width: 1.5; stroke-dasharray: none; opacity: 0.95; }
.tt-hero-setup-line--stop { stroke: #e8954f; stroke-width: 1.5; }
.tt-hero-setup-line--t1,
.tt-hero-setup-line--t2 { stroke: #6bc4d8; stroke-width: 1.2; opacity: 0.85; }
.tt-hero-setup-lbl { font-size: 9px; fill: var(--muted); font-weight: 600; }
.tt-hero-setup-lbl--entry { fill: #8ae4d8; }
.tt-hero-setup-lbl--stop { fill: #f5c99a; }
.tt-hero-setup-val { font-size: 9px; fill: #e8f0f6; text-anchor: end; font-variant-numeric: tabular-nums; }
.tt-hero-setup-levels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  align-content: start;
}
.tt-hero-rr-badge {
  align-self: flex-start;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(78, 184, 201, 0.18);
  border: 1px solid rgba(78, 184, 201, 0.45);
  color: #8ae4d8;
}
.tt-hero-signal-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 14px 8px;
}
.tt-hero-pill {
  font-size: 0.58rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(212, 160, 23, 0.14);
  border: 1px solid rgba(212, 160, 23, 0.4);
  color: #fcd34d;
}
.tt-hero-card--idle {
  padding: 18px 14px;
}
@media (max-width: 720px) {
  .tt-hero-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tt-hero-metrics-col:nth-child(3),
  .tt-hero-metrics-col:nth-child(4) {
    border-left: none;
  }
  .tt-hero-setup-body {
    grid-template-columns: 1fr;
  }
  .tt-hero-head {
    flex-direction: column;
  }
  .tt-hero-price-block {
    text-align: left;
  }
}
.tt-results-section-title {
  margin: 0 0 8px;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent-muted);
}
.tt-results-setup {
  padding: 0 14px 12px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
}
.tt-results-setup.hidden {
  display: none !important;
}
.tt-results-plan-slot {
  padding-top: 12px;
}
.ca-plan-panel--embedded {
  position: static;
  width: 100%;
  max-width: none;
  margin: 0;
  box-shadow: none;
  pointer-events: auto;
}
.tt-results-active {
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
}
.tt-results-perf {
  padding: 14px 14px 12px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
}
.tt-results-perf[hidden] {
  display: none !important;
}
.rm-perf-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.rm-perf-head .tt-results-section-title {
  margin: 0;
}
.rm-equity {
  width: 130px;
  height: 38px;
  flex: 0 0 auto;
}
.rm-equity .rm-equity-zero {
  stroke: rgba(120, 140, 160, 0.35);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}
.rm-equity polyline {
  fill: none;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.rm-equity.is-pos polyline {
  stroke: #4eb8c9;
}
.rm-equity.is-neg polyline {
  stroke: #e8954f;
}
.rm-perf-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(64px, 1fr));
  gap: 6px;
}
.rm-perf-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  border-radius: 6px;
  background: rgba(18, 24, 32, 0.55);
  border: 1px solid rgba(42, 53, 68, 0.65);
}
.rm-perf-chip-k {
  font-size: 0.52rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.rm-perf-chip strong {
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
}
.rm-perf-chip strong.is-pos {
  color: #4eb8c9;
}
.rm-perf-chip strong.is-neg {
  color: #e8954f;
}
.rm-perf-follow {
  margin: 10px 0 0;
  font-size: 0.62rem;
  color: var(--muted);
}
.rm-perf-follow strong {
  color: var(--accent-muted);
  font-variant-numeric: tabular-nums;
}
.tt-results-closed {
  padding: 14px 14px 16px;
  border-bottom: none;
  opacity: 0.92;
}
.tt-results-closed .tt-results-section-title {
  color: rgba(138, 156, 176, 0.85);
}
.tt-results-closed-meta {
  margin: 0 0 8px;
  font-size: 0.62rem;
  color: var(--muted);
}
.tt-results-closed-list .trade-item {
  padding: 8px 10px;
  margin-bottom: 6px;
  border-radius: 8px;
  background: rgba(18, 24, 32, 0.55);
  border: 1px solid rgba(42, 53, 68, 0.65);
  font-size: 0.68rem;
  line-height: 1.4;
}
.tt-results-closed-list .trade-item--recent-schwab {
  border-color: rgba(212, 162, 74, 0.45);
  background: rgba(212, 162, 74, 0.06);
}
.tt-results-closed-list .trade-item--click {
  cursor: pointer;
}
.tt-results-closed-list .trade-item--click:hover {
  background: rgba(78, 184, 201, 0.08);
  border-color: rgba(78, 184, 201, 0.22);
}
.tt-results-closed-list .trade-item--active {
  background: rgba(212, 162, 74, 0.12);
  border-color: rgba(212, 162, 74, 0.55);
  box-shadow: inset 0 0 0 1px rgba(212, 162, 74, 0.25);
}
.ca-chart-node--active circle {
  filter: drop-shadow(0 0 4px rgba(252, 211, 77, 0.65));
}
.ca-chart-status-trade {
  color: var(--accent);
  font-weight: 600;
}
.rm-debrief-recent-badge {
  display: inline-block;
  font-size: 0.58rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent);
  margin-left: 4px;
}
.rm-debrief-btn {
  display: inline-block;
  margin-top: 6px;
  font-size: 0.65rem;
  font-weight: 600;
}
.rm-debrief-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rm-debrief-section {
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
}
.rm-debrief-section:last-child {
  border-bottom: none;
}
.rm-debrief-section h3 {
  margin: 0 0 8px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.rm-debrief-facts {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.68rem;
}
.rm-debrief-learnings {
  margin: 0;
  padding-left: 18px;
  font-size: 0.68rem;
  line-height: 1.45;
}
.rm-debrief-learnings li {
  margin-bottom: 6px;
}
.rm-debrief-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.rm-debrief-tag {
  border: 1px solid rgba(42, 53, 68, 0.85);
  background: rgba(18, 24, 32, 0.65);
  color: var(--text);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 0.62rem;
  cursor: pointer;
}
.rm-debrief-tag.is-selected {
  border-color: rgba(212, 162, 74, 0.75);
  background: rgba(212, 162, 74, 0.15);
  color: var(--accent);
}
.rm-debrief-note-label,
.rm-debrief-stop-label {
  display: block;
  margin-bottom: 10px;
  font-size: 0.65rem;
}
.rm-debrief-note-label textarea,
.rm-debrief-stop-input {
  display: block;
  width: 100%;
  margin-top: 4px;
  box-sizing: border-box;
}
.rm-debrief-warn {
  color: #d4a24a;
}
.rm-debrief-save-status {
  margin-top: 8px;
}
body.debrief-open {
  overflow: hidden;
}
#tradeDebriefDrawer {
  z-index: 225;
}
#debriefBackdrop {
  z-index: 220;
}
.tt-results-history {
  padding: 14px 14px 16px;
}
.tt-results-history .calendar-search-label {
  margin-bottom: 12px;
}
.tt-results-history .calendar-grid {
  margin-bottom: 12px;
}
.tt-results-scan-dir-label {
  margin: 4px 0 8px;
  font-size: 0.58rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.tt-results-active.hidden {
  display: none !important;
}
.tt-results-active-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 10px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.55);
  background: rgba(78, 184, 201, 0.04);
}
.tt-results-active-title {
  margin: 2px 0 4px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #f2f6fa;
}
.tt-results-active-kicker {
  margin: 0;
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent-muted);
}
.tt-results-active-meta {
  margin: 0;
  font-size: 0.68rem;
}
.tt-results-active-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex-shrink: 0;
}
.tt-results-picks {
  padding-top: 8px;
}
.calendar-entry--published {
  border-color: rgba(78, 184, 201, 0.45);
  background: rgba(78, 184, 201, 0.08);
  margin-bottom: 6px;
}
.calendar-entry--published .cal-entry-hint {
  display: block;
  margin-top: 4px;
  font-size: 0.62rem;
  color: var(--accent-muted);
}
.cal-day.cal-day--selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(78, 184, 201, 0.35);
}
.cal-list-empty {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px dashed rgba(42, 53, 68, 0.8);
}
.tt-metrics-strip {
  flex-shrink: 0;
  padding: 12px 14px 4px;
  border-bottom: none;
}
.tt-metrics-label {
  margin: 0 0 6px;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.tt-metrics-label + .tt-metrics-grid {
  margin-bottom: 12px;
}
.tt-metrics-grid--realized .tt-metric-card {
  border-color: rgba(90, 140, 110, 0.35);
  background: rgba(20, 40, 28, 0.35);
}
.tt-metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
@media (min-width: 1280px) {
  .tt-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.tt-metric-card {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.65);
}
.tt-metric-card--gain .tt-metric-val {
  color: var(--bull-muted);
}
.tt-metric-kicker {
  display: block;
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.tt-metric-val {
  display: block;
  font-size: 1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #f2f6fa;
  line-height: 1.2;
}
.tt-metric-sub {
  display: block;
  font-size: 0.58rem;
  color: var(--muted);
  margin-top: 2px;
}
.tt-scan-summary {
  padding: 4px 2px 16px;
}
.tt-scan-summary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.tt-scan-summary-title {
  margin: 0 0 6px;
  font-size: 1rem;
}
.tt-scan-summary-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
  font-size: 0.72rem;
}
.tt-scan-summary-stats dt {
  color: var(--muted);
  font-size: 0.58rem;
  text-transform: uppercase;
}
.tt-scan-summary-stats dd {
  margin: 2px 0 0;
  font-weight: 700;
  color: #f2f6fa;
}
.tt-strategy-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.tt-learning-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 10px 12px 0;
  border-bottom: none;
}
.tt-learning-stack .tt-learning-panel:empty {
  display: none;
}
.tt-strategy-board {
  flex: none;
  min-height: 0;
  overflow: visible;
  padding: 16px 14px 18px;
}
.tt-strategy-hero {
  margin-bottom: 12px;
}
.tt-strategy-title {
  margin: 4px 0 6px;
  font-size: 1.05rem;
}
.tt-strategy-grid {
  display: grid;
  gap: 10px;
}
@media (min-width: 641px) {
  .tt-strategy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.tt-strategy-card {
  padding: 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(42, 53, 68, 0.7);
  display: flex;
  flex-direction: column;
  gap: 8px;
  cursor: pointer;
  transition: border-color 0.15s ease, transform 0.06s ease, background 0.15s ease;
}
.tt-strategy-card:hover {
  border-color: rgba(78, 184, 201, 0.45);
  background: rgba(0, 0, 0, 0.42);
}
.tt-strategy-card:active {
  transform: translateY(1px);
}
/* Persona + Setup context bar (item 13) heads the Scan>Strategy tab. */
.tt-persona-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: flex-end;
  padding: 10px 12px;
  margin-bottom: 10px;
  border-radius: 10px;
  border: 1px solid rgba(42, 53, 68, 0.6);
  background: rgba(0, 0, 0, 0.2);
}
.tt-persona-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tt-persona-label {
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted, #8b9cb3);
}
.tt-persona-select {
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text, #e6edf4);
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(42, 53, 68, 0.8);
  border-radius: 7px;
  padding: 5px 8px;
  cursor: pointer;
}
.tt-persona-select:focus {
  outline: none;
  border-color: var(--accent-border, rgba(78, 184, 201, 0.5));
}
.tt-persona-setup {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--accent-muted, #7fd6e6);
}
/* 2-state detail (full) view (item 18): replaces the grid when a card opens. */
.tt-strategy-detail {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 2px 8px;
  animation: ttStrategyDetailIn 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes ttStrategyDetailIn {
  from { opacity: 0; transform: translateX(10px); }
  to { opacity: 1; transform: none; }
}
.tt-strategy-back {
  align-self: flex-start;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 4px 2px;
  color: var(--accent-muted, #7fd6e6);
}
.tt-strategy-back:hover {
  text-decoration: underline;
}
.tt-strategy-detail-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.tt-strategy-detail-head h3 {
  margin: 0;
  font-size: 1.05rem;
  flex: 1 1 auto;
}
.tt-strategy-detail-summary {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text, #e6edf4);
}
.tt-strategy-rules--detail {
  font-size: 0.76rem;
}
.tt-strategy-detail-foot {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 4px;
}
.tt-strat-learn {
  border-color: rgba(78, 184, 201, 0.5) !important;
  color: #7fd6e6 !important;
  background: rgba(78, 184, 201, 0.1) !important;
}
.tt-strat-learn:hover {
  background: rgba(78, 184, 201, 0.2) !important;
}
.tt-strategy-card--featured {
  border-color: rgba(78, 184, 201, 0.45);
  box-shadow: 0 0 24px rgba(78, 184, 201, 0.08);
}
.tt-strategy-card--wide {
  grid-column: 1 / -1;
}
.tt-strategy-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.tt-strategy-badge {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--accent-muted);
}
.tt-strategy-risk {
  font-size: 0.62rem;
  color: var(--muted);
}
.tt-strategy-card h4 {
  margin: 0;
  font-size: 0.92rem;
}
.tt-strategy-rules {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.68rem;
  color: var(--muted);
  line-height: 1.45;
}
.tt-strategy-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-top: auto;
  font-size: 0.64rem;
  color: var(--muted);
}
.tt-strategy-alloc {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tt-alloc-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr 2rem;
  align-items: center;
  gap: 8px;
  font-size: 0.68rem;
}
.tt-alloc-bar {
  height: 6px;
  border-radius: 999px;
  background: rgba(42, 53, 68, 0.8);
  overflow: hidden;
}
.tt-alloc-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), var(--bull-muted));
}

/* --- Strategy board (Phase 1): active bar + recommended cards --- */
.tt-strategy-active {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 12px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: rgba(78, 184, 201, 0.08);
  border: 1px solid rgba(78, 184, 201, 0.32);
}
.tt-strategy-active-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.tt-strategy-active-kicker {
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent-muted);
}
.tt-strategy-active-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
}
.tt-strategy-active-hint {
  font-size: 0.62rem;
  color: var(--muted);
}
.tt-strategy-bt-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(18, 28, 38, 0.65);
  border: 1px solid rgba(42, 58, 74, 0.8);
}
.tt-strategy-bt-meta .meta { margin: 0; }
.tt-strategy-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 14px 0 8px;
}
.tt-strategy-section-head .tt-strategy-title {
  margin: 0;
}
.tt-strategy-section-head .meta {
  font-size: 0.62rem;
}
.tt-strategy-card--active {
  border-color: rgba(78, 184, 201, 0.55);
  box-shadow: 0 0 22px rgba(78, 184, 201, 0.1);
}
.tt-strategy-card--soon {
  opacity: 0.72;
}
.tt-strategy-perf {
  font-size: 0.64rem;
  color: var(--muted);
}
.tt-strategy-perf--has {
  color: var(--accent-muted);
  font-weight: 600;
}
.tt-strategy-perf--soon {
  font-style: italic;
}
.tt-strategy-foot-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.tt-strat-use.is-active {
  background: rgba(78, 184, 201, 0.18);
  border-color: rgba(78, 184, 201, 0.4);
  color: var(--accent-muted);
  cursor: default;
}
.tt-strategy-mine {
  margin-top: 8px;
  padding: 14px;
  border-radius: 12px;
  border: 1px dashed rgba(42, 53, 68, 0.8);
  background: rgba(0, 0, 0, 0.18);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.tt-strategy-mine .meta {
  margin: 0;
}

.tt-learning-panel {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(42, 53, 68, 0.65);
}
.tt-learning-title {
  margin: 0 0 4px;
  font-size: 0.92rem;
  font-weight: 700;
}

/* Green-light validation panel (#5) */
.tt-learning-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.tt-learning-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.tt-learning-head h3 {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
}
.tt-learning-tag {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid rgba(78, 184, 201, 0.3);
}
.tt-learning-note {
  margin: 8px 0 0;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
}
.glv-table {
  width: 100%;
  margin-top: 10px;
  border-collapse: collapse;
  font-size: 0.74rem;
  font-variant-numeric: tabular-nums;
}
.glv-table th,
.glv-table td {
  text-align: right;
  padding: 5px 6px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.5);
}
.glv-table thead th {
  color: var(--muted);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.glv-table tbody th {
  text-align: left;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
}
.glv-table tr.is-thin {
  opacity: 0.55;
}
.glv-table td.is-good {
  color: #5fc9da;
}
.glv-table td.is-weak {
  color: #e8954f;
}
.glv-dots {
  display: inline-flex;
  gap: 2px;
}
.glv-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(139, 156, 179, 0.35);
}
.glv-dot.is-lit {
  background: #4eb8c9;
  box-shadow: 0 0 5px rgba(78, 184, 201, 0.6);
}
.glv-thin {
  margin-left: 5px;
  font-size: 0.58rem;
  color: var(--muted);
}
.tt-calibration-grid {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}
@media (min-width: 1100px) {
  .tt-calibration-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.tt-cal-block h5 {
  margin: 0 0 8px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.tt-cal-summary {
  font-weight: 600;
  color: var(--text);
  text-transform: none;
  letter-spacing: 0;
}
.tt-cal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
}
.tt-cal-table th,
.tt-cal-table td {
  padding: 4px 8px;
  text-align: left;
  border-bottom: 1px solid rgba(42, 53, 68, 0.5);
}
.tt-cal-thresholds,
.tt-cal-note {
  margin: 8px 0 0;
  font-size: 0.64rem;
  color: var(--muted);
}
.tt-review-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 10px 0;
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.tt-review-warn {
  margin: 8px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 0.68rem;
  background: rgba(120, 80, 20, 0.25);
  border: 1px solid rgba(180, 120, 40, 0.35);
  color: #e8c878;
}
.tt-review-field {
  display: block;
  margin-top: 10px;
}
.tt-review-field span {
  display: block;
  margin-bottom: 4px;
  font-size: 0.64rem;
  font-weight: 600;
  color: var(--muted);
}
.tt-review-field textarea,
.tt-review-field input {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  font-size: 0.72rem;
}
.tt-review-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}
.tt-review-select {
  font-size: 0.68rem;
  max-width: 10rem;
}
.tt-review-preview {
  margin-top: 12px;
  padding: 10px;
  max-height: 12rem;
  overflow: auto;
  font-size: 0.62rem;
  white-space: pre-wrap;
  background: rgba(0, 0, 0, 0.35);
  border-radius: 8px;
  border: 1px solid rgba(42, 53, 68, 0.5);
}
.tt-review-cal {
  margin-top: 4px;
}

/* Workspace staggered boot — no scrollbars / layout snap while columns load */
.morning-workspace--booting {
  overflow: hidden;
}
.morning-workspace--booting .ws-panel {
  opacity: 0.72;
  transform: translateY(6px) scale(0.992);
  filter: saturate(0.85);
  transition:
    opacity 0.45s ease,
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.45s ease,
    box-shadow 0.45s ease,
    border-color 0.45s ease;
}
.morning-workspace--booting .ws-panel--queued {
  opacity: 0.55;
}
.morning-workspace--booting .ws-panel--queued .ws-panel-body,
.morning-workspace--booting .ws-panel--loading .ws-panel-body,
.ws-panel--loading .ws-panel-body,
.ws-panel--scan-loading .ws-panel-body {
  overflow: hidden;
}
.morning-workspace--booting .ws-panel--queued .ws-panel-body,
.morning-workspace--booting .ws-panel--loading .ws-panel-body {
  position: relative;
  min-height: 0;
}
.morning-workspace--booting .ws-panel--queued .ws-panel-body > :not(.ws-col-loader),
.morning-workspace--booting .ws-panel--loading .ws-panel-body > :not(.ws-col-loader) {
  display: none;
}
.morning-workspace--booting .ws-panel--active {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: saturate(1);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);
}
.morning-workspace--ready .ws-panel {
  opacity: 1;
  transform: none;
  filter: none;
}
.ws-panel--loading .ws-panel-body {
  position: relative;
  min-height: 0;
}
.ws-col-progress {
  position: relative;
  z-index: 4;
  margin-bottom: 4px;
  animation: wsLoaderIn 0.38s ease;
}
.ws-col-progress--out {
  animation: wsLoaderOut 0.42s ease forwards;
  pointer-events: none;
}
.ws-col-progress .ws-load-shell {
  width: 100%;
  max-width: none;
  padding: 10px 12px 8px;
}
.ws-col-loader {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background:
    radial-gradient(circle at 50% 0%, rgba(78, 184, 201, 0.12), transparent 55%),
    linear-gradient(165deg, rgba(18, 24, 32, 0.94) 0%, rgba(12, 18, 24, 0.98) 100%);
  backdrop-filter: blur(6px);
  animation: wsLoaderIn 0.38s ease;
}
.ws-col-loader--out {
  animation: wsLoaderOut 0.42s ease forwards;
  pointer-events: none;
}
.ws-load-shell {
  position: relative;
  width: min(100%, 280px);
  text-align: center;
  padding: 18px 16px 14px;
  border-radius: 14px;
  border: 1px solid rgba(78, 184, 201, 0.22);
  background: rgba(0, 0, 0, 0.25);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.03),
    0 8px 28px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}
.ws-load-shell--mini {
  width: 100%;
  max-width: none;
  padding: 8px 10px 6px;
  border-radius: 8px;
  min-height: 44px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.ws-load-shell--mini .ws-load-orbit {
  width: 30px;
  height: 30px;
  margin: 0 auto 8px;
}
.ws-load-shell--mini .ws-load-orbit span {
  width: 5px;
  height: 5px;
}
.ws-load-shell--mini .ws-load-orbit span:last-child {
  width: 4px;
  height: 4px;
}
.ws-load-shell--mini .ws-load-title {
  margin: 0 0 4px;
  font-size: 0.74rem;
}
.ws-load-shell--mini .ws-load-step {
  margin: 0;
  font-size: 0.64rem;
  min-height: 0;
}
.ws-load-shell--mini .ws-load-scanline {
  opacity: 0.55;
}
.ws-load-slot {
  position: relative;
  min-height: 44px;
  margin-bottom: 4px;
  border-radius: 8px;
  overflow: hidden;
}
.ws-load-slot--loading {
  border: 1px solid rgba(78, 184, 201, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.ws-load-slot--ready {
  border-color: transparent;
  background: transparent;
  min-height: 0;
  animation: wsContentIn 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}
.fv-market-block.ws-load-slot--ready,
.pick-list-stream > .ws-load-slot--ready {
  margin-bottom: 4px;
}
.pick-list-stream {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ws-load-grid {
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(78, 184, 201, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78, 184, 201, 0.08) 1px, transparent 1px);
  background-size: 18px 18px;
  animation: wsGridDrift 6s linear infinite;
  mask-image: radial-gradient(circle at 50% 40%, black 20%, transparent 72%);
}
.ws-load-orbit {
  position: relative;
  width: 52px;
  height: 52px;
  margin: 0 auto 12px;
}
.ws-load-orbit::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px dashed rgba(78, 184, 201, 0.35);
  animation: wsOrbitSpin 4.8s linear infinite;
}
.ws-load-orbit span {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 12px var(--accent-border);
}
.ws-load-orbit span:first-child {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  animation: wsPulseDot 1.4s ease-in-out infinite;
}
.ws-load-orbit span:last-child {
  bottom: 4px;
  right: 6px;
  width: 5px;
  height: 5px;
  opacity: 0.75;
  animation: wsPulseDot 1.4s ease-in-out 0.45s infinite;
}
.ws-load-scanline {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  top: -2px;
  background: linear-gradient(90deg, transparent, rgba(78, 184, 201, 0.85), transparent);
  box-shadow: 0 0 14px rgba(78, 184, 201, 0.55);
  animation: wsScanDown 2.2s ease-in-out infinite;
  opacity: 0.7;
}
.ws-load-kicker {
  margin: 0 0 4px;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}
.ws-load-title {
  margin: 0 0 6px;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
}
.ws-load-step {
  margin: 0 0 12px;
  font-size: 0.72rem;
  color: var(--muted);
  min-height: 1.1em;
}
.ws-load-track {
  height: 3px;
  border-radius: 999px;
  background: rgba(42, 53, 68, 0.8);
  overflow: hidden;
  margin-bottom: 10px;
}
.ws-load-track-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--bull-strong), var(--accent), #8b7fd4);
  box-shadow: 0 0 10px rgba(78, 184, 201, 0.45);
  transition: width 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.ws-load-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
}
.ws-load-dots span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(78, 184, 201, 0.35);
  animation: wsDotPulse 1.1s ease-in-out infinite;
}
.ws-load-dots span:nth-child(2) { animation-delay: 0.18s; }
.ws-load-dots span:nth-child(3) { animation-delay: 0.36s; }
.ws-panel--ready .ws-panel-body > :not(.ws-col-progress):not(.ws-col-loader) {
  animation: wsContentIn 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.ws-panel--failed {
  box-shadow: inset 0 0 0 1px rgba(232, 149, 79, 0.45);
}
@keyframes wsLoaderIn {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes wsLoaderOut {
  to { opacity: 0; transform: scale(1.02); }
}
@keyframes wsGridDrift {
  from { background-position: 0 0, 0 0; }
  to { background-position: 0 36px, 36px 0; }
}
@keyframes wsOrbitSpin {
  to { transform: rotate(360deg); }
}
@keyframes wsPulseDot {
  0%, 100% { transform: translateX(-50%) scale(1); opacity: 1; }
  50% { transform: translateX(-50%) scale(1.35); opacity: 0.65; }
}
@keyframes wsScanDown {
  0% { top: 8%; opacity: 0; }
  15% { opacity: 0.85; }
  85% { opacity: 0.85; }
  100% { top: 92%; opacity: 0; }
}
@keyframes wsDotPulse {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.25); background: var(--accent); }
}
@keyframes wsContentIn {
  from { opacity: 0; transform: translateY(8px); filter: blur(2px); }
  to { opacity: 1; transform: none; filter: none; }
}
.ws-panel-head {
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  height: var(--ws-head-height);
  min-height: var(--ws-head-height);
  padding: 0 var(--ws-col-pad-x);
  border: none;
  background: transparent;
  box-shadow: none;
}
.ws-panel-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ws-gap);
  width: 100%;
  min-height: 0;
}
.ws-panel-head--tools {
  position: relative;
}
.ws-panel-head-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}
.ws-panel-head-row--market {
  width: 100%;
}
.ws-panel-head-row--market .ws-panel-head-main {
  width: 100%;
  gap: 0;
}
.ws-panel-head-lead {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  position: relative;
}
.ws-panel-head-copy {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.fv-bias-mini-tail {
  display: none;
  width: 100%;
  max-width: 100%;
}
.fv-bias-mini--copy {
  gap: 2px;
}
.fv-bias-mini--tail {
  gap: 3px;
  padding-top: 4px;
}
.fv-bias-mini-meter-wrap {
  width: 100%;
  max-width: 100%;
}
.fv-bias-mini-meter-wrap .fv-bias-meter {
  height: 3px;
  margin: 0;
  width: 100%;
}
.ws-panel-head--tools .ws-panel-title {
  flex: 0 1 auto;
  min-width: 0;
}
h2.ws-panel-title {
  margin-bottom: 0;
}
.ws-panel-head .ws-panel-title {
  margin: 0;
  font-size: var(--ws-head-size);
  font-weight: var(--ws-head-weight);
  letter-spacing: var(--ws-head-tracking);
  text-transform: uppercase;
  line-height: 1.1;
  color: #f2f6fa;
  text-shadow: 0 0 20px rgba(78, 184, 201, 0.22);
}
.ws-panel-head-copy .ws-panel-title,
.ws-panel-head-lead .ws-panel-title {
  text-align: left;
}
.ws-panel-head-main > .ws-panel-submeta {
  width: 100%;
  min-width: 0;
}
.ws-panel-submeta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-width: 0;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.15;
}
.ws-panel-submeta-date {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}
.ws-panel-submeta-info {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
}
.ws-panel-submeta-info:empty {
  display: none;
}
.ws-panel-live {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  color: var(--muted);
  white-space: nowrap;
}
.ws-panel-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.ws-panel-live[data-state="live"] {
  color: #3dba7a;
}
.ws-panel-live[data-state="live"] .ws-panel-live-dot {
  animation: wsLivePulse 1.8s ease-out infinite;
}
.ws-panel-live[data-state="ext"] {
  color: #d4a24a;
}
.ws-panel-live[data-state="closed"] {
  opacity: 0.7;
}
.ws-panel-live[data-state="closed"] .ws-panel-live-dot {
  opacity: 0.5;
}
@keyframes wsLivePulse {
  0% { box-shadow: 0 0 0 0 rgba(61, 186, 122, 0.5); }
  70% { box-shadow: 0 0 0 5px rgba(61, 186, 122, 0); }
  100% { box-shadow: 0 0 0 0 rgba(61, 186, 122, 0); }
}
.ws-panel-meta {
  margin: 0;
  padding-left: 1px;
  font-size: var(--ws-meta-size);
  line-height: 1.3;
  color: var(--accent-muted);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ws-panel-meta.ntl-hint {
  margin: 0;
}
.ws-panel-meta--reserve {
  display: none;
}
/* Column scroll: no visible scrollbar, still wheel/touch scroll */
.ws-panel-body,
.tt-results-scroll,
.ws-scans-list,
.tt-strategy-scroll,
.tt-strategy-board,
.tt-learning-stack,
.ws-scans-setup,
#ttResearchPanel,
.rm-research-inbox,
.rm-research-inbox-inner,
.rm-research-compose textarea,
#researchReportDrawer .research-drawer-scroll {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.ws-panel-body::-webkit-scrollbar,
.tt-results-scroll::-webkit-scrollbar,
.ws-scans-list::-webkit-scrollbar,
.tt-strategy-scroll::-webkit-scrollbar,
.tt-strategy-board::-webkit-scrollbar,
.tt-learning-stack::-webkit-scrollbar,
.ws-scans-setup::-webkit-scrollbar,
#ttResearchPanel::-webkit-scrollbar,
.rm-research-inbox::-webkit-scrollbar,
.rm-research-inbox-inner::-webkit-scrollbar,
.rm-research-compose textarea::-webkit-scrollbar,
#researchReportDrawer .research-drawer-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ws-panel-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
}
.morning-workspace--ready
  .ws-panel:not(.ws-panel--loading):not(.ws-panel--scan-loading)
  > .ws-panel-body {
  overflow-y: auto;
}
.ws-panel--market .ws-panel-body,
.ws-panel--market .ws-panel-body.workspace-market-body {
  flex: 1 1 0%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  display: block;
}
.workspace-market-body {
  padding: var(--ws-col-pad-y) var(--ws-col-pad-x);
}
.ws-panel--market .market-panel--finviz,
.ws-panel--market .market-themes-wrap,
.ws-panel--market .market-panel--highlights,
.ws-panel--market .fv-market {
  flex: none;
  max-height: none;
  overflow: visible;
}
.ws-scans-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ws-scans-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 14px 16px;
}
#scansTabResults .ws-scans-list {
  flex: 0 1 auto;
  max-height: none;
}
.ws-scans-list:has(.pick-hero) {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  height: 100%;
  padding: var(--ws-col-pad-y) var(--ws-col-pad-x) 10px;
}
.ws-scans-list:has(.pick-hero--weights-edit) {
  padding-top: 0;
  padding-bottom: 6px;
}
.ws-panel--scans .ws-panel-body:has(.pick-hero) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ws-panel--chart .ws-panel-body.chart-hub-view {
  padding: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
.chart-hub-view > .chart-hub-unified,
.chart-hub-view > #chartHubUnified {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* Tablet: chart full width, market + scans below */
@media (min-width: 641px) {
  .morning-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1.12fr) minmax(0, 1fr);
    grid-template-areas:
      "chart chart"
      "market scans";
  }
  body.is-wide-ws-accordion
    .morning-workspace--wide-accordion.morning-workspace--wide-collapse-active {
    grid-template-rows: var(--ws-row-chart, minmax(0, 1.12fr)) var(--ws-row-bottom, minmax(0, 1fr));
    transition: grid-template-rows 0.28s ease;
  }
  .ws-scans-list {
    max-height: none;
  }
  .ws-panel--market > .ws-panel-body.workspace-market-body {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: block;
  }
  .ws-panel--chart .ca-chart-mount {
    flex: 1 1 0%;
    min-height: 280px;
  }
  .ws-panel--chart .ca-chart-svg-wrap {
    flex: 1 1 0%;
    min-height: 200px;
  }
  .ws-panel--chart #caRmRec,
  .ws-panel--chart .ca-rm-rec {
    display: none !important;
  }
}

/* Desktop: three columns fullscreen */
@media (min-width: 1280px) {
  :root {
    --ws-head-size: 1rem;
    --ws-head-height: 68px;
  }
  .site-header {
    padding: max(8px, env(safe-area-inset-top)) 0 var(--header-pad-bottom);
    margin-bottom: 0;
    height: var(--header-block-h);
    min-height: var(--header-block-h);
    max-height: var(--header-block-h);
  }
  .brand-logo-stack,
  .brand-logo {
    height: 120px;
    width: 120px;
    max-width: min(132px, 11vw);
  }
  .morning-workspace {
    grid-template-columns: minmax(220px, 22%) minmax(0, 1fr) minmax(260px, 26%);
    grid-template-rows: minmax(0, 1fr);
    grid-template-areas: "market chart scans";
    gap: var(--ws-gap);
  }
  body.is-wide-ws-accordion
    .morning-workspace--wide-accordion.morning-workspace--wide-collapse-active {
    grid-template-columns: var(--ws-col-market, minmax(220px, 22%))
      var(--ws-col-chart, minmax(0, 1fr))
      var(--ws-col-scans, minmax(260px, 26%));
    grid-template-rows: minmax(0, 1fr);
    grid-template-areas: "market chart scans";
    transition: grid-template-columns 0.28s ease;
  }
  .ws-panel--market {
    min-height: 0;
  }
  .ws-panel--market > .ws-panel-body.workspace-market-body {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: block;
  }
  .ws-panel--chart .chart-hub-view .chart-hub-main {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .ws-panel--chart .chart-hub-stage {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .ws-panel--chart .chart-hub-stage .chart-hub-svg,
  .ws-panel--chart .chart-hub-stage .ca-chart-svg {
    flex: 1;
    min-height: 0;
    height: 100%;
  }
}
.panel-section--market h2 {
  margin-bottom: 4px;
}
.market-panel--sidebar {
  margin-top: 4px;
}
.market-panel--sidebar .mkt-grid {
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.market-panel--sidebar .mkt-tile {
  padding: 8px 6px;
}
.market-panel--sidebar .mkt-tile-val {
  font-size: 0.95rem;
}
.market-panel--sidebar .mkt-tile-sub {
  font-size: 0.65rem;
}
@media (max-width: 860px) {
  .market-panel--sidebar .mkt-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.ntl-idle-chart {
  display: block;
  width: 100%;
  min-height: 200px;
  border-radius: 8px;
  background: #121820;
}
.ntl-idle-msg {
  text-align: center;
  padding: 20px 12px;
  color: var(--muted);
  font-size: 0.9rem;
}
.ntl-cnbc-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  font-size: 0.78rem;
  line-height: 1.35;
}
.ntl-cnbc-list li {
  padding: 6px 0;
  border-bottom: 1px solid rgba(42, 53, 68, 0.6);
}
.ntl-cnbc-list a {
  color: var(--text);
  text-decoration: none;
}
.ntl-cnbc-list a:hover {
  color: var(--accent);
}
.ntl-cnbc-time {
  color: var(--muted);
  margin-right: 6px;
  font-variant-numeric: tabular-nums;
}
.ntl-cnbc-headline {
  pointer-events: none;
}
.panel-section--sticky {
  position: sticky;
  top: 72px;
}
.ntl-hint:not(.ws-panel-meta) {
  margin: -6px 0 10px;
}
.ntl-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.ntl-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ntl-sym-chip {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid #3a4a5e;
  background: #1a2332;
  color: var(--text);
  cursor: pointer;
}
.ntl-sym-chip.active {
  border-color: var(--chip-color, var(--accent));
  box-shadow: 0 0 0 1px var(--chip-color, var(--accent));
  color: #fff;
}
.ntl-meta {
  font-size: 0.72rem;
  color: var(--muted);
}
.ntl-chart-wrap {
  overflow-x: auto;
  margin-bottom: 12px;
  border-radius: 8px;
  background: #121820;
}
.ntl-chart-svg {
  display: block;
  width: 100%;
  min-width: 480px;
  height: auto;
}
.ntl-grid {
  stroke: #2a3544;
  stroke-width: 1;
}
.ntl-axis {
  fill: var(--muted);
  font-size: 9px;
}
.ntl-marker {
  cursor: pointer;
}
.ntl-marker--sel circle {
  stroke: #fff !important;
  stroke-width: 3 !important;
}
.ntl-marker-label {
  fill: var(--text);
  font-size: 8px;
  font-weight: 700;
  pointer-events: none;
}
.ntl-subhead {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 8px;
}
.ntl-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow-y: auto;
}
.ntl-event {
  display: grid;
  grid-template-columns: 4.5rem 2.5rem 1fr;
  gap: 8px;
  align-items: start;
  padding: 8px 6px;
  border-radius: 8px;
  font-size: 0.8rem;
  border-bottom: 1px solid #2a3544;
  cursor: pointer;
}
.ntl-event--sel {
  background: var(--accent-bg);
}
.ntl-event-time {
  color: var(--accent);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.ntl-event-sym {
  font-weight: 700;
  font-size: 0.72rem;
}
.ntl-event a {
  color: var(--text);
  text-decoration: none;
}
.ntl-event a:hover {
  color: var(--accent);
}
.ntl-event--placeholder {
  opacity: 0.65;
  cursor: default;
}
.ntl-selection {
  margin: 8px 0 0;
  font-size: 0.8rem;
  color: var(--muted);
}
.ntl-loading {
  color: var(--muted);
  font-size: 0.85rem;
  padding: 24px 8px;
}
/* Sidebar collapse (mobile: closed by default via JS) */
.sidebar-collapse {
  border: 1px solid rgba(42, 53, 68, 0.55);
  border-radius: 10px;
  background: var(--card);
  overflow: hidden;
}
.sidebar-collapse-summary {
  list-style: none;
  cursor: pointer;
  padding: 10px 12px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sidebar-collapse-summary::-webkit-details-marker {
  display: none;
}
.sidebar-collapse-summary::after {
  content: " ▾";
  float: right;
  color: var(--muted);
  font-weight: 400;
}
.sidebar-collapse[open] .sidebar-collapse-summary::after {
  content: " ▴";
}
.sidebar-collapse-body .panel-section {
  margin-bottom: 0;
  border-radius: 0;
  border: none;
}
.sidebar-collapse-body {
  border-top: 1px solid rgba(42, 53, 68, 0.4);
}
@media (min-width: 861px) {
  .sidebar-collapse {
    border: none;
    background: transparent;
    border-radius: 0;
  }
  .sidebar-collapse-summary {
    display: none;
  }
  .sidebar-collapse-body {
    border-top: none;
    background: var(--card);
    border: 1px solid rgba(42, 53, 68, 0.55);
    border-radius: 10px;
  }
}
@media (max-width: 860px) {
  .panel-section--sticky {
    position: static;
  }
}
h2 {
  font-size: 0.85rem;
  color: var(--accent);
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Sticky header — logo only */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  height: var(--header-block-h);
  min-height: var(--header-block-h);
  max-height: var(--header-block-h);
  margin-bottom: 0;
  padding: max(8px, env(safe-area-inset-top)) 0 var(--header-pad-bottom);
  background: #0f1419;
  backdrop-filter: blur(10px);
  border-bottom: none;
  flex-shrink: 0;
  overflow: hidden;
  isolation: isolate;
}
.site-header::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--header-bottom-shade-h);
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.5) 0%,
    transparent 100%
  );
}
.site-header.has-header-video::before {
  height: var(--header-bottom-shade-h);
}
.site-header.has-header-video.header-shade-settling::before {
  animation: header-shade-settle 10s ease-out forwards;
}
@keyframes header-shade-settle {
  from {
    height: 100%;
  }
  to {
    height: var(--header-bottom-shade-h);
  }
}
.header-bg {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.header-bg.is-active {
  display: block;
  opacity: 0;
}
.header-bg.is-active.is-revealed {
  opacity: 1;
  transition: opacity 10s ease-out;
}
.header-bg-fx {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.45s ease;
}
.header-bg-yt-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  transition: filter 0.7s ease, mix-blend-mode 0.1s;
}
/* Feather edges — YouTube title / watch link can't be fully disabled via API */
.site-header.has-header-video .header-bg-yt-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  box-shadow:
    inset 0 32px 28px -14px rgba(6, 9, 12, 0.92),
    inset 0 -24px 20px -12px rgba(6, 9, 12, 0.75);
}
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap::after {
  box-shadow:
    inset 0 18px 16px -10px rgba(6, 9, 12, 0.55),
    inset 0 -32px 28px -14px rgba(6, 9, 12, 0.92);
}
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-wrap::after {
  box-shadow:
    inset 0 32px 28px -14px rgba(6, 9, 12, 0.92),
    inset 0 -18px 16px -10px rgba(6, 9, 12, 0.55);
}
/* YT API replaces #headerBgPlayer with <iframe> — shared sizing; mood rules set alignment */
.header-bg-yt-mount,
.header-bg-yt-player,
.header-bg-yt-wrap iframe,
.header-bg-yt-wrap #headerBgPlayer {
  left: 0;
  right: 0;
  width: 100% !important;
  max-width: none;
  border: 0;
  pointer-events: none;
  transition: transform 0.45s ease;
}
/* Native <video> background: fill the 16:9 box, no letterbox, header crops it. */
video.header-bg-yt-player {
  display: block;
  object-fit: cover;
  object-position: center center;
  background: #0b0f16;
  -webkit-user-select: none;
  user-select: none;
}
.header-bg-yt-wrap.is-tier-video-hidden video.header-bg-yt-player {
  visibility: hidden;
}
img.header-bg-gif,
img.header-bg-poster {
  position: absolute;
  left: 0;
  right: 0;
  width: 100% !important;
  max-width: none;
  border: 0;
  pointer-events: none;
  object-fit: cover;
  object-position: center center;
  opacity: 0;
  transition: opacity 0.35s ease;
}
img.header-bg-gif.is-active,
img.header-bg-poster.is-active {
  opacity: 1;
}
.site-header.has-header-video[data-mood^="bull"] img.header-bg-gif,
.site-header.has-header-video[data-mood^="bull"] img.header-bg-poster {
  top: auto;
  bottom: 0;
  transform-origin: 50% 100%;
}
.site-header.has-header-video[data-mood^="bear"] img.header-bg-gif,
.site-header.has-header-video[data-mood^="bear"] img.header-bg-poster {
  top: 0;
  bottom: auto;
  transform-origin: 50% 0%;
}
.site-header.has-header-video[data-mood="neutral"] img.header-bg-gif,
.site-header.has-header-video[data-mood="neutral"] img.header-bg-poster,
.site-header.has-header-video[data-mood^="ext-"] img.header-bg-gif,
.site-header.has-header-video[data-mood^="ext-"] img.header-bg-poster {
  top: 50%;
  transform: translateY(-50%);
  transform-origin: 50% 50%;
}
/* Bull: bottom-anchored */
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-wrap {
  display: block;
}
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-player,
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood^="bull"] .header-bg-yt-wrap #headerBgPlayer {
  position: absolute;
  top: auto;
  bottom: 0;
  transform-origin: 50% 100%;
}
/* Bear: top-anchored */
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap {
  display: block;
}
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-player,
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap #headerBgPlayer {
  position: absolute;
  top: 0;
  bottom: auto;
  transform-origin: 50% 0%;
}
/* Neutral: vertically centered */
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-wrap::after {
  box-shadow:
    inset 0 24px 20px -10px rgba(6, 9, 12, 0.75),
    inset 0 -24px 20px -10px rgba(6, 9, 12, 0.75);
}
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="neutral"] video.header-bg-yt-player,
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-wrap #headerBgPlayer {
  position: relative;
  top: auto;
  bottom: auto;
  left: 0;
  right: auto;
  transform: none;
  transform-origin: center center;
}
.header-treat-chip {
  position: absolute;
  left: 50%;
  bottom: 6px;
  z-index: 4;
  margin: 0;
  padding: 4px 12px;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--accent-muted);
  background: rgba(8, 12, 18, 0.72);
  border: 1px solid rgba(78, 184, 201, 0.35);
  border-radius: 999px;
  transform: translateX(-50%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease;
  white-space: nowrap;
  backdrop-filter: blur(8px);
}
.header-treat-chip.is-visible {
  opacity: 1;
}
.site-header.has-header-video {
  background: #06090c;
}
.site-header.has-header-video::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  transition: background 0.45s ease, opacity 0.45s ease;
}
/* Conviction moods: keep video visible — no treatment vignette + normal blend */
.site-header.has-header-video[data-mood] .header-bg-yt-wrap {
  mix-blend-mode: normal;
  opacity: 1;
}
.site-header.has-header-video.header-treat--soft-light[data-mood] .header-bg-yt-wrap {
  mix-blend-mode: normal;
  opacity: 1;
}
.site-header.has-header-video[data-mood].header-treat--soft-light::after {
  background: none;
}

/* ===== Extended hours (pre-market / after-hours): snow clip =====
   Snow is a "varying neutral" — it plays during pre/post when conviction is mild
   (|heat|<=1) and is recoloured by lean (bull cooler / bear warmer). Strong moves
   (|heat|>=2) drop .header-bg-extended and fall back to the bull/bear footage.
   Everything here is gated on .header-bg-extended so strong moves stay clean. */

/* Centered like neutral regardless of lean (no zoom — |heat| never exceeds 1 here). */
.site-header.has-header-video.header-bg-extended[data-mood] .header-bg-yt-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header.has-header-video.header-bg-extended[data-mood] .header-bg-yt-mount,
.site-header.has-header-video.header-bg-extended[data-mood] video.header-bg-yt-player {
  position: relative;
  top: auto;
  bottom: auto;
  left: 0;
  right: 0;
  transform: none;
  transform-origin: center center;
}

/* Lean grade on the snow: neutral cool-white, bull cooler-teal, bear warmer-amber. */
.site-header.has-header-video.header-bg-extended[data-mood="neutral"] .header-bg-yt-wrap {
  filter: brightness(1.08) saturate(1.08) sepia(0.05) hue-rotate(195deg) contrast(1.05);
  mix-blend-mode: normal;
  opacity: 1;
  transition: filter 0.7s ease;
}
.site-header.has-header-video.header-bg-extended[data-mood="bull-1"] .header-bg-yt-wrap {
  filter: brightness(1.06) saturate(1.24) sepia(0.16) hue-rotate(172deg) contrast(1.06);
  mix-blend-mode: normal;
  opacity: 1;
  transition: filter 0.7s ease;
}
.site-header.has-header-video.header-bg-extended[data-mood="bear-1"] .header-bg-yt-wrap {
  filter: brightness(1.04) saturate(1.3) sepia(0.34) hue-rotate(-18deg) contrast(1.07);
  mix-blend-mode: normal;
  opacity: 1;
  transition: filter 0.7s ease;
}

/* Lean colour film over the snow (bright bokeh resists hue-rotate, so we wash it):
   top darkening for legibility + a lean-tinted glow. Neutral cool-blue, bull teal,
   bear amber — each clearly distinct while staying calm/wintery. */
.site-header.has-header-video.header-bg-extended[data-mood="neutral"]::after {
  background:
    linear-gradient(180deg, rgba(8, 12, 18, 0.5) 0%, rgba(10, 14, 20, 0.12) 46%, transparent 60%),
    radial-gradient(ellipse 122% 128% at 50% 26%, rgba(72, 112, 152, 0.16) 0%, transparent 70%);
}
.site-header.has-header-video.header-bg-extended[data-mood="bull-1"]::after {
  background:
    linear-gradient(180deg, rgba(8, 13, 18, 0.5) 0%, rgba(10, 16, 22, 0.12) 46%, transparent 60%),
    radial-gradient(ellipse 122% 128% at 50% 26%, rgba(46, 150, 175, 0.24) 0%, transparent 72%);
}
.site-header.has-header-video.header-bg-extended[data-mood="bear-1"]::after {
  background:
    linear-gradient(180deg, rgba(13, 9, 7, 0.5) 0%, rgba(22, 15, 10, 0.12) 46%, transparent 60%),
    radial-gradient(ellipse 122% 128% at 50% 26%, rgba(222, 142, 72, 0.22) 0%, transparent 72%);
}
.site-header.has-header-video.header-bg-extended[data-mood="neutral"] .header-bg-fx {
  opacity: 1;
  background: radial-gradient(
    ellipse 120% 96% at 50% 100%,
    rgba(120, 150, 185, 0.16) 0%,
    transparent 62%
  );
  transition: opacity 0.8s ease, background 0.8s ease;
}

/* —— Treatment: Clean —— */
.site-header.header-treat--clean::after {
  background: linear-gradient(180deg, rgba(10, 14, 18, 0.12) 0%, transparent 62%);
}
.site-header.header-treat--clean .header-bg-yt-wrap {
  mix-blend-mode: normal;
  filter: none;
}

/* —— Multiply —— */
.site-header.header-treat--multiply::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.15) 100%);
}
.site-header.header-treat--multiply .header-bg-yt-wrap {
  mix-blend-mode: multiply;
  opacity: 0.92;
  filter: contrast(1.08) saturate(1.1);
}

/* —— Screen —— */
.site-header.header-treat--screen::after {
  background: linear-gradient(180deg, rgba(6, 10, 14, 0.35) 0%, transparent 70%);
}
.site-header.header-treat--screen .header-bg-yt-wrap {
  mix-blend-mode: screen;
  opacity: 0.88;
  filter: brightness(1.15) saturate(1.2);
}

/* —— Overlay —— */
.site-header.header-treat--overlay::after {
  background: radial-gradient(ellipse 120% 90% at 50% 100%, transparent 0%, rgba(0, 0, 0, 0.45) 100%);
}
.site-header.header-treat--overlay .header-bg-yt-wrap {
  mix-blend-mode: overlay;
  opacity: 0.9;
  filter: contrast(1.25);
}

/* —— Soft light —— */
.site-header.header-treat--soft-light::after {
  background: linear-gradient(180deg, rgba(15, 22, 32, 0.4) 0%, transparent 55%);
}
.site-header.header-treat--soft-light .header-bg-yt-wrap {
  mix-blend-mode: soft-light;
  opacity: 0.95;
  filter: brightness(1.08) saturate(1.15);
}

/* —— Color dodge —— */
.site-header.header-treat--color-dodge::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(78, 184, 201, 0.08) 100%);
}
.site-header.header-treat--color-dodge .header-bg-yt-wrap {
  mix-blend-mode: color-dodge;
  opacity: 0.75;
  filter: brightness(1.2) saturate(1.35);
}

/* —— Hard light —— */
.site-header.header-treat--hard-light::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(139, 127, 212, 0.12) 100%);
}
.site-header.header-treat--hard-light .header-bg-yt-wrap {
  mix-blend-mode: hard-light;
  opacity: 0.85;
  filter: contrast(1.3) saturate(1.25);
}

/* —— Aurora —— */
.site-header.header-treat--aurora::after {
  background: linear-gradient(180deg, rgba(8, 16, 28, 0.5) 0%, transparent 45%);
}
.site-header.header-treat--aurora .header-bg-yt-wrap {
  mix-blend-mode: screen;
  filter: saturate(1.4) hue-rotate(-8deg) brightness(1.1);
}
.site-header.header-treat--aurora .header-bg-fx {
  opacity: 1;
  background:
    radial-gradient(ellipse 80% 120% at 20% 100%, rgba(78, 184, 201, 0.35) 0%, transparent 55%),
    radial-gradient(ellipse 70% 100% at 85% 100%, rgba(139, 127, 212, 0.28) 0%, transparent 50%);
  animation: header-aurora-drift 8s ease-in-out infinite alternate;
}

/* —— Ember —— */
.site-header.header-treat--ember::after {
  background: linear-gradient(180deg, rgba(12, 8, 6, 0.55) 0%, transparent 50%);
}
.site-header.header-treat--ember .header-bg-yt-wrap {
  mix-blend-mode: multiply;
  filter: sepia(0.35) saturate(1.5) brightness(1.05);
}
.site-header.header-treat--ember .header-bg-fx {
  opacity: 1;
  background: radial-gradient(ellipse 100% 80% at 50% 110%, rgba(232, 149, 79, 0.45) 0%, transparent 58%);
}

/* —— Noir —— */
.site-header.header-treat--noir::after {
  background:
    radial-gradient(ellipse 90% 70% at 50% 50%, transparent 30%, rgba(0, 0, 0, 0.65) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, transparent 60%);
}
.site-header.header-treat--noir .header-bg-yt-wrap {
  mix-blend-mode: luminosity;
  filter: grayscale(0.85) contrast(1.35) brightness(0.95);
  opacity: 0.88;
}

/* —— Hologram —— */
.site-header.header-treat--hologram::after {
  background: linear-gradient(180deg, rgba(6, 12, 18, 0.35) 0%, transparent 55%);
}
.site-header.header-treat--hologram .header-bg-yt-wrap {
  mix-blend-mode: screen;
  filter: saturate(1.5) hue-rotate(12deg) brightness(1.08);
}
.site-header.header-treat--hologram .header-bg-fx {
  opacity: 1;
  background: repeating-linear-gradient(
    105deg,
    rgba(78, 184, 201, 0) 0 12px,
    rgba(78, 184, 201, 0.12) 12px 13px,
    rgba(139, 127, 212, 0) 13px 26px,
    rgba(139, 127, 212, 0.1) 26px 27px
  );
  animation: header-holo-shift 6s linear infinite;
}

/* —— Scanline —— */
.site-header.header-treat--scanline::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, transparent 48%);
}
.site-header.header-treat--scanline .header-bg-yt-wrap {
  mix-blend-mode: screen;
  filter: contrast(1.15) saturate(0.9);
}
.site-header.header-treat--scanline .header-bg-fx {
  opacity: 1;
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.18) 0 1px,
    transparent 1px 4px
  );
  animation: header-scan-sweep 3.5s linear infinite;
}

/* —— Difference —— */
.site-header.header-treat--difference::after {
  background: rgba(6, 10, 14, 0.25);
}
.site-header.header-treat--difference .header-bg-yt-wrap {
  mix-blend-mode: difference;
  opacity: 0.82;
  filter: invert(0.05) contrast(1.2);
}

/* —— Raincore (brand) —— */
.site-header.header-treat--raincore::after {
  background: linear-gradient(
    180deg,
    rgba(6, 14, 20, 0.55) 0%,
    rgba(45, 184, 168, 0.06) 55%,
    rgba(78, 184, 201, 0.14) 100%
  );
}
.site-header.header-treat--raincore .header-bg-yt-wrap {
  mix-blend-mode: soft-light;
  filter: saturate(1.25) brightness(1.05);
}
.site-header.header-treat--raincore .header-bg-fx {
  opacity: 1;
  background:
    radial-gradient(circle at 50% 120%, rgba(45, 184, 168, 0.35) 0%, transparent 52%),
    linear-gradient(90deg, transparent 0%, rgba(78, 184, 201, 0.08) 50%, transparent 100%);
}

@keyframes header-aurora-drift {
  from { transform: translateX(-3%) scale(1); }
  to { transform: translateX(3%) scale(1.04); }
}
@keyframes header-holo-shift {
  from { transform: translateX(-8%); }
  to { transform: translateX(8%); }
}
@keyframes header-scan-sweep {
  0% { transform: translateY(-100%); opacity: 0.6; }
  100% { transform: translateY(100%); opacity: 0.85; }
}
.header-inner,
.header-meta,
.header-mood-copy,
.scan-progress,
.header-treat-chip {
  position: relative;
  z-index: 3;
}

/* Click-to-navigate: left of logo = cooler, right = hotter (background area). */
.site-header.header-mood-zones {
  cursor: pointer;
}
.header-mood-zone-hint {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  font-size: 26px;
  line-height: 1;
  font-weight: 400;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.65);
  -webkit-user-select: none;
  user-select: none;
}
.header-mood-zone-hint--bear {
  left: 18px;
  color: #f0a868;
}
.header-mood-zone-hint--bull {
  right: 18px;
  color: #7fd6e6;
}
.site-header.header-mood-zones:hover .header-mood-zone-hint {
  opacity: 0.6;
}
.site-header.header-mood-zones:hover .header-mood-zone-hint--bear {
  transform: translateY(-50%) translateX(-3px);
}
.site-header.header-mood-zones:hover .header-mood-zone-hint--bull {
  transform: translateY(-50%) translateX(3px);
}
@media (hover: none) {
  .header-mood-zone-hint {
    opacity: 0.4;
  }
}

/* ============================================================
   Conviction Engine — header mood (heat -3..+3)
   ============================================================ */

/* Mood FX layer — bull: screen/overlay washes; bear: warm radials (unchanged) */
.header-mood-fx {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  background: transparent;
  transition: opacity 0.7s ease, background 0.7s ease, mix-blend-mode 0.35s ease;
}
.site-header[data-mood] .header-mood-fx {
  opacity: 1;
}

/* ---- Neutral: golden + soft lift only (video unfiltered) ---- */
.site-header[data-mood="neutral"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 110% 78% at 50% 106%, rgba(212, 162, 74, 0.22) 0%, transparent 56%),
    radial-gradient(ellipse 75% 50% at 50% 32%, rgba(255, 252, 245, 0.08) 0%, transparent 54%);
}

/* Mood tiers: zoom on the player node (.header-bg-yt-player = iframe after YT inits)
   ±1 + neutral: native scale; ±2/±3: 2× zoom (±3 also runs sped-up via JS). */
.site-header.has-header-video[data-mood="bull-1"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bull-1"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="neutral"] .header-bg-yt-mount {
  transform: scale(1);
}
.site-header.has-header-video[data-mood="bull-2"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bull-2"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="bull-3"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bull-3"] .header-bg-yt-mount {
  transform: scale(1.85);
}
/* Bear: no wrap filter; dedicated bear clip; top-anchored zoom (no CSS flip — blanks iframe) */
.site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap {
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  transform: none;
}
.site-header.has-header-video[data-mood="bear-1"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bear-1"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="bear-1"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood="bear-1"] #headerBgPlayer {
  transform: scale(1);
}
.site-header.has-header-video[data-mood="bear-2"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bear-2"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="bear-2"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood="bear-2"] #headerBgPlayer,
.site-header.has-header-video[data-mood="bear-3"] .header-bg-yt-player,
.site-header.has-header-video[data-mood="bear-3"] .header-bg-yt-mount,
.site-header.has-header-video[data-mood="bear-3"] .header-bg-yt-wrap iframe,
.site-header.has-header-video[data-mood="bear-3"] #headerBgPlayer {
  transform: scale(1.85);
}

/* ---- Bull tiers: accent (#4eb8c9 / Edit scan) on YouTube + mood FX ---- */
/* +1 — light accent wash */
.site-header[data-mood="bull-1"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 72% 46% at 50% 104%, rgba(78, 184, 201, 0.18) 0%, transparent 60%),
    radial-gradient(ellipse 55% 40% at 50% 38%, rgba(126, 200, 212, 0.08) 0%, transparent 54%);
}
/* +2 — fuller frame + corner punch */
.site-header[data-mood="bull-2"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 100% 72% at 50% 106%, rgba(78, 184, 201, 0.28) 0%, transparent 58%),
    radial-gradient(ellipse 50% 42% at 14% 96%, rgba(126, 200, 212, 0.16) 0%, transparent 52%),
    radial-gradient(ellipse 70% 48% at 50% 18%, rgba(78, 184, 201, 0.1) 0%, transparent 54%);
}
/* +3 — strong top/side accent frame (logo still carries +3 halo) */
.site-header[data-mood="bull-3"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 92% 50% at 50% -4%, rgba(78, 184, 201, 0.22) 0%, transparent 54%),
    radial-gradient(ellipse 54% 68% at 5% 94%, rgba(78, 184, 201, 0.2) 0%, transparent 52%),
    radial-gradient(ellipse 54% 68% at 95% 94%, rgba(78, 184, 201, 0.2) 0%, transparent 52%),
    radial-gradient(ellipse 110% 55% at 50% 108%, rgba(126, 200, 212, 0.14) 0%, transparent 56%);
}

/* YouTube layer: hue anchored on UI accent teal (#4eb8c9). Intensity rises via
   saturation/sepia per tier — hue stays put so it never drifts to royal/navy. */
.site-header.has-header-video[data-mood="bull-1"] .header-bg-yt-wrap {
  filter: brightness(1.02) saturate(1.18) sepia(0.12) hue-rotate(150deg) contrast(1.05);
  transition: transform 0.45s ease, filter 0.45s ease;
}
.site-header.has-header-video[data-mood="bull-2"] .header-bg-yt-wrap {
  filter: brightness(1.03) saturate(1.34) sepia(0.18) hue-rotate(153deg) contrast(1.07);
  transition: transform 0.45s ease, filter 0.45s ease;
}
.site-header.has-header-video[data-mood="bull-3"] .header-bg-yt-wrap {
  filter: brightness(1.04) saturate(1.52) sepia(0.24) hue-rotate(156deg) contrast(1.09);
  transition: filter 0.45s ease;
}
.site-header.has-header-video[data-mood="bull-1"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 105% 82% at 50% 100%, rgba(78, 184, 201, 0.26) 0%, transparent 58%),
    radial-gradient(ellipse 68% 58% at 50% 34%, rgba(126, 200, 212, 0.1) 0%, transparent 52%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
.site-header.has-header-video[data-mood="bull-2"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 112% 90% at 50% 100%, rgba(78, 184, 201, 0.4) 0%, transparent 58%),
    radial-gradient(ellipse 78% 64% at 18% 84%, rgba(126, 200, 212, 0.22) 0%, transparent 54%),
    radial-gradient(ellipse 72% 52% at 50% 26%, rgba(78, 184, 201, 0.16) 0%, transparent 54%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
.site-header.has-header-video[data-mood="bull-3"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 118% 96% at 50% 100%, rgba(78, 184, 201, 0.55) 0%, transparent 60%),
    radial-gradient(ellipse 82% 70% at 14% 86%, rgba(126, 200, 212, 0.3) 0%, transparent 52%),
    radial-gradient(ellipse 88% 58% at 50% 20%, rgba(78, 184, 201, 0.24) 0%, transparent 52%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
.site-header.has-header-video[data-mood^="bull"]::after,
.site-header.has-header-video[data-mood^="bear"]::after {
  background: none;
}

/* +3 / -3 logo halo */
.site-header[data-mood="bull-3"],
.site-header[data-mood="bear-3"] {
  overflow: visible;
}
.site-header[data-mood="bull-3"] .header-inner,
.site-header[data-mood="bear-3"] .header-inner {
  position: relative;
  overflow: visible;
}
.site-header[data-mood="bull-3"] .header-inner::before,
.site-header[data-mood="bear-3"] .header-inner::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.site-header[data-mood="bull-3"] .header-inner::before {
  width: 200px;
  height: 200px;
  background: radial-gradient(
    circle,
    rgba(78, 184, 201, 0.38) 0%,
    rgba(126, 200, 212, 0.2) 32%,
    rgba(78, 184, 201, 0.08) 54%,
    transparent 72%
  );
  filter: blur(16px);
}
.site-header[data-mood="bear-3"] .header-inner::before {
  width: 148px;
  height: 148px;
  background: radial-gradient(
    circle,
    rgba(240, 138, 64, 0.44) 0%,
    rgba(232, 149, 79, 0.18) 42%,
    transparent 68%
  );
  filter: blur(10px);
}

/* Bull +3: accent halo on the logo stack (Edit scan cyan) */
.site-header[data-mood="bull-3"] .brand-logo-stack {
  position: relative;
  z-index: 1;
  isolation: isolate;
  filter:
    drop-shadow(0 0 8px rgba(78, 184, 201, 0.55))
    drop-shadow(0 0 20px rgba(78, 184, 201, 0.42))
    drop-shadow(0 0 36px rgba(126, 200, 212, 0.28))
    drop-shadow(0 8px 20px rgba(0, 0, 0, 0.45));
}
.site-header[data-mood="bull-3"] .brand-logo-stack::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 175%;
  height: 175%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(
    circle at center,
    rgba(78, 184, 201, 0.48) 0%,
    rgba(126, 200, 212, 0.28) 26%,
    rgba(78, 184, 201, 0.12) 46%,
    transparent 68%
  );
  filter: blur(12px);
  mix-blend-mode: screen;
}
.site-header[data-mood="bull-3"] .brand-logo-stack::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 140%;
  height: 140%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  z-index: -1;
  pointer-events: none;
  box-shadow:
    0 0 22px 6px rgba(78, 184, 201, 0.36),
    0 0 44px 12px rgba(78, 184, 201, 0.22),
    0 0 64px 16px rgba(126, 200, 212, 0.12);
}
.site-header[data-mood="bull-3"] .brand-logo--static,
.site-header[data-mood="bull-3"] .brand-logo-stack.is-animated .brand-logo--video:not([hidden]) {
  filter:
    brightness(1.08)
    contrast(1.05)
    drop-shadow(0 0 6px rgba(78, 184, 201, 0.55))
    drop-shadow(0 0 16px rgba(78, 184, 201, 0.45))
    drop-shadow(0 0 28px rgba(126, 200, 212, 0.28))
    drop-shadow(0 8px 18px rgba(0, 0, 0, 0.4));
}
.site-header[data-mood="bull-3"] .brand-logo-stack.is-animated {
  filter:
    drop-shadow(0 0 8px rgba(78, 184, 201, 0.58))
    drop-shadow(0 0 22px rgba(78, 184, 201, 0.46))
    drop-shadow(0 0 38px rgba(126, 200, 212, 0.3))
    drop-shadow(0 8px 20px rgba(0, 0, 0, 0.45));
}

.site-header[data-mood="bear-3"] .brand-logo-stack {
  position: relative;
  z-index: 1;
  filter:
    drop-shadow(0 0 16px rgba(240, 138, 64, 0.55))
    drop-shadow(0 0 36px rgba(232, 149, 79, 0.28))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}
.site-header[data-mood="bear-3"] .brand-logo-stack.is-animated {
  filter:
    drop-shadow(0 0 18px rgba(240, 138, 64, 0.6))
    drop-shadow(0 0 40px rgba(232, 149, 79, 0.32))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}

/* ---- Bear tiers: mirror bull +2→+1 (orange hue + screen washes; -1 zoomed + bright) ---- */
/* -1 — light orange wash (same layout as +1) */
.site-header[data-mood="bear-1"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 72% 46% at 50% 104%, rgba(232, 149, 79, 0.18) 0%, transparent 60%),
    radial-gradient(ellipse 55% 40% at 50% 38%, rgba(245, 201, 154, 0.08) 0%, transparent 54%);
}
/* -2 — fuller frame (step down from -3, same family as +2) */
.site-header[data-mood="bear-2"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 100% 72% at 50% 106%, rgba(232, 149, 79, 0.28) 0%, transparent 58%),
    radial-gradient(ellipse 50% 42% at 14% 96%, rgba(245, 201, 154, 0.16) 0%, transparent 52%),
    radial-gradient(ellipse 70% 48% at 50% 18%, rgba(232, 149, 79, 0.1) 0%, transparent 54%);
}
/* -3 — strong frame, mirrors +3 with brand orange (#e8954f) */
.site-header[data-mood="bear-3"] .header-mood-fx {
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 92% 50% at 50% -4%, rgba(232, 149, 79, 0.22) 0%, transparent 54%),
    radial-gradient(ellipse 54% 68% at 5% 94%, rgba(232, 149, 79, 0.2) 0%, transparent 52%),
    radial-gradient(ellipse 54% 68% at 95% 94%, rgba(232, 149, 79, 0.2) 0%, transparent 52%),
    radial-gradient(ellipse 110% 55% at 50% 108%, rgba(245, 201, 154, 0.14) 0%, transparent 56%);
}
/* Bear color grade via screen overlays only (CSS filter on wrap blanks the iframe) */
.site-header.has-header-video[data-mood="bear-2"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 112% 90% at 50% 100%, rgba(232, 149, 79, 0.4) 0%, transparent 58%),
    radial-gradient(ellipse 78% 64% at 18% 84%, rgba(245, 201, 154, 0.22) 0%, transparent 54%),
    radial-gradient(ellipse 72% 52% at 50% 26%, rgba(232, 149, 79, 0.16) 0%, transparent 54%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
/* -1 uses -2 video grade; lighter mood wash like +1 vs +2 */
.site-header.has-header-video[data-mood="bear-1"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 105% 82% at 50% 100%, rgba(232, 149, 79, 0.26) 0%, transparent 58%),
    radial-gradient(ellipse 68% 58% at 50% 34%, rgba(245, 201, 154, 0.1) 0%, transparent 52%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
.site-header.has-header-video[data-mood="bear-3"] .header-bg-fx {
  opacity: 1;
  mix-blend-mode: screen;
  background:
    radial-gradient(ellipse 118% 96% at 50% 100%, rgba(232, 149, 79, 0.55) 0%, transparent 60%),
    radial-gradient(ellipse 82% 70% at 14% 86%, rgba(245, 201, 154, 0.3) 0%, transparent 52%),
    radial-gradient(ellipse 88% 58% at 50% 20%, rgba(232, 149, 79, 0.24) 0%, transparent 52%);
  transition: opacity 0.45s ease, background 0.45s ease;
}
/* -1 / -3 copy legibility on dark video */
.site-header[data-mood="bear-1"] .hm-kicker,
.site-header[data-mood="bear-1"] .hm-line {
  text-shadow:
    0 0 12px rgba(0, 0, 0, 0.85),
    0 1px 4px rgba(0, 0, 0, 0.9);
}

/* ---- Mood copy: overlaid on header bottom (no extra header height) ---- */
.header-mood-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  margin: 0;
  padding: 0 14px 5px;
  text-align: center;
  height: var(--header-mood-h);
  min-height: var(--header-mood-h);
  max-height: var(--header-mood-h);
  overflow: hidden;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(6, 10, 14, 0.45) 0%,
    rgba(6, 10, 14, 0.12) 8px,
    transparent var(--header-bottom-shade-h)
  );
}
.site-header .header-inner {
  transform: translateY(-5px);
}
.hm-kicker {
  margin: 0;
  flex-shrink: 0;
  line-height: 1.1;
}
.hm-gauge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.hm-pip {
  width: 14px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  transition: background 0.45s ease, box-shadow 0.45s ease, width 0.45s ease;
}
.hm-core {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  margin: 0 2px;
  transition: background 0.45s ease, box-shadow 0.45s ease;
}
.hm-core.is-on {
  background: rgba(220, 228, 236, 0.85);
  box-shadow: 0 0 8px rgba(220, 228, 236, 0.4);
}
.hm-pip--bull.is-on {
  background: linear-gradient(90deg, rgba(78, 184, 201, 0.9), rgba(64, 156, 244, 0.95));
  box-shadow: 0 0 8px rgba(64, 156, 244, 0.55);
}
.hm-pip--bear.is-on {
  background: linear-gradient(90deg, rgba(208, 92, 48, 0.95), rgba(240, 138, 64, 0.9));
  box-shadow: 0 0 8px rgba(240, 138, 64, 0.55);
}
.hm-line {
  margin: 0;
  flex: 1 1 auto;
  min-height: 0;
  font-size: 0.68rem;
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: rgba(214, 224, 233, 0.82);
  max-width: 360px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.hm-kicker {
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.62rem;
  color: rgba(236, 242, 248, 0.95);
}

/* Growth: cookie consent + email capture banner (Batch 4 #10/#6) */
/* Alerts & automations live in the Account drawer (no bottom banner). */
.rm-auto-field {
  display: block;
  font-size: 0.72rem;
  color: rgba(214, 224, 233, 0.75);
  margin: 8px 0 0;
}
.rm-auto-field input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(78, 184, 201, 0.32);
  background: rgba(0, 0, 0, 0.3);
  color: #eef4f8;
  font-size: 0.82rem;
}
.rm-auto-toggles {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}
.rm-auto-toggle {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.8rem;
  color: rgba(224, 232, 240, 0.9);
  cursor: pointer;
}
.rm-auto-toggle input {
  width: 16px;
  height: 16px;
  accent-color: #4eb8c9;
  flex: 0 0 auto;
}
.rm-auto-toggle--sms-consent {
  align-items: flex-start;
  margin: 10px 0 4px;
  padding: 10px 10px 10px 8px;
  border-radius: 10px;
  background: rgba(78, 184, 201, 0.08);
  line-height: 1.35;
  font-size: 0.76rem;
  color: rgba(224, 232, 240, 0.92);
}
.rm-auto-toggle--sms-consent input {
  margin-top: 2px;
}
.rm-auto-toggle--disabled {
  opacity: 0.45;
  pointer-events: none;
}
.rm-auto-status {
  margin-top: 6px;
  min-height: 1em;
  color: #6fd0c2;
}

.rm-schwab-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 10px 0;
}

.rm-schwab-status {
  min-height: 1em;
  color: #9fb3c8;
}

.rm-schwab-positions {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
}

.rm-schwab-pos {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.rm-schwab-balances {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
}

.rm-schwab-bal {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
  font-size: 13px;
  padding: 6px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.rm-schwab-bal strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.rm-schwab-poll {
  margin-top: 10px;
}

.rm-schwab-badge,
.pick-in-account {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.rm-schwab-badge {
  color: #7ec8ff;
  background: rgba(62, 140, 220, 0.18);
  border: 1px solid rgba(62, 140, 220, 0.35);
}

.pick-in-account {
  color: #9ed4b8;
  background: rgba(61, 186, 122, 0.12);
  border: 1px solid rgba(61, 186, 122, 0.28);
}

.ws-panel-bars-src {
  margin-left: 8px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9fb3c8;
  background: rgba(255, 255, 255, 0.06);
}

.ws-panel-bars-src[data-source="schwab"] {
  color: #7ec8ff;
  background: rgba(62, 140, 220, 0.15);
}

.rm-dual-r {
  color: #c5d0de;
  font-size: 12px;
}

/* Server research (walk-forward + live expectancy) */
.rm-research-strategy-slot {
  margin-top: 16px;
}
.rm-research-cards {
  display: grid;
  gap: 12px;
  margin: 12px 0;
}
@media (min-width: 520px) {
  .rm-research-cards {
    grid-template-columns: 1fr 1fr;
  }
}
.rm-research-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 12px;
}
.rm-research-card--warn {
  border-color: rgba(255, 180, 80, 0.35);
}
.rm-research-card header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.rm-research-card h4 {
  margin: 0;
  font-size: 15px;
}
.rm-research-rr {
  font-size: 11px;
  color: #9fb3c8;
}
.rm-research-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.rm-research-k {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #9fb3c8;
}
.rm-research-flag {
  display: block;
  font-size: 11px;
  color: #e8b86a;
  margin-top: 4px;
}
.rm-research-live {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.rm-research-live h4 {
  margin: 0 0 6px;
  font-size: 13px;
}
.rm-research-live .is-good {
  color: #6fd0c2;
}
.rm-research-live .is-weak {
  color: #e8a0a0;
}
#ttResearchPanel.rm-research-shell.tt-learning-panel {
  margin-top: 0;
  padding: 0;
  border: none;
  background: transparent;
  overflow: visible;
}
.rm-research-inbox {
  margin: 0;
  padding: 0;
  border: none;
  overflow: visible;
}
.rm-research-inbox-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: visible;
}
.rm-research-kicker {
  margin: 0 0 4px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(78, 184, 201, 0.82);
}
.rm-research-hero {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(78, 184, 201, 0.22);
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.rm-research-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.rm-research-hero-mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 90% 70% at 100% 0%, rgba(78, 184, 201, 0.18), transparent 55%),
    radial-gradient(ellipse 60% 50% at 0% 100%, rgba(45, 184, 168, 0.12), transparent 50%),
    linear-gradient(155deg, rgba(10, 16, 24, 0.96) 0%, rgba(14, 22, 32, 0.92) 48%, rgba(8, 12, 18, 0.98) 100%);
}
.rm-research-hero-mesh::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.55), transparent 85%);
}
.rm-research-hero-glow {
  position: absolute;
  top: -30%;
  right: -10%;
  width: 55%;
  height: 80%;
  background: radial-gradient(circle, rgba(78, 184, 201, 0.22), transparent 68%);
  filter: blur(8px);
}
.rm-research-hero-mark {
  position: absolute;
  right: -6px;
  bottom: -10px;
  width: 108px;
  height: 108px;
  opacity: 0.14;
  transform: rotate(-8deg);
  filter: drop-shadow(0 0 18px rgba(78, 184, 201, 0.25));
}
.rm-research-hero-body {
  position: relative;
  z-index: 1;
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rm-research-hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.rm-research-hero-title {
  margin: 0;
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.rm-research-hero-sub {
  margin: 6px 0 0;
  font-size: 0.74rem;
  line-height: 1.4;
  color: rgba(196, 212, 224, 0.78);
  max-width: 34ch;
}
.rm-research-sync {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(78, 184, 201, 0.2);
  font-size: 0.68rem;
  color: rgba(196, 212, 224, 0.85);
}
.rm-research-sync-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4eb8c9;
  box-shadow: 0 0 10px rgba(78, 184, 201, 0.65);
  animation: rm-research-pulse 2.4s ease-in-out infinite;
}
.rm-research-sync-count {
  padding-left: 6px;
  margin-left: 2px;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
  color: #6fd0c2;
  font-weight: 600;
}
@keyframes rm-research-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.55;
    transform: scale(0.92);
  }
}
.rm-research-compose {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 11px;
  border-radius: 12px;
  background: rgba(4, 8, 14, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(6px);
}
.rm-research-queue-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-radius: 10px;
  background: rgba(78, 184, 201, 0.08);
  border: 1px solid rgba(78, 184, 201, 0.18);
}
.rm-research-queue-bar-copy {
  font-size: 0.74rem;
  color: rgba(196, 212, 224, 0.88);
}
.rm-research-queue-bar-pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e8c86a;
  box-shadow: 0 0 12px rgba(232, 200, 106, 0.55);
  animation: rm-research-pulse 1.2s ease-in-out infinite;
}
.rm-research-reports-panel {
  padding: 12px 12px 10px;
  border-radius: 14px;
  background: rgba(8, 12, 18, 0.5);
  border: 1px solid rgba(42, 53, 68, 0.65);
}
.rm-research-reports-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.rm-research-reports-count {
  font-size: 0.7rem;
  white-space: nowrap;
}
.rm-research-empty {
  text-align: center;
  padding: 18px 12px 14px;
  border-radius: 12px;
  border: 1px dashed rgba(78, 184, 201, 0.22);
  background: rgba(0, 0, 0, 0.18);
}
.rm-research-empty-graphic {
  color: #4eb8c9;
  margin-bottom: 8px;
}
.rm-research-empty-graphic svg {
  width: 120px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.rm-research-empty-title {
  margin: 0 0 4px;
  font-size: 0.86rem;
  font-weight: 600;
}
.rm-research-empty-copy {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.4;
}
.rm-research-wf {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid rgba(42, 53, 68, 0.55);
}
.rm-research-wf-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.rm-research-wf-head h3 {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
}
.rm-research-wf-head .meta {
  margin: 4px 0 0;
  font-size: 0.72rem;
}
.rm-research-wf-meta {
  flex-shrink: 0;
  font-size: 0.68rem;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.rm-research-wf-slot {
  overflow: visible;
}
.rm-research-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
}
.rm-research-field-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(196, 212, 224, 0.72);
}
.rm-research-optional {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  opacity: 0.65;
}
.rm-research-compose-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.rm-research-compose textarea,
.rm-research-compose input[type="text"],
.rm-research-attach textarea {
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  padding: 10px 11px;
  border-radius: 10px;
  border: 1px solid rgba(58, 74, 94, 0.9);
  background: rgba(8, 12, 18, 0.88);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  line-height: 1.4;
  resize: none;
  overflow-y: auto;
  overflow-x: hidden;
}
.rm-research-compose textarea::placeholder,
.rm-research-compose input[type="text"]::placeholder {
  color: rgba(148, 163, 184, 0.55);
}
.rm-research-compose textarea:focus,
.rm-research-compose input[type="text"]:focus,
.rm-research-attach textarea:focus {
  outline: none;
  border-color: rgba(78, 184, 201, 0.45);
  box-shadow: 0 0 0 1px rgba(78, 184, 201, 0.2);
}
.rm-research-queue-btn {
  min-width: 72px;
  white-space: nowrap;
}
.rm-research-reports-title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(196, 212, 224, 0.78);
}
#ttResearchPanel .tt-learning-head,
.rm-research-strategy-slot .tt-learning-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
@media (max-width: 640px) {
  .rm-research-compose-row {
    grid-template-columns: 1fr;
  }
  .rm-research-queue-btn {
    width: 100%;
  }
  .rm-research-hero-sub {
    max-width: none;
  }
  .rm-research-hero-top {
    flex-direction: column;
    gap: 8px;
  }
  .rm-research-hero-mark {
    width: 84px;
    height: 84px;
    opacity: 0.1;
  }
  .rm-research-queue-bar {
    flex-direction: column;
    align-items: stretch;
  }
}
.rm-research-acc-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 6px 0 0;
}
.rm-research-acc {
  padding: 11px 12px;
  border-radius: 11px;
  border: 1px solid rgba(42, 53, 68, 0.55);
  background: rgba(8, 12, 18, 0.55);
}
.rm-research-acc-prompt {
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.35;
  word-break: break-word;
}
.rm-research-acc-meta {
  margin: 0;
}
.rm-research-acc-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.rm-research-delete {
  flex-shrink: 0;
  opacity: 0.55;
}
.rm-research-acc:hover .rm-research-delete {
  opacity: 0.9;
}
.rm-research-delete:hover,
.rm-research-delete.is-delete-armed {
  color: #e88a8a;
  opacity: 1;
  border-color: rgba(232, 138, 138, 0.55);
}
.rm-research-delete-detail svg {
  vertical-align: -2px;
}
.rm-research-inbox-status {
  font-size: 10px;
  text-transform: uppercase;
  margin-right: 6px;
}
.rm-research-inbox-status.is-running {
  color: #e8c86a;
}
.rm-research-report {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
  background: rgba(0, 0, 0, 0.25);
  padding: 10px;
  border-radius: 8px;
  border: 1px solid rgba(42, 53, 68, 0.5);
}
#researchReportDrawer {
  z-index: 225;
  width: min(100%, 420px);
}
#researchBackdrop {
  z-index: 220;
}
#researchReportDrawer .research-drawer-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100dvh;
  overflow: hidden;
  padding: 0;
}
#researchReportDrawer .side-drawer-header {
  flex-shrink: 0;
  margin-bottom: 0;
  padding: max(16px, env(safe-area-inset-top)) 16px 10px;
}
#researchReportDrawer .research-drawer-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0 16px 12px;
}
#researchReportDrawer .research-drawer-footer {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 16px max(16px, env(safe-area-inset-bottom));
  border-top: 1px solid rgba(42, 53, 68, 0.65);
  background: linear-gradient(0deg, var(--card) 82%, transparent);
}
#researchReportDrawer .rm-research-detail h5 {
  margin: 14px 0 8px;
  font-size: 12px;
}
.rm-research-sources {
  font-size: 12px;
  padding-left: 18px;
}
.rm-research-attach {
  margin-top: 12px;
}
.rm-research-queue-hint {
  margin: 0;
  font-size: 0.74rem;
}
.rm-research-queue-status {
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.78rem;
}
.rm-research-queue-status--ok {
  color: #6fd0c2;
  border: 1px solid rgba(111, 208, 194, 0.35);
}
.rm-research-queue-status--err {
  color: #e8a0a0;
  border: 1px solid rgba(232, 160, 160, 0.35);
}
.rm-research-queue-status--warn {
  color: #e8c86a;
  border: 1px solid rgba(232, 200, 106, 0.35);
}
.rm-research-queue-status--info {
  color: #9fb3c8;
}

/* The legacy header scan/progress strip moved to the chart submeta + footer;
   keep the element for the mobile mirror but never render it in the header. */
#newsProgress { display: none !important; }

/* Fully-aligned brand glow (kept; the "0/3 lit" charge meter was removed). */
.site-header.is-fully-charged .brand,
.site-header.is-fully-charged #brandLogoStack {
  animation: hmFullyCharged 2.4s ease-in-out infinite;
}
@keyframes hmFullyCharged {
  0%, 100% { filter: drop-shadow(0 0 4px rgba(78, 184, 201, 0.35)); }
  50% { filter: drop-shadow(0 0 16px rgba(78, 184, 201, 0.85)); }
}

/* Per-column stage/posture/gate (v2): replaces low/med/high conf label. */
.ws-col-conf {
  flex: 0 0 auto;
  align-self: center;
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(139, 156, 179, 0.55);
  font-variant-numeric: tabular-nums;
}
.ws-col-conf--go { color: rgba(78, 184, 201, 0.85); }
.ws-col-conf--wait { color: rgba(212, 162, 74, 0.75); }
.ws-col-conf--stop { color: rgba(240, 138, 64, 0.85); }
.hm-readiness {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(78, 184, 201, 0.7);
}
.is-guide-mode .ws-panel--guide-hidden {
  display: none !important;
}
.guide-mode-banner {
  grid-column: 1 / -1;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.35rem;
  border-radius: 8px;
  background: rgba(78, 184, 201, 0.08);
  border: 1px solid rgba(78, 184, 201, 0.25);
}
.guide-mode-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent, #4eb8c9);
}
.guide-mode-step { font-size: 0.78rem; margin-top: 0.2rem; }
.guide-mode-hint { font-size: 0.68rem; opacity: 0.75; margin-top: 0.25rem; }
.tf-dual-r {
  display: block;
  width: 100%;
  margin-top: 0.15rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.tf-dual-r--delta { color: rgba(232, 168, 74, 0.9); }
.tf-dual-r--agreed { color: rgba(78, 184, 201, 0.85); }
.ws-col-conf:empty {
  display: none;
}
.site-header[data-mood="neutral"] .hm-kicker {
  color: #e8c878;
  text-shadow: 0 0 10px rgba(212, 162, 74, 0.4);
}
.site-header[data-mood="neutral"] .hm-core.is-on {
  background: rgba(255, 252, 240, 0.9);
  box-shadow: 0 0 8px rgba(212, 162, 74, 0.45);
}
.site-header[data-mood^="bull"] .hm-kicker {
  color: #7fd6e6;
  text-shadow: 0 0 12px rgba(64, 156, 244, 0.5);
}
.site-header[data-mood^="bear"] .hm-kicker {
  color: #f0a868;
  text-shadow: 0 0 12px rgba(240, 138, 64, 0.5);
}

/* ---- Panel interlink: top temperature stroke (thickness scales with heat) ---- */
body[data-mood="neutral"] .ws-panel {
  box-shadow: inset 0 3px 0 0 rgba(212, 162, 74, 0.2);
  transition: box-shadow 0.7s ease;
}
body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active {
  box-shadow: none;
}
body[data-mood^="bull"] .ws-panel {
  box-shadow: inset 0 3px 0 0 rgba(64, 156, 244, 0.18);
  transition: box-shadow 0.7s ease;
}
body[data-mood="bull-2"] .ws-panel {
  box-shadow: inset 0 4px 0 0 rgba(64, 156, 244, 0.32);
}
body[data-mood="bull-3"] .ws-panel {
  box-shadow: inset 0 5px 0 0 rgba(64, 156, 244, 0.5);
}
body[data-mood^="bear"] .ws-panel {
  box-shadow: inset 0 3px 0 0 rgba(240, 138, 64, 0.18);
  transition: box-shadow 0.7s ease;
}
body[data-mood="bear-2"] .ws-panel {
  box-shadow: inset 0 4px 0 0 rgba(240, 138, 64, 0.32);
}
body[data-mood="bear-3"] .ws-panel {
  box-shadow: inset 0 5px 0 0 rgba(240, 138, 64, 0.5);
}

@media (prefers-reduced-motion: reduce) {
  .header-bg.is-active {
    display: none;
  }
  .header-bg.is-active.is-revealed {
    transition: none;
  }
  .site-header.has-header-video {
    background: linear-gradient(180deg, #0f1419 0%, #0f1419f5 90%, transparent 100%);
  }
  .site-header.has-header-video::after,
  .site-header.has-header-video .header-bg-fx {
    display: none;
    animation: none;
  }
  .site-header.has-header-video::before,
  .site-header.has-header-video.header-shade-settling::before {
    animation: none;
    height: var(--header-bottom-shade-h);
  }
}
body.is-embed .header-bg-yt-mount iframe {
  width: 100% !important;
}
.header-inner {
  display: flex;
  flex: 0 0 var(--header-logo-slot);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  height: var(--header-logo-slot);
  min-height: var(--header-logo-slot);
  max-height: var(--header-logo-slot);
  text-align: center;
  overflow: visible;
}
.site-header:has(.brand-logo-stack.is-animated) {
  overflow: visible;
}
.site-header-account {
  position: absolute;
  top: max(10px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  z-index: 4;
}
.site-header-share {
  position: absolute;
  top: max(10px, env(safe-area-inset-top));
  left: max(12px, env(safe-area-inset-left));
  z-index: 5;
}
.share-card-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(5, 9, 14, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  animation: shareCardFade 0.16s ease;
}
@keyframes shareCardFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.share-card-modal {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: min(92vw, 420px);
  max-height: 92vh;
}
.share-card-img {
  width: 100%;
  height: auto;
  max-height: 76vh;
  object-fit: contain;
  border-radius: 16px;
  border: 1px solid rgba(78, 184, 201, 0.3);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.share-card-close {
  position: absolute;
  top: -10px;
  right: -10px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(15, 20, 25, 0.92);
  color: var(--text);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.share-card-close:hover {
  background: rgba(30, 38, 48, 0.95);
}
.share-card-actions {
  display: flex;
  gap: 12px;
  width: 100%;
  justify-content: center;
}
.share-card-btn {
  flex: 1 1 0;
  max-width: 200px;
  padding: 14px 22px;
  border-radius: 12px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(15, 20, 25, 0.62);
  color: var(--accent-muted);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}
.share-card-btn:hover {
  background: rgba(30, 38, 48, 0.9);
}
.share-card-btn--primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #04222a;
}
.share-card-btn--primary:hover {
  background: var(--accent-muted);
}
.btn-icon--header {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: rgba(15, 20, 25, 0.62);
  border: 1px solid rgba(78, 184, 201, 0.28);
  color: var(--accent-muted);
}
.btn-icon--header:hover {
  background: rgba(78, 184, 201, 0.14);
  border-color: rgba(78, 184, 201, 0.5);
  color: #f2f6fa;
}
.site-header .header-meta {
  display: none !important;
}
/* Sticky footer nav — mobile-first */
.app-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 110;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  padding: 8px max(12px, env(safe-area-inset-left))
    max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-right));
  background: linear-gradient(0deg, rgba(15, 20, 25, 0.98) 0%, rgba(15, 20, 25, 0.94) 88%, transparent);
  backdrop-filter: blur(14px);
  border-top: 1px solid rgba(78, 184, 201, 0.18);
  box-shadow: inset 0 1px 0 rgba(78, 184, 201, 0.08);
}
.footer-mobile-only {
  display: none;
}
.footer-desktop-only {
  display: inline;
}
.footer-mobile-btn {
  display: none;
}
.footer-mobile-import-icon {
  display: none;
}
.footer-trade-wrap {
  min-width: 0;
}
.footer-trade-journey {
  border-radius: 10px;
  padding: 6px;
  background: rgba(0, 0, 0, 0.22);
  box-shadow: inset 0 0 0 1px rgba(78, 184, 201, 0.14);
}
.footer-trade-journey .tf-empty {
  padding: 8px 10px;
}
.footer-trade-journey .tf-empty-title {
  margin: 0 0 4px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-muted);
}
.footer-trade-journey .tf-empty-hint {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
}
/* Idle = nothing actionable: footer trade journey hides entirely. */
.footer-trade-journey:empty {
  display: none;
}
/* Active = guided flow: strategy head strip + progressive steps. */
.footer-trade-journey.tf-active {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 6px 8px;
  background: rgba(0, 0, 0, 0.24);
  box-shadow: inset 0 0 0 1px rgba(78, 184, 201, 0.14);
}
.tf-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.62rem;
  line-height: 1;
}
.tf-head-strat {
  font-weight: 700;
  color: var(--accent-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tf-head-sym {
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #f2f6fa;
}
.tf-head-rr {
  margin-left: auto;
  color: var(--muted);
  flex-shrink: 0;
}
.tf-steps {
  display: flex;
  align-items: stretch;
  gap: 6px;
}
.tf-steps .tf-step--active {
  flex: 1 1 auto;
}
.tf-steps .tf-step--done,
.tf-steps .tf-step--future {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  animation: tfReveal 0.3s ease both;
}
.tf-steps .tf-step--active {
  animation: tfReveal 0.32s ease both;
}
.tf-step--future {
  opacity: 0.5;
  cursor: default;
}
.tf-chip-sum {
  margin-left: 6px;
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--accent-muted);
  white-space: nowrap;
}
@keyframes tfReveal {
  from {
    opacity: 0;
    transform: translateX(7px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.tf-step {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  padding: 4px 6px 5px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.65);
  min-height: 0;
  transition: border-color 0.35s ease, box-shadow 0.35s ease;
}
.tf-step::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(78, 184, 201, 0.08) 35%,
    rgba(78, 184, 201, 0.28) 50%,
    rgba(78, 184, 201, 0.08) 65%,
    transparent 100%
  );
  transform: translateX(-120%);
}
.tf-step--active {
  border-color: rgba(78, 184, 201, 0.55);
  box-shadow:
    inset 0 0 0 1px rgba(78, 184, 201, 0.2),
    0 0 24px rgba(78, 184, 201, 0.12);
}
.tf-step--active::before {
  animation: tfStepSweep 2.8s ease-in-out infinite;
}
.tf-step--done {
  border-color: rgba(45, 184, 168, 0.35);
  opacity: 0.88;
}
.tf-step--done .tf-step-num {
  background: rgba(45, 184, 168, 0.25);
  color: #9ee8dc;
}
@keyframes tfStepSweep {
  0% { opacity: 0; transform: translateX(-120%); }
  35% { opacity: 1; }
  100% { opacity: 0; transform: translateX(120%); }
}
.tf-step-row {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.tf-step-head {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
}
.tf-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  font-size: 0.58rem;
  font-weight: 800;
  background: rgba(78, 184, 201, 0.18);
  color: var(--accent);
}
.tf-step-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #f2f6fa;
}
.tf-step-body {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.64rem;
}
.tf-step-hint {
  margin: 0;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tf-range {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: #f2f6fa;
  white-space: nowrap;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tf-fields {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tf-fields--compact {
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px 5px;
  min-width: 0;
}
.tf-inline {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.tf-inline .tf-lbl {
  font-size: 0.52rem;
  margin: 0;
}
.tf-lbl--inline {
  flex-direction: row;
  align-items: center;
  gap: 4px;
}
.tf-lbl--inline input,
.tf-lbl--inline select {
  width: 4.5rem;
  min-width: 0;
}
.tf-fields--compact .tf-action {
  margin-top: 0;
  margin-left: auto;
  width: auto;
  flex: 0 0 auto;
  padding: 2px 7px;
  font-size: 0.6rem;
  line-height: 1.2;
  white-space: nowrap;
}
.tf-field-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-variant-numeric: tabular-nums;
}
.tf-lbl {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.tf-lbl input,
.tf-lbl select {
  font-size: 0.68rem;
  padding: 2px 5px;
  border-radius: 6px;
  border: 1px solid #2a3544;
  background: rgba(0, 0, 0, 0.35);
  color: var(--text);
}
.tf-action {
  margin-top: 4px;
  width: 100%;
  justify-content: center;
}
.tf-action--close {
  background: rgba(232, 149, 79, 0.18);
  border-color: rgba(232, 149, 79, 0.45);
  color: var(--bear-muted);
}
.footer-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  flex-shrink: 0;
}
.footer-edit-screens {
  letter-spacing: 0.03em;
}
.footer-screens-popover {
  position: absolute;
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(100% + 6px);
  z-index: 120;
  width: min(220px, calc(100vw - 24px));
  padding: 12px;
  border-radius: 12px;
  border: 1px solid var(--accent-border);
  background: #1a2330;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}
.ws-panel--scan-loading .ws-panel-body {
  position: relative;
  min-height: 160px;
}
.footer-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-width: 420px;
  margin: 0 auto;
}
.footer-scan-cluster {
  display: flex;
  align-items: center;
  gap: 6px;
}
.app-footer .btn-rm-scan {
  width: 48px;
  height: 48px;
}
.app-footer .btn-rm-scan.is-scanning {
  width: 56px;
  height: 56px;
}
.app-footer .btn-rm-scan-img,
.app-footer .btn-rm-scan-img[width] {
  width: 56px;
  height: 56px;
}
.app-footer .btn-scan-cog {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 10px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(12, 18, 24, 0.92);
  color: var(--accent);
}
.app-footer .btn-scan-cog.is-active {
  border-color: var(--accent);
  background: rgba(78, 184, 201, 0.14);
}
.app-footer .btn-scan-cog svg {
  display: block;
  margin: 0 auto;
}
.app-footer .btn-icon {
  width: 48px;
  height: 48px;
}
.app-footer .btn-ghost.btn-sm {
  min-height: 48px;
  padding: 10px 14px;
}
.brand {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  flex-shrink: 0;
  text-decoration: none;
  color: var(--text);
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
  isolation: isolate;
  overflow: visible;
}
.brand,
.brand-guide-trigger,
#btnBrandGuide {
  -webkit-tap-highlight-color: transparent;
}
.brand:focus,
.brand:focus-visible,
.brand:focus-within,
.brand:active,
.brand-guide-trigger:focus,
.brand-guide-trigger:focus-visible,
.brand-guide-trigger:focus-within,
.brand-guide-trigger:active,
#btnBrandGuide:focus,
#btnBrandGuide:focus-visible,
#btnBrandGuide:focus-within,
#btnBrandGuide:active {
  outline: none !important;
  box-shadow: none !important;
  border: none;
}
.site-header .btn-icon--header:focus,
.site-header .btn-icon--header:focus-visible {
  outline: none;
  box-shadow: none;
}
.brand-logo-stack {
  position: relative;
  display: block;
  width: 120px;
  height: 120px;
  max-width: min(168px, 46vw);
  flex-shrink: 0;
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  transform-origin: center center;
  transition: transform 0.42s ease, filter 0.35s ease;
}
/* Preload + scan: slightly larger and nudged up (visual only; slot stays 120×120) */
.brand-logo-stack.is-animated {
  transform: translateY(-10px) scale(1.24);
}
@media (min-width: 1280px) {
  .brand-logo-stack.is-animated {
    transform: translateY(-12px) scale(1.3);
  }
}
.brand-logo-stack .brand-logo,
.brand-logo-stack .brand-logo--video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: contain;
  object-position: center;
}
/* Shared header logo look — static PNG + animated MP4 (same slot, screen blend) */
.brand-logo--static,
.brand-logo-stack.is-animated .brand-logo--video:not([hidden]),
.brand-logo-stack.is-animated-css video.brand-logo--video {
  mix-blend-mode: screen;
  filter:
    brightness(1.06)
    contrast(1.05)
    drop-shadow(0 0 12px rgba(255, 255, 255, 0.12))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}
.brand-logo--static {
  display: block;
  transform: translateZ(0);
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  transition: opacity 0.42s ease, visibility 0.42s ease, filter 0.35s ease;
  z-index: 1;
}
.brand-logo--video-src {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.brand-logo--video {
  display: block;
  transform: translateZ(0);
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.42s ease, visibility 0.42s ease, filter 0.35s ease;
}
.brand-logo--video[hidden] {
  display: none !important;
}
.brand-logo-stack.is-animated .brand-logo--static {
  opacity: 0;
  visibility: hidden;
}
.brand-logo-stack.is-animated .brand-logo--video:not([hidden]) {
  opacity: 1;
  visibility: visible;
}
.brand-guide-trigger:hover .brand-logo--static,
.brand-guide-trigger:hover .brand-logo-stack.is-animated .brand-logo--video:not([hidden]) {
  filter:
    brightness(1.08)
    contrast(1.06)
    drop-shadow(0 0 14px rgba(255, 255, 255, 0.14))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}
/* Legacy selector — mobile snap rules target .brand-logo */
.brand-logo {
  display: block;
  position: relative;
  left: auto;
  top: auto;
  width: 120px;
  height: 120px;
  max-width: min(168px, 46vw);
  object-fit: contain;
  transform: translateZ(0);
}
.calendar-entry.is-selected {
  border-color: var(--accent);
  background: var(--accent-bg);
  color: var(--text);
}
.header-meta {
  margin: 8px 0 0;
  font-size: 0.72rem;
  color: var(--muted);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Rainmaker scan — lightning icon idle; circle mask + GIF while scanning */
.btn-rm-scan {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--accent-muted);
  cursor: pointer;
  flex-shrink: 0;
  overflow: visible;
  transition: transform 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.btn-rm-scan:hover {
  color: var(--accent);
  background: rgba(78, 184, 201, 0.1);
}
.btn-rm-scan:active {
  transform: scale(0.96);
}
.btn-rm-scan-idle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.btn-rm-scan-bolt {
  display: block;
  color: inherit;
}
.btn-rm-scan-bolt-path {
  opacity: 0.35;
  transition: opacity 0.12s ease;
}
.btn-rm-scan:hover .btn-rm-scan-bolt-path--1 {
  animation: rm-scan-bolt-strike-1 1.2s ease-in-out infinite;
}
.btn-rm-scan:hover .btn-rm-scan-bolt-path--2 {
  animation: rm-scan-bolt-strike-2 1.2s ease-in-out infinite;
}
.btn-rm-scan:hover .btn-rm-scan-bolt-path--3 {
  animation: rm-scan-bolt-strike-3 1.2s ease-in-out infinite;
}
@keyframes rm-scan-bolt-strike-1 {
  0%, 8%, 100% { opacity: 0.35; }
  4% { opacity: 1; }
}
@keyframes rm-scan-bolt-strike-2 {
  0%, 33%, 100% { opacity: 0.35; }
  29% { opacity: 1; }
}
@keyframes rm-scan-bolt-strike-3 {
  0%, 58%, 100% { opacity: 0.35; }
  54% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .btn-rm-scan:hover .btn-rm-scan-bolt-path {
    animation: none;
    opacity: 1;
  }
}
.btn-rm-scan-img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  pointer-events: none;
}
.btn-rm-scan-active {
  object-fit: cover;
  padding: 0;
  background: #0a0c10;
}
.btn-rm-scan.is-scanning .btn-rm-scan-idle {
  display: none;
}
.btn-rm-scan.is-scanning .btn-rm-scan-active {
  display: block !important;
}
.btn-rm-scan.is-scanning {
  width: 56px;
  height: 56px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 38%, rgba(78, 184, 201, 0.14) 0%, transparent 58%),
    #0a0c10;
  overflow: hidden;
  border-color: var(--accent-border);
  box-shadow: 0 0 20px var(--accent-border);
  cursor: wait;
}
.btn-rm-scan.is-scanning:hover {
  transform: none;
  background:
    radial-gradient(circle at 50% 38%, rgba(78, 184, 201, 0.14) 0%, transparent 58%),
    #0a0c10;
}
.btn-ghost {
  background: rgba(42, 53, 68, 0.85);
  color: var(--text);
  box-shadow: none;
  border: 1px solid #3a4a5e;
}
.btn-ghost:hover { background: #334155; }
.btn-sm {
  padding: 7px 11px;
  font-size: 0.78rem;
}
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 10px;
  background: rgba(42, 53, 68, 0.85);
  border: 1px solid #3a4a5e;
  color: var(--text);
  cursor: pointer;
}
.btn-icon:hover {
  background: #334155;
  color: var(--accent);
}
.btn-scan-primary {
  width: 100%;
  margin-top: 8px;
  font-weight: 700;
}
#scanDrawer .btn-scan-primary {
  margin-top: 0;
}
.market-panel--compact {
  margin-top: 8px;
}
.market-panel--compact.hidden { display: none; }
.pick-error { color: var(--no); }
.market-panel--compact .mkt-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.market-panel--compact .mkt-tile {
  min-height: 48px;
  padding: 6px 8px;
}
.market-panel--compact .mkt-tile-val { font-size: 0.82rem; }
.toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
button, .btn {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
}
button:disabled { opacity: 0.45; cursor: not-allowed; }
button.secondary { background: #2a3544; color: var(--text); }
button.danger { background: #5c2a2e; }
section {
  background: var(--card);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 12px;
}
section h2 {
  font-size: 0.85rem;
  color: var(--accent);
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.pick-row {
  display: block;
  padding: 10px 0;
  border-bottom: 1px solid rgba(42, 53, 68, 0.35);
  cursor: pointer;
  overflow: hidden;
  max-height: 320px;
  opacity: 1;
  transform: translateX(0);
  transition:
    max-height 0.5s ease,
    opacity 0.45s ease,
    transform 0.45s ease,
    padding 0.45s ease,
    border-color 0.45s ease;
}
.pick-row:last-child { border-bottom: none; }
.pick-row.pick-row-exit {
  opacity: 0;
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  transform: translateX(28px);
  border-bottom-color: transparent;
  pointer-events: none;
}
.pick-row.pick-row-scanning {
  background: rgba(78, 184, 201, 0.08);
  box-shadow: inset 3px 0 0 rgba(78, 184, 201, 0.75);
}
.pick-row-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
.pick-row-title {
  flex: 1;
  min-width: 0;
}
.pick-metrics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-top: 6px;
  font-size: 0.75rem;
  color: var(--muted);
  font-weight: 500;
}
.pick-price {
  font-size: 0.88rem;
  color: var(--text);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.pick-vol {
  font-size: 0.72rem;
}
.price-move {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.1;
}
.price-move.move-up {
  background: var(--bull-bg);
  color: var(--bull-muted);
}
.price-move.move-down {
  background: var(--bear-bg);
  color: var(--bear-muted);
}
.price-move.move-flat {
  background: rgba(139, 156, 179, 0.14);
  color: var(--muted);
  font-weight: 600;
  font-size: 0.82rem;
}
.move-arrow {
  font-size: 0.72em;
  line-height: 1;
}
.move-pct {
  font-size: 1em;
}
.trend-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.15em;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
  vertical-align: middle;
}
.trend-arrow.trend-up { color: var(--yes); }
.trend-arrow.trend-down { color: var(--no); }
.trend-arrow.trend-neutral {
  color: var(--muted);
  font-size: 0.55rem;
}
.pick-row-title .trend-arrow {
  margin-left: 2px;
}
.pick-news-list {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}
.pick-news-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 0.82rem;
  line-height: 1.35;
}
.pick-news-item .trend-arrow {
  margin-top: 2px;
  flex-shrink: 0;
}
.pick-news-item.trend-up a { color: var(--bull-muted); }
.pick-news-item.trend-down a { color: var(--bear-muted); }
.pick-news-list a {
  color: var(--accent);
  text-decoration: none;
  flex: 1;
  min-width: 0;
}
.pick-removed-banner {
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: none;
  opacity: 0.85;
}
.sym { font-weight: 700; font-size: 1.05rem; }
.score { font-variant-numeric: tabular-nums; color: var(--muted); }
.rm-score-tip {
  cursor: help;
  text-decoration: underline dotted rgba(139, 156, 179, 0.55);
  text-underline-offset: 3px;
}
.rm-score-tooltip {
  position: absolute;
  z-index: 1000;
  max-width: min(320px, calc(100vw - 24px));
  padding: 12px 14px;
  background: #243044;
  border: 1px solid #3d4f66;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--text);
  pointer-events: none;
}
.rm-score-tooltip.hidden { display: none; }
.rm-tip-title {
  margin: 0 0 4px;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--text);
}
.rm-tip-sub {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 0.72rem;
}
.rm-tip-list {
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}
.rm-tip-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
  margin-bottom: 5px;
}
.rm-tip-pts {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  min-width: 2.2em;
}
.rm-tip-on .rm-tip-pts { color: var(--yes); }
.rm-tip-off { color: var(--muted); opacity: 0.65; }
.rm-tip-note {
  color: var(--muted);
  font-size: 0.68rem;
}
.rm-tip-total,
.rm-tip-adj {
  margin: 0;
  font-size: 0.75rem;
  color: var(--muted);
}
.rm-tip-total strong,
.rm-tip-adj strong { color: var(--text); }
.pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
}
.pill-yes { background: var(--bull-bg); color: var(--bull); }
.pill-no { background: var(--bear-bg); color: var(--bear); }
.pill-review { background: rgba(232,179,57,.2); color: var(--review); }
.hidden { display: none !important; }
/* display:none blocks programmatic .click(); label[for] needs off-screen input */
.file-input-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
label.btn {
  display: inline-block;
  text-align: center;
}
.pick-sub { color: var(--muted); font-size: 0.75rem; margin-top: 4px; max-width: 220px; }
.news-symbol { margin-bottom: 14px; }
.news-symbol ul { margin: 6px 0 0; padding-left: 1.1rem; }
.news-symbol li { margin-bottom: 6px; font-size: 0.85rem; }
.pick-row-selected {
  background: var(--accent-bg);
  margin: 0 -14px;
  padding-left: 14px;
  padding-right: 14px;
  border-radius: 8px;
}
.tabs { display: flex; gap: 6px; margin-bottom: 12px; }
.tabs-segmented button {
  flex: 1;
  padding: 10px 8px;
  background: #2a3544;
  color: var(--text);
}
.tabs-segmented button.active {
  background: var(--accent);
  color: #fff;
}
.tabs-segmented button:not(.active):hover {
  background: #334155;
}
.drawer-backdrop,
.order-backdrop {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(8, 12, 18, 0.62);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.drawer-backdrop:not(.hidden),
.order-backdrop:not(.hidden) {
  opacity: 1;
  pointer-events: auto;
}
.side-drawer,
.order-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 210;
  width: min(100%, 400px);
  height: 100%;
  max-height: 100dvh;
  background: var(--card);
  border-left: 1px solid #2a3544;
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.45);
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 0.28s cubic-bezier(0.32, 0.72, 0, 1),
    visibility 0.28s;
  display: flex;
  flex-direction: column;
}
.side-drawer.is-closed,
.order-drawer.is-closed {
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
}
.side-drawer.open,
.order-drawer.open {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
}
#scanDrawer { z-index: 220; }
#scanBackdrop { z-index: 215; }
.side-drawer-inner,
.order-drawer-inner {
  flex: 1;
  overflow-y: auto;
  padding: max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));
  -webkit-overflow-scrolling: touch;
}
#scanDrawer .scan-drawer-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100dvh;
  overflow: hidden;
  padding: 0;
}
#scanDrawer .side-drawer-header {
  flex-shrink: 0;
  margin-bottom: 0;
  padding: max(16px, env(safe-area-inset-top)) 16px 10px;
}
#scanDrawer .scan-drawer-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 16px 8px;
}
#scanDrawer .scan-drawer-footer {
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 3;
  padding: 12px 16px max(16px, env(safe-area-inset-bottom));
  background: linear-gradient(
    0deg,
    var(--card) 78%,
    rgba(22, 31, 42, 0.97) 92%,
    transparent
  );
  border-top: 1px solid rgba(42, 53, 68, 0.55);
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);
}
#scanDrawer .scan-drawer-footer .btn-scan-primary {
  width: 100%;
  margin-top: 0;
  padding: 14px 16px;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 12px;
  background: var(--accent);
  color: #0c1218;
  border: none;
}
#scanDrawer .scan-drawer-footer .btn-scan-primary:hover {
  filter: brightness(1.08);
}
#scanDrawer .scan-drawer-footer .btn-scan-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.scan-drawer-footer-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.scan-drawer-footer-actions button {
  flex: 1;
  margin: 0;
}
.side-drawer-header,
.order-drawer-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.side-drawer-header h2 {
  margin: 0 0 4px;
  font-size: 1.2rem;
  color: var(--text);
  text-transform: none;
  letter-spacing: 0;
}
.side-drawer-close,
.order-drawer-close {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 10px;
  background: #2a3544;
  color: var(--text);
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 400;
}
.side-drawer-close:hover,
.order-drawer-close:hover {
  background: #3a4a5e;
}
#planFields button {
  width: 100%;
  margin-top: 10px;
}
.scan-config-intro { margin: 0 0 8px; font-size: 0.85rem; }
.scan-config-max { margin-bottom: 12px; }
.cfg-min-score {
  width: 3.5rem;
  margin-left: 4px;
  padding: 2px 6px;
  border-radius: 6px;
  border: 1px solid #3a4a5e;
  background: #121820;
  color: var(--text);
}
.scan-criteria-grid { display: flex; flex-direction: column; gap: 12px; }
.scan-criterion {
  padding: 10px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 10px;
  border: 1px solid #2a3544;
}
.scan-criterion strong { font-size: 0.88rem; }
.scan-section-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
  margin: 16px 0 8px;
}
.check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  margin-bottom: 12px;
}
.custom-filter-row {
  display: grid;
  grid-template-columns: 1fr 56px auto;
  gap: 6px;
  margin-bottom: 8px;
  align-items: center;
}
.custom-filter-row .cf-rule {
  grid-column: 1 / -1;
}
.scan-ts-preview {
  background: #0a0e14;
  border: 1px solid #2a3544;
  border-radius: 8px;
  padding: 10px;
  font-size: 0.68rem;
  overflow-x: auto;
  white-space: pre;
  color: var(--muted);
  max-height: 160px;
}
label {
  display: block;
  font-size: 0.75rem;
  color: var(--muted);
  margin: 8px 0 4px;
}
input, select {
  width: 100%;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #2a3544;
  background: var(--bg);
  color: var(--text);
  font-size: 1rem;
}
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.trade-item {
  padding: 10px 0;
  border-bottom: 1px solid #2a3544;
  font-size: 0.85rem;
}
.trade-item strong { color: var(--accent); }
.status-msg { color: var(--muted); font-size: 0.85rem; padding: 8px 0; }
#newsResults a {
  display: block;
  color: var(--accent);
  padding: 6px 0;
  font-size: 0.9rem;
}

.scan-progress {
  margin-bottom: 14px;
  padding-bottom: 4px;
}
.scan-progress-label {
  font-size: 0.85rem;
  color: var(--text);
  margin: 0 0 10px;
  font-weight: 600;
}
.scan-progress-track {
  height: 8px;
  background: #2a3544;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 12px;
}
.scan-progress-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--accent), #5eb8ff);
  border-radius: 999px;
  transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: width;
}
.scan-progress-fill.is-estimated {
  background: linear-gradient(
    90deg,
    #2a8fd4 0%,
    var(--accent) 45%,
    #7ec8ff 100%
  );
  transition: none;
}
.scan-progress-fill.no-transition {
  transition: none !important;
}
.scan-progress-segments {
  display: flex;
  flex-direction: row;
  gap: 3px;
  width: 100%;
}
.scan-segment {
  flex: 1 1 0;
  min-width: 0;
  max-width: 120px;
  height: 36px;
  border-radius: 6px;
  background: #2a3544;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition:
    flex 0.5s ease,
    max-width 0.5s ease,
    min-width 0.5s ease,
    opacity 0.45s ease,
    transform 0.45s ease,
    margin 0.45s ease,
    background 0.25s ease,
    box-shadow 0.25s ease;
  overflow: hidden;
}
.scan-segment.segment-exit {
  flex: 0 0 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  opacity: 0;
  transform: scale(0.4);
  border-width: 0;
  pointer-events: none;
}
.scan-segment span {
  font-size: 0.55rem;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.02em;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  max-width: 100%;
  padding: 0 2px;
}
.scan-segment.pending { background: #2a3544; }
.scan-segment.active {
  background: linear-gradient(90deg, #2a5080, var(--accent));
  box-shadow: 0 0 0 2px var(--accent-border);
  transform: scaleY(1.08);
}
.scan-segment.active span { color: #fff; }
.scan-segment.done-ok {
  background: var(--bull-bg-strong);
  border: 1px solid var(--bull);
}
.scan-segment.done-ok span { color: var(--yes); }
.scan-segment.done-none {
  background: var(--bear-bg);
  border: 1px solid var(--bear-border);
}
.scan-segment.done-none span { color: var(--no); opacity: 0.85; }
.scan-segment.done-error {
  background: rgba(232, 179, 57, 0.2);
  border: 1px solid var(--review);
}
.scan-segment.done-error span { color: var(--review); }

.market-panel {
  margin-top: 0;
}
.market-panel--finviz {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
}
.market-panel--highlights {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.market-panel--finviz .fv-market,
.market-panel--highlights .fv-market {
  flex: 1;
  min-height: 0;
}
.mkt-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
@media (max-width: 520px) {
  .mkt-grid { grid-template-columns: repeat(2, 1fr); }
}
.mkt-tile {
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid #2a3544;
  border-radius: 8px;
  padding: 8px 10px;
  min-height: 58px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mkt-tile.up { border-color: var(--bull-border); }
.mkt-tile.down { border-color: var(--bear-border); }
.mkt-tile-label {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.mkt-tile-val {
  font-size: 0.95rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.mkt-tile-sub {
  font-size: 0.68rem;
  color: var(--muted);
}
.mkt-tile.up .mkt-tile-val,
.mkt-tile.up .mkt-tile-sub { color: var(--yes); }
.mkt-tile.down .mkt-tile-val,
.mkt-tile.down .mkt-tile-sub { color: var(--no); }
.mkt-breadth-bar {
  display: flex;
  height: 6px;
  border-radius: 999px;
  overflow: hidden;
  margin: 6px 0 4px;
  background: #2a3544;
}
.mkt-breadth-up { background: var(--yes); }
.mkt-breadth-down { background: var(--no); }
.mkt-loading { grid-column: 1 / -1; color: var(--muted); font-size: 0.8rem; }
.mkt-placeholder .mkt-tile { grid-column: span 2; }

/* —— RM confidence meter —— */
.rm-meter {
  cursor: help;
  min-width: 88px;
}
.rm-meter-row {
  flex-shrink: 0;
  text-align: right;
}
.rm-meter-compact {
  min-width: 72px;
}
.rm-meter-drawer {
  margin: 0 0 14px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 12px;
  border: 1px solid #2a3544;
}
.rm-meter-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.rm-meter-num {
  font-size: 1.5rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.rm-meter-drawer .rm-meter-num { font-size: 2rem; }
.rm-meter-pct {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--muted);
}
.rm-meter-track {
  position: relative;
  height: 10px;
  background: #1a2332;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #2a3544;
}
.rm-meter-drawer .rm-meter-track { height: 14px; }
.rm-meter-fill {
  position: relative;
  z-index: 1;
  height: 100%;
  border-radius: 999px;
  transition: width 0.4s ease;
}
.rm-tier-high .rm-meter-fill {
  background: linear-gradient(90deg, var(--bull-strong), var(--bull), var(--bull-muted));
  box-shadow: 0 0 12px var(--bull-glow);
}
.rm-tier-mid .rm-meter-fill {
  background: linear-gradient(90deg, #8a6d2d, var(--review), #f5d87a);
  box-shadow: 0 0 10px rgba(212, 162, 74, 0.35);
}
.rm-tier-low .rm-meter-fill {
  background: linear-gradient(90deg, var(--bear-strong), var(--bear), var(--bear-muted));
  box-shadow: 0 0 10px var(--bear-glow);
}
.rm-meter-glow {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
  animation: rm-shimmer 2.5s ease-in-out infinite;
}
@keyframes rm-shimmer {
  0%, 100% { opacity: 0.3; transform: translateX(-100%); }
  50% { opacity: 0.8; transform: translateX(100%); }
}
.rm-tier-high .rm-meter-num { color: var(--bull-muted); }
.rm-tier-mid .rm-meter-num { color: var(--review); }
.rm-tier-low .rm-meter-num { color: var(--bear-muted); }
.rm-meter-label {
  display: block;
  margin-top: 4px;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.pick-row-top { align-items: center; }

.btn-text-short { display: none; }

/* —— Mobile layout —— */
@media (max-width: 640px) {
  :root {
    --mobile-header-hero-h: min(38vh, 240px);
    --mobile-header-compact-h: min(19vh, 120px);
    --mobile-header-current: var(--snap-header-min, 66px);
    --mobile-collapsed-rows-h: 128px;
    --snap-logo-size: 48px;
    --snap-header-inner-min: 48px;
    --snap-header-min: 66px;
    --header-block-h: var(--snap-header-min);
    --mobile-safe-top: env(safe-area-inset-top, 0px);
    --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
    --mobile-header-shell-h: calc(var(--snap-header-min, 66px) + var(--mobile-safe-top));
    --mobile-top-chrome-h: calc(var(--mobile-header-shell-h) + var(--mobile-row-nav-h, 48px));
    --mobile-bottom-chrome-h: calc(var(--mobile-action-bar-h, 48px) + max(6px, var(--mobile-safe-bottom)));
  }
  /* First-paint compact header — no logo resize flash before accordion JS */
  .site-header {
    --snap-logo-size: 48px;
    --snap-header-inner-min: 48px;
    --snap-header-min: 66px;
    --header-block-h: var(--snap-header-min);
    height: var(--snap-header-min) !important;
    min-height: var(--snap-header-min) !important;
    max-height: var(--snap-header-min) !important;
    padding-top: max(4px, env(safe-area-inset-top));
    padding-bottom: 4px;
    padding-inline: var(--mobile-header-pad-x);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    z-index: 110;
    transition: none !important;
    background: transparent !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }
  .site-header::before,
  .site-header::after {
    display: none !important;
  }
  /* Full-width chrome wash — bottom-aligned, rises from the row nav */
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--mobile-top-chrome-h);
    z-index: 105;
    pointer-events: none;
    background: var(--mobile-chrome-wash-top);
  }
  /* Bottom chrome wash — backstop under footer action bar */
  body.is-mobile-ws-accordion::after {
    content: "";
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(var(--mobile-bottom-chrome-h) + 4px);
    z-index: 105;
    pointer-events: none;
    background: var(--mobile-chrome-wash-footer);
    background-size: var(--mobile-footer-chrome-bg-size);
    background-attachment: fixed;
    background-position: var(--mobile-footer-chrome-bg-pos);
    background-repeat: no-repeat;
  }
  .mobile-row-nav {
    background: transparent;
    border-radius: 0 0 var(--mobile-chrome-curve) var(--mobile-chrome-curve);
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.34);
  }
  html.header-fx-lite .site-header .header-mood-copy,
  html.mobile-perf-active .site-header .header-mood-copy {
    background: none !important;
  }
  .site-header .header-inner {
    position: relative;
    z-index: 3;
    order: 2;
    flex: 0 0 auto;
    align-self: center;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    height: var(--snap-logo-size);
    min-height: var(--snap-logo-size);
    max-height: var(--snap-logo-size);
    transform: none !important;
    transition: none !important;
  }
  .site-header .brand,
  .site-header .brand-logo-stack,
  .site-header .brand-logo {
    width: var(--snap-logo-size);
    height: var(--snap-logo-size);
    max-width: var(--snap-logo-size);
    transition: none !important;
  }
  .site-header .brand-logo-stack,
  .site-header .brand-logo-stack.is-animated,
  .site-header .brand-logo-stack.is-animated-css {
    transform: none !important;
  }
  .site-header .header-mood-copy {
    position: static;
    z-index: 3;
    order: 1;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    max-height: none;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    padding: 0;
    gap: 0;
    align-items: flex-start;
    align-self: center;
    justify-content: center;
    text-align: left;
    background: none;
    transition: none !important;
  }
  .site-header .header-mood-copy .hm-kicker {
    margin: -1px 0 0;
    line-height: 1;
  }
  .site-header .header-mood-copy .hm-gauge {
    margin: 1px 0 0;
  }
  .site-header .header-mood-copy .hm-line {
    margin: 1px 0 0;
  }
  .site-header .header-bg,
  .site-header .header-bg-fx,
  .site-header .header-mood-fx,
  .site-header .header-bg-yt-wrap,
  .site-header img.header-bg-poster,
  .site-header img.header-bg-gif,
  .site-header video.header-bg-yt-player {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
  body {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: var(--ws-footer-space);
  }
  body.is-embed {
    padding-left: 0;
    padding-right: 0;
  }
  body.is-embed .app-footer {
    margin: 0;
    width: 100%;
  }
  .page-shell {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  .morning-workspace {
    gap: 0;
    margin: 0;
    padding: 0;
    border-radius: 0;
  }
  .morning-workspace > .ws-panel {
    border-radius: 0;
  }
  body.is-mobile-ws-accordion .page-shell {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    box-sizing: border-box;
    padding-top: var(--mobile-top-chrome-h);
    padding-bottom: var(--mobile-bottom-chrome-h);
    min-height: 100dvh;
    height: 100dvh;
  }
  body.is-mobile-ws-accordion .site-header {
    --snap-logo-size: 48px;
    --snap-header-inner-min: 48px;
    --snap-header-min: 66px;
    --header-block-h: var(--snap-header-min);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    margin: 0;
    flex-shrink: 0;
    height: var(--mobile-header-shell-h) !important;
    min-height: var(--mobile-header-shell-h) !important;
    max-height: var(--mobile-header-shell-h) !important;
    padding-top: var(--mobile-safe-top);
    padding-bottom: 4px;
    overflow: hidden;
    transform: none !important;
    transition: none !important;
    z-index: 118;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-hero {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  body.is-mobile-ws-accordion .site-header .header-inner {
    height: var(--snap-header-inner-min);
    min-height: var(--snap-header-inner-min);
    max-height: var(--snap-header-inner-min);
    flex: 0 0 auto;
    transform: none !important;
    transition: none !important;
  }
  body.is-mobile-ws-accordion .site-header .brand,
  body.is-mobile-ws-accordion .site-header .brand-logo-stack,
  body.is-mobile-ws-accordion .site-header .brand-logo {
    width: var(--snap-logo-size);
    height: var(--snap-logo-size);
    max-width: var(--snap-logo-size);
    transition: none !important;
  }
  body.is-mobile-ws-accordion .brand-logo-stack.is-animated {
    transform: none;
  }
  body.is-mobile-ws-accordion .site-header .header-mood-copy {
    transition: opacity 0.24s ease, max-height 0.32s ease, height 0.32s ease;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact {
    --snap-logo-size: 60px;
    --snap-header-inner-min: 60px;
    --snap-header-min: 66px;
    height: var(--snap-header-min) !important;
    min-height: var(--snap-header-min) !important;
    max-height: var(--snap-header-min) !important;
    padding-top: max(4px, env(safe-area-inset-top));
    padding-bottom: 4px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed {
    --snap-logo-size: 48px;
    --snap-header-inner-min: 48px;
    --header-mood-h: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding-inline: var(--mobile-header-pad-x);
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-inner {
    order: 2;
    flex: 0 0 auto;
    align-self: center;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    text-align: right;
    height: var(--snap-logo-size);
    min-height: var(--snap-logo-size);
    max-height: var(--snap-logo-size);
    transform: none !important;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-mood-copy {
    order: 1;
    position: static;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    max-height: none;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    padding: 0;
    gap: 0;
    align-items: flex-start;
    justify-content: center;
    align-self: center;
    text-align: left;
    background: none;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-gauge {
    justify-content: flex-start;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-kicker {
    margin: -1px 0 0;
    font-size: 0.58rem;
    letter-spacing: 0.05em;
    line-height: 1;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-gauge {
    margin-top: 1px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-line {
    margin-top: 1px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-gauge {
    gap: 2px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-pip {
    width: 10px;
    height: 3px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-core {
    width: 5px;
    height: 5px;
    margin: 0 1px;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .hm-line {
    font-size: 0.58rem;
    line-height: 1.1;
    -webkit-line-clamp: 1;
    max-width: 100%;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    overflow: hidden;
  }
  /* Mobile chrome: logo + mood copy only — no header footage/poster */
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg.is-active,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg-fx,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-mood-fx {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg-yt-wrap,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg-yt-mount,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-poster,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-gif,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed video.header-bg-yt-player,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed #headerBgPlayer,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed #headerBgPoster,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed #headerBgGif {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed.has-header-video::after,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg-yt-wrap::after {
    display: none !important;
    background: none !important;
    box-shadow: none !important;
    opacity: 0 !important;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed {
    border-bottom: none;
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-hidden {
    --snap-logo-size: 60px;
    --snap-header-inner-min: 0px;
    --snap-header-min: 0px;
    flex: 0 0 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-100%);
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-hidden .header-inner {
    height: 0;
    overflow: hidden;
  }
  /* Compact header logo: shrink the whole slot (not just the image) and drop the
     hero scale/translate so the small logo stays on-frame and h/v centered. */
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact .brand,
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact .brand-logo-stack,
  body.is-mobile-ws-accordion .site-header.site-header--snap-hidden .brand,
  body.is-mobile-ws-accordion .site-header.site-header--snap-hidden .brand-logo-stack {
    width: var(--snap-logo-size);
    height: var(--snap-logo-size);
    max-width: var(--snap-logo-size);
  }
  body.is-mobile-ws-accordion .site-header.site-header--snap-compact .brand-logo-stack.is-animated,
  body.is-mobile-ws-accordion .site-header.site-header--snap-hidden .brand-logo-stack.is-animated {
    transform: none;
  }
  body.is-mobile-ws-accordion.is-mobile-snap-market,
  body.is-mobile-ws-accordion.is-mobile-snap-chart,
  body.is-mobile-ws-accordion.is-mobile-snap-scans {
    --mobile-footer-sticker-h: calc(
      var(--mobile-action-bar-h) + 8px + env(safe-area-inset-bottom)
    );
    --ws-footer-space: calc(
      var(--mobile-action-bar-h) + var(--mobile-snap-bumper-h) + 12px + env(safe-area-inset-bottom)
    );
    padding-bottom: 0;
  }
  /* r2 — reserve footer + down-bumper so the time brush ends just above the bumper */
  body.is-mobile-ws-accordion.is-mobile-snap-chart {
    --mobile-bottom-chrome-h: calc(
      var(--mobile-action-bar-h) + var(--mobile-footer-bumper-h) + 4px +
      max(6px, var(--mobile-safe-bottom))
    );
  }
  body.is-mobile-ws-accordion.is-mobile-snap-chart.is-mobile-chart-pick {
    --mobile-footer-chrome-stack-h: calc(
      var(--mobile-footer-bumper-h) + var(--mobile-action-bar-h) + 4px + 68px +
      max(6px, env(safe-area-inset-bottom, 0px))
    );
    --ws-footer-space: calc(
      var(--mobile-action-bar-h) + var(--mobile-snap-bumper-h) + 72px + env(safe-area-inset-bottom)
    );
    --mobile-bottom-chrome-h: calc(
      var(--mobile-action-bar-h) + var(--mobile-footer-bumper-h) + 68px + 4px +
      max(6px, var(--mobile-safe-bottom))
    );
  }
  body.is-mobile-ws-accordion .site-header-share,
  body.is-mobile-ws-accordion .site-header-account {
    display: none !important;
  }
  body.is-mobile-ws-accordion .page-shell {
    position: relative;
  }
  body.is-mobile-ws-accordion .app-footer {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    grid-template-columns: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 110;
    pointer-events: none;
    padding-top: 4px;
    padding-bottom: max(6px, var(--mobile-safe-bottom));
    background: var(--mobile-chrome-wash-footer);
    background-size: var(--mobile-footer-chrome-bg-size);
    background-attachment: fixed;
    background-position: var(--mobile-footer-chrome-bg-pos);
    background-repeat: no-repeat;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-top: 1px solid rgba(78, 184, 201, 0.1);
    box-shadow:
      0 -4px 12px rgba(0, 0, 0, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }
  body.is-mobile-ws-accordion .footer-trade-wrap {
    width: 100%;
    order: 0;
  }
  body.is-mobile-ws-accordion .footer-trade-journey.tf-active {
    gap: 4px;
    padding: 4px 6px;
  }
  body.is-mobile-ws-accordion .footer-actions {
    order: 1;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    gap: 2px;
    width: 100%;
    height: var(--mobile-action-bar-h);
    min-height: var(--mobile-action-bar-h);
    padding: 0 4px;
    position: relative;
    z-index: 1;
    background: transparent;
    box-shadow: none;
    pointer-events: auto;
  }
  body.is-mobile-ws-accordion .footer-mobile-only {
    display: inline-flex;
  }
  body.is-mobile-ws-accordion .footer-desktop-only {
    display: none !important;
  }
  body.is-mobile-ws-accordion .footer-mobile-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    height: auto;
    padding: 0;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--accent-muted);
    cursor: pointer;
  }
  body.is-mobile-ws-accordion .footer-mobile-btn:active {
    background: rgba(78, 184, 201, 0.12);
    color: var(--accent);
  }
  body.is-mobile-ws-accordion .footer-action-import {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    height: auto;
    align-self: stretch;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    color: var(--accent-muted) !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  body.is-mobile-ws-accordion .footer-scan-cluster {
    display: contents;
  }
  body.is-mobile-ws-accordion .footer-action-scan {
    flex: 1 1 0;
    min-width: 0;
    width: auto !important;
    height: auto !important;
    min-height: 0;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    padding: 0;
  }
  body.is-mobile-ws-accordion .footer-action-scan .btn-rm-scan-bolt {
    width: 20px;
    height: 20px;
  }
  body.is-mobile-ws-accordion .footer-action-scan .btn-rm-scan-img {
    width: 34px !important;
    height: 34px !important;
  }
  body.is-mobile-ws-accordion .footer-action-scan.is-scanning {
    width: auto !important;
    height: auto !important;
    min-height: 0;
    border-radius: 999px;
  }
  body.is-mobile-ws-accordion .footer-action-cog {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    height: auto;
    min-height: 0;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none !important;
    background: transparent !important;
    color: var(--accent-muted);
  }
  /* Framer / iframe embed on phone — same pinned chrome as standalone */
  body.is-embed {
    padding: 0;
  }
  body.is-embed.is-mobile-ws-accordion .site-header {
    width: 100%;
    margin: 0;
    padding-inline: var(--mobile-header-pad-x);
  }
  body.is-embed.is-mobile-ws-accordion .brand-logo-stack,
  body.is-embed.is-mobile-ws-accordion .brand-logo {
    width: var(--snap-logo-size);
    height: var(--snap-logo-size);
    max-width: var(--snap-logo-size);
  }
  body.is-embed.is-mobile-ws-accordion .app-main {
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
  }
  body.is-embed.is-mobile-ws-accordion .page-shell {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: 100dvh;
  }
  body.is-embed.is-mobile-ws-accordion .app-footer {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    margin: 0;
    z-index: 110;
    flex-shrink: 0;
    pointer-events: none;
  }
  body.is-mobile-ws-accordion .app-footer > * {
    pointer-events: auto;
  }
  body.is-mobile-ws-accordion.is-mobile-snap-market .app-main,
  body.is-mobile-ws-accordion.is-mobile-snap-chart .app-main,
  body.is-mobile-ws-accordion.is-mobile-snap-scans .app-main {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  body.is-mobile-ws-accordion .site-header.site-header--compact-visual .brand-logo-stack,
  body.is-mobile-ws-accordion .site-header.site-header--compact-visual .brand-logo {
    width: 72px;
    height: 72px;
    max-width: 72px;
    transition: width 0.2s ease, height 0.2s ease;
  }
  body.is-mobile-ws-accordion .site-header.site-header--compact-visual .header-inner {
    min-height: 80px;
  }
  body.is-mobile-ws-accordion.is-mobile-snap-market .morning-workspace--mobile-snap,
  body.is-mobile-ws-accordion.is-mobile-snap-chart .morning-workspace--mobile-snap,
  body.is-mobile-ws-accordion.is-mobile-snap-scans .morning-workspace--mobile-snap {
    flex: 1 1 0%;
    min-height: 0;
    height: 100%;
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active {
    margin-top: 0;
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active::before {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-title {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-head-lead::before {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-head {
    border-bottom: none;
    min-height: 0;
    height: auto;
    padding-top: 0;
    padding-bottom: 2px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-head-lead {
    min-height: 0;
  }
  body.is-mobile-ws-accordion .app-main {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .header-inner {
    gap: 0;
    padding: 0;
  }
  .brand {
    line-height: 0;
  }
  .app-footer {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding-top: 6px;
    padding-bottom: max(8px, env(safe-area-inset-bottom));
  }
  .footer-trade-wrap {
    min-width: 0;
    overflow: hidden;
  }
  .footer-trade-journey .tf-empty--inline {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    flex-wrap: nowrap;
    overflow: hidden;
    white-space: nowrap;
  }
  .footer-trade-journey .tf-empty--inline .tf-empty-title {
    margin: 0;
    flex-shrink: 0;
  }
  .footer-trade-journey .tf-empty--inline .tf-empty-hint {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }
  .footer-actions {
    flex-shrink: 0;
    justify-content: flex-end;
    width: auto;
  }
  .footer-trade-journey.tf-active {
    gap: 4px;
    padding: 4px 6px;
  }
  .tf-steps {
    gap: 4px;
  }
  .tf-step {
    min-height: 0;
    padding: 3px 4px;
  }
  .tf-step-row {
    gap: 3px;
  }
  .tf-fields--compact {
    gap: 2px 4px;
  }
  .tf-lbl--inline input,
  .tf-lbl--inline select {
    width: 3.75rem;
  }
  .footer-nav {
    gap: 10px;
  }
  .app-footer .btn-rm-scan {
    width: 52px;
    height: 52px;
  }
  .app-footer .btn-rm-scan-img,
  .app-footer .btn-rm-scan-img[width] {
    width: 52px;
    height: 52px;
  }
  .header-meta {
    margin: 2px 0 0;
    white-space: normal;
    text-align: left;
    font-size: 0.68rem;
    line-height: 1.3;
  }
  .scan-progress {
    margin-bottom: 6px;
    padding-bottom: 0;
  }
  .site-header .scan-progress-label {
    margin-bottom: 6px;
  }
  .site-header .scan-progress-track {
    margin-bottom: 8px;
  }
  .scan-segment {
    height: 32px;
    font-size: 0.62rem;
  }
  .app-main {
    padding-top: 0;
  }
  .morning-workspace {
    scroll-margin-top: 108px;
  }
  .news-day-hero {
    margin-bottom: 12px;
    scroll-margin-top: 108px;
  }
  .news-day-hero-head {
    margin-bottom: 8px;
  }
  .news-day-hero h2 {
    font-size: var(--ws-head-size);
  }
  .news-day-hero .ntl-hint {
    font-size: 0.72rem;
    line-height: 1.35;
  }
  .news-day-view {
    min-height: 200px;
    padding: 10px;
    border-radius: 10px;
  }
  .ntl-chart-svg {
    min-width: 300px;
  }
  .ntl-toolbar {
    gap: 6px;
  }
  .ntl-sym-chip {
    padding: 6px 10px;
    min-height: 36px;
  }
  .ntl-event {
    grid-template-columns: 3.25rem 2.25rem minmax(0, 1fr);
    gap: 6px;
    padding: 8px 4px;
  }
  .ntl-event-list {
    max-height: 180px;
  }
  section:not(.morning-workspace),
  .panel-section {
    padding: 10px 12px;
    margin-bottom: 10px;
    border-radius: 10px;
  }
  .pick-row {
    padding: 10px 0;
  }
  .pick-row-selected {
    margin: 0 calc(-1 * var(--ws-col-pad-x));
    padding-left: var(--ws-col-pad-x);
    padding-right: var(--ws-col-pad-x);
  }
  .pick-row-top {
    gap: 8px;
  }
  .sym {
    font-size: 0.98rem;
  }
  .pick-metrics {
    gap: 4px 8px;
    font-size: 0.72rem;
  }
  .price-move {
    font-size: 0.82rem;
    padding: 3px 8px;
  }
  .pick-news-item {
    font-size: 0.78rem;
    gap: 6px;
  }
  .pick-sub {
    max-width: none;
  }
  .rm-meter {
    min-width: 64px;
  }
  .side-drawer,
  .order-drawer {
    width: 100%;
    max-width: none;
  }
  .side-drawer-inner,
  .order-drawer-inner {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  input,
  select,
  button,
  .btn {
    font-size: 16px;
  }
  .btn-sm,
  .btn-ghost.btn-sm {
    font-size: 0.78rem;
  }
  .tabs-segmented button {
    min-height: 44px;
  }
  .grid2 {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .market-panel--sidebar .mkt-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
}

@media (max-width: 420px) {
  .btn-text-full { display: none; }
  .btn-text-short { display: inline; }
  .btn-rm-scan {
    width: 44px;
    height: 44px;
  }
  .btn-rm-scan-img,
  .btn-rm-scan-img[width] {
    width: 44px;
    height: 44px;
  }
  .scan-segment span {
    display: none;
  }
  .scan-segment {
    height: 28px;
  }
}

/* —— Holdings —— */
.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.section-head h2 { margin: 0; }
.btn-sm {
  padding: 6px 12px;
  font-size: 0.78rem;
}
.btn-block {
  width: 100%;
  margin-top: 8px;
}
.holdings-hint { margin: 0 0 10px; }
.holding-card {
  padding: 10px 0;
  border-bottom: 1px solid #2a3544;
  cursor: pointer;
}
.holding-card:last-child { border-bottom: none; }
.holding-manage-btn {
  margin-top: 8px;
  width: 100%;
}
.holding-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.holding-pnl {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.holding-pnl.up { color: var(--yes); }
.holding-pnl.down { color: var(--no); }
.holding-pnl-big {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 8px 0;
}
.hold-spark {
  width: 100%;
  height: 48px;
  color: var(--accent);
  margin-top: 6px;
}
.holdings-empty {
  text-align: center;
  padding: 20px 8px;
}
.holdings-empty p { margin: 0 0 8px; }
.drawer-holdings-list .holding-card {
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid #2a3544;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.drawer-back { margin-bottom: 12px; }
button.danger {
  background: #8b2e34;
  margin-top: 8px;
}
#drawerAddHolding.hidden,
#drawerHoldingDetail.hidden { display: none !important; }

/* Chart hub */
.chart-hub-view {
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.chart-hub-main {
  min-width: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.chart-hub-news {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  max-height: none;
  overflow: visible;
}
.chart-hub-news-title {
  display: none;
}
.chart-hub-news-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ch-news-scanning {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--accent);
  padding: 6px 8px;
  border-radius: 6px;
  background: var(--accent-bg);
}
.ch-news-scanning-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  animation: ch-pulse 1s ease infinite;
}
@keyframes ch-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1); }
}
.ch-news-card {
  padding-bottom: 0;
  border-bottom: none;
}
.ch-news-card-title {
  margin: 0 0 6px;
  font-size: 0.88rem;
  font-weight: 700;
}
.ch-news-headlines {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  color: var(--text);
}
.ch-news-headlines a { color: #9ec5f0; text-decoration: none; }
.ch-news-headlines a:hover { text-decoration: underline; }
.ch-news-placeholder,
.ch-news-empty { margin: 0; font-size: 0.75rem; }
.chart-hub-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: flex-end;
  margin-bottom: 6px;
}
.chart-hub-controls label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.72rem;
  color: var(--muted);
}
.chart-hub-controls select {
  width: auto;
  min-width: 72px;
  padding: 6px 8px;
  font-size: 0.85rem;
}
.chart-hub-wrap {
  overflow-x: auto;
  border-radius: 8px;
  background: #121820;
}
.chart-hub-svg { display: block; width: 100%; height: 100%; }
.chart-hub-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ws-gap);
  margin-top: 0;
  font-size: var(--ws-meta-size);
  color: var(--muted);
}
.chart-hub-legend-wrap {
  /* Removed to reclaim vertical height; symbol is shown in the chart head + S/R chips.
     Scan status moves to the panel submeta live pill. */
  display: none;
}
.chart-hub-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.chart-hub-legend-item i {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}
.chart-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: rgba(8, 12, 18, 0.92);
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.chart-fullscreen.hidden { display: none !important; }
.chart-fullscreen-inner {
  width: min(1200px, 100%);
  background: var(--card);
  border-radius: 12px;
  border: 1px solid #2a3544;
  padding: 12px 14px;
  overflow-y: auto;
  max-height: 100%;
}
.chart-fullscreen-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.chart-fs-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
  font-size: 0.8rem;
  color: var(--muted);
}
.chart-fs-controls label { display: inline-flex; align-items: center; gap: 6px; }

#chartFullscreenBody .chart-hub-unified,
#chartFullscreenBody .chart-hub-main,
#chartFullscreenBody .chart-hub-stage,
#chartFullscreenBody .ca-chart-mount,
#chartFullscreenBody .ca-chart-svg-wrap {
  flex: 1;
  min-height: 0;
  height: auto;
  display: flex;
  flex-direction: column;
}
#chartFullscreenBody .ca-chart-svg,
#chartFullscreenBody .chart-hub-svg {
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
}

/* Pick inline chart */
.pick-inline-chart {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #2a3544;
}
.pick-mini-chart {
  overflow-x: auto;
  border-radius: 8px;
  background: #121820;
}
.pick-mini-chart .chart-hub-svg { min-height: 72px; }

/* Market themes heatmap */
.market-themes-wrap {
  margin-top: 4px;
  margin-bottom: 4px;
  position: relative;
}
.mkt-theme-root {
  min-height: 0;
}
.mkt-theme-grid-view {
  transition: opacity 0.32s ease, transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: top center;
}
.mkt-theme-grid-view--hidden {
  opacity: 0;
  transform: scale(0.98) translateY(-6px);
  pointer-events: none;
}
.mkt-theme-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 0;
}
/* News theme skeleton preloader — tetris-packed shimmer tiles while headlines load */
.mkt-theme-tile--skeleton {
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: flex-start;
  pointer-events: none;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
}
.mkt-skel-line,
.mkt-skel-chip {
  border-radius: 6px;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.04) 0%,
    rgba(255, 255, 255, 0.11) 50%,
    rgba(255, 255, 255, 0.04) 100%
  );
  background-size: 200% 100%;
  animation: mkt-skel-shimmer 1.25s ease-in-out infinite;
}
.mkt-skel-line--head {
  height: 12px;
  width: 58%;
}
.mkt-skel-line--src {
  height: 9px;
  width: 38%;
  margin-top: auto;
}
.mkt-skel-chip {
  height: 22px;
  width: 88%;
  border-radius: 999px;
}
.mkt-skel-chip--sm {
  width: 64%;
}
@keyframes mkt-skel-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mkt-skel-line,
  .mkt-skel-chip {
    animation: none;
  }
}
/* Progressive reveal: tiles fade/rise in, staggered by their grid index, so the
   grid feels alive as headlines stream in (item 3). */
.mkt-theme-grid-view--enter .mkt-theme-tile {
  animation: mkt-tile-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--i, 0) * 70ms);
}
@keyframes mkt-tile-in {
  from { opacity: 0; transform: translateY(8px) scale(0.985); }
  to { opacity: 1; transform: none; }
}
/* Per-tile shimmer chip for buckets still waiting on headlines. */
.mkt-theme-chip--loading {
  display: inline-block;
  height: 20px;
  width: 78%;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.04) 0%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0.04) 100%
  );
  background-size: 200% 100%;
  animation: mkt-skel-shimmer 1.25s ease-in-out infinite;
}
/* Article reader couldn't-load + retry (item 17). */
.mkt-theme-article-error {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--keyline, rgba(139, 156, 179, 0.25));
  border-radius: 8px;
  background: rgba(232, 149, 79, 0.08);
}
.mkt-theme-article-error p {
  margin: 0 0 8px;
  font-size: 0.78rem;
  color: var(--muted, #8b9cb3);
}
.mkt-theme-retry {
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  padding: 5px 14px;
  border-radius: 999px;
  border: 1px solid rgba(78, 184, 201, 0.55);
  background: rgba(78, 184, 201, 0.12);
  color: #7fd6e6;
}
.mkt-theme-retry:hover {
  background: rgba(78, 184, 201, 0.22);
}
@media (prefers-reduced-motion: reduce) {
  .mkt-theme-grid-view--enter .mkt-theme-tile { animation: none; }
  .mkt-theme-chip--loading { animation: none; }
}
.mkt-theme-tile {
  flex: 1 1 28%;
  min-width: 72px;
  min-height: 52px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  padding: 5px;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease, flex-grow 0.36s ease;
  position: relative;
}
.mkt-theme-tile:hover {
  transform: translateY(-1px);
  border-color: var(--keyline-hover);
}
/* Sentiment reads as a whisper of fill by default; the keyline only appears on hover. */
.mkt-theme-tile.sent-up { background: rgba(45, 184, 168, 0.07); }
.mkt-theme-tile.sent-down { background: rgba(232, 149, 79, 0.07); }
.mkt-theme-tile.sent-up:hover { border-color: var(--bull-border); }
.mkt-theme-tile.sent-down:hover { border-color: var(--bear-border); }
.mkt-theme-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text);
}
.mkt-theme-buzz {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent);
}
.mkt-theme-scan {
  margin-left: auto;
  padding: 1px 6px;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(78, 184, 201, 0.14);
  border-radius: 999px;
  border: 1px solid rgba(78, 184, 201, 0.22);
}
.mkt-theme-sources {
  font-size: 0.58rem;
  color: var(--muted);
}
.mkt-theme-hover {
  font-size: 0.62rem;
  color: var(--muted);
  opacity: 0;
  transition: opacity 0.15s;
}
.mkt-theme-tile:hover .mkt-theme-hover { opacity: 1; }

/* Market map hover explainers */
.fv-tip-target {
  cursor: help;
  position: relative;
  transition: transform 0.14s ease, box-shadow 0.14s ease, border-color 0.14s ease, filter 0.14s ease;
  outline: none;
}
.fv-tip-target:hover:not(.ca-buy-bag):not(.ca-fv-hit),
.fv-tip-target:focus-visible:not(.ca-buy-bag):not(.ca-fv-hit),
.fv-tip-target.fv-tip-active:not(.ca-buy-bag):not(.ca-fv-hit) {
  transform: translateY(-1px) scale(1.02);
  z-index: 2;
  filter: brightness(1.06);
  box-shadow: 0 0 0 1px var(--accent-border);
}
.ca-buy-bag.fv-tip-target,
.ca-buy-bag.fv-tip-target:hover,
.ca-buy-bag.fv-tip-target:focus-visible,
.ca-buy-bag.fv-tip-target.fv-tip-active {
  transform: none;
  box-shadow: none;
  filter: none;
  cursor: pointer;
}
.fv-map-tip {
  position: fixed;
  z-index: 1200;
  max-width: min(300px, calc(100vw - 24px));
  padding: 12px 14px;
  background: linear-gradient(165deg, #2a384c 0%, #1e2838 100%);
  border: 1px solid var(--accent-border);
  border-radius: 12px;
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  font-size: 0.76rem;
  line-height: 1.45;
  color: var(--text);
  pointer-events: none;
  opacity: 0;
  transform: translateY(6px) scale(0.98);
  transition: opacity 0.16s ease, transform 0.16s ease;
}
.fv-map-tip.fv-map-tip--show {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.fv-map-tip.hidden {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.fv-tip-kicker {
  margin: 0 0 4px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}
.fv-tip-title {
  margin: 0 0 6px;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--text);
}
.fv-tip-stat {
  margin: 0 0 8px;
  font-size: 0.92rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--bull-muted);
}
.fv-tip-desc {
  margin: 0;
  color: var(--muted);
  font-size: 0.72rem;
}

/* MACD/RSI buy: pennant interactive only after positioned (avoids full-screen click trap) */
.fv-map-tip.fv-map-tip--buy-flag.fv-map-tip--show.fv-map-tip--positioned {
  pointer-events: auto;
}
/* MACD/RSI buy: narrow pennant hover flag (points down at money bag — not the bag itself) */
.fv-map-tip.fv-map-tip--buy-flag {
  --fv-buy-flag-bg-top: #172230;
  --fv-buy-flag-bg-mid: #243244;
  --fv-buy-flag-bg-tip: #3a4f62;
  --fv-buy-flag-edge: rgba(120, 200, 220, 0.55);
  --fv-buy-flag-tip-len: 16px;
  --fv-buy-flag-uplight-h: 30px;
  position: absolute;
  max-width: min(188px, calc(100vw - 20px));
  width: max-content;
  min-width: 0;
  padding: 8px 10px calc(var(--fv-buy-flag-tip-len) + 4px);
  border-radius: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  filter:
    drop-shadow(0 -2px 6px rgba(0, 0, 0, 0.35))
    drop-shadow(0 3px 10px rgba(0, 0, 0, 0.38))
    drop-shadow(0 2px 8px rgba(212, 140, 35, 0.22))
    drop-shadow(0 0 8px rgba(96, 180, 205, 0.2));
  clip-path: polygon(
    5px 0,
    calc(100% - 5px) 0,
    calc(100% - 2px) calc(100% - var(--fv-buy-flag-tip-len)),
    50% 100%,
    2px calc(100% - var(--fv-buy-flag-tip-len))
  );
}
.fv-map-tip.fv-map-tip--buy-flag::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    to top,
    var(--fv-buy-flag-bg-tip) 0%,
    var(--fv-buy-flag-bg-mid) 42%,
    var(--fv-buy-flag-bg-top) 100%
  );
  clip-path: inherit;
  border: 1px solid var(--fv-buy-flag-edge);
  box-shadow:
    inset 0 3px 8px rgba(0, 0, 0, 0.22),
    inset 0 -2px 4px rgba(255, 175, 55, 0.12);
}
/* Volumetric uplight (reference texture, flipped up + fade mask) */
.fv-map-tip.fv-map-tip--buy-flag::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 108%;
  height: var(--fv-buy-flag-uplight-h);
  transform: translateX(-50%) scaleY(-1);
  transform-origin: 50% 100%;
  z-index: 0;
  pointer-events: none;
  clip-path: inherit;
  background: url("assets/buy-flag-uplight.png") center bottom / 100% 100% no-repeat;
  -webkit-mask-image: linear-gradient(
    to top,
    #000 0%,
    #000 18%,
    rgba(0, 0, 0, 0.88) 32%,
    rgba(0, 0, 0, 0.45) 58%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to top,
    #000 0%,
    #000 18%,
    rgba(0, 0, 0, 0.88) 32%,
    rgba(0, 0, 0, 0.45) 58%,
    transparent 100%
  );
  mix-blend-mode: screen;
  opacity: 0.88;
  animation: fv-buy-flag-bag-glow 1.75s ease-in-out infinite;
}
@keyframes fv-buy-flag-bag-glow {
  0%,
  100% {
    opacity: 0.78;
  }
  22% {
    opacity: 1;
  }
  38% {
    opacity: 0.82;
  }
  55% {
    opacity: 0.96;
  }
  72% {
    opacity: 0.84;
  }
  88% {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fv-map-tip.fv-map-tip--buy-flag::after {
    animation: none;
    opacity: 0.92;
  }
}
.fv-map-tip.fv-map-tip--buy-flag .fv-buy-flag-tip {
  position: relative;
  z-index: 1;
}
.fv-map-tip.fv-map-tip--buy-flag .fv-tip-kicker {
  margin: 0 0 2px;
  font-size: 0.58rem;
  letter-spacing: 0.1em;
}
.fv-map-tip.fv-map-tip--buy-flag .fv-tip-title {
  margin: 0 0 3px;
  font-size: 0.76rem;
  line-height: 1.25;
}
.fv-map-tip.fv-map-tip--buy-flag .fv-tip-stat {
  margin: 0 0 4px;
  font-size: 0.78rem;
  font-weight: 800;
}
.fv-map-tip.fv-map-tip--buy-flag .fv-tip-desc {
  margin: 0;
  font-size: 0.64rem;
  line-height: 1.32;
}
.fv-map-cell.fv-tip-target:hover,
.fv-map-cell.fv-tip-target.fv-tip-active {
  transform: scale(1.03);
}
.fv-index.fv-tip-target:hover,
.fv-index.fv-tip-target.fv-tip-active {
  transform: translateY(-2px) scale(1.04);
}
.fv-breadth-wrap.fv-tip-target:hover,
.fv-breadth-wrap.fv-tip-target.fv-tip-active {
  transform: none;
  box-shadow: 0 0 0 1px var(--accent-border);
  border-radius: 6px;
}
.fv-top-mover.fv-tip-target {
  cursor: help;
}
.fv-top-mover.fv-tip-target:hover,
.fv-top-mover.fv-tip-target.fv-tip-active {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px var(--bull-glow);
}
.chart-hub-controls label.fv-tip-target:hover,
.chart-hub-controls label.fv-tip-target.fv-tip-active,
.chart-hub-legend-item.fv-tip-target:hover,
.chart-hub-legend-item.fv-tip-target.fv-tip-active,
.chart-hub-scan-status.fv-tip-target:hover,
.chart-hub-scan-status.fv-tip-target.fv-tip-active,
.pick-news-item.fv-tip-target:hover,
.pick-news-item.fv-tip-target.fv-tip-active,
.pill.fv-tip-target:hover,
.pill.fv-tip-target.fv-tip-active,
.price-move.fv-tip-target:hover,
.price-move.fv-tip-target.fv-tip-active,
.pick-row .sym.fv-tip-target:hover,
.pick-row .sym.fv-tip-target.fv-tip-active {
  transform: none;
  filter: brightness(1.08);
}
.chart-hub-stage.fv-tip-target:hover,
.chart-hub-stage.fv-tip-target.fv-tip-active {
  transform: none;
  filter: brightness(1.04);
  box-shadow: inset 0 0 0 1px var(--accent-border);
}

/* Scan calendar */
.calendar-search-label {
  display: block;
  margin-bottom: 10px;
  font-size: 0.78rem;
  color: var(--muted);
}
.calendar-search-label input { margin-top: 4px; }
.calendar-month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  font-weight: 600;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 14px;
}
.cal-pad { aspect-ratio: 1; }
.cal-day {
  aspect-ratio: 1;
  border: 1px solid #2a3544;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  color: var(--text);
  font-size: 0.78rem;
  cursor: pointer;
  position: relative;
  padding: 0;
}
.cal-day em {
  position: absolute;
  top: 2px;
  right: 4px;
  font-size: 0.55rem;
  font-style: normal;
  color: var(--accent);
}
.cal-day.cal-has-scan { border-color: var(--accent-border); }
.calendar-day-list { display: flex; flex-direction: column; gap: 6px; }
.cal-list-head {
  margin: 0 0 8px;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted);
}
.calendar-entry {
  text-align: left;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #2a3544;
  background: rgba(0, 0, 0, 0.2);
  color: var(--text);
  font-size: 0.8rem;
  cursor: pointer;
}
.calendar-entry:hover { border-color: var(--accent); }

/* Agent overlay — draggable research debrief */
.agent-panel {
  position: fixed;
  right: 14px;
  top: max(132px, calc(120px + env(safe-area-inset-top)));
  left: auto;
  transform: none;
  z-index: 251;
  width: min(292px, calc(100vw - 24px));
  max-height: min(360px, 50vh);
  background: linear-gradient(165deg, rgba(22, 31, 42, 0.98) 0%, rgba(14, 20, 28, 0.99) 100%);
  border: 1px solid var(--accent-border);
  border-radius: 14px;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.04) inset,
    0 16px 40px rgba(0, 0, 0, 0.55),
    0 0 28px rgba(78, 184, 201, 0.08);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  backdrop-filter: blur(14px);
  animation: agent-panel-in 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.agent-panel.hidden { display: none !important; }
.agent-panel.is-dragging {
  cursor: grabbing;
  user-select: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 22px 48px rgba(0, 0, 0, 0.62),
    0 0 36px rgba(78, 184, 201, 0.14);
}
.agent-panel.has-debrief {
  border-color: rgba(78, 184, 201, 0.48);
}
@keyframes agent-panel-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.agent-panel[data-user-pos="1"] {
  animation: agent-panel-in-pos 0.28s ease;
}
@keyframes agent-panel-in-pos {
  from { opacity: 0; }
  to { opacity: 1; }
}
.agent-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px 8px 12px;
  background: rgba(78, 184, 201, 0.06);
  border-bottom: 1px solid rgba(42, 53, 68, 0.65);
  cursor: grab;
  touch-action: none;
}
.agent-head:active { cursor: grabbing; }
.agent-head-main {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.agent-live-dot {
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--flat);
  box-shadow: 0 0 0 2px rgba(107, 125, 148, 0.2);
}
.agent-panel.has-debrief .agent-live-dot {
  background: var(--accent);
  box-shadow: 0 0 10px var(--accent-border);
  animation: agent-live-pulse 2s ease-in-out infinite;
}
@keyframes agent-live-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.88); }
}
.agent-head-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.agent-head-title {
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-muted);
}
.agent-hint-line {
  display: block;
  padding: 0;
  margin: 0;
  font-size: 0.58rem;
  line-height: 1.25;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.agent-close {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  padding: 0;
  line-height: 1;
}
.agent-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 10px 10px;
  font-size: 0.78rem;
  scrollbar-width: thin;
}
.agent-idle-lead {
  margin: 4px 0 4px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-muted);
}
.agent-idle-copy {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.45;
  color: var(--muted);
}
.agent-idle-copy strong {
  color: var(--text);
  font-weight: 600;
}
.agent-debrief-head {
  margin-bottom: 8px;
}
.agent-debrief-title {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.agent-sym {
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--text);
}
.agent-window {
  margin: 2px 0 0;
  font-size: 0.62rem;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.agent-conf-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.agent-conf-badge.is-high {
  color: var(--bull-muted);
  background: var(--bull-bg);
}
.agent-conf-badge.is-med {
  color: #f0d090;
  background: var(--review-bg);
}
.agent-conf-badge.is-low {
  color: var(--muted);
  background: var(--flat-bg);
}
.agent-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 8px;
}
.agent-metric {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 6px;
  border-radius: 7px;
  background: var(--fill-1);
}
.agent-metric-k {
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.agent-metric-v {
  font-size: 0.72rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  line-height: 1.15;
}
.agent-metric.is-pos .agent-metric-v { color: var(--bull-muted); }
.agent-metric.is-neg .agent-metric-v { color: var(--bear-muted); }
.agent-metric--shape.is-up .agent-metric-v { color: var(--bull-muted); }
.agent-metric--shape.is-down .agent-metric-v { color: var(--bear-muted); }
.agent-metric--shape.is-flat .agent-metric-v { color: var(--muted); }
.agent-range-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  padding: 4px 6px;
  border-radius: 7px;
  background: rgba(78, 184, 201, 0.06);
}
.agent-range-k {
  font-size: 0.52rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.agent-range-v {
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
  color: var(--accent-muted);
}
.agent-sec-k {
  margin: 0 0 4px;
  font-size: 0.52rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.agent-catalyst-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-height: 110px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.agent-catalyst-item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 2px 6px;
  align-items: center;
  padding: 4px 6px;
  border-radius: 6px;
  background: var(--fill-1);
  line-height: 1.25;
}
.agent-cat-tag {
  grid-row: 1;
  grid-column: 1;
  font-size: 0.48rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 1px 5px;
  border-radius: 999px;
}
.agent-cat-tag.is-in {
  color: var(--bull-muted);
  background: var(--bull-bg);
}
.agent-cat-tag.is-near {
  color: var(--accent-muted);
  background: var(--accent-bg);
}
.agent-cat-time {
  grid-row: 1;
  grid-column: 2;
  justify-self: end;
  font-size: 0.58rem;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  white-space: nowrap;
}
.agent-cat-title {
  grid-row: 2;
  grid-column: 1 / -1;
  font-size: 0.68rem;
  color: var(--text);
}
.agent-empty {
  margin: 0;
  font-size: 0.66rem;
  line-height: 1.35;
  color: var(--muted);
}
.agent-conf-note {
  margin: 6px 0 0;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: 0.64rem;
  line-height: 1.35;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.03);
}
.agent-debrief-actions {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}
.agent-act {
  flex: 1;
  border: none;
  border-radius: 8px;
  padding: 7px 8px;
  font: inherit;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  color: var(--text);
  background: var(--fill-2);
}
.agent-act:hover { background: rgba(255, 255, 255, 0.1); }
.agent-act--primary {
  color: #0c1218;
  background: linear-gradient(135deg, var(--accent-muted), var(--accent));
}
.agent-act--primary:hover {
  filter: brightness(1.08);
}
.agent-act--primary:disabled {
  opacity: 0.65;
  cursor: default;
}
.agent-form {
  display: flex;
  gap: 6px;
  padding: 10px 12px;
  border-top: 1px solid #2a3544;
}
.agent-form input { flex: 1; font-size: 0.9rem; }

/* Account drawer — stacked sections */
.drawer-account-stack {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.drawer-section {
  padding-bottom: 24px;
  border-bottom: 1px solid #2a3544;
}
.drawer-section:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.drawer-section-title {
  margin: 0 0 14px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.drawer-section--schwab {
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(62, 140, 220, 0.25);
}

/* Chart scan animation */
.chart-hub-stage {
  position: relative;
  overflow: visible;
  border-radius: 8px;
  background: #121820;
  min-height: 0;
  flex: 1;
}
.ch-stage-fetch-loader {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  background:
    radial-gradient(circle at 50% 0%, rgba(78, 184, 201, 0.12), transparent 55%),
    linear-gradient(165deg, rgba(18, 24, 32, 0.94) 0%, rgba(12, 18, 24, 0.98) 100%);
  backdrop-filter: blur(6px);
}
.ch-stage-fetch-loader .ws-load-shell {
  width: min(100%, 240px);
}
.ch-loading-msg,
.ch-empty-msg {
  position: absolute;
  left: 12px;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  text-align: center;
  font-size: 0.8rem;
  color: var(--muted);
  z-index: 3;
  pointer-events: none;
}
.ca-chart-mount--fetching {
  pointer-events: none;
}
.ca-chart-mount--fetching .ca-chart-svg-wrap,
.ca-chart-mount--fetching .ca-time-brush {
  visibility: hidden;
}
.ch-empty-msg {
  color: #e8b339;
  padding: 0 12px;
  line-height: 1.4;
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.ch-empty-msg[hidden] {
  display: none;
}
.ch-empty-stale {
  font-size: 0.7rem;
  color: var(--muted);
}
.ch-empty-retry {
  pointer-events: auto;
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 600;
  color: #f2f6fa;
  background: #1b2532;
  border: 1px solid #2f3d4f;
  border-radius: 6px;
  padding: 5px 14px;
}
.ch-empty-retry:hover {
  border-color: var(--accent, #4eb8c9);
  color: var(--accent, #4eb8c9);
}
.ch-stale-chip {
  position: absolute;
  top: 8px;
  right: 10px;
  z-index: 4;
  margin: 0;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #e8b339;
  background: rgba(232, 179, 57, 0.12);
  border: 1px solid rgba(232, 179, 57, 0.4);
  pointer-events: none;
}
.ch-stale-chip[hidden] {
  display: none;
}
.chart-hub-stage .chart-hub-svg,
.chart-hub-stage .ca-chart-svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.ch-scan-beam {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(
    180deg,
    transparent,
    var(--accent-bg),
    var(--accent),
    var(--accent-bg),
    transparent
  );
  box-shadow: 0 0 16px var(--accent);
  pointer-events: none;
  z-index: 2;
}
@keyframes ch-beam {
  from {
    left: 48px;
    opacity: 0.9;
  }
  to {
    left: calc(100% - 24px);
    opacity: 0;
  }
}
.ch-path-sweep {
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  animation: ch-sweep 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes ch-sweep {
  to {
    stroke-dashoffset: 0;
  }
}
.ch-path-fade {
  animation: ch-fade-out 0.75s ease forwards;
}
@keyframes ch-fade-out {
  to {
    opacity: 0;
    stroke-width: 0.5;
    filter: none;
  }
}
.ch-path-keep {
  animation: ch-land 0.55s cubic-bezier(0.2, 1, 0.2, 1) forwards;
}
@keyframes ch-land {
  from {
    opacity: 0.35;
    stroke-width: 1;
  }
  to {
    opacity: 1;
    stroke-width: 2.5;
  }
}
.ch-cand-label {
  font-size: 10px;
  font-weight: 800;
  pointer-events: none;
}
.ch-sym-label {
  font-size: 9px;
  font-weight: 700;
  pointer-events: none;
}
.chart-hub-scan-status {
  margin-left: auto;
  font-size: 0.68rem;
  color: var(--muted);
  font-style: italic;
}

/* Finviz-style market */
.fv-market {
  font-size: 0.72rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 0;
}
.fv-market.fv-empty {
  justify-content: center;
  padding: 12px 8px;
}
.fv-market.fv-empty .meta {
  margin: 0;
  text-align: center;
}
.fv-market-block:has(.fv-map-grid) {
  flex: 0 0 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.fv-market-block:has(.fv-map-grid) .fv-map-head {
  flex-shrink: 0;
}
.fv-market-block:has(.fv-map-grid) .fv-map-grid {
  flex: none;
  min-height: 0;
  overflow: visible;
}
.fv-market[data-sections="1"] .fv-index-strip .fv-cell,
.fv-market[data-sections="1"] .fv-signal {
  min-height: 58px;
  padding-block: 8px;
}
.fv-market[data-sections="1"] .fv-signal-num {
  font-size: 1rem;
}
.fv-market[data-sections="1"] .fv-breadth-bar {
  height: 12px;
}
.fv-market[data-sections="2"] .fv-index-strip .fv-cell {
  min-height: 52px;
}
.fv-market[data-sections="2"] .fv-breadth-bar {
  height: 10px;
}
.fv-market.fv-offline {
  padding: 10px 8px;
  border-radius: 8px;
  border: 1px dashed rgba(78, 184, 201, 0.25);
  background: rgba(0, 0, 0, 0.18);
}
.fv-market.fv-offline .meta {
  margin: 0;
  line-height: 1.45;
}
.fv-index-strip {
  display: grid;
  grid-template-columns: repeat(var(--fv-cols, 5), minmax(0, 1fr));
  gap: 3px;
  margin-bottom: 0;
}
.fv-index-strip[data-cols="1"] { --fv-cols: 1; }
.fv-index-strip[data-cols="2"] { --fv-cols: 2; }
.fv-index-strip[data-cols="3"] { --fv-cols: 3; }
.fv-index-strip[data-cols="4"] { --fv-cols: 4; }
.fv-index-strip[data-cols="5"] { --fv-cols: 5; }
.fv-index-strip[data-cols="1"] .fv-cell,
.fv-index-strip[data-cols="2"] .fv-cell {
  min-height: 56px;
  padding: 8px 6px;
}
.fv-index-strip[data-cols="1"] .fv-sym {
  font-size: 0.82rem;
}
.fv-index-strip[data-cols="1"] .fv-val {
  font-size: 0.92rem;
}
.fv-index-strip[data-cols="1"] .fv-chg {
  font-size: 0.74rem;
}
.fv-cell {
  border-radius: 4px;
  padding: 5px 3px;
  text-align: center;
  border: none;
  min-height: 46px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}
.fv-sym {
  font-weight: 800;
  font-size: 0.68rem;
  letter-spacing: 0.03em;
}
.fv-val {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.fv-chg {
  font-size: 0.65rem;
  font-weight: 600;
}
.fv-up {
  background: var(--bull-bg);
  color: var(--bull-muted);
}
.fv-down {
  background: var(--bear-bg);
  color: var(--bear-muted);
}
.fv-hot-up {
  background: var(--bull-bg-strong);
  color: var(--bull-muted);
}
.fv-hot-down {
  background: var(--bear-bg-strong);
  color: var(--bear-muted);
}
.fv-flat {
  background: var(--flat-bg);
  color: var(--flat);
}
.fv-signal-row {
  display: grid;
  grid-template-columns: repeat(var(--fv-cols, 6), minmax(0, 1fr));
  gap: 3px;
  margin-bottom: 0;
}
.fv-signal-row[data-cols="1"] { --fv-cols: 1; }
.fv-signal-row[data-cols="2"] { --fv-cols: 2; }
.fv-signal-row[data-cols="3"] { --fv-cols: 3; }
.fv-signal-row[data-cols="4"] { --fv-cols: 4; }
.fv-signal-row[data-cols="5"] { --fv-cols: 5; }
.fv-signal-row[data-cols="6"] { --fv-cols: 6; }
.fv-signal-row[data-cols="1"] .fv-signal,
.fv-signal-row[data-cols="2"] .fv-signal,
.fv-signal-row[data-cols="3"] .fv-signal {
  padding-block: 6px;
}
.fv-signal-row[data-cols="1"] .fv-signal-num,
.fv-signal-row[data-cols="2"] .fv-signal-num {
  font-size: 1rem;
}
.fv-signal {
  border-radius: 4px;
  padding: 4px 2px;
  text-align: center;
  border: none;
}
.fv-signal-num {
  display: block;
  font-weight: 800;
  font-size: 0.85rem;
}
.fv-signal-lbl {
  font-size: 0.58rem;
  text-transform: uppercase;
  opacity: 0.85;
}
.fv-accent {
  background: var(--accent-bg);
  color: var(--accent);
}
.fv-breadth-wrap {
  margin-bottom: 0;
}
.fv-exchange-breadth-wrap {
  margin: 0 0 8px;
}
.fv-exchange-breadth-label {
  display: block;
  margin-bottom: 4px;
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.02em;
}
.fv-exchange-breadth-bar {
  margin-bottom: 0;
}
.fv-breadth-bar {
  display: flex;
  height: 8px;
  border-radius: 4px;
  overflow: hidden;
  background: #2a3544;
}
.fv-breadth-seg.fv-up {
  background: var(--bull);
}
.fv-breadth-seg.fv-down {
  background: var(--bear);
}
.fv-breadth-seg.fv-flat {
  background: #5a6a7e;
}
.fv-breadth-meta {
  display: block;
  margin-top: 4px;
  font-size: 0.62rem;
  color: var(--muted);
}
.fv-pulse-meta {
  margin: 0 0 8px;
  padding: 4px 8px;
  font-size: 0.62rem;
  line-height: 1.35;
  color: var(--accent-muted);
  text-align: center;
  border-radius: 6px;
  background: rgba(78, 184, 201, 0.06);
  border: 1px solid rgba(78, 184, 201, 0.12);
}
.fv-pulse-meta--stale {
  color: #f0d48a;
  border-color: rgba(212, 162, 74, 0.28);
  background: rgba(212, 162, 74, 0.08);
}
.fv-pulse-meta--ratelimited {
  color: #e8954f;
  border-color: rgba(232, 149, 79, 0.38);
  background: rgba(232, 149, 79, 0.1);
}
.fv-pulse-context {
  margin: 0 0 8px;
  padding: 4px 8px;
  font-size: 0.62rem;
  line-height: 1.35;
  color: var(--muted);
  text-align: center;
  border-radius: 6px;
  background: rgba(120, 140, 160, 0.08);
  border: 1px solid rgba(120, 140, 160, 0.14);
}
.fv-bias-wrap {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(12, 18, 24, 0.55);
  border: 1px solid rgba(78, 184, 201, 0.18);
}
.fv-bias-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  grid-template-rows: auto auto;
  gap: 2px 8px;
  align-items: center;
  margin-bottom: 6px;
}
.fv-bias-row:last-of-type {
  margin-bottom: 4px;
}
.fv-bias-kicker {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.fv-bias-label {
  font-size: 0.72rem;
  font-weight: 700;
}
.fv-bias-pct {
  font-size: 0.82rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--text);
}
.fv-bias-conf {
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.fv-bias-conf--high {
  color: var(--bull-muted);
}
.fv-bias-conf--med {
  color: var(--accent-muted);
}
.fv-bias-conf--low {
  color: var(--review);
}
.fv-bias--bull {
  color: var(--bull);
}
.fv-bias--bear {
  color: var(--bear);
}
.fv-bias--neutral {
  color: var(--accent-muted);
}
.fv-bias-meter {
  grid-column: 1 / -1;
  position: relative;
  height: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}
.fv-bias-meter-mid {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.12);
  transform: translateX(-50%);
}
.fv-bias-meter-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.25s ease;
}
.fv-bias-meter-fill.fv-bias--bull {
  background: linear-gradient(90deg, rgba(78, 184, 201, 0.35), var(--bull));
}
.fv-bias-meter-fill.fv-bias--bear {
  background: linear-gradient(90deg, var(--bear), rgba(224, 96, 80, 0.35));
}
.fv-bias-meter-fill.fv-bias--neutral {
  background: rgba(120, 140, 160, 0.45);
}
.fv-bias-drivers {
  margin: 4px 0 0;
  font-size: 0.58rem;
  line-height: 1.35;
  color: var(--muted);
  text-align: center;
}
.fv-bias-drivers--h001 {
  color: var(--accent-muted);
}
.fv-bias-row--empty {
  grid-template-columns: auto 1fr;
}
.fv-bias-note {
  font-size: 0.62rem;
  color: var(--muted);
}
/* Engine trust line — always-visible accuracy headline (Phase 1) */
.fv-engine-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 8px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 1px solid rgba(120, 140, 160, 0.22);
  background: rgba(8, 12, 18, 0.55);
  color: var(--muted);
  cursor: default;
  transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.fv-engine-trust-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.85;
  flex: 0 0 auto;
}
.fv-engine-trust.is-building {
  color: var(--muted);
  border-color: rgba(120, 140, 160, 0.22);
}
.fv-engine-trust.is-strong {
  color: #4eb8c9;
  border-color: rgba(78, 184, 201, 0.5);
  background: rgba(78, 184, 201, 0.1);
}
.fv-engine-trust.is-fair {
  color: #c9b66e;
  border-color: rgba(201, 182, 110, 0.45);
  background: rgba(201, 182, 110, 0.08);
}
.fv-engine-trust.is-weak {
  color: #e8954f;
  border-color: rgba(232, 149, 79, 0.45);
  background: rgba(232, 149, 79, 0.08);
}
.fv-bias-cal-toggle {
  display: block;
  width: 100%;
  margin-top: 6px;
  font-size: 0.62rem;
}
.fv-bias-cal-wrap {
  margin-top: 6px;
}
.fv-bias-cal {
  padding: 8px;
  border-radius: 6px;
  background: rgba(8, 12, 18, 0.65);
  border: 1px solid rgba(120, 140, 160, 0.18);
}
.fv-bias-cal-title {
  margin: 0 0 6px;
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--accent-muted);
}
.fv-bias-cal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 8px;
  margin-bottom: 6px;
}
.fv-bias-cal-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.58rem;
}
.fv-bias-cal-k {
  color: var(--muted);
}
.fv-bias-cal-stat strong {
  font-size: 0.62rem;
  color: var(--text);
}
.fv-bias-cal-table {
  width: 100%;
  margin: 0 0 6px;
  border-collapse: collapse;
  font-size: 0.58rem;
}
.fv-bias-cal-table th,
.fv-bias-cal-table td {
  padding: 2px 4px;
  text-align: right;
  border-bottom: 1px solid rgba(120, 140, 160, 0.12);
}
.fv-bias-cal-table th:first-child,
.fv-bias-cal-table td:first-child {
  text-align: left;
}
.fv-bias-cal-tiers th {
  color: var(--accent-muted);
  font-weight: 600;
}
.fv-bias-cal-tiers td:first-child {
  font-weight: 600;
  letter-spacing: 0.04em;
}
.fv-bias-outcomes {
  margin: 0 0 6px;
  padding: 6px 8px;
  border-radius: 6px;
  background: rgba(8, 12, 18, 0.5);
  border: 1px solid rgba(120, 140, 160, 0.14);
}
.fv-bias-outcomes .fv-bias-cal-title {
  margin: 0 0 4px;
}
.fv-bias-outcome-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.6rem;
  padding: 2px 0;
}
.fv-bias-outcome-k {
  color: var(--muted);
}
.fv-bias-outcome-row strong {
  font-variant-numeric: tabular-nums;
}
.fv-bias-outcome-row strong.is-pos {
  color: #4eb8c9;
}
.fv-bias-outcome-row strong.is-neg {
  color: #e8954f;
}
.fv-bias-outcomes-empty {
  font-style: italic;
}
.fv-bias-cal-note {
  margin: 0 0 6px;
  font-size: 0.58rem;
  color: var(--muted);
}
.fv-bias-cal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.fv-bias-cal--loading,
.fv-bias-cal--err {
  font-size: 0.62rem;
  color: var(--muted);
}
.fv-bias-cal--err {
  color: #f0a080;
}
.fv-bias-mini-slot {
  display: none;
}
.fv-bias-mini {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 0;
  width: 100%;
  max-width: 100%;
}
.fv-bias-mini-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  row-gap: 0;
  gap: 0 6px;
  align-items: center;
  font-size: 0.62rem;
  line-height: 1.15;
  text-align: left;
  width: 100%;
  max-width: 100%;
}
.fv-bias-mini-row--empty {
  grid-template-columns: auto minmax(0, 1fr);
}
.fv-bias-mini-k {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  flex-shrink: 0;
}
.fv-bias-mini-label {
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fv-bias-mini-pct {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--text);
  text-align: right;
  min-width: 1.4rem;
  padding-right: 2px;
}
.fv-bias-mini-note {
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fv-bias-mini .fv-bias-meter {
  grid-column: 1 / -1;
  height: 3px;
  margin-top: 1px;
  width: 100%;
  max-width: 100%;
}
.fv-bias-mini .fv-bias-meter-mid {
  opacity: 0.45;
}
.ws-scan-progress.scan-progress--panel {
  width: 100%;
  max-width: 420px;
  margin: 10px auto 0;
  padding: 0 4px;
}
.ws-col-loader .ws-scan-progress .scan-progress-label {
  font-size: 0.72rem;
  margin-bottom: 6px;
}
.ws-col-loader .ws-scan-progress .scan-progress-track {
  height: 6px;
  margin-bottom: 8px;
}
.ws-col-loader .ws-scan-progress .scan-segment {
  height: 28px;
  font-size: 0.58rem;
}
.fv-map-cell--gap-fade {
  box-shadow: inset 0 0 0 1px rgba(224, 96, 80, 0.35);
  opacity: 0.72;
}
.fv-session {
  display: inline-block;
  margin-left: 3px;
  padding: 0 3px;
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  vertical-align: middle;
  border-radius: 3px;
  line-height: 1.35;
}
.fv-session--pre {
  color: #7ec8e3;
  background: rgba(78, 184, 201, 0.14);
}
.fv-session--post {
  color: #c9a8e8;
  background: rgba(160, 120, 200, 0.14);
}
.fv-futures-strip {
  display: grid;
  grid-template-columns: repeat(var(--fv-cols, 2), minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 4px;
}
.fv-futures-strip[data-cols="1"] { --fv-cols: 1; }
.fv-futures-strip[data-cols="2"] { --fv-cols: 2; }
.fv-cell.fv-future {
  opacity: 0.92;
  border-style: dashed;
}
.fv-macro-hint {
  margin: 0 0 6px;
  padding: 4px 8px;
  font-size: 0.62rem;
  line-height: 1.35;
  border-radius: 6px;
  text-align: center;
}
.fv-macro-hint--neutral {
  color: var(--accent-muted);
  background: rgba(78, 184, 201, 0.06);
  border: 1px solid rgba(78, 184, 201, 0.12);
}
.fv-macro-hint--warn {
  color: #f0d48a;
  background: rgba(212, 162, 74, 0.08);
  border: 1px solid rgba(212, 162, 74, 0.28);
}
.fv-map-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
}
.fv-cat-yes {
  color: var(--bull);
  background: var(--bull-bg);
}
.fv-cat-no {
  color: var(--bear);
  background: var(--bear-bg);
}
.fv-cat-review {
  color: var(--review);
  background: rgba(232, 179, 57, 0.18);
}
.fv-cat-err {
  color: #f0a080;
  background: rgba(224, 96, 80, 0.16);
}
.fv-map-vs {
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.fv-map-vs--up {
  color: var(--bull);
}
.fv-map-vs--down {
  color: var(--bear);
}
.fv-settings-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 6px 0;
  font-size: 0.72rem;
  color: var(--text);
}
.fv-settings-select select {
  flex: 1;
  min-width: 0;
  padding: 4px 6px;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 0.72rem;
}
.fv-top-mover {
  padding: 4px 6px;
  border-radius: 4px;
  margin-bottom: 0;
  font-size: 0.72rem;
  background: var(--bull-bg);
  border: none;
}
.fv-market[data-sections="1"] .fv-top-mover,
.fv-market[data-sections="2"] .fv-top-mover {
  padding: 8px 10px;
  font-size: 0.82rem;
}
.fv-map-head {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr 0.6fr;
  gap: 4px;
  padding: 2px 4px;
  font-size: var(--ws-label-size);
  letter-spacing: var(--ws-label-tracking);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  border-bottom: none;
  margin-bottom: 2px;
}
.fv-map-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3px;
  max-height: none;
  overflow: visible;
  grid-auto-rows: minmax(var(--fv-map-row-min, 32px), auto);
  align-content: start;
}
.fv-market[data-sections="1"] .fv-map-grid,
.fv-market[data-sections="2"] .fv-map-grid {
  --fv-map-row-min: 36px;
}
.fv-market[data-sections="1"] .fv-map-cell {
  padding: 8px 8px;
  font-size: 0.78rem;
}
.fv-map-cell {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr 0.6fr;
  gap: 2px;
  align-items: center;
  padding: 4px 5px;
  border-radius: 4px;
  border: none;
  cursor: default;
}
.fv-map-sym {
  font-weight: 800;
}
.fv-map-gap,
.fv-map-day,
.fv-map-vs,
.fv-map-vol,
.fv-map-rm {
  font-variant-numeric: tabular-nums;
  text-align: right;
}
@media (max-width: 520px) {
  .fv-index-strip {
    grid-template-columns: repeat(var(--fv-cols, 3), minmax(0, 1fr));
  }
  .fv-signal-row {
    grid-template-columns: repeat(var(--fv-cols, 3), minmax(0, 1fr));
  }
}

/* Toasts */
.toast-stack {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: max(72px, calc(68px + env(safe-area-inset-bottom)));
  z-index: 260;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
  max-width: 420px;
  margin: 0 auto;
}
.toast {
  pointer-events: auto;
  padding: 11px 14px;
  border-radius: 10px;
  font-size: 0.82rem;
  line-height: 1.35;
  border: 1px solid #3a4a5e;
  background: #243044;
  color: var(--text);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  cursor: pointer;
}
.toast--show {
  opacity: 1;
  transform: translateY(0);
}
.toast--success {
  border-color: var(--bull-border);
  background: rgba(18, 48, 44, 0.95);
}
.toast--warn {
  border-color: rgba(232, 179, 57, 0.45);
  background: rgba(55, 45, 25, 0.95);
}
.toast--info {
  border-color: var(--accent-border);
}
.cal-accuracy {
  color: var(--yes);
  font-weight: 600;
}

/* Scan rank settings drawer */
#scanDrawer .pick-hero--drawer {
  padding: 0;
  min-height: 0;
  height: auto;
}
#scanDrawer .pick-hero--drawer .pick-hero-main {
  padding-bottom: 4px;
}
#scanDrawer .pick-hero--drawer .pick-hero-visual {
  min-height: 88px;
  height: min(22vh, 120px);
  max-height: 120px;
}

#scanDrawer .scan-drawer-tabs {
  flex-shrink: 0;
  margin: 0 16px 14px;
  padding: 4px;
  background: rgba(11, 16, 24, 0.9);
  border: 1px solid rgba(78, 184, 201, 0.22);
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}
#scanDrawer .scan-drawer-tabs button {
  border-radius: 9px;
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 11px 10px;
}
#scanDrawer .scan-drawer-tabs button.active {
  color: #0c1218;
  box-shadow: 0 2px 10px rgba(78, 184, 201, 0.25);
}
.scan-drawer-pane.hidden {
  display: none !important;
}
.scan-drawer-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.scan-drawer-section + .scan-drawer-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(78, 184, 201, 0.18);
}
.scan-drawer-section-title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8ae4d8;
}
.scan-drawer-section-lead {
  margin: -4px 0 4px;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--muted, #8b98a8);
}
.scan-history-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#scanDrawer .calendar-grid {
  margin-bottom: 10px;
}
#scanDrawer .calendar-day-list {
  max-height: none;
}
.scan-drawer-save.hidden {
  display: none !important;
}
.scan-drawer-save {
  width: 100%;
  margin-top: 0;
}
.scan-drawer-dismiss {
  width: 100%;
  margin-top: 10px;
}

.agent-plan-panel {
  margin: 0;
  padding: 0;
  border: none;
}

.agent-plan {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 8px;
}

.agent-plan-status {
  margin: 0 0 4px;
  min-height: 1.1em;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--muted, #8b98a8);
}

.agent-plan-status--ok {
  color: rgba(138, 228, 216, 0.95);
}

.agent-plan-status--warn {
  color: #f5c99a;
}

.agent-plan-status--err {
  color: #f0a080;
}

.agent-plan-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.agent-plan-block-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  padding-bottom: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8ae4d8;
  border-bottom: 1px solid rgba(78, 184, 201, 0.28);
}

.agent-plan-block-meta {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted, #8b98a8);
}

.agent-plan-block-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.agent-plan-enable {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(78, 184, 201, 0.08);
  border: 1px solid rgba(78, 184, 201, 0.28);
  cursor: pointer;
}

.agent-plan-enable input {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #4eb8c9;
}

.agent-plan-enable strong {
  display: block;
  margin-bottom: 4px;
  font-size: 0.92rem;
  color: var(--text, #e8edf4);
}

.agent-plan-enable small {
  display: block;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--muted, #8b98a8);
}

.agent-plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 420px) {
  .agent-plan-grid {
    grid-template-columns: 1fr;
  }
}

.agent-plan-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--muted, #8b98a8);
}

.agent-plan-field > span {
  font-weight: 600;
  color: rgba(232, 237, 244, 0.88);
}

.agent-plan-field input[type="url"],
.agent-plan-field input[type="text"],
.agent-plan-field input[type="number"],
.agent-plan-field select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(42, 53, 68, 0.85);
  background: #0b1018;
  color: var(--text, #e8edf4);
  font-size: 0.88rem;
}

.agent-plan-field input:focus,
.agent-plan-field select:focus {
  outline: none;
  border-color: rgba(78, 184, 201, 0.55);
  box-shadow: 0 0 0 2px rgba(78, 184, 201, 0.12);
}

.agent-plan-note {
  margin-top: 4px;
}

.agent-plan-slider {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(11, 16, 24, 0.55);
  border: 1px solid rgba(42, 53, 68, 0.55);
}

.agent-plan-slider-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.agent-plan-slider-label {
  font-size: 0.8rem;
  line-height: 1.4;
  color: rgba(232, 237, 244, 0.88);
}

.agent-plan-slider-val {
  flex-shrink: 0;
  min-width: 3.5rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #8ae4d8;
  text-align: right;
}

.agent-plan-slider input[type="range"] {
  width: 100%;
  margin: 0;
  accent-color: #4eb8c9;
}

.agent-plan-jobs {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.agent-plan-job {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(11, 16, 24, 0.55);
  border: 1px solid rgba(42, 53, 68, 0.55);
  transition: opacity 0.15s ease;
}

.agent-plan-job--off {
  opacity: 0.55;
}

.agent-plan-job-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.agent-plan-job-check input {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #4eb8c9;
}

.agent-plan-job-name {
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text, #e8edf4);
  white-space: normal;
  word-break: break-word;
}

.agent-plan-job-schedule {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-left: 28px;
}

.agent-plan-job-schedule-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted, #8b98a8);
}

.agent-plan-job-when {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.agent-plan-job-when select {
  min-width: 3.4rem;
  padding: 8px 8px;
  border-radius: 8px;
  border: 1px solid rgba(42, 53, 68, 0.85);
  background: #0b1018;
  color: var(--text, #e8edf4);
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
}

.agent-plan-time-sep {
  color: var(--muted, #8b98a8);
  font-size: 0.88rem;
}

.agent-plan-job-et {
  font-size: 0.78rem;
  font-weight: 600;
  color: #8ae4d8;
  margin-left: 4px;
}

.agent-plan-hint,
.agent-plan-empty {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.45;
  color: var(--muted, #8b98a8);
}

.agent-plan-changelog {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--muted, #8b98a8);
}

.agent-plan-changelog li {
  margin-bottom: 8px;
}

.agent-plan-changelog time {
  color: rgba(232, 237, 244, 0.88);
}

.agent-plan-change-delta {
  display: block;
  margin-top: 3px;
  color: rgba(78, 184, 201, 0.85);
  font-size: 0.72rem;
}

.scan-drawer-footer {
  flex-wrap: wrap;
  gap: 0;
}

.scan-drawer-footer .btn-scan-secondary,
.scan-drawer-save--agent {
  background: rgba(78, 184, 201, 0.12);
  border: 1px solid rgba(78, 184, 201, 0.35);
  color: #8ae4d8;
}

/* Scan picks hero empty state */
.pick-hero {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0;
  padding: 4px 2px 0;
  min-height: 0;
  height: 100%;
}
.pick-hero-main {
  flex: 1 1 0%;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 8px;
}
.pick-hero-copy {
  flex: 0 0 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pick-hero--weights-edit {
  padding-top: 0;
}
.pick-hero--weights-edit .pick-hero-main {
  flex: 1 1 auto;
  gap: 4px;
  padding-bottom: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.pick-hero--weights-edit .pick-hero-visual {
  flex: 0 0 auto;
  min-height: 96px;
  height: min(24vh, 128px);
  max-height: 128px;
}
.pick-hero--weights-edit .pick-hero-copy {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
  padding-bottom: 0;
  gap: 2px;
}
.pick-hero--weights-edit .pick-hero-kicker,
.pick-hero--weights-edit .pick-hero-title {
  display: none;
}
.pick-hero--weights-edit .pick-hero-steps {
  margin-top: 0;
  gap: 3px;
}
.pick-hero--weights-edit .pick-hero-step {
  padding: 3px 6px;
  min-height: 0;
}
.pick-hero--weights-edit .pick-hero-step-slider {
  margin-top: 4px;
  padding-top: 4px;
}
.pick-hero--weights-edit .pick-hero-foot {
  flex-shrink: 0;
  margin-top: 0;
  position: relative;
  z-index: 2;
  padding-top: 6px;
  background: #0c1218;
  border-top: 1px solid rgba(42, 53, 68, 0.45);
}
.pick-hero--weights-edit .pick-hero-sub {
  display: none;
}
.pick-hero--weights-edit .pick-hero-cta {
  margin-bottom: 0;
}
.pick-hero--weights-edit .pick-hero-weight-foot {
  position: static;
  margin-top: 2px;
  padding: 0;
  gap: 4px;
  background: none;
}
.pick-hero-visual {
  position: relative;
  flex: 1 1 auto;
  min-height: 168px;
  height: min(42vh, 260px);
  max-height: none;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background:
    radial-gradient(circle at 20% 0%, rgba(78, 184, 201, 0.12), transparent 42%),
    linear-gradient(165deg, #0d131c 0%, #101722 48%, #0b1018 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.03),
    0 10px 28px rgba(0, 0, 0, 0.35);
}
.pick-hero-foot {
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(42, 53, 68, 0.45);
}
.pick-hero-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 28% 18%, rgba(78, 184, 201, 0.28), transparent 52%),
    radial-gradient(circle at 82% 72%, rgba(139, 127, 212, 0.18), transparent 48%),
    radial-gradient(circle at 62% 40%, rgba(232, 149, 79, 0.1), transparent 42%);
  pointer-events: none;
  animation: pickHeroGlow 6s ease-in-out infinite alternate;
}
.pick-hero-scanline {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.pick-hero-scanline::after {
  content: "";
  position: absolute;
  top: 0;
  left: -45%;
  width: 38%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(78, 184, 201, 0.06),
    rgba(78, 184, 201, 0.22),
    rgba(78, 184, 201, 0.06),
    transparent
  );
  animation: pickHeroScan 3.8s ease-in-out infinite;
}
.pick-hero-svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
.pick-hero-line {
  stroke-dasharray: 520;
  stroke-dashoffset: 520;
  animation: pickHeroDraw 2.4s ease forwards 0.2s;
}
.pick-hero-dot {
  opacity: 0;
  animation: pickHeroDotIn 0.45s ease forwards;
}
.pick-hero-dot:nth-of-type(2) { animation-delay: 1.1s; }
.pick-hero-dot:nth-of-type(3) { animation-delay: 1.45s; }
.pick-hero-dot--lead {
  animation: pickHeroDotIn 0.5s ease forwards 1.85s, pickHeroPulse 2.2s ease-in-out infinite 2.4s;
}
.pick-hero-kicker {
  margin: 0 0 4px;
  font-size: var(--ws-label-size);
  font-weight: 600;
  letter-spacing: var(--ws-label-tracking);
  text-transform: uppercase;
  color: var(--muted);
}
.pick-hero-title {
  margin: 0;
  font-size: var(--ws-body-size);
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
}
.pick-hero-steps {
  flex: 0 0 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pick-hero-step {
  flex: 0 0 auto;
  min-height: 26px;
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.16s ease, border-color 0.16s ease;
}
.pick-hero-step:hover {
  background: var(--fill-1);
  border-color: var(--keyline);
}
.pick-hero-step-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  align-self: center;
  display: grid;
  place-items: center;
  border-radius: 7px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #8ae4d8;
  background: rgba(78, 184, 201, 0.1);
  border: none;
  box-shadow: none;
}
.pick-hero-step-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pick-hero-step-head {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.pick-hero-step-title {
  flex: 1;
  min-width: 0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--text);
}
.pick-hero-step-pts {
  flex-shrink: 0;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--bull-muted);
  padding: 2px 4px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid transparent;
}
.pick-hero-step-slider {
  display: none;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(42, 53, 68, 0.55);
}
.pick-hero--weights-edit .pick-hero-step-slider {
  display: flex;
}
.pick-hero--weights-edit .pick-hero-step {
  padding-bottom: 6px;
}
.pick-hero-step-slider-val {
  flex-shrink: 0;
  min-width: 2.2rem;
  font-size: 0.62rem;
  font-weight: 800;
  color: var(--bull-muted);
  text-align: right;
}
.pick-hero-weight-slider {
  flex: 1;
  min-width: 0;
  height: 4px;
  margin: 0;
  accent-color: var(--accent);
  cursor: pointer;
}
.pick-hero-weight-foot {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  margin-top: 2px;
}
.pick-hero-weight-foot .pick-hero-weight-total {
  flex: 0 0 auto;
  margin: 0;
  padding: 4px 8px;
  font-size: 0.58rem;
  line-height: 1.25;
}
.pick-hero-weight-reset {
  flex-shrink: 0;
  align-self: flex-start;
  padding: 3px 9px;
  font-size: 0.6rem;
  line-height: 1.2;
  border-radius: 999px;
}
.pick-weight-panel-inner .pick-hero-weight-reset {
  align-self: flex-end;
  margin-top: 2px;
}
.pick-hero-weight-total {
  margin: 0;
  padding: 4px 8px;
  font-size: 0.58rem;
  line-height: 1.25;
  color: var(--muted);
  border-radius: 8px;
  background: rgba(78, 184, 201, 0.08);
  border: 1px solid rgba(78, 184, 201, 0.2);
}
.pick-hero-weight-total--warn {
  color: #f5c99a;
  border-color: rgba(232, 149, 79, 0.45);
  background: rgba(232, 149, 79, 0.1);
}
.pick-weight-panel {
  flex-shrink: 0;
  margin: 0 0 8px;
  padding: 10px 10px 8px;
  border-radius: 12px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: linear-gradient(165deg, rgba(13, 19, 28, 0.98) 0%, rgba(16, 23, 34, 0.95) 100%);
}
.pick-weight-panel-inner {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pick-weight-panel-title {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text);
}
.pick-weight-panel-sub {
  margin: 0 0 2px;
}
.pick-weight-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(72px, 1.4fr) auto;
  align-items: center;
  gap: 8px;
}
.pick-weight-label {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text);
}
.pick-weight-val {
  font-size: 0.62rem;
  font-weight: 800;
  color: var(--bull-muted);
  min-width: 2rem;
  text-align: right;
}
.ws-panel-icon-btn.is-active {
  color: var(--accent);
  border-color: rgba(78, 184, 201, 0.55);
  background: rgba(78, 184, 201, 0.12);
}
.pick-hero-step-info {
  position: relative;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--accent-muted);
  cursor: help;
  display: grid;
  place-items: center;
}
.pick-hero-step-info:hover,
.pick-hero-step-info:focus-visible {
  border-color: rgba(78, 184, 201, 0.55);
  background: rgba(78, 184, 201, 0.18);
  color: #8ae4d8;
  outline: none;
}
.pick-hero-step-info-icon {
  font-size: 0.62rem;
  font-weight: 800;
  font-style: italic;
  line-height: 1;
}
.pick-hero-step-tip {
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  z-index: 12;
  width: max-content;
  max-width: min(240px, 72vw);
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(8, 12, 18, 0.96);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  font-size: 0.68rem;
  line-height: 1.4;
  font-weight: 400;
  font-style: normal;
  color: var(--muted);
  text-align: left;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.pick-hero-step-info:hover .pick-hero-step-tip,
.pick-hero-step-info:focus-visible .pick-hero-step-tip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.pick-hero-pts {
  display: inline-block;
  min-width: 1.6rem;
  font-weight: 800;
  color: var(--bull-muted);
}
.pick-hero-cta { width: 100%; margin-bottom: 8px; }
.pick-hero-sub { margin: 0; font-size: 0.74rem; color: var(--muted); text-align: center; }
@keyframes pickHeroGlow {
  from { opacity: 0.75; transform: scale(1); }
  to { opacity: 1; transform: scale(1.03); }
}
@keyframes pickHeroScan {
  0% { transform: translateX(0); opacity: 0; }
  12% { opacity: 1; }
  88% { opacity: 1; }
  100% { transform: translateX(320%); opacity: 0; }
}
@keyframes pickHeroDraw {
  to { stroke-dashoffset: 0; }
}
@keyframes pickHeroDotIn {
  from { opacity: 0; transform: scale(0.4); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes pickHeroPulse {
  0%, 100% { opacity: 1; filter: drop-shadow(0 0 0 rgba(78, 184, 201, 0)); }
  50% { opacity: 1; filter: drop-shadow(0 0 8px rgba(78, 184, 201, 0.85)); }
}
@media (min-width: 1280px) {
  .pick-hero-visual {
    min-height: 200px;
    height: min(46vh, 300px);
  }
  .pick-hero-step {
    min-height: 28px;
  }
  .pick-hero-title {
    font-size: 0.88rem;
  }
}

/* Pick accordion rows */
.pick-accordion {
  border: 1px solid rgba(42, 53, 68, 0.55);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.18);
  overflow: hidden;
}
.pick-accordion + .pick-accordion { margin-top: 8px; }
.pick-accordion-summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
}
.pick-accordion-summary::-webkit-details-marker { display: none; }
.pick-accordion-summary::after {
  content: "▾";
  color: var(--muted);
  font-size: 0.85rem;
  transition: transform 0.15s ease;
}
.pick-accordion[open] .pick-accordion-summary::after { transform: rotate(180deg); }
.pick-acc-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.pick-acc-left .sym {
  font-weight: 800;
  font-size: 0.95rem;
  cursor: pointer;
}
.pick-collapsed-stats {
  font-size: 0.72rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.pick-accordion-body {
  padding: 0 12px 12px;
  border-top: 1px solid rgba(42, 53, 68, 0.45);
}
.pick-trade-btn { margin-top: 10px; width: 100%; }

/* c3 declutter (item 12): fold the four learning panels into one collapsed
   group so the Results tab leads with the hero + picks, not a wall of stats. */
.tt-learning-group {
  margin-top: 10px;
  border: 1px solid rgba(42, 53, 68, 0.55);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.15);
  overflow: hidden;
}
.tt-learning-group-summary {
  cursor: pointer;
  list-style: none;
  padding: 10px 12px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted, #8b9cb3);
  display: flex;
  align-items: center;
  gap: 8px;
}
.tt-learning-group-summary::-webkit-details-marker {
  display: none;
}
.tt-learning-group-summary::after {
  content: "▾";
  margin-left: auto;
  transition: transform 0.2s ease;
}
.tt-learning-group[open] .tt-learning-group-summary::after {
  transform: rotate(180deg);
}
.tt-learning-group-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 10px 10px;
}
.tt-learning-group .tt-learning-panel:empty {
  display: none;
}

/* Pick thumbs-up/down + note feedback (item 7) feeds the learning loop. */
.pick-row-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.pick-row-actions .pick-trade-btn {
  margin-top: 0;
}
.pick-row-actions .pick-view-result-btn {
  margin-top: 0;
  width: 100%;
}
.pick-closed-summary {
  margin: 0 0 4px;
  font-size: 0.82rem;
  line-height: 1.35;
}
.pick-collapsed-stats .pick-closed-r {
  color: var(--rm-teal, #4ab8c9);
}
.pick-feedback {
  display: flex;
  align-items: center;
  gap: 6px;
}
.pick-fb-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 28px;
  border-radius: 7px;
  border: 1px solid rgba(139, 156, 179, 0.3);
  background: rgba(255, 255, 255, 0.03);
  color: var(--muted, #8b9cb3);
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.pick-fb-up:hover,
.pick-fb-up.is-active {
  color: #3dba7a;
  border-color: rgba(61, 186, 122, 0.6);
  background: rgba(61, 186, 122, 0.12);
}
.pick-fb-down:hover,
.pick-fb-down.is-active {
  color: #e8954f;
  border-color: rgba(232, 149, 79, 0.6);
  background: rgba(232, 149, 79, 0.12);
}
.pick-fb-note {
  flex: 1 1 auto;
  min-width: 0;
  font: inherit;
  font-size: 0.74rem;
  color: #e6edf4;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(42, 53, 68, 0.7);
  border-radius: 7px;
  padding: 5px 8px;
}
.pick-fb-note:focus {
  outline: none;
  border-color: var(--accent-border, rgba(78, 184, 201, 0.5));
}
.pick-row--dismissed {
  opacity: 0;
  transform: translateX(12px);
  transition: opacity 0.24s ease, transform 0.24s ease;
}

/* Unified chart (compare + analysis) */
.chart-hub-unified {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  flex: 1;
  height: 100%;
}
.chart-hub-unified .ca-toolbar-wrap {
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  /* #14: lift the C2 toolbar baseline so it lines up with C1's market lean
     and C3's tab strip instead of sitting a row lower. */
  padding: 2px var(--ws-col-pad-x) 0;
  border: none;
}
.ca-chart-hint {
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  font-size: var(--ws-meta-size);
  line-height: 1.3;
  color: var(--accent-muted);
  font-weight: 500;
}
.chart-hub-unified .chart-hub-main { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.chart-hub-unified .chart-hub-stage {
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  border: none;
  border-radius: 0;
  background: linear-gradient(180deg, rgba(18, 24, 32, 0.2) 0%, rgba(18, 24, 32, 0.88) 16%, #121820 32%);
}
.ca-chart-mount { position: relative; z-index: 1; flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ca-fps-meter {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 14;
  font-size: 10px;
  line-height: 1;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: rgba(230, 238, 248, 0.42);
  pointer-events: none;
  user-select: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}
.ca-chart-svg-wrap {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ca-chart-mount .chart-hub-svg,
.ca-chart-mount .ca-chart-svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
  cursor: crosshair; /* item 9: cross by default; pan only when armed */
  touch-action: none;
}
/* Phase 1 chart layers: intel (context) below, data (price action) on top */
.ca-layer-intel {
  opacity: var(--chart-intel-opacity);
  filter: saturate(var(--chart-intel-saturate));
}
.ca-layer-data {
  filter: none;
}
@media (max-width: 640px) {
  .ca-layer-intel {
    opacity: var(--chart-intel-opacity-mobile);
    filter: none;
  }
  .ca-layer-data {
    filter: none;
  }
}
.ca-chart-svg-wrap.is-chart-panning .ca-chart-svg,
.ca-chart-svg-wrap.is-chart-panning .chart-hub-svg {
  cursor: grabbing;
}
/* Crosshair overlay with live x(time)/y(price) readouts (item 9). */
.ca-crosshair {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.1s ease;
}
.ca-crosshair.is-on {
  opacity: 1;
}
.ca-crosshair-x,
.ca-crosshair-y {
  position: absolute;
  background: rgba(173, 190, 209, 0.45);
}
.ca-crosshair-x {
  top: 0;
  bottom: 0;
  left: 0;
  width: 1px;
}
.ca-crosshair-y {
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
}
.ca-crosshair-price,
.ca-crosshair-time {
  position: absolute;
  font-size: 0.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #0b0f14;
  background: #adbed1;
  padding: 1px 5px;
  border-radius: 3px;
  white-space: nowrap;
}
.ca-crosshair-price {
  left: 2px;
  transform: translateY(0);
  margin-top: -8px;
}
.ca-crosshair-time {
  bottom: 2px;
  transform: translateX(0);
  margin-left: 4px;
}

/* Trade preview overlay (item 11): slides in from the right with a mock chart
   of the projected trade, and a projected-vs-realized view for past trades. */
.ca-trade-preview {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(370px, 62%);
  z-index: 12;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 14px 16px;
  background: linear-gradient(180deg, rgba(14, 20, 28, 0.98), rgba(10, 14, 20, 0.98));
  border-left: 1px solid rgba(78, 184, 201, 0.3);
  box-shadow: -18px 0 40px rgba(0, 0, 0, 0.45);
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.ca-trade-preview.is-open {
  transform: translateX(0);
}
/* Nudge the chart aside so the mock reads as "the chart slid over". */
.ca-chart-mount.ca-preview-open .ca-chart-svg-wrap {
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), filter 0.4s ease;
  transform: translateX(-7%);
  filter: saturate(0.85) brightness(0.82);
}
.ca-tp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.ca-tp-kicker {
  margin: 0;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent, #4eb8c9);
}
.ca-tp-title {
  margin: 1px 0 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #f2f6fa;
}
.ca-tp-close {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid rgba(139, 156, 179, 0.35);
  background: rgba(255, 255, 255, 0.04);
  color: var(--muted, #8b9cb3);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}
.ca-tp-close:hover {
  color: #f2f6fa;
  border-color: var(--accent-border, rgba(78, 184, 201, 0.5));
}
.ca-tp-chart {
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(42, 53, 68, 0.6);
  padding: 4px;
}
.ca-tp-svg {
  display: block;
  width: 100%;
  height: 150px;
}
.ca-tp-lvl {
  stroke-width: 1;
  stroke-dasharray: 3 3;
  opacity: 0.85;
}
.ca-tp-lvl--entry { stroke: var(--chart-candle-up); }
.ca-tp-lvl--stop { stroke: var(--bear); }
.ca-tp-lvl--target,
.ca-tp-lvl--target1 { stroke: var(--chart-trade-node); }
.ca-tp-lvl--exit { stroke: #d6e0e9; }
.ca-tp-lvl-txt {
  font-size: 9px;
  font-weight: 700;
  fill: var(--muted, #8b9cb3);
  font-variant-numeric: tabular-nums;
}
.ca-tp-path {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  animation: ca-tp-draw 0.65s ease forwards;
}
.ca-tp-path--up { stroke: var(--chart-trade-node); }
.ca-tp-path--down { stroke: var(--bear); opacity: 0.7; }
.ca-tp-path--real { stroke: #d6e0e9; animation-delay: 0.2s; }
@keyframes ca-tp-draw {
  to { stroke-dashoffset: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ca-tp-path { animation: none; stroke-dashoffset: 0; }
  .ca-trade-preview { transition: none; }
  .ca-chart-mount.ca-preview-open .ca-chart-svg-wrap { transition: none; }
}
.ca-tp-legend {
  display: flex;
  gap: 12px;
  margin: 0;
  font-size: 0.6rem;
}
.ca-tp-key {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted, #8b9cb3);
}
.ca-tp-key::before {
  content: "";
  width: 14px;
  height: 2px;
  border-radius: 2px;
}
.ca-tp-key--proj::before { background: var(--chart-trade-node); }
.ca-tp-key--real::before { background: #d6e0e9; }
.ca-tp-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 12px;
}
.ca-tp-stat {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.72rem;
  border-bottom: 1px solid rgba(42, 53, 68, 0.4);
  padding-bottom: 3px;
}
.ca-tp-stat span {
  color: var(--muted, #8b9cb3);
}
.ca-tp-stat strong {
  color: #f2f6fa;
  font-variant-numeric: tabular-nums;
}
.ca-tp-note-lbl {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted, #8b9cb3);
}
.ca-tp-note {
  font: inherit;
  font-size: 0.78rem;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
  color: #e6edf4;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(42, 53, 68, 0.7);
  border-radius: 6px;
  padding: 6px 8px;
  resize: vertical;
}
.ca-tp-note:focus {
  outline: none;
  border-color: var(--accent-border, rgba(78, 184, 201, 0.5));
}
.ca-axis-time { font-family: inherit; }
.ca-axis-y { font-family: inherit; }
.ca-axis-y--zero { font-family: inherit; }
.ca-axis-y-unit { letter-spacing: 0.03em; }
.ca-axis-tz { letter-spacing: 0.04em; text-transform: uppercase; }
.ca-time-brush {
  flex-shrink: 0;
  margin-top: 0;
  padding: 4px var(--ws-col-pad-x) 6px;
  border-top: 1px solid rgba(42, 53, 68, 0.55);
  background: rgba(8, 12, 18, 0.22);
  border-radius: 0;
}
.ca-time-brush-head,
.ca-time-brush-track-wrap,
.ca-time-brush-axis,
.ca-time-brush-tick {
  display: none !important;
}
.ca-time-brush-track {
  position: relative;
  width: 100%;
  height: 28px;
  border-radius: 6px;
  border: 1px solid #2a3544;
  background: #0d1218;
  overflow: visible;
  touch-action: none;
  cursor: crosshair;
}
.ca-time-brush-mini {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  overflow: hidden;
}
.ca-time-brush-shade {
  position: absolute;
  top: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.48);
  pointer-events: none;
  border-radius: inherit;
}
.ca-time-brush-shade--left { left: 0; border-radius: 8px 0 0 8px; }
.ca-time-brush-shade--right { right: 0; border-radius: 0 8px 8px 0; }
.ca-time-brush-selection {
  position: absolute;
  top: 0;
  bottom: 0;
  min-width: 14px;
  background: rgba(78, 184, 201, 0.24);
  border: 1px solid rgba(120, 210, 220, 0.65);
  border-radius: 6px;
  box-shadow:
    inset 0 0 16px rgba(78, 184, 201, 0.18),
    0 0 0 1px rgba(78, 184, 201, 0.12);
  cursor: grab;
  touch-action: none;
  z-index: 1;
  pointer-events: auto;
}
.ca-time-brush.is-dragging .ca-time-brush-selection {
  background: rgba(78, 184, 201, 0.32);
  border-color: rgba(140, 230, 240, 0.85);
  box-shadow:
    inset 0 0 20px rgba(78, 184, 201, 0.28),
    0 0 0 1px rgba(78, 184, 201, 0.2);
}
.ca-time-brush-selection:active { cursor: grabbing; }
.ca-time-brush-bumper {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: #f8fafc;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.2),
    0 2px 6px rgba(0, 0, 0, 0.35);
  cursor: ew-resize;
  touch-action: none;
  z-index: 3;
  display: grid;
  place-items: center;
  pointer-events: auto;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.ca-time-brush-bumper::after {
  content: "";
  position: absolute;
  inset: -10px -8px;
}
.ca-time-brush-bumper--start { left: -4px; }
.ca-time-brush-bumper--end { right: -4px; }
.ca-time-brush.is-dragging .ca-time-brush-bumper {
  background: #fff;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.24),
    0 4px 12px rgba(0, 0, 0, 0.45);
}
.ca-time-brush-bumper:hover,
.ca-time-brush-bumper:focus-visible {
  background: #fff;
  transform: translateY(-50%) scale(1.08);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.22),
    0 3px 10px rgba(0, 0, 0, 0.42);
  outline: none;
}
.ca-time-brush-bumper:active {
  transform: translateY(-50%) scale(1.02);
  background: #eef2f6;
}
.ca-time-brush-bumper-grip {
  width: 2px;
  height: 9px;
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.24);
  box-shadow: 3px 0 0 rgba(0, 0, 0, 0.16), -3px 0 0 rgba(0, 0, 0, 0.16);
  pointer-events: none;
}
.ca-subpane {
  pointer-events: none;
}
.ca-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 0;
}
.ca-toolbar--secondary {
  padding-top: 0;
  margin-left: auto;
}
.ca-toolbar--primary > .ca-toolbar--secondary {
  margin-bottom: 0;
}
.chart-hub-unified .ca-toolbar--primary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.chart-hub-unified .ca-toolbar--primary > .ca-toolbar--secondary {
  display: flex;
  margin-left: auto;
}
.ca-field--compact .ca-text-input {
  width: 4.5rem;
  min-width: 3.5rem;
}
.ca-toggles--indicators {
  margin-left: auto;
}
@media (max-width: 520px) {
  .ca-toggles--indicators {
    margin-left: 0;
  }
}
.ca-field {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--ws-meta-size);
  color: var(--muted);
}
.ca-field select {
  font-size: var(--ws-meta-size);
  padding: 4px 6px;
  border-radius: 6px;
  background: #121820;
  border: 1px solid #2a3544;
  color: var(--text);
  min-height: 28px;
}
.ca-toggles { display: flex; flex-wrap: wrap; gap: var(--toggle-gap); align-items: center; }
.ca-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--toggle-min-height);
  line-height: 1;
  border: 1px solid var(--toggle-border-off);
  background: var(--toggle-bg-off);
  color: var(--muted);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: var(--ws-label-size);
  cursor: pointer;
}
.ca-toggle.is-on,
.ca-toggle.ca-note-toggle.is-on {
  border-color: var(--accent-border);
  color: var(--accent);
  background: var(--accent-bg);
}
.ca-toggle:hover:not(:disabled) {
  border-color: var(--toggle-border-hover);
  color: var(--text);
  background: var(--toggle-bg-hover);
}
.ca-toggle.is-on:hover:not(:disabled) {
  filter: brightness(1.08);
}
.ca-yaxis-toggle { min-width: 36px; font-weight: 700; }
.ca-analysis-stage {
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ca-note-overlay-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
  max-width: 220px;
}
.ca-note-overlay-tags .rm-debrief-tag {
  font-size: 0.52rem;
  padding: 3px 6px;
}
.ca-note-overlay {
  position: absolute;
  z-index: 12;
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: min(220px, 72%);
  padding: 3px 4px 3px 8px;
  border-radius: 8px;
  border: 1px solid rgba(212, 162, 74, 0.55);
  background: rgba(18, 24, 32, 0.94);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
  pointer-events: auto;
}
.ca-note-overlay.hidden {
  display: none;
}
.ca-note-overlay-input {
  flex: 1;
  min-width: 0;
  width: 120px;
  padding: 4px 6px;
  font-size: 0.68rem;
  line-height: 1.2;
  color: var(--text);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(78, 184, 201, 0.28);
  border-radius: 6px;
}
.ca-note-overlay-input:focus {
  outline: none;
  border-color: rgba(78, 184, 201, 0.65);
  box-shadow: 0 0 0 2px rgba(78, 184, 201, 0.18);
}
.ca-note-overlay-actions {
  display: flex;
  flex-shrink: 0;
  gap: 2px;
}
.ca-note-overlay-btn {
  width: 22px;
  height: 22px;
  padding: 0;
  font-size: 0.78rem;
  line-height: 1;
  border-radius: 6px;
  border: 1px solid rgba(78, 184, 201, 0.25);
  background: rgba(78, 184, 201, 0.08);
  color: var(--text);
  cursor: pointer;
}
.ca-note-overlay-btn:hover,
.ca-note-overlay-btn:focus-visible {
  border-color: rgba(78, 184, 201, 0.55);
  background: rgba(78, 184, 201, 0.16);
}
.ca-note-marker { cursor: pointer; }
.ca-chart-node { cursor: pointer; }
.ca-chart-node.fv-tip-target:hover:not(.ca-buy-bag):not(.ca-tier1-node),
.ca-chart-node.fv-tip-target:focus-visible:not(.ca-buy-bag):not(.ca-tier1-node),
.ca-chart-node.fv-tip-target.fv-tip-active:not(.ca-buy-bag):not(.ca-tier1-node) {
  transform: none;
  box-shadow: none;
  filter: brightness(1.15);
}
.ca-chart-node--pick circle {
  stroke: #d4a24a;
  stroke-width: 2;
}

/* Tier 1 buy / sell markers */
.ca-tier1-node {
  cursor: pointer;
}
.ca-tier1-halo {
  fill: none;
  stroke-width: 1.5;
  pointer-events: none;
}
.ca-tier1-node--buy .ca-tier1-halo {
  fill: rgba(45, 184, 168, 0.16);
  stroke: rgba(45, 184, 168, 0.55);
}
.ca-tier1-node--sell .ca-tier1-halo {
  fill: rgba(232, 149, 79, 0.16);
  stroke: rgba(232, 149, 79, 0.58);
}
.ca-tier1-halo--signal {
  fill: rgba(45, 184, 168, 0.1);
  stroke: rgba(45, 184, 168, 0.42);
  stroke-width: 1.25;
}
.ca-tier1-core {
  stroke: rgba(255, 255, 255, 0.92);
  stroke-width: 1.5;
}
.ca-tier1-node--buy .ca-tier1-core {
  fill: var(--bull-strong);
}
.ca-tier1-node--sell .ca-tier1-core,
.ca-tier1-core--sell-x {
  fill: var(--bear-strong);
}
.ca-tier1-label {
  fill: #fff;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
  pointer-events: none;
}
.ca-tier1-node--buy:hover .ca-tier1-halo,
.ca-tier1-node--buy.fv-tip-active .ca-tier1-halo,
.ca-tier1-node--buy:focus-visible .ca-tier1-halo {
  fill: rgba(45, 184, 168, 0.28);
  filter: drop-shadow(0 0 8px var(--bull-glow));
}
.ca-tier1-node--sell:hover .ca-tier1-halo,
.ca-tier1-node--sell.fv-tip-active .ca-tier1-halo,
.ca-tier1-node--sell:focus-visible .ca-tier1-halo {
  fill: rgba(232, 149, 79, 0.28);
  filter: drop-shadow(0 0 8px var(--bear-glow));
}
.ca-buy-bag-stem--buy {
  stroke: rgba(45, 184, 168, 0.72);
}

.ca-buy-bag {
  cursor: pointer;
  filter: none;
}
.ca-buy-bag__scene {
  transform-box: fill-box;
  transform-origin: center bottom;
}
.ca-buy-bag__coin {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
}
.ca-buy-bag__bag {
  transform-box: fill-box;
  transform-origin: center bottom;
}
.ca-buy-bag:hover .ca-buy-bag__bag,
.ca-buy-bag:focus-visible .ca-buy-bag__bag,
.ca-buy-bag.fv-tip-active .ca-buy-bag__bag,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__bag {
  animation: ca-buy-bag-sway 0.45s ease-in-out;
}
.ca-buy-bag:hover .ca-buy-bag__coin--1,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--1,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--1,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--1 {
  animation: ca-buy-bag-coin-1 0.62s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.ca-buy-bag:hover .ca-buy-bag__coin--2,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--2,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--2,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--2 {
  animation: ca-buy-bag-coin-2 0.58s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}
.ca-buy-bag:hover .ca-buy-bag__coin--3,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--3,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--3,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--3 {
  animation: ca-buy-bag-coin-3 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.02s forwards;
}
.ca-buy-bag:hover .ca-buy-bag__coin--4,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--4,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--4,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--4 {
  animation: ca-buy-bag-coin-4 0.64s cubic-bezier(0.22, 1, 0.36, 1) 0.06s forwards;
}
.ca-buy-bag:hover .ca-buy-bag__coin--5,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--5,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--5,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--5 {
  animation: ca-buy-bag-coin-5 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.03s forwards;
}
.ca-buy-bag:hover .ca-buy-bag__coin--6,
.ca-buy-bag:focus-visible .ca-buy-bag__coin--6,
.ca-buy-bag.fv-tip-active .ca-buy-bag__coin--6,
.ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin--6 {
  animation: ca-buy-bag-coin-6 0.57s cubic-bezier(0.22, 1, 0.36, 1) 0.08s forwards;
}
@keyframes ca-buy-bag-sway {
  0%,
  100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-7deg);
  }
  55% {
    transform: rotate(5deg);
  }
  80% {
    transform: rotate(-3deg);
  }
}
@keyframes ca-buy-bag-coin-1 {
  0% {
    opacity: 0;
    transform: translate(0, 2px) scale(0.2) rotate(0deg);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(-11px, -10px) scale(1) rotate(-120deg);
  }
}
@keyframes ca-buy-bag-coin-2 {
  0% {
    opacity: 0;
    transform: translate(0, 2px) scale(0.2) rotate(0deg);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(12px, -12px) scale(1) rotate(95deg);
  }
}
@keyframes ca-buy-bag-coin-3 {
  0% {
    opacity: 0;
    transform: translate(0, 1px) scale(0.2) rotate(0deg);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(-13px, 4px) scale(1) rotate(-75deg);
  }
}
@keyframes ca-buy-bag-coin-4 {
  0% {
    opacity: 0;
    transform: translate(0, 1px) scale(0.2) rotate(0deg);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(14px, 5px) scale(1) rotate(110deg);
  }
}
@keyframes ca-buy-bag-coin-5 {
  0% {
    opacity: 0;
    transform: translate(0, 3px) scale(0.15) rotate(0deg);
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(1px, -16px) scale(1) rotate(180deg);
  }
}
@keyframes ca-buy-bag-coin-6 {
  0% {
    opacity: 0;
    transform: translate(0, 2px) scale(0.15) rotate(0deg);
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(-6px, -14px) scale(1) rotate(-200deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ca-buy-bag:hover .ca-buy-bag__bag,
  .ca-buy-bag:hover .ca-buy-bag__coin,
  .ca-buy-bag:focus-visible .ca-buy-bag__bag,
  .ca-buy-bag:focus-visible .ca-buy-bag__coin,
  .ca-buy-bag.fv-tip-active .ca-buy-bag__bag,
  .ca-buy-bag.fv-tip-active .ca-buy-bag__coin,
  .ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__bag,
  .ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin {
    animation: none !important;
  }
  .ca-buy-bag:hover .ca-buy-bag__coin,
  .ca-buy-bag:focus-visible .ca-buy-bag__coin,
  .ca-buy-bag.fv-tip-active .ca-buy-bag__coin,
  .ca-buy-bag.ca-buy-bag--jingle .ca-buy-bag__coin {
    opacity: 0.85;
  }
}
.ca-chart-line {
  cursor: help;
  pointer-events: stroke;
}
.ca-chart-line:hover {
  stroke-width: 2.5;
  filter: brightness(1.12);
}
.ca-ind-line .ca-ind-visible {
  pointer-events: none;
}
path.ca-ind-hit {
  stroke: transparent !important;
  fill: none;
  pointer-events: stroke;
  cursor: help;
}
polygon.ca-ind-hit {
  pointer-events: fill;
  cursor: help;
}
.ca-ind-hit.fv-tip-target,
.ca-ind-hit.fv-tip-active {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}
.ca-ind-line:hover .ca-ind-visible,
.ca-ind-line:has(.ca-ind-hit.fv-tip-active) .ca-ind-visible {
  stroke-width: 2.5;
  filter: brightness(1.12);
}
polygon.ca-ind-hit.fv-tip-active {
  filter: brightness(1.18);
}
.ca-buy-bag--ema-golden.fv-tip-active .ca-buy-bag__bag,
.ca-buy-bag--ema-golden:focus-visible .ca-buy-bag__bag {
  filter: drop-shadow(0 0 6px rgba(78, 184, 201, 0.85));
}
.ca-buy-bag--ema-pullback.fv-tip-active .ca-buy-bag__bag,
.ca-buy-bag--ema-pullback:focus-visible .ca-buy-bag__bag {
  filter: drop-shadow(0 0 6px rgba(59, 130, 246, 0.85));
}
.ca-buy-bag--macd.fv-tip-active .ca-buy-bag__bag,
.ca-buy-bag--macd:focus-visible .ca-buy-bag__bag {
  filter: drop-shadow(0 0 6px rgba(234, 179, 8, 0.9));
}
.ca-ema-death.fv-tip-active line,
.ca-ema-death:focus-visible line {
  stroke: #fb923c;
  stroke-width: 2;
}
.tt-hero-card--ema .tt-hero-kicker {
  color: rgba(78, 184, 201, 0.95);
}
.ca-ema-hint {
  font-size: 0.72rem;
  color: var(--rm-muted, #8b9cb3);
  margin-left: 0.35rem;
  white-space: nowrap;
}
.ca-text-input {
  width: 4.5rem;
  min-width: 0;
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid #2a3544;
  background: rgba(0, 0, 0, 0.25);
  color: var(--text);
  font-size: 0.72rem;
}
.ca-field--grow { min-width: 0; }
.ca-add-btn {
  padding: 4px 8px;
  min-width: 2rem;
}
.ca-mode-seg {
  display: inline-flex;
  flex-shrink: 0;
  border: 1px solid #2a3544;
  border-radius: 999px;
  overflow: hidden;
}
.ca-mode-btn {
  border: none;
  background: #121820;
  color: var(--muted);
  font-size: var(--ws-label-size);
  padding: 4px 9px;
  cursor: pointer;
}
.ca-mode-btn + .ca-mode-btn {
  border-left: 1px solid #2a3544;
}
.ca-mode-btn.is-on {
  color: var(--accent);
  background: var(--accent-bg);
}
.ca-ind-label--short {
  display: none;
}
.ca-ind-dropdown {
  position: relative;
  display: inline-flex;
}
.ca-ind-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.ca-ind-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25em;
  height: 1.25em;
  padding: 0 0.3em;
  border-radius: 999px;
  background: var(--accent-bg);
  color: var(--accent);
  font-size: 0.62rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.ca-ind-count.is-empty {
  display: none;
}
.ca-ind-caret {
  font-size: 0.7em;
  opacity: 0.8;
}
.ca-ind-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  border-radius: 10px;
  background: #121820;
  border: 1px solid #2a3544;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  min-width: 176px;
}
.ca-ind-menu[hidden] {
  display: none;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart #workspaceChart .ca-ind-menu:not([hidden]) {
  z-index: 130;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.55);
  scrollbar-width: thin;
  scrollbar-color: rgba(78, 184, 201, 0.45) transparent;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart #workspaceChart .ca-ind-menu:not([hidden])::-webkit-scrollbar {
  width: 6px;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart #workspaceChart .ca-ind-menu:not([hidden])::-webkit-scrollbar-thumb {
  background: rgba(78, 184, 201, 0.45);
  border-radius: 3px;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart #workspaceChart .ca-toolbar-wrap,
body.is-mobile-ws-accordion.is-mobile-snap-chart #workspaceChart .ca-toolbar {
  overflow-y: visible;
}
.ca-ind-menu .ca-toggle,
.ca-ind-menu .ca-ind-item {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 8px;
  text-align: left;
  justify-content: space-between;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid transparent;
  box-sizing: border-box;
}
.ca-ind-menu .ca-ind-item:hover,
.ca-ind-menu .ca-ind-item:focus-visible {
  background: rgba(78, 184, 201, 0.12);
  border-color: rgba(78, 184, 201, 0.28);
  outline: none;
}
.ca-ind-menu .ca-ind-item.is-on {
  border-color: var(--accent-border);
  background: var(--accent-bg);
  color: var(--accent);
}
.ca-ind-item-label {
  flex: 1;
  font-weight: 500;
  line-height: 1.2;
}
.ca-ind-item-state {
  font-size: 0.72em;
  opacity: 0.8;
  min-width: 2em;
  text-align: right;
  flex-shrink: 0;
}
.ca-ind-menu .ca-toggle.is-disabled,
.ca-ind-menu .ca-toggle:disabled,
.ca-ind-menu .ca-ind-item.is-disabled,
.ca-ind-menu .ca-ind-item:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
.ca-fv-line {
  stroke: #facc15;
  stroke-linecap: round;
}
.ca-fv-overlay:hover .ca-fv-line,
.ca-fv-overlay:has(.ca-fv-hit.fv-tip-active) .ca-fv-line {
  filter: brightness(1.12);
  stroke-width: 3;
}
.ca-fv-hit {
  stroke: transparent !important;
  fill: none;
  pointer-events: stroke;
}
.ca-fv-hit.fv-tip-target {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
  cursor: help;
}
.ca-fv-line.fv-tip-target {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}
.ca-fv-line--off-scale {
  stroke-opacity: 0.72;
}
.ca-fv-label--off-scale {
  opacity: 0.88;
}
.ca-fv-overlay--off-scale .ca-fv-hit {
  cursor: help;
}
.ca-fv-label {
  fill: #facc15;
}
.ca-sr-chip {
  border: 1px solid #2a3544;
  background: rgba(0, 0, 0, 0.2);
  color: var(--muted);
  border-radius: 999px;
  font-size: 0.62rem;
  padding: 2px 8px;
  cursor: pointer;
}
.ca-sr-chip:hover { color: var(--text); border-color: var(--accent-border); }
/* S/R level chips: overlay pinned to the chart top-left, inset past the
   y-axis price labels (time-range label sits top-right). */
/* Volume overlay: slightly-off-grey backdrop at rest; bull/bear color appears
   only when the cursor is near the volume band (.is-near set in JS), not on any
   chart hover (item 8). */
.ca-vol-bar {
  fill: rgba(150, 154, 162, 0.14);
  transition: fill 0.14s ease;
}
.ca-vol-overlay.is-near .ca-vol-bar[data-dir="up"] {
  fill: rgba(78, 184, 201, 0.5);
}
.ca-vol-overlay.is-near .ca-vol-bar[data-dir="down"] {
  fill: rgba(232, 149, 79, 0.5);
}
.ca-sr-line-hit {
  cursor: ns-resize;
  pointer-events: stroke;
}
.ca-sr-line {
  pointer-events: none;
}
.ca-sr-tag {
  font-size: 9px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  paint-order: stroke;
  stroke: rgba(10, 15, 22, 0.85);
  stroke-width: 2.5px;
}
.ca-chart-status {
  position: absolute;
  bottom: 72px;
  left: 52px;
  z-index: 5;
  max-width: min(80%, 460px);
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ca-chart-status[hidden] {
  display: none;
}
.ca-chart-status-row {
  font-size: 0.62rem;
  line-height: 1.35;
  color: rgba(160, 170, 185, 0.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ca-chart-status-row--sr {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  max-width: min(92%, 520px);
}
.ca-chart-status-sr-chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  pointer-events: auto;
}
.ca-chart-status .ca-sr-chip {
  background: rgba(10, 15, 22, 0.8);
  border-color: rgba(78, 184, 201, 0.28);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.ca-chart-status .ca-sr-chip:hover {
  background: rgba(14, 22, 32, 0.92);
  border-color: var(--accent-border);
}
.ca-chart-status-kicker {
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(130, 142, 158, 0.45);
  margin-right: 4px;
}
.ca-chart-status-fv {
  color: rgba(250, 204, 21, 0.62);
}
.ca-chart-status-c2 {
  color: rgba(160, 170, 185, 0.58);
}
.ca-chart-status-structure {
  color: rgba(78, 184, 201, 0.62);
}
.ca-structure-line {
  pointer-events: none;
}
.ca-structure-tag {
  font-size: 9px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}
.ca-pane-resizer {
  position: absolute;
  left: 0;
  right: 0;
  height: 10px;
  margin-top: -5px;
  cursor: row-resize;
  z-index: 4;
  opacity: 0;
  transition: opacity 0.2s;
}
.ca-pane-resizer.is-hot,
.ca-pane-resizer.is-dragging,
.ca-chart-mount:hover .ca-pane-resizer {
  opacity: 1;
}
.ca-pane-resizer-grip {
  display: block;
  width: 42px;
  height: 4px;
  margin: 3px auto 0;
  border-radius: 999px;
  background: rgba(139, 156, 179, 0.55);
}
.ca-rm-rec {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 0 0 6px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid rgba(61, 186, 122, 0.35);
  background: rgba(61, 186, 122, 0.08);
  font-size: 0.68rem;
  line-height: 1.2;
  cursor: pointer;
  position: relative;
  z-index: 5;
  flex-shrink: 0;
}
.ca-rm-rec:hover,
.ca-rm-rec:focus-visible {
  border-color: rgba(61, 186, 122, 0.65);
  background: rgba(61, 186, 122, 0.14);
  outline: none;
}
.ca-rm-rec-kicker {
  font-weight: 700;
  color: #3dba7a;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.62rem;
}
.ca-rm-rec-item {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.ca-rm-rec-lbl {
  margin-right: 3px;
  font-weight: 500;
  color: var(--muted);
  font-size: 0.62rem;
}
.ca-rm-rec-hint {
  margin-left: auto;
  color: var(--muted);
  font-size: 0.6rem;
}
.ca-plan-hint-bar {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 6px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(61, 186, 122, 0.4);
  background: rgba(61, 186, 122, 0.1);
  font-size: 0.68rem;
  line-height: 1.25;
  flex-shrink: 0;
  position: relative;
  z-index: 5;
}
.ca-plan-hint-bar-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}
.ca-plan-hint-kicker {
  font-weight: 700;
  color: #3dba7a;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.ca-plan-hint-lvl {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.64rem;
}
.ca-plan-hint-entry {
  color: #3dba7a;
}
.ca-plan-hint-stop {
  color: #e8954f;
}
.ca-plan-hint-t1,
.ca-plan-hint-t2 {
  color: #4eb8c9;
}
.ca-plan-hint-bar #caPlanHintTrades {
  margin-left: auto;
  flex-shrink: 0;
}
.ca-plan-hint-sub {
  margin: 0;
  color: var(--muted);
  font-size: 0.58rem;
  line-height: 1.3;
}
.ca-plan-line-label {
  pointer-events: none;
  user-select: none;
}
.ca-last-price {
  pointer-events: none;
}
.ca-last-price-line {
  pointer-events: none;
}
.ca-last-price-pill {
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}
.ca-last-price-pill__text {
  font-family: inherit;
  letter-spacing: 0.02em;
  pointer-events: none;
  user-select: none;
}
.ca-plan-panel-next {
  margin: 8px 0 0;
  font-size: 0.62rem;
  color: var(--muted);
  line-height: 1.35;
}
.ca-plan-line {
  pointer-events: none;
}
.ca-plan-flag {
  cursor: pointer;
}
.ca-plan-flag-hit {
  pointer-events: all !important;
  cursor: pointer;
  touch-action: manipulation;
  shape-rendering: crispEdges;
}
.ca-trade-plan-flag-layer,
.ca-trade-plan--flag-only {
  pointer-events: none;
}
.ca-trade-plan-flag-layer .ca-plan-flag,
.ca-trade-plan--flag-only .ca-plan-flag {
  pointer-events: all;
}
.ca-trade-plan-lines,
.ca-trade-plan-lines .ca-plan-line {
  pointer-events: none;
}
.ca-plan-flag--buy .ca-plan-flag-label,
.ca-plan-flag--buy .ca-plan-flag-price {
  pointer-events: none;
  user-select: none;
}
.ca-plan-flag--buy .ca-plan-flag-label {
  paint-order: stroke fill;
  stroke: rgba(0, 0, 0, 0.65);
  stroke-width: 2px;
}
.ca-plan-flag-fabric {
  transform-box: fill-box;
  transform-origin: 100% 0%;
}
@media (hover: hover) {
  .ca-plan-flag--buy:hover .ca-plan-flag-fabric,
  .ca-plan-flag--buy:focus-visible .ca-plan-flag-fabric,
  .ca-plan-flag--buy.fv-tip-active .ca-plan-flag-fabric,
  .ca-plan-flag.ca-plan-flag--expanded:hover .ca-plan-flag-fabric,
  .ca-plan-flag.ca-plan-flag--expanded:focus-visible .ca-plan-flag-fabric,
  .ca-plan-flag.ca-plan-flag--expanded.fv-tip-active .ca-plan-flag-fabric {
    animation: ca-plan-flag-wave 1.35s ease-in-out infinite;
  }
}
@keyframes ca-plan-flag-wave {
  0%,
  100% {
    transform: rotate(0deg) skewX(0deg);
  }
  20% {
    transform: rotate(-5deg) skewX(-3deg);
  }
  45% {
    transform: rotate(2deg) skewX(1.5deg);
  }
  70% {
    transform: rotate(5deg) skewX(2.5deg);
  }
  85% {
    transform: rotate(-2deg) skewX(-1deg);
  }
}
.ca-plan-entry-mark {
  pointer-events: none;
}
.ca-trade-plan {
  pointer-events: none;
}
.ca-trade-plan .ca-plan-flag {
  pointer-events: auto;
}
.ca-plan-panel-backdrop {
  position: absolute;
  inset: 0;
  z-index: 6;
  background: rgba(4, 8, 12, 0.42);
  cursor: default;
}
.ca-plan-panel-backdrop.hidden {
  display: none !important;
}
.ca-plan-panel {
  position: absolute;
  right: 8px;
  top: 8px;
  z-index: 7;
  width: min(100%, 248px);
  padding: 10px 12px 12px;
  border-radius: 10px;
  border: 1px solid var(--accent-border);
  background: rgba(18, 24, 32, 0.98);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
  pointer-events: auto;
}
.ca-plan-panel.hidden {
  display: none !important;
}
.ca-plan-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.ca-plan-panel-title {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.25;
  flex: 1;
  min-width: 0;
}
.ca-plan-panel-close {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  font-size: 1.1rem;
  line-height: 1;
}
.ca-plan-panel-levels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 10px;
  margin: 0 0 8px;
  padding: 8px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(42, 53, 68, 0.65);
  font-size: 0.64rem;
}
.ca-plan-panel-levels div {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}
.ca-plan-panel-levels dt {
  margin: 0;
  color: var(--muted);
  font-weight: 600;
}
.ca-plan-panel-levels dd {
  margin: 0;
  font-weight: 700;
  color: var(--text);
}
.ca-plan-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.68rem;
  margin-bottom: 4px;
}
.ca-plan-field input[type="number"],
.ca-plan-field input[type="range"] {
  flex: 1;
  min-width: 0;
}
.ca-plan-stat {
  margin: 6px 0 0;
  font-size: 0.65rem;
  color: var(--muted);
  line-height: 1.35;
}
.ca-plan-panel-foot {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.ca-plan-panel-foot .btn-sm {
  flex: 1 1 0;
  min-width: 0;
}
@media (max-width: 640px) {
  .ca-chart-mount .ca-plan-panel:not(.ca-plan-panel--embedded),
  .ca-plan-panel-backdrop {
    display: none !important;
  }
}
.ca-trade-proj {
  pointer-events: none;
}
.ca-trade-proj-zone {
  fill: rgba(61, 186, 122, 0.06);
}
.ca-trade-proj-path {
  fill: none;
  stroke: rgba(61, 186, 122, 0.45);
  stroke-width: 1.5;
  stroke-dasharray: 6 4;
}
.ca-trade-proj-label {
  fill: #8b9cb3;
  font-size: 10px;
  font-weight: 600;
}
.pick-trade-insight {
  display: block;
  margin-top: 4px;
  padding: 4px 6px;
  border-radius: 6px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(78, 184, 201, 0.08);
  font-size: 0.62rem;
  line-height: 1.35;
  color: var(--text);
  font-weight: 500;
}
.pick-trade-insight strong {
  color: var(--accent);
  font-weight: 700;
}
.pick-row-selected .pick-trade-insight {
  border-color: rgba(61, 186, 122, 0.5);
  background: rgba(61, 186, 122, 0.1);
}
.pick-setup-insight {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(61, 186, 122, 0.45);
  background: rgba(61, 186, 122, 0.12);
  font-size: 0.62rem;
  line-height: 1.35;
}
.pick-setup-insight-kicker {
  margin: 0 0 4px;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #3dba7a;
}
.ca-chart-mount { position: relative; }
.ca-session-band--pre {
  fill: rgba(78, 184, 201, 0.14);
}
.ca-session-band--post {
  fill: rgba(139, 127, 212, 0.14);
}
.ca-session-bands {
  pointer-events: none;
}
.ca-axis-date {
  font-variant-numeric: tabular-nums;
}
.ca-chart-date {
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}
.ws-panel--chart:fullscreen,
.ws-panel--chart:-webkit-full-screen,
.ws-panel--chart.ws-panel--chart-fs {
  position: fixed;
  inset: 0;
  z-index: 400;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}
.ws-panel--chart:fullscreen .ws-panel-body,
.ws-panel--chart:-webkit-full-screen .ws-panel-body,
.ws-panel--chart.ws-panel--chart-fs .ws-panel-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ws-panel--chart:fullscreen .ca-analysis-stage,
.ws-panel--chart:-webkit-full-screen .ca-analysis-stage,
.ws-panel--chart.ws-panel--chart-fs .ca-analysis-stage {
  flex: 1;
  min-height: 0;
}
.ws-panel--chart:fullscreen.ws-panel--collapsed .ws-panel-head,
.ws-panel--chart:-webkit-full-screen.ws-panel--collapsed .ws-panel-head,
.ws-panel--chart.ws-panel--chart-fs.ws-panel--collapsed .ws-panel-head {
  min-height: 44px;
  height: 44px;
  flex-shrink: 0;
}
.ws-panel--chart:fullscreen.ws-panel--collapsed .ws-panel-submeta,
.ws-panel--chart:-webkit-full-screen.ws-panel--collapsed .ws-panel-submeta,
.ws-panel--chart.ws-panel--chart-fs.ws-panel--collapsed .ws-panel-submeta {
  display: none;
}
body:not(.is-wide-ws-accordion) .ws-panel--chart:fullscreen.ws-panel--collapsed .ws-panel-body,
body:not(.is-wide-ws-accordion) .ws-panel--chart:-webkit-full-screen.ws-panel--collapsed .ws-panel-body,
body:not(.is-wide-ws-accordion) .ws-panel--chart.ws-panel--chart-fs.ws-panel--collapsed .ws-panel-body {
  display: flex !important;
  flex: 1 1 0%;
  min-height: 0;
}

/* Wide layout — collapsible panel headers (tablet + desktop) */
body.is-wide-ws-accordion {
  --ws-fold-chip: 56px;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel {
  min-height: 0;
  transition:
    width 0.28s ease,
    height 0.28s ease,
    max-width 0.28s ease,
    opacity 0.2s ease;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel--collapsed .ws-panel-body {
  display: none !important;
}
body.is-wide-ws-accordion
  .ws-panel--chart:fullscreen.ws-panel--collapsed
  .ws-panel-body,
body.is-wide-ws-accordion
  .ws-panel--chart.ws-panel--chart-fs.ws-panel--collapsed
  .ws-panel-body {
  display: flex !important;
  flex: 1 1 0%;
  min-height: 0;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion .ws-panel-head {
  position: relative;
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
}
/* Expanded: fold chevron on title row only (not submeta / tabs) */
body.is-wide-ws-accordion .morning-workspace--wide-accordion .ws-panel-head-row::before {
  display: none;
}
body.is-wide-ws-accordion
  .morning-workspace--wide-accordion
  .ws-panel:not(.ws-panel--collapsed)
  .ws-panel-head-lead::before {
  content: "▾";
  flex: 0 0 12px;
  width: 12px;
  align-self: center;
  order: -1;
  display: block;
  font-size: 0.72rem;
  line-height: 1;
  color: var(--accent);
  pointer-events: none;
}
body.is-wide-ws-accordion
  .morning-workspace--wide-accordion
  .ws-panel--collapsed
  .ws-panel-head-lead::before {
  display: none;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion .ws-panel-head-row {
  gap: 8px;
}
/* Collapsed: corner chip with column texture + centered chevron */
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel--collapsed {
  width: var(--ws-fold-chip);
  min-width: var(--ws-fold-chip);
  max-width: var(--ws-fold-chip);
  height: var(--ws-fold-chip);
  max-height: var(--ws-fold-chip);
  align-self: start;
  justify-self: start;
  opacity: 0.98;
  border-radius: 12px;
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(78, 184, 201, 0.22),
    0 6px 18px rgba(0, 0, 0, 0.45);
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > #workspaceScans.ws-panel--collapsed {
  justify-self: end;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel--collapsed .ws-panel-head {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  margin: 0;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel--collapsed .ws-panel-head > * {
  display: none !important;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > .ws-panel--collapsed .ws-panel-head::before {
  content: "▸";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  font-size: 0.78rem;
  line-height: 1;
  color: rgba(242, 246, 250, 0.92);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
  pointer-events: none;
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > #workspaceMarket.ws-panel--collapsed .ws-panel-head {
  background:
    radial-gradient(circle at 30% 20%, rgba(78, 184, 201, 0.35) 0%, transparent 55%),
    repeating-linear-gradient(
      -18deg,
      rgba(78, 184, 201, 0.14) 0 2px,
      transparent 2px 7px
    ),
    linear-gradient(145deg, #121a24 0%, #0a1018 100%);
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > #workspaceChart.ws-panel--collapsed .ws-panel-head {
  background:
    radial-gradient(circle at 70% 25%, rgba(61, 186, 122, 0.32) 0%, transparent 52%),
    repeating-linear-gradient(
      90deg,
      rgba(61, 186, 122, 0.1) 0 1px,
      transparent 1px 5px
    ),
    linear-gradient(160deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 9px),
    linear-gradient(155deg, #141c22 0%, #090e14 100%);
}
body.is-wide-ws-accordion .morning-workspace--wide-accordion > #workspaceScans.ws-panel--collapsed .ws-panel-head {
  background:
    radial-gradient(circle at 75% 30%, rgba(232, 149, 79, 0.28) 0%, transparent 50%),
    repeating-linear-gradient(
      0deg,
      rgba(78, 184, 201, 0.11) 0 3px,
      transparent 3px 8px
    ),
    linear-gradient(200deg, #151820 0%, #0b0f16 100%);
}
@media (min-width: 1280px) {
  body.is-wide-ws-accordion
    .morning-workspace--wide-accordion.morning-workspace--wide-collapse-active {
    align-items: start;
  }
}

/* Market map sentiment tint */
.fv-market {
  border-radius: 10px;
  padding: 6px;
  transition: background 0.35s ease, box-shadow 0.35s ease;
}
.fv-market.fv-sentiment-bull {
  background: linear-gradient(165deg, rgba(78, 184, 201, 0.14) 0%, rgba(18, 24, 32, 0.2) 100%);
  box-shadow: inset 0 0 0 1px rgba(78, 184, 201, 0.22);
}
.fv-market.fv-sentiment-bear {
  background: linear-gradient(165deg, rgba(232, 149, 79, 0.16) 0%, rgba(18, 24, 32, 0.2) 100%);
  box-shadow: inset 0 0 0 1px rgba(232, 149, 79, 0.24);
}
.fv-market.fv-sentiment-neutral {
  background: rgba(0, 0, 0, 0.12);
}

.ws-panel-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.ws-panel-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.ws-panel-icon-btn svg {
  display: block;
}
/* Market map settings */
.ws-panel-menu {
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: rgba(78, 184, 201, 0.1);
  color: var(--accent-muted);
  width: 28px;
  height: 28px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
}
.ws-panel-menu:hover {
  border-color: rgba(78, 184, 201, 0.65);
  background: rgba(78, 184, 201, 0.2);
  color: #f2f6fa;
}
.fv-settings-popover {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  display: flex;
  flex-direction: column;
  width: min(292px, calc(100vw - 20px));
  max-height: min(72vh, 520px);
  padding: 0;
  border-radius: 12px;
  border: 1px solid rgba(78, 184, 201, 0.35);
  background: linear-gradient(180deg, #1e2836 0%, #171f2a 100%);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.25);
  overflow: hidden;
}
.fv-settings-popover.hidden {
  display: none;
}
.fv-settings-head {
  flex-shrink: 0;
  padding: 12px 14px 10px;
  border-bottom: 1px solid rgba(42, 53, 68, 0.85);
  background: rgba(78, 184, 201, 0.06);
}
.fv-settings-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px 10px 10px;
}
.fv-settings-foot {
  flex-shrink: 0;
  padding: 8px 10px 10px;
  border-top: 1px solid rgba(42, 53, 68, 0.85);
  background: rgba(0, 0, 0, 0.12);
}
.fv-settings-done {
  width: 100%;
}

/* Mobile snap bumpers + workspace rows */
.mobile-snap-chrome {
  display: none;
  pointer-events: none;
}
.mobile-snap-chrome:not([hidden]) {
  display: block;
  pointer-events: none;
}
body.is-mobile-ws-accordion .mobile-snap-chrome:not([hidden]) .snap-bumper:not([hidden]) {
  pointer-events: auto;
}
.snap-bumper {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 115;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--mobile-snap-bumper-h);
  min-height: var(--mobile-snap-bumper-h);
  padding: 0;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  background: var(--mobile-chrome-wash-bottom);
  box-shadow:
    0 -4px 12px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition:
    height 0.22s cubic-bezier(0.4, 0, 0.2, 1),
    min-height 0.22s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.36s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.28s ease,
    filter 0.18s ease;
}
.snap-bumper:hover,
.snap-bumper:focus-visible,
.snap-bumper:active {
  height: var(--mobile-snap-bumper-h-hover);
  min-height: var(--mobile-snap-bumper-h-hover);
  pointer-events: auto;
}
.snap-bumper--down {
  left: var(--mobile-footer-bumper-inset);
  right: var(--mobile-footer-bumper-inset);
  width: auto;
  bottom: calc(var(--mobile-action-bar-h) + env(safe-area-inset-bottom));
  height: var(--mobile-footer-bumper-h);
  min-height: var(--mobile-footer-bumper-h);
  border-radius: 14px 14px 0 0;
  border-top: 1px solid rgba(78, 184, 201, 0.1);
  background: var(--mobile-chrome-wash-footer);
  background-size: var(--mobile-footer-chrome-bg-size);
  background-attachment: fixed;
  background-position: var(--mobile-footer-chrome-bg-pos);
  background-repeat: no-repeat;
  box-shadow: none;
  transform-origin: bottom center;
}
.snap-bumper--down:hover,
.snap-bumper--down:focus-visible,
.snap-bumper--down:active {
  height: var(--mobile-footer-bumper-h-hover);
  min-height: var(--mobile-footer-bumper-h-hover);
}
.snap-bumper--up {
  top: 0;
  border-radius: 0 0 16px 16px;
  border-bottom: 1px solid rgba(78, 184, 201, 0.18);
  background: var(--mobile-chrome-wash-top);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.22),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06);
  transform-origin: top center;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart .snap-bumper--up,
body.is-mobile-ws-accordion.is-mobile-snap-scans .snap-bumper--up {
  top: var(--mobile-header-shell-h, calc(var(--snap-header-min, 66px) + env(safe-area-inset-top, 0px)));
  height: var(--mobile-snap-bumper-strip-h);
  min-height: var(--mobile-snap-bumper-strip-h);
}
body.is-mobile-ws-accordion.is-mobile-snap-chart .snap-bumper--up:hover,
body.is-mobile-ws-accordion.is-mobile-snap-chart .snap-bumper--up:focus-visible,
body.is-mobile-ws-accordion.is-mobile-snap-chart .snap-bumper--up:active,
body.is-mobile-ws-accordion.is-mobile-snap-scans .snap-bumper--up:hover,
body.is-mobile-ws-accordion.is-mobile-snap-scans .snap-bumper--up:focus-visible,
body.is-mobile-ws-accordion.is-mobile-snap-scans .snap-bumper--up:active {
  height: calc(var(--mobile-snap-bumper-strip-h) + 6px);
  min-height: calc(var(--mobile-snap-bumper-strip-h) + 6px);
}
body.is-mobile-ws-accordion.is-mobile-snap-chart.is-mobile-chart-pick .snap-bumper--down {
  bottom: calc(var(--mobile-action-bar-h) + 68px + env(safe-area-inset-bottom));
}
body.is-mobile-ws-accordion.is-mobile-snap-scans .snap-bumper--down {
  display: none !important;
}
.snap-bumper--down .snap-bumper-chevron {
  width: 18px;
  height: 18px;
}
.snap-bumper-chevron {
  color: var(--accent);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
}
.snap-bumper-story-icon {
  display: block;
  width: 24px;
  height: 24px;
  color: #fff;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
  pointer-events: none;
  flex-shrink: 0;
}
.snap-bumper:hover .snap-bumper-story-icon,
.snap-bumper:focus-visible .snap-bumper-story-icon,
.snap-bumper:active .snap-bumper-story-icon {
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 8px rgba(255, 255, 255, 0.2));
}
body.is-mobile-ws-accordion .snap-bumper--up {
  display: none !important;
}
.mobile-row-nav[hidden] {
  display: none !important;
  pointer-events: none !important;
}
.mobile-row-nav {
  position: fixed;
  left: 0;
  right: 0;
  top: var(--mobile-header-shell-h, calc(var(--snap-header-min, 66px) + env(safe-area-inset-top, 0px)));
  z-index: 116;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  gap: 0;
  height: var(--mobile-row-nav-h);
  min-height: var(--mobile-row-nav-h);
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 0 0 var(--mobile-chrome-curve) var(--mobile-chrome-curve);
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.34);
}
.mobile-row-nav-btn {
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: rgba(214, 224, 233, 0.62);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.18s ease, background 0.22s ease, transform 0.15s ease, opacity 0.18s ease;
}
.mobile-row-nav-btn:hover,
.mobile-row-nav-btn:focus-visible {
  color: rgba(236, 242, 248, 0.92);
  background: rgba(255, 255, 255, 0.04);
}
.mobile-row-nav-btn.is-active {
  color: var(--accent-muted);
  background: var(--mobile-chrome-teal-grad-down);
  opacity: 1;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 0 14px rgba(126, 200, 212, 0.28);
}
.mobile-row-nav-btn:not(.is-active) {
  opacity: 0.78;
}
.mobile-row-nav-icon {
  display: block;
  pointer-events: none;
  flex-shrink: 0;
}
.mobile-row-nav-icon--story {
  width: 28px;
  height: 28px;
  color: #fff;
  opacity: 1;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
  transition: filter 0.22s ease;
}
.mobile-row-nav-btn:not(.is-active) .mobile-row-nav-icon--story {
  color: #fff;
  opacity: 1;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55)) brightness(1.18);
}
.mobile-row-nav-candle-wick {
  stroke: #fff;
  opacity: 0.98;
}
.mobile-row-nav-candle-body {
  fill: #fff;
  transform-box: fill-box;
  transform-origin: 50% 100%;
  transform: scaleY(0.62);
  transition:
    transform 0.38s cubic-bezier(0.22, 1.12, 0.36, 1),
    fill 0.26s ease,
    filter 0.26s ease;
}
.mobile-row-nav-btn[data-row-nav="chart"]:hover .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:focus-visible .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:active .mobile-row-nav-candle-body {
  transform: scaleY(1);
  fill: #a8ecf6;
}
.mobile-row-nav-btn[data-row-nav="chart"]:hover .mobile-row-nav-candle--1 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:focus-visible .mobile-row-nav-candle--1 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:active .mobile-row-nav-candle--1 .mobile-row-nav-candle-body {
  transition-delay: 0ms;
  filter: drop-shadow(0 0 4px rgba(78, 184, 201, 0.7));
}
.mobile-row-nav-btn[data-row-nav="chart"]:hover .mobile-row-nav-candle--2 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:focus-visible .mobile-row-nav-candle--2 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:active .mobile-row-nav-candle--2 .mobile-row-nav-candle-body {
  transition-delay: 65ms;
  filter: drop-shadow(0 0 5px rgba(126, 200, 212, 0.78));
}
.mobile-row-nav-btn[data-row-nav="chart"]:hover .mobile-row-nav-candle--3 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:focus-visible .mobile-row-nav-candle--3 .mobile-row-nav-candle-body,
.mobile-row-nav-btn[data-row-nav="chart"]:active .mobile-row-nav-candle--3 .mobile-row-nav-candle-body {
  transition-delay: 130ms;
  filter: drop-shadow(0 0 6px rgba(78, 184, 201, 0.85));
}
.mobile-row-nav-btn.is-active .mobile-row-nav-icon--story {
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 6px rgba(255, 255, 255, 0.16));
}
.mobile-row-nav-btn[data-row-nav="market"]:not(.is-active) {
  opacity: 0.94;
}
.mobile-row-nav-icon--ekg {
  width: 34px;
  height: 34px;
  overflow: visible;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55)) brightness(1.28);
}
.mobile-row-nav-ekg-base {
  opacity: 0.58;
  transition: opacity 0.12s ease;
}
.mobile-row-nav-ekg-trace {
  stroke-dasharray: 12 88;
  stroke-dashoffset: 88;
  opacity: 0.86;
}
.mobile-row-nav-btn.is-active .mobile-row-nav-ekg-base {
  opacity: 0.68;
}
.mobile-row-nav-btn.is-active .mobile-row-nav-ekg-trace {
  opacity: 0.98;
  stroke: #d8fbff;
  filter:
    drop-shadow(0 0 2px rgba(255, 255, 255, 0.55))
    drop-shadow(0 0 7px rgba(126, 200, 212, 0.65));
}
.mobile-row-nav-btn.is-loading .mobile-row-nav-ekg-base,
.mobile-row-nav-btn[data-row-nav="market"]:hover .mobile-row-nav-ekg-base,
.mobile-row-nav-btn[data-row-nav="market"]:focus-visible .mobile-row-nav-ekg-base,
.mobile-row-nav-btn[data-row-nav="market"]:active .mobile-row-nav-ekg-base {
  animation: rm-nav-ekg-base-pulse 1.4s ease-in-out infinite;
}
.mobile-row-nav-btn.is-loading .mobile-row-nav-ekg-trace,
.mobile-row-nav-btn[data-row-nav="market"]:hover .mobile-row-nav-ekg-trace,
.mobile-row-nav-btn[data-row-nav="market"]:focus-visible .mobile-row-nav-ekg-trace,
.mobile-row-nav-btn[data-row-nav="market"]:active .mobile-row-nav-ekg-trace {
  animation: rm-nav-ekg-sweep 1.4s ease-in-out infinite;
  stroke: #d4f8ff;
  filter:
    drop-shadow(0 0 2px rgba(255, 255, 255, 0.5))
    drop-shadow(0 0 7px rgba(140, 220, 235, 0.65));
}
@keyframes rm-nav-ekg-sweep {
  0% {
    stroke-dashoffset: 88;
    opacity: 0.58;
  }
  12% {
    opacity: 1;
  }
  48% {
    stroke-dashoffset: 36;
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: 0.62;
  }
}
@keyframes rm-nav-ekg-base-pulse {
  0%, 100% { opacity: 0.48; }
  18% { opacity: 0.72; }
  36% { opacity: 0.52; }
  54% { opacity: 0.68; }
}
.mobile-row-nav-sniper-lens {
  transform-origin: center;
  transition: stroke 0.18s ease, filter 0.18s ease;
}
.mobile-row-nav-sniper-acquire {
  transform-origin: 14px 14px;
  transform: scale(1);
}
.mobile-row-nav-btn--sniper.is-active .mobile-row-nav-sniper-lens {
  stroke: var(--accent-muted);
}
.mobile-row-nav-btn--sniper.is-active:not(.is-scope-locking) .mobile-row-nav-sniper-acquire {
  transform: scale(0.72);
}
.mobile-row-nav-btn--sniper.is-active:not(.is-scope-locking) .mobile-row-nav-sniper-reticle {
  fill: var(--accent-muted);
}
.mobile-row-nav-btn--sniper.is-scope-locking .mobile-row-nav-sniper-acquire {
  animation: rm-nav-sniper-lock-once 0.88s ease-out forwards;
}
@keyframes rm-nav-sniper-lock-once {
  0% {
    transform: scale(1);
  }
  42% {
    transform: scale(0.34);
  }
  52% {
    transform: scale(0.34);
  }
  100% {
    transform: scale(0.72);
  }
}
.mobile-row-nav-btn--sniper.is-scope-locking .mobile-row-nav-sniper-reticle {
  animation: rm-nav-sniper-reticle-once 0.88s ease-out forwards;
}
@keyframes rm-nav-sniper-reticle-once {
  0% {
    fill: currentColor;
    r: 2;
  }
  42% {
    fill: #fff;
  }
  52% {
    fill: var(--accent-muted);
  }
  100% {
    fill: var(--accent-muted);
  }
}
.mobile-row-nav-btn--sniper.is-firing {
  transform: scale(0.94);
}
.mobile-row-nav-btn--sniper.is-firing .mobile-row-nav-sniper-flash {
  opacity: 1;
  animation: rm-nav-sniper-flash 150ms ease-out forwards;
}
@keyframes rm-nav-sniper-flash {
  0% { opacity: 0; transform: scale(0.6); }
  40% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(1.4); }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-row-nav-btn.is-loading .mobile-row-nav-ekg-trace,
  .mobile-row-nav-btn.is-loading .mobile-row-nav-ekg-base,
  .mobile-row-nav-btn[data-row-nav="market"]:hover .mobile-row-nav-ekg-trace,
  .mobile-row-nav-btn[data-row-nav="market"]:hover .mobile-row-nav-ekg-base {
    animation: none;
    opacity: 0.85;
  }
  .mobile-row-nav-btn[data-row-nav="chart"]:hover .mobile-row-nav-candle-body,
  .mobile-row-nav-btn[data-row-nav="chart"]:focus-visible .mobile-row-nav-candle-body {
    transform: scaleY(1);
    transition: none;
  }
  .mobile-row-nav-btn--sniper.is-scope-locking .mobile-row-nav-sniper-acquire,
  .mobile-row-nav-btn--sniper.is-scope-locking .mobile-row-nav-sniper-reticle {
    animation: none;
  }
  .mobile-row-nav-btn--sniper.is-firing .mobile-row-nav-sniper-flash {
    animation: none;
    opacity: 0.6;
  }
}
.snap-bumper:hover,
.snap-bumper:focus-visible,
.snap-bumper:active {
  filter: brightness(1.08);
}
body.snap-bumper-transitioning .snap-bumper {
  pointer-events: auto;
}

/* Mobile r3 — one-shot glow + sparkles when scroll feed hits bottom */
.mobile-scroll-end-burst {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: var(--mobile-footer-sticker-h, calc(var(--mobile-action-bar-h) + env(safe-area-inset-bottom)));
  height: 64px;
  z-index: 109;
  pointer-events: none;
  overflow: visible;
}
.mobile-scroll-end-burst:not([hidden]) {
  display: block;
}
.mobile-scroll-end-burst-flash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 92% 120% at 50% 100%, rgba(126, 200, 212, 0.62) 0%, rgba(78, 184, 201, 0.28) 38%, transparent 72%),
    linear-gradient(0deg, rgba(78, 184, 201, 0.22) 0%, transparent 100%);
  opacity: 0;
  transform: scaleY(0.35);
  transform-origin: center bottom;
  filter: blur(0.5px);
}
.mobile-scroll-end-burst-sparks {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.mobile-scroll-end-burst-sparks span {
  position: absolute;
  bottom: 10px;
  width: 3px;
  height: 3px;
  margin-left: -1.5px;
  border-radius: 50%;
  background: #d4f4fa;
  box-shadow:
    0 0 5px rgba(126, 200, 212, 0.95),
    0 0 12px rgba(78, 184, 201, 0.55);
  opacity: 0;
  transform: translate(-50%, 0) scale(0.25);
}
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-flash {
  animation: mobile-scroll-end-flash 0.88s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span {
  animation: mobile-scroll-end-spark 0.78s ease-out forwards;
}
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(1) { animation-delay: 0.04s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(2) { animation-delay: 0.08s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(3) { animation-delay: 0.1s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(4) { animation-delay: 0.14s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(5) { animation-delay: 0.06s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(6) { animation-delay: 0.12s; }
.mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span:nth-child(7) { animation-delay: 0.16s; }
@keyframes mobile-scroll-end-flash {
  0% {
    opacity: 0;
    transform: scaleY(0.35);
  }
  14% {
    opacity: 1;
    transform: scaleY(1);
  }
  100% {
    opacity: 0;
    transform: scaleY(1.18);
  }
}
@keyframes mobile-scroll-end-spark {
  0% {
    opacity: 0;
    transform: translate(-50%, 0) scale(0.2);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(calc(-50% + var(--sx, 0px)), var(--sy, -30px)) scale(0.85);
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-flash,
  .mobile-scroll-end-burst.is-active .mobile-scroll-end-burst-sparks span {
    animation: none;
    opacity: 0;
  }
}
body.snap-bumper-transitioning .morning-workspace--mobile-snap > .ws-panel--snap-active {
  transition:
    opacity 0.36s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.36s cubic-bezier(0.4, 0, 0.2, 1);
}
body.snap-bumper-transitioning[data-snap-to="chart"] .morning-workspace--mobile-snap > #workspaceChart.ws-panel--snap-active,
body.snap-bumper-transitioning[data-snap-to="scans"] .morning-workspace--mobile-snap > #workspaceScans.ws-panel--snap-active {
  transform: translateY(-8px);
}
body.snap-bumper-transitioning[data-snap-to="market"] .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--snap-active,
body.snap-bumper-transitioning[data-snap-to="chart"] .morning-workspace--mobile-snap > #workspaceChart.ws-panel--snap-active {
  transform: translateY(8px);
}

/* Mobile workspace snap rows (market r1 · chart r2 · scans r3) */
@media (max-width: 640px) {
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--collapsed {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    grid-template-rows: none !important;
    grid-template-areas: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel {
    height: auto !important;
    max-height: none !important;
    flex: 0 0 auto;
    min-height: 0;
    border-radius: 0;
    overflow: hidden;
    transition:
      opacity 0.28s ease,
      flex-basis 0.36s cubic-bezier(0.4, 0, 0.2, 1),
      max-height 0.36s cubic-bezier(0.4, 0, 0.2, 1),
      transform 0.36s cubic-bezier(0.4, 0, 0.2, 1),
      visibility 0.28s ease;
  }
  /* R1 fully off-screen on Chart and Scans rows (no collapsed strip) */
  body.is-mobile-ws-accordion.is-mobile-snap-chart .morning-workspace--mobile-snap > #workspaceMarket,
  body.is-mobile-ws-accordion.is-mobile-snap-scans .morning-workspace--mobile-snap > #workspaceMarket {
    flex: 0 0 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-100%);
    margin: 0 !important;
    border-width: 0;
  }
  body.is-mobile-ws-accordion.is-mobile-snap-chart .morning-workspace--mobile-snap > #workspaceMarket .ws-panel-head,
  body.is-mobile-ws-accordion.is-mobile-snap-scans .morning-workspace--mobile-snap > #workspaceMarket .ws-panel-head {
    display: none !important;
  }
  body.is-mobile-ws-accordion.is-mobile-snap-market .morning-workspace--mobile-snap > #workspaceMarket {
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--collapsed {
    flex: 0 0 auto;
    opacity: 0.94;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed {
    height: auto;
    min-height: var(--ws-head-height);
    max-height: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-head {
    align-items: center;
    height: auto;
    min-height: var(--ws-head-height);
    border-bottom: none;
    padding-top: 8px;
    padding-bottom: 8px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed:not(:has(.fv-bias-mini-slot:not(:empty))) .ws-panel-head {
    padding-top: 0;
    padding-bottom: 0;
    height: var(--ws-head-height);
    min-height: var(--ws-head-height);
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed:has(.fv-bias-mini-slot:not(:empty)) .ws-panel-head::before {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed:has(.fv-bias-mini-slot:not(:empty)) .ws-panel-head-lead::before {
    content: "▸";
    position: absolute;
    left: -16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
  font-size: 0.72rem;
    line-height: 1;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-head-row {
    align-items: stretch;
    gap: 0;
    height: auto;
    min-height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-head-lead {
    padding-top: 11px;
    padding-bottom: 1px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-head-copy {
    gap: 2px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-title {
    line-height: 1.08;
    margin-bottom: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-slot {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
    border: none;
    cursor: pointer;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-tail {
    display: block;
    padding-top: 5px;
    padding-bottom: 1px;
    cursor: pointer;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-row {
    row-gap: 0;
    gap: 0 10px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-pct {
    padding-right: 4px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-k {
    font-size: 0.54rem;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-label {
    font-size: 0.6rem;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .ws-panel-head-lead .ws-panel-menu {
    align-self: center;
    flex-shrink: 0;
    margin-left: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-slot:empty {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-tail:empty,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed .fv-bias-mini-tail[hidden] {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--collapsed:not(:has(.fv-bias-mini-slot:not(:empty))) .ws-panel-head-lead {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--snap-active .fv-bias-mini-slot,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket.ws-panel--snap-active .fv-bias-mini-tail,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket:not(.ws-panel--collapsed) .fv-bias-mini-slot,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceMarket:not(.ws-panel--collapsed) .fv-bias-mini-tail {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active {
    flex: 1 1 0%;
    min-height: 0;
    opacity: 1;
    display: flex !important;
    flex-direction: column;
    transform: translateY(0);
  }
  body.is-mobile-ws-accordion.is-mobile-snap-chart .morning-workspace--mobile-snap > #workspaceChart.ws-panel--snap-active {
    flex: 1 1 0%;
    min-height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--collapsed .ws-panel-body {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-body {
    flex: 1 1 0%;
    min-height: 0;
    max-height: none;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
  }
  /* Column loader — fill the snap row and center the shell vertically */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--loading .ws-panel-body,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--queued .ws-panel-body,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--scan-loading .ws-panel-body {
    flex: 1 1 0%;
    min-height: 0;
    width: 100%;
    overflow: hidden;
    position: relative;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="market"]
    > #workspaceMarket.ws-panel--snap-active.ws-panel--loading
    .ws-panel-body,
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="market"]
    > #workspaceMarket.ws-panel--snap-active.ws-panel--queued
    .ws-panel-body {
    display: flex !important;
    flex-direction: column;
    min-height: 100%;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-col-loader {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--loading .ws-panel-body > :not(.ws-col-loader),
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--queued .ws-panel-body > :not(.ws-col-loader),
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active.ws-panel--scan-loading .ws-panel-body > :not(.ws-col-loader) {
    visibility: hidden;
    pointer-events: none;
  }
  /* Market row — scroll long content naturally */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] > #workspaceMarket.ws-panel--snap-active .ws-panel-body {
    display: block !important;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="market"]
    > #workspaceMarket.ws-panel--snap-active
    .ws-panel-body::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] #workspaceMarket .market-themes-wrap,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] #workspaceMarket .market-panel--finviz,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] #workspaceMarket .market-panel--highlights,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] #workspaceMarket .fv-market {
    overflow: visible !important;
    max-height: none !important;
    height: auto;
    flex: none !important;
  }
  /* Chart row — flex-fill viewport; time brush anchors above bottom bumper */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] > #workspaceChart.ws-panel--snap-active .ws-panel-body,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-unified {
    flex: 1 1 0%;
    min-height: 0;
    height: auto;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] > #workspaceMarket.ws-panel--snap-active .ws-panel-head {
    display: none !important;
  }
  body.is-mobile-ws-accordion .fv-bias-row {
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  }
  body.is-mobile-ws-accordion .fv-market-settings-slot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 2px;
    grid-column: auto;
    grid-row: 1;
  }
  body.is-mobile-ws-accordion #btnMarketSettings.fv-market-settings-btn,
  body.is-mobile-ws-accordion .fv-market-settings-slot #btnMarketSettings {
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    color: var(--accent-muted);
    border-radius: 0;
    box-shadow: none;
  }
  body.is-mobile-ws-accordion #btnMarketSettings.fv-market-settings-btn:hover,
  body.is-mobile-ws-accordion .fv-market-settings-slot #btnMarketSettings:hover,
  body.is-mobile-ws-accordion #btnMarketSettings.fv-market-settings-btn:focus-visible,
  body.is-mobile-ws-accordion .fv-market-settings-slot #btnMarketSettings:focus-visible {
    border: none;
    background: transparent;
    color: var(--accent);
  }
  body.is-mobile-ws-accordion #btnMarketSettings.fv-market-settings-btn svg,
  body.is-mobile-ws-accordion .fv-market-settings-slot #btnMarketSettings svg {
    width: 12px;
    height: 12px;
    opacity: 0.82;
  }
  body.is-mobile-ws-accordion .fv-bias-wrap .fv-settings-popover {
    right: auto;
    left: 0;
    top: calc(100% + 4px);
    min-width: min(100vw - 24px, 320px);
  }
  body.is-mobile-ws-accordion.is-mobile-snap-chart
    #workspaceChart.ws-panel--snap-active
    > .ws-panel-head {
    display: none !important;
  }
  body.is-mobile-ws-accordion #workspaceChart .ca-chart-fs-slot {
    display: none;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    #btnChartFullscreen.ca-chart-fs-toolbar {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    padding: 2px;
    margin: 0;
    border: 1px solid var(--toggle-border-off);
    background: var(--toggle-bg-off);
    color: var(--muted);
    border-radius: 999px;
    box-shadow: none;
    pointer-events: auto;
    backdrop-filter: none;
    box-sizing: border-box;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    #btnChartFullscreen.ca-chart-fs-toolbar:hover,
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    #btnChartFullscreen.ca-chart-fs-toolbar:focus-visible {
    border-color: var(--toggle-border-hover);
    background: var(--toggle-bg-hover);
    color: var(--text);
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    #btnChartFullscreen.ca-chart-fs-toolbar svg {
    width: 12px;
    height: 12px;
  }
  body.is-mobile-ws-accordion #btnChartSettings[hidden] {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar-wrap {
    flex: 0 0 auto;
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-main {
    flex: 1 1 0%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-stage,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-analysis-stage,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-chart-mount {
    flex: 1 1 0%;
    min-height: 0;
    height: auto !important;
    max-height: none !important;
    overflow: hidden;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-stage .chart-hub-svg,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-stage .ca-chart-svg {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
  /* Chart row mobile polish — chart-first layout */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] > .ws-panel--collapsed .ws-panel-head {
    min-height: 40px;
    height: 40px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart.ws-panel--snap-active .ws-panel-submeta {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-unified {
    position: relative;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart #chartHubHint {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar-wrap {
    padding: 2px 6px 0;
    gap: 0;
    flex-direction: column;
    align-items: stretch;
  }
  /* Mobile r2 — condensed desktop layout: row 1 = view controls, row 2 = add symbol */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary {
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 3px;
    width: 100%;
    overflow: visible;
    padding-bottom: 2px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field {
    flex-shrink: 0;
    font-size: 0.68rem;
    align-items: center;
    gap: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--view .ca-field-label,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--sym .ca-field-label {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--view {
    min-width: 0;
    max-width: 3.65rem;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--view select {
    width: 100%;
    max-width: 3.65rem;
    min-width: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--range select,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field--interval select {
    max-width: 2.65rem;
    padding-inline: 3px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-field select,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toggle {
    font-size: 0.6rem;
    padding: 2px 5px;
    min-height: 24px;
    height: 24px;
    line-height: 1;
    box-sizing: border-box;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toggles {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 3px;
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-end;
    margin-left: auto;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-yaxis-toggle {
    min-width: 24px;
    width: 24px;
    padding: 2px 4px;
    flex-shrink: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-ind-btn {
    gap: 3px;
    padding: 2px 5px;
    flex-shrink: 0;
    white-space: nowrap;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-ind-label--full {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-ind-label--short {
    display: inline;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-ind-count {
    font-size: 0.54rem;
    min-width: 1.05em;
    height: 1.05em;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-ind-caret {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary {
    flex: 1 1 100%;
    width: 100%;
    display: flex !important;
    margin-left: 0;
    margin-top: 1px;
    padding: 4px 0 2px;
    gap: 4px;
    flex-wrap: nowrap;
    align-items: center;
    border-top: 1px solid rgba(42, 53, 68, 0.55);
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary .ca-field--sym {
    flex: 1 1 auto;
    min-width: 0;
    gap: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary .ca-text-input {
    width: 100%;
    min-width: 0;
    max-width: none;
    font-size: 0.6rem;
    padding: 2px 6px;
    min-height: 24px;
    height: 24px;
    box-sizing: border-box;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary .ca-mode-seg {
    flex-shrink: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary .ca-mode-btn {
    padding: 2px 6px;
    font-size: 0.56rem;
    min-height: 24px;
    height: 24px;
    line-height: 1;
    box-sizing: border-box;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-toolbar--primary > .ca-toolbar--secondary .ca-add-btn {
    flex-shrink: 0;
    min-height: 24px;
    height: 24px;
    padding: 2px 8px;
    font-size: 0.58rem;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .chart-hub-legend-wrap {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-time-brush {
    flex-shrink: 0;
    padding: 2px 8px 3px;
    margin-bottom: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-time-brush-track {
    height: 24px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="chart"] #workspaceChart .ca-rm-rec {
    display: none !important;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    .ca-plan-hint-bar {
    display: flex !important;
  }
  .ca-chart-mount--plan-flag .ca-plan-flag--buy {
    filter: drop-shadow(0 0 8px rgba(61, 186, 122, 0.65));
    animation: ca-plan-flag-pulse 2.2s ease-in-out infinite;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    .ca-chart-mount--plan-flag
    .ca-plan-flag--buy {
    filter: drop-shadow(0 0 10px rgba(61, 186, 122, 0.75));
  }
  @keyframes ca-plan-flag-pulse {
    0%,
    100% {
      opacity: 1;
    }
    50% {
      opacity: 0.82;
    }
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="chart"]
    #workspaceChart
    .ca-chart-mount--plan-expanded
    .ca-trade-proj-label {
    font-size: 8px;
  }
  /* Scans row — list fills remaining height */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] > #workspaceScans.ws-panel--snap-active .ws-panel-body,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .ws-scans-body {
    flex: 1 1 0%;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  /* Each active tab gets its own scroll container so touch scrolls content
     (Scan / Results / Strategy) instead of snapping the row. */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-tab-panel:not(.hidden) {
    flex: 1 1 0%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .ws-scans-setup,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-results-scroll {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: auto;
    padding-bottom: var(--ws-footer-space);
    scroll-padding-bottom: var(--ws-footer-space);
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-strategy-scroll {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: auto;
    padding-bottom: var(--ws-footer-space);
    scroll-padding-bottom: var(--ws-footer-space);
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-strategy-board {
    flex: none;
    overflow: visible;
    min-height: 0;
  }
  /* One scroll surface for Results — pick list must not nest its own scroller. */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-results-scroll .ws-scans-list {
    flex: none;
    overflow: visible;
    max-height: none;
    min-height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .tt-learning-stack {
    flex: none;
    margin-bottom: 4px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .ws-scans-list:not(.tt-results-picks) {
    flex: 1 1 0%;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    #workspaceScans
    .ws-scans-list::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] #workspaceScans .ws-scans-list:has(.pick-hero--weights-edit) {
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap #workspaceScans .ws-panel-head {
    height: auto;
    min-height: 0;
    padding: 0 var(--ws-col-pad-x) 0 24px;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head {
    height: auto;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 4px;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head-lead {
    min-height: 0;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head-main {
    gap: 4px;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head-lead {
    display: none !important;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head-main {
    width: 100%;
    gap: 0;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .tt-tabs {
    width: 100%;
    margin: 0;
    padding: 2px;
    gap: 4px;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .tt-tab {
    flex: 1 1 0;
    min-height: 40px;
    padding: 10px 8px;
    border-radius: 8px;
    font-size: 0.68rem;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .tt-tab.is-active {
    background: rgba(78, 184, 201, 0.2);
    box-shadow: none;
  }
  body.is-mobile-ws-accordion
    .morning-workspace--mobile-snap[data-snap-row="scans"]
    > #workspaceScans.ws-panel--snap-active
    .ws-panel-head-lead::before {
    display: none;
  }
  /* Collapsed scans row: show only the title bar — hide the tab strip + submeta. */
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceScans.ws-panel--collapsed .tt-tabs,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceScans.ws-panel--collapsed .ws-panel-submeta {
    display: none !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > #workspaceScans.ws-panel--collapsed .ws-panel-head {
    min-height: 44px;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--ready.ws-panel--snap-active .ws-panel-body > :not(.ws-col-loader),
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--ready.ws-panel--snap-active .ws-panel-body :not(.ws-col-loader) {
    visibility: visible !important;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--collapsed .ws-panel-head {
    position: relative;
    cursor: pointer;
    user-select: none;
    padding: 0 var(--ws-col-pad-x) 0 24px;
    height: var(--ws-head-height);
    min-height: var(--ws-head-height);
    flex-shrink: 0;
    border-bottom: none;
    background: transparent;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-head {
    height: auto;
    min-height: 0;
    flex-shrink: 0;
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active .ws-panel-body {
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="market"] .workspace-market-body {
    padding-top: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] .tt-strategy-board,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap[data-snap-row="scans"] .ws-scans-setup {
    padding-top: 8px;
  }
  body.is-mobile-ws-accordion .mkt-theme-tile {
    justify-content: flex-start;
    min-height: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel-head::before {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel-head-lead::before {
    content: "▸";
    position: absolute;
    left: -16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1;
    pointer-events: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel--snap-active .ws-panel-head-lead::before {
    content: "▾";
    color: var(--accent);
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel--collapsed .ws-panel-meta {
    display: none;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel-head--tools .ws-panel-head-row {
    flex: 1;
    min-width: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap .ws-panel-head--tools .ws-panel-menu {
    flex-shrink: 0;
  }
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--collapsed + .ws-panel--collapsed,
  body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel--snap-active + .ws-panel--collapsed {
    margin-top: 2px;
  }
  @media (prefers-reduced-motion: reduce) {
    body.is-mobile-ws-accordion .site-header,
    body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel,
    body.is-mobile-ws-accordion.is-mobile-snap-chart .morning-workspace--mobile-snap > #workspaceMarket,
    body.is-mobile-ws-accordion.is-mobile-snap-scans .morning-workspace--mobile-snap > #workspaceMarket {
      transition: none !important;
    }
  }
}

.fv-settings-title {
  margin: 0;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #8fd4df;
}
.fv-settings-sub {
  margin: 4px 0 0;
  font-size: 0.68rem;
  line-height: 1.35;
  color: var(--muted);
}
.fv-settings-section + .fv-settings-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(42, 53, 68, 0.75);
}
.fv-settings-section-title {
  margin: 0 0 6px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(142, 160, 178, 0.95);
}
.fv-settings-popover label.fv-settings-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 5px 6px;
  border-radius: 6px;
  font-size: 0.76rem;
  line-height: 1.25;
  color: var(--text);
  cursor: pointer;
  transition: background 0.12s ease;
}
.fv-settings-popover label.fv-settings-check:hover {
  background: rgba(78, 184, 201, 0.1);
}
.fv-settings-check-label {
  flex: 1;
  min-width: 0;
}
.fv-settings-popover input[type="checkbox"] {
  width: 15px;
  height: 15px;
  min-width: 15px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  accent-color: var(--accent);
  cursor: pointer;
}
.fv-settings-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  margin-top: 4px;
  padding: 6px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.14);
}
.fv-settings-field-label {
  font-size: 0.68rem;
  color: var(--muted);
}
.fv-settings-popover .fv-settings-field select {
  width: 100%;
  margin: 0;
  padding: 6px 8px;
  border-radius: 6px;
  border: 1px solid rgba(42, 53, 68, 0.95);
  background: #121820;
  color: var(--text);
  font-size: 0.74rem;
}
.fv-settings-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fv-settings-popover label.fv-settings-chip {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.fv-settings-popover label.fv-settings-chip input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.fv-settings-popover label.fv-settings-chip span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(42, 53, 68, 0.95);
  background: rgba(18, 24, 32, 0.9);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--muted);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;
}
.fv-settings-popover label.fv-settings-chip:hover span {
  border-color: rgba(78, 184, 201, 0.45);
  color: var(--text);
}
.fv-settings-popover label.fv-settings-chip input:checked + span {
  border-color: rgba(78, 184, 201, 0.75);
  background: rgba(78, 184, 201, 0.18);
  color: #dff6fa;
}
.fv-settings-hint {
  margin: 6px 2px 0;
  font-size: 0.62rem;
  line-height: 1.35;
  color: rgba(142, 160, 178, 0.85);
}
.fv-settings-group {
  margin: 8px 0;
  padding-top: 8px;
  border-top: 1px solid #2a3544;
}

/* Dynamic theme tiles — compact */
.mkt-theme-grid {
  min-height: 0;
  gap: 4px;
}
.mkt-theme-tile {
  min-width: 46%;
  min-height: 52px;
  padding: 6px;
}
.mkt-theme-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.mkt-theme-chips {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 4px 0;
  min-height: 0;
}
.mkt-theme-chip {
  display: block;
  font-size: 0.64rem;
  line-height: 1.35;
  padding: 4px 6px;
  border-radius: 6px;
  background: var(--fill-1);
  border: 1px solid transparent;
  color: var(--muted);
}
.mkt-theme-chip.sent-up { color: var(--bull-muted); }
.mkt-theme-chip.sent-down { color: var(--bear-muted); }
/* Reset global button styles — grid chips match neutral size until preview/reader */
.mkt-theme-chips button.mkt-theme-chip--hit {
  width: 100%;
  margin: 0;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.64rem;
  font-weight: 400;
  line-height: 1.35;
  padding: 4px 6px;
  border-radius: 6px;
  background: var(--fill-1);
  border: 1px solid transparent;
  color: var(--muted);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}
.mkt-theme-chips button.mkt-theme-chip--hit.sent-up {
  color: var(--bull-muted);
}
.mkt-theme-chips button.mkt-theme-chip--hit.sent-down {
  color: var(--bear-muted);
}
.mkt-theme-chips button.mkt-theme-chip--hit:hover,
.mkt-theme-chips button.mkt-theme-chip--hit:focus-visible {
  transform: translateY(-1px);
  border-color: var(--keyline-hover);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
}
.mkt-theme-chips button.mkt-theme-chip--hit.sent-up:hover,
.mkt-theme-chips button.mkt-theme-chip--hit.sent-up:focus-visible {
  background: rgba(61, 186, 122, 0.12);
  border-color: var(--bull-border);
}
.mkt-theme-chips button.mkt-theme-chip--hit.sent-down:hover,
.mkt-theme-chips button.mkt-theme-chip--hit.sent-down:focus-visible {
  background: rgba(232, 149, 79, 0.12);
  border-color: var(--bear-border);
}

/* Theme article preview + full reader */
.mkt-theme-preview-slot {
  display: block;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(10px);
  transition:
    max-height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.32s ease,
    transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
}
.mkt-theme-preview-slot--open {
  max-height: min(72vh, 560px);
  opacity: 1;
  transform: translateY(0);
  margin-top: 6px;
}
.mkt-theme-preview-inner {
  max-height: min(64vh, 500px);
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.mkt-theme-preview-inner::-webkit-scrollbar {
  display: none;
}
.mkt-theme-panel {
  border-radius: 10px;
  border: 1px solid rgba(42, 53, 68, 0.55);
  background: linear-gradient(165deg, rgba(18, 24, 32, 0.96) 0%, rgba(12, 18, 26, 0.98) 100%);
  padding: 10px 10px 12px;
  animation: mktThemePanelIn 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.mkt-theme-panel.sent-up {
  border-color: var(--bull-border);
  box-shadow: inset 0 0 0 1px rgba(61, 186, 122, 0.12);
}
.mkt-theme-panel.sent-down {
  border-color: var(--bear-border);
  box-shadow: inset 0 0 0 1px rgba(232, 149, 79, 0.12);
}
@keyframes mktThemePanelIn {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.mkt-theme-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
  padding: 4px 8px 4px 4px;
  border: none;
  border-radius: 8px;
  background: rgba(78, 184, 201, 0.1);
  color: var(--accent-muted);
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
}
.mkt-theme-back:hover,
.mkt-theme-back:focus-visible {
  background: rgba(78, 184, 201, 0.22);
  color: #f2f6fa;
}
.mkt-theme-back-icon {
  font-size: 1rem;
  line-height: 1;
}
.mkt-theme-kicker {
  margin: 0 0 6px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}
.mkt-theme-hero {
  margin: 0 0 10px;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
}
.mkt-theme-hero img {
  display: block;
  width: 100%;
  max-height: 180px;
  object-fit: cover;
}
.mkt-theme-article-title {
  margin: 0 0 8px;
  font-size: 0.92rem;
  line-height: 1.35;
  font-weight: 700;
  color: var(--text);
}
.mkt-theme-preview .mkt-theme-article-title {
  font-size: 0.86rem;
}
.mkt-theme-sent-tag {
  display: inline-block;
  margin: 0 0 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.mkt-theme-sent-tag.sent-up {
  color: var(--bull-muted);
  background: rgba(61, 186, 122, 0.14);
  border: 1px solid var(--bull-border);
}
.mkt-theme-sent-tag.sent-down {
  color: var(--bear-muted);
  background: rgba(232, 149, 79, 0.14);
  border: 1px solid var(--bear-border);
}
.mkt-theme-article-summary {
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--text);
  opacity: 0.92;
}
.mkt-theme-open-hint {
  margin: 10px 0 0;
  font-size: 0.62rem;
  color: var(--accent-muted);
  font-style: italic;
}
.mkt-theme-preview-inner {
  cursor: pointer;
  padding-bottom: 4px;
}
.mkt-theme-ext-link {
  display: inline-block;
  margin-top: 10px;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}
.mkt-theme-ext-link:hover {
  text-decoration: underline;
}

.workspace-market-body {
  position: relative;
}
.workspace-market-body--mkt-reader > :not(.mkt-theme-reader-portal) {
  opacity: 0.12;
  pointer-events: none;
  filter: saturate(0.6) blur(1px);
  transition: opacity 0.35s ease, filter 0.35s ease;
}
.mkt-theme-reader-portal {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  min-height: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.34s ease;
}
.mkt-theme-reader-portal--open {
  opacity: 1;
  pointer-events: auto;
}
.mkt-theme-reader {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  border-radius: 0;
  border: none;
  animation: mktThemeReaderIn 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes mktThemeReaderIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.mkt-theme-reader-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 10px 12px 16px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.mkt-theme-reader-scroll::-webkit-scrollbar {
  display: none;
}
.mkt-theme-reader .mkt-theme-hero img {
  max-height: 220px;
}
.mkt-theme-reader .mkt-theme-article-title {
  font-size: 1rem;
}
.mkt-theme-article-body {
  font-size: 0.8rem;
  line-height: 1.55;
  color: var(--text);
}
.mkt-theme-article-body p {
  margin: 0 0 10px;
}
.mkt-theme-article-body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 8px 0;
}
.mkt-theme-article-body a {
  color: var(--accent);
}
.mkt-theme-loading {
  margin: 0 0 12px;
  font-size: 0.78rem;
  color: var(--muted);
  font-style: italic;
}

.cal-entry-kind {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent);
  margin-right: 4px;
}

/* --- Auth gate (cinematic login) --- */
html.auth-gate-open .page-shell {
  visibility: hidden;
  pointer-events: none;
}
html.auth-gate-handoff .page-shell {
  visibility: visible;
  pointer-events: none;
}
.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 12000;
  overflow: hidden;
  background: #080d12;
}
.auth-gate.hidden {
  display: none;
}
.auth-gate-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #0a1016;
}
.auth-gate-backdrop-video,
.auth-gate-backdrop-poster {
  position: absolute;
  inset: -12%;
  width: 124%;
  height: 124%;
  object-fit: cover;
  transform: scale(1.08);
  filter: brightness(0.55) saturate(1.08);
  transition:
    filter 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.auth-gate-backdrop-poster {
  transform: scale(1.08);
  filter: brightness(0.55) saturate(1.08);
}
.auth-gate-backdrop-vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 90% 70% at 50% 35%, transparent 0%, rgba(8, 13, 18, 0.55) 55%, rgba(8, 13, 18, 0.92) 100%),
    linear-gradient(180deg, rgba(8, 13, 18, 0.35) 0%, rgba(8, 13, 18, 0.85) 100%);
  pointer-events: none;
  transition: opacity 0.85s ease;
}
.auth-gate-handoff .auth-gate-backdrop-video,
.auth-gate-handoff .auth-gate-backdrop-poster {
  filter: blur(0) brightness(0.72) saturate(1.05);
  transform: scale(1.05);
}
.auth-gate-handoff .auth-gate-backdrop-vignette {
  opacity: 0.35;
}
.auth-gate-stage {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 100%;
  padding: 20px 16px;
  box-sizing: border-box;
}
.auth-gate-card {
  width: min(380px, 100%);
  padding: 18px 18px 16px;
  border-radius: 14px;
  border: 1px solid rgba(78, 184, 201, 0.28);
  background: linear-gradient(165deg, rgba(22, 31, 42, 0.88), rgba(12, 18, 24, 0.92));
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow:
    0 20px 48px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(78, 184, 201, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  animation: authCardIn 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition:
    opacity 0.55s ease,
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.auth-gate-card--enter .auth-gate-form-wrap {
  animation: authFormIn 0.5s ease 0.28s both;
}
.auth-gate-leave .auth-gate-card,
.auth-gate-handoff .auth-gate-card {
  opacity: 0;
  transform: translateY(-14px) scale(1.02);
  pointer-events: none;
}
.auth-gate-leave .auth-gate-card {
  animation: authCardOut 0.42s ease forwards;
}
.auth-gate .ws-load-shell--auth {
  width: min(100%, 260px);
  margin: 0 auto 14px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  text-align: center;
}
.auth-gate .ws-load-shell--auth .ws-load-orbit {
  margin-left: auto;
  margin-right: auto;
}
.auth-gate-loader-grid {
  mask-image: radial-gradient(circle at 50% 42%, black 18%, transparent 68%);
}
.auth-gate-hint--oauth {
  margin: 10px 0 0;
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.4;
  text-align: center;
}
.auth-gate-hint--popup {
  margin: 8px 0 0;
  font-size: 0.72rem;
  color: rgba(232, 149, 79, 0.85);
  text-align: center;
}
@media (prefers-reduced-motion: reduce) {
  .auth-gate-backdrop-video {
    display: none;
  }
  .auth-gate-backdrop-video,
  .auth-gate-backdrop-poster,
  .auth-gate-handoff .auth-gate-backdrop-poster {
    transform: none;
    filter: brightness(0.45);
    transition: none;
  }
}
.auth-oauth-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 11px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s, transform 0.06s;
}
.auth-oauth-btn:hover {
  border-color: var(--accent-border);
  background: var(--accent-bg);
}
.auth-oauth-btn:active {
  transform: translateY(1px);
}
.auth-oauth-icon {
  flex: 0 0 auto;
  display: block;
}
/* Brand-true buttons: white Google sheet, Facebook blue. */
.auth-oauth-btn--google {
  background: #fff;
  color: #1f2733;
  border-color: rgba(0, 0, 0, 0.12);
}
.auth-oauth-btn--google:hover {
  background: #f3f5f8;
  border-color: rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}
.auth-oauth-btn--icon {
  width: auto;
  margin: 4px auto 0;
  padding: 12px 14px;
  border-radius: 999px;
}
.auth-oauth-btn--icon .auth-oauth-icon {
  width: 22px;
  height: 22px;
}
.auth-gate-panel--standard {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.auth-gate-error:not(.hidden) {
  margin-top: 10px;
  text-align: center;
  font-size: 0.8rem;
}
.auth-oauth-btn--fb {
  background: #1877f2;
  color: #fff;
  border-color: #1877f2;
}
.auth-oauth-btn--fb:hover {
  background: #166fe0;
  border-color: #166fe0;
  box-shadow: 0 2px 10px rgba(24, 119, 242, 0.35);
}
.auth-gate-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0 14px;
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.auth-gate-divider::before,
.auth-gate-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}
.auth-gate label {
  display: block;
  margin-bottom: 10px;
  font-size: 0.78rem;
  color: var(--muted);
}
.auth-gate input {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.25);
  color: var(--text);
  font: inherit;
}
.auth-gate-form {
  margin-top: 4px;
}
.auth-gate-submit {
  width: 100%;
  margin-top: 12px;
  justify-content: center;
}
.auth-gate-error {
  margin: 8px 0 10px;
  color: var(--bear);
  font-size: 0.82rem;
}
.auth-gate-toggle {
  display: block;
  width: 100%;
  margin-top: 10px;
  text-align: center;
}
.auth-gate-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}
.auth-gate-tab {
  padding: 9px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.auth-gate-tab--active {
  color: var(--text);
  border-color: var(--accent-border);
  background: var(--accent-bg);
}
.auth-gate-hint {
  margin: 0 0 12px;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.45;
}
.auth-gate-bio-btn {
  margin-top: 4px;
}
.drawer-section--auth {
  border-top: 1px solid var(--border);
  padding-top: 14px;
}
.drawer-auth-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.drawer-auth-head .drawer-section-title {
  margin: 0;
}
.drawer-auth-logout {
  font-size: 0.78rem;
}
.drawer-subtitle {
  margin: 14px 0 8px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.drawer-recent-users {
  max-height: 300px;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.18);
}
.drawer-recent-user-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(58, 74, 94, 0.35);
  font-size: 0.82rem;
}
.drawer-recent-user-row:last-child {
  border-bottom: 0;
}
.drawer-recent-user-name {
  font-weight: 600;
  color: var(--text);
}
.drawer-recent-user-email {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 0.75rem;
}
.drawer-recent-user-meta {
  color: var(--accent-muted);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
@keyframes authCardIn {
  from { opacity: 0; transform: translateY(18px) scale(0.96); }
  to { opacity: 1; transform: none; }
}
@keyframes authFormIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
@keyframes authCardOut {
  to { opacity: 0; transform: translateY(-8px) scale(0.98); }
}

/* Auth logo-first splash */
.auth-gate-splash {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  cursor: pointer;
  animation: authCardIn 0.5s ease both;
}
.auth-gate-splash--native {
  cursor: default;
  pointer-events: none;
  min-height: 280px;
}
.auth-gate-splash-logo {
  width: 120px;
  height: 120px;
  object-fit: contain;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.45));
  transition: transform 0.2s ease;
}
.auth-gate-splash-logo-stack {
  position: relative;
  display: block;
  width: 120px;
  height: 120px;
  transform: translateY(-10px) scale(1.24);
}
.auth-gate-splash-logo-stack .auth-gate-splash-canvas,
.auth-gate-splash-logo-stack .brand-logo--video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: screen;
  filter:
    brightness(1.06)
    contrast(1.05)
    drop-shadow(0 0 12px rgba(255, 255, 255, 0.12))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}
.auth-gate-card--native .auth-gate-form-wrap {
  display: none;
}
.auth-gate-splash:hover .auth-gate-splash-logo,
.auth-gate-splash:focus-visible .auth-gate-splash-logo {
  transform: scale(1.04);
}
/* Native shell: keep animated header logo + screen blend during boot/scan */
html.is-native-app .brand-logo-stack.is-animated .auth-gate-splash-canvas,
html.is-native-app .brand-logo-stack.is-animated .brand-logo--video:not([hidden]) {
  mix-blend-mode: screen;
  filter:
    brightness(1.06)
    contrast(1.05)
    drop-shadow(0 0 12px rgba(255, 255, 255, 0.12))
    drop-shadow(0 8px 22px rgba(0, 0, 0, 0.55));
}

/* Footer trade recommendations */
.tf-recs {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tf-rec {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 6px;
  align-items: center;
  padding: 4px 6px;
  border-radius: 8px;
  background: rgba(78, 184, 201, 0.08);
  font-size: 0.68rem;
}
.tf-rec-label {
  font-weight: 700;
  color: var(--accent-muted);
  white-space: nowrap;
}
.tf-rec-reason {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tf-rec-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.tf-rec-actions .btn-sm {
  padding: 2px 6px;
  font-size: 0.62rem;
}

/* Integration health strip */
.rm-integration-health {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.rm-health-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  border: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.2);
}
.rm-health-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--muted);
}
.rm-health--ok .rm-health-dot {
  background: #3dba7a;
}
.rm-health--warn .rm-health-dot {
  background: #e8954f;
}
.rm-health--err .rm-health-dot {
  background: #e05c5c;
}
.auth-gate-tagline {
  margin: 10px 0 0;
  font-size: 0.82rem;
  color: rgba(232, 238, 245, 0.78);
  text-align: center;
  letter-spacing: 0.02em;
}
.auth-gate-kicker {
  margin: 0 0 6px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  text-align: center;
}
.auth-gate-lead {
  margin: 0 0 14px;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--muted);
  text-align: center;
}

/* Chart holding band */
.ca-holding-band {
  cursor: pointer;
}
.ca-holding-band-entry {
  pointer-events: none;
}

/* Schwab clickable positions */
.rm-schwab-pos--click {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin: 0 0 6px;
  padding: 8px 10px;
  border: 1px solid rgba(78, 184, 201, 0.22);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.18);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.rm-schwab-pos--click:hover {
  border-color: rgba(61, 186, 122, 0.45);
  background: rgba(61, 186, 122, 0.08);
}

/* Notifications drawer */
.rm-notifications-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
  max-height: 200px;
  overflow-y: auto;
}
.rm-notif-item {
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(78, 184, 201, 0.16);
  background: rgba(0, 0, 0, 0.15);
  color: inherit;
  font: inherit;
}
.rm-notif-item--active {
  border-color: rgba(212, 162, 74, 0.55);
  background: rgba(212, 162, 74, 0.08);
}
.rm-notif-status {
  min-height: 1.2em;
  margin-bottom: 8px;
}
.rm-notif-item--unread {
  border-color: rgba(61, 186, 122, 0.35);
}
.rm-notif-when {
  display: block;
  margin-top: 4px;
  font-size: 0.65rem;
}

/* Agent debrief — legacy aliases kept for compat */
.agent-debrief-sec h4 {
  margin: 8px 0 4px;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent-muted);
}
.agent-debrief-sec p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.4;
}
.agent-debrief-catalyst {
  white-space: normal;
  line-height: 1.45;
}
.ca-scan-circle {
  position: absolute;
  pointer-events: none;
  border: 2px dashed rgba(78, 184, 201, 0.95);
  background: rgba(78, 184, 201, 0.16);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08);
  z-index: 12;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  aspect-ratio: 1;
}
.ca-scan-regions {
  pointer-events: none;
}
.ca-scan-regions .ca-scan-region {
  pointer-events: all;
}
.ca-scan-menu {
  position: absolute;
  z-index: 30;
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  min-width: 108px;
  padding: 4px;
  border-radius: 12px;
  border: 1px solid rgba(78, 184, 201, 0.42);
  background: rgba(12, 18, 24, 0.92);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.05) inset,
    0 6px 20px rgba(0, 0, 0, 0.45),
    0 0 16px rgba(78, 184, 201, 0.12);
  pointer-events: auto;
  backdrop-filter: blur(10px);
  animation: ca-scan-menu-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes ca-scan-menu-in {
  from {
    opacity: 0;
    transform: translateY(4px) scale(0.94);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.ca-scan-menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: none;
  border-radius: 8px;
  padding: 6px 10px;
  font: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
  color: #c8d8ea;
  background: transparent;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.ca-scan-menu-btn:hover {
  background: rgba(78, 184, 201, 0.18);
  color: #fff;
}
.ca-scan-menu-btn:active {
  transform: scale(0.96);
}
.ca-scan-menu-btn--primary {
  color: #0c1218;
  background: linear-gradient(135deg, rgba(126, 200, 212, 0.95), rgba(78, 184, 201, 0.95));
}
.ca-scan-menu-btn--primary:hover {
  filter: brightness(1.06);
  background: linear-gradient(135deg, rgba(126, 200, 212, 1), rgba(78, 184, 201, 1));
}
.ca-scan-menu-btn--note:hover {
  background: rgba(78, 184, 201, 0.22);
}
.ca-scan-menu-btn--dismiss {
  color: #f0c4a0;
}
.ca-scan-menu-btn--dismiss:hover {
  background: rgba(232, 149, 79, 0.22);
  color: #ffe0c4;
}
.ca-scan-region-fill {
  fill: rgb(78, 184, 201);
  fill-opacity: 0.2;
  stroke: rgb(78, 184, 201);
  stroke-opacity: 0.88;
  stroke-width: 2;
  stroke-dasharray: 5 4;
  pointer-events: all;
  cursor: grab;
  transition: fill-opacity 0.12s ease, stroke-opacity 0.12s ease;
}
.ca-scan-region-fill:active {
  cursor: grabbing;
}
.ca-chart-node--scan {
  pointer-events: all;
}
.ca-chart-node--scan:hover .ca-scan-region-fill {
  animation: ca-scan-hover-glow 0.62s ease-out;
}
@keyframes ca-scan-hover-glow {
  0% {
    fill-opacity: 0.2;
    stroke-opacity: 0.88;
    filter: none;
  }
  16% {
    fill-opacity: 0.46;
    stroke-opacity: 1;
    filter: drop-shadow(0 0 10px rgba(78, 184, 201, 0.55));
  }
  100% {
    fill-opacity: 0.2;
    stroke-opacity: 0.88;
    filter: none;
  }
}

/* Mobile footer journey always visible when chart has context */
body.is-mobile-ws-accordion.is-mobile-snap-chart.is-mobile-chart-pick .footer-trade-journey.tf-active {
  display: flex !important;
}
body.is-mobile-ws-accordion.is-mobile-snap-chart .footer-trade-journey:not(:empty) {
  min-height: 44px;
}

/* ============================================================
   Header FX lite — perf preview (html.header-fx-lite)
   Plain mood video + static logo; no blend/tint/backdrop layers.
   Restore full treatment with ?headerFx=0
   ============================================================ */
html.header-fx-lite .site-header {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.header-fx-lite .header-mood-fx,
html.header-fx-lite .header-bg-fx {
  display: none !important;
  opacity: 0 !important;
}
html.header-fx-lite .site-header.has-header-video::after,
html.header-fx-lite .site-header.has-header-video .header-bg-yt-wrap::after,
html.header-fx-lite .site-header.has-header-video[data-mood].header-treat--soft-light::after,
html.header-fx-lite .site-header.has-header-video.header-bg-extended[data-mood]::after {
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}
html.header-fx-lite .site-header.has-header-video .header-bg-yt-wrap,
html.header-fx-lite .site-header.has-header-video .header-bg-yt-wrap video,
html.header-fx-lite .site-header.has-header-video .header-bg-yt-wrap img,
html.header-fx-lite .site-header.has-header-video[data-mood^="bull"] .header-bg-yt-wrap,
html.header-fx-lite .site-header.has-header-video[data-mood^="bear"] .header-bg-yt-wrap,
html.header-fx-lite .site-header.has-header-video.header-bg-extended[data-mood] .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--soft-light .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--multiply .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--screen .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--overlay .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--color-dodge .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--hard-light .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--aurora .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--ember .header-bg-yt-wrap,
html.header-fx-lite .site-header.header-treat--noir .header-bg-yt-wrap {
  mix-blend-mode: normal !important;
  filter: none !important;
  opacity: 1 !important;
}
html.header-fx-lite .site-header.has-header-video.header-shade-settling::before {
  animation: none !important;
}
html.header-fx-lite .site-header::before {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.38) 0%,
    transparent 100%
  ) !important;
}
html.header-fx-lite .header-treat-chip {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.header-fx-lite .header-mood-copy {
  background: linear-gradient(
    to top,
    rgba(6, 10, 14, 0.42) 0%,
    transparent 100%
  ) !important;
}
@media (max-width: 640px) {
  html.header-fx-lite .header-mood-copy {
    background: none !important;
  }
}
html.header-fx-lite .ws-col-loader {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Logo: static PNG only — no canvas video loop, no screen blend */
html.header-fx-lite .brand-logo--static,
html.header-fx-lite .brand-logo--video,
html.header-fx-lite .brand-logo-stack,
html.header-fx-lite .brand-logo-stack.is-animated .brand-logo--video:not([hidden]),
html.header-fx-lite .site-header[data-mood="bull-3"] .brand-logo--static,
html.header-fx-lite .site-header[data-mood="bull-3"] .brand-logo-stack.is-animated .brand-logo--video:not([hidden]),
html.header-fx-lite .site-header[data-mood="bull-3"] .brand-logo-stack,
html.header-fx-lite .site-header[data-mood="bear-3"] .brand-logo-stack,
html.header-fx-lite .site-header[data-mood="bear-3"] .brand-logo-stack.is-animated {
  mix-blend-mode: normal !important;
  filter: none !important;
}
html.header-fx-lite .brand-logo-stack.is-animated {
  transform: none !important;
}
html.header-fx-lite .brand-logo-stack.is-animated .brand-logo--static {
  opacity: 1 !important;
  visibility: visible !important;
}
html.header-fx-lite .brand-logo-stack.is-animated .brand-logo--video,
html.header-fx-lite .brand-logo--video {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
html.header-fx-lite .site-header[data-mood="bull-3"] .header-inner::before,
html.header-fx-lite .site-header[data-mood="bear-3"] .header-inner::before,
html.header-fx-lite .site-header[data-mood="bull-3"] .brand-logo-stack::before,
html.header-fx-lite .site-header[data-mood="bull-3"] .brand-logo-stack::after {
  display: none !important;
}

/* ============================================================
   Mobile perf pass — compact header, row warm, faster snap
   ============================================================ */
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed {
  --snap-logo-size: 48px;
  --snap-header-inner-min: 48px;
  --snap-header-min: 66px;
  --mobile-header-current: var(--snap-header-min);
  --header-block-h: var(--snap-header-min);
  height: var(--mobile-header-shell-h) !important;
  min-height: var(--mobile-header-shell-h) !important;
  max-height: var(--mobile-header-shell-h) !important;
  padding-top: var(--mobile-safe-top);
  padding-bottom: 4px;
  padding-inline: var(--mobile-header-pad-x);
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  transition: none !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px;
}
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-mood-copy {
  order: 1;
  opacity: 1;
  visibility: visible;
  pointer-events: none;
  position: static;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  align-items: flex-start;
  align-self: center;
  justify-content: center;
  text-align: left;
  background: none;
}
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-inner {
  order: 2;
  flex: 0 0 auto;
  margin-left: auto;
  height: var(--snap-logo-size);
  min-height: var(--snap-logo-size);
  max-height: var(--snap-logo-size);
  transform: none !important;
  transition: none !important;
  align-items: center;
  justify-content: flex-end;
}
html.mobile-perf-active body.is-mobile-ws-accordion.is-mobile-snap-market .site-header .header-inner {
  transform: none !important;
}
html.mobile-perf-active body.is-mobile-ws-accordion .morning-workspace--mobile-snap > .ws-panel:not(.ws-panel--snap-active) {
  content-visibility: auto;
  contain-intrinsic-size: auto 480px;
}
html.mobile-perf-active .ws-panel--warm-pending {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}
html.mobile-perf-active .ws-load-shell--mobile-lite .ws-load-grid,
html.mobile-perf-active .ws-load-shell--mobile-lite .ws-load-orbit,
html.mobile-perf-active .ws-load-shell--mobile-lite .ws-load-scanline,
html.mobile-perf-active .ws-load-shell--mobile-lite .ws-load-dots {
  display: none !important;
}
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed .header-bg.is-active.is-revealed {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
html.mobile-static-mood .header-bg-yt-wrap.is-tier-mobile-static video.header-bg-yt-player,
html.mobile-perf-active .header-bg-yt-wrap.is-tier-mobile-static video.header-bg-yt-player {
  display: none !important;
  visibility: hidden !important;
}
html.mobile-static-mood body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-poster.is-active,
html.mobile-static-mood body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-gif.is-active,
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-poster.is-active,
html.mobile-perf-active body.is-mobile-ws-accordion .site-header.site-header--snap-compact-fixed img.header-bg-gif.is-active {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
.brand-logo-stack.is-animated-css .brand-logo--static {
  opacity: 0 !important;
  visibility: hidden !important;
}
.brand-logo-stack.is-animated-css video.brand-logo--video {
  display: block;
  opacity: 1 !important;
  visibility: visible !important;
}
html.mobile-perf-active body.snap-bumper-transitioning .morning-workspace--mobile-snap > .ws-panel--snap-active {
  transition:
    opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
html.mobile-perf-active .brand-logo-stack.is-animated,
html.mobile-perf-active body.is-mobile-ws-accordion .brand-logo-stack.is-animated {
  transform: none !important;
}
