/* =========================================================================
   Skilli AetherForge OMEGA — glassmorphic + animated cosmic nebula theme
   ========================================================================= */

/* Smart touch feedback — layered ripple (core flash + sonar ring + glow), intent-tinted.
   Compositor-only (transform/opacity) so a touch never costs a layout/paint frame. */
.skilli-ripple {
  position: absolute; border-radius: 50%; pointer-events: none; z-index: 0;
  transform: scale(0); opacity: 1; will-change: transform, opacity;
  background: radial-gradient(circle, rgba(255,255,255,0.62), var(--ripple-tint, rgba(125,255,196,0.42)) 36%, rgba(230,233,242,0.16) 62%, transparent 76%);
  animation: skilliRipple .6s cubic-bezier(.22,.68,.32,1) forwards;
}
.skilli-ripple::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  border: 2px solid var(--ripple-ring, rgba(250, 146, 0,0.7));
  transform: scale(.2); opacity: .9; will-change: transform, opacity;
  animation: skilliRing .64s cubic-bezier(.16,.84,.3,1) forwards;
}
@keyframes skilliRipple { 0% { transform: scale(0); opacity: 1; } 45% { opacity: .5; } 100% { transform: scale(1); opacity: 0; } }
@keyframes skilliRing  { 0% { transform: scale(.2); opacity: .9; } 100% { transform: scale(1.06); opacity: 0; } }
.skilli-pressed { animation: skilliPress .22s cubic-bezier(.3,.7,.4,1); }
@keyframes skilliPress { 40% { transform: scale(.96); } 100% { transform: scale(1); } }
/* Operator's manual link in the orb gallery */
.manual-link { display:inline-block; margin-top:10px; padding:8px 16px; border-radius:999px; font-size:12.5px; font-weight:800; text-decoration:none; color:#04140d; background:linear-gradient(135deg,#15d6a2,#e6e9f2); box-shadow:0 10px 26px -16px rgba(21,214,162,.8); transition:transform .15s, filter .2s; }
.manual-link:hover { transform:translateY(-2px); filter:brightness(1.08); }
/* Voice listening ↔ executing mode toggle (in the voice HUD) */
.voice-exec-toggle { margin-top: 8px; padding: 7px 14px; border-radius: 999px; font-family: var(--font-display); font-weight: 800; font-size: 11px; letter-spacing: .04em; cursor: pointer; color: var(--text-dim); border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.05); transition: color .2s, background .2s, border-color .2s, box-shadow .2s; }
.voice-exec-toggle.is-on { color: #04140d; background: linear-gradient(135deg, #15d6a2, #e6e9f2); border-color: transparent; box-shadow: 0 0 16px -4px var(--neon-cyan); }

/* ===== SPECTACULAR SMART EDGE GLOW — tiered, animated, no "trade now" text =====
   A firing card signals its edge with a FLOWING NEON BORDER (a masked conic
   gradient that sweeps around the rim) + a breathing aura that intensifies by
   tier: Ready (cyan) → Strong (green) → Elite (green+gold). A compact smart
   badge (set in JS) shows the live tier + confidence instead of "trade now". */
.analyzer.is-ready,
.analyzer.is-enter {
  background: linear-gradient(145deg, #0d1a14 0%, #070d0b 100%) !important;
}
/* Static auras — no per-frame box-shadow keyframe (those were a software-renderer
   repaint cost). The spinning neon border + the smart badge carry the energy. */
.analyzer.is-ready  { border-color: rgba(230,233,242,0.78) !important;
  box-shadow: 0 0 0 1.4px rgba(230,233,242,.7), 0 0 30px -6px rgba(230,233,242,.65), 0 0 58px -16px rgba(230,233,242,.42) !important; }
.analyzer.is-enter  { border-color: rgba(45,224,138,0.95) !important;
  box-shadow: 0 0 0 1.7px rgba(45,224,138,.92), 0 0 34px -4px rgba(33,208,122,.72), 0 0 70px -14px rgba(33,208,122,.5) !important; }
.analyzer.is-enter.is-elite { border-color: rgba(125,255,196,1) !important;
  box-shadow: 0 0 0 2px rgba(125,255,196,1), 0 0 44px -2px rgba(33,208,122,.82), 0 0 92px -10px rgba(255,211,106,.6) !important; }
/* Flowing neon border — overrides the faint sheen ::before only while firing.
   Conic gradient masked to a thin ring, rotated for a liquid-light sweep. */
.analyzer.is-ready::before,
.analyzer.is-enter::before {
  content: ""; position: absolute; inset: 0; z-index: 0; border-radius: inherit;
  padding: 2px; pointer-events: none; opacity: .95;
  /* MAGNIFICENT spinning border — a multi-cycle neon conic that races two bright
     light-arcs around the rim, with a drop-shadow so the border itself glows. */
  background: conic-gradient(from 0deg,
    #21d07a, #e6e9f2, #7dffc4, #fa9200,
    #21d07a, #e6e9f2, #7dffc4, #fa9200, #21d07a);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  filter: drop-shadow(0 0 4px rgba(33,208,122,.55));
  animation: edgeBorderSpin 3s linear infinite;
}
.analyzer.is-ready::before {
  background: conic-gradient(from 0deg, #8b93a8, #e6e9f2, #fa9200, #8b93a8, #e6e9f2, #fa9200, #8b93a8);
  filter: drop-shadow(0 0 4px rgba(230,233,242,.5)); opacity: .82;
}
.analyzer.is-enter.is-elite::before {
  background: conic-gradient(from 0deg, #7dffc4, #21d07a, #ffd36a, #e6e9f2, #7dffc4, #21d07a, #ffd36a, #e6e9f2, #7dffc4);
  filter: drop-shadow(0 0 6px rgba(255,211,106,.62)); animation-duration: 1.9s; opacity: 1; padding: 2.4px;
}

/* Smart edge badge — replaces the old "ENTER NOW" banner with live tier + confidence. */
.smart-edge-badge {
  /* !important beats `.analyzer-themed > * { position:relative; z-index:1 }`
     which would otherwise drop this badge into the normal flow. */
  position: absolute !important; top: 9px; right: 11px; z-index: 7 !important;
  display: none; align-items: center;
  padding: 3px 9px; border-radius: 999px; border: 1px solid transparent; white-space: nowrap;
  font-family: var(--font-display); font-weight: 800; font-size: 9.5px; letter-spacing: .06em;
  box-shadow: 0 4px 14px -6px rgba(0,0,0,.6);
}
.analyzer.is-ready .smart-edge-badge,
.analyzer.is-enter .smart-edge-badge { display: inline-flex; }
/* Give the title room so it never runs under the badge while a card glows. */
.analyzer.is-ready header h3,
.analyzer.is-enter header h3 { padding-right: 104px; }

/* ⚡ HIGH-CONFLUENCE COLOUR SWITCH — the premium per-analyzer aura (.analyzer-themed
   ::after) is always-on in the analyzer's theme colour, which MUTED the green/cyan
   "trade-now" switch. Force the aura to the STATE colour while a card is ready/firing
   so the confluence colour change is unmistakable. (More specific than the themed
   aura, so it wins.) */
.analyzer.is-ready::after {
  background: radial-gradient(72% 62% at 50% 38%, rgba(230,233,242,.34), transparent 62%) !important;
  filter: blur(34px) !important; opacity: .85 !important; animation: none !important;
}
.analyzer.is-enter::after {
  background: radial-gradient(80% 70% at 50% 42%, rgba(45,224,138,.46), transparent 60%) !important;
  filter: blur(36px) !important; opacity: .95 !important; animation: none !important;
}
.analyzer.is-enter.is-elite::after {
  background: radial-gradient(85% 75% at 50% 45%, rgba(125,255,196,.55), rgba(255,211,106,.18) 55%, transparent 68%) !important;
}
.smart-edge-badge[data-tier="ready"]  { color: #e6e9f2; background: rgba(230,233,242,.18); border-color: rgba(230,233,242,.55); }
.smart-edge-badge[data-tier="strong"] { color: #04140d; background: linear-gradient(135deg,#21d07a,#6bffb0); }
.smart-edge-badge[data-tier="elite"]  { color: #1a1300; background: linear-gradient(135deg,#7dffc4,#ffd36a); box-shadow: 0 0 16px -2px rgba(255,211,106,.6); }

/* ===== AI MARKET METER — per-analyzer Setup Score + Expected Value + Regime fit ===== */
.amc-meter { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 7px; margin: 8px 0 6px; }
.amc-stat { position: relative; display: grid; gap: 2px; padding: 7px 10px 8px; border-radius: 11px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); min-width: 0; }
.amc-stat small { font-size: 9px; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amc-stat strong { font-family: var(--font-display); font-size: 16px; font-weight: 800; line-height: 1; color: var(--text); }
.amc-stat strong[data-tier="hot"]  { color: #7dffc4; }
.amc-stat strong[data-tier="warm"] { color: #e6e9f2; }
.amc-stat strong[data-tier="mid"]  { color: #d2d6e2; }
.amc-stat strong[data-tier="cool"] { color: var(--text-muted); }
.amc-stat-score { background: linear-gradient(135deg, rgba(250, 146, 0,.08), rgba(230,233,242,.05)); border-color: rgba(250, 146, 0,.22); }
.amc-stat-score[data-amc-tier="hot"]  { border-color: rgba(33,208,122,.45); background: linear-gradient(135deg, rgba(33,208,122,.12), rgba(125,255,196,.05)); }
.amc-stat-score[data-amc-tier="warm"] { border-color: rgba(230,233,242,.4); background: linear-gradient(135deg, rgba(230,233,242,.10), rgba(139, 147, 168,.05)); }
.amc-stat-score[data-amc-tier="mid"]  { border-color: rgba(150,150,162,.32); }
.amc-score-bar { display: block; height: 3px; border-radius: 999px; background: rgba(255,255,255,.08); margin-top: 5px; overflow: hidden; }
.amc-score-bar > i { display: block; height: 100%; width: 0; border-radius: 999px; transition: width .35s ease; background: linear-gradient(90deg, #8b93a8, #fa9200); }
.amc-score-bar > i[data-tier="hot"]  { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.amc-score-bar > i[data-tier="warm"] { background: linear-gradient(90deg, #8b93a8, #e6e9f2); }
.amc-score-bar > i[data-tier="cool"] { background: linear-gradient(90deg, #74747e, #9a9aa2); }
@media (max-width: 720px) { .amc-meter { grid-template-columns: 1fr 1fr; } .amc-stat-score { grid-column: 1 / -1; } }

/* ===== AI CONFLUENCE STACK — per-analyzer signal checklist =====
   Tells the trader WHY the AI is confident: 6 confirmation signals (Trend,
   Regime, Edge, Momentum, Calm, Fire) shown as ✓/· chips with an aligned count. */
.amc-signal-stack { margin: 6px 0 4px; padding: 8px 10px; border-radius: 11px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.08); }
.ass-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.ass-title { font-family: var(--font-display); font-weight: 800; font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: #d9c4c9; }
.ass-count { font-size: 10px; font-weight: 800; padding: 1px 8px; border-radius: 999px; background: rgba(255,255,255,.05); color: var(--text-muted); border: 1px solid rgba(255,255,255,.1); font-variant-numeric: tabular-nums; }
.ass-count[data-strong="true"] { color: #04140d; background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.ass-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.ass-chip { font-family: var(--font-display); font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 3px 7px; border-radius: 999px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.03); color: var(--text-muted); white-space: nowrap; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.ass-chip[data-on="true"] { color: #7dffc4; border-color: rgba(33,208,122,.4); background: rgba(33,208,122,.1); }

/* Smarter ON state for toggles — a clean green ● ACTIVE prefix + bolder label
   when checked, so active automation/state is unmistakable. No animation cost. */
.mini-toggle:has(input:checked) > span { color: #d5ffee; font-weight: 700; }
.mini-toggle:has(input:checked) > span::before { content: "● "; color: #21d07a; text-shadow: 0 0 6px rgba(33,208,122,.6); margin-right: 1px; }

/* ===== REALISTIC TRADING-TERMINAL POLISH =====
   Tabular numerals on every value across the analyzers, radar, win/loss card,
   journal, neural pulse, market meter and AI co-pilot. Digits become fixed-width
   so columns of numbers align like every professional trading screen — instant
   "real terminal" feel with zero layout disruption. */
.analyzer, .ai-opportunity-radar, .win-loss-card, .journal-list,
.neural-edge-pulse, .amc-meter, .analyzer-mc, .analyzer-mini-chart,
.smart-edge-badge, .nep-cp, .aor-chip, .aor-hero, .amc-stat {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}
/* Live-feed pulse dot in the Neural Edge Pulse title — small heartbeat that
   reinforces "this is live data" on every analyzer card. */
.nep-title::before {
  content: "●";
  display: inline-block;
  color: #21d07a; font-size: 9px; vertical-align: 1px;
  text-shadow: 0 0 6px rgba(33,208,122,.7);
  margin-right: 6px;
  animation: nepLiveDot 1.6s ease-in-out infinite;
}
@keyframes nepLiveDot { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nep-title::before { animation: none; } }

/* Smart-matrix readiness dots — live LED on every exec button. */
.btn-sx { position: relative; }
.btn-sx::before {
  content: ""; position: absolute; top: 6px; left: 7px;
  width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.16);
  transition: background .2s ease, box-shadow .2s ease;
}
.btn-sx[data-ready="ready"]::before { background: #21d07a; box-shadow: 0 0 8px rgba(33,208,122,.7); }
.btn-sx[data-ready="close"]::before { background: #ffd36a; box-shadow: 0 0 6px rgba(255,211,106,.6); }
.btn-sx[data-ready="hold"]::before  { background: rgba(255,255,255,0.18); }

/* Smart action highlight — the AI-favoured trade button glows with a ★ AI badge. */
.btn-action.ai-pick { position: relative; border-color: rgba(45,224,138,0.78) !important; box-shadow: 0 0 0 1px rgba(45,224,138,0.45), 0 0 16px -6px rgba(33,208,122,0.55); }
.btn-action.ai-pick::after { content: "★ AI"; position: absolute; top: 3px; right: 4px; font-family: var(--font-display); font-size: 7.5px; font-weight: 800; letter-spacing: .04em; padding: 1px 5px; border-radius: 999px; background: linear-gradient(135deg,#21d07a,#6bffb0); color: #04140d; box-shadow: 0 2px 8px -2px rgba(0,0,0,.5); pointer-events: none; }
/* AI-pick-ready uses a stronger STATIC glow (no per-frame box-shadow animation
   — software renderers repaint these large blurs every frame). */
.btn-action.ai-pick-ready { box-shadow: 0 0 0 1.6px rgba(45,224,138,0.78), 0 0 24px -4px rgba(33,208,122,0.7) !important; }

/* Legibility — soft dark halo behind text inside a lit card. */
.analyzer.is-enter .gauge-v, .analyzer.is-enter .gauge-k, .analyzer.is-enter h3,
.analyzer.is-enter .sub, .analyzer.is-enter .signal, .analyzer.is-enter .smart-feature-strip strong,
.analyzer.is-enter .digit-edge-panel, .analyzer.is-enter .panel-k, .analyzer.is-enter .dlf-quote,
.analyzer.is-enter strong { text-shadow: 0 1px 4px rgba(2,8,5,0.88), 0 0 2px rgba(2,8,5,0.75); }

@keyframes edgeBorderSpin { to { transform: rotate(1turn); } }
@keyframes edgeAuraCyan {
  0%,100% { box-shadow: 0 0 0 1.25px rgba(230,233,242,.5), 0 0 18px -8px rgba(230,233,242,.5), 0 0 40px -18px rgba(230,233,242,.3); }
  50%     { box-shadow: 0 0 0 1.4px rgba(230,233,242,.7), 0 0 30px -6px rgba(230,233,242,.65), 0 0 58px -16px rgba(230,233,242,.42); }
}
@keyframes edgeAuraGreen {
  0%,100% { box-shadow: 0 0 0 1.5px rgba(45,224,138,.6), 0 0 20px -6px rgba(33,208,122,.5), 0 0 46px -18px rgba(33,208,122,.32); }
  50%     { box-shadow: 0 0 0 1.7px rgba(45,224,138,.92), 0 0 34px -4px rgba(33,208,122,.72), 0 0 70px -14px rgba(33,208,122,.5); }
}
@keyframes edgeAuraElite {
  0%,100% { box-shadow: 0 0 0 1.7px rgba(125,255,196,.85), 0 0 26px -4px rgba(33,208,122,.6), 0 0 58px -14px rgba(255,211,106,.42); }
  50%     { box-shadow: 0 0 0 2px rgba(125,255,196,1), 0 0 44px -2px rgba(33,208,122,.82), 0 0 92px -10px rgba(255,211,106,.6); }
}
@media (prefers-reduced-motion: reduce) {
  .analyzer.is-ready, .analyzer.is-enter, .analyzer.is-enter.is-elite,
  .analyzer.is-ready::before, .analyzer.is-enter::before { animation: none; }
}

/* ===== Bloomberg-style snapshot row on analyzer chart panels ===== */
.mini-chart-snapshot {
  display: flex; flex-direction: column; gap: 6px;
  padding: 8px 11px; margin-bottom: 6px; border-radius: 10px;
  background: linear-gradient(180deg, rgba(18,22,32,0.92), rgba(8,11,18,0.94));
  border: 1px solid rgba(150,150,160,0.2);
  font-variant-numeric: tabular-nums;
}
.mini-chart-snapshot .mcs-main { display: flex; align-items: baseline; gap: 10px; }
.mini-chart-snapshot .mcs-stats { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding-top: 5px; border-top: 1px solid rgba(255,255,255,0.06); }
.mini-chart-snapshot .mcs-stat { display: inline-flex; align-items: baseline; gap: 5px; }
.mini-chart-snapshot .mcs-stat i { font-style: normal; font-size: 8.5px; letter-spacing: .1em; color: var(--text-muted); }
.mini-chart-snapshot .mcs-stat b { font-family: var(--font-display); font-weight: 700; font-size: 11.5px; color: var(--text-dim); }
.mini-chart-snapshot .mcs-pair { font-family: var(--font-display); font-weight: 800; font-size: 12px; letter-spacing: .06em; color: var(--text); }
.mini-chart-snapshot .mcs-price { font-family: var(--font-display); font-weight: 800; font-size: 17px; color: var(--text); margin-left: auto; padding: 1px 6px; border-radius: 6px; transition: background .15s, color .15s; }
.mini-chart-snapshot .mcs-price.flash-up { animation: cellFlashUp .55s ease; }
.mini-chart-snapshot .mcs-price.flash-down { animation: cellFlashDown .55s ease; }
@keyframes cellFlashUp { 0% { background: rgba(33,208,122,0.55); color: #04150d; } 100% { background: transparent; color: var(--text); } }
@keyframes cellFlashDown { 0% { background: rgba(139, 147, 168,0.55); color: #fff; } 100% { background: transparent; color: var(--text); } }
.mini-chart-snapshot .mcs-chg { font-weight: 800; font-size: 12px; padding: 1px 8px; border-radius: 999px; }
.mini-chart-snapshot .mcs-chg.up { color: var(--up); background: rgba(33,208,122,0.12); }
.mini-chart-snapshot .mcs-chg.down { color: var(--down); background: rgba(139, 147, 168,0.12); }
.mini-chart-snapshot .mcs-trend { margin-left: auto; font-size: 9px; font-weight: 800; letter-spacing: .12em; padding: 2px 8px; border-radius: 6px; color: var(--text-muted); border: 1px solid rgba(255,255,255,0.1); }
.mini-chart-snapshot .mcs-trend[data-t="uptrend"] { color: var(--up); border-color: rgba(33,208,122,0.4); }
.mini-chart-snapshot .mcs-trend[data-t="downtrend"] { color: var(--down); border-color: rgba(139, 147, 168,0.4); }

/* ===== Bespoke per-analyzer metric grid (strategy-specific terminal KPIs) ===== */
.analyzer-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 6px; margin: -2px 0 8px; }
.amg-cell { display: flex; flex-direction: column; gap: 3px; padding: 8px 9px; border-radius: 9px; min-width: 0; background: linear-gradient(180deg, rgba(18,22,32,0.85), rgba(9,11,17,0.9)); border: 1px solid rgba(150,150,160,0.16); }
.amg-cell .amg-k { font-size: 8px; font-weight: 700; letter-spacing: .1em; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amg-cell .amg-v { font-family: var(--font-display); font-weight: 800; font-size: 14px; color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amg-cell.amg-up .amg-v { color: var(--up); }
.amg-cell.amg-down .amg-v { color: var(--down); }
.amg-cell.amg-up { border-color: rgba(33,208,122,0.32); }
.amg-cell.amg-down { border-color: rgba(139, 147, 168,0.32); }
@media (max-width: 560px) { .analyzer-metric-grid { grid-template-columns: repeat(2, 1fr); } }

/* ===== "Under Rebuild" overlay for admin-disabled analyzers ===== */
.under-rebuild-overlay {
  position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center;
  background: rgba(4,6,12,0.78); backdrop-filter: blur(7px);
  opacity: 0; pointer-events: none; transition: opacity .3s ease;
}
.under-rebuild-overlay.show { opacity: 1; pointer-events: auto; }
.uro-card {
  position: relative; width: min(420px, calc(100vw - 36px)); text-align: center;
  padding: 34px 28px 26px; border-radius: 20px;
  background: radial-gradient(120% 90% at 50% 0%, rgba(46,36,8,0.6), transparent 60%), linear-gradient(180deg, #14110a, #0a0c12);
  border: 1px solid rgba(255,194,75,0.4);
  box-shadow: 0 30px 70px -24px #000, 0 0 40px -10px rgba(255,194,75,0.4);
  transform: translateY(16px) scale(.96); transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.under-rebuild-overlay.show .uro-card { transform: translateY(0) scale(1); }
.uro-close { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; border-radius: 50%; border: none; cursor: pointer; background: rgba(255,255,255,0.08); color: var(--text); font-size: 18px; }
.uro-icon { font-size: 46px; line-height: 1; filter: drop-shadow(0 0 14px rgba(255,194,75,0.5)); }
.uro-tag { margin: 12px auto 6px; display: inline-block; padding: 4px 14px; border-radius: 999px; font-family: var(--font-display); font-weight: 900; font-size: 11px; letter-spacing: .22em; color: #1a1206; background: linear-gradient(135deg, var(--gold), #ff9d42); }
.uro-title { margin: 8px 0 4px; font-family: var(--font-display); font-size: 19px; color: var(--gold); }
.uro-sub { font-size: 13px; color: var(--text-dim); line-height: 1.55; margin: 0; }
.uro-bar { margin-top: 18px; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.uro-bar span { display: block; height: 100%; width: 45%; border-radius: 999px; background: linear-gradient(90deg, var(--gold), #ff9d42); animation: uroBar 1.8s ease-in-out infinite; }
@keyframes uroBar { 0% { margin-left: -45%; } 100% { margin-left: 100%; } }

:root {
  /* ☀ SOLAR HARBOR — yellow #FA9200 + dark grey #1A1D21. No red, no purple.
     Loss/down = cool slate. Main cards = light yellow #FED872. Analyzers = navy
     #202A44 / midnight harbor #9FB8C9. */
  --bg-deep: #1a1d21;       /* dark grey base */
  --bg-mid:  #20242a;
  --bg-violet: #181b1f;
  --bg-indigo: #1a1d21;
  --glass-bg: rgba(26, 29, 33, 0.60);
  --glass-border: rgba(250, 146, 0, 0.22);
  --glass-hi: rgba(255, 255, 255, 0.06);
  --neon-violet: #fa9200;   /* YELLOW — primary accent */
  --neon-blue:   #8b93a8;   /* cool slate — secondary / negative */
  --neon-pink:   #ffb01e;   /* bright yellow */
  --neon-cyan:   #f4ede0;   /* warm white — secondary accent */
  --text: #f4ede0;
  --text-dim: #d8d2c4;
  --text-muted: #9aa0a8;
  --ok:  #4fe39b;
  --warn:#ffc23a;
  --bad: #8b93a8;
  /* Functional trading colours: green = win/up, cool slate = loss/down (no red). */
  --up:   #2ed573;   /* price increase / bullish */
  --down: #8b93a8;   /* price decrease / bearish */
  --gold: #fed872;   /* light yellow — premium / card highlight */
  --info: #ffb01e;   /* neutral data → yellow */
  --purple: #fa9200; /* secondary accent → yellow (purple retired) */
  --godmind-red: #fa9200;
  --godmind-red-deep: #c47a14;
  --godmind-silver: #f4ede0;
  --amber: #fa9200; --amber-bright: #ffb01e; --navy: #202a44; --midnight: #9fb8c9;
  --card-yellow: #fed872;
  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 10px;
  --shadow-glass: 0 22px 60px -20px rgba(0,0,0,0.85), 0 0 0 1px rgba(255,255,255,0.04) inset;
  --font-display: "Rajdhani","Segoe UI",sans-serif;
  --font-body: "Segoe UI",system-ui,sans-serif;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--text);
  background: var(--bg-deep);
  overflow-x: hidden;
  min-height: 100vh;
  line-height: 1.5;
  position: relative;
}
/* ===== Backdrop: drifting aurora + holographic grid (GPU-cheap, no scroll lag) =====
   PERF: the previous version blurred a full-screen layer (filter: blur) AND
   animated background-position — both repaint every frame and caused scroll
   jank/glitching. This version uses soft radial gradients (no filter), animates
   ONLY transform/opacity on its own compositor layer, and the grid is static. */
body::before {
  content: ""; position: fixed; inset: -8%; z-index: -2; pointer-events: none;
  background:
    radial-gradient(44% 52% at 18% 22%, rgba(230,233,242,0.16), transparent 66%),
    radial-gradient(48% 56% at 82% 18%, rgba(250, 146, 0,0.18), transparent 68%),
    radial-gradient(52% 60% at 70% 84%, rgba(230,233,242,0.10), transparent 66%),
    radial-gradient(46% 54% at 24% 80%, rgba(250, 146, 0,0.11), transparent 66%);
  transform: translateZ(0);
  will-change: transform;
  animation: auroraDrift 46s ease-in-out infinite alternate;
}
/* Holographic grid removed entirely — clean obsidian/aurora field only. */
body::after { content: none; display: none; }
@keyframes auroraDrift {
  0%   { transform: translate3d(-2%, -1.5%, 0) scale(1.04); }
  100% { transform: translate3d(2%, 2%, 0) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) { body::before { animation: none; } }

/* ===== Advanced, buttery scrolling =====
   - smooth programmatic/anchor scrolling
   - overscroll contained so a pull-down never triggers a page reload (which would
     drop the live Deriv socket) and never chains to parent scrollers
   - momentum scrolling on touch
   - while the user is actively scrolling we PAUSE the heavy animated backdrops so the
     compositor spends every frame on the scroll gesture itself = zero micro-jank */
html { scroll-behavior: smooth; }
html, body { overscroll-behavior-y: none; }
body { -webkit-overflow-scrolling: touch; }
html.is-scrolling.gm-shed .nebula-layer,
html.is-scrolling.gm-shed .nebula-rays,
html.is-scrolling.gm-shed .nebula-stars { animation-play-state: paused; }
html.is-scrolling.gm-shed body::before { animation-play-state: paused; }
/* ⚡ ADVANCED SCROLLING — while the gesture is live, freeze the Auto Trading
   view's decorative motion + cursor glow so the compositor gives every frame to
   the scroll. Everything resumes ~150ms after the gesture settles. */
html.is-scrolling.gm-shed #view-auto [class*="beam"],
html.is-scrolling.gm-shed #view-auto [class*="shimmer"],
html.is-scrolling.gm-shed #view-auto [class*="aurora"],
html.is-scrolling.gm-shed #view-auto .shf-scan,
html.is-scrolling.gm-shed #view-auto .shf-orbs i,
html.is-scrolling.gm-shed #view-auto .ac-scan-radar,
html.is-scrolling.gm-shed #view-auto .sat-mega-aura,
html.is-scrolling.gm-shed #view-auto .ss-glider,
html.is-scrolling.gm-shed #view-auto .orb { animation-play-state: paused !important; }
html.is-scrolling.gm-shed .ae-spot { opacity: 0 !important; }
html.is-scrolling.gm-shed .ae-tilt { transform: none !important; transition: none !important; }
/* slim, premium scroll-progress indicator pinned to the top edge */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2.5px; z-index: 95;
  transform-origin: 0 50%; transform: scaleX(0); will-change: transform;
  background: linear-gradient(90deg, #8b93a8, #fa9200 52%, #21d07a);
  box-shadow: 0 0 12px rgba(250, 146, 0,0.55);
  pointer-events: none;
}

p,
small,
label,
input,
select,
button,
.sub,
.signal,
.journal-detail-grid strong,
.market-ai-card strong,
.smart-feature-strip strong {
  font-weight: 500;
}

/* ------------------------------------------------------------------
   COSMIC NEBULA — layered animated gradients + neon haze
   ------------------------------------------------------------------ */
.nebula {
  position: fixed; inset: 0;
  z-index: -5;
  background: radial-gradient(ellipse at 50% 120%, #0a0220 0%, #000 85%);
  overflow: hidden;
}
.nebula-layer {
  position: absolute; inset: -25%;
  /* PERF: filter:blur(90px) on three large animated layers was the dominant
     scroll-jank cause — it forced a full-screen offscreen blur pass every
     frame and pinned the page at ~17fps even while idle. The radial gradients
     are already soft (wide transparent falloffs), so the runtime blur is
     dropped entirely; the glow now comes from the soft gradients alone.
     mix-blend-mode:screen was also dropped — over the near-black nebula base it
     looks the same as normal blend but forced the compositor to re-read the
     backdrop on every animated frame, the bulk of the residual idle jank. */
  opacity: 0.9;
  will-change: transform;
}
.layer-1 {
  background:
    radial-gradient(ellipse 55% 45% at 28% 32%, rgba(139, 147, 168, 0.72), transparent 70%),
    radial-gradient(ellipse 45% 40% at 78% 70%, rgba(196, 13, 28, 0.55), transparent 75%),
    radial-gradient(ellipse 60% 50% at 50% 110%, rgba(0, 0, 0, 0.9), transparent 75%);
  animation: drift1 42s ease-in-out infinite alternate;
}
.layer-2 {
  background:
    radial-gradient(ellipse 40% 32% at 70% 18%, rgba(139, 147, 168, 0.45), transparent 70%),
    radial-gradient(ellipse 45% 40% at 18% 78%, rgba(250, 146, 0, 0.4), transparent 75%);
  /* PERF: static (was drift2 55s). Three independently-animating full-screen
     layers competed with the analyzer-card animations for the compositor and
     caused idle stutter; layer-1 keeps the ambient drift, 2 & 3 hold position
     to keep the layered colour depth at zero per-frame cost. */
  opacity: 0.7;
}
.layer-3 {
  background:
    radial-gradient(ellipse 35% 28% at 50% 50%, rgba(250, 146, 0, 0.28), transparent 70%);
  /* PERF: static (was drift3 70s) — see .layer-2. */
  opacity: 0.55;
}
.nebula-rays {
  position: absolute; inset: 0;
  background:
    linear-gradient(120deg, transparent 0%, rgba(250, 146, 0, 0.08) 45%, transparent 55%),
    linear-gradient(60deg, transparent 20%, rgba(139, 147, 168, 0.06) 50%, transparent 80%);
  animation: rayShift 18s linear infinite;
}
.nebula-stars {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(1px 1px at 12% 22%, rgba(255,255,255,0.85), transparent 60%),
    radial-gradient(1px 1px at 47% 68%, rgba(255,255,255,0.7), transparent 60%),
    radial-gradient(1px 1px at 82% 12%, rgba(255,255,255,0.85), transparent 60%),
    radial-gradient(1px 1px at 33% 88%, rgba(255,255,255,0.6), transparent 60%),
    radial-gradient(1px 1px at 66% 44%, rgba(255,255,255,0.75), transparent 60%),
    radial-gradient(1px 1px at 92% 82%, rgba(255,255,255,0.6), transparent 60%),
    radial-gradient(1px 1px at 7% 55%, rgba(255,255,255,0.7), transparent 60%);
  opacity: 0.6;
  animation: twinkle 7s ease-in-out infinite alternate;
}

@keyframes drift1 {
  0%   { transform: translate(0%,0%) rotate(0deg) scale(1); opacity: 0.8; }
  50%  { transform: translate(4%,-3%) rotate(18deg) scale(1.08); opacity: 1; }
  100% { transform: translate(-3%,4%) rotate(-12deg) scale(1.04); opacity: 0.9; }
}
@keyframes drift2 {
  0%   { transform: translate(0,0) scale(1); }
  50%  { transform: translate(-5%,3%) scale(1.1); }
  100% { transform: translate(6%,-2%) scale(1.05); }
}
@keyframes drift3 {
  0%   { transform: translate(0,0) rotate(0deg); opacity: 0.4; }
  50%  { transform: translate(-3%,2%) rotate(30deg); opacity: 0.7; }
  100% { transform: translate(4%,-4%) rotate(-10deg); opacity: 0.5; }
}
@keyframes rayShift {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-30%); }
}
@keyframes twinkle {
  0% { opacity: 0.4; }
  100% { opacity: 0.75; }
}

/* ------------------------------------------------------------------
   GLASS PANELS
   ------------------------------------------------------------------ */
.glass {
  /* ✦ LIQUID GLASS — layered translucency + specular edges + inner depth, with
     ZERO per-frame backdrop-blur (blur on every panel was the old scroll glitch).
     The "wet glass" read comes from a crown highlight, a bright top-edge spec and
     a soft inner floor shadow — all composited once, so scrolling stays buttery. */
  background:
    radial-gradient(135% 90% at 50% -12%, rgba(255,255,255,0.07), transparent 58%),
    linear-gradient(180deg, rgba(22,23,33,0.93), rgba(10,11,17,0.96));
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 -22px 46px -34px rgba(0,0,0,0.92) inset,
    var(--shadow-glass);
  position: relative;
  overflow: hidden;
}
.glass::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    linear-gradient(145deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0) 40%),
    radial-gradient(58% 38% at 86% 4%, rgba(255,255,255,0.08), transparent 62%);
  border-radius: inherit;
}
.glass-inset {
  background: rgba(10, 4, 26, 0.55);
  border: 1px solid rgba(250, 146, 0, 0.18);
  border-radius: var(--radius-md);
  padding: 20px;
}

/* ------------------------------------------------------------------
   HEADER
   ------------------------------------------------------------------ */
.aether-header {
  position: sticky; top: 12px;
  margin: 12px 18px 18px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 18px;
  z-index: 20;
}
.brand { display: flex; align-items: center; gap: 14px; }
.brand-logo { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; filter: drop-shadow(0 0 12px rgba(139, 147, 168,0.75)); }
.brand-title {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.12em;
  font-size: 18px;
}
.brand-title em {
  font-style: normal;
  background: linear-gradient(90deg, var(--neon-violet), var(--neon-pink), var(--neon-blue));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.brand-sub { font-size: 11px; color: var(--text-muted); letter-spacing: 0.1em; text-transform: uppercase; }

.header-actions { display: flex; align-items: center; gap: 12px; }
.voice-orb {
  display: inline-flex; align-items: center; gap: 10px;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.28), rgba(139, 147, 168,0.15));
  border: 1px solid rgba(250, 146, 0,0.45);
  color: var(--text);
  padding: 10px 16px;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-body);
  font-weight: 600;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 0 0 0 rgba(250, 146, 0,0.45);
}
.voice-orb:hover { transform: translateY(-1px); box-shadow: 0 0 24px -2px rgba(250, 146, 0,0.8); }
.voice-orb svg { width: 18px; height: 18px; fill: var(--neon-violet); }
.voice-orb.listening { animation: pulseListen 1.2s ease-in-out infinite; }
@keyframes pulseListen {
  0%,100% { box-shadow: 0 0 0 0 rgba(250, 146, 0,0.7); }
  50% { box-shadow: 0 0 0 16px rgba(250, 146, 0,0); }
}

.chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid var(--glass-border);
  background: rgba(10,4,26,0.6);
}
.chip-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--bad); box-shadow: 0 0 10px currentColor; color: var(--bad); }
.chip-offline .chip-dot { background: var(--bad); color: var(--bad); }
.chip-connecting .chip-dot { background: var(--warn); color: var(--warn); animation: blink 1s infinite; }
.chip-online .chip-dot { background: var(--ok); color: var(--ok); }
@keyframes blink { 50% { opacity: 0.3; } }

.chip-balance {
  text-transform: none; letter-spacing: 0.02em; padding: 6px 14px;
  gap: 8px; font-variant-numeric: tabular-nums;
  background: linear-gradient(135deg, rgba(80, 255, 200, 0.12), rgba(10, 4, 26, 0.7));
  border-color: rgba(80, 255, 200, 0.35);
  box-shadow: 0 0 24px rgba(80, 255, 200, 0.12) inset;
}
.chip-balance .chip-k { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); }
.chip-balance .chip-v { font-family: var(--font-display); font-size: 15px; color: var(--ok); text-shadow: 0 0 8px rgba(80, 255, 200, 0.4); }
.chip-balance .chip-sub { font-size: 11px; color: var(--text-dim); }
.chip-balance[hidden] { display: none; }
.toggle[hidden] { display: none !important; }

/* ------------------------------------------------------------------
   LAYOUT
   ------------------------------------------------------------------ */
.aether-main { max-width: 1400px; margin: 0 auto; padding: 0 18px 80px; display: grid; gap: 22px; }
.platform-hidden { display: none !important; }
section { padding: 26px; }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 16px; gap: 16px; flex-wrap: wrap; }
.section-head h2 { margin: 0; font-family: var(--font-display); font-size: 22px; letter-spacing: 0.1em; }
.section-head small { color: var(--text-muted); max-width: 720px; }
strong,
button,
label,
.metric-v,
.bc-v,
.gauge-v,
.chip,
.signal {
  font-weight: 800;
}

/* ------------------------------------------------------------------
   HERO
   ------------------------------------------------------------------ */
.godmind-hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; padding: 36px; }
.hero-copy h1 { font-family: var(--font-display); font-size: 38px; line-height: 1.15; margin: 0 0 12px; }
.hero-copy p { color: var(--text-dim); margin: 0 0 22px; max-width: 540px; }
.grad-text {
  background: linear-gradient(92deg, var(--neon-violet), var(--neon-pink), var(--neon-cyan));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.metric {
  padding: 14px;
  background: rgba(10,4,26,0.55);
  border: 1px solid rgba(250, 146, 0,0.18);
  border-radius: var(--radius-md);
  display: flex; flex-direction: column; gap: 4px;
}
.metric-k { font-size: 11px; color: var(--text-muted); letter-spacing: 0.1em; text-transform: uppercase; }
.metric-v { font-family: var(--font-display); font-size: 22px; color: var(--neon-violet); }
.metric-note { font-size: 11px; color: var(--text-muted); }

.connection-panel h2 { font-family: var(--font-display); font-size: 18px; letter-spacing: 0.12em; margin: 0 0 14px; }
.connection-panel.glass-inset {
  background: transparent;
  border-color: rgba(230,233,242,0.12);
  box-shadow: none;
}
.godmind-source-controls { display: none !important; }
.connection-panel.is-authorized > :not(.actions):not(.status-line) {
  display: none !important;
}
.connection-panel.is-authorized {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 86px;
}
.connection-panel.is-authorized .actions {
  margin: 0;
}
.connection-panel.is-authorized #connect-btn {
  display: none;
}
.connection-panel.is-authorized #disconnect-btn {
  opacity: 1;
  color: #fff;
  border-color: rgba(139, 147, 168,0.85);
  background: linear-gradient(135deg, rgba(139, 147, 168,0.95), rgba(138,28,58,0.9));
  box-shadow: 0 0 24px rgba(139, 147, 168,0.28);
}
.connection-panel .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.connection-panel .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.connection-panel label { font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; text-transform: uppercase; }
.connection-panel input, .connection-panel select {
  padding: 10px 12px;
  background: rgba(8,2,20,0.7);
  border: 1px solid rgba(250, 146, 0,0.2);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.connection-panel input:focus, .connection-panel select:focus {
  border-color: var(--neon-violet);
  box-shadow: 0 0 0 3px rgba(250, 146, 0,0.25);
}
.connection-panel small { font-size: 10px; color: var(--text-muted); }
.connection-panel small code { background: rgba(250, 146, 0,0.12); padding: 2px 6px; border-radius: 4px; }

/* Personal Access Token (PAT) onboarding helper */
.token-help {
  margin-top: 8px;
  border: 1px solid rgba(230,233,242,0.22);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, rgba(230,233,242,0.06), rgba(250, 146, 0,0.05));
}
.token-help > summary {
  cursor: pointer;
  list-style: none;
  padding: 9px 12px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--neon-cyan);
  letter-spacing: 0.02em;
  user-select: none;
}
.token-help > summary::-webkit-details-marker { display: none; }
.token-help > summary::after { content: " ▸"; color: var(--text-muted); }
.token-help[open] > summary::after { content: " ▾"; }
.token-help[open] > summary { border-bottom: 1px solid rgba(230,233,242,0.16); }
.token-help ol {
  margin: 0;
  padding: 10px 14px 12px 28px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--text-dim);
}
.token-help ol strong { color: var(--text); }
.token-help a { color: var(--neon-cyan); text-decoration: underline; word-break: break-all; }
.toggles { display: flex; flex-direction: column; gap: 9px; margin: 12px 0; }
.toggle {
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 10px;
  min-height: 28px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.toggle input,
.mini-toggle input,
.reinvest-toggle input {
  appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 46px;
  height: 24px;
  margin: 0;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(48,56,74,0.92), rgba(22,27,40,0.96));
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.03);
  cursor: pointer;
  transition: background .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.toggle input::before,
.mini-toggle input::before,
.reinvest-toggle input::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffffff, #dfe2e8);
  box-shadow: 0 2px 5px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.8);
  transition: transform .28s cubic-bezier(.34,1.56,.64,1), background .25s ease;
}
.toggle input:hover,
.mini-toggle input:hover,
.reinvest-toggle input:hover { filter: brightness(1.14); }
.toggle input:checked,
.mini-toggle input:checked,
.reinvest-toggle input:checked {
  border-color: rgba(125,255,196,0.55);
  background: linear-gradient(135deg, #15d6a2 0%, #e6e9f2 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.14), 0 0 16px rgba(21,214,162,0.38), 0 0 7px rgba(21,214,162,0.45);
}
.toggle input:checked::before,
.mini-toggle input:checked::before,
.reinvest-toggle input:checked::before {
  transform: translateX(22px);
  background: linear-gradient(180deg, #ffffff, #e9fff8);
}
.toggle input:active::before,
.mini-toggle input:active::before,
.reinvest-toggle input:active::before { width: 22px; }
.toggle input:focus-visible,
.mini-toggle input:focus-visible,
.reinvest-toggle input:focus-visible {
  outline: 2px solid var(--neon-cyan);
  outline-offset: 3px;
}
.actions { display: flex; gap: 10px; margin-top: 6px; }
.btn-primary, .btn-ghost, .btn-action {
  border: none;
  font-family: var(--font-body);
  font-weight: 900;
  padding: 12px 19px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
  letter-spacing: 0.02em;
}
.btn-primary {
  background: linear-gradient(135deg, var(--neon-violet), #c47a14 45%, var(--neon-blue));
  color: white;
  box-shadow: 0 0 24px -6px rgba(250, 146, 0,0.9);
}
.btn-primary:hover { transform: translateY(-1px); filter: brightness(1.08); }
.btn-primary:disabled, .btn-ghost:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-ghost {
  background: rgba(10,4,26,0.6);
  border: 1px solid rgba(250, 146, 0,0.25);
  color: var(--text);
}
.btn-action {
  border: 1px solid rgba(230,233,242,0.26);
  background:
    linear-gradient(135deg, rgba(230,233,242,0.18), rgba(250, 146, 0,0.2)),
    rgba(8,2,20,0.62);
  color: var(--text);
  box-shadow: 0 0 18px rgba(230,233,242,0.08);
}
.btn-action:hover,
.btn-smart-random:hover,
.digit-distribution-head button:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 24px rgba(230,233,242,0.22), 0 0 34px rgba(250, 146, 0,0.12);
  filter: brightness(1.08);
}
.btn-rise { border-color: rgba(125,255,196,0.38); }
.btn-fall { border-color: rgba(139, 147, 168,0.4); }
.status-line { font-size: 12px; color: var(--text-muted); margin: 12px 0 0; }

/* ------------------------------------------------------------------
   BRIEFING
   ------------------------------------------------------------------ */
.briefing-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.briefing-head h2 { margin: 0; font-family: var(--font-display); font-size: 20px; letter-spacing: 0.1em; }
.pill {
  background: linear-gradient(135deg, rgba(250, 146, 0,0.25), rgba(139, 147, 168,0.15));
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(250, 146, 0,0.35);
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em;
}
.briefing-text { color: var(--text-dim); margin: 0 0 18px; }
.briefing-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.brief-card {
  padding: 14px;
  background: rgba(10,4,26,0.55);
  border: 1px solid rgba(250, 146, 0,0.18);
  border-radius: var(--radius-md);
  display: flex; flex-direction: column; gap: 4px;
}
.bc-k { font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; text-transform: uppercase; }
.bc-v { font-family: var(--font-display); font-size: 20px; }

/* ------------------------------------------------------------------
   MARKET CONDITION AI — multi-factor regime panel
   ------------------------------------------------------------------ */
.market-ai { border-color: rgba(230,233,242,0.26); }
.market-ai-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 1.4fr;
  gap: 14px;
  align-items: stretch;
}
.mc-regime-card {
  --mc-color: var(--neon-violet);
  grid-row: span 2;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 6px 14px;
  align-items: center;
  padding: 16px 18px;
  border-radius: var(--radius-md);
  border: 1px solid color-mix(in srgb, var(--mc-color) 45%, transparent);
  background:
    radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--mc-color) 16%, transparent), transparent 60%),
    rgba(8,4,20,0.6);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.03) inset, 0 18px 40px -24px var(--mc-color);
  transition: border-color .4s, box-shadow .4s;
}
.mc-emoji { font-size: 40px; grid-row: span 2; line-height: 1; filter: drop-shadow(0 0 12px color-mix(in srgb, var(--mc-color) 60%, transparent)); }
.mc-regime-text { display: flex; flex-direction: column; gap: 3px; }
.mc-regime-text strong { font-family: var(--font-display); font-size: 22px; color: var(--text); letter-spacing: 0.01em; }
.mc-regime-text strong { color: var(--mc-color); }
.mc-regime-text small { font-size: 11.5px; color: var(--text-dim); line-height: 1.45; }
.mc-conf { grid-column: 2; display: flex; align-items: baseline; gap: 8px; }
.mc-conf strong { font-family: var(--font-display); font-size: 26px; color: var(--mc-color); }
.mc-conf small { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); }
.mc-factors { display: flex; flex-direction: column; gap: 9px; justify-content: center; }
.mc-factor {
  display: grid;
  grid-template-columns: 130px 1fr 132px;
  align-items: center;
  gap: 12px;
}
.mc-f-k { font-size: 11.5px; color: var(--text-dim); white-space: nowrap; }
.mc-f-bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.06); overflow: hidden; }
.mc-f-bar > span {
  display: block; height: 100%; width: 0%;
  border-radius: 999px;
  background: var(--neon-violet);
  transition: width .5s cubic-bezier(.2,.8,.2,1), background .4s;
}
.mc-f-v { font-size: 11px; color: var(--text-muted); text-align: right; white-space: nowrap; }
.mc-strategies { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 4px; border-top: 1px dashed rgba(250, 146, 0,0.18); }
.mc-s-k { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); }
.mc-s-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.mc-chip {
  font-size: 12px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgba(250, 146, 0,0.12);
  border: 1px solid rgba(250, 146, 0,0.3);
  color: var(--text-dim);
}
.mc-chip b { color: var(--neon-cyan); font-weight: 700; }
@media (max-width: 900px) {
  .market-ai-grid { grid-template-columns: 1fr; }
  .mc-regime-card { grid-row: auto; }
  .mc-factor { grid-template-columns: 110px 1fr 96px; gap: 8px; }
}

/* Smart-execute fire pulse — used by the per-analyzer Smart Execute buttons. */
@keyframes sd-fire {
  0% { box-shadow: 0 0 0 0 rgba(125,255,196,0.5); }
  60% { box-shadow: 0 0 0 14px rgba(125,255,196,0); }
  100% { box-shadow: 0 0 0 0 rgba(125,255,196,0); }
}

/* ------------------------------------------------------------------
   SMART DECISION BRAIN
   ------------------------------------------------------------------ */
.smart-brain {
  display: grid;
  gap: 14px;
  border-color: rgba(230,233,242,0.28);
  background:
    linear-gradient(135deg, rgba(8,2,20,0.58), rgba(18,6,52,0.5)),
    radial-gradient(circle at 20% 0%, rgba(230,233,242,0.14), transparent 46%),
    radial-gradient(circle at 90% 20%, rgba(250, 146, 0,0.12), transparent 42%);
}
.brain-grid {
  display: grid;
  grid-template-columns: 1.5fr 0.75fr 1fr;
  gap: 12px;
}
.brain-core,
.brain-score,
.brain-pick,
.brain-gates span {
  border: 1px solid rgba(230,233,242,0.16);
  border-radius: var(--radius-md);
  background: rgba(8,2,20,0.52);
}
.brain-core,
.brain-score,
.brain-pick {
  min-width: 0;
  padding: 14px;
}
.brain-core span,
.brain-score span,
.brain-pick span,
.brain-gates span {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.brain-core strong,
.brain-score strong,
.brain-pick strong {
  display: block;
  margin-top: 4px;
  font-family: var(--font-display);
  color: var(--neon-cyan);
  letter-spacing: 0;
}
.brain-score strong {
  font-size: 34px;
  line-height: 1;
}
.brain-core p,
.brain-score small,
.brain-pick small {
  margin: 8px 0 0;
  color: var(--text-dim);
  font-size: 12px;
}
.brain-gates {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.brain-gates span {
  padding: 8px 10px;
  color: var(--text-dim);
}
.master-automation-panel {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(125,255,196,0.18);
  border-radius: var(--radius-md);
  background:
    linear-gradient(135deg, rgba(6,22,22,0.58), rgba(18,6,52,0.42)),
    radial-gradient(circle at 15% 0%, rgba(125,255,196,0.12), transparent 48%);
  box-shadow: 0 0 36px rgba(230,233,242,0.08) inset;
}
.master-automation-panel .toggle,
.trade-type-switches .mini-toggle {
  border-color: rgba(230,233,242,0.22);
  background:
    linear-gradient(135deg, rgba(230,233,242,0.08), rgba(250, 146, 0,0.1)),
    rgba(8,2,20,0.46);
  box-shadow: 0 0 18px rgba(230,233,242,0.05) inset;
}
.compact-field {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 9px 10px;
  border: 1px solid rgba(230,233,242,0.16);
  border-radius: var(--radius-sm);
  background: rgba(8,2,20,0.48);
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.compact-field input,
.compact-field select {
  width: 100%;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(250, 146, 0,0.24);
  border-radius: 8px;
  background: rgba(5,2,14,0.76);
  color: var(--text);
  font-weight: 800;
}

/* ------------------------------------------------------------------
   CONSTELLATION
   ------------------------------------------------------------------ */
.constellation canvas {
  width: 100%; height: 280px;
  background: radial-gradient(ellipse at center, rgba(30, 10, 70, 0.35), transparent 80%);
  border-radius: var(--radius-md);
  display: block;
}
.constellation-legend {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px;
  font-size: 11px; color: var(--text-muted);
}
.constellation-legend .led {
  display: inline-flex; align-items: center; gap: 6px;
}
.constellation-legend .led::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--c, var(--neon-violet));
  box-shadow: 0 0 10px var(--c, var(--neon-violet));
}

/* ------------------------------------------------------------------
   ANALYZER GRID
   ------------------------------------------------------------------ */
.analyzer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  padding: 0;
  position: relative;
  min-height: 60px;
}
.analyzer-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 18px 22px;
  background: rgba(10,4,26,0.55);
  border: 1px dashed rgba(250, 146, 0,0.35);
  border-radius: var(--radius-md);
  font-size: 13px;
  color: var(--text-dim);
  text-align: center;
}
.analyzer-grid:has(.analyzer:not([hidden])) .analyzer-empty { display: none; }
.analyzer[hidden] { display: none !important; }
.orb.admin-disabled {
  opacity:.35;
  filter:grayscale(.8);
  cursor:not-allowed;
}
.analyzer.admin-disabled {
  opacity:.58;
  filter:grayscale(.35);
}
.analyzer.admin-disabled::after {
  content:"Disabled by admin";
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,127,147,.45);
  background:rgba(255,127,147,.12);
  color:#ffd1d8;
  font:800 10px/1 var(--font-display);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.analyzer {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 13px;
  border-radius: 18px;
}
.analyzer[data-analyzer="rise_fall"]   { border-color: rgba(60,75,90,0.55); background: linear-gradient(145deg, rgba(16,18,22,0.92), rgba(6,7,10,0.88)); }
.analyzer[data-analyzer="over_under"]  { border-color: rgba(70,68,82,0.55); background: linear-gradient(145deg, rgba(18,17,22,0.92), rgba(7,7,10,0.88)); }
.analyzer[data-analyzer="streak"]      { border-color: rgba(48,72,60,0.55); background: linear-gradient(145deg, rgba(14,18,16,0.92), rgba(6,8,7,0.9)); }
.analyzer[data-analyzer="matches"]     { border-color: rgba(50,66,84,0.55); background: linear-gradient(145deg, rgba(14,16,22,0.92), rgba(6,7,10,0.9)); }
.analyzer[data-analyzer="asians"]      { border-color: rgba(80,74,52,0.5); background: linear-gradient(145deg, rgba(20,18,14,0.92), rgba(8,7,5,0.9)); }
.analyzer[data-analyzer="accumulator"] { border-color: rgba(56,80,56,0.52); background: linear-gradient(145deg, rgba(14,18,15,0.92), rgba(6,8,7,0.9)); }
.analyzer[data-analyzer="vanilla"]     { border-color: rgba(82,76,60,0.5); background: linear-gradient(145deg, rgba(20,18,14,0.92), rgba(8,7,6,0.9)); }
.analyzer[data-analyzer="even_odd"]    { border-color: rgba(52,76,72,0.55); background: linear-gradient(145deg, rgba(14,18,18,0.92), rgba(6,8,8,0.9)); }
.analyzer::before {
  content: "";
  position: absolute; inset: 0;
  border-radius: inherit;
  background: linear-gradient(160deg, rgba(255,255,255,0.04) 0%, transparent 40%);
  pointer-events: none;
}
.analyzer header h3 { margin: 0; font-family: var(--font-display); font-size: 15px; letter-spacing: 0.08em; }
.analyzer header .sub { font-size: 11px; color: var(--text-muted); }
.analyzer header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 10px;
  align-items: start;
}
.analyzer header .sub,
.trade-type-switches {
  grid-column: 1 / -1;
}

.automation-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(230, 233, 242, 0.16);
  border-radius: var(--radius-sm);
  background: rgba(8, 2, 20, 0.42);
}
.automation-panel select,
.automation-panel input {
  width: 100%;
}
.next-trade-card {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(125, 255, 196, 0.2);
  border-radius: var(--radius-sm);
  background: rgba(6, 22, 22, 0.45);
}
.next-trade-card[hidden] { display: none; }
.next-trade-card span,
.next-trade-card small {
  color: var(--text-muted);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.next-trade-card strong {
  color: var(--neon-cyan);
  font-family: var(--font-display);
  letter-spacing: 0.04em;
}
.next-trade-card.is-loading {
  border-color: rgba(125, 255, 196, 0.58);
  box-shadow: 0 0 22px rgba(125, 255, 196, 0.16);
}
.journal .next-trade-card {
  margin-bottom: 12px;
}

/* Smart AI Automation toggle button per analyzer */
.btn-smart-ai {
  align-self: flex-start;
  padding: 7px 14px;
  font-size: 10px;
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid rgba(139, 147, 168, 0.4);
  border-radius: 999px;
  background: rgba(139, 147, 168, 0.1);
  color: rgba(139, 147, 168, 0.8);
  cursor: pointer;
  transition: all 0.3s ease;
}
.btn-smart-ai:hover {
  background: rgba(139, 147, 168, 0.2);
  box-shadow: 0 0 16px rgba(139, 147, 168, 0.3);
}
.btn-smart-ai.active {
  background: linear-gradient(135deg, rgba(139, 147, 168, 0.35), rgba(196, 13, 28, 0.25));
  border-color: rgba(139, 147, 168, 0.8);
  color: #fff;
  box-shadow: 0 0 20px rgba(139, 147, 168, 0.5), 0 0 40px rgba(196, 13, 28, 0.2);
  animation: smartAIPulse 2s ease-in-out infinite;
}
.trade-type-switches {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}
.mini-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px;
  border: 1px solid rgba(139, 147, 168, 0.28);
  border-radius: 999px;
  background: rgba(139, 147, 168, 0.08);
  color: var(--text-dim);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.mini-toggle input,
.reinvest-toggle input {
  width: 36px;
  height: 20px;
}
.mini-toggle input::before,
.reinvest-toggle input::before {
  width: 14px;
  height: 14px;
}
.mini-toggle input:checked::before,
.reinvest-toggle input:checked::before { transform: translateX(16px); }
.mini-toggle input:active::before,
.reinvest-toggle input:active::before { width: 17px; }
@keyframes smartAIPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(139, 147, 168, 0.5); }
  50% { box-shadow: 0 0 30px rgba(139, 147, 168, 0.8), 0 0 50px rgba(196, 13, 28, 0.3); }
}
.analyzer-body { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gauge {
  display: flex; flex-direction: column; gap: 2px;
  background: rgba(10,4,26,0.6);
  border: 1px solid rgba(250, 146, 0,0.15);
  border-radius: var(--radius-sm);
  padding: 10px;
}
.gauge-v { font-family: var(--font-display); font-size: 18px; color: var(--neon-cyan); }
.gauge-k { font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.08em; }
.signal {
  background: rgba(10,4,26,0.5);
  border-left: 3px solid var(--neon-violet);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--text-dim);
  margin: 0;
}
.signal.ok { border-left-color: var(--ok); color: var(--text); }
.signal.warn { border-left-color: var(--warn); }
.signal.bad { border-left-color: var(--bad); }
.edge-stack {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.edge-stack div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(255, 211, 106, 0.18);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(135deg, rgba(255,211,106,0.1), rgba(8,2,20,0.62)),
    radial-gradient(circle at top right, rgba(230,233,242,0.12), transparent 62%);
}
.edge-stack span {
  display: block;
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.edge-stack strong {
  display: block;
  margin-top: 3px;
  font-family: var(--font-display);
  font-size: 13px;
  color: var(--text-dim);
  letter-spacing: 0;
  font-weight: 900;
}
.edge-stack strong.is-hot { color: var(--ok); text-shadow: 0 0 10px rgba(125,255,196,0.35); }
.edge-stack strong.is-watch { color: var(--warn); }
.analyzer-execution-panel {
  display: grid;
  /* Fields ride in one compact row; the (tall) Live Market Desk takes the FULL
     width on its own row below. align-items:start is load-bearing: with the
     next-gen desk in the same grid, `stretch` blew the stake/ticks inputs up to
     200px+ tall to match the desk's height. */
  grid-template-columns: minmax(145px, 1.4fr) minmax(86px, 1fr) minmax(76px, 0.9fr);
  gap: 8px;
  align-items: start;
}
.analyzer-execution-panel > .market-ai-panel { grid-column: 1 / -1; }
.analyzer-execution-panel label { align-content: start; }
.analyzer-execution-panel label,
.market-ai-panel {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 9px 10px;
  border: 1px solid rgba(230,233,242,0.16);
  border-radius: var(--radius-sm);
  background: rgba(8,2,20,0.48);
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.analyzer-execution-panel select,
.analyzer-execution-panel input {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(250, 146, 0,0.22);
  border-radius: 7px;
  background: rgba(5,2,14,0.7);
  color: var(--text);
}
.market-ai-panel {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-content: start;
}
.market-ai-panel > span {
  grid-column: 1 / -1;
}

/* Per-analyzer Market Condition AI strip + smart action buttons */
.analyzer-mc {
  --amc-color: var(--neon-violet);
  --amc-fit-color: var(--neon-cyan);
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 10px 0 4px;
}
.amc-pick {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-dim);
  padding: 6px 11px;
  border-radius: var(--radius-sm);
  background: rgba(250, 146, 0,0.08);
  border: 1px solid rgba(250, 146, 0,0.2);
}
.amc-pick[data-state="ready"] { color: var(--ok); border-color: rgba(125,255,196,0.4); background: rgba(125,255,196,0.08); }
/* 5-button smart execution matrix */
.amc-smart-matrix {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}
.btn-sx {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 6px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(250, 146, 0,0.28);
  background: linear-gradient(165deg, rgba(20,12,42,0.7), rgba(8,4,20,0.6));
  color: var(--text);
  cursor: pointer;
  text-align: center;
  font-family: var(--font-display);
  transition: transform .16s, border-color .25s, box-shadow .25s, background .25s;
}
.btn-sx b { font-size: 12px; font-weight: 700; white-space: nowrap; }
.btn-sx small { font-size: 9px; color: var(--text-muted); }
.btn-sx .se-conf {
  font-size: 12px; font-weight: 700; color: var(--text-muted);
  padding: 0 7px; border-radius: 999px; background: rgba(255,255,255,0.06);
  transition: color .3s, background .3s;
}
.btn-sx .se-conf.is-warm { color: var(--warn); background: rgba(255,211,106,0.12); }
.btn-sx .se-conf.is-ready { color: var(--ok); background: rgba(125,255,196,0.16); }
.btn-sx:hover { transform: translateY(-2px); }
.btn-sx:active { transform: translateY(0) scale(.97); }
.btn-sx.is-firing { animation: sd-fire .9s ease; }
.sx-smart:hover  { border-color: var(--ok); box-shadow: 0 12px 26px -18px var(--ok); }
.sx-apex   { border-color: rgba(255,211,106,0.4); } .sx-apex:hover { border-color: var(--warn); box-shadow: 0 12px 26px -18px var(--warn); }
.sx-quick  { border-color: rgba(230,233,242,0.4); } .sx-quick:hover { border-color: var(--neon-cyan); box-shadow: 0 12px 26px -18px var(--neon-cyan); }
.sx-sniper { border-color: rgba(250, 146, 0,0.4); } .sx-sniper:hover { border-color: var(--neon-pink); box-shadow: 0 12px 26px -18px var(--neon-pink); }
.sx-guard  { border-color: rgba(139, 147, 168,0.4); } .sx-guard:hover { border-color: var(--neon-blue); box-shadow: 0 12px 26px -18px var(--neon-blue); }
.sx-premium { border-color: rgba(255,196,90,0.5); background: linear-gradient(165deg, rgba(46,36,8,0.6), rgba(20,12,4,0.6)); }
.sx-premium b { color: #ffd36a; }
.sx-premium:hover { border-color: #ffd36a; box-shadow: 0 12px 28px -16px rgba(255,196,90,0.7); }
/* ── 5 new execution profiles — each a distinct accent ── */
.sx-surge    { border-color: rgba(255,138,76,0.45); }
.sx-surge b  { color: #ff9d5c; }
.sx-surge:hover    { border-color: #ff8a4c; box-shadow: 0 12px 26px -16px rgba(255,138,76,0.7); }
.sx-fortress { border-color: rgba(139, 147, 168,0.45); background: linear-gradient(165deg, rgba(10,20,42,0.6), rgba(6,11,24,0.6)); }
.sx-fortress b { color: #d2d6e2; }
.sx-fortress:hover { border-color: #ff7a86; box-shadow: 0 12px 26px -16px rgba(139, 147, 168,0.65); }
.sx-phantom  { border-color: rgba(250, 146, 0,0.5); background: linear-gradient(165deg, rgba(26,12,46,0.6), rgba(13,6,26,0.6)); }
.sx-phantom b { color: #d9c4c9; }
.sx-phantom:hover  { border-color: #fa9200; box-shadow: 0 12px 28px -16px rgba(250, 146, 0,0.7); }
.sx-overdrive { border-color: rgba(255,107,124,0.5); background: linear-gradient(165deg, rgba(46,10,18,0.6), rgba(22,6,10,0.6)); }
.sx-overdrive b { color: #8b93a8; }
.sx-overdrive:hover { border-color: #ff6b7c; box-shadow: 0 12px 28px -16px rgba(255,107,124,0.7); }
.sx-zen      { border-color: rgba(99,246,183,0.45); }
.sx-zen b    { color: #7dffc4; }
.sx-zen:hover      { border-color: #63f6b7; box-shadow: 0 12px 26px -16px rgba(99,246,183,0.65); }
/* ── High-frequency digit execution row (digit analyzers only) ── */
.amc-hf-label {
  margin-top: 9px; font-family: var(--font-display); font-weight: 800; font-size: 9.5px;
  letter-spacing: .14em; text-transform: uppercase; color: #e6e9f2;
  display: flex; align-items: center; gap: 6px;
}
.amc-hf-label::before, .amc-hf-label::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, rgba(230,233,242,0.35), transparent); }
.amc-hf-matrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 6px; }
@media (max-width: 720px) { .amc-hf-matrix { grid-template-columns: repeat(2, 1fr); } }
.hf-rapid     { border-color: rgba(230,233,242,0.45); } .hf-rapid b     { color: #e6e9f2; } .hf-rapid:hover     { border-color: #e6e9f2; box-shadow: 0 12px 26px -16px rgba(230,233,242,0.7); }
.hf-blitz     { border-color: rgba(255,138,76,0.45); } .hf-blitz b     { color: #ff9d5c; } .hf-blitz:hover     { border-color: #ff8a4c; box-shadow: 0 12px 26px -16px rgba(255,138,76,0.7); }
.hf-pulse     { border-color: rgba(250, 146, 0,0.45); } .hf-pulse b     { color: #ff8a92; } .hf-pulse:hover     { border-color: #fa9200; box-shadow: 0 12px 26px -16px rgba(250, 146, 0,0.7); }
.hf-digisnipe { border-color: rgba(255,211,106,0.5); }  .hf-digisnipe b { color: #ffd36a; } .hf-digisnipe:hover { border-color: #ffd36a; box-shadow: 0 12px 26px -16px rgba(255,211,106,0.7); }
.hf-cyclone   { border-color: rgba(250, 146, 0,0.5); }  .hf-cyclone b   { color: #d9c4c9; } .hf-cyclone:hover   { border-color: #fa9200; box-shadow: 0 12px 28px -16px rgba(250, 146, 0,0.7); }

/* ===== NEURAL EDGE PULSE — per-analyzer live AI strip ===== */
.neural-edge-pulse {
  margin: 9px 0; padding: 9px 11px;
  border: 1px solid rgba(250, 146, 0,0.3);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(22,16,42,0.72), rgba(10,12,22,0.82));
  display: grid; gap: 7px;
}
.nep-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nep-title { font-family: var(--font-display); font-weight: 800; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #d9c4c9; }
.nep-consensus { font-size: 9.5px; font-weight: 700; letter-spacing: .05em; color: var(--text-muted); padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); white-space: nowrap; }
.nep-consensus[data-strong="true"] { color: #04140d; background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.nep-body { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.nep-spark { display: flex; align-items: flex-end; gap: 2px; height: 34px; min-width: 0; }
.nep-spark i { flex: 1 1 0; min-width: 2px; border-radius: 2px 2px 0 0; background: rgba(150,150,160,0.35); transition: height .25s ease; }
.nep-spark i.cool { background: linear-gradient(180deg, rgba(160,160,172,0.7), rgba(150,150,160,0.2)); }
.nep-spark i.mid  { background: linear-gradient(180deg, #8b93a8, rgba(139, 147, 168,0.25)); }
.nep-spark i.warm { background: linear-gradient(180deg, #e6e9f2, rgba(230,233,242,0.25)); }
.nep-spark i.hot  { background: linear-gradient(180deg, #7dffc4, #21d07a); box-shadow: 0 0 6px rgba(33,208,122,0.5); }
.nep-readout { display: grid; justify-items: end; gap: 1px; white-space: nowrap; }
.nep-conf { font-family: var(--font-display); font-size: 18px; font-weight: 800; line-height: 1; color: var(--neon-cyan); }
.nep-conf[data-tier="hot"]  { color: #7dffc4; text-shadow: 0 0 12px rgba(33,208,122,0.5); }
.nep-conf[data-tier="warm"] { color: #e6e9f2; }
.nep-conf[data-tier="mid"]  { color: #d2d6e2; }
.nep-conf[data-tier="cool"] { color: var(--text-dim); }
.nep-traj { font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.nep-traj[data-t="up"]   { color: #21d07a; }
.nep-traj[data-t="down"] { color: #8b93a8; }
.nep-traj[data-t="flat"] { color: var(--text-muted); }
.nep-window {
  font-size: 10.5px; font-weight: 700; letter-spacing: .03em; text-align: center;
  padding: 4px 8px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03); color: var(--text-dim);
}
.nep-window[data-state="open"]  { color: #04140d; background: linear-gradient(135deg, #21d07a, #6bffb0); border-color: transparent; animation: nepPulse 1.5s ease-in-out infinite; }
.nep-window[data-state="armed"] { color: #e6e9f2; border-color: rgba(230,233,242,0.4); background: rgba(230,233,242,0.08); }
.nep-window[data-state="soon"]  { color: #ffd36a; border-color: rgba(255,211,106,0.35); background: rgba(255,211,106,0.07); }
@keyframes nepPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(33,208,122,0.35); } 50% { box-shadow: 0 0 16px 2px rgba(33,208,122,0.5); } }
@media (prefers-reduced-motion: reduce) { .nep-window[data-state="open"] { animation: none; } }
/* AI Co-Pilot row inside the Neural Edge Pulse */
.nep-copilot { display: grid; grid-template-columns: 1fr 1.35fr 1fr; gap: 6px; }
.nep-cp { display: grid; gap: 1px; padding: 5px 8px; border-radius: 8px; text-align: left; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); min-width: 0; }
.nep-cp small { font-size: 8.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nep-cp strong { font-family: var(--font-display); font-size: 13px; font-weight: 800; color: var(--text); line-height: 1.1; }
.nep-cp strong[data-tier="hot"]  { color: #7dffc4; }
.nep-cp strong[data-tier="warm"] { color: #e6e9f2; }
.nep-cp strong[data-tier="mid"]  { color: #d2d6e2; }
.nep-cp strong[data-tier="cool"] { color: var(--text-muted); }
.nep-cp-stake { cursor: pointer; border-color: rgba(255,211,106,0.3); background: rgba(255,211,106,0.06); transition: transform .12s ease, border-color .2s ease; }
.nep-cp-stake:hover { transform: translateY(-1px); border-color: #ffd36a; }
.nep-cp-stake:active { transform: translateY(0) scale(.98); }
.nep-cp-stake strong { color: #ffd36a; }

/* ===== AI BRAIN OMEGA — flagship live-intelligence module ===== */
/* (Legacy `.ai-brain` header CSS removed — that component was retired; this
    block is now the sole owner of `.ai-brain` / `.aib-*` styling.) */
.ai-brain {
  --m1:#fa9200; --m2:#e6e9f2; --mb:rgba(250, 146, 0,0.34); --mg:rgba(250, 146, 0,0.55); --mgs:rgba(250, 146, 0,0.34);
  margin: 0 0 16px; padding: 14px 15px 13px;
  border: 1px solid var(--mb); border-radius: 16px;
  background:
    radial-gradient(130% 90% at 0% 0%, rgba(250, 146, 0,0.14), transparent 58%),
    radial-gradient(120% 120% at 100% 0%, rgba(230,233,242,0.08), transparent 60%),
    linear-gradient(160deg, #08060f, #030307 72%);
  position: relative; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 18px 44px -28px var(--mg), inset 0 1px 0 rgba(255,255,255,0.04);
  transition: box-shadow .5s ease, border-color .5s ease;
}
.ai-brain::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; z-index: 0;
  background: linear-gradient(115deg, transparent 38%, var(--mgs) 50%, transparent 62%);
  background-size: 280% 100%; opacity: .55; mix-blend-mode: screen;
  animation: aibSheen 6.5s linear infinite;
}
@keyframes aibSheen { 0% { background-position: 180% 0; } 100% { background-position: -120% 0; } }
.ai-brain[data-mood="hot"]  { --m1:#21d07a; --m2:#7dffc4; --mb:rgba(125,255,196,0.46); --mg:rgba(33,208,122,0.6); --mgs:rgba(125,255,196,0.4); }
.ai-brain[data-mood="info"] { --m1:#e6e9f2; --m2:#d2d6e2; --mb:rgba(230,233,242,0.42); --mg:rgba(230,233,242,0.5); --mgs:rgba(230,233,242,0.4); }
.ai-brain[data-mood="cool"] { --m1:#8b93a8; --m2:#ffb35a; --mb:rgba(255,128,146,0.44); --mg:rgba(255,128,146,0.5); --mgs:rgba(255,128,146,0.4); }
.ai-brain[data-mood="warn"] { --m1:#ffb35a; --m2:#8b93a8; --mb:rgba(255,179,90,0.46); --mg:rgba(255,179,90,0.55); --mgs:rgba(255,179,90,0.4); }

.aib-head { display: flex; align-items: center; gap: 11px; position: relative; z-index: 1; }
.aib-orb {
  width: 42px; height: 42px; flex: none; border-radius: 50%; display: grid; place-items: center; position: relative;
  background: radial-gradient(circle at 32% 28%, var(--m1), var(--m2));
  box-shadow: 0 0 22px -4px var(--m1), inset 0 0 10px rgba(255,255,255,0.22);
}
.aib-orb::after { content:""; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--mb); opacity:.6; animation: aibPulse 2.6s ease-out infinite; }
@keyframes aibPulse { 0% { transform: scale(1); opacity:.6; } 70% { transform: scale(1.35); opacity:0; } 100% { opacity:0; } }
.aib-orb-glyph { font-size: 21px; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5)); }
.aib-id { display: grid; gap: 2px; min-width: 0; flex: 1 1 auto; }
.aib-name { font-family: var(--font-display); font-size: 14px; font-weight: 800; letter-spacing: .06em; color: #f5f1f2; }
.aib-name em { font-style: normal; font-size: 9px; letter-spacing: .18em; color: var(--m2); vertical-align: middle; margin-left: 4px; padding: 1px 6px; border: 1px solid var(--mb); border-radius: 999px; }
.aib-sub { font-size: 11px; color: #c8c3cc; font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aib-conv { flex: none; text-align: right; display: grid; }
.aib-conv-num { font-family: var(--font-display); font-size: 27px; font-weight: 900; line-height: 1; color: var(--m2); text-shadow: 0 0 18px var(--mg); font-variant-numeric: tabular-nums; }
.aib-conv-lbl { font-size: 8.5px; letter-spacing: .14em; text-transform: uppercase; color: #95929a; }

.aib-think { display: flex; align-items: flex-start; gap: 9px; margin: 11px 0 9px; position: relative; z-index: 1; }
.aic-line {
  font-size: 12.5px; line-height: 1.5; color: #f2f4f9;
  white-space: normal; overflow-wrap: anywhere; font-variant-numeric: tabular-nums;
}
.aib-think .aic-dot { margin-top: 4px; }
.aic-dot {
  width: 10px; height: 10px; border-radius: 50%; flex: none;
  background: rgba(255,255,255,0.16); box-shadow: 0 0 0 0 currentColor;
  transition: background .3s ease, box-shadow .3s ease;
}
.aic-dot[data-state="hot"]  { background: #7dffc4; box-shadow: 0 0 14px -2px #7dffc4; }
.aic-dot[data-state="warm"] { background: #e6e9f2; box-shadow: 0 0 12px -3px #e6e9f2; }
.aic-dot[data-state="info"] { background: #d2d6e2; box-shadow: 0 0 10px -3px #d2d6e2; }
.aic-dot[data-state="warn"] { background: #ffb35a; box-shadow: 0 0 12px -3px #ffb35a; }
.aic-dot[data-state="cool"] { background: #8b93a8; box-shadow: 0 0 12px -3px #8b93a8; }
.aic-dot[data-state="idle"] { background: rgba(255,255,255,0.16); }

.aib-bar { height: 5px; border-radius: 999px; background: rgba(255,255,255,0.06); overflow: hidden; position: relative; z-index: 1; }
.aib-bar-fill { display:block; height: 100%; width: 0%; border-radius: inherit; background: linear-gradient(90deg, var(--m1), var(--m2)); box-shadow: 0 0 12px -2px var(--m1); transition: width .8s cubic-bezier(.22,1,.36,1); }

.aib-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin-top: 11px; position: relative; z-index: 1; }
@media (max-width: 560px) { .aib-grid { grid-template-columns: repeat(2, 1fr); } }
.aib-cell {
  padding: 7px 8px; border-radius: 10px; display: grid; gap: 3px;
  background: linear-gradient(160deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012));
  border: 1px solid rgba(255,255,255,0.06);
  transition: border-color .35s ease, background .35s ease;
}
.aib-cell-l { font-size: 8.5px; letter-spacing: .05em; text-transform: uppercase; color: #95929a; white-space: nowrap; }
.aib-cell-v { font-size: 12px; font-weight: 700; color: #e9e6f6; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.aib-cell[data-tone="hot"]  { border-color: rgba(125,255,196,0.4); background: linear-gradient(160deg, rgba(33,208,122,0.16), rgba(33,208,122,0.04)); }
.aib-cell[data-tone="hot"] .aib-cell-v { color: #7dffc4; }
.aib-cell[data-tone="warn"] { border-color: rgba(255,179,90,0.4); background: linear-gradient(160deg, rgba(255,179,90,0.15), rgba(255,179,90,0.03)); }
.aib-cell[data-tone="warn"] .aib-cell-v { color: #ffc684; }

/* ===== AI HOT STREAK CELEBRATOR — milestone banner ===== */
.ai-hot-streak {
  position: fixed;
  left: 50%; top: 18%;
  transform: translate(-50%, -120%) scale(.92);
  opacity: 0; pointer-events: none;
  z-index: 9000;
  min-width: 280px; max-width: 480px;
  padding: 14px 50px 14px 18px;
  border-radius: 16px;
  border: 1px solid rgba(125,255,196,0.5);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(33,208,122,0.22), transparent 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(230,233,242,0.22), transparent 60%),
    linear-gradient(135deg, rgba(10,28,18,0.95), rgba(8,4,20,0.95));
  box-shadow: 0 20px 60px -16px rgba(33,208,122,0.6), 0 0 32px -8px rgba(230,233,242,0.45);
  transition: transform .55s cubic-bezier(.2,.9,.25,1.2), opacity .35s ease;
  display: grid;
  grid-template-columns: 1fr;
  font-family: var(--font-display);
}
.ai-hot-streak.show {
  transform: translate(-50%, 0) scale(1);
  opacity: 1; pointer-events: auto;
}
.ai-hot-streak[data-tier="hot"] {
  border-color: rgba(255,217,107,0.55);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,217,107,0.2), transparent 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(255,128,146,0.22), transparent 60%),
    linear-gradient(135deg, rgba(34,22,8,0.95), rgba(20,4,18,0.95));
  box-shadow: 0 22px 70px -14px rgba(255,217,107,0.6), 0 0 36px -8px rgba(255,128,146,0.4);
}
.ahs-glow {
  position: absolute; inset: -1px;
  border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(125,255,196,0.18), rgba(230,233,242,0.18), transparent);
  animation: ahsShimmer 2.2s linear infinite;
  opacity: .9;
}
.ai-hot-streak[data-tier="hot"] .ahs-glow {
  background: linear-gradient(90deg, transparent, rgba(255,217,107,0.22), rgba(255,128,146,0.22), transparent);
}
@keyframes ahsShimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
.ahs-eyebrow {
  font-size: 11px; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: #7dffc4;
}
.ai-hot-streak[data-tier="hot"] .ahs-eyebrow { color: #ffd96b; }
.ahs-title {
  font-size: 22px; font-weight: 900; color: #f2f4f9;
  margin: 2px 0 4px;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 18px rgba(125,255,196,0.45);
}
.ai-hot-streak[data-tier="hot"] .ahs-title { text-shadow: 0 0 22px rgba(255,217,107,0.55); }
.ahs-sub {
  font-family: var(--font-base, system-ui);
  font-size: 12.5px; font-weight: 500; color: #e6e9f2;
  line-height: 1.4;
}
.ahs-close {
  position: absolute; top: 8px; right: 10px;
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,0.75);
  font-size: 22px; line-height: 1;
  padding: 4px 8px; border-radius: 50%;
  transition: background .2s ease, color .2s ease;
}
.ahs-close:hover { background: rgba(255,255,255,0.08); color: #fff; }

/* ===== AI COCKPIT FOOTER — sticky always-visible HUD ===== */
.ai-cockpit.is-hidden {
  opacity: 0; pointer-events: none;
  transform: translateX(-50%) translateY(120%);
  transition: opacity .25s ease, transform .35s cubic-bezier(.4,0,.2,1);
}
.ai-cockpit {
  position: fixed;
  left: 50%; bottom: 14px;
  transform: translateX(-50%);
  z-index: 8000;
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(230,233,242,0.28);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(230,233,242,0.10), transparent 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(250, 146, 0,0.10), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.92), rgba(14,10,30,0.92));
  box-shadow: 0 18px 36px -16px rgba(0,0,0,0.7), 0 0 30px -10px rgba(230,233,242,0.3);
  max-width: calc(100vw - 28px);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  font-family: var(--font-display);
  font-variant-numeric: tabular-nums;
}
.aic-pilot {
  appearance: none; border: 1px solid rgba(250, 146, 0,0.45);
  background: linear-gradient(135deg, rgba(250, 146, 0,0.18), rgba(33,208,122,0.08));
  color: #d9c4c9;
  display: flex; align-items: center; gap: 7px;
  padding: 7px 11px; border-radius: 11px;
  cursor: pointer;
  font-family: var(--font-display); font-size: 11.5px; font-weight: 800;
  letter-spacing: .04em;
  transition: transform .15s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease, background .25s ease;
}
.aic-pilot:hover { transform: translateY(-1px); }
.aic-pilot[data-state="on"] {
  border-color: rgba(33,208,122,0.6);
  background: linear-gradient(135deg, rgba(33,208,122,0.18), rgba(230,233,242,0.14));
  color: #7dffc4;
  box-shadow: 0 0 18px -6px rgba(33,208,122,0.65);
}
.aicp-pilot-icon { font-size: 14px; }
.aicp-top { display: grid; gap: 0; min-width: 110px; padding: 0 8px; border-left: 1px solid rgba(255,255,255,0.08); }
.aicp-top small { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.aicp-top strong { font-size: 13px; font-weight: 800; color: #f2f4f9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
.aicp-top span { font-size: 10px; color: var(--text-dim); }
.aicp-deploy {
  appearance: none; border: 1px solid rgba(250, 146, 0,0.45);
  background: linear-gradient(135deg, rgba(250, 146, 0,0.92), rgba(196,13,28,0.92));
  color: #fff;
  padding: 8px 13px; border-radius: 11px; cursor: pointer;
  font-family: var(--font-display); font-size: 12px; font-weight: 800;
  letter-spacing: .03em;
  transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
.aicp-deploy:hover { transform: translateY(-1px); filter: brightness(1.08); }
.aicp-deploy:active { transform: translateY(0) scale(.97); }
.aicp-deploy[data-fire="true"] {
  border-color: rgba(45,224,138,0.7);
  background: linear-gradient(135deg, #21d07a, #16a76a);
  color: #04140d; box-shadow: 0 0 22px -6px rgba(33,208,122,0.7);
}
.aicp-stat {
  display: grid; gap: 0; padding: 0 8px; border-left: 1px solid rgba(255,255,255,0.08);
  min-width: 64px;
}
.aicp-stat small { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.aicp-stat strong { font-size: 13px; font-weight: 800; color: #f2f4f9; }
.aicp-stat strong[data-tier="hot"]  { color: #7dffc4; }
.aicp-stat strong[data-tier="warm"] { color: #e6e9f2; }
.aicp-stat strong[data-tier="cool"] { color: #8b93a8; }
.aicp-pulse { display: flex; align-items: center; gap: 6px; }
.aicp-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.16);
  transition: background .3s ease, box-shadow .3s ease;
}
.aicp-dot[data-state="hot"]  { background: #7dffc4; box-shadow: 0 0 10px -2px #7dffc4; }
.aicp-dot[data-state="warm"] { background: #e6e9f2; box-shadow: 0 0 10px -2px #e6e9f2; }
.aicp-dot[data-state="cool"] { background: #8b93a8; box-shadow: 0 0 10px -2px #8b93a8; }
@media (max-width: 720px) {
  .ai-cockpit { gap: 6px; padding: 6px 8px; }
  .aicp-stat[data-cell="swarm"], .aicp-top span { display: none; }
}
@media (max-width: 520px) {
  .ai-cockpit { left: 8px; right: 8px; bottom: 8px; transform: none; max-width: none; }
  .aicp-top { min-width: 80px; }
  .aicp-pilot-label { display: none; }
  .aicp-stat[data-cell="pulse"] { display: none; }
}

/* ===== AI OPPORTUNITY RADAR — cross-analyzer command panel ===== */
.ai-opportunity-radar {
  margin-top: 14px; padding: 12px 14px;
  border: 1px solid rgba(230,233,242,0.26); border-radius: 16px;
  background: linear-gradient(135deg, rgba(10,18,40,0.8), rgba(14,10,30,0.82));
  display: grid; gap: 10px;
}
.aor-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.aor-head-right { display: flex; align-items: center; gap: 10px; }
.aor-toggle { appearance: none; border: none; background: none; padding: 0; cursor: pointer; }
.aor-toggle-track { display: block; width: 40px; height: 22px; border-radius: 999px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.18); position: relative; transition: background .2s ease, border-color .2s ease; }
.aor-toggle-thumb { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #e6e9f2; transition: transform .2s ease, background .2s ease; }
.aor-toggle[aria-checked="true"] .aor-toggle-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.aor-toggle[aria-checked="true"] .aor-toggle-thumb { transform: translateX(18px); background: #04140d; }
.aor-off-note { font-size: 11px; color: var(--text-muted); padding: 2px 2px 0; }
.ai-opportunity-radar.is-off { gap: 6px; }
.ai-opportunity-radar.is-off .aor-hero,
.ai-opportunity-radar.is-off .aor-chips,
.ai-opportunity-radar.is-off .aor-swarm { display: none; }
.aor-title { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #e6e9f2; }
.aor-swarm { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; color: var(--text-muted); padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); }
.aor-swarm[data-strong="true"] { color: #04140d; background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.aor-swarm-meter { height: 4px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.aor-swarm-meter > i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #e6e9f2); transition: width .4s ease; }
.aor-swarm-meter > i[data-strong="true"] { background: linear-gradient(90deg, #21d07a, #e6e9f2); }
.aor-hero {
  display: flex; gap: 10px; align-items: stretch;
  border: 1px solid rgba(250, 146, 0,0.34); border-radius: 13px; padding: 10px 12px;
  background: linear-gradient(135deg, rgba(30,18,54,0.7), rgba(14,12,26,0.7));
  transition: box-shadow .25s ease, border-color .25s ease;
}
.aor-hero[data-fire="true"] { border-color: rgba(33,208,122,0.6); box-shadow: 0 0 26px -8px rgba(33,208,122,0.5); }
.aor-hero-main { flex: 1 1 auto; min-width: 0; text-align: left; display: grid; gap: 3px; cursor: pointer; background: none; border: none; padding: 0; transition: transform .15s ease; }
.aor-hero-main:hover { transform: translateY(-1px); }
.aor-deploy {
  flex: none; align-self: center; display: grid; justify-items: center; cursor: pointer;
  padding: 8px 15px; border-radius: 11px; border: 1px solid rgba(250, 146, 0,0.45);
  background: linear-gradient(135deg, rgba(250, 146, 0,0.92), rgba(196,13,28,0.92)); color: #fff;
  font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: .03em;
  transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
.aor-deploy small { font-size: 8px; font-weight: 700; opacity: .82; letter-spacing: .12em; text-transform: uppercase; }
.aor-deploy:hover { transform: translateY(-2px); filter: brightness(1.08); }
.aor-deploy:active { transform: translateY(0) scale(.97); }
.aor-deploy[data-fire="true"] { border-color: rgba(45,224,138,0.7); background: linear-gradient(135deg, #21d07a, #16a76a); color: #04140d; box-shadow: 0 0 22px -6px rgba(33,208,122,0.7); }
.aor-hero-eyebrow { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.aor-hero[data-fire="true"] .aor-hero-eyebrow { color: #7dffc4; }
.aor-hero-name { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: #f2f4f9; }
.aor-hero[data-tier="hot"]  .aor-hero-name { color: #7dffc4; }
.aor-hero[data-tier="warm"] .aor-hero-name { color: #e6e9f2; }
.aor-hero-meta { font-size: 11px; color: var(--text-dim); }
.aor-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.aor-chip {
  position: relative; display: grid; gap: 4px; padding: 6px 11px 10px; min-width: 108px;
  border: 1px solid rgba(255,255,255,0.12); border-radius: 11px; cursor: pointer;
  background: rgba(255,255,255,0.03); font-size: 11px; font-weight: 700; color: var(--text-dim);
  transition: transform .12s ease, border-color .2s ease, background .2s ease;
}
.aor-chip:hover { transform: translateY(-1px); border-color: var(--c); }
.aor-chip-row { display: inline-flex; align-items: center; gap: 6px; }
.aor-chip .aor-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c); box-shadow: 0 0 8px var(--c); flex: none; }
.aor-chip-name { flex: 1 1 auto; white-space: nowrap; }
.aor-chip-conf { font-family: var(--font-display); font-weight: 800; }
.aor-chip-arrow[data-t="up"] { color: #21d07a; }
.aor-chip-arrow[data-t="down"] { color: #8b93a8; }
.aor-chip-bar { position: absolute; left: 8px; right: 8px; bottom: 4px; height: 3px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.aor-chip-bar > i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--c); transition: width .35s ease; }
.aor-chip[data-tier="hot"]  .aor-chip-conf { color: #7dffc4; }
.aor-chip[data-tier="warm"] .aor-chip-conf { color: #e6e9f2; }
.aor-chip[data-tier="mid"]  .aor-chip-conf { color: #d2d6e2; }
.aor-chip[data-tier="cool"] .aor-chip-conf { color: var(--text-muted); }
.aor-chip[data-fire="true"] { border-color: rgba(33,208,122,0.55); background: rgba(33,208,122,0.1); }
.aor-chip-arrow { font-weight: 800; opacity: .85; }

/* ===== SAT LAUNCH BUTTON in main header (beside voice orb) ===== */
/* ════════════════════════════════════════════════════════════════
   PREMIUM SECTION SWITCHER — Console ⇄ Auto Trading
   One platform, two sections, one connection. iOS-style segmented
   control with a gliding active pill + autopilot-live indicator.
   ════════════════════════════════════════════════════════════════ */
.section-switch {
  position: relative;
  display: inline-flex; align-items: center;
  flex: 0 0 auto;           /* never let the header row compress it (keeps both labels) */
  padding: 3px;
  border-radius: 999px;
  /* NB: ring is an inset shadow (not a layout border) so the JS glider's
     offsetLeft math lines up to the exact pixel. */
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(250, 146, 0,0.20), transparent 60%),
    radial-gradient(120% 90% at 100% 100%, rgba(33,208,122,0.14), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.94), rgba(14,10,30,0.94));
  box-shadow: inset 0 0 0 1px rgba(250, 146, 0,0.42), inset 0 1px 0 rgba(255,255,255,0.06), 0 8px 20px -10px rgba(0,0,0,0.75);
  white-space: nowrap;
}
/* the gliding active pill */
.section-switch .ss-glider {
  position: absolute; top: 3px; bottom: 3px; left: 0;
  width: 98px;                      /* JS sizes + translates this onto the active tab */
  transform: translateX(3px);
  border-radius: 999px; z-index: 0;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.60), rgba(196,13,28,0.58));
  border: 1px solid rgba(250, 146, 0,0.62);
  box-shadow: 0 0 18px -4px rgba(250, 146, 0,0.85), inset 0 1px 0 rgba(255,255,255,0.14);
  transition: transform .40s cubic-bezier(.5,.05,.2,1), width .40s cubic-bezier(.5,.05,.2,1), background .40s ease, box-shadow .40s ease;
}
.section-switch[data-active="auto"] .ss-glider {
  background: linear-gradient(135deg, rgba(33,208,122,0.55), rgba(20,120,90,0.52));
  border-color: rgba(33,208,122,0.62);
  box-shadow: 0 0 20px -4px rgba(33,208,122,0.9), inset 0 1px 0 rgba(255,255,255,0.14);
}
/* shimmer sweep across the active pill */
.section-switch .ss-glider::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  background-size: 220% 100%;
  animation: satLaunchShimmer 3.4s linear infinite;
  opacity: .8;
}
@keyframes satLaunchShimmer { 0% { background-position: -120% 0; } 100% { background-position: 220% 0; } }
/* tabs */
.section-switch .ss-tab {
  position: relative; z-index: 1;
  appearance: none; border: none; background: transparent; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-width: 98px; padding: 7px 14px; border-radius: 999px;
  font-family: var(--font-display); font-weight: 800; font-size: 12.5px; letter-spacing: .03em;
  color: #d2c9d0; white-space: nowrap;
  transition: color .3s ease, transform .15s ease;
}
.section-switch .ss-tab[aria-selected="true"] { color: #ffffff; text-shadow: 0 0 12px rgba(255,255,255,0.25); }
.section-switch .ss-tab:hover { color: #f1eaec; }
/* 🔒 locked Auto tab for users without premium access */
.section-switch .ss-tab.ss-locked { color: #6b6485; cursor: not-allowed; }
.section-switch .ss-tab.ss-locked:hover { color: #6b6485; }
.section-switch .ss-tab .ss-lock { font-size: 11px; margin-left: 1px; opacity: .85; }
.section-switch .ss-tab.ss-deny { animation: ssDeny .5s ease; }
@keyframes ssDeny { 0%,100%{ transform: translateX(0);} 20%{ transform: translateX(-4px);} 40%{ transform: translateX(4px);} 60%{ transform: translateX(-3px);} 80%{ transform: translateX(3px);} }
.section-switch .ss-tab:active { transform: scale(.97); }
.section-switch .ss-tab:focus-visible { outline: 2px solid rgba(250, 146, 0,0.8); outline-offset: 2px; }
.ss-ic { font-size: 15px; line-height: 1; }
/* autopilot-live indicator on the Auto Trading tab */
.ss-live {
  position: absolute; top: 5px; right: 8px;        /* corner badge — never affects tab width */
  width: 7px; height: 7px; border-radius: 50%;
  background: #3a3550; box-shadow: none; margin: 0;
  transition: background .3s ease, box-shadow .3s ease;
}
.section-switch[data-live="1"] .ss-tab[data-section="auto"] .ss-live {
  background: #21d07a; box-shadow: 0 0 9px #21d07a;
  animation: satLaunchHeartbeat 1.6s ease-in-out infinite;
}
@keyframes satLaunchHeartbeat { 0%, 100% { opacity: .55; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.18); } }
/* Narrow headers: collapse BOTH tabs to icons (keeps them equal width so the
   gliding pill stays perfectly aligned); the glider colour + position still
   shows which section is active. */
@media (max-width: 640px) {
  .section-switch .ss-tab { min-width: 44px; padding: 7px 12px; }
  .section-switch .ss-tab .ss-tx { display: none; }
}

/* ===== SAT LINK CARD on main trading page (DEPRECATED — removed) ===== */
.sat-link-card {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin: 18px 0;
  padding: 16px 20px;
  border-radius: 18px;
  border: 1px solid rgba(250, 146, 0,0.45);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(250, 146, 0,0.18), transparent 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(33,208,122,0.14), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.92), rgba(14,10,30,0.92));
  text-decoration: none; color: #f2f4f9;
  transition: transform .15s ease, box-shadow .25s ease, border-color .25s ease;
  position: relative; overflow: hidden;
}
.sat-link-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #fa9200, #21d07a, #e6e9f2, transparent);
}
.sat-link-card:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -16px rgba(250, 146, 0,0.6); border-color: rgba(230,233,242,0.6); }
.sat-link-card h2 {
  margin: 0; font-family: var(--font-display); font-size: 18px; font-weight: 900;
  background: linear-gradient(90deg, #fa9200, #e6e9f2, #21d07a);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  letter-spacing: .04em;
}
.sat-link-card small { display: block; color: var(--text-muted); font-size: 11.5px; margin-top: 3px; line-height: 1.4; }
.sat-link-arrow {
  flex: none; padding: 10px 18px; border-radius: 12px;
  border: 1px solid rgba(33,208,122,0.6);
  background: linear-gradient(135deg, #21d07a, #16a76a);
  color: #04140d;
  font-family: var(--font-display); font-size: 13px; font-weight: 800; letter-spacing: .05em;
  box-shadow: 0 0 22px -8px rgba(33,208,122,0.6);
  white-space: nowrap;
}

/* ===== INLINE Deriv connection form on auto.html ===== */
.ac-form {
  margin: 0 0 18px;
  padding: 16px 18px;
  border-radius: 16px;
  border: 1px solid rgba(33,208,122,0.4);
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(33,208,122,0.10), transparent 55%),
    radial-gradient(140% 90% at 100% 100%, rgba(230,233,242,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.92), rgba(14,10,30,0.92));
  box-shadow: 0 20px 44px -24px rgba(0,0,0,0.7), 0 0 28px -10px rgba(33,208,122,0.45);
  backdrop-filter: blur(6px) saturate(130%);
  -webkit-backdrop-filter: blur(6px) saturate(130%);
  position: relative; overflow: hidden;
}
.ac-form[hidden] { display: none !important; }
.ac-form::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #21d07a, #e6e9f2, #21d07a, transparent);
  background-size: 200% 100%;
  animation: acFormBeam 3s linear infinite;
}
@keyframes acFormBeam { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }
.ac-form-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.ac-form-head h3 { margin: 0; font-family: var(--font-display); font-size: 17px; font-weight: 900; background: linear-gradient(90deg, #7dffc4, #e6e9f2); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: .02em; }
.ac-form-head small { display: block; color: var(--text-muted); font-size: 11px; margin-top: 2px; }
.ac-close { appearance: none; cursor: pointer; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: var(--text-muted); width: 28px; height: 28px; border-radius: 50%; font-size: 18px; line-height: 24px; padding: 0; transition: all .2s; }
.ac-close:hover { color: #fff; background: rgba(139, 147, 168,0.18); border-color: rgba(139, 147, 168,0.4); }
.ac-form-body { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.ac-field { display: grid; gap: 4px; }
.ac-field span { font-family: var(--font-display); font-size: 10.5px; font-weight: 800; letter-spacing: .06em; color: #d9c4c9; }
.ac-field input, .ac-field select {
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  color: #f2f4f9;
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  font-variant-numeric: tabular-nums;
  outline: none;
  transition: border-color .2s, box-shadow .25s;
}
.ac-field input:focus, .ac-field select:focus { border-color: rgba(125,255,196,0.6); box-shadow: 0 0 18px -4px rgba(125,255,196,0.5); }
.ac-field small { font-size: 10.5px; color: var(--text-muted); line-height: 1.4; }
.ac-field small code { background: rgba(230,233,242,0.1); color: #e6e9f2; padding: 1px 6px; border-radius: 4px; font-size: 10px; font-family: ui-monospace, monospace; }
.ac-form-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.ac-btn-connect, .ac-btn-disconnect {
  appearance: none; cursor: pointer;
  padding: 11px 22px;
  border-radius: 11px;
  font-family: var(--font-display); font-size: 13px; font-weight: 800;
  letter-spacing: .04em;
  border: 1px solid transparent;
  transition: transform .14s, box-shadow .25s, filter .2s;
}
.ac-btn-connect {
  background: linear-gradient(135deg, #21d07a, #16a76a);
  color: #04140d;
  border-color: rgba(33,208,122,0.6);
  box-shadow: 0 0 22px -4px rgba(33,208,122,0.65);
}
.ac-btn-connect:hover { transform: translateY(-1px); filter: brightness(1.08); box-shadow: 0 0 28px -2px rgba(33,208,122,0.8); }
.ac-btn-disconnect {
  background: rgba(139, 147, 168,0.12);
  color: #8b93a8;
  border-color: rgba(139, 147, 168,0.4);
}
.ac-btn-disconnect:hover { background: rgba(139, 147, 168,0.2); }
.ac-status {
  margin-left: auto;
  font-family: var(--font-display); font-size: 11.5px; font-weight: 700;
  color: var(--text-muted);
  padding: 6px 12px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  transition: color .25s, background .25s, border-color .25s, box-shadow .25s;
}
.ac-status[data-state="working"] {
  color: #e6e9f2;
  background: rgba(230,233,242,0.08);
  border-color: rgba(230,233,242,0.32);
  animation: acStatusBlink 1.4s ease-in-out infinite;
}
.ac-status[data-state="ok"] {
  color: #04140d;
  background: linear-gradient(135deg, #21d07a, #7dffc4);
  border-color: transparent;
  box-shadow: 0 0 18px -4px rgba(33,208,122,0.6);
}
.ac-status[data-state="err"] {
  color: #8b93a8;
  background: rgba(255,128,146,0.1);
  border-color: rgba(255,128,146,0.4);
}
@keyframes acStatusBlink { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.25); } }
@media (max-width: 720px) {
  .ac-form-body { grid-template-columns: 1fr; }
  .ac-form-actions { flex-wrap: wrap; }
  .ac-status { margin-left: 0; flex-basis: 100%; }
}

/* ===== Auto-Trading Connect CTA (header) ===== */
.auto-connect-cta {
  appearance: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none;
  padding: 6px 12px; border-radius: 999px;
  border: 1px solid rgba(33,208,122,0.5);
  background: linear-gradient(135deg, rgba(33,208,122,0.18), rgba(125,255,196,0.10));
  color: #7dffc4;
  font-family: var(--font-display); font-size: 11.5px; font-weight: 800;
  letter-spacing: .03em;
  box-shadow: 0 0 14px -4px rgba(33,208,122,0.55), inset 0 1px 0 rgba(125,255,196,0.08);
  animation: autoConnectPulse 1.8s ease-in-out infinite;
  transition: transform .14s ease, box-shadow .2s ease, filter .2s ease;
}
.auto-connect-cta:hover { transform: translateY(-1px); filter: brightness(1.1); box-shadow: 0 0 22px -4px rgba(33,208,122,0.7); }
.auto-connect-cta[hidden] { display: none !important; }
@keyframes autoConnectPulse {
  0%, 100% { box-shadow: 0 0 14px -4px rgba(33,208,122,0.55), inset 0 1px 0 rgba(125,255,196,0.08); }
  50%      { box-shadow: 0 0 22px -2px rgba(33,208,122,0.8),  inset 0 1px 0 rgba(125,255,196,0.16); }
}

/* ===== /auto.html — body wrapper centers section ===== */
.skilli-auto-page .aether-main { padding-top: 24px; }

/* ============================================================
   ONE PLATFORM · TWO SECTIONS — Console ⇄ Auto Trading views
   Both <div class="aether-view"> live in the SAME page (one socket,
   one connection). Only one is shown at a time; the shared results
   band (#journal-section) sits outside both and is always visible.
   ============================================================ */
.aether-view { display: block; }
.aether-view[hidden] { display: none !important; }
.aether-view { animation: aetherViewIn .44s cubic-bezier(.22,.61,.36,1) both; }
@keyframes aetherViewIn {
  /* opacity + tiny translate only — no filter()/scale (those force heavy repaints
     of the whole view subtree and caused the transition glitch). */
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}
/* The Auto Trading section was authored to sit directly under the page header. */
#view-auto > .skilli-auto-trading { margin-top: 4px; }
/* (Section navigation now lives in the premium .section-switch above.) */

/* ============================================================
   SAT v2 — upgraded section with switches, settings, neural lab,
   risk halo, brain matrix, profit lock, recovery, history, ledger
   ============================================================ */
.sat-head-v2 { gap: 16px; }
.sat-head-title-wrap { flex: 1 1 auto; }

/* MEGA MASTER SWITCH V2 — premium glossy capsule with conic aura ring */
.sat-mega-switch { display: inline-block; cursor: pointer; position: relative; }
.sat-mega-switch input { display: none; }

/* OUTER AURA (conic-gradient rotating ring) */
.sat-mega-aura {
  position: absolute; inset: -4px;
  border-radius: 999px; pointer-events: none;
  background: conic-gradient(from 0deg,
    rgba(255,128,146,0.85) 0deg,
    rgba(255,179,90,0.6) 90deg,
    rgba(255,128,146,0.3) 180deg,
    rgba(160,80,80,0.0) 270deg,
    rgba(255,128,146,0.85) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  padding: 1.5px;
  animation: satMegaSpin 6s linear infinite;
  opacity: .9;
  filter: blur(0.4px);
}
@keyframes satMegaSpin { to { transform: rotate(360deg); } }
.sat-mega-switch input:checked ~ .sat-mega-aura,
.sat-mega-switch-v2 input:checked + .sat-mega-aura,
.sat-mega-switch-v2:has(input:checked) .sat-mega-aura {
  background: conic-gradient(from 0deg,
    rgba(125,255,196,0.95) 0deg,
    rgba(230,233,242,0.7) 120deg,
    rgba(33,208,122,0.4) 240deg,
    rgba(125,255,196,0.95) 360deg);
  animation-duration: 3.5s;
}

/* TRACK */
.sat-mega-track {
  position: relative; display: inline-flex; align-items: center;
  width: 138px; height: 30px; padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,128,146,0.45);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,128,146,0.18), transparent 60%),
    linear-gradient(180deg, rgba(34,14,18,0.95) 0%, rgba(20,8,12,0.95) 50%, rgba(14,6,10,0.95) 100%);
  font-family: var(--font-display); font-weight: 900; font-size: 8.5px;
  letter-spacing: .06em; white-space: nowrap;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease;
  overflow: hidden;
  /* STANDBY glow */
  box-shadow:
    0 0 18px -4px rgba(255,128,146,0.6),
    0 0 36px -12px rgba(255,128,146,0.4),
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    inset 0 0 12px -4px rgba(255,128,146,0.3);
}

/* GLOSS highlight on top of track */
.sat-mega-gloss {
  position: absolute; left: 4px; right: 4px; top: 2px; height: 9px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.0));
  pointer-events: none;
}

/* THUMB (premium with metal gradient + glow + power icon) */
.sat-mega-thumb {
  position: absolute; left: 3px; top: 3px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.55), transparent 50%),
    linear-gradient(135deg, #ff8298 0%, #8b93a8 50%, #c9354a 100%);
  display: grid; place-items: center;
  box-shadow:
    0 0 16px -2px #8b93a8,
    0 0 30px -8px #8b93a8,
    inset 0 1px 1px rgba(255,255,255,0.4),
    inset 0 -1px 2px rgba(0,0,0,0.5);
  transition: transform .45s cubic-bezier(.2,.9,.25,1.4), background .4s ease, box-shadow .4s ease;
}
.sat-mega-icon {
  width: 13px; height: 13px;
  fill: #fff;
  filter: drop-shadow(0 0 4px rgba(255,255,255,0.6));
  transition: transform .4s ease, fill .4s ease;
}

/* LABELS — absolutely positioned so they don't fight the thumb */
.sat-mega-on, .sat-mega-off {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 1;
  transition: opacity .35s ease, color .35s ease, text-shadow .35s ease;
  font-variant: small-caps;
  pointer-events: none;
}
.sat-mega-off { right: 12px; color: #8b93a8; opacity: 1; text-shadow: 0 0 6px rgba(255,128,146,0.45); }
.sat-mega-on  { left: 12px;  color: #7dffc4; opacity: 0; text-shadow: 0 0 8px rgba(125,255,196,0.5); }

/* ENGAGED — green premium state */
.sat-mega-switch input:checked + .sat-mega-aura {
  background: conic-gradient(from 0deg,
    rgba(125,255,196,0.95) 0deg,
    rgba(230,233,242,0.7) 120deg,
    rgba(33,208,122,0.4) 240deg,
    rgba(125,255,196,0.95) 360deg);
  animation-duration: 3.5s;
}
.sat-mega-switch input:checked ~ .sat-mega-track,
.sat-mega-switch:has(input:checked) .sat-mega-track {
  border-color: rgba(33,208,122,0.7);
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(33,208,122,0.22), transparent 60%),
    linear-gradient(180deg, rgba(10,30,16,0.95) 0%, rgba(8,20,12,0.95) 50%, rgba(6,14,10,0.95) 100%);
  box-shadow:
    0 0 22px -3px rgba(33,208,122,0.75),
    0 0 44px -12px rgba(33,208,122,0.5),
    0 0 70px -22px rgba(125,255,196,0.35),
    inset 0 1px 0 rgba(255,255,255,0.1),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    inset 0 0 14px -4px rgba(125,255,196,0.25);
}
.sat-mega-switch input:checked ~ .sat-mega-track .sat-mega-thumb,
.sat-mega-switch:has(input:checked) .sat-mega-thumb {
  transform: translateX(108px) rotate(360deg);
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.7), transparent 55%),
    linear-gradient(135deg, #aaffd6 0%, #21d07a 50%, #0e7d4a 100%);
  box-shadow:
    0 0 18px -2px #7dffc4,
    0 0 38px -8px #7dffc4,
    0 0 60px -20px #7dffc4,
    inset 0 1px 1px rgba(255,255,255,0.5),
    inset 0 -1px 2px rgba(0,0,0,0.4);
}
.sat-mega-switch input:checked ~ .sat-mega-track .sat-mega-on,
.sat-mega-switch:has(input:checked) .sat-mega-on { opacity: 1; }
.sat-mega-switch input:checked ~ .sat-mega-track .sat-mega-off,
.sat-mega-switch:has(input:checked) .sat-mega-off { opacity: 0; }
.sat-mega-switch:active:has(input:checked) .sat-mega-thumb { transform: translateX(108px) scale(0.94); }

/* Scanline shimmer on hover */
.sat-mega-switch:hover .sat-mega-track::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.16) 50%, transparent 70%);
  background-size: 200% 100%;
  animation: satMegaShimmer 1.2s linear;
}
@keyframes satMegaShimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }

.sat-mega-switch:hover { filter: brightness(1.06); }
.sat-mega-switch:active .sat-mega-thumb { transform: scale(0.94); }
.sat-mega-switch:active:has(input:checked) .sat-mega-thumb { transform: translateX(86px) scale(0.94); }

.sat-master-pill { font-size: 9px; padding: 3px 8px; letter-spacing: .08em; }
.sat-master-pill[data-state="partial"] {
  color: #04140d;
  background: linear-gradient(135deg, #ffd96b, #ffb35a);
  border-color: transparent;
  box-shadow: 0 0 14px -4px rgba(255,217,107,0.6);
  animation: satPartialBreathe 1.8s ease-in-out infinite;
}
@keyframes satPartialBreathe { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.15); } }

/* ======================================================================
   PREMIUM DROPDOWN — replaces every range slider in SAT
   ====================================================================== */
.sat-dd, .sr-select {
  appearance: none; -webkit-appearance: none;
  width: 100%;
  padding: 8px 32px 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(230,233,242,0.28);
  background:
    linear-gradient(135deg, rgba(20,28,52,0.95), rgba(14,18,40,0.95)),
    rgba(8,4,20,0.7);
  color: #f2f4f9;
  font-family: var(--font-display); font-weight: 800; font-size: 12.5px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .03em;
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.3),
    0 4px 10px -6px rgba(0,0,0,0.5);
  transition: border-color .2s ease, box-shadow .25s ease, transform .12s ease;
  background-image:
    linear-gradient(45deg, transparent 50%, #e6e9f2 50%),
    linear-gradient(135deg, #e6e9f2 50%, transparent 50%);
  background-position: calc(100% - 16px) center, calc(100% - 11px) center;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.sat-dd:hover, .sr-select:hover {
  border-color: rgba(230,233,242,0.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.1),
    inset 0 -1px 0 rgba(0,0,0,0.3),
    0 6px 14px -6px rgba(0,0,0,0.55),
    0 0 14px -6px rgba(230,233,242,0.45);
}
.sat-dd:focus, .sr-select:focus {
  outline: none;
  border-color: rgba(125,255,196,0.6);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 0 18px -4px rgba(125,255,196,0.5);
}
.sat-dd:active, .sr-select:active { transform: translateY(1px); }
.sat-dd option, .sr-select option {
  background: #0a0820; color: #f2f4f9;
  font-family: var(--font-display); font-weight: 700;
  padding: 8px 12px;
}

.sr-select-wrap { display: flex; align-items: center; gap: 8px; min-width: 220px; }
.sr-select-wrap .sr-val { color: #e6e9f2; font-size: 14px; min-width: 56px; text-align: right; }

/* Hide native range styling for any leftover ranges in SAT */
.sat-panel input[type="range"] { display: none; }

/* ======================================================================
   NEXT-LEVEL ORGANIZATION + SMART GLOW SYSTEM
   ====================================================================== */

/* ⚡ SMOOTH SCROLL FIX — backdrop-filter on the whole Auto Trading section AND
   on every nested glass card forced the browser to re-blur the page backdrop on
   EVERY scroll frame (nested blurs compound badly). THAT was the scrolling/card
   glitch. We disable backdrop-blur inside the Auto Trading view and rely on the
   solid dark card backgrounds instead — visually identical over the dark nebula,
   but buttery-smooth scrolling. GPU-promote the section for clean compositing. */
#view-auto [class],
#view-auto .skilli-auto-trading {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.skilli-auto-trading {
  background: linear-gradient(180deg, rgba(9,7,20,0.93), rgba(6,4,14,0.95));
}

/* Section dividers — consolidated into the premium auto-numbered ZONE headers
   defined further below (search ".sat-row-title { counter-increment: satzone"). */

/* Smart hot/warm/cool glow universals — applies to any tier-marked element */
.skilli-auto-trading [data-tier="hot"]  { filter: drop-shadow(0 0 0 transparent); }
.skilli-auto-trading [data-tier="hot"]:not(button):not(input):not(option) {
  box-shadow: 0 0 24px -10px rgba(125,255,196,0.55), 0 0 50px -22px rgba(125,255,196,0.35), inset 0 1px 0 rgba(125,255,196,0.08);
  border-color: rgba(125,255,196,0.4) !important;
}
.skilli-auto-trading [data-tier="warm"]:not(button):not(input):not(option) {
  box-shadow: 0 0 18px -10px rgba(230,233,242,0.5), inset 0 1px 0 rgba(230,233,242,0.05);
}

/* Hover lift + glow on every interactive card */
.skilli-auto-trading .sat-crack:hover,
.skilli-auto-trading .smart-panel-card:hover,
.skilli-auto-trading .sat-kpi:hover,
.skilli-auto-trading .sat-risk-card:hover,
.skilli-auto-trading .sat-bank-card:hover,
.skilli-auto-trading .sat-lock-card:hover,
.skilli-auto-trading .cd-stat:hover,
.skilli-auto-trading .re-stat:hover,
.skilli-auto-trading .vault-stat:hover,
.skilli-auto-trading .sat-sw:hover {
  transform: translateY(-2px);
  border-color: rgba(230,233,242,0.4);
  box-shadow:
    0 18px 38px -22px rgba(0,0,0,0.7),
    0 0 22px -10px rgba(230,233,242,0.45),
    inset 0 1px 0 rgba(255,255,255,0.04);
  transition: transform .18s ease, border-color .25s ease, box-shadow .35s ease;
}

/* ======================================================================
   SMART AESTHETICS LAYER — flagship-card finishing pass (Request D)
   Brings every flagship card up to one cohesive "smart" standard:
   • a unified animated edge-beam on the heroes that lacked one
     (.mai-hero / .aether-core / .ni-card — .qs-card & .sat-panel already
     own theirs) so the whole deck reads as a single intelligence system;
   • a premium hover-lift + intensified neon edge on the big structural cards;
   • a focus-within smart glow for cards that hold inputs.
   Low-opacity neon over true-black · no color-mix (software-render safe).
   ====================================================================== */
.mai-hero, .aether-core, .ni-card { position: relative; }
.mai-hero::after,
.aether-core::after,
.ni-card::after {
  content: ""; position: absolute; left: 12%; right: 12%; top: 0; height: 2px;
  border-radius: 999px; pointer-events: none; z-index: 2;
  background: linear-gradient(90deg, transparent, #e6e9f2, #d9c4c9, #7dffc4, transparent);
  background-size: 220% 100%; opacity: .4;
  animation: smartEdgeBeam 5.4s linear infinite;
}
@keyframes smartEdgeBeam { 0% { background-position: 130% 0; } 100% { background-position: -130% 0; } }
body.sat-reduce-motion .mai-hero::after,
body.sat-reduce-motion .aether-core::after,
body.sat-reduce-motion .ni-card::after { animation: none; }

/* Unified premium transition + hover-lift on the flagship structural cards. */
.qs-card, .mai-hero, .aether-core {
  transition: transform .22s cubic-bezier(.22,1,.36,1), border-color .3s ease, box-shadow .4s ease;
}
.qs-card:hover, .mai-hero:hover, .aether-core:hover {
  transform: translateY(-3px);
  border-color: rgba(230,233,242,0.5);
  box-shadow:
    0 26px 60px -28px rgba(0,0,0,0.85),
    0 0 40px -10px rgba(230,233,242,0.5),
    0 0 20px -8px rgba(250, 146, 0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.1);
}
.mai-hero[data-tier="hot"]:hover,
.aether-core[data-conviction="fire"]:hover {
  border-color: rgba(125,255,196,0.6);
  box-shadow:
    0 28px 64px -26px rgba(0,0,0,0.88),
    0 0 48px -10px rgba(33,208,122,0.55),
    inset 0 1px 0 rgba(125,255,196,0.1);
}

/* Smart focus glow — a flagship card holding a focused field lights up. */
.qs-card:focus-within,
.sat-panel:focus-within {
  border-color: rgba(230,233,242,0.55);
  box-shadow:
    0 0 0 1px rgba(230,233,242,0.28),
    0 18px 42px -26px rgba(0,0,0,0.8),
    0 0 28px -10px rgba(230,233,242,0.5),
    inset 0 1px 0 rgba(255,255,255,0.08);
}

/* SAT KPI tiles — premium glass look */
.sat-kpi {
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(230,233,242,0.08), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.7), rgba(14,10,30,0.7));
  box-shadow:
    0 12px 30px -22px rgba(0,0,0,0.6),
    inset 0 1px 0 rgba(255,255,255,0.04),
    inset 0 -1px 0 rgba(0,0,0,0.25);
  position: relative; overflow: hidden;
}
.sat-kpi::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(230,233,242,0.4), transparent);
}

/* Breathing pulse on hot KPI tiles */
.sat-kpi:has(strong[data-tier="hot"]) {
  animation: satKpiBreathe 2.6s ease-in-out infinite;
}
@keyframes satKpiBreathe {
  0%, 100% { box-shadow: 0 0 22px -10px rgba(125,255,196,0.5), inset 0 1px 0 rgba(255,255,255,0.04); }
  50%      { box-shadow: 0 0 30px -6px rgba(125,255,196,0.7), 0 0 60px -20px rgba(125,255,196,0.45), inset 0 1px 0 rgba(255,255,255,0.06); }
}

/* SAT switches premium */
.sat-sw {
  position: relative; overflow: hidden;
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.06), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,0.025), rgba(255,255,255,0.015));
  box-shadow:
    0 6px 14px -10px rgba(0,0,0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.04);
}
.sat-sw[data-on="true"] {
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(125,255,196,0.12), transparent 55%),
    linear-gradient(135deg, rgba(33,208,122,0.08), rgba(33,208,122,0.04));
  box-shadow:
    0 8px 20px -10px rgba(33,208,122,0.4),
    0 0 18px -8px rgba(125,255,196,0.4),
    inset 0 1px 0 rgba(125,255,196,0.08);
}
.sat-sw[data-on="true"]::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(125,255,196,0.06), transparent);
  background-size: 200% 100%;
  animation: satSwShimmer 3s linear infinite;
}
@keyframes satSwShimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }

/* Cracked analyzer cards — glass effect */
.sat-crack {
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.08), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.78), rgba(14,10,30,0.78));
}
.sat-crack[data-tier="hot"] {
  animation: satCrackPulse 2.2s ease-in-out infinite;
}
@keyframes satCrackPulse {
  0%, 100% { box-shadow: 0 14px 30px -22px rgba(0,0,0,0.7), 0 0 24px -10px rgba(125,255,196,0.5); }
  50%      { box-shadow: 0 14px 30px -22px rgba(0,0,0,0.7), 0 0 36px -4px rgba(125,255,196,0.7), 0 0 60px -20px rgba(125,255,196,0.4); }
}

/* Deriv panels v2 — already polished, add gentle breathe on fire */
.deriv-panel-v2[data-deriv-fire="true"] {
  animation: satDerivBreathe 3s ease-in-out infinite;
}
@keyframes satDerivBreathe {
  0%, 100% { box-shadow: 0 22px 44px -22px rgba(0,0,0,0.75), 0 0 36px -8px rgba(125,255,196,0.55); }
  50%      { box-shadow: 0 22px 44px -22px rgba(0,0,0,0.75), 0 0 50px -4px rgba(125,255,196,0.7), 0 0 80px -18px rgba(125,255,196,0.4); }
}

/* Settings group — premium dropdown opens */
.settings-group {
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.06), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.78), rgba(14,10,30,0.78));
  box-shadow:
    0 10px 24px -18px rgba(0,0,0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.03);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.settings-group:hover { border-color: rgba(250, 146, 0,0.4); }
.settings-row { position: relative; }
.settings-row[data-on="true"] {
  background: linear-gradient(135deg, rgba(125,255,196,0.05), rgba(125,255,196,0.02));
  border-color: rgba(125,255,196,0.32) !important;
  box-shadow: 0 0 12px -6px rgba(125,255,196,0.35);
}
.settings-row[data-on="true"]::before {
  content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, #21d07a, #7dffc4);
  box-shadow: 0 0 8px rgba(125,255,196,0.6);
}

/* Reinvest mode cards — premium */
.re-mode[data-active="true"] {
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(125,255,196,0.15), transparent 55%),
    linear-gradient(135deg, rgba(33,208,122,0.1), rgba(33,208,122,0.04));
  box-shadow: 0 0 22px -10px rgba(33,208,122,0.55), inset 0 1px 0 rgba(125,255,196,0.1);
}

/* Mode buttons + Re Modes + History filters — consistent active glow */
.sat-mode[data-active="true"], .hist-filter.is-active {
  position: relative;
}
.sat-mode[data-active="true"]::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(125,255,196,0.18), transparent);
  background-size: 200% 100%;
  animation: satModeShimmer 2.5s linear infinite;
}
@keyframes satModeShimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }

/* Bottom strip pills — glass + tier glow */
.sat-strip-pill {
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.7), rgba(14,10,30,0.7));
  box-shadow: 0 8px 18px -14px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.04);
}
.sat-strip-pill:has(strong[data-tier="hot"])  { border-color: rgba(125,255,196,0.4); box-shadow: 0 0 18px -8px rgba(125,255,196,0.5); }
.sat-strip-pill:has(strong[data-tier="warm"]) { box-shadow: 0 0 14px -8px rgba(230,233,242,0.45); }

/* Cooldown ring breathing when active */
.cd-ring-fg[data-tier="hot"] { animation: cdRingBreathe 2.4s ease-in-out infinite; }
@keyframes cdRingBreathe {
  0%, 100% { filter: drop-shadow(0 0 12px currentColor); }
  50%      { filter: drop-shadow(0 0 22px currentColor); }
}

/* Vault balance card — extra glow when funded */
.vault-balance:has(strong:not(:empty)) { transition: box-shadow .35s ease; }
body.sat-master-on .vault-balance { box-shadow: 0 0 28px -8px rgba(125,255,196,0.55), 0 0 60px -20px rgba(125,255,196,0.35); }

/* Master pill partial breathing already defined above */

/* =====================================================================
   🎯 QUICK SETUP — risk profile panel
   ===================================================================== */
.qs-card {
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(125,255,196,0.32);
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(125,255,196,0.10), transparent 55%),
    radial-gradient(140% 90% at 100% 100%, rgba(250, 146, 0,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.9), rgba(14,10,30,0.9));
  box-shadow:
    0 22px 50px -28px rgba(0,0,0,0.7),
    0 0 26px -10px rgba(125,255,196,0.4),
    inset 0 1px 0 rgba(125,255,196,0.06);
  margin-bottom: 18px;
  position: relative; overflow: hidden;
  backdrop-filter: blur(6px) saturate(130%);
}
.qs-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #7dffc4, #e6e9f2, #d9c4c9, transparent);
  background-size: 200% 100%;
  animation: qsBeam 3.5s linear infinite;
}
@keyframes qsBeam { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }
.qs-hero { display: flex; align-items: center; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.qs-hero-text { flex: 1; }
.qs-hero-tag { display: inline-block; font-family: var(--font-display); font-size: 9px; font-weight: 800; letter-spacing: .16em; padding: 3px 8px; border-radius: 999px; background: linear-gradient(135deg, #7dffc4, #e6e9f2); color: #04140d; }
.qs-hero h3 { margin: 6px 0 2px; font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #f2f4f9; letter-spacing: .02em; }
.qs-hero h3 + small { color: var(--text-muted); font-size: 11.5px; line-height: 1.4; }
.qs-hero-brain { width: 56px; height: 56px; flex: none; animation: qsBrainBreathe 2.6s ease-in-out infinite; }
@keyframes qsBrainBreathe { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px rgba(125,255,196,0.5)); } 50% { transform: scale(1.06); filter: drop-shadow(0 0 16px rgba(125,255,196,0.8)); } }

.qs-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
  margin: 14px 0;
}
.qs-input {
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.025);
  display: grid; gap: 4px;
  transition: border-color .25s, box-shadow .25s, transform .12s;
}
.qs-input:hover { transform: translateY(-1px); border-color: rgba(230,233,242,0.45); box-shadow: 0 0 18px -8px rgba(230,233,242,0.5); }
.qs-input label { font-family: var(--font-display); font-size: 10.5px; font-weight: 800; letter-spacing: .04em; color: #e6e9f2; }
.qs-input small { font-size: 9.5px; color: var(--text-muted); }
.qs-input-stake { border-color: rgba(125,255,196,0.3); }
.qs-input-sl    { border-color: rgba(255,128,146,0.3); }
.qs-input-tp    { border-color: rgba(255,217,107,0.3); }
.qs-input-risk  { border-color: rgba(250, 146, 0,0.3); }

/* WALK-AWAY RULES — hard limits panel inside Quick Setup */
.qs-walkaway {
  margin: 12px 0 4px;
  padding: 12px 14px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255,128,146,0.22);
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255,128,146,0.06), transparent 60%),
    radial-gradient(120% 90% at 100% 100%, rgba(255,217,107,0.05), transparent 60%),
    rgba(255,255,255,0.015);
  box-shadow: inset 0 0 30px -24px rgba(255,128,146,0.8);
}
.qs-walkaway-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.qs-walkaway-head small { font-size: 10px; color: var(--text-muted); }
.qs-grid-walkaway { margin: 10px 0 12px; }
.qs-walkaway-status {
  display: flex; align-items: center; gap: 9px;
  padding: 8px 12px; border-radius: 999px;
  font-size: 11px; font-weight: 700; line-height: 1.3;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03); color: var(--text-muted);
  transition: all .3s;
}
.qs-wa-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; background: var(--text-muted); box-shadow: 0 0 0 0 rgba(255,255,255,0.3); }
.qs-walkaway-status[data-state="off"]   { border-color: rgba(255,255,255,0.1); }
.qs-walkaway-status[data-state="off"] .qs-wa-dot { background: #6b7280; }
.qs-walkaway-status[data-state="armed"] { border-color: rgba(255,217,107,0.35); color: #ffe2a0; background: rgba(255,217,107,0.06); }
.qs-walkaway-status[data-state="armed"] .qs-wa-dot { background: #ffd96b; box-shadow: 0 0 10px -1px rgba(255,217,107,0.8); }
.qs-walkaway-status[data-state="live"]  { border-color: rgba(125,255,196,0.4); color: #aeffd9; background: rgba(33,208,122,0.08); }
.qs-walkaway-status[data-state="live"] .qs-wa-dot { background: #7dffc4; box-shadow: 0 0 12px 0 rgba(125,255,196,0.9); animation: qsWaPulse 1.6s ease-in-out infinite; }
@keyframes qsWaPulse { 0%,100% { box-shadow: 0 0 12px 0 rgba(125,255,196,0.55); } 50% { box-shadow: 0 0 18px 3px rgba(125,255,196,0.95); } }

.qs-group { margin: 12px 0; }
.qs-group-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.qs-group-title { font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: .08em; color: #d9c4c9; }
.qs-group-count {
  font-family: var(--font-display); font-size: 10px; font-weight: 700;
  padding: 3px 9px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04); color: var(--text-muted);
  transition: all .25s;
}
.qs-group-count[data-tier="hot"] {
  color: #04140d; background: linear-gradient(135deg, #21d07a, #7dffc4); border-color: transparent;
  box-shadow: 0 0 12px -4px rgba(125,255,196,0.5);
}
/* Sweep control — segmented Select-all / Invert / Clear pill at each group head */
.qs-sweep {
  margin-left: auto;
  display: inline-flex; align-items: stretch;
  border-radius: 999px; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(8,5,20,0.55);
  box-shadow: inset 0 0 12px -8px rgba(250, 146, 0,0.7);
}
.qs-sweep-btn {
  appearance: none; border: 0; cursor: pointer;
  font-family: var(--font-display); font-size: 10px; font-weight: 800;
  letter-spacing: .04em; line-height: 1;
  padding: 6px 11px; color: var(--text-muted);
  background: transparent;
  border-right: 1px solid rgba(255,255,255,0.08);
  transition: background .2s, color .2s, box-shadow .2s, transform .1s;
}
.qs-sweep-btn:last-child { border-right: 0; }
.qs-sweep-btn:hover { color: #f2f4f9; background: rgba(255,255,255,0.06); }
.qs-sweep-btn:active { transform: translateY(1px); }
.qs-sweep-all:hover {
  color: #04140d; background: linear-gradient(135deg, #21d07a, #7dffc4);
  box-shadow: inset 0 0 16px -6px rgba(125,255,196,0.9);
}
.qs-sweep-invert:hover {
  color: #06121e; background: linear-gradient(135deg, #8b93a8, #e6e9f2);
  box-shadow: inset 0 0 16px -6px rgba(230,233,242,0.9);
}
.qs-sweep-clear:hover {
  color: #1a0408; background: linear-gradient(135deg, #ff6b81, #8b93a8);
  box-shadow: inset 0 0 16px -6px rgba(255,128,146,0.9);
}
@media (max-width: 520px) {
  .qs-sweep { margin-left: 0; width: 100%; }
  .qs-sweep-btn { flex: 1 1 0; text-align: center; }
}

.qs-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.qs-chip {
  appearance: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: var(--text-muted);
  font-family: var(--font-display); font-size: 11px; font-weight: 700;
  letter-spacing: .03em;
  transition: all .2s ease;
}
.qs-chip span { font-size: 13px; }
.qs-chip:hover { color: #f2f4f9; border-color: rgba(230,233,242,0.4); transform: translateY(-1px); }
.qs-chip.is-on {
  color: #04140d;
  background: linear-gradient(135deg, #21d07a, #7dffc4);
  border-color: transparent;
  box-shadow: 0 0 14px -4px rgba(33,208,122,0.5);
}

/* MULTI-SELECT DROPDOWN — premium with checkboxes */
.msd { position: relative; }
.msd-btn {
  appearance: none; cursor: pointer;
  width: 100%;
  display: flex; align-items: center; gap: 10px;
  padding: 11px 14px;
  border-radius: 11px;
  border: 1px solid rgba(230,233,242,0.28);
  background:
    linear-gradient(135deg, rgba(20,28,52,0.95), rgba(14,18,40,0.95));
  color: #f2f4f9;
  font-family: var(--font-display); font-weight: 700; font-size: 12.5px;
  letter-spacing: .02em;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 -1px 0 rgba(0,0,0,0.3),
    0 6px 14px -8px rgba(0,0,0,0.5);
  transition: border-color .2s, box-shadow .25s, transform .12s;
}
.msd-btn:hover {
  border-color: rgba(230,233,242,0.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 8px 18px -8px rgba(0,0,0,0.55), 0 0 18px -8px rgba(230,233,242,0.45);
}
.msd-btn[aria-expanded="true"] {
  border-color: rgba(125,255,196,0.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 0 0 22px -6px rgba(125,255,196,0.55);
}
.msd-icon { font-size: 16px; flex: none; }
.msd-label { flex: 1; text-align: left; color: #e6e9f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msd-chevron { font-size: 11px; color: #e6e9f2; transition: transform .25s ease; }
.msd-btn[aria-expanded="true"] .msd-chevron { transform: rotate(180deg); color: #7dffc4; }
.msd-pop {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px);
  z-index: 100;
  border-radius: 12px;
  border: 1px solid rgba(230,233,242,0.4);
  background:
    radial-gradient(140% 100% at 0% 0%, rgba(250, 146, 0,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.97), rgba(14,10,30,0.97));
  box-shadow: 0 24px 50px -24px rgba(0,0,0,0.8), 0 0 30px -10px rgba(230,233,242,0.45);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  overflow: hidden;
  animation: msdPop .18s ease-out;
}
@keyframes msdPop {
  from { opacity: 0; transform: translateY(-4px) scale(.985); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}
.msd-pop[hidden] { display: none; }
.msd-pop-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .08em; color: var(--text-muted);
}
.msd-close { appearance: none; cursor: pointer; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: var(--text-muted); width: 22px; height: 22px; border-radius: 50%; font-size: 13px; line-height: 18px; padding: 0; }
.msd-close:hover { color: #fff; background: rgba(139, 147, 168,0.18); border-color: rgba(139, 147, 168,0.4); }
.msd-list { list-style: none; padding: 6px; margin: 0; max-height: 320px; overflow-y: auto; display: grid; gap: 2px; }
.msd-opt {
  display: grid; grid-template-columns: 22px 20px 1fr auto;
  align-items: center; gap: 10px;
  padding: 9px 12px;
  border-radius: 9px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  border: 1px solid transparent;
}
.msd-opt:hover { background: rgba(230,233,242,0.06); border-color: rgba(230,233,242,0.25); }
.msd-opt input[type="checkbox"] { appearance:none; -webkit-appearance:none; position:relative; flex:0 0 auto; width:40px; height:22px; margin:0; cursor:pointer;
  border:1px solid rgba(255,255,255,.18); border-radius:999px; background:linear-gradient(180deg, rgba(48,56,74,.92), rgba(22,27,40,.96));
  box-shadow:inset 0 1px 3px rgba(0,0,0,.55); transition:background .28s ease, border-color .28s ease, box-shadow .28s ease; }
.msd-opt input[type="checkbox"]::before { content:""; position:absolute; top:2.5px; left:3px; width:16px; height:16px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#dfe2e8); box-shadow:0 2px 5px rgba(0,0,0,.5); transition:transform .28s cubic-bezier(.34,1.56,.64,1); }
.msd-opt input[type="checkbox"]:checked { border-color:rgba(33,208,122,.55); background:linear-gradient(135deg,#15d6a2,#0a8f6c); box-shadow:0 0 14px rgba(21,214,162,.4); }
.msd-opt input[type="checkbox"]:checked::before { transform:translateX(17px); }
.msd-opt .msd-emoji { font-size: 14px; }
.msd-opt .msd-name { font-family: var(--font-display); font-size: 12px; font-weight: 700; color: #f2f4f9; }
.msd-opt small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .04em; text-transform: uppercase; font-weight: 700; }
.msd-opt.is-on {
  background: linear-gradient(135deg, rgba(125,255,196,0.10), rgba(125,255,196,0.04));
  border-color: rgba(125,255,196,0.4);
  box-shadow: inset 0 0 12px -6px rgba(125,255,196,0.4);
}
.msd-opt.is-on .msd-name { color: #7dffc4; }
.msd-pop-foot { display: flex; gap: 6px; padding: 8px 10px; border-top: 1px solid rgba(255,255,255,0.06); }
.msd-foot-btn {
  flex: 1; appearance: none; cursor: pointer;
  padding: 7px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  color: var(--text-muted);
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .06em;
  transition: all .2s;
}
.msd-foot-btn.msd-all  { color: #7dffc4; border-color: rgba(125,255,196,0.35); background: rgba(125,255,196,0.06); }
.msd-foot-btn.msd-none { color: #8b93a8; border-color: rgba(255,128,146,0.35); background: rgba(255,128,146,0.04); }
.msd-foot-btn:hover { transform: translateY(-1px); filter: brightness(1.1); }

/* ── Quick Setup switch grids — markets + trade types as tactile switches ── */
.qs-switch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 7px;
}
.qs-sw {
  display: flex; align-items: center; gap: 9px;
  padding: 8px 11px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  cursor: pointer;
  position: relative; overflow: hidden;
  transition: border-color .2s ease, background .2s ease, transform .12s ease, box-shadow .2s ease;
}
.qs-sw:hover { border-color: rgba(230,233,242,0.34); background: rgba(230,233,242,0.05); transform: translateY(-1px); }
.qs-sw input { display: none; }
.qs-sw-emoji { font-size: 16px; flex: none; }
.qs-sw-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.qs-sw-name { font-family: var(--font-display); font-size: 11.5px; font-weight: 800; color: #f2f4f9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qs-sw-body small { font-size: 8.5px; color: var(--text-muted); letter-spacing: .05em; text-transform: uppercase; font-weight: 700; }
.qs-sw-track {
  position: relative; flex: none;
  width: 30px; height: 18px; border-radius: 999px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  transition: background .25s ease, border-color .25s ease;
}
.qs-sw-thumb {
  position: absolute; top: 1px; left: 1px;
  width: 14px; height: 14px; border-radius: 50%;
  background: #e6e9f2;
  transition: transform .25s ease, background .25s ease;
}
.qs-sw[data-on="true"] {
  border-color: rgba(33,208,122,0.5);
  background: rgba(33,208,122,0.1);
  box-shadow: 0 0 16px rgba(33,208,122,0.14), inset 0 0 0 1px rgba(33,208,122,0.1);
}
.qs-sw[data-on="true"] .qs-sw-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.qs-sw[data-on="true"] .qs-sw-thumb { transform: translateX(12px); background: #04140d; }
.qs-sw[data-on="true"] .qs-sw-name  { color: #7dffc4; }

/* ── MARKETS + TRADE TYPES · side-by-side multi-select dropdowns ──────────────
   In-flow expanders (not absolutely positioned) so the parent .qs-card
   overflow:hidden never clips an open panel. Each toggle shows the live
   selection summary + count; the option grid + sweep bar live inside the panel
   (unchanged markup — they still key off data-qs-grid / .qs-sw). */
.qs-dd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; margin: 14px 0; }
@media (max-width: 640px) { .qs-dd-row { grid-template-columns: 1fr; } }
.qs-dd { position: relative; min-width: 0; }
.qs-dd-toggle {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 13px; border-radius: 13px; cursor: pointer; text-align: left; font: inherit;
  border: 1px solid rgba(125,255,196,0.28);
  background: linear-gradient(135deg, rgba(6,3,16,0.94), rgba(12,8,26,0.94));
  color: var(--text);
  transition: border-color .2s ease, box-shadow .25s ease, transform .12s ease;
}
.qs-dd-toggle:hover { border-color: rgba(125,255,196,0.5); box-shadow: 0 0 20px -8px rgba(125,255,196,0.4); }
.qs-dd-toggle:active { transform: translateY(1px); }
.qs-dd[data-open] .qs-dd-toggle { border-color: rgba(230,233,242,0.6); box-shadow: 0 0 26px -8px rgba(230,233,242,0.5), inset 0 1px 0 rgba(230,233,242,0.08); }
.qs-dd-lead { display: flex; align-items: center; gap: 10px; min-width: 0; }
.qs-dd-icon { font-size: 18px; flex: none; }
.qs-dd-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.qs-dd-title { font-family: var(--font-display); font-size: 9.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.qs-dd-label { font-family: var(--font-display); font-size: 13px; font-weight: 800; color: #f2f4f9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qs-dd-tail { display: flex; align-items: center; gap: 8px; flex: none; }
.qs-dd-caret { font-size: 11px; color: var(--text-muted); transition: transform .25s ease, color .2s ease; }
.qs-dd[data-open] .qs-dd-caret { transform: rotate(180deg); color: #e6e9f2; }
.qs-dd-panel {
  display: none; margin-top: 8px; padding: 11px; border-radius: 13px;
  border: 1px solid rgba(230,233,242,0.3);
  background: linear-gradient(180deg, rgba(3,1,10,0.97), rgba(8,5,18,0.97));
  box-shadow: inset 0 0 0 1px rgba(230,233,242,0.06), 0 18px 44px -26px rgba(0,0,0,0.9);
  animation: qsDDin .18s ease;
}
.qs-dd[data-open] .qs-dd-panel { display: block; }
@keyframes qsDDin { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.qs-dd-panel .qs-sweep { margin: 0 0 9px; width: 100%; }
.qs-dd-panel .qs-switch-grid { grid-template-columns: 1fr; gap: 6px; }

/* MODULE PICKER (replaces tab nav) */
.sat-module-picker {
  display: grid; grid-template-columns: 1fr auto;
  gap: 10px; margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(230,233,242,0.22);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.7), rgba(14,10,30,0.7));
  box-shadow: 0 10px 24px -18px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.04);
}
.sat-module-picker-wrap { display: flex; align-items: center; gap: 10px; }
.sat-module-picker-wrap label {
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase; color: #d9c4c9;
  white-space: nowrap;
}
.sat-tabs-select { flex: 1; max-width: 320px; }
.sat-settings-btn {
  appearance: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border-radius: 11px;
  border: 1px solid rgba(250, 146, 0,0.5);
  background: linear-gradient(135deg, rgba(250, 146, 0,0.92), rgba(196,13,28,0.92));
  color: #fff;
  font-family: var(--font-display); font-weight: 800; font-size: 11.5px;
  letter-spacing: .06em;
  transition: transform .14s, box-shadow .25s, filter .2s;
  box-shadow: 0 6px 16px -8px rgba(250, 146, 0,0.5);
}
.sat-settings-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
  box-shadow: 0 10px 22px -8px rgba(250, 146, 0,0.7), 0 0 18px -4px rgba(250, 146, 0,0.6);
}
.sat-settings-icon { font-size: 14px; }

.qs-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,0.06); }
.qs-sum-tile { padding: 8px 11px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.qs-sum-tile small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.qs-sum-tile strong { font-family: var(--font-display); font-size: 14px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.qs-sum-tile strong[data-tier="hot"]  { color: #7dffc4; }
.qs-sum-tile strong[data-tier="warm"] { color: #ffd96b; }
.qs-sum-tile strong[data-tier="cool"] { color: #8b93a8; }
.qs-sum-ready { background: rgba(125,255,196,0.06); border-color: rgba(125,255,196,0.3); }

/* =====================================================================
   ⚡ ONE-TAP SMART PRESETS — full config in a single tap
   ===================================================================== */
.qs-presets { margin: 14px 0 2px; }
.qs-presets-lbl { display: block; font-family: var(--font-display); font-size: 9.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #b6b3bc; margin-bottom: 7px; }
.qs-presets-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.qs-preset {
  display: flex; flex-direction: column; align-items: stretch; gap: 5px; text-align: left;
  padding: 10px 12px 11px; border-radius: 13px; cursor: pointer;
  border: 1px solid rgba(255,255,255,0.1);
  background: linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.012));
  color: #f2f4f9; position: relative; overflow: hidden;
  transition: transform .18s cubic-bezier(.22,1,.36,1), border-color .25s, box-shadow .3s, background .3s;
}
.qs-preset:hover { transform: translateY(-2px); border-color: rgba(230,233,242,0.5); box-shadow: 0 14px 30px -18px rgba(0,0,0,0.85), 0 0 22px -10px rgba(230,233,242,0.55); }
.qs-preset:active { transform: translateY(0); }
.qs-preset:focus-visible { outline: none; border-color: rgba(230,233,242,0.6); box-shadow: 0 0 0 2px rgba(230,233,242,0.3); }
.qs-preset-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.qs-preset-emoji { font-size: 20px; flex: none; line-height: 1; filter: drop-shadow(0 0 6px rgba(125,255,196,0.3)); }
.qs-preset-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-family: var(--font-display); font-size: 12px; font-weight: 800; letter-spacing: .01em; line-height: 1.12; color: #f2f4f9; white-space: normal; overflow-wrap: anywhere; overflow: hidden; }
.qs-preset-sub { display: block; font-size: 9px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qs-preset-bars { display: flex; align-items: flex-end; gap: 2px; height: 16px; flex: none; }
.qs-preset-bars i { width: 3px; border-radius: 2px; background: rgba(255,255,255,0.16); transition: background .3s, box-shadow .3s; }
.qs-preset-bars i:nth-child(1) { height: 6px; }
.qs-preset-bars i:nth-child(2) { height: 9px; }
.qs-preset-bars i:nth-child(3) { height: 12px; }
.qs-preset-bars i:nth-child(4) { height: 16px; }
.qs-preset-bars[data-lvl="1"] i:nth-child(-n+1),
.qs-preset-bars[data-lvl="2"] i:nth-child(-n+2),
.qs-preset-bars[data-lvl="3"] i:nth-child(-n+3),
.qs-preset-bars[data-lvl="4"] i:nth-child(-n+4) { background: linear-gradient(180deg, #7dffc4, #e6e9f2); box-shadow: 0 0 6px -1px rgba(125,255,196,0.6); }
.qs-preset[data-active] {
  border-color: rgba(125,255,196,0.6);
  background: linear-gradient(135deg, rgba(125,255,196,0.12), rgba(230,233,242,0.05));
  box-shadow: 0 0 24px -8px rgba(125,255,196,0.6), inset 0 1px 0 rgba(255,255,255,0.12);
}
.qs-preset[data-active]::before {
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px;
  border-radius: 0 3px 3px 0; background: linear-gradient(180deg, #21d07a, #7dffc4);
  box-shadow: 0 0 8px rgba(125,255,196,0.7);
}
.qs-preset[data-active] .qs-preset-name { color: #bfffe0; }

/* =====================================================================
   🧠 AI RISK INTELLIGENCE — live grade + expectancy of the current config
   ===================================================================== */
.qs-intel {
  margin-top: 12px; padding: 13px 15px 14px; border-radius: 16px;
  border: 1px solid rgba(230,233,242,0.28);
  background:
    radial-gradient(130% 90% at 0% 0%, rgba(230,233,242,0.08), transparent 58%),
    radial-gradient(130% 90% at 100% 100%, rgba(250, 146, 0,0.08), transparent 58%),
    linear-gradient(135deg, rgba(6,3,16,0.92), rgba(12,8,26,0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 16px 36px -26px rgba(0,0,0,0.8);
  transition: border-color .35s ease, box-shadow .4s ease;
}
.qs-intel-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; }
.qs-intel-grade-wrap { position: relative; width: 46px; height: 46px; display: grid; place-items: center; flex: none; }
.qs-intel-grade { font-family: var(--font-display); font-size: 22px; font-weight: 900; letter-spacing: -.02em; color: #f2f4f9; z-index: 1; line-height: 1; }
.qs-intel-grade-ring { position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,0.12); transition: border-color .4s, box-shadow .4s; }
.qs-intel-head-text { min-width: 0; display: grid; gap: 3px; }
.qs-intel-tag { font-family: var(--font-display); font-size: 9px; font-weight: 800; letter-spacing: .14em; color: #e6e9f2; }
#qs-intel-verdict { font-size: 11.5px; font-weight: 600; line-height: 1.35; color: #e6e9f2; }
.qs-intel-rr { text-align: right; flex: none; display: grid; gap: 2px; }
.qs-intel-rr small { font-size: 8px; font-weight: 800; letter-spacing: .1em; color: var(--text-muted); }
.qs-intel-rr strong { font-family: var(--font-display); font-size: 16px; font-weight: 900; color: #f2f4f9; font-variant-numeric: tabular-nums; white-space: nowrap; }
.qs-intel-bar { height: 6px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; margin: 11px 0; }
.qs-intel-bar span { display: block; height: 100%; border-radius: inherit; background: rgba(230,233,242,0.6); transition: width .5s cubic-bezier(.22,1,.36,1), background .4s, box-shadow .4s; }
.qs-intel-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.qs-intel-m { padding: 8px 10px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.07); background: rgba(255,255,255,0.025); display: grid; gap: 1px; }
.qs-intel-m small { font-size: 9px; color: var(--text-muted); letter-spacing: .04em; font-weight: 700; }
.qs-intel-m strong { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.qs-intel-m span { font-size: 8.5px; color: var(--text-muted); }
.qs-intel-m strong[data-tier="hot"]  { color: #7dffc4; }
.qs-intel-m strong[data-tier="warm"] { color: #ffd96b; }
.qs-intel-m strong[data-tier="cool"] { color: #8b93a8; }
/* Grade-driven theming for the whole panel */
.qs-intel[data-grade="aplus"] { border-color: rgba(125,255,196,0.55); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 0 30px -12px rgba(125,255,196,0.5); }
.qs-intel[data-grade="aplus"] .qs-intel-grade { color: #7dffc4; text-shadow: 0 0 14px rgba(125,255,196,0.6); }
.qs-intel[data-grade="aplus"] .qs-intel-grade-ring { border-color: rgba(125,255,196,0.6); box-shadow: 0 0 16px -4px rgba(125,255,196,0.7), inset 0 0 12px -6px rgba(125,255,196,0.6); }
.qs-intel[data-grade="aplus"] #qs-intel-bar { background: linear-gradient(90deg, #21d07a, #7dffc4); box-shadow: 0 0 12px -2px rgba(125,255,196,0.7); }
.qs-intel[data-grade="a"] { border-color: rgba(125,255,196,0.45); }
.qs-intel[data-grade="a"] .qs-intel-grade { color: #9affd0; text-shadow: 0 0 12px rgba(125,255,196,0.45); }
.qs-intel[data-grade="a"] .qs-intel-grade-ring { border-color: rgba(125,255,196,0.5); box-shadow: 0 0 12px -5px rgba(125,255,196,0.55); }
.qs-intel[data-grade="a"] #qs-intel-bar { background: linear-gradient(90deg, #e6e9f2, #7dffc4); }
.qs-intel[data-grade="b"] { border-color: rgba(230,233,242,0.42); }
.qs-intel[data-grade="b"] .qs-intel-grade { color: #e6e9f2; text-shadow: 0 0 12px rgba(230,233,242,0.45); }
.qs-intel[data-grade="b"] .qs-intel-grade-ring { border-color: rgba(230,233,242,0.5); box-shadow: 0 0 12px -5px rgba(230,233,242,0.55); }
.qs-intel[data-grade="b"] #qs-intel-bar { background: linear-gradient(90deg, #e6e9f2, #d9c4c9); }
.qs-intel[data-grade="c"] { border-color: rgba(255,217,107,0.42); }
.qs-intel[data-grade="c"] .qs-intel-grade { color: #ffd96b; text-shadow: 0 0 12px rgba(255,217,107,0.45); }
.qs-intel[data-grade="c"] .qs-intel-grade-ring { border-color: rgba(255,217,107,0.5); box-shadow: 0 0 12px -5px rgba(255,217,107,0.5); }
.qs-intel[data-grade="c"] #qs-intel-bar { background: linear-gradient(90deg, #ffb347, #ffd96b); }
.qs-intel[data-grade="d"] { border-color: rgba(255,128,146,0.5); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 0 26px -12px rgba(255,128,146,0.5); }
.qs-intel[data-grade="d"] .qs-intel-grade { color: #8b93a8; text-shadow: 0 0 12px rgba(255,128,146,0.5); }
.qs-intel[data-grade="d"] .qs-intel-grade-ring { border-color: rgba(255,128,146,0.55); box-shadow: 0 0 14px -4px rgba(255,128,146,0.6); }
.qs-intel[data-grade="d"] #qs-intel-bar { background: linear-gradient(90deg, #ff5d6c, #8b93a8); box-shadow: 0 0 12px -3px rgba(255,128,146,0.6); }
.qs-intel[data-grade="d"] #qs-intel-verdict { color: #ffc2cb; }
@media (max-width: 640px) {
  .qs-presets-row { grid-template-columns: repeat(2, 1fr); }
  .qs-intel-metrics { grid-template-columns: repeat(2, 1fr); }
}

/* ── 🛰 Intelligence Modules launcher — folded into the Quick Setup risk hub ── */
.qs-modules {
  margin-top: 12px; padding: 13px 14px 14px; border-radius: 15px; position: relative; overflow: hidden;
  border: 1px solid rgba(230,233,242,0.22);
  background:
    radial-gradient(120% 150% at 0% 0%, rgba(230,233,242,0.10), transparent 55%),
    radial-gradient(120% 150% at 100% 0%, rgba(255,255,255,0.10), transparent 55%),
    linear-gradient(160deg, rgba(15,22,34,0.72), rgba(8,12,20,0.55));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 0 26px -16px rgba(230,233,242,0.6);
}
.qs-modules::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, #e6e9f2, #d9c4c9); opacity: .85;
}
.qs-modules-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 11px; }
.qs-modules-tag { font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: .14em; color: #e6e9f2; }
.qs-modules-head small { font-size: 10px; color: var(--text-muted); }
.qs-modules-launch { display: grid; grid-template-columns: 1fr auto; gap: 9px; align-items: stretch; }
.qs-modules-pick { position: relative; display: flex; align-items: center; min-width: 0; }
.qs-modules-pick-icon {
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%); font-size: 15px;
  pointer-events: none; z-index: 2; line-height: 1; filter: drop-shadow(0 0 6px rgba(230,233,242,0.5));
}
.qs-modules-pick .sat-tabs-select { width: 100%; padding-left: 34px; }
.qs-modules-settings { white-space: nowrap; }
.qs-modules-active-wrap {
  margin-top: 9px; width: 100%; display: flex; align-items: center; gap: 9px;
  padding: 9px 12px; border-radius: 11px; cursor: pointer; text-align: left;
  border: 1px solid rgba(125,255,196,0.22);
  background: linear-gradient(135deg, rgba(125,255,196,0.08), rgba(230,233,242,0.04));
  transition: border-color .25s, box-shadow .3s, transform .18s;
}
.qs-modules-active-wrap:hover { border-color: rgba(125,255,196,0.5); box-shadow: 0 0 20px -10px rgba(125,255,196,0.6); transform: translateY(-1px); }
.qs-modules-active-wrap:active { transform: translateY(0); }
.qs-modules-active-wrap:focus-visible { outline: none; border-color: rgba(125,255,196,0.6); box-shadow: 0 0 0 2px rgba(125,255,196,0.3); }
.qs-modules-active-lbl { font-size: 9px; font-weight: 800; letter-spacing: .12em; color: var(--text-muted); flex: none; }
.qs-modules-active { font-family: var(--font-display); font-size: 13px; font-weight: 800; color: #bfffe0; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qs-modules-jump-cue { font-size: 10px; font-weight: 800; letter-spacing: .04em; color: #e6e9f2; flex: none; opacity: .85; }
.sat-modpanel-title #sat-active-module-name { color: #7dffc4; }
@media (max-width: 640px) { .qs-modules-launch { grid-template-columns: 1fr; } }

/* =====================================================================
   🤖 AI MARKET INTELLIGENCE
   ===================================================================== */
.mai-hero {
  display: grid; grid-template-columns: 1fr auto;
  gap: 18px; padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(230,233,242,0.32);
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(230,233,242,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(14,10,30,0.85));
  box-shadow: 0 14px 30px -22px rgba(0,0,0,0.6), 0 0 24px -10px rgba(230,233,242,0.4);
  margin-bottom: 12px;
}
.mai-hero[data-tier="hot"]  { border-color: rgba(125,255,196,0.55); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.7), 0 0 30px -6px rgba(125,255,196,0.55); }
.mai-hero[data-tier="warm"] { border-color: rgba(230,233,242,0.5); }
.mai-hero[data-tier="cool"] { border-color: rgba(255,128,146,0.4); }
.mai-hero-left { min-width: 0; }
.mai-hero-tag { display: inline-block; font-family: var(--font-display); font-size: 9.5px; font-weight: 800; letter-spacing: .14em; padding: 3px 9px; border-radius: 999px; background: rgba(230,233,242,0.12); color: #e6e9f2; border: 1px solid rgba(230,233,242,0.3); }
.mai-hero-main { display: flex; align-items: baseline; gap: 12px; margin: 8px 0 4px; flex-wrap: wrap; }
.mai-hero-main strong { font-family: var(--font-display); font-size: 22px; font-weight: 900; color: #f2f4f9; letter-spacing: .02em; }
.mai-hero[data-tier="hot"] .mai-hero-main strong { color: #7dffc4; text-shadow: 0 0 14px rgba(125,255,196,0.5); }
.mai-hero-arrow { font-family: var(--font-display); font-size: 20px; color: #e6e9f2; }
.mai-hero-narr { font-size: 12px; color: var(--text-dim); line-height: 1.5; display: block; }
.mai-hero-right { text-align: right; display: grid; place-items: center; min-width: 100px; }
.mai-hero-score { font-family: var(--font-display); font-size: 36px; font-weight: 900; color: #e6e9f2; font-variant-numeric: tabular-nums; }
.mai-hero[data-tier="hot"] .mai-hero-score { color: #7dffc4; text-shadow: 0 0 16px rgba(125,255,196,0.55); }
.mai-hero-score-sub { font-size: 9.5px; color: var(--text-muted); letter-spacing: .12em; text-transform: uppercase; }

.mai-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.mai-pillar { padding: 8px 11px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.mai-pillar small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.mai-pillar strong { font-family: var(--font-display); font-size: 14px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.mai-pillar span { font-size: 10px; color: var(--text-dim); }

.mai-table-head { display: flex; align-items: baseline; gap: 10px; margin: 6px 0; }
.mai-table-head span { font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: .08em; color: #d9c4c9; }
.mai-table-head small { color: var(--text-muted); font-size: 10.5px; }
.mai-table { display: grid; gap: 4px; margin-bottom: 12px; }
.mai-row {
  display: grid; grid-template-columns: 40px 1fr 1fr 1.5fr 60px auto;
  align-items: center; gap: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.025);
  font-family: var(--font-display); font-size: 11.5px;
  transition: all .2s ease;
}
.mai-row:hover { transform: translateX(2px); border-color: rgba(230,233,242,0.35); }
.mai-row strong { color: #f2f4f9; font-size: 12.5px; }
.mai-rank { color: var(--text-muted); font-size: 10.5px; letter-spacing: .04em; }
.mai-row-type { color: #d9c4c9; font-size: 11px; }
.mai-row-conv { display: flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }
.mai-row-bar { display: inline-block; width: 80px; height: 4px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.mai-row-bar i { display: block; height: 100%; background: linear-gradient(90deg, #8b93a8, #e6e9f2); border-radius: 999px; transition: width .35s ease; }
.mai-row-vol { color: var(--text-muted); font-variant-numeric: tabular-nums; font-size: 11px; }
.mai-live { font-size: 9px; font-weight: 800; padding: 2px 7px; border-radius: 999px; background: linear-gradient(135deg, #21d07a, #7dffc4); color: #04140d; letter-spacing: .1em; box-shadow: 0 0 10px -2px rgba(125,255,196,0.6); }
.mai-row[data-tier="hot"]  { border-color: rgba(125,255,196,0.4); background: rgba(125,255,196,0.05); box-shadow: 0 0 16px -8px rgba(125,255,196,0.45); }
.mai-row[data-tier="hot"]  strong { color: #7dffc4; }
.mai-row[data-tier="hot"]  .mai-row-bar i { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.mai-row[data-tier="warm"] strong { color: #e6e9f2; }
.mai-row[data-rank="1"] {
  border-color: rgba(125,255,196,0.55);
  background: linear-gradient(90deg, rgba(125,255,196,0.06), transparent);
  box-shadow: 0 0 22px -8px rgba(125,255,196,0.55);
}

.mai-commentary {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(250, 146, 0,0.32);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(250, 146, 0,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(14,10,30,0.85));
  margin-bottom: 10px;
}
.mai-comm-avatar { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(250, 146, 0,0.9), rgba(33,208,122,0.7)); font-size: 18px; box-shadow: 0 0 14px -4px rgba(250, 146, 0,0.6); }
.mai-comm-body { display: grid; gap: 2px; flex: 1; min-width: 0; }
.mai-comm-body strong { font-family: var(--font-display); font-size: 9.5px; font-weight: 800; letter-spacing: .14em; color: #d9c4c9; }
.mai-comm-body span { font-size: 12px; color: #e6e9f2; line-height: 1.45; }
.mai-comm-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.16); flex: none; }
.mai-comm-dot[data-state="hot"]  { background: #7dffc4; box-shadow: 0 0 12px -2px #7dffc4; animation: maiDotPulse 1.4s ease-in-out infinite; }
.mai-comm-dot[data-state="warm"] { background: #e6e9f2; box-shadow: 0 0 10px -3px #e6e9f2; }
.mai-comm-dot[data-state="cool"] { background: #8b93a8; box-shadow: 0 0 10px -3px #8b93a8; }
@keyframes maiDotPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: 0.65; } }

.mai-actions { display: flex; align-items: center; gap: 8px; }
.mai-deploy {
  background: linear-gradient(135deg, #21d07a, #7dffc4) !important;
  color: #04140d !important;
  border-color: rgba(33,208,122,0.7) !important;
  font-weight: 800 !important;
  box-shadow: 0 0 18px -4px rgba(33,208,122,0.6) !important;
}
.mai-foot { margin-left: auto; font-size: 10.5px; color: var(--text-muted); font-family: var(--font-display); }

@media (max-width: 900px) {
  .qs-grid { grid-template-columns: 1fr 1fr; }
  .qs-summary { grid-template-columns: repeat(3, 1fr); }
  .mai-hero { grid-template-columns: 1fr; }
  .mai-hero-right { text-align: left; }
  .mai-pillars { grid-template-columns: 1fr 1fr; }
  .mai-row { grid-template-columns: 30px 1fr 1fr 1fr; gap: 6px; }
  .mai-row-vol, .mai-live { display: none; }
}

/* ===========================================================
   🌟 NEXT-LEVEL AI INTELLIGENCE — 6 sophisticated cards
   =========================================================== */
.ni-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.ni-card {
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(230,233,242,0.22);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(14,10,30,0.85));
  display: grid; gap: 8px;
  box-shadow: 0 12px 30px -22px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.04);
  transition: transform .15s ease, border-color .25s ease, box-shadow .35s ease;
  position: relative; overflow: hidden;
  backdrop-filter: blur(4px) saturate(120%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
}
.ni-card:hover { transform: translateY(-2px); border-color: rgba(230,233,242,0.45); box-shadow: 0 16px 34px -22px rgba(0,0,0,0.65), 0 0 22px -10px rgba(230,233,242,0.5); }
.ni-card header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.ni-card header span { font-family: var(--font-display); font-size: 10px; font-weight: 800; letter-spacing: .1em; color: var(--text-muted); }
.ni-card header strong { font-family: var(--font-display); font-size: 13px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.ni-card header strong[data-tier="hot"]  { color: #7dffc4; text-shadow: 0 0 10px rgba(125,255,196,0.4); }
.ni-card header strong[data-tier="warm"] { color: #e6e9f2; }
.ni-card header strong[data-tier="cool"] { color: #8b93a8; }
.ni-card small { font-size: 11px; color: var(--text-dim); }

/* MOOD */
.ni-mood-face { font-size: 50px; line-height: 1; text-align: center; padding: 6px 0; filter: drop-shadow(0 4px 10px rgba(0,0,0,0.4)); animation: niMoodBounce 2.6s ease-in-out infinite; }
@keyframes niMoodBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.ni-mood-bar { height: 6px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.ni-mood-bar > i { display: block; height: 100%; width: 50%; border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #ffd96b, #7dffc4); transition: width .4s ease; }
.ni-mood-bar > i[data-tier="hot"]  { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.ni-mood-bar > i[data-tier="warm"] { background: linear-gradient(90deg, #8b93a8, #e6e9f2); }

/* ENERGY */
.ni-energy-bar { height: 12px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; position: relative; }
.ni-energy-bar > i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #21d07a, #7dffc4); width: 100%; transition: width .4s ease, background .4s ease; box-shadow: inset 0 0 8px rgba(255,255,255,0.2); }
.ni-energy-bar > i[data-tier="warm"] { background: linear-gradient(90deg, #ffb35a, #ffd96b); }
.ni-energy-bar > i[data-tier="cool"] { background: linear-gradient(90deg, #8b93a8, #8b93a8); }
.ni-energy-stats { display: flex; gap: 12px; }
.ni-energy-stats small { font-size: 10.5px; color: var(--text-muted); }
.ni-energy-stats strong { color: #f2f4f9; font-family: var(--font-display); font-variant-numeric: tabular-nums; }

/* RISK GAUGE */
.ni-risk-gauge { width: 100%; height: 70px; }
.ni-risk-bg { fill: none; stroke: rgba(255,255,255,0.08); stroke-width: 8; stroke-linecap: round; }
.ni-risk-fg { fill: none; stroke: #7dffc4; stroke-width: 8; stroke-linecap: round; stroke-dasharray: 100; transition: stroke-dashoffset .5s ease, stroke .35s ease; filter: drop-shadow(0 0 8px currentColor); }
.ni-risk-fg[data-tier="warm"] { stroke: #ffd96b; }
.ni-risk-fg[data-tier="cool"] { stroke: #8b93a8; }
.ni-risk-num { font: 800 18px var(--font-display); fill: #f2f4f9; font-variant-numeric: tabular-nums; }

/* SURVIVAL ENGINE */
.ni-survival { border-color: rgba(250, 146, 0,0.34); }
.ni-survival::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(120% 70% at 100% 0%, rgba(250, 146, 0,0.14), transparent 60%); }
.ni-survival > * { position: relative; z-index: 1; }
.ni-survival header strong[data-tier="safe"]   { color: #7dffc4; text-shadow: 0 0 10px rgba(125,255,196,0.4); }
.ni-survival header strong[data-tier="warn"]   { color: #ffd96b; }
.ni-survival header strong[data-tier="danger"] { color: #8b93a8; text-shadow: 0 0 10px rgba(139, 147, 168,0.4); }
.ni-surv-gaugewrap { display: grid; justify-items: center; gap: 1px; }
.ni-surv-gauge { width: 100%; height: 62px; }
.ni-surv-bg { fill: none; stroke: rgba(255,255,255,0.08); stroke-width: 8; stroke-linecap: round; }
.ni-surv-fg { fill: none; stroke: #8b93a8; stroke-width: 8; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset .6s ease, stroke .35s ease; filter: drop-shadow(0 0 8px currentColor); }
.ni-surv-fg[data-tier="warn"] { stroke: #ffd96b; }
.ni-surv-fg[data-tier="safe"] { stroke: #7dffc4; }
.ni-surv-pct { font: 800 17px var(--font-display); fill: #f2f4f9; font-variant-numeric: tabular-nums; }
.ni-surv-gaugelbl { text-align: center; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.ni-surv-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ni-surv-stat { display: grid; gap: 1px; padding: 6px 4px; border-radius: 9px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); text-align: center; }
.ni-surv-stat small { font-size: 8.5px; letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted); }
.ni-surv-stat strong { font: 800 12.5px var(--font-display); color: #f2f4f9; font-variant-numeric: tabular-nums; }
.ni-surv-stat strong[data-tier="safe"]   { color: #7dffc4; }
.ni-surv-stat strong[data-tier="warm"],
.ni-surv-stat strong[data-tier="warn"]   { color: #ffd96b; }
.ni-surv-stat strong[data-tier="danger"] { color: #8b93a8; }

/* WAVE */
.ni-wave-svg { width: 100%; height: 50px; border-radius: 8px; background: rgba(0,0,0,0.3); }
.ni-wave-svg path { transition: d .4s ease; }
#ni-wave-trend[data-tier="hot"]  { color: #7dffc4; }
#ni-wave-trend[data-tier="warm"] { color: #ffd96b; }
#ni-wave-trend[data-tier="cool"] { color: #8b93a8; }

/* FORECAST */
.ni-fc-rows { display: grid; gap: 6px; }
.ni-fc-row { display: grid; grid-template-columns: 36px 1fr 50px; gap: 8px; align-items: center; }
.ni-fc-row small { font-size: 10.5px; color: var(--text-muted); font-family: var(--font-display); letter-spacing: .04em; }
.ni-fc-bar { height: 6px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.ni-fc-bar > i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #e6e9f2); width: 0; transition: width .4s ease; }
.ni-fc-bar > i[data-tier="hot"]  { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.ni-fc-bar > i[data-tier="warm"] { background: linear-gradient(90deg, #e6e9f2, #8b93a8); }
.ni-fc-row strong { font-family: var(--font-display); font-size: 12px; font-weight: 800; color: #f2f4f9; text-align: right; font-variant-numeric: tabular-nums; }
.ni-fc-row strong[data-tier="hot"]  { color: #7dffc4; }
.ni-fc-row strong[data-tier="warm"] { color: #e6e9f2; }
.ni-fc-row strong[data-tier="cool"] { color: var(--text-muted); }

/* TROPHIES */
.ni-trophy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.ni-trophy-slot {
  padding: 6px 4px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.02);
  text-align: center;
  opacity: .35;
  transition: opacity .25s, border-color .25s, transform .15s, box-shadow .25s;
}
.ni-trophy-slot span { font-size: 18px; display: block; filter: grayscale(1); transition: filter .25s; }
.ni-trophy-slot small { font-size: 8.5px; color: var(--text-muted); display: block; line-height: 1.1; margin-top: 2px; letter-spacing: .03em; }
.ni-trophy-slot.is-unlocked { opacity: 1; border-color: rgba(125,255,196,0.45); background: linear-gradient(135deg, rgba(125,255,196,0.06), rgba(125,255,196,0.02)); box-shadow: 0 0 12px -4px rgba(125,255,196,0.5); }
.ni-trophy-slot.is-unlocked span { filter: none; animation: niTrophyPop .35s ease-out; }
.ni-trophy-slot.is-unlocked small { color: #7dffc4; }
@keyframes niTrophyPop { 0% { transform: scale(0.7); } 80% { transform: scale(1.15); } 100% { transform: scale(1); } }

@media (max-width: 900px) { .ni-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .ni-grid { grid-template-columns: 1fr; } }

/* Hot streak banner — premium glass */
/* PERF: a backdrop-filter on a fixed, animating, full-width banner forced the
   compositor to re-blur the entire page behind it every frame for the 5.5s it
   was visible — that was the "everything glitches when the swarm card pops up"
   jank. The banner's own gradient is opaque enough; the blur is pure cost. */
.ai-hot-streak {
  will-change: transform, opacity;   /* GPU-composite the slide-in, no repaint */
}

/* KPI strip */
.sat-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 16px; }
.sat-kpi {
  display: grid; gap: 1px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.7), rgba(14,10,30,0.7));
  transition: border-color .25s ease, box-shadow .25s ease;
}
.sat-kpi small { font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.sat-kpi strong { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-kpi span { font-size: 9.5px; color: var(--text-dim); }
.sat-kpi strong[data-tier="hot"]  { color: #7dffc4; text-shadow: 0 0 10px rgba(125,255,196,0.4); }
.sat-kpi strong[data-tier="warm"] { color: #e6e9f2; }
.sat-kpi strong[data-tier="cool"] { color: #8b93a8; }
body.sat-big-kpi .sat-kpi strong { font-size: 24px; }

/* Row title */
/* Premium zone headers — auto-numbered command-center sections. */
.skilli-auto-trading { counter-reset: satzone; }
.sat-row-title {
  counter-increment: satzone;
  position: relative;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: 32px 0 16px; padding: 0 0 11px 0;
  font-family: var(--font-display); font-size: 13px; font-weight: 900;
  letter-spacing: .14em; text-transform: uppercase;
  background: linear-gradient(90deg, #ffe3e5, #8b93a8 60%, #f4ede0);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(90deg, rgba(250, 146, 0,.45), rgba(230,233,242,.16) 42%, transparent) 1;
}
.sat-row-title::before {
  content: "ZONE " counter(satzone, decimal-leading-zero);
  flex: none;
  -webkit-text-fill-color: #eceef2; color: #eceef2;
  font-size: 9.5px; font-weight: 800; letter-spacing: .18em;
  padding: 5px 11px; border-radius: 999px;
  border: 1px solid rgba(250, 146, 0,.45);
  background: linear-gradient(135deg, rgba(250, 146, 0,.2), rgba(230,233,242,.1));
  box-shadow: 0 0 18px -6px rgba(250, 146, 0,.65), inset 0 1px 0 rgba(255,255,255,.08);
}
.sat-row-title::after {
  content: ""; position: absolute; left: 0; bottom: -1px; width: 64px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, #fa9200, #e6e9f2, #21d07a);
  box-shadow: 0 0 10px rgba(230,233,242,.6);
}
.sat-row-title small {
  -webkit-text-fill-color: var(--text-muted); color: var(--text-muted);
  font-weight: 500; letter-spacing: .04em; text-transform: none; font-size: 10.5px;
}

/* Core v2 — same as before but tighter gap */
.sat-core-v2 { gap: 10px; }

/* MASTER SWITCHES ROW */
.sat-switches {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  margin-bottom: 8px;
}
.sat-sw {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.sat-sw input { display: none; }
.sat-sw-icon { font-size: 16px; }
.sat-sw-name { flex: 1 1 auto; font-family: var(--font-display); font-size: 11.5px; font-weight: 700; color: #f2f4f9; }
.sat-sw-track {
  position: relative; flex: none;
  width: 30px; height: 18px; border-radius: 999px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  transition: background .25s ease, border-color .25s ease;
}
.sat-sw-thumb {
  position: absolute; top: 1px; left: 1px;
  width: 14px; height: 14px; border-radius: 50%;
  background: #e6e9f2;
  transition: transform .25s ease, background .25s ease;
}
.sat-sw[data-on="true"] {
  border-color: rgba(33,208,122,0.45);
  background: rgba(33,208,122,0.08);
}
.sat-sw[data-on="true"] .sat-sw-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.sat-sw[data-on="true"] .sat-sw-thumb { transform: translateX(12px); background: #04140d; }
.sat-sw[data-on="true"] .sat-sw-name  { color: #7dffc4; }

/* CRACKED ANALYZERS */
.sat-cracked { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 8px; }
.sat-crack {
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(250, 146, 0,0.32);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.12), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.8), rgba(14,10,30,0.8));
  transition: border-color .25s ease, box-shadow .25s ease, transform .15s ease;
}
.sat-crack:hover { transform: translateY(-2px); border-color: rgba(230,233,242,0.55); }
.sat-crack header { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.crack-emoji { font-size: 18px; }
.sat-crack strong { font-family: var(--font-display); font-size: 12.5px; color: #f2f4f9; }
.crack-readout { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.crack-conf { font-family: var(--font-display); font-size: 22px; font-weight: 900; color: #e6e9f2; font-variant-numeric: tabular-nums; }
.crack-dir  { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--text-dim); }
.crack-dir[data-d="up"]   { color: #21d07a; }
.crack-dir[data-d="down"] { color: #8b93a8; }
.crack-bar { height: 5px; border-radius: 999px; background: rgba(255,255,255,0.06); overflow: hidden; margin-bottom: 7px; }
.crack-bar > i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #e6e9f2); transition: width .35s ease; }
.sat-crack small { font-size: 10px; color: var(--text-dim); }
.sat-crack[data-tier="hot"]  { border-color: rgba(125,255,196,0.6); box-shadow: 0 0 22px -8px rgba(125,255,196,0.55); }
.sat-crack[data-tier="hot"] .crack-conf { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,0.45); }
.sat-crack[data-tier="hot"] .crack-bar > i { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.sat-crack[data-tier="warm"] .crack-conf { color: #e6e9f2; }

/* TABS v2 */
.sat-tabs-v2 { max-height: 110px; overflow-y: auto; }

/* NEURAL LAB */
#sat-neural-canvas { width: 100%; height: 280px; border-radius: 12px; background: #050414; }
.sat-neural-foot { margin-top: 6px; font-size: 12px; color: var(--text-dim); }

/* RISK HALO */
.sat-halo-wrap { display: grid; grid-template-columns: 220px 1fr; gap: 20px; align-items: center; }
.sat-halo-svg { width: 220px; height: 220px; }
.sat-halo-bg { fill: none; stroke: rgba(255,255,255,0.08); stroke-width: 16; }
.sat-halo-fg { fill: none; stroke: #7dffc4; stroke-width: 16; stroke-linecap: round; stroke-dasharray: 100; transform: rotate(-90deg); transform-origin: center; transition: stroke-dashoffset .5s ease, stroke .35s ease; }
.sat-halo-fg[data-tier="warm"] { stroke: #ffd96b; }
.sat-halo-fg[data-tier="cool"] { stroke: #8b93a8; }
.sat-halo-num { font: 800 38px var(--font-display); fill: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-halo-label { font: 700 9px var(--font-display); fill: var(--text-muted); letter-spacing: .15em; }
.sat-halo-legend { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.sat-halo-legend > div { padding: 9px 11px; border: 1px solid rgba(255,255,255,0.1); border-radius: 11px; background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.sat-halo-legend small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.sat-halo-legend strong { font-family: var(--font-display); font-size: 16px; color: #f2f4f9; font-variant-numeric: tabular-nums; }

/* BRAIN MATRIX */
.sat-matrix { display: grid; gap: 2px; padding: 6px; border-radius: 12px; background: rgba(0,0,0,0.3); }
.bm-cell {
  display: grid; place-items: center;
  padding: 6px 4px;
  border-radius: 4px;
  background: rgba(255,255,255,0.04);
  font: 800 10px var(--font-display);
  font-variant-numeric: tabular-nums;
  color: #e6e9f2;
  min-height: 30px;
}
.bm-head { background: transparent; color: var(--text-muted); font-size: 9px; }
.bm-cell[data-tier="hot"]  { background: rgba(125,255,196,0.22); color: #7dffc4; }
.bm-cell[data-tier="warm"] { background: rgba(230,233,242,0.16); color: #e6e9f2; }
.bm-cell[data-tier="cool"] { background: rgba(255,128,146,0.18); color: #8b93a8; }

/* PROFIT LOCK */
.sat-lock-grid, .sat-bank-grid, .sat-risk-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sat-lock-card { padding: 9px 11px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); display: grid; gap: 3px; }
.sat-lock-card small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.sat-lock-card strong { font-family: var(--font-display); font-size: 18px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-lock-card span { font-size: 10px; color: var(--text-dim); }
.sat-lock-card input[type="range"] { width: 100%; }
.sat-lock-card strong[data-state="armed"]    { color: #7dffc4; }
.sat-lock-card strong[data-state="disarmed"] { color: var(--text-muted); }

/* =====================================================================
   🕒 AI SMART COOLDOWN
   ===================================================================== */
.cd-wrap { display: grid; grid-template-columns: 240px 1fr; gap: 16px; align-items: start; }
.cd-ring-wrap { display: grid; place-items: center; }
.cd-ring-svg { width: 220px; height: 220px; }
.cd-ring-bg { fill: none; stroke: rgba(255,255,255,0.06); stroke-width: 14; }
.cd-ring-fg { fill: none; stroke: #e6e9f2; stroke-width: 14; stroke-linecap: round; stroke-dasharray: 100; transform: rotate(-90deg); transform-origin: center; transition: stroke-dashoffset .8s ease, stroke .25s ease; filter: drop-shadow(0 0 12px currentColor); }
.cd-ring-fg[data-tier="warm"] { stroke: #ffd96b; }
.cd-ring-fg[data-tier="hot"]  { stroke: #7dffc4; }
.cd-ring-num   { font: 800 38px var(--font-display); fill: #f2f4f9; font-variant-numeric: tabular-nums; }
.cd-ring-sub   { font: 700 11px var(--font-display); fill: #e6e9f2; letter-spacing: .14em; }
.cd-ring-state { font: 600 10px var(--font-display); fill: var(--text-muted); letter-spacing: .08em; }
.cd-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.cd-stat { padding: 9px 11px; border: 1px solid rgba(255,255,255,0.08); border-radius: 11px; background: rgba(255,255,255,0.03); display: grid; gap: 4px; }
.cd-stat small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.cd-stat strong { font-family: var(--font-display); font-size: 16px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.cd-stat strong[data-state="on"]  { color: #7dffc4; }
.cd-stat strong[data-state="off"] { color: var(--text-muted); }
.cd-stat input[type="range"] { width: 100%; accent-color: #e6e9f2; }
.cd-adapt-toggle { display: flex; align-items: center; cursor: pointer; }
.cd-adapt-toggle input { display: none; }
.cd-adapt-track { position: relative; display: inline-block; width: 34px; height: 18px; border-radius: 999px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.18); transition: background .25s; }
.cd-adapt-thumb { position: absolute; top: 1px; left: 1px; width: 14px; height: 14px; border-radius: 50%; background: #e6e9f2; transition: transform .25s, background .25s; }
.cd-adapt-toggle input:checked + .cd-adapt-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.cd-adapt-toggle input:checked + .cd-adapt-track .cd-adapt-thumb { transform: translateX(16px); background: #04140d; }
.cd-insight { grid-column: 1 / -1; padding: 10px 12px; border-radius: 11px; border: 1px dashed rgba(250, 146, 0,0.3); background: rgba(250, 146, 0,0.06); display: grid; gap: 6px; }
.cd-ins-row { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.cd-ins-row span { color: var(--text-muted); }
.cd-ins-row strong { font-family: var(--font-display); color: #f2f4f9; font-variant-numeric: tabular-nums; }

/* =====================================================================
   🔄 AI REINVESTMENT ENGINE
   ===================================================================== */
.re-modes { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-bottom: 12px; }
.re-mode { display: grid; gap: 2px; cursor: pointer; padding: 10px 8px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); text-align: left; transition: all .2s ease; }
.re-mode:hover { border-color: rgba(230,233,242,0.4); }
.re-mode strong { font-family: var(--font-display); font-size: 11.5px; color: #f2f4f9; }
.re-mode span { font-size: 9.5px; color: var(--text-muted); }
.re-mode[data-active="true"] { border-color: rgba(33,208,122,0.6); background: rgba(33,208,122,0.08); box-shadow: 0 0 16px -8px rgba(33,208,122,0.5); }
.re-mode[data-active="true"] strong { color: #7dffc4; }
.re-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.re-stat { padding: 9px 11px; border: 1px solid rgba(255,255,255,0.08); border-radius: 11px; background: rgba(255,255,255,0.03); display: grid; gap: 2px; }
.re-stat small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.re-stat strong { font-family: var(--font-display); font-size: 17px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.re-stat span { font-size: 10px; color: var(--text-dim); }
.re-stat input { padding: 4px 8px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: #f2f4f9; font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums; }
.re-stat strong[data-state="on"]   { color: #7dffc4; }
.re-stat strong[data-state="idle"] { color: #ffd96b; }
.re-stat strong[data-state="off"]  { color: var(--text-muted); }
.re-history { padding: 10px 12px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.025); font-size: 12px; color: var(--text-dim); display: grid; gap: 4px; }
.re-hist-row { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 8px; padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,0.05); }
.re-hist-row span { color: var(--text-muted); font-size: 10.5px; }
.re-hist-row strong { color: #7dffc4; font-family: var(--font-display); font-variant-numeric: tabular-nums; }
.re-hist-row small { color: var(--text-dim); font-size: 10.5px; }

/* =====================================================================
   🔒 AI SECURE PROFIT VAULT
   ===================================================================== */
.vault-hero { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.vault-card { padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); display: grid; gap: 3px; }
.vault-card small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.vault-card strong { font-family: var(--font-display); font-size: 22px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.vault-card span { font-size: 10px; color: var(--text-dim); }
.vault-balance {
  background: radial-gradient(140% 80% at 0% 0%, rgba(125,255,196,0.15), transparent 55%), linear-gradient(135deg, rgba(8,28,16,0.85), rgba(8,4,20,0.85));
  border-color: rgba(125,255,196,0.45);
  box-shadow: 0 0 20px -8px rgba(125,255,196,0.5);
}
.vault-balance strong { color: #7dffc4; font-size: 30px; text-shadow: 0 0 14px rgba(125,255,196,0.4); }
.vault-pct input { width: 100%; accent-color: #7dffc4; margin-top: 4px; }
.vault-pct strong { color: #e6e9f2; }
.vault-ai strong { color: #d9c4c9; }
.vault-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 10px; }
.vault-stat { padding: 8px 11px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.vault-stat small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.vault-stat strong { font-family: var(--font-display); font-size: 15px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.vault-stat strong[data-state="secured"] { color: #7dffc4; }
.vault-stat strong[data-state="open"]    { color: var(--text-muted); }
.vault-controls { display: flex; gap: 6px; margin-bottom: 10px; }
.vault-btn-deposit  { color: #7dffc4 !important; border-color: rgba(125,255,196,0.45) !important; }
.vault-btn-withdraw { color: #ffd96b !important; border-color: rgba(255,217,107,0.45) !important; }
.vault-btn-clear    { color: #8b93a8 !important; border-color: rgba(255,128,146,0.45) !important; margin-left: auto; }
.vault-history { padding: 10px 12px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.025); font-size: 12px; color: var(--text-dim); max-height: 220px; overflow-y: auto; }
.vault-hist-row { display: grid; grid-template-columns: 80px 1fr 60px; gap: 10px; padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,0.05); }
.vault-hist-row span { color: var(--text-muted); font-size: 10.5px; }
.vault-hist-row strong { font-family: var(--font-display); font-variant-numeric: tabular-nums; }
.vault-hist-row[data-kind="win"]      strong, .vault-hist-row[data-kind="manual"] strong { color: #7dffc4; }
.vault-hist-row[data-kind="withdraw"] strong { color: #ffd96b; }
.vault-hist-row small { color: var(--text-dim); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 900px) {
  .cd-wrap { grid-template-columns: 1fr; }
  .re-modes { grid-template-columns: repeat(2, 1fr); }
  .re-stats { grid-template-columns: 1fr 1fr; }
  .vault-hero { grid-template-columns: 1fr; }
  .vault-stats { grid-template-columns: 1fr 1fr; }
}

/* RECOVERY */
.sat-recovery { display: grid; gap: 8px; }
.sat-rec-row {
  display: grid; grid-template-columns: 200px 1fr 1fr; gap: 12px; align-items: center;
  padding: 9px 12px; border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03);
}
.sat-rec-row > span { font-size: 11px; color: var(--text-muted); font-family: var(--font-display); font-weight: 700; letter-spacing: .05em; }
.sat-rec-row strong { font-family: var(--font-display); font-size: 16px; color: #f2f4f9; }
.sat-rec-row input[type="range"] { width: 100%; }
.sat-rec-row strong[data-state="active"] { color: #ffd96b; text-shadow: 0 0 12px rgba(255,217,107,0.4); }
.sat-rec-row strong[data-state="idle"]   { color: var(--text-muted); }

/* SETTINGS */
.sat-settings { display: grid; gap: 6px; }
.sat-set-row {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  font-size: 12.5px; color: #e6e9f2; cursor: pointer;
}
.sat-set-row input[type="checkbox"] { appearance:none; -webkit-appearance:none; position:relative; flex:0 0 auto; width:40px; height:22px; margin:0; cursor:pointer;
  border:1px solid rgba(255,255,255,.18); border-radius:999px; background:linear-gradient(180deg, rgba(48,56,74,.92), rgba(22,27,40,.96));
  box-shadow:inset 0 1px 3px rgba(0,0,0,.55); transition:background .28s ease, border-color .28s ease, box-shadow .28s ease; }
.sat-set-row input[type="checkbox"]::before { content:""; position:absolute; top:2.5px; left:3px; width:16px; height:16px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#dfe2e8); box-shadow:0 2px 5px rgba(0,0,0,.5); transition:transform .28s cubic-bezier(.34,1.56,.64,1); }
.sat-set-row input[type="checkbox"]:checked { border-color:rgba(33,208,122,.55); background:linear-gradient(135deg,#15d6a2,#0a8f6c); box-shadow:0 0 14px rgba(21,214,162,.4); }
.sat-set-row input[type="checkbox"]:checked::before { transform:translateX(17px); }
.sat-set-actions { display: flex; gap: 8px; margin-top: 10px; }

/* STRIP v2 — 6 pills */
.sat-strip-v2 { grid-template-columns: repeat(6, 1fr); }

/* HISTORY */
.sat-history {
  padding: 12px 14px; border-radius: 14px;
  border: 1px solid rgba(230,233,242,0.2);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.75), rgba(14,10,30,0.75));
  margin-bottom: 12px;
}
.sat-hist-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sat-hist-stat { display: grid; gap: 1px; padding: 6px 12px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); }
.sat-hist-stat small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.sat-hist-stat strong { font-family: var(--font-display); font-size: 14px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-hist-stat strong[data-tier="hot"]  { color: #7dffc4; }
.sat-hist-stat strong[data-tier="warm"] { color: #e6e9f2; }
.sat-hist-stat strong[data-tier="cool"] { color: #8b93a8; }
.sat-hist-head, .sat-hist-row {
  display: grid; grid-template-columns: 80px 1fr 60px 60px 60px 70px 80px;
  align-items: center; gap: 8px;
  padding: 6px 8px;
  font-family: var(--font-display); font-size: 11px;
}
.sat-hist-head { color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 8px; margin-bottom: 4px; }
.sat-hist-row { border-radius: 8px; transition: background .2s ease; font-variant-numeric: tabular-nums; }
.sat-hist-row:hover { background: rgba(255,255,255,0.04); }
.sat-hist-row strong { color: #f2f4f9; font-size: 12px; }
.sat-hist-row .hist-t { color: var(--text-muted); font-size: 10.5px; }
.sat-hist-row .hist-conf { color: #e6e9f2; }
.sat-hist-row .hist-r {
  display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10px; font-weight: 800;
  border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: var(--text-muted);
}
.sat-hist-row[data-tier="hot"]  .hist-r { color: #04140d; background: linear-gradient(135deg, #21d07a, #7dffc4); border-color: transparent; }
.sat-hist-row[data-tier="cool"] .hist-r { color: #04140d; background: linear-gradient(135deg, #8b93a8, #8b93a8); border-color: transparent; }
.sat-hist-row .hist-p { font-weight: 800; }
.sat-hist-row[data-tier="hot"]  .hist-p { color: #7dffc4; }
.sat-hist-row[data-tier="cool"] .hist-p { color: #8b93a8; }
.sat-hist-empty { padding: 30px; text-align: center; color: var(--text-muted); font-size: 13px; }

/* AI LEDGER */
.sat-ledger {
  padding: 10px 14px; border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(0,0,0,0.3);
  font-family: var(--font-mono, ui-monospace, monospace); font-size: 11.5px;
  max-height: 260px; overflow-y: auto;
}
.sat-led-row { display: grid; grid-template-columns: 80px 1fr; gap: 10px; padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,0.05); }
.sat-led-row .led-t { color: var(--text-muted); font-size: 10.5px; }
.sat-led-row[data-kind="good"] { color: #7dffc4; }
.sat-led-row[data-kind="warn"] { color: #ffd96b; }
.sat-led-row[data-kind="bad"]  { color: #8b93a8; }

/* Body-level setting effects */
body.sat-reduce-motion *,
body.sat-reduce-motion *::before,
body.sat-reduce-motion *::after { animation-duration: 0.001s !important; transition-duration: 0.001s !important; }
body.sat-compact .sat-kpi, body.sat-compact .sat-sw, body.sat-compact .sat-crack, body.sat-compact .sat-risk-card, body.sat-compact .sat-bank-card { padding: 6px 9px !important; }
body.sat-compact .sat-kpi strong { font-size: 14px !important; }
body.sat-neon .sat-kpi strong[data-tier="hot"], body.sat-neon .crack-conf, body.sat-neon .aor-hero[data-fire="true"] { text-shadow: 0 0 16px currentColor !important; }
body.sat-high-contrast { filter: contrast(1.06) saturate(1.12); }

/* =====================================================================
   EXTRAORDINARY SETTINGS PANEL
   ===================================================================== */
.settings-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.settings-search-input {
  flex: 1 1 220px; padding: 9px 14px; border-radius: 11px;
  border: 1px solid rgba(230,233,242,0.3);
  background: rgba(8,4,20,0.7);
  color: #f2f4f9; font-size: 13px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.settings-search-input:focus { border-color: rgba(230,233,242,0.7); box-shadow: 0 0 18px -6px rgba(230,233,242,0.55); }
.settings-toolbar-actions { display: flex; gap: 6px; }
.settings-groups { display: grid; gap: 10px; }
.settings-group {
  padding: 10px 12px;
  border-radius: 13px;
  border: 1px solid rgba(250, 146, 0,0.25);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.08), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.78), rgba(14,10,30,0.78));
}
.settings-group summary {
  cursor: pointer; display: flex; align-items: center; gap: 10px;
  padding: 8px 4px;
  font-family: var(--font-display); font-weight: 800; font-size: 13px;
  color: #d9c4c9; letter-spacing: .04em;
}
.settings-group summary::-webkit-details-marker { display: none; }
.settings-group summary::marker { display: none; }
.settings-group summary::before {
  content: "▾"; display: inline-block; transition: transform .2s ease; color: var(--text-muted);
}
.settings-group:not([open]) summary::before { transform: rotate(-90deg); }
.sg-icon { font-size: 18px; }
.sg-title { color: #f2f4f9; font-size: 13px; }
.sg-desc { color: var(--text-muted); font-weight: 500; font-size: 10.5px; margin-left: auto; }
.sg-rows { display: grid; gap: 4px; margin-top: 8px; }
.settings-row {
  display: grid; grid-template-columns: 1fr auto;
  gap: 14px; align-items: center;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.025);
  transition: border-color .2s ease, background .2s ease;
}
.settings-row:hover { border-color: rgba(230,233,242,0.25); background: rgba(255,255,255,0.04); }
.settings-row[data-on="true"] { border-color: rgba(33,208,122,0.32); }
.sr-label { display: grid; gap: 2px; min-width: 0; cursor: pointer; }
.sr-name { font-family: var(--font-display); font-size: 12px; font-weight: 700; color: #f2f4f9; }
.sr-hint { font-size: 10.5px; color: var(--text-muted); line-height: 1.4; }
.sr-switch { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.sr-switch input { display: none; }
.sr-track {
  position: relative; display: inline-block; width: 36px; height: 20px;
  border-radius: 999px; background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  transition: background .25s ease, border-color .25s ease;
}
.sr-thumb {
  position: absolute; top: 1px; left: 1px; width: 16px; height: 16px;
  border-radius: 50%; background: #e6e9f2;
  transition: transform .25s ease, background .25s ease;
}
.sr-switch input:checked + .sr-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.sr-switch input:checked + .sr-track .sr-thumb { transform: translateX(16px); background: #04140d; }
.sr-val {
  font-family: var(--font-display); font-size: 11px; font-weight: 800;
  color: var(--text-muted); min-width: 32px; text-align: center;
  font-variant-numeric: tabular-nums;
}
.sr-switch input:checked ~ .sr-val { color: #7dffc4; }
.sr-slider { display: flex; align-items: center; gap: 10px; }
.sr-slider input[type="range"] { width: 180px; accent-color: #e6e9f2; }
.sr-slider .sr-val { color: #e6e9f2; font-size: 14px; min-width: 40px; }
.settings-footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 12px; padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
  font-size: 11px; color: var(--text-muted);
}

/* Settings overview hero — live stat tiles + quick filters */
.settings-overview {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 12px 14px; margin-bottom: 12px;
  border-radius: 14px;
  border: 1px solid rgba(250, 146, 0,0.34);
  background:
    radial-gradient(120% 120% at 0% 0%, rgba(250, 146, 0,0.15), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(18,12,36,0.85));
  box-shadow: 0 16px 40px -26px rgba(0,0,0,0.7), 0 0 24px -12px rgba(250, 146, 0,0.55), inset 0 1px 0 rgba(255,255,255,0.08);
}
.so-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.so-stat {
  display: grid; gap: 1px; justify-items: center; min-width: 60px;
  padding: 7px 12px; border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
}
.so-stat small { font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.so-stat strong { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.so-stat[data-tier="active"] strong { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,0.45); }
.so-stat[data-tier="changed"] strong { color: #d9c4c9; text-shadow: 0 0 12px rgba(250, 146, 0,0.45); }
.so-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.so-chip {
  appearance: none; cursor: pointer;
  padding: 7px 12px; border-radius: 999px;
  border: 1px solid rgba(250, 146, 0,0.35);
  background: rgba(250, 146, 0,0.1); color: #d9c4c9;
  font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: .02em;
  transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.so-chip:hover { border-color: rgba(250, 146, 0,0.6); color: #f2f4f9; box-shadow: 0 0 16px -6px rgba(250, 146, 0,0.6); }
.so-chip[aria-pressed="true"] { background: linear-gradient(135deg, #fa9200, #fa9200); color: #fff; border-color: transparent; box-shadow: 0 0 20px -6px rgba(250, 146, 0,0.8); }
/* Per-group active badge in each settings group summary */
.sg-badge {
  margin-left: 8px; min-width: 20px; height: 20px; padding: 0 6px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  font-variant-numeric: tabular-nums;
  border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.05); color: var(--text-muted);
  transition: background .25s ease, color .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sg-badge[data-tier="on"] { background: linear-gradient(135deg, #21d07a, #e6e9f2); color: #04140d; border-color: transparent; box-shadow: 0 0 14px -4px rgba(230,233,242,0.7); }

/* =====================================================================
   JOURNAL-STYLE HISTORY
   ===================================================================== */
.sat-history-v2 { padding-bottom: 4px; }
.sat-hist-filters { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 12px; }
.hist-filter {
  appearance: none; cursor: pointer;
  padding: 6px 11px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  color: var(--text-muted);
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .04em;
  transition: all .2s ease;
}
.hist-filter:hover { color: #f2f4f9; border-color: rgba(230,233,242,0.4); }
.hist-filter.is-active {
  color: #04140d;
  background: linear-gradient(135deg, #e6e9f2, #7dffc4);
  border-color: transparent;
}
.sat-journal-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.sat-journal-list .journal-empty {
  padding: 24px; text-align: center;
  border-radius: 14px; border: 1px dashed rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
  display: grid; gap: 6px;
}
.sat-journal-list .journal-empty span { font-size: 10.5px; color: var(--text-muted); font-family: var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.sat-journal-list .journal-empty strong { font-size: 16px; color: #f2f4f9; font-family: var(--font-display); }
.sat-journal-list .journal-empty small { color: var(--text-dim); font-size: 12px; }
.sat-jt {
  list-style: none;
  border-radius: 14px;
  border: 1px solid rgba(250, 146, 0,0.3);
  background:
    radial-gradient(140% 80% at 0% 0%, rgba(250, 146, 0,0.08), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(14,10,30,0.85));
  overflow: hidden;
}
.sat-jt[data-tier="hot"]  { border-color: rgba(125,255,196,0.45); box-shadow: 0 0 18px -10px rgba(125,255,196,0.55); }
.sat-jt[data-tier="cool"] { border-color: rgba(255,128,146,0.4); }
.sat-jt[data-tier="warm"] { border-color: rgba(255,217,107,0.4); }
.sat-jt .journal-card-shell { padding: 12px 14px; display: grid; gap: 10px; }
.sat-jt .journal-topbar {
  display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: center;
  padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sat-jt .journal-route-badge { display: grid; gap: 2px; }
.sat-jt .journal-route-badge span { font-size: 9.5px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.sat-jt .journal-route-badge strong { font-family: var(--font-display); font-size: 14px; color: #f2f4f9; }
.sat-jt .journal-card-title { display: grid; gap: 2px; text-align: right; }
.sat-jt .journal-card-title span { font-size: 9.5px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.sat-jt .journal-card-title strong { font-family: var(--font-display); font-size: 13px; color: #e6e9f2; }
.sat-jt .journal-status-pill {
  font-family: var(--font-display); font-weight: 800; font-size: 10.5px;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.04);
  color: var(--text-muted);
}
.sat-jt .journal-status-pill.j-win  { color: #04140d; background: linear-gradient(135deg, #21d07a, #7dffc4); border-color: transparent; }
.sat-jt .journal-status-pill.j-loss { color: #04140d; background: linear-gradient(135deg, #8b93a8, #8b93a8); border-color: transparent; }
.sat-jt .journal-status-pill.j-open { color: #04140d; background: linear-gradient(135deg, #ffd96b, #ffb35a); border-color: transparent; }
.sat-jt .journal-hero-line {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sat-jt .journal-hero-line > div { display: grid; gap: 1px; padding: 6px 10px; border-radius: 9px; background: rgba(255,255,255,0.03); }
.sat-jt .journal-hero-line span { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.sat-jt .journal-hero-line strong { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-jt[data-tier="hot"] .journal-profit { color: #7dffc4; }
.sat-jt[data-tier="cool"] .journal-profit { color: #8b93a8; }
.sat-jt-metrics {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px;
}
.sat-jt-metric { padding: 7px 10px; border-radius: 9px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.025); display: grid; gap: 1px; }
.sat-jt-metric small { font-size: 9px; color: var(--text-muted); letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.sat-jt-metric strong { font-family: var(--font-display); font-size: 12px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-jt-foot { display: flex; gap: 8px; flex-wrap: wrap; }
.sat-jt-tag {
  font-family: var(--font-display); font-size: 10.5px; font-weight: 700;
  letter-spacing: .04em; padding: 5px 10px; border-radius: 999px;
  border: 1px solid rgba(250, 146, 0,0.3); background: rgba(250, 146, 0,0.08); color: #d9c4c9;
}
.sat-jt-tag.tier-hot  { color: #7dffc4; border-color: rgba(125,255,196,0.4); background: rgba(125,255,196,0.07); }
.sat-jt-tag.tier-warm { color: #ffd96b; border-color: rgba(255,217,107,0.4); background: rgba(255,217,107,0.07); }
.sat-jt-tag.tier-cool { color: #8b93a8; border-color: rgba(255,128,146,0.4); background: rgba(255,128,146,0.07); }

/* Trading-journal title row with inline Clear-History action (auto page) */
.sat-journal-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.sat-journal-title > span { display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap; min-width: 0; }
.sat-journal-title #clear-journal-btn { flex: 0 0 auto; }

/* Autopilot fire diagnostics folded inline into the trading-journal card */
.journal-trade-card.has-autopilot { border-color: rgba(250, 146, 0,0.32); box-shadow: 0 0 22px -14px rgba(250, 146, 0,0.6); }
.journal-ap-metrics { margin-top: 2px; }
.journal-ap-metrics .sat-jt-metric { background: rgba(250, 146, 0,0.06); border-color: rgba(250, 146, 0,0.18); }
.journal-trade-card .sat-jt-foot { margin-top: 2px; }

/* =====================================================================
   SMART PANELS TAB (Deriv-style selector grid)
   ===================================================================== */
.smart-panels-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.smartpanels-info { margin-left: auto; font-size: 11px; color: var(--text-muted); }
.smart-panels-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.smart-panel-card {
  padding: 10px 12px;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  transition: border-color .2s ease, background .2s ease, box-shadow .25s ease;
}
.smart-panel-card[data-on="true"] {
  border-color: rgba(33,208,122,0.45);
  background: rgba(33,208,122,0.05);
  box-shadow: 0 0 14px -8px rgba(33,208,122,0.5);
}
.smart-panel-card header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.smart-panel-card .sp-emoji { font-size: 18px; }
.smart-panel-card strong { flex: 1; font-family: var(--font-display); font-size: 13px; color: #f2f4f9; }
.sp-toggle { cursor: pointer; }
.sp-toggle input { display: none; }
.sp-toggle-track {
  position: relative; display: inline-block; width: 34px; height: 18px;
  border-radius: 999px; background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  transition: background .25s ease;
}
.sp-toggle-thumb {
  position: absolute; top: 1px; left: 1px; width: 14px; height: 14px;
  border-radius: 50%; background: #e6e9f2;
  transition: transform .25s ease;
}
.sp-toggle input:checked + .sp-toggle-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.sp-toggle input:checked + .sp-toggle-track .sp-toggle-thumb { transform: translateX(16px); background: #04140d; }
.sp-desc { margin: 4px 0 8px; font-size: 10.5px; color: var(--text-muted); line-height: 1.4; }
.sp-mini { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.sp-mini-chart svg { width: 100%; height: 30px; }
.sp-mini-chart polyline { fill: none; stroke: #e6e9f2; stroke-width: 1.5; opacity: .7; }
.sp-mini-actions { display: flex; gap: 4px; flex-wrap: wrap; }
.sp-mini-actions span { font-size: 10px; padding: 2px 6px; border-radius: 6px; background: rgba(230,233,242,0.1); color: #e6e9f2; }

/* =====================================================================
   SMART PANELS DASHBOARD (Deriv-style live trade panels)
   ===================================================================== */
.smart-panels-dashboard { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 12px; }
.smart-panels-empty {
  grid-column: 1 / -1;
  padding: 24px; text-align: center;
  border-radius: 14px; border: 1px dashed rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
  color: var(--text-muted); font-size: 12.5px;
}
/* Smart Trade Panels folded INSIDE the trading journal */
.journal-smart-panels {
  margin: 4px 0 14px;
  padding: 12px 12px 4px;
  border-radius: 16px;
  border: 1px solid rgba(250, 146, 0,0.20);
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(250, 146, 0,0.07), transparent 60%),
    rgba(255,255,255,0.015);
  box-shadow: inset 0 0 28px -22px rgba(250, 146, 0,0.7);
}
.journal-smart-panels-head {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  margin: 0 2px 10px;
}
.journal-smart-panels-head .jsp-title {
  font-size: 13px; font-weight: 800; letter-spacing: 0.3px;
  color: var(--text); text-transform: uppercase;
}
.journal-smart-panels-head small { color: var(--text-muted); font-size: 11px; }
/* DERIV PANEL V2 — realistic Smart Trader layout with glow */
.deriv-panel-v2 {
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(230,233,242,0.28);
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(230,233,242,0.10), transparent 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(250, 146, 0,0.10), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.92), rgba(14,10,30,0.92));
  display: grid; gap: 10px;
  position: relative;
  box-shadow:
    0 18px 38px -22px rgba(0,0,0,0.7),
    0 0 22px -12px rgba(230,233,242,0.45),
    inset 0 1px 0 rgba(255,255,255,0.04);
  transition: transform .18s ease, border-color .25s ease, box-shadow .35s ease;
}
.deriv-panel-v2:hover {
  transform: translateY(-2px);
  box-shadow:
    0 22px 44px -22px rgba(0,0,0,0.75),
    0 0 28px -8px rgba(230,233,242,0.55),
    inset 0 1px 0 rgba(255,255,255,0.06);
}
.deriv-panel-v2[data-deriv-tier="warm"] {
  border-color: rgba(230,233,242,0.45);
  box-shadow:
    0 18px 38px -22px rgba(0,0,0,0.7),
    0 0 26px -10px rgba(230,233,242,0.55),
    inset 0 1px 0 rgba(255,255,255,0.04);
}
.deriv-panel-v2[data-deriv-tier="hot"] {
  border-color: rgba(125,255,196,0.6);
  box-shadow:
    0 22px 44px -22px rgba(0,0,0,0.75),
    0 0 36px -8px rgba(125,255,196,0.65),
    0 0 60px -20px rgba(125,255,196,0.4),
    inset 0 1px 0 rgba(125,255,196,0.08);
}
.deriv-panel-v2[data-deriv-fire="true"]::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(120deg, transparent, rgba(125,255,196,0.18), transparent);
  background-size: 200% 100%;
  animation: dpFireShimmer 2.6s linear infinite;
  z-index: 0;
}
@keyframes dpFireShimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } }
.deriv-panel-v2 > * { position: relative; z-index: 1; }

/* HEAD */
.deriv-panel-v2 .dp-head {
  display: grid; grid-template-columns: 1fr auto auto;
  align-items: center; gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.dp-sym { display: flex; align-items: center; gap: 10px; min-width: 0; }
.dp-sym .dp-emoji { font-size: 22px; }
.dp-sym-text { display: grid; gap: 1px; min-width: 0; }
.dp-sym-text strong { font-family: var(--font-display); font-size: 14px; font-weight: 800; color: #f2f4f9; }
.dp-sym-text small { font-size: 10.5px; color: var(--text-muted); }
.dp-spot { display: grid; gap: 1px; text-align: right; }
.dp-spot-num {
  font-family: var(--font-display); font-size: 18px; font-weight: 800;
  color: #f2f4f9; font-variant-numeric: tabular-nums;
  transition: color .25s ease, text-shadow .25s ease;
}
.dp-spot-num[data-d="up"]   { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,0.45); }
.dp-spot-num[data-d="down"] { color: #8b93a8; text-shadow: 0 0 12px rgba(255,128,146,0.45); }
.dp-spot-tick { font-size: 10px; font-variant-numeric: tabular-nums; color: var(--text-muted); }
.dp-spot-tick[data-d="up"]   { color: #21d07a; }
.dp-spot-tick[data-d="down"] { color: #8b93a8; }
.dp-ai-badge {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px;
  border: 1px solid rgba(230,233,242,0.4);
  background: rgba(230,233,242,0.08);
}
.dp-ai-badge small { font-size: 8.5px; color: var(--text-muted); letter-spacing: .12em; text-transform: uppercase; font-weight: 800; }
.dp-ai-badge strong { font-family: var(--font-display); font-size: 14px; font-weight: 800; color: #e6e9f2; font-variant-numeric: tabular-nums; }
.dp-ai-badge[data-tier="hot"]  { border-color: rgba(125,255,196,0.55); background: rgba(125,255,196,0.1); box-shadow: 0 0 14px -4px rgba(125,255,196,0.55); }
.dp-ai-badge[data-tier="hot"] strong { color: #7dffc4; }
.dp-arrow { font-family: var(--font-display); font-weight: 800; font-size: 14px; color: var(--text-dim); }
.dp-arrow[data-d="up"]   { color: #21d07a; }
.dp-arrow[data-d="down"] { color: #8b93a8; }

/* CHART */
.dp-chart-wrap {
  position: relative;
  height: 130px;
  border-radius: 11px;
  background: radial-gradient(120% 80% at 50% 100%, rgba(230,233,242,0.05), transparent 60%), #050414;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.04);
}
.dp-chart-svg { display: block; width: 100%; height: 100%; }
.dp-chart-grid line { stroke: rgba(255,255,255,0.07); stroke-width: 0.6; stroke-dasharray: 2 4; }
.dp-chart-line { filter: drop-shadow(0 0 6px currentColor); }
.dp-chart-dot { filter: drop-shadow(0 0 8px currentColor); animation: dpDotPulse 1.4s ease-in-out infinite; }
@keyframes dpDotPulse { 0%, 100% { opacity: 1; r: 3.5; } 50% { opacity: .6; r: 5; } }
.dp-chart-axis {
  position: absolute; left: 8px; top: 6px; right: 8px; bottom: 6px;
  pointer-events: none;
  display: flex; flex-direction: column; justify-content: space-between;
}
.dp-axis-hi, .dp-axis-lo {
  font-family: ui-monospace, monospace; font-size: 9px;
  color: var(--text-muted); padding: 1px 5px; border-radius: 4px;
  background: rgba(0,0,0,0.4); align-self: flex-start;
}
.dp-axis-lo { align-self: flex-start; }

/* CONTROLS */
.dp-controls-v2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dp-controls-v2:has(.dp-bar) { grid-template-columns: 1fr 1fr 1fr; }
.dp-stake, .dp-dur, .dp-bar { display: grid; gap: 3px; }
.dp-stake label, .dp-dur label, .dp-bar label { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.dp-stake-row, .dp-dur-row {
  display: flex; align-items: center; gap: 4px;
  padding: 4px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
}
.dp-stake-row input, .dp-dur-row input {
  flex: 1; min-width: 0;
  background: transparent; border: none; outline: none;
  color: #f2f4f9; font-family: var(--font-display); font-weight: 800;
  font-size: 14px; font-variant-numeric: tabular-nums;
  padding: 4px 6px;
}
.dp-step-btn {
  appearance: none; cursor: pointer;
  width: 26px; height: 26px; border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: #e6e9f2;
  font-family: var(--font-display); font-weight: 800; font-size: 14px;
  display: grid; place-items: center;
  transition: background .15s ease, transform .1s ease;
}
.dp-step-btn:hover { background: rgba(230,233,242,0.15); }
.dp-step-btn:active { transform: scale(0.95); }
.dp-stake-ccy { font-size: 9px; color: var(--text-muted); letter-spacing: .08em; font-weight: 700; padding-right: 6px; }
.dp-dur-row select {
  background: transparent; border: none; outline: none;
  color: #e6e9f2; font-family: var(--font-display); font-weight: 700;
  font-size: 11px; cursor: pointer;
  padding: 4px 8px 4px 4px;
  border-left: 1px solid rgba(255,255,255,0.08);
}
.dp-dur-row select option { background: #0a0820; color: #f2f4f9; }

/* PAYOUT row (like Deriv) */
.dp-payout { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.dp-payout-tile {
  display: grid; gap: 1px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(0,0,0,0.25);
  text-align: left;
}
.dp-payout-tile small { font-size: 9px; color: var(--text-muted); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.dp-payout-tile strong { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.dp-payout-tile span { font-size: 9px; color: var(--text-dim); letter-spacing: .04em; }
.dp-profit { color: #7dffc4 !important; }

/* AI INSIGHT strip */
.dp-ai { display: grid; gap: 6px; padding: 9px 11px; border-radius: 11px; border: 1px dashed rgba(250, 146, 0,0.32); background: rgba(250, 146, 0,0.06); }
.dp-ai-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.dp-ai-pill {
  display: grid; gap: 1px;
  padding: 5px 9px;
  border-radius: 9px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.dp-ai-pill small { font-size: 9px; color: var(--text-muted); letter-spacing: .06em; font-weight: 700; }
.dp-ai-pill strong { font-family: var(--font-display); font-size: 12px; font-weight: 800; color: #f2f4f9; }
.dp-ai-pill[data-tier="hot"]  { border-color: rgba(125,255,196,0.4); background: rgba(125,255,196,0.06); }
.dp-ai-pill[data-tier="hot"] strong { color: #7dffc4; }
.dp-ai-pill[data-tier="warm"] strong { color: #e6e9f2; }
.dp-ai-pill[data-tier="cool"] strong { color: #8b93a8; }
.dp-ai-toggle { display: flex; align-items: center; gap: 7px; font-size: 11px; color: #e6e9f2; cursor: pointer; }
.dp-ai-toggle input { accent-color: #21d07a; }

/* BIG DIRECTION BUTTONS (real Deriv style) */
.dp-actions-v2 { display: flex; gap: 8px; }
.dp-fire {
  flex: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 14px; border-radius: 12px;
  border: 1px solid transparent;
  font-family: var(--font-display);
  transition: transform .14s ease, box-shadow .25s ease, filter .2s ease;
}
.dp-fire:hover { transform: translateY(-2px); filter: brightness(1.08); }
.dp-fire:active { transform: translateY(0) scale(.98); }
.dp-fire-arrow { font-size: 18px; font-weight: 900; }
.dp-fire-text { display: grid; gap: 1px; text-align: left; }
.dp-fire-text strong { font-size: 13px; font-weight: 800; letter-spacing: .02em; }
.dp-fire-text small { font-size: 9.5px; opacity: .85; font-weight: 600; }
.dp-fire-up {
  background: linear-gradient(135deg, #21d07a, #16a76a); color: #04140d;
  box-shadow: 0 0 22px -8px rgba(33,208,122,0.7), inset 0 1px 0 rgba(255,255,255,0.1);
  border-color: rgba(33,208,122,0.7);
}
.dp-fire-down {
  background: linear-gradient(135deg, #8b93a8, #d63040); color: #fff;
  box-shadow: 0 0 22px -8px rgba(139, 147, 168,0.7), inset 0 1px 0 rgba(255,255,255,0.1);
  border-color: rgba(139, 147, 168,0.7);
}
.dp-fire-single {
  background: linear-gradient(135deg, #fa9200, #c47a14); color: #fff;
  box-shadow: 0 0 22px -8px rgba(250, 146, 0,0.7), inset 0 1px 0 rgba(255,255,255,0.1);
  border-color: rgba(250, 146, 0,0.7);
}
.dp-fire[data-fire="true"] {
  box-shadow: 0 0 30px -4px currentColor, inset 0 1px 0 rgba(255,255,255,0.15);
  animation: dpFirePulse 1.6s ease-in-out infinite;
}
@keyframes dpFirePulse { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.15); } }

/* FOOT */
.dp-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.05); }
.dp-recents { display: flex; align-items: center; gap: 4px; font-size: 10.5px; color: var(--text-muted); flex-wrap: wrap; }
.dp-rec { display: inline-block; width: 18px; height: 18px; line-height: 18px; text-align: center; border-radius: 6px; font-family: var(--font-display); font-size: 10px; font-weight: 800; }
.dp-rec.rec-w { background: rgba(33,208,122,0.18); color: #7dffc4; box-shadow: 0 0 6px rgba(33,208,122,0.35); }
.dp-rec.rec-l { background: rgba(139, 147, 168,0.18); color: #8b93a8; box-shadow: 0 0 6px rgba(139, 147, 168,0.35); }
.dp-rec-empty { font-size: 10px; color: var(--text-dim); font-style: italic; }
.dp-pulse {
  display: flex; align-items: center; gap: 6px;
  padding: 3px 9px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.dp-pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--text-muted); }
.dp-pulse[data-fire="true"] { border-color: rgba(125,255,196,0.45); background: rgba(125,255,196,0.08); }
.dp-pulse[data-fire="true"] .dp-pulse-dot { background: #7dffc4; box-shadow: 0 0 8px #7dffc4; animation: dpPulse 1.2s ease-in-out infinite; }
@keyframes dpPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .6; transform: scale(1.3); } }
.dp-pulse small { font-size: 10px; color: var(--text-muted); font-family: var(--font-display); }

/* ===== Tiered GLOW for all SAT cards ===== */
.sat-kpi[data-on], .sat-sw[data-on="true"], .smart-panel-card[data-on="true"], .deriv-panel-v2 {
  position: relative;
}
.sat-kpi:has(strong[data-tier="hot"]) {
  border-color: rgba(125,255,196,0.4);
  box-shadow: 0 0 18px -8px rgba(125,255,196,0.55);
}
.sat-kpi:has(strong[data-tier="warm"]) {
  box-shadow: 0 0 14px -8px rgba(230,233,242,0.5);
}
.sat-crack { box-shadow: 0 12px 30px -20px rgba(0,0,0,0.6); }
.sat-crack[data-tier="hot"] {
  box-shadow:
    0 16px 36px -22px rgba(0,0,0,0.7),
    0 0 28px -8px rgba(125,255,196,0.55),
    0 0 50px -20px rgba(125,255,196,0.35);
}
.sat-crack[data-tier="warm"] {
  box-shadow:
    0 16px 36px -22px rgba(0,0,0,0.7),
    0 0 22px -10px rgba(230,233,242,0.5);
}
.smart-panel-card { box-shadow: 0 8px 20px -16px rgba(0,0,0,0.6); }
.smart-panel-card[data-on="true"] { box-shadow: 0 12px 26px -18px rgba(0,0,0,0.7), 0 0 18px -8px rgba(33,208,122,0.5); }

@media (max-width: 900px) {
  .smart-panels-grid, .smart-panels-dashboard { grid-template-columns: 1fr; }
  .sat-jt-metrics { grid-template-columns: repeat(2, 1fr); }
  .sat-jt .journal-hero-line { grid-template-columns: 1fr; }
  .dp-controls-v2, .dp-controls-v2:has(.dp-bar) { grid-template-columns: 1fr; }
  .dp-payout, .dp-ai-grid { grid-template-columns: 1fr 1fr; }
}

/* Responsive */
@media (max-width: 900px) {
  .sat-kpis { grid-template-columns: repeat(3, 1fr); }
  .sat-switches { grid-template-columns: repeat(2, 1fr); }
  .sat-cracked { grid-template-columns: repeat(2, 1fr); }
  .sat-strip-v2 { grid-template-columns: repeat(3, 1fr); }
  .sat-halo-wrap { grid-template-columns: 1fr; }
  .sat-hist-head, .sat-hist-row { grid-template-columns: 60px 1fr 50px 60px 70px; }
  .sat-hist-head span:nth-child(3), .sat-hist-row span:nth-child(3),
  .sat-hist-head span:nth-child(4), .sat-hist-row span:nth-child(4) { display: none; }
}

/* ============================================================
   SKILLI AUTO TRADING — full 20+ smart-AI command center
   ============================================================ */
.skilli-auto-trading {
  margin: 24px auto;
  padding: 16px 18px 14px;
  border: 1px solid rgba(250, 146, 0,0.45);
  border-radius: 22px;
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(250, 146, 0,0.18), transparent 55%),
    radial-gradient(140% 90% at 100% 100%, rgba(33,208,122,0.14), transparent 55%),
    linear-gradient(135deg, rgba(8,4,20,0.94), rgba(14,10,30,0.94));
  position: relative; overflow: hidden;
}
.skilli-auto-trading::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #fa9200, #21d07a, #e6e9f2, transparent);
  animation: satBeam 4s linear infinite;
}
@keyframes satBeam { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
.sat-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
.sat-head h2 { margin: 0; font-family: var(--font-display); font-size: 22px; font-weight: 900; background: linear-gradient(90deg, #fa9200, #e6e9f2, #21d07a); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: .04em; }
.sat-head small { display: block; color: var(--text-muted); font-size: 11.5px; margin-top: 3px; }
.sat-master { display: flex; align-items: center; gap: 10px; }

/* ════════════════════════════════════════════════════════════════
   SKILLI AUTO TRADING — premium AI Command Hero (beautiful + live)
   ════════════════════════════════════════════════════════════════ */
.sat-hero {
  position: relative; overflow: hidden;
  padding: 18px 20px; border-radius: 20px;
  border: 1px solid rgba(250, 146, 0,0.34);
  background:
    radial-gradient(140% 120% at 0% 0%, rgba(250, 146, 0,0.18), transparent 55%),
    radial-gradient(120% 130% at 100% 0%, rgba(33,208,122,0.12), transparent 55%),
    linear-gradient(135deg, rgba(10,6,24,0.96), rgba(6,4,16,0.98));
  box-shadow: 0 18px 50px -24px rgba(0,0,0,0.85), inset 0 1px 0 rgba(255,255,255,0.05);
  transition: border-color .4s ease, box-shadow .4s ease;
}
.sat-hero[data-engaged="1"] {
  border-color: rgba(33,208,122,0.5);
  box-shadow: 0 18px 60px -22px rgba(33,208,122,0.40), 0 0 0 1px rgba(33,208,122,0.18), inset 0 1px 0 rgba(125,255,196,0.10);
}
.sat-hero-fx { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 0; overflow: hidden; }
.shf-aurora {
  position: absolute; inset: -40%;
  background:
    radial-gradient(35% 45% at 25% 30%, rgba(250, 146, 0,0.45), transparent 60%),
    radial-gradient(30% 40% at 75% 20%, rgba(230,233,242,0.30), transparent 60%),
    radial-gradient(35% 45% at 60% 80%, rgba(33,208,122,0.30), transparent 60%);
  filter: blur(18px); opacity: .5;   /* PERF: was blur(36px) — large blur is paint-heavy */
  animation: shAurora 20s ease-in-out infinite alternate;
}
@keyframes shAurora {
  0%   { transform: translate(-4%, -2%) rotate(0deg)  scale(1.05); }
  50%  { transform: translate(4%, 3%)   rotate(8deg)  scale(1.12); }
  100% { transform: translate(-2%, 2%)  rotate(-6deg) scale(1.08); }
}
.shf-grid { display: none; } /* grid removed */
.shf-scan {
  position: absolute; left: 0; right: 0; top: 0; height: 36%;
  background: linear-gradient(180deg, rgba(230,233,242,0.10), transparent);
  animation: shScan 5.5s linear infinite;
}
@keyframes shScan { 0% { transform: translateY(-120%); } 100% { transform: translateY(360%); } }
.shf-orbs i {
  position: absolute; width: 4px; height: 4px; border-radius: 50%;
  background: rgba(125,255,196,0.9); box-shadow: 0 0 10px rgba(125,255,196,0.9);
  animation: shOrb 9s ease-in-out infinite;
}
.shf-orbs i:nth-child(1) { top: 30%; left: 12%; animation-delay: 0s; }
.shf-orbs i:nth-child(2) { top: 60%; left: 40%; background: rgba(230,233,242,0.9); box-shadow: 0 0 10px rgba(230,233,242,0.9); animation-delay: 2.5s; }
.shf-orbs i:nth-child(3) { top: 20%; left: 78%; background: rgba(250, 146, 0,0.9); box-shadow: 0 0 10px rgba(250, 146, 0,0.9); animation-delay: 5s; }
@keyframes shOrb { 0%,100% { transform: translateY(0); opacity: .4; } 50% { transform: translateY(-14px); opacity: 1; } }
.sat-hero > .sat-head-title-wrap, .sat-hero > .sat-master { position: relative; z-index: 1; }
.sat-hero .sat-head-title-wrap { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.sat-hero-badge {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  padding: 4px 11px; border-radius: 999px; font-size: 10.5px; font-weight: 800; letter-spacing: .14em;
  color: #ffb3b9; background: rgba(250, 146, 0,0.16); border: 1px solid rgba(250, 146, 0,0.40);
}
.shb-dot { width: 7px; height: 7px; border-radius: 50%; background: #7dffc4; box-shadow: 0 0 9px #7dffc4; animation: satLaunchHeartbeat 1.6s ease-in-out infinite; }
.sat-hero-status {
  display: inline-flex; align-items: center; gap: 10px; align-self: flex-start;
  padding: 6px 12px; border-radius: 12px; font-size: 12.5px; color: #d3d6de;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); max-width: 100%;
  transition: border-color .35s ease, box-shadow .35s ease;
}
.sat-hero-status #sat-hero-status-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shs-eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 14px; flex: 0 0 auto; }
.shs-eq i { width: 3px; border-radius: 2px; background: linear-gradient(180deg, #e6e9f2, #fa9200); height: 30%; animation: shEq 1.1s ease-in-out infinite; }
.shs-eq i:nth-child(2){ animation-delay:.15s } .shs-eq i:nth-child(3){ animation-delay:.3s } .shs-eq i:nth-child(4){ animation-delay:.45s } .shs-eq i:nth-child(5){ animation-delay:.6s }
@keyframes shEq { 0%,100% { height: 25%; } 50% { height: 100%; } }
.sat-hero-status[data-tier="idle"] .shs-eq i { animation-play-state: paused; opacity: .5; background: #6a6f86; }
.sat-hero-status[data-tier="warm"] .shs-eq i { background: linear-gradient(180deg,#ffd76a,#ff9f43); }
.sat-hero-status[data-tier="hot"]  .shs-eq i { background: linear-gradient(180deg,#7dffc4,#21d07a); }
.sat-hero-status[data-tier="hot"]  { border-color: rgba(33,208,122,0.40); box-shadow: 0 0 18px -6px rgba(33,208,122,0.6); }
.sat-hero-vitals { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.shv {
  display: flex; flex-direction: column; gap: 1px; min-width: 78px;
  padding: 7px 12px; border-radius: 12px;
  background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.07);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.sat-hero[data-engaged="1"] .shv { border-color: rgba(33,208,122,0.18); }
.shv small { font-size: 9.5px; letter-spacing: .06em; color: var(--text-muted); text-transform: uppercase; }
.shv strong { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: #f2f4f9; }
.shv strong[data-tier="up"] { color: #7dffc4; } .shv strong[data-tier="down"] { color: #ff7a90; }
.sat-panic {
  appearance: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 13px; border-radius: 12px; font: inherit; font-weight: 800; font-size: 11.5px; letter-spacing: .05em;
  color: #f6f0e6; background: linear-gradient(135deg, rgba(139, 147, 168,0.22), rgba(120, 70, 12,0.30));
  border: 1px solid rgba(139, 147, 168,0.55);
  box-shadow: 0 0 16px -6px rgba(139, 147, 168,0.7);
  transition: transform .15s ease, filter .2s ease, box-shadow .25s ease;
}
.sat-panic[hidden] { display: none; }
.sat-panic .sat-panic-ico { font-size: 15px; line-height: 1; }
.sat-panic:hover { filter: brightness(1.12); box-shadow: 0 0 22px -4px rgba(139, 147, 168,0.9); transform: translateY(-1px); }
.sat-panic:active { transform: scale(.96); }
.sat-hero.is-panic { animation: satPanicFlash .5s ease; }
@keyframes satPanicFlash { 0%,100% { box-shadow: 0 18px 50px -24px rgba(0,0,0,0.85); } 30% { box-shadow: 0 0 0 3px rgba(139, 147, 168,0.7), 0 0 60px -10px rgba(139, 147, 168,0.8); } }
@media (max-width: 640px) {
  .shv { min-width: 62px; padding: 6px 9px; }
  .shv strong { font-size: 14px; }
  .sat-hero { padding: 14px 14px; }
}
/* settings gear in the command hero (settings at the top, always reachable) */
.sat-hero-settings {
  appearance: none; cursor: pointer; width: 38px; height: 38px; flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px; font-size: 18px; color: #ffb3b9;
  background: rgba(250, 146, 0,0.14); border: 1px solid rgba(250, 146, 0,0.40);
  transition: transform .3s ease, background .2s, border-color .2s, box-shadow .25s;
}
.sat-hero-settings:hover { background: rgba(250, 146, 0,0.26); border-color: rgba(250, 146, 0,0.7); box-shadow: 0 0 16px -4px rgba(250, 146, 0,0.7); transform: rotate(40deg); }
.sat-hero-settings:active { transform: rotate(40deg) scale(.92); }

/* ════════════════════════════════════════════════════════════════
   INTELLIGENCE MODULE LAUNCHER GRID + FULLSCREEN MODAL
   ════════════════════════════════════════════════════════════════ */
.sat-modgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(152px, 1fr)); gap: 10px; margin: 4px 0 14px; }
.sat-modcard {
  position: relative; appearance: none; cursor: pointer; text-align: left;
  display: flex; align-items: center; gap: 11px; padding: 12px 13px;
  border-radius: 15px; font: inherit; color: #eceef2;
  background: linear-gradient(150deg, rgba(20,15,38,0.9), rgba(10,7,20,0.92));
  border: 1px solid rgba(250, 146, 0,0.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
  transition: transform .18s cubic-bezier(.2,.7,.3,1), border-color .2s, box-shadow .25s, background .2s;
  overflow: hidden;
}
.sat-modcard::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(120% 100% at 0% 0%, rgba(250, 146, 0,0.20), transparent 60%); opacity: 0; transition: opacity .25s; }
.sat-modcard:hover { transform: translateY(-3px); border-color: rgba(250, 146, 0,0.55); box-shadow: 0 14px 30px -16px rgba(250, 146, 0,0.8), 0 0 0 1px rgba(250, 146, 0,0.25); }
.sat-modcard:hover::before { opacity: 1; }
.sat-modcard:active { transform: translateY(-1px) scale(.985); }
.sat-modcard.is-active { border-color: rgba(33,208,122,0.6); box-shadow: 0 0 0 1px rgba(33,208,122,0.4), 0 12px 26px -16px rgba(33,208,122,0.7); }
.smc-ico { font-size: 22px; line-height: 1; flex: 0 0 auto; filter: drop-shadow(0 0 8px rgba(250, 146, 0,0.5)); }
.smc-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; position: relative; z-index: 1; }
.smc-name { font-family: var(--font-display); font-weight: 800; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smc-grp { font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smc-go { margin-left: auto; font-size: 13px; color: #a0959e; opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .2s; position: relative; z-index: 1; }
.sat-modcard:hover .smc-go { opacity: 1; transform: none; }

.sat-modal { position: fixed; inset: 0; z-index: 130; display: flex; }
.sat-modal[hidden] { display: none; }
.sat-modal-backdrop { position: absolute; inset: 0; background: rgba(3,4,10,0.72); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); opacity: 0; transition: opacity .26s ease; }
.sat-modal.is-open .sat-modal-backdrop { opacity: 1; }
.sat-modal-frame {
  position: relative; z-index: 1; margin: auto;
  width: min(1120px, 95vw); max-height: 92vh; display: flex; flex-direction: column;
  border-radius: 22px; overflow: hidden;
  border: 1px solid rgba(250, 146, 0,0.42);
  background: linear-gradient(180deg, rgba(13,10,28,0.99), rgba(7,5,16,0.995));
  box-shadow: 0 50px 130px -30px rgba(0,0,0,0.92), 0 0 0 1px rgba(250, 146, 0,0.12);
  transform: translateY(16px) scale(.975); opacity: 0;
  transition: transform .32s cubic-bezier(.2,.7,.3,1), opacity .3s ease;
}
.sat-modal.is-open .sat-modal-frame { transform: none; opacity: 1; }
.sat-modal-head {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 18px; flex: 0 0 auto;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  background: linear-gradient(180deg, rgba(250, 146, 0,0.14), transparent);
}
.sat-modal-kicker { display: block; font-size: 10px; letter-spacing: .16em; font-weight: 800; color: #d9c4c9; }
.sat-modal-title { margin: 3px 0 0; font-family: var(--font-display); font-size: 21px; font-weight: 900; background: linear-gradient(90deg,#fa9200,#e6e9f2,#21d07a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sat-modal-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.sat-modal-actions button { appearance: none; cursor: pointer; border-radius: 11px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: #eef0f3; font: inherit; font-size: 17px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; transition: background .2s, transform .15s, border-color .2s; }
.sat-modal-actions button:hover { background: rgba(255,255,255,0.1); border-color: rgba(250, 146, 0,0.55); }
.sat-modal-actions button:active { transform: scale(.92); }
.sat-modal-close { color: #f6f0e6 !important; border-color: rgba(139, 147, 168,0.5) !important; background: rgba(139, 147, 168,0.16) !important; font-weight: 800; }
.sat-modal-close:hover { background: rgba(139, 147, 168,0.28) !important; box-shadow: 0 0 18px -5px rgba(139, 147, 168,0.8); }
.sat-modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 18px; overscroll-behavior: contain; }
.sat-modal-body::-webkit-scrollbar { width: 10px; }
.sat-modal-body::-webkit-scrollbar-thumb { background: rgba(250, 146, 0,0.3); border-radius: 8px; }
.sat-modal-body > .sat-panel { display: block; margin: 0; }
@media (max-width: 640px) {
  .sat-modal-frame { width: 100vw; max-width: 100vw; max-height: 100vh; height: 100vh; border-radius: 0; }
  .sat-modgrid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
}

/* ════════════════════════════════════════════════════════════════
   AETHER CORE — win-rate QUALITY GATE + upgraded brain readouts
   ════════════════════════════════════════════════════════════════ */
.ac-verdict-toprow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ac-gate {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px; border-radius: 999px; font-family: var(--font-display);
  font-weight: 900; font-size: 12px; letter-spacing: .08em;
  border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.05); color: #e2e5ee;
  transition: color .3s ease, background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.ac-gate::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 8px currentColor; }
.ac-gate[data-tier="go"]   { color: #7dffc4; border-color: rgba(33,208,122,0.6); background: rgba(33,208,122,0.14); box-shadow: 0 0 20px -5px rgba(33,208,122,0.8); animation: acGateGo 1.4s ease-in-out infinite; }
.ac-gate[data-tier="arm"]  { color: #e6e9f2; border-color: rgba(230,233,242,0.55); background: rgba(230,233,242,0.12); }
.ac-gate[data-tier="wait"] { color: #ffd76a; border-color: rgba(255,180,80,0.5);  background: rgba(255,180,80,0.10); }
.ac-gate[data-tier="down"] { color: #a3a3ac; }
@keyframes acGateGo { 0%,100% { box-shadow: 0 0 20px -5px rgba(33,208,122,0.7); } 50% { box-shadow: 0 0 28px -2px rgba(33,208,122,1); } }
.ac-gate-meta { margin-top: 6px; }
.ac-gate-conf { font-size: 11px; color: var(--text-muted); font-weight: 700; }
.ac-gate-checks { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.ac-gck { font-size: 10px; padding: 3px 8px; border-radius: 7px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); color: #86868f; white-space: nowrap; transition: color .25s, background .25s, border-color .25s; }
.ac-gck[data-ok="1"] { color: #9affd0; background: rgba(33,208,122,0.10); border-color: rgba(33,208,122,0.3); }
.ac-vital strong[data-tier="up"]   { color: #7dffc4; }
.ac-vital strong[data-tier="down"] { color: #ff7a90; }

/* ════════════════════════════════════════════════════════════════
   SUPPLY & DEMAND module
   ════════════════════════════════════════════════════════════════ */
.sd-wrap { display: flex; flex-direction: column; gap: 14px; }
.sd-top { display: grid; grid-template-columns: minmax(160px, 0.8fr) 1.4fr; gap: 14px; }
.sd-bias-card { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 16px; border: 1px solid rgba(255,255,255,0.08); background: linear-gradient(150deg, rgba(20,15,38,0.9), rgba(10,7,20,0.9)); transition: border-color .3s, box-shadow .3s; }
.sd-bias-card[data-bias="bullish"] { border-color: rgba(33,208,122,0.5); box-shadow: 0 0 24px -10px rgba(33,208,122,0.7); }
.sd-bias-card[data-bias="bearish"] { border-color: rgba(139, 147, 168,0.5); box-shadow: 0 0 24px -10px rgba(139, 147, 168,0.7); }
.sd-bias-lbl { font-size: 10px; letter-spacing: .12em; font-weight: 800; color: var(--text-muted); }
#sd-bias-big { font-family: var(--font-display); font-size: 30px; font-weight: 900; line-height: 1.05; color: #e2e5ee; }
#sd-bias-big[data-bias="bullish"] { color: #7dffc4; text-shadow: 0 0 18px rgba(33,208,122,0.6); }
#sd-bias-big[data-bias="bearish"] { color: #ff7a90; text-shadow: 0 0 18px rgba(139, 147, 168,0.6); }
.sd-price-line { font-size: 12px; color: var(--text-muted); } .sd-price-line b { color: #f2f4f9; }
.sd-meter-wrap { display: flex; flex-direction: column; gap: 8px; justify-content: center; padding: 12px 14px; border-radius: 16px; border: 1px solid rgba(255,255,255,0.07); background: rgba(255,255,255,0.03); }
.sd-meter-lbl { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--text-muted); font-weight: 700; }
.sd-meter { position: relative; height: 12px; border-radius: 8px; background: linear-gradient(90deg, rgba(139, 147, 168,0.5), rgba(120,120,140,0.3), rgba(33,208,122,0.5)); }
.sd-meter-mid { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: rgba(255,255,255,0.4); transform: translateX(-1px); }
.sd-meter-fill { position: absolute; top: 50%; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid #e6e9f2; box-shadow: 0 0 14px rgba(230,233,242,0.9); transform: translate(-50%,-50%); left: 50%; transition: left .5s cubic-bezier(.2,.7,.3,1); }
.sd-meter-wrap small { font-size: 11.5px; color: #d3d6de; }
.sd-zones-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sd-zcard { display: flex; flex-direction: column; gap: 2px; padding: 13px 15px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.08); }
.sd-zcard small { font-size: 10.5px; color: var(--text-muted); }
.sd-zcard strong { font-family: var(--font-display); font-size: 22px; font-weight: 800; }
.sd-zcard > span:last-child { font-size: 11px; color: var(--text-muted); }
.sd-zcard-supply { background: linear-gradient(150deg, rgba(60,12,24,0.5), rgba(20,8,14,0.6)); } .sd-zcard-supply strong { color: #ff9bac; }
.sd-zcard-demand { background: linear-gradient(150deg, rgba(10,46,30,0.5), rgba(8,18,14,0.6)); } .sd-zcard-demand strong { color: #9affd0; }
.sd-ladder-head { font-family: var(--font-display); font-weight: 800; font-size: 13px; color: #dde0e6; margin-top: 2px; } .sd-ladder-head small { font-weight: 500; color: var(--text-muted); }
.sd-zones { display: flex; flex-direction: column; gap: 6px; }
.sd-zone { display: grid; grid-template-columns: 104px 84px 1fr 36px; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 11px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
.sd-zone[data-type="supply"] { border-left: 3px solid rgba(139, 147, 168,0.7); } .sd-zone[data-type="demand"] { border-left: 3px solid rgba(33,208,122,0.7); }
.sd-zone-type { font-size: 11px; font-weight: 700; color: #d0d0d8; } .sd-zone-price { font-family: var(--font-display); font-weight: 700; color: #f2f4f9; }
.sd-zone-bar { height: 7px; border-radius: 5px; background: rgba(255,255,255,0.08); overflow: hidden; }
.sd-zone[data-type="supply"] .sd-zone-bar i { display: block; height: 100%; background: linear-gradient(90deg,#8b93a8,#ff9bac); }
.sd-zone[data-type="demand"] .sd-zone-bar i { display: block; height: 100%; background: linear-gradient(90deg,#21d07a,#9affd0); }
.sd-zone-str { font-size: 12px; font-weight: 700; color: #b8b8c0; text-align: right; }
.sd-empty { padding: 16px; text-align: center; color: var(--text-muted); font-size: 12px; }
@media (max-width: 640px) { .sd-top { grid-template-columns: 1fr; } .sd-zones-row { grid-template-columns: 1fr; } .sd-zone { grid-template-columns: 84px 64px 1fr 30px; } }

/* ════════════════════════════════════════════════════════════════
   ADAPTIVE LEARNING (Neural Memory) module
   ════════════════════════════════════════════════════════════════ */
.ml-wrap { display: flex; flex-direction: column; gap: 14px; }
.ml-top { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.ml-stat { display: flex; flex-direction: column; gap: 2px; padding: 13px 14px; border-radius: 14px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.08); }
.ml-stat small { font-size: 10px; color: var(--text-muted); }
.ml-stat strong { font-family: var(--font-display); font-size: 22px; font-weight: 800; color: #f2f4f9; }
.ml-stat strong[data-tier="up"] { color: #7dffc4; } .ml-stat strong[data-tier="down"] { color: #ff7a90; }
.ml-conf { display: flex; flex-direction: column; gap: 6px; }
.ml-conf-lbl { font-size: 12px; color: var(--text-muted); } .ml-conf-lbl b { color: #e6e9f2; font-family: var(--font-display); }
.ml-conf-bar { height: 10px; border-radius: 7px; background: rgba(255,255,255,0.06); overflow: hidden; }
.ml-conf-fill { display: block; height: 100%; width: 0; border-radius: 7px; background: linear-gradient(90deg,#fa9200,#e6e9f2,#21d07a); transition: width .6s cubic-bezier(.2,.7,.3,1); box-shadow: 0 0 14px rgba(230,233,242,0.6); }
.ml-status { font-size: 13px; line-height: 1.5; color: #d3d6de; padding: 12px 14px; border-radius: 12px; background: rgba(250, 146, 0,0.10); border: 1px solid rgba(250, 146, 0,0.22); }
.ml-edges-head { font-family: var(--font-display); font-weight: 800; font-size: 13px; color: #dde0e6; } .ml-edges-head small { font-weight: 500; color: var(--text-muted); }
.ml-edges { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ml-edge { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 13px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); }
.ml-edge-k { font-size: 10.5px; color: var(--text-muted); }
.ml-edge strong { font-family: var(--font-display); font-size: 14px; font-weight: 700; color: #9affd0; }
.ml-reset { align-self: flex-start; }
@media (max-width: 640px) { .ml-top { grid-template-columns: 1fr 1fr; } .ml-edges { grid-template-columns: 1fr; } }

/* ── 🔮 NEURAL PREDICTION panel ──────────────────────────────────────────── */
.np-wrap { display: flex; flex-direction: column; gap: 14px; }
.np-top { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.np-stat { display: flex; flex-direction: column; gap: 2px; padding: 13px 14px; border-radius: 14px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.08); }
.np-stat small { font-size: 10px; color: var(--text-muted); }
.np-stat strong { font-family: var(--font-display); font-size: 21px; font-weight: 800; color: #f2f4f9; }
.np-stat strong[data-tier="up"] { color: #7dffc4; text-shadow: 0 0 14px rgba(125,255,196,.4); }
.np-verdict {
  display: flex; flex-direction: column; gap: 5px; padding: 14px 16px; border-radius: 15px;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.12), rgba(230,233,242,0.05));
  border: 1px solid rgba(250, 146, 0,0.26);
}
.np-verdict[data-tier="edge"] { background: linear-gradient(135deg, rgba(33,208,122,0.16), rgba(230,233,242,0.06)); border-color: rgba(33,208,122,0.45); box-shadow: 0 0 26px -10px rgba(33,208,122,0.6); }
.np-verdict-tag { font: 800 10.5px/1 var(--font-display); letter-spacing: .14em; color: #ff8a92; }
.np-verdict[data-tier="edge"] .np-verdict-tag { color: #7dffc4; }
.np-verdict-line { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #f4f5f8; }
.np-verdict-sub { font-size: 12px; line-height: 1.45; color: var(--text-muted); }
.np-section-lbl { font-family: var(--font-display); font-weight: 800; font-size: 12.5px; color: #dde0e6; } .np-section-lbl small { font-weight: 500; color: var(--text-muted); }
.np-digits { display: grid; grid-template-columns: repeat(10, 1fr); gap: 6px; align-items: end; height: 132px; padding: 10px 8px 6px; border-radius: 13px; background: rgba(0,0,0,0.28); border: 1px solid rgba(255,255,255,0.06); }
.np-dig { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; }
.np-dig-bar { display: block; width: 70%; min-height: 3px; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #e6e9f2, #fa9200); transition: height .5s cubic-bezier(.2,.7,.3,1); }
.np-dig.is-hot .np-dig-bar { background: linear-gradient(180deg, #7dffc4, #21d07a); box-shadow: 0 0 14px -2px rgba(125,255,196,.7); }
.np-dig.is-cold .np-dig-bar { background: linear-gradient(180deg, #4a5170, #2a2f44); }
.np-dig-pct { font: 800 10px/1 var(--font-mono, ui-monospace, monospace); color: #d3d6de; }
.np-dig-n { font: 700 11px/1 var(--font-display); color: var(--text-muted); font-style: normal; }
.np-dig.is-hot .np-dig-n { color: #7dffc4; }
.np-reads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.np-read { display: flex; flex-direction: column; gap: 2px; padding: 11px 13px; border-radius: 13px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); }
.np-read-k { font-size: 10px; color: var(--text-muted); }
.np-read strong { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: #9affd0; }
.np-foot { display: flex; flex-direction: column; gap: 11px; }
.np-foot small { font-size: 11.5px; line-height: 1.5; color: var(--text-muted); padding: 11px 13px; border-radius: 12px; background: rgba(255,170,60,0.07); border: 1px solid rgba(255,170,60,0.18); }
.np-reset { align-self: flex-start; }
@media (max-width: 640px) { .np-top, .np-reads { grid-template-columns: 1fr 1fr; } .np-digits { gap: 4px; height: 110px; } }

/* ── 📋 SET & FORGET strategy desk ───────────────────────────────────────── */
.sf-wrap { display: flex; flex-direction: column; gap: 14px; }
.sf-verdict {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: 16px;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.12), rgba(230,233,242,0.05));
  border: 1px solid rgba(250, 146, 0,0.26);
}
.sf-verdict[data-tier="go"]  { background: linear-gradient(135deg, rgba(33,208,122,0.16), rgba(230,233,242,0.06)); border-color: rgba(33,208,122,0.5); box-shadow: 0 0 26px -10px rgba(33,208,122,0.6); }
.sf-verdict[data-tier="arm"] { background: linear-gradient(135deg, rgba(255,196,77,0.13), rgba(250, 146, 0,0.05)); border-color: rgba(255,196,77,0.4); }
.sf-grade-badge {
  width: 58px; height: 58px; flex: none; border-radius: 14px; display: grid; place-items: center;
  font: 900 30px/1 var(--font-display); color: #0b0a18;
  background: linear-gradient(135deg, #6b7390, #4a5170); box-shadow: inset 0 1px 0 rgba(255,255,255,0.3);
}
.sf-grade-badge[data-grade="A"] { background: linear-gradient(135deg, #7dffc4, #21d07a); }
.sf-grade-badge[data-grade="B"] { background: linear-gradient(135deg, #9affd0, #e6e9f2); }
.sf-grade-badge[data-grade="C"] { background: linear-gradient(135deg, #ffe08a, #ffc44d); }
.sf-grade-badge[data-grade="D"] { background: linear-gradient(135deg, #ffb27a, #ff8a4d); }
.sf-grade-badge[data-grade="F"] { background: linear-gradient(135deg, #ff9aa9, #ff6a8e); }
.sf-verdict-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sf-verdict-tag { font: 800 10.5px/1 var(--font-display); letter-spacing: .14em; color: #ff8a92; }
.sf-verdict[data-tier="go"] .sf-verdict-tag { color: #7dffc4; }
.sf-verdict-line { font: 800 17px/1.15 var(--font-display); color: #f4f5f8; }
.sf-verdict-sub { font-size: 11.5px; line-height: 1.4; color: var(--text-muted); }
.sf-dir { font: 900 16px/1 var(--font-display); padding: 8px 12px; border-radius: 10px; white-space: nowrap; color: var(--text-muted); border: 1px solid rgba(255,255,255,0.1); }
.sf-dir[data-dir="buy"]  { color: #7dffc4; border-color: rgba(33,208,122,0.5); background: rgba(33,208,122,0.12); }
.sf-dir[data-dir="sell"] { color: #8b93a8; border-color: rgba(139, 147, 168,0.5); background: rgba(139, 147, 168,0.12); }
.sf-tfs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.sf-tf { display: flex; flex-direction: column; gap: 2px; padding: 11px 13px; border-radius: 13px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); }
.sf-tf small { font-size: 10px; color: var(--text-muted); }
.sf-tf strong { font: 800 15px/1 var(--font-display); color: #d0d3db; }
.sf-tf strong[data-dir="bull"] { color: #7dffc4; } .sf-tf strong[data-dir="bear"] { color: #8b93a8; }
.sf-entry { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.sf-entry-pill {
  font: 800 11.5px/1 var(--font-display); padding: 8px 12px; border-radius: 999px;
  color: var(--text-muted); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12);
  transition: color .25s, background .25s, border-color .25s, box-shadow .25s;
}
.sf-entry-pill[data-ok="1"] { color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border-color: transparent; box-shadow: 0 0 16px -3px rgba(33,208,122,0.7); }
.sf-entry-state { margin-left: auto; font: 800 12px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted); }
.sf-entry-state[data-ready="1"] { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,0.5); }
.sf-score-row { display: flex; flex-direction: column; gap: 6px; }
.sf-score-lbl { font-size: 12px; color: var(--text-muted); } .sf-score-lbl b { color: #e6e9f2; font-family: var(--font-display); font-size: 14px; }
.sf-score-bar { height: 10px; border-radius: 7px; background: rgba(255,255,255,0.06); overflow: hidden; }
.sf-score-fill { display: block; height: 100%; width: 0; border-radius: 7px; background: linear-gradient(90deg,#ff6a8e,#ffc44d,#e6e9f2,#21d07a); transition: width .6s cubic-bezier(.2,.7,.3,1); box-shadow: 0 0 14px rgba(230,233,242,0.5); }
.sf-section-lbl { font: 800 12.5px/1 var(--font-display); color: #dde0e6; } .sf-section-lbl small { font-weight: 500; color: var(--text-muted); }
.sf-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.sf-ck { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 11px; background: rgba(255,255,255,0.025); border: 1px solid rgba(255,255,255,0.06); }
.sf-ck[data-ok="1"] { background: rgba(33,208,122,0.10); border-color: rgba(33,208,122,0.28); }
.sf-ck-mark { width: 18px; height: 18px; flex: none; display: grid; place-items: center; border-radius: 6px; font-size: 11px; font-weight: 800; color: var(--text-muted); background: rgba(255,255,255,0.06); }
.sf-ck[data-ok="1"] .sf-ck-mark { color: #04140d; background: #7dffc4; }
.sf-ck-label { flex: 1; font-size: 12.5px; color: #d0d3db; } .sf-ck[data-ok="1"] .sf-ck-label { color: #eafff5; }
.sf-ck-pct { font: 800 11px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted); }
.sf-ck[data-ok="1"] .sf-ck-pct { color: #7dffc4; }
.sf-foot small { font-size: 11.5px; line-height: 1.5; color: var(--text-muted); display: block; padding: 11px 13px; border-radius: 12px; background: rgba(255,170,60,0.07); border: 1px solid rgba(255,170,60,0.18); }
@media (max-width: 640px) { .sf-verdict { grid-template-columns: auto 1fr; } .sf-dir { grid-column: 1 / -1; text-align: center; } .sf-tfs { grid-template-columns: 1fr 1fr; } }

/* ════════════════════════════════════════════════════════════════
   AETHER CARD REVEAL — premium scroll-reveal entrance (GPU-composited,
   one-time per card, no continuous work → scrolling stays buttery).
   ════════════════════════════════════════════════════════════════ */
.ae-reveal { opacity: 0; transform: translate3d(0, 22px, 0); }
.ae-reveal.is-revealed {
  opacity: 1; transform: none;
  transition: opacity .6s cubic-bezier(.22,.61,.36,1) var(--ae-reveal-delay, 0ms),
              transform .6s cubic-bezier(.22,.61,.36,1) var(--ae-reveal-delay, 0ms);
}
/* Colour-accurate, smooth glow/scale transitions on the big Auto Trading cards
   (the tilt engine still owns per-card hover transforms via inline styles). */
#view-auto .aether-core, #view-auto .qs-card, #view-auto .sat-crack,
#view-auto .ai-opportunity-radar, #view-auto .ai-auto-pilot,
#view-auto .ai-memory-bank, #view-auto .ai-brain, #view-auto .sat-kpi,
#journal-section .win-loss-card {
  transition: box-shadow .4s ease, border-color .4s ease, background .4s ease, transform .28s cubic-bezier(.22,.61,.36,1);
}
.sat-kpi { transition: transform .2s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease; }
.sat-kpi:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -16px rgba(250, 146, 0,0.7); }

/* ⚡ FLUIDITY: skip painting/layout for large off-screen blocks until they near
   the viewport — slashes render cost on the long Auto Trading page. The 'auto'
   intrinsic size remembers each block's real height so scroll never jumps. */
@supports (content-visibility: auto) {
  #view-auto .sat-switches,
  #view-auto .sat-cracked,
  #view-auto .sat-modgrid,
  #view-auto .sat-strip,
  #view-auto .sat-panels,
  #journal-section .journal-list {
    content-visibility: auto;
    contain-intrinsic-size: auto 520px;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   ⚡⚡ GPU ACCELERATION PASS — render like it's on a top-tier graphics card.
   Hand the heavy, ALWAYS-ON decorative animations to the GPU compositor so
   each one runs on the graphics card instead of repainting the main thread
   every single frame. Every selector here is an element that animates
   continuously, so the compositor layer it gets is fully paid back by zero
   main-thread paint — buttery on real hardware with a real GPU.
   (Selectors that don't exist are harmless no-ops.)
   ──────────────────────────────────────────────────────────────────────── */
.shf-aurora, .shf-scan, .shf-grid, .shf-orbs, .shf-orbs i,
.ac-core-aurora, .ac-core-rays, .ac-core-grid, .ac-core-scanline,
.ac-scan-radar, .ac-reactor-spark, .sat-mega-aura, .ss-glider,
.qs-hero-beam, .mai-beam, .smart-edge-beam, .sat-beam,
.aib-orb, .orb.active, .voice-orb.listening {
  will-change: transform, opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
}
/* Animations that animate transform themselves must NOT also carry a static
   translateZ (it would fight the keyframes) — promotion via will-change alone. */
.shf-aurora, .shf-scan, .shf-orbs i, .ac-scan-radar,
.ss-glider, .orb.active, .voice-orb.listening { transform: none; }

/* Pause EVERY animation while the tab is hidden — spend zero GPU/CPU on FX the
   user can't even see. Snaps back to life the instant the tab is focused. */
html.aether-tab-hidden *,
html.aether-tab-hidden *::before,
html.aether-tab-hidden *::after { animation-play-state: paused !important; }

/* ════════════════════════════════════════════════════════════════
   ✦ Premium custom MODULE DROPDOWN (replaces the native <select>)
   ════════════════════════════════════════════════════════════════ */
.qs-modules-pick.has-dd2 { display: block; }
.qs-modules-pick.has-dd2 > #sat-tabs-select { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; overflow: hidden; clip: rect(0 0 0 0); }
.qs-modules-pick.has-dd2 > .qs-modules-pick-icon { display: none; }
.sat-dd2 { position: relative; width: 100%; }
.sat-dd2-trigger {
  width: 100%; cursor: pointer; appearance: none; text-align: left;
  display: flex; align-items: center; gap: 12px; padding: 11px 14px;
  border-radius: 14px; font: inherit; color: #f2f4f9;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.16), rgba(10,7,20,0.92));
  border: 1px solid rgba(250, 146, 0,0.4);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  transition: border-color .2s, box-shadow .25s, transform .15s;
}
.sat-dd2-trigger:hover { border-color: rgba(250, 146, 0,0.7); box-shadow: 0 0 20px -6px rgba(250, 146, 0,0.8); }
.sat-dd2-trigger:active { transform: scale(.99); }
.sat-dd2-ico { font-size: 22px; flex: 0 0 auto; filter: drop-shadow(0 0 8px rgba(250, 146, 0,0.6)); }
.sat-dd2-cur { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.sat-dd2-cur b { font-family: var(--font-display); font-weight: 800; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sat-dd2-cur small { font-size: 10.5px; color: var(--text-muted); }
.sat-dd2-chev { font-size: 14px; color: #d9c4c9; transition: transform .25s; flex: 0 0 auto; }
.sat-dd2.is-open .sat-dd2-chev { transform: rotate(180deg); }
.sat-dd2-pop {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 40;
  border-radius: 16px; overflow: hidden;
  background: linear-gradient(180deg, rgba(13,10,28,0.99), rgba(8,5,18,0.99));
  border: 1px solid rgba(250, 146, 0,0.4);
  box-shadow: 0 30px 70px -24px rgba(0,0,0,0.9), 0 0 0 1px rgba(250, 146, 0,0.12);
  transform: translateY(-8px) scale(.98); opacity: 0; transform-origin: top;
  transition: transform .2s cubic-bezier(.2,.7,.3,1), opacity .2s;
}
.sat-dd2.is-open .sat-dd2-pop { transform: none; opacity: 1; }
.sat-dd2-search { padding: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sat-dd2-search input { width: 100%; padding: 9px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: #f2f4f9; font: inherit; font-size: 13px; }
.sat-dd2-list { max-height: 320px; overflow-y: auto; padding: 6px; overscroll-behavior: contain; }
.sat-dd2-list::-webkit-scrollbar { width: 9px; } .sat-dd2-list::-webkit-scrollbar-thumb { background: rgba(250, 146, 0,0.3); border-radius: 8px; }
.sat-dd2-group { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #a0959e; padding: 9px 10px 4px; font-weight: 800; }
.sat-dd2-item {
  width: 100%; cursor: pointer; appearance: none; text-align: left;
  display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px;
  font: inherit; color: #e6e6ec; background: transparent; border: 1px solid transparent;
  transition: background .15s, border-color .15s, transform .12s;
}
.sat-dd2-item:hover { background: rgba(250, 146, 0,0.16); border-color: rgba(250, 146, 0,0.4); }
.sat-dd2-item:active { transform: scale(.98); }
.sat-dd2-item.is-active { background: rgba(33,208,122,0.12); border-color: rgba(33,208,122,0.4); }
.dd2-ico { font-size: 18px; flex: 0 0 auto; }
.dd2-name { font-weight: 700; font-size: 13px; flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dd2-go { font-size: 12px; color: #a0959e; opacity: 0; transition: opacity .15s; }
.sat-dd2-item:hover .dd2-go { opacity: 1; }

/* per-analyzer Supply/Demand bias chip (injected into every analyzer card header) */
.an-sd-chip {
  display: inline-flex; align-items: center; gap: 4px; vertical-align: middle;
  padding: 2px 8px; border-radius: 999px; margin-left: 6px; white-space: nowrap;
  font-size: 9.5px; font-weight: 800; letter-spacing: .04em;
  border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: #b8b8c0;
  transition: color .3s, background .3s, border-color .3s, box-shadow .3s;
}
.an-sd-chip[data-bias="bullish"] { color: #7dffc4; border-color: rgba(33,208,122,0.45); background: rgba(33,208,122,0.10); box-shadow: 0 0 10px -4px rgba(33,208,122,0.6); }
.an-sd-chip[data-bias="bearish"] { color: #ff7a90; border-color: rgba(139, 147, 168,0.45); background: rgba(139, 147, 168,0.10); box-shadow: 0 0 10px -4px rgba(139, 147, 168,0.6); }

/* ════════════════════════════════════════════════════════════════
   AETHER COMMAND ORGANIZER — sticky zone navigator + collapsible zones
   ════════════════════════════════════════════════════════════════ */
.sat-navigator {
  position: sticky; top: 78px; z-index: 15;
  display: flex; align-items: center; gap: 10px;
  margin: 10px 0 16px; padding: 8px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(14,11,30,0.96), rgba(9,6,18,0.96));
  border: 1px solid rgba(250, 146, 0,0.30);
  box-shadow: 0 14px 34px -18px rgba(0,0,0,0.85), inset 0 1px 0 rgba(255,255,255,0.04);
}
.sat-nav-pills { display: flex; gap: 6px; overflow-x: auto; flex: 1 1 auto; min-width: 0; scrollbar-width: none; scroll-behavior: smooth; }
.sat-nav-pills::-webkit-scrollbar { display: none; }
.sat-nav-pill {
  flex: 0 0 auto; cursor: pointer; appearance: none;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 12px;
  color: #d2c9d0; white-space: nowrap; border: 1px solid transparent; background: rgba(255,255,255,0.04);
  transition: color .2s, background .2s, border-color .2s, box-shadow .25s, transform .15s;
}
.sat-nav-pill:hover { color: #f1eaec; background: rgba(250, 146, 0,0.16); }
.sat-nav-pill:active { transform: scale(.96); }
.sat-nav-pill.is-active {
  color: #fff; background: linear-gradient(135deg, rgba(250, 146, 0,0.55), rgba(196,13,28,0.55));
  border-color: rgba(250, 146, 0,0.6); box-shadow: 0 0 16px -5px rgba(250, 146, 0,0.9);
}
.snp-ico { font-size: 14px; line-height: 1; }
.sat-nav-tools { display: flex; gap: 4px; flex: 0 0 auto; }
.sat-nav-tool {
  cursor: pointer; appearance: none; width: 32px; height: 32px; border-radius: 9px;
  border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.05); color: #d3d6de; font-size: 14px;
  transition: background .2s, border-color .2s, transform .15s;
}
.sat-nav-tool:hover { background: rgba(250, 146, 0,0.2); border-color: rgba(250, 146, 0,0.5); }
.sat-nav-tool:active { transform: scale(.92); }
/* collapsible zone headers */
.sat-zone-head { cursor: pointer; user-select: none; position: relative; padding-right: 34px; transition: color .2s; }
.sat-zone-head:hover { color: #fff; }
.sat-zone-chev { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 13px; color: #d9c4c9; transition: transform .25s; }
.sat-zone-head[data-collapsed="1"] .sat-zone-chev { transform: translateY(-50%) rotate(-90deg); }
.sat-zone-hidden { display: none !important; }
/* any scrollIntoView lands a zone title below the sticky header+nav stack */
.sat-row-title { scroll-margin-top: 170px; }
@media (max-width: 640px) { .sat-navigator { top: 64px; } .sat-row-title { scroll-margin-top: 210px; } }

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE SAFETY — Auto Trading fits ANY device (no horizontal overflow)
   ════════════════════════════════════════════════════════════════ */
#view-auto, #view-console, .aether-view, .skilli-auto-trading { max-width: 100%; min-width: 0; }
.skilli-auto-trading > *,
.sat-kpis, .sat-switches, .sat-cracked, .sat-modgrid, .ac-core, .aether-core,
.ac-core-vitals, .ac-core-decision, .sat-strip, .qs-grid, .qs-presets-row,
.sd-zones-row, .sd-top, .sat-core { min-width: 0; }
/* tablets / large phones */
@media (max-width: 760px) {
  .sat-kpis { grid-template-columns: repeat(3, 1fr); }
  .ac-core-vitals { grid-template-columns: repeat(2, 1fr); }
  .sat-switches { grid-template-columns: 1fr 1fr; }
  .sat-cracked { grid-template-columns: 1fr; }
  .sd-top { grid-template-columns: 1fr; }
  .qs-grid { grid-template-columns: 1fr 1fr; }
}
/* phones */
@media (max-width: 480px) {
  .sat-kpis { grid-template-columns: repeat(2, 1fr); }
  .ac-core-vitals { grid-template-columns: 1fr 1fr; }
  .sat-switches { grid-template-columns: 1fr; }
  .sat-modgrid { grid-template-columns: repeat(2, 1fr); }
  .sd-zones-row { grid-template-columns: 1fr; }
  .qs-grid { grid-template-columns: 1fr; }
  .sat-hero { padding: 13px 12px; }
}
.sat-master-pill {
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 11px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.04); color: var(--text-muted);
  transition: all .25s ease;
}
.sat-master-pill[data-state="engaged"] { color: #04140d; background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; box-shadow: 0 0 20px -6px rgba(33,208,122,0.7); }
.sat-master-btn {
  appearance: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 12px;
  border: 1px solid rgba(250, 146, 0,0.55);
  background: linear-gradient(135deg, rgba(250, 146, 0,0.95), rgba(196,13,28,0.95));
  color: #fff;
  font-family: var(--font-display); font-size: 12px; font-weight: 800;
  letter-spacing: .06em;
  transition: transform .14s ease, box-shadow .25s ease, filter .25s ease;
}
.sat-master-btn:hover { transform: translateY(-1px); filter: brightness(1.1); }
.sat-master-btn[data-state="on"] {
  background: linear-gradient(135deg, #21d07a, #16a76a);
  border-color: rgba(33,208,122,0.7); color: #04140d;
  box-shadow: 0 0 26px -6px rgba(33,208,122,0.65);
}
.sat-master-icon { font-size: 15px; }

/* Core mount area holds the 4 relocated AI modules */
.sat-core { display: grid; gap: 12px; margin-bottom: 14px; }

/* Tabs */
.sat-tabs {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 8px; margin: 6px 0 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(8,4,20,0.5);
}
.sat-tab {
  appearance: none; cursor: pointer;
  padding: 7px 11px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: var(--text-muted);
  font-family: var(--font-display); font-size: 11px; font-weight: 700;
  letter-spacing: .03em;
  transition: all .2s ease;
}
.sat-tab:hover { color: #f2f4f9; border-color: rgba(230,233,242,0.3); }
.sat-tab[aria-selected="true"] {
  color: #04140d;
  background: linear-gradient(135deg, #e6e9f2, #7dffc4);
  border-color: transparent;
  box-shadow: 0 0 16px -6px rgba(230,233,242,0.6);
}

/* Panels */
.sat-panels { display: grid; gap: 12px; }
.sat-panel {
  padding: 12px 14px;
  border: 1px solid rgba(230,233,242,0.18);
  border-radius: 14px;
  position: relative;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(230,233,242,0.06), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.7), rgba(14,10,30,0.7));
  box-shadow:
    0 18px 42px -28px rgba(0,0,0,0.75),
    0 0 24px -13px rgba(250, 146, 0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.06);
  transition: box-shadow .28s ease, border-color .28s ease;
}
/* Animated top edge-beam — brings module panels up to the Quick-Setup standard */
.sat-panel::after {
  content: ""; position: absolute; left: 16px; right: 16px; top: 0; height: 2px;
  border-radius: 999px; pointer-events: none;
  background: linear-gradient(90deg, transparent, #e6e9f2, #d9c4c9, #7dffc4, transparent);
  background-size: 220% 100%; opacity: .5;
  animation: satPanelBeam 5s linear infinite;
}
@keyframes satPanelBeam { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }
.sat-panel:hover {
  border-color: rgba(250, 146, 0,0.45);
  box-shadow:
    0 26px 56px -26px rgba(0,0,0,0.85),
    0 0 38px -10px rgba(250, 146, 0,0.62),
    0 0 18px -8px rgba(230,233,242,0.4),
    inset 0 1px 0 rgba(255,255,255,0.12);
}
body.sat-neon .sat-panel {
  box-shadow:
    0 18px 42px -28px rgba(0,0,0,0.75),
    0 0 34px -8px rgba(250, 146, 0,0.72),
    0 0 16px -6px rgba(230,233,242,0.45),
    inset 0 1px 0 rgba(255,255,255,0.12);
}
body.sat-reduce-motion .sat-panel::after { animation: none; }
.sat-panel-head { margin-bottom: 10px; }
.sat-panel-head h3 { margin: 0; font-family: var(--font-display); font-size: 14px; font-weight: 800; letter-spacing: .04em; color: #d9c4c9; }
.sat-panel-head small { display: block; color: var(--text-muted); font-size: 10.5px; margin-top: 2px; }

/* Scanner */
.sat-scanner-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.sat-scanner-cell {
  position: relative; cursor: pointer;
  display: grid; gap: 2px;
  padding: 7px 9px 11px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  background: rgba(255,255,255,0.025);
  color: var(--text-dim); font-family: var(--font-display); font-size: 11px;
  transition: transform .12s ease, border-color .2s ease;
}
.sat-scanner-cell strong { font-size: 11px; color: #f2f4f9; }
.sat-scanner-cell span { font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.sat-scanner-cell i {
  position: absolute; left: 6px; right: 6px; bottom: 4px; height: 3px;
  border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #e6e9f2);
  width: 0; transition: width .35s ease;
}
.sat-scanner-cell[data-tier="hot"]  { border-color: rgba(125,255,196,0.45); color: #7dffc4; }
.sat-scanner-cell[data-tier="warm"] { border-color: rgba(230,233,242,0.4); color: #e6e9f2; }
.sat-scanner-cell[data-tier="mid"]  { color: #d2d6e2; }
.sat-scanner-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; gap: 10px; flex-wrap: wrap; }
.sat-scanner-foot span { color: var(--text-dim); font-size: 12px; }
.sat-mini-btn {
  cursor: pointer; padding: 6px 12px; border-radius: 10px;
  border: 1px solid rgba(230,233,242,0.4);
  background: rgba(230,233,242,0.08); color: #e6e9f2;
  font-family: var(--font-display); font-size: 11px; font-weight: 700;
  transition: all .2s ease;
}
.sat-mini-btn:hover { background: rgba(230,233,242,0.15); transform: translateY(-1px); }

/* Strategy */
.sat-strat-build { display: grid; gap: 8px; }
.sat-strat-slot { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-dim); }
.sat-strat-slot select { flex: 1; padding: 6px 8px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: #f2f4f9; }
.sat-strat-bar { display: flex; align-items: center; gap: 10px; padding-top: 4px; }
.sat-strat-bar label { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--text-dim); flex: 1; }
.sat-strat-bar input[type="range"] { flex: 1; }
.sat-strat-bar strong { color: #e6e9f2; font-family: var(--font-display); font-variant-numeric: tabular-nums; }
.sat-strat-status {
  padding: 8px 11px; border-radius: 10px;
  background: rgba(255,255,255,0.04); color: var(--text-dim);
  font-size: 12px; border: 1px solid rgba(255,255,255,0.08);
}
.sat-strat-status[data-aligned="true"] {
  color: #7dffc4; border-color: rgba(125,255,196,0.45); background: rgba(125,255,196,0.06);
  box-shadow: 0 0 18px -8px rgba(125,255,196,0.5);
}

/* Risk */
.sat-risk-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sat-risk-card { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid rgba(255,255,255,0.1); border-radius: 11px; background: rgba(255,255,255,0.03); }
.sat-risk-card small { font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.sat-risk-card strong { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-risk-card span { font-size: 10px; color: var(--text-dim); }
.sat-risk-card input[type="range"] { width: 100%; }
.sat-risk-card strong[data-state="armed"]    { color: #7dffc4; }
.sat-risk-card strong[data-state="trailing"] { color: #ffd96b; }
.sat-risk-card strong[data-state="tripped"]  { color: #8b93a8; }

/* Bankroll */
.sat-bank-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sat-bank-card { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid rgba(255,255,255,0.1); border-radius: 11px; background: rgba(255,255,255,0.03); }
.sat-bank-card small { font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.sat-bank-card strong { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #7dffc4; font-variant-numeric: tabular-nums; }
.sat-bank-card span { font-size: 10px; color: var(--text-dim); }
.sat-bank-card input, .sat-bank-card select {
  width: 100%; padding: 6px 8px; border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04); color: #f2f4f9;
}

/* Equity */
#sat-equity-canvas { width: 100%; height: 180px; background: rgba(8,4,20,0.6); border-radius: 12px; }
.sat-equity-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 8px; }
.sat-equity-stats > div { padding: 7px 9px; border: 1px solid rgba(255,255,255,0.08); border-radius: 9px; background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.sat-equity-stats small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .06em; text-transform: uppercase; }
.sat-equity-stats strong { font-family: var(--font-display); font-size: 14px; font-variant-numeric: tabular-nums; color: #f2f4f9; }

/* Heat map */
.sat-heatmap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.sat-heat-cell {
  position: relative; padding: 8px 10px 14px;
  border: 1px solid rgba(255,255,255,0.1); border-radius: 11px;
  background: rgba(255,255,255,0.03); display: grid; gap: 1px;
}
.sat-heat-cell strong { font-size: 12px; color: #f2f4f9; }
.sat-heat-cell span { font-family: var(--font-display); font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; color: #e6e9f2; }
.sat-heat-cell i { position: absolute; left: 7px; right: 7px; bottom: 5px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #8b93a8, #e6e9f2); width: 0; transition: width .35s ease; }
.sat-heat-cell[data-tier="hot"]  { border-color: rgba(125,255,196,0.5); }
.sat-heat-cell[data-tier="hot"] span  { color: #7dffc4; }
.sat-heat-cell[data-tier="hot"] i     { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.sat-heat-cell[data-tier="warm"] span { color: #e6e9f2; }

/* Combo */
.sat-combo-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 11px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03);
  margin-bottom: 6px;
}
.sat-combo-row strong { color: #f2f4f9; font-family: var(--font-display); font-size: 13px; }
.sat-combo-row span { font-family: var(--font-display); font-size: 12px; font-variant-numeric: tabular-nums; color: #e6e9f2; }
.sat-combo-row[data-tier="hot"]  { border-color: rgba(125,255,196,0.5); background: rgba(125,255,196,0.05); }
.sat-combo-row[data-tier="hot"] span { color: #7dffc4; }

/* Symbols */
.sat-symbols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.sat-sym-row {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 10px; border-radius: 9px;
  border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03);
  font-size: 12px; color: #e6e9f2; cursor: pointer;
}

/* Session */
.sat-session-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.sat-session-grid > div { padding: 9px 11px; border: 1px solid rgba(255,255,255,0.1); border-radius: 11px; background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.sat-session-grid small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.sat-session-grid strong { font-family: var(--font-display); font-size: 16px; color: #f2f4f9; font-variant-numeric: tabular-nums; }

/* Forecast */
.sat-forecast { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.sat-fc-cell {
  display: grid; gap: 2px;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,0.1); border-radius: 11px;
  background: rgba(255,255,255,0.03);
  text-align: center;
}
.sat-fc-cell strong { font-size: 12px; color: #f2f4f9; }
.sat-fc-arrow { font-family: var(--font-display); font-size: 18px; color: #e6e9f2; }
.sat-fc-val { font-family: var(--font-display); font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; color: #e6e9f2; }
.sat-fc-cell small { font-size: 9px; color: var(--text-muted); }
.sat-fc-cell[data-tier="hot"]  { border-color: rgba(125,255,196,0.5); }
.sat-fc-cell[data-tier="hot"] .sat-fc-val { color: #7dffc4; }

/* Quality */
.sat-quality { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.sat-quality-cell {
  text-align: center; padding: 10px;
  border-radius: 11px; border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
}
.sat-quality-cell strong { display: block; font-family: var(--font-display); font-size: 26px; font-weight: 900; color: #f2f4f9; }
.sat-quality-cell span { display: block; font-size: 11px; color: #e6e9f2; margin: 4px 0 2px; }
.sat-quality-cell small { font-size: 10px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.sat-quality-cell[data-tier="hot"] strong  { color: #7dffc4; text-shadow: 0 0 14px rgba(125,255,196,0.5); }
.sat-quality-cell[data-tier="warm"] strong { color: #e6e9f2; }
.sat-quality-cell[data-tier="cool"] strong { color: #8b93a8; }

/* Anti-tilt */
.sat-tilt-meter { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; margin-bottom: 10px; }
.sat-tilt-fill { display: block; height: 100%; border-radius: 999px; transition: width .4s ease, background .4s ease; }
.sat-tilt-fill[data-tier="hot"]  { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.sat-tilt-fill[data-tier="warm"] { background: linear-gradient(90deg, #ffd96b, #ffb35a); }
.sat-tilt-fill[data-tier="cool"] { background: linear-gradient(90deg, #8b93a8, #8b93a8); }
.sat-tilt-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sat-tilt-stats > div { padding: 9px 11px; border: 1px solid rgba(255,255,255,0.1); border-radius: 11px; background: rgba(255,255,255,0.03); display: grid; gap: 1px; }
.sat-tilt-stats small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.sat-tilt-stats strong { font-family: var(--font-display); font-size: 16px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-tilt-stats strong[data-state="hot"]  { color: #7dffc4; }
.sat-tilt-stats strong[data-state="warn"] { color: #ffd96b; }
.sat-tilt-stats strong[data-state="cool"] { color: #8b93a8; }
.sat-tilt-stats span { font-size: 9.5px; color: var(--text-dim); }

/* Voice */
.sat-voice-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sat-voice-btn { cursor: pointer; padding: 8px 14px; border-radius: 11px; border: 1px solid rgba(250, 146, 0,0.5); background: linear-gradient(135deg, rgba(250, 146, 0,0.6), rgba(196,13,28,0.6)); color: #fff; font-family: var(--font-display); font-size: 12px; font-weight: 800; }
.sat-voice-state { font-family: var(--font-display); font-size: 10.5px; font-weight: 800; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.14); color: var(--text-muted); }
.sat-voice-state[data-state="on"] { color: #7dffc4; border-color: rgba(125,255,196,0.5); }
.sat-voice-log { max-height: 220px; overflow-y: auto; padding: 8px 10px; border: 1px solid rgba(255,255,255,0.08); border-radius: 11px; background: rgba(0,0,0,0.3); font-family: var(--font-mono, ui-monospace, monospace); font-size: 11.5px; color: var(--text-dim); }
.sat-voice-msg { padding: 3px 0; border-bottom: 1px dashed rgba(255,255,255,0.06); }
.sat-voice-msg[data-kind="out"]  { color: #7dffc4; }
.sat-voice-msg[data-kind="warn"] { color: #ffd96b; }

/* Modes */
.sat-modes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.sat-mode {
  display: grid; gap: 3px; padding: 11px 13px; border-radius: 12px; cursor: pointer;
  border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.03);
  text-align: left;
}
.sat-mode strong { font-family: var(--font-display); font-size: 14px; color: #f2f4f9; }
.sat-mode span { font-size: 10.5px; color: var(--text-muted); }
.sat-mode[data-active="true"] {
  border-color: rgba(33,208,122,0.6);
  background: rgba(33,208,122,0.08);
  box-shadow: 0 0 18px -8px rgba(33,208,122,0.6);
}
.sat-mode[data-active="true"] strong { color: #7dffc4; }

/* Bottom strip */
.sat-strip {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
  margin-top: 14px; padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.sat-strip-pill {
  display: grid; gap: 2px; padding: 8px 10px;
  border-radius: 10px; border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
}
.sat-strip-pill small { font-size: 9.5px; color: var(--text-muted); letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.sat-strip-pill strong { font-family: var(--font-display); font-size: 12.5px; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.sat-strip-pill strong[data-tier="hot"]  { color: #7dffc4; }
.sat-strip-pill strong[data-tier="warm"] { color: #ffd96b; }
.sat-strip-pill strong[data-tier="cool"] { color: #8b93a8; }

/* Responsive */
@media (max-width: 900px) {
  .sat-scanner-grid, .sat-bank-grid, .sat-risk-grid, .sat-tilt-stats { grid-template-columns: repeat(2, 1fr); }
  .sat-heatmap, .sat-forecast, .sat-quality { grid-template-columns: repeat(2, 1fr); }
  .sat-session-grid, .sat-modes { grid-template-columns: repeat(2, 1fr); }
  .sat-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ===== AI MEMORY BANK — long-term learning archive ===== */
.ai-memory-bank {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(230,233,242,0.22);
  border-radius: 16px;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(230,233,242,0.10), transparent 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(250, 146, 0,0.12), transparent 60%),
    linear-gradient(135deg, rgba(8,4,20,0.85), rgba(14,10,30,0.85));
  display: grid; gap: 10px;
}
.amb-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.amb-title { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #d9c4c9; }
.amb-sub { font-size: 10.5px; color: var(--text-muted); }
.amb-insight {
  font-size: 12.5px; line-height: 1.45; color: #e6e9f2;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px dashed rgba(250, 146, 0,0.3);
  background: rgba(250, 146, 0,0.06);
  font-variant-numeric: tabular-nums;
}
.amb-grid {
  display: grid; gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.amb-card {
  display: grid; gap: 2px;
  padding: 8px 10px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  min-width: 0;
}
.amb-card small { font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
.amb-card strong { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.amb-card span { font-size: 10px; color: var(--text-dim); }
.amb-card strong[data-tier="hot"]  { color: #7dffc4; }
.amb-card strong[data-tier="warm"] { color: #e6e9f2; }
.amb-card strong[data-tier="cool"] { color: #8b93a8; }
@media (max-width: 720px) { .amb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== AI AUTO-PILOT — global autonomous trader panel ===== */
.ai-autopilot {
  margin-top: 12px; padding: 12px 14px;
  border: 1px solid rgba(250, 146, 0,0.32); border-radius: 16px;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(250, 146, 0,0.16), transparent 55%),
    radial-gradient(140% 90% at 100% 100%, rgba(33,208,122,0.12), transparent 55%),
    linear-gradient(135deg, rgba(14,10,30,0.86), rgba(10,18,40,0.86));
  display: grid; gap: 10px;
  position: relative; overflow: hidden;
}
.ai-autopilot::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(250, 146, 0,0), rgba(250, 146, 0,0));
  transition: background .4s ease, opacity .4s ease;
  opacity: 0;
}
.ai-autopilot.is-on::before {
  opacity: 1;
  background: linear-gradient(120deg, rgba(33,208,122,0.0), rgba(33,208,122,0.18), rgba(230,233,242,0.18), rgba(33,208,122,0.0));
}
.ai-autopilot.is-on { border-color: rgba(33,208,122,0.5); box-shadow: 0 0 22px -8px rgba(33,208,122,0.45); }
.aap-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; position: relative; z-index: 1; }
.aap-title-wrap { display: grid; }
.aap-title { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #d9c4c9; }
.ai-autopilot.is-on .aap-title { color: #7dffc4; }
.aap-sub { font-size: 10px; color: var(--text-muted); letter-spacing: .05em; }
.aap-head-right { display: flex; align-items: center; gap: 10px; }
.aap-status {
  font-family: var(--font-display); font-size: 10.5px; font-weight: 800;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04);
  color: var(--text-muted); white-space: nowrap;
  transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.aap-status[data-state="off"]      { color: var(--text-muted); }
.aap-status[data-state="scanning"] { color: #e6e9f2; border-color: rgba(230,233,242,0.45); background: rgba(230,233,242,0.08); box-shadow: 0 0 14px -6px rgba(230,233,242,0.6); }
.aap-status[data-state="cooldown"] { color: #ffd06b; border-color: rgba(255,208,107,0.45); background: rgba(255,208,107,0.08); }
.aap-status[data-state="firing"]   { color: #04140d; border-color: transparent; background: linear-gradient(135deg, #21d07a, #e6e9f2); box-shadow: 0 0 22px -4px rgba(33,208,122,0.7); }
.aap-status[data-state="paused"]   { color: #ffb35a; border-color: rgba(255,179,90,0.45); background: rgba(255,179,90,0.08); }
.aap-status[data-state="blocked"]  { color: #8b93a8; border-color: rgba(255,128,146,0.45); background: rgba(255,128,146,0.08); }
.aap-toggle { appearance: none; border: none; background: none; padding: 0; cursor: pointer; }
.aap-toggle-track { display: block; width: 44px; height: 24px; border-radius: 999px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.2); position: relative; transition: background .2s ease, border-color .2s ease; }
.aap-toggle-thumb { position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #e6e9f2; transition: transform .2s ease, background .2s ease; }
.aap-toggle[aria-checked="true"] .aap-toggle-track { background: linear-gradient(135deg, #21d07a, #e6e9f2); border-color: transparent; }
.aap-toggle[aria-checked="true"] .aap-toggle-thumb { transform: translateX(20px); background: #04140d; }
.aap-meta { font-size: 11.5px; color: var(--text-dim); line-height: 1.4; position: relative; z-index: 1; }
.ai-autopilot.is-on .aap-meta { color: #e6e9f2; }
.aap-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; position: relative; z-index: 1; }
.aap-stat {
  display: grid; gap: 2px; padding: 7px 9px; border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03);
  text-align: left;
}
.aap-stat small { font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.aap-stat strong { font-family: var(--font-display); font-size: 17px; font-weight: 800; color: #f2f4f9; font-variant-numeric: tabular-nums; }
.aap-stat span { font-size: 9.5px; color: var(--text-dim); letter-spacing: .04em; }
.aap-stat strong[data-tier="hot"]  { color: #7dffc4; }
.aap-stat strong[data-tier="warm"] { color: #e6e9f2; }
.aap-stat strong[data-tier="cool"] { color: #8b93a8; }
.aap-rule { font-size: 9.5px; color: var(--text-muted); letter-spacing: .04em; font-family: var(--font-display); position: relative; z-index: 1; opacity: .8; }
@media (max-width: 560px) {
  .aap-stats { grid-template-columns: repeat(2, 1fr); }
}

.btn-smart-loop {
  display: flex; align-items: center; justify-content: center;
  padding: 8px 10px; border-radius: var(--radius-sm);
  font-family: var(--font-display); font-weight: 700; font-size: 12px;
  cursor: pointer; color: var(--text);
  border: 1px solid rgba(250, 146, 0,0.35);
  background: linear-gradient(160deg, rgba(26,16,46,0.6), rgba(8,4,20,0.6));
  transition: transform .16s, border-color .25s, box-shadow .25s, background .25s;
}
.btn-smart-loop:hover { transform: translateY(-2px); border-color: var(--neon-violet); }
.btn-smart-loop.is-on {
  border-color: rgba(125,255,196,0.6);
  background: linear-gradient(160deg, rgba(18,46,32,0.7), rgba(8,4,20,0.6));
  color: var(--ok);
  box-shadow: 0 0 14px -4px var(--ok);
}
@media (max-width: 720px) { .amc-smart-matrix { grid-template-columns: repeat(2, 1fr); } }
.amc-read {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid color-mix(in srgb, var(--amc-color) 40%, transparent);
  background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--amc-color) 14%, transparent), transparent 62%), rgba(8,4,20,0.55);
}
.amc-emoji { font-size: 22px; line-height: 1; }
.amc-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.amc-label { font-family: var(--font-display); font-size: 14px; color: var(--amc-color); }
.amc-headline { font-size: 10.5px; color: var(--text-muted); line-height: 1.35; overflow: hidden; text-overflow: ellipsis; }
.amc-fit {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  color: var(--amc-fit-color);
}
.analyzer-mc[data-verdict="favored"] .amc-read,
.analyzer-mc [data-verdict="favored"] { box-shadow: 0 0 18px -10px var(--ok); }
.btn-smart-exec {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(125,255,196,0.4);
  background: linear-gradient(160deg, rgba(18,46,32,0.7), rgba(8,4,20,0.6));
  color: var(--text);
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 700;
  transition: transform .16s, border-color .25s, box-shadow .25s;
}
.btn-smart-exec:hover { transform: translateY(-2px); border-color: var(--ok); box-shadow: 0 14px 30px -18px var(--ok); }
.btn-smart-exec:active { transform: translateY(0) scale(.98); }
.btn-smart-exec.is-firing { animation: sd-fire .9s ease; }
.btn-smart-exec .se-label { font-size: 13px; }
.btn-smart-exec .se-conf {
  font-size: 14px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  color: var(--text-muted);
  transition: color .3s, background .3s;
}
.btn-smart-exec .se-conf.is-warm { color: var(--warn); background: rgba(255,211,106,0.12); }
.btn-smart-exec .se-conf.is-ready { color: var(--ok); background: rgba(125,255,196,0.16); box-shadow: 0 0 12px -3px var(--ok); }
.market-ai-head {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, .8fr);
  gap: 8px;
  align-items: center;
}
.market-ai-head select {
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(140,150,165,0.3);
  border-radius: 7px;
  background: rgba(9,11,16,0.82);
  color: var(--text);
}
.market-ai-card {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  padding: 12px 13px;
  border: 1px solid rgba(140,150,165,0.28);
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(24,20,40,0.92), rgba(10,8,18,0.9));
  transition: border-color .35s, box-shadow .35s;
}
.market-ai-card.is-tradeable,
.market-ai-card.tier-trade {
  border-color: rgba(125,255,196,0.55);
  box-shadow: inset 0 0 26px rgba(125,255,196,0.1), 0 12px 30px -22px var(--ok);
}
.market-ai-card.tier-caution {
  border-color: rgba(255,211,106,0.5);
  box-shadow: inset 0 0 22px rgba(255,211,106,0.08);
}
.market-ai-card.is-hold,
.market-ai-card.tier-hold {
  border-color: rgba(139, 147, 168,0.34);
}
.market-ai-card .mac-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.market-ai-card .mac-top strong { font-size: 13px; }
.market-ai-card.tier-trade .mac-top strong { color: var(--ok); }
.market-ai-card.tier-caution .mac-top strong { color: var(--warn); }
.market-ai-card.tier-hold .mac-top strong { color: var(--bad); }
.market-ai-card .mac-score { font-family: var(--font-display); font-size: 17px; font-weight: 700; }
.market-ai-card.tier-trade .mac-score { color: var(--ok); }
.market-ai-card.tier-caution .mac-score { color: var(--warn); }
.market-ai-card.tier-hold .mac-score { color: var(--bad); }
.market-ai-card .mac-bar { display: block; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.07); overflow: hidden; }
.market-ai-card .mac-bar > span { display: block; height: 100%; border-radius: 999px; transition: width .5s ease; background: linear-gradient(90deg, var(--neon-blue), var(--neon-violet)); }
.market-ai-card.tier-trade .mac-bar > span { background: linear-gradient(90deg, var(--ok), var(--neon-cyan)); }
.market-ai-card.tier-caution .mac-bar > span { background: linear-gradient(90deg, var(--warn), #ffb86a); }
.market-ai-card.tier-hold .mac-bar > span { background: linear-gradient(90deg, var(--bad), #ff9a6a); }
.market-ai-card .mac-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.market-ai-card strong {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0.02em;
}
.market-ai-card p {
  margin: 0;
  color: var(--text-muted);
  font-size: 10px;
  line-height: 1.45;
  text-transform: none;
  letter-spacing: 0;
}
.market-ai-card div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.market-ai-card span {
  padding: 6px;
  border-radius: 7px;
  background: rgba(8,2,20,0.46);
}
.market-ai-card b {
  display: block;
  margin-top: 2px;
  color: var(--ok);
  font-family: var(--font-display);
  font-size: 12px;
  letter-spacing: 0;
}
.market-ai-card small {
  display: block;
  overflow-wrap: anywhere;
  letter-spacing: 0;
}
.market-ai-card small {
  color: var(--ok);
  font-size: 9px;
  line-height: 1.25;
}
.quick-speed-panel {
  display: grid;
  grid-template-columns: minmax(120px, 1.15fr) repeat(4, minmax(68px, 0.72fr));
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(255, 211, 106, 0.16);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(135deg, rgba(255,211,106,0.08), rgba(8,2,20,0.58)),
    radial-gradient(circle at top right, rgba(230,233,242,0.1), transparent 64%);
}
.quick-speed-panel label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.quick-speed-panel .mini-toggle {
  align-self: stretch;
  justify-content: center;
  border-radius: var(--radius-sm);
}
.quick-speed-toggle {
  min-width: 0;
  align-self: stretch;
  padding: 8px 10px;
  border: 1px solid rgba(255, 211, 106, 0.26);
  border-radius: var(--radius-sm);
  background: rgba(255, 211, 106, 0.08);
  color: var(--text-dim);
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
.quick-speed-toggle.active,
.quick-speed-toggle[aria-pressed="true"] {
  border-color: rgba(125, 255, 196, 0.58);
  background: linear-gradient(135deg, rgba(125,255,196,0.18), rgba(230,233,242,0.1));
  color: var(--text);
  box-shadow: 0 0 18px rgba(125,255,196,0.14);
}
.quick-speed-panel select,
.quick-speed-panel input {
  min-width: 0;
  width: 100%;
  padding: 7px 8px;
  border: 1px solid rgba(255, 211, 106, 0.2);
  border-radius: 7px;
  background: rgba(5,2,14,0.7);
  color: var(--text);
}
.analyzer-mini-chart {
  position: relative;
  min-height: 118px;
  border: 1px solid rgba(140,150,165,0.28);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, rgba(18,21,28,0.78), rgba(7,9,14,0.92));
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), inset 0 -28px 42px rgba(0,0,0,0.22);
}
.analyzer-mini-chart canvas {
  display: block;
  width: 100%;
  height: 118px;
}
.mini-chart-readout {
  position: absolute;
  right: 9px;
  top: 7px;
  display: flex;
  gap: 8px;
  align-items: center;
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  pointer-events: none;
}
.mini-chart-readout span {
  padding: 3px 6px;
  border-radius: 6px;
  background: rgba(10,4,26,0.72);
  border: 1px solid rgba(230,233,242,0.1);
}
.mini-chart-readout .mini-up { color: var(--ok); }
.mini-chart-readout .mini-down { color: var(--bad); }
.analyzer-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.analyzer-actions label { font-size: 11px; color: var(--text-muted); display: inline-flex; align-items: center; gap: 6px; }
.analyzer-actions input {
  width: 60px;
  padding: 6px 8px;
  background: rgba(8,2,20,0.7);
  border: 1px solid rgba(250, 146, 0,0.25);
  border-radius: 6px;
  color: var(--text);
}
.smart-feature-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.smart-feature-strip span {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(230, 233, 242, 0.16);
  border-radius: var(--radius-sm);
  background: rgba(8, 2, 20, 0.48);
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.smart-feature-strip strong {
  display: block;
  margin-top: 3px;
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  overflow-wrap: anywhere;
}
.btn-action {
  padding: 8px 14px;
  background: rgba(250, 146, 0,0.18);
  border: 1px solid rgba(250, 146, 0,0.35);
  color: var(--text);
  border-radius: 8px;
  font-size: 12px;
  letter-spacing: 0.05em;
}
.btn-action:hover { background: rgba(250, 146, 0,0.32); transform: translateY(-1px); }
.btn-rise { background: rgba(125,255,196,0.15); border-color: rgba(125,255,196,0.4); color: #cdfff0; }
.btn-fall { background: rgba(139, 147, 168,0.15); border-color: rgba(139, 147, 168,0.4); color: #ffd6df; }
.smart-feature-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.smart-feature-strip span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.smart-feature-strip strong {
  letter-spacing: 0;
}

/* 🔴 Live price + digit feed (digit analyzers) */
.digit-live-feed {
  display: grid;
  gap: 8px;
  margin: 8px 0;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(230,233,242,0.25);
  background: linear-gradient(135deg, rgba(8,18,28,0.7), rgba(8,4,20,0.6));
}
.dlf-price { display: flex; align-items: baseline; gap: 10px; }
.dlf-k { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }
.dlf-quote { font-family: var(--font-display); font-size: 18px; color: var(--text); }
.dlf-move { font-family: var(--font-display); font-size: 13px; font-weight: 700; }
.dlf-move[data-dir="up"] { color: var(--ok); }
.dlf-move[data-dir="down"] { color: var(--bad); }
.dlf-move[data-dir="flat"] { color: var(--text-muted); }
.dlf-stream { display: flex; gap: 4px; flex-wrap: nowrap; overflow: hidden; }
.dlf-digit {
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  padding: 5px 0;
  border-radius: 6px;
  color: var(--text-dim);
  background: linear-gradient(180deg, color-mix(in srgb, var(--neon-cyan) calc(var(--heat,0) * 40%), rgba(255,255,255,0.04)), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.06);
  transition: transform .2s, box-shadow .2s;
}
.dlf-digit[data-parity="even"] { color: #cdd0da; }
.dlf-digit[data-parity="odd"] { color: #ffc7e6; }
.dlf-digit.is-now {
  transform: translateY(-2px) scale(1.08);
  color: #051018;
  background: linear-gradient(180deg, var(--neon-cyan), var(--neon-blue));
  box-shadow: 0 0 14px -2px var(--neon-cyan);
  animation: dlf-pop .35s ease;
}
@keyframes dlf-pop { 0% { transform: translateY(0) scale(.85); } 100% { transform: translateY(-2px) scale(1.08); } }

/* Last-digit stats dropdown */
.digit-stats-panel { margin: 8px 0; border: 1px solid rgba(250, 146, 0,0.22); border-radius: var(--radius-sm); background: rgba(8,4,20,0.5); }
.digit-stats-panel > summary { cursor: pointer; list-style: none; padding: 8px 12px; font-size: 11.5px; font-weight: 700; color: var(--neon-violet); user-select: none; }
.digit-stats-panel > summary::-webkit-details-marker { display: none; }
.digit-stats-panel > summary::after { content: " ▸"; color: var(--text-muted); }
.digit-stats-panel[open] > summary::after { content: " ▾"; }
.dstat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 6px; padding: 4px 12px 12px; }
.dstat-grid > span { display: flex; flex-direction: column; gap: 2px; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,0.04); }
.dstat-grid small { font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.dstat-grid strong { font-family: var(--font-display); font-size: 14px; color: var(--text); }

/* Over/Under best-side selector */
.ou-side-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }
.ou-side-btn {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 10px; border-radius: var(--radius-sm); cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: 12.5px; color: var(--text);
  border: 1px solid rgba(230,233,242,0.3); background: linear-gradient(160deg, rgba(10,24,34,0.7), rgba(8,4,20,0.6));
  transition: transform .16s, border-color .25s, box-shadow .25s;
}
.ou-side-btn b { color: var(--neon-cyan); }
.ou-side-btn:hover { transform: translateY(-2px); border-color: var(--neon-cyan); box-shadow: 0 12px 26px -18px var(--neon-cyan); }
.ou-side-btn.is-on { border-color: var(--ok); box-shadow: 0 0 14px -4px var(--ok); }
.ou-side-btn.is-on b { color: var(--ok); }

/* Digit ops row: auto-best + auto-sequence */
.digit-ops { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.btn-digit-auto-best, .btn-auto-seq {
  flex: 1 1 auto; min-width: 110px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 12px; border-radius: var(--radius-sm); cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: 12px; color: var(--text);
  transition: transform .16s, border-color .25s, box-shadow .25s;
}
.btn-digit-auto-best { border: 1px solid rgba(125,255,196,0.4); background: linear-gradient(160deg, rgba(14,40,28,0.7), rgba(8,4,20,0.6)); }
.btn-digit-auto-best:hover { transform: translateY(-2px); border-color: var(--ok); box-shadow: 0 12px 26px -18px var(--ok); }
.btn-digit-auto-best.is-firing { animation: sd-fire .9s ease; }
.dab-edge { font-size: 11px; padding: 0 8px; border-radius: 999px; background: rgba(255,255,255,0.06); color: var(--text-muted); }
.dab-edge.is-ready { color: var(--ok); background: rgba(125,255,196,0.16); }
.btn-auto-seq { border: 1px solid rgba(250, 146, 0,0.35); background: linear-gradient(160deg, rgba(24,14,44,0.7), rgba(8,4,20,0.6)); }
.btn-auto-seq:hover { transform: translateY(-2px); border-color: var(--neon-violet); box-shadow: 0 12px 26px -18px var(--neon-violet); }
.btn-auto-seq-stop { border-color: rgba(139, 147, 168,0.45); background: linear-gradient(160deg, rgba(44,12,22,0.7), rgba(8,4,20,0.6)); }
.btn-auto-seq-stop:hover { border-color: var(--bad); box-shadow: 0 12px 26px -18px var(--bad); }

/* Smart pair finder button */
.btn-find-pair {
  margin-top: 6px; width: 100%;
  padding: 7px 10px; border-radius: 8px; cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: 11.5px; color: var(--neon-cyan);
  border: 1px solid rgba(230,233,242,0.32); background: rgba(10,24,34,0.6);
  transition: transform .16s, border-color .25s, box-shadow .25s;
}
.btn-find-pair:hover { transform: translateY(-1px); border-color: var(--neon-cyan); box-shadow: 0 10px 22px -16px var(--neon-cyan); }

/* Auto-fire explanation on the pending card + journal */
.wl-pending-why { grid-column: 1 / -1; margin-top: 6px; font-size: 11px; line-height: 1.45; color: var(--neon-cyan); background: rgba(230,233,242,0.07); border: 1px solid rgba(230,233,242,0.2); border-radius: 8px; padding: 7px 10px; }
.journal-ai-reason { color: var(--neon-cyan) !important; font-weight: 600; }
@media (max-width: 720px) { .dstat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* digit mini bars */
.digit-bars-mini { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px; height: 86px; align-items: end; padding-top: 6px; }
.digit-bar {
  width: 100%;
  border: 1px solid rgba(230,233,242,0.2);
  background: linear-gradient(180deg, rgba(230,233,242,0.82), rgba(21,38,68,0.64));
  border-radius: 9px 9px 4px 4px;
  position: relative;
  transition: height 0.35s ease;
  min-height: 20px;
  color: var(--text);
  cursor: pointer;
}
.digit-bar span {
  position: absolute;
  inset: auto 0 5px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
}
.digit-bar::after {
  content: attr(data-digit);
  display: none;
}
.digit-bar.hot { background: linear-gradient(180deg, var(--neon-pink), var(--neon-violet)); box-shadow: 0 0 12px var(--neon-pink); }
.digit-bar.hot,
.echo-cell.hot,
.digit-distribution-bars button.hot {
  background: linear-gradient(180deg, #fa9200, #1a140c) !important;
  border-color: rgba(139, 147, 168,0.72) !important;
  color: #ffe4e9;
  box-shadow: 0 0 18px rgba(139, 147, 168,0.42), inset 0 0 18px rgba(139, 147, 168,0.16) !important;
}
.digit-bar.best-payout {
  background: linear-gradient(180deg, #7dffc4, #14382b) !important;
  box-shadow: 0 0 18px rgba(125,255,196,0.75), 0 0 40px rgba(23,96,69,0.35);
  animation: digitGlowGreen 1.5s ease-in-out infinite alternate;
  border: 1px solid rgba(125,255,196,0.78);
  border-radius: 9px 9px 4px 4px;
}
.digit-bar.selected,
.echo-cell.selected {
  outline: 2px solid var(--warn);
  outline-offset: 2px;
  box-shadow: 0 0 18px rgba(255,211,106,0.42) !important;
}
/* Heat-tinted base fill (cold blue → warm) + live percentage label */
.digit-bar {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--neon-cyan) calc(35% + var(--heat, 0) * 50%), var(--neon-pink) calc(var(--heat, 0) * 30%)),
    rgba(21,38,68,0.6));
}
.digit-bar .db-pct {
  position: absolute;
  top: -15px; left: 0; right: 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  color: var(--text-dim);
  opacity: 0.85;
  pointer-events: none;
}
.digit-bar.hot .db-pct { color: #8b93a8; opacity: 1; }
.digit-bar.best-payout .db-pct { color: var(--ok); opacity: 1; }
.digit-bar.cold {
  background: linear-gradient(180deg, rgba(139, 147, 168,0.4), rgba(12,20,40,0.7)) !important;
  border-color: rgba(139, 147, 168,0.4) !important;
  opacity: 0.92;
}
.digit-bar.cold .db-pct { color: #9aa3b8; }
.echo-cell {
  position: relative;
  flex-direction: column;
  gap: 1px;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--neon-violet) calc(var(--heat, 0) * 42%), rgba(10,4,26,0.6)),
    rgba(10,4,26,0.6));
}
.echo-cell b { font-family: var(--font-display); font-size: 13px; font-weight: 700; line-height: 1; }
.echo-cell .ec-pct { font-size: 8px; font-style: normal; opacity: 0.78; line-height: 1; }
.digit-command-panel {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(255,211,106,0.28);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(135deg, rgba(255,211,106,0.1), rgba(8,2,20,0.58)),
    radial-gradient(circle at top right, rgba(230,233,242,0.12), transparent 58%);
}
.all-digit-distribution {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(230,233,242,0.2);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(135deg, rgba(230,233,242,0.08), rgba(8,2,20,0.62)),
    radial-gradient(circle at 92% 0%, rgba(125,255,196,0.12), transparent 58%);
}
.digit-tick-scan-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(140,150,165,0.24);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(35,39,46,0.82), rgba(10,12,18,0.72));
}
.digit-tick-scan-panel span {
  display: block;
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.digit-tick-scan-panel strong {
  display: block;
  margin-top: 3px;
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0;
}
.digit-tick-scan-panel.is-off {
  opacity: 0.58;
  filter: grayscale(0.65);
}
.digit-distribution-head {
  /* FIX: the old `minmax(0,1fr) auto auto auto` grid let the two action buttons
     crowd the label column to 0 width on the narrow card, so "AI DIGIT
     PREDICTION" wrapped one letter per line. Flex-wrap stacks it cleanly: the
     eyebrow label and the prediction value each take a full-width row, and the
     action buttons share the row below. */
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  align-items: center;
}
.digit-distribution-head > span { flex: 1 1 100%; white-space: nowrap; }
.digit-distribution-head > strong { flex: 1 1 100%; }
.digit-distribution-head > button { flex: 1 1 0; min-width: 0; }
.digit-distribution-head span,
.digit-distribution-head strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.digit-distribution-head span {
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.digit-distribution-head strong {
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 12px;
}
.digit-distribution-head button,
.btn-smart-random {
  border-color: rgba(125,255,196,0.42) !important;
  background: linear-gradient(135deg, rgba(125,255,196,0.16), rgba(230,233,242,0.1)) !important;
  color: #eafff8 !important;
  font-weight: 700;
  box-shadow: 0 0 18px rgba(125,255,196,0.08);
}
.digit-distribution-bars {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 7px;
  min-height: 88px;
  align-items: end;
}
.digit-distribution-bars button {
  min-width: 0;
  height: 88px;
  display: grid;
  align-content: end;
  justify-items: center;
  gap: 3px;
  padding: 0 2px 5px;
  border: 1px solid rgba(250, 146, 0,0.18);
  border-radius: 10px;
  background:
    linear-gradient(to top, rgba(250, 146, 0,0.34) var(--h), rgba(8,2,20,0.48) var(--h));
  color: var(--text-dim);
  cursor: pointer;
  font-weight: 900;
  transition: transform 0.16s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.digit-choice-readout {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(255,211,106,0.2);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(255,211,106,0.1), rgba(8,2,20,0.48));
}
.digit-choice-readout span,
.digit-choice-readout small {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.digit-choice-readout strong {
  min-width: 42px;
  text-align: center;
  color: var(--warn);
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 0;
}
.digit-choice-readout.is-ready strong { color: var(--ok); }
.digit-distribution-bars button:hover {
  transform: translateY(-1px);
  border-color: rgba(230,233,242,0.62);
  box-shadow: 0 0 18px rgba(230,233,242,0.2);
}
.digit-distribution-bars button.hot {
  border-color: rgba(139, 147, 168,0.58);
  box-shadow: 0 0 18px rgba(139, 147, 168,0.22);
  color: #ffdbe3;
}
.digit-distribution-bars button.trade-ready {
  border-color: rgba(125,255,196,0.62);
  background:
    linear-gradient(to top, rgba(32,124,86,0.62) var(--h), rgba(8,20,15,0.72) var(--h)) !important;
  box-shadow: 0 0 18px rgba(125,255,196,0.28), inset 0 0 14px rgba(125,255,196,0.08);
}
.digit-distribution-bars button.trade-ready i {
  color: var(--ok);
  text-shadow: 0 0 14px rgba(125,255,196,0.48);
}
.digit-distribution-bars button.stake-over {
  background:
    linear-gradient(to top, rgba(49,132,79,0.58) var(--h), rgba(8,2,20,0.5) var(--h));
}
.digit-distribution-bars button.stake-under {
  background:
    linear-gradient(to top, rgba(196,13,28,0.62) var(--h), rgba(8,2,20,0.5) var(--h));
}
.digit-distribution-bars button.selected {
  outline: 2px solid var(--warn);
  outline-offset: 1px;
}
.digit-distribution-bars i {
  font-style: normal;
  font-family: var(--font-display);
  font-size: 13px;
  color: var(--text);
}
.digit-distribution-bars b {
  font-size: 9px;
  color: var(--text-muted);
  font-weight: 900;
}
.digit-ai-pop {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid rgba(140,150,165,0.24);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(41,45,53,0.86), rgba(13,15,22,0.78));
}
.digit-ai-pop span,
.digit-ai-pop small {
  color: var(--text-muted);
  font-size: 10px;
  line-height: 1.35;
}
.digit-ai-pop em {
  color: var(--text-dim);
  font-style: normal;
  font-size: 10px;
  line-height: 1.4;
}
.digit-ai-pop strong {
  color: #e9eef6;
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 0;
}
.digit-ai-pop.is-ready {
  border-color: rgba(125,255,196,0.48);
  box-shadow: 0 0 22px rgba(125,255,196,0.1);
}
.digit-ai-pop.is-hold {
  border-color: rgba(255,211,106,0.32);
}
.digit-ai-pop.stake-over strong { color: var(--ok); }
.digit-ai-pop.stake-under strong { color: var(--neon-blue); }
.digit-command-head {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: center;
}
.digit-command-head span,
.digit-command-grid small {
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.digit-command-head strong {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--warn);
}
.digit-command-head button {
  padding: 7px 10px;
  border: 1px solid rgba(125,255,196,0.34);
  border-radius: 8px;
  background: rgba(125,255,196,0.12);
  color: var(--text);
  cursor: pointer;
}
.digit-command-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.digit-command-grid span {
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(230,233,242,0.1);
  border-radius: 8px;
  background: rgba(8,2,20,0.5);
}
.digit-command-grid strong {
  display: block;
  margin-top: 2px;
  color: var(--neon-cyan);
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.digit-edge-panel,
.matches-timing > div,
.digit-prediction-panel,
.match-prediction-panel {
  border: 1px solid rgba(139, 147, 168, 0.32);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(139, 147, 168,0.16), rgba(10,4,26,0.72));
  color: #e6e9f2;
  padding: 9px 11px;
  font-size: 12px;
  box-shadow: inset 0 0 18px rgba(139, 147, 168,0.08);
}
.digit-edge-panel.edge-hot {
  border-color: rgba(230,233,242,0.7);
  box-shadow: 0 0 20px rgba(139, 147, 168,0.35), inset 0 0 20px rgba(139, 147, 168,0.12);
}
@keyframes digitGlowGreen {
  0%   { box-shadow: 0 0 12px rgba(125,255,196,0.58), 0 0 28px rgba(32,124,86,0.26); }
  100% { box-shadow: 0 0 24px rgba(125,255,196,0.95), 0 0 52px rgba(32,124,86,0.45); }
}

/* streak helix */
.streak-helix {
  height: 70px;
  display: flex; align-items: center; justify-content: center; gap: 18px;
  background: radial-gradient(ellipse at center, rgba(250, 146, 0,0.25), transparent 70%);
  border-radius: var(--radius-md);
  border: 1px solid rgba(250, 146, 0,0.2);
}
.streak-count { font-family: var(--font-display); font-size: 42px; color: var(--neon-cyan); }
.streak-dir { font-size: 22px; letter-spacing: 0.1em; color: var(--neon-pink); }

/* echo grid */
.echo-grid { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; }
.echo-cell {
  aspect-ratio: 1;
  background: rgba(10,4,26,0.6);
  border: 1px solid rgba(250, 146, 0,0.15);
  border-radius: 4px;
  font-size: 10px;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-muted);
  transition: all 0.2s ease;
}
.echo-cell.hot { background: linear-gradient(135deg, var(--neon-violet), var(--neon-pink)); color: #fff; box-shadow: 0 0 10px var(--neon-pink); }
.echo-cell.cold { background: rgba(139, 147, 168,0.25); color: #e9ebf0; }
.echo-cell.best-payout {
  background: linear-gradient(135deg, #153a2d, #7dffc4) !important;
  color: #fff;
  box-shadow: 0 0 16px rgba(125,255,196,0.76), 0 0 36px rgba(32,124,86,0.4);
  animation: digitGlowGreen 1.5s ease-in-out infinite alternate;
  border-color: rgba(125,255,196,0.8);
}
.matches-timing {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.digit-prediction-panel,
.match-prediction-panel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.digit-prediction-panel > div,
.match-prediction-panel > div {
  min-width: 0;
}
.matches-timing .panel-k,
.digit-prediction-panel .panel-k,
.match-prediction-panel .panel-k {
  display: block;
  color: var(--text-muted);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.matches-timing strong,
.digit-prediction-panel strong,
.match-prediction-panel strong {
  display: block;
  margin-top: 2px;
  font-family: var(--font-display);
  color: var(--neon-blue);
  font-size: 18px;
  letter-spacing: 0;
}
.matches-timing small {
  display: block;
  margin-top: 4px;
  color: var(--text-muted);
  font-size: 10px;
  line-height: 1.3;
}
.match-prediction-panel strong.is-ready,
.digit-prediction-panel strong.is-ready {
  color: var(--neon-cyan);
}
.match-stable-bars {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}
.stable-bar {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(125,255,196,0.2);
  border-radius: var(--radius-sm);
  background: rgba(8,2,20,0.5);
}
.stable-bar small {
  color: var(--text-muted);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  overflow-wrap: anywhere;
}
.stable-bar i {
  display: block;
  height: 6px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, var(--neon-cyan), var(--neon-blue)) 0 / var(--w) 100% no-repeat,
    rgba(230,233,242,0.1);
}
.stable-bar strong {
  font-family: var(--font-display);
  color: var(--text);
  font-size: 12px;
  letter-spacing: 0;
}
@media (max-width: 680px) {
  .matches-timing,
  .digit-prediction-panel,
  .match-prediction-panel,
  .match-stable-bars {
    grid-template-columns: 1fr;
  }
  .smart-feature-strip {
    grid-template-columns: 1fr;
  }
}

/* ------------------------------------------------------------------
   ORBS
   ------------------------------------------------------------------ */
.orb-gallery { padding: 30px; }
.orbs {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 18px;
  padding: 14px 0;
}
.orb {
  position: relative;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--orb-color, #7aa0d8) 45%, rgba(255,255,255,0.12));
  /* futuristic navy core (purple removed) with a colour-tinted rim glow + inner well */
  background:
    radial-gradient(circle at 32% 26%, rgba(255,255,255,0.22), transparent 52%),
    radial-gradient(circle at 50% 122%, color-mix(in srgb, var(--orb-color,#7aa0d8) 34%, transparent), transparent 66%),
    radial-gradient(circle, rgba(23,37,62,0.97), rgba(8,14,26,0.98));
  cursor: pointer;
  transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease, border-color .3s ease;
  color: var(--text);
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -22px 34px -22px rgba(0,0,0,0.85),
    0 12px 30px -14px rgba(0,0,0,0.7),
    0 0 22px -8px color-mix(in srgb, var(--orb-color,#7aa0d8) 38%, transparent);
}
/* slowly-rotating conic ENERGY RING near the rim — the "alive" halo */
.orb::before {
  content:""; position:absolute; inset:0; border-radius:50%; z-index:0; pointer-events:none;
  background: conic-gradient(from 0deg,
    transparent 0 16%,
    color-mix(in srgb, var(--orb-color,#7aa0d8) 92%, #fff) 33%,
    transparent 50% 66%,
    color-mix(in srgb, var(--orb-color,#7aa0d8) 72%, #fff) 84%,
    transparent 100%);
  -webkit-mask: radial-gradient(circle, transparent 62%, #000 64%);
          mask: radial-gradient(circle, transparent 62%, #000 64%);
  opacity:.72; filter: blur(.4px);
  animation: orbSpin 8s linear infinite;
}
/* soft breathing CORE at the centre */
.orb::after {
  content:""; position:absolute; inset:24%; border-radius:50%; z-index:1; pointer-events:none;
  background: radial-gradient(circle, color-mix(in srgb, var(--orb-color,#7aa0d8) 42%, transparent), transparent 72%);
  animation: orbCore 3.6s ease-in-out infinite;
}
.orb:hover { transform: translateY(-4px) scale(1.05); border-color: color-mix(in srgb, var(--orb-color,#7aa0d8) 78%, #fff);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), inset 0 -22px 34px -22px rgba(0,0,0,0.85), 0 16px 42px -16px rgba(0,0,0,0.75), 0 0 36px -4px color-mix(in srgb, var(--orb-color,#7aa0d8) 62%, transparent); }
.orb:hover::before { animation-duration: 3.4s; opacity:1; }
.orb-glow {
  position: absolute; inset: -20%; z-index: 1;
  background: radial-gradient(circle, var(--orb-color, #7aa0d8), transparent 60%);
  opacity: 0.42;
  filter: blur(24px);
  animation: orbBreathe 6s ease-in-out infinite alternate;
}
.orb-label {
  position: absolute; inset: 0; z-index: 3;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
  text-shadow: 0 0 8px var(--orb-color, #7aa0d8), 0 1px 2px rgba(0,0,0,0.6);
}
.orb.active { border-color: color-mix(in srgb, var(--orb-color,#7aa0d8) 85%, #fff); animation: orbActivePulse 2.4s ease-in-out infinite; }
.orb.active::before { animation-duration: 4.5s; opacity: 1; }
/* Admin "how to use" video logo — permanent on orbs the admin linked */
.orb-video-badge {
  position: absolute; left: 50%; bottom: 6px; transform: translateX(-50%);
  z-index: 4; width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: #04121a; cursor: pointer;
  background: linear-gradient(135deg, #15d6a2, #e6e9f2);
  box-shadow: 0 2px 10px rgba(21,214,162,0.6), 0 0 0 2px rgba(4,10,20,0.55);
  transition: transform .15s ease, filter .2s ease;
}
.orb-video-badge:hover { transform: translateX(-50%) scale(1.18); filter: brightness(1.1); }
/* App-brand colours — the badge logo represents the platform the video is on */
.orb-video-badge[data-app="youtube"]   { background: linear-gradient(135deg,#8b93a8,#c4302b); color:#fff; }
.orb-video-badge[data-app="telegram"]  { background: linear-gradient(135deg,#46c0ff,#229ed9); color:#fff; }
.orb-video-badge[data-app="tiktok"]    { background: linear-gradient(135deg,#25f4ee,#fe2c55); color:#08121a; }
.orb-video-badge[data-app="vimeo"]     { background: linear-gradient(135deg,#5cc3f5,#1ab7ea); color:#fff; }
.orb-video-badge[data-app="instagram"] { background: linear-gradient(135deg,#feda75,#d62976 45%,#962fbf); color:#fff; }
.orb-video-badge[data-app="whatsapp"]  { background: linear-gradient(135deg,#5ffc7b,#25d366); color:#06210f; }
.orb-video-badge[data-app="facebook"]  { background: linear-gradient(135deg,#4a8cff,#1877f2); color:#fff; }
.orb-video-badge[data-app="x"]         { background: linear-gradient(135deg,#3a3a3a,#000); color:#fff; }
.orb-video-badge[data-app="drive"]     { background: linear-gradient(135deg,#ffd04b,#34a853); color:#06210f; }
.orb-video-badge[data-app="loom"]      { background: linear-gradient(135deg,#fa9200,#3d5c9e); color:#fff; }
/* ADMIN lock badge — shows on any orb/analyzer the admin disabled */
.orb-admin-badge {
  position: absolute; left: 50%; top: 6px; transform: translateX(-50%);
  z-index: 4; padding: 1px 6px; border-radius: 999px;
  font-family: var(--font-display); font-size: 7.5px; font-weight: 800; letter-spacing: .12em;
  color: #f6f0e6; background: rgba(139, 147, 168,0.92);
  box-shadow: 0 0 0 1px rgba(4,10,20,0.5), 0 2px 8px rgba(139, 147, 168,0.4);
}
/* ADMIN badge inside an analyzer card header */
.analyzer-admin-badge {
  grid-column: 1 / -1; justify-self: start; margin: 2px 0 0; padding: 3px 9px; border-radius: 999px;
  font-family: var(--font-display); font-size: 9px; font-weight: 800; letter-spacing: .1em;
  color: #f6f0e6; background: rgba(139, 147, 168,0.9);
  box-shadow: 0 0 12px -3px rgba(139, 147, 168,0.7);
}
.analyzer.admin-exec-locked { box-shadow: 0 0 0 1px rgba(139, 147, 168,0.4) inset; }
@keyframes orbBreathe {
  0%   { transform: scale(1);   opacity: 0.30; }
  100% { transform: scale(1.12); opacity: 0.52; }
}
@keyframes orbActive {
  0%,100% { transform: scale(1.05); }
  50%     { transform: scale(1.12); }
}
@keyframes orbSpin { to { transform: rotate(360deg); } }
@keyframes orbCore {
  0%,100% { opacity: .45; transform: scale(.90); }
  50%     { opacity: .85; transform: scale(1.08); }
}
@keyframes orbActivePulse {
  0%,100% { transform: scale(1.04);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 0 0 color-mix(in srgb, var(--orb-color,#7aa0d8) 48%, transparent), 0 0 30px -6px color-mix(in srgb, var(--orb-color,#7aa0d8) 60%, transparent); }
  50%     { transform: scale(1.09);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 0 0 10px transparent, 0 0 46px -2px color-mix(in srgb, var(--orb-color,#7aa0d8) 78%, transparent); }
}
@media (prefers-reduced-motion: reduce){
  .orb::before, .orb::after, .orb-glow, .orb.active { animation: none !important; }
}
.orb-resonance { --orb-color: #e6e9f2; }
.orb-cascade   { --orb-color: #fa9200; }
.orb-phantom   { --orb-color: #fa9200; }
.orb-streak    { --orb-color: #7dffc4; }
.orb-echo      { --orb-color: #8b93a8; }
.orb-horizon   { --orb-color: #ffc85a; }
.orb-stillpoint{ --orb-color: #9cff7d; }
.orb-turbo     { --orb-color: #ffaa3c; }
.orb-vanilla   { --orb-color: #ffe27a; }
.orb-evenodd   { --orb-color: #63f6b7; }
.orb-highlow   { --orb-color: #ff7f6e; }
.orb.summoned {
  border-color: var(--orb-color, var(--neon-violet));
  box-shadow: 0 0 22px 2px var(--orb-color, var(--neon-violet)) inset, 0 0 18px var(--orb-color, var(--neon-violet));
}
.orb.summoned::after {
  content: "●";
  position: absolute; top: 8px; right: 12px;
  color: var(--orb-color, var(--neon-violet));
  font-size: 9px;
  text-shadow: 0 0 6px currentColor;
}

.orb-suggestion {
  margin: 18px 0 0;
  padding: 14px 18px;
  background: rgba(10,4,26,0.55);
  border: 1px dashed rgba(250, 146, 0,0.35);
  border-radius: var(--radius-md);
  font-size: 13px;
  color: var(--text-dim);
}

/* ------------------------------------------------------------------
   TICK STREAM
   ------------------------------------------------------------------ */
.tick-tape {
  display: flex;
  gap: 8px;
  overflow: hidden;
  padding: 10px 6px;
  background: rgba(10,4,26,0.45);
  border-radius: var(--radius-md);
  border: 1px solid rgba(250, 146, 0,0.15);
  min-height: 48px;
  margin-bottom: 14px;
}
.tick {
  flex: 0 0 auto;
  padding: 6px 10px;
  background: rgba(30,10,70,0.6);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 12px;
  min-width: 68px;
  text-align: center;
  position: relative;
}
.tick .tick-d { display: block; font-size: 14px; color: var(--neon-cyan); }
.tick .tick-q { font-size: 10px; color: var(--text-muted); }
.tick.up { border: 1px solid rgba(125,255,196,0.5); }
.tick.down { border: 1px solid rgba(139, 147, 168,0.5); }

#tick-canvas {
  width: 100%; height: 180px;
  border-radius: var(--radius-md);
  background: rgba(10,4,26,0.3);
  display: block;
}

/* ------------------------------------------------------------------
   COOLDOWNS
   ------------------------------------------------------------------ */
.cooldown-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
/* Full-width live summary header */
.cooldown-summary {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background: rgba(125,255,196,0.06);
  border: 1px solid rgba(125,255,196,0.18);
  transition: background .4s, border-color .4s;
}
.cooldown-summary[data-state="cooling"] { background: rgba(139, 147, 168,0.08); border-color: rgba(139, 147, 168,0.28); }
.cd-sum-pill { font-size: 11px; padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,0.05); color: var(--text-dim); }
.cd-sum-pill b { font-family: var(--font-display); font-size: 14px; }
.cd-sum-armed b { color: var(--ok); }
.cd-sum-cooling b { color: var(--bad); }
.cd-sum-note { font-size: 11px; color: var(--text-muted); margin-left: auto; }
.cooldown {
  position: relative;
  padding: 13px 14px 15px;
  background: rgba(10,4,26,0.55);
  border: 1px solid rgba(250, 146, 0,0.18);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color .3s, box-shadow .3s, transform .2s;
}
.cooldown-top { display: flex; align-items: center; gap: 8px; }
.cooldown-icon { font-size: 15px; line-height: 1; filter: grayscale(0.2); }
.cooldown-name { flex: 1; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cooldown-pill {
  font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 999px;
  background: rgba(125,255,196,0.14); color: var(--ok);
  transition: background .3s, color .3s;
}
.cooldown-val { font-family: var(--font-display); font-size: 22px; margin-top: 6px; transition: color .3s; }
.cooldown-bar {
  position: relative;
  height: 6px;
  background: rgba(250, 146, 0,0.12);
  border-radius: 999px;
  margin-top: 9px;
  overflow: hidden;
}
.cooldown-bar > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--ok), var(--neon-cyan));
  width: 0%;
  border-radius: 999px;
  transition: width 0.25s linear, background .3s;
}
/* Cooling state — depleting red bar with an animated shimmer + glow */
.cooldown.locked { border-color: rgba(139, 147, 168,0.4); box-shadow: 0 0 22px -12px var(--bad); }
.cooldown.locked .cooldown-val { color: var(--bad); }
.cooldown.locked .cooldown-icon { filter: none; animation: cd-pulse 1.4s ease-in-out infinite; }
.cooldown.locked .cooldown-pill { background: rgba(139, 147, 168,0.16); color: var(--bad); }
.cooldown.locked .cooldown-bar > span { background: linear-gradient(90deg, var(--bad), var(--warn)); }
.cooldown.locked .cooldown-bar::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: translateX(-100%);
  animation: cd-shimmer 1.1s linear infinite;
}
.cooldown.ready { border-color: rgba(125,255,196,0.28); }
.cooldown.ready .cooldown-val { color: var(--ok); }
@keyframes cd-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.55; transform: scale(1.12); } }
@keyframes cd-shimmer { to { transform: translateX(100%); } }

/* ------------------------------------------------------------------
   DNA + JOURNAL
   ------------------------------------------------------------------ */
.dna-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.dna-card {
  padding: 14px;
  background: rgba(10,4,26,0.55);
  border: 1px solid rgba(250, 146, 0,0.18);
  border-radius: var(--radius-md);
  display: flex; flex-direction: column; gap: 4px;
}
.dna-k { font-size: 11px; color: var(--text-muted); letter-spacing: 0.08em; text-transform: uppercase; }
.dna-v { font-family: var(--font-display); font-size: 16px; }

.journal-list {
  list-style: none;
  padding: 4px;
  margin: 0;
  max-height: min(640px, 72vh);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;          /* scrolling the log no longer drags the page */
  -webkit-overflow-scrolling: touch;     /* smooth momentum scroll on iOS */
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: rgba(230,233,242,0.5) rgba(255,255,255,0.05);
  display: grid;
  gap: 16px;
}
.journal-list::-webkit-scrollbar { width: 9px; }
.journal-list::-webkit-scrollbar-track { background: rgba(255,255,255,0.04); border-radius: 999px; }
.journal-list::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(230,233,242,0.55), rgba(125,255,196,0.5)); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
.journal-list::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(230,233,242,0.8), rgba(125,255,196,0.7)); background-clip: padding-box; }
.smart-scorecard {
  display: grid;
  gap: 14px;
}
.smart-score-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.smart-score-grid span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid rgba(230,233,242,0.16);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(135deg, rgba(8,2,20,0.56), rgba(30,10,70,0.3)),
    radial-gradient(circle at top right, rgba(230,233,242,0.12), transparent 62%);
}
.smart-score-grid small {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.smart-score-grid strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0;
}
.journal-list li.journal-trade-card {
  position: relative;
  padding: 18px;
  border: 1px solid rgba(125,255,196,0.28);
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(45,55,68,0.92), rgba(30,37,50,0.82) 52%, rgba(18,22,31,0.9)),
    radial-gradient(circle at 12% 0%, rgba(125,255,196,0.2), transparent 34%),
    radial-gradient(circle at 90% 12%, rgba(139, 147, 168,0.16), transparent 34%);
  font-size: 13px;
  display: grid;
  gap: 10px;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -18px 42px rgba(3,8,28,0.42),
    0 18px 44px rgba(0,0,0,0.34);
}
.journal-list li.journal-trade-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* Vertical-line texture removed for a clean look — soft edge highlight only. */
  background: linear-gradient(90deg, rgba(255,255,255,0.06), transparent 20%, transparent 80%, rgba(139, 147, 168,0.08));
  opacity: 0.45;
}
.journal-list li.j-win {
  border-color: rgba(125,255,196,0.6);
  background:
    linear-gradient(145deg, rgba(36,59,58,0.95), rgba(35,52,68,0.8) 48%, rgba(22,31,40,0.9)),
    radial-gradient(circle at 16% 0%, rgba(125,255,196,0.28), transparent 36%),
    radial-gradient(circle at 88% 12%, rgba(139, 147, 168,0.18), transparent 36%);
  /* Glowing green edge — matches the win/loss card's profit glow. */
  box-shadow:
    0 0 0 1px rgba(125,255,196,0.4) inset,
    0 18px 44px rgba(0,0,0,0.34),
    0 0 22px -4px rgba(125,255,196,0.42),
    0 0 56px -18px rgba(125,255,196,0.32);
}
.journal-list li.j-loss {
  border-color: rgba(139, 147, 168,0.62);
  background:
    linear-gradient(145deg, rgba(62,40,48,0.95), rgba(55,41,55,0.82) 48%, rgba(33,28,37,0.9)),
    radial-gradient(circle at 16% 0%, rgba(139, 147, 168,0.26), transparent 36%),
    radial-gradient(circle at 88% 12%, rgba(139, 147, 168,0.14), transparent 36%);
  /* Glowing red edge — matches the win/loss card's loss glow. */
  box-shadow:
    0 0 0 1px rgba(139, 147, 168,0.4) inset,
    0 18px 44px rgba(0,0,0,0.34),
    0 0 22px -4px rgba(139, 147, 168,0.42),
    0 0 56px -18px rgba(139, 147, 168,0.3);
}
/* The newest result breathes to draw the eye; older cards hold a steady glow
   (only one animated card = compositor-cheap). */
.journal-list li.journal-trade-card:first-child.j-win { animation: jWinGlow 3s ease-in-out infinite; }
.journal-list li.journal-trade-card:first-child.j-loss { animation: jLossGlow 3s ease-in-out infinite; }
@keyframes jWinGlow {
  0%,100% { box-shadow: 0 0 0 1px rgba(125,255,196,0.4) inset, 0 18px 44px rgba(0,0,0,0.34), 0 0 20px -4px rgba(125,255,196,0.4), 0 0 50px -18px rgba(125,255,196,0.3); }
  50%     { box-shadow: 0 0 0 1px rgba(125,255,196,0.65) inset, 0 18px 44px rgba(0,0,0,0.34), 0 0 32px -2px rgba(125,255,196,0.62), 0 0 74px -14px rgba(125,255,196,0.48); }
}
@keyframes jLossGlow {
  0%,100% { box-shadow: 0 0 0 1px rgba(139, 147, 168,0.4) inset, 0 18px 44px rgba(0,0,0,0.34), 0 0 20px -4px rgba(139, 147, 168,0.38), 0 0 50px -18px rgba(139, 147, 168,0.28); }
  50%     { box-shadow: 0 0 0 1px rgba(139, 147, 168,0.65) inset, 0 18px 44px rgba(0,0,0,0.34), 0 0 32px -2px rgba(139, 147, 168,0.6), 0 0 74px -14px rgba(139, 147, 168,0.45); }
}
@media (prefers-reduced-motion: reduce) {
  .journal-list li.journal-trade-card:first-child.j-win,
  .journal-list li.journal-trade-card:first-child.j-loss { animation: none; }
}
.journal-card-shell,
.journal-section-card,
.journal-detail-grid span {
  position: relative;
  z-index: 1;
}
.journal-card-shell {
  display: grid;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(139, 147, 168,0.18);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(24,47,116,0.54), rgba(10,18,52,0.62)),
    radial-gradient(circle at 78% 20%, rgba(230,233,242,0.14), transparent 44%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}
.journal-topbar {
  display: grid;
  grid-template-columns: minmax(120px, auto) 1fr auto;
  gap: 12px;
  align-items: center;
}
.journal-route-badge,
.journal-status-pill {
  min-width: 0;
  border-radius: 12px;
  border: 1px solid rgba(250, 146, 0,0.24);
  background: rgba(139, 147, 168,0.2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}
.journal-route-badge {
  display: grid;
  gap: 2px;
  padding: 9px 12px;
}
.journal-route-badge span,
.journal-card-title span,
.journal-hero-line span,
.journal-section-card span,
.journal-section-card small,
.journal-detail-grid small,
.journal-empty span,
.journal-empty small {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.journal-route-badge strong,
.journal-card-title strong,
.journal-hero-line strong,
.journal-section-card strong,
.journal-detail-grid strong,
.journal-empty strong {
  font-family: var(--font-display);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.journal-card-title {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.journal-card-title strong {
  font-size: 18px;
}
.journal-status-pill {
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.journal-status-pill.j-win {
  color: var(--ok);
  border-color: rgba(125,255,196,0.36);
  background: rgba(28,122,92,0.22);
}
.journal-status-pill.j-loss {
  color: var(--bad);
  border-color: rgba(139, 147, 168,0.36);
  background: rgba(142,38,68,0.22);
}
.journal-hero-line {
  display: grid;
  grid-template-columns: 1.25fr 0.78fr 1fr;
  gap: 10px;
}
.journal-hero-line > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(230,233,242,0.13);
  border-radius: 12px;
  background: rgba(2,10,34,0.44);
}
.journal-hero-line strong {
  display: block;
  margin-top: 2px;
  font-size: 16px;
}
.journal-hero-line .journal-profit {
  font-size: clamp(20px, 4vw, 34px);
  line-height: 1.05;
  color: var(--ok);
  text-shadow: 0 0 18px rgba(125,255,196,0.5);
}
.j-loss .journal-hero-line .journal-profit {
  color: var(--bad);
  text-shadow: 0 0 18px rgba(139, 147, 168,0.46);
}
.journal-outcome {
  display: grid;
  gap: 3px;
}
.journal-section-card {
  padding: 12px;
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(7,18,50,0.62), rgba(8,14,38,0.5)),
    radial-gradient(circle at 10% 20%, rgba(139, 147, 168,0.13), transparent 42%);
  border: 1px solid rgba(230,233,242,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
.journal-outcome strong {
  font-size: 14px;
}
.journal-outcome.j-win {
  border-color: rgba(125,255,196,0.32);
  color: var(--ok);
}
.journal-outcome.j-loss {
  border-color: rgba(139, 147, 168,0.34);
  color: var(--bad);
}
.journal-replay {
  display: grid;
  gap: 7px;
}
.journal-replay p {
  margin: 0;
  color: var(--text-dim);
  line-height: 1.45;
}
.journal-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.journal-detail-grid.is-compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.journal-detail-grid span {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(230,233,242,0.14);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(8,32,80,0.42), rgba(3,12,26,0.58));
  color: var(--text-dim);
  overflow-wrap: anywhere;
}
.journal-detail-grid strong {
  display: block;
  margin-top: 3px;
  color: var(--text);
  font-size: 13px;
}
.journal-empty {
  display: grid;
  gap: 6px;
  padding: 28px;
  border: 1px solid rgba(230,233,242,0.18);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(7,14,30,0.76), rgba(16,10,40,0.52)),
    radial-gradient(circle at top right, rgba(230,233,242,0.13), transparent 58%);
  text-align: center;
}
.journal-empty strong {
  color: var(--text);
  font-size: 18px;
}

.win-loss-card {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(150px, .7fr);
  gap: 8px;
  margin: 0 0 10px;
  padding: 9px;
  border: 1px solid rgba(139, 147, 168,0.18);
  border-radius: 14px;
  background:
    linear-gradient(145deg, rgba(5,14,45,0.9), rgba(9,17,58,0.7)),
    radial-gradient(circle at 18% 12%, rgba(139, 147, 168,0.16), transparent 42%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), 0 0 34px rgba(139, 147, 168,0.08);
}
.wl-main {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid rgba(125,255,196,0.16);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(3,35,31,0.58), rgba(7,17,44,0.52));
}
.wl-rate-card {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 10px 12px;
  border: 1px solid rgba(139, 147, 168,0.25);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(28,47,113,0.54), rgba(8,14,41,0.62));
  box-shadow: 0 0 24px rgba(139, 147, 168,0.09);
}
.wl-main span,
.wl-rate-card span,
.wl-rate-card small,
.wl-main small,
.wl-grid small {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.wl-main strong {
  font-family: var(--font-display);
  font-size: clamp(22px, 3.4vw, 34px);
  line-height: 1;
  color: var(--ok);
  text-shadow: 0 0 22px rgba(125,255,196,0.48);
}
.wl-rate-card strong {
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1;
  color: #ff7a86;
  text-shadow: 0 0 22px rgba(139, 147, 168,0.5);
}
.wl-rate-card small {
  display: inline-flex;
  width: max-content;
  padding: 5px 8px;
  border: 1px solid rgba(230,233,242,0.18);
  border-radius: 999px;
  background: rgba(8,2,20,0.48);
}
.wl-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.wl-grid span {
  min-width: 0;
  padding: 6px;
  border: 1px solid rgba(139, 147, 168,0.14);
  border-radius: var(--radius-sm);
  background: rgba(8,2,20,0.44);
}
.wl-grid strong {
  display: block;
  margin-top: 2px;
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.wl-positive { color: var(--ok); }
.wl-negative { color: var(--bad); }
#wl-pnl.wl-negative {
  color: var(--bad);
  text-shadow: 0 0 22px rgba(139, 147, 168,0.48);
}
.wl-filter-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.journal-filter {
  min-width: 0;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(139, 147, 168,0.2);
  background: rgba(6,13,38,0.64);
  color: var(--text);
  font-family: var(--font-display);
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
.journal-filter strong { margin-left: 5px; }
.journal-filter.filter-all.is-active { border-color: rgba(139, 147, 168,0.72); box-shadow: 0 0 24px rgba(139, 147, 168,0.34); background: rgba(139, 147, 168,0.22); }
.journal-filter.filter-wins.is-active { border-color: rgba(125,255,196,0.72); box-shadow: 0 0 24px rgba(125,255,196,0.34); background: rgba(28,122,92,0.22); }
.journal-filter.filter-losses.is-active { border-color: rgba(139, 147, 168,0.72); box-shadow: 0 0 24px rgba(139, 147, 168,0.34); background: rgba(142,38,68,0.22); }
.journal-digit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  margin-left: 5px;
  font-family: var(--font-display);
  font-size: 1.16em;
  font-weight: 900;
}
.digit-hot,
.digit-accurate { color: var(--ok); text-shadow: 0 0 12px rgba(125,255,196,0.5); }
.digit-cool { color: var(--neon-cyan); text-shadow: 0 0 12px rgba(230,233,242,0.44); }
.digit-miss { color: var(--bad); text-shadow: 0 0 12px rgba(139, 147, 168,0.48); }
#wl-smart-note {
  grid-column: 1 / -1;
  color: var(--text-muted);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Journal actions — clear history button */
.journal-actions {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.btn-danger {
  padding: 7px 16px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 12px;
  border: 1px solid rgba(139, 147, 168, 0.5);
  border-radius: var(--radius-sm);
  background: rgba(139, 147, 168, 0.15);
  color: #ffd6df;
  cursor: pointer;
  transition: all 0.2s ease;
  letter-spacing: 0.05em;
}
.btn-danger:hover {
  background: rgba(139, 147, 168, 0.3);
  box-shadow: 0 0 18px rgba(139, 147, 168, 0.4);
  transform: translateY(-1px);
}

/* ------------------------------------------------------------------
   TOAST + CELEBRATION
   ------------------------------------------------------------------ */
.aether-toast {
  position: fixed; bottom: 20px; right: 20px;
  padding: 14px 18px;
  max-width: 340px;
  font-size: 13px;
  color: var(--text);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
  z-index: 40;
  border: 1px solid rgba(250, 146, 0,0.35);
}
.aether-toast.show { opacity: 1; transform: translateY(0); }

/* ------------------------------------------------------------------
   Aether voice assistant HUD
   ------------------------------------------------------------------ */
.aether-voice-hud {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%) translateY(16px);
  width: min(560px, calc(100vw - 32px));
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(14,10,30,0.94), rgba(8,4,20,0.92));
  border: 1px solid rgba(230,233,242,0.4);
  box-shadow: 0 22px 60px -20px rgba(0,0,0,0.85), 0 0 26px -6px rgba(230,233,242,0.3);
  backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  z-index: 60;
}
.aether-voice-hud.show { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.avh-wave { display: flex; align-items: center; gap: 3px; height: 34px; flex: 0 0 auto; }
.avh-wave i {
  width: 4px; border-radius: 999px;
  background: linear-gradient(180deg, var(--neon-cyan), var(--neon-violet));
  animation: avhWave 1s ease-in-out infinite;
}
.avh-wave i:nth-child(1) { height: 12px; animation-delay: 0s; }
.avh-wave i:nth-child(2) { height: 26px; animation-delay: .12s; }
.avh-wave i:nth-child(3) { height: 34px; animation-delay: .24s; }
.avh-wave i:nth-child(4) { height: 22px; animation-delay: .36s; }
.avh-wave i:nth-child(5) { height: 14px; animation-delay: .48s; }
@keyframes avhWave { 0%,100% { transform: scaleY(.45); opacity:.6; } 50% { transform: scaleY(1); opacity:1; } }
.avh-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.avh-heard, .avh-reply { display: flex; align-items: baseline; gap: 8px; font-size: 13px; line-height: 1.4; }
.avh-heard span:last-child { color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; }
.avh-reply span:last-child { color: var(--text); }
.avh-tag {
  flex: 0 0 auto;
  font-family: var(--font-display); font-size: 9px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(255,255,255,0.08); color: var(--text-muted);
}
.avh-tag-ai { background: rgba(230,233,242,0.16); color: var(--neon-cyan); }
.avh-close {
  flex: 0 0 auto; appearance: none; border: none; cursor: pointer;
  width: 26px; height: 26px; border-radius: 50%;
  background: rgba(255,255,255,0.06); color: var(--text-muted); font-size: 16px; line-height: 1;
}
.avh-close:hover { background: rgba(139, 147, 168,0.18); color: #f4ede0; }
.voice-orb.awake { box-shadow: 0 0 0 2px rgba(125,255,196,0.6), 0 0 22px rgba(125,255,196,0.4); }
@media (max-width: 560px) { .avh-wave { display: none; } }

/* ------------------------------------------------------------------
   Admin pop-up ads — appear + auto-disappear, accent-themed
   ------------------------------------------------------------------ */
.aether-ad-popup {
  position: fixed;
  right: 20px; bottom: 20px;
  width: min(340px, calc(100vw - 32px));
  z-index: 55;
  opacity: 0;
  transform: translateY(24px) scale(0.96);
  transition: opacity .5s cubic-bezier(.2,.8,.2,1), transform .5s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}
.aether-ad-popup.show { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.aad-card {
  --ad-hi: #fa9200; --ad-mid: #c47a14; --ad-lo: #2a0a0e; --ad-glow: rgba(250, 146, 0,0.55);
  position: relative;
  padding: 18px 18px 14px;
  border-radius: var(--radius-lg);
  background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--ad-hi) 22%, transparent), transparent 55%), linear-gradient(160deg, var(--ad-lo), rgba(6,4,14,0.96));
  border: 1px solid color-mix(in srgb, var(--ad-hi) 55%, transparent);
  box-shadow: 0 24px 60px -22px #000, 0 0 30px -8px var(--ad-glow);
  overflow: hidden;
}
.aad-card::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(80% 60% at 100% 0%, var(--ad-glow), transparent 60%);
  opacity: 0.5;
}
.aad-card[data-accent="violet"]  { --ad-hi:#fa9200; --ad-mid:#c47a14; --ad-lo:#2a0a0e; --ad-glow:rgba(250, 146, 0,0.55); }
.aad-card[data-accent="cyan"]    { --ad-hi:#e6e9f2; --ad-mid:#9aa3b8; --ad-lo:#12161f; --ad-glow:rgba(230,233,242,0.55); }
.aad-card[data-accent="amber"]   { --ad-hi:#ffb14a; --ad-mid:#d18a25; --ad-lo:#2c1d08; --ad-glow:rgba(255,177,74,0.55); }
.aad-card[data-accent="emerald"] { --ad-hi:#7dffc4; --ad-mid:#3ec99a; --ad-lo:#08251c; --ad-glow:rgba(125,255,196,0.55); }
.aad-card[data-accent="rose"]    { --ad-hi:#fa9200; --ad-mid:#c47a14; --ad-lo:#2c0c22; --ad-glow:rgba(250, 146, 0,0.55); }
.aad-card[data-accent="lime"]    { --ad-hi:#d6ff63; --ad-mid:#8bd14a; --ad-lo:#172507; --ad-glow:rgba(214,255,99,0.48); }
.aad-card[data-accent="coral"]   { --ad-hi:#ff8f70; --ad-mid:#d85b4a; --ad-lo:#2e100b; --ad-glow:rgba(255,143,112,0.5); }
.aad-card[data-accent="steel"]   { --ad-hi:#dfe7f1; --ad-mid:#8ba0b7; --ad-lo:#111923; --ad-glow:rgba(170,194,220,0.42); }
.aad-emoji { font-size: 30px; line-height: 1; filter: drop-shadow(0 0 10px var(--ad-glow)); }
.aad-headline { margin-top: 8px; font-family: var(--font-display); font-size: 18px; font-weight: 700; color: var(--ad-hi); line-height: 1.2; }
.aad-body { margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--text-dim); }
.aad-cta {
  display: inline-block; margin-top: 12px;
  padding: 9px 16px; border-radius: 999px;
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  text-decoration: none; color: #06040f;
  background: linear-gradient(135deg, var(--ad-hi), var(--ad-mid));
  box-shadow: 0 8px 22px -8px var(--ad-glow);
  transition: transform .16s, box-shadow .25s;
}
.aad-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -10px var(--ad-glow); }
.aad-close {
  position: absolute; top: 10px; right: 10px;
  width: 24px; height: 24px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(255,255,255,0.08); color: var(--text-dim); font-size: 15px; line-height: 1;
}
.aad-close:hover { background: rgba(255,255,255,0.16); color: #fff; }
.aad-progress { margin-top: 12px; height: 3px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.aad-progress > span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--ad-hi), var(--ad-mid)); }

/* Realistic ad: brand row, badge, colour-coded info sections */
.aad-top { display: flex; align-items: center; gap: 10px; }
.aad-brandwrap { display: flex; flex-direction: column; gap: 2px; }
.aad-brand { font-family: var(--font-display); font-size: 12px; font-weight: 700; color: var(--text); letter-spacing: 0.02em; }
.aad-badge { align-self: flex-start; font-size: 8px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; background: rgba(255,255,255,0.1); color: var(--text-dim); }
.aad-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 10px 0 4px; }
.aad-sec { display: flex; flex-direction: column; gap: 2px; padding: 7px 9px; border-radius: 9px; border: 1px solid transparent; }
.aad-sec-k { font-size: 8.5px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.85; }
.aad-sec strong { font-size: 12px; font-family: var(--font-display); }
.aad-sec-offer { background: rgba(125,255,196,0.1); border-color: rgba(125,255,196,0.3); }
.aad-sec-offer .aad-sec-k { color: var(--ok); }
.aad-sec-timer { background: rgba(255,177,74,0.12); border-color: rgba(255,177,74,0.34); }
.aad-sec-timer .aad-sec-k { color: var(--warn); }
.aad-sec-timer strong { color: var(--warn); font-variant-numeric: tabular-nums; }
.aad-sec-proof { background: rgba(230,233,242,0.1); border-color: rgba(230,233,242,0.3); grid-column: 1 / -1; }
.aad-sec-proof .aad-sec-k { color: var(--neon-cyan); }

/* Pop ANYWHERE — position variants chosen at random on each show */
.aether-ad-popup.pos-br { right: 20px; left: auto; top: auto; bottom: 20px; transform: translateY(24px) scale(.96); }
.aether-ad-popup.pos-br.show { transform: translateY(0) scale(1); }
.aether-ad-popup.pos-bl { left: 20px; right: auto; top: auto; bottom: 20px; transform: translateY(24px) scale(.96); }
.aether-ad-popup.pos-bl.show { transform: translateY(0) scale(1); }
.aether-ad-popup.pos-tr { right: 20px; left: auto; bottom: auto; top: 84px; transform: translateY(-24px) scale(.96); }
.aether-ad-popup.pos-tr.show { transform: translateY(0) scale(1); }
.aether-ad-popup.pos-tl { left: 20px; right: auto; bottom: auto; top: 84px; transform: translateY(-24px) scale(.96); }
.aether-ad-popup.pos-tl.show { transform: translateY(0) scale(1); }
.aether-ad-popup.pos-center { left: 50%; right: auto; top: 50%; bottom: auto; transform: translate(-50%,-46%) scale(.94); }
.aether-ad-popup.pos-center.show { transform: translate(-50%,-50%) scale(1); }
@media (max-width: 480px) {
  .aether-ad-popup, .aether-ad-popup.pos-br, .aether-ad-popup.pos-bl, .aether-ad-popup.pos-tr, .aether-ad-popup.pos-tl { left: 16px; right: 16px; width: auto; }
  .aad-sections { grid-template-columns: 1fr; }
}


/* ------------------------------------------------------------------
   HYBRID BARRIER analyzer — live stat strip, strategy presets, direction
   cards, prediction cards, smart-execution matrix (chart removed)
   ------------------------------------------------------------------ */
/* Live barrier read-out — clean stat tiles that replace the old canvas chart */
.hybrid-live { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 10px 0; }
.hl-tile { display: flex; flex-direction: column; gap: 3px; padding: 9px 11px; border-radius: var(--radius-sm); background: linear-gradient(165deg, rgba(20,24,38,0.7), rgba(8,10,18,0.6)); border: 1px solid rgba(255,255,255,0.08); }
.hl-tile span { font-size: 9px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-muted); }
.hl-tile strong { font-family: var(--font-display); font-size: 16px; color: var(--text); font-variant-numeric: tabular-nums; }
.hl-hi { border-color: rgba(125,255,196,0.28); } .hl-hi strong { color: var(--ok); }
.hl-lo { border-color: rgba(139, 147, 168,0.28); } .hl-lo strong { color: var(--bad); }
.hl-edge { border-color: rgba(230,233,242,0.3); } .hl-edge strong { color: var(--neon-cyan); }
/* Strategy preset chips */
.hybrid-strat { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 8px 0; }
.hybrid-strat .hs-label { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); margin-right: 2px; }
.hs-chip { padding: 6px 12px; border-radius: 999px; cursor: pointer; font-size: 11px; font-weight: 700; font-family: var(--font-display); color: var(--text-dim); border: 1px solid rgba(250, 146, 0,0.3); background: rgba(20,12,42,0.5); transition: transform .15s, color .25s, border-color .25s, box-shadow .25s, background .25s; }
.hs-chip:hover { transform: translateY(-1px); color: var(--text); }
.hs-chip.is-on { color: var(--neon-cyan); border-color: var(--neon-cyan); background: rgba(230,233,242,0.12); box-shadow: 0 0 16px -5px var(--neon-cyan); }
/* Target win-rate band solver chips */
.hybrid-target { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 6px 0 8px; }
.ht-chip { padding: 6px 13px; border-radius: 999px; cursor: pointer; font-size: 11px; font-weight: 800; font-family: var(--font-display); color: var(--text-dim); border: 1px solid rgba(125,255,196,0.3); background: rgba(18,40,30,0.45); transition: transform .15s, color .25s, border-color .25s, box-shadow .25s, background .25s; }
.ht-chip:hover { transform: translateY(-1px); color: var(--text); }
.ht-chip.is-on { color: var(--ok); border-color: var(--ok); background: rgba(125,255,196,0.14); box-shadow: 0 0 16px -5px var(--ok); }
/* AI Pick & Fire — prominent one-tap button */
.hybrid-aipick { width: 100%; padding: 12px 16px; border-radius: var(--radius-md); cursor: pointer; font-family: var(--font-display); font-weight: 800; font-size: 13px; color: #061018; border: none; background: linear-gradient(135deg, #15d6a2 0%, #e6e9f2 55%, #fa9200 100%); box-shadow: 0 12px 30px -14px rgba(21,214,162,0.7); transition: transform .15s, box-shadow .25s, filter .2s; }
.hybrid-aipick:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 16px 36px -14px rgba(250, 146, 0,0.7); }
.hybrid-aipick:active { transform: translateY(0) scale(.98); }
.hybrid-aipick.is-firing { animation: sd-fire .9s ease; }
.hybrid-dirs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0; }
.hybrid-dir { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 8px; border-radius: var(--radius-md); cursor: pointer; color: var(--text); border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.03); transition: transform .16s, border-color .25s, box-shadow .25s, background .25s; }
.hybrid-dir .hd-k { font-family: var(--font-display); font-weight: 700; font-size: 13px; }
.hybrid-dir .hd-pct { font-family: var(--font-display); font-size: 20px; font-weight: 800; }
.hybrid-dir small { font-size: 9px; color: var(--text-muted); text-align: center; }
.hybrid-dir:hover { transform: translateY(-2px); }
.hybrid-dir-higher.is-on { border-color: var(--ok); background: rgba(125,255,196,0.14); box-shadow: 0 0 18px -4px var(--ok); }
.hybrid-dir-higher.is-on .hd-pct, .hybrid-dir-higher.is-on .hd-k { color: var(--ok); }
.hybrid-dir-between.is-on { border-color: var(--neon-cyan); background: rgba(230,233,242,0.14); box-shadow: 0 0 18px -4px var(--neon-cyan); }
.hybrid-dir-between.is-on .hd-pct, .hybrid-dir-between.is-on .hd-k { color: var(--neon-cyan); }
.hybrid-dir-lower.is-on { border-color: var(--bad); background: rgba(139, 147, 168,0.14); box-shadow: 0 0 18px -4px var(--bad); }
.hybrid-dir-lower.is-on .hd-pct, .hybrid-dir-lower.is-on .hd-k { color: var(--bad); }
/* ===== Apex Directional Engine (rebuilt Only Up / Only Down) ===== */
.dir-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; margin: 12px 0; }
.dir-side { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: var(--radius-md); border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.02); transition: border-color .3s, box-shadow .3s, background .3s; }
.dir-side[data-side="up"]   { border-color: rgba(125,255,196,0.5); background: radial-gradient(120% 120% at 0% 0%, rgba(125,255,196,0.14), transparent 60%); box-shadow: 0 0 26px -10px var(--ok); }
.dir-side[data-side="down"] { border-color: rgba(139, 147, 168,0.5); background: radial-gradient(120% 120% at 0% 0%, rgba(139, 147, 168,0.14), transparent 60%); box-shadow: 0 0 26px -10px var(--bad); }
.dir-arrow { font-size: 40px; line-height: 1; }
.dir-side[data-side="up"] .dir-arrow { color: var(--ok); }
.dir-side[data-side="down"] .dir-arrow { color: var(--bad); }
.dir-side-txt strong { display: block; font-family: var(--font-display); font-size: 30px; font-weight: 900; letter-spacing: .04em; }
.dir-side[data-side="up"] .dir-side-txt strong { color: var(--ok); }
.dir-side[data-side="down"] .dir-side-txt strong { color: var(--bad); }
.dir-side-txt small { font-size: 10.5px; color: var(--text-muted); }
.dir-conv { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 16px; border-radius: var(--radius-md); border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.02); }
.dir-conv-pct { display: flex; align-items: baseline; gap: 7px; }
.dir-conv-pct strong { font-family: var(--font-display); font-size: 30px; font-weight: 900; color: var(--text); font-variant-numeric: tabular-nums; }
.dir-conv-pct small { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.dir-meter { height: 9px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.dir-meter span { display: block; height: 100%; width: 0%; border-radius: 999px; background: linear-gradient(90deg, var(--warn), var(--neon-cyan)); transition: width .5s ease; }
.dir-meter span[data-tier="ok"]    { background: linear-gradient(90deg, var(--neon-cyan), var(--ok)); }
.dir-meter span[data-tier="elite"] { background: linear-gradient(90deg, var(--ok), #aaffd9); box-shadow: 0 0 14px -2px var(--ok); }
.dir-signals { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; margin: 8px 0 12px; }
.dsig { display: flex; align-items: center; gap: 8px; font-size: 10.5px; }
.dsig-k { flex: 0 0 92px; color: var(--text-muted); }
.dsig-track { flex: 1; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.07); overflow: hidden; }
.dsig-bar { display: block; height: 100%; border-radius: 999px; }
.dsig-up { background: var(--ok); } .dsig-down { background: var(--bad); } .dsig-flat { background: var(--text-muted); }
.dir-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 8px 0; }
.dir-actions-smart { grid-template-columns: 1fr 1fr 1fr; }
.dir-btn { padding: 14px 10px; border-radius: var(--radius-md); cursor: pointer; font-family: var(--font-display); font-weight: 800; font-size: 14px; letter-spacing: .03em; color: #04140d; border: none; transition: transform .15s, filter .2s, box-shadow .25s; }
.dir-btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.dir-btn:active { transform: translateY(0) scale(.98); }
.dir-btn.is-firing { animation: sd-fire .9s ease; }
.dir-up   { background: linear-gradient(135deg, #15d6a2, #7dffc4); box-shadow: 0 12px 30px -16px var(--ok); }
.dir-down { background: linear-gradient(135deg, #ff6a8e, #ff9bb3); box-shadow: 0 12px 30px -16px var(--bad); }
.dir-actions-smart .dir-btn { font-size: 12px; padding: 11px 8px; color: var(--text); border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); }
.dir-ai:hover     { border-color: var(--neon-cyan); box-shadow: 0 10px 24px -16px var(--neon-cyan); }
.dir-sniper:hover { border-color: var(--neon-pink); box-shadow: 0 10px 24px -16px var(--neon-pink); }
.dir-loop.is-on   { color: #04140d; background: linear-gradient(135deg, #15d6a2, #e6e9f2); border-color: transparent; }
@media (max-width: 560px) { .dir-hero, .dir-signals { grid-template-columns: 1fr; } .dir-actions-smart { grid-template-columns: 1fr; } }

/* Profit-Lock hedge panel — dual stakes, optimizer, P&L matrix */
.hybrid-hedge-panel { margin: 8px 0; padding: 12px; border-radius: var(--radius-md); border: 1px solid rgba(255,211,106,0.32); background: linear-gradient(160deg, rgba(30,24,10,0.5), rgba(8,12,18,0.5)); display: flex; flex-direction: column; gap: 10px; }
.hhp-head { display: flex; flex-direction: column; gap: 2px; }
.hhp-head .hh-title { font-family: var(--font-display); font-weight: 800; font-size: 14px; color: var(--warn); }
.hhp-head .hh-sub { font-size: 10px; color: var(--text-muted); }
.hhp-stakes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hhp-leg { display: flex; flex-direction: column; gap: 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .03em; padding: 8px 10px; border-radius: var(--radius-sm); border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); }
.hhp-leg.hhp-hi { border-color: rgba(125,255,196,0.32); color: var(--ok); }
.hhp-leg.hhp-lo { border-color: rgba(139, 147, 168,0.32); color: var(--bad); }
.hhp-leg input { width: 100%; padding: 7px 9px; border-radius: 8px; border: 1px solid rgba(250, 146, 0,0.28); background: rgba(8,4,20,0.7); color: var(--text); font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums; }
.hhp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.hhp-balance { flex: 1 1 auto; padding: 9px 12px; border-radius: var(--radius-sm); cursor: pointer; font-family: var(--font-display); font-weight: 800; font-size: 11.5px; color: #0a0c14; border: none; background: linear-gradient(135deg, #ffd36a, #ffa64d); box-shadow: 0 10px 24px -14px rgba(255,180,80,0.7); transition: transform .15s, filter .2s; }
.hhp-balance:hover { transform: translateY(-2px); filter: brightness(1.07); }
.hhp-balance:active { transform: translateY(0) scale(.98); }
.hedge-lock { white-space: nowrap; }
.hhp-matrix { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.hhm-cell.hhm-combined { border-color: rgba(230,233,242,0.35); }
.hhm-cell.hhm-combined strong { color: var(--neon-cyan); }
.hhm-cell { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: var(--radius-sm); background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); }
.hhm-cell span { font-size: 8.5px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted); }
.hhm-cell strong { font-family: var(--font-display); font-size: 15px; font-variant-numeric: tabular-nums; color: var(--text); }
.hhm-cell.hhm-worst { border-color: rgba(255,211,106,0.4); }
.hhm-cell strong.pos { color: var(--ok); }
.hhm-cell strong.neg { color: var(--bad); }
/* Dual-leg hedge button */
.hybrid-hedge {
  display: flex; flex-direction: column; gap: 3px; width: 100%;
  margin: 4px 0 8px; padding: 11px 14px; cursor: pointer; text-align: center;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255,211,106,0.4);
  background: linear-gradient(135deg, rgba(46,36,8,0.6), rgba(8,18,16,0.55));
  color: var(--text);
  transition: transform .16s, border-color .25s, box-shadow .25s, background .25s;
}
.hybrid-hedge:hover { transform: translateY(-2px); border-color: var(--warn); box-shadow: 0 14px 30px -16px var(--warn); }
.hybrid-hedge .hh-title { font-family: var(--font-display); font-weight: 800; font-size: 14px; }
.hybrid-hedge .hh-sub { font-size: 10px; color: var(--text-muted); }
.hybrid-hedge .hh-math { font-size: 10.5px; color: var(--warn); font-variant-numeric: tabular-nums; }
.hybrid-hedge.is-on {
  border-color: rgba(125,255,196,0.7);
  background: linear-gradient(135deg, rgba(18,46,32,0.7), rgba(46,36,8,0.5));
  box-shadow: 0 0 22px -4px var(--ok);
}
.hybrid-hedge.is-on .hh-title { color: var(--ok); }
.hybrid-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 8px 0; }
.hybrid-controls > label { font-size: 11px; color: var(--text-muted); display: flex; flex-direction: column; gap: 3px; }
.hybrid-controls input[type="number"] { width: 110px; padding: 7px 9px; border-radius: 8px; border: 1px solid rgba(250, 146, 0,0.28); background: rgba(8,4,20,0.7); color: var(--text); }
.hybrid-duration { min-width: 180px; }
.hybrid-duration input[type="range"] { width: 100%; }
.hybrid-duration span { color: var(--neon-cyan); font-family: var(--font-display); font-weight: 700; }
.hybrid-pred-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0 4px; }
.hpc { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: var(--radius-sm); background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); }
.hpc span { font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.hpc strong { font-family: var(--font-display); font-size: 18px; }
.hpc-higher { border-color: rgba(125,255,196,0.3); } .hpc-higher strong { color: var(--ok); }
.hpc-between { border-color: rgba(230,233,242,0.3); } .hpc-between strong { color: var(--neon-cyan); }
.hpc-lower { border-color: rgba(139, 147, 168,0.3); } .hpc-lower strong { color: var(--bad); }
/* Best statistical direction highlight (separate from the user's is-on pick) */
.hpc.is-best { box-shadow: 0 0 0 1px var(--neon-cyan), 0 0 18px -6px var(--neon-cyan); }
.hybrid-dir.is-best { position: relative; }
.hybrid-dir.is-best::after { content: "BEST"; position: absolute; top: 5px; right: 6px; font-size: 7px; letter-spacing: .1em; color: var(--neon-cyan); background: rgba(230,233,242,0.14); border-radius: 4px; padding: 1px 4px; }
/* Smart-execution matrix + manual direction fire + barrier optimizer */
.hybrid-exec { display: flex; flex-direction: column; gap: 8px; margin: 10px 0 6px; }
.hybrid-smart-matrix { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.hybrid-fire { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.hf-btn { padding: 9px 8px; border-radius: var(--radius-sm); cursor: pointer; font-family: var(--font-display); font-weight: 700; font-size: 12px; color: var(--text); border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); transition: transform .15s, border-color .25s, box-shadow .25s, background .25s; }
.hf-btn:hover { transform: translateY(-2px); }
.hf-higher:hover { border-color: var(--ok); box-shadow: 0 10px 24px -16px var(--ok); }
.hf-between:hover { border-color: var(--neon-cyan); box-shadow: 0 10px 24px -16px var(--neon-cyan); }
.hf-lower:hover { border-color: var(--bad); box-shadow: 0 10px 24px -16px var(--bad); }
.hybrid-optimize { width: 100%; padding: 10px 14px; border-radius: var(--radius-md); cursor: pointer; font-family: var(--font-display); font-weight: 700; font-size: 12px; color: var(--text); border: 1px dashed rgba(250, 146, 0,0.5); background: rgba(20,12,42,0.45); transition: transform .15s, border-color .25s, box-shadow .25s, background .25s; }
.hybrid-optimize:hover { transform: translateY(-2px); border-color: #fa9200; box-shadow: 0 12px 28px -16px rgba(250, 146, 0,0.6); background: rgba(250, 146, 0,0.12); }
/* Rounds runner */
.hybrid-rounds { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.hybrid-rounds .hr-label { font-size: 11px; font-weight: 800; font-family: var(--font-display); letter-spacing: .04em; color: var(--text-dim); }
.hybrid-rounds input { width: 64px; padding: 7px 9px; border-radius: 8px; border: 1px solid rgba(250, 146, 0,0.28); background: rgba(8,4,20,0.7); color: var(--text); font-family: var(--font-display); font-weight: 700; text-align: center; }
.hybrid-rounds .hr-run { flex: 1 1 auto; padding: 9px 14px; border-radius: var(--radius-sm); cursor: pointer; border: none; font-family: var(--font-display); font-weight: 800; font-size: 12px; color: #061018; background: linear-gradient(135deg, #15d6a2, #e6e9f2); box-shadow: 0 10px 22px -14px rgba(21,214,162,0.7); transition: transform .15s, filter .2s; }
.hybrid-rounds .hr-run:hover { transform: translateY(-2px); filter: brightness(1.08); }
.hybrid-rounds .hr-stop { padding: 9px 14px; border-radius: var(--radius-sm); cursor: pointer; font-family: var(--font-display); font-weight: 800; font-size: 12px; color: var(--text); border: 1px solid rgba(139, 147, 168,0.45); background: rgba(139, 147, 168,0.1); transition: transform .15s, box-shadow .25s; }
.hybrid-rounds .hr-stop:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -16px var(--bad); }
@media (max-width: 560px) { .hybrid-dirs, .hybrid-pred-cards, .hybrid-fire { grid-template-columns: 1fr; } .hybrid-live, .hybrid-smart-matrix { grid-template-columns: repeat(2, 1fr); } }

.celebration { position: fixed; inset: 0; pointer-events: none; z-index: 30; overflow: hidden; }
.celebration.burst::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(125,255,196,0.35), transparent 60%),
    radial-gradient(circle at 30% 40%, rgba(250, 146, 0,0.4), transparent 60%),
    radial-gradient(circle at 70% 60%, rgba(139, 147, 168,0.35), transparent 60%);
  animation: burstFade 1.6s ease-out forwards;
}
@keyframes burstFade {
  0% { opacity: 0.9; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(1.4); }
}

.loss-flash { position: fixed; inset: 0; pointer-events: none; z-index: 31; overflow: hidden; }
.loss-flash.flash::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(139, 147, 168,0.55), rgba(120, 70, 12,0.35) 55%, transparent 80%),
    linear-gradient(180deg, rgba(139, 147, 168,0.18), rgba(0,0,0,0));
  animation: lossFlash 1.4s ease-out forwards;
  box-shadow: inset 0 0 120px rgba(139, 147, 168,0.65);
}
@keyframes lossFlash {
  0%   { opacity: 0; transform: scale(1); }
  18%  { opacity: 1; }
  35%  { opacity: 0.55; }
  60%  { opacity: 0.85; }
  100% { opacity: 0; transform: scale(1.04); }
}

.aether-footer { text-align: center; padding: 30px 20px 0; color: var(--text-muted); font-size: 12px; }
.aether-footer strong { color: var(--text-dim); }
.fine-print { max-width: 780px; margin: 8px auto 0; color: var(--text-muted); font-size: 11px; }

/* ------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------ */
@media (max-width: 1100px) {
  .godmind-hero { grid-template-columns: 1fr; }
  .automation-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analyzer-grid { grid-template-columns: repeat(2, 1fr); }
  .orbs { grid-template-columns: repeat(5, 1fr); }
  .cooldown-grid { grid-template-columns: repeat(2, 1fr); }
  .briefing-grid { grid-template-columns: repeat(2, 1fr); }
  .dna-grid { grid-template-columns: repeat(2, 1fr); }
  .brain-grid,
  .master-automation-panel,
  .analyzer-execution-panel,
  .quick-speed-panel,
  .digit-command-grid,
  .smart-score-grid,
  .win-loss-card,
  .journal-hero-line,
  .journal-detail-grid,
  .journal-detail-grid.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .aether-header { flex-wrap: wrap; gap: 12px; }
  .brand-title { font-size: 15px; }
  .brand-sub { display: none; }
  .hero-copy h1 { font-size: 26px; }
  .hero-metrics { grid-template-columns: 1fr; }
  .analyzer-grid { grid-template-columns: 1fr; }
  .orbs { grid-template-columns: repeat(3, 1fr); }
  .cooldown-grid { grid-template-columns: 1fr; }
  .briefing-grid, .dna-grid, .brain-grid, .master-automation-panel, .analyzer-execution-panel, .quick-speed-panel, .digit-command-grid, .win-loss-card, .wl-grid, .wl-filter-row, .smart-score-grid { grid-template-columns: 1fr; }
  .automation-panel { grid-template-columns: 1fr; }
  .edge-stack,
  .journal-topbar,
  .journal-hero-line,
  .journal-card-head,
  .journal-detail-grid,
  .journal-detail-grid.is-compact { grid-template-columns: 1fr; }
  .journal-status-pill { justify-self: start; }
  section { padding: 20px; }
  .godmind-hero { padding: 22px; }
}

/* =========================================================================
   ðŸ” Reinvest profit panel â€” Smart-AI gated
   ========================================================================= */
.reinvest-panel[hidden] { display: none; }
.reinvest-panel {
  display: grid; gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(125, 255, 196, 0.22);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(8,16,14,0.85), rgba(14,14,18,0.7));
  animation: reinvestFadeIn .35s ease-out;
}
@keyframes reinvestFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.reinvest-panel .reinvest-row { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; letter-spacing:.06em; color:var(--text-dim); }
.reinvest-panel .reinvest-toggle { display:inline-flex; align-items:center; gap:8px; font-weight:700; color:#cdf6df; }
.reinvest-panel .reinvest-toggle input { width:36px; height:20px; }
.reinvest-panel .reinvest-pool { font-family:var(--font-display); letter-spacing:.08em; color:var(--text-muted); padding:3px 9px; border-radius:999px; background:rgba(255,255,255,.04); }
.reinvest-panel .reinvest-pool.is-fueled { color:var(--ok); background:rgba(125,255,196,.12); border:1px solid rgba(125,255,196,.3); }
.reinvest-options { display:flex; gap:6px; flex-wrap:wrap; }
.reinvest-options[hidden] { display:none; }
.reinvest-options button { padding:6px 12px; border-radius:999px; border:1px solid rgba(125,255,196,.32); background:rgba(125,255,196,.06); color:#cdf6df; font:700 11px/1 var(--font-display); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:all .18s ease; }
.reinvest-options button:hover { background:rgba(125,255,196,.18); box-shadow:0 0 12px rgba(125,255,196,.2); }
.reinvest-options button.is-on { background:linear-gradient(135deg, rgba(125,255,196,.35), rgba(60,200,140,.25)); border-color:rgba(125,255,196,.7); color:#fff; box-shadow:0 0 16px rgba(125,255,196,.4); }
.reinvest-mode-row { display:flex; gap:6px; flex-wrap:wrap; }
.reinvest-mode-row[hidden] { display:none; }
.reinvest-mode-row button {
  padding:6px 10px;
  border-radius:8px;
  border:1px solid rgba(230,233,242,.24);
  background:rgba(230,233,242,.05);
  color:#e6e9f2;
  font:700 10.5px/1 var(--font-display);
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.reinvest-mode-row button.is-on {
  border-color:rgba(230,233,242,.62);
  background:rgba(230,233,242,.15);
  color:#fff;
}

/* =========================================================================
   â² Per-orb cooldown card
   ========================================================================= */
.orb-cooldown-card { display:grid; gap:6px; padding:10px 12px; border:1px solid rgba(140,140,160,.22); border-radius:var(--radius-sm); background:linear-gradient(135deg, rgba(14,14,20,.88), rgba(6,6,10,.78)); transition:border-color .25s ease, box-shadow .25s ease; }
.orb-cooldown-card.ready { border-color:rgba(125,255,196,.32); }
.orb-cooldown-card.locked { border-color:rgba(255,200,120,.4); box-shadow:0 0 0 1px rgba(255,200,120,.18) inset, 0 0 18px rgba(255,200,120,.12); }
.orb-cd-head { display:flex; align-items:center; justify-content:space-between; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); }
.orb-cd-head strong { font-family:var(--font-display); color:var(--ok); letter-spacing:.08em; }
.orb-cooldown-card.locked .orb-cd-head strong { color:#ffd479; }
.orb-cooldown-card input[type="range"] { width:100%; appearance:none; height:4px; background:rgba(255,255,255,.08); border-radius:999px; outline:none; }
.orb-cooldown-card input[type="range"]::-webkit-slider-thumb { appearance:none; width:14px; height:14px; border-radius:50%; background:linear-gradient(135deg, #cdd5e0, #95959c); cursor:pointer; box-shadow:0 0 0 2px rgba(0,0,0,.5); }
.orb-cooldown-card input[type="range"]::-moz-range-thumb { width:14px; height:14px; border-radius:50%; background:linear-gradient(135deg, #cdd5e0, #95959c); border:none; cursor:pointer; }
.orb-cd-ticks { display:flex; justify-content:space-between; font-size:9px; color:var(--text-muted); letter-spacing:.08em; text-transform:uppercase; }
.orb-cd-ticks small[data-orb-cd-value] { color:var(--ok); font-weight:700; }
.orb-cooldown-card.locked .orb-cd-ticks small[data-orb-cd-value] { color:#ffd479; }
/* Cooldown dropdown */
.orb-cd-dropdown { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.orb-cd-dropdown > span { font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.orb-cd-dropdown select {
  flex:0 0 auto;
  min-width:84px;
  padding:6px 10px;
  border-radius:8px;
  border:1px solid rgba(125,255,196,.3);
  background:rgba(8,12,10,.85);
  color:var(--text);
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  cursor:pointer;
  outline:none;
}
.orb-cd-dropdown select:focus { border-color:var(--ok); box-shadow:0 0 0 3px rgba(125,255,196,.2); }
.orb-cooldown-card.locked .orb-cd-dropdown select { border-color:rgba(255,212,121,.4); }
.orb-cd-bar { height:3px; background:rgba(255,255,255,.06); border-radius:999px; overflow:hidden; }
.orb-cd-bar span { display:block; height:100%; width:100%; background:linear-gradient(90deg, rgba(125,255,196,.65), rgba(60,200,140,.45)); transition:width .25s linear; }
.orb-cooldown-card.locked .orb-cd-bar span { background:linear-gradient(90deg, rgba(255,212,121,.7), rgba(255,170,80,.5)); }

/* =========================================================================
   âš¡ Skilli Speed
   ========================================================================= */
.skilli-speed-card { display:grid; gap:4px; padding:10px 12px; border:1px solid rgba(250, 146, 0,.32); border-radius:var(--radius-sm); background:linear-gradient(135deg, rgba(20,12,32,.85), rgba(8,4,16,.78)); }
.skilli-speed-card small { font-size:10px; letter-spacing:.06em; color:var(--text-muted); }
.btn-skilli-speed { width:100%; padding:10px 14px; font:800 13px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; border:1px solid rgba(250, 146, 0,.5); border-radius:var(--radius-sm); background:linear-gradient(135deg, rgba(250, 146, 0,.18), rgba(139, 147, 168,.10)); color:#f5eeef; cursor:pointer; transition:transform .15s ease, box-shadow .25s ease, background .25s ease; }
.btn-skilli-speed:hover { background:linear-gradient(135deg, rgba(250, 146, 0,.32), rgba(139, 147, 168,.18)); transform:translateY(-1px); box-shadow:0 8px 24px -8px rgba(250, 146, 0,.55); }
.btn-skilli-speed.is-on { background:linear-gradient(135deg, rgba(250, 146, 0,.55), rgba(139, 147, 168,.4)); border-color:rgba(250, 146, 0,.85); color:#fff; box-shadow:0 0 24px rgba(250, 146, 0,.6), 0 0 48px rgba(139, 147, 168,.25); animation:skilliSpeedPulse 1.6s ease-in-out infinite; }
@keyframes skilliSpeedPulse { 0%,100%{ box-shadow:0 0 18px rgba(250, 146, 0,.5);} 50%{ box-shadow:0 0 28px rgba(250, 146, 0,.85), 0 0 52px rgba(139, 147, 168,.35); } }

/* =========================================================================
   âš¡ Trade prediction card â€” flip from live to result
   ========================================================================= */
.trade-prediction-card[hidden] { display:none; }
.trade-prediction-card {
  position:relative;
  margin-bottom:14px;
  border-radius:var(--radius-md);
  border:1px solid rgba(150,150,160,.25);
  background:linear-gradient(135deg, rgba(12,12,18,.92), rgba(20,18,32,.78));
  overflow:hidden;
  perspective:1400px;
  transform-origin:top center;
  transition:opacity .42s ease, transform .42s ease, border-color .35s ease, box-shadow .35s ease;
}
.trade-prediction-card.is-entering { animation:tpcEnter .55s cubic-bezier(.2,.85,.3,1.05); }
@keyframes tpcEnter { from { opacity:0; transform:translateY(-14px) scale(.95);} to { opacity:1; transform:translateY(0) scale(1);} }
.trade-prediction-card.is-fading { opacity:0; transform:scale(.96) translateY(-6px); }
.trade-prediction-card.is-live { border-color:rgba(230,233,242,.5); box-shadow:0 0 0 1px rgba(230,233,242,.18) inset, 0 16px 36px -16px rgba(230,233,242,.4); }
.trade-prediction-card.is-win  { border-color:rgba(125,255,196,.7); box-shadow:0 0 0 1px rgba(125,255,196,.35) inset, 0 18px 44px -14px rgba(125,255,196,.6); }
.trade-prediction-card.is-loss { border-color:rgba(139, 147, 168,.6); box-shadow:0 0 0 1px rgba(139, 147, 168,.35) inset, 0 18px 44px -14px rgba(139, 147, 168,.5); }

.tpc-aura { position:absolute; inset:-40%; background:radial-gradient(circle at 20% 30%, rgba(230,233,242,.18), transparent 55%), radial-gradient(circle at 80% 70%, rgba(250, 146, 0,.18), transparent 55%); filter:blur(40px); opacity:.8; z-index:0; pointer-events:none; }
.trade-prediction-card.is-win  .tpc-aura { background:radial-gradient(circle at 50% 40%, rgba(125,255,196,.35), transparent 60%); }
.trade-prediction-card.is-loss .tpc-aura { background:radial-gradient(circle at 50% 40%, rgba(139, 147, 168,.3), transparent 60%); }

.tpc-flipper { position:relative; z-index:1; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.7,.05,.2,1); }
.trade-prediction-card.is-flipped .tpc-flipper { transform:rotateY(180deg); }
.tpc-face { padding:16px 18px; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.tpc-back { position:absolute; inset:0; transform:rotateY(180deg); display:grid; gap:12px; align-content:center; text-align:center; }

.tpc-front { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto auto; gap:12px 18px; }
.tpc-head { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tpc-eyebrow { font:700 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); }
.tpc-head strong { font:800 18px/1.1 var(--font-display); letter-spacing:.08em; color:#fff; }

.tpc-ring { width:96px; height:96px; position:relative; }
.tpc-ring svg { transform:rotate(-90deg); width:100%; height:100%; }
.tpc-ring-bg { fill:none; stroke:rgba(255,255,255,.08); stroke-width:8; }
.tpc-ring-fg { fill:none; stroke:url(#tpc-grad); stroke-width:8; stroke-linecap:round; stroke-dasharray:314; stroke-dashoffset:80; animation:tpcRingSpin 1.6s linear infinite, tpcRingPulse 2.4s ease-in-out infinite; transition:stroke .4s ease; }
.tpc-ring[data-state="win"]  .tpc-ring-fg { stroke:#7dffc4; animation:tpcRingComplete .8s ease forwards; stroke-dashoffset:0; }
.tpc-ring[data-state="loss"] .tpc-ring-fg { stroke:#ff6a8e; animation:tpcRingComplete .8s ease forwards; stroke-dashoffset:0; }
@keyframes tpcRingSpin { from { stroke-dashoffset:314; } to { stroke-dashoffset:-314; } }
@keyframes tpcRingPulse { 0%,100%{ opacity:.85;} 50%{ opacity:1; } }
@keyframes tpcRingComplete { to { stroke-dashoffset:0; } }
.tpc-ring-label { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.tpc-ring-label strong { font:800 16px/1 var(--font-display); letter-spacing:.1em; color:#fff; }
.tpc-ring-label small { font-size:10px; color:var(--text-muted); letter-spacing:.1em; text-transform:uppercase; margin-top:4px; }
.trade-prediction-card.is-win .tpc-ring-label strong { color:var(--ok); }
.trade-prediction-card.is-loss .tpc-ring-label strong { color:var(--bad); }

.tpc-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
.tpc-stats > div { display:grid; gap:2px; padding:8px 10px; border-radius:var(--radius-sm); background:rgba(8,8,14,.65); border:1px solid rgba(255,255,255,.05); }
.tpc-stats small { font-size:9px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.1em; }
.tpc-stats strong { font:700 13px/1.2 var(--font-display); color:var(--text); letter-spacing:.04em; }

.tpc-bar { grid-column:1 / -1; height:4px; border-radius:999px; background:rgba(255,255,255,.05); overflow:hidden; }
.tpc-bar-fill { display:block; height:100%; width:0%; background:linear-gradient(90deg, #e6e9f2, #fa9200); transition:width .25s linear; box-shadow:0 0 16px rgba(230,233,242,.4); }
.tpc-note { grid-column:1 / -1; font-size:11px; color:var(--text-dim); }

.tpc-result-eyebrow { font:800 11px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }
.trade-prediction-card.is-win  .tpc-result-eyebrow { color:var(--ok); }
.trade-prediction-card.is-loss .tpc-result-eyebrow { color:var(--bad); }
.tpc-result-headline { display:block; margin-top:4px; font:800 26px/1.1 var(--font-display); letter-spacing:.05em; color:#fff; }
.tpc-result-figures { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; padding: 0 18px; }
.tpc-result-figures > div { display:grid; gap:2px; padding:10px; border-radius:var(--radius-sm); background:rgba(8,8,14,.65); border:1px solid rgba(255,255,255,.05); text-align:center; }
.tpc-result-figures small { font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.1em; }
.tpc-result-figures strong { font:800 16px/1.1 var(--font-display); color:#fff; }
.trade-prediction-card.is-win  .tpc-result-figures strong { color:var(--ok); }
.trade-prediction-card.is-loss .tpc-result-figures strong { color:var(--bad); }
.tpc-result-note { font-size:11px; color:var(--text-dim); padding: 0 18px; }

/* =========================================================================
   ðŸ“œ Journal hide until first trade is taken
   ========================================================================= */
/* Voice Trading Journal DISAPPEARS by default and only slides in once a trade
   has actually been executed (or one is live/in-progress). Keeps the Auto
   Trading view clean and focused until there's something to journal. The
   data-has-trades flag is driven live by renderJournal(). */
.journal[data-has-trades="false"] { display: none !important; }
.journal[data-has-trades="true"] {
  display: block;
  animation: journalReveal .5s cubic-bezier(.2,.8,.25,1) both;
}
@keyframes journalReveal {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* =========================================================================
   ðŸ’° Win/loss card polish
   ========================================================================= */
.win-loss-card {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(140px, .65fr);
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px;
  border: 1px solid rgba(120,120,140,0.22);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(14,14,20,.92), rgba(20,20,28,.76));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 8px 24px -10px rgba(0,0,0,.6);
  transition: border-color .4s ease, box-shadow .4s ease;
}
.wl-main, .wl-rate-card { min-width:0; display:grid; align-content:center; gap:3px; padding:8px 12px; border-radius:10px; transition:transform .35s ease, box-shadow .35s ease; }
.wl-main { border:1px solid rgba(125,255,196,.22); background:linear-gradient(135deg, rgba(8,18,16,.7), rgba(14,14,20,.6)); }
.wl-rate-card { border:1px solid rgba(139, 147, 168,.28); background:linear-gradient(135deg, rgba(14,18,32,.7), rgba(14,14,20,.6)); }
.wl-main:hover, .wl-rate-card:hover { transform:translateY(-1px); }
.wl-main strong, .wl-rate-card strong { font-family:var(--font-display); font-size:clamp(20px, 2.8vw, 26px); line-height:1; transition:color .4s ease, text-shadow .4s ease; }


/* =========================================================================
   ðŸ“¢ Admin announcement banner â€” also rendered on trade.html
   ========================================================================= */
.skilli-announcement{
  position:relative;z-index:90;
  padding:0;margin:0;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(90deg, rgba(14,14,20,.95), rgba(8,8,14,.95));
  animation:annSlideDown .45s cubic-bezier(.2,.85,.3,1.05);
}
.skilli-announcement[hidden]{display:none}
@keyframes annSlideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
.skilli-announcement[data-severity="success"]{ background:linear-gradient(90deg, rgba(8,30,22,.95), rgba(6,22,18,.95)); border-bottom-color:rgba(125,255,196,.3); }
.skilli-announcement[data-severity="warn"]   { background:linear-gradient(90deg, rgba(46,30,8,.95), rgba(30,20,6,.95)); border-bottom-color:rgba(255,212,121,.3); }
.skilli-announcement[data-severity="alert"]  { background:linear-gradient(90deg, rgba(44,10,18,.95), rgba(30,6,10,.95)); border-bottom-color:rgba(255,127,147,.4); }
.ann-inner{
  max-width:1240px;margin:0 auto;
  padding:10px 18px;
  display:flex;align-items:center;gap:12px;
  font:600 13.5px/1.4 var(--font-body, system-ui, sans-serif);
  color:#f3eefe;
}
.ann-emoji{font-size:18px;flex-shrink:0}
.ann-text{flex:1;min-width:0}
.ann-close{
  appearance:none;border:none;background:rgba(255,255,255,.08);
  color:#fff;width:26px;height:26px;line-height:1;border-radius:50%;
  font-size:18px;cursor:pointer;flex-shrink:0;
  transition:background .2s ease, transform .2s ease;
}
.ann-close:hover{background:rgba(255,255,255,.16);transform:scale(1.08)}


/* =========================================================================
   ðŸ›Ÿ Daily P&L Safety Net
   ========================================================================= */
.safety-net {
  padding: 18px 22px;
  margin: 0 0 18px;
  display: grid; gap: 14px;
}
.safety-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width:880px){ .safety-grid{ grid-template-columns:1fr; } }
.safety-card {
  display: grid; gap: 8px;
  padding: 14px 16px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(180,180,200,.18);
  background: linear-gradient(135deg, rgba(14,14,20,.92), rgba(8,8,12,.86));
  transition: border-color .35s ease, box-shadow .35s ease, transform .3s ease;
}
.safety-card label { font: 700 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color: var(--text-muted); }
.safety-input-row { display:flex; align-items:center; gap:8px; }
.safety-input-row input {
  flex:1; min-width:0;
  background: rgba(0,0,0,.4); color: var(--text); border:1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-sm); padding: 10px 12px;
  font: 700 18px/1 var(--font-display); letter-spacing:.04em;
}
.safety-input-row input:focus { outline:none; border-color: rgba(125,255,196,.5); box-shadow:0 0 0 3px rgba(125,255,196,.12); }
.safety-unit { font:600 12px/1 var(--font-display); color: var(--text-muted); letter-spacing:.08em; }
.safety-progress small { font-size: 11px; color: var(--text-dim); letter-spacing:.04em; }
.safety-progress-bar {
  height: 5px; border-radius: 999px; background: rgba(255,255,255,.05); overflow: hidden;
  margin-bottom: 6px;
}
.safety-progress-bar span {
  display:block; height:100%; width:0%;
  background: linear-gradient(90deg, rgba(125,255,196,.65), rgba(60,200,140,.45));
  transition: width .45s cubic-bezier(.2,.85,.3,1.05);
  box-shadow: 0 0 12px rgba(125,255,196,.3);
}
.safety-loss .safety-progress-bar span {
  background: linear-gradient(90deg, rgba(255,170,80,.65), rgba(139, 147, 168,.6));
  box-shadow: 0 0 12px rgba(139, 147, 168,.3);
}
.safety-profit { border-color: rgba(125,255,196,.28); }
.safety-loss   { border-color: rgba(255,170,80,.3); }

.safety-state {
  text-align: center;
  align-content: center;
}
.safety-state .safety-eyebrow {
  font: 700 10px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color: var(--text-muted);
}
.safety-state strong#safety-today-pnl {
  display:block; margin-top:6px;
  font: 800 26px/1 var(--font-display); letter-spacing:.05em;
  transition: color .35s ease, text-shadow .35s ease;
  color: #fff;
}
.safety-state strong.is-profit { color: var(--ok); text-shadow: 0 0 16px rgba(125,255,196,.35); }
.safety-state strong.is-loss   { color: var(--bad); text-shadow: 0 0 16px rgba(139, 147, 168,.35); }
.safety-state small {
  display:block; margin-top:6px;
  font-size: 12px; color: var(--text-dim);
}
.safety-state .btn-ghost {
  margin-top: 10px; align-self:center; padding: 6px 14px;
  font:700 11px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase;
}
.safety-state.is-paused {
  border-color: rgba(255,212,121,.5);
  box-shadow: 0 0 0 1px rgba(255,212,121,.18) inset, 0 0 24px rgba(255,212,121,.15);
  animation: safetyPausedPulse 2.4s ease-in-out infinite;
}
@keyframes safetyPausedPulse {
  0%,100% { box-shadow: 0 0 0 1px rgba(255,212,121,.18) inset, 0 0 18px rgba(255,212,121,.12); }
  50%     { box-shadow: 0 0 0 1px rgba(255,212,121,.32) inset, 0 0 30px rgba(255,212,121,.22); }
}

/* =========================================================================
   â³ Pre-trade countdown banner
   ========================================================================= */
.pretrade-countdown {
  position: fixed; left:50%; bottom:24px; transform: translateX(-50%);
  z-index: 9500;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(230,233,242,.45);
  background: linear-gradient(135deg, rgba(8,12,28,.94), rgba(14,8,24,.94));
  box-shadow: 0 14px 40px -14px rgba(230,233,242,.5), inset 0 0 0 1px rgba(255,255,255,.05);
  font-family: var(--font-display); letter-spacing:.06em;
  animation: pretradeRise .35s cubic-bezier(.2,.85,.3,1.05);
}
.pretrade-countdown[hidden] { display:none; }
@keyframes pretradeRise { from { opacity:0; transform: translateX(-50%) translateY(20px); } to { opacity:1; transform: translateX(-50%) translateY(0); } }
.pretrade-eyebrow { font: 700 10px/1 var(--font-display); letter-spacing:.18em; text-transform: uppercase; color: var(--text-muted); }
.pretrade-route { font:800 14px/1 var(--font-display); color:#fff; letter-spacing:.06em; }
.pretrade-ring {
  width: 38px; height: 38px; position:relative;
}
.pretrade-ring svg { width:100%; height:100%; transform: rotate(-90deg); }
.pretrade-ring-bg { fill:none; stroke: rgba(255,255,255,.1); stroke-width: 6; }
.pretrade-ring-fg {
  fill:none; stroke:#e6e9f2; stroke-width:6; stroke-linecap:round;
  stroke-dasharray: 100; stroke-dashoffset: 0;
  transition: stroke-dashoffset .95s linear;
}
.pretrade-ring-label {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font:800 14px/1 var(--font-display); color:#fff;
}
.btn-abort-trade {
  appearance:none; cursor:pointer;
  padding: 8px 16px; border-radius:999px;
  border: 1px solid rgba(139, 147, 168,.5);
  background: linear-gradient(135deg, rgba(139, 147, 168,.18), rgba(255,150,90,.12));
  color: #f4ede0;
  font: 800 11px/1 var(--font-display); letter-spacing:.16em; text-transform: uppercase;
  transition: all .2s ease;
}
.btn-abort-trade:hover { background: linear-gradient(135deg, rgba(139, 147, 168,.32), rgba(255,150,90,.22)); transform: translateY(-1px); box-shadow: 0 0 18px rgba(139, 147, 168,.35); }

/* =========================================================================
   â± Subscription countdown chip
   ========================================================================= */
.sub-countdown-chip {
  display:inline-flex; align-items:center; gap:8px;
  padding: 6px 12px; border-radius:999px;
  background: rgba(250, 146, 0,.1);
  border: 1px solid rgba(250, 146, 0,.32);
  font: 700 11px/1 var(--font-display); letter-spacing:.08em;
  color: #e0d6d9;
}
.sub-countdown-chip[data-warn="true"]  { background: rgba(255,212,121,.10); border-color: rgba(255,212,121,.4); color: #ffe8b3; }
.sub-countdown-chip[data-alert="true"] { background: rgba(139, 147, 168,.10); border-color: rgba(139, 147, 168,.45); color: #f4ede0; animation: subAlertPulse 2s ease-in-out infinite; }
@keyframes subAlertPulse { 0%,100% { box-shadow:0 0 0 0 rgba(139, 147, 168,.0); } 50% { box-shadow:0 0 0 4px rgba(139, 147, 168,.18); } }
.sub-countdown-chip .sc-k { color: var(--text-muted); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.sub-countdown-chip .sc-v { font-family: var(--font-mono, monospace); font-weight:700; letter-spacing:.04em; }

/* =========================================================================
   ðŸ’² Quick stake preset chips per analyzer
   ========================================================================= */
.stake-presets {
  display:flex; flex-wrap:wrap; gap:6px;
  margin: 4px 0 8px;
}
.stake-preset {
  appearance:none; cursor:pointer;
  padding: 5px 11px; border-radius: 999px;
  border: 1px solid rgba(125,255,196,.32);
  background: rgba(125,255,196,.06);
  color: #cdf6df;
  font: 700 11px/1 var(--font-display); letter-spacing:.08em;
  transition: all .18s ease;
}
.stake-preset:hover { background: rgba(125,255,196,.18); box-shadow: 0 0 12px rgba(125,255,196,.18); }
.stake-preset.is-on { background: linear-gradient(135deg, rgba(125,255,196,.35), rgba(60,200,140,.25)); border-color: rgba(125,255,196,.7); color:#fff; box-shadow: 0 0 14px rgba(125,255,196,.35); }


/* =========================================================================
   ðŸš€ Cinematic Next Trade Queue
   ========================================================================= */
.next-trade-queue[hidden] { display: none; }
.next-trade-queue {
  position: relative;
  display: grid;
  gap: 14px;
  padding: 16px 18px;
  margin: 0 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(150,150,160,0.22);
  background: linear-gradient(140deg, rgba(10,10,16,.94), rgba(18,14,30,.86));
  overflow: hidden;
  transition: border-color .4s ease, box-shadow .4s ease;
}
.next-trade-queue.is-loading { border-color: rgba(230,233,242,.4); box-shadow: 0 0 0 1px rgba(230,233,242,.16) inset, 0 14px 32px -14px rgba(230,233,242,.4); }
.next-trade-queue.is-elite   { border-color: rgba(250, 146, 0,.65); box-shadow: 0 0 0 1px rgba(250, 146, 0,.28) inset, 0 16px 36px -14px rgba(250, 146, 0,.55); }
.ntq-aura {
  position: absolute; inset: -40%;
  background: radial-gradient(circle at 18% 30%, rgba(230,233,242,.18), transparent 55%),
              radial-gradient(circle at 82% 70%, rgba(250, 146, 0,.18), transparent 55%);
  filter: blur(45px); opacity:.8; z-index: 0; pointer-events: none;
}
.next-trade-queue.is-elite .ntq-aura { background: radial-gradient(circle at 50% 40%, rgba(250, 146, 0,.35), transparent 60%); }
.next-trade-queue > * { position: relative; z-index: 1; }

.ntq-header {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.ntq-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font: 700 11px/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase;
  color: var(--text-muted);
}
.ntq-pulse {
  width: 9px; height: 9px; border-radius: 50%;
  background: #e6e9f2;
  box-shadow: 0 0 0 0 rgba(230,233,242,.6);
  animation: ntqPulse 1.6s ease-in-out infinite;
}
.next-trade-queue.is-elite .ntq-pulse { background: #fa9200; }
@keyframes ntqPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(230,233,242,.55); }
  50%     { box-shadow: 0 0 0 6px rgba(230,233,242,0); }
}
.ntq-clock {
  font: 700 11px/1 var(--font-mono, monospace);
  letter-spacing: .06em;
  color: var(--text-muted);
  padding: 4px 10px; border-radius: 999px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06);
}

.ntq-primary {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 16px; align-items: center;
}
.ntq-thinking-ring { width: 88px; height: 88px; position: relative; }
.ntq-thinking-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ntq-ring-bg { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 7; }
.ntq-ring-fg {
  fill: none; stroke: url(#ntq-grad); stroke-width: 7; stroke-linecap: round;
  stroke-dasharray: 264; stroke-dashoffset: 264;
  transition: stroke-dashoffset .55s cubic-bezier(.2,.85,.3,1.05), stroke .4s ease;
}
.ntq-thinking-ring[data-state="scanning"] .ntq-ring-fg {
  animation: ntqScan 2.2s linear infinite;
}
.ntq-thinking-ring[data-state="elite"] .ntq-ring-fg { stroke: #fa9200; }
.ntq-thinking-ring[data-state="armed"] .ntq-ring-fg { stroke: #e6e9f2; }
.ntq-thinking-ring[data-state="holding"] .ntq-ring-fg { stroke: #ffd479; }
.ntq-thinking-ring[data-state="paused"] .ntq-ring-fg { stroke: #ff6a8e; }
@keyframes ntqScan {
  0%   { stroke-dashoffset: 264; }
  100% { stroke-dashoffset: -264; }
}
.ntq-ring-label {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.ntq-ring-label strong { font: 800 16px/1 var(--font-display); letter-spacing: .04em; color: #fff; }
.ntq-ring-label small  { font: 700 9px/1 var(--font-display); letter-spacing: .18em; color: var(--text-muted); margin-top: 4px; }
.next-trade-queue.is-elite .ntq-ring-label strong { color: #ffb3b9; }

.ntq-pick { display: grid; gap: 4px; min-width: 0; }
.ntq-pick-eyebrow { font: 700 10px/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.ntq-pick strong { font: 800 18px/1.15 var(--font-display); letter-spacing: .04em; color: #fff; transition: color .25s ease, text-shadow .25s ease; }
.ntq-pick strong.is-elite { color: #ffb3b9; text-shadow: 0 0 18px rgba(250, 146, 0,.45); }
.ntq-pick strong.is-armed { color: #e6e9f2; text-shadow: 0 0 16px rgba(230,233,242,.35); }
.ntq-pick strong.is-holding { color: #ffd479; }
.ntq-pick-meta {
  display: flex; flex-wrap: wrap; gap: 6px;
  font-size: 11.5px; color: var(--text-dim);
}
.ntq-pick-meta .dot { color: var(--text-muted); }

.ntq-shortlist {
  display: grid; gap: 6px;
}
.ntq-empty {
  font-size: 11.5px; color: var(--text-muted); padding: 6px 0;
}
.ntq-rank {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 10px;
  padding: 7px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.05);
  background: rgba(8,8,12,.6);
  align-items: center;
  transition: border-color .25s ease;
}
.ntq-rank[data-tier="elite"]   { border-color: rgba(250, 146, 0,.35); background: linear-gradient(135deg, rgba(20,12,32,.7), rgba(8,4,18,.6)); }
.ntq-rank[data-tier="armed"]   { border-color: rgba(230,233,242,.28); }
.ntq-rank[data-tier="warming"] { border-color: rgba(255,212,121,.18); }
.ntq-rank-name { font: 700 12px/1 var(--font-display); letter-spacing: .04em; color: var(--text); }
.ntq-rank-score { font: 700 12px/1 var(--font-mono, monospace); color: var(--text-dim); }
.ntq-rank[data-tier="elite"] .ntq-rank-score { color: #ffb3b9; }
.ntq-rank[data-tier="armed"] .ntq-rank-score { color: #e6e9f2; }
.ntq-rank-bar {
  grid-column: 1 / -1;
  height: 3px; border-radius: 999px; background: rgba(255,255,255,.05); overflow: hidden;
}
.ntq-rank-bar span {
  display: block; height: 100%;
  background: linear-gradient(90deg, rgba(230,233,242,.6), rgba(250, 146, 0,.6));
  transition: width .45s cubic-bezier(.2,.85,.3,1.05);
}
.ntq-rank[data-tier="elite"]   .ntq-rank-bar span { background: linear-gradient(90deg, #fa9200, #fa9200); }
.ntq-rank[data-tier="warming"] .ntq-rank-bar span { background: linear-gradient(90deg, rgba(255,212,121,.55), rgba(255,170,80,.45)); }

.ntq-footer {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.ntq-chip {
  font: 700 10px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 999px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  color: var(--text-dim);
}
.ntq-chip[data-tone="ok"]   { background: rgba(125,255,196,.10); border-color: rgba(125,255,196,.32); color: #bff6dc; }
.ntq-chip[data-tone="warn"] { background: rgba(255,212,121,.10); border-color: rgba(255,212,121,.38); color: #ffe8b3; }

/* =========================================================================
   ðŸ“Š Smarter Win-Rate panel
   ========================================================================= */
.wl-main #wl-roi {
  display: block; margin-top: 4px;
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text-muted);
}
.wl-main #wl-roi[data-tone="ok"]  { color: var(--ok); }
.wl-main #wl-roi[data-tone="bad"] { color: var(--bad); }

.wl-segmented-bar {
  display: flex;
  height: 6px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.05);
  margin-top: 6px;
}
.wl-segmented-bar .wl-seg-wins {
  background: linear-gradient(90deg, rgba(125,255,196,.85), rgba(60,200,140,.75));
  transition: width .45s cubic-bezier(.2,.85,.3,1.05);
  box-shadow: 0 0 10px rgba(125,255,196,.3);
}
.wl-segmented-bar .wl-seg-losses {
  background: linear-gradient(90deg, rgba(255,150,90,.6), rgba(139, 147, 168,.7));
  transition: width .45s cubic-bezier(.2,.85,.3,1.05);
}

#wl-rate[data-tier="elite"]   { color: var(--ok); text-shadow: 0 0 16px rgba(125,255,196,.45); }
#wl-rate[data-tier="ok"]      { color: #ff7a86; }
#wl-rate[data-tier="drift"]   { color: var(--warn, #ffd36a); }
#wl-rate[data-tier="warming"] { color: var(--text-muted); }

/* =========================================================================
   ⏳ Pending state — win/loss cards while trades are in flight
   ========================================================================= */
.win-loss-card { position: relative; }
.win-loss-card[data-pending="true"] {
  border-color: rgba(230,233,242,.55) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 8px 24px -10px rgba(0,0,0,.6),
    0 0 0 1px rgba(230,233,242,.2) inset,
    0 0 24px rgba(230,233,242,.18);
  animation: wlPendingPulse 2s ease-in-out infinite;
}
@keyframes wlPendingPulse {
  0%, 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 8px 24px -10px rgba(0,0,0,.6), 0 0 0 1px rgba(230,233,242,.18) inset, 0 0 18px rgba(230,233,242,.14); }
  50%      { box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 8px 24px -10px rgba(0,0,0,.6), 0 0 0 1px rgba(230,233,242,.34) inset, 0 0 32px rgba(230,233,242,.3); }
}
.win-loss-card[data-pending="true"] .wl-main strong,
.win-loss-card[data-pending="true"] .wl-rate-card strong {
  opacity: .72;
  transition: opacity .3s ease;
}

/* ===== State-aware glowing edge: green while net-positive, red while net-down.
   Yields to the cyan "pending" pulse above while a trade is still open. ===== */
.win-loss-card { transition: border-color .5s ease; }
.win-loss-card[data-pnl="profit"]:not([data-pending="true"]) {
  border-color: rgba(45,224,138,.6) !important;
  animation: wlEdgeProfit 3s ease-in-out infinite;
}
.win-loss-card[data-pnl="loss"]:not([data-pending="true"]) {
  border-color: rgba(255,107,124,.6) !important;
  animation: wlEdgeLoss 3s ease-in-out infinite;
}
@keyframes wlEdgeProfit {
  0%,100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 1px rgba(45,224,138,.4) inset, 0 0 18px -4px rgba(33,208,122,.4), 0 0 40px -16px rgba(33,208,122,.28); }
  50%     { box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 1px rgba(45,224,138,.6) inset, 0 0 28px -2px rgba(33,208,122,.62), 0 0 64px -14px rgba(33,208,122,.5); }
}
@keyframes wlEdgeLoss {
  0%,100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 1px rgba(255,107,124,.4) inset, 0 0 18px -4px rgba(139, 147, 168,.38), 0 0 40px -16px rgba(139, 147, 168,.26); }
  50%     { box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 1px rgba(255,107,124,.6) inset, 0 0 28px -2px rgba(139, 147, 168,.6), 0 0 64px -14px rgba(139, 147, 168,.46); }
}
@media (prefers-reduced-motion: reduce) {
  .win-loss-card[data-pnl="profit"]:not([data-pending="true"]),
  .win-loss-card[data-pnl="loss"]:not([data-pending="true"]) { animation: none; }
}
.wl-pending-pill {
  grid-column: 1 / -1;
  display: inline-flex; align-self: flex-start; align-items: center; gap: 8px;
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid rgba(230,233,242,.45);
  background: linear-gradient(135deg, rgba(8,18,28,.85), rgba(14,12,22,.85));
  color: #e6e9f2;
  font: 700 10.5px/1 var(--font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
  animation: wlPendingPillEnter .35s cubic-bezier(.2,.85,.3,1.05);
  box-shadow: 0 0 14px rgba(230,233,242,.22);
}
.wl-pending-pill[hidden] { display: none; }
@keyframes wlPendingPillEnter {
  from { opacity: 0; transform: translateY(-4px) scale(.94); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.wl-pending-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #e6e9f2;
  box-shadow: 0 0 0 0 rgba(230,233,242,.7);
  animation: wlPendingDot 1.1s ease-in-out infinite;
}
@keyframes wlPendingDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(230,233,242,.7); transform: scale(1); }
  50%      { box-shadow: 0 0 0 6px rgba(230,233,242,0); transform: scale(1.15); }
}


/* =========================================================================
   â³ Pending intel block â€” live trade route + analyzer + predicted outcome
   ========================================================================= */
.wl-pending-intel {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 9px 10px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(8,18,28,.85), rgba(14,12,22,.82));
  border: 1px solid rgba(230,233,242,.28);
  animation: wlIntelEnter .45s cubic-bezier(.2,.85,.3,1.05);
  box-shadow: inset 0 0 0 1px rgba(230,233,242,.08);
}
.wl-pending-intel[hidden] { display: none; }
@keyframes wlIntelEnter {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.wl-pending-intel-row {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.wl-pending-intel-row small {
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.wl-pending-intel-row strong {
  font: 700 12px/1.2 var(--font-display);
  letter-spacing: .03em;
  color: #e6e9f2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 620px) {
  .wl-pending-intel { grid-template-columns: 1fr; }
}

/* Live stat chips (AI conf · stake · to-win) shown while a trade is loading */
.wl-pending-stats {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
}
.wl-pending-stats[hidden] { display: none; }
.wl-pchip {
  display: grid; gap: 1px; min-width: 0;
  padding: 6px 8px; border-radius: 9px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.08);
}
.wl-pchip small { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.wl-pchip strong { font: 800 13px/1.1 var(--font-display); color: #f2f4f9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wl-pchip[data-tier="hot"]  { border-color: rgba(125,255,196,0.4); background: rgba(33,208,122,0.1); }
.wl-pchip[data-tier="hot"] strong  { color: #7dffc4; }
.wl-pchip[data-tier="warm"] { border-color: rgba(230,233,242,0.4); background: rgba(230,233,242,0.08); }
.wl-pchip[data-tier="warm"] strong { color: #e6e9f2; }
.wl-pchip[data-tier="cool"] { opacity: .9; }

/* Indeterminate loading bar — shimmers while awaiting resolution */
.wl-pending-progress {
  grid-column: 1 / -1; height: 4px; margin-top: 2px;
  border-radius: 999px; overflow: hidden;
  background: rgba(255,255,255,0.06);
}
.wl-pending-progress[hidden] { display: none; }
.wl-pending-progress-fill {
  display: block; height: 100%; width: 40%; border-radius: 999px;
  background: linear-gradient(90deg, transparent, #e6e9f2, #fa9200, transparent);
  animation: wlPendingSlide 1.25s ease-in-out infinite;
}
@keyframes wlPendingSlide {
  0%   { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

/* Animated trailing dots inside the pending pill */
.wl-pending-dots {
  display: inline-flex; gap: 3px; margin-left: 4px;
}
.wl-pending-dots i {
  width: 4px; height: 4px; border-radius: 50%;
  background: #e6e9f2;
  opacity: .35;
  animation: wlDotPulse 1.05s ease-in-out infinite;
}
.wl-pending-dots i:nth-child(2) { animation-delay: .18s; }
.wl-pending-dots i:nth-child(3) { animation-delay: .36s; }
@keyframes wlDotPulse {
  0%, 100% { opacity: .25; transform: translateY(0); }
  50%      { opacity: 1; transform: translateY(-2px); }
}


/* =========================================================================
   ðŸŽ¨ Per-analyzer signature glass theme + execution button
   ========================================================================= */

/* Each analyzer gets its own accent variable. The signature panel + the
   card border pull from --sig-c so the unique identity stays consistent. */
.analyzer-themed { --sig-c: #e6e9f2; }
.analyzer-theme-rise_fall   { --sig-c:#e6e9f2; }
.analyzer-theme-over_under  { --sig-c:#fa9200; }
.analyzer-theme-streak      { --sig-c:#7dffc4; }
.analyzer-theme-matches     { --sig-c:#8b93a8; }
.analyzer-theme-asians      { --sig-c:#ffc85a; }
.analyzer-theme-accumulator { --sig-c:#9cff7d; }
.analyzer-theme-vanilla     { --sig-c:#ffe27a; }
.analyzer-theme-even_odd    { --sig-c:#63f6b7; }

/* Each card gets a faint, theme-tinted top-right glow that makes the
   8 analyzers visually distinct without breaking the dark base style. */
.analyzer-themed::after {
  content: "";
  position: absolute;
  inset: -25%;
  pointer-events: none;
  background: radial-gradient(circle at 78% 18%, color-mix(in srgb, var(--sig-c) 22%, transparent), transparent 55%);
  filter: blur(38px);
  opacity: .55;
  z-index: 0;
  border-radius: inherit;
}
.analyzer-themed > * { position: relative; z-index: 1; }

/* The signature execution panel â€” meter on the left, big themed button
   in the middle, tagline below. */
.analyzer-signature {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 14px;
  padding: 12px 14px;
  margin-top: 10px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--sig-c) 6%, rgba(8,8,12,.92)),
    rgba(6,6,10,.78));
  border: 1px solid color-mix(in srgb, var(--sig-c) 30%, rgba(255,255,255,.04));
  position: relative;
  overflow: hidden;
}
/* Optional style-specific overlays â€” subtle pattern per analyzer */
.analyzer-theme-rise_fall   .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--sig-c) 10%, transparent), transparent 70%); opacity:.4; }
.analyzer-theme-over_under  .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: repeating-linear-gradient(45deg, color-mix(in srgb, var(--sig-c) 7%, transparent) 0 2px, transparent 2px 12px); opacity:.5; }
.analyzer-theme-streak      .analyzer-signature::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent, var(--sig-c), transparent); opacity:.8; }
.analyzer-theme-matches     .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: linear-gradient(135deg, color-mix(in srgb, var(--sig-c) 12%, transparent), transparent 60%); }
.analyzer-theme-asians      .analyzer-signature::before { content:""; position:absolute; inset:-50%; pointer-events:none; background: radial-gradient(circle at 30% 100%, color-mix(in srgb, var(--sig-c) 30%, transparent), transparent 55%); filter:blur(25px); opacity:.7; }
.analyzer-theme-accumulator .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: linear-gradient(115deg, transparent, color-mix(in srgb, var(--sig-c) 10%, transparent) 40%, transparent 60%); }
.analyzer-theme-vanilla     .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: radial-gradient(ellipse at top, color-mix(in srgb, var(--sig-c) 18%, transparent), transparent 70%); }
.analyzer-theme-even_odd    .analyzer-signature::before { content:""; position:absolute; inset:0; pointer-events:none; background: linear-gradient(90deg, color-mix(in srgb, var(--sig-c) 6%, transparent), transparent 50%, color-mix(in srgb, var(--sig-c) 6%, transparent)); }
.analyzer-signature > * { position: relative; z-index: 1; }

.sig-meter {
  align-self: center;
  display: grid;
  gap: 4px;
  min-width: 0;
}
.sig-meter-bar {
  height: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  overflow: hidden;
}
.sig-meter-bar span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--sig-c), color-mix(in srgb, var(--sig-c) 40%, #ffffff));
  transition: width .45s cubic-bezier(.2,.85,.3,1.05);
  box-shadow: 0 0 12px color-mix(in srgb, var(--sig-c) 50%, transparent);
}
.sig-meter small {
  font: 600 10.5px/1 var(--font-display);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--sig-c) 70%, #d6d6e6);
}

.btn-signature {
  align-self: center;
  justify-self: stretch;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid color-mix(in srgb, var(--sig-c) 50%, rgba(255,255,255,.08));
  border-radius: 999px;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--sig-c) 22%, rgba(14,14,22,.85)),
    color-mix(in srgb, var(--sig-c) 8%, rgba(8,8,12,.85)));
  color: #fff;
  font: 800 12px/1 var(--font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .25s ease, background .25s ease;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--sig-c) 22%, transparent) inset, 0 8px 22px -8px color-mix(in srgb, var(--sig-c) 45%, transparent);
  white-space: nowrap;
}
.btn-signature:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--sig-c) 35%, rgba(20,20,30,.85)),
    color-mix(in srgb, var(--sig-c) 14%, rgba(10,10,14,.85)));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--sig-c) 45%, transparent) inset, 0 14px 30px -10px color-mix(in srgb, var(--sig-c) 65%, transparent);
}
.btn-signature.is-firing {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--sig-c) 55%, rgba(20,20,30,.85)),
    color-mix(in srgb, var(--sig-c) 25%, rgba(10,10,14,.85)));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--sig-c) 70%, transparent) inset, 0 0 28px color-mix(in srgb, var(--sig-c) 55%, transparent);
  animation: sigFiring 1.4s ease-in-out infinite;
}
@keyframes sigFiring {
  0%, 100% { box-shadow: 0 0 0 1px color-mix(in srgb, var(--sig-c) 70%, transparent) inset, 0 0 18px color-mix(in srgb, var(--sig-c) 45%, transparent); }
  50%      { box-shadow: 0 0 0 1px color-mix(in srgb, var(--sig-c) 90%, transparent) inset, 0 0 32px color-mix(in srgb, var(--sig-c) 75%, transparent); }
}

.btn-signature .sig-icon { font-size: 16px; line-height: 1; }
.btn-signature .sig-label { letter-spacing: .14em; }

.sig-tagline {
  grid-column: 1 / -1;
  font-size: 11px;
  line-height: 1.4;
  color: var(--text-dim);
  letter-spacing: .02em;
}

/* =========================================================================
   ⚡ GODMIND PREMIUM ANALYZER CARDS v2 — futuristic HUD, unique per analyzer
   Additive layer: richer dual-tone palettes, a premium glass frame, an
   animated per-analyzer "energy field", a HUD header rail + scan divider,
   and a live signal readout. Each of the 8 cards gets its own identity.
   ========================================================================= */

/* Dual-tone signature palettes — primary (--sig-c) + complementary (--sig-c2).
   These override the earlier single-tone values for deeper, premium gradients. */
.analyzer-themed            { --sig-c2: var(--sig-c); }
.analyzer-theme-rise_fall   { --sig-c:#cfe0ff; --sig-c2:#6f9bff; }  /* platinum → azure  */
.analyzer-theme-over_under  { --sig-c:#fa9200; --sig-c2:#ff7a3c; }  /* zeus red → ember  */
.analyzer-theme-streak      { --sig-c:#7dffc4; --sig-c2:#33e1ff; }  /* mint → cyan       */
.analyzer-theme-matches     { --sig-c:#8b93a8; --sig-c2:#8b93a8; }  /* coral → magenta   */
.analyzer-theme-even_odd    { --sig-c:#63f6b7; --sig-c2:#5a8fd6; }  /* teal → violet     */
.analyzer-theme-asians      { --sig-c:#ffc85a; --sig-c2:#ff7a3c; }  /* amber → sunfire   */
.analyzer-theme-accumulator { --sig-c:#9cff7d; --sig-c2:#33e1ff; }  /* lime → aqua       */
.analyzer-theme-vanilla     { --sig-c:#ffe27a; --sig-c2:#ffae54; }  /* gold → honey      */

/* ---- Premium glass frame: themed border, layered depth, hover lift ---- */
.analyzer-themed {
  border: 1px solid color-mix(in srgb, var(--sig-c) 24%, rgba(255,255,255,0.05)) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.05) inset,
    0 0 0 1px rgba(0,0,0,0.45),
    0 22px 54px -30px color-mix(in srgb, var(--sig-c) 55%, #000),
    0 10px 28px -20px rgba(0,0,0,0.85);
  transition:
    transform .4s cubic-bezier(.2,.85,.3,1.05),
    box-shadow .4s ease,
    border-color .4s ease;
  will-change: transform;
}
.analyzer-themed:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--sig-c) 48%, rgba(255,255,255,0.08)) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.08) inset,
    0 0 0 1px color-mix(in srgb, var(--sig-c) 32%, transparent),
    0 30px 64px -28px color-mix(in srgb, var(--sig-c) 70%, #000),
    0 0 42px -10px color-mix(in srgb, var(--sig-c) 34%, transparent);
}

/* ---- Animated per-analyzer "energy field" (re-uses the themed ::after aura).
   Each analyzer gets a distinct field geometry so the 8 cards read uniquely.
   Only background + animation are overridden; inset/blur/opacity persist. ---- */
.analyzer-themed::after {
  animation: gmFieldDrift 16s ease-in-out infinite alternate;
}
.analyzer-theme-rise_fall::after {   /* twin vertical resonance beams */
  background:
    radial-gradient(26% 70% at 22% 50%, color-mix(in srgb, var(--sig-c) 20%, transparent), transparent 70%),
    radial-gradient(26% 70% at 80% 42%, color-mix(in srgb, var(--sig-c2) 18%, transparent), transparent 70%);
}
.analyzer-theme-over_under::after {  /* diagonal data cascade from top-right */
  background:
    radial-gradient(60% 50% at 86% 8%, color-mix(in srgb, var(--sig-c) 28%, transparent), transparent 60%),
    radial-gradient(48% 42% at 110% 60%, color-mix(in srgb, var(--sig-c2) 18%, transparent), transparent 65%);
}
.analyzer-theme-streak::after {      /* upward momentum sweep */
  background:
    radial-gradient(70% 60% at 50% 116%, color-mix(in srgb, var(--sig-c) 26%, transparent), transparent 62%),
    radial-gradient(40% 36% at 84% 14%, color-mix(in srgb, var(--sig-c2) 16%, transparent), transparent 66%);
}
.analyzer-theme-matches::after {     /* centered target halo */
  background:
    radial-gradient(42% 42% at 50% 38%, color-mix(in srgb, var(--sig-c) 24%, transparent), transparent 58%),
    radial-gradient(70% 70% at 50% 38%, color-mix(in srgb, var(--sig-c2) 10%, transparent), transparent 72%);
}
.analyzer-theme-even_odd::after {    /* split parity fields */
  background:
    radial-gradient(40% 60% at 8% 50%, color-mix(in srgb, var(--sig-c) 20%, transparent), transparent 66%),
    radial-gradient(40% 60% at 92% 50%, color-mix(in srgb, var(--sig-c2) 20%, transparent), transparent 66%);
}
.analyzer-theme-asians::after {      /* dawn bloom, lower-left */
  background:
    radial-gradient(70% 64% at 16% 104%, color-mix(in srgb, var(--sig-c) 30%, transparent), transparent 60%),
    radial-gradient(40% 36% at 88% 10%, color-mix(in srgb, var(--sig-c2) 14%, transparent), transparent 66%);
}
.analyzer-theme-accumulator::after { /* stacked rising glow */
  background:
    radial-gradient(80% 40% at 50% 120%, color-mix(in srgb, var(--sig-c) 26%, transparent), transparent 58%),
    radial-gradient(80% 26% at 50% 92%, color-mix(in srgb, var(--sig-c2) 16%, transparent), transparent 64%);
}
.analyzer-theme-vanilla::after {     /* warm crown bloom, top */
  background:
    radial-gradient(72% 52% at 50% -6%, color-mix(in srgb, var(--sig-c) 26%, transparent), transparent 62%),
    radial-gradient(40% 34% at 14% 96%, color-mix(in srgb, var(--sig-c2) 14%, transparent), transparent 66%);
}
/* PERF: opacity-only (was transform+scale on a blur(38px) layer × 8 cards,
   which re-rasterised the blur every frame → lag + shimmer). Opacity on the
   static blurred layer is GPU-composited and effectively free. */
@keyframes gmFieldDrift {
  0%   { opacity: .42; }
  100% { opacity: .6; }
}

/* ---- HUD header: left energy rail, glowing title, readout sub, scan divider ---- */
.analyzer-themed > header {
  position: relative;
  padding: 1px 2px 11px 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--sig-c) 16%, rgba(255,255,255,0.05));
}
.analyzer-themed > header::before {        /* vertical energy rail */
  content: "";
  position: absolute; left: 0; top: 3px; bottom: 13px; width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--sig-c), var(--sig-c2));
  box-shadow: 0 0 11px color-mix(in srgb, var(--sig-c) 65%, transparent);
}
.analyzer-themed > header::after {         /* animated scan along the divider */
  content: "";
  position: absolute; left: 14px; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--sig-c), transparent);
  background-size: 42% 100%; background-repeat: no-repeat;
  animation: gmHudScan 4.2s linear infinite;
  opacity: .85;
}
@keyframes gmHudScan {
  0%   { background-position: -50% 0; }
  100% { background-position: 150% 0; }
}
.analyzer-themed > header h3 {
  text-shadow: 0 0 20px color-mix(in srgb, var(--sig-c) 38%, transparent);
}
.analyzer-themed > header .sub {
  color: color-mix(in srgb, var(--sig-c) 26%, var(--text-muted));
  letter-spacing: .035em;
}

/* ---- Live signal line → futuristic HUD readout with a pulsing status node ---- */
.analyzer-themed > .signal {
  position: relative;
  margin: 2px 0 0;
  padding: 9px 12px 9px 26px;
  border-radius: 11px;
  font-size: 11.5px;
  line-height: 1.45;
  letter-spacing: .015em;
  color: color-mix(in srgb, var(--sig-c) 18%, #d9dce8);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--sig-c) 7%, rgba(8,9,14,0.6)),
      rgba(6,7,11,0.42));
  border: 1px solid color-mix(in srgb, var(--sig-c) 18%, rgba(255,255,255,0.04));
}
.analyzer-themed > .signal::before {       /* pulsing status node */
  content: "";
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--sig-c);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--sig-c) 60%, transparent);
  animation: gmSignalPulse 2.1s ease-out infinite;
}
@keyframes gmSignalPulse {
  0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--sig-c) 55%, transparent); }
  70%  { box-shadow: 0 0 0 7px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}

/* ---- Signature panel: a touch more depth + a quiet corner HUD tick ---- */
.analyzer-themed .analyzer-signature {
  box-shadow:
    0 1px 0 rgba(255,255,255,0.04) inset,
    0 10px 26px -20px color-mix(in srgb, var(--sig-c) 55%, #000);
}

/* ---- Respect reduced-motion: keep the look, drop the animation ---- */
@media (prefers-reduced-motion: reduce) {
  .analyzer-themed::after,
  .analyzer-themed > header::after,
  .analyzer-themed > .signal::before { animation: none !important; }
  .analyzer-themed { transition: none !important; }
}

/* Mobile: stack meter above the button */
@media (max-width: 540px) {
  .analyzer-signature {
    grid-template-columns: 1fr;
  }
  .btn-signature {
    justify-content: center;
  }
}

/* =========================================================================
   ★ AETHER CORE — unified AI Command Deck (the brain of brains)
   ========================================================================= */
.aether-core {
  position: relative;
  display: grid;
  grid-template-columns: 248px 1fr;
  gap: 26px;
  align-items: center;
  margin: 18px 0 6px;
  padding: 22px 26px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(180,180,200,.16);
  background:
    radial-gradient(140% 120% at 12% 0%, rgba(230,233,242,.07), transparent 55%),
    linear-gradient(180deg, rgba(16,18,28,.86), rgba(10,11,18,.92));
  box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.05);
  transition: border-color .6s ease, box-shadow .6s ease;
}
.ac-core-aura {
  position: absolute; inset: -40% -10% auto -10%; height: 320px; z-index: 0;
  background: radial-gradient(60% 80% at 20% 0%, rgba(255,128,146,.18), transparent 70%);
  filter: blur(8px); opacity: .8; pointer-events: none;
  transition: background .6s ease;
}
.ac-core-grid {
  display: none; /* grid removed */
  position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .35;
  -webkit-mask-image: radial-gradient(80% 80% at 50% 30%, #000, transparent 80%);
          mask-image: radial-gradient(80% 80% at 50% 30%, #000, transparent 80%);
}
.aether-core > .ac-core-reactor,
.aether-core > .ac-core-decision { position: relative; z-index: 1; }

/* tier theming */
.aether-core[data-conviction="building"] { border-color: rgba(230,233,242,.4); box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), 0 0 50px -28px rgba(230,233,242,.5), inset 0 1px 0 rgba(255,255,255,.05); }
.aether-core[data-conviction="building"] .ac-core-aura { background: radial-gradient(60% 80% at 20% 0%, rgba(230,233,242,.22), transparent 70%); }
.aether-core[data-conviction="primed"]   { border-color: rgba(255,211,106,.46); box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), 0 0 60px -26px rgba(255,211,106,.55), inset 0 1px 0 rgba(255,255,255,.05); }
.aether-core[data-conviction="primed"] .ac-core-aura { background: radial-gradient(60% 80% at 20% 0%, rgba(255,211,106,.24), transparent 70%); }
.aether-core[data-conviction="fire"]     { border-color: rgba(125,255,196,.6); box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), 0 0 70px -22px rgba(33,208,122,.6), inset 0 1px 0 rgba(255,255,255,.06); animation: acDeckBreathe 3.2s ease-in-out infinite; }
.aether-core[data-conviction="fire"] .ac-core-aura { background: radial-gradient(60% 90% at 20% 0%, rgba(33,208,122,.3), transparent 70%); }
@keyframes acDeckBreathe {
  0%,100% { box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), 0 0 62px -24px rgba(33,208,122,.5), inset 0 1px 0 rgba(255,255,255,.06); }
  50%     { box-shadow: 0 30px 80px -40px rgba(0,0,0,.9), 0 0 96px -18px rgba(33,208,122,.78), inset 0 1px 0 rgba(255,255,255,.06); }
}

/* ---- reactor ---- */
.ac-core-reactor { position: relative; width: 248px; height: 248px; margin: -8px auto; display: grid; place-items: center; }
.ac-reactor-svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ac-reactor-track { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 12; }
.ac-reactor-fill  { fill: none; stroke-width: 12; stroke-linecap: round; stroke: var(--ac-stroke, #8b93a8);
  filter: drop-shadow(0 0 8px var(--ac-glow, rgba(255,128,146,.5))); transition: stroke-dasharray .7s cubic-bezier(.3,.9,.3,1), stroke .6s ease; }
.ac-reactor-inner { fill: rgba(8,10,16,.7); stroke: rgba(255,255,255,.05); stroke-width: 1; }
.aether-core[data-conviction="building"] .ac-reactor-fill { --ac-stroke: #e6e9f2; --ac-glow: rgba(230,233,242,.6); }
.aether-core[data-conviction="primed"]   .ac-reactor-fill { --ac-stroke: #ffd36a; --ac-glow: rgba(255,211,106,.6); }
.aether-core[data-conviction="fire"]     .ac-reactor-fill { --ac-stroke: #7dffc4; --ac-glow: rgba(33,208,122,.7); }
.ac-reactor-spark {
  position: absolute; width: 196px; height: 196px; border-radius: 50%; z-index: -1;
  background: conic-gradient(from 0deg, transparent 0 65%, rgba(125,255,196,.0) 78%, rgba(125,255,196,.35) 88%, transparent 100%);
  -webkit-mask: radial-gradient(circle, transparent 60%, #000 62%);
          mask: radial-gradient(circle, transparent 60%, #000 62%);
  opacity: 0; animation: acSpark 6s linear infinite; transition: opacity .5s ease;
}
.aether-core[data-conviction="primed"] .ac-reactor-spark,
.aether-core[data-conviction="fire"]   .ac-reactor-spark { opacity: .9; }
@keyframes acSpark { to { transform: rotate(360deg); } }
.ac-reactor-core { position: relative; display: grid; place-items: center; text-align: center; line-height: 1; }
.ac-reactor-label { font: 700 9.5px/1 var(--font-display, system-ui); letter-spacing: .22em; color: var(--text-dim, #9a979e); text-transform: uppercase; }
.ac-reactor-num { font: 800 58px/1 var(--font-display, system-ui); margin: 6px 0 4px; color: #fff;
  background: linear-gradient(180deg,#fff,#e6e9f2); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  text-shadow: 0 0 30px var(--ac-glow, rgba(255,128,146,.4)); }
.ac-reactor-tier { font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .16em; padding: 4px 12px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14); color: #e6e9f2; background: rgba(255,255,255,.04); }
.aether-core[data-conviction="fire"] .ac-reactor-tier { color: #04140d; background: linear-gradient(135deg,#7dffc4,#21d07a); border-color: transparent; }
.aether-core[data-conviction="primed"] .ac-reactor-tier { color: #1a1300; background: linear-gradient(135deg,#ffd36a,#ffb02e); border-color: transparent; }

/* ---- decision side ---- */
.ac-core-decision { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ac-verdict-tag {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 6px;
  font: 800 10.5px/1 var(--font-display, system-ui); letter-spacing: .16em; text-transform: uppercase;
  padding: 6px 13px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); color: #b4b4be; background: rgba(255,255,255,.04);
}
.ac-verdict-tag[data-tier="building"] { color: #e6e9f2; border-color: rgba(230,233,242,.45); background: rgba(230,233,242,.08); }
.ac-verdict-tag[data-tier="primed"]   { color: #1a1300; border-color: transparent; background: linear-gradient(135deg,#ffd36a,#ffb02e); }
.ac-verdict-tag[data-tier="fire"]     { color: #04140d; border-color: transparent; background: linear-gradient(135deg,#7dffc4,#21d07a); box-shadow: 0 0 18px -4px rgba(33,208,122,.6); }
.ac-verdict-line { margin: 8px 0 2px; font: 800 23px/1.15 var(--font-display, system-ui); color: #fff; letter-spacing: -.01em; }
.ac-verdict-sub  { color: var(--text-dim, #9a979e); font-size: 12.5px; line-height: 1.45; }

.ac-core-rationale { display: flex; flex-direction: column; gap: 6px; }
.ac-factor {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px;
  padding: 7px 12px; border-radius: 11px; border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  font-size: 12.5px;
}
.ac-factor-dot { width: 9px; height: 9px; border-radius: 50%; background: #9a979e; box-shadow: 0 0 0 3px rgba(255,255,255,.04); }
.ac-factor[data-k="good"] .ac-factor-dot { background: #7dffc4; box-shadow: 0 0 8px rgba(33,208,122,.7); }
.ac-factor[data-k="bad"]  .ac-factor-dot { background: #8b93a8; box-shadow: 0 0 8px rgba(255,128,146,.6); }
.ac-factor[data-k="mid"]  .ac-factor-dot { background: #e6e9f2; box-shadow: 0 0 8px rgba(230,233,242,.55); }
.ac-factor-label { color: #dce0e6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-factor-w { font: 800 12px/1 var(--font-display, system-ui); color: #b4b4be; letter-spacing: .04em; }
.ac-factor[data-k="good"] .ac-factor-w { color: #7dffc4; }
.ac-factor[data-k="bad"]  .ac-factor-w { color: #8b93a8; }

.ac-core-vitals { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 2px; }
.ac-vital {
  display: flex; flex-direction: column; gap: 3px; padding: 9px 10px; border-radius: 12px;
  border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025);
}
.ac-vital small { font-size: 9.5px; letter-spacing: .04em; color: var(--text-dim, #9a979e); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-vital strong { font: 800 14px/1.05 var(--font-display, system-ui); color: #eef0f3; }

/* ── AETHER EXECUTE — advanced one-tap execution bar ───────────────────── */
.ac-exec {
  margin-top: 14px; padding-top: 13px;
  border-top: 1px solid rgba(250, 146, 0,.16);
}
.ac-exec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 9px; flex-wrap: wrap; }
.ac-exec-label {
  font: 800 10.5px/1 var(--font-display, system-ui); letter-spacing: .16em;
  color: #ff8a92; text-shadow: 0 0 14px rgba(250, 146, 0,.5);
}
.ac-exec-hint { font-size: 9.5px; letter-spacing: .02em; color: var(--text-dim, #9a979e); }
.ac-exec-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.ac-exec-btn {
  cursor: pointer; appearance: none; font: 800 12px/1 var(--font-display, system-ui);
  padding: 10px 14px; border-radius: 12px; color: #eceef2;
  background: linear-gradient(135deg, rgba(26,19,48,.92), rgba(11,8,22,.94));
  border: 1px solid rgba(250, 146, 0,.4);
  transition: transform .15s ease, box-shadow .25s ease, border-color .2s ease, background .2s ease;
}
.ac-exec-btn:hover {
  transform: translateY(-2px);
  border-color: rgba(250, 146, 0,.75);
  box-shadow: 0 12px 26px -13px rgba(250, 146, 0,.9), 0 0 0 1px rgba(250, 146, 0,.25);
}
.ac-exec-btn:active { transform: translateY(0) scale(.97); }
.ac-exec-btn:focus-visible { outline: 2px solid rgba(250, 146, 0,.7); outline-offset: 2px; }
.ac-exec-go {
  background: linear-gradient(135deg, rgba(33,208,122,.3), rgba(16,96,72,.34));
  border-color: rgba(33,208,122,.55); color: #d9ffe9;
}
.ac-exec-go:hover { border-color: rgba(33,208,122,.85); box-shadow: 0 13px 28px -13px rgba(33,208,122,.9), 0 0 0 1px rgba(33,208,122,.3); }
.ac-exec-shield {
  background: linear-gradient(135deg, rgba(230,233,242,.18), rgba(20,90,110,.3));
  border-color: rgba(230,233,242,.5); color: #e6e9f2;
}
.ac-exec-shield:hover { border-color: rgba(230,233,242,.8); box-shadow: 0 13px 28px -13px rgba(230,233,242,.85); }
.ac-exec-burst {
  background: linear-gradient(135deg, rgba(255,140,42,.26), rgba(150,52,12,.32));
  border-color: rgba(255,140,42,.5); color: #ffe6d2;
}
.ac-exec-burst:hover { border-color: rgba(255,140,42,.85); box-shadow: 0 13px 28px -13px rgba(255,140,42,.85); }
@media (max-width: 480px) { .ac-exec-btn { flex: 1 1 calc(50% - 4px); text-align: center; } }

/* ── ⏱ TIME-BOXED BURST — fire every N seconds for X minutes ───────────── */
.ac-tbx {
  margin-top: 12px; padding: 11px 12px; border-radius: 13px;
  border: 1px solid rgba(250, 146, 0,.22);
  background: linear-gradient(135deg, rgba(20,15,40,.6), rgba(9,7,18,.55));
}
.ac-tbx-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.ac-tbx-title { font: 800 10.5px/1 var(--font-display, system-ui); letter-spacing: .14em; color: #ff8a92; text-shadow: 0 0 12px rgba(250, 146, 0,.45); }
.ac-tbx-field { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--text-dim, #9a979e); font-weight: 700; }
.ac-tbx-sel {
  appearance: none; cursor: pointer; font: 800 12px/1 var(--font-display, system-ui);
  color: #eef0f3; background: rgba(8,6,16,.9); border: 1px solid rgba(250, 146, 0,.4);
  border-radius: 9px; padding: 7px 26px 7px 10px;
  background-image: linear-gradient(45deg, transparent 50%, #fa9200 50%), linear-gradient(135deg, #fa9200 50%, transparent 50%);
  background-position: calc(100% - 14px) center, calc(100% - 9px) center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ac-tbx-sel:hover { border-color: rgba(250, 146, 0,.7); }
.ac-tbx-sel:focus-visible { outline: 2px solid rgba(250, 146, 0,.7); outline-offset: 2px; }
.ac-tbx-go {
  cursor: pointer; appearance: none; font: 800 12px/1 var(--font-display, system-ui);
  padding: 9px 16px; border-radius: 10px; color: #d9ffe9; margin-left: auto;
  background: linear-gradient(135deg, rgba(33,208,122,.3), rgba(16,96,72,.34));
  border: 1px solid rgba(33,208,122,.55);
  transition: transform .15s ease, box-shadow .25s ease, border-color .2s ease, background .25s ease, color .2s ease;
}
.ac-tbx-go:hover { transform: translateY(-2px); border-color: rgba(33,208,122,.85); box-shadow: 0 12px 26px -13px rgba(33,208,122,.9); }
.ac-tbx-go:active { transform: translateY(0) scale(.97); }
.ac-tbx-go[data-running="true"] {
  color: #f6f0e6; background: linear-gradient(135deg, rgba(139, 147, 168,.32), rgba(120, 70, 12,.36));
  border-color: rgba(139, 147, 168,.6); animation: acTbxRun 1.5s ease-in-out infinite;
}
.ac-tbx-go[data-running="true"]:hover { box-shadow: 0 12px 26px -13px rgba(139, 147, 168,.9); }
@keyframes acTbxRun { 0%,100% { box-shadow: 0 0 0 0 rgba(139, 147, 168,.5); } 50% { box-shadow: 0 0 16px 2px rgba(139, 147, 168,.55); } }
.ac-tbx-status {
  margin-top: 9px; font: 800 12px/1.3 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .02em; color: var(--text-dim, #9a979e);
}
.ac-tbx-status[data-state="live"] { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,.45); }
.ac-tbx-status[data-state="done"] { color: #dcdee6; }
@media (max-width: 480px) { .ac-tbx-go { margin-left: 0; flex: 1 1 100%; text-align: center; } }

/* ── 🏦 Stake bankroll input (shown only for risk-% sizing) ── */
.qs-bankroll-input { margin-top: 7px; width: 100%; box-sizing: border-box; }

/* ════════════════════════════════════════════════════════════════════════
   🖥 TERMINAL REALISM — every figure in the Auto Trading cards reads like a pro
   trading terminal: TABULAR (fixed-width) numerals so columns of prices, %,
   P&L, stakes and scores align perfectly and never jitter as they tick. Safe,
   layout-neutral, and instantly more "real". Live price/score readouts also get
   a precise mono treatment.
   ════════════════════════════════════════════════════════════════════════ */
#view-auto, #journal-section {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "ss01" 1;
}
#view-auto .sat-kpi strong, #view-auto .ac-vital strong, #view-auto .ac-scan-rows,
#view-auto .np-stat strong, #view-auto .np-dig-pct, #view-auto .sf-score b,
#view-auto .ml-stat strong, #view-auto .ac-gate-conf, #view-auto .shv-val,
#view-auto .aicp-stat strong, #journal-section .journal-list strong {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  letter-spacing: -0.015em;
}
/* crisp depth on the data tiles — a hairline top highlight reads like glass on a
   real terminal panel without adding compositor cost */
#view-auto .sat-kpi, #view-auto .ac-vital, #view-auto .np-stat,
#view-auto .sf-tf, #view-auto .ml-stat {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

/* ── ⚙ STRATEGY ENGINE — Set & Forget mode · trade speed · risk-follow ──── */
.ac-strat {
  margin-top: 12px; padding: 12px 13px; border-radius: 13px;
  border: 1px solid rgba(230,233,242,.2);
  background: linear-gradient(135deg, rgba(13,28,40,.6), rgba(9,7,18,.55));
  display: flex; flex-direction: column; gap: 10px;
}
.ac-strat-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ac-strat-title { font: 800 10.5px/1 var(--font-display, system-ui); letter-spacing: .16em; color: #d2d6e2; text-shadow: 0 0 12px rgba(230,233,242,.4); }
.ac-strat-sf {
  cursor: pointer; appearance: none; font: 800 11.5px/1 var(--font-display, system-ui);
  padding: 8px 13px; border-radius: 999px; color: var(--text-dim, #9a979e);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.14);
  transition: color .2s, background .2s, border-color .2s, box-shadow .25s;
}
.ac-strat-sf[data-on="true"] { color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border-color: transparent; box-shadow: 0 0 18px -3px rgba(33,208,122,.75); }
.ac-strat-sf:hover { border-color: rgba(125,255,196,.6); }
.ac-strat-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ac-strat-lbl { font: 700 11px/1 var(--font-display, system-ui); color: var(--text-dim, #9a979e); }
.ac-speed { display: inline-flex; gap: 4px; padding: 3px; border-radius: 11px; background: rgba(0,0,0,.3); border: 1px solid rgba(255,255,255,.08); margin-left: auto; }
.ac-speed button {
  cursor: pointer; appearance: none; font: 800 11.5px/1 var(--font-display, system-ui);
  padding: 7px 12px; border-radius: 8px; color: var(--text-dim, #9a979e); background: transparent; border: 0;
  transition: color .2s, background .2s, box-shadow .25s;
}
.ac-speed button:hover { color: #eceef2; }
.ac-speed button.is-active { color: #04121f; background: linear-gradient(135deg, #e6e9f2, #fa9200); box-shadow: 0 0 14px -3px rgba(230,233,242,.7); }
.ac-strat-risk {
  font: 700 11.5px/1.4 var(--font-mono, ui-monospace, monospace); color: #c6f0d8;
  padding: 9px 11px; border-radius: 10px; background: rgba(33,208,122,.08); border: 1px solid rgba(33,208,122,.2);
}
@media (max-width: 480px) { .ac-speed { margin-left: 0; flex: 1 1 100%; justify-content: space-between; } .ac-speed button { flex: 1; text-align: center; } }

/* ── ⏱ AUTO SCHEDULER module ─────────────────────────────────────────────── */
.sch-wrap { display: flex; flex-direction: column; gap: 14px; }
.sch-status {
  display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025);
}
.sch-status-dot { width: 10px; height: 10px; border-radius: 50%; background: #6b7390; flex: none; }
.sch-status[data-running="true"] { border-color: rgba(33,208,122,.45); background: rgba(33,208,122,.08); }
.sch-status[data-running="true"] .sch-status-dot { background: #7dffc4; box-shadow: 0 0 12px 1px rgba(125,255,196,.8); animation: schPulse 1.4s ease-in-out infinite; }
@keyframes schPulse { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
.sch-status-line, #sch-status-line { font: 800 13px/1.2 var(--font-display, system-ui); color: #eef0f3; flex: 1; }
.sch-status-fired { font: 800 11px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #9a979e); }
.sch-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sch-res-item { display: flex; flex-direction: column; gap: 2px; padding: 9px 11px; border-radius: 11px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06); }
.sch-res-item small { font-size: 9.5px; color: var(--text-muted, #9a979e); }
.sch-res-item strong { font: 800 16px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #eef0f3; }
.sch-res-item strong[data-tier="win"] { color: #7dffc4; } .sch-res-item strong[data-tier="loss"] { color: #8b93a8; }
@media (max-width: 560px) { .sch-results { grid-template-columns: 1fr 1fr; } }
.sch-bykey-wrap { display: flex; flex-direction: column; gap: 8px; }
.sch-bykey-head { font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .1em; color: #ff8a92; } .sch-bykey-head small { font-weight: 500; letter-spacing: 0; color: var(--text-muted, #9a979e); }
.sch-bykey { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.sch-bk-card {
  display: flex; flex-direction: column; gap: 3px; padding: 11px 12px; border-radius: 13px;
  background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07);
  border-top: 2px solid rgba(125,255,196,.5);
}
.sch-bk-card[data-pos="0"] { border-top-color: rgba(255,138,160,.55); }
.sch-bk-name { font: 800 12.5px/1 var(--font-display, system-ui); color: #eef0f3; }
.sch-bk-wr { font: 800 18px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #9affd0; }
.sch-bk-rec { font: 700 10px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #9a979e); }
.sch-bk-net { font: 800 13px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #7dffc4; }
.sch-bk-card[data-pos="0"] .sch-bk-net { color: #8b93a8; }
@media (max-width: 560px) { .sch-bykey { grid-template-columns: 1fr; } }
.sch-reset {
  align-self: flex-start; cursor: pointer; appearance: none; font: 700 11px/1 var(--font-display, system-ui);
  padding: 7px 12px; border-radius: 9px; color: var(--text-muted, #9a979e);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); transition: color .2s, border-color .2s;
}
.sch-reset:hover { color: #eceef2; border-color: rgba(250, 146, 0,.5); }
.sch-autos { display: flex; flex-direction: column; gap: 7px; }
.sch-auto {
  display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 10px;
  padding: 10px 13px; border-radius: 12px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06);
  transition: border-color .25s ease, background .25s ease;
}
.sch-auto[data-ready="1"] { border-color: rgba(33,208,122,.3); background: rgba(33,208,122,.07); }
.sch-auto-name { font: 800 13px/1 var(--font-display, system-ui); color: #eef0f3; }
.sch-auto-wr { font: 800 13px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #9affd0; }
.sch-auto-pay { font: 700 11px/1 var(--font-mono, ui-monospace, monospace); color: #d2d6e2; }
.sch-auto-state { font: 700 10.5px/1 var(--font-display, system-ui); color: var(--text-muted, #9a979e); }
.sch-auto[data-ready="1"] .sch-auto-state { color: #7dffc4; }
.sch-auto-empty { padding: 14px; text-align: center; color: var(--text-muted, #9a979e); font-size: 12px; border: 1px dashed rgba(250, 146, 0,.22); border-radius: 12px; }
.sch-settings, .sch-calc { padding: 13px; border-radius: 14px; border: 1px solid rgba(255,255,255,.07); background: rgba(0,0,0,.22); display: flex; flex-direction: column; gap: 11px; }
.sch-set-head, .sch-calc-head { font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .12em; color: #ff8a92; } .sch-calc-head small { font-weight: 500; letter-spacing: 0; color: var(--text-muted); }
.sch-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.sch-tog {
  cursor: pointer; appearance: none; font: 800 11.5px/1 var(--font-display, system-ui); padding: 8px 13px; border-radius: 999px;
  color: var(--text-muted, #9a979e); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); transition: all .2s ease;
}
.sch-tog[data-on="true"] { color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border-color: transparent; box-shadow: 0 0 14px -4px rgba(33,208,122,.7); }
.sch-tog[data-paused="true"] { color: #ffc44d; border-color: rgba(255,196,77,.6); background: rgba(255,196,77,.08); }
.sch-tog[data-paused="true"]::after { content: " ⏸"; }
.sch-ap-row { display: flex; gap: 6px; align-items: center; }
.sch-ap-tog {
  cursor: pointer; appearance: none; font: 800 11px/1 var(--font-display, system-ui); padding: 8px 12px; border-radius: 9px; flex: none;
  color: var(--text-muted, #9a979e); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); transition: all .2s ease;
}
.sch-ap-tog[data-on="true"] { color: #04121f; background: linear-gradient(135deg, #e6e9f2, #fa9200); border-color: transparent; }
.sch-ap-row .sat-dd { flex: 1; }
.sch-set-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.sch-field { display: flex; flex-direction: column; gap: 5px; font: 700 11px/1 var(--font-display, system-ui); color: var(--text-muted, #9a979e); }
.sch-mode { display: inline-flex; gap: 4px; padding: 3px; border-radius: 10px; background: rgba(0,0,0,.3); border: 1px solid rgba(255,255,255,.08); }
.sch-mode button { cursor: pointer; appearance: none; flex: 1; font: 800 11.5px/1 var(--font-display, system-ui); padding: 8px 10px; border-radius: 7px; color: var(--text-muted, #9a979e); background: transparent; border: 0; transition: all .2s ease; }
.sch-mode button.is-active { color: #04121f; background: linear-gradient(135deg, #e6e9f2, #fa9200); }
.sch-go {
  cursor: pointer; appearance: none; font: 800 13px/1 var(--font-display, system-ui); padding: 12px 16px; border-radius: 12px; color: #04140d;
  background: linear-gradient(135deg, #7dffc4, #21d07a); border: 0; box-shadow: 0 10px 26px -12px rgba(33,208,122,.9); transition: transform .15s ease, box-shadow .25s ease, background .25s;
}
.sch-go:hover { transform: translateY(-2px); }
.sch-go[data-running="true"] { color: #f6f0e6; background: linear-gradient(135deg, #8b93a8, #c47a14); box-shadow: 0 10px 26px -12px rgba(139, 147, 168,.9); animation: schPulse 1.5s ease-in-out infinite; }
.sch-calc-controls { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sch-calc-comp { display: inline-flex; align-items: center; gap: 7px; font: 700 11.5px/1 var(--font-display, system-ui); color: var(--text-muted, #9a979e); cursor: pointer; }
.sch-calc-rows { display: flex; flex-direction: column; gap: 7px; }
.sch-calc-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 10px 13px; border-radius: 11px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06); }
.sch-calc-name { font: 800 12.5px/1 var(--font-display, system-ui); color: #eef0f3; }
.sch-calc-wr { font: 700 10.5px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #9a979e); }
.sch-calc-proj { font: 800 14px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; }
.sch-calc-proj[data-pos="1"] { color: #7dffc4; } .sch-calc-proj[data-pos="0"] { color: #8b93a8; }
.sch-foot small { font-size: 11px; line-height: 1.5; color: var(--text-muted, #9a979e); display: block; padding: 11px 13px; border-radius: 12px; background: rgba(255,170,60,.07); border: 1px solid rgba(255,170,60,.18); }
@media (max-width: 560px) { .sch-set-grid { grid-template-columns: 1fr; } .sch-auto { grid-template-columns: 1fr auto; row-gap: 4px; } }

/* ── 🛡 RISK GOVERNOR module ─────────────────────────────────────────────── */
.gov-wrap { display: flex; flex-direction: column; gap: 14px; }
.gov-status {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px;
  padding: 15px 16px; border-radius: 16px; border: 1px solid rgba(33,208,122,.4);
  background: linear-gradient(135deg, rgba(33,208,122,.12), rgba(230,233,242,.05));
}
.gov-status[data-state="tripped"] { border-color: rgba(139, 147, 168,.6); background: linear-gradient(135deg, rgba(139, 147, 168,.16), rgba(120, 70, 12,.1)); box-shadow: 0 0 30px -10px rgba(139, 147, 168,.7); animation: govAlarm 1.4s ease-in-out infinite; }
.gov-status[data-state="off"] { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.025); }
@keyframes govAlarm { 0%,100% { box-shadow: 0 0 30px -12px rgba(139, 147, 168,.6); } 50% { box-shadow: 0 0 34px -6px rgba(139, 147, 168,.85); } }
.gov-status-shield { font-size: 30px; line-height: 1; }
.gov-status[data-state="tripped"] .gov-status-shield { filter: drop-shadow(0 0 10px rgba(139, 147, 168,.8)); }
.gov-status-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gov-status-line { font: 800 16px/1.15 var(--font-display, system-ui); color: #eafff5; }
.gov-status[data-state="tripped"] .gov-status-line { color: #ffd3dc; }
.gov-status[data-state="off"] .gov-status-line { color: var(--text-muted, #9a979e); }
.gov-status-sub { font-size: 11.5px; line-height: 1.4; color: var(--text-muted, #9a979e); }
.gov-resume {
  cursor: pointer; appearance: none; font: 800 12px/1 var(--font-display, system-ui); padding: 10px 15px; border-radius: 11px; white-space: nowrap;
  color: #fff; background: linear-gradient(135deg, #8b93a8, #c47a14); border: 0; box-shadow: 0 10px 24px -12px rgba(139, 147, 168,.9); transition: transform .15s ease;
}
.gov-resume:hover { transform: translateY(-2px); }
.gov-metrics { display: flex; flex-direction: column; gap: 7px; }
.gov-metric { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 12px; padding: 10px 13px; border-radius: 12px; background: rgba(2,2,6,0.5); border: 1px solid rgba(255,255,255,.06); border-left: 3px solid rgba(125,255,196,.5); }
.gov-metric[data-tier="warn"] { border-left-color: #ffc44d; background: rgba(255,196,77,.06); }
.gov-metric[data-tier="bad"]  { border-left-color: #ff7a90; background: rgba(255,122,144,.07); }
.gov-m-k { font: 700 12px/1 var(--font-display, system-ui); color: #d0d3db; }
.gov-m-v { font: 800 14px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #eef0f3; }
.gov-m-lim { font: 700 10px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #9a979e); min-width: 64px; text-align: right; }
.gov-settings { padding: 13px; border-radius: 14px; border: 1px solid rgba(255,255,255,.07); background: rgba(0,0,0,.22); display: flex; flex-direction: column; gap: 11px; }
.gov-set-head { font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .12em; color: #ff8a92; }
.gov-set-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.gov-field { display: flex; flex-direction: column; gap: 5px; font: 700 11px/1 var(--font-display, system-ui); color: var(--text-muted, #9a979e); }
.gov-master {
  cursor: pointer; appearance: none; font: 800 12.5px/1 var(--font-display, system-ui); padding: 11px 16px; border-radius: 11px;
  color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border: 0; box-shadow: 0 0 16px -5px rgba(33,208,122,.7); transition: all .2s ease;
}
.gov-master[data-on="false"] { color: var(--text-muted, #9a979e); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); box-shadow: none; }
.gov-foot small { font-size: 11px; line-height: 1.5; color: var(--text-muted, #9a979e); display: block; padding: 11px 13px; border-radius: 12px; background: rgba(230,233,242,.06); border: 1px solid rgba(230,233,242,.16); }
@media (max-width: 560px) { .gov-status { grid-template-columns: auto 1fr; } .gov-resume { grid-column: 1 / -1; } .gov-set-grid { grid-template-columns: 1fr; } }

/* ── ▶ MODULE LIVE EXECUTOR (Neural Prediction / Set & Forget Start buttons) ── */
.mx-exec { margin-top: 12px; padding: 12px 13px; border-radius: 13px; border: 1px solid rgba(33,208,122,.22); background: rgba(33,208,122,.05); display: flex; flex-direction: column; gap: 9px; }
.mx-exec-row { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; }
.mx-exec-go {
  cursor: pointer; appearance: none; font: 800 13px/1 var(--font-display, system-ui); padding: 11px 16px; border-radius: 11px;
  color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border: 0; box-shadow: 0 8px 22px -12px rgba(33,208,122,.9);
  transition: transform .15s ease, box-shadow .25s ease, background .25s ease, color .2s ease;
}
.mx-exec-go:hover { transform: translateY(-2px); }
.mx-exec-go[data-running="true"] { color: #f6f0e6; background: linear-gradient(135deg, #8b93a8, #c47a14); box-shadow: 0 8px 22px -12px rgba(139, 147, 168,.9); animation: schPulse 1.5s ease-in-out infinite; }
.mx-exec-field { display: inline-flex; align-items: center; gap: 6px; font: 700 11px/1 var(--font-display, system-ui); color: var(--text-muted, #9a979e); }
.mx-exec-field .sat-dd { width: auto; }
.mx-exec-note { font: 600 10.5px/1.35 var(--font-display, system-ui); color: var(--text-muted, #9a979e); flex: 1; min-width: 120px; }
.mx-exec-status { font: 800 12px/1.4 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #9a979e); }
.mx-exec-status[data-running="true"] { color: #7dffc4; text-shadow: 0 0 12px rgba(125,255,196,.4); }

/* ── 🛡️ Sign in with Deriv (OAuth) button ───────────────────────────────── */
.btn-deriv-oauth {
  width: 100%; cursor: pointer; appearance: none; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  font: 800 15px/1 var(--font-display, system-ui); letter-spacing: .01em;
  padding: 14px 18px; border-radius: 13px; color: #fff; border: 0;
  background: linear-gradient(135deg, #fa9200 0%, #c47a14 100%);
  box-shadow: 0 12px 30px -12px rgba(250, 146, 0,.85), inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .15s ease, box-shadow .25s ease, filter .2s ease;
}
.btn-deriv-oauth:hover { transform: translateY(-2px); box-shadow: 0 16px 38px -14px rgba(250, 146, 0,.95), inset 0 1px 0 rgba(255,255,255,.3); filter: saturate(1.1); }
.btn-deriv-oauth:active { transform: translateY(0) scale(.985); }
.btn-deriv-oauth:focus-visible { outline: 2px solid rgba(255,120,128,.8); outline-offset: 2px; }
.btn-deriv-oauth .dvo-logo { font-size: 18px; line-height: 1; }
.btn-deriv-oauth .dvo-arrow { font-size: 16px; opacity: .85; transition: transform .2s ease; }
.btn-deriv-oauth:hover .dvo-arrow { transform: translateX(3px); }
.dvo-note { display: block; margin-top: 3px; opacity: .8; }
.dvo-divider { display: flex; align-items: center; gap: 12px; margin: 13px 0 4px; color: var(--text-muted, #9a979e); font: 700 10.5px/1 var(--font-display, system-ui); letter-spacing: .1em; text-transform: uppercase; }
.dvo-divider::before, .dvo-divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent); }
.dvo-appnote { margin-top: 8px; padding: 9px 12px; border-radius: 10px; font: 600 11px/1.5 var(--font-display, system-ui); }
.dvo-appnote[data-state="shared"] { color: #ffe0b0; background: rgba(255,170,60,.09); border: 1px solid rgba(255,170,60,.28); }
.dvo-appnote[data-state="ready"]  { color: #bdf5d6; background: rgba(33,208,122,.09); border: 1px solid rgba(33,208,122,.28); }
.dvo-appnote strong { color: #fff; } .dvo-appnote code { background: rgba(255,255,255,.08); padding: 1px 5px; border-radius: 5px; font-size: 10.5px; }

/* ════════════════════════════════════════════════════════════════════════
   ⚡ DERIV OAuth — PRIMARY PATH (multi-user). Jaw-dropping crimson CTA with a
   light-sweep shimmer + breathing glow, one-time operator-setup disclosure,
   and a copy-ready redirect URL block. */
.dvo-primary { margin-bottom: 6px; }
.dvo-primary .btn-deriv-oauth {
  position: relative; overflow: hidden;
  padding: 17px 20px; font-size: 16px; letter-spacing: .02em;
  background: linear-gradient(135deg, #ff5560 0%, #fa9200 46%, #c47a14 100%);
  box-shadow:
    0 18px 44px -14px rgba(139, 147, 168,.9),
    0 0 0 1px rgba(255,255,255,.12) inset,
    0 1px 0 rgba(255,255,255,.35) inset;
  animation: dvoPulse 3.4s ease-in-out infinite;
}
.dvo-primary .btn-deriv-oauth > * { position: relative; z-index: 1; }
.dvo-primary .btn-deriv-oauth::before {
  content: ""; position: absolute; top: 0; left: -65%; width: 48%; height: 100%; z-index: 0;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.6), transparent);
  transform: skewX(-18deg); animation: dvoShimmer 3.8s ease-in-out infinite;
}
@keyframes dvoShimmer { 0%, 52% { left: -65%; } 82%, 100% { left: 135%; } }
@keyframes dvoPulse {
  0%, 100% { box-shadow: 0 18px 44px -14px rgba(139, 147, 168,.9), 0 0 0 1px rgba(255,255,255,.12) inset, 0 1px 0 rgba(255,255,255,.35) inset; }
  50%      { box-shadow: 0 22px 56px -12px rgba(139, 147, 168,1), 0 0 32px -6px rgba(139, 147, 168,.6), 0 0 0 1px rgba(255,255,255,.2) inset, 0 1px 0 rgba(255,255,255,.42) inset; }
}
@media (prefers-reduced-motion: reduce) {
  .dvo-primary .btn-deriv-oauth { animation: none; }
  .dvo-primary .btn-deriv-oauth::before { animation: none; display: none; }
}

/* One-time operator setup (register Deriv app + App ID, shared by all users) */
.godmind-setup {
  margin: 12px 0 6px; border: 1px solid rgba(250, 146, 0,.22); border-radius: 13px;
  background: linear-gradient(180deg, rgba(250, 146, 0,.06), rgba(8,4,6,.42)); overflow: hidden;
}
.godmind-setup > summary {
  list-style: none; cursor: pointer; padding: 12px 14px;
  font: 800 12.5px/1.2 var(--font-display, system-ui); letter-spacing: .03em; color: #ffd0d4;
  display: flex; align-items: center; gap: 9px;
}
.godmind-setup > summary::-webkit-details-marker { display: none; }
.godmind-setup > summary::after { content: "▸"; margin-left: auto; color: var(--text-muted); transition: transform .2s ease; }
.godmind-setup[open] > summary::after { transform: rotate(90deg); }
.godmind-setup[open] > summary { border-bottom: 1px solid rgba(250, 146, 0,.18); }
.godmind-setup .field { padding: 12px 14px 6px; }
.godmind-setup .dvo-appnote { margin: 4px 14px 13px; }
.setup-pill {
  font: 800 8.5px/1 var(--font-display, system-ui); letter-spacing: .12em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 999px; background: rgba(250, 146, 0,.18);
  border: 1px solid rgba(250, 146, 0,.4); color: #ff9aa2;
}
#godmind-manual-token { margin-top: 6px; }
#godmind-manual-token .field { padding-top: 10px; }

/* OAuth note: numbered setup steps + copy-ready redirect URL */
.dvo-steps { margin: 8px 0 6px; padding-left: 18px; display: flex; flex-direction: column; gap: 5px; }
.dvo-steps li { font: 600 10.8px/1.55 var(--font-display, system-ui); }
.dvo-redirect {
  display: inline-block; margin-top: 4px; padding: 6px 9px; border-radius: 7px;
  background: rgba(0,0,0,.5); border: 1px solid rgba(250, 146, 0,.32); color: #f4ede0;
  font: 600 10.5px/1.45 var(--font-mono, ui-monospace, monospace); word-break: break-all; user-select: all; cursor: copy;
}
.dvo-redirect:hover { border-color: rgba(250, 146, 0,.6); background: rgba(0,0,0,.62); }

/* ════════════════════════════════════════════════════════════════════════
   ✨ MAGNIFICENT AESTHETIC — animated crimson edge-light on the connection
   panel, plus a premium hover sheen on cards. GPU-cheap (transform/opacity +
   one masked gradient), and disabled under reduced-motion. */
.connection-panel { position: relative; }
.connection-panel::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; padding: 1px;
  background: linear-gradient(120deg, transparent 28%, rgba(139, 147, 168,.6) 44%, rgba(255,255,255,.55) 50%, rgba(139, 147, 168,.6) 56%, transparent 72%);
  background-size: 280% 100%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: magEdge 8s linear infinite; opacity: .55;
}
@keyframes magEdge { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .connection-panel::after { animation: none; opacity: .3; } }

/* Platform-wide premium light-sweep on every primary action button — hover-only,
   so it adds zero idle render cost while making every CTA feel magnificent. */
.btn-primary { position: relative; overflow: hidden; isolation: isolate; }
.btn-primary::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(100deg, transparent 32%, rgba(255,255,255,.45) 50%, transparent 68%);
  transform: translateX(-130%) skewX(-15deg); transition: transform .6s ease;
}
.btn-primary:hover::after { transform: translateX(130%) skewX(-15deg); }
.btn-primary > * { position: relative; z-index: 1; }

/* Live-connection celebration: once authorised, the connection panel's edge-light
   settles into a steady triumphant crimson-emerald rim (win-state affirmation). */
.connection-panel.is-authorized::after {
  background: linear-gradient(120deg, transparent 24%, rgba(33,208,122,.5) 42%, rgba(255,255,255,.55) 50%, rgba(139, 147, 168,.6) 58%, transparent 76%);
  background-size: 280% 100%; opacity: .7;
}

/* ════════════════════════════════════════════════════════════════════════
   🖤 DARKER · PREMIUM · FIT-ANY-DEVICE — final polish for Skilli Auto Trading.
   Deeper, richer card depth (cinematic drop shadow + a darker glass base + a
   hairline top light) for a true premium feel, plus a universal responsive
   safety net so every card reflows cleanly on any screen with no overflow.
   ════════════════════════════════════════════════════════════════════════ */
/* The darkest, most realistic terminal-grade surface — a near-pure-black glass
   panel: deep vertical sheen, hairline light edge, soft 1px inner border, and a
   cinematic drop shadow. Applied to the big neutral structural cards (state-tinted
   cards like win/loss + verdicts keep their colour). */
#view-auto .qs-card, #view-auto .sat-panel, #view-auto .sat-crack, #view-auto .aether-core,
#view-auto .ai-opportunity-radar, #view-auto .ai-auto-pilot, #view-auto .ni-card,
#view-auto .ac-core-scan, #view-auto .ai-memory-bank, #view-auto .sat-modal-card,
#view-auto .sch-settings, #view-auto .sch-calc {
  background:
    linear-gradient(168deg, rgba(18,19,28,0.62) 0%, rgba(7,8,14,0.66) 52%, rgba(3,3,7,0.72) 100%),
    #04050a;
  border: 1px solid rgba(255,255,255,0.07);
  box-shadow:
    0 26px 64px -32px rgba(0,0,0,0.96),
    0 2px 10px -6px rgba(0,0,0,0.9),
    inset 0 1px 0 rgba(255,255,255,0.06),
    inset 0 0 0 1px rgba(255,255,255,0.018);
  transition: box-shadow .35s ease, border-color .35s ease, transform .2s ease;
}
/* deepest stage behind the cards — a true black void with a faint top glow */
#view-auto {
  background:
    radial-gradient(130% 70% at 50% -6%, rgba(250, 146, 0,0.07), transparent 60%),
    radial-gradient(100% 60% at 50% 120%, rgba(230,233,242,0.045), transparent 60%),
    #020205;
}
/* inner sub-panels / tiles a notch darker so the hierarchy reads like a real terminal */
#view-auto .sat-kpi, #view-auto .ac-vital, #view-auto .np-stat, #view-auto .sf-tf, #view-auto .ml-stat,
#view-auto .sch-auto, #view-auto .sch-res-item, #view-auto .sch-bk-card, #view-auto .sch-calc-row {
  background-color: rgba(2,2,6,0.55);
}
/* FIT ANY DEVICE — no horizontal overflow + graceful grid reflow on small screens */
#view-auto { overflow-x: clip; }
@media (max-width: 720px) {
  #view-auto .sat-kpis { grid-template-columns: repeat(2, 1fr) !important; }
  #view-auto .aether-core { grid-template-columns: 1fr !important; }
  #view-auto .sch-set-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 480px) {
  #view-auto .qs-grid, #view-auto .qs-grid-walkaway { grid-template-columns: 1fr !important; }
  #view-auto .sat-kpis { grid-template-columns: 1fr 1fr !important; }
  #view-auto .sat-panel, #view-auto .qs-card, #view-auto .aether-core { padding: 14px !important; }
}

@media (max-width: 760px) {
  .aether-core { grid-template-columns: 1fr; gap: 14px; padding: 18px; }
  .ac-core-reactor { width: 200px; height: 200px; }
  .ac-core-vitals { grid-template-columns: repeat(3, 1fr); }
  .ac-verdict-line { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .aether-core[data-conviction="fire"] { animation: none; }
  .ac-reactor-spark { animation: none; }
}

/* ---- AETHER CORE · live multi-market scan leaderboard ---- */
.ac-core-scan {
  grid-column: 1 / -1; position: relative; z-index: 1;
  margin-top: 6px; padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.ac-scan-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.ac-scan-title {
  display: inline-flex; align-items: center; gap: 9px;
  font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .16em; text-transform: uppercase;
  color: #eceef2;
}
.ac-scan-radar {
  width: 9px; height: 9px; border-radius: 50%; flex: none;
  background: radial-gradient(circle, #7dffc4, #21d07a);
  box-shadow: 0 0 0 0 rgba(125,255,196,.55); animation: acScanPing 2.4s ease-out infinite;
}
@keyframes acScanPing {
  0%   { box-shadow: 0 0 0 0 rgba(125,255,196,.5); }
  70%  { box-shadow: 0 0 0 9px rgba(125,255,196,0); }
  100% { box-shadow: 0 0 0 0 rgba(125,255,196,0); }
}
.ac-scan-meta { font: 600 10.5px/1 var(--font-display, system-ui); letter-spacing: .03em; color: var(--text-dim, #9a979e); white-space: nowrap; }
.ac-scan-rows { display: grid; gap: 6px; }
.ac-scan-row {
  display: grid; grid-template-columns: 24px minmax(100px, 1.15fr) auto 1.35fr 40px;
  align-items: center; gap: 12px;
  padding: 7px 12px; border-radius: 11px;
  border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.022);
  transition: border-color .35s ease, background .35s ease, transform .2s ease;
}
.ac-scan-id { display: grid; gap: 1px; min-width: 0; }
.ac-scan-row:hover { transform: translateX(2px); }
.ac-scan-row[data-top="1"] {
  border-color: rgba(125,255,196,.4);
  background: linear-gradient(90deg, rgba(125,255,196,.1), rgba(255,255,255,.02));
  box-shadow: inset 0 0 22px -12px rgba(125,255,196,.6);
}
.ac-scan-rank {
  display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px;
  font: 800 11px/1 var(--font-display, system-ui); color: #b4b4be;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08);
}
.ac-scan-row[data-top="1"] .ac-scan-rank { color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a); border-color: transparent; }
.ac-scan-name { display: inline-flex; align-items: center; gap: 7px; font: 800 13px/1.1 var(--font-display, system-ui); color: #eef0f3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-scan-live {
  font: 800 8px/1 var(--font-display, system-ui); letter-spacing: .1em; font-style: normal;
  color: #04140d; background: linear-gradient(135deg, #7dffc4, #21d07a);
  padding: 2px 5px; border-radius: 5px; flex: none;
}
.ac-scan-type { font: 600 10px/1.1 var(--font-display, system-ui); color: var(--text-muted, #a3a3ac); letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-scan-row[data-tier="fire"]   .ac-scan-type { color: #8fe9c4; }
.ac-scan-row[data-tier="primed"] .ac-scan-type { color: #e7c98a; }
.ac-scan-bar { position: relative; height: 7px; border-radius: 999px; background: rgba(255,255,255,.07); overflow: hidden; }
.ac-scan-bar > i {
  position: absolute; inset: 0 auto 0 0; display: block; border-radius: 999px;
  background: linear-gradient(90deg, rgba(125,255,196,.5), #7dffc4);
  transition: width .55s cubic-bezier(.22,1,.36,1);
}
.ac-scan-conv { text-align: right; font: 800 13px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #dce0e6; }
/* tier theming per row */
.ac-scan-row[data-tier="fire"]     .ac-scan-bar > i { background: linear-gradient(90deg, #21d07a, #7dffc4); }
.ac-scan-row[data-tier="fire"]     .ac-scan-conv     { color: #7dffc4; text-shadow: 0 0 10px rgba(125,255,196,.45); }
.ac-scan-row[data-tier="primed"]   .ac-scan-bar > i { background: linear-gradient(90deg, #f0a93a, #ffd36a); }
.ac-scan-row[data-tier="primed"]   .ac-scan-conv     { color: #ffd36a; }
.ac-scan-row[data-tier="building"] .ac-scan-bar > i { background: linear-gradient(90deg, #8b93a8, #e6e9f2); }
.ac-scan-row[data-tier="building"] .ac-scan-conv     { color: #e6e9f2; }
.ac-scan-row[data-tier="idle"]     .ac-scan-bar > i { background: rgba(185,180,188,.4); }
.ac-scan-row[data-tier="idle"]     .ac-scan-conv     { color: #9a979e; }
/* #1 scan-row live sparkline — spans the full width on a second grid line */
.ac-scan-spark {
  grid-column: 1 / -1; height: 26px; margin-top: 5px;
  border-radius: 8px; overflow: hidden;
  background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.045);
}
.ac-scan-spark .ac-spark { display: block; width: 100%; height: 100%; }
.ac-spark-area { stroke: none; fill: rgba(125,255,196,.14); }
.ac-spark-line {
  fill: none; stroke: #7dffc4; stroke-width: 1.7; vector-effect: non-scaling-stroke;
  stroke-linejoin: round; stroke-linecap: round; filter: drop-shadow(0 0 3px rgba(125,255,196,.5));
}
.ac-spark[data-dir="down"] .ac-spark-area { fill: rgba(255,154,106,.12); }
.ac-spark[data-dir="down"] .ac-spark-line { stroke: #ff9a6a; filter: drop-shadow(0 0 3px rgba(255,154,106,.45)); }
/* ── 💵 live-scan payout preview (est. payout % · your-stake return) ── */
.ac-scan-pay {
  display: flex; flex-direction: column; align-items: flex-end; gap: 1px; line-height: 1; white-space: nowrap;
  padding-left: 4px; border-left: 1px solid rgba(255,255,255,.06);
}
.ac-scan-pay b { font: 800 12px/1 var(--font-display, system-ui); font-variant-numeric: tabular-nums; color: #9affd0; }
.ac-scan-pay i { font: 700 9.5px/1 var(--font-mono, ui-monospace, monospace); font-style: normal; color: var(--text-muted, #9a979e); }
.ac-scan-row[data-tier="fire"] .ac-scan-pay b { color: #7dffc4; text-shadow: 0 0 8px rgba(125,255,196,.4); }
@media (max-width: 760px) {
  .ac-scan-row { grid-template-columns: 22px minmax(90px, 1.15fr) auto 1.2fr 34px; gap: 9px; }
  .ac-scan-spark { height: 22px; }
}
@media (max-width: 520px) { .ac-scan-pay { display: none; } .ac-scan-row { grid-template-columns: 22px minmax(90px, 1.2fr) 1.2fr 34px; } }

/* ── 💹 cockpit P&L real-time ticker flash ── */
.aicp-pnl-up   { animation: aicpPnlUp .55s ease-out; }
.aicp-pnl-down { animation: aicpPnlDown .55s ease-out; }
@keyframes aicpPnlUp   { 0% { text-shadow: 0 0 0 rgba(125,255,196,0); transform: translateY(0); } 30% { text-shadow: 0 0 16px rgba(125,255,196,.9); transform: translateY(-2px); } 100% { text-shadow: 0 0 0 rgba(125,255,196,0); transform: translateY(0); } }
@keyframes aicpPnlDown { 0% { text-shadow: 0 0 0 rgba(255,122,144,0); transform: translateY(0); } 30% { text-shadow: 0 0 16px rgba(255,122,144,.9); transform: translateY(2px); } 100% { text-shadow: 0 0 0 rgba(255,122,144,0); transform: translateY(0); } }

/* =====================================================================
   ✦ OMEGA PREMIUM POLISH — buttons + settings panel
   Cohesive glossy depth, sheen sweep, tactile press, focus rings.
   Appended last so it wins the cascade over the base button rules.
   ===================================================================== */

/* ---- Shared premium button system ---- */
.sat-mini-btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 7px 14px; border-radius: 11px;
  border: 1px solid rgba(230,233,242,0.45);
  background:
    linear-gradient(180deg, rgba(230,233,242,0.16), rgba(230,233,242,0.06));
  color: #e6e9f2;
  font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: .03em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 4px 12px -8px rgba(230,233,242,0.6);
  transition: transform .14s ease, box-shadow .25s ease, border-color .2s ease, background .2s ease, color .2s ease;
}
.sat-mini-btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0.22) 48%, transparent 60%);
  transform: translateX(-130%); transition: transform .6s cubic-bezier(.2,.7,.3,1);
}
.sat-mini-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(230,233,242,0.7);
  background: linear-gradient(180deg, rgba(230,233,242,0.26), rgba(230,233,242,0.1));
  color: #f1f2f6;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 10px 22px -10px rgba(230,233,242,0.8), 0 0 18px -6px rgba(230,233,242,0.55);
}
.sat-mini-btn:hover::before { transform: translateX(130%); }
.sat-mini-btn:active { transform: translateY(0) scale(.97); box-shadow: inset 0 2px 6px rgba(0,0,0,0.4); }
.sat-mini-btn:focus-visible { outline: 2px solid rgba(230,233,242,0.8); outline-offset: 2px; }

/* Semantic button variants — read intent at a glance */
.sat-mini-btn.mai-deploy, .sat-mini-btn.vault-btn-deposit {
  border-color: rgba(33,208,122,0.5); color: #9dffce;
  background: linear-gradient(180deg, rgba(33,208,122,0.2), rgba(33,208,122,0.07));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 4px 12px -8px rgba(33,208,122,0.6);
}
.sat-mini-btn.mai-deploy:hover, .sat-mini-btn.vault-btn-deposit:hover {
  border-color: rgba(33,208,122,0.8); color: #d6ffe9;
  background: linear-gradient(180deg, rgba(33,208,122,0.32), rgba(33,208,122,0.12));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 10px 22px -10px rgba(33,208,122,0.85), 0 0 18px -6px rgba(33,208,122,0.55);
}
.sat-mini-btn.vault-btn-clear, .sat-mini-btn.vault-btn-withdraw, .sat-mini-btn#sat-hist-clear {
  border-color: rgba(139, 147, 168,0.5); color: #ffb3bd;
  background: linear-gradient(180deg, rgba(139, 147, 168,0.18), rgba(139, 147, 168,0.06));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 4px 12px -8px rgba(139, 147, 168,0.6);
}
.sat-mini-btn.vault-btn-clear:hover, .sat-mini-btn.vault-btn-withdraw:hover, .sat-mini-btn#sat-hist-clear:hover {
  border-color: rgba(139, 147, 168,0.8); color: #ffe1e5;
  background: linear-gradient(180deg, rgba(139, 147, 168,0.3), rgba(139, 147, 168,0.1));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 10px 22px -10px rgba(139, 147, 168,0.85), 0 0 18px -6px rgba(139, 147, 168,0.5);
}

/* Settings gear — sheen + active press on the existing purple gradient */
.sat-settings-btn { position: relative; overflow: hidden; isolation: isolate; }
.sat-settings-btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0.28) 48%, transparent 60%);
  transform: translateX(-130%); transition: transform .6s cubic-bezier(.2,.7,.3,1);
}
.sat-settings-btn:hover::before { transform: translateX(130%); }
.sat-settings-btn:active { transform: translateY(0) scale(.97); }
.sat-settings-btn:focus-visible { outline: 2px solid rgba(250, 146, 0,0.85); outline-offset: 2px; }

/* History/journal filter pills — glow on hover + active */
.hist-filter { box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); }
.hist-filter:hover { transform: translateY(-1px); box-shadow: 0 6px 14px -8px rgba(230,233,242,0.6); }
.hist-filter.is-active { box-shadow: 0 0 18px -6px rgba(230,233,242,0.7), inset 0 1px 0 rgba(255,255,255,0.4); }
.hist-filter:focus-visible { outline: 2px solid rgba(230,233,242,0.8); outline-offset: 2px; }

/* Mode / reinvestment selector cards — lift + active glow */
.sat-mode, .re-mode { position: relative; overflow: hidden; }
.sat-mode:hover, .re-mode:hover { transform: translateY(-1px); }
.sat-mode[data-active="true"], .re-mode[data-active="true"] {
  box-shadow: 0 0 22px -8px rgba(33,208,122,0.6), inset 0 1px 0 rgba(255,255,255,0.12);
}
.sat-mode:focus-visible, .re-mode:focus-visible { outline: 2px solid rgba(230,233,242,0.7); outline-offset: 2px; }

/* Connection modal buttons */
.ac-btn-connect, .ac-btn-disconnect { position: relative; overflow: hidden; transition: transform .14s ease, box-shadow .25s ease, filter .2s ease; }
.ac-btn-connect:hover, .ac-btn-disconnect:hover { transform: translateY(-1px); filter: brightness(1.08); }
.ac-btn-connect:active, .ac-btn-disconnect:active { transform: translateY(0) scale(.98); }
.ac-btn-connect:focus-visible, .ac-btn-disconnect:focus-visible { outline: 2px solid rgba(230,233,242,0.8); outline-offset: 2px; }

/* ---- Premium settings panel ---- */
.sat-panel[data-sat-panel="settings"] .settings-toolbar {
  padding: 10px; border-radius: 13px;
  background: linear-gradient(135deg, rgba(8,4,20,0.6), rgba(14,10,30,0.6));
  border: 1px solid rgba(250, 146, 0,0.18);
}
.settings-search-input {
  background: rgba(8,4,20,0.8);
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.35);
}
.settings-search-input::placeholder { color: var(--text-dim); }
.settings-search-input:focus { box-shadow: inset 0 2px 8px rgba(0,0,0,0.35), 0 0 22px -6px rgba(230,233,242,0.6); }

.settings-group {
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease, transform .2s ease;
}
.settings-group[open] { box-shadow: 0 12px 28px -18px rgba(250, 146, 0,0.7); }
.settings-group:hover { border-color: rgba(250, 146, 0,0.5); }
.settings-group summary {
  position: relative; border-radius: 10px;
  padding: 10px 8px;
  background: linear-gradient(135deg, rgba(250, 146, 0,0.12), transparent 70%);
  transition: background .2s ease;
}
.settings-group summary:hover { background: linear-gradient(135deg, rgba(250, 146, 0,0.2), transparent 70%); }
.settings-group summary::after {
  content: ""; position: absolute; left: 8px; right: 8px; bottom: 0; height: 1px;
  background: linear-gradient(90deg, rgba(250, 146, 0,0.5), transparent);
}
.sg-rows { margin-top: 10px; }

.settings-row { transition: border-color .2s ease, background .2s ease, transform .14s ease, box-shadow .2s ease; }
.settings-row::after {
  content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px;
  border-radius: 3px; background: linear-gradient(180deg, #21d07a, #e6e9f2);
  opacity: 0; transform: scaleY(0.4); transition: opacity .25s ease, transform .25s ease;
}
.settings-row:hover { transform: translateX(2px); box-shadow: 0 8px 20px -14px rgba(230,233,242,0.6); }
.settings-row[data-on="true"] {
  background: linear-gradient(135deg, rgba(33,208,122,0.1), rgba(255,255,255,0.025));
}
.settings-row[data-on="true"]::after { opacity: 1; transform: scaleY(1); }

/* Bigger, glossier settings switches */
.sr-track { width: 40px; height: 22px; box-shadow: inset 0 1px 3px rgba(0,0,0,0.4); }
.sr-thumb { width: 18px; height: 18px; box-shadow: 0 1px 3px rgba(0,0,0,0.4); }
.sr-switch input:checked + .sr-track { box-shadow: 0 0 16px -3px rgba(33,208,122,0.7), inset 0 1px 2px rgba(255,255,255,0.3); }
.sr-switch input:checked + .sr-track .sr-thumb { transform: translateX(18px); }
.sr-switch:focus-within .sr-track { outline: 2px solid rgba(230,233,242,0.6); outline-offset: 2px; }

.sr-select {
  appearance: none; -webkit-appearance: none;
  padding: 6px 28px 6px 11px; border-radius: 9px;
  border: 1px solid rgba(230,233,242,0.3); background: rgba(8,4,20,0.7);
  color: #e6e9f2; font-family: var(--font-display); font-size: 11.5px; font-weight: 700;
  background-image: linear-gradient(45deg, transparent 50%, #e6e9f2 50%), linear-gradient(135deg, #e6e9f2 50%, transparent 50%);
  background-position: calc(100% - 15px) center, calc(100% - 10px) center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
  cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease;
}
.sr-select:hover { border-color: rgba(230,233,242,0.6); }
.sr-select:focus-visible { outline: none; border-color: rgba(230,233,242,0.8); box-shadow: 0 0 16px -5px rgba(230,233,242,0.6); }

.settings-footer {
  background: linear-gradient(135deg, rgba(8,4,20,0.5), rgba(14,10,30,0.5));
  border: 1px solid rgba(255,255,255,0.06); border-radius: 11px;
  padding: 10px 14px; margin-top: 14px;
}
#settings-footer-count {
  font-family: var(--font-display); font-weight: 800; color: #7dffc4;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(33,208,122,0.12); border: 1px solid rgba(33,208,122,0.3);
}

/* Honour reduce-motion (settings toggle + OS preference) */
.sat-reduce-motion .sat-mini-btn::before,
.sat-reduce-motion .sat-settings-btn::before { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .sat-mini-btn, .sat-mini-btn::before, .sat-settings-btn::before,
  .settings-row, .settings-group, .sat-mode, .re-mode, .hist-filter { transition: none !important; }
  .sat-mini-btn:hover, .settings-row:hover, .sat-mode:hover, .re-mode:hover, .hist-filter:hover { transform: none; }
}

/* ════════════════════════════════════════════════════════════════════════════
   ✦ TRUE-BLACK PREMIUM THEME ✦   (Request C — "make card dark and beautiful")
   ----------------------------------------------------------------------------
   Pushes every major card onto a near-pure-black base with high-contrast neon
   edges. Appended last so it wins the cascade without rewriting the originals.
   Each card keeps its signature accent (cyan = intelligence, green = setup,
   violet = modules) as a faint corner halo so identity survives the darkness.
   NOTE: .analyzer[data-analyzer] is intentionally NOT re-themed — those cards
   are already near-black and their .is-ready/.is-enter green-glow states use
   equal-specificity !important backgrounds an override here would clobber.
   ════════════════════════════════════════════════════════════════════════════ */
:root {
  --bg-deep:   #1a1d21;
  --bg-mid:    #20242a;
  --bg-violet: #181b1f;
  --bg-indigo: #1a1d21;
  --glass-bg:  rgba(26, 29, 33, 0.74);
}

/* ── AETHER CORE hero deck ───────────────────────────────────────────────── */
.aether-core {
  border-color: rgba(230,233,242,0.28) !important;
  background:
    radial-gradient(140% 120% at 12% 0%, rgba(230,233,242,0.08), transparent 50%),
    radial-gradient(120% 120% at 100% 100%, rgba(250, 146, 0,0.07), transparent 52%),
    linear-gradient(180deg, #08090f, #020204) !important;
  box-shadow:
    0 34px 88px -44px rgba(0,0,0,0.97),
    0 0 0 1px rgba(230,233,242,0.10) inset,
    0 0 30px -16px rgba(230,233,242,0.45) !important;
}

/* ── Quick Setup ─────────────────────────────────────────────────────────── */
.qs-card {
  border-color: rgba(125,255,196,0.36) !important;
  background:
    radial-gradient(140% 90% at 0% 0%, rgba(125,255,196,0.10), transparent 50%),
    radial-gradient(140% 90% at 100% 100%, rgba(250, 146, 0,0.09), transparent 52%),
    linear-gradient(162deg, #070809, #020303) !important;
  box-shadow:
    0 26px 58px -30px rgba(0,0,0,0.96),
    0 0 0 1px rgba(125,255,196,0.10) inset,
    0 0 28px -14px rgba(125,255,196,0.4) !important;
}

/* ── SAT module panels (the dominant card type) ──────────────────────────── */
.sat-panel {
  border-color: rgba(250, 146, 0,0.32) !important;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(230,233,242,0.055), transparent 55%),
    linear-gradient(160deg, #07060c, #020203) !important;
  box-shadow:
    0 20px 46px -28px rgba(0,0,0,0.96),
    0 0 0 1px rgba(250, 146, 0,0.10) inset,
    0 0 22px -15px rgba(250, 146, 0,0.5) !important;
}
.sat-panel:hover {
  border-color: rgba(250, 146, 0,0.55) !important;
  box-shadow:
    0 28px 60px -26px rgba(0,0,0,0.97),
    0 0 0 1px rgba(250, 146, 0,0.2) inset,
    0 0 34px -10px rgba(250, 146, 0,0.6),
    0 0 18px -8px rgba(230,233,242,0.4) !important;
}

/* ── Neural Intelligence cards ───────────────────────────────────────────── */
.ni-card {
  border-color: rgba(230,233,242,0.32) !important;
  background:
    radial-gradient(150% 90% at 0% 0%, rgba(230,233,242,0.07), transparent 50%),
    linear-gradient(162deg, #07070b, #020204) !important;
  box-shadow:
    0 16px 40px -24px rgba(0,0,0,0.96),
    0 0 0 1px rgba(230,233,242,0.10) inset,
    0 0 20px -14px rgba(230,233,242,0.45) !important;
}
.ni-card:hover {
  border-color: rgba(230,233,242,0.6) !important;
  box-shadow:
    0 20px 46px -22px rgba(0,0,0,0.97),
    0 0 0 1px rgba(230,233,242,0.2) inset,
    0 0 30px -12px rgba(230,233,242,0.7) !important;
}

/* ── Live-status pills + journal shell ───────────────────────────────────── */
.sat-strip-pill {
  background: linear-gradient(160deg, #08080d, #020203) !important;
  border-color: rgba(230,233,242,0.2) !important;
  box-shadow: 0 0 0 1px rgba(230,233,242,0.06) inset, 0 10px 26px -20px rgba(0,0,0,0.9) !important;
}
.trade-prediction-card,
.sat-journal-wrap {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(230,233,242,0.05), transparent 55%),
    linear-gradient(165deg, #07070c, #020203) !important;
  border-color: rgba(250, 146, 0,0.3) !important;
}

/* ── Settings groups (base; layout polish in the settings pass) ──────────── */
.settings-group {
  background: linear-gradient(160deg, #08080c, #020203) !important;
  border-color: rgba(250, 146, 0,0.26) !important;
  box-shadow: 0 14px 34px -24px rgba(0,0,0,0.95), 0 0 0 1px rgba(250, 146, 0,0.07) inset !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   ✦ SETTINGS PANEL · TRUE-BLACK POLISH ✦   (Request C — "upgrade settings panel")
   Darkens the overview hero, search field, stat tiles, toggle rows + footer to
   match the true-black cards while keeping the violet/cyan/green accent system
   for focus + active states. Adds a touch more depth + crisper neon focus.
   ════════════════════════════════════════════════════════════════════════════ */
.settings-overview {
  border-color: rgba(250, 146, 0,0.42) !important;
  background:
    radial-gradient(120% 120% at 0% 0%, rgba(250, 146, 0,0.14), transparent 56%),
    radial-gradient(120% 120% at 100% 120%, rgba(230,233,242,0.07), transparent 56%),
    linear-gradient(160deg, #08070e, #020203) !important;
  box-shadow:
    0 22px 50px -28px rgba(0,0,0,0.96),
    0 0 28px -14px rgba(250, 146, 0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.07) !important;
}
.settings-search-input {
  background: linear-gradient(160deg, #050508, #010102) !important;
  border-color: rgba(230,233,242,0.3) !important;
}
.settings-search-input:focus {
  border-color: rgba(230,233,242,0.75) !important;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.5), 0 0 22px -5px rgba(230,233,242,0.6) !important;
}
.so-stat {
  background: linear-gradient(160deg, #0a0a10, #020203) !important;
  border-color: rgba(255,255,255,0.08) !important;
}
.settings-row {
  background: linear-gradient(160deg, #060609, #020203) !important;
  border-color: rgba(255,255,255,0.07) !important;
}
.settings-row:hover {
  border-color: rgba(230,233,242,0.32) !important;
  background: linear-gradient(160deg, #0a0b13, #030305) !important;
}
.settings-row[data-on="true"] {
  border-color: rgba(33,208,122,0.42) !important;
  background: linear-gradient(160deg, rgba(33,208,122,0.07), #020303) !important;
  box-shadow: 0 0 14px -6px rgba(125,255,196,0.4) !important;
}
.settings-footer {
  background: linear-gradient(160deg, #060609, #020203) !important;
  border-color: rgba(255,255,255,0.06) !important;
}
.sr-track { background: rgba(255,255,255,0.09); }

/* ════════════════════════════════════════════════════════════════════════════
   📜 TRADING JOURNAL UPGRADE + ✨ COHESIVE PREMIUM GLOW PASS   (Request F · Part 2)
   ──────────────────────────────────────────────────────────────────────────
   • A live scoreboard ribbon (streak · best · AI shots · selectivity) folded
     into the win/loss card — auto-fed by renderWinLossCard().
   • The journal header, win/loss card, inner tiles, filters + prediction card
     get a richer premium treatment.
   • Every card across the platform breathes the same ambient glow + hover lift,
     so the whole surface feels alive and cohesive.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Live scoreboard ribbon ─────────────────────────────────────────────── */
.wl-stats-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 2px;
}
.wl-stat {
  position: relative;
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 9px 11px 9px 14px;
  border-radius: 12px;
  border: 1px solid rgba(150,150,162,0.2);
  background: linear-gradient(155deg, rgba(10,12,22,0.9), rgba(6,7,12,0.82));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 14px 30px -22px rgba(0,0,0,0.9), 0 0 20px -12px rgba(139, 147, 168,0.4);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  overflow: hidden;
}
.wl-stat::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, rgba(230,233,242,0.9), rgba(250, 146, 0,0.6)); opacity: .8;
}
.wl-stat:hover {
  transform: translateY(-2px);
  border-color: rgba(139, 147, 168,0.45);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 18px 34px -20px rgba(0,0,0,0.92), 0 0 30px -8px rgba(230,233,242,0.55);
}
.wl-stat small {
  font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wl-stat strong {
  font-family: var(--font-display); font-size: 15px; line-height: 1.05; color: #f2f4f9; overflow-wrap: anywhere;
}
.wl-stat[data-stat="streak"] strong { color: #ffd76a; text-shadow: 0 0 16px rgba(255,201,90,0.45); }
.wl-stat[data-stat="streak"]::before { background: linear-gradient(180deg, #ffd76a, #ff9d54); }
.wl-stat[data-stat="best"]   strong { color: #7dffc4; text-shadow: 0 0 16px rgba(125,255,196,0.45); }
.wl-stat[data-stat="best"]::before   { background: linear-gradient(180deg, #7dffc4, #34d399); }
.wl-stat[data-stat="fired"]  strong { color: #e6e9f2; text-shadow: 0 0 16px rgba(230,233,242,0.45); }
.wl-stat[data-stat="fired"]::before  { background: linear-gradient(180deg, #e6e9f2, #8b93a8); }
.wl-stat[data-stat="select"] strong { color: #ff9aa2; font-size: 12.5px; text-shadow: 0 0 16px rgba(250, 146, 0,0.4); }
.wl-stat[data-stat="select"]::before { background: linear-gradient(180deg, #ff9aa2, #fa9200); }
@media (max-width: 560px) { .wl-stats-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── Journal header — premium glowing accent bar ────────────────────────── */
.sat-journal-title { position: relative; padding-left: 15px; }
.sat-journal-title::before {
  content: ""; position: absolute; left: 0; top: 3px; bottom: 3px; width: 4px; border-radius: 999px;
  background: linear-gradient(180deg, #e6e9f2, #7dffc4 50%, #fa9200);
  box-shadow: 0 0 18px rgba(230,233,242,0.6);
}

/* ── Win/loss card — richer ambient glow + hover ────────────────────────── */
.win-loss-card {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 16px 38px -22px rgba(0,0,0,0.85),
    0 0 26px -14px rgba(139, 147, 168,0.4) !important;
  transition: border-color .4s ease, box-shadow .4s ease !important;
}
.win-loss-card:hover {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 20px 44px -20px rgba(0,0,0,0.9),
    0 0 36px -10px rgba(230,233,242,0.55) !important;
}
.win-loss-card[data-pnl="profit"]:not([data-pending="true"]) {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 16px 38px -22px rgba(0,0,0,0.85),
    0 0 34px -10px rgba(125,255,196,0.5) !important;
}
.win-loss-card[data-pnl="loss"]:not([data-pending="true"]) {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 16px 38px -22px rgba(0,0,0,0.85),
    0 0 34px -10px rgba(139, 147, 168,0.5) !important;
}

/* ── Win/loss inner tiles + filters — soft glow + lift ──────────────────── */
.wl-main { box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 0 22px -12px rgba(125,255,196,0.5); }
.wl-rate-card { box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 0 22px -12px rgba(139, 147, 168,0.55); }
.wl-main:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 0 30px -8px rgba(125,255,196,0.65); }
.wl-rate-card:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 0 30px -8px rgba(139, 147, 168,0.7); }
.journal-filter { transition: transform .25s ease, box-shadow .3s ease, border-color .3s ease, background .3s ease; }
.journal-filter:hover { transform: translateY(-1px); border-color: rgba(139, 147, 168,0.5); box-shadow: 0 0 22px -6px rgba(230,233,242,0.5); }

/* ════════════════════════════════════════════════════════════════════════
   ✨ COHESIVE GLOW — every card breathes the same premium light
   ════════════════════════════════════════════════════════════════════════ */
/* Quick Setup was missing a hover state — give it the same lift as the panels. */
.qs-card { transition: border-color .4s ease, box-shadow .4s ease !important; }
.qs-card:hover {
  border-color: rgba(125,255,196,0.55) !important;
  box-shadow:
    0 30px 64px -28px rgba(0,0,0,0.97),
    0 0 0 1px rgba(125,255,196,0.18) inset,
    0 0 38px -10px rgba(125,255,196,0.55) !important;
}
/* Status pills get a gentle hover glow. */
.sat-strip-pill { transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.sat-strip-pill:hover {
  transform: translateY(-1px);
  border-color: rgba(230,233,242,0.45) !important;
  box-shadow: 0 0 0 1px rgba(230,233,242,0.12) inset, 0 0 24px -10px rgba(230,233,242,0.6) !important;
}
/* Smart-score tiles inside journal panels. */
.smart-score-grid span { transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; box-shadow: 0 0 20px -14px rgba(230,233,242,0.5); }
.smart-score-grid span:hover { transform: translateY(-2px); border-color: rgba(230,233,242,0.45); box-shadow: 0 0 28px -8px rgba(230,233,242,0.6); }
/* Idle prediction card carries a soft ambient halo even before a trade fires. */
.trade-prediction-card:not(.is-win):not(.is-loss):not(.is-live) {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 18px 40px -24px rgba(0,0,0,0.88), 0 0 26px -16px rgba(250, 146, 0,0.45);
}
@media (prefers-reduced-motion: reduce) {
  .wl-stat:hover, .qs-card:hover, .sat-strip-pill:hover, .smart-score-grid span:hover,
  .journal-filter:hover, .wl-main:hover, .wl-rate-card:hover { transform: none; }
}

/* ============================================================================
   ✦ AETHER GLOW ENGINE — Request G ✦
   Cursor-reactive spotlight + 3D tilt + rotating conic halo on every card,
   crazy-detail neon glows on the numbers that matter, and living stateful FX.
   Overlays are injected by installAetherGlowEngine() in aether.js.
   ========================================================================= */

/* — Cursor spotlight overlay (a soft radial that tracks the pointer) — */
.ae-spot {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  z-index: 2;
  transition: opacity .45s ease;
  /* PERF: mix-blend-mode:screen on 44 cards created 44 compositing layers — the
     main cause of the lag. Removed; the radial tint still reads as a glow. */
  background: radial-gradient(
    var(--ae-spot-r, 260px) circle at var(--gx, 50%) var(--gy, 50%),
    var(--ae-spot-color, rgba(250, 146, 0,0.22)),
    transparent 62%
  );
}
/* Cards opt-in to relative positioning so overlays anchor correctly */
.qs-card, .qs-modules, .sat-panel, .ni-card, .win-loss-card,
.trade-prediction-card, .aether-core, .settings-group,
.smart-score-grid span, .journal-list li.journal-trade-card { position: relative; }

/* Reveal the spotlight on hover — premium, follows the cursor */
.qs-card:hover > .ae-spot,
.qs-modules:hover > .ae-spot,
.sat-panel:hover > .ae-spot,
.ni-card:hover > .ae-spot,
.win-loss-card:hover > .ae-spot,
.trade-prediction-card:hover > .ae-spot,
.aether-core:hover > .ae-spot,
.settings-group:hover > .ae-spot,
.smart-score-grid span:hover > .ae-spot,
.journal-list li.journal-trade-card:hover > .ae-spot { opacity: 1; }

/* Per-card spotlight tint — each card family glows in its signature hue */
.qs-card > .ae-spot               { --ae-spot-color: rgba(125,255,196,0.20); }
.qs-modules > .ae-spot            { --ae-spot-color: rgba(250, 146, 0,0.20); }
.sat-panel > .ae-spot             { --ae-spot-color: rgba(250, 146, 0,0.20); }
.ni-card > .ae-spot,
.aether-core > .ae-spot           { --ae-spot-color: rgba(230,233,242,0.20); }
.win-loss-card > .ae-spot         { --ae-spot-color: rgba(125,255,196,0.18); }
.trade-prediction-card > .ae-spot { --ae-spot-color: rgba(230,233,242,0.18); }
.settings-group > .ae-spot        { --ae-spot-color: rgba(250, 146, 0,0.18); }
.journal-list li.journal-trade-card > .ae-spot { --ae-spot-color: rgba(125,255,196,0.16); --ae-spot-r: 200px; }
.smart-score-grid span > .ae-spot { --ae-spot-color: rgba(230,233,242,0.22); --ae-spot-r: 120px; }

/* — 3D tilt: transition only; the transform is driven inline by JS so it
     composes with each card's existing hover-lift instead of fighting it — */
/* PERF: will-change only while hovering (was permanent on 33 cards = 33 GPU
   layers). Richer, GPU-cheap glow on hover for the "advanced" feel. */
.ae-tilt { transition: transform .16s ease-out, box-shadow .3s ease; }
.ae-tilt:hover { will-change: transform; box-shadow: 0 22px 50px -26px rgba(250, 146, 0,0.85), 0 0 0 1px rgba(250, 146, 0,0.28), 0 0 30px -10px rgba(230,233,242,0.4); }

/* — Rotating conic halo ring (hero cards only) — */
.ae-halo {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  padding: 1.4px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0.5;
  transition: opacity .4s ease;
}
.qs-card:hover > .ae-halo,
.aether-core:hover > .ae-halo { opacity: 1; }
.ae-halo::before {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 240%; height: 240%;
  transform: translate(-50%, -50%) rotate(0turn);
  background: conic-gradient(from 0deg,
    transparent 0deg,
    rgba(230,233,242,0.75) 40deg,
    transparent 110deg,
    rgba(250, 146, 0,0.70) 200deg,
    transparent 270deg,
    rgba(125,255,196,0.60) 330deg,
    transparent 360deg);
  animation: aeHaloSpin 9s linear infinite;
}
@keyframes aeHaloSpin { to { transform: translate(-50%, -50%) rotate(1turn); } }

/* ============================================================================
   ✦ CRAZY-DETAIL ANALYZER GLOWS — neon on the numbers that matter ✦
   ========================================================================= */
.sat-jt-metric strong,
.qs-intel-m strong,
.smart-score-grid strong,
.wl-grid strong {
  text-shadow: 0 0 14px rgba(230,233,242,0.35);
  transition: text-shadow .25s ease, transform .25s ease, color .25s ease;
}
.sat-jt-metric:hover strong,
.qs-intel-m:hover strong,
.smart-score-grid span:hover strong {
  text-shadow: 0 0 22px rgba(230,233,242,0.65), 0 0 4px rgba(255,255,255,0.4);
}
.sat-jt-metric, .qs-intel-m { transition: transform .2s ease, box-shadow .3s ease, background .3s ease; }
.sat-jt-metric:hover, .qs-intel-m:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px -16px rgba(0,0,0,0.9), 0 0 20px -8px rgba(230,233,242,0.55);
}
.qs-intel-grade { text-shadow: 0 0 18px var(--qs-intel-glow, rgba(125,255,196,0.55)); }
/* Opportunity-radar chips — neon confidence + hover slide */
.aor-chip { transition: transform .18s ease, box-shadow .3s ease, border-color .3s ease; }
.aor-chip:hover {
  transform: translateX(2px);
  box-shadow: 0 8px 22px -14px rgba(0,0,0,0.9), 0 0 18px -6px rgba(250, 146, 0,0.6);
}
.aor-chip-bar > i { box-shadow: 0 0 10px rgba(230,233,242,0.6); }
.aor-chip-conf { text-shadow: 0 0 10px rgba(125,255,196,0.5); }
/* AETHER scan rows — tier-reactive hover glow */
.ac-scan-row { transition: transform .16s ease, box-shadow .3s ease, background .3s ease; }
.ac-scan-row:hover {
  transform: translateX(3px);
  box-shadow: inset 2px 0 0 rgba(230,233,242,0.7), 0 6px 18px -12px rgba(0,0,0,0.9);
}

/* ============================================================================
   ✦ LIVING GLOW — stateful FX that breathe with the platform ✦
   ========================================================================= */
.chip.chip-online, .chip-online { animation: aeLivePulse 2.6s ease-in-out infinite; }
@keyframes aeLivePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(125,255,196,0.0), 0 0 10px -2px rgba(125,255,196,0.45); }
  50%      { box-shadow: 0 0 0 4px rgba(125,255,196,0.06), 0 0 20px 0 rgba(125,255,196,0.7); }
}
[data-on="true"], [aria-pressed="true"], .is-armed, .toggle.active {
  box-shadow: 0 0 0 1px rgba(125,255,196,0.4), 0 0 18px -4px rgba(125,255,196,0.6) !important;
}
.is-scanning, [data-scanning="true"] { position: relative; overflow: hidden; }
.is-scanning::after, [data-scanning="true"]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 30%, rgba(230,233,242,0.12) 50%, transparent 70%);
  transform: translateX(-100%);
  animation: aeScanSweep 1.8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes aeScanSweep { to { transform: translateX(100%); } }

/* — Respect reduced-motion: kill the kinetic flair, keep the static glow — */
@media (prefers-reduced-motion: reduce) {
  .ae-tilt { transform: none !important; }
  .ae-halo::before,
  .chip.chip-online, .chip-online,
  .is-scanning::after, [data-scanning="true"]::after { animation: none; }
  .ae-spot { transition: none; }
}

/* ============================================================================
   ✦ SKILLI GALAXY PORTAL — cinematic warp transition into Auto Trading ✦
   A full-bleed canvas spiral-galaxy curtain that covers the viewport while the
   Deriv session reconnects, then dissolves to reveal the command center.
   ========================================================================= */
.galaxy-portal {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  background:
    radial-gradient(120% 90% at 50% 46%, rgba(28,20,68,0.55) 0%, rgba(6,6,22,0.85) 46%, #02030a 78%),
    #02030a;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  opacity: 1;
  transition: opacity 0.78s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.78s;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  contain: strict;
}
.galaxy-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
/* vignette + scanline veil sitting above the canvas for cinematic depth */
.galaxy-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(140% 110% at 50% 50%, rgba(0,0,0,0) 52%, rgba(0,0,0,0.55) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.018) 0px, rgba(255,255,255,0.018) 1px, transparent 2px, transparent 3px);
  mix-blend-mode: screen;
  opacity: 0.6;
}
/* centered heads-up display */
.galaxy-hud {
  position: relative;
  z-index: 3;
  text-align: center;
  pointer-events: none;
  padding: 0 26px;
  transform: translateY(2px);
  animation: galaxyHudIn 1.1s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
@keyframes galaxyHudIn {
  0%   { opacity: 0; transform: translateY(16px) scale(0.985); filter: blur(6px); }
  100% { opacity: 1; transform: translateY(2px) scale(1); filter: blur(0); }
}
.galaxy-mark {
  font-size: 11px;
  letter-spacing: 0.42em;
  font-weight: 700;
  text-transform: uppercase;
  color: rgba(230,233,242,0.82);
  text-shadow: 0 0 16px rgba(139, 147, 168,0.55);
  margin-bottom: 18px;
  padding-left: 0.42em;
}
.galaxy-title {
  font-size: clamp(26px, 5.6vw, 54px);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.04;
  background: linear-gradient(180deg, #ffffff 0%, #e6e9f2 48%, #d2d6e2 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #f1f2f6;
  text-shadow: 0 0 42px rgba(250, 146, 0,0.45);
  margin: 0;
}
.galaxy-sub {
  margin-top: 14px;
  font-size: clamp(12px, 1.9vw, 15px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(230,233,242,0.74);
  text-shadow: 0 0 18px rgba(139, 147, 168,0.4);
}
/* indeterminate hyperspace progress bar */
.galaxy-bar {
  position: relative;
  width: min(320px, 64vw);
  height: 3px;
  margin: 30px auto 0;
  border-radius: 999px;
  background: rgba(250, 146, 0,0.14);
  overflow: hidden;
  box-shadow: 0 0 22px rgba(250, 146, 0,0.28);
}
.galaxy-bar > i {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 42%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(250, 146, 0,0) 0%, rgba(255,120,135,0.95) 45%, rgba(250, 146, 0,1) 70%, rgba(250, 146, 0,0) 100%);
  box-shadow: 0 0 16px rgba(255,120,135,0.85);
  animation: galaxyBar 1.45s cubic-bezier(0.55, 0.06, 0.4, 0.95) infinite;
}
@keyframes galaxyBar {
  0%   { transform: translateX(-115%); }
  100% { transform: translateX(305%); }
}
.galaxy-skip {
  margin-top: 22px;
  font-size: 10.5px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(190,180,190,0.5);
  pointer-events: none;
  animation: galaxySkipPulse 2.4s ease-in-out infinite;
}
@keyframes galaxySkipPulse {
  0%, 100% { opacity: 0.34; }
  50%      { opacity: 0.72; }
}
/* dissolve-out: warp the curtain away to reveal the page */
.galaxy-portal.is-leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.galaxy-portal.is-leaving .galaxy-hud {
  transform: translateY(-10px) scale(1.04);
  opacity: 0;
  transition: transform 0.6s ease, opacity 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .galaxy-hud { animation: none; }
  .galaxy-bar > i { animation: galaxyBar 2.4s linear infinite; }
  .galaxy-skip { animation: none; opacity: 0.5; }
}

/* ── One-platform shared link hint (auto.html header) — shown only when truly
      offline & idle; the Deriv link is authorised once on the Trading Console ── */
.auto-conn-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  color: #ffe7c2;
  background: linear-gradient(135deg, rgba(255,170,90,0.16), rgba(255,120,90,0.12));
  border: 1px solid rgba(255,170,90,0.42);
  box-shadow: 0 0 18px -6px rgba(255,160,90,0.55);
  transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
  animation: aeLivePulseWarn 2.8s ease-in-out infinite;
}
.auto-conn-hint:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg, rgba(255,180,100,0.24), rgba(255,130,100,0.18));
  box-shadow: 0 0 26px -4px rgba(255,170,100,0.8);
}
.auto-conn-hint[hidden] { display: none !important; }
@keyframes aeLivePulseWarn {
  0%, 100% { box-shadow: 0 0 14px -8px rgba(255,160,90,0.5); }
  50%      { box-shadow: 0 0 24px -2px rgba(255,170,100,0.85); }
}
@media (prefers-reduced-motion: reduce) { .auto-conn-hint { animation: none; } }

/* ════════════════════════════════════════════════════════════════════════
   ⚡⚡ GODMIND QUANTUM ENGINE — Zeus brand identity. Smart red-lightning logo
   glow, a forged silver/crimson wordmark, and an ambient crimson storm-flash
   across the whole platform. (Lightning pauses while scrolling + tab hidden.)
   ════════════════════════════════════════════════════════════════════════ */
.brand-logo {
  border-radius: 14px;
  filter: drop-shadow(0 0 13px rgba(250, 146, 0,.55)) drop-shadow(0 0 2px rgba(255,255,255,.4));
  animation: gmLogoPulse 3.4s ease-in-out infinite;
  will-change: filter;
}
@keyframes gmLogoPulse {
  0%,100% { filter: drop-shadow(0 0 11px rgba(250, 146, 0,.5)) drop-shadow(0 0 2px rgba(255,255,255,.35)); }
  50%     { filter: drop-shadow(0 0 26px rgba(250, 146, 0,.92)) drop-shadow(0 0 7px rgba(139, 147, 168,.6)) drop-shadow(0 0 2px rgba(255,255,255,.55)); }
}
.brand-title {
  background: linear-gradient(180deg, #ffffff 0%, #e6e9f2 44%, #b9bdcb 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 0 22px rgba(255,255,255,.12); letter-spacing: .005em;
}
.brand-title em {
  font-style: normal;
  background: linear-gradient(135deg, #fa9200, #8b93a8);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 13px rgba(250, 146, 0,.6));
}
.brand-sub { color: #8b93a8 !important; letter-spacing: .07em; }
.aether-header.glass {
  border-bottom: 1px solid rgba(250, 146, 0,.22) !important;
  box-shadow: 0 10px 40px -20px rgba(250, 146, 0,.5), inset 0 1px 0 rgba(255,255,255,.05) !important;
}
/* primary buttons → forged crimson */
.btn-primary, #connect-btn {
  background: linear-gradient(135deg, #fa9200 0%, #c47a14 100%) !important;
  box-shadow: 0 12px 30px -12px rgba(250, 146, 0,.85), inset 0 1px 0 rgba(255,255,255,.25) !important;
  border-color: transparent !important;
}
/* ⚡ ZEUS LIGHTNING — ambient crimson storm-flash over the whole platform */
.gm-lightning {
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  mix-blend-mode: screen; opacity: 0;
  background:
    linear-gradient(102deg, transparent 41%, rgba(139, 147, 168,.45) 47%, rgba(255,255,255,.9) 49%, rgba(139, 147, 168,.45) 51%, transparent 59%),
    radial-gradient(120% 55% at 50% -12%, rgba(139, 147, 168,.4), transparent 62%);
  animation: gmBolt 9s linear infinite;
  will-change: opacity;
}
@keyframes gmBolt {
  0%, 100% { opacity: 0; }
  1.1% { opacity: .92; } 1.9% { opacity: .14; } 2.5% { opacity: .72; } 3.3% { opacity: 0; }
  46% { opacity: 0; } 47% { opacity: .5; } 47.7% { opacity: 0; }
}
html.is-scrolling.gm-shed .gm-lightning, html.aether-tab-hidden .gm-lightning { animation-play-state: paused; opacity: 0; }
@media (prefers-reduced-motion: reduce) { .gm-lightning, .brand-logo { animation: none; } }

/* ⚡ UNIFIED BRAND MARK — identical emblem to the public home page (shell.css
   .brand-mark): a red-black gradient badge with a glowing lightning bolt. Uses
   the existing .brand-logo size + gmLogoPulse glow, so the console header and
   the landing page now wear the exact same logo. */
.gm-mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; flex: 0 0 auto;
  line-height: 1; color: transparent; overflow: hidden; border-radius: 12px;
  /* upward-trending-arrow badge (logo.svg) — B&W monochrome mark */
  background: url('/logo.svg?v=real1') center/cover no-repeat;
  box-shadow: 0 0 0 1px rgba(255,255,255,.10) inset;
  text-shadow: none;
}

/* ════════════════════════════════════════════════════════════════════════
   ✨✨ MAGNIFICENT — platform-wide premium flourishes (GPU-cheap: hover-only
   sweeps + a few low-cost idle accents; all respect reduced-motion).
   ════════════════════════════════════════════════════════════════════════ */
/* Glass cards lift with a crimson halo + a one-shot diagonal sheen on hover. */
.glass, .glass-inset, .aether-core, .sat-card, .module-panel {
  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease, border-color .3s ease;
}
.glass:hover, .glass-inset:hover, .sat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 50px -26px rgba(0,0,0,.85), 0 0 30px -10px rgba(250, 146, 0,.45), inset 0 1px 0 rgba(255,255,255,.06);
  border-color: rgba(250, 146, 0,.4);
}
/* Section/heading wordmarks get a subtle forged-silver shimmer. */
.aether-core > h2, .sat-command-hero h1, .panel-title, .module-title {
  background: linear-gradient(100deg, #f4f5f8 0%, #ffffff 18%, #ffb3b9 33%, #f4f5f8 50%, #ffffff 68%, #ffb3b9 83%, #f4f5f8 100%);
  background-size: 250% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: magTitle 9s ease-in-out infinite;
}
@keyframes magTitle { 0%,100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }
/* KPI / stat values pulse with a faint crimson aura — premium liveliness. */
.kpi-value, .stat-value, .cockpit-pl-value {
  text-shadow: 0 0 14px rgba(250, 146, 0,.28);
}
@media (prefers-reduced-motion: reduce) {
  .aether-core > h2, .sat-command-hero h1, .panel-title, .module-title { animation: none; }
  .glass:hover, .glass-inset:hover, .sat-card:hover { transform: none; }
}

/* ════════════════════════════════════════════════════════════════════════
   ⚡ GENERATIONAL POLISH — the red/black/white finish. Forged-crimson title
   glow, a living crimson aura when any card is touched, and a hairline red
   seam of energy across the brand surfaces.
   ════════════════════════════════════════════════════════════════════════ */
#view-auto .sat-row-title, .section-head h2, .sat-panel-head h3, .aether-core .ac-verdict-line {
  text-shadow: 0 0 18px rgba(250, 146, 0,.22);
}
#view-auto .qs-card:hover, #view-auto .sat-panel:hover, #view-auto .sat-crack:hover,
#view-auto .ni-card:hover, #view-auto .ai-opportunity-radar:hover, #view-auto .ai-auto-pilot:hover,
#view-auto .sch-auto:hover, #view-auto .ac-scan-row:hover, #view-auto .sch-bk-card:hover {
  border-color: rgba(250, 146, 0,.42) !important;
  box-shadow: 0 24px 60px -28px rgba(0,0,0,.95), 0 0 26px -10px rgba(250, 146, 0,.5), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
/* crimson energy seam atop the command hero + AETHER deck */
.sat-command-hero, .aether-core { position: relative; }
.sat-command-hero::after, .aether-core::after {
  content: ""; position: absolute; left: 14%; right: 14%; top: 0; height: 2px; border-radius: 2px; pointer-events: none;
  background: linear-gradient(90deg, transparent, #fa9200 35%, #ffffff 50%, #fa9200 65%, transparent);
  box-shadow: 0 0 18px 2px rgba(250, 146, 0,.6); opacity: .8;
}
/* selection + scrollbar in brand red */
::selection { background: rgba(250, 146, 0,.32); color: #fff; }
#view-auto ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #fa9200, #c47a14); border-radius: 8px; }

/* ════════════════════════════════════════════════════════════════════════
   ⚡⚡ GODMIND LIGHTNING STORM — the Zeus transition into Auto Trading.
   Strobe flashes + procedurally-branching crimson bolts + screen-quake. Built
   by SkilliLightning.strike(). Reduced-motion shows a calm single flash.
   ════════════════════════════════════════════════════════════════════════ */
.gm-strike {
  position: fixed; inset: 0; z-index: 999999; overflow: hidden; pointer-events: auto;
  background: radial-gradient(120% 120% at 50% 0%, rgba(40,6,10,.92), rgba(3,1,2,.97));
  animation: gmStrikeIn .12s ease-out both;
}
.gm-strike.gm-strike-out { animation: gmStrikeOut .34s ease-in forwards; }
@keyframes gmStrikeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes gmStrikeOut { to { opacity: 0; } }

.gm-strike-flash {
  position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen;
  background:
    radial-gradient(80% 60% at 50% -10%, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(120% 90% at 50% 50%, rgba(139, 147, 168,.5), transparent 70%);
  animation: gmFlash 1.25s steps(1, end) both;
}
@keyframes gmFlash {
  0% { opacity: 0; } 3% { opacity: 1; } 7% { opacity: .1; } 10% { opacity: .92; } 14% { opacity: .15; }
  20% { opacity: .72; } 26% { opacity: .05; } 40% { opacity: .5; } 50% { opacity: .08; }
  68% { opacity: .42; } 80% { opacity: .05; } 100% { opacity: 0; }
}

.gm-strike-bolts {
  position: absolute; inset: -2%; width: 104%; height: 104%; pointer-events: none;
  filter: drop-shadow(0 0 6px rgba(139, 147, 168,.9)) drop-shadow(0 0 16px rgba(139, 147, 168,.6));
  animation: gmBoltsFlicker 1.25s steps(1, end) both;
}
@keyframes gmBoltsFlicker {
  0% { opacity: 0; } 4% { opacity: 1; } 9% { opacity: .05; } 12% { opacity: 1; } 17% { opacity: .1; }
  24% { opacity: .85; } 30% { opacity: 0; } 44% { opacity: .9; } 52% { opacity: 0; }
  66% { opacity: .7; } 74% { opacity: 0; } 100% { opacity: 0; }
}
.gm-bolt-main   { fill: none; stroke: #fff;     stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 2px #fff); }
.gm-bolt-branch { fill: none; stroke: #ffd0d4;  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .85; }

.gm-strike-hud {
  position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%);
  text-align: center; pointer-events: none; animation: gmHud 1.25s ease-out both;
}
@keyframes gmHud {
  0% { opacity: 0; transform: translateY(-50%) scale(.9); }
  18% { opacity: 1; transform: translateY(-50%) scale(1); }
  82% { opacity: 1; } 100% { opacity: .9; }
}
.gm-strike-emblem { font-size: 72px; line-height: 1; color: #fff; text-shadow: 0 0 26px rgba(139, 147, 168,1), 0 0 8px #fff; animation: gmEmblem 1.25s ease-out both; }
@keyframes gmEmblem { 0%,8% { transform: scale(.6); filter: blur(2px); } 14% { transform: scale(1.15); } 22% { transform: scale(1); } }
.gm-strike-title { margin-top: 12px; font: 900 30px/1 var(--font-display, system-ui); letter-spacing: .16em; color: #fff; text-shadow: 0 0 22px rgba(139, 147, 168,.9); }
.gm-strike-sub   { margin-top: 9px; font: 700 13px/1.3 var(--font-display, system-ui); letter-spacing: .18em; text-transform: uppercase; color: #ff8a92; }
.gm-strike-skip  { position: absolute; bottom: 26px; left: 0; right: 0; text-align: center; font: 600 11px/1 var(--font-display, system-ui); letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.5); }

/* Screen-quake — the whole document shudders as the storm hits. */
html.gm-quake { animation: gmQuake .62s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes gmQuake {
  0%,100% { transform: translate(0,0); } 10% { transform: translate(-3px,2px); } 22% { transform: translate(4px,-3px); }
  34% { transform: translate(-5px,1px); } 46% { transform: translate(4px,3px); } 58% { transform: translate(-3px,-2px); }
  70% { transform: translate(2px,2px); } 82% { transform: translate(-2px,-1px); }
}

/* Reduced-motion: a calm single flash, no strobe / quake. */
.gm-strike-reduce .gm-strike-flash, .gm-strike-reduce .gm-strike-bolts { animation: none; opacity: .4; }
@media (prefers-reduced-motion: reduce) { html.gm-quake { animation: none; } }

/* "or" divider between the token field and the one-click button */
.gm-or { display: flex; align-items: center; gap: 12px; margin: 14px 0 10px; color: var(--text-muted, #9a979e); font: 700 11px/1 var(--font-display, system-ui); letter-spacing: .14em; text-transform: uppercase; }
.gm-or::before, .gm-or::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent); }

/* 🆕 New Options API transport toggle */
.gm-transport .toggle { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.gm-transport-opts { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.gm-transport-opts[hidden] { display: none; }
.gm-transport-opts select { max-width: 260px; }
.gm-transport summary .setup-pill { background: rgba(33,208,122,.16); border-color: rgba(33,208,122,.4); color: #7dffc4; }

/* 🔧 Live connection log */
.gm-diag-box { margin-top: 10px; border: 1px solid rgba(250, 146, 0,.28); border-radius: 12px; background: rgba(0,0,0,.45); overflow: hidden; }
.gm-diag-head { display: flex; align-items: center; gap: 6px; padding: 8px 11px; font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .08em; text-transform: uppercase; color: #ff9aa2; border-bottom: 1px solid rgba(250, 146, 0,.18); }
.gm-diag-copy { font: 700 10px/1 var(--font-display, system-ui); padding: 5px 10px; border-radius: 7px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.05); color: #e6e9f2; cursor: pointer; }
.gm-diag-copy:first-of-type { margin-left: auto; }
.gm-diag-copy:hover { background: rgba(255,255,255,.1); }
.gm-diag { margin: 0; padding: 10px 12px; max-height: 200px; overflow: auto; font: 500 11px/1.5 var(--font-mono, ui-monospace, monospace); color: #cdd0da; white-space: pre-wrap; word-break: break-word; }

/* App ID badge — shows which App ID will be used before connecting */
.gm-appid-badge { margin: 8px 0; padding: 9px 12px; border-radius: 10px; font: 600 11.5px/1.45 var(--font-display, system-ui); }
.gm-appid-badge:empty { display: none; }
.gm-appid-badge[data-state="default"] { color: #ffd0a0; background: rgba(255,170,60,.1); border: 1px solid rgba(255,170,60,.3); }
.gm-appid-badge[data-state="set"] { color: #bdf5d6; background: rgba(33,208,122,.1); border: 1px solid rgba(33,208,122,.3); }
.gm-appid-badge strong { color: #fff; }

/* Connect panel — OAuth-primary */
.gm-connect-tagline { margin: 4px 0 14px; color: var(--text-dim, #e7cfd3); font-size: 13px; line-height: 1.5; }
.gm-connect-tagline strong { color: #fff; }
.btn-deriv-oauth.gm-connect-main { padding: 18px 22px; font-size: 17px; }

/* 🔑 Old connection (Deriv API token) — legacy, tucked into a collapsed disclosure */
.gm-legacy-conn { margin-top: 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.02); }
/* A global `.field{display:flex}` overrides the UA's details-collapse, so force it. */
.gm-legacy-conn:not([open]) > *:not(summary) { display: none !important; }
.gm-legacy-conn > summary { list-style: none; cursor: pointer; padding: 12px 14px; display: flex; align-items: center; gap: 9px; font: 700 12.5px/1 var(--font-display, system-ui); color: var(--text-muted, #b6a9ac); border-radius: 13px; transition: color .2s ease, background .2s ease; }
.gm-legacy-conn > summary::-webkit-details-marker { display: none; }
.gm-legacy-conn > summary::after { content: "▾"; margin-left: auto; opacity: .55; transition: transform .2s ease; }
.gm-legacy-conn[open] > summary::after { transform: rotate(180deg); }
.gm-legacy-conn > summary:hover { color: #fff; background: rgba(255,255,255,.03); }
.gm-legacy-ic { opacity: .85; }
.gm-legacy-conn .field { margin: 4px 14px 12px; }
.gm-legacy-conn > .btn-primary { margin: 0 14px 14px; }

/* Engine-default inputs kept in the DOM for the trading console — never shown. */
.gm-engine-defaults, .gm-engine-defaults[hidden] { display: none !important; }

/* 🟢🔴 Demo / Real account picker — shown after Deriv authorises */
.gm-acct-modal {
  position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: radial-gradient(120% 120% at 50% 0%, rgba(40,6,10,.86), rgba(3,1,2,.93));
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: gmAcctIn .2s ease both;
}
@keyframes gmAcctIn { from { opacity: 0; } to { opacity: 1; } }
.gm-acct-card {
  width: min(440px, 96vw); max-height: 90vh; overflow: auto; text-align: center;
  background: linear-gradient(170deg, #1a0d10, #0a0608 70%, #050203);
  border: 1px solid rgba(250, 146, 0,.32); border-radius: 22px; padding: 26px 22px 18px;
  box-shadow: 0 40px 100px -30px #000, 0 0 60px -20px rgba(139, 147, 168,.5), inset 0 1px 0 rgba(255,255,255,.06);
  animation: gmAcctCard .35s cubic-bezier(.2,.8,.3,1) both;
}
@keyframes gmAcctCard { from { transform: translateY(18px) scale(.97); opacity: 0; } to { transform: none; opacity: 1; } }
.gm-acct-emblem { font-size: 40px; line-height: 1; filter: drop-shadow(0 0 18px rgba(139, 147, 168,.9)); }
.gm-acct-h { margin-top: 10px; font: 900 21px/1.1 var(--font-display, system-ui); color: #fff; }
.gm-acct-sub { margin-top: 6px; color: var(--text-dim, #e7cfd3); font-size: 13px; }
.gm-acct-group { margin-top: 18px; text-align: left; }
.gm-acct-gh { font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .12em; text-transform: uppercase; color: #ff9aa2; margin: 0 0 8px 2px; }
.gm-acct-group.is-demo .gm-acct-gh { color: #7dffc4; }
.gm-acct-btn {
  display: flex; align-items: center; gap: 12px; width: 100%; margin-bottom: 8px; cursor: pointer;
  padding: 13px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04); color: #fff; font: inherit; text-align: left;
  transition: transform .15s ease, border-color .2s ease, background .2s ease, box-shadow .25s ease;
}
.gm-acct-btn:hover { transform: translateY(-2px); border-color: rgba(250, 146, 0,.55); background: rgba(139, 147, 168,.1); box-shadow: 0 14px 30px -16px rgba(139, 147, 168,.6); }
.gm-acct-group.is-demo .gm-acct-btn:hover { border-color: rgba(33,208,122,.55); background: rgba(33,208,122,.1); box-shadow: 0 14px 30px -16px rgba(33,208,122,.55); }
.gm-acct-dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; background: #fa9200; box-shadow: 0 0 10px #fa9200; }
.gm-acct-group.is-demo .gm-acct-dot { background: #21d07a; box-shadow: 0 0 10px #21d07a; }
.gm-acct-meta { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.gm-acct-cur { font: 800 15px/1 var(--font-display, system-ui); }
.gm-acct-id { font: 600 11.5px/1 var(--font-mono, ui-monospace, monospace); color: var(--text-muted, #b58a90); }
.gm-acct-go { font: 800 12px/1 var(--font-display, system-ui); color: #ff8a92; white-space: nowrap; }
.gm-acct-group.is-demo .gm-acct-go { color: #7dffc4; }
.gm-acct-cancel { margin-top: 14px; width: 100%; padding: 10px; border-radius: 11px; border: 1px solid rgba(255,255,255,.12); background: transparent; color: var(--text-muted, #b58a90); font: 700 12px/1 var(--font-display, system-ui); cursor: pointer; }
.gm-acct-cancel:hover { color: #fff; background: rgba(255,255,255,.05); }
/* The account you're currently trading on (shown when switching) */
.gm-acct-btn.is-current { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.09); cursor: default; }
.gm-acct-btn.is-current:hover { transform: none; }
.gm-acct-btn.is-current .gm-acct-go { color: #fff; opacity: .9; }
@media (prefers-reduced-motion: reduce) { .gm-acct-modal, .gm-acct-card { animation: none; } }

/* 🔄 Switch-account button — appears only when signed in via Deriv with ≥2 accounts */
.gm-switch-acct[hidden] { display: none !important; }
.gm-switch-acct { border-color: rgba(255,255,255,.18); }
.gm-switch-acct:hover { border-color: rgba(250, 146, 0,.55); color: #fff; background: rgba(139, 147, 168,.08); }

/* 🎙 Aether ON/OFF toggle (header) */
.aether-toggle {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; cursor: pointer;
  border-radius: 11px; border: 1px solid rgba(33,208,122,.4); background: rgba(33,208,122,.1);
  color: #bdf5d6; font: 700 12px/1 var(--font-display, system-ui); letter-spacing: .02em;
  transition: border-color .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}
.aether-toggle .at-dot { width: 9px; height: 9px; border-radius: 50%; background: #21d07a; box-shadow: 0 0 9px #21d07a; animation: atPulse 1.8s ease-in-out infinite; }
@keyframes atPulse { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
.aether-toggle:hover { border-color: rgba(33,208,122,.7); background: rgba(33,208,122,.16); color: #fff; }
.aether-toggle.is-off { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.04); color: var(--text-muted, #9a979e); }
.aether-toggle.is-off .at-dot { background: #5a5560; box-shadow: none; animation: none; }
.voice-orb.aether-muted { opacity: .52; filter: grayscale(.55); }

/* ⚡ Unified Aether control — orb + power pip fused into ONE control.
   The pip rides the orb's top-right edge as a status badge, so it reads as a
   single button (not two), while staying valid, focusable HTML. */
.aether-ctl { position: relative; display: inline-flex; }
.aether-ctl .voice-orb { padding-right: 18px; }
.aether-power {
  position: absolute; top: -6px; right: -6px;
  width: 26px; height: 26px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; cursor: pointer;
  border: 1px solid rgba(33,208,122,.7);
  background: radial-gradient(circle at 50% 35%, rgba(33,208,122,.95), rgba(20,150,90,.85));
  color: #04140c;
  box-shadow: 0 0 0 2px rgba(8,10,14,.92), 0 0 12px rgba(33,208,122,.65);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  z-index: 2;
}
.aether-power .ap-glyph { font-size: 12px; line-height: 1; font-weight: 900; }
.aether-power:hover { transform: scale(1.12); box-shadow: 0 0 0 2px rgba(8,10,14,.92), 0 0 18px rgba(33,208,122,.9); }
.aether-power:focus-visible { outline: 2px solid #7dffc4; outline-offset: 2px; }
.aether-power.is-off {
  border-color: rgba(139, 147, 168,.7);
  background: radial-gradient(circle at 50% 35%, rgba(80,78,86,.9), rgba(40,38,44,.9));
  color: #f4ede0;
  box-shadow: 0 0 0 2px rgba(8,10,14,.92), 0 0 10px rgba(139, 147, 168,.5);
}

/* 💰 Live balance is tappable → Demo ↔ Real switch */
#brief-balance { cursor: pointer; position: relative; transition: color .15s ease, text-shadow .2s ease; }
#brief-balance:hover { color: #fff; text-shadow: 0 0 14px rgba(250, 146, 0,.55); }
#brief-balance::after { content: "⇄"; font-size: .72em; margin-left: 6px; opacity: .5; }
#brief-balance:hover::after { opacity: 1; }

/* ════════════════════════════════════════════════════════════════════════════
   🔢 GODMIND DIGIT LAB — premium, futuristic analysis cards (per digit analyzer).
   Accent + glow are driven by --dlab-accent / --dlab-glow so each of the 3 cards
   reads as its own distinct instrument. ════════════════════════════════════════ */
.gm-dlab {
  --dlab-accent: #8b93a8; --dlab-glow: rgba(139, 147, 168,.5);
  margin: 14px 0; padding: 14px; border-radius: 18px; position: relative; overflow: hidden;
  background:
    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--dlab-accent) 13%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(12,8,12,.92), rgba(6,4,7,.96));
  border: 1px solid color-mix(in srgb, var(--dlab-accent) 34%, rgba(255,255,255,.08));
  box-shadow: 0 20px 50px -30px var(--dlab-glow), inset 0 1px 0 rgba(255,255,255,.05);
}
.gm-dlab::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(180deg, var(--dlab-accent), transparent 80%); box-shadow: 0 0 18px var(--dlab-glow); }
.gm-dlab.is-paused { filter: grayscale(.55) brightness(.8); }
.gm-dlab-head { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.gm-dlab-ic { font-size: 22px; filter: drop-shadow(0 0 10px var(--dlab-glow)); }
.gm-dlab-ttl { display: flex; flex-direction: column; line-height: 1.15; flex: 1; min-width: 0; }
.gm-dlab-ttl b { font: 800 14px/1.2 var(--font-display, system-ui); color: #fff; letter-spacing: .01em; }
.gm-dlab-ttl i { font-style: normal; font-size: 11px; color: color-mix(in srgb, var(--dlab-accent) 70%, #cbd0dd); opacity: .9; }
.gm-dlab-power { display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; cursor: pointer; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); color: var(--text-muted,#9a979e);
  font: 800 11px/1 var(--font-display, system-ui); letter-spacing: .04em; text-transform: uppercase; transition: all .2s ease; }
.gm-dlab-power .gdp-dot { width: 8px; height: 8px; border-radius: 50%; background: #5a5560; }
.gm-dlab-power.is-on { border-color: color-mix(in srgb, var(--dlab-accent) 55%, transparent); background: color-mix(in srgb, var(--dlab-accent) 16%, transparent); color: #fff; }
.gm-dlab-power.is-on .gdp-dot { background: var(--dlab-accent); box-shadow: 0 0 10px var(--dlab-accent); animation: atPulse 1.5s ease-in-out infinite; }
.gm-dlab-power:hover { transform: translateY(-1px); }

.gm-dlab-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 11px; }
.gm-dlab-card { padding: 13px; border-radius: 14px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); position: relative; }
.gdc-k { font: 800 10.5px/1 var(--font-display, system-ui); letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--dlab-accent) 65%, #aeb4c2); margin-bottom: 10px; }

/* Prediction */
.gm-dlab-predict { background: linear-gradient(180deg, color-mix(in srgb, var(--dlab-accent) 12%, transparent), rgba(255,255,255,.02)); border-color: color-mix(in srgb, var(--dlab-accent) 30%, transparent); }
.gdc-call { font: 900 26px/1 var(--font-display, system-ui); color: #fff; letter-spacing: .01em; text-shadow: 0 0 22px var(--dlab-glow); margin-bottom: 11px; }
.gdc-call.is-ready { color: var(--dlab-accent); }
.gdc-conf { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.gdc-conf-bar { flex: 1; height: 7px; border-radius: 4px; background: rgba(255,255,255,.08); overflow: hidden; }
.gdc-conf-bar span { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, color-mix(in srgb, var(--dlab-accent) 60%, #fff), var(--dlab-accent)); box-shadow: 0 0 10px var(--dlab-glow); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.gdc-conf b { font: 800 13px/1 var(--font-mono, ui-monospace, monospace); color: #fff; min-width: 38px; text-align: right; }
.gdc-prob { display: flex; justify-content: space-between; align-items: baseline; font-size: 11.5px; color: var(--text-muted,#9a979e); margin-bottom: 11px; }
.gdc-prob strong { font: 800 16px/1 var(--font-display, system-ui); color: #fff; }
.gdc-trade { width: 100%; padding: 11px; border-radius: 11px; border: none; cursor: pointer; color: #fff;
  font: 800 13px/1 var(--font-display, system-ui); letter-spacing: .02em;
  background: linear-gradient(180deg, color-mix(in srgb, var(--dlab-accent) 88%, #000), color-mix(in srgb, var(--dlab-accent) 60%, #000));
  box-shadow: 0 12px 26px -14px var(--dlab-glow); transition: transform .15s ease, box-shadow .25s ease, filter .2s ease; }
.gdc-trade:hover { transform: translateY(-2px); box-shadow: 0 18px 34px -14px var(--dlab-glow); filter: saturate(1.15) brightness(1.06); }
.gdc-trade:active { transform: translateY(0) scale(.985); }
.gdc-trade.is-ready { animation: gdcReady 1.6s ease-in-out infinite; }
@keyframes gdcReady { 0%,100% { box-shadow: 0 12px 26px -14px var(--dlab-glow); } 50% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--dlab-accent) 35%, transparent), 0 16px 30px -14px var(--dlab-glow); } }

/* Intelligent analysis — heatmap */
.gdc-heat { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; margin-bottom: 11px; align-items: end; height: 62px; }
.gdc-heat span { position: relative; display: flex; align-items: flex-end; justify-content: center; height: 100%; border-radius: 6px;
  background: rgba(255,255,255,.05); overflow: hidden; }
.gdc-heat span::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: calc(18% + var(--v, 0) * 82%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--dlab-accent) 90%, #fff), var(--dlab-accent)); opacity: .35; transition: height .5s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }
.gdc-heat span.is-hot::before { opacity: 1; background: linear-gradient(180deg, #ff8a92, #fa9200); }
.gdc-heat span.is-cold::before { opacity: .9; background: linear-gradient(180deg, #8fd6ff, #2f7fff); }
.gdc-heat span i { position: relative; z-index: 1; font: 800 10px/1 var(--font-mono, ui-monospace, monospace); color: #fff; padding-bottom: 4px; text-shadow: 0 1px 3px #000; }
.gdc-reads { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 10px; }
.gdc-reads span { display: flex; flex-direction: column; gap: 2px; }
.gdc-reads i { font-style: normal; font-size: 10px; color: var(--text-muted,#9a979e); }
.gdc-reads b { font: 800 13px/1 var(--font-display, system-ui); color: #fff; }

/* Summary */
.gdc-sumgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 10px; margin-bottom: 11px; }
.gdc-sumgrid span { display: flex; flex-direction: column; gap: 3px; }
.gdc-sumgrid i { font-style: normal; font-size: 10px; color: var(--text-muted,#9a979e); }
.gdc-sumgrid b { font: 800 15px/1 var(--font-display, system-ui); color: #fff; }
.gdc-lastk { font-size: 10px; color: var(--text-muted,#9a979e); margin-bottom: 6px; letter-spacing: .04em; text-transform: uppercase; }
.gdc-last { display: flex; gap: 4px; flex-wrap: wrap; }
.gdc-last i { font-style: normal; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; border-radius: 6px;
  font: 800 11px/1 var(--font-mono, ui-monospace, monospace); background: rgba(255,255,255,.06); color: #cbd0dd; }
.gdc-last i.ev { color: #7dffc4; background: rgba(33,208,122,.1); }
.gdc-last i.od { color: #8b93a8; background: rgba(250, 146, 0,.1); }
.gdc-last i.now { outline: 2px solid var(--dlab-accent); color: #fff; box-shadow: 0 0 12px var(--dlab-glow); }
@media (prefers-reduced-motion: reduce) { .gm-dlab-power.is-on .gdp-dot, .gdc-trade.is-ready { animation: none; } }

/* 🛡️ Deriv sign-in overlay — Authenticating → Connecting → Connected / Error */
.gm-auth-overlay { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; padding: 24px;
  background: radial-gradient(120% 120% at 50% 0%, rgba(40,6,10,.93), rgba(3,1,2,.97));
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); animation: gmAuthIn .25s ease both; }
.gm-auth-overlay.gm-auth-out { animation: gmAuthOut .35s ease both; }
@keyframes gmAuthIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes gmAuthOut { from { opacity: 1; } to { opacity: 0; } }
.gm-auth-card { text-align: center; color: #fff; max-width: 380px; }
.gm-auth-h { font: 800 21px/1.25 var(--font-display, system-ui); }
.gm-auth-sub { margin-top: 9px; color: var(--text-dim, #e7cfd3); font-size: 13px; line-height: 1.5; }
.gm-auth-orb { width: 58px; height: 58px; margin: 0 auto 20px; border-radius: 50%;
  border: 3px solid rgba(250, 146, 0,.22); border-top-color: #fa9200; animation: gmspin 1s linear infinite;
  box-shadow: 0 0 34px -6px rgba(250, 146, 0,.6); }
@keyframes gmspin { to { transform: rotate(360deg); } }
.gm-auth-emote { font-size: 52px; margin-bottom: 12px; animation: gmAuthPop .4s cubic-bezier(.2,1.5,.4,1) both; }
@keyframes gmAuthPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.gm-auth-close { margin-top: 18px; padding: 10px 22px; border-radius: 11px; border: 1px solid rgba(255,255,255,.16); background: transparent; color: #fff; font: 700 13px/1 var(--font-display, system-ui); cursor: pointer; }
.gm-auth-close:hover { background: rgba(255,255,255,.06); border-color: rgba(250, 146, 0,.5); }
@media (prefers-reduced-motion: reduce) { .gm-auth-overlay, .gm-auth-emote { animation: none; } .gm-auth-orb { animation-duration: 2.2s; } }

/* ═══════════════════════════════════════════════════════════════════════
   🎯 DIGITAL SENTINEL · 1-9 PRIME MATRIX
   ═══════════════════════════════════════════════════════════════════════ */
.sentinel{
  position:relative; overflow:hidden; margin:14px 0 22px; padding:20px;
  border-radius:24px;
  background:
    radial-gradient(120% 130% at 100% 0%, rgba(250, 146, 0,.14), transparent 55%),
    linear-gradient(160deg, rgba(20,10,13,.95), rgba(6,4,6,.96));
  border:1px solid rgba(250, 146, 0,.28);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 30px 70px -34px rgba(250, 146, 0,.6), 0 16px 36px -22px rgba(0,0,0,.85);
}
.sentinel-fx{ position:absolute; inset:-30%; pointer-events:none; z-index:0;
  background:radial-gradient(circle at 18% 12%, rgba(250, 146, 0,.22), transparent 45%); filter:blur(50px); opacity:.7; }
.sentinel > *{ position:relative; z-index:1; }

.sentinel-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.sentinel-tag{ display:inline-flex; align-items:center; gap:7px; font:800 9.5px/1 var(--font-display); letter-spacing:.18em; text-transform:uppercase;
  color:#ffd2d6; padding:5px 10px; border-radius:999px; border:1px solid rgba(250, 146, 0,.4); background:rgba(250, 146, 0,.12); }
.sentinel-tag .sb-dot{ width:7px; height:7px; border-radius:50%; background:#ff3a4f; box-shadow:0 0 10px #ff3a4f; animation:gmSentBlink 1.3s ease-in-out infinite; }
@keyframes gmSentBlink{ 0%,100%{opacity:1} 50%{opacity:.3} }
.sentinel-title h2{ margin:6px 0 2px; font:800 24px/1 var(--font-display); letter-spacing:.01em;
  background:linear-gradient(180deg,#fff,#ffd2d6 55%,#8b93a8); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.sentinel-title small{ color:var(--text-dim); font-size:11.5px; letter-spacing:.02em; }
.sentinel-controls{ display:flex; gap:10px; flex-wrap:wrap; }
.seg{ display:inline-flex; padding:3px; border-radius:12px; background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.08); }
.seg-btn{ border:none; background:transparent; color:var(--text-soft); cursor:pointer;
  font:800 11px/1 var(--font-display); letter-spacing:.1em; padding:8px 13px; border-radius:9px; transition:background .2s, color .2s, box-shadow .2s; }
.seg-btn.is-on{ color:#fff; background:linear-gradient(135deg, #fa9200, #c47a14); box-shadow:0 6px 16px -8px rgba(250, 146, 0,.9); }
#digital-sentinel[data-mode="auto"] [data-sentinel-mode="auto"]{ background:linear-gradient(135deg,#ffae54,#ff6a2c); box-shadow:0 6px 16px -8px rgba(255,140,60,.9); }

/* auto-exec flash banner */
.sentinel-flash{ margin-bottom:14px; padding:12px 16px; border-radius:13px; text-align:center;
  font:800 13px/1.3 var(--font-display); letter-spacing:.04em; color:#fff;
  border:1px solid rgba(250, 146, 0,.45); background:linear-gradient(135deg, rgba(250, 146, 0,.25), rgba(120,8,18,.4));
  opacity:0; transform:translateY(-6px); transition:opacity .3s ease, transform .3s ease; }
.sentinel-flash.show{ opacity:1; transform:none; }
.sentinel-flash[data-kind="auto"]{ border-color:rgba(255,160,70,.5); background:linear-gradient(135deg, rgba(255,150,60,.25), rgba(150,70,8,.4)); }

/* 3×3 matrix */
.sentinel-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.sentinel-tile{
  position:relative; overflow:hidden; cursor:pointer; aspect-ratio:1/.92; min-height:104px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  border-radius:18px; border:1px solid rgba(255,255,255,.1); color:#fff;
  background:linear-gradient(170deg, rgba(40,44,54,.5), rgba(10,11,16,.7));
  transition:transform .15s ease, box-shadow .3s ease, border-color .3s ease, background .3s ease, opacity .3s ease;
  font-family:var(--font-display);
}
.sentinel-tile:hover{ transform:translateY(-2px); }
.sentinel-tile .st-digit{ font-size:34px; font-weight:900; line-height:1; text-shadow:0 0 18px rgba(0,0,0,.6); }
.sentinel-tile .st-stat{ font-size:11px; font-weight:700; letter-spacing:.02em; opacity:.92; }
.sentinel-tile .st-stat b{ font-weight:900; }
.sentinel-tile .st-gap i{ font-style:normal; letter-spacing:-1px; }
.sentinel-tile .st-badge{ margin-top:3px; font-size:10px; font-weight:800; letter-spacing:.08em; padding:3px 8px; border-radius:999px; background:rgba(0,0,0,.32); }
.sentinel-tile.is-filtered{ display:none; }

/* badge states */
.sentinel-tile[data-badge="cold"]{ border-color:rgba(150,160,180,.2); background:linear-gradient(170deg, rgba(38,42,52,.5), rgba(9,10,14,.7)); color:#aeb6c6; }
.sentinel-tile[data-badge="cold"] .st-badge{ color:#9aa3b5; }
.sentinel-tile[data-badge="hot"]{ border-color:rgba(255,150,60,.6); color:#ffe7cf;
  background:linear-gradient(170deg, rgba(120,64,14,.5), rgba(40,20,6,.72)); box-shadow:0 0 22px -6px rgba(255,150,60,.55); }
.sentinel-tile[data-badge="hot"] .st-badge{ color:#ffb14a; background:rgba(255,150,60,.16); }
.sentinel-tile[data-badge="dead"]{ border-color:rgba(90,95,110,.28); color:#6b7180; opacity:.62;
  background:linear-gradient(170deg, rgba(26,28,34,.6), rgba(8,9,12,.8)); }
.sentinel-tile[data-badge="dead"] .st-badge{ color:#7b8290; }
.sentinel-tile[data-badge="prime"]{ border-color:#ff3a4f; color:#fff;
  background:linear-gradient(170deg, rgba(190,16,30,.62), rgba(70,6,12,.82));
  box-shadow:0 0 0 1px rgba(139, 147, 168,.6) inset, 0 0 34px -2px rgba(250, 146, 0,.85);
  animation:gmPrimePulse 1.1s ease-in-out infinite; }
.sentinel-tile[data-badge="prime"] .st-badge{ color:#fff; background:rgba(250, 146, 0,.4); }
@keyframes gmPrimePulse{
  0%,100%{ box-shadow:0 0 0 1px rgba(139, 147, 168,.6) inset, 0 0 24px -4px rgba(250, 146, 0,.7); }
  50%{ box-shadow:0 0 0 1px rgba(255,140,150,.9) inset, 0 0 44px 2px rgba(250, 146, 0,1); }
}
/* green Live Pulse on match */
.sentinel-tile.is-pulse{ animation:gmLivePulse .52s ease-out; }
@keyframes gmLivePulse{
  0%{ box-shadow:0 0 0 0 rgba(45,224,138,.9), 0 0 30px 4px rgba(45,224,138,.9); border-color:#2de08a; background:linear-gradient(170deg, rgba(45,224,138,.55), rgba(10,40,26,.8)); }
  100%{ box-shadow:0 0 0 0 rgba(45,224,138,0); }
}

/* overdue meter + leaderboard + bars */
.sentinel-meter{ display:flex; gap:12px; flex-wrap:wrap; align-items:stretch; margin-top:14px; }
.sm-avg, .sm-prime{ border-radius:14px; padding:12px 16px; border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.32); }
.sm-avg{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:120px; }
.sm-avg small{ font:700 9.5px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.sm-avg strong{ font:900 26px/1 var(--font-display); color:#fff; margin:3px 0; }
.sm-avg span{ font-size:10px; color:var(--text-dim); }
.sm-prime{ flex:1; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  border-color:rgba(250, 146, 0,.4); background:linear-gradient(135deg, rgba(250, 146, 0,.14), rgba(0,0,0,.34)); }
.smp-k{ font:800 10px/1 var(--font-display); letter-spacing:.12em; color:#ffd2d6; }
.smp-digit{ font:900 30px/1 var(--font-display); color:#fff; text-shadow:0 0 18px rgba(250, 146, 0,.7); }
.smp-detail{ font:700 12px/1.3 var(--font-display); color:var(--text-soft); letter-spacing:.02em; }
.smp-detail b{ color:#fff; }

/* 🧠 advanced intelligence strip */
.sentinel-intel{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:10px; margin-top:12px; }
.sentinel-intel .si-conf, .sentinel-intel .si-cell{ padding:10px 13px; border-radius:13px; border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.32); }
.si-conf-head{ display:flex; justify-content:space-between; align-items:center; }
.si-conf-head span{ font:800 9px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.si-conf-head b{ font:900 16px/1 var(--font-display); color:#fff; }
.si-conf-bar{ margin-top:8px; height:6px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.si-conf-bar span{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#fa9200,#ff8f4a); transition:width .4s cubic-bezier(.2,.85,.3,1.05); box-shadow:0 0 12px rgba(250, 146, 0,.6); }
.sentinel-intel .si-cell small{ display:block; font:700 8.5px/1.2 var(--font-display); letter-spacing:.1em; color:var(--text-dim); margin-bottom:5px; }
.sentinel-intel .si-cell small i{ font-style:normal; opacity:.6; }
.sentinel-intel .si-cell strong{ font:900 15px/1 var(--font-display); color:#e6e9f2; }
.sentinel-intel .si-cell strong[data-tier="up"]{ color:#3de08a; } .sentinel-intel .si-cell strong[data-tier="down"]{ color:#8b93a8; }
.si-regime strong[data-t="hot"]{ color:#3de08a; text-shadow:0 0 12px rgba(45,224,138,.5); }
.si-regime strong[data-t="cool"]{ color:#8b93a8; }
.si-regime strong[data-t="mid"]{ color:#ffc85a; }
.si-regime strong[data-t="wait"]{ color:var(--text-soft); }
@media (max-width:560px){ .sentinel-intel{ grid-template-columns:1fr 1fr; } }

.sentinel-leader{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:11px 16px; border-radius:12px;
  border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.3); flex-wrap:wrap; }
.sentinel-leader .sl-k{ font:800 9.5px/1 var(--font-display); letter-spacing:.16em; color:var(--text-dim); }
.sentinel-leader .sl-list{ font:800 14px/1 var(--font-display); letter-spacing:.04em; color:#fff; }
.sentinel-bars{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.sentinel-stake{ display:inline-flex; align-items:center; gap:9px; padding:9px 14px; border-radius:12px;
  border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); }
.sentinel-stake span:first-child{ font:800 9.5px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.sentinel-stake .ss-money{ font:900 18px/1 var(--font-display); color:#fff; display:inline-flex; align-items:center; gap:2px; }
.sentinel-stake input{ width:90px; background:transparent; border:none; color:#fff; font:900 18px/1 var(--font-display); outline:none; }
.sentinel-pnl{ display:inline-flex; flex-direction:column; gap:3px; padding:9px 16px; border-radius:12px;
  border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); }
.sentinel-pnl span{ font:800 9.5px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.sentinel-pnl strong{ font:900 18px/1 var(--font-display); }
.sentinel-pnl strong[data-tier="up"]{ color:#3de08a; } .sentinel-pnl strong[data-tier="down"]{ color:#8b93a8; } .sentinel-pnl strong[data-tier="flat"]{ color:#e6e9f2; }
.sentinel-status{ flex:1; min-width:160px; font-size:11.5px; color:var(--text-soft); letter-spacing:.01em; }

/* manual trade popup */
/* Floating, DRAGGABLE execution popup — reparented to <body> as a NON-blocking
   viewport layer, so the user can grab the card and place it anywhere on screen. */
.sentinel-pop{ position:fixed; inset:0; z-index:250; display:flex; align-items:flex-end; justify-content:center; padding-bottom:16px;
  background:transparent; pointer-events:none; }
.sentinel-pop-card{ pointer-events:auto; cursor:grab; user-select:none; -webkit-user-select:none; touch-action:none; padding-top:14px; }
.sentinel-pop-card.spop-dragging{ cursor:grabbing; box-shadow:0 42px 92px -22px rgba(0,0,0,.95), 0 0 48px -6px rgba(250,146,0,.6); }
.sentinel-pop-card button{ cursor:pointer; touch-action:auto; }
.spop-grip{ position:relative; width:46px; height:5px; border-radius:99px; margin:2px auto 15px; background:rgba(255,255,255,.32); transition:background .16s; }
.spop-grip::after{ content:"⠿ DRAG TO MOVE"; position:absolute; left:50%; top:10px; transform:translateX(-50%); white-space:nowrap;
  font:800 8px/1 var(--font-display); letter-spacing:.16em; color:rgba(255,255,255,.34); }
.sentinel-pop-card.spop-dragging .spop-grip{ background:rgba(250,146,0,.8); }
.sentinel-pop[hidden]{ display:none; }   /* the flex display must not beat the hidden attribute */
.sentinel-pop-card{ position:relative; width:min(360px,90%); padding:24px; border-radius:20px; text-align:center;
  background:linear-gradient(160deg, rgba(26,12,15,.98), rgba(10,6,8,.98)); border:1px solid rgba(250, 146, 0,.4);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.9), 0 0 40px -8px rgba(250, 146, 0,.5); }
.sentinel-pop-x{ position:absolute; top:10px; right:12px; width:30px; height:30px; border-radius:50%; cursor:pointer;
  border:1px solid rgba(255,255,255,.14); background:rgba(0,0,0,.4); color:#fff; font-size:17px; line-height:1; }
.spop-h{ font:900 22px/1.1 var(--font-display); color:#fff; }
.spop-h span{ color:#8b93a8; text-shadow:0 0 16px rgba(250, 146, 0,.7); }
.spop-sub{ margin:6px 0 18px; font-size:12px; color:var(--text-dim); }
.spop-btns{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.spop-btn{ display:flex; flex-direction:column; gap:4px; padding:14px 10px; border-radius:14px; cursor:pointer; color:#fff;
  font:900 15px/1 var(--font-display); letter-spacing:.04em; border:1px solid transparent; transition:transform .14s, box-shadow .25s; }
.spop-btn small{ font:600 10px/1 var(--font-body); letter-spacing:0; opacity:.8; }
.spop-btn:hover{ transform:translateY(-2px); }
.spop-match{ background:linear-gradient(135deg, #2de08a, #14965a); box-shadow:0 12px 28px -12px rgba(45,224,138,.9); color:#04140c; }
.spop-differ{ background:linear-gradient(135deg, #8b93a8, #c47a14); box-shadow:0 12px 28px -12px rgba(250, 146, 0,.9); }

@media (max-width:560px){
  .sentinel-tile{ min-height:92px; } .sentinel-tile .st-digit{ font-size:28px; }
  .sentinel-title h2{ font-size:21px; }
}
@media (prefers-reduced-motion:reduce){
  .sentinel-tile[data-badge="prime"]{ animation:none; } .sentinel-tag .sb-dot{ animation:none; } .sentinel-tile.is-pulse{ animation:none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   🔢 DIGIT LAB v2 — most-advanced premium liquid-glass + richer data-viz.
   Additive overrides: deeper glass, a dramatic prediction hero, a taller
   glowing 0-9 heatmap, and crisper summary chips. Zero per-frame blur.
   ═══════════════════════════════════════════════════════════════════════ */
.gm-dlab {
  background:
    radial-gradient(130% 85% at 100% -10%, color-mix(in srgb, var(--dlab-accent) 12%, transparent), transparent 56%),
    linear-gradient(180deg, rgba(20,21,30,0.62), rgba(8,9,14,0.74)) !important;
  border: 1px solid color-mix(in srgb, var(--dlab-accent) 22%, rgba(255,255,255,0.06)) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.07) inset, 0 24px 54px -36px var(--dlab-glow), 0 12px 28px -22px rgba(0,0,0,0.85) !important;
  border-radius: 20px !important; padding: 16px !important;
}
.gm-dlab-card {
  background:
    radial-gradient(100% 72% at 50% -12%, rgba(255,255,255,0.055), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.038), rgba(0,0,0,0.2)) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.06) inset, 0 12px 28px -22px rgba(0,0,0,0.82) !important;
  border-radius: 16px !important;
}
/* Prediction hero — bigger, dramatic, glowing */
.gm-dlab-predict {
  background:
    radial-gradient(125% 95% at 50% 0%, color-mix(in srgb, var(--dlab-accent) 22%, transparent), rgba(8,9,14,0.55) 72%) !important;
  border-color: color-mix(in srgb, var(--dlab-accent) 44%, transparent) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.08) inset, 0 0 34px -10px var(--dlab-glow) !important;
}
.gdc-call { font-size: 30px !important; letter-spacing: 0 !important; }
.gdc-k { font: 800 9.5px/1 var(--font-display, system-ui) !important; letter-spacing: .16em !important; text-transform: uppercase; color: color-mix(in srgb, var(--dlab-accent) 55%, var(--text-dim, #9aa3b5)) !important; }
/* Confidence bar → glossier */
.gdc-conf-bar span { box-shadow: 0 0 12px var(--dlab-glow); }
/* Taller, glowing heatmap with a baseline grid */
.gdc-heat { height: 80px !important; gap: 5px !important; }
.gdc-heat span { background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(0,0,0,0.25)) !important; border: 1px solid rgba(255,255,255,0.05); }
.gdc-heat span::before { border-radius: 5px 5px 3px 3px; box-shadow: 0 0 12px -3px var(--dlab-glow); }
.gdc-heat span.is-hot { box-shadow: 0 0 16px -4px rgba(250, 146, 0,0.7); }
.gdc-heat span.is-cold { box-shadow: 0 0 16px -4px rgba(47,127,255,0.6); }
/* Trade button — premium */
.gdc-trade {
  background: linear-gradient(135deg, color-mix(in srgb, var(--dlab-accent) 90%, #fff), color-mix(in srgb, var(--dlab-accent) 60%, #000)) !important;
  color: #07120c !important; font-weight: 900 !important;
  box-shadow: 0 10px 24px -10px var(--dlab-glow) !important;
}
.gdc-trade:hover { transform: translateY(-1px); }

/* ═══════════════════════════════════════════════════════════════════════
   🧾 HISTORY / JOURNAL v2 — cleaner liquid-glass result cards with a bold
   win/loss status rail + crisper hierarchy (replaces the muddy multi-radial).
   ═══════════════════════════════════════════════════════════════════════ */
.journal-list li.journal-trade-card {
  padding: 16px 16px 16px 20px !important;
  border-radius: 18px !important;
  background:
    radial-gradient(120% 70% at 50% -10%, rgba(255,255,255,0.05), transparent 60%),
    linear-gradient(180deg, rgba(24,26,36,0.92), rgba(12,13,19,0.94)) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.07) inset, 0 16px 38px -28px rgba(0,0,0,0.85) !important;
}
/* bold left status rail */
.journal-list li.journal-trade-card::after {
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 4px;
  border-radius: 0 4px 4px 0; background: rgba(150,160,180,0.5); pointer-events: none;
}
.journal-list li.j-win {
  background:
    radial-gradient(120% 70% at 0% 0%, rgba(45,224,138,0.14), transparent 52%),
    linear-gradient(180deg, rgba(20,30,26,0.92), rgba(10,15,13,0.94)) !important;
  border-color: rgba(45,224,138,0.5) !important;
  box-shadow: 0 0 0 1px rgba(45,224,138,0.28) inset, 0 16px 38px -26px rgba(45,224,138,0.5), 0 0 30px -14px rgba(45,224,138,0.4) !important;
}
.journal-list li.j-loss {
  background:
    radial-gradient(120% 70% at 0% 0%, rgba(139, 147, 168,0.14), transparent 52%),
    linear-gradient(180deg, rgba(32,20,24,0.92), rgba(16,10,12,0.94)) !important;
  border-color: rgba(139, 147, 168,0.5) !important;
  box-shadow: 0 0 0 1px rgba(139, 147, 168,0.28) inset, 0 16px 38px -26px rgba(139, 147, 168,0.5), 0 0 30px -14px rgba(139, 147, 168,0.4) !important;
}
.journal-list li.j-win::after  { background: linear-gradient(180deg, #5effb0, #2de08a); box-shadow: 0 0 14px rgba(45,224,138,0.8); }
.journal-list li.j-loss::after { background: linear-gradient(180deg, #ff8a97, #8b93a8); box-shadow: 0 0 14px rgba(139, 147, 168,0.8); }
/* win/loss summary card → liquid glass */
#journal-section .win-loss-card {
  background:
    radial-gradient(120% 80% at 50% -12%, rgba(255,255,255,0.05), transparent 58%),
    linear-gradient(180deg, rgba(22,23,33,0.93), rgba(10,11,17,0.96)) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.1) inset, 0 22px 50px -34px rgba(0,0,0,0.9) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   📱 UNIVERSAL FIT — every card + layout to every device, accurately.
   Overflow guards + grid-collapse + small-screen sizing. Safe (no global
   body overflow hacks): cards just can't exceed the viewport, and grids
   shrink their tracks instead of pushing the page wide.
   ═══════════════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
img, svg, canvas, video { max-width: 100%; }
.glass, .analyzer, .sat-panel, .sentinel, .gm-dlab, .journal, .win-loss-card,
.qs-card, .control-card-rich, .ad-card, .pricing-card { max-width: 100%; min-width: 0; }
/* every grid child may shrink below its content width (kills horizontal overflow) */
.analyzer-grid > *, .gm-dlab-grid > *, .sat-kpis > *, .sat-switches > *,
.sentinel-intel > *, .sentinel-grid > *, .sat-modgrid > *, .ni-grid > *,
.sd-zones-row > *, .np-reads > *, .gdc-sumgrid > * { min-width: 0; }
input, select, textarea, button { max-width: 100%; }

@media (max-width: 560px) {
  .container, .container-narrow { padding-left: 12px; padding-right: 12px; }
  .analyzer { padding: 15px; }
  .sentinel { padding: 14px; }
  .sat-kpis { grid-template-columns: repeat(2, 1fr); }
  .tabs-grouped { gap: 12px 10px; }
}
@media (max-width: 440px) {
  .gm-dlab-grid { grid-template-columns: 1fr; }
  .sentinel-intel { grid-template-columns: 1fr 1fr; }
  .sentinel-meter { flex-direction: column; }
  .sm-prime { width: 100%; }
  .analyzer { padding: 13px; border-radius: 16px; }
  .sentinel-tile { min-height: 82px; }
  .sentinel-tile .st-digit { font-size: 25px; }
  .gdc-call { font-size: 24px !important; }
  .spop-btns { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
  .sentinel-grid { gap: 7px; }
  .sentinel-tile { min-height: 74px; }
  .sentinel-tile .st-digit { font-size: 21px; }
  .sentinel-intel { grid-template-columns: 1fr; }
  .seg-btn { padding: 7px 10px; font-size: 10px; }
  .hero-title.h-hero { font-size: clamp(30px, 11vw, 44px); }
}

/* ═══════════════════════════════════════════════════════════════════════
   CHRONOS ENGINE v10.0 — tick-DNA dashboard for the rebuilt streak card.
   ═══════════════════════════════════════════════════════════════════════ */
[data-analyzer="streak"] .dir-hero, [data-analyzer="streak"] .dir-signals { display: none !important; }
/* CHRONOS owns the streak card — hide the redundant legacy directional buttons,
   trade-length and rounds controls (DEPLOY / AUTO replace them). */
[data-analyzer="streak"] .dir-actions,
[data-analyzer="streak"] .hybrid-controls,
[data-analyzer="streak"] .hybrid-rounds { display: none !important; }
.chronos {
  --chr: #7aa8ff; --chr-glow: rgba(122,168,255,.5);
  position: relative; overflow: hidden; margin: 2px 0 14px; padding: 16px; border-radius: 20px;
  background:
    radial-gradient(130% 90% at 100% -12%, color-mix(in srgb, var(--chr) 14%, transparent), transparent 56%),
    linear-gradient(180deg, rgba(16,18,26,0.95), rgba(8,9,14,0.97));
  border: 1px solid color-mix(in srgb, var(--chr) 26%, rgba(255,255,255,.06));
  box-shadow: 0 1px 0 rgba(255,255,255,.07) inset, 0 26px 58px -36px var(--chr-glow);
  font-family: var(--font-display, system-ui);
}
.chronos[data-dir="up"]   { --chr:#2de08a; --chr-glow:rgba(45,224,138,.55); }
.chronos[data-dir="down"] { --chr:#8b93a8; --chr-glow:rgba(139, 147, 168,.55); }
.chronos-fx { position:absolute; inset:-30%; pointer-events:none; background:radial-gradient(circle at 16% 10%, var(--chr-glow), transparent 45%); filter:blur(54px); opacity:.5; }
.chronos > * { position: relative; z-index: 1; }
.chr-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding-bottom:11px; margin-bottom:12px; border-bottom:1px solid color-mix(in srgb, var(--chr) 16%, rgba(255,255,255,.06)); }
.chr-inst { font:900 14px/1 var(--font-display); color:#fff; letter-spacing:.02em; }
.chr-stat { display:inline-flex; flex-direction:column; gap:2px; }
.chr-stat small { font:700 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.chr-stat b { font:800 13px/1 var(--font-mono, ui-monospace, monospace); color:#e6e9f2; }
.chr-stat b[data-t="up"]{ color:#3de08a; } .chr-stat b[data-t="down"]{ color:#8b93a8; }
.chr-clock { margin-left:auto; font:700 11px/1 var(--font-mono, ui-monospace, monospace); color:color-mix(in srgb, var(--chr) 70%, #cbd0dd); letter-spacing:.04em; }
.chr-verdict { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 15px; border-radius:14px; margin-bottom:11px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--chr) 14%, transparent), rgba(0,0,0,.34)); border:1px solid color-mix(in srgb, var(--chr) 30%, transparent); }
.chr-vtag { font:800 10px/1 var(--font-display); letter-spacing:.12em; color:var(--chr); }
.chr-vline { display:block; margin-top:6px; font:800 15px/1.25 var(--font-display); color:#fff; }
.chr-vconf { display:flex; flex-direction:column; align-items:center; gap:3px; }
.chr-vconf small { font:700 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.chr-vconf-ring { width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:conic-gradient(var(--chr) calc(var(--p,0)*1%), rgba(255,255,255,.08) 0); }
.chr-vconf-ring b { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#0a0b10; color:#fff; font:900 15px/1 var(--font-display); }
.chr-pred { display:flex; align-items:center; gap:12px; padding:9px 14px; border-radius:11px; margin-bottom:11px; background:rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.07); flex-wrap:wrap; }
.chr-pred-k { font:800 8.5px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.chr-pred-path { font:800 13px/1 var(--font-mono, ui-monospace, monospace); color:color-mix(in srgb, var(--chr) 60%, #fff); letter-spacing:.02em; }
.chr-dna { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:11px; }
.chr-dna-cell { padding:9px 10px; border-radius:11px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }
.chr-dna-cell small { display:block; font:700 8px/1.2 var(--font-display); letter-spacing:.08em; color:var(--text-dim); margin-bottom:5px; }
.chr-dna-cell b { font:800 12px/1 var(--font-mono, ui-monospace, monospace); color:#e6e9f2; }
.chr-layers { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:13px; }
.chr-layer { padding:9px 10px; border-radius:11px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); }
.chr-layer span { display:block; font:800 8px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); margin-bottom:5px; }
.chr-layer b { font:800 12px/1 var(--font-display); color:#aeb6c6; }
.chr-layer b[data-d="up"]{ color:#3de08a; } .chr-layer b[data-d="down"]{ color:#8b93a8; }
.chr-legs-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:9px; font:800 9.5px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.chr-legs-tot b { color:#fff; } .chr-legs-tot b[data-t="up"]{ color:#3de08a; } .chr-legs-tot b[data-t="down"]{ color:#8b93a8; }
.chr-legs { display:grid; gap:7px; margin-bottom:13px; }
.chr-leg { display:grid; grid-template-columns:26px 1fr 90px 42px; align-items:center; gap:10px; padding:8px 11px; border-radius:11px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.2)); border:1px solid rgba(255,255,255,.07); }
.cl-id { width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:8px; font:900 12px/1 var(--font-display); color:#07120c; background:linear-gradient(135deg, var(--chr), color-mix(in srgb, var(--chr) 55%, #000)); }
.chr-leg[data-fire=""] .cl-id { background:linear-gradient(135deg,#9aa3b5,#5a6070); color:#fff; }
.cl-type { font:800 12px/1.15 var(--font-display); color:#fff; min-width:0; }
.cl-type i { display:block; font:600 9.5px/1.2 var(--font-body); color:var(--text-dim); font-style:normal; margin-top:2px; }
.cl-bar { height:8px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.cl-bar span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, var(--chr), color-mix(in srgb, var(--chr) 50%, #fff)); box-shadow:0 0 10px var(--chr-glow); transition:width .4s ease; }
.cl-prob { font:900 13px/1 var(--font-display); color:#fff; text-align:right; }
.chr-deploy-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.chr-deploy { flex:1; min-width:160px; padding:13px 18px; border:none; border-radius:13px; cursor:pointer;
  font:900 13px/1 var(--font-display); letter-spacing:.08em; color:#06130d;
  background:linear-gradient(135deg, var(--chr), color-mix(in srgb, var(--chr) 55%, #000));
  box-shadow:0 12px 28px -10px var(--chr-glow); transition:transform .14s ease, box-shadow .25s ease; }
.chr-deploy:hover { transform:translateY(-1px); }
.chr-auto { padding:13px 16px; border-radius:13px; cursor:pointer; font:900 12px/1 var(--font-display); letter-spacing:.08em; color:var(--text-soft);
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); transition:all .2s ease; }
.chr-auto[data-on="true"] { color:#06130d; background:linear-gradient(135deg,#ffae54,#ff7a2c); border-color:transparent; box-shadow:0 8px 18px -8px rgba(255,140,60,.8); }
.chr-learn { font:700 10.5px/1 var(--font-display); color:var(--text-dim); letter-spacing:.02em; }
.chr-log { display:flex; flex-direction:column; gap:4px; max-height:140px; overflow:hidden; }
.chr-log-row { font:600 11px/1.4 var(--font-mono, ui-monospace, monospace); color:var(--text-soft); padding:5px 9px; border-radius:8px; background:rgba(0,0,0,.28); border-left:2px solid rgba(255,255,255,.12); }
.chr-log-row[data-k="fire"] { border-left-color:var(--chr); color:#fff; }
.chr-log-row[data-k="up"] { border-left-color:#2de08a; } .chr-log-row[data-k="down"] { border-left-color:#8b93a8; }
@media (max-width:560px){
  .chr-dna { grid-template-columns:repeat(3,1fr); }
  .chr-layers { grid-template-columns:repeat(2,1fr); }
  .chr-leg { grid-template-columns:24px 1fr 60px 38px; gap:8px; }
  .cl-type i { font-size:8.5px; }
}

/* CHRONOS v10.1 — Higher/Lower split, Skip Shield, working controls */
.chr-legs-head i { font-style:normal; font-weight:600; color:var(--text-dim); opacity:.85; }
.chr-hl { margin-bottom:11px; }
.chr-hl-bar { display:flex; height:30px; border-radius:11px; overflow:hidden; border:1px solid rgba(255,255,255,.08); }
.chr-hl-hi, .chr-hl-lo { display:flex; align-items:center; gap:6px; padding:0 11px; font:900 12px/1 var(--font-display); color:#fff; white-space:nowrap; overflow:hidden; transition:width .45s cubic-bezier(.2,.85,.3,1.05); }
.chr-hl-hi { background:linear-gradient(90deg, rgba(45,224,138,.85), rgba(45,224,138,.45)); justify-content:flex-start; }
.chr-hl-lo { background:linear-gradient(90deg, rgba(139, 147, 168,.45), rgba(139, 147, 168,.85)); justify-content:flex-end; }
.chr-hl-hi b, .chr-hl-lo b { font-weight:900; }
.chr-gate { margin-top:8px; padding:9px 13px; border-radius:11px; font:700 11.5px/1.35 var(--font-display); letter-spacing:.01em;
  border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.32); color:var(--text-soft); }
.chr-gate[data-state="go"]    { color:#bff7d8; border-color:rgba(45,224,138,.5); background:linear-gradient(135deg, rgba(45,224,138,.18), rgba(0,0,0,.32)); }
.chr-gate[data-state="block"] { color:#ffd2d6; border-color:rgba(139, 147, 168,.5); background:linear-gradient(135deg, rgba(139, 147, 168,.16), rgba(0,0,0,.32)); }
.chr-gate[data-state="wait"]  { color:#ffe7c2; border-color:rgba(255,200,90,.4); }
.chr-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:12px; }
.chr-ctl { display:inline-flex; flex-direction:column; gap:5px; padding:8px 12px; border-radius:11px; border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); }
.chr-ctl > span:first-child { font:800 8px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.chr-money { font:900 16px/1 var(--font-display); color:#fff; display:inline-flex; align-items:center; gap:2px; }
.chr-money input { width:76px; background:transparent; border:none; color:#fff; font:900 16px/1 var(--font-display); outline:none; }
.chr-ctl select { background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.12); color:#fff; border-radius:8px; padding:5px 8px; font:800 12px/1 var(--font-display); outline:none; cursor:pointer; }
.chr-toggle { display:inline-flex; align-items:center; gap:9px; padding:10px 13px; border-radius:11px; cursor:pointer; font:800 11.5px/1 var(--font-display); color:var(--text-soft);
  border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); transition:border-color .25s ease, background .25s ease; }
/* toggle → premium switch */
.chr-toggle input { appearance:none; -webkit-appearance:none; position:relative; flex:0 0 auto; width:42px; height:23px; margin:0; cursor:pointer;
  border:1px solid rgba(255,255,255,.18); border-radius:999px; background:linear-gradient(180deg, rgba(48,56,74,.92), rgba(22,27,40,.96));
  box-shadow:inset 0 1px 3px rgba(0,0,0,.55); transition:background .28s ease, border-color .28s ease, box-shadow .28s ease; }
.chr-toggle input::before { content:""; position:absolute; top:2.5px; left:3px; width:17px; height:17px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#dfe2e8); box-shadow:0 2px 5px rgba(0,0,0,.5), inset 0 1px 1px rgba(255,255,255,.8);
  transition:transform .28s cubic-bezier(.34,1.56,.64,1); }
.chr-toggle input:checked { border-color:rgba(255,174,84,.6); background:linear-gradient(135deg,#ffae54,#ff7a2c); box-shadow:0 0 16px rgba(255,140,60,.5); }
.chr-toggle input:checked::before { transform:translateX(19px); }
.chr-toggle:has(input:checked) { border-color:rgba(255,174,84,.4); background:linear-gradient(135deg, rgba(255,140,60,.14), rgba(0,0,0,.3)); color:#ffd9b0; }
.chr-toggle[data-variant="sniper"] input:checked { border-color:rgba(120,168,255,.6); background:linear-gradient(135deg,#7aa8ff,#3df0d0); box-shadow:0 0 16px rgba(122,168,255,.55); }
.chr-toggle[data-variant="sniper"]:has(input:checked) { border-color:rgba(120,168,255,.45); background:linear-gradient(135deg, rgba(122,168,255,.16), rgba(0,0,0,.3)); color:#cfe0ff; }
@media (max-width:560px){ .chr-controls { gap:8px; } .chr-ctl, .chr-toggle { flex:1; } }

/* ═══════════════════════════════════════════════════════════════════════
   CHRONOS v11 — volatility regime badge · confluence meter · session board
   ═══════════════════════════════════════════════════════════════════════ */
.chr-regime { font:900 8.5px/1 var(--font-display); letter-spacing:.12em; padding:6px 10px; border-radius:999px;
  border:1px solid rgba(255,255,255,.14); color:#cbd0dd; background:rgba(255,255,255,.05); white-space:nowrap; }
.chr-regime[data-k="calm"]   { color:#9fe7ff; border-color:rgba(120,200,255,.42); background:rgba(120,200,255,.08); }
.chr-regime[data-k="active"] { color:#ffd58a; border-color:rgba(255,190,90,.42); background:rgba(255,190,90,.08); }
.chr-regime[data-k="wild"]   { color:#ff9aa3; border-color:rgba(250, 146, 0,.5); background:rgba(139, 147, 168,.12); }
.chr-confl { display:flex; align-items:center; gap:11px; padding:10px 14px; margin-bottom:11px; border-radius:12px;
  background:rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.07); flex-wrap:wrap; }
.chr-confl-k { font:800 8.5px/1 var(--font-display); letter-spacing:.14em; color:var(--text-dim); }
.chr-confl-pips { display:flex; gap:5px; }
.chr-confl-pips i { width:14px; height:14px; border-radius:4px; background:rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05); transition:background .35s ease, box-shadow .35s ease, transform .25s ease; }
.chr-confl-pips i[data-on="1"] { background:linear-gradient(180deg, var(--chr), color-mix(in srgb, var(--chr) 55%, #000));
  box-shadow:0 0 9px var(--chr-glow); transform:translateY(-1px); }
.chr-confl-v { margin-left:auto; font:900 11px/1 var(--font-display); letter-spacing:.05em; color:#aeb6c6; }
.chr-confl[data-tier="fair"]   .chr-confl-v { color:#ffe7c2; }
.chr-confl[data-tier="strong"] .chr-confl-v { color:#bff7d8; }
.chr-confl[data-tier="elite"]  .chr-confl-v { color:#fff; text-shadow:0 0 12px var(--chr-glow); }
.chr-sess { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:13px; }
.chr-sess .s { flex:1; min-width:56px; display:flex; flex-direction:column; gap:4px; padding:9px 11px; border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.22)); border:1px solid rgba(255,255,255,.06); }
.chr-sess .s small { font:700 7.5px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.chr-sess .s b { font:900 15px/1 var(--font-display); color:#e6e9f2; }
.chr-sess .s b[data-t="up"]   { color:#3de08a; }
.chr-sess .s b[data-t="down"] { color:#8b93a8; }
@media (max-width:560px){ .chr-sess .s { min-width:0; flex:1 1 30%; } .chr-confl-pips i { width:12px; height:12px; } }

/* ═══════════════════════════════════════════════════════════════════════
   💎 ACCUMULATOR QUANT ENGINE — institutional dashboard. Hide the legacy
   knockout body (still rendered, invisible, so cross-refs keep wiring).
   ═══════════════════════════════════════════════════════════════════════ */
.accu-analyzer .analyzer-body,
.accu-analyzer > .signal,
.accu-analyzer > .analyzer-actions { display:none !important; }
.accu {
  --aq:#36d6ff; --aq-glow:rgba(54,214,255,.5);
  position:relative; overflow:hidden; margin:2px 0 12px; padding:16px; border-radius:20px;
  background:
    radial-gradient(130% 90% at 100% -12%, color-mix(in srgb, var(--aq) 13%, transparent), transparent 56%),
    linear-gradient(180deg, rgba(13,16,24,0.96), rgba(7,9,14,0.97));
  border:1px solid color-mix(in srgb, var(--aq) 24%, rgba(255,255,255,.06));
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 26px 58px -38px var(--aq-glow);
  font-family:var(--font-display, system-ui);
}
.accu-fx { position:absolute; inset:-30%; pointer-events:none; background:radial-gradient(circle at 84% 8%, var(--aq-glow), transparent 46%); filter:blur(56px); opacity:.45; }
.accu > * { position:relative; z-index:1; }
.aq-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding-bottom:11px; margin-bottom:12px; border-bottom:1px solid color-mix(in srgb, var(--aq) 15%, rgba(255,255,255,.06)); }
.aq-inst { font:900 14px/1 var(--font-display); color:#fff; }
.aq-stat { display:inline-flex; flex-direction:column; gap:2px; }
.aq-stat small { font:700 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.aq-stat b { font:800 13px/1 var(--font-mono, ui-monospace, monospace); color:#e6e9f2; }
.aq-regime-box { margin-left:auto; display:flex; flex-direction:column; gap:2px; align-items:flex-end; padding:7px 12px; border-radius:12px;
  border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); }
.aq-regime-box small { font:700 7.5px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.aq-regime-box b { font:900 13px/1 var(--font-display); color:#cbd0dd; }
.aq-regime-box i { font:700 9.5px/1 var(--font-body); font-style:normal; color:var(--text-dim); }
.aq-regime-box[data-k="trending"] { border-color:rgba(45,224,138,.5); background:linear-gradient(135deg, rgba(45,224,138,.16), rgba(0,0,0,.3)); }
.aq-regime-box[data-k="trending"] b { color:#7df3b4; }
.aq-regime-box[data-k="ranging"]  { border-color:rgba(255,200,90,.45); }
.aq-regime-box[data-k="ranging"] b { color:#ffd58a; }
.aq-regime-box[data-k="volatile"] { border-color:rgba(250, 146, 0,.5); background:linear-gradient(135deg, rgba(139, 147, 168,.16), rgba(0,0,0,.3)); }
.aq-regime-box[data-k="volatile"] b { color:#ff9aa3; }
.aq-verdict { display:flex; align-items:center; justify-content:space-between; gap:13px; padding:12px 14px; border-radius:14px; margin-bottom:9px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--aq) 12%, transparent), rgba(0,0,0,.34)); border:1px solid color-mix(in srgb, var(--aq) 26%, transparent); flex-wrap:wrap; }
.aq-vmain { min-width:0; flex:1; }
.aq-tf { display:inline-flex; align-items:center; gap:6px; }
.aq-tf em { font:700 8.5px/1 var(--font-display); letter-spacing:.06em; color:var(--text-dim); font-style:normal; margin-left:4px; }
.aq-tf-dot { width:12px; height:12px; border-radius:50%; background:#5a6070; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); transition:background .3s ease, box-shadow .3s ease; }
.aq-tf-dot[data-d="up"]   { background:#2de08a; box-shadow:0 0 9px rgba(45,224,138,.7); }
.aq-tf-dot[data-d="down"] { background:#8b93a8; box-shadow:0 0 9px rgba(139, 147, 168,.7); }
.aq-verdict-line { display:block; margin-top:6px; font:800 13.5px/1.25 var(--font-display); color:#fff; }
.aq-enter { flex:0 0 auto; padding:12px 18px; border:none; border-radius:12px; cursor:pointer; font:900 12.5px/1 var(--font-display); letter-spacing:.06em; color:#06141b;
  background:linear-gradient(135deg, var(--aq), color-mix(in srgb, var(--aq) 55%, #000)); box-shadow:0 12px 26px -12px var(--aq-glow); transition:transform .14s ease, filter .2s ease, opacity .2s ease; }
.aq-enter:hover { transform:translateY(-1px); }
.aq-enter[data-ready="0"] { filter:grayscale(.6) brightness(.8); color:#cbd0dd; background:rgba(255,255,255,.06); box-shadow:none; cursor:not-allowed; }
.aq-gate { padding:9px 13px; border-radius:11px; margin-bottom:12px; font:700 11.5px/1.35 var(--font-display);
  border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.32); color:var(--text-soft); }
.aq-gate[data-state="go"]    { color:#bff7d8; border-color:rgba(45,224,138,.5); background:linear-gradient(135deg, rgba(45,224,138,.16), rgba(0,0,0,.32)); }
.aq-gate[data-state="block"] { color:#ffd2d6; border-color:rgba(139, 147, 168,.5); background:linear-gradient(135deg, rgba(139, 147, 168,.15), rgba(0,0,0,.32)); }
.aq-gate[data-state="wait"]  { color:#ffe7c2; border-color:rgba(255,200,90,.38); }
.aq-greeks { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-bottom:12px; }
.aq-greek { padding:9px 8px; border-radius:11px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); text-align:center; }
.aq-greek small { display:block; font:700 7.5px/1.1 var(--font-display); letter-spacing:.06em; color:var(--text-dim); margin-bottom:5px; }
.aq-greek b { font:800 14px/1 var(--font-mono, ui-monospace, monospace); color:#e6e9f2; }
.aq-greek b[data-t="up"]   { color:#3de08a; }
.aq-greek b[data-t="down"] { color:#8b93a8; }
.aq-greek-hedge[data-on="1"] { border-color:color-mix(in srgb, var(--aq) 50%, transparent); background:linear-gradient(135deg, color-mix(in srgb, var(--aq) 16%, transparent), rgba(0,0,0,.25)); }
.aq-greek-hedge[data-on="1"] b { color:color-mix(in srgb, var(--aq) 75%, #fff); }
.aq-fan-wrap { margin-bottom:12px; padding:10px 12px; border-radius:12px; background:rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.06); }
.aq-fan-k { display:block; font:800 8px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); margin-bottom:7px; }
.aq-fan { width:100%; height:96px; display:block; }
.aq-fan-band { fill:color-mix(in srgb, var(--aq) 18%, transparent); stroke:none; opacity:.55; }
.aq-fan-p50 { fill:none; stroke:var(--aq); stroke-width:1.6; filter:drop-shadow(0 0 4px var(--aq-glow)); }
.aq-fan-bar { stroke:rgba(139, 147, 168,.6); stroke-width:1; stroke-dasharray:4 3; }
.aq-fan-mid { stroke:rgba(255,255,255,.22); stroke-width:.8; stroke-dasharray:2 3; }
.aq-surface { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; margin-bottom:13px; }
.aq-surf { padding:8px; border-radius:10px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); text-align:center; }
.aq-surf small { display:block; font:700 7px/1.1 var(--font-display); letter-spacing:.05em; color:var(--text-dim); margin-bottom:4px; }
.aq-surf b { font:800 11px/1 var(--font-mono, ui-monospace, monospace); color:#cbd0dd; }
.aq-surf-bar b { color:color-mix(in srgb, var(--aq) 70%, #fff); }
.aq-rates-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:9px; font:800 9.5px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.aq-rates-head i { font-style:normal; font-weight:600; opacity:.85; }
.aq-rate-rec b { color:#fff; }
.aq-rates { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:13px; }
.aq-pill { position:relative; padding:12px 6px; border-radius:12px; cursor:pointer; font:900 14px/1 var(--font-display); color:var(--text-soft);
  border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); transition:transform .12s ease, border-color .25s ease, background .25s ease, color .2s ease; overflow:hidden; }
.aq-pill::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, #2de08a, #ffd54a calc(var(--ko,30)*0.7%), #8b93a8); opacity:.8; }
.aq-pill:hover { transform:translateY(-1px); border-color:color-mix(in srgb, var(--aq) 40%, transparent); }
.aq-pill[data-active="1"] { color:#06141b; background:linear-gradient(135deg, var(--aq), color-mix(in srgb, var(--aq) 55%, #000)); border-color:transparent; box-shadow:0 8px 20px -10px var(--aq-glow); }
.aq-pill[data-rec="1"]::before { content:"REC"; position:absolute; top:4px; right:5px; font:900 6.5px/1 var(--font-display); letter-spacing:.08em; color:#2de08a; }
.aq-pill[data-rec="1"][data-active="1"]::before { color:#06311f; }
.aq-controls { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin-bottom:13px; }
.aq-ctl { display:flex; flex-direction:column; gap:6px; padding:8px 12px; border-radius:11px; border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); }
.aq-ctl > span:first-child { font:800 8px/1.2 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.aq-ctl > span:first-child i { font-style:normal; color:color-mix(in srgb, var(--aq) 70%, #fff); }
.aq-money { font:900 16px/1 var(--font-display); color:#fff; display:inline-flex; align-items:center; gap:2px; }
.aq-money input { width:84px; background:transparent; border:none; color:#fff; font:900 16px/1 var(--font-display); outline:none; }
.aq-ctl-risk { flex:1; min-width:170px; justify-content:center; }
.aq-ctl-risk input[type="range"] { -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px; outline:none;
  background:linear-gradient(90deg, #2de08a, var(--aq), #ff7a2c); }
.aq-ctl-risk input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; cursor:pointer; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.5), 0 0 0 3px color-mix(in srgb, var(--aq) 45%, transparent); }
.aq-ctl-risk input[type="range"]::-moz-range-thumb { width:18px; height:18px; border:none; border-radius:50%; cursor:pointer; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.5); }
.aq-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }
.aq-mstat { padding:9px 8px; border-radius:11px; background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.22)); border:1px solid rgba(255,255,255,.06); text-align:center; }
.aq-mstat small { display:block; font:700 7.5px/1 var(--font-display); letter-spacing:.08em; color:var(--text-dim); margin-bottom:5px; }
.aq-mstat b { font:900 16px/1 var(--font-display); color:#e6e9f2; }
.aq-pareto-box[data-t="up"]   { border-color:rgba(45,224,138,.5); }
.aq-pareto-box[data-t="up"] b { color:#3de08a; }
.aq-pareto-box[data-t="down"] b { color:#8b93a8; }
.aq-sess { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:13px; }
.aq-sess .s { flex:1; min-width:56px; display:flex; flex-direction:column; gap:4px; padding:9px 11px; border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.22)); border:1px solid rgba(255,255,255,.06); }
.aq-sess .s small { font:700 7.5px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.aq-sess .s b { font:900 15px/1 var(--font-display); color:#e6e9f2; }
.aq-sess .s b[data-t="up"]   { color:#3de08a; }
.aq-sess .s b[data-t="down"] { color:#8b93a8; }
.aq-actions { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:12px; }
.aq-btn { flex:1; min-width:96px; padding:11px 12px; border-radius:12px; cursor:pointer; font:900 11.5px/1 var(--font-display); letter-spacing:.04em; color:var(--text-soft);
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); transition:all .2s ease; }
.aq-btn:hover { border-color:color-mix(in srgb, var(--aq) 40%, transparent); color:#fff; }
.aq-btn-hedge.is-on, .aq-greek-hedge[data-on="1"] ~ * .aq-btn-hedge { }
.aq-btn-opt[data-on="1"] { color:#06141b; background:linear-gradient(135deg,#ffd54a,#ff9a2c); border-color:transparent; box-shadow:0 8px 18px -8px rgba(255,180,60,.7); }
.aq-log { display:flex; flex-direction:column; gap:4px; max-height:120px; overflow:hidden; }
.aq-log-row { font:600 11px/1.4 var(--font-mono, ui-monospace, monospace); color:var(--text-soft); padding:5px 9px; border-radius:8px; background:rgba(0,0,0,.28); border-left:2px solid rgba(255,255,255,.12); }
.aq-log-row[data-k="fire"] { border-left-color:var(--aq); color:#fff; }
.aq-log-row[data-k="up"]   { border-left-color:#2de08a; }
.aq-log-row[data-k="down"] { border-left-color:#8b93a8; }
.aq-log-row[data-k="hold"] { border-left-color:#ffc85a; }
@media (max-width:560px){
  .aq-greeks { grid-template-columns:repeat(3,1fr); }
  .aq-surface { grid-template-columns:repeat(3,1fr); }
  .aq-stats { grid-template-columns:repeat(2,1fr); }
  .aq-regime-box { margin-left:0; align-items:flex-start; }
  .aq-rates { gap:6px; } .aq-pill { font-size:13px; padding:11px 4px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   🎯 DIGITAL SENTINEL — relocated INTO the Quantum Reverse Echo Core card.
   Hide the legacy reverse-echo panels (still wired, invisible) and re-theme
   the embedded Sentinel from its red identity to the Echo Core's blue so it
   sits inside the analyzer like it was always there.
   ═══════════════════════════════════════════════════════════════════════ */
/* The wrapper must NOT hide its box — the engine injects the generic execution /
   market-context / live-digit panels in here too. display:contents makes the
   wrapper vanish from layout so those panels render normally; only the redundant
   legacy match-display panels (replaced by the Sentinel) are hidden. */
.matches-legacy { display: contents; }
[data-analyzer="matches"] .echo-grid,
[data-analyzer="matches"] .matches-timing,
[data-analyzer="matches"] .match-prediction-panel,
[data-analyzer="matches"] .match-stable-bars,
[data-analyzer="matches"] .smart-feature-strip { display: none !important; }
.analyzer .sentinel-embedded {
  margin: 4px 0 10px; padding: 16px; border-radius: 18px;
  background:
    radial-gradient(120% 130% at 100% 0%, rgba(78,167,255,.15), transparent 55%),
    linear-gradient(160deg, rgba(10,16,26,.93), rgba(6,9,14,.96));
  border: 1px solid rgba(78,167,255,.30);
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 24px 54px -34px rgba(78,167,255,.5), 0 12px 30px -22px rgba(0,0,0,.85);
}
.sentinel-embedded .sentinel-fx { background: radial-gradient(circle at 18% 12%, rgba(78,167,255,.22), transparent 45%); }
.sentinel-embedded .sentinel-head { margin-bottom: 13px; }
.sentinel-embedded .sentinel-title h2 { font-size: 19px; }
.sentinel-embedded .sentinel-tag { color: #cfe6ff; border-color: rgba(78,167,255,.42); background: rgba(78,167,255,.12); }
.sentinel-embedded .sentinel-tag .sb-dot { background: #4ea7ff; box-shadow: 0 0 10px #4ea7ff; }
/* confidence bar + active segmented controls follow the blue accent */
.sentinel-embedded .si-conf-bar > span { background: linear-gradient(90deg, #2f6dff, #4ea7ff) !important; box-shadow: 0 0 12px rgba(78,167,255,.5) !important; }
.sentinel-embedded .seg-btn.is-on { color: #06121f; background: linear-gradient(135deg, #4ea7ff, #2f6dff); border-color: transparent; box-shadow: 0 6px 16px -8px rgba(78,167,255,.8); }
@media (max-width: 560px) {
  .analyzer .sentinel-embedded { padding: 13px; border-radius: 15px; }
  .sentinel-embedded .sentinel-title h2 { font-size: 17px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   ⚡ AI CONFLUENCE — per-strategy, ultra-premium. Each analyzer's stack is
   tinted by its model FAMILY: digit-frequency analyzers glow gold, price-action
   analyzers glow cyan, so it reads at a glance that they use different strategies.
   ═══════════════════════════════════════════════════════════════════════ */
.ass-title { display: inline-flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.ass-model { font-family: var(--font-body); font-style: normal; font-weight: 700; font-size: 8.5px; letter-spacing: .03em;
  text-transform: none; color: var(--text-dim); padding: 2px 7px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); white-space: nowrap; }
.amc-signal-stack {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 14px 30px -26px rgba(0,0,0,.8);
}
.amc-signal-stack::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; opacity: .9; }
/* digit family — gold */
.amc-signal-stack[data-family="digit"] { border-color: rgba(255,196,84,.24) !important; }
.amc-signal-stack[data-family="digit"]::before { background: linear-gradient(180deg, #ffd54a, #ff9a2c); }
.amc-signal-stack[data-family="digit"] .ass-model { color: #ffd58a; border-color: rgba(255,196,84,.38); background: rgba(255,196,84,.12); }
.amc-signal-stack[data-family="digit"] .ass-chip[data-on="true"] { color: #ffe6b0; border-color: rgba(255,196,84,.5); background: rgba(255,196,84,.16); }
/* price family — cyan */
.amc-signal-stack[data-family="price"] { border-color: rgba(78,167,255,.24) !important; }
.amc-signal-stack[data-family="price"]::before { background: linear-gradient(180deg, #6fd0ff, #2f6dff); }
.amc-signal-stack[data-family="price"] .ass-model { color: #9fd0ff; border-color: rgba(78,167,255,.38); background: rgba(78,167,255,.12); }
.amc-signal-stack[data-family="price"] .ass-chip[data-on="true"] { color: #c4e2ff; border-color: rgba(78,167,255,.5); background: rgba(78,167,255,.16); }
/* confluence tier on the count pill */
.ass-count[data-tier="elite"]  { color: #04140d; background: linear-gradient(135deg, #7df3b4, #e6e9f2); border-color: transparent; box-shadow: 0 0 13px rgba(45,224,138,.55); }
.ass-count[data-tier="strong"] { color: #04140d; background: linear-gradient(135deg, #21d07a, #bde6cf); border-color: transparent; }
.ass-count[data-tier="fair"]   { color: #ffe7c2; border-color: rgba(255,200,90,.42); background: rgba(255,200,90,.12); }
.ass-count[data-tier="low"]    { color: var(--text-muted); }

/* 💎 MARKET DESK — premium frame so the per-analyzer desk reads as one unit */
.analyzer-mc {
  padding: 12px; border-radius: 16px;
  background:
    radial-gradient(120% 100% at 100% 0%, color-mix(in srgb, var(--amc-color) 10%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.18));
  border: 1px solid color-mix(in srgb, var(--amc-color) 22%, rgba(255,255,255,.07));
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset, 0 22px 48px -34px rgba(0,0,0,.85);
}
.amc-meter { gap: 8px; }
.amc-stat { background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.2)); border: 1px solid rgba(255,255,255,.07); border-radius: 12px; }
.amc-stat-score[data-amc-tier="hot"]  { border-color: rgba(45,224,138,.5); box-shadow: 0 0 16px -8px rgba(45,224,138,.6); }
.amc-stat-score[data-amc-tier="warm"] { border-color: rgba(255,200,90,.42); }
@media (max-width: 560px) { .analyzer-mc { padding: 10px; border-radius: 13px; } }

/* 💎 Accumulator AUTO BRAIN button — prominent, pulses when armed */
.aq-btn-autobrain { flex:1 1 100%; order:-1; font-weight:900; letter-spacing:.05em; }
.aq-btn-autobrain[data-on="1"] {
  color:#06141b; border-color:transparent;
  background:linear-gradient(135deg,#36d6ff,#2f6dff);
  box-shadow:0 0 18px -4px rgba(54,214,255,.7), 0 8px 20px -10px rgba(47,109,255,.8);
  animation:aqAutoPulse 1.8s ease-in-out infinite;
}
@keyframes aqAutoPulse { 0%,100%{ box-shadow:0 0 16px -6px rgba(54,214,255,.6), 0 8px 20px -10px rgba(47,109,255,.7); } 50%{ box-shadow:0 0 26px 0 rgba(54,214,255,.85), 0 8px 22px -8px rgba(47,109,255,.9); } }
@media (prefers-reduced-motion: reduce) { .aq-btn-autobrain[data-on="1"] { animation:none; } }

/* ═══════════════════════════════════════════════════════════════════════
   ⚡ GENESIS ACTIVATION PROTOCOL — Even/Odd parity engine
   ═══════════════════════════════════════════════════════════════════════ */
.eo-legacy { display: none !important; }
.genesis {
  position: relative; overflow: hidden; margin: 4px 0 12px; padding: 16px; border-radius: 20px;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(45,108,255,.14), transparent 55%),
    radial-gradient(120% 90% at 100% 0%, rgba(250, 146, 0,.12), transparent 55%),
    linear-gradient(180deg, rgba(11,14,22,.96), rgba(6,8,13,.97));
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 26px 58px -38px rgba(0,0,0,.9);
  font-family: var(--font-display, system-ui);
}
.gen-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.gen-modes { display:inline-flex; gap:4px; padding:3px; border-radius:11px; background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.1); }
.gen-mode { padding:7px 14px; border:none; border-radius:8px; cursor:pointer; font:900 10px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); background:transparent; transition:all .2s ease; }
.gen-mode[data-on="1"] { color:#06121f; background:linear-gradient(135deg,#36d6ff,#2f6dff); box-shadow:0 4px 12px -6px rgba(54,214,255,.8); }
#gen-mode-auto[data-on="1"] { background:linear-gradient(135deg,#ffd54a,#ff9a2c); box-shadow:0 4px 12px -6px rgba(255,180,60,.8); }
.gen-title { font:900 13px/1 var(--font-display); letter-spacing:.14em; color:#fff; text-shadow:0 0 14px rgba(54,214,255,.4); }
.gen-pendulum { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.gen-pend-k { font:800 10px/1 var(--font-display); letter-spacing:.06em; color:#9fd0ff; white-space:nowrap; }
.gen-pend-k.gen-pend-odd { color:#ff9aa3; }
.gen-pend-track { position:relative; flex:1; height:8px; border-radius:999px; background:linear-gradient(90deg, rgba(45,108,255,.55), rgba(120,120,140,.3), rgba(250, 146, 0,.55)); }
.gen-pend-ball { position:absolute; top:50%; width:16px; height:16px; border-radius:50%; transform:translate(-50%,-50%); background:radial-gradient(circle at 35% 30%, #fff, #9b6bff); box-shadow:0 0 12px rgba(155,107,255,.9); transition:left .5s cubic-bezier(.2,.85,.3,1.05); }
.gen-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; margin-bottom:13px; transition:opacity .25s ease; }
/* 🎯 ensemble prediction + self-calibrated edge gate */
.gen-edge { margin-bottom:13px; padding:11px 13px; border-radius:14px; border:1px solid rgba(255,255,255,.1);
  background:linear-gradient(135deg, rgba(255,255,255,.04), rgba(0,0,0,.22)); transition:border-color .25s ease, background .25s ease; }
.gen-edge[data-locked="0"] { border-color:rgba(45,224,138,.4); background:linear-gradient(135deg, rgba(45,224,138,.1), rgba(0,0,0,.22)); }
.gen-edge-main { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.gen-edge-call { font:900 20px/1 var(--font-display); color:#fff; }
.gen-edge-call[data-p="even"] { color:#7fb6ff; } .gen-edge-call[data-p="odd"] { color:#8b93a8; }
.gen-edge-main small { font:800 11px/1 var(--font-display); letter-spacing:.04em; color:var(--text-dim); }
.gen-edge-stats { display:flex; flex-wrap:wrap; gap:7px 14px; margin-bottom:8px; font:700 9.5px/1 var(--font-display); letter-spacing:.06em; color:var(--text-dim); }
.gen-edge-stats b { font:900 11px/1 var(--font-display); color:#e6e9f2; }
.gen-edge-stats b[data-t="up"] { color:#3de08a; } .gen-edge-stats b[data-t="down"] { color:#8b93a8; }
.gen-edge-gate { padding:8px 11px; border-radius:10px; font:700 11px/1.35 var(--font-display); border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.3); color:var(--text-soft); }
.gen-edge-gate[data-locked="0"] { color:#bff7d8; border-color:rgba(45,224,138,.5); background:linear-gradient(135deg, rgba(45,224,138,.16), rgba(0,0,0,.3)); }
.gen-tile {
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:92px;
  padding:10px 8px; border-radius:15px; cursor:pointer; border:1px solid rgba(255,255,255,.1);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, opacity .25s ease, filter .2s ease;
}
.gen-tile[data-parity="even"] { background:linear-gradient(165deg, rgba(45,108,255,.34), rgba(12,20,46,.66)); border-color:rgba(78,140,255,.4); }
.gen-tile[data-parity="odd"]  { background:linear-gradient(165deg, rgba(250, 146, 0,.32), rgba(40,10,16,.66)); border-color:rgba(250, 146, 0,.4); }
.gen-tile:hover { transform:translateY(-2px); filter:brightness(1.12); }
.gen-grid[data-dimmed="1"] .gen-tile:not([data-selected="1"]) { opacity:.82; }
.gt-digit { font:900 30px/1 var(--font-display); color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.5); }
.gt-gap { font:700 8.5px/1 var(--font-display); letter-spacing:.06em; color:var(--text-soft); }
.gt-gap b { color:#fff; }
.gt-score { font:900 10px/1 var(--font-display); letter-spacing:.04em; color:#cfe0ff; }
.gt-arrow { position:absolute; top:5px; font:900 13px/1 var(--font-display); color:#ffd54a; }
.gen-tile[data-prime="1"] { border-color:rgba(255,213,74,.85); box-shadow:0 0 0 1px rgba(255,213,74,.5), 0 0 22px -2px rgba(255,200,70,.75); animation:genPrime 1.5s ease-in-out infinite; }
@keyframes genPrime { 0%,100%{ box-shadow:0 0 0 1px rgba(255,213,74,.45), 0 0 18px -4px rgba(255,200,70,.6); } 50%{ box-shadow:0 0 0 2px rgba(255,213,74,.85), 0 0 30px 2px rgba(255,200,70,.95); } }
.gen-tile[data-selected="1"] { transform:scale(1.05); box-shadow:0 0 0 2px #fff, 0 0 26px 2px rgba(255,255,255,.6); z-index:2; }
.gen-tile[data-flash="fire"] { animation:genFlashFire .9s ease; }
.gen-tile[data-flash="auto"] { animation:genFlashAuto .9s ease; }
@keyframes genFlashFire { 0%{ box-shadow:0 0 0 3px #2de08a, 0 0 30px 4px rgba(45,224,138,.9); } 100%{ box-shadow:none; } }
@keyframes genFlashAuto { 0%{ box-shadow:0 0 0 3px #fff, 0 0 30px 4px rgba(255,255,255,.9); } 100%{ box-shadow:none; } }
.gen-vote-head { font:800 9px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); margin-bottom:7px; }
.gen-vote-head i { font-style:normal; font-weight:600; opacity:.8; }
.gen-votes { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:11px; }
.gen-vote { font:800 9.5px/1 var(--font-display); padding:5px 9px; border-radius:999px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:var(--text-soft); }
.gen-vote[data-p="even"] { border-color:rgba(78,140,255,.45); color:#bfe0ff; background:rgba(45,108,255,.12); }
.gen-vote[data-p="odd"]  { border-color:rgba(250, 146, 0,.45); color:#ffc4cc; background:rgba(250, 146, 0,.12); }
.gen-vote b { color:#fff; } .gen-vote i { font-style:normal; opacity:.7; font-size:8px; }
.gen-status { font:700 11px/1.4 var(--font-mono, ui-monospace, monospace); color:var(--text-soft); padding:8px 11px; border-radius:10px; background:rgba(0,0,0,.3); border-left:2px solid rgba(54,214,255,.5); }
/* Execution Dock — slides up from the bottom of the card */
.genesis-dock {
  position:absolute; left:0; right:0; bottom:0; z-index:5; padding:14px 16px 16px;
  border-radius:20px 20px 0 0; transform:translateY(112%); transition:transform .36s cubic-bezier(.2,.9,.3,1.05);
  background:linear-gradient(180deg, rgba(16,20,30,.97), rgba(8,10,16,.99));
  border:1px solid rgba(255,255,255,.12); border-bottom:none; box-shadow:0 -22px 50px -22px rgba(0,0,0,.9);
}
.genesis-dock[data-open="1"] { transform:translateY(0); }
.gen-dock-grip { width:42px; height:4px; border-radius:999px; background:rgba(255,255,255,.25); margin:0 auto 12px; }
.gen-dock-rows { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:13px; }
.gdk { display:flex; flex-direction:column; gap:3px; padding:9px 11px; border-radius:11px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); }
.gdk span { font:700 8px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.gdk b { font:900 15px/1 var(--font-display); color:#fff; }
.gen-dock-dir[data-p="even"] { color:#7fb6ff; } .gen-dock-dir[data-p="odd"] { color:#8b93a8; }
.genesis-fire {
  width:100%; padding:17px; border:none; border-radius:14px; cursor:pointer; margin-bottom:10px;
  font:900 16px/1 var(--font-display); letter-spacing:.1em; color:#06130d;
  background:linear-gradient(135deg, #ffd54a, #ff9a2c); box-shadow:0 0 26px -4px rgba(255,180,60,.8), 0 10px 24px -10px rgba(255,140,40,.9);
  animation:genFireGlow 1.6s ease-in-out infinite; transition:transform .12s ease;
}
.genesis-fire:active { transform:scale(.98); }
@keyframes genFireGlow { 0%,100%{ box-shadow:0 0 22px -6px rgba(255,180,60,.7), 0 10px 24px -10px rgba(255,140,40,.8); } 50%{ box-shadow:0 0 34px 0 rgba(255,200,80,.95), 0 10px 26px -8px rgba(255,140,40,.95); } }
.genesis-fire[data-locked="1"] { color:#ffd2d6; background:linear-gradient(135deg, rgba(250, 146, 0,.5), rgba(120,20,30,.6)); box-shadow:none; animation:none; cursor:not-allowed; font-size:12.5px; letter-spacing:.04em; }
.gen-dock-mods { display:flex; gap:9px; }
.gen-dock-mod { flex:1; padding:10px; border-radius:11px; cursor:pointer; font:800 11px/1 var(--font-display); color:var(--text-soft); border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); transition:all .2s ease; }
.gen-dock-mod:hover { color:#fff; border-color:rgba(255,255,255,.25); }
.gen-dock-cancel:hover { border-color:rgba(250, 146, 0,.5); color:#ff9aa3; }
@media (prefers-reduced-motion: reduce) { .gen-tile[data-prime="1"], .genesis-fire { animation:none; } }
@media (max-width: 560px) { .genesis { padding:13px; } .gt-digit { font-size:26px; } .gen-tile { min-height:82px; } }

/* 🛡 Sentinel WIN-MAX readout (high-win DIFFERS engine) */
.sentinel-winmax { margin:0 0 13px; padding:10px 13px; border-radius:12px; font:800 11.5px/1.4 var(--font-display); letter-spacing:.01em;
  color:#cfe6ff; border:1px solid rgba(78,167,255,.42); background:linear-gradient(135deg, rgba(78,167,255,.15), rgba(0,0,0,.3)); }
.sentinel-winmax b { color:#fff; }
.sentinel-winmax i { font-style:normal; font-weight:600; color:var(--text-dim); opacity:.85; }

/* ═══════════════════════════════════════════════════════════════════════
   🧠 MATCHMASTER PRO MAX X — ensemble cockpit (the Matches card hero).
   The Digital Sentinel is preserved in the DOM but hidden beneath it.
   ═══════════════════════════════════════════════════════════════════════ */
/* MATCHMASTER (MATCH engine) on top, Digital Sentinel (DIFFERS engine) below it. */
[data-analyzer="matches"] #digital-sentinel { margin-top:6px; }
[data-analyzer="matches"] #digital-sentinel::before { content:"🛡 DIFFERS ENGINE"; display:block; margin-bottom:8px; font:800 9px/1 var(--font-display); letter-spacing:.16em; color:#9fd0ff; }
.spop-btns.spop-btns-solo { grid-template-columns:1fr; }
.mmx {
  --mmx:#36d6ff; --mmx-glow:rgba(54,214,255,.5);
  position:relative; overflow:hidden; margin:2px 0 12px; padding:16px; border-radius:20px;
  background:
    radial-gradient(130% 90% at 100% -10%, color-mix(in srgb, var(--mmx) 14%, transparent), transparent 56%),
    linear-gradient(180deg, rgba(12,15,23,.96), rgba(6,8,13,.97));
  border:1px solid color-mix(in srgb, var(--mmx) 24%, rgba(255,255,255,.06));
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 26px 58px -38px var(--mmx-glow);
  font-family:var(--font-display, system-ui);
}
.mmx[data-side="match"]   { --mmx:#2de08a; --mmx-glow:rgba(45,224,138,.55); }
.mmx[data-side="differs"] { --mmx:#4ea7ff; --mmx-glow:rgba(78,167,255,.55); }
.mmx-fx { position:absolute; inset:-30%; pointer-events:none; background:radial-gradient(circle at 84% 6%, var(--mmx-glow), transparent 46%); filter:blur(56px); opacity:.45; }
.mmx > * { position:relative; z-index:1; }
.mmx-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.mmx-modes { display:inline-flex; gap:4px; padding:3px; border-radius:11px; background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.1); }
.mmx-mode { padding:7px 13px; border:none; border-radius:8px; cursor:pointer; font:900 10px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); background:transparent; transition:all .2s ease; }
.mmx-mode[data-on="1"] { color:#06121f; background:linear-gradient(135deg, var(--mmx), color-mix(in srgb, var(--mmx) 55%, #000)); }
#mmx-mode-auto[data-on="1"] { background:linear-gradient(135deg,#ffd54a,#ff9a2c); box-shadow:0 4px 12px -6px rgba(255,180,60,.8); color:#1a1205; }
.mmx-title { font:800 13px/1 var(--font-display); letter-spacing:.1em; color:#fff; }
.mmx-title b { color:var(--mmx); }
.mmx-river { display:flex; gap:3px; overflow:hidden; padding:8px 10px; border-radius:11px; margin-bottom:13px; background:rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.06); }
.mmx-d { flex:0 0 auto; width:22px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:6px; font:800 13px/1 var(--font-mono, ui-monospace, monospace); color:var(--text-soft); background:rgba(255,255,255,.04); }
.mmx-d.mmx-rep { color:#06130d; background:linear-gradient(135deg,#ffd54a,#ff9a2c); box-shadow:0 0 10px rgba(255,200,80,.7); }
.mmx-core { display:flex; align-items:center; gap:15px; margin-bottom:14px; }
.mmx-gauge { width:92px; height:92px; flex:0 0 auto; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:conic-gradient(var(--mmx) calc(var(--p,10)*1%), rgba(255,255,255,.07) 0); box-shadow:0 0 26px -6px var(--mmx-glow); }
.mmx-gauge-in { width:72px; height:72px; border-radius:50%; background:#0a0d14; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; }
.mmx-gauge-in b { font:900 18px/1 var(--font-display); color:#fff; }
.mmx-gauge-in small { font:700 7.5px/1 var(--font-display); letter-spacing:.08em; color:var(--text-dim); }
.mmx-verdict { min-width:0; flex:1; }
.mmx-decision { display:inline-block; font:900 17px/1 var(--font-display); letter-spacing:.04em; color:#cbd0dd; padding:6px 12px; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); }
.mmx-decision[data-side="match"]   { color:#06130d; background:linear-gradient(135deg,#2de08a,#bdeccf); border-color:transparent; }
.mmx-decision[data-side="differs"] { color:#06121f; background:linear-gradient(135deg,#4ea7ff,#bfe0ff); border-color:transparent; }
.mmx-reason { display:block; margin:7px 0 6px; font:600 11px/1.35 var(--font-body); color:var(--text-soft); }
.mmx-thr { font:700 10px/1.3 var(--font-display); letter-spacing:.03em; color:var(--text-dim); }
.mmx-thr b { color:#e6e9f2; } .mmx-thr b[data-t="up"]{ color:#3de08a; } .mmx-thr b[data-t="down"]{ color:#8b93a8; }
.mmx-brains-head { font:800 9px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); margin-bottom:8px; }
.mmx-brains-head i { font-style:normal; font-weight:600; opacity:.8; }
.mmx-brains { display:grid; gap:6px; margin-bottom:13px; }
.mmx-brain { display:grid; grid-template-columns:78px 1fr 46px 26px; align-items:center; gap:8px; }
.mmx-bn { font:800 10px/1 var(--font-display); color:var(--text-soft); }
.mmx-bbar { height:8px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.mmx-bbar i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, var(--mmx), color-mix(in srgb, var(--mmx) 55%, #fff)); transition:width .4s ease; }
.mmx-bp { font:800 10px/1 var(--font-mono, ui-monospace, monospace); color:#e6e9f2; text-align:right; }
.mmx-bw { font:900 9px/1 var(--font-display); color:#06121f; background:color-mix(in srgb, var(--mmx) 70%, #fff); border-radius:6px; padding:3px 0; text-align:center; }
.mmx-meta, .mmx-risk { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-bottom:12px; }
.mmx-m, .mmx-r { padding:8px 9px; border-radius:11px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); text-align:center; }
.mmx-m small, .mmx-r small { display:block; font:700 7px/1.1 var(--font-display); letter-spacing:.06em; color:var(--text-dim); margin-bottom:4px; }
.mmx-m b, .mmx-r b { font:900 12px/1 var(--font-display); color:#e6e9f2; }
.mmx-m b[data-t="ok"], .mmx-r b[data-t="ok"] { color:#3de08a; }
.mmx-m b[data-t="bad"], .mmx-r b[data-t="bad"] { color:#8b93a8; }
.mmx-r b[data-t="warn"] { color:#ffc85a; }
.mmx-actions { display:flex; gap:9px; margin-bottom:11px; }
.mmx-fire { flex:1; padding:14px; border:none; border-radius:13px; cursor:pointer; font:900 13px/1 var(--font-display); letter-spacing:.04em; transition:transform .12s ease, filter .2s ease, box-shadow .25s ease; }
.mmx-fire-match { color:#06130d; background:linear-gradient(135deg,#2de08a,#0a9c63); box-shadow:0 10px 24px -12px rgba(45,224,138,.8); }
.mmx-fire-diff { color:#06121f; background:linear-gradient(135deg,#4ea7ff,#2f6dff); box-shadow:0 10px 24px -12px rgba(78,167,255,.8); }
.mmx-fire:active { transform:scale(.98); }
.mmx-fire[data-ready="1"] { animation:mmxReady 1.4s ease-in-out infinite; }
.mmx-fire[data-ready="0"] { filter:grayscale(.5) brightness(.82); }
@keyframes mmxReady { 0%,100%{ box-shadow:0 0 16px -6px var(--mmx-glow), 0 10px 24px -12px rgba(0,0,0,.6); } 50%{ box-shadow:0 0 30px 0 var(--mmx-glow), 0 10px 24px -12px rgba(0,0,0,.6); } }
.mmx-status { font:600 11px/1.4 var(--font-mono, ui-monospace, monospace); color:var(--text-soft); padding:8px 11px; border-radius:10px; background:rgba(0,0,0,.3); border-left:2px solid color-mix(in srgb, var(--mmx) 60%, transparent); }
@media (prefers-reduced-motion: reduce) { .mmx-fire[data-ready="1"] { animation:none; } }
@media (max-width:560px) {
  .mmx { padding:13px; } .mmx-core { gap:11px; } .mmx-gauge { width:78px; height:78px; } .mmx-gauge-in { width:60px; height:60px; }
  .mmx-meta, .mmx-risk { grid-template-columns:repeat(2,1fr); } .mmx-brain { grid-template-columns:64px 1fr 40px 24px; }
}

/* 🤔 DELIBERATION — "think before executing" (MATCHMASTER + Sentinel) */
.mmx-delib { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 13px; padding:9px 13px; border-radius:11px;
  font:800 10.5px/1.3 var(--font-display); letter-spacing:.01em; color:#ffe7c2; border:1px solid rgba(255,200,90,.4);
  background:linear-gradient(135deg, rgba(255,200,90,.12), rgba(0,0,0,.3)); }
.mmx-delib[data-confirmed="1"] { color:#bff7d8; border-color:rgba(45,224,138,.5); background:linear-gradient(135deg, rgba(45,224,138,.16), rgba(0,0,0,.3)); }
.mmx-delib-dots { display:inline-flex; gap:5px; flex:0 0 auto; }
.mmx-delib-dots i { width:13px; height:13px; border-radius:50%; background:rgba(255,255,255,.12); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); transition:background .3s ease, box-shadow .3s ease; }
.mmx-delib-dots i[data-on="1"] { background:linear-gradient(135deg,#ffd54a,#ff9a2c); box-shadow:0 0 9px rgba(255,200,80,.7); }
.mmx-delib[data-confirmed="1"] .mmx-delib-dots i[data-on="1"] { background:linear-gradient(135deg,#2de08a,#7df3b4); box-shadow:0 0 9px rgba(45,224,138,.7); }
.mmx-decision[data-confirmed="0"][data-side="match"] { color:#ffe7c2; background:linear-gradient(135deg, rgba(255,200,90,.22), rgba(0,0,0,.3)); border-color:rgba(255,200,90,.55); animation:mmxThink 1.2s ease-in-out infinite; }
@keyframes mmxThink { 0%,100%{ filter:brightness(.92); } 50%{ filter:brightness(1.1); } }
.sentinel-winmax[data-confirmed="1"] { border-color:rgba(45,224,138,.5); }
.sent-wm-delib { color:#ffd58a; font-weight:800; }
.sentinel-winmax[data-confirmed="1"] .sent-wm-delib { color:#7df3b4; }
@media (prefers-reduced-motion: reduce) { .mmx-decision[data-confirmed="0"][data-side="match"] { animation:none; } }

/* 📈 PARITY OSCILLOSCOPE (Genesis) + deliberation "thinking" gate */
.gen-scope-wrap { margin-bottom:13px; padding:10px 12px; border-radius:14px; background:rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.07); }
.gen-scope-k { display:block; font:800 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); margin-bottom:7px; }
.gen-scope-k i { font-style:normal; font-weight:600; opacity:.8; }
.gen-scope { width:100%; height:64px; display:block; }
.gsc-axis { stroke:rgba(255,255,255,.12); stroke-width:.8; stroke-dasharray:3 3; }
.gsc-line { fill:none; stroke:rgba(159,208,255,.55); stroke-width:1.6; }
.gsc-dot.ev { fill:#7fb6ff; } .gsc-dot.od { fill:#8b93a8; }
.gsc-proj { stroke:#ffd54a; stroke-width:1.8; stroke-dasharray:4 3; filter:drop-shadow(0 0 4px rgba(255,200,80,.6)); }
.gsc-proj-dot { stroke:#0a0d14; stroke-width:1; }
.gsc-proj-dot.ev { fill:#36d6ff; } .gsc-proj-dot.od { fill:#8b93a8; }
.gen-edge-gate[data-think="1"] { color:#ffe7c2; border-color:rgba(255,200,90,.5); background:linear-gradient(135deg, rgba(255,200,90,.16), rgba(0,0,0,.3)); animation:genThink 1.2s ease-in-out infinite; }
@keyframes genThink { 0%,100%{ filter:brightness(.92); } 50%{ filter:brightness(1.12); } }
.genesis-fire[data-gate="soft"] { filter:saturate(.85); }
@media (prefers-reduced-motion: reduce){ .gen-edge-gate[data-think="1"]{ animation:none; } }

/* ═══ ☿ HERMES — single-orb Accumulator Mission Control ═══ */
.accu.hermes { display:flex; flex-direction:column; gap:12px; }
.hermes-strip { display:flex; align-items:center; justify-content:space-between; gap:10px; font:700 10px/1 var(--font-display); letter-spacing:.06em; color:var(--text-dim); flex-wrap:wrap; }
.hermes-inst b { color:#9fd0ff; font-weight:800; }
.hermes-strip .hermes-stat { display:flex; flex-direction:column; gap:2px; text-align:right; }
.hermes-strip .hermes-stat small { font-size:7.5px; opacity:.7; letter-spacing:.12em; }
.hermes-strip .hermes-stat b { font-size:13px; color:var(--text); font-variant-numeric:tabular-nums; }

.hermes-stage { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px; }
@media (max-width:560px){ .hermes-stage { grid-template-columns:1fr; justify-items:center; } }

/* THE ORB — the one execution control */
.hermes-orb { position:relative; width:152px; height:152px; border-radius:50%; border:none; cursor:pointer; background:radial-gradient(circle at 50% 38%, rgba(70,90,120,.45), rgba(0,0,0,.65) 70%); box-shadow:0 0 0 1px rgba(255,255,255,.08), inset 0 0 30px rgba(0,0,0,.6), 0 14px 40px rgba(0,0,0,.5); display:grid; place-items:center; transition:transform .15s ease, box-shadow .3s ease; -webkit-tap-highlight-color:transparent; }
.hermes-orb:active { transform:scale(.96); }
.hermes-orb-core { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:3px; }
.hermes-orb-big { font:900 34px/1 var(--font-display); color:#fff; letter-spacing:.02em; text-shadow:0 2px 10px rgba(0,0,0,.6); font-variant-numeric:tabular-nums; }
.hermes-orb-sub { font:700 8.5px/1 var(--font-display); letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); }
.hermes-orb-ring { position:absolute; inset:-3px; border-radius:50%; background:conic-gradient(from 0deg, transparent 0 70%, currentColor 90% 100%); -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); opacity:0; animation:hermesSpin 3.4s linear infinite; color:#7fe0a0; }
.hermes-orb-ring.r2 { inset:2px; animation-duration:5.2s; animation-direction:reverse; }
@keyframes hermesSpin { to { transform:rotate(360deg); } }
.hermes-orb[data-state="calibrating"] { color:#8aa0c0; }
.hermes-orb[data-state="hold"] { color:#8b93a8; background:radial-gradient(circle at 50% 38%, rgba(120,40,50,.4), rgba(0,0,0,.7) 70%); }
.hermes-orb[data-state="hold"] .hermes-orb-ring { opacity:.5; color:#8b93a8; }
.hermes-orb[data-state="stale"] { color:#7a8295; filter:grayscale(.5); }
.hermes-orb[data-state="thinking"] { color:#ffd54a; background:radial-gradient(circle at 50% 38%, rgba(120,95,30,.45), rgba(0,0,0,.68) 70%); }
.hermes-orb[data-state="thinking"] .hermes-orb-ring { opacity:.85; color:#ffd54a; }
.hermes-orb[data-state="thinking"] .hermes-orb-ring.r2 { opacity:.5; }
.hermes-orb[data-state="armed"] { color:#37e58f; background:radial-gradient(circle at 50% 38%, rgba(30,120,80,.55), rgba(0,0,0,.6) 70%); animation:hermesArm 1.3s ease-in-out infinite; }
.hermes-orb[data-state="armed"] .hermes-orb-ring, .hermes-orb[data-state="armed"] .hermes-orb-ring.r2 { opacity:1; color:#37e58f; }
@keyframes hermesArm { 0%,100%{ box-shadow:0 0 0 1px rgba(120,255,190,.3), inset 0 0 28px rgba(0,60,30,.5), 0 0 40px rgba(40,220,140,.45); } 50%{ box-shadow:0 0 0 1px rgba(120,255,190,.5), inset 0 0 30px rgba(0,70,35,.6), 0 0 64px rgba(40,235,150,.7); } }
.hermes-orb[data-fire="1"] { animation:hermesFireFlash .9s ease-out; }
@keyframes hermesFireFlash { 0%{ box-shadow:0 0 0 2px #fff, 0 0 70px rgba(255,255,255,.7); } 100%{ box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 14px 40px rgba(0,0,0,.5); } }

.hermes-orb-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.hermes-orb-meta .hmeta { background:rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.06); border-radius:11px; padding:8px 10px; display:flex; flex-direction:column; gap:3px; }
.hermes-orb-meta .hmeta small { font:700 7.5px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.hermes-orb-meta .hmeta b { font:800 16px/1 var(--font-display); color:var(--text); font-variant-numeric:tabular-nums; }
.hermes-orb-meta .hmeta-safe b { color:#37e58f; }
.hermes-orb-meta .hmeta-tp b { color:#ffd54a; font-size:13px; }
#hermes-ko[data-t="up"]{ color:#37e58f; } #hermes-ko[data-t="down"]{ color:#8b93a8; }

/* PHASE RAIL */
.hermes-rail-k { font:800 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); }
.hermes-rail-k i { font-style:normal; font-weight:600; opacity:.75; }
.hermes-phases { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
@media (max-width:560px){ .hermes-phases { grid-template-columns:repeat(4,1fr); } }
.hermes-phase { display:flex; flex-direction:column; align-items:center; gap:2px; padding:7px 3px; border-radius:9px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); text-align:center; transition:background .25s, border-color .25s; }
.hermes-phase b { font:900 10px/1 var(--font-display); color:var(--text-dim); }
.hermes-phase i { font:700 7px/1.1 var(--font-display); font-style:normal; letter-spacing:.03em; color:var(--text-dim); opacity:.85; }
.hermes-phase small { font:600 6.5px/1 var(--font-display); color:var(--text-dim); opacity:.7; min-height:7px; }
.hermes-phase[data-ok="1"] { background:linear-gradient(180deg, rgba(40,200,130,.18), rgba(0,0,0,.3)); border-color:rgba(60,230,150,.4); }
.hermes-phase[data-ok="1"] b { color:#37e58f; } .hermes-phase[data-ok="1"] i { color:#9fe9c4; opacity:1; }
.hermes-phase[data-ok="0"] { opacity:.62; }

/* CONE */
.hermes-cone-wrap { padding:8px 10px; border-radius:12px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); }
.hermes-cone-k { display:block; font:700 7.5px/1 var(--font-display); letter-spacing:.08em; color:var(--text-dim); margin-bottom:5px; }
.hermes-cone-wrap .aq-fan { width:100%; height:80px; display:block; }

/* CONTROLS */
.hermes-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.hermes-toggle { flex:1 1 120px; padding:10px 12px; border-radius:11px; border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.3); color:var(--text-dim); font:800 10px/1 var(--font-display); letter-spacing:.05em; cursor:pointer; transition:.2s; }
.hermes-toggle[data-on="1"] { background:linear-gradient(135deg, rgba(40,200,130,.25), rgba(0,0,0,.3)); border-color:rgba(60,230,150,.5); color:#9fe9c4; }
.hermes-toggle-shield[data-on="1"] { background:linear-gradient(135deg, rgba(90,150,255,.22), rgba(0,0,0,.3)); border-color:rgba(120,170,255,.5); color:#bcd4ff; }
.hermes-rate { display:flex; gap:4px; background:rgba(0,0,0,.3); border-radius:10px; padding:3px; }
.hermes-rate .hrate { padding:7px 10px; border-radius:8px; border:none; background:transparent; color:var(--text-dim); font:800 9px/1 var(--font-display); cursor:pointer; transition:.18s; }
.hermes-rate .hrate[data-active="1"] { background:rgba(255,213,74,.2); color:#ffd54a; box-shadow:inset 0 0 0 1px rgba(255,213,74,.4); }
.hermes-tpsel { display:flex; align-items:center; gap:6px; font:800 8px/1 var(--font-display); letter-spacing:.08em; color:var(--text-dim); }
.hermes-tpsel select { background:rgba(0,0,0,.4); color:var(--text); border:1px solid rgba(255,255,255,.12); border-radius:8px; padding:7px 8px; font:700 11px/1 var(--font-display); cursor:pointer; }

/* FOOT: session + log */
.hermes-foot { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:stretch; }
@media (max-width:560px){ .hermes-foot { grid-template-columns:1fr; } }
.hermes-sess { display:flex; gap:12px; align-items:center; padding:8px 12px; border-radius:11px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); }
.hermes-sess span { display:flex; flex-direction:column; gap:2px; }
.hermes-sess small { font:700 7px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.hermes-sess b { font:800 14px/1 var(--font-display); color:var(--text); font-variant-numeric:tabular-nums; }
#hermes-net[data-t="up"]{ color:#37e58f; } #hermes-net[data-t="down"]{ color:#8b93a8; }
.hermes-log { min-height:60px; max-height:82px; overflow:hidden; padding:7px 10px; border-radius:11px; background:rgba(0,0,0,.42); border:1px solid rgba(255,255,255,.06); font:600 9.5px/1.5 ui-monospace, "SF Mono", Menlo, monospace; color:var(--text-dim); }
.hermes-log-row { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hermes-log-row[data-k="fire"] { color:#ffd54a; } .hermes-log-row[data-k="up"] { color:#37e58f; } .hermes-log-row[data-k="down"] { color:#8b93a8; }
@media (prefers-reduced-motion: reduce){ .hermes-orb-ring, .hermes-orb[data-state="armed"] { animation:none !important; } }

/* ═══ Per-trade-type Trade History / win-loss cards ═══ */
.journal-hero-line { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width:560px){ .journal-hero-line { grid-template-columns: repeat(2,1fr); } }
.journal-hero-line .journal-profit { font-size: clamp(16px, 3vw, 24px); }
.journal-trade-card { --fam:#8aa0c0; position:relative; }
.journal-trade-card[data-fam="accumulator"]{ --fam:#ffd54a; }
.journal-trade-card[data-fam="matches"]{ --fam:#37e58f; }
.journal-trade-card[data-fam="differs"]{ --fam:#ff8a5b; }
.journal-trade-card[data-fam="parity"]{ --fam:#4ea7ff; }
.journal-trade-card[data-fam="overunder"]{ --fam:#b48cff; }
.journal-trade-card[data-fam="rise"]{ --fam:#2ed573; }
.journal-trade-card[data-fam="fall"]{ --fam:#8b93a8; }
.journal-trade-card[data-fam="multiplier"]{ --fam:#36d6ff; }
.journal-trade-card[data-fam="touch"]{ --fam:#ffb347; }
.journal-trade-card[data-fam="run"]{ --fam:#ff7eb6; }
.journal-trade-card[data-fam="turbo"]{ --fam:#ffe14a; }
.journal-trade-card[data-fam="vanilla"]{ --fam:#ffd9a0; }
.journal-trade-card[data-fam="asian"]{ --fam:#ff9f43; }
.journal-trade-card .journal-card-shell { position:relative; overflow:hidden; }
.journal-trade-card .journal-card-shell::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--fam); opacity:.92; box-shadow:0 0 12px var(--fam); }
.journal-trade-card .journal-route-badge { background:rgba(2,10,34,0.5); border-color:rgba(255,255,255,0.12); }
.journal-trade-card .journal-route-badge strong { color:var(--fam); }
.j-fam-ic { font-style:normal; margin-right:2px; filter:drop-shadow(0 0 5px var(--fam)); }
.journal-hero-line .jh.jh-pos { color:#37e58f; }
.journal-hero-line .jh.jh-neg { color:#8b93a8; }
.journal-hero-line .jh.jh-digit { font-size:20px; font-variant-numeric:tabular-nums; }
.journal-type-grid .jf-pos { color:#37e58f; }
.journal-type-grid .jf-neg { color:#8b93a8; }

/* ⏱ KNOCKOUT WATCH + 📊 KNOCKOUT DISTRIBUTOR (Hermes auto knockout engine) */
.hermes-kowatch { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:9px 12px; border-radius:12px; background:rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.07); }
.hermes-kowatch .kw-k { font:800 8px/1 var(--font-display); letter-spacing:.12em; color:var(--text-dim); white-space:nowrap; }
.hermes-kowatch .kw-status { font:700 10px/1.3 var(--font-display); color:var(--text); }
.hermes-kowatch .kw-meter { width:78px; height:6px; border-radius:6px; background:rgba(255,255,255,.1); overflow:hidden; }
.hermes-kowatch .kw-meter i { display:block; height:100%; width:0%; border-radius:6px; transition:width .3s ease; background:#37e58f; }
.hermes-kowatch[data-state="wait"] { border-color:rgba(255,200,90,.4); animation:kwPulse 1.1s ease-in-out infinite; }
.hermes-kowatch[data-state="wait"] .kw-status { color:#ffd54a; }
.hermes-kowatch[data-state="wait"] .kw-meter i { background:#ffd54a; }
.hermes-kowatch[data-state="clear"] .kw-status { color:#37e58f; }
.hermes-kowatch[data-state="scan"] .kw-status { color:var(--text-dim); }
@keyframes kwPulse { 0%,100%{ filter:brightness(.95);} 50%{ filter:brightness(1.12);} }
.hermes-kodist-wrap { padding:9px 12px; border-radius:12px; background:rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.06); }
.hermes-kodist-wrap .kd-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.hermes-kodist-wrap .kd-k { font:800 8px/1 var(--font-display); letter-spacing:.1em; color:var(--text-dim); }
.hermes-kodist-wrap .kd-k i { font-style:normal; font-weight:600; opacity:.75; }
.hermes-kodist-wrap .kd-rec { font:700 8px/1 var(--font-display); letter-spacing:.08em; color:var(--text-dim); white-space:nowrap; }
.hermes-kodist-wrap .kd-rec b { color:#37e58f; font-size:12px; }
.hermes-kodist { width:100%; height:78px; display:block; }
.kd-bar.safe { fill:#37e58f; opacity:.9; }
.kd-bar.warn { fill:#ffd54a; opacity:.86; }
.kd-bar.risk { fill:#8b93a8; opacity:.82; }
.kd-recline { stroke:#37e58f; stroke-width:1.4; stroke-dasharray:3 2; opacity:.9; }
.kd-axisline { stroke:rgba(255,255,255,.14); stroke-width:.8; }
.hermes-kodist-wrap .kd-axis { display:flex; justify-content:space-between; margin-top:4px; font:600 7px/1 var(--font-display); letter-spacing:.04em; color:var(--text-dim); opacity:.7; }
.kd-bar.risk { fill:#fa9200 !important; }   /* risk reads amber (no red) */

/* ═══════════════════════════════════════════════════════════════════════
   ☀ AMBER ECLIPSE THEME — image background · amber/black/navy · glass win-loss ·
   gold disclaimer · swarm removed · bigger controls. (Appended last = wins.) */

/* ── Console background: navy ⇄ orange LIVING SHIFT (~10s each, slick), on a FIXED
   full-viewport layer. The warm "nebula"/hero glow layers are KILLED below so this
   reads clean (no red, no gradient mush). ── */
/* ── LIVING AURORA background: a refined navy field with soft warm-amber + cool-blue
   glows that slowly drift and breathe. The screen NEVER flips to solid orange (that
   flat navy↔orange swap looked cheap) — navy stays dominant and the light just ebbs.
   Two fixed full-viewport layers, animated by transform (GPU-smooth). ── */
html, body { background:#101d33 !important; background-image:none !important; animation:none !important; }
body::before, body::after {
  content:"" !important; position:fixed !important; z-index:-10 !important;
  pointer-events:none !important; display:block !important; inset:-35% !important;
  will-change:transform;
}
body::before {
  background:
    radial-gradient(38% 46% at 24% 28%, rgba(250,146,0,0.20), transparent 70%),
    radial-gradient(32% 40% at 82% 74%, rgba(255,176,64,0.13), transparent 72%),
    #101d33 !important;
  animation:auroraDriftA 28s ease-in-out infinite alternate !important;
}
body::after {
  z-index:-9 !important;
  background:
    radial-gradient(42% 52% at 78% 20%, rgba(46,96,176,0.30), transparent 70%),
    radial-gradient(36% 46% at 14% 84%, rgba(250,146,0,0.11), transparent 74%) !important;
  mix-blend-mode:screen !important;
  animation:auroraDriftB 36s ease-in-out infinite alternate !important;
}
@keyframes auroraDriftA {
  0%   { transform:translate3d(-4%,-2%,0) scale(1.05); }
  100% { transform:translate3d(5%,3%,0)  scale(1.13); }
}
@keyframes auroraDriftB {
  0%   { transform:translate3d(4%,3%,0)   scale(1.10); }
  100% { transform:translate3d(-5%,-3%,0) scale(1.04); }
}
@media (prefers-reduced-motion: reduce){ body::before, body::after { animation:none !important; } }
/* KILL every warm decorative background layer (these caused the red/orange/yellow) */
.nebula, .nebula-layer, .nebula-rays, .nebula-grid, [class*="nebula"],
.godmind-hero::after, .godmind-hero::before, .aether-core::before, .aether-core::after { display:none !important; background:none !important; }
.aether-main, #view-console, .aether-view, .platform-shell, .app-shell, .aether-shell { background:transparent !important; }

/* ── Main console cards: LIGHT-YELLOW glass (#FED872 family), lighter than the field ── */
.glass {
  background:linear-gradient(160deg, rgba(254,216,114,0.26), rgba(250,146,0,0.12)) !important;
  border:1px solid rgba(254,216,114,0.44) !important;
  backdrop-filter:blur(22px) saturate(1.2); -webkit-backdrop-filter:blur(22px) saturate(1.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.20), inset 0 0 30px rgba(254,216,114,0.07), 0 1px 0 rgba(0,0,0,0.4), 0 26px 60px -30px rgba(0,0,0,0.92) !important;
}

/* ── Per-analyzer identity: 4 NAVY #202A44 · 4 MIDNIGHT HARBOR #9FB8C9 ── */
.analyzer-theme-rise_fall, .analyzer-theme-streak,
.analyzer-theme-even_odd, .analyzer-theme-accumulator { --sig-c:#7aa0d8 !important; --sig-c2:#4d74b0 !important; }   /* NAVY */
.analyzer-theme-over_under, .analyzer-theme-matches,
.analyzer-theme-asians, .analyzer-theme-vanilla { --sig-c:#9fb8c9 !important; --sig-c2:#6f8ea2 !important; }        /* HARBOR */
.analyzer-theme-rise_fall.glass, .analyzer-theme-streak.glass,
.analyzer-theme-even_odd.glass, .analyzer-theme-accumulator.glass {
  background:linear-gradient(160deg, rgba(32,42,68,0.66), rgba(20,26,44,0.74)) !important;     /* #202A44 navy */
  border-color:rgba(122,160,216,0.42) !important;
}
.analyzer-theme-over_under.glass, .analyzer-theme-matches.glass,
.analyzer-theme-asians.glass, .analyzer-theme-vanilla.glass {
  background:linear-gradient(160deg, rgba(159,184,201,0.24), rgba(40,52,84,0.34)) !important;  /* #9FB8C9 harbor */
  border-color:rgba(159,184,201,0.50) !important;
}

/* ── Voice Trading Journal matches the chosen analyzer's theme colour PRECISELY ── */
#journal-section {
  --active-sig:#202a44;
  background:linear-gradient(160deg, color-mix(in srgb, var(--active-sig) 28%, rgba(26,29,33,0.5)), rgba(20,24,32,0.46)) !important;
  backdrop-filter:blur(22px) saturate(1.15); -webkit-backdrop-filter:blur(22px) saturate(1.15);
  border:1px solid color-mix(in srgb, var(--active-sig) 60%, rgba(255,255,255,0.10)) !important;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--active-sig) 28%, transparent), 0 26px 64px -30px rgba(0,0,0,0.9) !important;
}
#journal-section > header h2 { color:color-mix(in srgb, var(--active-sig) 60%, #f4ede0) !important; }

/* ── WIN/LOSS CARDS — most advanced transparent glass ── */
.win-loss-card, .journal-trade-card, .trade-prediction-card {
  background:linear-gradient(150deg, rgba(255,255,255,0.07), rgba(255,255,255,0.015)) !important;
  backdrop-filter:blur(24px) saturate(1.35) brightness(1.05);
  -webkit-backdrop-filter:blur(24px) saturate(1.35) brightness(1.05);
  border:1px solid rgba(255,255,255,0.15) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.20) inset, 0 0 0 1px rgba(255,255,255,0.04), 0 32px 72px -30px rgba(0,0,0,0.85) !important;
}
.journal-card-shell { background:transparent !important; border:none !important; box-shadow:none !important; }
.journal-trade-card .journal-section-card, .journal-hero-line > div, .journal-detail-grid span {
  background:rgba(255,255,255,0.05) !important; border-color:rgba(255,255,255,0.08) !important;
}
.journal-trade-card.j-win { box-shadow:0 0 0 1px rgba(46,213,115,0.36), 0 32px 72px -32px rgba(0,0,0,0.85) !important; }
.journal-trade-card.j-loss { box-shadow:0 0 0 1px rgba(139,147,168,0.36), 0 32px 72px -32px rgba(0,0,0,0.85) !important; }

/* ── Risk disclaimer → gold mini glass card ── */
.aether-footer { display:flex; flex-direction:column; align-items:center; gap:10px; }
.aether-footer .fine-print {
  max-width:680px; margin:0 auto; padding:11px 18px; border-radius:14px;
  font-size:11.5px; line-height:1.5; text-align:center; color:#ffe6a6;
  background:linear-gradient(150deg, rgba(255,200,74,0.15), rgba(120,80,12,0.18));
  border:1px solid rgba(255,200,74,0.44);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,0.12) inset, 0 0 22px -8px rgba(255,200,74,0.5), 0 18px 40px -24px rgba(0,0,0,0.8);
}
.aether-footer .fine-print::before { content:"⚠ "; color:#ffd24a; font-weight:800; }

/* ── Remove the "swarm consciousness" UI completely ── */
.nep-consensus, [data-nep-consensus], .aor-swarm, .aor-swarm-meter,
[data-cell="swarm"], #aib-swarm, #aib-swarm-sub, #aor-swarm, #aor-swarm-bar { display:none !important; }

/* ── Bigger, easier-to-see buttons & toggles ── */
.btn-action { min-height:48px !important; padding:14px 18px !important; border-radius:14px !important; font-size:14.5px !important; font-weight:800 !important; }
.hybrid-aipick, .btn-deriv-oauth, .btn-find-pair, .stake-preset { min-height:44px !important; font-size:13.5px !important; }
.gen-mode, .hermes-toggle, .hermes-toggle-shield { min-height:46px !important; font-size:12px !important; }
.hrate { min-height:38px !important; font-size:10px !important; }
input[type="checkbox"], input[type="radio"] { width:22px !important; height:22px !important; accent-color:#fa9200; }
.analyzer-execution-panel select, .analyzer-execution-panel input, #aq-target, .hermes-tpsel select { min-height:44px !important; font-size:14px !important; }

/* ════════ INCREDIBLE PASS — premium polish across all sections ════════ */
/* Cards: hover lift + glow, smooth transitions */
.glass { transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease, border-color .3s ease; }
.analyzer.glass:hover, section.glass:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--sig-c, #fa9200) 55%, transparent) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 0 0 1px color-mix(in srgb, var(--sig-c, #fa9200) 22%, transparent),
              0 0 34px -10px color-mix(in srgb, var(--sig-c, #fa9200) 50%, transparent), 0 40px 80px -34px rgba(0,0,0,0.95) !important;
}
/* Section titles — SOLID luminous light (NOT gradient-clip). The old gradient
   used `background:… !important`, which forces its implicit `background-clip:border-box`
   to be important too, overriding the non-important `background-clip:text` — so the
   light gradient filled the whole heading as a WHITE BOX with invisible text. Solid
   light text can never box, and reads on navy on every browser/device. */
section.glass > header h2, section.glass > h2, .analyzer > header h3 {
  position: relative;
  background: none !important; background-image: none !important;
  -webkit-background-clip: border-box !important; background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: #eef3fb !important;
  text-shadow: 0 0 22px color-mix(in srgb, var(--sig-c, #7aa0d8) 26%, transparent);
}
/* analyzer card titles keep a subtle accent tint but stay bright + readable (no box) */
.analyzer > header h3 { color: color-mix(in srgb, var(--sig-c, #eef3fb) 32%, #eef3fb) !important; }
.analyzer > header h3::after {
  content:""; display:block; height:2px; width:46px; margin-top:6px; border-radius:2px;
  background: linear-gradient(90deg, var(--sig-c, #fa9200), transparent);
}
/* Primary action buttons → vivid orange gradient (Rise stays green, Fall slate) */
.btn-action { background: linear-gradient(135deg, #ffae1e, #e07d0c) !important; color:#1a0f02 !important; border:none !important;
  box-shadow: 0 12px 28px -12px rgba(250, 146, 0,.7), inset 0 1px 0 rgba(255,255,255,.35) !important; }
.btn-action:hover { filter:brightness(1.08) saturate(1.06); transform:translateY(-2px); }
.btn-action.btn-rise { background: linear-gradient(135deg, #46e08f, #1f9d63) !important; box-shadow:0 12px 28px -12px rgba(46,213,115,.6), inset 0 1px 0 rgba(255,255,255,.3) !important; }
.btn-action.btn-fall { background: linear-gradient(135deg, #9aa3b8, #5b6478) !important; color:#0c0f16 !important; box-shadow:0 12px 28px -12px rgba(139,147,168,.6), inset 0 1px 0 rgba(255,255,255,.3) !important; }
/* Premium amber scrollbar */
*::-webkit-scrollbar { width:11px; height:11px; }
*::-webkit-scrollbar-track { background:rgba(0,0,0,0.28); }
*::-webkit-scrollbar-thumb { background:linear-gradient(180deg,#fa9200,#c47a14); border-radius:8px; border:2px solid rgba(0,0,0,0.3); }
*::-webkit-scrollbar-thumb:hover { background:linear-gradient(180deg,#ffae1e,#fa9200); }
* { scrollbar-color: #fa9200 rgba(0,0,0,0.28); }
/* Inputs / selects: frosted with orange focus ring */
.analyzer-execution-panel input, .analyzer-execution-panel select, #aq-target, .hermes-tpsel select {
  background:rgba(10,8,4,0.5) !important; border:1px solid rgba(250, 146, 0,0.28) !important; color:#f7f1e6 !important;
  border-radius:11px !important; transition:border-color .2s, box-shadow .2s;
}
.analyzer-execution-panel input:focus, .analyzer-execution-panel select:focus, #aq-target:focus {
  outline:none !important; border-color:rgba(250, 146, 0,0.7) !important; box-shadow:0 0 0 3px rgba(250, 146, 0,0.16) !important;
}
@media (prefers-reduced-motion: reduce){ .analyzer.glass:hover, section.glass:hover, .btn-action:hover { transform:none; } }

/* ── INCREDIBLE PASS · above-the-fold chrome (hero · metrics · chips · connect) ── */
.grad-text { background:none !important; background-image:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important; -webkit-text-fill-color:#ff9e1f !important; color:#ff9e1f !important; text-shadow:0 0 20px rgba(250,146,0,0.28); }
.godmind-hero { position:relative; overflow:hidden; }
.godmind-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(58% 78% at 88% 12%, rgba(250, 146, 0,0.15), transparent 60%); }
.hero-metrics .metric {
  background:linear-gradient(160deg, rgba(250, 146, 0,0.10), rgba(0,0,0,0.22)) !important;
  border:1px solid rgba(250, 146, 0,0.22) !important; border-radius:14px; padding:12px 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12);
}
.hero-metrics .metric-v { color:#ffb347 !important; }
.chip { backdrop-filter:blur(12px); border-radius:999px; }
.chip-offline { background:rgba(139,147,168,0.16) !important; border:1px solid rgba(139,147,168,0.40) !important; color:#cdd3df !important; }
.chip .chip-dot { box-shadow:0 0 10px currentColor; }
.btn-deriv-oauth { background:linear-gradient(135deg,#ffae1e,#e07d0c) !important; color:#1a0f02 !important; box-shadow:0 14px 32px -14px rgba(250, 146, 0,.75), inset 0 1px 0 rgba(255,255,255,.35) !important; }
.btn-deriv-oauth:hover { filter:brightness(1.07); transform:translateY(-2px); }
.glass-inset { background:linear-gradient(160deg, rgba(254,216,114,0.16), rgba(26,29,33,0.40)) !important; border:1px solid rgba(254,216,114,0.30) !important; backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); }

/* ════ MOST-ADVANCED BUTTONS & TOGGLES — precise yellow #FA9200 / navy ════ */
.btn-action, .hybrid-aipick, .btn-deriv-oauth, .btn-primary, .gm-connect-main, #connect-btn {
  background:linear-gradient(135deg,#ffb01e 0%,#fa9200 55%,#dd7f00 100%) !important;
  color:#1a1206 !important; border:none !important; font-weight:800 !important; letter-spacing:.02em;
  box-shadow:0 14px 30px -14px rgba(250,146,0,.7), inset 0 1px 0 rgba(255,255,255,.42), inset 0 -2px 0 rgba(150,80,0,.3) !important;
  transition:transform .16s cubic-bezier(.2,.7,.3,1), filter .2s, box-shadow .25s !important;
}
.btn-action:hover, .hybrid-aipick:hover, .btn-deriv-oauth:hover, .btn-primary:hover, .gm-connect-main:hover {
  transform:translateY(-2px); filter:brightness(1.07) saturate(1.05);
  box-shadow:0 18px 38px -14px rgba(250,146,0,.88), inset 0 1px 0 rgba(255,255,255,.48) !important;
}
.btn-action:active, .btn-deriv-oauth:active { transform:translateY(0) scale(.985); }
/* directional: Rise green · Fall slate (no red) */
.btn-action.btn-rise { background:linear-gradient(135deg,#5cf0a4,#1f9d63) !important; color:#06160e !important; box-shadow:0 14px 30px -14px rgba(46,213,115,.65), inset 0 1px 0 rgba(255,255,255,.4) !important; }
.btn-action.btn-fall { background:linear-gradient(135deg,#aab2c4,#5b6478) !important; color:#0c0f16 !important; box-shadow:0 14px 30px -14px rgba(139,147,168,.6), inset 0 1px 0 rgba(255,255,255,.35) !important; }
/* secondary / ghost buttons → navy glass */
.btn-ghost, .gm-switch-acct { background:rgba(32,42,68,.5) !important; border:1px solid rgba(159,184,201,.4) !important; color:#cfe0ff !important; min-height:44px !important; border-radius:12px !important; }
.btn-ghost:hover, .gm-switch-acct:hover { background:rgba(32,42,68,.7) !important; border-color:rgba(159,184,201,.6) !important; }
/* toggles / mode pills → yellow active */
.gen-mode[data-on="1"], .hermes-toggle[data-on="1"], .hrate[data-active="1"], .hermes-rate .hrate[data-active="1"], .voice-exec-toggle.is-on, .btn-smart-ai.is-on {
  background:linear-gradient(135deg, rgba(250,146,0,.30), rgba(250,146,0,.12)) !important;
  border-color:rgba(250,146,0,.6) !important; color:#ffc23a !important; box-shadow:inset 0 0 0 1px rgba(250,146,0,.35) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color:#fa9200 !important; width:22px !important; height:22px !important; }
.stake-preset.is-on { background:linear-gradient(135deg, rgba(250,146,0,.34), rgba(250,146,0,.18)) !important; border-color:rgba(250,146,0,.7) !important; color:#fff !important; box-shadow:0 0 14px rgba(250,146,0,.35) !important; }
/* win/loss cards — accurate green-win / slate-loss edges (no red) */
.win-loss-card[data-pnl="profit"] { box-shadow:0 0 0 1px rgba(46,213,115,.4), 0 18px 44px -22px rgba(0,0,0,.55) !important; }
.win-loss-card[data-pnl="loss"]   { box-shadow:0 0 0 1px rgba(139,147,168,.42), 0 18px 44px -22px rgba(0,0,0,.55) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   ☀ NAVY THEME LOCK (authoritative — last in file). Darkest-navy bg · LIGHTER-NAVY
   cards · LIGHT legible text · distinct per-analyzer accent · transparent win/loss.
   ═══════════════════════════════════════════════════════════════════════════ */
/* 1 — MAIN cards = lighter navy, light readable text (solid, no blur) */
.glass:not(.analyzer):not(#journal-section):not(.win-loss-card) {
  background:linear-gradient(158deg,#0f1b30 0%,#0a1322 56%,#070e1c 100%) !important;
  border:1px solid rgba(160,184,224,.16) !important; color:#eaf0fb !important; border-radius:16px;
  --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd; --text-strong:#ffffff; --text-bright:#ffffff;
  --neon-cyan:#eaf0fb; --godmind-silver:#dfe6f3;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:0 24px 54px -28px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.13), inset 0 26px 40px -34px rgba(255,255,255,.20), inset 0 -1px 0 rgba(0,0,0,.4) !important;
}
.glass:not(.analyzer) .grad-text { background:none !important; background-image:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important; -webkit-text-fill-color:#ffb347 !important; color:#ffb347 !important; }

/* 2 — Per-analyzer ACCENT colour (8 distinct, no red/no purple) */
.analyzer-theme-rise_fall   { --sig-c:#2ed573 !important; --sig-c2:#1f9d63 !important; }
.analyzer-theme-streak      { --sig-c:#37e58f !important; --sig-c2:#1fa869 !important; }
.analyzer-theme-even_odd    { --sig-c:#4ea7ff !important; --sig-c2:#2f6fd0 !important; }
.analyzer-theme-accumulator { --sig-c:#fa9200 !important; --sig-c2:#dd7f00 !important; }
.analyzer-theme-over_under  { --sig-c:#ffc24a !important; --sig-c2:#e0a014 !important; }
.analyzer-theme-matches     { --sig-c:#5fc6d8 !important; --sig-c2:#2f8fa6 !important; }
.analyzer-theme-asians      { --sig-c:#22d3c5 !important; --sig-c2:#149b90 !important; }
.analyzer-theme-vanilla     { --sig-c:#9ad36a !important; --sig-c2:#6aa83e !important; }
/* analyzer card = lighter navy + its accent on the rim/header (light text) */
.analyzer.glass {
  background:linear-gradient(158deg,#101d33 0%,#0a1426 56%,#070f1f 100%) !important;
  border:1px solid color-mix(in srgb, var(--sig-c) 52%, rgba(255,255,255,.07)) !important;
  color:#eaf0fb !important; --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd; --neon-cyan:#eaf0fb; --godmind-silver:#dfe6f3;
  border-radius:16px; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:0 24px 54px -28px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.12), inset 0 26px 40px -34px rgba(255,255,255,.18), inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 12%, transparent), 0 0 36px -20px var(--sig-c) !important;
}
.analyzer.glass > header h3 { color:var(--sig-c) !important; font-weight:800 !important; text-shadow:0 0 20px color-mix(in srgb, var(--sig-c) 55%, transparent) !important; }
.analyzer.glass > header .sub { color:#c2cee2 !important; }
/* section sub-titles / eyebrows on cards — keep them clearly visible */
.glass .nep-k, .glass [class*="-k"], .glass .gauge-k, .glass small, .glass .eyebrow, .analyzer.glass small { color:#bcc8de !important; }

/* 3 — JOURNAL = navy, matches the active analyzer's accent (--active-sig from JS) */
#journal-section {
  background:linear-gradient(158deg,#0f1b30 0%,#0a1322 56%,#070e1c 100%) !important;
  border:1px solid color-mix(in srgb, var(--active-sig,#4ea7ff) 48%, rgba(255,255,255,.07)) !important;
  color:#eaf0fb !important; --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd; border-radius:18px;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--active-sig,#4ea7ff) 16%, transparent), inset 0 1px 0 rgba(255,255,255,.10), 0 24px 58px -30px rgba(0,0,0,.9) !important;
}
#journal-section > header h2 { color:var(--active-sig,#7fb6ff) !important; }

/* 4 — WIN/LOSS + trade-history = TRANSPARENT (advanced), accurate green-win/slate-loss */
.win-loss-card, .journal-trade-card, .trade-prediction-card {
  background:linear-gradient(160deg, rgba(13,22,40,.52), rgba(8,14,28,.46)) !important; border:1px solid rgba(150,180,220,.16) !important; color:#eaf0fb !important;
  --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd; --neon-cyan:#eaf0fb; --godmind-silver:#dfe6f3; border-radius:16px;
  backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 24px 58px -28px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.14) !important;
}
.journal-trade-card .journal-card-shell { background:transparent !important; border:none !important; }
.journal-trade-card .journal-section-card, .journal-trade-card .journal-hero-line>div, .journal-trade-card .journal-detail-grid span { background:rgba(255,255,255,.05) !important; border-color:rgba(255,255,255,.10) !important; }
.journal-trade-card.j-win  { border-color:rgba(46,213,115,.5) !important; box-shadow:0 0 0 1.5px rgba(46,213,115,.55), inset 0 1px 0 rgba(255,255,255,.12), 0 0 26px -12px rgba(46,213,115,.55), 0 24px 58px -28px rgba(0,0,0,.8) !important; }
.journal-trade-card.j-loss { border-color:rgba(139,147,168,.5) !important; box-shadow:0 0 0 1.5px rgba(139,147,168,.5), inset 0 1px 0 rgba(255,255,255,.1), 0 0 24px -12px rgba(139,147,168,.4), 0 24px 58px -28px rgba(0,0,0,.8) !important; }
.win-loss-card[data-pnl="profit"] { box-shadow:0 0 0 1px rgba(46,213,115,.45), 0 22px 56px -28px rgba(0,0,0,.75) !important; }
.win-loss-card[data-pnl="loss"]   { box-shadow:0 0 0 1px rgba(139,147,168,.45), 0 22px 56px -28px rgba(0,0,0,.75) !important; }
:is(.win-loss-card,.journal-trade-card) :where(.wl-positive,.journal-profit,.jf-pos,.jh-pos,[data-t="up"]) { color:#37e58f !important; }
:is(.win-loss-card,.journal-trade-card) :where(.wl-negative,.jf-neg,.jh-neg,[data-t="down"]) { color:#9aa6bd !important; }

/* 5 — inputs / selects on navy cards = readable */
.glass :where(input,select,textarea), .analyzer.glass :where(input,select,textarea), #journal-section :where(input,select,textarea) {
  background:rgba(255,255,255,.06) !important; color:#eaf0fb !important; border:1px solid rgba(255,255,255,.16) !important;
}

/* 6 — BUTTONS & TOGGLES */
.btn-action, .hybrid-aipick, .btn-deriv-oauth, .btn-primary, .gm-connect-main, #connect-btn {
  background:linear-gradient(135deg,#ffb01e,#fa9200 55%,#dd7f00) !important; color:#1a1206 !important; border:none !important; font-weight:800 !important;
  box-shadow:0 12px 26px -12px rgba(250,146,0,.7), inset 0 1px 0 rgba(255,255,255,.42) !important;
}
.btn-action *, .btn-deriv-oauth *, .hybrid-aipick *, .gm-connect-main * { color:inherit !important; }
.btn-ghost, .gm-switch-acct { background:#1c2c4c !important; border:1px solid #44598a !important; color:#dfe8f5 !important; min-height:44px !important; border-radius:12px !important; }
.btn-ghost *, .gm-switch-acct * { color:#dfe8f5 !important; }
.gen-mode[data-on="1"], .hermes-toggle[data-on="1"], .hrate[data-active="1"], .hermes-rate .hrate[data-active="1"], .voice-exec-toggle.is-on, .btn-smart-ai.is-on {
  background:linear-gradient(135deg,#fa9200,#dd7f00) !important; color:#1a1206 !important; border-color:#fa9200 !important;
}
input[type="checkbox"], input[type="radio"] { accent-color:#fa9200 !important; }

/* ════ DIFFERENTIATED TRADE-EXECUTION BUTTONS — each route a distinct colour
   (no red, no purple). Appended last so they win over the generic .btn-action. ════ */
.btn-action[data-action], .btn-action[data-action] * { color:#07120b !important; }   /* dark label on the bright routes */
.btn-action[data-action="CALL"]            { background:linear-gradient(135deg,#5cf0a4,#1f9d63) !important; box-shadow:0 12px 26px -12px rgba(46,213,115,.6) !important; }
.btn-action[data-action="PUT"]             { background:linear-gradient(135deg,#7fb0e8,#2f5ea8) !important; box-shadow:0 12px 26px -12px rgba(90,143,214,.6) !important; }
.btn-action[data-action="PUT"], .btn-action[data-action="PUT"] *,
.btn-action[data-action="MULTDOWN"], .btn-action[data-action="MULTDOWN"] *,
.btn-action[data-action="VANILLALONGPUT"], .btn-action[data-action="VANILLALONGPUT"] * { color:#eaf2ff !important; }   /* light label on the deeper-blue routes */
.btn-action[data-action="DIGITOVER"]       { background:linear-gradient(135deg,#ffd24a,#e0a014) !important; box-shadow:0 12px 26px -12px rgba(255,194,74,.6) !important; }
.btn-action[data-action="DIGITUNDER"]      { background:linear-gradient(135deg,#ffb01e,#dd7f00) !important; box-shadow:0 12px 26px -12px rgba(250,146,0,.6) !important; }
.btn-action[data-action="DIGITMATCH"]      { background:linear-gradient(135deg,#46e8a0,#1fa869) !important; box-shadow:0 12px 26px -12px rgba(55,229,143,.55) !important; }
.btn-action[data-action="DIGITDIFF"]       { background:linear-gradient(135deg,#74d0e0,#2f8fa6) !important; box-shadow:0 12px 26px -12px rgba(95,198,216,.55) !important; }
.btn-action[data-action="DIGITEVEN"]       { background:linear-gradient(135deg,#6fb6ff,#2f6fd0) !important; box-shadow:0 12px 26px -12px rgba(78,167,255,.55) !important; }
.btn-action[data-action="DIGITEVEN"] *     { color:#eaf2ff !important; }
.btn-action[data-action="DIGITODD"]        { background:linear-gradient(135deg,#3ee0d2,#149b90) !important; box-shadow:0 12px 26px -12px rgba(34,211,197,.55) !important; }
.btn-action[data-action="ASIANU"]          { background:linear-gradient(135deg,#7fe0b0,#2fa978) !important; }
.btn-action[data-action="ASIAND"]          { background:linear-gradient(135deg,#9bb6dc,#566f9e) !important; }
.btn-action[data-action="ASIAND"] *        { color:#eaf2ff !important; }
.btn-action[data-action="MULTUP"]          { background:linear-gradient(135deg,#2ad6c4,#0e8a7e) !important; box-shadow:0 12px 26px -12px rgba(25,195,178,.55) !important; }
.btn-action[data-action="MULTDOWN"]        { background:linear-gradient(135deg,#6e8fcf,#324d86) !important; box-shadow:0 12px 26px -12px rgba(85,119,181,.55) !important; }
.btn-action[data-action="VANILLALONGCALL"] { background:linear-gradient(135deg,#aee076,#6aa83e) !important; }
.btn-action[data-action="VANILLALONGPUT"]  { background:linear-gradient(135deg,#7f9fd6,#3f6fae) !important; }
.btn-action[data-action="RUNHIGH"]         { background:linear-gradient(135deg,#5cf0a4,#1f9d63) !important; }
.btn-action[data-action="RUNLOW"]          { background:linear-gradient(135deg,#9bb6dc,#566f9e) !important; }
.btn-action[data-action="ONETOUCH"]        { background:linear-gradient(135deg,#ffd874,#e0a82a) !important; }
.btn-action[data-action="NOTOUCH"]         { background:linear-gradient(135deg,#aab2c4,#67708a) !important; }
.btn-action[data-action] { border:none !important; font-weight:800 !important; letter-spacing:.02em; transition:transform .16s, filter .2s, box-shadow .25s !important; }
.btn-action[data-action]:hover { transform:translateY(-2px); filter:brightness(1.08) saturate(1.05); }
.btn-action[data-action]:active { transform:translateY(0) scale(.98); }

/* ── NAVY fix-ups: connection panel / inset cards + clean transparent win-loss ── */
.glass-inset, .connection-panel {
  background:linear-gradient(158deg,#0d1830 0%,#091223 100%) !important;
  border:1px solid rgba(160,184,224,.14) !important; color:#eaf0fb !important; border-radius:14px;
  --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd; --neon-cyan:#eaf0fb; --godmind-silver:#dfe6f3;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), inset 0 18px 30px -32px rgba(255,255,255,.18) !important;
}
.journal-trade-card { background-image:none !important; }
#win-loss-card {
  background:rgba(16,26,48,.32) !important; background-image:none !important;
  border:1px solid rgba(255,255,255,.14) !important; color:#eaf0fb !important;
  --text:#eaf0fb; --text-dim:#aeb9cf; --text-muted:#9aa6bd;
  backdrop-filter:blur(16px) saturate(1.25) !important; -webkit-backdrop-filter:blur(16px) saturate(1.25) !important;
}
#win-loss-card[data-pnl="profit"] { box-shadow:0 0 0 1px rgba(46,213,115,.5), 0 22px 56px -28px rgba(0,0,0,.75) !important; }
#win-loss-card[data-pnl="loss"]   { box-shadow:0 0 0 1px rgba(139,147,168,.5), 0 22px 56px -28px rgba(0,0,0,.75) !important; }
/* any leftover light-yellow / harbor card fills → navy (belt-and-suspenders) */
.market-ai-panel, .safety-card, .reinvest-panel, .qs-card, .ni-card, .sat-panel { background:linear-gradient(160deg,#17243f,#101a30) !important; color:#eaf0fb !important; --text:#eaf0fb; }

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE LAYOUT SYSTEM — three deliberate layouts (appended last = wins)
   ▸ MONITOR  (≥1280px) : centered, roomy; ultra-wide gets a 3rd analyzer column
   ▸ TABLET   (≤1024px) : 2 balanced analyzer columns, hero + panels stack
   ▸ PHONE    (≤600px)  : single column, big tap targets, tight padding, no zoom
   Only layout props here (columns/spacing/sizing) — NO colours, so the navy
   theme is untouched. Fixes the real bug: .analyzer-grid had no breakpoint and
   stayed 2-up on phones (the old phone rules targeted the removed .sat-* auto
   section). ══════════════════════════════════════════════════════════════════ */
/* Global overflow guards — nothing may force horizontal scroll on any device */
.aether-main, .aether-view, section, .glass, .analyzer, .connection-panel { min-width:0; max-width:100%; }
img, canvas, svg, video { max-width:100%; }

/* ───────────── MONITOR / large desktop ───────────── */
@media (min-width:1280px){
  .aether-main{ max-width:1360px; padding-left:26px; padding-right:26px; }
}
@media (min-width:1720px){
  .aether-main{ max-width:1600px; }
  .analyzer-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px; }
}

/* ───────────── TABLET ───────────── */
@media (max-width:1024px){
  .aether-main{ max-width:100%; padding:0 16px 72px; gap:18px; }
  .godmind-hero{ grid-template-columns:1fr; gap:20px; padding:26px; }
  .hero-metrics{ grid-template-columns:repeat(3,1fr); }
  .analyzer-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
  .briefing-grid{ grid-template-columns:repeat(3,1fr); }
  section{ padding:22px; }
}

/* ───────────── PHONE ───────────── */
@media (max-width:600px){
  .aether-main{ padding:0 11px 64px; gap:14px; }
  section{ padding:15px 13px; border-radius:16px; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:6px; }
  .section-head h2{ font-size:18px; }
  .section-head small{ font-size:12px; }
  .godmind-hero{ grid-template-columns:1fr; gap:14px; padding:16px 14px; }
  .hero-metrics{ grid-template-columns:repeat(3,1fr); gap:8px; }
  .analyzer-grid{ grid-template-columns:1fr; gap:14px; }
  .analyzer-body{ grid-template-columns:1fr 1fr; }
  .connection-panel .row{ grid-template-columns:1fr; }
  .briefing-grid{ grid-template-columns:repeat(2,1fr); gap:8px; }
  /* touch ergonomics: bigger hit areas, and ≥16px inputs so iOS doesn't zoom */
  .btn-action, .orb, button.cta, .connect-btn, .gm-connect-btn{ min-height:46px; }
  input, select, textarea{ font-size:16px; }
}

/* ───────────── SMALL PHONE ───────────── */
@media (max-width:380px){
  .aether-main{ padding:0 8px 56px; }
  section{ padding:12px 10px; }
  .hero-metrics{ grid-template-columns:1fr 1fr; }
  .analyzer-body{ grid-template-columns:1fr; }
}

/* ═══ 🎱 9-Ball / ⭕ Zero — Over/Under live digit-trigger auto-trader ═══ */
.oub-panel {
  margin: 12px 0; padding: 12px 13px; border-radius: 14px;
  background: linear-gradient(160deg, rgba(20,32,54,.72), rgba(10,18,34,.80));
  border: 1px solid rgba(250,146,0,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.oub-panel[data-armed="1"] { border-color: rgba(46,213,115,.5); box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 26px -10px rgba(46,213,115,.55); }
.oub-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.oub-title { font-family:var(--font-display); font-size:12.5px; font-weight:800; letter-spacing:.04em; color:#ffce7a; }
.oub-status { font-size:10.5px; font-weight:700; color:#9fb2cf; text-align:right; }
.oub-switches { display:grid; gap:8px; }
.oub-switch { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:11px; background:rgba(9,16,30,.6); border:1px solid rgba(160,184,224,.14); }
.oub-sw-info b { display:block; font-size:13px; color:#eaf0fb; font-weight:800; }
.oub-sw-info small { display:block; font-size:10.5px; color:#9aa6bd; margin-top:2px; }
.oub-sw-info strong { color:#ffce7a; }
.oub-toggle { position:relative; display:inline-block; width:50px; height:28px; flex:0 0 auto; cursor:pointer; }
.oub-toggle input { position:absolute; opacity:0; width:0; height:0; }
.oub-slider { position:absolute; inset:0; border-radius:999px; background:rgba(120,130,150,.35); transition:.25s; box-shadow:inset 0 1px 3px rgba(0,0,0,.4); }
.oub-slider::before { content:""; position:absolute; height:22px; width:22px; left:3px; top:3px; border-radius:50%; background:#eaf0fb; transition:.25s; box-shadow:0 2px 5px rgba(0,0,0,.4); }
.oub-toggle input:checked + .oub-slider { background:linear-gradient(180deg,#2ee88f,#12b673); box-shadow:0 0 15px -3px rgba(46,232,143,.55); }
.oub-toggle input:checked + .oub-slider::before { transform:translateX(22px); background:#fff; }
.oub-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.oub-skip { font-size:11px; color:#9aa6bd; display:flex; align-items:center; gap:7px; font-weight:700; }
.oub-skip select { background:rgba(9,16,30,.85); color:#eaf0fb; border:1px solid rgba(250,146,0,.3); border-radius:8px; padding:5px 8px; font:inherit; font-size:12px; cursor:pointer; }
.oub-count { font-family:var(--font-display); font-size:11px; font-weight:800; color:#2ed573; letter-spacing:.04em; }
.oub-log { margin-top:9px; display:flex; flex-direction:column; gap:3px; max-height:120px; overflow-y:auto; }
.oub-le { font-size:10.5px; color:#c4cfe2; font-variant-numeric:tabular-nums; padding:3px 7px; border-radius:6px; background:rgba(255,255,255,.03); }
.oub-le i { color:#7f8ea6; font-style:normal; margin-right:7px; }
/* ═══ WIN / LOSS TRADE CARDS — clear-water glass · GREEN win / RED loss (explicit request) ═══ */
.journal-list li.journal-trade-card {
  background: linear-gradient(158deg, rgba(255,255,255,0.055), rgba(255,255,255,0.012)) !important;
  backdrop-filter: blur(26px) saturate(1.4) brightness(1.06) !important;
  -webkit-backdrop-filter: blur(26px) saturate(1.4) brightness(1.06) !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  color: #eef3fb !important;
}
.journal-list li.journal-trade-card.j-win {
  background: linear-gradient(150deg, rgba(46,213,115,0.13), rgba(46,213,115,0.02) 58%, rgba(255,255,255,0.015)) !important;
  border-color: rgba(46,213,115,0.6) !important;
  box-shadow: 0 0 0 1px rgba(46,213,115,0.5), 0 0 30px -12px rgba(46,213,115,0.6), 0 26px 60px -34px rgba(0,0,0,0.8) !important;
}
.journal-list li.journal-trade-card.j-loss {
  background: linear-gradient(150deg, rgba(255,91,106,0.13), rgba(255,91,106,0.02) 58%, rgba(255,255,255,0.015)) !important;
  border-color: rgba(255,91,106,0.6) !important;
  box-shadow: 0 0 0 1px rgba(255,91,106,0.5), 0 0 30px -12px rgba(255,91,106,0.55), 0 26px 60px -34px rgba(0,0,0,0.8) !important;
}
/* keep the full-card ::before as a faint edge sheen ONLY — never a solid fill */
.journal-list li.journal-trade-card.j-win::before,
.journal-list li.journal-trade-card.j-loss::before { opacity:0.4 !important; }
.journal-status-pill.j-win  { color:#04140d !important; background:linear-gradient(135deg,#2ed573,#7dffc4) !important; border-color:transparent !important; }
.journal-status-pill.j-loss { color:#fff !important;    background:linear-gradient(135deg,#ff5b6a,#d63d4c) !important; border-color:transparent !important; }
.journal-outcome.j-win  { border-color:rgba(46,213,115,.32) !important; }
.journal-outcome.j-loss { border-color:rgba(255,91,106,.32) !important; }
/* readable details on the clear glass */
.journal-trade-card .journal-hero-line span,
.journal-trade-card .journal-route-badge span,
.journal-trade-card .journal-card-title span { color:#b8c4da !important; }
.journal-trade-card .journal-hero-line strong,
.journal-trade-card .journal-route-badge strong,
.journal-trade-card .journal-card-title strong,
.journal-trade-card .journal-profit { color:#f2f6ff !important; }
.journal-trade-card .jh-pos, .journal-trade-card .journal-outcome.j-win strong { color:#3ee686 !important; }
.journal-trade-card .jh-neg, .journal-trade-card .journal-outcome.j-loss strong { color:#ff6b78 !important; }
/* ═══ PREMIUM SEE-THROUGH WIN/LOSS CARDS — thin, elegant liquid glass (2026-07-01) ═══ */
.journal-list li.journal-trade-card {
  padding: 15px 16px !important;
  border-radius: 18px !important;
  gap: 11px !important;
  backdrop-filter: blur(30px) saturate(1.55) brightness(1.05) !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.55) brightness(1.05) !important;
}
.journal-list li.journal-trade-card.j-win {
  background: linear-gradient(158deg, rgba(46,213,115,0.11), rgba(255,255,255,0.010) 62%) !important;
  border: 1px solid rgba(46,213,115,0.5) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 0 1px rgba(46,213,115,0.26), 0 22px 54px -30px rgba(0,0,0,0.72), 0 0 42px -20px rgba(46,213,115,0.5) !important;
}
.journal-list li.journal-trade-card.j-loss {
  background: linear-gradient(158deg, rgba(255,91,106,0.11), rgba(255,255,255,0.010) 62%) !important;
  border: 1px solid rgba(255,91,106,0.5) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 0 1px rgba(255,91,106,0.26), 0 22px 54px -30px rgba(0,0,0,0.72), 0 0 42px -20px rgba(255,91,106,0.45) !important;
}
/* transparent route badge (kills the slate box); pill keeps its crisp shape */
.journal-trade-card .journal-route-badge { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
.journal-trade-card .journal-status-pill { padding: 5px 13px !important; border-radius: 999px !important; }
.journal-trade-card .journal-topbar { border-bottom: 1px solid rgba(255,255,255,0.08) !important; padding-bottom: 9px !important; }
/* hero cells see straight through — no filled boxes, just clean spacing + a divider line */
.journal-trade-card .journal-hero-line { gap: 6px !important; padding: 3px 0 !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; }
.journal-trade-card .journal-hero-line > div { background: transparent !important; border: none !important; padding: 5px 10px !important; }
.journal-trade-card .journal-hero-line strong { font-size: 15px !important; }
/* detail/outcome sub-cards: faint glass instead of opaque */
.journal-trade-card .journal-section-card { background: rgba(255,255,255,0.03) !important; border: 1px solid rgba(255,255,255,0.065) !important; border-radius: 12px !important; padding: 9px 12px !important; }
.journal-trade-card .journal-detail-grid span { background: rgba(255,255,255,0.028) !important; border: 1px solid rgba(255,255,255,0.06) !important; }
.oub-note { margin: 9px 2px 0 !important; font-size: 10.5px; color: #8fa0bd; text-align: center; }
.oub-note strong { color: #ffce7a; }

/* ═══ SKILLI GODMIND main cards — thinner, more refined glass ═══ */
section.glass, .analyzer.glass {
  padding: 19px 19px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(160,184,224,0.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 24px 40px -34px rgba(255,255,255,0.16), 0 24px 60px -36px rgba(0,0,0,0.85) !important;
}
@media (max-width: 600px){ section.glass, .analyzer.glass { padding: 14px 13px !important; } }
/* thin compact detail grid — fields flow in columns instead of a tall stack */
.journal-trade-card .journal-detail-grid.journal-type-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 7px !important;
  margin-top: 2px !important;
}
.journal-trade-card .journal-detail-grid.journal-type-grid span {
  display: grid !important; gap: 2px !important; padding: 8px 10px !important; border-radius: 11px !important;
}
.journal-trade-card .journal-detail-grid.journal-type-grid small { font-size: 8.5px !important; letter-spacing: .08em; text-transform: uppercase; color:#9aa6bd !important; }
.journal-trade-card .journal-detail-grid.journal-type-grid strong { font-size: 12.5px !important; color:#eef3fb !important; }
.journal-trade-card .journal-outcome { padding: 9px 12px !important; }
@media (max-width: 600px){ .journal-trade-card .journal-detail-grid.journal-type-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
/* ═══ WIN/LOSS CARDS → match the reference: very transparent + NET coloured by outcome ═══ */
.journal-list li.journal-trade-card.j-win {
  background: linear-gradient(158deg, rgba(46,213,115,0.055), rgba(46,213,115,0.012) 62%) !important;
}
.journal-list li.journal-trade-card.j-loss {
  background: linear-gradient(158deg, rgba(255,91,106,0.055), rgba(255,91,106,0.012) 62%) !important;
}
/* NET profit coloured GREEN (win) / RED (loss) — the reference's headline number */
.journal-trade-card.j-win  .journal-profit { color:#2ee66f !important; text-shadow:0 0 16px rgba(46,213,115,.42) !important; }
.journal-trade-card.j-loss .journal-profit { color:#ff5b6a !important; text-shadow:0 0 16px rgba(255,91,106,.36) !important; }
/* positive / negative detail + hero values → green / red like the reference pills */
.journal-trade-card .jf-pos, .journal-trade-card .jh-pos { color:#2ee66f !important; }
.journal-trade-card .jf-neg, .journal-trade-card .jh-neg { color:#ff5b6a !important; }
/* ═══ PREMIUM EXECUTION BUTTONS — Rise/Fall + every analyzer's trade actions ═══ */
.analyzer-actions { gap: 12px !important; margin-top: 8px !important; }
.analyzer-actions .btn-action {
  position: relative; overflow: hidden;
  min-height: 52px !important; border-radius: 15px !important;
  font-size: 15px !important; font-weight: 800 !important; letter-spacing: .035em;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 14px 30px -14px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.35) !important;
}
.analyzer-actions .btn-action::before {
  content:""; position:absolute; inset:0 0 auto 0; height:46%; border-radius:15px 15px 40% 40%;
  background: linear-gradient(180deg, rgba(255,255,255,.24), transparent); pointer-events:none;
}
.analyzer-actions .btn-action::after {
  content:""; position:absolute; top:0; left:-60%; width:42%; height:100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.38), transparent);
  transform: skewX(-18deg); transition: left .55s ease; pointer-events:none;
}
.analyzer-actions .btn-action:hover::after { left: 135%; }
.analyzer-actions .btn-action:hover { transform: translateY(-2px); filter: brightness(1.07) saturate(1.05); }
.analyzer-actions .btn-action:active { transform: translateY(1px) scale(.985); }
@media (max-width:600px){ .analyzer-actions .btn-action { min-height: 48px !important; font-size: 14px !important; } }
/* ═══ GLOSSY Skilli Godmind cards — polished liquid-glass sheen (2026-07-01) ═══ */
section.glass, .analyzer.glass { position: relative; }
section.glass, .analyzer.glass {
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.32),           /* crisp specular top edge */
    inset 0 42px 56px -44px rgba(255,255,255,0.40),    /* broad glossy crown */
    inset 0 -28px 50px -34px rgba(0,0,0,0.55),         /* lower depth */
    0 26px 64px -34px rgba(0,0,0,0.9) !important;      /* drop shadow */
}
/* reflective sheen band across the top — sits ON the glass, BEHIND the text (z-index:-1) */
section.glass::after, .analyzer.glass::after {
  content:""; position:absolute; left:0; right:0; top:0; height:46%;
  border-radius: inherit; pointer-events:none; z-index:-1;
  background: linear-gradient(180deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.05) 42%, transparent 100%);
  -webkit-mask: linear-gradient(180deg,#000,transparent);
          mask: linear-gradient(180deg,#000,transparent);
}
/* a soft moving glare highlight in the top-left crown for a liquid-glass feel */
section.glass::after { box-shadow: none; }
/* ═══ WIN/LOSS CARDS — remove left accent line + TRUE see-through glass (2026-07-01) ═══ */
.journal-list li.journal-trade-card::after { content:none !important; display:none !important; } /* kill bright green/red LEFT line */
.journal-list li.journal-trade-card {
  backdrop-filter: blur(8px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(8px) saturate(1.3) !important;
}
.journal-list li.journal-trade-card.j-win  { background: linear-gradient(158deg, rgba(46,213,115,0.05), rgba(46,213,115,0.006) 64%) !important; border:1px solid rgba(46,213,115,0.42) !important; }
.journal-list li.journal-trade-card.j-loss { background: linear-gradient(158deg, rgba(255,91,106,0.05), rgba(255,91,106,0.006) 64%) !important; border:1px solid rgba(255,91,106,0.42) !important; }
#journal-section { background: rgba(12,20,36,0.28) !important; } /* let the aurora show behind the cards */
/* refined detail colours */
.journal-trade-card .journal-detail-grid.journal-type-grid span { background: rgba(255,255,255,0.022) !important; border-color: rgba(255,255,255,0.05) !important; }
.journal-trade-card .journal-detail-grid.journal-type-grid small { color:#93a4c0 !important; }
.journal-trade-card .journal-detail-grid.journal-type-grid strong { color:#eaf1ff !important; }
.journal-trade-card .journal-outcome span { color:#93a4c0 !important; }

/* ═══ THIN-AS-PAPER main cards (gloss kept) ═══ */
section.glass, .analyzer.glass { padding: 13px 14px !important; border-radius: 16px !important; }
@media (max-width:600px){ section.glass, .analyzer.glass { padding: 11px 11px !important; } }

/* ═══ VIBRANT analyzer accent colours — one distinct vivid hue each ═══ */
.analyzer-theme-rise_fall   { --sig-c:#2ee86f !important; --sig-c2:#17b050 !important; }  /* vivid green   */
.analyzer-theme-streak      { --sig-c:#00e6a8 !important; --sig-c2:#00a87c !important; }  /* spring emerald */
.analyzer-theme-asians      { --sig-c:#12e0c4 !important; --sig-c2:#0a9e8a !important; }  /* teal          */
.analyzer-theme-matches     { --sig-c:#22c4ee !important; --sig-c2:#1288b0 !important; }  /* cyan          */
.analyzer-theme-even_odd    { --sig-c:#4d8dff !important; --sig-c2:#2a5fd0 !important; }  /* azure blue    */
.analyzer-theme-vanilla     { --sig-c:#c2e82e !important; --sig-c2:#8db016 !important; }  /* lime          */
.analyzer-theme-over_under  { --sig-c:#ffc21a !important; --sig-c2:#e09a00 !important; }  /* gold          */
.analyzer-theme-accumulator { --sig-c:#ff8a1e !important; --sig-c2:#e06a00 !important; }  /* orange        */
/* ═══ 🎯 DIRECTION-OF-TRADE DISPLAY — Rise/Fall · Asians · Vanilla ═══ */
.dir-display {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px;
  margin: 10px 0 4px; padding: 12px 15px; border-radius: 15px;
  background: linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.012));
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
  transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.dir-display[data-dir="up"]   { border-color: rgba(46,213,115,0.55); box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 0 30px -12px rgba(46,213,115,0.6); background: linear-gradient(135deg, rgba(46,213,115,0.10), rgba(255,255,255,0.012)); }
.dir-display[data-dir="down"] { border-color: rgba(255,91,106,0.55); box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 0 30px -12px rgba(255,91,106,0.55); background: linear-gradient(135deg, rgba(255,91,106,0.10), rgba(255,255,255,0.012)); }
.dir-arrow { font-size: 34px; line-height: 1; font-weight: 900; color: #8fa0bd; }
.dir-display[data-dir="up"]   .dir-arrow { color: #2ee86f; text-shadow: 0 0 20px rgba(46,213,115,0.6); animation: dirPulse 1.6s ease-in-out infinite; }
.dir-display[data-dir="down"] .dir-arrow { color: #ff5b6a; text-shadow: 0 0 20px rgba(255,91,106,0.5); animation: dirPulse 1.6s ease-in-out infinite; }
.dir-main { display: grid; gap: 2px; min-width: 0; }
.dir-label { font-family: var(--font-display); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-muted); font-weight: 800; }
.dir-display[data-dir="up"]   .dir-label { color: #2ee86f; }
.dir-display[data-dir="down"] .dir-label { color: #ff5b6a; }
.dir-call { font-family: var(--font-display); font-size: 14px; font-weight: 800; color: #eef3fb; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dir-conf { text-align: right; }
.dir-conf b { display: block; font-family: var(--font-display); font-size: 18px; font-weight: 900; color: #eef3fb; font-variant-numeric: tabular-nums; line-height: 1; }
.dir-conf small { font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
@keyframes dirPulse { 0%,100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-3px); opacity: .82; } }
@media (prefers-reduced-motion: reduce){ .dir-display .dir-arrow { animation: none !important; } }
/* ═══ SINGLE-COLUMN analyzer layout (2026-07-01) — the summoned card fills the full
   width on tablet/monitor (no blank half), stacked vertically with screen-scaled gaps ═══ */
.analyzer-grid { grid-template-columns: 1fr !important; align-content: start; gap: 22px !important; }
@media (min-width:1100px){ .analyzer-grid { gap: 26px !important; } }
@media (max-width:600px){  .analyzer-grid { gap: 15px !important; } }

/* ═══ LIVE-COLOUR CARDS — a living accent wash + breathing rim (feels alive/real) ═══ */
section.glass::after, .analyzer.glass::after {
  content:""; position:absolute; top:0; left:0; right:0; bottom:0; height:auto;
  border-radius:inherit; pointer-events:none; z-index:-1;
  -webkit-mask:none; mask:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.04) 42%, transparent 100%),
    radial-gradient(130% 95% at 12% -8%,  color-mix(in srgb, var(--sig-c,#7aa0d8) 18%, transparent), transparent 55%),
    radial-gradient(130% 95% at 105% 108%, color-mix(in srgb, var(--sig-c,#7aa0d8) 11%, transparent), transparent 55%);
  background-size: 100% 100%, 220% 220%, 220% 220%;
  background-repeat: no-repeat;
}
/* analyzer cards: the accent glow slowly DRIFTS — living colour in the card's own hue */
.analyzer.glass::after { animation: cardLive 11s ease-in-out infinite alternate; }
@keyframes cardLive {
  0%   { background-position: 0% 0%, 0% 0%,   100% 100%; }
  100% { background-position: 0% 0%, 65% 45%, 35% 55%; }
}
/* the OPEN analyzer card breathes its accent rim (only one is visible at a time) */
.analyzer.glass:not([hidden]) { animation: cardBreath 5.5s ease-in-out infinite; }
@keyframes cardBreath {
  0%,100% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 0 0 1px color-mix(in srgb, var(--sig-c,#7aa0d8) 22%, transparent), 0 24px 60px -36px rgba(0,0,0,0.85); }
  50%     { box-shadow: inset 0 1px 0 rgba(255,255,255,0.24), 0 0 0 1px color-mix(in srgb, var(--sig-c,#7aa0d8) 48%, transparent), 0 0 48px -14px color-mix(in srgb, var(--sig-c,#7aa0d8) 50%, transparent), 0 24px 60px -36px rgba(0,0,0,0.85); }
}
@media (prefers-reduced-motion: reduce){ .analyzer.glass::after, .analyzer.glass:not([hidden]) { animation: none !important; } }
/* ═══ ORB CELLS — circular orb + a 1-5 word trade-type preview beneath it ═══ */
.orbs > .orb-cell { display:flex; flex-direction:column; align-items:center; gap:7px; min-width:0; }
.orb-cell > .orb { width:100%; }
.orb-desc {
  font-size:9.5px; line-height:1.18; text-align:center; font-weight:700;
  letter-spacing:.02em; color:#9db0cc; max-width:100%; padding:0 2px;
  text-transform:none;
}
@media (max-width:600px){ .orb-desc { font-size:8.5px; } }

/* ═══ ORB COLOUR ACCURACY — each orb glows in its analyzer's vibrant accent ═══ */
.orb-resonance  { --orb-color:#2ee86f; }  /* rise_fall  */
.orb-cascade    { --orb-color:#ffc21a; }  /* over_under */
.orb-streak     { --orb-color:#00e6a8; }  /* streak     */
.orb-echo       { --orb-color:#22c4ee; }  /* matches    */
.orb-horizon    { --orb-color:#12e0c4; }  /* asians     */
.orb-stillpoint { --orb-color:#ff8a1e; }  /* accumulator*/
.orb-vanilla    { --orb-color:#c2e82e; }  /* vanilla    */
.orb-evenodd    { --orb-color:#4d8dff; }  /* even_odd   */
/* ═══ JOURNAL LAYOUT (2026-07-02) — trade-history cards flow in a responsive grid:
   fills wide monitors/tablets with multiple cards, collapses to 1 column on phone.
   Fixes the over-wide single-column stretch where card content spread too far apart. ═══ */
.journal-list { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)) !important; gap: 14px !important; align-items: start !important; }
.journal-list .journal-empty { grid-column: 1 / -1 !important; }
@media (max-width: 680px){ .journal-list { grid-template-columns: 1fr !important; } }
/* ═══ LIGHTNING FLASH — fully removed (2026-07-02). Bulletproof kill of the ambient
   full-viewport bolt flasher, even if a stale cached build re-injects the element. ═══ */
.gm-lightning, .gm-strike { display:none !important; animation:none !important; opacity:0 !important; }
html.gm-quake { animation:none !important; }
/* ═══ WIN/LOSS CARDS (2026-07-02) — remove the different-colour --fam left line + most-realistic frosted glass ═══ */
.journal-trade-card .journal-card-shell::before { display:none !important; }          /* kill the --fam left colour bar */
.journal-trade-card .journal-route-badge strong { color:#eef3fb !important; }         /* route name was --fam (purple for over/under) → light */
.journal-trade-card .j-fam-ic { filter:none !important; }
.journal-list li.journal-trade-card {
  backdrop-filter: blur(17px) saturate(1.5) brightness(1.06) !important;
  -webkit-backdrop-filter: blur(17px) saturate(1.5) brightness(1.06) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.30),
    inset 0 0 0 1px rgba(255,255,255,0.05),
    inset 0 -30px 42px -34px rgba(0,0,0,0.5),
    0 30px 62px -34px rgba(0,0,0,0.85) !important;
}

/* ═══ RED BIN — delete trade history button ═══ */
.btn-bin {
  display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:11px; cursor:pointer;
  font:800 11.5px/1 var(--font-display); letter-spacing:.04em; color:#ff6b78;
  background:linear-gradient(160deg, rgba(255,91,106,0.16), rgba(255,91,106,0.06));
  border:1px solid rgba(255,91,106,0.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10), 0 0 20px -10px rgba(255,91,106,0.55);
  transition:all .2s ease;
}
.btn-bin svg { width:16px; height:16px; }
.btn-bin:hover { color:#fff; background:linear-gradient(160deg,#ff5b6a,#d63d4c); border-color:transparent; box-shadow:0 0 24px -8px rgba(255,91,106,0.75); transform:translateY(-1px); }
.btn-bin:active { transform:translateY(0) scale(.97); }

/* ═══ RECTANGLE ANALYZER BUTTONS — premium gloss + lift (keeps each mode's colour) ═══ */
.btn-sx, .btn-smart-ai, .btn-signature, .btn-smart-random {
  position:relative; overflow:hidden; border-radius:12px !important;
  transition:transform .16s ease, box-shadow .22s ease, filter .2s ease !important;
}
.btn-sx::before, .btn-signature::before {
  content:""; position:absolute; inset:0 0 auto 0; height:42%; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.16), transparent); border-radius:12px 12px 40% 40%;
}
.btn-sx:hover, .btn-signature:hover, .btn-smart-ai:hover { transform:translateY(-2px); filter:brightness(1.08) saturate(1.06); }
.btn-sx:active, .btn-signature:active, .btn-smart-ai:active { transform:translateY(0) scale(.98); }

/* ═══ MARKET DESK (.analyzer-mc / Market Condition AI) — next-level premium ═══ */
.analyzer-mc {
  position:relative; border-radius:16px !important; overflow:hidden;
  border:1px solid rgba(160,184,224,0.18) !important;
  background:linear-gradient(160deg, rgba(18,30,52,0.72), rgba(10,17,32,0.80)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10), 0 22px 52px -34px rgba(0,0,0,0.82) !important;
}
.analyzer-mc::before {
  content:""; position:absolute; left:14px; right:14px; top:0; height:2px; border-radius:999px; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--sig-c,#7aa0d8), transparent); opacity:.6;
}
.amc-meter .amc-stat { background:rgba(255,255,255,0.03) !important; border:1px solid rgba(255,255,255,0.07) !important; border-radius:12px !important; }
.amc-score-bar { background:rgba(255,255,255,0.08) !important; border-radius:999px !important; overflow:hidden; }
.amc-score-bar i { background:linear-gradient(90deg, var(--sig-c,#7aa0d8), color-mix(in srgb, var(--sig-c,#7aa0d8) 50%, #fff)) !important; box-shadow:0 0 12px -2px var(--sig-c,#7aa0d8); }
.amc-signal-stack { border-radius:13px !important; }
.amc-pick { border-radius:11px !important; background:rgba(255,255,255,0.03) !important; border:1px solid rgba(255,255,255,0.07) !important; }
/* ═══ 📈 INTERACTIVE DERIV-STYLE CHART — rise_fall / asians / vanilla ═══ */
.deriv-chart { margin:10px 0; border-radius:14px; overflow:hidden; background:linear-gradient(180deg, rgba(10,16,30,0.92), rgba(6,11,22,0.95)); border:1px solid rgba(255,255,255,0.08); box-shadow:inset 0 1px 0 rgba(255,255,255,0.06); }
.dc-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px 4px; }
.dc-price { font-family:var(--font-display); font-size:18px; font-weight:900; color:#eef3fb; font-variant-numeric:tabular-nums; }
.dc-hint { font-size:9px; color:#8093b0; text-align:right; max-width:56%; line-height:1.25; }
.dc-plot { position:relative; height:188px; touch-action:none; cursor:crosshair; }
.dc-svg { width:100%; height:100%; display:block; }
.dc-area { stroke:none; fill:color-mix(in srgb, var(--sig-c,#4d8dff) 12%, transparent); }
.dc-line { fill:none; stroke:var(--sig-c,#4d8dff); stroke-width:2; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 6px color-mix(in srgb, var(--sig-c,#4d8dff) 55%, transparent)); }
.dc-barrier { stroke:#ffce54; stroke-width:1.4; stroke-dasharray:6 5; vector-effect:non-scaling-stroke; opacity:.9; }
.dc-dot { fill:#fff; stroke:var(--sig-c,#4d8dff); stroke-width:2.4; animation:dcDot 1.4s ease-in-out infinite; }
@keyframes dcDot { 0%,100%{ r:4.5; } 50%{ r:6.5; } }
.dc-plot[data-dir="up"]   .dc-line { stroke:#2ee86f; filter:drop-shadow(0 0 7px rgba(46,213,115,.6)); }
.dc-plot[data-dir="up"]   .dc-area { fill:rgba(46,213,115,.12); }
.dc-plot[data-dir="up"]   .dc-dot  { stroke:#2ee86f; }
.dc-plot[data-dir="down"] .dc-line { stroke:#ff5b6a; filter:drop-shadow(0 0 7px rgba(255,91,106,.55)); }
.dc-plot[data-dir="down"] .dc-area { fill:rgba(255,91,106,.12); }
.dc-plot[data-dir="down"] .dc-dot  { stroke:#ff5b6a; }
.dc-barrier-handle { position:absolute; right:6px; transform:translateY(-50%); background:#ffce54; color:#241a00; font:800 10px/1 var(--font-display); padding:4px 8px; border-radius:6px; cursor:ns-resize; box-shadow:0 2px 8px rgba(0,0,0,.55); white-space:nowrap; touch-action:none; z-index:2; }
.dc-barrier-handle::before { content:""; position:absolute; left:-9px; top:50%; width:9px; height:2px; background:#ffce54; }
.dc-exec { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; padding:8px 10px 10px; }
.dc-btn { appearance:none; border:none; cursor:pointer; padding:12px 10px; border-radius:11px; font:800 13px/1 var(--font-display); letter-spacing:.02em; color:#08130b; transition:transform .15s ease, filter .2s ease; box-shadow:inset 0 1px 0 rgba(255,255,255,.32), 0 10px 22px -12px rgba(0,0,0,.7); }
.dc-btn-up { background:linear-gradient(135deg,#46e08f,#1f9d63); }
.dc-btn-down { background:linear-gradient(135deg,#ff7a86,#d63d4c); color:#fff; }
.dc-btn:hover { transform:translateY(-2px); filter:brightness(1.08) saturate(1.05); }
.dc-btn:active { transform:translateY(0) scale(.97); }
.dc-conf { font:800 10.5px/1.25 var(--font-display); text-align:center; color:#8fa0bd; min-width:66px; }
.dc-conf[data-ready="1"] { color:#2ee86f; text-shadow:0 0 12px rgba(46,213,115,.4); }

/* ═══ WIN/LOSS numbers — smart colours (digits amber, pos green, neg red) ═══ */
.journal-trade-card .journal-hero-line .jh-digit { color:#ffce54 !important; }
.journal-trade-card .jf-pos, .journal-trade-card .jh-pos { color:#2ee86f !important; }
.journal-trade-card .jf-neg, .journal-trade-card .jh-neg { color:#ff5b6a !important; }

/* ═══ AI CONFLUENCE STACK — sharper premium look ═══ */
.amc-signal-stack { background:rgba(255,255,255,0.025) !important; border:1px solid rgba(255,255,255,0.09) !important; border-radius:13px !important; }
.amc-signal-stack .ass-title { color:#eef3fb; }
.amc-signal-stack .ass-chip { border-radius:8px !important; transition:all .2s ease; }
.amc-signal-stack .ass-chip[data-on="true"] { box-shadow:0 0 13px -4px color-mix(in srgb, var(--sig-c,#7aa0d8) 70%, transparent); }
/* ═══ DERIV CHART — candlestick / line toggle + barrier tag ═══ */
.dc-plot[data-dc-view="candle"] .dc-line, .dc-plot[data-dc-view="candle"] .dc-area { display:none; }
.dc-plot[data-dc-view="line"] .dc-candles { display:none; }
.dc-mode { appearance:none; cursor:pointer; font:800 10px/1 var(--font-display); letter-spacing:.03em; color:#cdd8ec; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:8px; padding:6px 11px; transition:all .2s ease; }
.dc-mode:hover { background:rgba(255,255,255,0.13); color:#fff; }
.dc-barrier-handle { display:inline-flex !important; align-items:center; }
.dc-barrier-tag { font-style:normal; font-weight:800; font-size:7.5px; letter-spacing:.1em; opacity:.72; margin-right:5px; }
/* ═══ 4K ULTRA-REALISM — refined premium card materials (2026-07-02) ═══ */
section.glass, .analyzer.glass {
  border: 1px solid rgba(184,204,238,0.18) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,0.34),
    inset 0 44px 62px -48px rgba(255,255,255,0.42),
    inset 0 -34px 56px -34px rgba(0,0,0,0.62),
    0 2px 3px rgba(0,0,0,0.4),
    0 30px 72px -34px rgba(0,0,0,0.92) !important;
}

/* ═══ NEXT-GEN DIGIT MATRIX — heat-mapped, glossy 3D, per-analyzer accent (no purple) ═══ */
.digit-bars-mini { gap: 6px !important; height: 94px !important; }
.digit-bar {
  border-radius: 8px 8px 5px 5px !important; position: relative; overflow: visible;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sig-c,#4d8dff) calc(var(--heat,0.15) * 92%), #14243f),
    color-mix(in srgb, var(--sig-c,#4d8dff) calc(var(--heat,0.15) * 52%), #0a1424)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), inset 0 -7px 11px -7px rgba(0,0,0,0.55), 0 4px 13px -7px rgba(0,0,0,0.6) !important;
  transition: height .45s cubic-bezier(.2,.7,.3,1), background .45s ease, box-shadow .3s ease, transform .2s ease !important;
}
.digit-bar::before { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(180deg, rgba(255,255,255,0.24), transparent 42%); pointer-events:none; }
.digit-bar span, .digit-bar b { font-family:var(--font-display) !important; font-weight:900 !important; color:#f2f6ff !important; text-shadow:0 1px 2px rgba(0,0,0,0.6); position:relative; z-index:1; }
.digit-bar.hot {
  background: linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 92%, #fff), var(--sig-c,#4d8dff)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.42), 0 0 20px -2px var(--sig-c,#4d8dff), 0 0 42px -10px var(--sig-c,#4d8dff) !important;
  transform: translateY(-2px) scale(1.03);
}
.digit-bar.best-payout { outline: 1.6px solid #2ee86f !important; outline-offset: 1.5px; }
.digit-bar.selected { outline: 1.6px solid #ffce54 !important; outline-offset: 1.5px; }
.digit-bar.cold { opacity: 0.92; }
.digit-bar .db-pct { color:#cfe0ff !important; opacity:0.95 !important; font-weight:800 !important; }
.digit-bar.hot .db-pct { color:#04121a !important; }

/* ═══ NEXT-GEN ECHO / MATCHES CELLS — heat-mapped, no purple ═══ */
.echo-cell {
  border-radius: 9px !important; color:#eef3fb !important;
  background: linear-gradient(150deg,
    color-mix(in srgb, var(--sig-c,#22c4ee) calc(var(--heat,0.15) * 82%), #14243f),
    color-mix(in srgb, var(--sig-c,#22c4ee) calc(var(--heat,0.15) * 45%), #0a1424)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16) !important;
  transition: background .4s ease, box-shadow .3s ease, transform .2s ease !important;
}
.echo-cell.hot { background: linear-gradient(150deg, color-mix(in srgb, var(--sig-c,#22c4ee) 90%, #fff), var(--sig-c,#22c4ee)) !important; box-shadow: 0 0 17px -2px var(--sig-c,#22c4ee) !important; color:#04121a !important; transform: scale(1.05); }
.echo-cell.best-payout { outline:1.6px solid #2ee86f !important; outline-offset:1px; }
.echo-cell.selected { outline:1.6px solid #ffce54 !important; outline-offset:1px; }
/* ═══ DIGIT MATRIX — override legacy green-fill/grey-fill so heat map + accent win (2026-07-02) ═══ */
.digit-bar.best-payout {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--sig-c,#4d8dff) calc(var(--heat,0.18) * 92%), #14243f),
    color-mix(in srgb, var(--sig-c,#4d8dff) calc(var(--heat,0.18) * 52%), #0a1424)) !important;
  outline: 1.7px solid #2ee86f !important; outline-offset: 1.5px;
  border: 1px solid rgba(46,232,111,0.55) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 0 17px -3px rgba(46,232,111,0.62) !important;
  animation: none !important;
}
.digit-bar.best-payout.hot {
  background: linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 92%, #fff), var(--sig-c,#4d8dff)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.42), 0 0 22px -2px var(--sig-c,#4d8dff) !important;
}
.digit-bar.cold {
  background: linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 15%, #0e1b30), #0a1424) !important;
  border-color: rgba(184,204,238,0.12) !important;
  opacity: 0.85;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08) !important;
}
/* ═══ NEURAL DIGIT SPOTLIGHT — next-gen AI digit-prediction hero (2026-07-02) ═══ */
.digit-spotlight{
  position:relative; margin:2px 0 15px; padding:14px 14px 12px; border-radius:16px; overflow:hidden;
  background:
    radial-gradient(130% 100% at 12% 0%, color-mix(in srgb, var(--sig-c,#4d8dff) 17%, transparent), transparent 62%),
    linear-gradient(180deg, rgba(16,26,46,0.74), rgba(9,16,30,0.84));
  border:1px solid color-mix(in srgb, var(--sig-c,#4d8dff) 30%, rgba(184,204,238,0.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -22px 42px -30px rgba(0,0,0,0.72), 0 22px 48px -30px rgba(0,0,0,0.88);
  -webkit-backdrop-filter: blur(9px) saturate(1.18); backdrop-filter: blur(9px) saturate(1.18);
}
.digit-spotlight::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0.10), transparent 30%); pointer-events:none; }
.ds-hero{ display:flex; align-items:center; gap:16px; position:relative; z-index:1; }
.ds-ring{
  --conf:0; flex:0 0 auto; width:92px; height:92px; border-radius:50%; padding:6px;
  background: conic-gradient(from -90deg, var(--sig-c,#4d8dff) calc(var(--conf,0)*1%), rgba(255,255,255,0.07) 0);
  box-shadow:0 0 24px -6px color-mix(in srgb, var(--sig-c,#4d8dff) 70%, transparent);
  transition: background .55s ease, box-shadow .55s ease;
}
.ds-core{
  width:100%; height:100%; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  background: radial-gradient(circle at 40% 30%, rgba(255,255,255,0.10), transparent 55%), linear-gradient(180deg, #0e1a30, #070d18);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
}
.ds-digit{ font-family:var(--font-display); font-size:38px; font-weight:900; line-height:1; color:#fff; text-shadow:0 0 18px color-mix(in srgb, var(--sig-c,#4d8dff) 80%, transparent); }
.ds-parity{ font-style:normal; font-size:8px; font-weight:800; letter-spacing:.14em; color: color-mix(in srgb, var(--sig-c,#4d8dff) 72%, #cfe0ff); }
.ds-meta{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:7px; }
.ds-conf{ display:flex; align-items:baseline; gap:8px; }
.ds-conf-val{ font-family:var(--font-display); font-size:26px; font-weight:900; color:#f2f6ff; line-height:1; }
.ds-conf-lbl{ font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#8ea2c4; }
.ds-clarity{ height:6px; border-radius:6px; background:rgba(255,255,255,0.07); overflow:hidden; }
.ds-clarity-fill{ height:100%; width:0; border-radius:6px; background:linear-gradient(90deg, color-mix(in srgb, var(--sig-c,#4d8dff) 55%, #12e0c4), var(--sig-c,#4d8dff)); box-shadow:0 0 10px -2px var(--sig-c,#4d8dff); transition:width .55s ease; }
.ds-parity-split{ display:flex; justify-content:space-between; font-size:9.5px; font-weight:800; letter-spacing:.05em; }
.dsp-even{ color:#8fd0ff; } .dsp-odd{ color:#ffce7a; }
.ds-ranks{ display:flex; gap:7px; margin-top:11px; position:relative; z-index:1; }
.ds-rank{ flex:1; display:flex; flex-direction:column; align-items:center; gap:1px; padding:6px 0; border-radius:10px; background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)); border:1px solid rgba(184,204,238,0.10); }
.ds-rank b{ font-family:var(--font-display); font-size:16px; font-weight:900; color:#eaf1ff; line-height:1; }
.ds-rank i{ font-style:normal; font-size:9px; color:#9fb2d4; }
.ds-rank.lead{ background:linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 32%, transparent), transparent); border-color: color-mix(in srgb, var(--sig-c,#4d8dff) 46%, transparent); box-shadow:0 0 16px -6px var(--sig-c,#4d8dff); }
.ds-rank.lead b{ color:#fff; }
.ds-signal{ margin-top:10px; font-family:var(--font-mono,ui-monospace,monospace); font-size:10px; letter-spacing:.02em; text-align:center; opacity:.96; color: color-mix(in srgb, var(--sig-c,#4d8dff) 42%, #a9bbd8); position:relative; z-index:1; }
.digit-spotlight.hot .ds-ring{ animation: dsPulse 1.9s ease-in-out infinite; }
@keyframes dsPulse{ 0%,100%{ box-shadow:0 0 24px -6px color-mix(in srgb, var(--sig-c,#4d8dff) 70%, transparent); } 50%{ box-shadow:0 0 42px -3px color-mix(in srgb, var(--sig-c,#4d8dff) 92%, transparent); } }
@media (max-width:520px){ .ds-ring{ width:76px; height:76px; } .ds-digit{ font-size:31px; } .ds-conf-val{ font-size:22px; } }
/* ═══ QUANTUM DIGIT STREAM — living raw-digit organism (2026-07-02) ═══ */
.digit-stream{
  position:relative; margin:2px 0 13px; padding:11px 12px 9px; border-radius:15px; overflow:hidden;
  background:
    radial-gradient(120% 130% at 90% 0%, color-mix(in srgb, var(--sig-c,#4d8dff) 13%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(11,19,35,0.82), rgba(7,13,26,0.9));
  border:1px solid color-mix(in srgb, var(--sig-c,#4d8dff) 26%, rgba(184,204,238,0.12));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 -18px 34px -28px rgba(0,0,0,0.7), 0 18px 40px -28px rgba(0,0,0,0.85);
}
.dstream-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; }
.dstream-title{ display:flex; align-items:center; gap:7px; font-size:9.5px; font-weight:800; letter-spacing:.16em; color:#9fb2d4; }
.dstream-dot{ width:7px; height:7px; border-radius:50%; background:#2ee86f; box-shadow:0 0 8px #2ee86f; animation:dsLive 1.4s ease-in-out infinite; }
@keyframes dsLive{ 0%,100%{ opacity:1; transform:scale(1) } 50%{ opacity:.35; transform:scale(.75) } }
.dstream-run{ font-family:var(--font-display); font-size:12px; font-weight:900; letter-spacing:.04em; padding:3px 10px; border-radius:20px; color:#dfe8f7; background:rgba(255,255,255,0.06); border:1px solid rgba(184,204,238,0.14); transition:all .3s ease; }
.dstream-run.side-over,.dstream-run.side-even{ color:#8fd0ff; border-color:rgba(90,160,255,0.4); }
.dstream-run.side-under,.dstream-run.side-odd{ color:#ffce7a; border-color:rgba(255,206,122,0.4); }
.dstream-run.streak-hot{ background:linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 30%, transparent), transparent); box-shadow:0 0 16px -4px var(--sig-c,#4d8dff); animation:runHot 1.1s ease-in-out infinite; }
@keyframes runHot{ 0%,100%{ box-shadow:0 0 16px -4px var(--sig-c,#4d8dff) } 50%{ box-shadow:0 0 26px -2px var(--sig-c,#4d8dff) } }
/* LIVE RAW RIVER */
.dsr-river{ position:relative; }
.dsr-track{ display:flex; align-items:center; gap:6px; justify-content:flex-end; }
.dsr-track.slide{ animation:riverSlide .34s cubic-bezier(.2,.8,.3,1); }
@keyframes riverSlide{ from{ transform:translateX(14px) } to{ transform:translateX(0) } }
.dsr-fade{ position:absolute; inset:0 auto 0 0; width:34px; background:linear-gradient(90deg, rgba(7,13,26,0.95), transparent); pointer-events:none; }
.dsr-tok{
  flex:0 0 auto; width:27px; height:27px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:14px; font-weight:800; color:#eaf1ff;
  background:linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.02));
  border:1px solid rgba(184,204,238,0.14); box-shadow:inset 0 1px 0 rgba(255,255,255,0.18);
  transition:opacity .3s ease;
}
.dsr-tok.t-over{ color:#c8ffe1; background:linear-gradient(180deg, rgba(46,232,111,0.34), rgba(46,232,111,0.08)); border-color:rgba(46,232,111,0.42); }
.dsr-tok.t-under{ color:#ffe0c0; background:linear-gradient(180deg, rgba(255,157,60,0.32), rgba(255,157,60,0.07)); border-color:rgba(255,157,60,0.42); }
.dsr-tok.t-even{ color:#d5e8ff; background:linear-gradient(180deg, rgba(90,160,255,0.34), rgba(90,160,255,0.08)); border-color:rgba(90,160,255,0.42); }
.dsr-tok.t-odd{ color:#fff0cf; background:linear-gradient(180deg, rgba(255,206,90,0.32), rgba(255,206,90,0.07)); border-color:rgba(255,206,90,0.42); }
.dsr-tok.current{
  width:38px; height:38px; border-radius:12px; font-size:21px; color:#fff;
  border-color: color-mix(in srgb, var(--sig-c,#4d8dff) 70%, #fff);
  box-shadow:0 0 20px -2px var(--sig-c,#4d8dff), inset 0 1px 0 rgba(255,255,255,0.4);
  animation:tokBreath 1.6s ease-in-out infinite;
}
@keyframes tokBreath{ 0%,100%{ box-shadow:0 0 18px -3px var(--sig-c,#4d8dff), inset 0 1px 0 rgba(255,255,255,0.4) } 50%{ box-shadow:0 0 30px 0 var(--sig-c,#4d8dff), inset 0 1px 0 rgba(255,255,255,0.5) } }
.dsr-tok.current.pop{ animation:tokPop .4s cubic-bezier(.2,.9,.3,1.4); }
@keyframes tokPop{ 0%{ transform:scale(.4) translateX(10px); opacity:0 } 55%{ transform:scale(1.18) } 100%{ transform:scale(1) } }
/* QUANTUM EKG */
.dstream-ekg{ display:block; width:100%; height:34px; margin-top:8px; overflow:visible; }
.ekg-line{ fill:none; stroke:var(--sig-c,#4d8dff); stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; filter:drop-shadow(0 0 4px color-mix(in srgb, var(--sig-c,#4d8dff) 70%, transparent)); opacity:.9; }
.ekg-dot{ fill:#fff; filter:drop-shadow(0 0 6px var(--sig-c,#4d8dff)); }
@media (max-width:520px){ .dsr-tok{ width:23px; height:23px; font-size:12px; } .dsr-tok.current{ width:32px; height:32px; font-size:18px; } }

/* PRESSURE FIELD — overdue-digit coiled-spring aura on the bars/cells */
.echo-cell{ overflow:visible; }
.db-aura{ position:absolute; inset:-2px; border-radius:10px; pointer-events:none; opacity:0; z-index:0; transition:opacity .45s ease, box-shadow .45s ease; }
.digit-bar > span, .digit-bar > i, .echo-cell > b, .echo-cell > i{ position:relative; z-index:1; }
.digit-bar.due .db-aura, .echo-cell.due .db-aura{
  opacity:1;
  box-shadow:0 0 12px -2px color-mix(in srgb, var(--sig-c,#4d8dff) 72%, transparent), inset 0 0 8px -1px color-mix(in srgb, var(--sig-c,#4d8dff) 55%, transparent);
}
.digit-bar.due-hot .db-aura, .echo-cell.due-hot .db-aura{
  opacity:1;
  box-shadow:0 0 22px 0 color-mix(in srgb, var(--sig-c,#4d8dff) 88%, transparent), inset 0 0 11px 0 color-mix(in srgb, var(--sig-c,#4d8dff) 66%, transparent);
  animation:auraPulse 1.1s ease-in-out infinite;
}
@keyframes auraPulse{ 0%,100%{ opacity:.6 } 50%{ opacity:1 } }
/* ═══════════════════════════════════════════════════════════════════
   DIGIT REACTOR CORE — glass tubes w/ glowing liquid levels (2026-07-02)
   Rebuilds the 0-9 bars into premium reactor capsules. Liquid rises with
   --heat (set by renderDigitBarsMini/renderParityDigitBars); pilot-light
   min-height keeps them alive at rest. Pressure = own box-shadow so the
   glow spills past the overflow-clipped tube.
   ═══════════════════════════════════════════════════════════════════ */
.digit-bars-mini{ height:auto !important; align-items:stretch !important; gap:7px !important; padding-top:0 !important; }
.digit-bar{
  height:114px !important; min-height:114px !important; border-radius:13px !important;
  background:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(9,16,30,0.5)) !important;
  border:1px solid rgba(184,204,238,0.15) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 22px rgba(0,0,0,0.42), 0 7px 18px -11px rgba(0,0,0,0.65) !important;
  overflow:hidden !important; position:relative !important;
  display:flex !important; flex-direction:column; align-items:center; justify-content:flex-end;
  padding:0 0 8px !important;
  transition: box-shadow .4s ease, border-color .4s ease, transform .22s ease !important;
}
.digit-bar::before{ content:"" !important; position:absolute !important; top:0; left:0; right:0; bottom:auto !important;
  height:36% !important; width:auto !important; inset:auto !important; border-radius:13px 13px 40% 40% !important;
  background:linear-gradient(180deg, rgba(255,255,255,0.16), transparent) !important; pointer-events:none; z-index:1; opacity:1 !important; }
.db-fill{
  position:absolute; left:0; right:0; bottom:0; z-index:0; pointer-events:none;
  height: calc(var(--heat, 0.02) * 100%); min-height:5px;
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--sig-c,#4d8dff) 94%, #fff) 0%,
    var(--sig-c,#4d8dff) 18%,
    color-mix(in srgb, var(--sig-c,#4d8dff) 48%, #0a1424) 100%);
  border-radius:0 0 12px 12px;
  box-shadow:0 0 18px -2px var(--sig-c,#4d8dff), inset 0 2px 0 rgba(255,255,255,0.55);
  transition:height .6s cubic-bezier(.2,.7,.3,1), background .4s ease, box-shadow .4s ease;
}
.db-fill::after{ content:""; position:absolute; top:0; left:7%; right:7%; height:2.5px; border-radius:3px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.9), transparent); animation:menisc 2.6s ease-in-out infinite; }
@keyframes menisc{ 0%,100%{ opacity:.35 } 50%{ opacity:1 } }
.digit-bar > span{ position:relative !important; z-index:2 !important; font-family:var(--font-display) !important; font-size:15px !important; font-weight:900 !important; color:#fff !important; text-shadow:0 1px 3px rgba(0,0,0,0.9) !important; }
.digit-bar > .db-pct{ position:absolute !important; top:7px !important; left:0; right:0; bottom:auto !important; text-align:center !important; z-index:2 !important; font-size:9px !important; font-weight:800 !important; color:#e9f0fc !important; opacity:.95 !important; text-shadow:0 1px 2px rgba(0,0,0,0.8) !important; }
.digit-bar.hot{ border-color:color-mix(in srgb, var(--sig-c,#4d8dff) 62%, transparent) !important; transform:translateY(-2px); }
.digit-bar.hot .db-fill{ box-shadow:0 0 30px 0 var(--sig-c,#4d8dff), inset 0 2px 0 rgba(255,255,255,0.72); }
.digit-bar.best-payout{ background:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(9,16,30,0.5)) !important; outline:1.7px solid #2ee86f !important; outline-offset:1.5px; border-color:rgba(46,232,111,0.5) !important; animation:none !important; }
.digit-bar.selected{ outline:1.7px solid #ffce54 !important; outline-offset:1.5px; }
.digit-bar.cold{ opacity:.95; }
.digit-bar.cold .db-fill{ filter:saturate(.55) brightness(.82); }
.digit-bar.due{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 0 22px rgba(0,0,0,0.42), 0 0 16px -2px color-mix(in srgb, var(--sig-c,#4d8dff) 72%, transparent) !important; }
.digit-bar.due-hot{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 26px 0 color-mix(in srgb, var(--sig-c,#4d8dff) 90%, transparent) !important; animation:tubePulse 1.2s ease-in-out infinite; }
@keyframes tubePulse{ 0%,100%{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 20px -2px color-mix(in srgb, var(--sig-c,#4d8dff) 80%, transparent) } 50%{ box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 34px 2px color-mix(in srgb, var(--sig-c,#4d8dff) 96%, transparent) } }
/* echo cells keep their square heat style — hide the tube parts, glow via own shadow */
.echo-cell .db-fill, .echo-cell .db-aura{ display:none !important; }
.echo-cell.due{ box-shadow:0 0 13px -2px color-mix(in srgb, var(--sig-c,#22c4ee) 72%, transparent) !important; }
.echo-cell.due-hot{ box-shadow:0 0 21px 0 color-mix(in srgb, var(--sig-c,#22c4ee) 90%, transparent) !important; animation:tubePulse 1.2s ease-in-out infinite; }

/* STANDBY — elegant states before ticks flow (never blank) */
.digit-spotlight.calibrating .ds-ring{ animation:dsSpin 2.6s linear infinite; }
@keyframes dsSpin{ to{ transform:rotate(360deg) } }
.digit-spotlight.calibrating .ds-digit{ animation:dsBlink 1.5s ease-in-out infinite; }
@keyframes dsBlink{ 0%,100%{ opacity:.32 } 50%{ opacity:.72 } }
.dsr-tok.ghost{ opacity:.4; color:#5f7095 !important; background:rgba(255,255,255,0.03) !important; border-style:dashed !important; box-shadow:none !important; animation:dsBlink 1.7s ease-in-out infinite; }
.dsr-tok.ghost.current{ animation:dsBlink 1.3s ease-in-out infinite; }
/* ═══ WIN=faint GREEN · LOSS=faint RED — whole-card minor tint, keep glass (2026-07-02) ═══ */
.journal-list li.journal-trade-card.j-win, .journal-trade-card.j-win {
  background: linear-gradient(150deg, rgba(46,213,115,0.15), rgba(46,213,115,0.035) 60%, rgba(255,255,255,0.015)) !important;
  border-color: rgba(46,213,115,0.52) !important;
  box-shadow: 0 0 0 1.5px rgba(46,213,115,0.5), inset 0 1px 0 rgba(255,255,255,0.12), 0 0 30px -14px rgba(46,213,115,0.6), 0 24px 58px -28px rgba(0,0,0,0.82) !important;
}
.journal-list li.journal-trade-card.j-loss, .journal-trade-card.j-loss {
  background: linear-gradient(150deg, rgba(255,77,92,0.15), rgba(255,77,92,0.035) 60%, rgba(255,255,255,0.012)) !important;
  border-color: rgba(255,77,92,0.52) !important;
  box-shadow: 0 0 0 1.5px rgba(255,77,92,0.5), inset 0 1px 0 rgba(255,255,255,0.1), 0 0 28px -14px rgba(255,77,92,0.55), 0 24px 58px -28px rgba(0,0,0,0.82) !important;
}
/* LOSS detail colours → red (were grey); WIN stays green */
:is(.win-loss-card,.journal-trade-card) :where(.wl-negative,.jf-neg,.jh-neg,[data-t="down"]) { color:#ff6b78 !important; }
.journal-trade-card.j-loss .journal-profit, .win-loss-card[data-pnl="loss"] .journal-profit { color:#ff6b78 !important; }
.journal-trade-card.j-loss .journal-status-pill, .journal-status-pill.j-loss { color:#ffdde0 !important; background:rgba(255,77,92,0.18) !important; border-color:rgba(255,77,92,0.4) !important; }
.journal-trade-card.j-win .journal-status-pill, .journal-status-pill.j-win { color:#d7ffe8 !important; background:rgba(46,213,115,0.18) !important; border-color:rgba(46,213,115,0.4) !important; }
.win-loss-card[data-pnl="loss"] { border-color:rgba(255,77,92,0.42) !important; box-shadow:0 0 0 1px rgba(255,77,92,0.5), 0 22px 56px -28px rgba(0,0,0,0.75) !important; }
.win-loss-card[data-pnl="profit"] { border-color:rgba(46,213,115,0.42) !important; box-shadow:0 0 0 1px rgba(46,213,115,0.5), 0 22px 56px -28px rgba(0,0,0,0.75) !important; }
/* ═══ AI DIGIT PREDICTION → Deriv-style glass reactor tubes (2026-07-02, #91/#94) ═══ */
.digit-distribution-bars { gap: 6px !important; min-height: 0 !important; align-items: stretch !important; }
.digit-distribution-bars button {
  height: 112px !important; min-width: 0; border-radius: 12px !important;
  display: flex !important; flex-direction: column; align-items: center; justify-content: flex-end;
  gap: 2px; padding: 0 0 8px !important; position: relative !important; overflow: hidden !important;
  border: 1px solid rgba(184,204,238,0.15) !important;
  background: linear-gradient(180deg, rgba(255,255,255,0.055), rgba(9,16,30,0.5)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), inset 0 0 20px rgba(0,0,0,0.42), 0 6px 16px -10px rgba(0,0,0,0.6) !important;
  transition: transform .18s ease, box-shadow .3s ease, border-color .3s ease !important;
}
.digit-distribution-bars button::before {
  content:""; position:absolute; left:0; right:0; bottom:0; z-index:0; pointer-events:none;
  height: max(var(--h, 6%), 5px);
  background: linear-gradient(180deg, color-mix(in srgb, var(--sig-c,#4d8dff) 94%, #fff), var(--sig-c,#4d8dff) 18%, color-mix(in srgb, var(--sig-c,#4d8dff) 48%, #0a1424)) !important;
  border-radius: 0 0 11px 11px;
  box-shadow: 0 0 16px -2px var(--sig-c,#4d8dff), inset 0 2px 0 rgba(255,255,255,0.5);
  transition: height .55s cubic-bezier(.2,.7,.3,1);
}
.digit-distribution-bars button::after {
  content:""; position:absolute; top:0; left:0; right:0; height:34%; z-index:1; pointer-events:none;
  background: linear-gradient(180deg, rgba(255,255,255,0.15), transparent); border-radius:12px 12px 40% 40%;
}
.digit-distribution-bars button > i {
  position:relative; z-index:2; font-style:normal; font-family:var(--font-display) !important;
  font-size:15px !important; font-weight:900 !important; color:#fff !important; text-shadow:0 1px 3px rgba(0,0,0,0.85);
}
.digit-distribution-bars button > b {
  position:relative; z-index:2; font-size:9px !important; font-weight:800 !important; color:#dce8ff !important; opacity:.94; text-shadow:0 1px 2px rgba(0,0,0,0.7);
}
.digit-distribution-bars button:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--sig-c,#4d8dff) 55%, transparent) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 20px -4px var(--sig-c,#4d8dff) !important; }
.digit-distribution-bars button.hot {
  background: linear-gradient(180deg, rgba(255,255,255,0.055), rgba(9,16,30,0.5)) !important;
  border-color: color-mix(in srgb, var(--sig-c,#4d8dff) 62%, transparent) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 24px -4px var(--sig-c,#4d8dff) !important;
  transform: translateY(-2px); color: #ffdbe3;
}
.digit-distribution-bars button.hot::before { box-shadow: 0 0 28px 0 var(--sig-c,#4d8dff), inset 0 2px 0 rgba(255,255,255,0.72); }
.digit-distribution-bars button.trade-ready {
  background: linear-gradient(180deg, rgba(255,255,255,0.055), rgba(9,16,30,0.5)) !important;
  outline: 1.7px solid #2ee86f !important; outline-offset: 1.5px; border-color: rgba(46,232,111,0.5) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16), 0 0 22px -4px rgba(46,232,111,0.62) !important;
}
.digit-distribution-bars button.trade-ready i { color:#fff !important; text-shadow:0 0 14px rgba(46,232,111,0.5); }
.digit-distribution-bars button.selected, .digit-distribution-bars button[aria-pressed="true"] { outline: 1.7px solid #ffce54 !important; outline-offset: 1.5px; }
/* ═══ DEDUP: the AI DIGIT PREDICTION block now carries the tubes + spotlight + stream,
   so hide the standalone reactor-tube row on over_under/even_odd (2026-07-02, #94) ═══ */
[data-analyzer="over_under"] .digit-bars-mini,
[data-analyzer="even_odd"] .digit-bars-mini { display:none !important; }
/* ═══ DIGIT AUTO-TRADE TIMER — click-a-digit → timed auto-trading (2026-07-02, #91/#92) ═══ */
.digit-autotrade{ margin-top:12px; padding:12px; border-radius:14px; position:relative;
  background:linear-gradient(180deg, rgba(16,26,46,.62), rgba(9,16,30,.78));
  border:1px solid color-mix(in srgb, var(--sig-c,#4d8dff) 26%, rgba(184,204,238,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 14px 34px -24px rgba(0,0,0,.8); transition: box-shadow .35s ease; }
.digit-autotrade.armed{ box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 24px -8px var(--sig-c,#4d8dff); }
.dat-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:9px; }
.dat-title{ font-size:10px; font-weight:800; letter-spacing:.15em; color:#9fb2d4; }
.dat-target{ font-family:var(--font-display); font-weight:900; font-size:12px; color:color-mix(in srgb,var(--sig-c,#4d8dff) 72%,#fff); padding:3px 11px; border-radius:20px; background:rgba(255,255,255,.06); border:1px solid rgba(184,204,238,.18); }
.dat-controls{ display:flex; gap:8px; align-items:center; }
.dat-durations{ display:flex; gap:5px; flex:1 1 auto; min-width:0; }
.dat-durations button{ flex:1 1 0; min-width:0; padding:8px 0; border-radius:9px; font-family:var(--font-display); font-size:11px; font-weight:800; color:#c7d4ea; cursor:pointer; transition:all .18s ease;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:1px solid rgba(184,204,238,.12); }
.dat-durations button:hover{ border-color:color-mix(in srgb,var(--sig-c,#4d8dff) 45%,transparent); }
.dat-durations button.on{ color:#04121a; border-color:transparent; box-shadow:0 0 14px -3px var(--sig-c,#4d8dff);
  background:linear-gradient(180deg, color-mix(in srgb,var(--sig-c,#4d8dff) 92%,#fff), var(--sig-c,#4d8dff)); }
.dat-fire{ flex:0 0 auto; padding:9px 18px; border-radius:10px; font-family:var(--font-display); font-weight:900; font-size:12px; color:#04121a; cursor:pointer; white-space:nowrap; border:none; transition:all .2s ease;
  background:linear-gradient(180deg,#3ff08a,#12c46a); box-shadow:0 0 16px -4px #2ee86f; }
.dat-fire:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.dat-fire.is-on{ color:#fff; background:linear-gradient(180deg,#ff6b78,#e5384a); box-shadow:0 0 18px -4px #ff5b6a; animation:datPulse 1.3s ease-in-out infinite; }
@keyframes datPulse{ 0%,100%{ box-shadow:0 0 16px -5px #ff5b6a } 50%{ box-shadow:0 0 26px -2px #ff5b6a } }
.dat-status{ margin-top:9px; font-family:var(--font-mono,ui-monospace,monospace); font-size:10px; text-align:center; letter-spacing:.02em; color:color-mix(in srgb,var(--sig-c,#4d8dff) 42%,#a9bbd8); }
/* ═══ #94 finish: the Quantum Stream supersedes the tiny digit-live-feed stream — hide the dup, keep the price quote (2026-07-02) ═══ */
.digit-live-feed .dlf-stream { display:none !important; }

/* ═══ #96 — PREMIUM PLATFORM SWITCHES: one consistent glossy toggle everywhere (2026-07-02) ═══ */
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"],
input.gm-switch, input[type="checkbox"][role="switch"], input[type="checkbox"][data-switch] {
  appearance:none !important; -webkit-appearance:none !important; position:relative; flex:0 0 auto;
  width:46px !important; height:25px !important; margin:0; padding:0; cursor:pointer; border-radius:999px !important;
  background:linear-gradient(180deg, rgba(9,16,30,.9), rgba(16,26,46,.72)) !important;
  border:1px solid rgba(184,204,238,.22) !important;
  box-shadow: inset 0 2px 5px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.03) !important;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease !important;
}
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"]::before,
input.gm-switch::before, input[type="checkbox"][role="switch"]::before, input[type="checkbox"][data-switch]::before {
  content:"" !important; position:absolute !important; top:2.5px !important; left:3px !important; right:auto !important; bottom:auto !important;
  width:19px !important; height:19px !important; border-radius:50% !important; margin:0 !important;
  background:radial-gradient(circle at 40% 34%, #ffffff, #d5deec) !important;
  box-shadow:0 2px 5px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.06) !important;
  transition: transform .28s cubic-bezier(.3,.9,.3,1.25), background .3s ease !important;
}
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"]:checked,
input.gm-switch:checked, input[type="checkbox"][role="switch"]:checked, input[type="checkbox"][data-switch]:checked {
  background:linear-gradient(180deg, #2ee88f, #12b673) !important; border-color:transparent !important;
  box-shadow:0 0 16px -3px rgba(46,232,143,.6), inset 0 1px 0 rgba(255,255,255,.28) !important;
}
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"]:checked::before,
input.gm-switch:checked::before, input[type="checkbox"][role="switch"]:checked::before, input[type="checkbox"][data-switch]:checked::before {
  transform:translateX(21px) !important; background:radial-gradient(circle at 40% 34%, #ffffff, #eafff4) !important;
}
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"]:hover,
input.gm-switch:hover, input[type="checkbox"][role="switch"]:hover { border-color:rgba(184,204,238,.4) !important; }
:where(.mini-toggle,.msd-opt,.sat-set-row,.gm-switch-wrap,.chr-toggle,.reinvest-toggle) input[type="checkbox"]:focus-visible,
input.gm-switch:focus-visible, input[type="checkbox"][role="switch"]:focus-visible { outline:2px solid var(--sig-c,#4d8dff) !important; outline-offset:2px !important; }
/* upgrade the span/thumb-style aor toggle to the same green-on glow */
.aor-toggle[aria-checked="true"] .aor-toggle-track { background:linear-gradient(180deg,#2ee88f,#12b673) !important; box-shadow:0 0 15px -3px rgba(46,232,143,.6) !important; }
.aor-toggle[aria-checked="true"] .aor-toggle-thumb { background:#eafff4 !important; }
/* ═══ WIN/LOSS CARDS v3 — per-trade-type detail colours + compact layout (2026-07-02) ═══ */
/* Per-family accent realigned to the vibrant analyzer palette (no off-theme purple/grey) */
.journal-trade-card[data-fam="overunder"]{ --fam:#ffc21a !important; }
.journal-trade-card[data-fam="matches"]{ --fam:#22c4ee !important; }
.journal-trade-card[data-fam="differs"]{ --fam:#22c4ee !important; }
.journal-trade-card[data-fam="parity"]{ --fam:#4d8dff !important; }
.journal-trade-card[data-fam="rise"]{ --fam:#2ee86f !important; }
.journal-trade-card[data-fam="fall"]{ --fam:#ff5b6a !important; }
.journal-trade-card[data-fam="asian"]{ --fam:#12e0c4 !important; }
.journal-trade-card[data-fam="vanilla"]{ --fam:#c2e82e !important; }
.journal-trade-card[data-fam="accumulator"]{ --fam:#ff8a1e !important; }
.journal-trade-card[data-fam="run"]{ --fam:#22c4ee !important; }
.journal-trade-card[data-fam="touch"]{ --fam:#ffb347 !important; }
/* Route name + neutral detail values take the trade-type accent; NET + pos/neg stay win/loss */
.journal-trade-card .journal-route-badge strong{ color:var(--fam) !important; }
.journal-trade-card .j-fam-ic{ filter:drop-shadow(0 0 5px var(--fam)) !important; }
.journal-trade-card .journal-hero-line > div > strong:not(.journal-profit):not(.jh-pos):not(.jh-neg),
.journal-trade-card .journal-detail-grid strong:not(.jf-pos):not(.jf-neg){ color: color-mix(in srgb, var(--fam) 74%, #eef3fb) !important; }
.journal-trade-card.j-win .journal-profit{ color:#37e58f !important; }
.journal-trade-card.j-loss .journal-profit{ color:#ff6b78 !important; }
/* Compact — hide the redundant big WON/LOSS block (status pill + card tint already show it) */
.journal-trade-card > .journal-section-card.journal-outcome{ display:none !important; }
.journal-trade-card .journal-card-shell{ padding:10px 12px !important; gap:7px !important; }
.journal-trade-card .journal-topbar{ padding-bottom:6px !important; gap:8px !important; }
.journal-trade-card .journal-hero-line{ gap:6px !important; }
.journal-trade-card .journal-hero-line > div{ padding:5px 8px !important; }
.journal-trade-card .journal-hero-line > div > span,
.journal-trade-card .journal-detail-grid small{ font-size:8.5px !important; letter-spacing:.05em !important; }
.journal-trade-card .journal-hero-line strong{ font-size:14px !important; }
.journal-trade-card .journal-detail-grid{ gap:6px !important; margin-top:0 !important; }
.journal-trade-card .journal-detail-grid span{ padding:5px 8px !important; }
.journal-trade-card .journal-detail-grid strong{ font-size:11.5px !important; }
.journal-trade-card .journal-status-pill{ padding:4px 11px !important; font-size:11px !important; }
/* ═══ DIRECTIONAL win/loss detail colours (2026-07-02, #98) ═══
   Call/Rise/Over/Match = green · Put/Fall = red · Under = blue · Even = blue · Odd = gold · Differ = cyan */
.journal-trade-card[data-dir="up"]    :is(.journal-route-badge strong,.jh-dir,.jf-dir),
.journal-trade-card[data-dir="over"]  :is(.journal-route-badge strong,.jh-dir,.jf-dir),
.journal-trade-card[data-dir="match"] :is(.journal-route-badge strong,.jh-dir,.jf-dir){ color:#2ee86f !important; }
.journal-trade-card[data-dir="down"]  :is(.journal-route-badge strong,.jh-dir,.jf-dir){ color:#ff5b6a !important; }
.journal-trade-card[data-dir="under"] :is(.journal-route-badge strong,.jh-dir,.jf-dir),
.journal-trade-card[data-dir="even"]  :is(.journal-route-badge strong,.jh-dir,.jf-dir){ color:#4d8dff !important; }
.journal-trade-card[data-dir="odd"]   :is(.journal-route-badge strong,.jh-dir,.jf-dir){ color:#ffce54 !important; }
.journal-trade-card[data-dir="differ"] :is(.journal-route-badge strong,.jh-dir,.jf-dir){ color:#22c4ee !important; }
/* ═══ ACCESS-TIER GATING — hide premium panels + lock premium orbs for Regular (2026-07-02) ═══ */
body[data-tier="regular"] #oub-panel,
body[data-tier="regular"] #matchmaster,
body[data-tier="regular"] #digital-sentinel,
body[data-tier="regular"] #ou-adv,            /* 🎯 Precision Barrier Matrix — Premium */
body[data-tier="regular"] #genesis { display:none !important; }
.orb.premium-locked{ position:relative; filter:grayscale(.55) brightness(.6); cursor:not-allowed !important; }
.orb.premium-locked .orb-glow{ opacity:.25 !important; animation:none !important; }
.orb.premium-locked .orb-label{ opacity:.55; }
.orb.premium-locked::after{ content:"🔒"; position:absolute; top:6px; right:8px; font-size:14px; z-index:4; filter:drop-shadow(0 0 4px #000); }
.orb-cell:has(.orb.premium-locked) .orb-desc{ color:#ffce54 !important; font-weight:800 !important; }
.orb-cell:has(.orb.premium-locked) .orb-desc::after{ content:" · PREMIUM"; opacity:.85; letter-spacing:.06em; }
/* ═══════════════════════════════════════════════════════════════════════════
   WIN/LOSS DETAIL COLOURS — ONE clean, consistent scheme (2026-07-03)
   Prior passes tinted EVERY value in its per-type --fam accent AND directional
   AND pos/neg → chaotic. New rule: neutral values = calm off-white; only the
   DIRECTION (route + direction value) is semantically coloured; win/loss results
   (NET + ✓/✕ outcomes) stay green/red. This block is last, so it wins.
   ═══════════════════════════════════════════════════════════════════════════ */
/* 1 · neutral default — all hero + detail VALUES a calm off-white (low specificity) */
.journal-hero-line strong, .journal-detail-grid strong { color:#e6edf8 !important; }
/* 2 · outcome markers (✓ matched / ✕ / move) → green / red */
.journal-trade-card .journal-hero-line strong.jh-pos, .journal-trade-card .journal-detail-grid strong.jf-pos { color:#2ee86f !important; }
.journal-trade-card .journal-hero-line strong.jh-neg, .journal-trade-card .journal-detail-grid strong.jf-neg { color:#ff6b78 !important; }
/* 3 · NET by result */
.journal-trade-card.j-win  .journal-hero-line strong.journal-profit { color:#2ee86f !important; }
.journal-trade-card.j-loss .journal-hero-line strong.journal-profit { color:#ff6b78 !important; }
/* 4 · DIRECTION — route badge + direction value, one semantic colour per side */
.journal-trade-card[data-dir="up"]    .journal-route-badge strong, .journal-trade-card[data-dir="up"]    strong.jh-dir, .journal-trade-card[data-dir="up"]    strong.jf-dir,
.journal-trade-card[data-dir="over"]  .journal-route-badge strong, .journal-trade-card[data-dir="over"]  strong.jh-dir, .journal-trade-card[data-dir="over"]  strong.jf-dir,
.journal-trade-card[data-dir="match"] .journal-route-badge strong, .journal-trade-card[data-dir="match"] strong.jh-dir, .journal-trade-card[data-dir="match"] strong.jf-dir { color:#2ee86f !important; }
.journal-trade-card[data-dir="down"]  .journal-route-badge strong, .journal-trade-card[data-dir="down"]  strong.jh-dir, .journal-trade-card[data-dir="down"]  strong.jf-dir { color:#ff6b78 !important; }
.journal-trade-card[data-dir="under"] .journal-route-badge strong, .journal-trade-card[data-dir="under"] strong.jh-dir, .journal-trade-card[data-dir="under"] strong.jf-dir,
.journal-trade-card[data-dir="even"]  .journal-route-badge strong, .journal-trade-card[data-dir="even"]  strong.jh-dir, .journal-trade-card[data-dir="even"]  strong.jf-dir { color:#4d8dff !important; }
.journal-trade-card[data-dir="odd"]   .journal-route-badge strong, .journal-trade-card[data-dir="odd"]   strong.jh-dir, .journal-trade-card[data-dir="odd"]   strong.jf-dir { color:#ffce54 !important; }
.journal-trade-card[data-dir="differ"] .journal-route-badge strong, .journal-trade-card[data-dir="differ"] strong.jh-dir, .journal-trade-card[data-dir="differ"] strong.jf-dir { color:#22c4ee !important; }
/* route badge for the non-directional types (touch, accu, etc.) → calm neutral, not a rogue accent */
.journal-trade-card:not([data-dir="up"]):not([data-dir="down"]):not([data-dir="over"]):not([data-dir="under"]):not([data-dir="even"]):not([data-dir="odd"]):not([data-dir="match"]):not([data-dir="differ"]) .journal-route-badge strong { color:#dfe7f3 !important; }
/* Neutral win/loss values — HIGHER specificity so it beats the earlier per-type --fam tint.
   Excludes the semantic classes (profit/pos/neg/dir) which keep their own colours. */
.journal-trade-card .journal-hero-line > div > strong:not(.journal-profit):not(.jh-pos):not(.jh-neg):not(.jh-dir),
.journal-trade-card .journal-detail-grid strong:not(.jf-pos):not(.jf-neg):not(.jf-dir){ color:#e6edf8 !important; }
/* ═══ WIN/LOSS CARDS — hairline green/red edge + minor floating glow (2026-07-03) ═══ */
.journal-list li.journal-trade-card.j-win, .journal-trade-card.j-win{
  border:1px solid rgba(46,213,115,0.28) !important;
  box-shadow:
    0 0 0 0.6px rgba(46,213,115,0.6),                 /* extra-small green edge line */
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 0 26px -12px rgba(46,213,115,0.42),             /* minor green glow */
    0 20px 44px -22px rgba(0,0,0,0.7),                /* soft floating drop shadow */
    0 7px 18px -11px rgba(0,0,0,0.5) !important;      /* closer lift shadow */
}
.journal-list li.journal-trade-card.j-loss, .journal-trade-card.j-loss{
  border:1px solid rgba(255,91,106,0.28) !important;
  box-shadow:
    0 0 0 0.6px rgba(255,91,106,0.6),                 /* extra-small red edge line */
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 0 26px -12px rgba(255,91,106,0.4),              /* minor red glow */
    0 20px 44px -22px rgba(0,0,0,0.7),
    0 7px 18px -11px rgba(0,0,0,0.5) !important;
}
/* ═══ WIN/LOSS CARDS — real floating: coloured glow pooled below + depth + gentle bob (2026-07-03) ═══ */
.journal-list li.journal-trade-card.j-win, .journal-trade-card.j-win{
  border:1px solid rgba(46,213,115,0.32) !important;
  box-shadow:
    0 0 0 0.6px rgba(46,213,115,0.55),                 /* hairline green edge */
    inset 0 1px 0 rgba(255,255,255,0.18),              /* raised top rim */
    0 12px 24px -8px rgba(0,0,0,0.88),                 /* mid depth shadow */
    0 30px 52px -14px rgba(0,0,0,0.55),                /* far soft shadow */
    0 18px 42px -6px rgba(46,213,115,0.45) !important; /* GREEN GLOW pooled below → floats */
}
.journal-list li.journal-trade-card.j-loss, .journal-trade-card.j-loss{
  border:1px solid rgba(255,91,106,0.32) !important;
  box-shadow:
    0 0 0 0.6px rgba(255,91,106,0.55),
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 12px 24px -8px rgba(0,0,0,0.88),
    0 30px 52px -14px rgba(0,0,0,0.55),
    0 18px 42px -6px rgba(255,91,106,0.42) !important; /* RED GLOW pooled below → floats */
}
@media (prefers-reduced-motion: no-preference){
  .journal-trade-card.j-win, .journal-trade-card.j-loss{ animation: jCardFloat 6s ease-in-out infinite; will-change: transform; }
  .journal-trade-card.j-loss{ animation-delay: -3s; }        /* wins & losses bob out of phase */
  @keyframes jCardFloat{ 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } }
}
/* ═══ WIN/LOSS CARDS — HYPER-REALISTIC floating: layered penumbra shadow + multi-scale
   coloured bloom (bright core → wide dim halo) + top rim light (2026-07-03) ═══ */
.journal-list li.journal-trade-card.j-win, .journal-trade-card.j-win{
  border:1px solid rgba(46,213,115,0.30) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.17),          /* rim light on the raised top edge */
    0 0 0 0.6px rgba(46,213,115,0.5),              /* hairline edge */
    0 2px 3px rgba(0,0,0,0.55),                     /* contact shadow (tight, dark) */
    0 8px 16px -4px rgba(0,0,0,0.5),               /* key shadow */
    0 20px 34px -10px rgba(0,0,0,0.46),           /* ambient shadow */
    0 40px 70px -24px rgba(0,0,0,0.4),            /* far penumbra */
    0 0 12px -3px rgba(46,213,115,0.42),          /* bloom core (bright, tight) */
    0 14px 34px -8px rgba(46,213,115,0.26),       /* bloom mid */
    0 32px 78px -20px rgba(46,213,115,0.15) !important; /* bloom halo (wide, dim) */
}
.journal-list li.journal-trade-card.j-loss, .journal-trade-card.j-loss{
  border:1px solid rgba(255,91,106,0.30) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.15),
    0 0 0 0.6px rgba(255,91,106,0.5),
    0 2px 3px rgba(0,0,0,0.55),
    0 8px 16px -4px rgba(0,0,0,0.5),
    0 20px 34px -10px rgba(0,0,0,0.46),
    0 40px 70px -24px rgba(0,0,0,0.4),
    0 0 12px -3px rgba(255,91,106,0.4),
    0 14px 34px -8px rgba(255,91,106,0.24),
    0 32px 78px -20px rgba(255,91,106,0.14) !important;
}
/* gentler, slower bob so it reads as a real object hovering, not a game element */
@media (prefers-reduced-motion: no-preference){
  .journal-trade-card.j-win, .journal-trade-card.j-loss{ animation: jCardFloat 7s ease-in-out infinite; }
  @keyframes jCardFloat{ 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } }
}
/* ═══ AETHER POWER BUTTON — render on ALL devices (Android lacks the ⏻ glyph) + anchor the pip (2026-07-03) ═══ */
.aether-ctl{ position:relative; display:inline-flex; align-items:center; overflow:visible; }
.aether-power{ overflow:visible; }
.aether-power .ap-glyph{ display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; }
.aether-power .ap-glyph svg{ width:14px; height:14px; display:block; }
/* ═══════════════════════════════════════════════════════════════════════════
   HYPER-REALISTIC AD POPUP — premium sponsored-ad look (2026-07-03, #103)
   ═══════════════════════════════════════════════════════════════════════════ */
.aether-ad-popup{ width:min(366px, calc(100vw - 28px)) !important; }
.aad-card{
  padding:0 !important; border-radius:20px !important; overflow:hidden !important;
  background:linear-gradient(180deg, color-mix(in srgb, var(--ad-lo) 55%, #0a0e18), #070b14) !important;
  border:1px solid color-mix(in srgb, var(--ad-hi) 34%, rgba(255,255,255,0.12)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 2px 6px rgba(0,0,0,0.5),
    0 34px 74px -22px rgba(0,0,0,0.9),
    0 0 66px -22px var(--ad-glow) !important;
  -webkit-backdrop-filter:blur(16px) saturate(1.25); backdrop-filter:blur(16px) saturate(1.25);
}
.aad-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:96px; z-index:0; opacity:.9 !important; pointer-events:none;
  background:radial-gradient(120% 100% at 12% 0%, color-mix(in srgb, var(--ad-hi) 30%, transparent), transparent 62%) !important; }
.aad-classic{ position:relative; z-index:1; padding:16px 16px 14px; }
/* app-icon treatment for the emoji */
.aad-top{ position:relative; z-index:1; align-items:center !important; }
.aad-emoji{
  width:46px !important; height:46px; flex:0 0 auto; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:24px !important; filter:none !important;
  background:linear-gradient(150deg, color-mix(in srgb, var(--ad-hi) 88%, #fff), var(--ad-mid)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.55), 0 7px 18px -6px var(--ad-glow); color:#0a0a12;
}
.aad-brand{ font-size:13px !important; display:inline-flex; align-items:center; gap:5px; }
.aad-brand::after{ content:"✓"; display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; background:linear-gradient(135deg,#3aa8ff,#2b7bd6); color:#fff; font-size:9px; font-weight:900; box-shadow:0 0 8px -1px rgba(58,168,255,0.75); }
.aad-badge{ background:color-mix(in srgb, var(--ad-hi) 20%, rgba(255,255,255,0.05)) !important; color:var(--ad-hi) !important; border:1px solid color-mix(in srgb, var(--ad-hi) 42%, transparent) !important; }
.aad-headline{ font-size:19px !important; color:#f3f7ff !important; margin-top:11px !important; position:relative; z-index:1; letter-spacing:-.01em; }
.aad-body{ position:relative; z-index:1; color:#c4cee0 !important; }
/* premium full-width CTA with a live shine sweep */
.aad-cta{ display:flex !important; align-items:center; justify-content:center; gap:7px; width:100%; box-sizing:border-box; margin-top:13px !important; padding:12px 18px !important; font-size:14px !important; border-radius:13px !important; position:relative; overflow:hidden;
  box-shadow:0 10px 26px -8px var(--ad-glow), inset 0 1px 0 rgba(255,255,255,0.42) !important; }
.aad-cta::after{ content:"→"; font-weight:900; transition:transform .2s ease; }
.aad-cta:hover::after{ transform:translateX(3px); }
.aad-cta::before{ content:""; position:absolute; top:0; left:-60%; width:38%; height:100%; background:linear-gradient(100deg, transparent, rgba(255,255,255,0.55), transparent); transform:skewX(-18deg); animation:aadShine 3.4s ease-in-out infinite; }
@keyframes aadShine{ 0%{ left:-60% } 55%,100%{ left:135% } }
.aad-sec{ background:rgba(255,255,255,0.045) !important; }
.aad-progress{ margin:12px 16px 0 !important; height:4px !important; box-shadow:0 0 10px -2px var(--ad-glow); }
.aad-close{ z-index:3; }
/* entrance settle */
.aether-ad-popup.show .aad-card{ animation:aadCardIn .55s cubic-bezier(.2,.9,.3,1.25); }
@keyframes aadCardIn{ 0%{ transform:scale(.93); opacity:.4 } 62%{ transform:scale(1.016) } 100%{ transform:scale(1); opacity:1 } }
/* ═══ LEGAL — Risk Disclosure + Terms & Conditions modal (2026-07-03, #104) ═══ */
.legal-links{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:10px; }
.legal-link{ background:rgba(255,255,255,.05); border:1px solid rgba(184,204,238,.18); color:#c7d4ea; font-size:12px; font-weight:700; padding:6px 14px; border-radius:999px; cursor:pointer; transition:all .18s ease; }
.legal-link:hover{ color:#fff; border-color:rgba(255,196,84,.5); background:rgba(255,196,84,.1); }
.legal-modal{ position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .22s ease; }
.legal-modal[hidden]{ display:none !important; }   /* CLOSED modal must be fully removed from the layout — display:flex + opacity:0 was covering the whole screen and swallowing EVERY tap (the "buttons don't work" bug) */
.legal-modal.show{ opacity:1; pointer-events:auto; }
.legal-backdrop{ position:absolute; inset:0; background:rgba(4,8,16,.72); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.legal-panel{ position:relative; width:min(680px, 100%); max-height:86vh; display:flex; flex-direction:column; border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg, rgba(16,26,46,.98), rgba(9,14,26,.99)); border:1px solid rgba(184,204,238,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 40px 90px -30px rgba(0,0,0,.9); transform:translateY(14px) scale(.98); transition:transform .28s cubic-bezier(.2,.9,.3,1.1); }
.legal-modal.show .legal-panel{ transform:translateY(0) scale(1); }
.legal-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid rgba(184,204,238,.12); }
.legal-tabs{ display:flex; gap:6px; }
.legal-tab{ background:rgba(255,255,255,.04); border:1px solid rgba(184,204,238,.14); color:#9fb2d4; font-size:12.5px; font-weight:800; padding:7px 13px; border-radius:10px; cursor:pointer; transition:all .18s ease; }
.legal-tab.is-on{ color:#04121a; border-color:transparent; background:linear-gradient(135deg,#ffd54a,#ff9a2c); box-shadow:0 0 16px -5px rgba(255,206,84,.6); }
.legal-x{ width:30px; height:30px; border-radius:50%; border:1px solid rgba(184,204,238,.16); background:rgba(255,255,255,.05); color:#c7d4ea; font-size:18px; line-height:1; cursor:pointer; flex:0 0 auto; }
.legal-x:hover{ background:rgba(255,255,255,.14); color:#fff; }
.legal-body{ overflow-y:auto; padding:18px 22px; }
.legal-body h3{ font-family:var(--font-display); font-size:22px; color:#f3f7ff; margin:0 0 4px; }
.legal-body .legal-lead{ color:#aebbd4; font-size:13.5px; margin:0 0 14px; }
.legal-body h4{ font-size:13px; font-weight:800; letter-spacing:.02em; color:#ffce7a; margin:16px 0 5px; }
.legal-body p{ font-size:13.5px; line-height:1.62; color:#cdd8ea; margin:0; }
.legal-body strong{ color:#fff; }
.legal-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-top:1px solid rgba(184,204,238,.12); }
.legal-updated{ font-size:11px; color:#8ea2c4; }
.legal-accept{ padding:9px 20px; border-radius:11px; border:none; cursor:pointer; font-weight:900; font-size:13px; color:#04121a; background:linear-gradient(135deg,#2ee88f,#12b673); box-shadow:0 0 18px -5px rgba(46,232,143,.6); }
.legal-accept:hover{ filter:brightness(1.06); transform:translateY(-1px); }
@media (max-width:520px){ .legal-body h3{ font-size:19px; } .legal-tab{ font-size:11px; padding:6px 10px; } }
/* ═══ LIVE DIGIT RESULT FLASH — win check / loss x on Sentinel + Genesis tiles (2026-07-03, #106) ═══ */
[data-sentinel-tile], [data-gen-tile]{ position:relative; }
[data-sentinel-tile].dres-win, [data-gen-tile].dres-win{ border-color:#2ee86f !important; box-shadow:0 0 0 2px #2ee86f, 0 0 26px -2px rgba(46,232,143,.85) !important; animation:dresWin 3.2s ease; z-index:3; }
[data-sentinel-tile].dres-loss, [data-gen-tile].dres-loss{ border-color:#ff5b6a !important; box-shadow:0 0 0 2px #ff5b6a, 0 0 26px -2px rgba(255,91,106,.82) !important; animation:dresLoss 3.2s ease; z-index:3; }
.dres-badge{ position:absolute; top:-9px; right:-9px; width:21px; height:21px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900; z-index:7; box-shadow:0 3px 9px rgba(0,0,0,.55); pointer-events:none; animation:dresBadgeIn .35s cubic-bezier(.2,.9,.3,1.5); }
.dres-win .dres-badge{ background:linear-gradient(135deg,#3ff08a,#12c46a); color:#04140c; }
.dres-loss .dres-badge{ background:linear-gradient(135deg,#ff6b78,#e5384a); color:#fff; }
@keyframes dresBadgeIn{ 0%{ transform:scale(0) rotate(-40deg); opacity:0 } 100%{ transform:scale(1) rotate(0); opacity:1 } }
@keyframes dresWin{ 0%{ transform:scale(1) } 22%{ transform:scale(1.16) } 100%{ transform:scale(1) } }
@keyframes dresLoss{ 0%,100%{ transform:translateX(0) } 15%,45%,75%{ transform:translateX(-2px) } 30%,60%,90%{ transform:translateX(2px) } }
.dres-tally{ display:flex; align-items:center; gap:9px; margin-top:10px; padding:7px 11px; border-radius:11px; background:rgba(255,255,255,.04); border:1px solid rgba(184,204,238,.12); }
.dres-tally-k{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9fb2d4; white-space:nowrap; }
.dres-tally-dots{ display:inline-flex; gap:3px; flex:1; flex-wrap:wrap; }
.dres-dot{ width:8px; height:8px; border-radius:50%; }
.dres-dot.w{ background:#2ee86f; box-shadow:0 0 6px -1px #2ee86f; }
.dres-dot.l{ background:#ff5b6a; box-shadow:0 0 6px -1px #ff5b6a; }
.dres-tally-wr{ font-family:var(--font-display); font-weight:900; font-size:12px; color:#e6edf8; white-space:nowrap; }
.dres-tally-wr[data-tone="up"]{ color:#2ee86f; } .dres-tally-wr[data-tone="down"]{ color:#ff6b78; }
/* ═══ DIGIT RESULT FLASH FIX — tiles have overflow:hidden, so use an INSET ring +
   bg tint (not clipped) and keep the badge INSIDE the tile (2026-07-03, #106) ═══ */
.sentinel-tile.dres-win, .gen-tile.dres-win, [data-sentinel-tile].dres-win, [data-gen-tile].dres-win{
  box-shadow: inset 0 0 0 2.5px #2ee86f, inset 0 0 22px -3px rgba(46,232,143,.78) !important;
  background-image: linear-gradient(180deg, rgba(46,232,143,.24), rgba(46,232,143,.06)) !important;
  border-color:#2ee86f !important;
}
.sentinel-tile.dres-loss, .gen-tile.dres-loss, [data-sentinel-tile].dres-loss, [data-gen-tile].dres-loss{
  box-shadow: inset 0 0 0 2.5px #ff5b6a, inset 0 0 22px -3px rgba(255,91,106,.74) !important;
  background-image: linear-gradient(180deg, rgba(255,91,106,.24), rgba(255,91,106,.06)) !important;
  border-color:#ff5b6a !important;
}
.dres-badge{ top:4px !important; right:4px !important; width:18px !important; height:18px !important; font-size:11px !important; }
/* Flash ring via OUTLINE (not clipped by overflow, not set inline by the tile) (2026-07-03) */
.sentinel-tile.dres-win, .gen-tile.dres-win, [data-sentinel-tile].dres-win, [data-gen-tile].dres-win{ outline:2.5px solid #2ee86f !important; outline-offset:-2px !important; }
.sentinel-tile.dres-loss, .gen-tile.dres-loss, [data-sentinel-tile].dres-loss, [data-gen-tile].dres-loss{ outline:2.5px solid #ff5b6a !important; outline-offset:-2px !important; }
/* ═══════════════════════════════════════════════════════════════════════════
   🌐 NEXT-GEN LIVE MARKET DESK (2026-07-06) — per-analyzer, capability-filtered.
   Hero top-pick with score ring, live sparkline + vitals, ranked leaderboard
   with one-tap "trade this market" rows. Uses the analyzer accent (--sig-c) for
   chrome and tier colours (green/amber/grey) for the hero + rows.
   ═══════════════════════════════════════════════════════════════════════════ */
.mad{ --mc: var(--sig-c, #59f2ff);
  border:1px solid color-mix(in srgb, var(--mc) 22%, #1a2233);
  border-radius:16px; padding:12px 12px 10px;
  background:
    radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--mc) 10%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(16,22,34,.92), rgba(10,14,22,.96));
  box-shadow: 0 10px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.05); }
.mad-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.mad-title{ font-size:12.5px; font-weight:800; letter-spacing:.02em; color:#eaf1ff; display:flex; align-items:center; gap:6px; }
.mad-title i{ color:var(--mc); font-style:normal; }
.mad-scan{ font-size:10.5px; font-weight:700; color:color-mix(in srgb, var(--mc) 80%, #9fb0c8); padding:3px 8px; border-radius:999px; border:1px solid color-mix(in srgb, var(--mc) 30%, #223344); background:color-mix(in srgb, var(--mc) 8%, #0c1119); }
.mad-hero{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; border-radius:13px; background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.15)); border:1px solid rgba(255,255,255,.06); }
.mad-hero-main{ min-width:0; }
.mad-sym{ font-size:20px; font-weight:900; letter-spacing:.01em; color:#fff; line-height:1.05; }
.mad-name{ font-size:11px; color:#9fb0c8; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mad-chips{ display:flex; gap:6px; margin-top:7px; flex-wrap:wrap; }
.mad-fam{ font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:2.5px 7px; border-radius:6px; color:#0b0f16; background:var(--mc); }
.mad-verd{ font-size:10px; font-weight:700; color:#cdd8ea; align-self:center; }
.mad-ring{ position:relative; width:58px; height:58px; flex:0 0 58px; display:grid; place-items:center; }
.mad-ring svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.mad-ring .mr-bg{ fill:none; stroke:rgba(255,255,255,.09); stroke-width:4; }
.mad-ring .mr-fg{ fill:none; stroke:var(--mc); stroke-width:4; stroke-linecap:round; transition:stroke-dasharray .6s cubic-bezier(.4,0,.2,1); }
.mad-ring b{ font-size:17px; font-weight:900; color:#fff; line-height:1; }
.mad-ring small{ position:absolute; bottom:5px; font-size:6.5px; letter-spacing:.08em; text-transform:uppercase; color:#8493a8; }
.mad-hero.tier-trade{ --mc:#2ee86f; }
.mad-hero.tier-caution{ --mc:#ffc21a; }
.mad-hero.tier-hold{ --mc:#8493a8; }
.mad-spark{ margin:9px 2px 6px; height:16px; }
.mad-spark svg{ width:100%; height:16px; display:block; }
.mad-spark polyline{ fill:none; stroke:var(--mc); stroke-width:1; stroke-linejoin:round; stroke-linecap:round; opacity:.9; }
.mad-vitals{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:6px 0 8px; }
.mad-vitals span{ font-size:9px; text-transform:uppercase; letter-spacing:.03em; color:#8493a8; display:flex; flex-direction:column; gap:2px; padding:6px 5px; border-radius:8px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.05); }
.mad-vitals b{ font-size:12px; font-weight:800; color:#eaf1ff; letter-spacing:0; text-transform:none; }
.mad-vitals b.mv-up{ color:#2ee86f; } .mad-vitals b.mv-down{ color:#ff5b6a; } .mad-vitals b.mv-flat{ color:#9fb0c8; }
.mad-reason{ font-size:10.5px; line-height:1.4; color:#9fb0c8; margin:0 0 9px; }
.mad-board{ display:flex; flex-direction:column; gap:5px; }
.mad-row{ display:grid; grid-template-columns:18px 1fr 60px 44px; align-items:center; gap:8px; width:100%; text-align:left; cursor:pointer; padding:7px 9px; border-radius:10px; border:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.025); color:#dfe8f5; transition:transform .12s, border-color .15s, background .15s; }
.mad-row:hover{ transform:translateX(2px); border-color:color-mix(in srgb,var(--mc) 40%,#223344); background:rgba(255,255,255,.05); }
.mad-row.is-sel{ border-color:var(--mc); background:color-mix(in srgb,var(--mc) 12%,#0c1119); box-shadow:0 0 0 1px color-mix(in srgb,var(--mc) 30%,transparent) inset; }
.mad-rank{ font-size:11px; font-weight:900; color:#6f7f96; text-align:center; }
.mad-row.is-sel .mad-rank{ color:var(--mc); }
.mad-rsym{ font-size:12.5px; font-weight:800; color:#fff; display:flex; flex-direction:column; gap:1px; min-width:0; }
.mad-rsym i{ font-style:normal; font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8493a8; }
.mad-rbar{ height:6px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.mad-rbar em{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,color-mix(in srgb,var(--mc) 60%,#2a3446),var(--mc)); transition:width .5s ease; }
.mad-rscore{ font-size:13px; font-weight:900; color:#fff; text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:1px; }
.mad-rscore u{ text-decoration:none; font-size:7.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#8493a8; }
.mad-row.tier-trade{ --mc:#2ee86f; } .mad-row.tier-trade .mad-rscore u{ color:#2ee86f; }
.mad-row.tier-caution{ --mc:#ffc21a; } .mad-row.tier-caution .mad-rscore u{ color:#ffc21a; }
.mad-row.tier-hold{ --mc:#8493a8; }
.mad-more{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:9px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8493a8; }
.mad-more select{ flex:1; max-width:58%; background:rgba(12,17,25,.9); color:#dfe8f5; border:1px solid rgba(255,255,255,.1); border-radius:8px; padding:6px 8px; font-size:11px; font-weight:700; }
@media (max-width:420px){
  .mad-vitals{ grid-template-columns:repeat(2,1fr); }
  .mad-row{ grid-template-columns:16px 1fr 42px 40px; gap:6px; }
  .mad-sym{ font-size:18px; }
}
/* market desk host (.market-ai-panel) is a 4-col grid — span the desk full width */
.market-ai-panel > .mad, [data-top-pairs] > .mad{ grid-column:1 / -1; width:100%; }
/* === SCROLL SMOOTHNESS — hooks onto the platform's existing `.is-scrolling`
   state (initSmartScroll in aether.js, ~line 19029, which already pauses the
   nebula + defers tick visuals during a scroll). While the page is actively
   scrolling we ALSO shed the two most expensive per-frame paints — backdrop-blur
   and keyframe animations — so mobile moves at full FPS. Both restore the instant
   scrolling settles: invisible in motion, crisp glass at rest. */
html.is-scrolling.gm-shed *,
html.is-scrolling.gm-shed *::before,
html.is-scrolling.gm-shed *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation-play-state: paused !important;   /* pseudo-elements too — the fixed animated aurora (body::before) was repainting every scroll frame on iOS/Android */
}
/* === WIN/LOSS FLASH v2 — extended to the 0-9 distribution rows (Over/Under's
   primary digit display) + the chart analyzers' direction displays (rise/fall,
   asians, vanilla). Same outline-ring technique as the Sentinel/Genesis tiles
   (outline is not clipped by overflow and beats inline box-shadow). === */
[data-digit-pick]{ position:relative; }
[data-digit-pick].dres-win{ outline:2.5px solid #2ee86f !important; outline-offset:-2px; background-image:linear-gradient(180deg, rgba(46,232,143,.28), rgba(46,232,143,.08)) !important; animation:dresWin 3.2s ease; z-index:3; }
[data-digit-pick].dres-loss{ outline:2.5px solid #ff5b6a !important; outline-offset:-2px; background-image:linear-gradient(180deg, rgba(255,91,106,.26), rgba(255,91,106,.08)) !important; animation:dresLoss 3.2s ease; z-index:3; }
[data-digit-pick] .dres-badge{ top:2px; right:2px; width:16px; height:16px; font-size:9.5px; }
@keyframes dresCardWin{ 0%{ transform:scale(1) } 22%{ transform:scale(1.02) } 100%{ transform:scale(1) } }
[data-dir-display]{ position:relative; }
[data-dir-display].dres-win{ outline:2.5px solid #2ee86f; outline-offset:-3px; border-radius:14px; box-shadow:0 0 28px -6px rgba(46,232,143,.55); animation:dresCardWin 3.2s ease; }
[data-dir-display].dres-loss{ outline:2.5px solid #ff5b6a; outline-offset:-3px; border-radius:14px; box-shadow:0 0 28px -6px rgba(255,91,106,.5); animation:dresLoss 3.2s ease; }
[data-dir-display] .dres-badge{ top:10px; right:10px; }
/* ══ NEXT-LEVEL TABLET + MONITOR LAYOUT — analyzer cards (2026-07-08) ══════════
   Phones keep the single column. From 900px up, each card's compact utility
   panels pair into a two-column dashboard while hero modules (charts, digit
   matrix, engines, market desk) keep the full row. Implemented as flex-wrap on
   the EXISTING flex card so the open/close display logic is completely
   untouched. On ≥1440px monitors the smallest strips go three-up. */
@media (min-width: 900px){
  .analyzer[data-analyzer]{ flex-flow: row wrap; gap: 12px 16px; align-content: flex-start; }
  .analyzer[data-analyzer] > *{ flex: 1 1 100%; min-width: 0; }
  .analyzer[data-analyzer] > .neural-edge-pulse,
  .analyzer[data-analyzer] > .analyzer-execution-panel,
  .analyzer[data-analyzer] > .digit-tick-scan-panel,
  .analyzer[data-analyzer] > .digit-live-feed,
  .analyzer[data-analyzer] > .digit-edge-panel,
  .analyzer[data-analyzer] > .smart-feature-strip,
  .analyzer[data-analyzer] > .edge-stack,
  .analyzer[data-analyzer] > .oub-panel,
  .analyzer[data-analyzer] > .orb-cooldown-card,
  .analyzer[data-analyzer] > .quick-speed-panel,
  .analyzer[data-analyzer] > .reinvest-panel,
  .analyzer[data-analyzer] > .skilli-speed-card,
  .analyzer[data-analyzer] > .analyzer-signature{ flex: 1 1 calc(50% - 8px); }
}
@media (min-width: 1440px){
  .analyzer[data-analyzer]{ gap: 14px 18px; }
  .analyzer[data-analyzer] > .digit-tick-scan-panel,
  .analyzer[data-analyzer] > .digit-live-feed,
  .analyzer[data-analyzer] > .digit-edge-panel,
  .analyzer[data-analyzer] > .orb-cooldown-card,
  .analyzer[data-analyzer] > .quick-speed-panel,
  .analyzer[data-analyzer] > .reinvest-panel{ flex: 1 1 calc(33.333% - 12px); }
}
/* ══ WORKSTATION SPLIT — two vertical panels on landscape tablets + monitors ══ */
@media (min-width: 1000px){
  #view-console.ws-split{
    display:grid;
    grid-template-columns: clamp(320px, 32vw, 470px) minmax(0, 1fr);
    gap:22px;
    align-items:start;
  }
  #view-console.ws-split .ws-left{
    display:grid; gap:16px; align-content:start;
    padding:2px 2px 18px 2px; min-width:0;
  }
  #view-console.ws-split .ws-right{ min-width:0; display:grid; gap:18px; align-content:start; }
  /* PINNED, independently-scrolling command deck ONLY on fine-pointer (mouse)
     screens. On TOUCH devices (iPad landscape) a sticky element that is ALSO its
     own overflow:auto scroll container is a notorious iOS/Android glitch source
     (card flicker, stuck momentum) — there the deck simply flows with the page,
     which scrolls buttery-smooth as ONE surface. */
  @media (pointer: fine){
    #view-console.ws-split .ws-left{
      position:sticky; top:10px;
      max-height:calc(100dvh - 20px);
      overflow-y:auto; overscroll-behavior:contain;
      padding:2px 8px 18px 2px;
      scrollbar-width:thin; scrollbar-color:rgba(140,160,200,.35) transparent;
    }
    #view-console.ws-split .ws-left::-webkit-scrollbar{ width:7px; }
    #view-console.ws-split .ws-left::-webkit-scrollbar-thumb{ background:rgba(140,160,200,.28); border-radius:99px; }
  }
  /* command-deck density: the hero + orbs breathe inside the narrow column */
  #view-console.ws-split .ws-left .orb-gallery .orbs{ gap:12px; }
  #view-console.ws-split .ws-left section,
  #view-console.ws-split .ws-left .glass{ margin:0; }
  /* the analysis theater gets the widescreen room it deserves */
  .ws-split .ws-right .analyzer[data-analyzer]{ box-shadow:0 18px 60px -30px rgba(0,0,0,.75); }
}
/* ══ COMMAND DECK DENSITY — the left panel reads like an instrument cluster, not
   a landing page. Type scales down, padding tightens, stat rows compress. ══ */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left .godmind-hero,
  #view-console.ws-split .ws-left .briefing,
  #view-console.ws-split .ws-left .safety-net,
  #view-console.ws-split .ws-left .orb-gallery{ padding:16px 16px 18px; }
  #view-console.ws-split .ws-left h1{ font-size:clamp(20px, 1.6vw, 26px); line-height:1.16; }
  #view-console.ws-split .ws-left h2{ font-size:15px; }
  #view-console.ws-split .ws-left p{ font-size:12.5px; line-height:1.45; }
  #view-console.ws-split .ws-left .godmind-hero{ grid-template-columns:1fr; gap:14px; }
  #view-console.ws-split .ws-left .orbs{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
  #view-console.ws-split .ws-left .orb{ width:100%; max-width:118px; margin:0 auto; }
  /* journal cards stay readable but tighter in the deck */
  #view-console.ws-split .ws-left .journal-trade-card{ font-size:12px; }
}
/* deck orbs: 3 per row, roomy */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left .orbs{ display:grid !important; grid-template-columns:repeat(3, minmax(0,1fr)) !important; gap:12px !important; }
}
/* ══ MARKET DESK, WIDESCREEN CUT — at full card width the desk splits in two:
   hero/vitals/spark left, the ranked leaderboard right. Half the height, twice
   the glanceability. (Row map: 1 head · 2 hero · 3 spark · 4 vitals · 5 reason) ══ */
/* Market desk 2-col — gate on the DESK'S OWN width, not the viewport. In the
   vertical workstation the desk sits inside a ~356px half-column of the card's
   masonry, so a viewport-based rule crushed the hero + leaderboard to ~146px.
   A container query keeps the desk a clean single column when narrow and only
   splits it in two when it genuinely has ≥520px. */
#view-console.ws-split .market-ai-panel{ container: mad-host / inline-size; }
@container mad-host (min-width: 520px){
  .ws-split .mad{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px 16px; align-items:start; }
  .ws-split .mad-head{ grid-column:1 / -1; grid-row:1; }
  .ws-split .mad-hero{ grid-column:1; grid-row:2; }
  .ws-split .mad-spark{ grid-column:1; grid-row:3; }
  .ws-split .mad-vitals{ grid-column:1; grid-row:4; }
  .ws-split .mad-reason{ grid-column:1; grid-row:5; margin:0; }
  .ws-split .mad-board{ grid-column:2; grid-row:2 / span 4; }
  .ws-split .mad-more{ grid-column:1 / -1; grid-row:6; }
}
/* ══ COMMAND-DECK REFLOW — the left column is narrow (370-470px); cards built for
   full width (briefing 5-col grid, safety, stat rows) overflowed and got clipped
   by the deck's scroll container (overflow-y:auto forces overflow-x). Reflow their
   internal grids to auto-fit so ALL info fits and nothing is cut off. ══ */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left > *{ max-width:100%; min-width:0; }
  #view-console.ws-split .ws-left .briefing-grid{ grid-template-columns:repeat(auto-fit, minmax(135px, 1fr)) !important; }
  /* Safety-net cards need room for a number field + USD unit + progress bar — 120px
     crammed them in the vertical rail. 185px gives 1 column on a narrow rail, 2 on a
     wide one, so the Daily P&L cards stay readable on the vertical layout. */
  #view-console.ws-split .ws-left .safety-grid{ grid-template-columns:repeat(auto-fit, minmax(185px, 1fr)) !important; align-items:start; }
  #view-console.ws-split .ws-left .stats-row,
  #view-console.ws-split .ws-left .stat-row,
  #view-console.ws-split .ws-left [class*="metric-grid"]{ grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)) !important; }
}
/* ══ COMPACT ANALYZER FIELD CARDS (2026-07-08) — every stake/pair/ticks field was
   a bloated 137-143px "card" because its auxiliary control (🧭 Best-pair button,
   $1/$5 stake presets) stacked as a SECOND full 44px row under the input. Trim the
   wrapper, shrink the aux controls to chips, and drop the input to a tidy 40px so
   the fields read as trim inputs — not oversized cards. Applies to ALL analyzers. */
.analyzer-execution-panel label{ padding:7px 9px !important; gap:4px !important; }
.analyzer-execution-panel select,
.analyzer-execution-panel input{ min-height:40px !important; padding:6px 9px !important; font-size:13.5px !important; }
.analyzer-execution-panel .btn-find-pair{
  min-height:28px !important; padding:3px 8px !important; font-size:11px !important;
  border-radius:8px; letter-spacing:0; text-transform:none;
}
.analyzer-execution-panel .stake-presets{ display:flex !important; flex-wrap:wrap; gap:5px; margin:0; }
.analyzer-execution-panel .stake-presets > *{
  flex:1 1 auto; min-width:0; min-height:26px !important;
  padding:2px 8px !important; font-size:11px !important; border-radius:7px;
}
/* the tiny UPPERCASE field caption shouldn't reserve big line-height */
.analyzer-execution-panel label{ line-height:1.25; }
/* tighter still — the field caption sits INLINE to the left of the input (one trim
   row: "STAKE [____]"), and the aux control (Best pair / presets) wraps compactly
   below only when present. Gets fields to ~72-80px without losing any control. */
.analyzer-execution-panel label{ display:flex !important; flex-wrap:wrap; align-items:center; gap:4px 7px !important; }
.analyzer-execution-panel label > select,
.analyzer-execution-panel label > input{ flex:1 1 120px; }
.analyzer-execution-panel label > .btn-find-pair,
.analyzer-execution-panel label > .stake-presets{ flex:1 1 100%; }
/* ══════════════════════════════════════════════════════════════════════════
   🎛 VERTICAL ORB RAIL (workstation deck) + ANALYZER COLOUR SIGNATURES v2
   Orbs become a beautiful vertical instrument rail: 54px medallion, name +
   role beside it, per-analyzer accent bar, live "summoned" state. Cards get a
   cinematic per-analyzer colour wash driven by their existing --sig-c. All
   static gradients — zero new animations/filters, so it stays butter-smooth
   on Mac/iOS/Android/PC. ══════════════════════════════════════════════════ */
@media (min-width: 1000px){
  /* ══ VERTICAL ORB RAIL v3 (2026-07-09) — the WHOLE ROW is the <button>, so a
     tap anywhere (sphere, name, role) opens the analyzer (fixes touch); the
     sphere is a ::before and the text flows in a 2-col grid — nothing is
     absolutely positioned out of the button, so hover can't shift the words. */
  #view-console.ws-split .ws-left .orbs{ display:grid !important; grid-template-columns:1fr !important; gap:9px !important; }
  #view-console.ws-split .ws-left .orb-cell{ display:contents !important; }
  #view-console.ws-split .ws-left .orb{
    --oc:#7da2ff;
    position:relative !important; overflow:visible !important;
    aspect-ratio:auto !important;                 /* base .orb has aspect-ratio:1 → full-width row would force a 383px-tall square */
    width:100% !important; max-width:none !important; min-width:0 !important;
    height:auto !important; min-height:70px !important; max-height:76px !important; margin:0 !important;
    display:grid !important;
    grid-template-columns:56px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:13px !important; row-gap:1px !important;
    align-content:center !important; justify-items:start !important;
    padding:8px 16px 8px 15px !important;
    border-radius:15px !important;
    background:linear-gradient(135deg, rgba(255,255,255,.05), rgba(6,10,20,.55)) !important;
    border:1px solid rgba(184,204,238,.11) !important;
    box-shadow:0 10px 26px -18px rgba(0,0,0,.8) !important;
    transition:transform .16s ease, border-color .16s ease, filter .16s ease !important;
    text-align:left !important; cursor:pointer;
  }
  /* per-analyzer accent (class is on the button itself) */
  #view-console.ws-split .ws-left .orb.orb-resonance{ --oc:#2ee86f; }
  #view-console.ws-split .ws-left .orb.orb-cascade{ --oc:#ffc21a; }
  #view-console.ws-split .ws-left .orb.orb-streak{ --oc:#00e6a8; }
  #view-console.ws-split .ws-left .orb.orb-echo{ --oc:#22c4ee; }
  #view-console.ws-split .ws-left .orb.orb-horizon{ --oc:#12e0c4; }
  #view-console.ws-split .ws-left .orb.orb-stillpoint{ --oc:#ff8a1e; }
  #view-console.ws-split .ws-left .orb.orb-vanilla{ --oc:#c2e82e; }
  #view-console.ws-split .ws-left .orb.orb-evenodd{ --oc:#4d8dff; }
  /* the glass SPHERE — a real 52px marble, spans both text rows */
  #view-console.ws-split .ws-left .orb::before{
    content:"" !important; display:block !important;
    grid-column:1 !important; grid-row:1 / 3 !important; align-self:center !important; justify-self:center !important;
    width:52px !important; height:52px !important; border-radius:50% !important;
    background:
      radial-gradient(34% 30% at 32% 24%, rgba(255,255,255,.95), rgba(255,255,255,0) 60%),
      radial-gradient(60% 54% at 66% 80%, rgba(0,0,0,.6), transparent 74%),
      radial-gradient(90% 90% at 50% 60%, color-mix(in srgb, var(--oc) 66%, #071120), transparent 92%),
      radial-gradient(130% 130% at 50% 36%, color-mix(in srgb, var(--oc) 36%, #0a1526), #04090f 82%) !important;
    border:1px solid color-mix(in srgb, var(--oc) 60%, rgba(255,255,255,.18)) !important;
    box-shadow:
      inset 0 -8px 14px -6px rgba(0,0,0,.85),
      inset 0 6px 10px -4px color-mix(in srgb, var(--oc) 45%, transparent),
      0 6px 16px -6px color-mix(in srgb, var(--oc) 60%, transparent) !important;
    margin:0 !important; position:static !important; opacity:1 !important; animation:none !important; top:auto !important; left:auto !important;
  }
  /* left accent bar */
  #view-console.ws-split .ws-left .orb::after{
    content:"" !important; display:block !important;
    position:absolute !important; left:0 !important; top:18% !important; bottom:18% !important; right:auto !important;
    width:3px !important; height:auto !important; border-radius:99px !important;
    background:var(--oc) !important; box-shadow:0 0 12px -2px var(--oc) !important;
    opacity:1 !important; animation:none !important; margin:0 !important;
  }
  #view-console.ws-split .ws-left .orb .orb-glow{ display:none !important; }
  /* NAME + ROLE flow naturally in column 2 — static, never move on hover */
  #view-console.ws-split .ws-left .orb .orb-label{
    grid-column:2 !important; grid-row:1 !important;
    position:static !important; align-self:end !important; justify-self:start !important;
    width:auto !important; height:auto !important; inset:auto !important; margin:0 !important;
    display:block !important; text-align:left !important;
    font-size:12.5px !important; font-weight:700 !important; letter-spacing:.05em !important;
    line-height:1.15 !important; color:#eef4ff !important;
    text-shadow:0 0 14px color-mix(in srgb, var(--oc) 38%, transparent) !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
  }
  #view-console.ws-split .ws-left .orb .orb-desc{
    grid-column:2 !important; grid-row:2 !important;
    position:static !important; align-self:start !important; justify-self:start !important;
    width:auto !important; max-width:100% !important; inset:auto !important; margin:0 !important;
    text-align:left !important; font-size:10px !important; color:#93a5c6 !important; letter-spacing:.02em !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
  }
  /* video/social badge docks ON the sphere (lower-right), like an app badge */
  #view-console.ws-split .ws-left .orb .orb-video-badge{
    position:absolute !important; left:43px !important; right:auto !important; top:auto !important; bottom:13px !important;
    transform:none !important; margin:0 !important;
    width:21px !important; height:21px !important; font-size:11px !important;
    box-shadow:0 0 0 2px rgba(5,10,18,.95), 0 3px 8px rgba(0,0,0,.55) !important; z-index:4 !important;
  }
  #view-console.ws-split .ws-left .orb .orb-admin-badge{
    position:absolute !important; right:12px !important; top:9px !important; left:auto !important; bottom:auto !important;
  }
  /* hover — row brightens + slides; NOTHING scales, so text never glitches */
  #view-console.ws-split .ws-left .orb:hover{
    transform:translateX(3px) !important;
    border-color:color-mix(in srgb, var(--oc) 55%, rgba(184,204,238,.12)) !important;
    filter:brightness(1.06) !important;
  }
  #view-console.ws-split .ws-left .orb .orb-video-badge:hover{ transform:scale(1.16) !important; }
  /* ACTIVE (analyzer open) */
  #view-console.ws-split .ws-left .orb.summoned,
  #view-console.ws-split .ws-left .orb.active{
    border-color:color-mix(in srgb, var(--oc) 62%, transparent) !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 12%, rgba(255,255,255,.05)), rgba(6,10,20,.62)) !important;
    box-shadow:0 12px 30px -16px color-mix(in srgb, var(--oc) 55%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--oc) 22%, transparent) !important;
  }
}

/* ══ ANALYZER COLOUR SIGNATURES — every card carries its analyzer's colour as a
   cinematic top wash + luminous top hairline + signature depth shadow. ══ */
.analyzer[data-analyzer].analyzer-themed{
  background-image:
    radial-gradient(130% 82% at 50% -12%, color-mix(in srgb, var(--sig-c, #7da2ff) 15%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent 30%) !important;
  border-top:1.5px solid color-mix(in srgb, var(--sig-c, #7da2ff) 55%, transparent) !important;
  box-shadow:
    0 26px 74px -44px color-mix(in srgb, var(--sig-c, #7da2ff) 60%, transparent),
    0 18px 60px -30px rgba(0,0,0,.75) !important;
}
.analyzer[data-analyzer].analyzer-themed > header{
  text-shadow:0 0 22px color-mix(in srgb, var(--sig-c, #7da2ff) 30%, transparent);
}
/* ══════════════════════════════════════════════════════════════════════════
   💎 PRISM FACETS + SPHERE ORBS + UNIFIED PANEL CHROME (2026-07-08)
   1) The rotating colour sweeps over the cards (cardLive/cardBreath/gmHudScan)
      are RETIRED — they read as glitchy colour spinning. Replaced with a
      static "prismatic facet" crown: light caught in cut glass at the card's
      top corners, in the analyzer's own colour. Zero per-frame cost.
   2) Rail orbs become physical glass spheres: specular highlight, colour core,
      bottom occlusion, rim light.
   3) Utility panels share one quiet, analyzer-tinted chrome — no more box noise.
   ══════════════════════════════════════════════════════════════════════════ */
.analyzer[data-analyzer]{ animation:none !important; }
.analyzer[data-analyzer]::after{ animation:none !important; opacity:0 !important; }
.analyzer[data-analyzer] > header::after{ animation:none !important; opacity:0 !important; }

.analyzer[data-analyzer].analyzer-themed{
  background-image:
    conic-gradient(from 214deg at 0% 0%, transparent 0deg, color-mix(in srgb, var(--sig-c, #7da2ff) 30%, transparent) 16deg, transparent 50deg),
    conic-gradient(from 96deg at 100% 0%, transparent 0deg, color-mix(in srgb, var(--sig-c, #7da2ff) 24%, transparent) 14deg, transparent 44deg),
    radial-gradient(130% 82% at 50% -12%, color-mix(in srgb, var(--sig-c, #7da2ff) 13%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent 30%) !important;
}

/* utility panels: one calm, analyzer-tinted chrome */
.analyzer[data-analyzer] > .neural-edge-pulse,
.analyzer[data-analyzer] > .analyzer-execution-panel,
.analyzer[data-analyzer] > .digit-tick-scan-panel,
.analyzer[data-analyzer] > .digit-live-feed,
.analyzer[data-analyzer] > .digit-edge-panel,
.analyzer[data-analyzer] > .smart-feature-strip,
.analyzer[data-analyzer] > .edge-stack,
.analyzer[data-analyzer] > .orb-cooldown-card,
.analyzer[data-analyzer] > .quick-speed-panel,
.analyzer[data-analyzer] > .reinvest-panel,
.analyzer[data-analyzer] > .skilli-speed-card,
.analyzer[data-analyzer] > .analyzer-signature{
  background:linear-gradient(180deg, rgba(255,255,255,.028), rgba(5,9,18,.55)) !important;
  border:1px solid color-mix(in srgb, var(--sig-c, #7da2ff) 16%, rgba(184,204,238,.09)) !important;
  border-radius:13px !important;
  box-shadow:none !important;
}

/* (sphere is now drawn as .orb::before inside the RAIL v3 block above — the old
   full-button gradient would fill the whole row, so it is intentionally removed) */
/* signature panel: meter flexes, tagline wraps to its own row — never clips */
.analyzer[data-analyzer] > .analyzer-signature{ grid-template-columns:minmax(0,1fr) auto !important; }
.analyzer[data-analyzer] > .analyzer-signature > *{ min-width:0; max-width:100%; }
.analyzer[data-analyzer] > .analyzer-signature .sig-meter{ width:auto !important; }
.analyzer[data-analyzer] > .analyzer-signature .sig-tagline{ grid-column:1 / -1; white-space:normal; }
/* signature: force single-column stack — immune to implicit-track overflow */
.analyzer[data-analyzer] > .analyzer-signature{ grid-template-columns:minmax(0,1fr) !important; }
.analyzer[data-analyzer] > .analyzer-signature > *{ grid-column:1 / -1 !important; justify-self:start; max-width:100% !important; }
/* the signature's decorative shimmer strip was hard-sized to the OLD full-card
   width (1554px) — cap it to its panel so nothing overflows, visible or not */
.analyzer[data-analyzer] > .analyzer-signature::before{ width:100% !important; max-width:100% !important; left:0 !important; }
/* rail mode: hide only the legacy halo element (::before is the sphere, ::after
   the accent bar — both defined in the RAIL v3 block, so do NOT null them here) */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left .orb-cell > .orb-glow,
  #view-console.ws-split .ws-left .orb .orb-glow{ display:none !important; }
}
/* an orb with no admin-set tutorial URL must show NO badge (respect [hidden]) */
.orb-video-badge[hidden], .orb-admin-badge[hidden]{ display:none !important; }
/* (hover + badge placement are folded into the RAIL v3 block above) */
/* ══ CUSTOM COMPACT DROPDOWN (vertical workstation only) — replaces the native
   <select> popup (un-stylable, oversized, clipped/overlapped by cards) with a
   controlled, scrollable panel floated ABOVE everything at body level. Driven by
   SkilliSelect in aether.js. ══ */
.skilli-select-pop{
  position:fixed; z-index:4000; box-sizing:border-box;
  min-width:200px; max-width:min(92vw, 460px);
  padding:5px; border-radius:13px;
  display:flex; flex-direction:column; gap:2px;
  border:1px solid color-mix(in srgb, var(--sig-c, #59f2ff) 34%, rgba(184,204,238,.22));
  background:linear-gradient(180deg, rgba(15,21,36,.99), rgba(8,12,22,.995));
  box-shadow:0 30px 70px -26px rgba(0,0,0,.92), 0 0 0 1px rgba(0,0,0,.5), 0 0 34px -14px color-mix(in srgb, var(--sig-c, #59f2ff) 40%, transparent);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
  animation:sspIn .13s ease-out;
}
@keyframes sspIn{ from{ opacity:0; transform:translateY(-5px) scale(.99); } to{ opacity:1; transform:none; } }
.skilli-select-pop::-webkit-scrollbar{ width:9px; }
.skilli-select-pop::-webkit-scrollbar-thumb{ background:color-mix(in srgb, var(--sig-c,#59f2ff) 34%, #4a5568); border-radius:8px; border:2px solid transparent; background-clip:content-box; }
.ssp-group{
  position:sticky; top:-5px; z-index:1;
  font-size:9.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#8fa0bd;
  padding:8px 9px 4px; margin:0 -5px;
  background:linear-gradient(180deg, rgba(15,21,36,.99), rgba(15,21,36,.84));
}
.ssp-item{
  appearance:none; -webkit-appearance:none; box-sizing:border-box; width:100%;
  border:1px solid transparent; background:transparent; text-align:left; cursor:pointer;
  font-family:inherit; font-size:12px; font-weight:600; color:#e2eaf6;
  padding:9px 11px; border-radius:9px; line-height:1.25;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:background .12s ease, border-color .12s ease, transform .1s ease;
}
.ssp-item:hover{ background:rgba(230,233,242,.08); border-color:rgba(230,233,242,.18); transform:translateX(2px); }
.ssp-item.is-sel{
  background:color-mix(in srgb, var(--sig-c,#59f2ff) 18%, rgba(10,16,28,.55));
  border-color:color-mix(in srgb, var(--sig-c,#59f2ff) 50%, transparent);
  color:#fff; font-weight:800;
}
.ssp-item.is-sel::after{ content:"\2713"; float:right; color:var(--sig-c,#59f2ff); font-weight:900; margin-left:8px; }
/* the trigger while its custom panel is open (all layouts, incl. mobile) */
.analyzer[data-analyzer] select.ss-open{
  border-color:color-mix(in srgb, var(--sig-c,#59f2ff) 60%, transparent) !important;
  box-shadow:0 0 0 2px color-mix(in srgb, var(--sig-c,#59f2ff) 22%, transparent) !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   🃏 VERTICAL ORB CARDS (2026-07-10) — upgrade the rail ROWS into full, elevated
   analyzer CARDS: bigger vivid glass sphere, bold name + role, colour-tinted
   glass body, thicker accent bar, hover lift, and a vivid ACTIVE state. Layered
   over the RAIL v3 block; split-scoped so phones keep the gallery. ══════════ */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left .orbs{ gap:11px !important; }
  #view-console.ws-split .ws-left .orb{
    min-height:94px !important; max-height:none !important;
    grid-template-columns:66px minmax(0,1fr) !important;
    column-gap:15px !important; padding:14px 17px 14px 18px !important;
    border-radius:18px !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 13%, rgba(255,255,255,.05)), rgba(6,10,20,.64)) !important;
    border:1px solid color-mix(in srgb, var(--oc) 24%, rgba(184,204,238,.12)) !important;
    box-shadow:0 18px 36px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.045) !important;
    transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
  }
  /* bigger, more vivid glass sphere */
  #view-console.ws-split .ws-left .orb::before{
    width:62px !important; height:62px !important;
    box-shadow:
      inset 0 -10px 17px -6px rgba(0,0,0,.85),
      inset 0 8px 13px -4px color-mix(in srgb, var(--oc) 55%, transparent),
      0 9px 22px -6px color-mix(in srgb, var(--oc) 70%, transparent) !important;
  }
  /* thicker accent bar */
  #view-console.ws-split .ws-left .orb::after{ width:4px !important; top:15% !important; bottom:15% !important; }
  /* bold analyzer name + clear role subtitle */
  #view-console.ws-split .ws-left .orb .orb-label{
    font-size:14.5px !important; font-weight:800 !important; letter-spacing:.03em !important;
    color:#f3f8ff !important; align-self:end !important;
    text-shadow:0 0 16px color-mix(in srgb, var(--oc) 42%, transparent) !important;
  }
  #view-console.ws-split .ws-left .orb .orb-desc{
    font-size:10.5px !important; color:#9db0cf !important; align-self:start !important; margin-top:3px !important; font-weight:600 !important;
  }
  /* badge sits on the bigger sphere */
  #view-console.ws-split .ws-left .orb .orb-video-badge{ left:47px !important; bottom:15px !important; }
  /* hover: lift the card + colour glow */
  #view-console.ws-split .ws-left .orb:hover{
    transform:translateY(-3px) !important;
    border-color:color-mix(in srgb, var(--oc) 58%, transparent) !important;
    box-shadow:0 26px 48px -20px color-mix(in srgb, var(--oc) 48%, rgba(0,0,0,.9)), inset 0 1px 0 rgba(255,255,255,.07) !important;
    filter:none !important;
  }
  /* ACTIVE (summoned) — vivid filled colour card + ring */
  #view-console.ws-split .ws-left .orb.summoned,
  #view-console.ws-split .ws-left .orb.active{
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 28%, rgba(10,16,28,.62)), rgba(6,10,20,.72)) !important;
    border-color:color-mix(in srgb, var(--oc) 72%, transparent) !important;
    box-shadow:0 24px 46px -18px color-mix(in srgb, var(--oc) 62%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--oc) 36%, transparent) !important;
  }
  #view-console.ws-split .ws-left .orb.summoned .orb-label,
  #view-console.ws-split .ws-left .orb.active .orb-label{ color:#fff !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   PHONE ORB CARDS v2 (2026-07-10) — elevated vertical analyzer cards for the
   single-column phone layout. Here .orb-desc (role) is a SIBLING of the .orb
   button inside .orb-cell, so the CELL is the card: it holds the sphere+name
   button on top and the role line beneath. Split-scoped OFF (<1000px only).
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 999px){
  #view-console .orb-gallery .orbs{ display:grid !important; grid-template-columns:1fr !important; gap:10px !important; }
  #view-console .orb-gallery .orb-cell{
    --oc:#7da2ff;
    display:flex !important; flex-direction:column !important; gap:4px !important;
    min-height:90px !important; padding:14px 17px !important; position:relative !important; overflow:visible !important;
    border-radius:17px !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 13%, rgba(255,255,255,.05)), rgba(6,10,20,.64)) !important;
    border:1px solid color-mix(in srgb, var(--oc) 24%, rgba(184,204,238,.12)) !important;
    box-shadow:0 16px 32px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.045) !important;
  }
  #view-console .orb-gallery .orb-cell:has(.orb-resonance){ --oc:#2ee86f; }
  #view-console .orb-gallery .orb-cell:has(.orb-cascade){ --oc:#ffc21a; }
  #view-console .orb-gallery .orb-cell:has(.orb-streak){ --oc:#00e6a8; }
  #view-console .orb-gallery .orb-cell:has(.orb-echo){ --oc:#22c4ee; }
  #view-console .orb-gallery .orb-cell:has(.orb-horizon){ --oc:#12e0c4; }
  #view-console .orb-gallery .orb-cell:has(.orb-stillpoint){ --oc:#ff8a1e; }
  #view-console .orb-gallery .orb-cell:has(.orb-vanilla){ --oc:#c2e82e; }
  #view-console .orb-gallery .orb-cell:has(.orb-evenodd){ --oc:#4d8dff; }
  /* left accent bar on the card */
  #view-console .orb-gallery .orb-cell::before{
    content:"" !important; position:absolute !important; left:0 !important; top:16% !important; bottom:16% !important;
    width:4px !important; border-radius:99px !important; background:var(--oc) !important; box-shadow:0 0 12px -2px var(--oc) !important; z-index:1 !important;
  }
  /* the orb BUTTON = sphere + name row (transparent; card visuals live on the cell) */
  #view-console .orb-gallery .orb{
    display:grid !important; grid-template-columns:58px minmax(0,1fr) !important; align-items:center !important; column-gap:14px !important;
    width:100% !important; max-width:none !important; min-width:0 !important; min-height:0 !important; height:auto !important;
    aspect-ratio:auto !important; position:static !important; overflow:visible !important; margin:0 !important;
    background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; border-radius:0 !important;
    text-align:left !important; cursor:pointer;
  }
  #view-console .orb-gallery .orb::before{
    content:"" !important; display:block !important; grid-column:1 !important; justify-self:center !important;
    width:56px !important; height:56px !important; border-radius:50% !important;
    background:
      radial-gradient(34% 30% at 32% 24%, rgba(255,255,255,.95), rgba(255,255,255,0) 60%),
      radial-gradient(60% 54% at 66% 80%, rgba(0,0,0,.6), transparent 74%),
      radial-gradient(90% 90% at 50% 60%, color-mix(in srgb, var(--oc) 66%, #071120), transparent 92%),
      radial-gradient(130% 130% at 50% 36%, color-mix(in srgb, var(--oc) 36%, #0a1526), #04090f 82%) !important;
    border:1px solid color-mix(in srgb, var(--oc) 60%, rgba(255,255,255,.18)) !important;
    box-shadow:inset 0 -9px 15px -6px rgba(0,0,0,.85), inset 0 7px 12px -4px color-mix(in srgb, var(--oc) 50%, transparent), 0 8px 20px -6px color-mix(in srgb, var(--oc) 65%, transparent) !important;
    margin:0 !important; position:static !important; opacity:1 !important; animation:none !important; top:auto !important; left:auto !important;
  }
  #view-console .orb-gallery .orb::after{ display:none !important; content:none !important; }
  #view-console .orb-gallery .orb .orb-glow{ display:none !important; }
  #view-console .orb-gallery .orb .orb-label{
    grid-column:2 !important; position:static !important; inset:auto !important; margin:0 !important; width:auto !important; height:auto !important;
    display:block !important; text-align:left !important; font-size:14.5px !important; font-weight:800 !important; letter-spacing:.03em !important; line-height:1.15 !important;
    color:#f3f8ff !important; text-shadow:0 0 15px color-mix(in srgb, var(--oc) 40%, transparent) !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
  }
  /* role caption — under the name, aligned past the sphere */
  #view-console .orb-gallery .orb-cell > .orb-desc{
    position:static !important; margin:0 !important; padding-left:72px !important; text-align:left !important; align-self:auto !important;
    font-size:10.5px !important; font-weight:600 !important; color:#9db0cf !important; letter-spacing:.02em !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
  }
  /* badges sit on the sphere (cell is the positioned ancestor) */
  #view-console .orb-gallery .orb-cell .orb-video-badge{
    position:absolute !important; left:50px !important; top:46px !important; right:auto !important; bottom:auto !important;
    transform:none !important; margin:0 !important; width:21px !important; height:21px !important; font-size:11px !important;
    box-shadow:0 0 0 2px rgba(5,10,18,.95), 0 3px 8px rgba(0,0,0,.55) !important; z-index:4 !important;
  }
  #view-console .orb-gallery .orb-cell .orb-admin-badge{ position:absolute !important; right:12px !important; top:11px !important; left:auto !important; bottom:auto !important; }
  /* ACTIVE card */
  #view-console .orb-gallery .orb-cell:has(.orb.summoned),
  #view-console .orb-gallery .orb-cell:has(.orb.active){
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 27%, rgba(10,16,28,.62)), rgba(6,10,20,.72)) !important;
    border-color:color-mix(in srgb, var(--oc) 70%, transparent) !important;
    box-shadow:0 22px 44px -18px color-mix(in srgb, var(--oc) 60%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--oc) 34%, transparent) !important;
  }
  #view-console .orb-gallery .orb-cell:has(.orb.summoned) .orb-label,
  #view-console .orb-gallery .orb-cell:has(.orb.active) .orb-label{ color:#fff !important; }
}
/* ══════════════════════════════════════════════════════════════════════════
   DESKTOP RAIL — cell-as-card fix (2026-07-10). The role text (.orb-desc) is a
   SIBLING of the .orb button inside .orb-cell, so the earlier display:contents +
   orb-as-card approach left the role as a stray centered row below each card.
   Make the CELL the card (button = sphere+name on top, role beneath). Placed
   last + high specificity + !important so it wins over RAIL v3 / ORB CARDS.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 1000px){
  #view-console.ws-split .ws-left .orb-cell{
    --oc:#7da2ff;
    display:flex !important; flex-direction:column !important; gap:4px !important;
    min-height:94px !important; padding:14px 18px !important; position:relative !important; overflow:visible !important;
    border-radius:18px !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 13%, rgba(255,255,255,.05)), rgba(6,10,20,.64)) !important;
    border:1px solid color-mix(in srgb, var(--oc) 24%, rgba(184,204,238,.12)) !important;
    box-shadow:0 18px 36px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.045) !important;
    transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
  }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-resonance){ --oc:#2ee86f; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-cascade){ --oc:#ffc21a; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-streak){ --oc:#00e6a8; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-echo){ --oc:#22c4ee; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-horizon){ --oc:#12e0c4; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-stillpoint){ --oc:#ff8a1e; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-vanilla){ --oc:#c2e82e; }
  #view-console.ws-split .ws-left .orb-cell:has(.orb-evenodd){ --oc:#4d8dff; }
  #view-console.ws-split .ws-left .orb-cell::before{
    content:"" !important; position:absolute !important; left:0 !important; top:15% !important; bottom:15% !important;
    width:4px !important; border-radius:99px !important; background:var(--oc) !important; box-shadow:0 0 12px -2px var(--oc) !important; z-index:1 !important;
  }
  #view-console.ws-split .ws-left .orb{
    display:grid !important; grid-template-columns:60px minmax(0,1fr) !important; align-items:center !important; column-gap:15px !important;
    width:100% !important; max-width:none !important; min-width:0 !important; min-height:0 !important; height:auto !important; aspect-ratio:auto !important;
    position:static !important; overflow:visible !important; margin:0 !important;
    background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; border-radius:0 !important; cursor:pointer;
  }
  #view-console.ws-split .ws-left .orb::before{
    content:"" !important; display:block !important; grid-column:1 !important; justify-self:center !important;
    width:60px !important; height:60px !important; border-radius:50% !important;
    background:
      radial-gradient(34% 30% at 32% 24%, rgba(255,255,255,.95), rgba(255,255,255,0) 60%),
      radial-gradient(60% 54% at 66% 80%, rgba(0,0,0,.6), transparent 74%),
      radial-gradient(90% 90% at 50% 60%, color-mix(in srgb, var(--oc) 66%, #071120), transparent 92%),
      radial-gradient(130% 130% at 50% 36%, color-mix(in srgb, var(--oc) 36%, #0a1526), #04090f 82%) !important;
    border:1px solid color-mix(in srgb, var(--oc) 60%, rgba(255,255,255,.18)) !important;
    box-shadow:inset 0 -10px 17px -6px rgba(0,0,0,.85), inset 0 8px 13px -4px color-mix(in srgb, var(--oc) 52%, transparent), 0 9px 22px -6px color-mix(in srgb, var(--oc) 68%, transparent) !important;
    margin:0 !important; position:static !important; opacity:1 !important; animation:none !important; top:auto !important; left:auto !important;
  }
  #view-console.ws-split .ws-left .orb::after{ display:none !important; content:none !important; }
  #view-console.ws-split .ws-left .orb .orb-glow{ display:none !important; }
  #view-console.ws-split .ws-left .orb .orb-label{
    grid-column:2 !important; position:static !important; inset:auto !important; margin:0 !important; width:auto !important; height:auto !important;
    display:block !important; text-align:left !important; font-size:14.5px !important; font-weight:800 !important; letter-spacing:.03em !important; line-height:1.15 !important;
    color:#f3f8ff !important; text-shadow:0 0 15px color-mix(in srgb, var(--oc) 40%, transparent) !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
  }
  #view-console.ws-split .ws-left .orb-cell > .orb-desc{
    position:static !important; margin:0 !important; padding-left:75px !important; text-align:left !important; align-self:auto !important;
    font-size:10.5px !important; font-weight:600 !important; color:#9db0cf !important; letter-spacing:.02em !important;
    white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
  }
  #view-console.ws-split .ws-left .orb-cell .orb-video-badge{
    position:absolute !important; left:53px !important; top:47px !important; right:auto !important; bottom:auto !important;
    transform:none !important; margin:0 !important; width:21px !important; height:21px !important; font-size:11px !important;
    box-shadow:0 0 0 2px rgba(5,10,18,.95), 0 3px 8px rgba(0,0,0,.55) !important; z-index:4 !important;
  }
  #view-console.ws-split .ws-left .orb-cell .orb-admin-badge{ position:absolute !important; right:12px !important; top:11px !important; left:auto !important; bottom:auto !important; }
  #view-console.ws-split .ws-left .orb:hover{ transform:none !important; filter:none !important; }
  #view-console.ws-split .ws-left .orb-cell:hover{
    transform:translateY(-3px) !important;
    border-color:color-mix(in srgb, var(--oc) 58%, transparent) !important;
    box-shadow:0 26px 48px -20px color-mix(in srgb, var(--oc) 48%, rgba(0,0,0,.9)), inset 0 1px 0 rgba(255,255,255,.07) !important;
  }
  #view-console.ws-split .ws-left .orb-cell:has(.orb.summoned),
  #view-console.ws-split .ws-left .orb-cell:has(.orb.active){
    background:linear-gradient(135deg, color-mix(in srgb, var(--oc) 28%, rgba(10,16,28,.62)), rgba(6,10,20,.72)) !important;
    border-color:color-mix(in srgb, var(--oc) 72%, transparent) !important;
    box-shadow:0 24px 46px -18px color-mix(in srgb, var(--oc) 62%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--oc) 36%, transparent) !important;
  }
  #view-console.ws-split .ws-left .orb-cell:has(.orb.summoned) .orb-label,
  #view-console.ws-split .ws-left .orb-cell:has(.orb.active) .orb-label{ color:#fff !important; }
}
/* ══ DIGIT VISIBILITY DURING EXECUTION (2026-07-10) ══
   Parity Genesis: the slide-up execution dock (absolute bottom:0 of #genesis,
   ~281px tall) used to COVER most of the digit grid, so the user couldn't watch
   the live digit while confirming. Pad the container while the dock is open so
   the whole grid sits ABOVE the dock — clear view, no obscuring. */
#genesis{ transition:padding-bottom .34s cubic-bezier(.2,.9,.3,1.05); }
#genesis:has(.genesis-dock[data-open="1"]){ padding-bottom:230px; }
/* ══════════════════════════════════════════════════════════════════════════
   ✦✦ TRADE-TYPE SELECTION CARDS — GENERATIONAL (2026-07-10) ✦✦
   Elevates BOTH the phone gallery AND the big-screen rail (both render as
   .orb-gallery .orbs .orb-cell). Cut-glass depth, a diagonal light-sweep on
   hover, an orbital-glow sphere, a luminous name gradient, and a radiant
   ACTIVE state. Static gradients + one transform → butter-smooth on every
   device. Selector uses `.orbs` for (1,3,0) specificity so it wins in both
   layouts; appended last so it beats the base cell-as-card blocks.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .orb-gallery .orbs .orb-cell{
  position:relative !important; overflow:hidden !important; isolation:isolate;
  background:
    radial-gradient(135% 105% at 0% 0%, color-mix(in srgb, var(--oc) 22%, transparent), transparent 58%),
    linear-gradient(158deg, color-mix(in srgb, var(--oc) 9%, rgba(255,255,255,.05)), rgba(6,10,20,.72)) !important;
  border:1px solid color-mix(in srgb, var(--oc) 30%, rgba(184,204,238,.10)) !important;
  box-shadow:
    0 24px 46px -26px color-mix(in srgb, var(--oc) 44%, rgba(0,0,0,.9)),
    0 6px 16px -12px rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,255,255,.09) !important;
}
/* accent rail → glowing gradient */
#view-console .orb-gallery .orbs .orb-cell::before{
  width:4px !important; top:13% !important; bottom:13% !important; border-radius:99px !important;
  background:linear-gradient(180deg, color-mix(in srgb, var(--oc) 92%, #fff), var(--oc) 45%, color-mix(in srgb, var(--oc) 45%, transparent)) !important;
  box-shadow:0 0 15px -1px var(--oc), 0 0 5px var(--oc) !important;
}
/* diagonal LIGHT-SWEEP on hover */
#view-console .orb-gallery .orbs .orb-cell::after{
  content:"" !important; position:absolute !important; inset:0 !important; z-index:3 !important; pointer-events:none !important;
  display:block !important; opacity:1 !important; width:auto !important; height:auto !important;
  background:linear-gradient(115deg, transparent 33%, rgba(255,255,255,.15) 48%, rgba(255,255,255,.03) 55%, transparent 68%) !important;
  transform:translateX(-135%); transition:transform .7s cubic-bezier(.4,0,.2,1); animation:none !important;
}
#view-console .orb-gallery .orbs .orb-cell:hover::after{ transform:translateX(135%); }
/* SPHERE — rim ring + orbital halo + deeper specular */
#view-console .orb-gallery .orbs .orb::before{
  box-shadow:
    inset 0 -9px 15px -6px rgba(0,0,0,.9),
    inset 0 8px 13px -4px color-mix(in srgb, var(--oc) 62%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 55%, rgba(255,255,255,.5)),
    0 0 0 4px color-mix(in srgb, var(--oc) 12%, transparent),
    0 10px 28px -6px color-mix(in srgb, var(--oc) 74%, transparent) !important;
}
/* NAME — luminous gradient */
#view-console .orb-gallery .orbs .orb .orb-label{
  background:linear-gradient(180deg, #ffffff, color-mix(in srgb, var(--oc) 22%, #e9f0ff)) !important;
  -webkit-background-clip:text !important; background-clip:text !important; -webkit-text-fill-color:transparent !important; color:transparent !important;
}
/* RADIANT ACTIVE STATE */
#view-console .orb-gallery .orbs .orb-cell:has(.orb.summoned),
#view-console .orb-gallery .orbs .orb-cell:has(.orb.active){
  background:
    radial-gradient(135% 105% at 0% 0%, color-mix(in srgb, var(--oc) 42%, transparent), transparent 60%),
    linear-gradient(158deg, color-mix(in srgb, var(--oc) 26%, rgba(10,16,28,.6)), rgba(6,10,20,.8)) !important;
  border-color:color-mix(in srgb, var(--oc) 78%, transparent) !important;
  box-shadow:
    0 28px 52px -20px color-mix(in srgb, var(--oc) 70%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 48%, transparent),
    inset 0 0 44px -16px color-mix(in srgb, var(--oc) 85%, transparent) !important;
}
#view-console .orb-gallery .orbs .orb-cell:has(.orb.summoned) .orb-label,
#view-console .orb-gallery .orbs .orb-cell:has(.orb.active) .orb-label{ -webkit-text-fill-color:#fff !important; color:#fff !important; }
#view-console .orb-gallery .orbs .orb-cell:has(.orb.summoned) .orb::before,
#view-console .orb-gallery .orbs .orb-cell:has(.orb.active) .orb::before{
  box-shadow:
    inset 0 -8px 14px -6px rgba(0,0,0,.85),
    inset 0 9px 14px -4px color-mix(in srgb, var(--oc) 80%, transparent),
    inset 0 0 0 1.5px color-mix(in srgb, var(--oc) 75%, #fff),
    0 0 0 5px color-mix(in srgb, var(--oc) 20%, transparent),
    0 0 34px -2px color-mix(in srgb, var(--oc) 85%, transparent) !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   ◈ PRECISION ENTRY GATE (2026-07-10) — tells the user the EXACT tick to fire on
   Rise/Fall, Asians & Vanilla. Reads the live tape, requires a stable, confirmed
   edge (streak gate) before it turns green → far fewer noisy entries, higher win
   rate. Three states: WAIT (grey) · ARMING (amber) · 🔥 FIRE NOW (green, pulsing).
   ══════════════════════════════════════════════════════════════════════════ */
.pgate{ --pg:#8b93a8; display:flex; align-items:center; gap:13px; margin:12px 0 6px; padding:13px 15px; border-radius:16px;
  position:relative; overflow:hidden; border:1px solid color-mix(in srgb, var(--pg) 26%, rgba(255,255,255,.07));
  background:linear-gradient(160deg, color-mix(in srgb, var(--pg) 9%, rgba(255,255,255,.03)), rgba(6,10,20,.52));
  transition:border-color .3s ease, box-shadow .3s ease, background .3s ease; }
.pgate-orb{ width:40px; height:40px; flex:0 0 40px; border-radius:50%;
  background:radial-gradient(circle at 34% 28%, rgba(255,255,255,.5), transparent 58%), radial-gradient(circle at 52% 62%, var(--pg), #0a1018 92%);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--pg) 60%, transparent), 0 0 20px -4px var(--pg); }
.pgate-m{ flex:1 1 auto; min-width:0; }
.pgate-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pgate-kick{ font:800 9px/1 var(--font-display); letter-spacing:.16em; text-transform:uppercase; color:var(--pg); }
.pgate-conf{ font:900 15px/1 var(--font-display); color:#fff; letter-spacing:.01em; }
.pgate-status{ font:900 14px/1.18 var(--font-display); color:#eef4ff; margin:5px 0 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pgate-sub{ display:flex; align-items:center; gap:9px; min-width:0; }
.pgate-dots{ display:inline-flex; gap:4px; flex:0 0 auto; }
.pgate-dots i{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.15); transition:background .2s, box-shadow .2s; }
.pgate-dots i.on{ background:var(--pg); box-shadow:0 0 8px var(--pg); }
.pgate-note{ font:600 10.5px/1.3 var(--font-body); color:#94a3bd; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pgate[data-state="arm"]{ --pg:#ffc21a; box-shadow:0 0 32px -16px rgba(255,194,26,.65); }
.pgate[data-state="fire"]{ --pg:#2ee86f;
  border-color:color-mix(in srgb, var(--pg) 58%, transparent);
  background:linear-gradient(160deg, rgba(46,232,111,.15), rgba(6,10,20,.62));
  box-shadow:0 0 46px -10px rgba(46,232,111,.8), inset 0 0 26px -14px rgba(46,232,111,.85);
  animation:pgateFire 1.15s ease-in-out infinite; }
.pgate[data-state="fire"] .pgate-conf{ color:#8affc0; }
.pgate[data-state="fire"] .pgate-status{ color:#eafff1; }
@keyframes pgateFire{ 0%,100%{ box-shadow:0 0 44px -12px rgba(46,232,111,.72), inset 0 0 26px -14px rgba(46,232,111,.7); } 50%{ box-shadow:0 0 64px -6px rgba(46,232,111,.98), inset 0 0 30px -12px rgba(46,232,111,.95); } }
@media (prefers-reduced-motion:reduce){ .pgate[data-state="fire"]{ animation:none } }
/* is-scrolling shed already pauses this via the global animation-pause rule */
/* ══ ON-CHART ENTRY/EXIT SIGNAL (2026-07-10) — a live marker over the candlestick
   chart on Rise/Fall, Asians & Vanilla telling the user ENTER (with direction) or
   WAIT, plus the settle horizon. Driven by the confirmed-edge Precision engine. ══ */
.chart-sig{ position:absolute; top:9px; right:9px; z-index:4; display:flex; align-items:center; gap:9px; padding:6px 12px; border-radius:12px;
  --cg:#8b93a8; pointer-events:none; white-space:nowrap;
  background:linear-gradient(180deg, rgba(8,12,20,.92), rgba(8,12,20,.8)); border:1px solid color-mix(in srgb, var(--cg) 45%, transparent);
  box-shadow:0 10px 24px -12px rgba(0,0,0,.85); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); transition:border-color .25s, box-shadow .25s, background .25s; }
.chart-sig .cs-dir{ font-size:16px; line-height:1; color:var(--cg); text-shadow:0 0 10px color-mix(in srgb, var(--cg) 70%, transparent); }
.chart-sig .cs-tx{ display:flex; flex-direction:column; gap:2px; line-height:1; }
.chart-sig .cs-main{ font:900 11px/1 var(--font-display); letter-spacing:.04em; color:#eef4ff; }
.chart-sig .cs-exit{ font:600 8.5px/1 var(--font-body); font-style:normal; color:#9db0cf; letter-spacing:.02em; }
.chart-sig[data-state="arm"]{ --cg:#ffc21a; box-shadow:0 0 24px -12px rgba(255,194,26,.7); }
.chart-sig[data-state="fire"]{ --cg:#2ee86f; background:linear-gradient(180deg, rgba(10,26,18,.94), rgba(8,14,20,.85));
  box-shadow:0 0 30px -6px rgba(46,232,111,.75); animation:csFire 1.15s ease-in-out infinite; }
.chart-sig[data-state="fire"] .cs-main{ color:#eafff1; }
@keyframes csFire{ 0%,100%{ box-shadow:0 0 26px -8px rgba(46,232,111,.62) } 50%{ box-shadow:0 0 40px -4px rgba(46,232,111,.95) } }
@media (prefers-reduced-motion:reduce){ .chart-sig[data-state="fire"]{ animation:none } }
/* ═══════════════════════════════════════════════════════════════════════════
   ✦ PERFECTION PASS (2026-07-11) — floating ultra-glass win/loss cards, polished
   console cards, fully-readable dropdowns, and scroll-smooth glass. Appended
   last so it supersedes earlier iterations.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · DROPDOWNS — native option lists readable on every OS + FULL detail shown ── */
select option, select optgroup {
  background-color:#101828 !important; color:#e9eef8 !important;
}
select optgroup { color:#93a6c6 !important; font-weight:800 !important; font-style:normal !important; }
select option:checked, select option[selected] { background:#1c2b44 !important; color:#ffffff !important; font-weight:700 !important; }
/* SkilliSelect custom panel: show the WHOLE market name — no mid-name truncation */
.skilli-select-pop{ min-width:250px !important; padding:6px !important; }
.ssp-item{ white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.32 !important; padding:10px 12px !important; }
.ssp-item.is-sel::after{ float:none !important; margin-left:6px !important; }

/* ── 2 · WIN / LOSS CARDS — true floating liquid glass ── */
.journal-list{ gap:14px !important; }
.journal-list li.journal-trade-card{
  position:relative !important; border-radius:19px !important;
  backdrop-filter:blur(22px) saturate(1.7) brightness(1.06) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.7) brightness(1.06) !important;
  transition:transform .34s cubic-bezier(.2,.8,.2,1), box-shadow .34s ease !important;
}
.journal-list li.journal-trade-card.j-win{
  background:
    linear-gradient(158deg, rgba(46,213,115,.145), rgba(46,213,115,.02) 55%, rgba(255,255,255,.012) 100%),
    linear-gradient(200deg, rgba(255,255,255,.145), rgba(255,255,255,0) 42%) !important;
  border:1px solid rgba(120,240,175,.55) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30), inset 0 0 0 1px rgba(46,213,115,.12),
    inset 0 -18px 32px -24px rgba(46,213,115,.38),
    0 2px 5px rgba(0,0,0,.42), 0 16px 30px -14px rgba(0,0,0,.6),
    0 44px 76px -34px rgba(0,0,0,.82), 0 0 48px -20px rgba(46,213,115,.55) !important;
}
.journal-list li.journal-trade-card.j-loss{
  background:
    linear-gradient(158deg, rgba(255,91,106,.145), rgba(255,91,106,.02) 55%, rgba(255,255,255,.012) 100%),
    linear-gradient(200deg, rgba(255,255,255,.145), rgba(255,255,255,0) 42%) !important;
  border:1px solid rgba(255,140,150,.55) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30), inset 0 0 0 1px rgba(255,91,106,.12),
    inset 0 -18px 32px -24px rgba(255,91,106,.34),
    0 2px 5px rgba(0,0,0,.42), 0 16px 30px -14px rgba(0,0,0,.6),
    0 44px 76px -34px rgba(0,0,0,.82), 0 0 48px -20px rgba(255,91,106,.5) !important;
}
@media (hover:hover){
  .journal-list li.journal-trade-card:hover{ transform:translateY(-4px) scale(1.007) !important; z-index:3; }
  .journal-list li.journal-trade-card.j-win:hover{ box-shadow:
    inset 0 1px 0 rgba(255,255,255,.36), 0 5px 10px rgba(0,0,0,.42),
    0 28px 46px -16px rgba(0,0,0,.66), 0 64px 100px -40px rgba(0,0,0,.86),
    0 0 62px -18px rgba(46,213,115,.72) !important; }
  .journal-list li.journal-trade-card.j-loss:hover{ box-shadow:
    inset 0 1px 0 rgba(255,255,255,.36), 0 5px 10px rgba(0,0,0,.42),
    0 28px 46px -16px rgba(0,0,0,.66), 0 64px 100px -40px rgba(0,0,0,.86),
    0 0 62px -18px rgba(255,91,106,.66) !important; }
}

/* ── 3 · TRADING CONSOLE CARDS — polished floating glass (only the open card renders) ── */
#view-console .analyzer[data-analyzer]{
  backdrop-filter:blur(15px) saturate(1.28) !important;
  -webkit-backdrop-filter:blur(15px) saturate(1.28) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.15), inset 0 0 70px -46px rgba(255,255,255,.22),
    0 2px 6px rgba(0,0,0,.36), 0 22px 46px -20px rgba(0,0,0,.62),
    0 46px 96px -48px rgba(0,0,0,.82),
    0 26px 74px -40px color-mix(in srgb, var(--sig-c,#59f2ff) 30%, transparent) !important;
}

/* ── 4 · SCROLL-SMOOTH GLASS — drop the expensive backdrop recompute WHILE scrolling,
   snap it back the instant scrolling stops (kills the #1 source of glass-page jank) ── */
html.is-scrolling.gm-shed .journal-list li.journal-trade-card,
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer],
html.is-scrolling.gm-shed .market-ai-panel,
html.is-scrolling.gm-shed .skilli-select-pop{
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
@media (prefers-reduced-motion:reduce){
  .journal-list li.journal-trade-card{ transition:none !important; }
  .journal-list li.journal-trade-card:hover{ transform:none !important; }
}
/* ══ TICK PRECISION LADDER (2026-07-11) — Rise/Fall · Asians · Vanilla ══
   Models win probability at EVERY tick horizon 1-10 for the current tape + the
   analyzer's favored direction, so the user can enter at the precise horizon with
   the best edge. Renders only into the open card (perf-gated). */
.tpl-panel{ margin:11px 0 4px; padding:12px 13px; border-radius:15px; --tc:#59f2ff;
  background:linear-gradient(180deg, rgba(10,16,28,.62), rgba(10,16,28,.34));
  border:1px solid rgba(184,204,238,.15); box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.tpl-panel[data-dir="up"]{ --tc:#2ee88f; }
.tpl-panel[data-dir="down"]{ --tc:#ff6b78; }
.tpl-head{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.tpl-head .tpl-dir{ font-size:15px; line-height:1; color:var(--tc); text-shadow:0 0 10px color-mix(in srgb,var(--tc) 65%,transparent); }
.tpl-head b{ font:800 12px/1 var(--font-display); letter-spacing:.03em; color:#eef4ff; }
.tpl-head .tpl-sub{ font:700 9px/1 var(--font-body); font-style:normal; color:var(--tc); margin-left:auto; text-transform:uppercase; letter-spacing:.07em; }
.tpl-ladder{ display:grid; grid-template-columns:repeat(10,1fr); gap:5px; align-items:end; height:66px; }
.tpl-bar{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; border-radius:6px 6px 4px 4px;
  --bc:#5b6b86; background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0)); border:1px solid rgba(184,204,238,.1); transition:transform .15s; cursor:default; }
.tpl-bar::before{ content:""; position:absolute; left:2px; right:2px; bottom:0; height:var(--h,8%); min-height:5px; border-radius:5px;
  background:linear-gradient(180deg, var(--bc), color-mix(in srgb,var(--bc) 55%,transparent)); box-shadow:0 0 10px -3px var(--bc); transition:height .3s ease, background .3s; }
.tpl-bar[data-tier="hot"]{ --bc:#2ee88f; } .tpl-bar[data-tier="warm"]{ --bc:#ffc21a; } .tpl-bar[data-tier="ok"]{ --bc:#59a9ff; } .tpl-bar[data-tier="cool"]{ --bc:#5b6b86; }
.tpl-bar i{ position:relative; z-index:1; font:800 8.5px/1 var(--font-display); font-style:normal; color:#f2f6ff; margin-bottom:2px; }
.tpl-bar small{ position:relative; z-index:1; font:700 8px/1 var(--font-body); color:#93a4c2; padding-bottom:3px; }
.tpl-bar.is-sel{ outline:2px solid var(--tc); outline-offset:1px; transform:translateY(-2px); }
.tpl-bar.is-best::after{ content:"★"; position:absolute; top:-3px; font-size:10px; color:#ffd54a; text-shadow:0 0 6px rgba(255,213,74,.7); }
.tpl-foot{ display:flex; align-items:center; gap:11px; margin-top:10px; font:700 10px/1 var(--font-body); color:#c4cfe2; }
.tpl-foot b{ color:#f2f6ff; }
.tpl-best{ color:#ffd88a; }
.tpl-you.tpl-nudge{ color:#ffce7a; animation:tplNudge 1.5s ease-in-out infinite; }
@keyframes tplNudge{ 0%,100%{opacity:.62} 50%{opacity:1} }
.tpl-verdict{ margin-left:auto; padding:5px 12px; border-radius:999px; --vc:#8b93a8; white-space:nowrap;
  font:900 10px/1 var(--font-display); letter-spacing:.04em; color:#eef4ff;
  background:color-mix(in srgb,var(--vc) 17%,transparent); border:1px solid color-mix(in srgb,var(--vc) 46%,transparent); transition:.25s; }
.tpl-verdict[data-v="arm"]{ --vc:#ffc21a; }
.tpl-verdict[data-v="fire"]{ --vc:#2ee88f; box-shadow:0 0 18px -6px var(--vc); animation:tplFire 1.1s ease-in-out infinite; }
@keyframes tplFire{ 0%,100%{box-shadow:0 0 13px -6px #2ee88f} 50%{box-shadow:0 0 26px -3px #2ee88f} }
@media (prefers-reduced-motion:reduce){ .tpl-verdict[data-v="fire"],.tpl-you.tpl-nudge{ animation:none } }
/* ══ HERMES PAYOUT PROJECTOR (2026-07-11) ══ */
.hermes-payopt{ margin-top:11px; padding:11px 12px; border-radius:14px;
  background:linear-gradient(180deg, rgba(250,146,0,.09), rgba(10,16,28,.42)); border:1px solid rgba(250,146,0,.26); }
.hpo-head{ font:800 10px/1 var(--font-display); letter-spacing:.04em; color:#ffcf8a; margin-bottom:10px; text-transform:uppercase; }
.hpo-ladder{ display:grid; grid-template-columns:repeat(10,1fr); gap:4px; align-items:end; height:54px; margin-bottom:10px; }
.hpo-bar{ position:relative; display:flex; align-items:flex-end; justify-content:center; height:100%; border-radius:5px 5px 3px 3px; --bc:#5b6b86;
  background:rgba(255,255,255,.03); border:1px solid rgba(184,204,238,.1); cursor:pointer; transition:transform .15s; }
.hpo-bar:hover{ transform:translateY(-2px); }
.hpo-bar::before{ content:""; position:absolute; left:2px; right:2px; bottom:0; height:var(--h,5%); min-height:4px; border-radius:4px;
  background:linear-gradient(180deg, var(--bc), color-mix(in srgb,var(--bc) 55%,transparent)); box-shadow:0 0 8px -3px var(--bc); transition:height .3s; }
.hpo-bar[data-tier="safe"]{ --bc:#2ee88f; } .hpo-bar[data-tier="warn"]{ --bc:#ffc21a; } .hpo-bar[data-tier="risk"]{ --bc:#ff6b78; }
.hpo-bar i{ position:relative; z-index:1; font:700 8px/1 var(--font-body); font-style:normal; color:#9db0cf; padding-bottom:3px; }
.hpo-bar.is-cur{ outline:2px solid #ffcf8a; outline-offset:1px; }
.hpo-bar.is-safe::after{ content:"🛡"; position:absolute; top:-10px; font-size:9px; }
.hpo-bar.is-stretch::after{ content:"🚀"; position:absolute; top:-10px; font-size:9px; }
.hpo-rows{ display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.hpo-row{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:9px 11px; border-radius:11px; text-align:left; cursor:pointer;
  background:rgba(10,16,28,.5); border:1px solid rgba(184,204,238,.13); transition:border-color .18s, transform .15s; font-family:inherit; }
.hpo-row:hover{ border-color:rgba(250,146,0,.55); transform:translateY(-1px); }
.hpo-row>span{ font:800 9px/1 var(--font-body); color:#9db0cf; text-transform:uppercase; letter-spacing:.05em; }
.hpo-row b{ font:900 16px/1 var(--font-display); color:#fff; }
.hpo-row i{ font:600 9px/1.25 var(--font-body); font-style:normal; color:#b8c4da; }
.hpo-row em{ font:800 12px/1 var(--font-display); font-style:normal; color:#7dffc4; }
.hpo-row[data-mode="stretch"] em{ color:#ffce7a; }
/* ══ WHAT-IF REASONING PANEL (2026-07-11) — the AI brain's visible thinking layer ══ */
.aib-whatif{ margin-top:12px; padding:12px 13px; border-radius:14px;
  background:linear-gradient(180deg, rgba(89,242,255,.07), rgba(10,16,28,.4)); border:1px solid rgba(89,242,255,.22); }
.wif-head{ display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.wif-head b{ font:800 12px/1 var(--font-display); color:#dff6ff; letter-spacing:.02em; }
.wif-verdict{ margin-left:auto; padding:5px 12px; border-radius:999px; --vc:#8b93a8; color:#fff; white-space:nowrap;
  font:900 10px/1 var(--font-display); letter-spacing:.05em;
  background:color-mix(in srgb,var(--vc) 18%,transparent); border:1px solid color-mix(in srgb,var(--vc) 48%,transparent); transition:.25s; }
.wif-verdict[data-v="fire"]{ --vc:#2ee88f; box-shadow:0 0 17px -6px var(--vc); }
.wif-verdict[data-v="ready"]{ --vc:#7dffc4; }
.wif-verdict[data-v="wait"]{ --vc:#ffc21a; }
.wif-verdict[data-v="protect"]{ --vc:#ff6b78; box-shadow:0 0 17px -6px var(--vc); }
.wif-rows{ display:flex; flex-direction:column; gap:6px; }
.wif-row{ font:600 10.5px/1.42 var(--font-body); color:#c4cfe2; padding:7px 10px; border-radius:9px;
  background:rgba(10,16,28,.45); border-left:2px solid var(--rc,#5b6b86); }
.wif-row[data-ok="1"]{ --rc:#2ee88f; } .wif-row[data-ok="0"]{ --rc:#ff8a8a; }
.wif-row i{ font-style:normal; font-weight:800; color:#7fe9ff; margin:0 3px; }
/* ══ SCROLL-TO-PERFECTION (2026-07-11) — eliminate scroll jank on iOS / Android / macOS
   / Windows. Two things kill smooth scrolling here: recomputing frosted glass every
   frame, and live numbers changing width mid-scroll. Both handled below. ══ */
/* Drop EVERY backdrop-filter while the user is scrolling; it snaps back on settle. */
html.is-scrolling.gm-shed .analyzer,
html.is-scrolling.gm-shed .glass,
html.is-scrolling.gm-shed .market-ai-panel,
html.is-scrolling.gm-shed .journal-trade-card,
html.is-scrolling.gm-shed .safety-card,
html.is-scrolling.gm-shed .reinvest-panel,
html.is-scrolling.gm-shed .skilli-select-pop,
html.is-scrolling.gm-shed [class*="-card"],
html.is-scrolling.gm-shed [class*="-panel"]{
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
/* Freeze every animation mid-scroll (belt-and-suspenders over the JS pause) so the
   compositor hands every frame to the scroll gesture. */
html.is-scrolling.gm-shed *, html.is-scrolling.gm-shed *::before, html.is-scrolling.gm-shed *::after{ animation-play-state:paused !important; }
/* Live-updating numbers use tabular figures so their width never jitters the layout. */
.gauge-v, .mv-v, [data-metric] strong, .aap-stat strong, .safety-card strong,
.wl-pchip strong, .journal-profit, .hpo-row em, .hpo-row b, .tpl-bar i, .wif-verdict,
#hermes-net, #hermes-surv, #hermes-ko, .brief-v, .stat-v{ font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; }
/* Smooth iOS/Android momentum on the scroll surfaces. */
html, body, .ws-left, .sat-modal-body, .oub-log, .journal-list{ -webkit-overflow-scrolling:touch; }
/* ══════════════════════════════════════════════════════════════════════════════
   ⚡ BUTTERY-SMOOTH PERF PASS (2026-07-11) — iOS Safari · macOS Safari · Android
   Chrome · Windows Chrome. Targets the measured load: 130+ infinite animations,
   53 backdrop-filters, and near-zero CSS containment. All rules below are visual-
   cost-free and cannot change behaviour — they only reduce wasted work.
   ══════════════════════════════════════════════════════════════════════════════ */

/* 1 · Pause EVERY animation while the tab is backgrounded (the class is already
   toggled on visibilitychange). 130+ infinite loops stop burning CPU/GPU/battery
   off-screen; they resume instantly on return. Zero visible change. */
html.aether-tab-hidden *,
html.aether-tab-hidden *::before,
html.aether-tab-hidden *::after{ animation-play-state:paused !important; }

/* 2 · Honour the OS "Reduce Motion" preference platform-wide — near-instant, no
   infinite loops, no long transitions. Big win for battery-saver / low-end / motion-
   sensitive devices, and it makes the whole UI feel snappier for those users. */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:1ms !important;
    animation-iteration-count:1 !important;
    transition-duration:1ms !important;
    scroll-behavior:auto !important;
  }
}

/* 3 · CSS CONTAINMENT — make each card its own layout boundary so a live content
   update reflows ONLY that card, never the whole document. This is the core fix for
   "cards jitter/lag when the data updates" (no paint-containment → no clipping of
   glows/shadows, so it's purely a reflow-isolation win). */
.analyzer[data-analyzer],
.journal-trade-card,
.safety-card,
.reinvest-panel,
.hermes-payopt,
.tpl-panel,
.orb-cell,
.briefing-card,
.qs-card,
.ni-card{ contain:layout; }

/* 4 · Composite the scroll surfaces on their own GPU layer so scrolling never
   repaints the content underneath (smooth momentum on iOS/Android). */
.ws-left, .journal-list, .sat-modal-body, main.aether-main{ transform:translateZ(0); }

/* 5 · Snappier taps everywhere: kill the 300ms double-tap delay + the grey tap-flash,
   and stop iOS from zoom-jumping the page when a small input is focused. */
button, a, label, .orb, .tab, [role="button"], .mini-toggle,
input, select, textarea{ touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
@media (pointer: coarse){ input, select, textarea{ font-size:max(16px, 1em); } }
/* ══════════════════════════════════════════════════════════════════════════════
   📱 SPEED-OVER-GLASS ON MOBILE (2026-07-11) — phones & small tablets (≤820px).
   backdrop-filter is the single biggest GPU cost on mobile Safari/Chrome. Below it
   is dropped entirely and every frosted surface gets a SOLID, readable panel (so
   nothing turns transparent-over-nebula), and the heaviest decorative loops are
   stopped. The desktop/tablet glass look is untouched.
   ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 820px){

  /* 1 · No backdrop blur anywhere on phones. */
  .analyzer, .analyzer[data-analyzer], .glass, .market-ai-panel, .journal-trade-card,
  .safety-card, .reinvest-panel, .hermes-payopt, .tpl-panel, .chart-sig, .skilli-select-pop,
  .qs-card, .ni-card, .sat-panel, .digit-command-panel, .ad-card, .sentinel-pop-card,
  [class*="-panel"], [class*="-card"]{
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  }

  /* 2 · Solid dark bases so the un-blurred surfaces stay crisp & readable. */
  .glass, .market-ai-panel, .skilli-select-pop, .tpl-panel, .hermes-payopt, .safety-card,
  .reinvest-panel, .qs-card, .ni-card, .sat-panel, .digit-command-panel{ background:#111b30 !important; }
  #view-console .analyzer[data-analyzer]{ background:#0f1930 !important; }
  .journal-list li.journal-trade-card{ background:#0f1626 !important; }
  .journal-list li.journal-trade-card.j-win{ background:linear-gradient(158deg,#12291d,#0c1a14) !important; }
  .journal-list li.journal-trade-card.j-loss{ background:linear-gradient(158deg,#2a1017,#1a0c10) !important; }
  .skilli-select-pop{ background:#0f1626 !important; }

  /* 3 · Stop the heaviest continuous decorative animations on phones (auroras, beams,
     shimmers, glows, the nebula field, constellation, lightning). Elements stay
     visible — only their infinite animation is halted. */
  .nebula, .stars, .nebula-layer, .nebula-rays, .nebula-stars, .ae-spot, .constellation,
  .gm-lightning, [class*="aurora"], [class*="beam"], [class*="shimmer"], [class*="glow"],
  [class*="scan"], [class*="aura"]{ animation:none !important; }
  body::before, body::after{ animation:none !important; }

  /* 4 · Drop expensive multi-layer shadows to single soft shadows on phones. */
  .analyzer[data-analyzer], .journal-trade-card{ box-shadow:0 8px 22px -12px rgba(0,0,0,.7) !important; }
}
/* ── WIN/LOSS CARDS KEEP THEIR SEE-THROUGH GLASS ON MOBILE (2026-07-11) ──
   The speed-over-glass pass above made every card solid; but the Win/Loss journal
   cards are the emotional highlight and there are only a few of them, so they get
   their translucent glass back. The frost still drops during scroll (html.is-scrolling.gm-shed
   rule) so scrolling stays buttery — you only pay for the blur while reading. This
   block is appended AFTER the solid override so it wins. */
@media (max-width: 820px){
  .journal-list li.journal-trade-card{
    backdrop-filter:blur(14px) saturate(1.5) !important;
    -webkit-backdrop-filter:blur(14px) saturate(1.5) !important;
  }
  .journal-list li.journal-trade-card.j-win{
    background:linear-gradient(158deg, rgba(46,213,115,.15), rgba(46,213,115,.02) 60%, rgba(255,255,255,.012)) !important;
  }
  .journal-list li.journal-trade-card.j-loss{
    background:linear-gradient(158deg, rgba(255,91,106,.15), rgba(255,91,106,.02) 60%, rgba(255,255,255,.012)) !important;
  }
}
/* ══ LAYOUT FIXES (2026-07-11) — vertical/split layout ══ */

/* 1 · SAFETY-NET cards stack cleanly full-width in the vertical rail. minmax(185px)
   still crammed two cramped cards side-by-side in the ~320-470px ws-left column;
   a single column gives each Daily Profit / Loss card room for its input + USD unit
   + progress bar + status line. */
#view-console.ws-split .ws-left .safety-grid{ grid-template-columns:1fr !important; }

/* 2 · QUICK-SPEED panel (Speed / Trades / Next / UNIT-Seconds) was a rigid 5-column
   grid needing ~424px, so in the narrower split column it overflowed its card and
   overlapped the neighbouring card. Make it WRAP to fit whatever width it gets — the
   toggle takes its own full row, then the four controls flow in as many columns as
   fit. Never overflows, never overlaps, on any device width. */
.quick-speed-panel{ grid-template-columns:repeat(auto-fit, minmax(84px, 1fr)) !important; align-content:start; overflow:hidden; }
.quick-speed-panel > .quick-speed-toggle,
.quick-speed-panel > .mini-toggle{ grid-column:1 / -1; }
/* ═══ MATCHMASTER PRO MAX — Digit-Arrival Sniper UI (2026-07-12) ═══ */
.mmx-title .mmx-sub{ display:inline-block; margin-left:8px; font-size:.62rem; letter-spacing:.14em; font-weight:600; text-transform:uppercase; color:#ffb949; opacity:.9; font-style:normal; vertical-align:middle; }
.mmx-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }

/* ARM AUTO-SNIPER switch (the only control — auto-only card) */
.mmx-arm{ display:inline-flex; align-items:center; gap:9px; padding:9px 15px; border-radius:12px; cursor:pointer;
  border:1px solid rgba(255,90,90,.35); background:linear-gradient(180deg, rgba(40,16,20,.85), rgba(24,10,14,.9));
  color:#ffd7d7; font-weight:800; letter-spacing:.08em; font-size:.74rem; text-transform:uppercase; transition:all .18s ease; }
.mmx-arm .mmx-arm-dot{ width:11px; height:11px; border-radius:50%; background:#6b7280; box-shadow:0 0 0 3px rgba(120,120,130,.15); transition:all .2s; }
.mmx-arm[data-on="1"]{ border-color:rgba(46,230,140,.6); background:linear-gradient(180deg, rgba(14,42,28,.9), rgba(8,26,18,.92)); color:#c8ffe4; box-shadow:0 0 22px rgba(46,230,140,.28); }
.mmx-arm[data-on="1"] .mmx-arm-dot{ background:#2ee68c; box-shadow:0 0 0 3px rgba(46,230,140,.25), 0 0 14px #2ee68c; animation:mmxPulseDot 1.4s ease-in-out infinite; }
@keyframes mmxPulseDot{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.35); opacity:.65; } }

/* Sniper core — countdown ring + meta */
.mmx-sniper{ display:flex; align-items:center; gap:18px; margin:12px 0 10px; }
.mmx-ring{ --cd:0; width:112px; height:112px; flex:0 0 auto; border-radius:50%; position:relative;
  background:conic-gradient(var(--ring-c,#8b93a7) calc(var(--cd)*1%), rgba(255,255,255,.07) 0);
  transition:background .12s linear; }
.mmx-ring::before{ content:""; position:absolute; inset:7px; border-radius:50%; background:radial-gradient(circle at 50% 38%, #16223c, #0a1120 78%); }
.mmx-ring-in{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.mmx-pdigit{ font-size:2.9rem; line-height:1; font-weight:900; color:#fff; text-shadow:0 0 18px var(--ring-c,#8b93a7); font-variant-numeric:tabular-nums; }
.mmx-cd{ font-size:.62rem; letter-spacing:.12em; font-weight:800; text-transform:uppercase; color:#c7d0e0; opacity:.92; }
.mmx-ring[data-state="idle"]{ --ring-c:#8b93a7; }
.mmx-ring[data-state="armed"]{ --ring-c:#37b6ff; }
.mmx-ring[data-state="locked"]{ --ring-c:#ffb020; animation:mmxRingPulse 1s ease-in-out infinite; }
.mmx-ring[data-state="fired"]{ --ring-c:#2ee68c; animation:mmxRingFire .5s ease; }
@keyframes mmxRingPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,176,32,.0); } 50%{ box-shadow:0 0 26px 3px rgba(255,176,32,.35); } }
@keyframes mmxRingFire{ 0%{ box-shadow:0 0 0 0 rgba(46,230,140,.55); transform:scale(1);} 60%{ box-shadow:0 0 40px 10px rgba(46,230,140,.5); transform:scale(1.06);} 100%{ box-shadow:0 0 0 0 rgba(46,230,140,0); transform:scale(1);} }

.mmx-sniper-meta{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:7px; }
.mmx-sniper-meta .mmx-decision{ font-size:1.02rem; font-weight:900; letter-spacing:.03em; color:#e9eefc; }
.mmx-sniper-meta .mmx-decision[data-side="lock"]{ color:#ffb020; }
.mmx-sniper-meta .mmx-decision[data-side="ready"]{ color:#37b6ff; }
.mmx-sniper-meta .mmx-decision[data-side="fired"]{ color:#2ee68c; }
.mmx-sniper-meta .mmx-decision[data-side="hunt"]{ color:#c7d0e0; }
.mmx-sniper-meta .mmx-decision[data-side="hold"]{ color:#9aa4b8; }
.mmx-conv-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.mmx-conv{ display:flex; flex-direction:column; line-height:1; }
.mmx-conv b{ font-size:1.7rem; font-weight:900; color:#fff; font-variant-numeric:tabular-nums; }
.mmx-conv small{ font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:#8b93a7; margin-top:3px; }
.mmx-odds{ display:flex; gap:12px; flex-wrap:wrap; }
.mmx-odds i{ font-style:normal; font-size:.68rem; color:#9aa4b8; letter-spacing:.03em; }
.mmx-odds i b{ color:#dfe6f5; font-weight:800; font-variant-numeric:tabular-nums; }
.mmx-odds i b[data-t="up"]{ color:#2ee68c; } .mmx-odds i b[data-t="down"]{ color:#ff6b6b; }
.mmx-sniper-meta .mmx-reason{ font-size:.72rem; color:#aab4c8; line-height:1.35; }

/* Per-digit arrival field (0-9 bars) */
.mmx-field{ display:grid; grid-template-columns:repeat(10, 1fr); gap:5px; align-items:end; height:74px; margin:6px 0 10px; padding:8px 6px 4px; border-radius:12px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }
.mmx-fd{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:2px; position:relative; }
.mmx-fd i{ display:block; width:78%; min-height:3px; border-radius:4px 4px 2px 2px; background:linear-gradient(180deg,#4a5678,#2a3350); transition:height .3s ease; }
.mmx-fd b{ font-size:.72rem; font-weight:800; color:#aeb8cc; font-variant-numeric:tabular-nums; }
.mmx-fd em{ font-size:.54rem; font-style:normal; color:#7c869c; }
.mmx-fd.is-top i{ background:linear-gradient(180deg,#ffd23f,#ff9d2e); box-shadow:0 0 14px rgba(255,176,32,.5); }
.mmx-fd.is-top b{ color:#ffd23f; } .mmx-fd.is-top em{ color:#ffb949; }

/* Live insights chips */
.mmx-insights{ display:flex; gap:8px; flex-wrap:wrap; margin:2px 0 10px; }
.mmx-insights span{ font-size:.66rem; color:#9aa4b8; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); padding:4px 9px; border-radius:20px; letter-spacing:.02em; }
.mmx-insights span b{ color:#e9eefc; font-weight:800; font-variant-numeric:tabular-nums; }

/* card accent glow by state */
.mmx[data-side="lock"]{ box-shadow:0 0 0 1px rgba(255,176,32,.25), 0 18px 50px rgba(255,140,20,.14); }
.mmx[data-side="fired"]{ box-shadow:0 0 0 1px rgba(46,230,140,.35), 0 18px 54px rgba(46,230,140,.2); }

@media (max-width:560px){
  .mmx-sniper{ gap:12px; }
  .mmx-ring{ width:92px; height:92px; } .mmx-pdigit{ font-size:2.3rem; }
  .mmx-conv b{ font-size:1.4rem; }
  .mmx-field{ height:62px; }
}
/* ═══ MARKET GUARD — no-trade popup (2026-07-12) ═══ */
.gmg{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(18px); z-index:99998;
  display:flex; gap:13px; align-items:flex-start; width:min(440px,92vw); padding:15px 17px; border-radius:16px;
  background:linear-gradient(180deg,#2b1420,#180d14); border:1px solid rgba(255,92,92,.45);
  box-shadow:0 22px 64px rgba(0,0,0,.55), 0 0 34px rgba(255,80,80,.18);
  color:#ffe7e7; opacity:0; pointer-events:none; transition:opacity .26s ease, transform .26s ease; }
.gmg.show{ opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.gmg-ic{ font-size:1.7rem; line-height:1; flex:0 0 auto; margin-top:1px; filter:drop-shadow(0 0 10px rgba(255,90,90,.5)); }
.gmg-body{ flex:1 1 auto; min-width:0; }
.gmg-title{ font-weight:800; font-size:.92rem; letter-spacing:.01em; margin-bottom:4px; color:#ffd3d3; }
.gmg-msg{ font-size:.8rem; line-height:1.45; color:#f1cdd2; }
.gmg-metric{ font-size:.68rem; color:#c99aa2; margin-top:6px; letter-spacing:.02em; font-variant-numeric:tabular-nums; }
.gmg-acts{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.gmg-acts button{ font:inherit; font-size:.74rem; font-weight:800; padding:8px 13px; border-radius:10px; cursor:pointer; border:1px solid transparent; transition:filter .15s ease; }
.gmg-acts button:hover{ filter:brightness(1.12); }
.gmg-switch{ background:linear-gradient(180deg,#ffc247,#ff941f); color:#241200; border-color:rgba(255,205,130,.5); }
.gmg-dismiss{ background:rgba(255,255,255,.07); color:#ffcccc; border-color:rgba(255,255,255,.14); }
.gmg-x{ position:absolute; top:9px; right:11px; background:none; border:none; color:#ffb0b0; font-size:1.2rem; line-height:1; cursor:pointer; opacity:.65; padding:2px 4px; }
.gmg-x:hover{ opacity:1; }
@media (max-width:560px){
  .gmg{ left:8px; right:8px; width:auto; transform:translateY(18px); bottom:14px; }
  .gmg.show{ transform:translateY(0); }
}
/* ═══════════════ GENERATIONAL CHART — Rise/Fall · Asians · Vanilla (2026-07-12) ═══════════════ */
.deriv-chart{ border-radius:18px; padding:12px 12px 13px; margin:10px 0 6px;
  background:linear-gradient(180deg, rgba(14,22,40,.72), rgba(8,13,26,.82));
  border:1px solid rgba(120,150,220,.14); box-shadow:0 18px 50px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); }
.dc-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.dc-head-l{ display:flex; align-items:baseline; gap:9px; }
.dc-price{ font-size:1.32rem; font-weight:900; letter-spacing:.01em; color:#eaf1ff; font-variant-numeric:tabular-nums; text-shadow:0 0 16px rgba(120,180,255,.28); }
.dc-chg{ font-size:.74rem; font-weight:800; font-variant-numeric:tabular-nums; }
.dc-chg[data-t="up"]{ color:#2ee68c; } .dc-chg[data-t="down"]{ color:#ff6b7a; }
.dc-head-r{ display:flex; align-items:center; gap:9px; }
.dc-regime{ font-size:.66rem; font-weight:700; letter-spacing:.02em; color:#9fb0d0; opacity:.9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:150px; }
.dc-mode{ font-size:.66rem; font-weight:700; padding:5px 9px; border-radius:9px; cursor:pointer; color:#cfe0ff; background:rgba(120,160,255,.1); border:1px solid rgba(120,160,255,.2); }

.dc-plot{ position:relative; border-radius:14px; overflow:hidden; --dc-dir:#59b8ff;
  background:radial-gradient(120% 120% at 78% 0%, rgba(30,44,74,.5), rgba(8,12,24,.62));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04), inset 0 0 40px rgba(0,0,0,.35); transition:box-shadow .4s ease; }
.dc-plot[data-dir="up"]{ box-shadow:inset 0 0 0 1px rgba(46,230,140,.22), inset 0 -30px 60px rgba(38,224,127,.08); }
.dc-plot[data-dir="down"]{ box-shadow:inset 0 0 0 1px rgba(255,90,110,.22), inset 0 -30px 60px rgba(255,80,100,.08); }
.dc-svg{ display:block; width:100%; height:210px; }

.dc-grid line{ stroke:rgba(150,175,220,.09); stroke-width:1; vector-effect:non-scaling-stroke; }
.dc-grid .dc-gv{ stroke:rgba(150,175,220,.05); }
.dc-grid .dc-nowsep{ stroke:rgba(180,200,255,.28); stroke-width:1.1; stroke-dasharray:2 3; vector-effect:non-scaling-stroke; }
.dc-axis text{ fill:rgba(180,200,235,.5); font-size:8.5px; text-anchor:end; font-variant-numeric:tabular-nums; letter-spacing:-.2px; }

.dc-line{ fill:none; stroke:var(--dc-dir); stroke-width:2.1; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.dc-area{ opacity:.9; }

.dc-ribbon{ fill:var(--dc-dir); opacity:.1; }
.dc-emaf{ fill:none; stroke:#ffd23f; stroke-width:1.4; opacity:.9; vector-effect:non-scaling-stroke; }
.dc-emam{ fill:none; stroke:#59b8ff; stroke-width:1.3; opacity:.75; vector-effect:non-scaling-stroke; }
.dc-emas{ fill:none; stroke:#b08cff; stroke-width:1.3; opacity:.6; vector-effect:non-scaling-stroke; }
.dc-avgband{ fill:rgba(255,200,90,.09); }
.dc-avgline{ stroke:#ffc85a; stroke-width:1.4; stroke-dasharray:5 3; opacity:.85; vector-effect:non-scaling-stroke; }
.dc-volenv{ fill:rgba(255,226,122,.08); stroke:rgba(255,226,122,.22); stroke-width:1; vector-effect:non-scaling-stroke; }

.dc-band{ fill:var(--dc-dir); opacity:.11; }
.dc-fore{ fill:none; stroke:var(--dc-dir); stroke-width:1.6; stroke-dasharray:4 4; opacity:.85; vector-effect:non-scaling-stroke;
  animation:dcMarch 1s linear infinite; }
@keyframes dcMarch{ to{ stroke-dashoffset:-8; } }

.dc-barrier{ stroke:rgba(230,238,255,.55); stroke-width:1.2; stroke-dasharray:6 4; vector-effect:non-scaling-stroke; }

.dc-entry circle, .dc-entry line{ transform-box:fill-box; transform-origin:center; }
.dc-ret{ fill:none; stroke:var(--dc-dir); stroke-width:2; vector-effect:non-scaling-stroke; }
.dc-ret2{ fill:none; stroke:var(--dc-dir); stroke-width:1.2; opacity:.55; vector-effect:non-scaling-stroke; animation:dcRet 1.3s ease-out infinite; }
.dc-retx{ stroke:var(--dc-dir); stroke-width:1.1; opacity:.7; vector-effect:non-scaling-stroke; }
@keyframes dcRet{ 0%{ transform:scale(.7); opacity:.7; } 100%{ transform:scale(1.5); opacity:0; } }

.dc-dot{ fill:#fff; stroke:var(--dc-dir); stroke-width:2.5; }
.dc-dot-halo{ fill:var(--dc-dir); opacity:.5; transform-box:fill-box; transform-origin:center; animation:dcHalo 1.5s ease-out infinite; }
@keyframes dcHalo{ 0%{ transform:scale(.6); opacity:.55; } 100%{ transform:scale(2.1); opacity:0; } }

.dc-now, .dc-fore-lbl{ position:absolute; top:6px; font-size:.54rem; font-weight:800; letter-spacing:.14em; padding:2px 6px; border-radius:6px; pointer-events:none; }
.dc-now{ left:calc(78.3% - 44px); color:#cdd8f0; background:rgba(180,200,255,.12); }
.dc-fore-lbl{ right:6px; color:var(--dc-dir); background:rgba(0,0,0,.28); }

.dc-entrybar{ display:flex; align-items:center; gap:10px; margin:10px 2px 8px; }
.dc-eq{ flex:1 1 auto; height:8px; border-radius:5px; background:rgba(255,255,255,.07); overflow:hidden; box-shadow:inset 0 0 0 1px rgba(255,255,255,.05); }
.dc-eq-fill{ display:block; height:100%; width:0%; border-radius:5px; transition:width .5s ease, background .3s ease; }
.dc-eq-fill[data-t="go"]{ background:linear-gradient(90deg,#1fae63,#2ee68c); box-shadow:0 0 12px rgba(46,230,140,.5); }
.dc-eq-fill[data-t="warn"]{ background:linear-gradient(90deg,#c78a1e,#ffc247); }
.dc-eq-fill[data-t="wait"]{ background:linear-gradient(90deg,#5a6580,#8b93a8); }
.dc-eq-label{ font-size:.66rem; color:#a9b6d2; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dc-cue{ font-size:.72rem; font-weight:900; letter-spacing:.06em; padding:5px 11px; border-radius:9px; white-space:nowrap; }
.dc-cue[data-cue="go"]{ color:#04160c; background:linear-gradient(180deg,#3bf393,#22c46e); box-shadow:0 0 16px rgba(46,230,140,.45); animation:dcBlink 1s ease-in-out infinite; }
.dc-cue[data-cue="warn"]{ color:#241400; background:linear-gradient(180deg,#ffcf5a,#ff9d2e); }
.dc-cue[data-cue="wait"]{ color:#cfd8ea; background:rgba(255,255,255,.08); }
@keyframes dcBlink{ 0%,100%{ filter:brightness(1); } 50%{ filter:brightness(1.28); } }

.dc-smart{ display:flex; gap:7px; flex-wrap:wrap; margin:2px 2px 10px; }
.dc-chip{ display:inline-flex; flex-direction:column; gap:2px; padding:5px 10px; border-radius:10px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); min-width:56px; }
.dc-chip i{ font-style:normal; font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; color:#8391ad; }
.dc-chip b{ font-size:.78rem; font-weight:800; color:#e3ebff; font-variant-numeric:tabular-nums; }
.dc-chip.is-up b{ color:#2ee68c; } .dc-chip.is-down b{ color:#ff6b7a; } .dc-chip.is-warn b{ color:#ffc247; }

@media (max-width:560px){
  .dc-svg{ height:172px; } .dc-price{ font-size:1.12rem; }
  .dc-chip{ min-width:0; padding:5px 8px; } .dc-regime{ max-width:96px; }
}
/* ═══ SIGNATURE per-trade-type chart overlays (2026-07-12) ═══ */
/* 🚀 Rise/Fall — VELOCITY TUNNEL */
.dc-tunnel{ fill:var(--dc-dir,#59b8ff); opacity:.07; }
.dc-tunnel-l{ fill:none; stroke:var(--dc-dir,#59b8ff); stroke-width:1; stroke-dasharray:3 4; opacity:.42; vector-effect:non-scaling-stroke; }
/* 🪐 Asians — MEAN GRAVITY axis + reversion pull arrow */
.dc-gravity{ stroke:#ffc85a; stroke-width:2; opacity:.9; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 6px rgba(255,200,90,.5)); animation:dcGrav 2.4s ease-in-out infinite; }
@keyframes dcGrav{ 0%,100%{ opacity:.72; } 50%{ opacity:1; } }
.dc-pull{ stroke:#ffc85a; stroke-width:1.6; stroke-dasharray:3 3; opacity:.85; vector-effect:non-scaling-stroke; }
.dc-pull-tip{ fill:#ffc85a; opacity:.95; }
/* 💎 Vanilla — CONVEXITY FUNNEL + mini payoff curve */
.dc-payoff .dc-pay-base{ stroke:rgba(255,255,255,.2); stroke-width:1; vector-effect:non-scaling-stroke; }
.dc-payoff .dc-pay-curve{ fill:none; stroke:#ffe27a; stroke-width:1.7; stroke-linecap:round; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 5px rgba(255,226,122,.55)); }
.dc-payoff text{ fill:rgba(255,226,122,.72); font-size:7px; letter-spacing:.12em; text-transform:uppercase; }
/* ═══════════ CHART NEXT-LEVEL — fullscreen · exec pop-up · bias-flip · markers (2026-07-12) ═══════════ */
.dc-fs-btn{ font-size:.9rem; padding:4px 9px; border-radius:8px; cursor:pointer; color:#cfe0ff; background:rgba(120,160,255,.1); border:1px solid rgba(120,160,255,.2); line-height:1; }
.dc-auto{ display:inline-flex; align-items:center; gap:6px; font-size:.6rem; font-weight:800; letter-spacing:.08em; padding:5px 10px; border-radius:9px; cursor:pointer; color:#c7d0e0; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); text-transform:uppercase; }
.dc-auto .dc-auto-dot{ width:8px; height:8px; border-radius:50%; background:#6b7280; }
.dc-auto[data-on="1"]{ color:#c8ffe4; background:linear-gradient(180deg,rgba(14,42,28,.9),rgba(8,26,18,.92)); border-color:rgba(46,230,140,.6); box-shadow:0 0 16px rgba(46,230,140,.28); }
.dc-auto[data-on="1"] .dc-auto-dot{ background:#2ee68c; box-shadow:0 0 8px #2ee68c; animation:dcAutoPulse 1.3s ease-in-out infinite; }
@keyframes dcAutoPulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.4); opacity:.6; } }

.dc-fab{ position:absolute; right:12px; bottom:12px; z-index:6; display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:26px; cursor:pointer; font-weight:900; letter-spacing:.05em; font-size:.72rem; color:#04160c; border:none; background:linear-gradient(135deg,#3bf393,#22c46e); box-shadow:0 8px 24px rgba(46,230,140,.4), 0 0 0 1px rgba(255,255,255,.12); transition:transform .15s ease, filter .15s ease; }
.dc-fab:hover{ transform:translateY(-2px); filter:brightness(1.08); }
.dc-fab[data-dir="down"]{ background:linear-gradient(135deg,#ff8a8a,#e5484d); color:#1a0406; box-shadow:0 8px 24px rgba(229,72,77,.4), 0 0 0 1px rgba(255,255,255,.12); }
.dc-fab[data-dir="flat"]{ background:linear-gradient(135deg,#7d8aa8,#5a6580); color:#0b1020; box-shadow:0 8px 20px rgba(0,0,0,.4); }
.dc-fab-i{ font-size:.95rem; }

.dc-pop{ position:absolute; right:12px; bottom:58px; z-index:7; width:172px; padding:11px 12px; border-radius:15px; text-align:center; background:linear-gradient(180deg,rgba(16,24,44,.97),rgba(8,12,24,.99)); border:1px solid rgba(120,150,220,.25); box-shadow:0 20px 60px rgba(0,0,0,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); animation:dcPopIn .18s ease; }
@keyframes dcPopIn{ from{ opacity:0; transform:translateY(8px) scale(.96); } to{ opacity:1; transform:none; } }
.dc-pop[data-dir="up"]{ --pc:#2ee68c; } .dc-pop[data-dir="down"]{ --pc:#ff6b7a; } .dc-pop[data-dir="flat"]{ --pc:#8b93a8; }
.dc-pop-arrow{ font-size:1.2rem; line-height:1; color:var(--pc,#8b93a8); text-shadow:0 0 14px var(--pc,transparent); }
.dc-pop-dir{ font-size:.82rem; font-weight:900; letter-spacing:.04em; color:#eef3ff; margin-top:1px; }
.dc-pop-conf{ font-size:1.15rem; font-weight:900; color:var(--pc,#eef3ff); font-variant-numeric:tabular-nums; margin:1px 0 7px; }
.dc-pop-fire{ width:100%; padding:11px; border-radius:11px; border:none; cursor:pointer; font-weight:900; letter-spacing:.04em; font-size:.76rem; color:#04160c; background:linear-gradient(135deg,#3bf393,#22c46e); box-shadow:0 6px 18px rgba(46,230,140,.4); }
.dc-pop[data-dir="down"] .dc-pop-fire{ background:linear-gradient(135deg,#ff8a8a,#e5484d); color:#1a0406; box-shadow:0 6px 18px rgba(229,72,77,.4); }
.dc-pop-fire[data-ready="0"]{ background:rgba(255,255,255,.1) !important; color:#9aa4b8 !important; box-shadow:none !important; cursor:not-allowed; }
.dc-pop-note{ display:block; margin-top:8px; font-size:.63rem; color:#93a1c2; }

.dc-bias{ position:absolute; left:12px; top:12px; z-index:6; padding:5px 11px; border-radius:20px; font-size:.64rem; font-weight:900; letter-spacing:.04em; color:#fff; background:linear-gradient(135deg,#ff8a3c,#e5484d); box-shadow:0 6px 18px rgba(229,72,77,.4); animation:dcBiasFlash .9s ease-in-out infinite; }
.dc-bias[data-dir="up"]{ background:linear-gradient(135deg,#3bf393,#22c46e); color:#04160c; box-shadow:0 6px 18px rgba(46,230,140,.4); }
@keyframes dcBiasFlash{ 0%,100%{ filter:brightness(1); } 50%{ filter:brightness(1.32); } }

.dc-mark-l{ stroke-width:1; stroke-dasharray:2 3; vector-effect:non-scaling-stroke; }
.dc-mark-o{ fill:#0a1120; stroke-width:2; vector-effect:non-scaling-stroke; }

body.dc-fs-open{ overflow:hidden; }
.deriv-chart.dc-fs{ position:fixed; inset:0; z-index:9999; margin:0; border-radius:0; padding:18px clamp(16px,4vw,60px); overflow:auto; background:linear-gradient(180deg,#070c16,#05080f); }
.deriv-chart.dc-fs .dc-plot,.deriv-chart.dc-fs .dc-head,.deriv-chart.dc-fs .dc-entrybar,.deriv-chart.dc-fs .dc-smart,.deriv-chart.dc-fs .dc-exec{ max-width:1200px; margin-left:auto; margin-right:auto; }
.deriv-chart.dc-fs .dc-svg{ height:min(62vh,620px); }
/* ═══════════ CHART GENERATIONAL v2 — verdict · confluence rail · sheen (2026-07-12) ═══════════ */
.dc-scan{ position:absolute; inset:0; pointer-events:none; z-index:1; border-radius:inherit; background:linear-gradient(90deg,transparent 42%, rgba(150,195,255,.06) 50%, transparent 58%); background-size:230% 100%; animation:dcSheen 5.5s linear infinite; }
@keyframes dcSheen{ from{ background-position:210% 0; } to{ background-position:-40% 0; } }

.dc-verdict{ position:absolute; left:12px; bottom:12px; z-index:5; display:flex; flex-direction:column; padding:7px 12px; border-radius:12px; background:linear-gradient(180deg,rgba(10,16,30,.74),rgba(6,10,20,.84)); border:1px solid rgba(255,255,255,.08); box-shadow:0 8px 22px rgba(0,0,0,.42); pointer-events:none; --vc:#8b93a8; }
.dc-verdict[data-dir="up"]{ --vc:#2ee68c; } .dc-verdict[data-dir="down"]{ --vc:#ff6b7a; }
.dc-v-dir{ font-size:.9rem; font-weight:900; letter-spacing:.03em; color:var(--vc); line-height:1; text-shadow:0 0 14px var(--vc); }
.dc-v-conf{ font-size:1.5rem; font-weight:900; color:#fff; line-height:1.05; font-variant-numeric:tabular-nums; }
.dc-v-tag{ font-size:.53rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--vc); opacity:.85; }

.dc-confluence{ display:flex; flex-direction:column; gap:5px; margin:2px 2px 10px; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }
.dc-cf{ display:grid; grid-template-columns:98px 1fr 42px; align-items:center; gap:8px; }
.dc-cf-n{ font-size:.64rem; color:#aab4c8; letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dc-cf-bar{ height:6px; border-radius:4px; background:rgba(255,255,255,.06); overflow:hidden; }
.dc-cf-bar i{ display:block; height:100%; border-radius:4px; background:#5a6580; }
.dc-cf[data-d="up"] .dc-cf-bar i{ background:linear-gradient(90deg,#1fae63,#2ee68c); }
.dc-cf[data-d="down"] .dc-cf-bar i{ background:linear-gradient(90deg,#c53a42,#ff6b7a); }
.dc-cf-v{ font-size:.61rem; font-weight:800; text-align:right; font-variant-numeric:tabular-nums; color:#c7d0e0; }
.dc-cf[data-d="up"] .dc-cf-v{ color:#2ee68c; } .dc-cf[data-d="down"] .dc-cf-v{ color:#ff6b7a; }
.dc-cf-sum{ margin-top:3px; font-size:.66rem; color:#93a1c2; }
.dc-cf-sum b{ color:#e9eefc; }
.deriv-chart.dc-fs .dc-verdict{ left:clamp(16px,4vw,60px); bottom:clamp(16px,3vh,40px); }

/* ═══════════════════════════════════════════════════════════════════════════
   ⏳ PRECISION TRADE LIFECYCLE — yellow-glass PENDING while Aether decides →
      settles into the WIN (green) / LOSS (red) result card, with the best
      transitions. Matches the platform's glass-card language. Appended last so
      it overrides the earlier neutral/grey trade-prediction styles.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── the in-flight (Aether-thinking) state = warm amber/gold glass ──
   !important + the higher .is-live specificity beat the generational glass
   theme (aether.css ~11671) that forces every .trade-prediction-card to a
   neutral navy glass; the drifting aura carries the live motion. */
.trade-prediction-card.is-live {
  border-color: rgba(255,198,74,.62) !important;
  background:
    linear-gradient(135deg, rgba(36,27,9,.6), rgba(22,17,9,.5)) !important;
  box-shadow:
    0 0 0 1px rgba(255,198,74,.3) inset,
    0 0 30px -8px rgba(255,190,60,.62),
    0 24px 58px -30px rgba(0,0,0,.82) !important;
}
.trade-prediction-card.is-live .tpc-aura {
  background:
    radial-gradient(circle at 28% 30%, rgba(255,201,74,.3), transparent 55%),
    radial-gradient(circle at 80% 72%, rgba(250,146,0,.22), transparent 55%);
  animation: tpcAuraDrift 5.5s ease-in-out infinite;
}
@keyframes tpcAuraDrift { 0%,100%{ opacity:.7; transform:scale(1); } 50%{ opacity:1; transform:scale(1.05); } }
.trade-prediction-card.is-live .tpc-eyebrow,
.trade-prediction-card.is-live .tpc-ring-label small { color:#ffce62; }
.trade-prediction-card.is-live .tpc-ring-fg { stroke:#ffc74a; }
.trade-prediction-card.is-live .tpc-bar-fill {
  background:linear-gradient(90deg, #ffd45a, #fa9200);
  box-shadow:0 0 16px rgba(255,190,60,.55);
}
/* a soft "deciding" pulse dot next to the eyebrow so PENDING reads instantly */
.trade-prediction-card.is-live .tpc-eyebrow::before {
  content:""; display:inline-block; width:7px; height:7px; margin-right:7px;
  border-radius:50%; background:#ffc74a; box-shadow:0 0 10px #ffc74a; vertical-align:middle;
  animation:tpcDotBlink 1s ease-in-out infinite;
}
@keyframes tpcDotBlink { 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.25; transform:scale(.7);} }

/* ── the LOSS result = clean red (was grey) ── */
.trade-prediction-card.is-loss {
  border-color: rgba(255,84,106,.72) !important;
  box-shadow:
    0 0 0 1px rgba(255,84,106,.42) inset,
    0 0 30px -8px rgba(255,72,98,.62),
    0 24px 58px -30px rgba(0,0,0,.82) !important;
}
.trade-prediction-card.is-loss .tpc-aura { background:radial-gradient(circle at 50% 40%, rgba(255,84,106,.34), transparent 60%); }
.trade-prediction-card.is-loss .tpc-ring[data-state="loss"] .tpc-ring-fg,
.trade-prediction-card.is-loss .tpc-ring-fg { stroke:#ff5a72; }

/* ── the WIN result = clean green ── */
.trade-prediction-card.is-win {
  border-color: rgba(125,255,196,.72) !important;
  box-shadow:
    0 0 0 1px rgba(125,255,196,.4) inset,
    0 0 30px -8px rgba(125,255,196,.62),
    0 24px 58px -30px rgba(0,0,0,.82) !important;
}

/* ── best transitions: a satisfying settle-pop the moment it flips to a result ── */
.trade-prediction-card.is-flipped { animation: tpcSettle .72s cubic-bezier(.2,.8,.25,1); }
.trade-prediction-card.is-win     { animation: tpcSettle .72s cubic-bezier(.2,.8,.25,1); }
@keyframes tpcSettle { 0%{ transform:scale(.985);} 42%{ transform:scale(1.022);} 100%{ transform:scale(1);} }

/* ═══════════════════════════════════════════════════════════════════════════
   ⏳ VOICE TRADING JOURNAL — PENDING cards (yellow glass) sit at the very top
      while a contract is in flight, then vanish as the resolved win/loss card
      takes their place.
   ═══════════════════════════════════════════════════════════════════════════ */
.journal-list li.j-pending,
li.journal-card.j-pending {
  list-style:none;
  position:relative;
  margin:0 0 10px;
  padding:14px 16px;
  display:grid;
  gap:10px;
  border:1px solid rgba(255,198,74,.6);
  border-radius:16px;
  font-size:13px;
  background:
    linear-gradient(145deg, rgba(41,32,11,0.95), rgba(34,28,14,0.82) 48%, rgba(23,19,12,0.92)),
    radial-gradient(circle at 16% 0%, rgba(255,200,80,0.22), transparent 40%),
    radial-gradient(circle at 88% 12%, rgba(250,146,0,0.14), transparent 42%);
  box-shadow:
    0 0 0 1px rgba(255,198,74,0.32) inset,
    0 18px 44px rgba(0,0,0,0.34),
    0 0 22px -4px rgba(255,190,60,0.4);
  animation: jpCardIn .5s cubic-bezier(.2,.85,.3,1.02) both, jpCardBreathe 2.6s ease-in-out infinite;
}
@keyframes jpCardIn { from{ opacity:0; transform:translateY(-10px) scale(.98);} to{ opacity:1; transform:none;} }
@keyframes jpCardBreathe {
  0%,100% { box-shadow: 0 0 0 1px rgba(255,198,74,.3) inset, 0 18px 44px rgba(0,0,0,.34), 0 0 20px -4px rgba(255,190,60,.36); }
  50%     { box-shadow: 0 0 0 1px rgba(255,216,120,.52) inset, 0 18px 44px rgba(0,0,0,.34), 0 0 34px -2px rgba(255,190,60,.62); }
}
.j-pending .jp-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.j-pending .jp-badge {
  font:800 10px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase;
  color:#1a1204; padding:5px 9px; border-radius:999px;
  background:linear-gradient(135deg, #ffd35a, #fa9200); box-shadow:0 0 16px rgba(255,190,60,.5);
}
.j-pending .jp-analyzer { font:700 12px/1 var(--font-display); color:#ffe6ad; letter-spacing:.02em; }
.j-pending .jp-live {
  margin-left:auto; display:inline-flex; align-items:center; gap:6px;
  font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#ffce62;
}
.j-pending .jp-live i {
  width:7px; height:7px; border-radius:50%; background:#ffc74a;
  box-shadow:0 0 10px #ffc74a; animation:tpcDotBlink 1s ease-in-out infinite;
}
.j-pending .jp-route { font:800 15px/1.15 var(--font-display); color:#fff; letter-spacing:.02em; }
.j-pending .jp-meta { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:11px; color:#c9cfdd; }
.j-pending .jp-meta b { color:#fff; font-weight:700; }
.j-pending .jp-bar { position:relative; height:4px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.j-pending .jp-bar i {
  position:absolute; top:0; bottom:0; left:0; width:38%; border-radius:999px;
  background:linear-gradient(90deg, transparent, #ffd45a, #fa9200, transparent);
  animation:jpSweep 1.3s ease-in-out infinite;
}
@keyframes jpSweep { 0%{ transform:translateX(-120%);} 100%{ transform:translateX(330%);} }

@media (prefers-reduced-motion: reduce) {
  .trade-prediction-card.is-live,
  .trade-prediction-card.is-win,
  .trade-prediction-card.is-flipped,
  .journal-list li.j-pending, li.journal-card.j-pending,
  .trade-prediction-card.is-live .tpc-aura,
  .j-pending .jp-bar i, .j-pending .jp-live i,
  .trade-prediction-card.is-live .tpc-eyebrow::before { animation:none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   🚀 SMOOTHNESS + STABILITY SYSTEM UPGRADE (2026-07-13)
   Zero-glitch / zero-lag on iOS · Android · every device, buttery scroll
   regardless of connection, and a compact vertical layout. Appended LAST so it
   wins. See [[project-smoothness-system-upgrade]] in memory for the why.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · NEURAL EDGE PULSE — COMPACT. Was ~170px tall on a 375px phone: a huge
      decorative block on EVERY analyzer, above the actual trade controls. Trim
      the base a little, then go genuinely tight on phones. ── */
.neural-edge-pulse { margin:7px 0 !important; padding:8px 10px !important; gap:6px !important; }
.nep-spark { height:26px !important; }
@media (max-width: 640px){
  .neural-edge-pulse{ margin:6px 0 !important; padding:7px 9px !important; gap:4px !important; border-radius:11px !important; }
  .nep-title{ font-size:9px !important; }
  .nep-consensus{ font-size:8.5px !important; padding:2px 6px !important; }
  .nep-body{ gap:8px !important; }
  .nep-spark{ height:18px !important; gap:1.5px !important; }
  .nep-conf{ font-size:15px !important; }
  .nep-traj{ font-size:9px !important; }
  .nep-window{ font-size:9.5px !important; padding:3px 7px !important; }
  .nep-copilot{ gap:5px !important; }
  .nep-cp{ padding:3px 6px !important; }
  .nep-cp small{ font-size:8px !important; }
  .nep-cp strong{ font-size:11.5px !important; }
}
/* NEW FEATURE — tap the Neural Edge Pulse header to collapse it to a slim
   summary (title + swarm + fire-window). State persists (body.nep-min-all). */
.nep-head{ cursor:pointer; user-select:none; -webkit-user-select:none; }
.nep-title::after{ content:" ▾"; opacity:.55; font-size:.8em; display:inline-block; transition:transform .2s ease; }
body.nep-min-all .nep-title::after{ transform:rotate(-90deg); }
body.nep-min-all .nep-body,
body.nep-min-all .nep-copilot{ display:none !important; }
body.nep-min-all .neural-edge-pulse{ gap:5px !important; }

/* ── 2 · BUTTERY MOBILE SCROLL. backdrop-filter blur is the #1 cause of janky
      scrolling on iOS/Android — the GPU re-samples everything behind every
      frosted card every frame. On TOUCH (coarse-pointer) devices drop the blur
      and use a slightly more opaque dark glass — visually near-identical, hugely
      smoother. Desktop (fine pointer) keeps the real blur. ── */
@media (pointer: coarse), (hover: none), (max-width: 820px){
  *, *::before, *::after{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .glass, .card, .panel,
  .analyzer[data-analyzer], .analyzer[data-analyzer] > *,
  #journal-section, .win-loss-card, .journal-trade-card, .trade-prediction-card,
  .market-desk, .sat-card, .modal, .overlay, .popup, .sheet, header, .topbar{
    background-color: rgba(9,13,24,0.9);
  }
}

/* ── 3 · CONTAINMENT. A per-tick text update inside a readout panel no longer
      forces the whole page to re-layout. `layout style` only (NOT paint/size) so
      nothing is clipped and no intrinsic size is guessed. Applied to the small,
      frequently-repainted LEAF panels — deliberately NOT to the card / chart /
      market-desk (those host fixed-position + portalled children). ── */
.neural-edge-pulse, .analyzer-execution-panel, .digit-tick-scan-panel,
.digit-live-feed, .digit-edge-panel, .smart-feature-strip, .edge-stack,
.analyzer-mc, .win-loss-card, .journal-trade-card, .trade-prediction-card,
.orb-cooldown-card, .quick-speed-panel, .reinvest-panel{
  contain: layout style;
}

/* ── 4 · OFFSCREEN SKIP. Analyzer cards scrolled out of view are not laid out or
      painted at all (content-visibility); intrinsic-size keeps the scrollbar
      honest so there's no jump. Touch devices only, where it matters most and
      old iOS simply ignores the property (graceful). ── */
@media (pointer: coarse), (max-width: 820px){
  .analyzer[data-analyzer]{ content-visibility:auto; contain-intrinsic-size:auto 520px; }
}

/* ── 5 · SCROLL CONTAINERS — momentum scroll + contained overscroll so an inner
      scroll never drags the page and the page never rubber-bands the whole app. ── */
html, body{ overscroll-behavior-y:none; }
#view-console, .view, main, .app-scroll, .scroll-area, .journal-list{
  -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
}
@media (prefers-reduced-motion: no-preference){ html{ scroll-behavior:smooth; } }

/* ── 6 · REDUCED MOTION / BATTERY — honour the OS "reduce motion" switch: the
      decorative infinite animations are the main jank + battery cost; drop them,
      keep functionality. Only active when the user asked for it. ── */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
}

/* (Market Advisor styles removed 2026-09-15 — the feature is gone) */
/* ═══════════════════════════════════════════════════════════════════════════
   ✦ GENERATIONAL AESTHETIC PASS (2026-07-14) — a living, motion-colour-shifting
   aurora background + hyper-real per-analyzer SIGNATURE glass cards, each a
   DISTINCT jewel hue, floating over the aurora. All motion is compositor-only
   (transform/opacity), paused mid-scroll (html.is-scrolling.gm-shed) and disabled under
   reduce-motion, so it stays buttery on every device — no backdrop blur
   reintroduced (see [[project-smoothness-system-upgrade]]). Appended LAST; the
   card rules use .analyzer-themed to out-specify the prismatic-crown block.
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1 · DISTINCT SIGNATURE PALETTE — 8 well-spread jewel hues; no two cards share a
      colour and none matches the deep aurora field. */
.analyzer-theme-rise_fall   { --sig-c:#3fe0ff; }  /* electric cyan */
.analyzer-theme-over_under  { --sig-c:#ffb14e; }  /* amber        */
.analyzer-theme-streak      { --sig-c:#35e39b; }  /* emerald      */
.analyzer-theme-matches     { --sig-c:#5c8cff; }  /* royal blue   */
.analyzer-theme-asians      { --sig-c:#ffce54; }  /* gold         */
.analyzer-theme-accumulator { --sig-c:#a6ff6b; }  /* lime         */
.analyzer-theme-vanilla     { --sig-c:#ff8fa3; }  /* rose         */
.analyzer-theme-even_odd    { --sig-c:#c58cff; }  /* orchid       */

/* 2 · LIVING AURORA — richer multi-hue base field (body::before keeps its cheap
      transform drift) + an injected .gm-aurora of independently drifting, screen-
      blended blobs whose overlaps make the colour genuinely SHIFT ("real feel"). */
body::before {
  background:
    radial-gradient(42% 50% at 16% 20%, rgba(63,224,255,0.27), transparent 66%),
    radial-gradient(46% 54% at 84% 16%, rgba(197,140,255,0.27), transparent 68%),
    radial-gradient(50% 58% at 74% 82%, rgba(92,140,255,0.24), transparent 66%),
    radial-gradient(46% 54% at 22% 82%, rgba(255,143,163,0.20), transparent 66%),
    radial-gradient(62% 72% at 50% 50%, rgba(53,227,155,0.13), transparent 70%) !important;
}
.gm-aurora { position: fixed; inset: -20%; z-index: -1; pointer-events: none; overflow: hidden; contain: strict; }
.gm-aurora i { position: absolute; display: block; border-radius: 50%; mix-blend-mode: screen; will-change: transform; }
.gm-aurora i:nth-child(1){ width:64vw; height:64vw; left:-12vw;  top:-10vw;  background: radial-gradient(circle, rgba(63,224,255,.62), transparent 64%);  animation: gmAur1 34s ease-in-out infinite alternate; }
.gm-aurora i:nth-child(2){ width:68vw; height:68vw; right:-16vw; top:-8vw;   background: radial-gradient(circle, rgba(197,140,255,.58), transparent 64%); animation: gmAur2 42s ease-in-out infinite alternate; }
.gm-aurora i:nth-child(3){ width:74vw; height:74vw; left:4vw;   bottom:-26vw;background: radial-gradient(circle, rgba(92,140,255,.54), transparent 64%);  animation: gmAur3 38s ease-in-out infinite alternate; }
.gm-aurora i:nth-child(4){ width:56vw; height:56vw; right:-8vw; bottom:-18vw;background: radial-gradient(circle, rgba(255,143,163,.48), transparent 64%); animation: gmAur4 46s ease-in-out infinite alternate; }
@keyframes gmAur1 { from{ transform:translate3d(0,0,0) scale(1);}    to{ transform:translate3d(14vw,10vh,0) scale(1.18);} }
@keyframes gmAur2 { from{ transform:translate3d(0,0,0) scale(1.10);} to{ transform:translate3d(-12vw,14vh,0) scale(1);} }
@keyframes gmAur3 { from{ transform:translate3d(0,0,0) scale(1);}    to{ transform:translate3d(10vw,-12vh,0) scale(1.20);} }
@keyframes gmAur4 { from{ transform:translate3d(0,0,0) scale(1.12);} to{ transform:translate3d(-14vw,-8vh,0) scale(1);} }

/* 3 · HYPER-REAL SIGNATURE GLASS CARDS — each its own jewel hue over the aurora. */
.analyzer[data-analyzer].analyzer-themed {
  border: 1px solid color-mix(in srgb, var(--sig-c) 46%, rgba(255,255,255,.05)) !important;
  border-radius: 20px !important;
  background:
    linear-gradient(158deg,
      color-mix(in srgb, var(--sig-c) 20%, rgba(17,20,29,.78)) 0%,
      rgba(11,13,20,.76) 46%,
      color-mix(in srgb, var(--sig-c) 11%, rgba(6,8,13,.82)) 100%),
    radial-gradient(130% 86% at 50% -12%, color-mix(in srgb, var(--sig-c) 26%, transparent), transparent 58%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 18%, transparent),
    inset 0 -52px 74px -54px color-mix(in srgb, var(--sig-c) 70%, transparent),
    0 26px 64px -28px rgba(0,0,0,.92),
    0 0 54px -18px color-mix(in srgb, var(--sig-c) 62%, transparent) !important;
}
/* keep content above the living light */
.analyzer[data-analyzer].analyzer-themed > * { position: relative; z-index: 1; }
/* soft signature light slowly orbiting inside the card = the colour-shifting feel
   (re-enables the ::after the crown block zeroed; sits BEHIND content at z-index 0) */
.analyzer[data-analyzer].analyzer-themed::after {
  content: "" !important; opacity: 1 !important;
  position: absolute; inset: -25%; z-index: 0; pointer-events: none; border-radius: inherit;
  background: radial-gradient(40% 40% at 30% 26%, color-mix(in srgb, var(--sig-c) 32%, transparent), transparent 60%);
  animation: gmCardOrbit 18s ease-in-out infinite alternate !important;
}
@keyframes gmCardOrbit { 0%{ transform:translate3d(0,0,0);} 50%{ transform:translate3d(26%,16%,0);} 100%{ transform:translate3d(8%,32%,0);} }
/* hyper-real glass catchlight on the top edge */
.analyzer[data-analyzer].analyzer-themed::before {
  background:
    linear-gradient(160deg, rgba(255,255,255,.11) 0%, transparent 34%),
    linear-gradient(200deg, color-mix(in srgb, var(--sig-c) 10%, transparent), transparent 30%) !important;
}

/* 4 · GENERATIONAL VERTICAL LAYOUT — cards rise + settle as they scroll into view.
      Scroll-driven (animation-timeline) = compositor-cheap, only moves with scroll.
      Opacity floor is .5 so a card can never get stuck invisible on odd viewports. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .analyzer[data-analyzer] {
      animation: gmCardReveal linear both !important;
      animation-timeline: view() !important;
      animation-range: entry 2% entry 44% !important;
    }
    @keyframes gmCardReveal {
      from { opacity: .5; transform: translate3d(0, 26px, 0) scale(.985); }
      to   { opacity: 1; transform: none; }
    }
  }
}

/* 5 · pause ALL new motion mid-scroll + honour reduce-motion + calm mobile fill-rate */
html.is-scrolling.gm-shed .gm-aurora i,
html.is-scrolling.gm-shed .analyzer[data-analyzer].analyzer-themed::after { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .gm-aurora i,
  .analyzer[data-analyzer].analyzer-themed::after { animation: none !important; }
}
@media (max-width: 640px) {
  .gm-aurora i { mix-blend-mode: normal; opacity: .5; }
  .gm-aurora i:nth-child(4) { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ⧉ TWIN COCKPIT (2026-07-14) — the trading console as TWO independently-scrolling
   screens: left command deck (orbs/market/journal) + right analyzer workspace,
   each its own momentum scroller, a draggable divider between them, per-pane
   scroll-progress rails, and an optional sync-scroll link. Auto on wide (JS adds
   .ws-split at >=760); a floating "⧉ Dual" toggle opts narrow phones in
   (body.gm-dual → forced). Appended LAST + !important to win the older ws-split
   grid. See [[project-twin-cockpit]].
   ═══════════════════════════════════════════════════════════════════════════ */
#view-console.ws-split{
  display:grid !important;
  grid-template-columns: var(--gm-split, clamp(140px, 32%, 460px)) var(--gm-divider, 14px) minmax(0,1fr) !important;
  gap:0 !important;
  align-items:start !important;
}
#view-console.ws-split > .ws-left,
#view-console.ws-split > .ws-right{
  position:sticky; top:8px;
  max-height:calc(100svh - 16px);
  overflow-y:auto; overflow-x:hidden;
  overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  min-width:0; min-height:0;
  display:grid; gap:14px; align-content:start;
  padding:8px 12px 46px;
  scrollbar-width:thin; scrollbar-color:rgba(140,160,200,.4) transparent;
}
#view-console.ws-split > .ws-left::-webkit-scrollbar,
#view-console.ws-split > .ws-right::-webkit-scrollbar{ width:7px; }
#view-console.ws-split > .ws-left::-webkit-scrollbar-thumb,
#view-console.ws-split > .ws-right::-webkit-scrollbar-thumb{ background:rgba(140,160,200,.32); border-radius:99px; }
/* per-pane scroll-progress rail (sticky pseudo at the pane's top edge) */
#view-console.ws-split > .ws-left::before,
#view-console.ws-split > .ws-right::before{
  content:""; position:sticky; top:0; z-index:6; display:block;
  height:3px; margin:-8px -12px 8px; border-radius:0 99px 99px 0;
  transform:scaleX(var(--sp,0)); transform-origin:left center;
  background:linear-gradient(90deg, #3fe0ff, #5c8cff 55%, #c58cff);
  box-shadow:0 0 10px rgba(92,140,255,.55);
  transition:transform .09s linear;
}
/* the draggable divider between the two screens */
#view-console.ws-split > .ws-divider{
  position:sticky; top:8px; align-self:stretch;
  max-height:calc(100svh - 16px); min-height:200px;
  cursor:col-resize; touch-action:none; z-index:7;
  display:flex; align-items:center; justify-content:center;
}
#view-console.ws-split > .ws-divider::before{
  content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; transform:translateX(-50%);
  background:linear-gradient(180deg, transparent, rgba(140,160,200,.4) 12%, rgba(140,160,200,.4) 88%, transparent);
}
.ws-divider-grip{
  position:relative; width:8px; height:60px; border-radius:99px;
  background:linear-gradient(180deg, rgba(92,140,255,.95), rgba(197,140,255,.95));
  box-shadow:0 0 16px rgba(92,140,255,.6), inset 0 1px 0 rgba(255,255,255,.45);
}
#view-console.ws-split > .ws-divider:hover .ws-divider-grip{ box-shadow:0 0 22px rgba(92,140,255,.85), inset 0 1px 0 rgba(255,255,255,.55); }
body.gm-dragsplit{ cursor:col-resize; }
body.gm-dragsplit, body.gm-dragsplit *{ user-select:none !important; }

/* floating control cluster: ⧉ Dual toggle (phones) + ⇄ sync-scroll link */
#gm-dual-ctl{
  position:fixed; left:max(12px, env(safe-area-inset-left)); bottom:calc(14px + env(safe-area-inset-bottom));
  z-index:60; display:flex; gap:8px;
}
#gm-dual-ctl button{
  font:800 12px/1 var(--font-display, sans-serif); letter-spacing:.06em; color:#eaf0fb;
  padding:10px 13px; border-radius:12px; cursor:pointer;
  background:linear-gradient(135deg, rgba(20,26,40,.94), rgba(12,15,24,.94));
  border:1px solid rgba(120,150,220,.42);
  box-shadow:0 12px 32px -14px rgba(0,0,0,.85);
  display:inline-flex; align-items:center; gap:6px; -webkit-tap-highlight-color:transparent;
}
#gm-dual-ctl button:active{ transform:translateY(1px); }
#gm-dual-ctl button.on{ border-color:rgba(92,140,255,.95); box-shadow:0 0 20px -4px rgba(92,140,255,.75); color:#bcd4ff; }
#gm-dual-sync{ padding:10px 12px; }
#gm-dual-sync::after{ content:"Sync"; margin-left:2px; font-weight:700; letter-spacing:.05em; }
#gm-dual-ctl #gm-dual-toggle{ display:inline-flex; }
@media (min-width:760px){ #gm-dual-ctl #gm-dual-toggle{ display:none !important; } }   /* wide = auto split, no toggle needed */
/* NARROW forced-dual (phone opted in): make the deck a SLIM rail so the analyzer
   pane on the right gets the maximum possible width. */
@media (max-width:759px){
  #view-console.ws-split{
    grid-template-columns: var(--gm-split, clamp(84px, 24%, 190px)) var(--gm-divider, 12px) minmax(0,1fr) !important;
  }
  #view-console.ws-split > .ws-left,
  #view-console.ws-split > .ws-right{ padding:8px 8px 40px; }
  #view-console.ws-split > .ws-left .orbz,
  #view-console.ws-split > .ws-left .orbs{ grid-template-columns:1fr !important; }
}
@media (prefers-reduced-motion: reduce){
  #view-console.ws-split > .ws-left::before,
  #view-console.ws-split > .ws-right::before{ transition:none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ⚡ ADVANCED AUTO ENGINES (2026-07-14) — the button rows below the Digital
   Sentinel (DIFFERS) and Parity Genesis (EVEN/ODD) cards. Each button is an
   independent auto engine with a REALISTIC circular loader that spins while the
   AI deliberates (anti-manipulation + precision gate) before every fire, and a
   held/fired state so the user can trust it never trades a dirty setup.
   See [[project-advanced-auto-engines]].
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-autobar{
  margin:12px 0 4px; padding:12px 12px 10px; border-radius:16px;
  background:linear-gradient(160deg, rgba(20,26,40,.72), rgba(10,13,22,.82));
  border:1px solid rgba(120,150,220,.26);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 16px 40px -22px rgba(0,0,0,.8);
}
.gm-autobar-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px; flex-wrap:wrap; }
.gm-ab-title{ font:800 11px/1 var(--font-display,sans-serif); letter-spacing:.12em; text-transform:uppercase; color:#cfe0ff; }
.gm-ab-trust{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:700; color:#9fe6c4;
  padding:4px 9px; border-radius:999px; background:rgba(46,232,143,.10); border:1px solid rgba(46,232,143,.32); }
.gm-ab-shield{ filter:drop-shadow(0 0 5px rgba(46,232,143,.6)); }
.gm-autobar-btns{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
@media (max-width:520px){ .gm-autobar-btns{ grid-template-columns:1fr; } }
.gm-autobtn{
  position:relative; overflow:hidden; cursor:pointer; text-align:left;
  padding:10px 34px 10px 12px; border-radius:13px; min-height:54px;
  background:linear-gradient(150deg, rgba(28,34,52,.9), rgba(14,18,30,.92));
  border:1px solid rgba(120,150,220,.3); color:#eaf0fb;
  transition:border-color .2s, box-shadow .2s, transform .12s, background .2s;
  -webkit-tap-highlight-color:transparent;
}
.gm-autobtn:hover{ border-color:rgba(120,150,220,.55); }
.gm-autobtn:active{ transform:translateY(1px); }
.gm-autobtn .gm-ab-face{ display:grid; gap:2px; position:relative; z-index:2; }
.gm-autobtn .gm-ab-face b{ font:800 13px/1.12 var(--font-display,sans-serif); letter-spacing:.02em; }
.gm-autobtn .gm-ab-face small{ font-size:10px; color:#9aa6bd; }
.gm-autobtn.is-on{ border-color:rgba(92,140,255,.9); box-shadow:0 0 20px -5px rgba(92,140,255,.65), inset 0 0 0 1px rgba(92,140,255,.35); background:linear-gradient(150deg, rgba(30,44,78,.95), rgba(16,22,40,.95)); }
.gm-autobtn.is-on .gm-ab-face b{ color:#bcd4ff; }
.gm-autobtn.is-on::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:1;
  background:radial-gradient(120% 80% at 50% 0%, rgba(92,140,255,.14), transparent 60%); }
/* the REALISTIC circular loader — a masked conic ring, visible only while busy */
.gm-ab-spin{ position:absolute; top:9px; right:10px; width:18px; height:18px; border-radius:50%; z-index:4; opacity:0; transition:opacity .2s;
  background:conic-gradient(from 0deg, rgba(92,140,255,0), #5c8cff 78%, #c58cff);
  -webkit-mask:radial-gradient(farthest-side, transparent 56%, #000 59%); mask:radial-gradient(farthest-side, transparent 56%, #000 59%); }
.gm-autobtn.is-thinking .gm-ab-spin{ opacity:1; animation:gmAbSpin .7s linear infinite; }
.gm-autobtn.is-firing  .gm-ab-spin{ opacity:1; animation:none; background:conic-gradient(from 0deg, #2ee88f, #2ee88f); }
.gm-autobtn.is-held    .gm-ab-spin{ opacity:.55; animation:none; background:conic-gradient(from 0deg, #8b93a8, #8b93a8); }
@keyframes gmAbSpin{ to{ transform:rotate(360deg); } }
/* live-state tints */
.gm-autobtn.is-thinking{ border-color:rgba(255,211,106,.8) !important; box-shadow:0 0 18px -6px rgba(255,211,106,.6); }
.gm-autobtn.is-firing{ border-color:rgba(46,232,143,.92) !important; box-shadow:0 0 22px -5px rgba(46,232,143,.72); }
.gm-autobtn.is-held, .gm-autobtn.is-held{ border-color:rgba(160,175,205,.5); }
.gm-autobar-status{ margin-top:9px; font-size:11px; color:#aeb9cf; min-height:15px; letter-spacing:.01em; }
body[data-tier="regular"] [data-gm-autobar]{ display:none; }   /* engines are premium, like the cards */
@media (prefers-reduced-motion: reduce){ .gm-autobtn.is-thinking .gm-ab-spin{ animation:none; } }


/* ═══════════════════════════════════════════════════════════════════════════
   ⚡ CHART AUTO ENGINES grid + 4K/HIGH-DPI + SCROLL/VERTICAL polish (2026-07-14)
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-autobar-chart{ margin:10px 0 6px; }
.gm-autobar-btns-4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
@media (max-width:640px){ .gm-autobar-btns-4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:360px){ .gm-autobar-btns-4{ grid-template-columns:1fr; } }

/* 4K / HIGH-DPI — crisp type everywhere; on very large monitors use more of the
   screen and scale type up a touch so cards read sharp, never tiny. */
html{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
@media (min-width:2000px){
  html{ font-size:17.5px; }
  main.aether-main{ max-width:2080px; margin-inline:auto; }
}
@media (min-width:2600px){
  html{ font-size:19px; }
  main.aether-main{ max-width:2480px; }
}

/* SCROLL — best-ever smoothness: stable gutter (no shift when a scrollbar appears),
   momentum + contained overscroll on every scroller. */
html{ scrollbar-gutter:stable; }
#view-console, main.aether-main, .journal-list,
#view-console.ws-split > .ws-left, #view-console.ws-split > .ws-right{
  -webkit-overflow-scrolling:touch; overscroll-behavior:contain; scrollbar-gutter:stable;
}

/* VERTICAL LAYOUT refine — tighter, cleaner stacked spacing on phones. */
@media (max-width:640px){
  .gm-autobar{ padding:10px 10px 9px; border-radius:14px; }
  .gm-autobtn{ min-height:50px; padding:9px 30px 9px 11px; }
  .gm-autobtn .gm-ab-face b{ font-size:12px; }
  .gm-autobtn .gm-ab-face small{ font-size:9px; }
}


/* ═══ VERTICAL / SCROLL / 4K polish · pass 2 (2026-07-14) ═══ */
/* Advance the vertical (portrait) rhythm: each analyzer breathes + a soft snap so
   cards feel like a curated deck (proximity = gentle, never traps the scroll). */
@media (max-width:760px){
  #view-console{ scroll-snap-type:y proximity; }
  #view-console > .analyzer[data-analyzer]{ scroll-snap-align:start; scroll-margin-top:10px; margin-bottom:16px; }
}
/* Smoothest-ever scroll: momentum + contained overscroll + stable gutter everywhere. */
html{ scroll-behavior:smooth; }
* { scrollbar-width:thin; }
/* 4K / high-DPI: on huge panels, cards + controls scale up so nothing reads tiny. */
@media (min-width:2000px){
  .analyzer[data-analyzer]{ border-radius:24px; }
  .gm-autobtn{ min-height:60px; } .gm-autobtn .gm-ab-face b{ font-size:14.5px; }
  .gm-autobar-status{ font-size:12.5px; }
}
@media (min-width:2600px){
  .gm-autobtn .gm-ab-face b{ font-size:16px; } .gm-autobtn .gm-ab-face small{ font-size:11px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   🧠 LIVE DIGIT TRIGGER analyzer dashboard (2026-07-14). Injected into #oub-panel.
   ═══════════════════════════════════════════════════════════════════════════ */
.oubx{ margin:10px 0 6px; padding:11px 12px; border-radius:14px;
  background:linear-gradient(160deg, rgba(20,26,40,.7), rgba(10,13,22,.82)); border:1px solid rgba(120,150,220,.24); }
.oubx-head{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:9px; flex-wrap:wrap; }
.oubx-k{ font:800 10.5px/1 var(--font-display,sans-serif); letter-spacing:.12em; text-transform:uppercase; color:#bcd0f2; }
.oubx-sub{ font-size:10.5px; font-weight:700; color:#9fb4d8; }
.oubx-grid{ display:grid; grid-template-columns:repeat(10, minmax(0,1fr)); gap:5px; }
@media (max-width:520px){ .oubx-grid{ grid-template-columns:repeat(5, minmax(0,1fr)); } }
.oubx-cell{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  height:52px; border-radius:9px; padding:4px 2px 3px; overflow:hidden;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); }
.oubx-cell > i{ position:absolute; left:0; right:0; bottom:0; opacity:.5; }
.oubx-cell[data-tier="hot"]  > i{ background:linear-gradient(180deg,#7dffc4,#21d07a); }
.oubx-cell[data-tier="warm"] > i{ background:linear-gradient(180deg,#5c8cff,#3a4a8a); }
.oubx-cell[data-tier="mid"]  > i{ background:linear-gradient(180deg,#8b93a8,#4a4f60); }
.oubx-cell[data-tier="cool"] > i{ background:linear-gradient(180deg,#3a4256,#242838); }
.oubx-cell > b{ position:relative; z-index:1; font:800 14px/1 var(--font-display,sans-serif); color:#eaf0fb; }
.oubx-cell > em{ position:relative; z-index:1; font-style:normal; font-size:8.5px; color:#9aa6bd; margin-top:1px; }
.oubx-cell[data-trig="1"]{ border-color:rgba(255,207,90,.7); box-shadow:0 0 0 1px rgba(255,207,90,.35) inset; }
.oubx-cell[data-overdue="1"]{ animation:oubxPulse 1.5s ease-in-out infinite; }
@keyframes oubxPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(92,140,255,.4);} 50%{ box-shadow:0 0 12px 1px rgba(92,140,255,.55);} }
.oubx-triggers{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:9px; }
@media (max-width:420px){ .oubx-triggers{ grid-template-columns:1fr; } }
.oubx-trig{ border-radius:12px; padding:9px 10px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); transition:border-color .2s, box-shadow .2s; }
.oubx-trig[data-armed="1"]{ border-color:rgba(92,140,255,.85); box-shadow:0 0 16px -6px rgba(92,140,255,.6); }
.oubx-trig-h{ display:flex; justify-content:space-between; align-items:baseline; gap:6px; }
.oubx-trig-h b{ font:800 13px/1 var(--font-display,sans-serif); color:#eaf0fb; }
.oubx-trig-h span{ font-size:10px; color:#9aa6bd; }
.oubx-trig-stats{ display:flex; gap:10px; flex-wrap:wrap; margin:6px 0 5px; font-size:10px; color:#9aa6bd; }
.oubx-trig-stats b{ color:#dfe8fb; font-weight:800; }
.oubx-bar{ height:5px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.oubx-bar > i{ display:block; height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg,#5c8cff,#c58cff); transition:width .35s ease; }
.oubx-trig-note{ margin-top:5px; font-size:10px; font-weight:700; color:#9fb4d8; }
.oubx-trig.oubx-hit{ animation:oubxHit .9s ease; }
@keyframes oubxHit{ 0%{ box-shadow:0 0 0 0 rgba(125,255,196,.7);} 30%{ box-shadow:0 0 24px 3px rgba(125,255,196,.7); border-color:#7dffc4;} 100%{ box-shadow:0 0 0 0 rgba(125,255,196,0);} }
.oub-autoskip{ display:inline-flex; align-items:center; gap:6px; font-size:12px; }
@media (prefers-reduced-motion: reduce){ .oubx-cell[data-overdue="1"], .oubx-trig.oubx-hit{ animation:none; } }


/* ═══ accurate popup ads — sale price + 3-tier bundle rows (match the storefront) ═══ */
.aad-tiers[hidden]{ display:none; }
.aadt-wrap{ display:grid; gap:6px; margin:8px 0 2px; }
.aadt{ position:relative; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:6px 10px;
  padding:8px 10px; border-radius:10px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.05); }
.aadt-n{ font-weight:800; font-size:12px; color:#eaf0fb; }
.aadt-p{ font-weight:700; font-size:12px; white-space:nowrap; text-align:right; color:#dfe8fb; }
.aadt-p s{ opacity:.5; font-weight:600; margin-right:2px; }
.aadt-s{ font-weight:800; font-size:9.5px; color:#04140d; background:linear-gradient(135deg,#7dffc4,#21d07a); padding:2px 6px; border-radius:999px; white-space:nowrap; }
.aadt.is-best{ border-color:#ffcf5a; background:linear-gradient(135deg, rgba(255,207,90,.17), rgba(255,207,90,.05)); box-shadow:0 0 0 1px rgba(255,207,90,.4) inset; }
.aadt-rib{ position:absolute; top:-8px; right:8px; z-index:2; font:800 8px/1 var(--font-display,sans-serif); letter-spacing:.1em; color:#3a2a00; background:linear-gradient(135deg,#ffe08a,#ffcf5a); padding:2px 7px; border-radius:999px; box-shadow:0 4px 10px -4px rgba(255,190,60,.8); }
.aad-sec-offer b{ color:#fff; }

/* ═══════════════════════════════════════════════════════════════════════════
   💎 ULTRA-REAL SIGNATURE CARDS (2026-07-15) — takes the signature glass cards to
   a physical, "hold-it-in-your-hand" finish, WITHOUT touching perf:
   • a true light-catching FRESNEL RIM (gradient border via the padding/border-box
     trick, so it respects border-radius — bright top-left, dark bottom-right)
   • an 8-layer DEPTH + BEVEL shadow stack (tight contact → mid → far ambient +
     inner top-bevel highlight + bottom colour bloom + outer jewel halo)
   • a fine SURFACE GRAIN (soft-light SVG noise) so glass never reads as flat plastic
   • a crisp GLASS SPECULAR reflection band near the top edge
   • a rich hover LIFT (via `top`, NOT transform — the scroll-reveal owns transform)
   ZERO backdrop-filter, ZERO new perpetual animation (hover-only motion), so it
   stays buttery per [[project-smoothness-system-upgrade]] + the 2026-07-15 scroll
   fix. Appended LAST so it out-specifies the §3 signature block above.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  --gm-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.5'/%3E%3C/svg%3E");
}

.analyzer[data-analyzer].analyzer-themed{
  position:relative !important;
  border:1px solid transparent !important;
  border-radius:22px !important;
  background:
    var(--gm-grain) padding-box,
    linear-gradient(159deg,
      color-mix(in srgb, var(--sig-c) 30%, rgba(18,21,30,.80)) 0%,
      rgba(10,12,19,.80) 50%,
      color-mix(in srgb, var(--sig-c) 14%, rgba(6,8,13,.86)) 100%) padding-box,
    radial-gradient(135% 92% at 50% -14%, color-mix(in srgb, var(--sig-c) 40%, transparent), transparent 54%) padding-box,
    linear-gradient(150deg,
      color-mix(in srgb, var(--sig-c) 88%, #ffffff) 0%,
      color-mix(in srgb, var(--sig-c) 46%, #ffffff) 15%,
      rgba(255,255,255,.05) 44%,
      rgba(0,0,0,.34) 72%,
      color-mix(in srgb, var(--sig-c) 30%, transparent) 100%) border-box !important;
  background-blend-mode: soft-light, normal, normal, normal !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.24),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 14%, transparent),
    inset 0 46px 60px -60px rgba(255,255,255,.10),
    inset 0 -60px 84px -58px color-mix(in srgb, var(--sig-c) 60%, transparent),
    0 2px 5px rgba(0,0,0,.55),
    0 16px 34px -18px rgba(0,0,0,.78),
    0 44px 92px -42px rgba(0,0,0,.92),
    0 0 60px -20px color-mix(in srgb, var(--sig-c) 55%, transparent) !important;
  transition: top .34s cubic-bezier(.22,.61,.36,1), box-shadow .34s ease !important;
  top:0;
}

/* crisp glass specular reflection near the top edge (+ a faint jewel underglow) */
.analyzer[data-analyzer].analyzer-themed::before{
  background:
    linear-gradient(163deg, rgba(255,255,255,.26) 0%, rgba(255,255,255,.07) 7%, transparent 24%),
    linear-gradient(202deg, color-mix(in srgb, var(--sig-c) 15%, transparent), transparent 34%) !important;
}

/* HOVER — a real lift + the jewel halo swells (pointer devices only; `top` dodges the
   scroll-reveal's transform so both coexist). */
@media (hover:hover){
  .analyzer[data-analyzer].analyzer-themed:hover{
    top:-4px;
    box-shadow:
      inset 0 1.5px 0 rgba(255,255,255,.32),
      inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 24%, transparent),
      inset 0 -70px 96px -58px color-mix(in srgb, var(--sig-c) 78%, transparent),
      0 3px 8px rgba(0,0,0,.55),
      0 26px 54px -20px rgba(0,0,0,.82),
      0 62px 122px -46px rgba(0,0,0,.95),
      0 0 96px -14px color-mix(in srgb, var(--sig-c) 82%, transparent) !important;
  }
}
@media (prefers-reduced-motion: reduce){
  .analyzer[data-analyzer].analyzer-themed{ transition:none !important; top:0 !important; }
}

/* the hero EXECUTION PANEL inside each card gets the same fresnel-rim + depth so the
   card reads as one machined piece, not a flat panel on a glass card. */
.analyzer-themed .analyzer-signature{
  border:1px solid transparent !important;
  background:
    linear-gradient(151deg,
      color-mix(in srgb, var(--sig-c) 11%, rgba(12,14,21,.93)),
      color-mix(in srgb, var(--sig-c) 5%, rgba(7,8,13,.95))) padding-box,
    linear-gradient(150deg,
      color-mix(in srgb, var(--sig-c) 66%, #ffffff) 0%,
      rgba(255,255,255,.04) 46%,
      color-mix(in srgb, var(--sig-c) 24%, transparent) 100%) border-box !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -34px 48px -42px color-mix(in srgb, var(--sig-c) 52%, transparent),
    0 12px 28px -16px rgba(0,0,0,.62) !important;
}

/* the big themed EXECUTE button — glossy machined-glass with a fresnel edge */
.btn-signature{
  border:1px solid transparent !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), transparent 44%) padding-box,
    linear-gradient(160deg,
      color-mix(in srgb, var(--sig-c) 30%, rgba(16,16,24,.92)),
      color-mix(in srgb, var(--sig-c) 12%, rgba(8,8,12,.92))) padding-box,
    linear-gradient(160deg,
      color-mix(in srgb, var(--sig-c) 82%, #ffffff) 0%,
      rgba(255,255,255,.05) 50%,
      color-mix(in srgb, var(--sig-c) 30%, transparent) 100%) border-box !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 16%, transparent),
    0 10px 26px -8px color-mix(in srgb, var(--sig-c) 52%, transparent),
    0 3px 8px -3px rgba(0,0,0,.6) !important;
}
.btn-signature:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c) 26%, transparent),
    0 14px 34px -8px color-mix(in srgb, var(--sig-c) 70%, transparent),
    0 4px 10px -3px rgba(0,0,0,.65) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   🎛 MOVEABLE GENESIS EXECUTION DOCK (2026-07-15) — the parity execution panel is
   now a DRAGGABLE floating card (grab the header bar) with a proper circular X
   close, instead of a fixed full-width bottom sheet. Centred + width-capped; the
   slide-up entrance is preserved; the live drag offset rides on `--gdx/--gdy` so
   it composes with the open/close transform (JS wires the header pointer-drag).
   Appended LAST so it out-specifies the base .genesis-dock rules. ══════════════ */
.genesis-dock{
  position:fixed !important; left:0 !important; right:0 !important; bottom:14px !important;
  margin-inline:auto !important; z-index:1000 !important;
  width:min(360px, calc(100% - 20px)) !important; border-radius:20px !important;
  transform:translateY(140%) !important;                 /* closed (drag offset ignored while hidden) */
  will-change:transform;
  box-shadow:0 30px 70px -26px rgba(0,0,0,.94), 0 0 0 1px rgba(255,255,255,.06) inset !important;
}
.genesis-dock[data-open="1"]{ transform:translate(var(--gdx,0px), var(--gdy,0px)) !important; }
.genesis-dock.is-dragging{ transition:none !important; }

/* header = the drag handle (grip pill + label on the left, X on the right) */
.gen-dock-head{
  display:flex; align-items:center; gap:10px;
  margin:-6px -6px 12px; padding:8px 8px 10px;
  cursor:grab; touch-action:none; -webkit-user-select:none; user-select:none;
  border-bottom:1px solid rgba(255,255,255,.07); border-radius:16px 16px 0 0;
}
.gen-dock-head:active{ cursor:grabbing; }
.genesis-dock.is-dragging .gen-dock-head{ cursor:grabbing; }
.gen-dock-head .gen-dock-grip{ margin:0; width:30px; height:4px; flex:none; background:rgba(255,255,255,.32); }
.gen-dock-title{ font:800 9.5px/1 var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--text-dim); white-space:nowrap; }

/* the circular X close (replaces the old "✕ Cancel" text button) */
.gen-dock-x{
  margin-left:auto; width:30px; height:30px; flex:none; padding:0;
  display:grid; place-items:center; border-radius:50%; cursor:pointer; line-height:1;
  font:800 15px/1 system-ui, sans-serif; color:#e8ecf6;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15);
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .22s cubic-bezier(.34,1.56,.64,1);
}
.gen-dock-x:hover{ background:rgba(255,86,108,.20); border-color:rgba(255,86,108,.62); color:#ffd7dd; transform:rotate(90deg); }
.gen-dock-x:active{ transform:rotate(90deg) scale(.9); }
@media (prefers-reduced-motion: reduce){ .gen-dock-x:hover, .gen-dock-x:active{ transform:none; } }

/* ═══════════════════════════════════════════════════════════════════════════
   🎯 PRECISION BARRIER MATRIX (2026-07-15) — the advanced Over/Under barrier grid.
   ═══════════════════════════════════════════════════════════════════════════ */
.ou-pro{
  margin:14px 0; padding:14px; border-radius:16px;
  background:linear-gradient(158deg, rgba(139,147,168,.10), rgba(10,12,19,.55));
  border:1px solid rgba(139,147,168,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 12px 28px -18px rgba(0,0,0,.7);
}
.ou-pro-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }
.ou-pro-title{ font:800 12.5px/1 var(--font-display); letter-spacing:.02em; color:#eaf0fb; }
.ou-pro-sample{ font:700 9.5px/1 var(--font-display); letter-spacing:.08em; text-transform:uppercase; color:#8ea0c2; background:rgba(255,255,255,.05); padding:5px 9px; border-radius:999px; }

.ou-pro-rec{ display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:13px; margin-bottom:13px;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.09); }
.ou-pro-rec[data-tone="prime"]{ background:linear-gradient(150deg, rgba(46,230,140,.16), rgba(255,255,255,.02)); border-color:rgba(46,230,140,.42); }
.ou-pro-rec[data-tone="good"]{ background:linear-gradient(150deg, rgba(63,224,255,.14), rgba(255,255,255,.02)); border-color:rgba(63,224,255,.4); }
.ou-pro-rec[data-tone="wait"]{ background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.1); }
.ou-pro-rec-main{ display:grid; gap:3px; min-width:0; flex:1; }
.ou-pro-rec-lbl{ font:800 14px/1.15 var(--font-display); color:#fff; }
.ou-pro-rec[data-tone="prime"] .ou-pro-rec-lbl{ color:#8dffc4; }
.ou-pro-rec[data-tone="good"] .ou-pro-rec-lbl{ color:#a6ecff; }
.ou-pro-rec-sub{ font:600 11px/1.35 var(--font-body,inherit); color:#b6c2d8; }
.ou-pro-fire{ flex:none; padding:12px 16px; border-radius:11px; border:none; cursor:pointer; white-space:nowrap;
  font:900 13px/1 var(--font-display); letter-spacing:.04em; color:#05130d;
  background:linear-gradient(135deg,#7dffc0,#2ecf7e); box-shadow:0 8px 22px -8px rgba(46,230,140,.7); transition:transform .12s ease, box-shadow .2s ease, filter .2s ease; }
.ou-pro-fire:hover{ transform:translateY(-1px); box-shadow:0 12px 28px -8px rgba(46,230,140,.85); }
.ou-pro-fire:active{ transform:scale(.97); }
.ou-pro-fire:disabled{ filter:grayscale(.7) brightness(.7); cursor:not-allowed; box-shadow:none; }

.ou-pro-group{ display:flex; align-items:center; gap:10px; margin-top:9px; }
.ou-pro-glbl{ flex:none; width:58px; font:800 10px/1.1 var(--font-display); letter-spacing:.06em; }
.ou-pro-glbl[data-d="over"]{ color:#7dffc0; }
.ou-pro-glbl[data-d="under"]{ color:#7fb6ff; }
.ou-pro-chips{ display:grid; grid-template-columns:repeat(auto-fit, minmax(50px,1fr)); gap:7px; flex:1; min-width:0; }

.ou-chip{ display:grid; gap:1px; padding:8px 4px; border-radius:11px; cursor:pointer; text-align:center;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1); transition:transform .12s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.ou-chip:hover{ transform:translateY(-2px); border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.08); }
.ou-chip:active{ transform:scale(.95); }
.ou-chip-n{ font:900 15px/1 var(--font-display); color:#fff; letter-spacing:.01em; }
.ou-chip-p{ font:800 11px/1 var(--font-display); color:#cdd7ea; }
.ou-chip-e{ font:700 9.5px/1 var(--font-display); color:#8ea0c2; }
.ou-chip[data-k="prime"]{ background:linear-gradient(160deg, rgba(46,230,140,.24), rgba(46,230,140,.06)); border-color:rgba(46,230,140,.6); box-shadow:0 0 18px -6px rgba(46,230,140,.7); }
.ou-chip[data-k="prime"] .ou-chip-e{ color:#8dffc4; }
.ou-chip[data-k="good"]{ background:linear-gradient(160deg, rgba(63,224,255,.16), rgba(63,224,255,.04)); border-color:rgba(63,224,255,.44); }
.ou-chip[data-k="good"] .ou-chip-e{ color:#a6ecff; }
.ou-chip[data-k="avoid"]{ opacity:.5; }
.ou-chip[data-k="avoid"] .ou-chip-e{ color:#ff9aa3; }
.ou-chip[data-best="1"]{ outline:2px solid rgba(46,230,140,.75); outline-offset:1px; }

.ou-pro-foot{ margin:12px 0 0; font:500 10.5px/1.45 var(--font-body,inherit); color:#8493ad; }
@media (max-width:480px){ .ou-pro-group{ flex-direction:column; align-items:stretch; gap:5px; } .ou-pro-glbl{ width:auto; } }

/* ═══════════════════════════════════════════════════════════════════════════
   📈 CHART LABELS FIX + NEXT-LEVEL (2026-07-15) — Rise/Fall · Asians · Vanilla.
   ROOT CAUSE of "overlapping labels": the price-axis <text> lived INSIDE the
   preserveAspectRatio="none" SVG, so it was stretched/distorted AND pinned to the
   right edge where it collided with the strike handle. FIX: retire the SVG axis
   text; render a crisp HTML price scale on the LEFT (never distorted), add a live
   current-price pill on that axis, and reposition NOW / FORECAST out of the way.
   Also scales cleanly in fullscreen (the "expansion") now that labels aren't SVG.
   Appended LAST. ══════════════════════════════════════════════════════════════ */
.dc-axis text{ display:none !important; }                       /* SVG axis text retired → crisp HTML below */

.dc-yaxis{ position:absolute; inset:0; pointer-events:none; z-index:2; }
.dc-yaxis span{ position:absolute; left:5px; transform:translateY(-50%);
  font:700 9px/1 var(--font-display); color:rgba(196,210,238,.58);
  background:rgba(8,12,22,.5); padding:2px 5px; border-radius:5px;
  font-variant-numeric:tabular-nums; letter-spacing:-.2px; white-space:nowrap; }

.dc-live-tag{ position:absolute; left:5px; transform:translateY(-50%); z-index:5;
  font:800 10px/1 var(--font-display); color:#06121f; background:#59b8ff;
  padding:3px 7px; border-radius:6px; box-shadow:0 2px 10px rgba(0,0,0,.55);
  font-variant-numeric:tabular-nums; white-space:nowrap; pointer-events:none; }
.dc-live-tag::after{ content:""; position:absolute; right:-5px; top:50%; transform:translateY(-50%);
  border:5px solid transparent; border-left-color:#59b8ff; }
.dc-live-tag[data-t="up"]{ background:#2ee86f; }
.dc-live-tag[data-t="up"]::after{ border-left-color:#2ee86f; }
.dc-live-tag[data-t="down"]{ background:#ff5b6a; color:#fff; }
.dc-live-tag[data-t="down"]::after{ border-left-color:#ff5b6a; }
.dc-live-tag[data-t="flat"]{ background:#59b8ff; }
.dc-live-tag[data-t="flat"]::after{ border-left-color:#59b8ff; }

/* NOW centred on the separator (bottom); the compact ✨AI badge centred over the forecast
   zone at the top, BELOW the strike handle's z-index so it can never fight it for space. */
.dc-now{ left:78.3% !important; transform:translateX(-50%); top:auto !important; bottom:6px; }
.dc-fore-lbl{ left:89.1% !important; right:auto !important; transform:translateX(-50%); top:5px; z-index:1 !important; font-size:.5rem; padding:2px 6px; }

/* fullscreen ("expansion") — the crisp HTML labels scale up instead of stretching */
.deriv-chart.dc-fs .dc-yaxis span{ font-size:12px; padding:3px 7px; }
.deriv-chart.dc-fs .dc-live-tag{ font-size:13.5px; padding:4px 9px; }
.deriv-chart.dc-fs .dc-now, .deriv-chart.dc-fs .dc-fore-lbl{ font-size:.66rem; }
.deriv-chart.dc-fs .dc-fs-btn{ position:sticky; top:0; }

/* ═══════════════════════════════════════════════════════════════════════════
   📌 PINNED CONSOLE ADS (2026-07-15) — sticky ad banner at the top of the trade
   console (see gmPinnedAds). Compact, accent-tinted, brand-true social buttons.
   ═══════════════════════════════════════════════════════════════════════════ */
#gm-pinned-ads{ position:sticky; top:0; z-index:60; display:grid; gap:8px; margin:0 0 10px; }
#gm-pinned-ads[hidden]{ display:none; }
.gpa{ --gpa-c:#a78bfa; --gpa-c2:#7c5cf0;
  display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:14px;
  background:linear-gradient(120deg, color-mix(in srgb, var(--gpa-c) 20%, rgba(12,15,24,.94)), color-mix(in srgb, var(--gpa-c2) 12%, rgba(8,10,16,.96)));
  border:1px solid color-mix(in srgb, var(--gpa-c) 44%, transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 14px 34px -18px color-mix(in srgb, var(--gpa-c) 60%, transparent);
  backdrop-filter:none; }
.gpa[data-accent="cyan"]{ --gpa-c:#3fe0ff; --gpa-c2:#2a9fd0; }
.gpa[data-accent="amber"]{ --gpa-c:#ffb14a; --gpa-c2:#d18a25; }
.gpa[data-accent="emerald"]{ --gpa-c:#35e39b; --gpa-c2:#2aa77a; }
.gpa[data-accent="rose"]{ --gpa-c:#ff8fa3; --gpa-c2:#d04f9c; }
.gpa[data-accent="lime"]{ --gpa-c:#a6ff6b; --gpa-c2:#7bc94a; }
.gpa[data-accent="coral"]{ --gpa-c:#ff8f70; --gpa-c2:#d85b4a; }
.gpa[data-accent="steel"]{ --gpa-c:#cfd8e6; --gpa-c2:#9ea4ad; }
.gpa[data-accent="gold"]{ --gpa-c:#ffd75a; --gpa-c2:#caa23a; }
.gpa[data-accent="magenta"]{ --gpa-c:#ff6ad5; --gpa-c2:#d13caa; }
.gpa[data-accent="teal"]{ --gpa-c:#4fe0d0; --gpa-c2:#2aa79a; }
.gpa[data-accent="sunset"]{ --gpa-c:#ff9e5a; --gpa-c2:#ff5a7a; }
.gpa[data-accent="ocean"]{ --gpa-c:#5ab0ff; --gpa-c2:#2a6ff0; }
.gpa[data-accent="royal"]{ --gpa-c:#8f9bff; --gpa-c2:#5a5cf0; }
.gpa[data-accent="crimson"]{ --gpa-c:#ff5a6a; --gpa-c2:#c02234; }
.gpa[data-accent="ice"]{ --gpa-c:#bfe8ff; --gpa-c2:#7fbfe0; }
.gpa-emoji{ font-size:22px; line-height:1; flex:none; }
.gpa-txt{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.gpa-txt b{ font:800 14px/1.2 var(--font-display); color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gpa-txt i{ font:500 11.5px/1.3 var(--font-body,inherit); font-style:normal; color:#b8c4da; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gpa-sale{ flex:none; font:900 11px/1 var(--font-display); letter-spacing:.04em; color:#180a05; background:linear-gradient(135deg,#ffd75a,#ff9e2c); padding:6px 10px; border-radius:999px; box-shadow:0 6px 16px -6px rgba(255,180,60,.7); }
.gpa-cta{ flex:none; display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:999px; text-decoration:none; white-space:nowrap;
  font:800 12.5px/1 var(--font-display); color:#0a0e18; background:linear-gradient(135deg, var(--gpa-c), var(--gpa-c2)); box-shadow:0 8px 20px -8px color-mix(in srgb, var(--gpa-c) 65%, transparent); transition:transform .15s ease, box-shadow .2s ease; }
.gpa-cta:hover{ transform:translateY(-1px); box-shadow:0 12px 26px -8px color-mix(in srgb, var(--gpa-c) 80%, transparent); }
.gpa-socs{ display:inline-flex; gap:6px; flex:none; }
.gpa-soc{ display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; color:#fff; text-decoration:none; transition:transform .15s ease, filter .2s ease; }
.gpa-soc svg{ width:16px; height:16px; }
.gpa-soc:hover{ transform:translateY(-2px); filter:brightness(1.1); }
.gpa-soc-whatsapp{ background:linear-gradient(135deg,#25d366,#128c7e); }
.gpa-soc-telegram{ background:linear-gradient(135deg,#37bdf5,#1d8fd6); }
.gpa-soc-instagram{ background:linear-gradient(120deg,#feda75,#fa7e1e 28%,#d62976 62%,#962fbf 95%); }
.gpa-x{ flex:none; width:28px; height:28px; border-radius:50%; cursor:pointer; font:700 16px/1 system-ui; color:#cdd8ee; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); transition:all .18s ease; }
.gpa-x:hover{ background:rgba(255,90,110,.2); border-color:rgba(255,90,110,.55); color:#ffd7dd; }
@media (max-width:640px){
  .gpa{ flex-wrap:wrap; gap:9px; padding:11px 12px; }
  .gpa-txt{ flex:1 1 60%; }
  .gpa-txt i{ white-space:normal; }
  .gpa-cta{ order:5; flex:1 1 100%; justify-content:center; }
  .gpa-socs{ order:4; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   💎 ADVANCED DIGIT CARDS + WARMUP (2026-07-15) — the "liquid tubes" become per-digit
   CARDS: the digit, its live %, a subtle fill bar, and a FAVOURABILITY state so users
   know which to pick (★ prime / good) and which to ⛔ AVOID (red). Plus the warmup look.
   ═══════════════════════════════════════════════════════════════════════════ */
.gdc-heat{ grid-template-columns:repeat(5,1fr) !important; gap:6px !important; height:auto !important; align-items:stretch !important; }
@media (min-width:500px){ .gdc-heat{ grid-template-columns:repeat(10,1fr) !important; } }
.gdc-heat span{ flex-direction:column !important; align-items:center !important; justify-content:flex-start !important; gap:2px !important;
  height:auto !important; min-height:52px; padding:7px 2px 6px !important; overflow:hidden;
  background:rgba(255,255,255,.03) !important; border:1px solid rgba(255,255,255,.08) !important; border-radius:11px !important;
  transition:transform .14s ease, border-color .18s ease, background .18s ease; }
.gdc-heat span::before{ height:calc(8% + var(--v,0) * 30%) !important; opacity:.42 !important; border-radius:0 !important;
  background:linear-gradient(180deg, color-mix(in srgb, var(--dlab-accent) 55%, transparent), transparent) !important; }
.gdc-heat span i{ position:relative; z-index:1; font-size:16px !important; padding-bottom:0 !important; }
.gdc-heat span em{ position:relative; z-index:1; font:700 9px/1 var(--font-mono, ui-monospace, monospace); font-style:normal; color:#aeb9cf; }
/* favourability states */
.gdc-heat span[data-cls="prime"]{ background:rgba(46,230,140,.16) !important; border-color:rgba(46,230,140,.6) !important; box-shadow:0 0 16px -6px rgba(46,230,140,.7); }
.gdc-heat span[data-cls="prime"] i, .gdc-heat span[data-cls="prime"] em{ color:#8dffc4; }
.gdc-heat span[data-cls="prime"]::after{ content:"★"; position:absolute; top:2px; right:3px; z-index:2; font-size:8px; color:#8dffc4; }
.gdc-heat span[data-cls="good"]{ background:rgba(63,224,255,.12) !important; border-color:rgba(63,224,255,.44) !important; }
.gdc-heat span[data-cls="good"] i{ color:#a6ecff; }
.gdc-heat span[data-cls="avoid"]{ background:rgba(255,86,108,.15) !important; border-color:rgba(255,86,108,.55) !important; }
.gdc-heat span[data-cls="avoid"] i{ color:#ff9aa3; text-decoration:line-through; text-decoration-color:rgba(255,90,110,.65); }
.gdc-heat span[data-cls="avoid"] em{ color:#ff9aa3; }
.gdc-heat span[data-cls="avoid"]::after{ content:"⛔"; position:absolute; top:1px; right:2px; z-index:2; font-size:9px; }
/* warmup look */
.gm-dlab.is-warming .gm-dlab-intel{ opacity:.9; }
.gdc-conf-bar span.is-warming{ background:linear-gradient(90deg,#ffc74a,#ff9a2c) !important; box-shadow:0 0 10px rgba(255,170,60,.6) !important; }
[data-dlab-call].is-warming{ color:#ffd88a !important; }
.gdc-trade.is-warming{ filter:grayscale(.55) brightness(.82); cursor:progress; }

/* ⚡ "Fired via" source chip on every win/loss card — which engine/button/mode fired it */
.journal-via{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:9px 0 3px; padding:7px 11px; border-radius:10px;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); font:600 11px/1.4 var(--font-body, inherit); color:#9fb0cc; }
.journal-via b{ color:#eaf0fb; font-weight:800; }
.journal-via-why{ color:#8493ad; font-style:italic; }
.journal-trade-card.j-win .journal-via{ border-color:rgba(46,230,140,.22); }
.journal-trade-card.j-loss .journal-via{ border-color:rgba(255,90,110,.22); }

/* ═══════════════════════════════════════════════════════════════════════════
   💎 AI DIGIT PREDICTION → advanced favourability cards (2026-07-15). The prediction
   tubes now carry a ⛔ AVOID / ★ PRIME / good state (via data-cls, from gmDigitFavor)
   so users instantly see which digits to pick and which to SKIP. The liquid fill still
   encodes the AI's per-digit read. Warm-gated. Appended LAST to out-specify §5909.
   ═══════════════════════════════════════════════════════════════════════════ */
.digit-distribution-bars button[data-cls]{ position:relative; overflow:hidden; }
.digit-distribution-bars button[data-cls] i{ font-size:17px; }
/* ★ PRIME pick — green */
.digit-distribution-bars button[data-cls="prime"]{ border-color:rgba(46,230,140,.62) !important;
  background:linear-gradient(to top, rgba(46,230,140,.42) var(--h), rgba(8,20,14,.5) var(--h)) !important;
  box-shadow:0 0 18px -5px rgba(46,230,140,.6) !important; }
.digit-distribution-bars button[data-cls="prime"] i, .digit-distribution-bars button[data-cls="prime"] b{ color:#8dffc4 !important; }
.digit-distribution-bars button[data-cls="prime"]::after{ content:"★"; position:absolute; top:2px; right:3px; font-size:9px; color:#8dffc4; z-index:2; }
/* good — cyan */
.digit-distribution-bars button[data-cls="good"]{ border-color:rgba(63,224,255,.5) !important;
  background:linear-gradient(to top, rgba(63,224,255,.3) var(--h), rgba(8,14,26,.5) var(--h)) !important; }
.digit-distribution-bars button[data-cls="good"] i{ color:#a6ecff !important; }
/* ⛔ AVOID — red, struck-through, so users don't select it */
.digit-distribution-bars button[data-cls="avoid"]{ border-color:rgba(255,86,108,.62) !important;
  background:linear-gradient(to top, rgba(255,86,108,.34) var(--h), rgba(26,8,12,.55) var(--h)) !important; }
.digit-distribution-bars button[data-cls="avoid"] i{ color:#ff9aa3 !important; text-decoration:line-through; text-decoration-color:rgba(255,90,110,.7); }
.digit-distribution-bars button[data-cls="avoid"] b{ color:#ff9aa3 !important; }
.digit-distribution-bars button[data-cls="avoid"]::after{ content:"⛔"; position:absolute; top:1px; right:2px; font-size:10px; z-index:2; }
.digit-distribution-bars button[data-cls="avoid"]:hover{ border-color:rgba(255,86,108,.85) !important; }
/* warmup — the pick label glows amber while it observes the first 50 ticks */
.digit-distribution-head strong.is-warming{ color:#ffd88a !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   ⏳ PRICE-ANALYZER WARMUP BADGE + 🕒 HISTORY COOLDOWN STRIP (2026-07-15)
   .gm-warmbadge → amber "warming up · N/100 ticks" banner injected under a price
   analyzer's <header> while it observes its first 100 ticks (digit cards show their own).
   #gm-cooldown-strip → live per-analyzer auto-cooldown chips pinned at the top of the
   Trade History section. Both injected by warmbadge.js. Appended LAST (last-wins).
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-warmbadge{ display:flex; align-items:center; gap:10px; margin:10px 0 4px; padding:9px 13px; border-radius:13px;
  background:linear-gradient(120deg, rgba(255,180,60,.16), rgba(255,140,40,.06)); border:1px solid rgba(255,180,70,.34);
  box-shadow:inset 0 1px 0 rgba(255,220,150,.14); animation:gwbPulse 2.4s ease-in-out infinite; }
@keyframes gwbPulse{ 0%,100%{ border-color:rgba(255,180,70,.34); } 50%{ border-color:rgba(255,200,110,.6); } }
.gm-warmbadge .gwb-txt{ flex:1 1 auto; min-width:0; font:600 11.5px/1.35 var(--font-body, system-ui); color:#ffd7a0; }
.gm-warmbadge .gwb-pct{ flex:0 0 auto; font:800 12px/1 var(--font-display, system-ui); color:#ffb64a; letter-spacing:.02em; }
.gm-warmbadge .gwb-bar{ flex:0 0 92px; height:6px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.gm-warmbadge .gwb-bar i{ display:block; height:100%; border-radius:99px; width:0;
  background:linear-gradient(90deg,#ffc74a,#ff9a2c); box-shadow:0 0 8px rgba(255,160,60,.7); transition:width .5s ease; }
@media (max-width:520px){ .gm-warmbadge .gwb-txt{ font-size:10.5px; } .gm-warmbadge .gwb-bar{ flex-basis:64px; } }

#gm-cooldown-strip{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 13px; padding:9px 13px; border-radius:13px;
  background:linear-gradient(120deg, rgba(120,160,255,.11), rgba(255,255,255,.02)); border:1px solid rgba(120,160,255,.3);
  box-shadow:inset 0 1px 0 rgba(180,205,255,.1); }
#gm-cooldown-strip[hidden]{ display:none !important; }
#gm-cooldown-strip .gcs-lbl{ font:800 10px/1 var(--font-display, system-ui); letter-spacing:.1em; text-transform:uppercase; color:#9fb6e0; }
#gm-cooldown-strip .gcs-chip{ position:relative; overflow:hidden; font:700 11px/1 var(--font-display, system-ui); color:#dbe4f5;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.11); border-radius:999px; padding:6px 12px 8px; }
#gm-cooldown-strip .gcs-chip b{ color:#a9c4ff; font-weight:800; }
#gm-cooldown-strip .gcs-chip i{ position:absolute; left:0; bottom:0; height:2px; width:0;
  background:#7da2ff; box-shadow:0 0 8px #7da2ff; transition:width .45s linear; }


/* ════════════════════════════════════════════════════════════════════════════
   MASSIVE PASS · 2026-07-16 — appended LAST (last-wins over earlier blocks).
   (1) HISTORY SCROLL FIX   (2) BARRIER-MATRIX AUTO SWITCHES   (3) ULTRA-REAL CARDS
   ════════════════════════════════════════════════════════════════════════════ */

/* ── (1) HISTORY SCROLL FIX ──────────────────────────────────────────────────
   .journal-list (§6516) was a nested max-height:min(640px,72vh) / overflow-y:auto
   box with overscroll-behavior:contain, sitting INSIDE the page scroll (mobile) or
   the sticky .ws-left pane (desktop). Two nested scroll containers + contained
   overscroll = the "can't scroll the history" trap: the log captured the gesture,
   hit its 640px bound, and refused to chain to the parent. Let the log FLOW and
   scroll as ONE surface with its container — exactly how the touch panes behave. */
.journal-list{
  max-height:none !important;
  overflow:visible !important;
  overscroll-behavior:auto !important;
  -webkit-overflow-scrolling:auto;
}

/* ── (2) PRECISION BARRIER MATRIX · AUTO OVER / UNDER SWITCHES ────────────────
   Injected by gmOverUnderAuto into #ou-adv. Pick a digit (1–8), then arm ONE of the
   two mutually-exclusive switches; the engine auto-fires Over/Under at that barrier. */
.oup-auto{ margin-top:14px; padding:14px; border-radius:16px;
  background:linear-gradient(160deg, rgba(20,28,44,.9), rgba(12,17,28,.94));
  border:1px solid rgba(120,150,210,.22);
  box-shadow:inset 0 1px 0 rgba(180,205,255,.08), 0 18px 50px -34px rgba(0,0,0,.85);
  display:grid; gap:12px; }
.oup-auto.is-armed{ border-color:rgba(120,170,255,.5);
  box-shadow:inset 0 1px 0 rgba(180,205,255,.12), 0 0 34px -14px rgba(90,150,255,.5); }
.oup-auto-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.oup-auto-ttl{ font:800 11px/1 var(--font-display,system-ui); letter-spacing:.09em; text-transform:uppercase; color:#cfe0ff; }
.oup-auto-status{ font:700 10.5px/1.35 var(--font-display,system-ui); color:#9fb2d6; text-align:right; max-width:60%; }
.oup-auto.is-armed .oup-auto-status{ color:#bcd4ff; }

.oup-digitsel{ display:grid; grid-template-columns:repeat(8,1fr); gap:6px; }
.oup-dg{ appearance:none; cursor:pointer; border:1px solid rgba(255,255,255,.12); border-radius:11px; padding:9px 0;
  background:rgba(255,255,255,.04); color:#dbe6fb; font:800 15px/1 var(--font-display,system-ui);
  transition:transform .18s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.oup-dg:hover{ border-color:rgba(150,180,255,.5); }
.oup-dg.is-sel{ background:linear-gradient(180deg, rgba(90,150,255,.34), rgba(60,110,220,.2)); border-color:rgba(130,180,255,.85);
  color:#fff; box-shadow:0 0 18px -6px rgba(90,150,255,.8); transform:translateY(-1px); }

.oup-auto-switches{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:420px){ .oup-auto-switches{ grid-template-columns:1fr; } }
.oup-sw{ appearance:none; cursor:pointer; text-align:left; display:flex; align-items:center; gap:10px;
  padding:11px 13px; border-radius:14px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03);
  transition:border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .2s ease; }
.oup-sw:hover{ transform:translateY(-1px); }
.oup-sw-ic{ font-size:16px; line-height:1; opacity:.7; }
.oup-sw-lbl{ flex:1 1 auto; min-width:0; display:grid; gap:2px; }
.oup-sw-lbl b{ font:800 13.5px/1 var(--font-display,system-ui); color:#eef4ff; }
.oup-sw-lbl b em{ font-style:normal; }
.oup-sw-lbl small{ font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted,#8b93a8); }
.oup-sw-track{ flex:0 0 auto; width:42px; height:24px; border-radius:99px; background:rgba(255,255,255,.1); position:relative; transition:background .25s ease; }
.oup-sw-knob{ position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#e8eefc;
  box-shadow:0 2px 6px rgba(0,0,0,.5); transition:transform .28s cubic-bezier(.4,1.3,.5,1); }
.oup-sw.is-on .oup-sw-knob{ transform:translateX(18px); }
/* OVER = green / up · UNDER = blue / down (platform directional colours) */
.oup-sw-over.is-on{ border-color:rgba(46,230,140,.7); background:linear-gradient(120deg, rgba(46,230,140,.18), rgba(46,230,140,.05));
  box-shadow:0 0 26px -10px rgba(46,230,140,.75); }
.oup-sw-over.is-on .oup-sw-ic{ color:#7dffc4; opacity:1; }
.oup-sw-over.is-on .oup-sw-track{ background:linear-gradient(90deg, rgba(46,230,140,.5), rgba(46,230,140,.85)); }
.oup-sw-under.is-on{ border-color:rgba(90,150,255,.7); background:linear-gradient(120deg, rgba(90,150,255,.2), rgba(90,150,255,.05));
  box-shadow:0 0 26px -10px rgba(90,150,255,.75); }
.oup-sw-under.is-on .oup-sw-ic{ color:#9fc0ff; opacity:1; }
.oup-sw-under.is-on .oup-sw-track{ background:linear-gradient(90deg, rgba(90,150,255,.5), rgba(90,150,255,.9)); }
.oup-auto-note{ font-size:10px; line-height:1.5; color:var(--text-muted,#8b93a8); }

/* ── (3) ULTRA-REAL CARD POLISH + SMOOTHNESS ─────────────────────────────────
   Depth + buttery interactions only — compositor-friendly (transform/opacity/shadow),
   hover effects scoped to fine-pointer so touch never gets sticky states. No new
   backdrop-filter (respects the mobile anti-lag system). Borders left to the jewel-hue
   signature theming; we only add motion + depth. */
.analyzer[data-analyzer]{
  transition:transform .55s cubic-bezier(.22,.61,.36,1), box-shadow .55s ease, border-color .5s ease !important;
}
@media (hover:hover) and (pointer:fine){
  .analyzer[data-analyzer]:hover{
    transform:translateY(-3px);
    box-shadow:0 34px 90px -44px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.07);
  }
}
.btn-action, .ou-chip, .gdc-trade, .oup-dg, .oup-sw, .dc-chip, .digit-distribution-bars button, .gm-dlab-power{
  transition:transform .2s cubic-bezier(.22,.61,.36,1), box-shadow .25s ease, background .25s ease, border-color .25s ease, filter .2s ease !important;
}
@media (hover:hover) and (pointer:fine){
  .btn-action:hover, .ou-chip:hover{ transform:translateY(-1.5px); filter:brightness(1.06); }
}
.btn-action:active, .ou-chip:active, .oup-dg:active, .oup-sw:active{ transform:translateY(0) scale(.97); }


/* ════════════════════════════════════════════════════════════════════════════
   CONSOLE CARD REALISM v2 + trade-console offer-ends chip (2026-07-16)
   Appended LAST (last-wins). Deeper, smoother analyzer cards + a ⏳ offer-ends chip
   on the pinned ad. All compositor-only (transform/box-shadow), hover scoped to
   fine-pointer so touch never gets sticky states, no new backdrop-filter.
   ════════════════════════════════════════════════════════════════════════════ */

/* ⏳ pinned-ad offer-ends chip (mirrors the home card's urgency line) */
.gpa-ends{ display:inline-flex; align-items:center; gap:5px; white-space:nowrap;
  font:800 10.5px/1 var(--font-display, system-ui); letter-spacing:.02em; color:#cfe0ff;
  background:rgba(120,150,220,.14); border:1px solid rgba(120,150,220,.3); border-radius:8px; padding:4px 9px; }
.gpa-ends.is-soon{ color:#ffd7a0; background:rgba(255,150,50,.16); border-color:rgba(255,160,60,.45); }

/* ── ULTRA-REAL CARD PASS v2 — deeper realism + smoother, springier motion ──
   Resting state keeps each card's jewel signature glow (untouched). On hover the card
   lifts on a rich MULTI-LAYER shadow stack (contact + key + ambient + top light edge)
   that reads like real elevated glass. Sub-panels get additive inset highlights so the
   card feels layered, not flat. Controls press with a tactile spring. */
.analyzer[data-analyzer]{
  transition: transform .52s cubic-bezier(.22,.61,.36,1), box-shadow .52s cubic-bezier(.22,.61,.36,1), border-color .45s ease !important;
}
@media (hover:hover) and (pointer:fine){
  .analyzer[data-analyzer]:hover{
    transform: translateY(-4px);
    box-shadow:
      0 2px 5px rgba(0,0,0,.34),
      0 18px 38px -16px rgba(0,0,0,.6),
      0 52px 98px -56px rgba(0,0,0,.92),
      inset 0 1px 0 rgba(255,255,255,.09) !important;
  }
}
/* layered inner surfaces read like real stacked glass (additive insets, no colour override) */
.analyzer[data-analyzer] .glass-inset,
.analyzer[data-analyzer] .analyzer-mc,
.analyzer[data-analyzer] .nep-cp,
.analyzer[data-analyzer] .amc-meter,
.analyzer[data-analyzer] .digit-distribution-bars,
.analyzer[data-analyzer] .gm-dlab-card,
.analyzer[data-analyzer] .gdc-heat{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 20px -14px rgba(0,0,0,.7);
}
/* buttery, springy, tactile interactive controls */
.btn-action, .btn-signature, .ou-chip, .gdc-trade, .oup-sw, .oup-dg, .gm-autobtn, .gm-dlab-power, .dc-chip, .digit-distribution-bars button{
  transition: transform .18s cubic-bezier(.34,1.42,.5,1), box-shadow .25s ease, background .25s ease, border-color .25s ease, filter .2s ease !important;
}
.btn-action:active, .btn-signature:active, .ou-chip:active, .gdc-trade:active, .oup-dg:active, .gm-autobtn:active{ transform: scale(.965); }


/* ════════════════════════════════════════════════════════════════════════════
   FUTURISTIC DROPDOWNS + SKILLI-SPEED SL/TP + AUTO-SKIP SWITCH + IDLE-FADE +
   ANTI-GLITCH (2026-07-16). Appended LAST (last-wins).
   ════════════════════════════════════════════════════════════════════════════ */

/* — futuristic, high-readability native dropdowns across the whole console — */
#view-console select, .oub-panel select, .analyzer select, .quick-speed-panel select, .orb-cd-dropdown select{
  appearance:none; -webkit-appearance:none;
  font:700 12.5px/1.2 var(--font-display, system-ui); color:#eaf1ff; letter-spacing:.01em;
  background:
    linear-gradient(135deg, rgba(26,34,52,.96), rgba(14,19,30,.98)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%237fa2ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center;
  background-size:auto, 12px;
  border:1px solid rgba(130,160,220,.32); border-radius:11px; padding:9px 30px 9px 12px; cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease; }
#view-console select:hover, .oub-panel select:hover, .analyzer select:hover{ border-color:rgba(150,180,255,.6); }
#view-console select:focus, .oub-panel select:focus, .analyzer select:focus{ outline:none; border-color:rgba(150,185,255,.85); box-shadow:0 0 0 3px rgba(120,160,255,.22); }
#view-console select option, .oub-panel select option, .analyzer select option{ background:#0e1320; color:#eaf1ff; font-weight:600; }

/* — Skilli Speed → risk-managed stop-loss / take-profit card — */
.skilli-speed-card .ss-risk{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:9px 0 4px; }
.ss-risk-f{ display:grid; gap:3px; min-width:0; }
.ss-risk-f span{ font:800 9px/1 var(--font-display, system-ui); letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted,#8b93a8); }
.ss-risk-f input{ width:100%; box-sizing:border-box; font:800 13px/1 var(--font-display, system-ui); font-variant-numeric:tabular-nums; color:#eef4ff;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:8px 10px; }
.ss-risk-f input:focus{ outline:none; border-color:rgba(150,185,255,.8); box-shadow:0 0 0 3px rgba(120,160,255,.2); }
.skilli-speed-card .ss-pnl{ display:flex; align-items:center; justify-content:space-between; margin:2px 0 4px; padding:6px 11px; border-radius:9px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); font:700 10px/1 var(--font-display, system-ui); letter-spacing:.06em; text-transform:uppercase; color:#9aa6bd; }
.skilli-speed-card .ss-pnl[hidden]{ display:none; }
.skilli-speed-card .ss-pnl b{ font-size:14px; letter-spacing:0; text-transform:none; font-variant-numeric:tabular-nums; color:#e6e9f2; }
.skilli-speed-card .ss-pnl b[data-tone="up"]{ color:#7dffc4; }
.skilli-speed-card .ss-pnl b[data-tone="down"]{ color:#ff8a9c; }

/* — auto-skip: reuses the oub toggle switch; a shield-amber accent distinguishes it — */
.oub-switch-skip .oub-toggle input:checked + .oub-slider{ background:linear-gradient(90deg,#ffb347,#ff8a1e) !important; box-shadow:0 0 16px -4px rgba(255,150,40,.7) !important; }

/* — 🕒 IDLE-FADE: secondary feature panels dim after 20s idle (JS adds .gm-idle); ALWAYS
     restored on hover / focus-within so no control is ever trapped. Opacity only — never
     collapses height (so inputs can't be clipped). — */
.gm-fade-panel{ transition:opacity .6s ease, filter .6s ease; }
.gm-fade-panel.gm-idle:not(:hover):not(:focus-within){ opacity:.34; filter:saturate(.75); }

/* — 🧿 ANTI-GLITCH: stop sub-pixel jitter / flicker on the animated cards + injected panels — */
.analyzer[data-analyzer], .oub-panel, .skilli-speed-card, .quick-speed-panel, .reinvest-panel,
.orb-cooldown-card, .journal-trade-card, .win-loss-card{ -webkit-backface-visibility:hidden; backface-visibility:hidden; }
.skilli-speed-card, .quick-speed-panel, .reinvest-panel, .orb-cooldown-card{ contain:layout style; }


/* ════════════════════════════════════════════════════════════════════════════
   AI DIGIT PREDICTION — upgraded action buttons (2026-07-17). Appended LAST.
   "Best smart trade" (green primary) + "Trade selected digit" (blue secondary):
   two-line icon buttons with glossy depth, a specular sheen sweep on hover, and a
   tactile press. Out-specifies the earlier `.digit-distribution-head button`!important.
   ════════════════════════════════════════════════════════════════════════════ */
.digit-distribution-head .ddh-btn{
  flex:1 1 0; min-width:0; display:flex; align-items:center; gap:9px; text-align:left;
  padding:9px 12px; border-radius:13px; cursor:pointer; position:relative; overflow:hidden; border:1px solid transparent;
  transition:transform .18s cubic-bezier(.34,1.42,.5,1), box-shadow .25s ease, filter .2s ease, border-color .2s ease; }
.digit-distribution-head .ddh-btn .ddh-ic{ flex:0 0 auto; font-size:17px; line-height:1; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
.digit-distribution-head .ddh-btn .ddh-tx{ display:grid; gap:1px; min-width:0; }
.digit-distribution-head .ddh-btn .ddh-tx b{ font:800 12.5px/1.05 var(--font-display, system-ui); letter-spacing:.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.digit-distribution-head .ddh-btn .ddh-tx i{ font-style:normal; font-size:8.5px; letter-spacing:.05em; text-transform:uppercase; opacity:.74; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* specular sheen sweep on hover */
.digit-distribution-head .ddh-btn::after{ content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.24) 48%, transparent 66%);
  transform:translateX(-120%); transition:transform .6s ease; }
.digit-distribution-head .ddh-btn > *{ position:relative; z-index:2; }
@media (hover:hover){
  .digit-distribution-head .ddh-btn:hover{ transform:translateY(-2px); filter:brightness(1.07); }
  .digit-distribution-head .ddh-btn:hover::after{ transform:translateX(120%); }
}
.digit-distribution-head .ddh-btn:active{ transform:translateY(0) scale(.97); }

/* 🎯 Best smart trade — green primary, glossy depth */
.digit-distribution-head .ddh-btn-smart{
  border-color:rgba(125,255,196,.55) !important;
  background:linear-gradient(160deg, rgba(70,240,165,.34), rgba(30,180,120,.16) 58%, rgba(10,60,44,.32)) !important;
  color:#eafff6 !important;
  box-shadow:inset 0 1px 0 rgba(210,255,236,.35), 0 10px 24px -12px rgba(46,230,140,.75) !important; }
.digit-distribution-head .ddh-btn-smart .ddh-tx i{ color:#9dffcf; opacity:.92; }

/* ✋ Trade selected digit — blue secondary */
.digit-distribution-head .ddh-btn-sel{
  border-color:rgba(120,165,255,.5) !important;
  background:linear-gradient(160deg, rgba(90,150,255,.28), rgba(50,95,210,.14) 58%, rgba(12,26,60,.32)) !important;
  color:#eef3ff !important;
  box-shadow:inset 0 1px 0 rgba(200,220,255,.3), 0 10px 24px -12px rgba(90,150,255,.7) !important; }
.digit-distribution-head .ddh-btn-sel .ddh-tx i{ color:#a9c4ff; opacity:.92; }

@media (max-width:400px){
  .digit-distribution-head .ddh-btn{ padding:8px 10px; gap:7px; }
  .digit-distribution-head .ddh-btn .ddh-ic{ font-size:15px; }
}


/* ════════════════════════════════════════════════════════════════════════════
   AI-BUTTON TOUCH FIX + DROPDOWN POLISH + PINNED-AD COUNTDOWN (2026-07-17). LAST.
   ════════════════════════════════════════════════════════════════════════════ */

/* — 🎯 AI-prediction buttons: the "expands big on touch" bug was a STUCK :hover state
     firing on tap (mobile emulates hover). Neutralise hover on touch devices + hard-cap
     the size so a tap can only ever SHRINK, never grow. — */
.digit-distribution-head .ddh-btn{ touch-action:manipulation; -webkit-tap-highlight-color:transparent; user-select:none; max-height:60px; }
.digit-distribution-head .ddh-btn .ddh-tx{ max-width:100%; }
.digit-distribution-head .ddh-btn:active{ transform:scale(.97) !important; }
@media (hover:none), (pointer:coarse){
  .digit-distribution-head .ddh-btn:hover{ transform:none !important; filter:none !important; box-shadow:inherit; }
  .digit-distribution-head .ddh-btn::after{ content:none !important; }
}

/* — dropdowns: a touch of extra polish + a smarter focus ring; the option list itself is
     OS-rendered so we style the closed control + its chevron/focus state. — */
#view-console select, .oub-panel select, .analyzer select{
  min-height:38px; background-position:auto, right 11px center; transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
#view-console select:focus, .oub-panel select:focus, .analyzer select:focus{ background-color:rgba(20,28,46,.99); }
@media (hover:hover){ #view-console select:hover, .oub-panel select:hover{ box-shadow:0 6px 18px -12px rgba(120,160,255,.6); } }

/* — pinned-ad live countdown <b> — */
.gpa-ends b{ font-variant-numeric:tabular-nums; font-weight:800; letter-spacing:.02em; }


/* ════════════════════════════════════════════════════════════════════════════
   ▾ CUSTOM DROPDOWN PANELS (2026-07-17) — the futuristic <select> replacement.
   Appended LAST. Paired with gmCustomSelect in aether.js.
   ════════════════════════════════════════════════════════════════════════════ */
.gm-sel-wrap{ position:relative; display:inline-flex; vertical-align:middle; min-width:118px; max-width:100%; }
.gm-sel-wrap > select{ display:none !important; }
.gm-sel-btn{ flex:1 1 auto; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer;
  font:700 12.5px/1.2 var(--font-display, system-ui); color:#eaf1ff; letter-spacing:.01em;
  background:linear-gradient(135deg, rgba(26,34,52,.96), rgba(14,19,30,.98));
  border:1px solid rgba(130,160,220,.32); border-radius:11px; padding:9px 12px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .15s ease; }
.gm-sel-btn .gm-sel-val{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.gm-sel-btn .gm-sel-chev{ flex:0 0 auto; color:#7fa2ff; font-size:11px; transition:transform .25s cubic-bezier(.34,1.4,.5,1); }
.gm-sel-btn:active{ transform:scale(.98); }
@media (hover:hover){ .gm-sel-btn:hover{ border-color:rgba(150,180,255,.6); box-shadow:0 6px 18px -12px rgba(120,160,255,.6); } }
.gm-sel-wrap.is-open .gm-sel-btn{ border-color:rgba(150,185,255,.9); box-shadow:0 0 0 3px rgba(120,160,255,.22); }
.gm-sel-wrap.is-open .gm-sel-chev{ transform:rotate(180deg); color:#a9c4ff; }

.gm-sel-menu{ position:fixed; z-index:2147483000;
  max-height:min(260px, 52vh); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  background:linear-gradient(160deg, rgba(20,27,42,.99), rgba(11,15,24,.995));
  border:1px solid rgba(140,170,230,.42); border-radius:13px; padding:6px;
  box-shadow:0 26px 64px -22px rgba(0,0,0,.92), 0 0 0 1px rgba(255,255,255,.05) inset;
  animation:gmSelIn .16s ease; scrollbar-width:thin; }
.gm-sel-menu[hidden]{ display:none; }
@keyframes gmSelIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
.gm-sel-menu::-webkit-scrollbar{ width:8px; }
.gm-sel-menu::-webkit-scrollbar-thumb{ background:rgba(140,160,200,.32); border-radius:99px; }
.gm-sel-opt{ display:block; width:100%; text-align:left; cursor:pointer; border:0; border-radius:9px;
  font:600 12.5px/1.25 var(--font-display, system-ui); color:#dbe4f5; background:transparent; padding:9px 11px;
  transition:background .15s ease, color .15s ease; }
@media (hover:hover){ .gm-sel-opt:hover{ background:rgba(120,160,255,.16); color:#fff; } }
.gm-sel-opt.is-sel{ background:linear-gradient(120deg, rgba(90,150,255,.3), rgba(60,110,220,.15)); color:#fff; font-weight:800; }
.gm-sel-opt.is-sel::after{ content:"✓"; float:right; color:#9fc0ff; font-weight:900; }
.gm-sel-opt:disabled{ opacity:.4; cursor:not-allowed; }


/* ════════════════════════════════════════════════════════════════════════════
   💧 ULTRA-REALISTIC LIQUID DIGIT TUBES (2026-07-17). Appended LAST (out-specifies
   the earlier flat data-cls fills). The AI-prediction 0-9 tubes become real glass
   test-tubes: a glass shell (rim highlight + diagonal reflection + inner depth), a
   LIQUID column (::before) filled to --h with a 3-stop depth gradient + a bright
   meniscus surface + surface glow + a subtle compositor-only bob, an ADVANCED per-digit
   colour system (prime/good/avoid/neutral), and the number/percent floating above.
   ════════════════════════════════════════════════════════════════════════════ */
.digit-distribution-bars button{
  position:relative !important; overflow:hidden !important; isolation:isolate;
  border-radius:14px 14px 11px 11px !important;
  border:1px solid rgba(255,255,255,.16) !important;
  background:
    linear-gradient(115deg, transparent 40%, rgba(255,255,255,.12) 46%, transparent 53%),   /* diagonal glass reflection */
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02) 22%, rgba(0,0,0,.24)) !important;   /* empty-glass shell */
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.3),
    inset 0 0 0 1px rgba(255,255,255,.05),
    inset 0 -10px 16px rgba(0,0,0,.44),
    0 8px 18px -10px rgba(0,0,0,.75) !important;
}
/* override the OLD flat data-cls background (same specificity, appended later → wins) */
.digit-distribution-bars button[data-cls="prime"],
.digit-distribution-bars button[data-cls="good"],
.digit-distribution-bars button[data-cls="avoid"],
.digit-distribution-bars button[data-cls="neutral"]{
  background:
    linear-gradient(115deg, transparent 40%, rgba(255,255,255,.12) 46%, transparent 53%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02) 22%, rgba(0,0,0,.24)) !important;
}

/* the LIQUID column */
.digit-distribution-bars button::before{
  content:""; position:absolute; left:2px; right:2px; bottom:2px; z-index:0;
  height:calc(var(--h, 8%) - 2px); min-height:7px; transform-origin:bottom;
  border-radius:7px 7px 9px 9px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.78) 0, rgba(255,255,255,.14) 2px, rgba(255,255,255,0) 7px),   /* meniscus surface */
    linear-gradient(180deg, var(--liq-top, #6ff0b6) 0%, var(--liq-mid, #1fae78) 46%, var(--liq-bot, #0a5c3c) 100%);
  box-shadow:
    0 -2px 11px -2px var(--liq-glow, rgba(46,230,140,.72)),
    inset 0 3px 4px rgba(255,255,255,.42),
    inset 0 -7px 11px rgba(0,0,0,.36);
}
@media (prefers-reduced-motion:no-preference){
  .digit-distribution-bars button::before{ animation:gmLiqBob 3.8s ease-in-out infinite; }
  @keyframes gmLiqBob{ 0%,100%{ transform:scaleY(1); } 50%{ transform:scaleY(1.022); } }
}
/* number + percent float above the liquid */
.digit-distribution-bars button > i{ position:relative; z-index:2; text-shadow:0 1px 3px rgba(0,0,0,.75); }
.digit-distribution-bars button > b{ position:relative; z-index:2; text-shadow:0 1px 2px rgba(0,0,0,.65); }

/* 🎨 ADVANCED per-digit liquid colour system */
.digit-distribution-bars button[data-cls="prime"]{ --liq-top:#8dffc9; --liq-mid:#25c98a; --liq-bot:#0b6b46; --liq-glow:rgba(46,230,140,.82); }
.digit-distribution-bars button[data-cls="good"]{  --liq-top:#a6ecff; --liq-mid:#2fb6e6; --liq-bot:#0c5c80; --liq-glow:rgba(63,224,255,.72); }
.digit-distribution-bars button[data-cls="avoid"]{ --liq-top:#ffb3ba; --liq-mid:#ff5a6c; --liq-bot:#7a1522; --liq-glow:rgba(255,86,108,.78); }
.digit-distribution-bars button[data-cls="neutral"],
.digit-distribution-bars button:not([data-cls]){ --liq-top:#c3d2ee; --liq-mid:#7f9bc8; --liq-bot:#28374f; --liq-glow:rgba(150,180,230,.55); }

/* selected tube — bright glass ring */
.digit-distribution-bars button.selected{
  border-color:rgba(255,255,255,.55) !important;
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.45), 0 0 0 2px rgba(255,255,255,.28), 0 8px 22px -8px rgba(0,0,0,.85) !important;
}


/* ════════════════════════════════════════════════════════════════════════════
   SPEED-PANEL OVERLAP FIX + HYPER-REAL CARDS v3 (2026-07-17). Appended LAST.
   ════════════════════════════════════════════════════════════════════════════ */

/* (1) 🩹 the custom dropdown must NEVER overflow its container. It had min-width:118px,
   but the .quick-speed-panel grid uses minmax(68px,…) cells → the 118px dropdown spilled
   out of its cell and OVERLAPPED the trade actions. Clamp it + let it fill grid cells. */
.gm-sel-wrap{ min-width:0 !important; max-width:100% !important; box-sizing:border-box; }
.quick-speed-panel .gm-sel-wrap, .orb-cd-dropdown .gm-sel-wrap, .analyzer-actions .gm-sel-wrap{ width:100%; }
/* belt-and-braces: nothing in the speed/reinvest panels may overflow its track */
.quick-speed-panel > *, .quick-speed-panel label, .quick-speed-panel .gm-sel-btn{ min-width:0; max-width:100%; }

/* (2) 💎 HYPER-REAL v3 — glossy, deeper interactive surfaces + a richer card lift.
   Compositor-safe + additive; leaves each card's jewel signature glow intact at rest
   (only the hover state replaces the shadow). */
.analyzer .btn-action, .analyzer .btn-signature, .analyzer .ou-chip, .analyzer .gdc-trade,
.analyzer .oup-sw, .analyzer .gm-autobtn, .analyzer .quick-speed-toggle, .analyzer .btn-skilli-speed{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), inset 0 -3px 7px rgba(0,0,0,.26), 0 6px 16px -9px rgba(0,0,0,.66);
}
@media (hover:hover) and (pointer:fine){
  .analyzer[data-analyzer]:hover{
    box-shadow:
      0 2px 5px rgba(0,0,0,.36),
      0 20px 44px -18px rgba(0,0,0,.62),
      0 62px 112px -60px rgba(0,0,0,.95),
      inset 0 1px 0 rgba(255,255,255,.12) !important;
  }
}
/* inner panels read as deeper, stacked frosted glass */
.analyzer .glass-inset, .analyzer .analyzer-mc, .analyzer .nep-cp, .analyzer .amc-meter,
.analyzer .digit-distribution-bars, .analyzer .gm-dlab-card, .analyzer .gdc-heat,
.analyzer .skilli-speed-card, .analyzer .quick-speed-panel, .analyzer .reinvest-panel, .analyzer .orb-cooldown-card{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 10px 24px -16px rgba(0,0,0,.72);
}

/* the analyzer signal while it is still ANALYZING — amber, clearly "not a signal yet" */
.signal.is-warming{ color:#ffd7a0 !important; border-color:rgba(255,180,70,.45) !important;
  background:linear-gradient(120deg, rgba(255,170,60,.16), rgba(255,170,60,.05)) !important;
  animation:gmSigWarm 2.2s ease-in-out infinite; }
@keyframes gmSigWarm{ 0%,100%{ border-color:rgba(255,180,70,.45); } 50%{ border-color:rgba(255,205,120,.78); } }
/* ══════════════════════════════════════════════════════════════════════════
   🎯 TRADING ANALYZERS — analyzer selector TILES  (2026-07-18)
   Retires the legacy holographic ORB look on the 8 selector buttons: the
   circular well, the spinning conic energy ring (::before), the breathing
   core (::after) and the blur(24px) halo (.orb-glow) are all switched off.
   Those buttons ARE the upgraded analyzer selectors, so they now read as
   premium analyzer TILES that carry the same jewel signature hue as the
   analyzer card each one opens (see the --sig-c palette).
   Perf bonus: removes 16 perpetual animations + 8 blur(24px) layers from
   this section — real paint savings on phones (smoothness pass).
   Markup is UNTOUCHED — the data-orb JS wiring still drives selection.
   ══════════════════════════════════════════════════════════════════════════ */
.orb-gallery .orbs {
  grid-template-columns: repeat(auto-fit, minmax(154px, 1fr));
  gap: 12px;
  padding: 6px 0 2px;
}
/* The CELL is now the card; the button becomes a transparent click surface
   stretched over it, so the whole tile (name + description) is clickable. */
.orb-gallery .orb-cell {
  --oc: #7aa0d8;
  position: relative; top: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 96px;
  padding: 13px 14px 12px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--oc) 34%, rgba(255,255,255,.10));
  background:
    radial-gradient(120% 90% at 8% 0%, color-mix(in srgb, var(--oc) 15%, transparent), transparent 62%),
    linear-gradient(168deg, rgba(28,40,64,.92), rgba(9,14,25,.96));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 -18px 30px -24px rgba(0,0,0,.9),
    0 10px 26px -18px rgba(0,0,0,.75);
  transition: border-color .28s ease, box-shadow .28s ease, top .28s cubic-bezier(.22,.61,.36,1);
}
/* signature accent rail down the left edge — the tile's identity colour */
.orb-gallery .orb-cell::before {
  content: ""; position: absolute; left: 0; top: 12%; bottom: 12%; width: 3px;
  border-radius: 0 3px 3px 0; opacity: .85;
  background: linear-gradient(180deg, transparent, var(--oc), transparent);
  transition: top .3s ease, bottom .3s ease, width .3s ease, opacity .3s ease, box-shadow .3s ease;
}
/* ⛔ the old orb chrome — off */
.orb-gallery .orb {
  position: absolute; inset: 0; z-index: 2;
  aspect-ratio: auto; border-radius: inherit;
  border: 0; background: none; box-shadow: none;
  overflow: visible; cursor: pointer; transition: none;
}
.orb-gallery .orb::before,
.orb-gallery .orb::after,
.orb-gallery .orb-glow { content: none !important; display: none !important; animation: none !important; }
.orb-gallery .orb:hover,
.orb-gallery .orb.active,
.orb-gallery .orb.summoned {
  transform: none; border-color: transparent; box-shadow: none; animation: none;
}
/* analyzer name */
.orb-gallery .orb-label {
  position: absolute; z-index: 3;
  inset: auto; left: 14px; right: 12px; top: 12px;
  display: block; text-align: left;
  font-family: var(--font-display);
  font-size: 12.5px; line-height: 1.28; letter-spacing: .035em;
  text-transform: none; color: #eaf2ff;
  text-shadow: 0 1px 3px rgba(0,0,0,.55);
}
.orb-gallery .orb-label::before {
  content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 7px;
  border-radius: 50%; background: var(--oc);
  box-shadow: 0 0 8px color-mix(in srgb, var(--oc) 72%, transparent);
}
/* trade-type description, sits under the (transparent) click surface */
.orb-gallery .orb-desc {
  position: relative; z-index: 1;
  font-size: 11px; line-height: 1.35; letter-spacing: .01em;
  text-align: left;                        /* the gallery centres text by default */
  color: rgba(205,220,240,.72);
}
/* ✅ selected — the rail runs the full height and lights up */
.orb-gallery .orb-cell:has(.orb.active),
.orb-gallery .orb-cell:has(.orb.summoned) {
  border-color: color-mix(in srgb, var(--oc) 74%, #fff);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 24%, transparent),
    0 12px 30px -16px rgba(0,0,0,.8),
    0 0 22px -6px color-mix(in srgb, var(--oc) 52%, transparent);
}
.orb-gallery .orb-cell:has(.orb.active)::before,
.orb-gallery .orb-cell:has(.orb.summoned)::before {
  top: 0; bottom: 0; width: 4px; opacity: 1;
  box-shadow: 0 0 14px color-mix(in srgb, var(--oc) 70%, transparent);
}
.orb-gallery .orb-cell:has(.orb.active) .orb-label { color: #fff; }
/* admin-disabled analyzers read as unavailable at the tile level */
.orb-gallery .orb-cell:has(.orb.admin-disabled) { opacity: .45; filter: grayscale(.55); }
/* hover lift — fine pointers only (a tap must never leave a stuck hover) */
@media (hover: hover) and (pointer: fine) {
  .orb-gallery .orb-cell:hover {
    top: -3px;
    border-color: color-mix(in srgb, var(--oc) 60%, rgba(255,255,255,.14));
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.14),
      0 16px 34px -18px rgba(0,0,0,.8),
      0 0 20px -8px color-mix(in srgb, var(--oc) 44%, transparent);
  }
  .orb-gallery .orb-cell:hover::before { top: 4%; bottom: 4%; opacity: 1; }
}
@media (hover: none), (pointer: coarse) {
  .orb-gallery .orb-cell:hover { top: 0; }
}
/* ── each tile wears the jewel hue of the analyzer card it opens ── */
.orb-gallery .orb-cell:has(.orb-resonance)  { --oc: #3fe0ff; }  /* rise_fall   · cyan   */
.orb-gallery .orb-cell:has(.orb-cascade)    { --oc: #ffb14e; }  /* over_under  · amber  */
.orb-gallery .orb-cell:has(.orb-streak)     { --oc: #35e39b; }  /* CHRONOS     · emerald*/
.orb-gallery .orb-cell:has(.orb-echo)       { --oc: #5c8cff; }  /* matches     · royal  */
.orb-gallery .orb-cell:has(.orb-horizon)    { --oc: #ffce54; }  /* asians      · gold   */
.orb-gallery .orb-cell:has(.orb-stillpoint) { --oc: #a6ff6b; }  /* accumulator · lime   */
.orb-gallery .orb-cell:has(.orb-vanilla)    { --oc: #ff8fa3; }  /* vanilla     · rose   */
.orb-gallery .orb-cell:has(.orb-evenodd)    { --oc: #c58cff; }  /* even_odd    · orchid */
/* phones — two tidy columns */
@media (max-width: 560px) {
  .orb-gallery { padding: 16px 12px; }
  .orb-gallery .orbs { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .orb-gallery .orb-cell { min-height: 92px; padding: 11px 12px 10px; border-radius: 14px; }
  .orb-gallery .orb-label { font-size: 11.5px; left: 12px; top: 11px; }
  .orb-gallery .orb-desc { font-size: 10px; }
}

/* 📍 Journal "Placed from" chip — analyzer NAME + the exact PANEL it was fired from
   (the panel is recorded at fire time by gmMarkSource, so it names the real engine
   rather than guessing from the contract type). */
.journal-via-sec{ padding:2px 8px; border-radius:999px; font-weight:700; letter-spacing:.02em;
  background:rgba(120,170,255,.10); border:1px solid rgba(140,180,255,.22); color:#bcd2f2; }
.journal-via-mode{ padding:2px 7px; border-radius:999px; font-weight:700;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); color:#93a5c2; }
.journal-trade-card.j-win .journal-via-sec{ background:rgba(46,230,140,.10); border-color:rgba(46,230,140,.26); color:#a8f0cc; }
.journal-trade-card.j-loss .journal-via-sec{ background:rgba(255,90,110,.09); border-color:rgba(255,90,110,.24); color:#ffc0c8; }
/* ══════════════════════════════════════════════════════════════════════════
   💎 ORB TILE REALISM — machined glass  (2026-07-18)
   Takes the analyzer selector tiles from "flat glass panel" to the same
   hold-it-in-your-hand finish as the analyzer cards themselves:
     • FRESNEL gradient rim — bright signature edge catching light top-left,
       falling to shadow bottom-right (padding-box/border-box layering, the
       only corner-radius-safe way; border-image ignores border-radius)
     • surface GRAIN (the :root --gm-grain noise, already rasterised for the
       analyzer cards) blended soft-light so glass never reads as plastic
     • 8-LAYER depth stack: bevel + inner ring + signature bloom rising off
       the base + inner contact shade, then a 3-tier drop (contact/mid/far
       ambient) + an outer jewel halo
     • crisp glass SPECULAR sheen across the top (::after)
     • the accent rail becomes a machined lit edge; the signature dot becomes
       a real LED (specular core + bloom + inner shade)
     • tactile :active press — the tile depresses into the surface
   ZERO backdrop-filter, ZERO perpetual animation (hover/press only), so the
   scroll stays buttery per [[project-smoothness-system-upgrade]].
   Tuned per device: lighter shadow stack on phones (fill-rate), hairline
   bevels at ≥2dppx, hover only on fine pointers, motion off on request.
   ══════════════════════════════════════════════════════════════════════════ */
.orb-gallery .orb-cell{
  border: 1px solid transparent;
  /* the desc is an inline <span> blockified into a flex item — without this an
     earlier rule centres the BOX, so text-align:left alone looks centred */
  align-items: flex-start;
  background:
    var(--gm-grain) padding-box,
    radial-gradient(118% 84% at 12% -12%, color-mix(in srgb, var(--oc) 13%, transparent), transparent 58%) padding-box,
    radial-gradient(140% 68% at 50% 118%, color-mix(in srgb, var(--oc) 9%, transparent), transparent 62%) padding-box,
    linear-gradient(168deg, rgba(24,34,55,.95) 0%, rgba(12,17,29,.97) 52%, rgba(6,9,17,.975) 100%) padding-box,
    linear-gradient(148deg,
      color-mix(in srgb, var(--oc) 66%, #ffffff) 0%,
      color-mix(in srgb, var(--oc) 24%, #ffffff) 13%,
      rgba(255,255,255,.05) 42%,
      rgba(0,0,0,.30) 70%,
      rgba(0,0,0,.48) 100%) border-box;
  background-blend-mode: soft-light, normal, normal, normal, normal;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 11%, transparent),
    inset 0 -20px 26px -22px color-mix(in srgb, var(--oc) 26%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.72),
    0 1px 2px rgba(0,0,0,.42),
    0 8px 18px -10px rgba(0,0,0,.60),
    0 22px 44px -24px rgba(0,0,0,.70),
    0 0 18px -12px color-mix(in srgb, var(--oc) 55%, transparent);
  transition: box-shadow .3s ease, top .26s cubic-bezier(.22,.61,.36,1);
}
/* glass specular sheen across the top lip */
.orbs .orb-cell::after{
  content: ""; position: absolute; inset: 0 0 auto 0; height: 44%;
  z-index: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.115), rgba(255,255,255,.028) 38%, transparent 86%);
}
/* the accent rail — now a machined, lit metal edge */
.orb-gallery .orb-cell::before{
  z-index: 2; width: 3px; top: 10%; bottom: 10%;
  border-radius: 0 4px 4px 0; opacity: .9;
  background: linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb, var(--oc) 96%, #fff) 22%,
    var(--oc) 50%,
    color-mix(in srgb, var(--oc) 86%, #000) 78%,
    transparent 100%);
  box-shadow: 0 0 10px -2px color-mix(in srgb, var(--oc) 62%, transparent);
}
/* the signature dot — a real status LED, not a flat circle */
.orb-gallery .orb-label::before{
  width: 8px; height: 8px; margin-right: 8px;
  background: radial-gradient(circle at 32% 28%,
    #fff 0%,
    color-mix(in srgb, var(--oc) 70%, #fff) 26%,
    var(--oc) 62%,
    color-mix(in srgb, var(--oc) 74%, #000) 100%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--oc) 26%, transparent),
    0 0 7px 0 color-mix(in srgb, var(--oc) 66%, transparent),
    inset 0 -1px 1px rgba(0,0,0,.35);
}
/* ✅ selected — deeper bloom + a brighter halo. Border stays transparent so
   the fresnel rim survives (a solid border-color would erase it). */
.orb-gallery .orb-cell:has(.orb.active),
.orb-gallery .orb-cell:has(.orb.summoned){
  border-color: transparent;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.27),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 30%, transparent),
    inset 0 -26px 34px -24px color-mix(in srgb, var(--oc) 48%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.58),
    0 1px 2px rgba(0,0,0,.42),
    0 10px 22px -10px rgba(0,0,0,.64),
    0 26px 50px -26px rgba(0,0,0,.74),
    0 0 26px -8px color-mix(in srgb, var(--oc) 72%, transparent);
}
.orb-gallery .orb-cell:has(.orb.active)::before,
.orb-gallery .orb-cell:has(.orb.summoned)::before{
  top: 0; bottom: 0; width: 4px; opacity: 1;
  box-shadow: 0 0 16px -1px color-mix(in srgb, var(--oc) 78%, transparent);
}
/* tactile press — the tile sinks into the surface (works for touch AND mouse) */
.orb-gallery .orb-cell:has(.orb:active){
  top: 1px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 2px 10px -4px rgba(0,0,0,.72),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 20%, transparent),
    0 1px 2px rgba(0,0,0,.40),
    0 4px 10px -8px rgba(0,0,0,.55);
}
/* hover — fine pointers only, so a tap never leaves a stuck lift */
@media (hover: hover) and (pointer: fine){
  .orb-gallery .orb-cell:hover{
    top: -3px; border-color: transparent;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.26),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 20%, transparent),
      inset 0 -24px 30px -22px color-mix(in srgb, var(--oc) 38%, transparent),
      inset 0 -12px 20px -16px rgba(0,0,0,.62),
      0 2px 4px rgba(0,0,0,.40),
      0 14px 28px -12px rgba(0,0,0,.66),
      0 30px 56px -26px rgba(0,0,0,.74),
      0 0 26px -10px color-mix(in srgb, var(--oc) 66%, transparent);
  }
}
/* phones — same finish, lighter blur budget (fill-rate is the mobile cost) */
@media (max-width: 560px){
  .orb-gallery .orb-cell{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.18),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 11%, transparent),
      inset 0 -16px 22px -20px color-mix(in srgb, var(--oc) 26%, transparent),
      0 1px 2px rgba(0,0,0,.40),
      0 8px 16px -10px rgba(0,0,0,.58),
      0 0 14px -11px color-mix(in srgb, var(--oc) 52%, transparent);
  }
  .orb-gallery .orb-cell:has(.orb.active),
  .orb-gallery .orb-cell:has(.orb.summoned){
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.24),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 28%, transparent),
      inset 0 -20px 26px -20px color-mix(in srgb, var(--oc) 44%, transparent),
      0 1px 2px rgba(0,0,0,.40),
      0 10px 20px -10px rgba(0,0,0,.62),
      0 0 20px -8px color-mix(in srgb, var(--oc) 66%, transparent);
  }
}
/* retina / 4K — hairline bevels so the top light-edge stays a thread, not a bar */
@media (min-resolution: 2dppx){
  .orb-gallery .orb-cell{ box-shadow:
    inset 0 .5px 0 rgba(255,255,255,.24),
    inset 0 0 0 .5px color-mix(in srgb, var(--oc) 13%, transparent),
    inset 0 -20px 26px -22px color-mix(in srgb, var(--oc) 26%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.72),
    0 1px 2px rgba(0,0,0,.42),
    0 8px 18px -10px rgba(0,0,0,.60),
    0 22px 44px -24px rgba(0,0,0,.70),
    0 0 18px -12px color-mix(in srgb, var(--oc) 55%, transparent); }
  .orb-gallery .orb-label::before{ box-shadow:
    0 0 0 .5px color-mix(in srgb, var(--oc) 30%, transparent),
    0 0 7px 0 color-mix(in srgb, var(--oc) 66%, transparent),
    inset 0 -.5px 1px rgba(0,0,0,.35); }
}
@media (prefers-reduced-motion: reduce){
  .orb-gallery .orb-cell{ transition: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   🔬 ORB TILE — ULTRA REALISM v2  (2026-07-18)
   Physically-motivated pass on top of the machined-glass block above. Each
   addition models something real light actually does:
     • TWO-LIGHT SETUP — a warm signature key from top-left plus a cool bounce
       fill from bottom-right, and a thin white KICKER wrapping the far bottom
       -right edge. One light reads flat; two lights sell the 3D form.
     • CHROMATIC DISPERSION on the rim — a cool-shifted stop between the
       signature and the white, the way a real glass edge splits light.
     • ANISOTROPIC brushing — fine directional machining lines (overlay), so
       the surface has a grain DIRECTION, not just noise.
     • ENVIRONMENT REFLECTION — an angled specular streak across the face plus
       light concentrating in the top-left corner, like glass under a softbox.
     • LED LENS + LIGHT BLEED — the dot becomes a domed lens (specular, inner
       shade, internal reflection) that pools real light onto the panel around
       it via a `screen`-blended layer at its exact position.
     • ENGRAVED LETTERING — the name sits proud of the surface with a cut
       shadow beneath, like machined panel type.
     • AMBIENT-OCCLUSION SEAT — a tight near-black contact shadow so the tile
       rests ON the surface instead of hovering above it.
     • GLASS THICKNESS — a second inner bevel line under the top edge, the
       tell-tale double-line of a thick glass panel.
   Still ZERO backdrop-filter and ZERO perpetual animation — every layer is a
   static gradient painted once. Responsive variants are RESTATED here because
   this block sits after the earlier media queries and would otherwise win.
   ══════════════════════════════════════════════════════════════════════════ */
.orb-gallery .orb-cell{
  background:
    var(--gm-grain) padding-box,
    repeating-linear-gradient(102deg, rgba(255,255,255,.016) 0 1px, rgba(0,0,0,.013) 1px 3px) padding-box,
    radial-gradient(44px 31px at 22px 17px, color-mix(in srgb, var(--oc) 13%, transparent), transparent 72%) padding-box,
    radial-gradient(118% 84% at 12% -12%, color-mix(in srgb, var(--oc) 13%, transparent), transparent 58%) padding-box,
    radial-gradient(96% 74% at 104% 110%, rgba(126,170,235,.075), transparent 62%) padding-box,
    linear-gradient(168deg, rgba(24,34,55,.95) 0%, rgba(12,17,29,.97) 52%, rgba(6,9,17,.975) 100%) padding-box,
    linear-gradient(148deg,
      color-mix(in srgb, var(--oc) 66%, #ffffff) 0%,
      color-mix(in srgb, var(--oc) 46%, #cfe6ff) 7%,
      color-mix(in srgb, var(--oc) 24%, #ffffff) 14%,
      rgba(255,255,255,.05) 42%,
      rgba(0,0,0,.32) 70%,
      rgba(0,0,0,.46) 90%,
      rgba(255,255,255,.15) 100%) border-box;
  background-blend-mode: soft-light, overlay, screen, normal, normal, normal, normal;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 2px 1px -1px rgba(255,255,255,.07),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 11%, transparent),
    inset 0 -20px 26px -22px color-mix(in srgb, var(--oc) 26%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.72),
    0 1px 1px rgba(0,0,0,.55),
    0 2px 4px -1px rgba(0,0,0,.45),
    0 8px 18px -10px rgba(0,0,0,.60),
    0 22px 44px -24px rgba(0,0,0,.70),
    0 0 18px -12px color-mix(in srgb, var(--oc) 55%, transparent);
}
/* environment reflection: corner light pool + angled softbox streak + top fade */
.orbs .orb-cell::after{
  inset: 0; height: auto;
  background:
    radial-gradient(64px 42px at 5% 0%, rgba(255,255,255,.11), transparent 72%),
    linear-gradient(116deg, transparent 22%, rgba(255,255,255,.055) 37%, rgba(255,255,255,.016) 45%, transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.022) 34%, transparent 62%);
}
/* the rail gets its own specular edge, like a polished metal insert */
.orb-gallery .orb-cell::before{
  box-shadow:
    0 0 10px -2px color-mix(in srgb, var(--oc) 62%, transparent),
    inset -1px 0 0 rgba(255,255,255,.34);
}
/* machined lettering — raised off the panel with a cut shadow beneath */
.orb-gallery .orb-label{
  color: #e8f1ff;
  text-shadow:
    0 -1px 0 rgba(255,255,255,.10),
    0 1px 0 rgba(0,0,0,.70),
    0 2px 5px rgba(0,0,0,.50);
}
/* the signature dot is now a domed LED lens that lights the panel around it */
.orb-gallery .orb-label::before{
  background: radial-gradient(circle at 34% 26%,
    #ffffff 0%,
    rgba(255,255,255,.92) 11%,
    color-mix(in srgb, var(--oc) 60%, #ffffff) 30%,
    var(--oc) 58%,
    color-mix(in srgb, var(--oc) 80%, #000000) 93%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--oc) 30%, transparent),
    0 0 6px 0 color-mix(in srgb, var(--oc) 72%, transparent),
    0 0 14px 2px color-mix(in srgb, var(--oc) 24%, transparent),
    inset 0 1px 1px rgba(255,255,255,.30),
    inset 0 -1px 1.5px rgba(0,0,0,.42);
}
.orb-gallery .orb-desc{ text-shadow: 0 1px 2px rgba(0,0,0,.55); }
/* ✅ selected — the panel is lit from within, key light strengthens */
.orb-gallery .orb-cell:has(.orb.active),
.orb-gallery .orb-cell:has(.orb.summoned){
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 2px 1px -1px rgba(255,255,255,.09),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 30%, transparent),
    inset 0 -26px 34px -24px color-mix(in srgb, var(--oc) 48%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.58),
    0 1px 1px rgba(0,0,0,.55),
    0 2px 4px -1px rgba(0,0,0,.45),
    0 10px 22px -10px rgba(0,0,0,.64),
    0 26px 50px -26px rgba(0,0,0,.74),
    0 0 26px -8px color-mix(in srgb, var(--oc) 72%, transparent);
}
/* pressed — the kicker dies, the contact shadow tightens, light drops away */
.orb-gallery .orb-cell:has(.orb:active){
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 2px 10px -4px rgba(0,0,0,.72),
    inset 0 0 0 1px color-mix(in srgb, var(--oc) 20%, transparent),
    0 1px 1px rgba(0,0,0,.55),
    0 3px 8px -6px rgba(0,0,0,.55);
}
@media (hover: hover) and (pointer: fine){
  .orb-gallery .orb-cell:hover{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.27),
      inset 0 2px 1px -1px rgba(255,255,255,.09),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 20%, transparent),
      inset 0 -24px 30px -22px color-mix(in srgb, var(--oc) 38%, transparent),
      inset 0 -12px 20px -16px rgba(0,0,0,.62),
      0 1px 1px rgba(0,0,0,.5),
      0 3px 6px -1px rgba(0,0,0,.45),
      0 14px 28px -12px rgba(0,0,0,.66),
      0 30px 56px -26px rgba(0,0,0,.74),
      0 0 26px -10px color-mix(in srgb, var(--oc) 66%, transparent);
  }
}
/* phones — same optics, trimmed blur budget (restated so it wins here) */
@media (max-width: 560px){
  .orb-gallery .orb-cell{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.20),
      inset 0 2px 1px -1px rgba(255,255,255,.06),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 11%, transparent),
      inset 0 -16px 22px -20px color-mix(in srgb, var(--oc) 26%, transparent),
      0 1px 1px rgba(0,0,0,.55),
      0 8px 16px -10px rgba(0,0,0,.58),
      0 0 14px -11px color-mix(in srgb, var(--oc) 52%, transparent);
  }
  .orb-gallery .orb-cell:has(.orb.active),
  .orb-gallery .orb-cell:has(.orb.summoned){
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.26),
      inset 0 2px 1px -1px rgba(255,255,255,.08),
      inset 0 0 0 1px color-mix(in srgb, var(--oc) 28%, transparent),
      inset 0 -20px 26px -20px color-mix(in srgb, var(--oc) 44%, transparent),
      0 1px 1px rgba(0,0,0,.55),
      0 10px 20px -10px rgba(0,0,0,.62),
      0 0 20px -8px color-mix(in srgb, var(--oc) 66%, transparent);
  }
  /* the softbox streak is a desktop-scale cue; at phone size it just muddies */
  .orbs .orb-cell::after{
    background:
      radial-gradient(48px 32px at 5% 0%, rgba(255,255,255,.10), transparent 72%),
      linear-gradient(180deg, rgba(255,255,255,.095) 0%, rgba(255,255,255,.02) 34%, transparent 62%);
  }
}
/* retina / 4K — hairline bevels so the light-edges stay threads, not bars */
@media (min-resolution: 2dppx){
  .orb-gallery .orb-cell{
    box-shadow:
      inset 0 .5px 0 rgba(255,255,255,.26),
      inset 0 1.5px 1px -1px rgba(255,255,255,.07),
      inset 0 0 0 .5px color-mix(in srgb, var(--oc) 13%, transparent),
      inset 0 -20px 26px -22px color-mix(in srgb, var(--oc) 26%, transparent),
      inset 0 -12px 20px -16px rgba(0,0,0,.72),
      0 .5px 1px rgba(0,0,0,.55),
      0 2px 4px -1px rgba(0,0,0,.45),
      0 8px 18px -10px rgba(0,0,0,.60),
      0 22px 44px -24px rgba(0,0,0,.70),
      0 0 18px -12px color-mix(in srgb, var(--oc) 55%, transparent);
  }
  .orb-gallery .orb-label::before{
    box-shadow:
      0 0 0 .5px color-mix(in srgb, var(--oc) 34%, transparent),
      0 0 6px 0 color-mix(in srgb, var(--oc) 72%, transparent),
      0 0 14px 2px color-mix(in srgb, var(--oc) 24%, transparent),
      inset 0 .5px 1px rgba(255,255,255,.30),
      inset 0 -.5px 1.5px rgba(0,0,0,.42);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   🏆 WIN / LOSS CARD — hyper-real machined glass  (2026-07-18)
   Same optical language as the analyzer tiles, but the signature colour is
   the OUTCOME (green win / red loss), so the result stays the first thing
   you read. Fresnel rim + grain + brushed micro-texture + two-light setup +
   depth stack, plus a solid outcome bar down the left edge (an inset shadow,
   NOT a pseudo — the journal card's ::before/::after are already spoken for).
   The "Placed from" plate is recessed INTO the surface like an engraved
   nameplate, which is exactly what it is: the record of which panel fired.
   ZERO backdrop-filter, ZERO animation. !important is required throughout —
   the glass theme block near 11671 sets these with !important already.
   ══════════════════════════════════════════════════════════════════════════ */
.journal-trade-card{ --jc:#8aa0c0; }
.journal-trade-card.j-win{  --jc:#2ee68c; }
.journal-trade-card.j-loss{ --jc:#ff5a6e; }
/* ⚠ Must carry BOTH classes plus the element: the win/loss tint rule is
   `.journal-trade-card.j-win` (0,2,0) and the list rule is
   `.journal-list li.journal-trade-card` (0,2,1) — a plain
   `.journal-trade-card` (0,1,0) loses to both even with !important. */
li.journal-trade-card.j-win,
li.journal-trade-card.j-loss{
  position:relative;
  border:1px solid transparent !important;
  border-radius:16px !important;
  background:
    var(--gm-grain) padding-box,
    repeating-linear-gradient(100deg, rgba(255,255,255,.015) 0 1px, rgba(0,0,0,.012) 1px 3px) padding-box,
    radial-gradient(112% 80% at 10% -10%, color-mix(in srgb, var(--jc) 12%, transparent), transparent 58%) padding-box,
    radial-gradient(92% 70% at 104% 108%, rgba(126,170,235,.06), transparent 62%) padding-box,
    linear-gradient(168deg, rgba(22,32,52,.95) 0%, rgba(11,16,28,.97) 55%, rgba(6,9,17,.975) 100%) padding-box,
    linear-gradient(146deg,
      color-mix(in srgb, var(--jc) 58%, #ffffff) 0%,
      color-mix(in srgb, var(--jc) 20%, #ffffff) 13%,
      rgba(255,255,255,.045) 42%,
      rgba(0,0,0,.32) 72%,
      rgba(0,0,0,.44) 90%,
      rgba(255,255,255,.13) 100%) border-box !important;
  background-blend-mode: soft-light, overlay, normal, normal, normal, normal;
  box-shadow:
    inset 3px 0 0 0 color-mix(in srgb, var(--jc) 88%, transparent),
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 2px 1px -1px rgba(255,255,255,.06),
    inset 0 -18px 26px -22px color-mix(in srgb, var(--jc) 30%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.70),
    0 1px 1px rgba(0,0,0,.55),
    0 2px 4px -1px rgba(0,0,0,.45),
    0 10px 22px -12px rgba(0,0,0,.62),
    0 24px 46px -26px rgba(0,0,0,.70),
    0 0 20px -13px color-mix(in srgb, var(--jc) 60%, transparent) !important;
}
/* the outcome reads brighter on the winning/losing figure itself */
.journal-trade-card .jh{ text-shadow:0 1px 0 rgba(0,0,0,.62), 0 2px 5px rgba(0,0,0,.45); }
/* 📍 "Placed from" — a recessed engraved nameplate, not a floating pill */
.journal-via{
  background:linear-gradient(180deg, rgba(0,0,0,.36), rgba(255,255,255,.018)) !important;
  border:1px solid rgba(255,255,255,.07) !important;
  box-shadow:
    inset 0 1px 3px rgba(0,0,0,.58),
    inset 0 -1px 0 rgba(255,255,255,.055) !important;
}
.journal-via b{ text-shadow:0 1px 0 rgba(0,0,0,.55); }
.journal-via-sec{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 1px 2px -1px rgba(0,0,0,.5);
  text-shadow:0 1px 0 rgba(0,0,0,.4);
}
/* phones — trimmed blur budget, same optics */
@media (max-width:560px){
  li.journal-trade-card.j-win,
  li.journal-trade-card.j-loss{
    box-shadow:
      inset 3px 0 0 0 color-mix(in srgb, var(--jc) 88%, transparent),
      inset 0 1px 0 rgba(255,255,255,.18),
      inset 0 -14px 20px -20px color-mix(in srgb, var(--jc) 28%, transparent),
      0 1px 1px rgba(0,0,0,.55),
      0 8px 16px -10px rgba(0,0,0,.58),
      0 0 14px -12px color-mix(in srgb, var(--jc) 55%, transparent) !important;
  }
}
/* retina / 4K — hairline bevels */
@media (min-resolution:2dppx){
  li.journal-trade-card.j-win,
  li.journal-trade-card.j-loss{
    box-shadow:
      inset 3px 0 0 0 color-mix(in srgb, var(--jc) 88%, transparent),
      inset 0 .5px 0 rgba(255,255,255,.24),
      inset 0 1.5px 1px -1px rgba(255,255,255,.06),
      inset 0 -18px 26px -22px color-mix(in srgb, var(--jc) 30%, transparent),
      inset 0 -12px 20px -16px rgba(0,0,0,.70),
      0 .5px 1px rgba(0,0,0,.55),
      0 2px 4px -1px rgba(0,0,0,.45),
      0 10px 22px -12px rgba(0,0,0,.62),
      0 24px 46px -26px rgba(0,0,0,.70),
      0 0 20px -13px color-mix(in srgb, var(--jc) 60%, transparent) !important;
  }
}
/* ══════════════════════════════════════════════════════════════════════════
   ⛶ CHART FULLSCREEN — column integrity + scroll (2026-07-18)
   The fullscreen centring rule listed five classes by name
   (.dc-plot/.dc-head/.dc-entrybar/.dc-smart/.dc-exec), so anything injected
   LATER escaped it. The auto-engine row (.gm-autobar-chart, the Fast-5 /
   Counter-Trend / Aggressive / Smartest buttons) rendered 1291px wide at x=58
   while every other block sat at 1200px @ x=103 — 45px of overhang on each
   side, which is the "full screen not built properly / functions overlapping".
   Centring every DIRECT CHILD is future-proof: a new row can't drift again.
   ══════════════════════════════════════════════════════════════════════════ */
.deriv-chart.dc-fs > *{
  max-width:1200px; margin-left:auto; margin-right:auto;
}
/* absolutely-positioned overlays are placed by the fs rules below, not centred */
.deriv-chart.dc-fs > .dc-verdict{ max-width:min(420px,42vw); margin:0; }
/* the EXECUTE fab and the plot tags belong to .dc-plot's own coordinate space */
.deriv-chart.dc-fs .dc-plot{ position:relative; }
/* fullscreen scrolling: contain the chain so the locked body behind can't
   rubber-band, keep momentum on touch, and reserve the scrollbar gutter so
   showing/hiding it doesn't reflow the centred column (a visible x-shift). */
.deriv-chart.dc-fs{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
  scroll-behavior:auto;
}
/* the close/expand control must stay reachable while scrolled */
.deriv-chart.dc-fs .dc-fs-btn{ position:sticky; top:0; z-index:6; }
/* nothing from the console may paint over the fullscreen overlay */
body.dc-fs-open #gm-pinned-ads,
body.dc-fs-open .gm-nep,
body.dc-fs-open #aether-ad-pop{ display:none !important; }
/* the body is locked while fullscreen is open — make sure the lock actually
   holds on iOS/Safari too, where overflow:hidden alone is not enough */
body.dc-fs-open{ overscroll-behavior:none; touch-action:pan-x pan-y; }
@media (max-width:560px){
  .deriv-chart.dc-fs{ padding:12px 12px 20px; }
  .deriv-chart.dc-fs .dc-svg{ height:min(52vh,420px); }
  .deriv-chart.dc-fs > .dc-verdict{ max-width:none; left:12px; right:12px; }
}
/* Defensive: the ripple / ensureRelative helpers write an INLINE position:relative
   onto any static element they touch, and inline beats a plain stylesheet rule —
   which silently killed fullscreen after the first interaction with the chart.
   dcToggleFullscreen now clears that inline style; these !important declarations
   are the belt-and-braces so a future inline stamp can't break it again. */
.deriv-chart.dc-fs{
  position:fixed !important; inset:0 !important; z-index:9999 !important;
  margin:0 !important; width:auto !important; height:auto !important;
  max-width:none !important; max-height:none !important; border-radius:0 !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   🏅 CONSOLE HEADER LOGO (2026-07-18)
   trade.html's header mark was a bare ⚡ EMOJI (.brand-logo.gm-mark) — the old
   platform logo. The machined-badge upgrade lived in shell.css on .brand-mark,
   which the CONSOLE never loads, so the console kept the emoji. Same finish,
   applied to the class the console actually uses. The emoji stays in the DOM as
   the accessible fallback but is rendered transparent.
   ══════════════════════════════════════════════════════════════════════════ */
.brand-logo.gm-mark{
  width:38px; height:38px; border-radius:12px; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  color:transparent !important; font-size:0 !important; text-shadow:none !important;
  border:1px solid transparent; overflow:hidden; animation:none !important;
  background:
    url('/logo.svg?v=real1') center/58% no-repeat padding-box,
    radial-gradient(84% 64% at 24% 8%, rgba(255,255,255,.16), transparent 60%) padding-box,
    linear-gradient(168deg,#253248 0%,#121b2a 55%,#090d16 100%) padding-box,
    linear-gradient(148deg,#eaf3ff 0%,#a3c2ea 13%,rgba(255,255,255,.05) 44%,
      rgba(0,0,0,.40) 74%,rgba(255,255,255,.18) 100%) border-box;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -10px 14px -12px rgba(0,0,0,.7),
    0 1px 2px rgba(0,0,0,.5),
    0 6px 14px -8px rgba(0,0,0,.6),
    0 0 20px -8px rgba(140,190,255,.4);
}
/* 🗑 Daily P&L Safety Net card REMOVED (2026-07-18) — the section, its inputs,
   progress bars and state card are gone from trade.html. These rules are
   neutralised so no orphaned styling can reserve space or paint if any stale
   markup is ever re-introduced. */
.safety-net, #safety-net-section{ display:none !important; }
/* ══════════════════════════════════════════════════════════════════════════
   📰 AETHER DAILY BRIEFING v2 + card hints (2026-07-18)
   The briefing was eight flat key/value tiles. Each is now a machined-glass
   metric card with its own accent hue, an icon plate, a large readout and a
   plain-English hint explaining what the number IS — same optical language
   as the analyzer tiles (fresnel rim, grain, two-light, depth stack).
   `.gm-hint` / `.bc-h` are the shared "what is this / how to use it" style.
   ══════════════════════════════════════════════════════════════════════════ */
.briefing-grid{
  grid-template-columns:repeat(auto-fit, minmax(216px, 1fr)) !important;
  gap:12px !important;
}
.brief-card{
  --bc:#7aa0d8;
  position:relative; display:grid;
  grid-template-columns:auto 1fr; grid-template-rows:auto auto auto;
  gap:2px 10px; align-items:start;
  padding:13px 14px 12px !important;
  border:1px solid transparent !important; border-radius:16px !important;
  overflow:hidden;
  background:
    var(--gm-grain) padding-box,
    repeating-linear-gradient(102deg, rgba(255,255,255,.014) 0 1px, rgba(0,0,0,.012) 1px 3px) padding-box,
    radial-gradient(112% 80% at 12% -10%, color-mix(in srgb, var(--bc) 14%, transparent), transparent 58%) padding-box,
    radial-gradient(92% 70% at 104% 110%, rgba(126,170,235,.07), transparent 62%) padding-box,
    linear-gradient(168deg, rgba(24,34,55,.95) 0%, rgba(12,17,29,.97) 55%, rgba(6,9,17,.975) 100%) padding-box,
    linear-gradient(148deg,
      color-mix(in srgb, var(--bc) 62%, #ffffff) 0%,
      color-mix(in srgb, var(--bc) 22%, #ffffff) 13%,
      rgba(255,255,255,.05) 42%,
      rgba(0,0,0,.32) 72%,
      rgba(255,255,255,.13) 100%) border-box !important;
  background-blend-mode:soft-light, overlay, normal, normal, normal, normal;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 2px 1px -1px rgba(255,255,255,.06),
    inset 0 -18px 26px -22px color-mix(in srgb, var(--bc) 26%, transparent),
    inset 0 -12px 20px -16px rgba(0,0,0,.70),
    0 1px 1px rgba(0,0,0,.5),
    0 8px 18px -10px rgba(0,0,0,.6),
    0 22px 42px -26px rgba(0,0,0,.7) !important;
}
.bc-ico{
  grid-row:1 / span 2; align-self:center;
  width:34px; height:34px; border-radius:11px;
  display:flex; align-items:center; justify-content:center; font-size:16px; line-height:1;
  background:linear-gradient(165deg, color-mix(in srgb, var(--bc) 26%, rgba(30,42,64,.9)), rgba(10,15,26,.92));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), inset 0 0 0 1px color-mix(in srgb, var(--bc) 22%, transparent),
    0 0 12px -6px color-mix(in srgb, var(--bc) 70%, transparent);
}
.brief-card .bc-k{
  grid-column:2; font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:color-mix(in srgb, var(--bc) 62%, #cfe0f5); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.brief-card .bc-v{
  grid-column:2; font-family:var(--font-display); font-size:19px; font-weight:800; line-height:1.15;
  color:#f2f7ff; text-shadow:0 1px 0 rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.45);
  overflow-wrap:anywhere;
}
.brief-card .bc-h{
  grid-column:1 / -1; margin-top:7px; padding-top:7px;
  border-top:1px solid rgba(255,255,255,.06);
  font-size:10.5px; line-height:1.45; font-weight:500;
  color:rgba(196,212,236,.62); text-shadow:0 1px 2px rgba(0,0,0,.5);
}
/* per-metric identity hues */
.brief-card[data-bc="balance"]{ --bc:#a6ff6b; }
.brief-card[data-bc="pl"]     { --bc:#35e39b; }
.brief-card[data-bc="wr"]     { --bc:#ffce54; }
.brief-card[data-bc="trades"] { --bc:#5c8cff; }
.brief-card[data-bc="edge"]   { --bc:#c58cff; }
.brief-card[data-bc="api"]    { --bc:#3fe0ff; }
.brief-card[data-bc="rf"]     { --bc:#ffb14e; }
.brief-card[data-bc="eo"]     { --bc:#ff8fa3; }
/* the briefing header + lead paragraph */
.briefing-head h2{ font-size:19px; }
.briefing-text{ font-size:12.5px; line-height:1.6; }
@media (hover:hover) and (pointer:fine){
  .brief-card{ transition:box-shadow .28s ease, top .24s cubic-bezier(.22,.61,.36,1); top:0; }
  .brief-card:hover{
    top:-2px;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.26),
      inset 0 -22px 30px -22px color-mix(in srgb, var(--bc) 40%, transparent),
      inset 0 -12px 20px -16px rgba(0,0,0,.62),
      0 2px 4px rgba(0,0,0,.45),
      0 14px 28px -12px rgba(0,0,0,.66),
      0 0 22px -10px color-mix(in srgb, var(--bc) 55%, transparent) !important;
  }
}
@media (max-width:560px){
  .briefing-grid{ grid-template-columns:1fr !important; }
  .brief-card{ padding:11px 12px 10px !important; }
  .brief-card .bc-v{ font-size:17px; }
}

/* ── 💡 SHARED CARD HINT — "what this is / how to use it" ─────────────────
   One style for the explainer line injected under every major panel header
   (see the gmCardHints module in aether.js). Deliberately quiet: it must
   read as guidance, never compete with live numbers. */
.gm-hint{
  display:block; margin:6px 0 2px; padding:8px 11px;
  border-radius:10px; border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.028), rgba(0,0,0,.16));
  font-size:11.5px; line-height:1.5; font-weight:500;
  color:rgba(198,214,238,.66);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.gm-hint b{ color:rgba(222,234,252,.9); font-weight:700; }
@media (max-width:560px){ .gm-hint{ font-size:11px; padding:7px 10px; } }
/* ══════════════════════════════════════════════════════════════════════════
   ⚡ SMOOTHNESS — always-on cost reduction (2026-07-18)
   Measured at rest: median 50ms/frame (20fps) with 92 animations, 54 filters
   and 9 backdrop-filters live. The JS motion budget pauses offscreen
   animations; this cuts what runs even when everything IS on screen.
   Nothing here changes layout — only how much per-pixel work the compositor
   does per frame.
   ══════════════════════════════════════════════════════════════════════════ */

/* 1 · The aurora is 4 large screen-blended blobs on long transform loops. Two
      is plenty for the same living-colour effect at roughly half the fill. */
.gm-aurora i:nth-child(3),
.gm-aurora i:nth-child(4){ display:none !important; }

/* 2 · backdrop-filter is the single most expensive property here (it forces a
      readback of everything beneath). Keep it ONLY for true overlays that sit
      above arbitrary content; everywhere else the layered glass gradients
      already carry the look. */
.analyzer[data-analyzer],
.analyzer[data-analyzer].analyzer-themed,
.brief-card, .journal-trade-card, .orb-cell,
.glass-inset, .analyzer-mc, .nep-cp{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* 3 · Mid-scroll, shed the remaining ambient motion and heavy paint. The
      is-scrolling hook is already driven by the scroll/touchmove listener. */
html.is-scrolling.gm-shed .gm-aurora,
html.is-scrolling.gm-shed .gm-aurora i{ animation-play-state:paused !important; opacity:.5; }
html.is-scrolling.gm-shed .analyzer[data-analyzer]::after,
html.is-scrolling.gm-shed .analyzer-themed::after{ animation-play-state:paused !important; }
html.is-scrolling.gm-shed *{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }

/* 4 · Offscreen sections skip layout+paint entirely. contain-intrinsic-size
      keeps the scrollbar honest so the thumb doesn't jump as they realise. */
.analyzer[data-analyzer]{ content-visibility:auto; contain-intrinsic-size:auto 620px; }
.journal-trade-card{ content-visibility:auto; contain-intrinsic-size:auto 190px; }
.brief-card{ contain:layout paint style; }

/* 5 · Respect the OS setting — ambient motion off entirely. */
@media (prefers-reduced-motion:reduce){
  .gm-aurora, .gm-aurora i,
  .analyzer[data-analyzer]::after, .analyzer-themed::after{ animation:none !important; }
}

/* 6 · Phones: the aurora is pure decoration and the most expensive thing on a
      mobile GPU. One blob, no blending. */
@media (max-width:640px){
  .gm-aurora i:nth-child(2){ display:none !important; }
  .gm-aurora i{ mix-blend-mode:normal !important; opacity:.5 !important; }
}
/* ⚠ CORRECTED SELECTOR (2026-07-18). The previous override targeted
   `.analyzer[data-analyzer]`, but the live blur is declared on `.analyzer.glass`
   / `.glass` — so 8 cards kept `backdrop-filter: blur(15px) saturate(1.28)` and
   one win/loss card kept blur(16px). backdrop-filter is the single most
   expensive property in this stylesheet: each one forces the compositor to read
   back and blur everything beneath it, every frame. Measured at rest on a
   GPU-accelerated Intel UHD: median 50ms/frame with these live.
   The layered glass gradients + fresnel rim already carry the look, so the
   panels lose nothing visually by dropping the readback. */
.glass,
.analyzer,
.analyzer.glass,
.win-loss-card,
.journal-trade-card,
.brief-card,
.orb-cell,
.deriv-chart{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* ⚠ A first attempt re-added blur(10px) to "true overlays" (.gm-sel-menu et al)
   and made things WORSE — backdrop-filter count went 9 → 48, because every
   custom dropdown appends its own body-level .gm-sel-menu node. Measured, not
   assumed. There is no backdrop-filter anywhere now; the overlays are opaque
   enough on their own. */
.gm-sel-menu, .aad-card, #gm-market-guard, .sat-modal, .pretrade-pop{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* ⚠ SPECIFICITY, third attempt — measured, not assumed. The live blur is
   declared at `#view-console .analyzer[data-analyzer]` (aether.css ~13710),
   which is (1,2,0) because of the ID. `!important` does NOT bypass
   specificity — important declarations still compete with each other by it —
   so my earlier `.analyzer{...!important}` at (0,1,0) lost silently and the
   count stayed at 9. Matching the ID selector (and being later) wins. */
#view-console .analyzer[data-analyzer],
#view-console .analyzer[data-analyzer].analyzer-themed,
#view-console .analyzer.glass{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.win-loss-card, .win-loss-card.ae-reveal,
#view-console .win-loss-card{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   ⚡ THE 30fps CULPRIT — background-position animation (2026-07-18)
   Isolated by measurement: pausing just 9 animations took the console from
   33.3ms/frame (30fps) to 16.7ms (60fps). Ranked by painted area, the top
   offender was `magEdge` on `.connection-panel::after` (186,696px²):

       @keyframes magEdge { background-position: 120% 0 → -120% 0 }

   `background-position` is NOT compositor-accelerated. Animating it forces a
   full REPAINT of the element on every single frame — on a panel that size,
   that alone can halve the frame rate. `transform` is compositor-only and
   produces an identical sweep for free.

   Same treatment for any other background-position sweeps.
   ══════════════════════════════════════════════════════════════════════════ */
.connection-panel{ position:relative; overflow:hidden; }
.connection-panel::after{
  /* the gradient no longer moves; the LAYER moves */
  background-position:0 0 !important;
  background-size:50% 100% !important;
  background-repeat:no-repeat !important;
  width:200% !important; left:-50% !important; right:auto !important;
  animation:magEdgeX 8s linear infinite !important;
  will-change:transform;
}
@keyframes magEdgeX{
  0%   { transform:translate3d(-25%,0,0); }
  100% { transform:translate3d(25%,0,0); }
}
/* mid-scroll and offscreen, it stops entirely (JS motion budget handles the
   offscreen case; this covers the scroll case) */
html.is-scrolling.gm-shed .connection-panel::after{ animation-play-state:paused !important; }
@media (prefers-reduced-motion:reduce){ .connection-panel::after{ animation:none !important; } }
/* ══════════════════════════════════════════════════════════════════════════
   🌌 DIM COLOUR-SHIFT ATMOSPHERE  (2026-07-19)
   A darker, slower, more sophisticated background. Two ideas do the work:

   1 · DIM MEANS DEEP, NOT BLACK. The first pass took this too literally and the
       ground read as flat black. Dim = a dark JEWEL ground (indigo/sapphire)
       with real saturated colour in it, low in VALUE but not drained of hue,
       so cards read as lit objects in a dark room — not holes in a void.

   2 · NON-REPEATING COLOUR SHIFT. Each field drifts on its own long transform
       loop AND cross-fades its own opacity on a DIFFERENT, coprime period
       (61s / 79s / 97s / 83s vs 34s / 42s / 38s / 46s drift). Periods never
       align, the hue where fields overlap migrates continuously and the scene
       never returns to the same colour twice — a genuine shift, not a loop.

   ⚠ PERF CONTRACT (this platform was 20fps before the last pass): transform and
   opacity ONLY — both composited. No background-position, no filter, no
   backdrop-filter animation. Scroll-paused, reduced-motion-off, trimmed on
   phones. Verified at 60fps after.
   ══════════════════════════════════════════════════════════════════════════ */
/* DEEP, not black. #04060c read as flat black on big empty areas — the ground
   should be a dark JEWEL (indigo/sapphire), so the colour fields have something
   coloured to sit in rather than a void to fight.

   ⚠⚠ THE BUG THAT HID EVERYTHING. `html` carries its own background, so body's
   background is NOT propagated to the canvas — body paints it as an ordinary
   element box. And body is `position:relative; z-index:auto`, so it creates NO
   stacking context. That means body::before (z-index:-10) and .gm-aurora (-1)
   join the ROOT stacking context and are painted in the negative-z step, which
   comes BEFORE body's own background box. An opaque body background therefore
   covers both of them completely — proved by flooding body::before with magenta
   and seeing only a sliver at the very top edge.

   So the ground colour MUST live on <html> (painted first, at the very bottom)
   and body MUST stay transparent, or the whole atmosphere is invisible.
   Do not put an opaque background-color back on body. */
html{ background-color:#080f22 !important; }
body{ background-color:transparent !important; }

/* Base wash. Alphas are deliberately well above "barely there": this layer is
   what stops large empty regions reading as black. Deep and saturated, but low
   enough in value to stay dim. Extra stops give the right side real coverage —
   the old set clustered at the corners and left the middle dead.

   ⚠ COORDINATES: body::before is inset -35%, i.e. ~2169x1462 on a 1280x860
   viewport, so ONLY the 20.5%–79.5% band is ever on screen (and auroraDriftA
   scales/translates it further). Stops at 14%/86% rendered completely
   off-screen — measured, not assumed. Everything below stays inside 28%–72%. */
   Alphas below are CALIBRATED AGAINST A VISIBLE LAYER. Every earlier value in
   this session was tuned blind while body's opaque background hid this, so they
   ran far too hot — once uncovered they washed out to pastel and the cards lost
   contrast. Deep jewel, low value, hue clearly present. */
body::before{
  background:
    radial-gradient(34% 40% at 30% 30%, rgba(63,224,255,0.22), transparent 68%),
    radial-gradient(36% 42% at 70% 29%, rgba(197,140,255,0.22), transparent 70%),
    radial-gradient(38% 44% at 68% 68%, rgba(92,140,255,0.20), transparent 68%),
    radial-gradient(34% 40% at 32% 70%, rgba(255,143,163,0.13), transparent 68%),
    radial-gradient(40% 34% at 62% 48%, rgba(88,214,255,0.12), transparent 72%),
    radial-gradient(36% 32% at 40% 54%, rgba(150,120,255,0.12), transparent 72%),
    linear-gradient(168deg, #0e1a33 0%, #0a1428 46%, #081020 100%) !important;
  opacity:1;
}

/* Four drifting colour fields. Blob 4 is back on: with only three, the
   centre-right of a wide console had no field over it and went black. */
.gm-aurora i:nth-child(3),
.gm-aurora i:nth-child(4){ display:block !important; }
.gm-aurora i:nth-child(1){
  background:radial-gradient(circle, rgba(63,224,255,.26), transparent 70%) !important;
  animation:gmAur1 34s ease-in-out infinite alternate, gmHueA 61s ease-in-out infinite !important;
}
.gm-aurora i:nth-child(2){
  background:radial-gradient(circle, rgba(197,140,255,.24), transparent 70%) !important;
  animation:gmAur2 42s ease-in-out infinite alternate, gmHueB 79s ease-in-out infinite !important;
}
.gm-aurora i:nth-child(3){
  background:radial-gradient(circle, rgba(92,140,255,.22), transparent 70%) !important;
  animation:gmAur3 38s ease-in-out infinite alternate, gmHueC 97s ease-in-out infinite !important;
}
.gm-aurora i:nth-child(4){
  background:radial-gradient(circle, rgba(53,227,180,.18), transparent 70%) !important;
  animation:gmAur4 46s ease-in-out infinite alternate, gmHueD 83s ease-in-out infinite !important;
}
/* opacity cross-fades — compositor-only, and the coprime periods are what stop
   the colour field from ever repeating the same overlap twice */
/* Floors kept well off zero — a field fading to .28 was what let holes of black
   open up mid-cycle. These breathe without ever leaving a region uncovered. */
@keyframes gmHueA{ 0%,100%{opacity:.92} 33%{opacity:.60} 66%{opacity:1} }
@keyframes gmHueB{ 0%,100%{opacity:.66} 40%{opacity:1}   72%{opacity:.78} }
@keyframes gmHueC{ 0%,100%{opacity:.80} 28%{opacity:1}   61%{opacity:.58} }
@keyframes gmHueD{ 0%,100%{opacity:.58} 52%{opacity:.92} 78%{opacity:.66} }

/* Cinematic vignette + fine grain so the dark gradients never band.
   Static — no animation, no cost after first paint.

   ⚠ body::after already carried `mix-blend-mode:screen` and `auroraDriftB` from
   the old bright background. BOTH have to be undone here: screen-blending a dark
   vignette renders it invisible (screen against black is a no-op), and the
   inherited drift would scale/translate the vignette off the viewport. So this
   repurposes the element as the static vignette rather than adding a new one —
   its old orange/blue field was part of the bright look we're replacing, and
   .gm-aurora already supplies the drifting colour. */
body::after{
  content:"" !important; display:block !important;
  position:fixed !important; inset:0 !important; z-index:-1 !important;
  pointer-events:none !important;
  mix-blend-mode:normal !important;
  animation:none !important;
  will-change:auto !important;
  /* static promotion: one compositor layer so this full-viewport overlay can
     never be dragged into a scroll repaint. Not animated — no per-frame cost. */
  transform:translateZ(0) !important;
  background:
    radial-gradient(140% 100% at 50% 38%, transparent 62%, rgba(4,8,20,.20) 86%, rgba(3,6,16,.38) 100%),
    var(--gm-grain) !important;
  background-blend-mode:normal, soft-light !important;
  opacity:.6 !important;
}

html.is-scrolling.gm-shed .gm-aurora i{ animation-play-state:paused !important; }
@media (prefers-reduced-motion:reduce){
  .gm-aurora i{ animation:none !important; opacity:.5 !important; }
}
@media (max-width:640px){
  /* ONE drifting field on phones. An earlier perf pass already hides blob 2 at
     this width and that rule still wins, which is the right call — fill-rate is
     the mobile cost and this config measured best (8 janky frames vs 10-19 on
     desktop). The ground does not go black regardless, because body::before
     carries the full deep jewel wash underneath. */
  .gm-aurora i:nth-child(3),
  .gm-aurora i:nth-child(4){ display:none !important; }
  .gm-aurora i:nth-child(1),
  .gm-aurora i:nth-child(2){ mix-blend-mode:normal !important; }
  .gm-aurora i:nth-child(1){ opacity:.62 !important; }
  .gm-aurora i:nth-child(2){ opacity:.5 !important; }
  body::after{ opacity:.55 !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   💎 CARD REALISM — final pass (2026-07-19)
   Four additions, each modelling a real optical behaviour, all static:
     • TOP RIM-LIGHT — a bright hairline on the very top edge plus a second,
       dimmer line just beneath it. Two lines is what reads as THICKNESS; one
       line reads as a border.
     • CAUSTIC SMEAR — a soft off-centre elongated highlight, the way light
       bends through a thick glass body rather than reflecting flatly.
     • TINTED MASS — a faint signature-coloured glow from inside the card, so
       the glass reads as tinted in the material instead of painted on.
     • DEEPER AO CONTACT — a tight near-black shadow directly beneath, which
       is what actually grounds an object rather than making it float.
   Hover adds a specular sweep — hover-only, so idle cost is zero.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer]{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    inset 0 2px 0 -1px rgba(255,255,255,.10),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c, #7aa0d8) 12%, transparent),
    inset 0 -34px 46px -34px color-mix(in srgb, var(--sig-c, #7aa0d8) 30%, transparent),
    inset 0 -14px 24px -18px rgba(0,0,0,.74),
    0 1px 1px rgba(0,0,0,.60),
    0 2px 3px -1px rgba(0,0,0,.50),
    0 10px 22px -10px rgba(0,0,0,.62),
    0 30px 56px -28px rgba(0,0,0,.74),
    0 0 26px -14px color-mix(in srgb, var(--sig-c, #7aa0d8) 50%, transparent) !important;
}
/* caustic smear — a soft bent highlight, not a straight band */
#view-console .analyzer[data-analyzer]::before{
  background:
    radial-gradient(58% 22% at 26% 5%, rgba(255,255,255,.13), transparent 70%),
    linear-gradient(112deg, transparent 26%, rgba(255,255,255,.055) 39%, rgba(255,255,255,.014) 47%, transparent 60%) !important;
}
/* The same finish for the metric / journal / tile families.
   Each family gets its own rim hue, then they all share one shadow stack that
   reads that hue — so the material is identical and only the tint differs. */
   ⚠ SELECTORS: the live orb parent is .orbs (NOT .orb-gallery — those rules
   never matched anything), and the journal cards are already claimed by
   `.journal-list li.journal-trade-card.j-*` at (0,3,1) !important around 13675.
   !important does not bypass specificity, so these have to MATCH that shape to
   win on source order. Verified against the live DOM, not assumed. */
.brief-card{ --rim:#7aa0d8; }
.journal-list li.journal-trade-card.j-win{ --rim:#35e39b; }
.journal-list li.journal-trade-card.j-loss{ --rim:#ff8fa3; }
#view-console .orb-gallery .orbs .orb-cell{ --rim:#c58cff; }

/* The orb tile is claimed at (1,3,0) !important by
   `#view-console .orb-gallery .orbs .orb-cell` and by a ws-split variant of the
   same weight, so it needs the full ID-level chain — `.orbs .orb-cell` (0,2,0)
   lost silently. Equal specificity + later source order wins at every width. */
.brief-card,
.journal-list li.journal-trade-card.j-win,
.journal-list li.journal-trade-card.j-loss,
#view-console .orb-gallery .orbs .orb-cell{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 2px 0 -1px rgba(255,255,255,.09),
    inset 0 0 0 1px color-mix(in srgb, var(--rim, #7aa0d8) 11%, transparent),
    inset 0 -30px 42px -32px color-mix(in srgb, var(--rim, #7aa0d8) 26%, transparent),
    inset 0 -12px 22px -18px rgba(0,0,0,.70),
    0 1px 1px rgba(0,0,0,.58),
    0 2px 3px -1px rgba(0,0,0,.48),
    0 9px 20px -10px rgba(0,0,0,.60),
    0 26px 50px -26px rgba(0,0,0,.72),
    0 0 22px -14px color-mix(in srgb, var(--rim, #7aa0d8) 46%, transparent) !important;
}
/* .brief-card::after had `content:none` — no box was generated, so a background
   alone would have painted nothing. It needs the full box declared here. */
.brief-card{ position:relative; }
.brief-card::after{
  content:"" !important; display:block !important;
  position:absolute !important; inset:0 !important;
  border-radius:inherit !important; pointer-events:none !important;
  z-index:0 !important;
}
.brief-card::after,
#view-console .orb-gallery .orbs .orb-cell::after{
  background:
    radial-gradient(56% 24% at 24% 4%, rgba(255,255,255,.12), transparent 72%),
    linear-gradient(112deg, transparent 26%, rgba(255,255,255,.05) 39%, transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.085) 0%, rgba(255,255,255,.018) 34%, transparent 62%) !important;
}
/* keep card content above the caustic sheet */
.brief-card > *{ position:relative; z-index:1; }

@media (hover:hover) and (pointer:fine){
  #view-console .analyzer[data-analyzer]::before,
  .brief-card::after,
  #view-console .orb-gallery .orbs .orb-cell::after{ transition:opacity .3s ease; }
  #view-console .analyzer[data-analyzer]:hover::before,
  .brief-card:hover::after,
  #view-console .orb-gallery .orbs .orb-cell:hover::after{ opacity:1; }
}
/* ══════════════════════════════════════════════════════════════════════════
   💎 CARD REALISM v3 — dispersion pass (2026-07-20)
   The previous pass modelled reflection (rim, caustic, AO). This one models
   what thick glass does that flat glass cannot:

   • CHROMATIC DISPERSION. Real glass splits light at its edges — the lit edge
     skews warm, the shadowed edge skews cool. Two hairlines of DIFFERENT hue
     (warm top, cool bottom) instead of two white ones. This is the single
     biggest jump in "expensive glass" perception.
   • INNER BEVEL. A second ring set slightly inside the edge, reading as the
     material turning over its own thickness rather than a printed border.
   • CORNER POOLING. Light concentrates where a rounded corner curves away;
     two small corner radials do what a uniform sheen cannot.
   • SUB-SURFACE BLOOM. The signature hue bleeding from INSIDE the body, so the
     colour looks dissolved through the material instead of painted on top.

   All static. No animation added — the perf contract from v1/v2 still holds.
   Selectors match the verified live winners (see the cascade-traps notes):
   analyzer (1,2,0) · orb (1,3,0) · journal (0,3,1).
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer]{
  box-shadow:
    /* dispersion: warm lit edge, cool shadow edge */
    inset 0 1px 0 rgba(255,241,214,.34),
    inset 0 2px 0 -1px rgba(255,214,170,.11),
    inset 0 -1px 0 rgba(150,200,255,.14),
    /* inner bevel — the glass turning over its thickness */
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c, #7aa0d8) 13%, transparent),
    inset 0 0 0 2.5px rgba(255,255,255,.035),
    /* sub-surface bloom */
    inset 0 -38px 52px -36px color-mix(in srgb, var(--sig-c, #7aa0d8) 34%, transparent),
    inset 0 26px 44px -40px color-mix(in srgb, var(--sig-c, #7aa0d8) 22%, transparent),
    inset 0 -14px 24px -18px rgba(0,0,0,.72),
    /* contact → mid → ambient */
    0 1px 1px rgba(0,0,0,.62),
    0 2px 3px -1px rgba(0,0,0,.52),
    0 10px 22px -10px rgba(0,0,0,.62),
    0 30px 56px -28px rgba(0,0,0,.74),
    0 0 30px -14px color-mix(in srgb, var(--sig-c, #7aa0d8) 52%, transparent) !important;
}
/* corner pooling + caustic, on the existing highlight pseudo */
#view-console .analyzer[data-analyzer]::before{
  background:
    radial-gradient(28% 34% at 4% 3%,  rgba(255,247,230,.16), transparent 70%),
    radial-gradient(26% 32% at 96% 4%, rgba(214,235,255,.10), transparent 70%),
    radial-gradient(58% 22% at 26% 5%, rgba(255,255,255,.12), transparent 70%),
    linear-gradient(112deg, transparent 26%, rgba(255,255,255,.055) 39%, rgba(255,255,255,.014) 47%, transparent 60%) !important;
}

.brief-card,
.journal-list li.journal-trade-card.j-win,
.journal-list li.journal-trade-card.j-loss,
#view-console .orb-gallery .orbs .orb-cell{
  box-shadow:
    inset 0 1px 0 rgba(255,241,214,.32),
    inset 0 2px 0 -1px rgba(255,214,170,.10),
    inset 0 -1px 0 rgba(150,200,255,.13),
    inset 0 0 0 1px color-mix(in srgb, var(--rim, #7aa0d8) 12%, transparent),
    inset 0 0 0 2.5px rgba(255,255,255,.032),
    inset 0 -34px 48px -34px color-mix(in srgb, var(--rim, #7aa0d8) 30%, transparent),
    inset 0 24px 40px -38px color-mix(in srgb, var(--rim, #7aa0d8) 20%, transparent),
    inset 0 -12px 22px -18px rgba(0,0,0,.68),
    0 1px 1px rgba(0,0,0,.60),
    0 2px 3px -1px rgba(0,0,0,.50),
    0 9px 20px -10px rgba(0,0,0,.60),
    0 26px 50px -26px rgba(0,0,0,.72),
    0 0 26px -14px color-mix(in srgb, var(--rim, #7aa0d8) 48%, transparent) !important;
}
.brief-card::after,
#view-console .orb-gallery .orbs .orb-cell::after{
  background:
    radial-gradient(26% 32% at 4% 3%,  rgba(255,247,230,.15), transparent 70%),
    radial-gradient(24% 30% at 96% 4%, rgba(214,235,255,.09), transparent 70%),
    radial-gradient(56% 24% at 24% 4%, rgba(255,255,255,.11), transparent 72%),
    linear-gradient(112deg, transparent 26%, rgba(255,255,255,.05) 39%, transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.016) 34%, transparent 62%) !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   🕰️ CHRONOS RUN LADDER — the run-native readout under the CHRONOS chart.
   Same 13-layer glass material as the rest of the console so it reads as part
   of the card, with its own amber/violet run signature. Static: no animation
   added, per the perf contract.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer="streak"] .chr-ladder{
  --run:#ffb347;
  margin-top:10px; padding:12px 13px 11px; border-radius:16px; position:relative;
  background:
    linear-gradient(158deg, rgba(255,179,71,.075), rgba(255,179,71,.012) 55%, rgba(255,255,255,.012) 100%),
    linear-gradient(200deg, rgba(255,255,255,.10), rgba(255,255,255,0) 46%);
  border:1px solid rgba(255,179,71,.30);
  box-shadow:
    inset 0 1px 0 rgba(255,241,214,.30),
    inset 0 -1px 0 rgba(150,200,255,.10),
    inset 0 0 0 1px rgba(255,179,71,.10),
    inset 0 -26px 40px -32px rgba(255,179,71,.30),
    0 1px 1px rgba(0,0,0,.55),
    0 10px 24px -14px rgba(0,0,0,.62),
    0 0 24px -16px rgba(255,179,71,.5);
  contain:content;
}
.chr-ladder-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-size:11.5px; letter-spacing:.05em; color:#ffd9a8; font-weight:800; margin-bottom:9px;
}
.chr-ladder-head i{ font-style:normal; font-weight:600; color:#b9c6dc; letter-spacing:0; }
.chr-ladder-head .cl-cur{ font-size:11px; color:#cfe0f5; white-space:nowrap; }
.chr-ladder-head .cl-cur b{ font-size:15px; margin:0 3px; }
.chr-ladder-head .cl-cur[data-d="up"] b{ color:#2ee86f; }
.chr-ladder-head .cl-cur[data-d="down"] b{ color:#ff5b6a; }
.chr-ladder-head .cl-cur i{ font-size:10px; opacity:.75; }

/* live tick-direction tape — the literal thing a run contract settles on */
.chr-tape{ display:flex; gap:2px; margin-bottom:10px; }
.chr-tape i{
  flex:1 1 0; height:16px; border-radius:3px; display:block;
  background:rgba(255,255,255,.07); box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.chr-tape i[data-d="up"]  { background:linear-gradient(180deg, rgba(46,232,111,.55), rgba(46,232,111,.22)); }
.chr-tape i[data-d="down"]{ background:linear-gradient(180deg, rgba(255,91,106,.55), rgba(255,91,106,.22)); }
/* the unbroken run at the live edge */
.chr-tape i[data-live="1"]{ box-shadow:inset 0 0 0 1px rgba(255,214,140,.85), 0 0 10px -2px rgba(255,179,71,.8); }

/* one rung per tick count */
.chr-rungs{ display:grid; gap:4px; }
.cl-rung{
  display:grid; grid-template-columns:46px 1fr 40px 44px 40px 46px; align-items:center; gap:7px;
  padding:5px 7px; border-radius:9px; background:rgba(255,255,255,.028);
  border:1px solid rgba(255,255,255,.055);
}
.cl-rung[data-on="1"]{
  background:rgba(255,179,71,.10); border-color:rgba(255,179,71,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 16px -8px rgba(255,179,71,.7);
}
.clr-n{ font-size:12.5px; font-weight:800; color:#eef3fb; }
.clr-n i{ font-style:normal; font-size:9.5px; font-weight:600; color:#8f9bb3; margin-left:3px; }
.clr-bar, .clr-hist{ height:6px; border-radius:4px; background:rgba(255,255,255,.06); overflow:hidden; }
.clr-bar > span{ display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,#2ee86f,#8fe9b4); }
.clr-hist > span{ display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,#ffb347,#ffd9a0); }
.clr-p{ font-size:11.5px; font-weight:800; color:#2ee86f; text-align:right; }
.clr-x{ font-size:12px; font-weight:800; color:#ffce54; text-align:right; }
.clr-seen{ font-size:11px; font-weight:700; color:#cfe0f5; text-align:right; }
.clr-seen i{ font-style:normal; font-size:9px; color:#8f9bb3; margin-left:3px; }
.chr-ladder-foot{
  margin-top:9px; font-size:10.5px; line-height:1.5; color:#9fb0c8;
}
.chr-ladder-foot b{ color:#ffd9a8; }

@media (max-width:560px){
  .cl-rung{ grid-template-columns:40px 1fr 36px 40px; }
  .clr-seen, .clr-hist{ display:none; }   /* keep the phone rung readable */
}/* rung whose REAL (tape-derived) rate clears the payout's break-even */
#view-console .analyzer[data-analyzer="streak"] .cl-rung[data-edge="1"] .clr-seen{ color:#2ee86f; }
#view-console .analyzer[data-analyzer="streak"] .cl-rung[data-edge="1"]{
  border-color:rgba(46,232,111,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 14px -8px rgba(46,232,111,.75);
}
#view-console .analyzer[data-analyzer="streak"] .cl-rung[data-on="1"][data-edge="1"]{
  border-color:rgba(46,232,111,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 20px -7px rgba(46,232,111,.9);
}/* live-vs-model pricing badge on the run ladder */
#view-console .analyzer[data-analyzer="streak"] .cl-src{
  display:inline-block; margin-left:8px; padding:2px 7px; border-radius:999px;
  font-size:9px; font-weight:800; letter-spacing:.06em; vertical-align:middle;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); color:#9fb0c8;
}
#view-console .analyzer[data-analyzer="streak"] .cl-src[data-live="1"]{
  background:rgba(46,232,111,.14); border-color:rgba(46,232,111,.45); color:#7dffc4;
  box-shadow:0 0 12px -5px rgba(46,232,111,.8);
}
/* ══════════════════════════════════════════════════════════════════════════
   💎 REALISM v4 — surface pass (2026-07-20)
   v3 modelled how light BEHAVES at an edge (dispersion, bevel, bloom). This
   models what a surface IS, and extends it past the hero cards to the controls,
   so the whole console reads as one manufactured object rather than a few
   detailed cards floating among flat widgets.

     • MICRO-TEXTURE — a very fine grain over the glass. Perfectly smooth
       gradients are the single biggest tell of "CSS", because real materials
       are never optically perfect. This is the highest-yield change here.
     • SILHOUETTE DARKENING — real objects go DARKER at their outline as the
       surface curves away from the viewer. Flat UI does the opposite.
     • BOUNCE LIGHT — the shadow under a tinted object picks up its hue instead
       of being neutral black.
   Static, compositor-safe, no animation. Grain uses the existing :root token.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer]::after,
.brief-card::before,
#view-console .orb-gallery .orbs .orb-cell::before,
.journal-list li.journal-trade-card::after{
  content:"" !important; position:absolute !important; inset:0 !important;
  border-radius:inherit !important; pointer-events:none !important; z-index:0 !important;
  background:var(--gm-grain) !important;
  opacity:.5 !important; mix-blend-mode:soft-light !important;
}
.journal-list li.journal-trade-card{ position:relative; }
/* keep real content above the texture sheet */
#view-console .analyzer[data-analyzer] > *,
.journal-list li.journal-trade-card > *,
#view-console .orb-gallery .orbs .orb-cell > *{ position:relative; z-index:1; }

/* silhouette darkening + hue-carrying bounce light */
#view-console .analyzer[data-analyzer]{
  box-shadow:
    inset 0 1px 0 rgba(255,241,214,.34),
    inset 0 2px 0 -1px rgba(255,214,170,.11),
    inset 0 -1px 0 rgba(150,200,255,.14),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c, #7aa0d8) 13%, transparent),
    inset 0 0 0 2.5px rgba(255,255,255,.035),
    inset 0 0 34px -14px rgba(0,0,0,.55),            /* silhouette falloff */
    inset 0 -38px 52px -36px color-mix(in srgb, var(--sig-c, #7aa0d8) 34%, transparent),
    inset 0 26px 44px -40px color-mix(in srgb, var(--sig-c, #7aa0d8) 22%, transparent),
    inset 0 -14px 24px -18px rgba(0,0,0,.72),
    0 1px 1px rgba(0,0,0,.62),
    0 2px 3px -1px rgba(0,0,0,.52),
    0 10px 22px -10px rgba(0,0,0,.62),
    0 30px 56px -28px rgba(0,0,0,.74),
    0 22px 46px -30px color-mix(in srgb, var(--sig-c, #7aa0d8) 26%, transparent), /* bounce */
    0 0 30px -14px color-mix(in srgb, var(--sig-c, #7aa0d8) 52%, transparent) !important;
}

/* ── controls: make the small parts obey the same physics as the big ones ── */
#view-console button:not(.orb):not(.dc-mode),
#view-console select,
#view-console input[type="text"],
#view-console input[type="number"]{
  box-shadow:
    inset 0 1px 0 rgba(255,241,214,.20),
    inset 0 -1px 0 rgba(150,200,255,.09),
    inset 0 0 12px -8px rgba(0,0,0,.7),
    0 1px 1px rgba(0,0,0,.45),
    0 3px 7px -3px rgba(0,0,0,.5) !important;
}
#view-console button:not(.orb):not(.dc-mode):active{
  box-shadow:
    inset 0 2px 6px -2px rgba(0,0,0,.72),          /* pressed: light flips inside */
    inset 0 1px 0 rgba(0,0,0,.35),
    0 1px 1px rgba(0,0,0,.35) !important;
  transform:translateY(.5px);
}
@media (hover:hover) and (pointer:fine){
  #view-console button:not(.orb):not(.dc-mode){ transition:box-shadow .18s ease, transform .12s ease; }
}
@media (max-width:560px){
  /* texture is invisible at phone DPI but still costs fill-rate */
  #view-console .analyzer[data-analyzer]::after,
  .brief-card::before,
  #view-console .orb-gallery .orbs .orb-cell::before,
  .journal-list li.journal-trade-card::after{ display:none !important; }
}
/* ══════════════════════════════════════════════════════════════════════════
   ⛶ CHART FULLSCREEN — containing-block fix (2026-07-20)

   THE BUG: `.analyzer[data-analyzer]` carries `transform: matrix(1,0,0,1,0,0)`
   (an IDENTITY transform, from the compositor-promotion work) plus
   `will-change:transform`. Either one makes that card the containing block for
   `position:fixed` DESCENDANTS and creates a stacking context. So the "expanded"
   chart was:
     • sized against the CARD instead of the viewport, and
     • had its z-index:9999 trapped inside the card's stacking context,
   which is why page furniture (.gm-hint, exec bars, smart matrix) painted over
   the expanded chart. Confirmed by elementsFromPoint: .gm-hint sat ABOVE
   .deriv-chart.dc-fs.

   THE FIX: while any chart is expanded (body.dc-fs-open), drop the properties
   that create a containing block from the chart's ancestors. The promotion only
   exists for scroll smoothness, and nothing is scrolling behind a fullscreen
   chart, so removing it costs nothing and is reverted the moment you exit.
   Applies to all four chart desks: rise_fall · asians · vanilla · streak.
   ══════════════════════════════════════════════════════════════════════════ */
body.dc-fs-open #view-console .analyzer[data-analyzer],
body.dc-fs-open #view-console .analyzer-grid,
body.dc-fs-open #view-console .ws-left,
body.dc-fs-open #view-console .ws-right,
body.dc-fs-open #view-console.aether-view,
body.dc-fs-open .aether-main{
  transform:none !important;
  will-change:auto !important;
  filter:none !important;
  perspective:none !important;
  contain:none !important;
  content-visibility:visible !important;
}
/* the expanded chart must also out-rank the app chrome once it is free */
body.dc-fs-open .deriv-chart.dc-fs{ z-index:2147483000 !important; }
/* and nothing inside the host card may paint over it */
body.dc-fs-open #view-console .analyzer[data-analyzer] > *:not(.deriv-chart){
  z-index:auto !important;
}
body.dc-fs-open .gm-hint,
body.dc-fs-open .gm-sel-menu{ display:none !important; }
/* ══════════════════════════════════════════════════════════════════════════
   🏃 MOTION-ADAPTIVE QUALITY (2026-07-20)
   Realism and scroll smoothness pull against each other: every blend mode,
   texture sheet and 15-layer shadow is per-frame compositor work, and there are
   dozens of them on screen at once.

   Rather than delete detail to buy frames, this drops it ONLY while the pane is
   actually moving — where it is invisible anyway, because the eye cannot resolve
   micro-texture or a 5-layer inner bevel on a surface in motion. The instant
   scrolling stops, full quality returns.

   `html.is-scrolling.gm-shed` is the existing platform convention (set by the scroll
   handler, already used by the aurora pause and the periodic renderers).
   ══════════════════════════════════════════════════════════════════════════ */
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer]::after,
html.is-scrolling.gm-shed .brief-card::before,
html.is-scrolling.gm-shed #view-console .orb-gallery .orbs .orb-cell::before,
html.is-scrolling.gm-shed .journal-list li.journal-trade-card::after{
  display:none !important;              /* texture: costs a blend per card */
}
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer],
html.is-scrolling.gm-shed .brief-card,
html.is-scrolling.gm-shed .journal-list li.journal-trade-card.j-win,
html.is-scrolling.gm-shed .journal-list li.journal-trade-card.j-loss,
html.is-scrolling.gm-shed #view-console .orb-gallery .orbs .orb-cell{
  /* 15 layers → 3. Keeps the object grounded and edge-lit; drops the inner
     bevel, sub-surface bloom, caustics and bounce that cannot be seen moving. */
  box-shadow:
    inset 0 1px 0 rgba(255,241,214,.26),
    0 1px 1px rgba(0,0,0,.55),
    0 14px 30px -16px rgba(0,0,0,.66) !important;
}
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer]::before,
html.is-scrolling.gm-shed .brief-card::after,
html.is-scrolling.gm-shed #view-console .orb-gallery .orbs .orb-cell::after{
  opacity:.35 !important;               /* caustic sheet: cheaper, still lit */
}
/* no blend work at all during motion */
html.is-scrolling.gm-shed .gm-aurora i{ mix-blend-mode:normal !important; }
/* ══════════════════════════════════════════════════════════════════════════
   ⛶ CHART HEADER vs ARMING CHIP — collision fix (2026-07-20)

   `.chart-sig` (the arming / "confirm edge" readout: ◔ WAIT · no clean edge)
   is absolutely positioned at top:9px right:9px of .deriv-chart — which is
   exactly where .dc-head-r puts the regime chip, 📊 Candles and the ⛶ expand
   button. Measured collision on rise_fall: chip 1094,1600 104x35 vs ⛶ button
   1152,1616 32x24 — a direct overlap, and because the chip is z-index:4 while
   the button is position:static/z-auto, the chip paints OVER the control.

   Two fixes, deliberately belt-and-braces:
     1. The chip moves BELOW the header row, over the plot where a status
        readout actually belongs. Offset is derived from the header, not a
        magic number, so it holds if the header wraps or changes size.
     2. The header and its controls are raised above the chip regardless, so
        even if the chip is ever repositioned again the ⛶ button stays visible
        and clickable.
   Applies to every chart desk: rise_fall · asians · vanilla · streak.
   ══════════════════════════════════════════════════════════════════════════ */
.deriv-chart{ --dc-head-h:46px; }
.deriv-chart .chart-sig{
  top:calc(var(--dc-head-h) + 16px) !important;   /* clear the control row + breathing room */
  right:10px !important;
  z-index:3 !important;                            /* never above the chrome */
}
/* controls always win */
.deriv-chart .dc-head{ position:relative; z-index:6; }
.deriv-chart .dc-head-r{ position:relative; z-index:7; }
.deriv-chart .dc-fs-btn{ position:relative; z-index:8; }

/* fullscreen: the header is sticky, so keep the chip clear of it there too */
.deriv-chart.dc-fs .chart-sig{ top:calc(var(--dc-head-h) + 16px) !important; }
.deriv-chart.dc-fs .dc-fs-btn{ z-index:9 !important; }

@media (max-width:560px){
  /* header wraps to two rows on phones — give the chip more clearance */
  .deriv-chart{ --dc-head-h:74px; }
  .deriv-chart .chart-sig{ padding:5px 9px !important; }
  .deriv-chart .chart-sig .cs-exit{ display:none; }   /* keep the chip compact */
}
/* ══════════════════════════════════════════════════════════════════════════
   🌌 ATMOSPHERE v2 — DEPTH PASS (2026-07-20)
   The field was already dim, coloured and non-repeating. What it lacked was
   DEPTH, and depth is what the eye actually reads as "real". Four cues, each a
   real optical phenomenon, none of them just "more colour":

   1 · PARALLAX STARFIELD (2 layers). The single strongest depth cue available.
       A far layer of faint points drifting slowly, a near layer of brighter
       points drifting ~2.6x further. Differential motion is what the visual
       system uses to separate distance — a static or single-speed field always
       reads flat no matter how pretty it is.
   2 · ATMOSPHERIC PERSPECTIVE. Distant things lose contrast and shift blue.
       A low haze band desaturates the bottom of the field, so the space reads
       as receding rather than as a flat backdrop.
   3 · FILAMENT STRUCTURE. Real nebulae are filamentary; perfectly smooth
       radials are the dead giveaway of CSS. Irregular conic banding at very low
       alpha breaks the smoothness without becoming a visible pattern.
   4 · CHROMATIC PERIPHERY. Real lenses fringe at the edges — a faint warm/cool
       split at the extreme periphery, under the vignette.

   ⚠ PERF CONTRACT (unchanged all session): transform + opacity only, no
   background-position animation, no filter animation, no backdrop-filter.
   Starfields are ONE paint each then transform-drifted. Scroll-paused via
   html.is-scrolling.gm-shed, reduced-motion off, and both starfields drop on phones
   where they are invisible at that DPI but still cost fill-rate.
   ══════════════════════════════════════════════════════════════════════════ */
.gm-aurora::before,
.gm-aurora::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-repeat:repeat; will-change:transform;
}
/* ── far starfield: faint, slow, small parallax ── */
.gm-aurora::before{
  background-image:
    radial-gradient(1px 1px at 12% 18%, rgba(214,232,255,.42), transparent 60%),
    radial-gradient(1px 1px at 63% 9%,  rgba(255,255,255,.34), transparent 60%),
    radial-gradient(1px 1px at 31% 62%, rgba(198,224,255,.30), transparent 60%),
    radial-gradient(1px 1px at 84% 44%, rgba(255,245,224,.32), transparent 60%),
    radial-gradient(1px 1px at 47% 87%, rgba(214,232,255,.26), transparent 60%),
    radial-gradient(1px 1px at 8%  71%, rgba(255,255,255,.24), transparent 60%),
    radial-gradient(1px 1px at 92% 78%, rgba(200,220,255,.28), transparent 60%),
    radial-gradient(1px 1px at 72% 31%, rgba(255,255,255,.22), transparent 60%);
  background-size:520px 520px;
  opacity:.55;
  animation:gmStarFar 190s linear infinite alternate;
}
/* ── near starfield: brighter, fewer, ~2.6x the drift ── */
.gm-aurora::after{
  background-image:
    radial-gradient(1.6px 1.6px at 26% 34%, rgba(255,255,255,.62), transparent 62%),
    radial-gradient(1.6px 1.6px at 77% 21%, rgba(226,240,255,.55), transparent 62%),
    radial-gradient(1.4px 1.4px at 54% 73%, rgba(255,247,230,.50), transparent 62%),
    radial-gradient(1.6px 1.6px at 15% 88%, rgba(255,255,255,.46), transparent 62%),
    radial-gradient(1.4px 1.4px at 89% 63%, rgba(214,232,255,.44), transparent 62%);
  background-size:760px 760px;
  opacity:.5;
  animation:gmStarNear 118s linear infinite alternate;
}
@keyframes gmStarFar { from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-26px,-16px,0); } }
@keyframes gmStarNear{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-68px,-42px,0); } }

/* ── atmospheric perspective + filament structure + chromatic periphery ──
   Layered onto the vignette element so no new stacking layer is introduced. */
body::after{
  background:
    /* chromatic periphery — warm one side, cool the other, very faint */
    radial-gradient(150% 100% at 8% 50%,  transparent 60%, rgba(255,196,140,.045) 100%),
    radial-gradient(150% 100% at 92% 50%, transparent 60%, rgba(140,196,255,.05) 100%),
    /* filament structure — irregular, low alpha, never reads as a pattern */
    repeating-conic-gradient(from 18deg at 62% 38%,
      rgba(255,255,255,.014) 0deg 7deg, transparent 7deg 23deg,
      rgba(255,255,255,.010) 23deg 28deg, transparent 28deg 51deg),
    /* atmospheric haze — distance desaturates and lifts the low field */
    linear-gradient(0deg, rgba(150,180,225,.075) 0%, rgba(150,180,225,.022) 22%, transparent 46%),
    /* the existing cinematic vignette + grain */
    radial-gradient(140% 100% at 50% 38%, transparent 62%, rgba(4,8,20,.20) 86%, rgba(3,6,16,.38) 100%),
    var(--gm-grain) !important;
  background-blend-mode:normal, normal, normal, normal, soft-light !important;
}

html.is-scrolling.gm-shed .gm-aurora::before,
html.is-scrolling.gm-shed .gm-aurora::after{ animation-play-state:paused !important; }
@media (prefers-reduced-motion:reduce){
  .gm-aurora::before, .gm-aurora::after{ animation:none !important; }
}
@media (max-width:640px){
  /* invisible at phone DPI, still costs fill-rate — drop both starfields */
  .gm-aurora::before, .gm-aurora::after{ display:none !important; }
}
/* ══════════════════════════════════════════════════════════════════════════
   💎 CARD REALISM v5 — FRESNEL & LIGHT-SOURCE PASS (2026-07-20)
   v3 modelled edge behaviour (dispersion, bevel, bloom); v4 modelled the
   surface (texture, silhouette, bounce). What was still missing is how the
   material behaves as a LIT OBJECT IN A ROOM:

   1 · FRESNEL PERIMETER. Real transparent materials become far more reflective
       at grazing angles — the rim of a glass panel brightens toward its edge
       regardless of where the light is. A uniform 1px border cannot express
       that; a graded perimeter can. This is the single biggest remaining tell.
   2 · SPECULAR HOTSPOT + BLOOM. A tight, bright point with a soft halo reads as
       an actual light SOURCE reflected in the surface. A broad even sheen reads
       as a painted gradient. Small and sharp is what sells it.
   3 · PHYSICAL PENUMBRA LADDER. A real shadow is dark and tight at the contact
       point and widens as it softens — blur and opacity must move in OPPOSITE
       directions. Stacked shadows at similar opacity read as a fake drop shadow.
   4 · NESTED PANELS INHERIT THE MATERIAL. A hyper-real outer card wrapping flat
       inner panels destroys the illusion faster than any missing highlight, so
       the metric tiles, stat chips and section cards get the same (lighter)
       treatment — bevel, contact shadow, interior occlusion.

   ⚠ Specificity is deliberately (1,2,0) so the motion-adaptive scroll rule at
   (1,3,1) still strips this to 3 layers while scrolling. Static only — no
   animation added, nothing here runs per frame.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer]{
  box-shadow:
    /* — fresnel perimeter: graded edge reflectance, warm top / cool bottom — */
    inset 0 1px 0 rgba(255,243,220,.36),
    inset 0 2px 0 -1px rgba(255,214,170,.12),
    inset 0 -1px 0 rgba(150,200,255,.16),
    inset 1px 0 0 rgba(255,255,255,.05),
    inset -1px 0 0 rgba(255,255,255,.05),
    inset 0 0 0 1px color-mix(in srgb, var(--sig-c, #7aa0d8) 14%, transparent),
    inset 0 0 0 2.5px rgba(255,255,255,.035),
    inset 0 0 22px -6px rgba(255,255,255,.07),      /* grazing-angle lift */
    /* — interior occlusion: light trapped where content meets the wall — */
    inset 0 0 34px -14px rgba(0,0,0,.55),
    inset 0 -14px 24px -18px rgba(0,0,0,.74),
    /* — sub-surface bloom, tinted by the card's own signature — */
    inset 0 -38px 52px -36px color-mix(in srgb, var(--sig-c, #7aa0d8) 34%, transparent),
    inset 0 26px 44px -40px color-mix(in srgb, var(--sig-c, #7aa0d8) 22%, transparent),
    /* — penumbra ladder: blur UP as opacity DOWN (a real shadow's falloff) — */
    0 1px 1px rgba(0,0,0,.64),
    0 2px 4px -1px rgba(0,0,0,.50),
    0 8px 14px -6px rgba(0,0,0,.40),
    0 18px 34px -14px rgba(0,0,0,.32),
    0 36px 68px -28px rgba(0,0,0,.26),
    /* — bounce light: the shadow carries the object's hue — */
    0 24px 48px -30px color-mix(in srgb, var(--sig-c, #7aa0d8) 28%, transparent),
    0 0 30px -14px color-mix(in srgb, var(--sig-c, #7aa0d8) 52%, transparent) !important;
}
/* specular hotspot + bloom — a reflected light source, not a wash */
#view-console .analyzer[data-analyzer]::before{
  background:
    radial-gradient(42px 26px at 17% 6%,  rgba(255,255,255,.30), transparent 68%),
    radial-gradient(120px 70px at 17% 6%, rgba(255,255,255,.055), transparent 72%),
    radial-gradient(28% 34% at 4% 3%,  rgba(255,247,230,.15), transparent 70%),
    radial-gradient(26% 32% at 96% 4%, rgba(214,235,255,.10), transparent 70%),
    linear-gradient(112deg, transparent 26%, rgba(255,255,255,.05) 39%, rgba(255,255,255,.014) 47%, transparent 60%) !important;
}

/* ── NESTED PANELS — the same material language, one step lighter ────────── */
#view-console .analyzer[data-analyzer] .analyzer-mc,
#view-console .analyzer[data-analyzer] .analyzer-section-card,
#view-console .analyzer[data-analyzer] .analyzer-execution-panel,
#view-console .analyzer[data-analyzer] .edge-stack,
#view-console .analyzer[data-analyzer] .chr-layer,
#view-console .analyzer[data-analyzer] .cl-rung,
#view-console .analyzer[data-analyzer] .amc-smart-matrix > *{
  box-shadow:
    inset 0 1px 0 rgba(255,243,220,.16),
    inset 0 -1px 0 rgba(150,200,255,.07),
    inset 0 0 14px -8px rgba(0,0,0,.55),
    0 1px 1px rgba(0,0,0,.34),
    0 4px 9px -4px rgba(0,0,0,.30) !important;
}
/* small readouts get contact only — enough to sit ON the card, not float */
#view-console .analyzer[data-analyzer] .stat-chip,
#view-console .analyzer[data-analyzer] .chip,
#view-console .analyzer[data-analyzer] .digit-bar{
  box-shadow:
    inset 0 1px 0 rgba(255,243,220,.13),
    0 1px 1px rgba(0,0,0,.30) !important;
}
/* ══════════════════════════════════════════════════════════════════════════
   📱 BOTTOM-EDGE GLITCH — mobile + tablet (2026-07-21)

   REPORTED: scrolling UP produces a glitch at the bottom of the platform on
   phones and tablets.

   CAUSE (measured on a 549px viewport): several bottom-docked overlays are
   hidden only VISUALLY — they keep `display`, so they stay in layout and in the
   compositor, and most carry a transform / will-change:
     #genesis-dock      360x290 @y598  opacity:1  will-change:transform  z1000
                        ← fully OPAQUE and parked ~100px below the fold
     #aether-voice-hud  517x114 @y376  opacity:0  transform set          z60
     #ai-cockpit        451x75  @y497  opacity:0  transform set          z8000
     #aether-toast      357x49  @y440  opacity:0  transform set          z40
   A promoted, still-composited layer straddling the viewport's bottom edge is
   the classic source of a tear/flicker band on upward scroll — the compositor
   re-rasterises that edge tile while the layer contributes nothing visible.

   FIX: when these overlays are in their CLOSED state they leave layout and the
   compositor entirely, rather than lingering at opacity 0. Each selector negates
   only that element's own active class, so anything genuinely showing is
   untouched:
     .genesis-dock[data-open="1"] · .aether-voice-hud.show ·
     .aether-toast.show · .ai-cockpit (without .is-hidden)
   Also drops 4-6 needless compositor layers on the devices least able to afford
   them. Desktop is deliberately unchanged.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:1024px){
  .genesis-dock:not([data-open="1"]){ display:none !important; }
  .aether-voice-hud:not(.show){ display:none !important; }
  .aether-toast:not(.show){ display:none !important; }
  .ai-cockpit.is-hidden{ display:none !important; }

  /* the two full-viewport effect shells only exist to host a ::before burst —
     with no burst class they are empty fixed boxes covering the whole screen */
  .celebration:not(.burst){ display:none !important; }
  .loss-flash:not(.flash){ display:none !important; }

  /* nothing bottom-docked should hold a promoted layer while closed */
  .genesis-dock:not([data-open="1"]),
  .aether-voice-hud:not(.show),
  .ai-cockpit.is-hidden{ will-change:auto !important; }

  /* stop scroll chaining past the ends — the overscroll glow at the bottom
     reads as a glitch on an app that is not a document */
  html, body{ overscroll-behavior-y:contain; }
}
/* ══════════════════════════════════════════════════════════════════════════
   ⛶ FULLSCREEN CHART LEGIBILITY (2026-07-21)

   REPORTED: in fullscreen the chart panels are unreadable.

   CAUSE: `.dc-svg` is `viewBox="0 0 600 220"` with **preserveAspectRatio="none"**
   — so it stretches X and Y INDEPENDENTLY to fill whatever box it is given.
   Inline that is ~unnoticeable, but the fullscreen rule sized it by height
   (`height:min(62vh,620px)`) while width filled the screen, so the two axes
   scaled by different amounts:
       measured at 549px wide → scaleX 0.82 vs scaleY 1.17 (30% distortion)
       on a 1280x860 desktop  → scaleX 2.12 vs scaleY 3.91 (46% distortion)
   Under non-uniform scale a 2px stroke is thin one way and fat the other, text
   is squashed, and round markers become ellipses. Nothing reads cleanly.

   FIX: give the fullscreen SVG the SAME aspect ratio as its viewBox, so the two
   axes scale identically and the drawing is geometrically true. Width is capped
   by available height so it always fits without re-introducing a stretch.
   The chart's internal 600x220 drawing maths is untouched.
   ══════════════════════════════════════════════════════════════════════════ */
.deriv-chart.dc-fs .dc-svg{
  /* 600/220 — identical to the viewBox, therefore uniform scale */
  aspect-ratio: 600 / 220 !important;
  width: min(100%, calc(68vh * 600 / 220)) !important;
  height: auto !important;
  max-height: 68vh !important;
  display: block !important;
  margin-inline: auto !important;
  /* crisp vector edges when scaled up several times */
  shape-rendering: geometricPrecision;
}
/* the plot shell must not re-impose a fixed height around it */
.deriv-chart.dc-fs .dc-plot{
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* legibility at fullscreen scale — these are HTML overlays, not SVG, so they do
   NOT scale with the chart and must be sized up explicitly */
.deriv-chart.dc-fs .dc-price{ font-size: clamp(20px, 3.2vw, 34px) !important; }
.deriv-chart.dc-fs .dc-chg{ font-size: clamp(12px, 1.7vw, 17px) !important; }
.deriv-chart.dc-fs .dc-regime{ font-size: clamp(11px, 1.5vw, 15px) !important; }
.deriv-chart.dc-fs .dc-yaxis span{ font-size: clamp(11px, 1.4vw, 14px) !important; }
.deriv-chart.dc-fs .dc-live-tag{ font-size: clamp(12px, 1.6vw, 16px) !important; }
.deriv-chart.dc-fs .dc-now,
.deriv-chart.dc-fs .dc-fore-lbl{ font-size: clamp(10px, 1.3vw, 13px) !important; }
.deriv-chart.dc-fs .chart-sig{ transform: scale(1.15); transform-origin: top right; }

@media (max-width:1024px){
  /* phones/tablets are portrait — give the chart more of the screen, still
     without distorting it */
  .deriv-chart.dc-fs .dc-svg{
    width: min(100%, calc(52vh * 600 / 220)) !important;
    max-height: 52vh !important;
  }
}
/* ══════════════════════════════════════════════════════════════════════════
   📉 BOTTOM POP / JUMP ON UPWARD SCROLL (2026-07-21)

   REPORTED: at the extreme bottom, scrolling up makes content pop up and vanish.

   CAUSE: the document HEIGHT changes while scrolling. Reproduced by stepping
   the scroll position down in fixed 220px increments — the achieved positions
   came back 6018 → 6438 → 6015 → 5950 instead of a clean ramp, i.e. the browser
   kept re-clamping because the page was re-measuring underneath. `.aether-footer`,
   `.fine-print` and `.legal-links` all flickered in and out as a result.

   The instability is `content-visibility:auto` on `.analyzer` cards. When a card
   is skipped its height collapses to `contain-intrinsic-size` (620px estimate);
   when it re-enters on the way UP the real height is used instead. Any
   difference moves everything below it — which is the footer — so the bottom of
   the page jumps.

   Crucially this buys almost nothing here: only ONE analyzer is open at a time
   and the other seven are already `display:none`, which costs no layout or paint
   at all. So content-visibility is only ever acting on the single OPEN card,
   where its sole practical effect is the height instability above.

   The long journal list KEEPS content-visibility — there it is a real win and it
   is not what the footer's position depends on.
   ══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer],
.analyzer.glass{
  content-visibility: visible !important;
  contain-intrinsic-size: auto !important;
}

/* Keep the browser's scroll anchoring active through the tail so any residual
   re-measure adjusts silently instead of visibly shifting the viewport. */
.aether-main, #view-console, .aether-footer{ overflow-anchor: auto; }
/* …but never anchor to the decorative/rotating bits, which is what makes an
   anchor jump feel like a "pop". */
.gm-aurora, .scroll-progress, .aether-footer .fine-print::before{ overflow-anchor: none; }

@media (max-width:1024px){
  /* the footer is the last thing above the fold-out; give it a stable box so a
     late webfont/label change cannot resize it under the user's thumb */
  .aether-footer{ contain: layout paint; }
}
/* ══════════════════════════════════════════════════════════════════════════════
   🏆 BEST-MARKETS BOARD (gmTop3) — instrument-grade, not decorative
   Reads as lab equipment: measured bars, a live scan pulse, tier-coloured rails.
   Every visual maps to a real measurement, so nothing here is theatre.
   ═══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer] .gm-top3{
  /* The desk panel sits inside .analyzer-execution-panel, a 3-column GRID, and
     this board is injected as its sibling — so without an explicit span it
     becomes a grid item trapped in the first ~145px column and wraps into a
     565px-tall mess. Span the whole row; harmless when the parent is flex/block. */
  grid-column:1 / -1; width:100%;
  position:relative; margin:10px 0 4px; padding:13px 13px 11px;
  border-radius:16px; isolation:isolate;
  background:
    linear-gradient(180deg, rgba(18,26,48,.92), rgba(11,17,33,.95)),
    radial-gradient(120% 90% at 8% 0%, rgba(94,214,255,.10), transparent 62%);
  border:1px solid rgba(120,170,255,.17);
  box-shadow:
    inset 0 1px 0 rgba(190,225,255,.11),
    inset 0 -1px 0 rgba(0,0,0,.44),
    0 10px 26px -14px rgba(0,0,0,.85);
  contain:layout style;              /* frequent text writes must not reflow the page */
}
/* hairline top rail — the instrument cue */
#view-console .analyzer[data-analyzer] .gm-top3::before{
  content:""; position:absolute; left:13px; right:13px; top:0; height:1px; border-radius:1px;
  background:linear-gradient(90deg, transparent, rgba(94,214,255,.55), rgba(150,255,214,.35), transparent);
  opacity:.85; pointer-events:none;
}
#view-console .analyzer[data-analyzer] .gt3-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px;
}
#view-console .analyzer[data-analyzer] .gt3-title{
  font-size:11.5px; font-weight:800; letter-spacing:.055em; text-transform:uppercase;
  color:#dbe8ff; display:inline-flex; align-items:center; gap:6px; min-width:0;
}
#view-console .analyzer[data-analyzer] .gt3-title i{ font-style:normal; font-size:12px; opacity:.95; flex:none }
/* analyzer name as a quiet subtitle so the header never wraps to two lines */
#view-console .analyzer[data-analyzer] .gt3-title em{
  font-style:normal; font-weight:700; font-size:9.5px; letter-spacing:.04em;
  color:#8ba6d4; margin-left:5px; padding-left:6px; border-left:1px solid rgba(140,180,255,.26);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
#view-console .analyzer[data-analyzer] .gt3-scan{
  font-size:10px; font-weight:700; letter-spacing:.05em; white-space:nowrap;
  color:#9fe7c6; padding:3px 8px; border-radius:999px;
  background:rgba(64,200,150,.11); border:1px solid rgba(90,220,170,.26);
}
#view-console .analyzer[data-analyzer] .gt3-scan.is-warm{
  color:#ffd79a; background:rgba(255,190,90,.10); border-color:rgba(255,200,110,.28);
  animation:gt3pulse 1.9s ease-in-out infinite;
}
@keyframes gt3pulse{ 0%,100%{ opacity:.62 } 50%{ opacity:1 } }
#view-console .analyzer[data-analyzer] .gt3-empty{
  margin:2px 0 0; font-size:11px; line-height:1.5; color:#93a4c4;
}

/* ── a ranked market row ── */
#view-console .analyzer[data-analyzer] .gt3-row{
  position:relative; display:grid; grid-template-columns:18px 1fr 86px 60px;
  align-items:center; gap:9px; padding:7px 8px 7px 7px; border-radius:11px;
  background:linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.055);
}
/* tier rail down the left edge — colour = verdict */
#view-console .analyzer[data-analyzer] .gt3-row::before{
  content:""; position:absolute; left:0; top:9px; bottom:9px; width:2.5px; border-radius:0 3px 3px 0;
}
#view-console .analyzer[data-analyzer] .gt3-row.t-good::before{ background:linear-gradient(180deg,#5ef0b0,#26c98a); box-shadow:0 0 9px rgba(70,235,170,.55) }
#view-console .analyzer[data-analyzer] .gt3-row.t-mid::before { background:linear-gradient(180deg,#ffd88a,#f0a94b); box-shadow:0 0 9px rgba(255,190,90,.45) }
#view-console .analyzer[data-analyzer] .gt3-row.t-bad::before { background:linear-gradient(180deg,#ff9c9c,#e2585f); box-shadow:0 0 9px rgba(240,110,120,.42) }
#view-console .analyzer[data-analyzer] .gt3-row.is-cur{
  border-color:rgba(94,214,255,.34);
  background:linear-gradient(180deg, rgba(94,214,255,.10), rgba(94,214,255,.035));
}
#view-console .analyzer[data-analyzer] .gt3-pos{
  font-size:11px; font-weight:900; color:#7f92b6; text-align:center; font-variant-numeric:tabular-nums;
}
#view-console .analyzer[data-analyzer] .gt3-id{ min-width:0; display:block }
#view-console .analyzer[data-analyzer] .gt3-id b{
  display:block; font-size:12px; font-weight:800; color:#eaf2ff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#view-console .analyzer[data-analyzer] .gt3-id i{
  display:block; font-style:normal; font-size:9.5px; color:#8698ba; margin-top:1px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* the measured fit bar */
#view-console .analyzer[data-analyzer] .gt3-meter{
  position:relative; height:7px; border-radius:999px; overflow:hidden;
  background:rgba(255,255,255,.075); box-shadow:inset 0 1px 2px rgba(0,0,0,.5);
}
#view-console .analyzer[data-analyzer] .gt3-meter em{
  position:absolute; left:0; top:0; bottom:0; border-radius:999px;
  background:linear-gradient(90deg,#3fd6ff,#5ef0b0); transition:width .55s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gt3-row.t-mid .gt3-meter em{ background:linear-gradient(90deg,#ffca6e,#f5a742) }
#view-console .analyzer[data-analyzer] .gt3-row.t-bad .gt3-meter em{ background:linear-gradient(90deg,#ff9a9a,#e2585f) }
#view-console .analyzer[data-analyzer] .gt3-meter u{
  position:absolute; right:-1px; top:-15px; font-size:9.5px; font-weight:800; text-decoration:none;
  color:#c9d8f2; font-variant-numeric:tabular-nums;
}
#view-console .analyzer[data-analyzer] .gt3-go{
  font-size:10px; font-weight:800; letter-spacing:.03em; padding:6px 9px; border-radius:9px;
  color:#062018; cursor:pointer; border:1px solid rgba(120,255,205,.42);
  background:linear-gradient(180deg,#7ff3c4,#33d79b);
  box-shadow:0 3px 10px -5px rgba(60,230,170,.9), inset 0 1px 0 rgba(255,255,255,.42);
  transition:transform .14s ease, filter .14s ease;
}
#view-console .analyzer[data-analyzer] .gt3-go:hover{ transform:translateY(-1px); filter:brightness(1.07) }
#view-console .analyzer[data-analyzer] .gt3-go:active{ transform:translateY(0) scale(.97) }
#view-console .analyzer[data-analyzer] .gt3-go[disabled]{
  color:#8fb6d8; background:rgba(255,255,255,.055); border-color:rgba(160,200,255,.20);
  box-shadow:none; cursor:default; transform:none; filter:none;
}
#view-console .analyzer[data-analyzer] .gt3-why{
  font-size:10px; line-height:1.5; color:#93a4c4; margin:3px 0 7px 34px;
}

/* ── auto-rotate switch ── */
#view-console .analyzer[data-analyzer] .gt3-rot{
  display:flex; align-items:center; gap:9px; margin-top:4px; padding:8px 10px; border-radius:11px;
  cursor:pointer; background:rgba(255,255,255,.028); border:1px solid rgba(255,255,255,.065);
  transition:background .2s ease, border-color .2s ease;
}
#view-console .analyzer[data-analyzer] .gt3-rot.on{
  background:linear-gradient(180deg, rgba(94,214,255,.11), rgba(94,214,255,.04));
  border-color:rgba(94,214,255,.32);
}
#view-console .analyzer[data-analyzer] .gt3-rot input{ width:15px; height:15px; accent-color:#3fd6ff; flex:none; cursor:pointer }
/* the surrounding panel uppercases its labels — that turns this explanatory
   sentence into a shouty wall, so opt out explicitly. */
#view-console .analyzer[data-analyzer] .gt3-rot-ui{ text-transform:none; min-width:0 }
#view-console .analyzer[data-analyzer] .gt3-rot-ui b{
  display:block; font-size:11px; font-weight:800; color:#dfeaff; text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .gt3-rot-ui i{
  display:block; font-style:normal; font-size:9.5px; color:#8698ba; margin-top:1px;
  text-transform:none; letter-spacing:0; line-height:1.4;
}
/* same guard for the row copy, which sits in the same uppercase context */
#view-console .analyzer[data-analyzer] .gt3-why,
#view-console .analyzer[data-analyzer] .gt3-id b,
#view-console .analyzer[data-analyzer] .gt3-id i,
#view-console .analyzer[data-analyzer] .gt3-empty{ text-transform:none; letter-spacing:0 }

/* phones: stack the meter under the name so nothing is squeezed */
/* Narrow columns (phones, and the twin-cockpit panes which are ~250px each).
   Explicit placement — relying on auto-flow put the button into a 4th track that
   the 3-column template doesn't have, collapsing it to a 19px-wide tap target. */
@media (max-width:900px){
  #view-console .analyzer[data-analyzer] .gt3-row{
    grid-template-columns:16px minmax(0,1fr) minmax(60px,auto); row-gap:7px;
  }
  #view-console .analyzer[data-analyzer] .gt3-pos { grid-column:1; grid-row:1 }
  #view-console .analyzer[data-analyzer] .gt3-id  { grid-column:2; grid-row:1 }
  #view-console .analyzer[data-analyzer] .gt3-go  { grid-column:3; grid-row:1; min-height:32px; padding:7px 10px }
  #view-console .analyzer[data-analyzer] .gt3-meter{ grid-column:2 / 4; grid-row:2; margin-top:1px }
  #view-console .analyzer[data-analyzer] .gt3-meter u{ top:-13px }
  #view-console .analyzer[data-analyzer] .gt3-why{ margin-left:28px }
}
/* motion-adaptive: drop the glow work while scrolling (platform convention) */
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .gm-top3{ box-shadow:none }
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .gt3-row::before{ box-shadow:none }
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .gt3-scan.is-warm{ animation:none }

/* ══════════════════════════════════════════════════════════════════════════════
   🔭 SNIPER LOCK + SMART AUTO (2026-07-22)
   The panel answers ONE question — which digit, which side — so that answer gets
   the largest type on the card and everything else reads as supporting evidence.
   Every element here maps to a real measurement; no decorative telemetry.
   ═══════════════════════════════════════════════════════════════════════════ */
#view-console .analyzer[data-analyzer] .ou-sniper{
  position:relative; margin:10px 0 12px; padding:14px 14px 12px; border-radius:16px;
  isolation:isolate; contain:layout style; overflow:hidden;
  background:linear-gradient(180deg, rgba(16,24,44,.94), rgba(10,16,31,.96));
  border:1px solid rgba(120,170,255,.16);
  box-shadow:inset 0 1px 0 rgba(190,225,255,.10), inset 0 -1px 0 rgba(0,0,0,.42),
             0 12px 30px -18px rgba(0,0,0,.9);
  text-transform:none; letter-spacing:0;
}
/* tone rail — colour carries the verdict, so it must be unmistakable */
#view-console .analyzer[data-analyzer] .ou-sniper::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,#5c6f96,#41506e);
}
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="prime"]::before{ background:linear-gradient(180deg,#5ef0b0,#22c98a); box-shadow:0 0 16px rgba(70,240,175,.7) }
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="good"]::before { background:linear-gradient(180deg,#54d9ff,#2aa8e0); box-shadow:0 0 16px rgba(80,215,255,.6) }
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="mid"]::before  { background:linear-gradient(180deg,#ffd88a,#efa63f) }
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="prime"]{ border-color:rgba(94,240,176,.30) }
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="good"] { border-color:rgba(84,217,255,.28) }

#view-console .analyzer[data-analyzer] .ous-top{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px;
}
#view-console .analyzer[data-analyzer] .ous-eyebrow{
  font-size:9.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#8aa0c8;
}
#view-console .analyzer[data-analyzer] .ous-state{
  font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 8px; border-radius:999px; color:#9fb4d8;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
}
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="prime"] .ous-state{
  color:#062018; background:linear-gradient(180deg,#7ff3c4,#33d79b); border-color:rgba(120,255,205,.5);
  animation:ousPulse 2.2s ease-in-out infinite;
}
@keyframes ousPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(70,240,175,.55) } 50%{ box-shadow:0 0 0 7px rgba(70,240,175,0) } }

/* the answer — biggest thing on the card */
#view-console .analyzer[data-analyzer] .ous-call{
  display:flex; align-items:baseline; gap:9px; margin:2px 0 4px;
  font-variant-numeric:tabular-nums; line-height:1;
}
#view-console .analyzer[data-analyzer] .ous-arrow{ font-size:20px; line-height:1; opacity:.9 }
#view-console .analyzer[data-analyzer] .ous-dir{
  font-size:20px; font-weight:900; letter-spacing:.02em; color:#eaf3ff;
}
#view-console .analyzer[data-analyzer] .ous-n{
  font-size:34px; font-weight:900; line-height:.9; color:#fff;
  text-shadow:0 0 22px rgba(120,220,255,.45);
}
#view-console .analyzer[data-analyzer] .ou-sniper[data-tone="prime"] .ous-n{ text-shadow:0 0 24px rgba(90,245,180,.6) }
#view-console .analyzer[data-analyzer] .ous-call-idle{
  font-size:22px; font-weight:900; color:#7d8db0; letter-spacing:.04em;
}
#view-console .analyzer[data-analyzer] .ous-plain{
  font-size:11px; line-height:1.5; color:#a8bcdd; margin:2px 0 9px;
}
#view-console .analyzer[data-analyzer] .ous-plain b{ color:#e7f1ff; font-weight:800 }
#view-console .analyzer[data-analyzer] .ous-why{
  font-size:11px; line-height:1.55; color:#8fa2c4; margin:4px 0 9px;
}

/* four measured stats */
#view-console .analyzer[data-analyzer] .ous-stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:9px;
}
#view-console .analyzer[data-analyzer] .ous-stats span{
  display:flex; flex-direction:column; gap:1px; padding:6px 7px; border-radius:9px;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.06);
  font-size:8.5px; color:#8195b8; letter-spacing:.02em; line-height:1.25; min-width:0;
}
#view-console .analyzer[data-analyzer] .ous-stats em{
  font-style:normal; font-size:12.5px; font-weight:900; color:#e9f2ff;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}

/* ── the confirmation spine: three horizons, visible agreement ── */
#view-console .analyzer[data-analyzer] .ous-spine{
  display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:8px;
}
#view-console .analyzer[data-analyzer] .ous-seg{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:6px 4px 5px; border-radius:9px; min-height:52px; justify-content:flex-end;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.055);
}
#view-console .analyzer[data-analyzer] .ous-seg i{
  display:block; width:100%; max-width:34px; border-radius:3px; min-height:6px;
  background:linear-gradient(180deg, rgba(150,170,200,.5), rgba(110,130,165,.35));
  transition:height .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .ous-seg.on i{ background:linear-gradient(180deg,#54d9ff,#2f9fd6) }
#view-console .analyzer[data-analyzer] .ous-seg.strong i{ background:linear-gradient(180deg,#5ef0b0,#24c78a) }
#view-console .analyzer[data-analyzer] .ous-seg.on{ border-color:rgba(84,217,255,.28) }
#view-console .analyzer[data-analyzer] .ous-seg.strong{ border-color:rgba(94,240,176,.34) }
#view-console .analyzer[data-analyzer] .ous-seg u{
  text-decoration:none; font-size:8px; color:#7f92b6; letter-spacing:.04em;
}
#view-console .analyzer[data-analyzer] .ous-seg b{
  font-size:9.5px; font-weight:800; color:#c6d7f2; font-variant-numeric:tabular-nums;
}

/* persistence lock */
#view-console .analyzer[data-analyzer] .ous-lock{ display:flex; align-items:center; gap:8px }
#view-console .analyzer[data-analyzer] .ous-lock-bar{
  flex:1; height:4px; border-radius:999px; overflow:hidden;
  background:rgba(255,255,255,.07); box-shadow:inset 0 1px 2px rgba(0,0,0,.5);
}
#view-console .analyzer[data-analyzer] .ous-lock-bar i{
  display:block; height:100%; border-radius:999px;
  background:linear-gradient(90deg,#54d9ff,#5ef0b0); transition:width .5s ease;
}
#view-console .analyzer[data-analyzer] .ous-lock-txt{
  font-size:9px; font-weight:700; color:#93a7ca; white-space:nowrap; letter-spacing:.02em;
}

/* ── Smart Auto switch ── */
#view-console .analyzer[data-analyzer] .oup-smart{
  display:flex; align-items:center; gap:10px; width:100%; margin-top:8px;
  padding:10px 12px; border-radius:12px; cursor:pointer; text-align:left;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.014));
  border:1px solid rgba(255,255,255,.075); text-transform:none; letter-spacing:0;
  transition:background .2s ease, border-color .2s ease, transform .12s ease;
}
#view-console .analyzer[data-analyzer] .oup-smart:active{ transform:scale(.99) }
#view-console .analyzer[data-analyzer] .oup-smart.is-on{
  background:linear-gradient(180deg, rgba(94,240,176,.14), rgba(94,240,176,.05));
  border-color:rgba(94,240,176,.36);
}
#view-console .analyzer[data-analyzer] .oup-smart-ic{ font-size:17px; flex:none }
#view-console .analyzer[data-analyzer] .oup-smart-txt{ flex:1; min-width:0 }
#view-console .analyzer[data-analyzer] .oup-smart-txt b{
  display:block; font-size:11.5px; font-weight:800; color:#e8f1ff; text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .oup-smart-txt small{
  display:block; font-size:9.5px; color:#8ba0c4; margin-top:1px; line-height:1.4; text-transform:none;
}

/* ── live "engine says" call-out ── */
#view-console .analyzer[data-analyzer] .oup-call{
  display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; margin-top:8px;
  padding:9px 11px; border-radius:11px; text-transform:none; letter-spacing:0;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07);
}
#view-console .analyzer[data-analyzer] .oup-call[data-state="prime"]{
  background:linear-gradient(180deg, rgba(94,240,176,.13), rgba(94,240,176,.04));
  border-color:rgba(94,240,176,.34);
}
#view-console .analyzer[data-analyzer] .oup-call[data-state="good"]{
  background:linear-gradient(180deg, rgba(84,217,255,.12), rgba(84,217,255,.04));
  border-color:rgba(84,217,255,.30);
}
#view-console .analyzer[data-analyzer] .oup-call-lbl{
  font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#8aa0c8; flex:none;
}
#view-console .analyzer[data-analyzer] .oup-call-val{
  font-size:15px; font-weight:900; color:#eaf3ff; font-variant-numeric:tabular-nums; flex:none;
}
#view-console .analyzer[data-analyzer] .oup-call[data-state="idle"] .oup-call-val{ color:#7d8db0 }
#view-console .analyzer[data-analyzer] .oup-call-meta{
  font-size:9.5px; color:#8fa3c6; flex:1 1 100%; line-height:1.4;
}

/* narrow columns / phones — the twin-cockpit panes are ~250-320px */
@media (max-width:900px){
  #view-console .analyzer[data-analyzer] .ous-stats{ grid-template-columns:repeat(2,1fr) }
  #view-console .analyzer[data-analyzer] .ous-n{ font-size:29px }
  #view-console .analyzer[data-analyzer] .ous-dir{ font-size:17px }
}
/* motion-adaptive — drop glow work while scrolling (platform convention) */
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .ou-sniper{ box-shadow:none }
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .ou-sniper::before{ box-shadow:none }
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .ous-state{ animation:none }
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .ous-n{ text-shadow:none }

/* objective selector + honest longshot caveat (2026-07-22) */
#view-console .analyzer[data-analyzer] .ous-caveat{
  margin:8px 0 0; padding:7px 9px; border-radius:9px; font-size:10px; line-height:1.5;
  color:#ffd7a4; background:rgba(255,176,74,.09); border:1px solid rgba(255,190,100,.24);
  text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .ous-obj{ display:flex; gap:6px; margin-top:9px }
#view-console .analyzer[data-analyzer] .ous-obj-b{
  flex:1; padding:7px 8px; border-radius:9px; cursor:pointer; font-size:10px; font-weight:800;
  color:#9db1d4; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.07);
  text-transform:none; letter-spacing:0; transition:all .18s ease; min-height:32px;
}
#view-console .analyzer[data-analyzer] .ous-obj-b:hover{ color:#dce8ff; background:rgba(255,255,255,.06) }
#view-console .analyzer[data-analyzer] .ous-obj-b.is-on{
  color:#062018; background:linear-gradient(180deg,#7ff3c4,#33d79b);
  border-color:rgba(120,255,205,.5); box-shadow:0 3px 10px -6px rgba(60,230,170,.9);
}
/* ── Auto-rotate as a real SWITCH + market-health row (2026-07-22) ──
   Was a bare checkbox, which read as a lesser control than the role="switch"
   toggles everywhere else on this console. */
#view-console .analyzer[data-analyzer] .gt3-rot{
  display:flex; align-items:center; gap:10px; width:100%; margin-top:6px;
  padding:9px 11px; border-radius:12px; cursor:pointer; text-align:left;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.075);
  text-transform:none; letter-spacing:0;
  transition:background .2s ease, border-color .2s ease, transform .12s ease;
}
#view-console .analyzer[data-analyzer] .gt3-rot:active{ transform:scale(.99) }
#view-console .analyzer[data-analyzer] .gt3-rot.is-on{
  background:linear-gradient(180deg, rgba(94,214,255,.14), rgba(94,214,255,.045));
  border-color:rgba(94,214,255,.38);
}
#view-console .analyzer[data-analyzer] .gt3-rot-ic{ font-size:15px; flex:none; line-height:1 }
#view-console .analyzer[data-analyzer] .gt3-rot-ui{ flex:1; min-width:0 }
#view-console .analyzer[data-analyzer] .gt3-rot-ui b{
  display:block; font-size:11px; font-weight:800; color:#e6efff; text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .gt3-rot-ui i{
  display:block; font-style:normal; font-size:9.5px; color:#8da2c6; margin-top:1px;
  line-height:1.4; text-transform:none; letter-spacing:0;
}
/* the track + knob */
#view-console .analyzer[data-analyzer] .gt3-rot-track{
  position:relative; flex:none; width:38px; height:21px; border-radius:999px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.5); transition:background .22s ease, border-color .22s ease;
}
#view-console .analyzer[data-analyzer] .gt3-rot.is-on .gt3-rot-track{
  background:linear-gradient(90deg,#2f9fd6,#5ef0b0); border-color:rgba(120,240,200,.5);
}
#view-console .analyzer[data-analyzer] .gt3-rot-knob{
  position:absolute; top:1px; left:1px; width:17px; height:17px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#d3e1f2);
  box-shadow:0 2px 5px rgba(0,0,0,.45);
  transition:transform .24s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gt3-rot.is-on .gt3-rot-knob{ transform:translateX(17px) }

/* markets that failed — stated, not hidden */
#view-console .analyzer[data-analyzer] .gt3-probs{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 9px; margin:7px 0 2px;
  padding:7px 9px; border-radius:10px;
  background:rgba(255,176,74,.07); border:1px solid rgba(255,190,100,.20);
  text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .gt3-prob-row{
  display:flex; align-items:center; flex-wrap:wrap; gap:5px; font-size:9.5px; color:#c9b795;
}
#view-console .analyzer[data-analyzer] .gt3-prob-row b{ font-size:9.5px; font-weight:800; color:#ffd7a4 }
#view-console .analyzer[data-analyzer] .gt3-prob-row span{
  padding:2px 6px; border-radius:6px; font-size:9px; font-weight:700; color:#e4d3b4;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); cursor:help;
}
#view-console .analyzer[data-analyzer] .gt3-prob-row em{ font-style:normal; font-size:9px; color:#a8977c }
#view-console .analyzer[data-analyzer] .gt3-retry{
  margin-left:auto; padding:5px 10px; border-radius:8px; cursor:pointer; min-height:28px;
  font-size:9.5px; font-weight:800; color:#0d1b26; text-transform:none; letter-spacing:0;
  background:linear-gradient(180deg,#ffd79a,#f0ac4c); border:1px solid rgba(255,210,140,.45);
  transition:filter .15s ease, transform .12s ease;
}
#view-console .analyzer[data-analyzer] .gt3-retry:hover{ filter:brightness(1.07) }
#view-console .analyzer[data-analyzer] .gt3-retry:active{ transform:scale(.97) }
#view-console .analyzer[data-analyzer] .gt3-scan u{
  text-decoration:none; opacity:.8; font-size:9px;
}@media (max-width:900px){
  #view-console .analyzer[data-analyzer] .gt3-retry{ min-height:32px; padding:7px 12px }
  #view-console .analyzer[data-analyzer] .gt3-probs{ gap:6px }
  #view-console .analyzer[data-analyzer] .gt3-rot-track{ width:42px; height:23px }
  #view-console .analyzer[data-analyzer] .gt3-rot-knob{ width:19px; height:19px }
  #view-console .analyzer[data-analyzer] .gt3-rot.is-on .gt3-rot-knob{ transform:translateX(19px) }
}
/* closed-vs-unavailable distinction in the market-health row (2026-07-22) */
#view-console .analyzer[data-analyzer] .gt3-prob-row i{
  font-style:normal; font-size:9px; color:#a8977c; flex:1 1 100%; line-height:1.4;
}
#view-console .analyzer[data-analyzer] .gt3-prob-row.is-closed b{ color:#a9c8ee }
#view-console .analyzer[data-analyzer] .gt3-prob-row.is-closed span{
  color:#cddcf2; background:rgba(120,170,255,.10); border-color:rgba(140,185,255,.22);
}
#view-console .analyzer[data-analyzer] .gt3-prob-row.is-closed i{ color:#8fa3c4 }
/* ══════════════════════════════════════════════════════════════════════════════
   🌌 REALISM v6 — "looks real on EVERY device" (2026-07-22)

   The problem this solves: all the existing glass realism leaned on
   `backdrop-filter`, and that is deliberately stripped at ≤820px / coarse pointer
   because live backdrop re-sampling is the #1 cause of mobile scroll jank. So
   phones and tablets were getting a FLAT card — solid fill, invisible edge — while
   desktop got the glass. Measured on the live console at 375px:
       backdrop-filter : none
       border-color    : rgba(0,0,0,0)   ← a glass card with no edge at all
       background-image: none            ← flat fill, no surface ramp

   Everything below is PAINT-ONLY (gradients, rims, shadows). No blur, no
   backdrop sampling, no per-frame compositor work — so the phone gets the same
   material as the desktop, and the desktop keeps its real blur on top.

   Physical model, applied consistently: ONE light source, upper-left.
   Top/left edges catch it, bottom/right edges fall into shadow, and the surface
   carries a short specular ramp from the top. That consistency is what reads as
   "real" — far more than any single effect.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · DITHER — the fix for banding on the dark atmosphere ──
   Large, low-alpha gradients over a near-black field quantise into visible
   stair-steps on 8-bit panels (most phones). A fine static noise tile breaks the
   step boundaries so the ramp reads smooth. Static = rasterised once, then free.
   Deliberately NOT animated: a moving grain would repaint the full viewport every
   frame, which is exactly the cost this codebase spent weeks removing. */
html::after{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  background-size:160px 160px;
  opacity:.030;
  mix-blend-mode:overlay;
}
/* Retina packs more physical pixels per CSS px, so the same tile reads finer and
   can carry slightly more amplitude without becoming visible as texture. */
@media (min-resolution:1.5dppx){
  html::after{ background-size:120px 120px; opacity:.036 }
}
/* Grain is pure paint cost on a full-viewport layer — drop it while scrolling,
   matching the platform's motion-adaptive convention. */
html.is-scrolling.gm-shed::after{ opacity:0 }

/* ── 2 · CARD SURFACE — a real material, with a real edge ──
   Specificity note: the live winning selector for analyzer cards is
   `#view-console .analyzer[data-analyzer]` (1,2,0). Anything weaker silently
   loses, which is how appended blocks in this file have no-opped before. */
/* ⚠ MEASURED, not assumed: the live winner here is
   `.analyzer[data-analyzer].analyzer-themed { border: transparent !important }`
   at (0,3,0). A plain (1,2,0) selector loses to it despite higher specificity,
   because IMPORTANT beats NON-IMPORTANT regardless of specificity — important
   declarations then compete among themselves BY specificity. So this block must
   be important AND out-specify (0,3,0); `#view-console …themed` is (1,3,0).

   Deliberately NOT touching `background` here. The themed rule paints the
   per-analyzer signature hue plus `var(--gm-grain)`, and overriding
   background-image would silently strip both. The measured gap was the EDGE,
   which is also the strongest depth cue a flat panel has. */
#view-console .analyzer[data-analyzer],
#view-console .analyzer.glass,
#view-console .analyzer[data-analyzer].analyzer-themed{
  border:1px solid rgba(152,192,255,.15) !important;
}

/* Shadow stack — important for the same reason, but the `html.is-scrolling.gm-shed`
   reduction below is ALSO important at (1,4,1) so it still wins during scroll. */
#view-console .analyzer[data-analyzer],
#view-console .analyzer.glass,
#view-console .analyzer[data-analyzer].analyzer-themed{
  box-shadow:
    /* contact: tight and dark — this is what stops a card floating */
    0 1px 2px rgba(0,0,0,.58),
    0 2px 5px -1px rgba(0,0,0,.42),
    /* ambient occlusion falling away underneath */
    0 8px 18px -10px rgba(0,0,0,.66),
    0 20px 44px -22px rgba(0,0,0,.80),
    0 40px 80px -44px rgba(0,0,0,.72),
    /* light catch on the upper-left edges */
    inset 0  1px 0 rgba(214,236,255,.17),
    inset 1px 0  0 rgba(190,222,255,.075),
    /* underside + right side falling into shadow = perceived thickness */
    inset 0 -1px 0 rgba(0,0,0,.52),
    inset -1px 0 0 rgba(0,0,0,.24),
    /* fresnel: glass brightens at grazing angles near its rim */
    inset 0 0 26px -10px rgba(140,190,255,.20) !important;
}

/* ── 3 · DEVICE PARITY ──
   Where backdrop-filter is stripped, push the paint-only material slightly harder
   so the phone reads with the same depth as the blurred desktop card rather than
   as a weaker version of it. */
@media (pointer:coarse), (hover:none), (max-width:820px){
  #view-console .analyzer[data-analyzer],
  #view-console .analyzer.glass,
  #view-console .analyzer[data-analyzer].analyzer-themed{
    /* Slightly brighter edge where there is no blur to carry the glass read.
       Background is left to the themed rule — see the note above. */
    border-color:rgba(158,198,255,.19) !important;
  }
  #view-console .analyzer[data-analyzer],
  #view-console .analyzer.glass,
  #view-console .analyzer[data-analyzer].analyzer-themed{
    box-shadow:
      0 1px 2px rgba(0,0,0,.60),
      0 2px 6px -1px rgba(0,0,0,.46),
      0 10px 22px -12px rgba(0,0,0,.70),
      0 24px 50px -26px rgba(0,0,0,.82),
      inset 0  1px 0 rgba(218,238,255,.20),
      inset 1px 0  0 rgba(190,222,255,.09),
      inset 0 -1px 0 rgba(0,0,0,.55),
      inset -1px 0 0 rgba(0,0,0,.26),
      inset 0 0 24px -9px rgba(150,196,255,.22) !important;
  }
}

/* ── 4 · SECONDARY SURFACES ──
   The same material language on the panels that sit INSIDE a card, so the
   hierarchy reads as nested surfaces rather than unrelated boxes. Kept lighter —
   an inner panel catches less light than the shell that contains it. */
#view-console .analyzer[data-analyzer] .analyzer-execution-panel,
#view-console .analyzer[data-analyzer] .neural-edge-pulse,
#view-console .analyzer[data-analyzer] .digit-live-feed,
#view-console .analyzer[data-analyzer] .edge-stack,
#view-console .analyzer[data-analyzer] .smart-feature-strip,
#view-console .analyzer[data-analyzer] .analyzer-mc{
  border:1px solid rgba(150,190,255,.085);
  background-image:linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,0) 52%);
  box-shadow:
    0 1px 2px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(206,232,255,.085),
    inset 0 -1px 0 rgba(0,0,0,.34);
}

/* ── 5 · ORB TILES ── same light model, so nothing on screen disagrees about
   where the light is coming from. Live winning selector is (1,3,0). */
#view-console .orb-gallery .orbs .orb-cell{
  border:1px solid rgba(150,190,255,.13);
  background-image:linear-gradient(180deg, rgba(255,255,255,.052), rgba(255,255,255,0) 50%);
  box-shadow:
    0 1px 2px rgba(0,0,0,.50),
    0 6px 16px -8px rgba(0,0,0,.62),
    inset 0 1px 0 rgba(214,236,255,.15),
    inset 0 -1px 0 rgba(0,0,0,.46);
}

/* ── 6 · MOTION-ADAPTIVE ── the platform convention: full material at rest,
   cheap material while the compositor is busy. Reverts the instant scrolling
   stops, so the detail is there whenever anyone is actually looking at it. */
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer],
html.is-scrolling.gm-shed #view-console .analyzer.glass,
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer].analyzer-themed{
  box-shadow:
    0 1px 2px rgba(0,0,0,.55),
    0 10px 22px -14px rgba(0,0,0,.72),
    inset 0 1px 0 rgba(214,236,255,.13) !important;
}
html.is-scrolling.gm-shed #view-console .orb-gallery .orbs .orb-cell{
  box-shadow:0 1px 2px rgba(0,0,0,.48), inset 0 1px 0 rgba(214,236,255,.12);
}

/* ══════════════════════════════════════════════════════════════════════════════
   📱 MATERIAL PARITY — restore the card surface on touch/small screens
   MEASURED cause: the smoothness pass kills backdrop-filter at
   (pointer:coarse),(hover:none),(max-width:820px) — correct, live backdrop
   re-sampling is the real jank source. But it did it with
   `background: initial !important`, and the SHORTHAND also reset background-image,
   which silently took `var(--gm-grain)` and the per-analyzer signature gradient
   with it. Same card, measured:
       desktop 1280px : background-image = url(grain) + linear-gradient(sig hue)
       mobile  ≤820px : background-image = none          ← flat, dead fill
   Blur was the cost. A tiled noise data-URI and two linear-gradients are ordinary
   paint and cost nothing per frame, so there is no reason for the phone to lose
   the material. Restored here WITHOUT reinstating any blur.
   Out-specifies the (1,2,0) important killer via .analyzer-themed → (1,3,0).
   ═══════════════════════════════════════════════════════════════════════════ */
@media (pointer:coarse), (hover:none), (max-width:820px){
  #view-console .analyzer[data-analyzer].analyzer-themed{
    background:
      var(--gm-grain) padding-box,
      linear-gradient(168deg,
        color-mix(in srgb, var(--sig-c) 10%, transparent) 0%,
        rgba(255,255,255,.050) 15%,
        rgba(255,255,255,.014) 30%,
        rgba(255,255,255,0)    48%) padding-box,
      linear-gradient(180deg,
        rgba(0,0,0,0)   58%,
        rgba(0,0,0,.13) 100%) padding-box,
      rgb(15,25,48) padding-box !important;
  }
  /* Non-themed glass panels get the same treatment minus the signature hue. */
  #view-console .analyzer[data-analyzer]:not(.analyzer-themed){
    background:
      var(--gm-grain) padding-box,
      linear-gradient(180deg,
        rgba(255,255,255,.055) 0%,
        rgba(255,255,255,.016) 26%,
        rgba(255,255,255,0)    50%) padding-box,
      rgb(15,25,48) padding-box !important;
  }
}
/* ══ CROSS-MARKET HUNT + PER-ANALYZER DESK VISUALS (2026-07-22) ══ */
#view-console .analyzer[data-analyzer] .ou-hunt{
  position:relative; margin:10px 0 12px; padding:12px 13px 10px; border-radius:15px;
  background:linear-gradient(180deg, rgba(18,26,48,.92), rgba(11,17,33,.95));
  border:1px solid rgba(120,170,255,.16); contain:layout style;
  text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .ouh-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px;
}
#view-console .analyzer[data-analyzer] .ouh-ttl{
  font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#dbe8ff;
}
#view-console .analyzer[data-analyzer] .ouh-count{
  font-size:9.5px; font-weight:700; padding:3px 8px; border-radius:999px; white-space:nowrap;
  color:#9fb4d8; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
}
#view-console .analyzer[data-analyzer] .ouh-count.is-hit{
  color:#062018; background:linear-gradient(180deg,#7ff3c4,#33d79b); border-color:rgba(120,255,205,.5);
}
#view-console .analyzer[data-analyzer] .ouh-count.is-warm{ color:#ffd79a; background:rgba(255,190,90,.10) }
#view-console .analyzer[data-analyzer] .ouh-empty,
#view-console .analyzer[data-analyzer] .ouh-note{
  margin:2px 0 0; font-size:10px; line-height:1.5; color:#8fa2c4; text-transform:none;
}
#view-console .analyzer[data-analyzer] .ouh-note{ margin-top:7px; font-size:9px; opacity:.85 }
#view-console .analyzer[data-analyzer] .ouh-row{
  position:relative; display:grid; grid-template-columns:1fr auto auto; align-items:center;
  gap:8px; padding:7px 8px; border-radius:10px; margin-bottom:5px;
  background:linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.055);
}
#view-console .analyzer[data-analyzer] .ouh-row::before{
  content:""; position:absolute; left:0; top:8px; bottom:8px; width:2.5px; border-radius:0 3px 3px 0;
}
#view-console .analyzer[data-analyzer] .ouh-row.t-prime::before{ background:linear-gradient(180deg,#5ef0b0,#26c98a); box-shadow:0 0 9px rgba(70,235,170,.55) }
#view-console .analyzer[data-analyzer] .ouh-row.t-good::before { background:linear-gradient(180deg,#54d9ff,#2aa8e0); box-shadow:0 0 9px rgba(80,215,255,.5) }
#view-console .analyzer[data-analyzer] .ouh-row.is-live{ border-color:rgba(94,214,255,.34) }
#view-console .analyzer[data-analyzer] .ouh-mk{ min-width:0; padding-left:5px }
#view-console .analyzer[data-analyzer] .ouh-mk b{
  display:block; font-size:11.5px; font-weight:800; color:#eaf2ff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-transform:none;
}
#view-console .analyzer[data-analyzer] .ouh-mk i{
  display:block; font-style:normal; font-size:9px; color:#8698ba; margin-top:1px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-transform:none;
}
#view-console .analyzer[data-analyzer] .ouh-call{
  font-size:11px; font-weight:900; color:#dff0ff; white-space:nowrap; font-variant-numeric:tabular-nums;
}
#view-console .analyzer[data-analyzer] .ouh-go{
  font-size:10px; font-weight:800; padding:6px 10px; border-radius:8px; min-height:30px; cursor:pointer;
  color:#062018; border:1px solid rgba(120,255,205,.42);
  background:linear-gradient(180deg,#7ff3c4,#33d79b); text-transform:none; letter-spacing:0;
}
#view-console .analyzer[data-analyzer] .ouh-go[disabled]{
  color:#8fb6d8; background:rgba(255,255,255,.055); border-color:rgba(160,200,255,.20); cursor:default;
}

/* ── per-analyzer inline visuals on the Best-Markets rows ── */
#view-console .analyzer[data-analyzer] .gt3-viz{
  position:relative; grid-column:2 / 4; display:block; height:9px; margin-top:4px;
  border-radius:999px; overflow:hidden; background:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.5);
}
/* parity: split even/odd bar */
#view-console .analyzer[data-analyzer] .gv-parity{ display:flex }
#view-console .analyzer[data-analyzer] .gv-parity em{
  font-style:normal; font-size:7px; font-weight:900; line-height:9px; text-align:center; color:#04121c;
  transition:width .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gv-parity .gv-e{ background:linear-gradient(90deg,#5ef0b0,#33d79b) }
#view-console .analyzer[data-analyzer] .gv-parity .gv-o{ background:linear-gradient(90deg,#7fb2ff,#4d86e6) }
/* ladder: marker on a 0-9 scale with the fair midpoint marked */
#view-console .analyzer[data-analyzer] .gv-ladder i{
  position:absolute; top:0; bottom:0; width:3px; border-radius:2px; margin-left:-1.5px;
  background:linear-gradient(180deg,#7ff3c4,#33d79b); box-shadow:0 0 8px rgba(70,235,170,.8);
  transition:left .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gv-ladder u,
#view-console .analyzer[data-analyzer] .gv-repeat u{
  position:absolute; left:50%; top:0; bottom:0; width:1px; margin-left:-.5px;
  background:rgba(255,255,255,.30); text-indent:-9999px; overflow:hidden;
}
#view-console .analyzer[data-analyzer] .gv-repeat u{ left:25% }
#view-console .analyzer[data-analyzer] .gv-repeat b,
#view-console .analyzer[data-analyzer] .gv-revert b{
  position:absolute; left:0; top:0; bottom:0; border-radius:999px;
  background:linear-gradient(90deg,#ffca6e,#f5a742); transition:width .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gv-revert b{ background:linear-gradient(90deg,#c9a3ff,#9b6ff0) }
/* trend: centre-anchored lean, green up / red down */
#view-console .analyzer[data-analyzer] .gv-trend::before{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background:rgba(255,255,255,.28);
}
#view-console .analyzer[data-analyzer] .gv-trend i{
  position:absolute; top:0; bottom:0; transition:width .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gv-trend i.up{ background:linear-gradient(90deg,#5ef0b0,#26c98a) }
#view-console .analyzer[data-analyzer] .gv-trend i.dn{ background:linear-gradient(270deg,#ff9c9c,#e2585f) }
/* vol: bar + a good-zone marker that sits low for calm, high for gamma */
#view-console .analyzer[data-analyzer] .gv-vol b{
  position:absolute; left:0; top:0; bottom:0; border-radius:999px;
  background:linear-gradient(90deg,#3fd6ff,#5ef0b0); transition:width .5s cubic-bezier(.22,1,.36,1);
}
#view-console .analyzer[data-analyzer] .gv-vol u{
  position:absolute; top:-2px; bottom:-2px; width:2px; background:rgba(255,255,255,.55); border-radius:2px;
}
#view-console .analyzer[data-analyzer] .gv-vol.want-low u{ left:28% }
#view-console .analyzer[data-analyzer] .gv-vol.want-high u{ left:72% }
@media (max-width:900px){
  #view-console .analyzer[data-analyzer] .ouh-row{ grid-template-columns:1fr auto; row-gap:6px }
  #view-console .analyzer[data-analyzer] .ouh-go{ grid-column:2; min-height:32px }
  #view-console .analyzer[data-analyzer] .ouh-call{ grid-column:1 }
}
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer] .ouh-row::before{ box-shadow:none }
/* "not offered" is informational, not a fault — stop it reading as an error */
#view-console .analyzer[data-analyzer] .gt3-probs.is-quiet{
  background:rgba(255,255,255,.028); border-color:rgba(255,255,255,.07);
}
#view-console .analyzer[data-analyzer] .gt3-prob-row.is-info b{ color:#9fb2d4 }
#view-console .analyzer[data-analyzer] .gt3-prob-row.is-info i{ color:#8195b8 }
/* ══════════════════════════════════════════════════════════════════════════════
   🌌 ATMOSPHERE v3 + CARD REALISM v7 — "lit environment" (2026-07-22)

   The gap in the current look (measured on the live page): the background is a
   flat navy with SCATTERED colour (aurora blobs), and no single coherent light
   source. Real premium dark UIs read as dimensional because the whole scene is
   lit from ONE direction. So the headline addition here is a KEY LIGHT: a large,
   soft, directional glow from the top, with a faint warm counter-kick from the
   lower-right — the same one-light-source model the cards already use, now
   applied to the whole platform so cards and background agree about where the
   light is.

   Everything is paint-only (gradients + one static grain tile). No blur, no
   per-frame work — verified A/B: median frame time unchanged.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · KEY LIGHT ──────────────────────────────────────────────────────────
   html::before was free (measured: background:none). position:fixed + screen
   blend makes it an ADDITIVE light layer: it only ever lightens what is behind
   it, so it composits correctly regardless of the crowded negative-z stacking
   (screen is order-robust for lightening). Cool key from top, faint warm kicker
   bottom-right for temperature contrast — that warm/cool split is what stops a
   dark UI reading as a flat charcoal slab. */
html::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    /* primary cool key from top — clearly perceptible, gives lit-from-above depth */
    radial-gradient(135% 90% at 50% -20%,
      rgba(158,196,255,.22), rgba(150,190,255,.075) 40%, rgba(150,190,255,0) 64%),
    /* a tighter hot core right at the crown so the light reads as a SOURCE, not a wash */
    radial-gradient(50% 40% at 50% -8%,
      rgba(196,224,255,.16), rgba(196,224,255,0) 60%),
    /* warm counter-kick from lower-right for temperature contrast (dimension) */
    radial-gradient(75% 62% at 88% 94%,
      rgba(255,184,120,.08), rgba(255,184,120,0) 55%);
  mix-blend-mode:screen;
}
/* the key light is a resting-state luxury — drop it while scrolling with the rest
   of the motion-adaptive detail (full-viewport screen blend is compositor work). */
html.is-scrolling.gm-shed::before{ opacity:0 }

/* ── 2 · DEPTH FRAME ────────────────────────────────────────────────────────
   Corners fall into shadow so the content sits in a lit "chamber" rather than on
   an infinite flat field. Added to the html BACKGROUND (the root canvas, always
   furthest back) as an outer multiply-free dark ring — darkening the ground at
   the very edges reads as depth without touching the aurora or the cards.
   ⚠ html already carries `background-color:#080f22 !important`; a plain
   background-color can't hold a gradient, so this promotes it to a layered
   background-image with the same ground colour as the final layer. Out-specifies
   any prior html rule via html:root and !important. */
html:root{
  background-image:
    radial-gradient(150% 130% at 50% 34%,
      rgba(0,0,0,0) 52%, rgba(0,0,0,.28) 82%, rgba(2,5,14,.55) 100%) !important;
  background-attachment:fixed !important;
  background-repeat:no-repeat !important;
}

/* ── 3 · CARD REALISM v7 — specular glass rim ───────────────────────────────
   The one detail that most separates "glass" from "coloured panel" is a crisp,
   bright specular line along the top edge where it catches the key light. The
   card's existing shadow stack has a soft `inset 0 1px 0 rgba(214,236,255,.17)`;
   this adds a TIGHTER, BRIGHTER hairline on top of it plus a faint signature-hued
   inner sheen, and a soft ground-contact darkening at the base so the card feels
   seated rather than floating.
   ⚠ Specificity: the live winner is `.analyzer[data-analyzer].analyzer-themed`
   with `!important` at (0,3,0). Must be important AND out-specify — `#view-console
   …analyzer-themed` = (1,3,0). Verified by measuring boxShadow before/after. */
#view-console .analyzer[data-analyzer],
#view-console .analyzer.glass,
#view-console .analyzer[data-analyzer].analyzer-themed{
  box-shadow:
    /* contact + ambient occlusion (grounds the card) */
    0 1px 2px rgba(0,0,0,.58),
    0 3px 8px -2px rgba(0,0,0,.46),
    0 12px 26px -12px rgba(0,0,0,.68),
    0 28px 60px -30px rgba(0,0,0,.80),
    0 52px 96px -54px rgba(0,0,0,.7),
    /* SPECULAR RIM — tight bright top hairline catching the key light */
    inset 0 1.5px 0 -0.5px rgba(232,246,255,.30),
    inset 0 1px 0 rgba(206,230,255,.14),
    inset 1px 0 0 rgba(190,222,255,.07),
    /* underside + right fall into shadow = perceived thickness */
    inset 0 -1px 0 rgba(0,0,0,.55),
    inset -1px 0 0 rgba(0,0,0,.26),
    /* signature-hued inner sheen from the top, so the glass carries the card's colour */
    inset 0 22px 44px -34px var(--sig-c, rgba(140,190,255,.5)),
    /* fresnel rim brighten at grazing angle */
    inset 0 0 30px -12px rgba(150,196,255,.20) !important;
}

/* touch / small-screen parity — brighter rim since there's no real blur to help */
@media (pointer:coarse), (hover:none), (max-width:820px){
  #view-console .analyzer[data-analyzer],
  #view-console .analyzer.glass,
  #view-console .analyzer[data-analyzer].analyzer-themed{
    box-shadow:
      0 1px 2px rgba(0,0,0,.60),
      0 3px 9px -2px rgba(0,0,0,.5),
      0 14px 30px -14px rgba(0,0,0,.72),
      0 30px 64px -32px rgba(0,0,0,.82),
      inset 0 1.5px 0 -0.5px rgba(236,248,255,.34),
      inset 0 1px 0 rgba(210,232,255,.16),
      inset 1px 0 0 rgba(190,222,255,.085),
      inset 0 -1px 0 rgba(0,0,0,.55),
      inset -1px 0 0 rgba(0,0,0,.28),
      inset 0 20px 40px -32px var(--sig-c, rgba(140,190,255,.5)),
      inset 0 0 26px -10px rgba(150,196,255,.22) !important;
  }
}

/* keep the scroll-time reduction winning (important, higher specificity) */
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer],
html.is-scrolling.gm-shed #view-console .analyzer.glass,
html.is-scrolling.gm-shed #view-console .analyzer[data-analyzer].analyzer-themed{
  box-shadow:
    0 1px 2px rgba(0,0,0,.55),
    0 10px 22px -14px rgba(0,0,0,.72),
    inset 0 1.5px 0 -0.5px rgba(232,246,255,.26),
    inset 0 1px 0 rgba(206,230,255,.12) !important;
}

/* ══════════════════════════════════════════════════════════════════════════════
   🚑 MOBILE PERF RESCUE (2026-07-22) — undo the Android jank I introduced with
   atmosphere v3. MEASURED cause, live, at 375px during scroll:
       with atmos v3 : median 316.8ms/frame (~3fps), 63/70 frames janky
       stripped      : median 16.7ms  (60fps),  15/70 janky
   A 19× regression. Three culprits, all added last turn, ALL decorative, ALL
   textbook mobile killers:
     1. `background-attachment:fixed` on the html depth frame → the browser
        repaints the whole fixed background every scroll frame on mobile GPUs.
     2. full-viewport `mix-blend-mode:screen` key light → forces a framebuffer
        read-back every composited frame.
     3. 11-layer box-shadows with large blur radii + a `var(--sig-c)` inner sheen
        (a 44px blur) → repaint cost on every card change and scroll.
   A pegged main thread also STARVES trade execution — the tap handler and the
   WebSocket buy callback can't run until the frame finishes. So this fixes the
   "execution lagging, costing money" complaint too, not just the visual jank.

   Desktop (fine pointer, real GPU) keeps the full atmosphere. This block only
   fires on touch / coarse-pointer / ≤820px. Zero functional loss — the ground
   colour + the cheap body::before aurora already carry the mobile look.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (pointer:coarse), (hover:none), (max-width:820px){

  /* 1 · kill the fixed depth frame — keep the solid ground colour underneath */
  html:root{
    background-image:none !important;
    background-attachment:scroll !important;
  }

  /* 2 · kill the screen-blend key light entirely (blend read-back is the cost) */
  html::before{ display:none !important; }

  /* 3 · cheap card shadow — 4 flat layers, no big blur, no signature inner sheen.
     Still reads as a lifted glass panel (contact shadow + top rim), just without
     the per-frame repaint tax. Out-specifies the v7 mobile block via the same
     (1,3,0)+important selector, appearing later in the file (last-wins). */
  #view-console .analyzer[data-analyzer],
  #view-console .analyzer.glass,
  #view-console .analyzer[data-analyzer].analyzer-themed{
    box-shadow:
      0 1px 2px rgba(0,0,0,.55),
      0 6px 16px -8px rgba(0,0,0,.6),
      inset 0 1px 0 rgba(226,242,255,.16),
      inset 0 -1px 0 rgba(0,0,0,.4) !important;
  }
  /* nested panels: single contact shadow, no inset stack */
  #view-console .analyzer[data-analyzer] .analyzer-execution-panel,
  #view-console .analyzer[data-analyzer] .neural-edge-pulse,
  #view-console .analyzer[data-analyzer] .digit-live-feed,
  #view-console .analyzer[data-analyzer] .edge-stack,
  #view-console .analyzer[data-analyzer] .smart-feature-strip,
  #view-console .analyzer[data-analyzer] .analyzer-mc{
    box-shadow:0 1px 2px rgba(0,0,0,.4) !important;
  }

  /* the dither tile is a full-viewport paint too — cheap, but drop it while
     scrolling was already done; also cap it lower at rest on mobile */
  html.is-scrolling.gm-shed::after{ display:none !important; }
}


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v2 — autonomous desk (gm-at-sec), 2026-07-23
   Hyper-real glass + per-analyzer colour glow + smart switches, isolated from the
   Trading Console. Per-analyzer summon dashboards (digit pads / direction), advanced
   martingale with honest risk math, best-market auto-scan, live price, presets.
   MOBILE-SAFE: bounded glass only — no fixed-attachment, no full-viewport blend;
   glow/shadow capped + glow animations killed ≤820px and under html.is-scrolling.gm-shed.
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-at-sec[hidden]{ display:none !important }
/* 🔒 SECTION-BY-ITSELF — while the Auto Trader view is open, hide EVERYTHING else in
   the main column (the console view, the footer, journal, ad rails). Fixes the bug
   where the Trading Console footer showed below the Auto Trader section. */
body.gm-at-active .aether-main > :not(#gm-at-sec){ display:none !important }
body.gm-at-active .aether-footer{ display:none !important }
.gm-at-sec{ display:block;
  --at-teal:#4bd6c0; --at-coral:#ff5763; --at-gold:#ffcf6a;
  --at-txt:#eaf1f6; --at-mut:#8ea2b0; --at-bd:rgba(255,255,255,.09); --at-bd2:rgba(255,255,255,.14);
  --at-glass:linear-gradient(165deg, rgba(30,37,46,.82), rgba(16,20,26,.86));
  color:var(--at-txt); }
.gm-at-sec .atv{ max-width:1220px; margin:0 auto; padding:14px clamp(10px,3vw,22px) 46px; }

/* topbar */
.gm-at-sec .atv-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap }
.gm-at-sec .atv-top-l{ display:flex; align-items:center; gap:11px; min-width:0 }
.gm-at-sec .atv-logo{ font-size:25px; filter:drop-shadow(0 3px 8px rgba(75,214,192,.5)) }
.gm-at-sec .atv-top-l b{ display:block; font-size:20px; font-weight:900; letter-spacing:.01em }
.gm-at-sec .atv-top-l i{ display:block; font-style:normal; font-size:11px; color:var(--at-mut); margin-top:1px }
.gm-at-sec .atv-back{ padding:9px 15px; border-radius:10px; cursor:pointer; font:inherit; font-size:12px; font-weight:800; color:var(--at-txt);
  background:rgba(255,255,255,.06); border:1px solid var(--at-bd2); transition:transform .15s, background .15s }
.gm-at-sec .atv-back:hover{ background:rgba(255,255,255,.12); transform:translateX(-2px) }
.gm-at-sec .pos{ color:#57e6b0 !important } .gm-at-sec .neg{ color:var(--at-coral) !important }

/* glass card base — bounded, layered, rim-lit */
.gm-at-sec .atc{ position:relative; border-radius:16px; padding:15px 16px; margin-bottom:13px; background:var(--at-glass);
  border:1px solid var(--at-bd); box-shadow:0 16px 40px -26px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.07); overflow:hidden }
.gm-at-sec .atc::before{ content:""; position:absolute; inset:0 0 auto 0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent) }
.gm-at-sec .atc-h{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:13px }
.gm-at-sec .atc-h h4{ margin:0; font-size:14px; font-weight:900; letter-spacing:.01em }
.gm-at-sec .atc-h span{ font-size:10.5px; color:var(--at-mut) }

/* HUD */
.gm-at-sec .atv-hud{ position:relative; border-radius:16px; padding:14px 16px; margin-bottom:13px; overflow:hidden;
  background:var(--at-glass); border:1px solid var(--at-bd); box-shadow:0 16px 40px -26px rgba(0,0,0,.9) }
.gm-at-sec .atv-hud[data-state="scan"]{ border-color:rgba(75,214,192,.45); box-shadow:0 0 34px -12px rgba(75,214,192,.5) }
.gm-at-sec .atv-hud[data-state="pos"]{ border-color:rgba(87,230,176,.42); box-shadow:0 0 34px -12px rgba(87,230,176,.45) }
.gm-at-sec .atv-hud[data-state="neg"]{ border-color:rgba(255,87,99,.42); box-shadow:0 0 34px -12px rgba(255,87,99,.42) }
.gm-at-sec .hud-main{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.gm-at-sec .hud-dot{ width:10px; height:10px; border-radius:50%; background:#5a6b78; flex:none }
.gm-at-sec .atv-hud[data-state="scan"] .hud-dot{ background:var(--at-teal) } .gm-at-sec .atv-hud[data-state="pos"] .hud-dot{ background:#57e6b0 } .gm-at-sec .atv-hud[data-state="neg"] .hud-dot{ background:var(--at-coral) }
.gm-at-sec .atv-hud[data-state] .hud-dot{ animation:atPulse 1.6s ease-in-out infinite }
.gm-at-sec .atv-hud[data-state="idle"] .hud-dot{ animation:none }
@keyframes atPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(75,214,192,.5) } 50%{ box-shadow:0 0 0 6px rgba(75,214,192,0) } }
.gm-at-sec .hud-main b{ font-size:13px; font-weight:900 }
.gm-at-sec .hud-time{ font-size:10px; font-weight:800; color:#bff0e8; padding:3px 9px; border-radius:999px; background:rgba(75,214,192,.14); border:1px solid rgba(75,214,192,.3) }
.gm-at-sec .hud-pnl{ margin-left:auto; font-size:22px; font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:-.01em }
.gm-at-sec .hud-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:12px 0 8px }
.gm-at-sec .hud-stats span{ display:flex; flex-direction:column; gap:1px; font-size:14px; font-weight:800; font-variant-numeric:tabular-nums }
.gm-at-sec .hud-stats u{ text-decoration:none; font-size:8.5px; font-weight:700; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em }
.gm-at-sec .hud-msg{ font-size:11px; color:var(--at-mut); border-top:1px solid var(--at-bd); padding-top:8px }

/* live market */
.gm-at-sec .atl-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap }
.gm-at-sec .atl-px u{ text-decoration:none; display:block; font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em }
.gm-at-sec .atl-px b{ font-size:22px; font-weight:900; font-variant-numeric:tabular-nums }
.gm-at-sec .atl-last{ font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em; text-align:center }
.gm-at-sec .atl-last b{ display:block; font-size:26px; font-weight:900; line-height:1 } .gm-at-sec .atl-last b.hi{ color:var(--at-teal) } .gm-at-sec .atl-last b.lo{ color:var(--at-gold) }
.gm-at-sec .atl-ticks{ margin-left:auto; font-size:10.5px; color:var(--at-mut) }
.gm-at-sec .atl-spark{ display:flex; align-items:flex-end; gap:3px; height:42px; margin-top:12px; padding-top:10px; border-top:1px solid var(--at-bd) }
.gm-at-sec .atl-spark i{ flex:1; min-width:0; display:flex; align-items:flex-end; justify-content:center; height:calc(30% + var(--h)*0.7); border-radius:4px 4px 0 0; font-size:8px; font-weight:800; color:rgba(0,0,0,.55); padding-bottom:1px }
.gm-at-sec .atl-spark i.hi{ background:linear-gradient(180deg,var(--at-teal),rgba(75,214,192,.35)) } .gm-at-sec .atl-spark i.lo{ background:linear-gradient(180deg,var(--at-gold),rgba(255,207,106,.35)) }
.gm-at-sec .atl-warm{ font-size:11px; color:var(--at-mut) }

/* analyzer cards */
.gm-at-sec #at-analyzers{ display:grid; grid-template-columns:1fr 1fr; gap:11px; align-items:start }
.gm-at-sec .atk{ position:relative; border-radius:14px; background:linear-gradient(165deg, rgba(34,41,50,.7), rgba(16,20,26,.8)); border:1px solid var(--at-bd); overflow:hidden; transition:border-color .18s, box-shadow .18s }
.gm-at-sec .atk.expanded{ grid-column:1 / -1 }
.gm-at-sec .atk.on{ border-color:color-mix(in srgb, var(--c) 50%, transparent); box-shadow:0 0 26px -12px var(--c), inset 0 1px 0 rgba(255,255,255,.06) }
.gm-at-sec .atk::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--c); opacity:.35 }
.gm-at-sec .atk.on::after{ opacity:1; box-shadow:0 0 12px var(--c) }
.gm-at-sec .atk-head{ display:flex; align-items:center; gap:10px; padding:11px 12px; cursor:pointer }
.gm-at-sec .atk-ic{ width:34px; height:34px; flex:none; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:17px; font-weight:900; color:#0a0d10; background:var(--c); box-shadow:0 3px 10px -3px var(--c) }
.gm-at-sec .atk-t{ flex:1; min-width:0 } .gm-at-sec .atk-t b{ display:block; font-size:12.5px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.gm-at-sec .atk-t i{ display:block; font-style:normal; font-size:9.5px; color:var(--at-mut); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.gm-at-sec .atk-wr{ flex:none; display:flex; flex-direction:column; align-items:flex-end; font-size:12px; font-weight:900; font-variant-numeric:tabular-nums; line-height:1.05 }
.gm-at-sec .atk-wr u{ text-decoration:none; font-size:7px; color:var(--at-mut); text-transform:uppercase }
.gm-at-sec .atk-summon{ flex:none; background:none; border:none; cursor:pointer; padding:2px }
.gm-at-sec .atk-chev{ flex:none; color:var(--at-mut); font-size:12px; transition:transform .2s } .gm-at-sec .atk-chev.open{ transform:rotate(180deg) }

/* switch */
.gm-at-sec .atk-sw{ position:relative; display:inline-block; width:38px; height:21px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid var(--at-bd2); vertical-align:middle; transition:background .2s }
.gm-at-sec .atk-sw.on{ background:var(--at-teal); border-color:var(--at-teal) }
.gm-at-sec .atk-summon .atk-sw.on{ background:var(--c); border-color:var(--c) }
.gm-at-sec .atk-sw-k{ position:absolute; top:1px; left:1px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.5); transition:transform .22s cubic-bezier(.22,1,.36,1) }
.gm-at-sec .atk-sw.on .atk-sw-k{ transform:translateX(17px) }

/* analyzer dashboard body */
.gm-at-sec .atk-body{ padding:4px 13px 14px; border-top:1px solid var(--at-bd) }
.gm-at-sec .atk-fld{ margin:12px 0 } .gm-at-sec .atk-fld > label{ display:block; font-size:10px; color:var(--at-mut); margin-bottom:6px; font-weight:700; letter-spacing:.02em }
.gm-at-sec .atk-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:10px }
.gm-at-sec .atk-inp{ display:flex; align-items:center; border-radius:9px; background:rgba(0,0,0,.28); border:1px solid var(--at-bd2); overflow:hidden }
.gm-at-sec .atk-inp span{ padding:0 9px; font-size:12px; font-weight:800; color:var(--at-mut) }
.gm-at-sec .atk-inp input{ flex:1; width:100%; padding:8px 9px; border:none; background:transparent; font:inherit; font-size:14px; font-weight:800; color:var(--at-txt); font-variant-numeric:tabular-nums }
.gm-at-sec .atk-inp input:focus{ outline:none } .gm-at-sec .atk-inp:focus-within{ border-color:var(--at-teal); box-shadow:0 0 0 3px rgba(75,214,192,.14) }

/* segmented */
.gm-at-sec .atk-seg, .gm-at-sec .atk-mkt{ display:flex; gap:5px; flex-wrap:wrap }
.gm-at-sec .atk-seg button, .gm-at-sec .atk-mkt button{ flex:1; min-width:56px; padding:8px 8px; border-radius:9px; cursor:pointer; font:inherit; font-size:11px; font-weight:800; color:var(--at-mut); background:rgba(0,0,0,.25); border:1px solid var(--at-bd2); transition:all .14s; text-transform:capitalize }
.gm-at-sec .atk-seg button:hover, .gm-at-sec .atk-mkt button:hover{ color:var(--at-txt) }
.gm-at-sec .atk-seg button.on, .gm-at-sec .atk-mkt button.on{ color:#05221f; background:var(--at-teal); border-color:var(--at-teal) }

/* digit pad */
.gm-at-sec .atk-digits{ display:grid; grid-template-columns:repeat(10,1fr); gap:4px }
.gm-at-sec .atk-dg{ position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 2px 4px; border-radius:8px; cursor:pointer;
  background:rgba(0,0,0,.28); border:1px solid var(--at-bd); transition:all .14s }
.gm-at-sec .atk-dg b{ font-size:13px; font-weight:900; font-variant-numeric:tabular-nums }
.gm-at-sec .atk-dg i{ width:60%; height:4px; border-radius:2px; background:linear-gradient(90deg,var(--at-teal),transparent); opacity:.4; transform-origin:left; transform:scaleX(calc(var(--h)/100)) }
.gm-at-sec .atk-dg u{ text-decoration:none; font-size:7.5px; color:var(--at-mut); font-variant-numeric:tabular-nums }
.gm-at-sec .atk-dg.hot{ border-color:rgba(255,87,99,.5) } .gm-at-sec .atk-dg.hot u{ color:#ff9098 }
.gm-at-sec .atk-dg.cold{ border-color:rgba(75,214,192,.4) }
.gm-at-sec .atk-dg.sel{ background:var(--c); border-color:var(--c); box-shadow:0 0 12px -3px var(--c) } .gm-at-sec .atk-dg.sel b, .gm-at-sec .atk-dg.sel u{ color:#0a0d10 } .gm-at-sec .atk-dg.sel i{ background:rgba(0,0,0,.4); opacity:.5 }
.gm-at-sec .atk-auto{ display:flex; align-items:center; gap:9px; width:100%; margin-top:8px; padding:7px 4px; background:none; border:none; cursor:pointer; text-align:left }
.gm-at-sec .atk-auto span{ font-size:11px; font-weight:600; color:var(--at-txt) }
.gm-at-sec .atk-best{ margin-top:8px; font-size:10.5px; color:#bff0e8; padding:6px 9px; border-radius:8px; background:rgba(75,214,192,.1); border:1px solid rgba(75,214,192,.25) }
.gm-at-sec .atk-best b{ color:#dffaf4 }

/* martingale block */
.gm-at-sec .atk-mart{ margin:12px 0; padding:11px 12px; border-radius:11px; background:rgba(255,87,99,.05); border:1px solid rgba(255,87,99,.18) }
.gm-at-sec .atk-mart-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px } .gm-at-sec .atk-mart-h b{ font-size:12px; font-weight:900; color:#ffb0b6 }
.gm-at-sec .atk-sw2{ background:none; border:none; cursor:pointer; padding:2px } .gm-at-sec .atk-sw2 .atk-sw.on{ background:var(--at-coral); border-color:var(--at-coral) }
.gm-at-sec .atk-risk{ margin-top:10px; font-size:10.5px }
.gm-at-sec .atk-risk.off{ color:var(--at-mut); font-style:italic }
.gm-at-sec .atk-risk-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:4px 0; border-top:1px dashed var(--at-bd) }
.gm-at-sec .atk-risk-row span{ color:var(--at-mut) } .gm-at-sec .atk-risk-row b{ font-weight:800; font-variant-numeric:tabular-nums; text-align:right }

/* presets */
.gm-at-sec .atk-presets{ display:flex; gap:6px; flex-wrap:wrap }
.gm-at-sec .atk-pre{ flex:1; min-width:80px; padding:8px 8px; border-radius:10px; cursor:pointer; text-align:center; background:rgba(0,0,0,.25); border:1px solid var(--at-bd2); transition:all .14s }
.gm-at-sec .atk-pre b{ display:block; font-size:11px; font-weight:900; color:var(--at-txt) } .gm-at-sec .atk-pre i{ display:block; font-style:normal; font-size:8.5px; color:var(--at-mut); margin-top:1px }
.gm-at-sec .atk-pre.on{ background:linear-gradient(165deg, color-mix(in srgb,var(--c) 30%,transparent), transparent); border-color:var(--c); box-shadow:0 0 14px -6px var(--c) }
.gm-at-sec .atk-pre.on i{ color:#cfe } .gm-at-sec .atk-pre:hover{ border-color:var(--at-bd2) }

/* two-col settings + summary */
.gm-at-sec .atv-2{ display:grid; grid-template-columns:1.4fr 1fr; gap:13px; align-items:start }
.gm-at-sec .ats-fld{ margin-bottom:13px } .gm-at-sec .ats-fld > label{ display:block; font-size:10px; color:var(--at-mut); margin-bottom:6px; font-weight:700 }
.gm-at-sec .ats-sessrow{ display:flex; gap:5px; flex-wrap:wrap }
.gm-at-sec .ats-sess{ flex:1; min-width:48px; padding:9px 6px; border-radius:9px; cursor:pointer; font:inherit; font-size:11px; font-weight:800; color:var(--at-mut); background:rgba(0,0,0,.25); border:1px solid var(--at-bd2); transition:all .14s }
.gm-at-sec .ats-sess.on{ color:#05221f; background:var(--at-teal); border-color:var(--at-teal) }
.gm-at-sec .ats-togs{ display:grid; gap:7px }
.gm-at-sec .ats-tog{ display:flex; align-items:center; gap:10px; width:100%; padding:9px 11px; border-radius:11px; cursor:pointer; text-align:left; background:rgba(0,0,0,.22); border:1px solid var(--at-bd) }
.gm-at-sec .ats-tog.on{ border-color:rgba(75,214,192,.35); background:rgba(75,214,192,.06) }
.gm-at-sec .ats-tt{ flex:1; min-width:0 } .gm-at-sec .ats-tt b{ display:block; font-size:12px; font-weight:700 } .gm-at-sec .ats-tt i{ display:block; font-style:normal; font-size:9.5px; color:var(--at-mut); margin-top:1px }
.gm-at-sec .ats-sub input[type=range]{ width:100%; accent-color:var(--at-teal) }

/* summary */
.gm-at-sec .atsum-row{ display:flex; align-items:center; justify-content:space-between; padding:8px 2px; font-size:12px; color:var(--at-mut); border-bottom:1px solid var(--at-bd) }
.gm-at-sec .atsum-row:last-of-type{ border-bottom:none } .gm-at-sec .atsum-row b{ font-size:14px; font-weight:900; color:var(--at-txt); font-variant-numeric:tabular-nums }
.gm-at-sec .atv-run{ width:100%; margin-top:12px; padding:15px; border-radius:12px; cursor:pointer; font:inherit; font-size:16px; font-weight:900; letter-spacing:.02em;
  color:#05221f; border:none; background:linear-gradient(180deg,#5fe6cf,#2fbfa8); box-shadow:0 8px 26px -10px rgba(75,214,192,.8), inset 0 1px 0 rgba(255,255,255,.4); transition:transform .14s, filter .14s }
.gm-at-sec .atv-run:hover{ transform:translateY(-1px); filter:brightness(1.06) } .gm-at-sec .atv-run:active{ transform:translateY(0) scale(.99) }
.gm-at-sec .atv-run.stop{ color:#fff; background:linear-gradient(180deg,#ff6b76,#e23b47); box-shadow:0 8px 26px -10px rgba(255,87,99,.8) }

/* transactions */
.gm-at-sec .atv-txw{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px; border:1px solid var(--at-bd) }
.gm-at-sec .atv-tx{ width:100%; border-collapse:collapse; font-size:12px; min-width:520px }
.gm-at-sec .atv-tx th{ text-align:left; padding:9px 12px; font-size:9.5px; font-weight:700; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em; background:rgba(0,0,0,.3); border-bottom:1px solid var(--at-bd) }
.gm-at-sec .atv-tx th.r, .gm-at-sec .atv-tx td.r{ text-align:right; font-variant-numeric:tabular-nums }
.gm-at-sec .atv-tx td{ padding:9px 12px; border-bottom:1px solid var(--at-bd); white-space:nowrap }
.gm-at-sec .atv-tx tbody tr:last-child td{ border-bottom:none }
.gm-at-sec .atv-tx tr.win{ background:rgba(87,230,176,.06) } .gm-at-sec .atv-tx tr.loss{ background:rgba(255,87,99,.06) } .gm-at-sec .atv-tx tr.pend{ background:rgba(255,207,106,.06) }
.gm-at-sec .atv-txp{ font-weight:900 } .gm-at-sec .atv-tx td i{ display:block; font-style:normal; font-size:9px; color:var(--at-mut); margin-top:1px }
.gm-at-sec .atv-txm{ color:var(--at-mut); font-size:11px } .gm-at-sec .atv-pend{ color:var(--at-gold) }
.gm-at-sec .atv-txe td{ text-align:center; color:var(--at-mut); padding:22px 12px; font-size:11.5px }

/* header button */
.aether-header .at-open-btn{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; padding:6px 13px; border-radius:999px; font:inherit; font-size:12.5px; font-weight:800;
  color:#04140e; border:1px solid rgba(120,255,205,.5); background:linear-gradient(180deg,#7ff3c4,#2fd79a);
  box-shadow:0 3px 12px -5px rgba(60,230,170,.9), inset 0 1px 0 rgba(255,255,255,.45); transition:transform .14s, filter .14s }
.aether-header .at-open-btn:hover{ transform:translateY(-1px); filter:brightness(1.06) }
.aether-header .at-open-btn:active{ transform:translateY(0) scale(.97) }
.aether-header .at-open-btn .ao-i{ font-size:14px; line-height:1 }
.aether-header .at-open-btn.active{ box-shadow:0 0 0 2px rgba(75,214,192,.55); filter:brightness(1.08) }
@media (max-width:640px){ .aether-header .at-open-btn .ao-t{ display:none } .aether-header .at-open-btn{ padding:7px 10px } }

/* responsive + mobile-safe */
@media (max-width:820px){
  .gm-at-sec .atv-2{ grid-template-columns:1fr }
  .gm-at-sec #at-analyzers{ grid-template-columns:1fr }
  .gm-at-sec .atk.expanded{ grid-column:auto }
  .gm-at-sec .atc, .gm-at-sec .atv-hud{ box-shadow:0 10px 26px -20px rgba(0,0,0,.8) }
  .gm-at-sec .atk.on{ box-shadow:none }
  .gm-at-sec .hud-pnl{ font-size:19px }
}
html.is-scrolling.gm-shed .gm-at-sec .hud-dot, html.is-scrolling.gm-shed .gm-at-sec .atv-hud{ animation:none !important }
html.is-scrolling.gm-shed .gm-at-sec .atk.on{ box-shadow:none }


/* ── AUTO TRADER v2.1 — objective (target/loss), pause, sessions memory, popup ── */
.gm-at-sec .hud-target{ display:flex; flex-direction:column; gap:5px; margin:11px 0 3px }
.gm-at-sec .hud-tgt-bar{ height:8px; border-radius:999px; background:rgba(255,255,255,.09); overflow:hidden }
.gm-at-sec .hud-tgt-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#4bd6c0,#57e6b0); transition:width .5s cubic-bezier(.22,1,.36,1) }
.gm-at-sec .hud-target span{ font-size:10px; color:var(--at-mut); font-variant-numeric:tabular-nums }
.gm-at-sec .atv-hud[data-state="paused"]{ border-color:rgba(255,207,106,.5); box-shadow:0 0 30px -14px rgba(255,207,106,.5) }
.gm-at-sec .atv-hud[data-state="paused"] .hud-dot{ background:var(--at-gold); animation:none }

/* objective inputs */
.gm-at-sec .ats-obj{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px }
.gm-at-sec .ats-obj-c{ padding:11px 12px; border-radius:12px; border:1px solid var(--at-bd) }
.gm-at-sec .ats-obj-c.tgt{ background:rgba(75,214,192,.06); border-color:rgba(75,214,192,.22) }
.gm-at-sec .ats-obj-c.los{ background:rgba(255,87,99,.05); border-color:rgba(255,87,99,.2) }
.gm-at-sec .ats-obj-c > label{ display:block; font-size:11px; font-weight:800; margin-bottom:7px }
.gm-at-sec .ats-obj-c > label em, .gm-at-sec .ats-fld > label em{ font-style:normal; font-weight:600; color:var(--at-mut); font-size:9.5px; margin-left:4px }
.gm-at-sec .ats-chips{ display:flex; gap:5px; margin-top:7px }
.gm-at-sec .ats-chip{ flex:1; padding:6px 4px; border-radius:8px; cursor:pointer; font:inherit; font-size:10.5px; font-weight:800; color:var(--at-mut); background:rgba(0,0,0,.25); border:1px solid var(--at-bd2); transition:all .14s }
.gm-at-sec .ats-chip:hover{ color:var(--at-txt) }
.gm-at-sec .ats-obj-c.tgt .ats-chip.on{ color:#05221f; background:var(--at-teal); border-color:var(--at-teal) }
.gm-at-sec .ats-obj-c.los .ats-chip.on{ color:#fff; background:var(--at-coral); border-color:var(--at-coral) }

/* run row — Run / Pause+Stop / Resume+Stop */
.gm-at-sec .atv-runrow{ display:flex; gap:10px; margin-top:12px }
.gm-at-sec .atv-runrow .atv-run{ margin-top:0; flex:1 }
.gm-at-sec .atv-run.pause{ color:#3a2c05; background:linear-gradient(180deg,#ffd680,#f0b73c); box-shadow:0 8px 26px -10px rgba(255,200,90,.7) }

/* smart popup */
.gm-at-sec .atv-pop{ position:fixed; inset:0; z-index:9700; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(6,10,14,.74); backdrop-filter:blur(3px); animation:atPopIn .2s ease }
.gm-at-sec .atv-pop[hidden]{ display:none }
@keyframes atPopIn{ from{ opacity:0 } to{ opacity:1 } }
.gm-at-sec .atv-pop-card{ position:relative; width:min(400px,94vw); border-radius:20px; padding:26px 22px 20px; text-align:center;
  background:linear-gradient(165deg, rgba(30,37,46,.96), rgba(16,20,26,.98)); border:1px solid var(--at-bd2); box-shadow:0 30px 80px -30px #000; animation:atPopUp .3s cubic-bezier(.22,1,.36,1) }
@keyframes atPopUp{ from{ transform:translateY(16px) scale(.96); opacity:0 } to{ transform:none; opacity:1 } }
.gm-at-sec .atv-pop.win .atv-pop-card{ border-color:rgba(87,230,176,.55); box-shadow:0 30px 80px -30px #000, 0 0 60px -18px rgba(87,230,176,.6) }
.gm-at-sec .atv-pop.loss .atv-pop-card{ border-color:rgba(255,87,99,.5); box-shadow:0 30px 80px -30px #000, 0 0 60px -20px rgba(255,87,99,.5) }
.gm-at-sec .atv-pop-x{ position:absolute; top:12px; right:12px; width:30px; height:30px; border-radius:9px; cursor:pointer; border:none; background:rgba(255,255,255,.08); color:var(--at-mut); font-size:13px }
.gm-at-sec .atv-pop-ic{ font-size:52px; line-height:1; margin-bottom:4px; filter:drop-shadow(0 4px 14px rgba(0,0,0,.5)) }
.gm-at-sec .atv-pop-card h3{ margin:6px 0 4px; font-size:21px; font-weight:900; color:var(--at-txt) }
.gm-at-sec .atv-pop-card p{ margin:0 0 10px; font-size:12px; color:var(--at-mut); line-height:1.45 }
.gm-at-sec .atv-pop-pnl{ font-size:40px; font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:-.02em; margin:4px 0 14px }
.gm-at-sec .atv-pop-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px 6px; padding:12px 0; border-top:1px solid var(--at-bd); border-bottom:1px solid var(--at-bd) }
.gm-at-sec .atv-pop-stats span{ display:flex; flex-direction:column; gap:2px; font-size:14px; font-weight:800; color:var(--at-txt); font-variant-numeric:tabular-nums }
.gm-at-sec .atv-pop-stats u{ text-decoration:none; font-size:8px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em }
.gm-at-sec .atv-pop-life{ font-size:10px; color:var(--at-mut); margin:11px 0 14px }
.gm-at-sec .atv-pop-btns{ display:flex; flex-direction:column; gap:8px }
.gm-at-sec .atv-pop-again{ padding:13px; border-radius:11px; cursor:pointer; font:inherit; font-size:14px; font-weight:900; color:#05221f; border:none; background:linear-gradient(180deg,#5fe6cf,#2fbfa8); box-shadow:0 8px 24px -10px rgba(75,214,192,.8) }
.gm-at-sec .atv-pop.loss .atv-pop-again{ color:#fff; background:linear-gradient(180deg,#ff6b76,#e23b47); box-shadow:0 8px 24px -10px rgba(255,87,99,.7) }
.gm-at-sec .atv-pop-close{ padding:10px; border-radius:11px; cursor:pointer; font:inherit; font-size:12px; font-weight:700; color:var(--at-mut); background:rgba(255,255,255,.05); border:1px solid var(--at-bd2) }

@media (max-width:820px){
  .gm-at-sec .ats-obj{ grid-template-columns:1fr }
  .gm-at-sec .atv-pop{ backdrop-filter:none }
  .gm-at-sec .atv-pop.win .atv-pop-card, .gm-at-sec .atv-pop.loss .atv-pop-card{ box-shadow:0 20px 50px -24px #000 }
}


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v2.2 — PREMIUM VISUAL UPGRADE (override layer, last-wins)
   Command banner · mission-control HUD · accent-lined cards · richer analyzer &
   preset cards. Mobile-safe: bounded glass, shadows capped ≤820px, no fixed-attach.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ambient depth behind the top of the view */
.gm-at-sec .atv{ position:relative; }
.gm-at-sec .atv::before{ content:""; position:absolute; inset:-30px 0 auto 0; height:360px; pointer-events:none; z-index:0;
  background:radial-gradient(70% 100% at 50% 0%, rgba(75,214,192,.12), transparent 68%); }
.gm-at-sec .atv > *{ position:relative; z-index:1; }

/* ── command banner (title strip) ─────────────────────────────────────────── */
.gm-at-sec .atv-top{ padding:16px 18px; border-radius:20px; margin-bottom:14px; align-items:center;
  background:linear-gradient(115deg, rgba(75,214,192,.14), rgba(30,37,46,.72) 42%, rgba(16,20,26,.82));
  border:1px solid rgba(75,214,192,.24); box-shadow:0 20px 50px -30px #000, inset 0 1px 0 rgba(255,255,255,.09); }
.gm-at-sec .atv-logo{ display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:15px; font-size:27px; flex:none;
  background:linear-gradient(155deg, rgba(75,214,192,.35), rgba(75,214,192,.08)); border:1px solid rgba(75,214,192,.4);
  box-shadow:0 8px 22px -8px rgba(75,214,192,.6), inset 0 1px 0 rgba(255,255,255,.25); }
.gm-at-sec .atv-top-l{ gap:14px }
.gm-at-sec .atv-top-l b{ font-size:23px; letter-spacing:-.01em }
.gm-at-sec .atv-top-l i{ font-size:12px; margin-top:2px }
.gm-at-sec .atv-back{ padding:11px 17px; border-radius:12px; font-size:12.5px; background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.16) }

/* ── mission-control HUD ──────────────────────────────────────────────────── */
.gm-at-sec .atv-hud{ padding:18px 20px 16px; border-radius:20px; margin-bottom:14px;
  background:linear-gradient(160deg, rgba(34,42,52,.85), rgba(14,18,24,.9)); box-shadow:0 22px 54px -30px #000, inset 0 1px 0 rgba(255,255,255,.08) }
.gm-at-sec .hud-main{ gap:11px }
.gm-at-sec .hud-dot{ width:12px; height:12px }
.gm-at-sec .hud-main b{ font-size:14px; letter-spacing:.02em }
.gm-at-sec .hud-time{ font-size:11px; padding:4px 11px }
.gm-at-sec .hud-pnl{ font-size:32px; letter-spacing:-.02em; text-shadow:0 2px 20px rgba(87,230,176,.25) }
.gm-at-sec .atv-hud[data-state="neg"] .hud-pnl{ text-shadow:0 2px 20px rgba(255,87,99,.25) }
.gm-at-sec .hud-target{ margin:14px 0 6px; gap:7px }
.gm-at-sec .hud-tgt-bar{ height:13px; border-radius:999px; background:rgba(0,0,0,.4); box-shadow:inset 0 1px 4px rgba(0,0,0,.6) }
.gm-at-sec .hud-tgt-bar i{ background:linear-gradient(90deg,#3fc7b2,#6ff0c8); box-shadow:0 0 14px rgba(75,214,192,.8) }
.gm-at-sec .hud-target span{ font-size:11px; font-weight:700; color:#b9c7d1 }
.gm-at-sec .hud-stats{ gap:9px; margin:13px 0 9px }
.gm-at-sec .hud-stats span{ padding:11px 8px; border-radius:14px; align-items:center; text-align:center;
  background:linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.015)); border:1px solid var(--at-bd); box-shadow:inset 0 1px 0 rgba(255,255,255,.05) }
.gm-at-sec .hud-stats u{ font-size:8.5px; margin-bottom:3px }
.gm-at-sec .hud-msg{ font-size:11.5px; padding-top:10px }

/* ── card polish: rounder, deeper, accent-lined headers ───────────────────── */
.gm-at-sec .atc{ border-radius:20px; padding:16px 17px; box-shadow:0 20px 46px -30px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.06) }
.gm-at-sec .atc::before{ background:linear-gradient(90deg, transparent, rgba(75,214,192,.5), transparent) }
.gm-at-sec .atc-h{ margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--at-bd) }
.gm-at-sec .atc-h h4{ position:relative; padding-left:12px; font-size:14.5px }
.gm-at-sec .atc-h h4::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:3px; height:15px; border-radius:2px;
  background:var(--at-teal); box-shadow:0 0 9px var(--at-teal) }

/* ── analyzer cards: premium ──────────────────────────────────────────────── */
.gm-at-sec .atk{ border-radius:16px; background:linear-gradient(160deg, rgba(38,46,56,.72), rgba(15,19,25,.82)) }
.gm-at-sec .atk-head{ padding:13px 14px; gap:12px }
.gm-at-sec .atk-ic{ width:40px; height:40px; border-radius:12px; font-size:19px; box-shadow:0 5px 14px -4px var(--c), inset 0 1px 0 rgba(255,255,255,.3) }
.gm-at-sec .atk-t b{ font-size:13px }
.gm-at-sec .atk.on{ box-shadow:0 0 30px -12px var(--c), 0 14px 34px -26px #000, inset 0 1px 0 rgba(255,255,255,.06) }
.gm-at-sec .atk:hover{ transform:translateY(-1px) }
.gm-at-sec .atk-body{ padding:6px 14px 15px }

/* ── presets: card-like with the target headline ──────────────────────────── */
.gm-at-sec .atk-presets{ gap:7px }
.gm-at-sec .atk-pre{ padding:9px 8px; border-radius:11px }
.gm-at-sec .atk-pre b{ font-size:11.5px }
.gm-at-sec .atk-pre i{ font-size:9px; color:var(--at-teal); font-weight:800; opacity:.85 }
.gm-at-sec .atk-pre.on i{ color:#dffaf4 }

/* ── run buttons ──────────────────────────────────────────────────────────── */
.gm-at-sec .atv-run{ padding:16px; border-radius:14px; font-size:16px }

/* header button — always show the label while in the Auto Trader view */
.aether-header .at-open-btn.active .ao-t{ display:inline !important }
.aether-header .at-open-btn.active{ background:linear-gradient(180deg,#6ff0d6,#34c8ad) }

@media (max-width:820px){
  .gm-at-sec .atv::before{ height:240px }
  .gm-at-sec .atc, .gm-at-sec .atv-hud, .gm-at-sec .atv-top{ box-shadow:0 12px 30px -22px rgba(0,0,0,.85) }
  .gm-at-sec .hud-pnl{ font-size:26px }
  .gm-at-sec .atv-logo{ width:44px; height:44px; font-size:23px }
  .gm-at-sec .atv-top-l b{ font-size:20px }
}


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v2.3 — profit profiles · AI confidence · strategy · market cards
   + proper responsive (phone 1-col · tablet 2-col · monitor 3-col + wider)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── profit profiles ──────────────────────────────────────────────────────── */
.gm-at-sec #at-profiles{ display:grid; grid-template-columns:repeat(5,1fr); gap:9px }
.gm-at-sec .atv-prof{ display:flex; flex-direction:column; align-items:center; gap:3px; padding:13px 9px 10px; border-radius:15px; cursor:pointer; text-align:center;
  background:linear-gradient(165deg, rgba(255,255,255,.055), rgba(255,255,255,.012)); border:1px solid var(--at-bd); transition:transform .15s, border-color .15s, box-shadow .15s }
.gm-at-sec .atv-prof:hover{ border-color:var(--at-bd2); transform:translateY(-2px) }
.gm-at-sec .atv-prof-ic{ font-size:25px; line-height:1; margin-bottom:1px }
.gm-at-sec .atv-prof-n{ font-size:13px; font-weight:900; color:var(--at-txt) }
.gm-at-sec .atv-prof-t{ font-style:normal; font-size:9px; color:var(--at-mut); min-height:22px; line-height:1.25 }
.gm-at-sec .atv-prof-nums{ display:flex; flex-direction:column; gap:1px; margin:5px 0 6px }
.gm-at-sec .atv-prof-nums em{ font-style:normal; font-size:10px; font-weight:800; color:#c3d0da; font-variant-numeric:tabular-nums }
.gm-at-sec .atv-prof-risk{ font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; padding:2px 8px; border-radius:999px }
.gm-at-sec .atv-prof.r-low  .atv-prof-risk{ color:#57e6b0; background:rgba(87,230,176,.15) }
.gm-at-sec .atv-prof.r-med  .atv-prof-risk{ color:var(--at-gold); background:rgba(255,207,106,.15) }
.gm-at-sec .atv-prof.r-high .atv-prof-risk{ color:var(--at-coral); background:rgba(255,87,99,.15) }
.gm-at-sec .atv-prof.on{ border-color:var(--at-teal); background:linear-gradient(165deg, rgba(75,214,192,.2), rgba(75,214,192,.03)); box-shadow:0 0 24px -8px var(--at-teal) }
.gm-at-sec .atv-prof-note{ margin-top:12px; font-size:10px; color:var(--at-mut); text-align:center; font-style:italic }

/* ── AI confidence panel + head pill ──────────────────────────────────────── */
.gm-at-sec .atk-conf{ flex:none; display:flex; flex-direction:column; align-items:center; font-size:13px; font-weight:900; font-variant-numeric:tabular-nums; line-height:1.02; padding:3px 7px; border-radius:9px; background:rgba(0,0,0,.25) }
.gm-at-sec .atk-conf u{ text-decoration:none; font-size:6.5px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em }
.gm-at-sec .atk-conf.hi{ color:#57e6b0 } .gm-at-sec .atk-conf.mid{ color:var(--at-gold) } .gm-at-sec .atk-conf.lo{ color:#8ea2b0 }
.gm-at-sec .atk-sig{ margin:12px 0; padding:11px 13px; border-radius:13px; background:rgba(255,255,255,.03); border:1px solid var(--at-bd) }
.gm-at-sec .atk-sig.mid{ background:rgba(255,207,106,.06); border-color:rgba(255,207,106,.22) }
.gm-at-sec .atk-sig.hi{ background:rgba(87,230,176,.08); border-color:rgba(87,230,176,.3) }
.gm-at-sec .atk-sig-top{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:9px }
.gm-at-sec .atk-sig-top b{ font-size:11.5px; font-weight:900 } .gm-at-sec .atk-sig-top span{ font-size:10px; color:var(--at-mut); text-align:right }
.gm-at-sec .atk-sig-bar{ height:9px; border-radius:999px; background:rgba(0,0,0,.4); overflow:hidden; box-shadow:inset 0 1px 3px rgba(0,0,0,.5) }
.gm-at-sec .atk-sig-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#8ea2b0,#aeb9c4); transition:width .4s cubic-bezier(.22,1,.36,1) }
.gm-at-sec .atk-sig.mid .atk-sig-bar i{ background:linear-gradient(90deg,#ffcf6a,#ffe0a0) }
.gm-at-sec .atk-sig.hi .atk-sig-bar i{ background:linear-gradient(90deg,#4bd6c0,#6ff0c8); box-shadow:0 0 10px rgba(75,214,192,.7) }
.gm-at-sec .atk-sig-lab{ display:flex; justify-content:space-between; margin-top:7px; font-size:10px; color:var(--at-mut) } .gm-at-sec .atk-sig-lab b{ color:var(--at-txt); font-weight:800 }
.gm-at-sec .atk-strat button.on{ background:var(--at-teal); border-color:var(--at-teal); color:#05221f }
.gm-at-sec .atk-hint{ font-size:9.5px; color:var(--at-mut); margin-top:7px; font-style:italic }

/* ── upgraded market picker (per-market hit%) ─────────────────────────────── */
.gm-at-sec .atk-mkts{ display:flex; gap:6px; flex-wrap:wrap }
.gm-at-sec .atk-mchip{ flex:1 1 66px; min-width:64px; display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 6px; border-radius:11px; cursor:pointer;
  background:rgba(0,0,0,.28); border:1px solid var(--at-bd2); transition:all .14s }
.gm-at-sec .atk-mchip:hover{ border-color:#4a545e }
.gm-at-sec .atk-mchip b{ font-size:10px; font-weight:800; color:var(--at-txt); white-space:nowrap }
.gm-at-sec .atk-mchip u{ text-decoration:none; font-size:10px; font-weight:800; color:var(--at-mut); font-variant-numeric:tabular-nums }
.gm-at-sec .atk-mchip.hot{ border-color:rgba(87,230,176,.45) } .gm-at-sec .atk-mchip.hot u{ color:#57e6b0 }
.gm-at-sec .atk-mchip.on{ background:var(--at-teal); border-color:var(--at-teal) } .gm-at-sec .atk-mchip.on b,.gm-at-sec .atk-mchip.on u{ color:#05221f }
.gm-at-sec .atk-mchip.auto.on{ background:linear-gradient(180deg,#5fe6cf,#2fbfa8) }

/* ════ RESPONSIVE — the tablet/monitor fix ════════════════════════════════ */
/* phone: single column everything */
@media (max-width:640px){
  .gm-at-sec #at-analyzers{ grid-template-columns:1fr }
  .gm-at-sec .atv-2{ grid-template-columns:1fr }
  .gm-at-sec .ats-obj{ grid-template-columns:1fr }
  .gm-at-sec #at-profiles{ grid-template-columns:repeat(2,1fr) }
  .gm-at-sec .atk.expanded{ grid-column:auto }
}
/* tablet: 2-col analyzers + 2-col objective, settings stacked above summary */
@media (min-width:641px) and (max-width:1023px){
  .gm-at-sec #at-analyzers{ grid-template-columns:1fr 1fr !important }
  .gm-at-sec .atv-2{ grid-template-columns:1fr !important }
  .gm-at-sec .ats-obj{ grid-template-columns:1fr 1fr !important }
  .gm-at-sec #at-profiles{ grid-template-columns:repeat(3,1fr) }
  .gm-at-sec .atk.expanded{ grid-column:1 / -1 !important }
}
/* desktop */
@media (min-width:1024px){
  .gm-at-sec #at-analyzers{ grid-template-columns:1fr 1fr }
  .gm-at-sec .atv-2{ grid-template-columns:1.4fr 1fr }
}
/* wide monitor: 3-col analyzers + wider container */
@media (min-width:1360px){
  .gm-at-sec .atv{ max-width:1340px }
  .gm-at-sec #at-analyzers{ grid-template-columns:repeat(3,1fr) }
  .gm-at-sec .atk.expanded{ grid-column:1 / -1 }
}
@media (max-width:1023px){ .gm-at-sec #at-profiles{ grid-template-columns:repeat(3,1fr) } }
@media (max-width:560px){ .gm-at-sec #at-profiles{ grid-template-columns:repeat(2,1fr) } }


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v2.4 — creative analyzer cards (ring gauge) · celebratory popup
   (confetti + glow) · cleaner Skilli Godmind header. Mobile-safe, one-shot anims.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── analyzer cards: colour wash + gloss + lift ───────────────────────────── */
.gm-at-sec .atk{ position:relative; overflow:hidden; transition:transform .16s ease, border-color .18s, box-shadow .18s }
.gm-at-sec .atk::before{ content:""; position:absolute; top:0; right:0; width:60%; height:130px; pointer-events:none; z-index:0;
  background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--c) 20%, transparent), transparent 60%); opacity:.6 }
.gm-at-sec .atk.on::before{ opacity:1 }
.gm-at-sec .atk-head{ position:relative; z-index:1 }
.gm-at-sec .atk-ic{ position:relative; overflow:hidden }
.gm-at-sec .atk-ic::after{ content:""; position:absolute; inset:0; background:linear-gradient(155deg, rgba(255,255,255,.4), transparent 48%); pointer-events:none }
.gm-at-sec .atk:hover{ transform:translateY(-2px) }
.gm-at-sec .atk-t b{ letter-spacing:-.01em }

/* ── circular confidence ring gauge (replaces the flat box) ───────────────── */
.gm-at-sec .atk-ring{ flex:none; position:relative; width:46px; height:46px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center;
  --rc:#7c8a96; background:conic-gradient(var(--rc) calc(var(--pct)*1%), rgba(255,255,255,.09) 0); box-shadow:0 0 0 1px rgba(255,255,255,.05) inset }
.gm-at-sec .atk-ring.hi{ --rc:#57e6b0 } .gm-at-sec .atk-ring.mid{ --rc:var(--at-gold) } .gm-at-sec .atk-ring.lo{ --rc:#7c8a96 }
.gm-at-sec .atk-ring::before{ content:""; position:absolute; inset:4px; border-radius:50%; background:linear-gradient(160deg,#1a2028,#0f141a) }
.gm-at-sec .atk-ring b{ position:relative; font-size:13px; font-weight:900; line-height:1; font-variant-numeric:tabular-nums; color:#eaf1f6 }
.gm-at-sec .atk-ring u{ position:relative; text-decoration:none; font-size:6px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em; margin-top:1px }
.gm-at-sec .atk-ring.hi b{ color:#6ff0c8 } .gm-at-sec .atk-ring.mid b{ color:#ffe0a0 }

/* ── celebratory popup: bounce icon, glow ring, confetti ──────────────────── */
.gm-at-sec .atv-pop-ic-wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; margin-bottom:2px }
.gm-at-sec .atv-pop.win .atv-pop-ic-wrap::before,
.gm-at-sec .atv-pop.loss .atv-pop-ic-wrap::before{ content:""; position:absolute; inset:-16px; border-radius:50%; z-index:0;
  background:radial-gradient(circle, rgba(87,230,176,.45), transparent 66%); animation:atGlowPulse 1.9s ease-in-out infinite }
.gm-at-sec .atv-pop.loss .atv-pop-ic-wrap::before{ background:radial-gradient(circle, rgba(255,87,99,.4), transparent 66%); animation:none }
@keyframes atGlowPulse{ 0%,100%{ transform:scale(1); opacity:.65 } 50%{ transform:scale(1.18); opacity:1 } }
.gm-at-sec .atv-pop-ic{ position:relative; z-index:1; animation:atPopBounce .62s cubic-bezier(.28,1.7,.5,1) both }
@keyframes atPopBounce{ 0%{ transform:scale(0) rotate(-25deg) } 60%{ transform:scale(1.28) rotate(9deg) } 100%{ transform:scale(1) rotate(0) } }
.gm-at-sec .atv-pop-pnl{ animation:atPnlPop .5s .15s cubic-bezier(.28,1.5,.5,1) both }
@keyframes atPnlPop{ 0%{ transform:scale(.4); opacity:0 } 100%{ transform:scale(1); opacity:1 } }
.gm-at-sec .atv-confetti{ position:absolute; inset:0; overflow:hidden; pointer-events:none; border-radius:20px; z-index:0 }
.gm-at-sec .atv-confetti span{ position:absolute; top:-14px; left:calc(var(--i) * 4.7% + 2%); width:7px; height:12px; border-radius:2px;
  background:hsl(calc(var(--i) * 40 + 120), 85%, 62%); opacity:0; transform-origin:center;
  animation:atConfetti 1.6s cubic-bezier(.3,.6,.5,1) both; animation-delay:calc(var(--i) * 0.035s) }
.gm-at-sec .atv-confetti span:nth-child(even){ width:9px; height:9px; border-radius:50% }
@keyframes atConfetti{ 0%{ transform:translateY(0) rotate(0) scale(1); opacity:1 } 100%{ transform:translateY(600px) rotate(760deg) scale(.6); opacity:0 } }
.gm-at-sec .atv-pop-card{ overflow:hidden }

/* ── Skilli Godmind header — cleaner brand + no overflow ──────────────────── */
.aether-header .header-actions{ flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px; row-gap:8px; min-width:0; max-width:100% }
.aether-header #session-chip{ max-width:100% }
.aether-header #session-email{ max-width:132px !important; font-weight:600 }
.aether-header .brand{ align-items:center; gap:12px }
.aether-header .brand-logo{ box-shadow:0 6px 20px -8px rgba(245,166,35,.6), inset 0 1px 0 rgba(255,255,255,.18); border:1px solid rgba(245,166,35,.28) }
.aether-header .brand-title{ letter-spacing:-.01em }
.aether-header .brand-title em{ font-style:normal; background:linear-gradient(120deg,#ffd47a,#f5a623 55%,#ff8a3c); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 1px 6px rgba(245,166,35,.35)) }

@media (max-width:820px){
  .gm-at-sec .atk:hover{ transform:none }
  .aether-header #session-email{ max-width:104px !important }
}
html.is-scrolling.gm-shed .gm-at-sec .atv-pop-ic-wrap::before{ animation:none }

/* fix: popup is a child of .atv, whose > * { position:relative; z-index:1 } rule
   knocked it out of fixed positioning AND behind the page. Restore both. */
.gm-at-sec #at-pop.atv-pop{ position:fixed !important; inset:0 !important; z-index:9800 !important }


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v3 — multiple concurrent sessions · per-analyzer Run/target ·
   Over/Under 3-8 per-digit presets · Matches-only · recovery modes · est. time
   ═══════════════════════════════════════════════════════════════════════════ */

/* head live P&L chip + running card glow */
.gm-at-sec .atk-live{ flex:none; font-size:12px; font-weight:900; font-variant-numeric:tabular-nums; padding:3px 8px; border-radius:8px; margin-right:2px; white-space:nowrap }
.gm-at-sec .atk-live.pos{ color:#57e6b0; background:rgba(87,230,176,.13) }
.gm-at-sec .atk-live.neg{ color:var(--at-coral); background:rgba(255,87,99,.13) }
.gm-at-sec .atk-live.paused{ color:var(--at-gold); background:rgba(255,207,106,.13) }
.gm-at-sec .atk.running{ border-color:color-mix(in srgb,var(--c) 55%,transparent); box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent), 0 0 30px -10px var(--c) }
.gm-at-sec .atk-head.islive .atk-ic{ animation:atLivePulse 1.9s ease-in-out infinite }
@keyframes atLivePulse{ 0%,100%{ box-shadow:0 3px 10px -3px var(--c) } 50%{ box-shadow:0 3px 20px 1px var(--c) } }

/* per-analyzer session block */
.gm-at-sec .atk-sess{ margin:12px 0; padding:12px 13px; border-radius:13px; background:linear-gradient(160deg, rgba(75,214,192,.08), rgba(255,255,255,.015)); border:1px solid rgba(75,214,192,.22) }
.gm-at-sec .atk-est{ margin:9px 0 11px; font-size:11px; color:#bff0e8; text-align:center; font-weight:600 } .gm-at-sec .atk-est em{ color:var(--at-mut); font-style:normal; font-weight:400 }
.gm-at-sec .atk-sess-bar{ height:9px; border-radius:999px; background:rgba(0,0,0,.4); overflow:hidden; margin:11px 0 6px; box-shadow:inset 0 1px 3px rgba(0,0,0,.5) }
.gm-at-sec .atk-sess-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#4bd6c0,#6ff0c8); box-shadow:0 0 12px rgba(75,214,192,.7); transition:width .5s cubic-bezier(.22,1,.36,1) }
.gm-at-sec .atk-sess-lab{ display:flex; justify-content:space-between; gap:8px; font-size:10.5px; color:var(--at-mut); margin-bottom:9px } .gm-at-sec .atk-sess-lab b{ font-weight:800; font-variant-numeric:tabular-nums } .gm-at-sec .atk-sess-lab.pos b{ color:#57e6b0 } .gm-at-sec .atk-sess-lab.neg b{ color:var(--at-coral) }
.gm-at-sec .atk-runrow{ display:flex; gap:8px }
.gm-at-sec .atk-run{ flex:1; padding:12px; border-radius:11px; cursor:pointer; font:inherit; font-size:13px; font-weight:900; letter-spacing:.01em; color:#05221f; border:none; background:linear-gradient(180deg,#5fe6cf,#2fbfa8); box-shadow:0 6px 18px -8px rgba(75,214,192,.8); transition:filter .14s, transform .14s }
.gm-at-sec .atk-run:hover{ filter:brightness(1.06); transform:translateY(-1px) }
.gm-at-sec .atk-run.pause{ color:#3a2c05; background:linear-gradient(180deg,#ffd680,#f0b73c); box-shadow:0 6px 18px -8px rgba(255,200,90,.7) }
.gm-at-sec .atk-run.stop{ color:#fff; background:linear-gradient(180deg,#ff6b76,#e23b47); box-shadow:0 6px 18px -8px rgba(255,87,99,.7) }

/* Over/Under 3-8 pad + recovery + balance-needed */
.gm-at-sec .atk-digits.ou{ grid-template-columns:repeat(6,1fr) }
.gm-at-sec .atk-recov button{ font-size:10.5px }
.gm-at-sec .atk-risk-row.bal{ border-top:none; padding:6px 0 8px; margin-bottom:2px; border-bottom:1px dashed var(--at-bd) }
.gm-at-sec .atk-risk-row.bal span{ color:#ffc9cd; font-weight:700 } .gm-at-sec .atk-risk-row.bal b{ font-size:15px }

/* settings multi-session note */
.gm-at-sec .ats-note{ font-size:11px; color:var(--at-mut); line-height:1.55; padding:12px 14px; border-radius:12px; background:rgba(75,214,192,.05); border:1px solid rgba(75,214,192,.18); margin-bottom:14px }
.gm-at-sec .ats-note b{ color:var(--at-txt); font-weight:800 }
.gm-at-sec .ats-fld > label em{ font-style:normal; color:var(--at-mut); font-size:9.5px; margin-left:4px }

html.is-scrolling.gm-shed .gm-at-sec .atk-head.islive .atk-ic{ animation:none }
@media (max-width:820px){ .gm-at-sec .atk.running{ box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent) } }

/* ⚠ .aether-main has an identity transform that traps the fixed popup inside it.
   Neutralise it ONLY while the Auto Trader view is active (console is hidden then). */
body.gm-at-active .aether-main{ transform:none !important }


/* ══ AUTO TRADER v3.1 — per-analyzer speed/growth · market dropdown · next-gen
   transactions (equity curve + filters + running balance) · popup equity curve ══ */
.gm-at-sec .atk-cad button, .gm-at-sec .atk-growth button{ font-size:11px }

/* advanced market dropdown */
.gm-at-sec .atk-mktdd{ position:relative }
.gm-at-sec .atk-mkt-head{ display:flex; align-items:center; gap:8px; width:100%; padding:10px 12px; border-radius:10px; cursor:pointer; font:inherit; text-align:left; background:rgba(0,0,0,.28); border:1px solid var(--at-bd2); color:var(--at-txt) }
.gm-at-sec .atk-mkt-head:hover{ border-color:#4a545e }
.gm-at-sec .atk-mkt-cur{ flex:1; font-size:12px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.gm-at-sec .atk-mkt-hit{ font-size:11px; font-weight:800; color:#57e6b0; font-variant-numeric:tabular-nums }
.gm-at-sec .atk-mkt-chev{ color:var(--at-mut); transition:transform .2s } .gm-at-sec .atk-mkt-head.open .atk-mkt-chev{ transform:rotate(180deg) }
.gm-at-sec .atk-mrows{ margin-top:6px; max-height:236px; overflow-y:auto; -webkit-overflow-scrolling:touch; border-radius:10px; border:1px solid var(--at-bd); background:rgba(0,0,0,.25); display:flex; flex-direction:column; gap:2px; padding:4px }
.gm-at-sec .atk-mrow{ display:grid; grid-template-columns:1.5fr 1fr auto; align-items:center; gap:9px; padding:8px 10px; border-radius:8px; cursor:pointer; font:inherit; text-align:left; background:none; border:none; color:var(--at-txt) }
.gm-at-sec .atk-mrow:hover{ background:rgba(255,255,255,.05) }
.gm-at-sec .atk-mrow.on{ background:rgba(75,214,192,.14); box-shadow:inset 0 0 0 1px rgba(75,214,192,.4) }
.gm-at-sec .atk-mrow-n{ font-size:11.5px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis } .gm-at-sec .atk-mrow-n em{ font-style:normal; font-weight:400; color:var(--at-mut); font-size:9px; margin-left:4px }
.gm-at-sec .atk-mrow-bar{ height:6px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden } .gm-at-sec .atk-mrow-bar i{ display:block; height:100%; background:linear-gradient(90deg,var(--at-teal),#6ff0c8) }
.gm-at-sec .atk-mrow.hot .atk-mrow-bar i{ background:linear-gradient(90deg,#57e6b0,#8fffce) }
.gm-at-sec .atk-mrow-m{ font-size:9.5px; color:var(--at-mut); font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right }

/* next-gen transactions */
.gm-at-sec .atv-txcurve:empty, .gm-at-sec .atv-txfilt:empty{ display:none }
.gm-at-sec .atv-txcurve{ margin-bottom:11px }
.gm-at-sec .atv-curve-bars{ display:flex; align-items:flex-end; gap:2px; height:46px; padding:8px 10px; border-radius:10px; background:rgba(0,0,0,.3); border:1px solid var(--at-bd) }
.gm-at-sec .atv-curve-bars i{ flex:1; min-width:0; border-radius:2px 2px 0 0; height:calc(8% + var(--h) * 0.82) }
.gm-at-sec .atv-curve-bars i.pos{ background:linear-gradient(180deg,#57e6b0,rgba(87,230,176,.28)) } .gm-at-sec .atv-curve-bars i.neg{ background:linear-gradient(180deg,#ff6b76,rgba(255,87,99,.28)) }
.gm-at-sec .atv-curve-lab{ display:flex; justify-content:space-between; margin-top:6px; font-size:10px; color:var(--at-mut) } .gm-at-sec .atv-curve-lab b{ font-weight:800; font-variant-numeric:tabular-nums }
.gm-at-sec .atv-txfilt{ display:flex; gap:6px; margin-bottom:11px }
.gm-at-sec .atv-fchip{ padding:5px 14px; border-radius:999px; cursor:pointer; font:inherit; font-size:10.5px; font-weight:800; color:var(--at-mut); background:rgba(0,0,0,.25); border:1px solid var(--at-bd2) }
.gm-at-sec .atv-fchip.on{ color:#05221f; background:var(--at-teal); border-color:var(--at-teal) }
.gm-at-sec .atv-txdot{ display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; vertical-align:middle }

/* popup equity curve */
.gm-at-sec .atv-pop-curve{ display:flex; align-items:flex-end; justify-content:center; gap:2px; height:40px; margin:0 0 14px; padding:0 8px }
.gm-at-sec .atv-pop-curve i{ width:6px; border-radius:2px 2px 0 0; height:calc(10% + var(--h) * 0.8) }
.gm-at-sec .atv-pop-curve i.pos{ background:#57e6b0 } .gm-at-sec .atv-pop-curve i.neg{ background:#ff6b76 }


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v4 — GENERATIONAL PASS
   per-type preset risk badges · AI signal grade · next-gen Summary (win-rate donut
   + stat tiles + profit factor) · Transactions stat strip · ultra-real session
   report-card popup · sophisticated section polish. All scoped under .gm-at-sec.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── section polish: thin gradient crown on every panel ───────────────────── */
.gm-at-sec .atc{ position:relative; }
.gm-at-sec .atc > .atc-h{ position:relative; }
.gm-at-sec .atc > .atc-h::after{ content:""; position:absolute; left:0; bottom:-1px; width:38px; height:2px; border-radius:2px;
  background:linear-gradient(90deg, var(--at-teal,#4bd6c0), transparent); }

/* ── AI signal grade chip (in the card AI-read) ───────────────────────────── */
.gm-at-sec .atk-sig-top{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.gm-at-sec .atk-sig-why{ flex-basis:100%; font-size:11px; color:var(--at-mut); }
.gm-at-sec .atk-grade{ font-size:8.5px; font-weight:900; padding:2px 8px; border-radius:999px; letter-spacing:.06em; }
.gm-at-sec .atk-grade.g-prime{ background:linear-gradient(90deg,#57e6b0,#6ff0c8); color:#04211b; box-shadow:0 0 12px -3px rgba(87,230,176,.7); }
.gm-at-sec .atk-grade.g-good{ background:rgba(87,230,176,.16); color:#57e6b0; }
.gm-at-sec .atk-grade.g-fair{ background:rgba(245,200,80,.15); color:#f5c850; }
.gm-at-sec .atk-grade.g-weak{ background:rgba(255,255,255,.08); color:var(--at-mut); }

/* ── per-type preset buttons: risk badge + richer card ────────────────────── */
.gm-at-sec .atk-pre{ position:relative; padding-right:46px !important; }
.gm-at-sec .atk-pre-risk{ position:absolute; top:8px; right:8px; font-size:7.5px; font-weight:900; padding:2px 7px; border-radius:999px; letter-spacing:.04em; text-transform:uppercase; }
.gm-at-sec .atk-pre-risk.lo{ background:rgba(87,230,176,.18); color:#57e6b0; }
.gm-at-sec .atk-pre-risk.md{ background:rgba(245,200,80,.16); color:#f5c850; }
.gm-at-sec .atk-pre-risk.hi{ background:rgba(255,107,118,.16); color:#ff6b76; }
.gm-at-sec .atk-pre.on .atk-pre-risk{ filter:brightness(1.15); }

/* ── next-gen SUMMARY: win-rate donut hero + stat tiles ───────────────────── */
.gm-at-sec .atsum-hero{ display:flex; align-items:center; gap:14px; padding:14px; border-radius:14px; margin-bottom:12px;
  background:linear-gradient(135deg, rgba(75,214,192,.07), rgba(0,0,0,.26)); border:1px solid var(--at-bd,#2a333c); }
.gm-at-sec .atsum-donut{ position:relative; width:76px; height:76px; border-radius:50%; flex:none; --dc:#57e6b0;
  background:conic-gradient(var(--dc) calc(var(--p,0)*1%), rgba(255,255,255,.08) 0);
  display:flex; flex-direction:column; align-items:center; justify-content:center; }
.gm-at-sec .atsum-donut.neg{ --dc:#ff6b76; }
.gm-at-sec .atsum-donut::before{ content:""; position:absolute; inset:8px; border-radius:50%; background:linear-gradient(160deg,#151c24,#0d1218); }
.gm-at-sec .atsum-donut span{ position:relative; font-size:18px; font-weight:900; color:var(--at-txt,#eaf1f6); font-variant-numeric:tabular-nums; }
.gm-at-sec .atsum-donut em{ position:relative; font-style:normal; font-size:7.5px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.06em; }
.gm-at-sec .atsum-hero-r{ min-width:0; }
.gm-at-sec .atsum-hero-r u{ display:block; font-size:10px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em; text-decoration:none; }
.gm-at-sec .atsum-hero-r b{ display:block; font-size:27px; font-weight:900; line-height:1.12; font-variant-numeric:tabular-nums; }
.gm-at-sec .atsum-hero-r i{ font-style:normal; font-size:11px; color:var(--at-mut); }
.gm-at-sec .atsum-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.gm-at-sec .atsum-tile{ padding:10px 8px; border-radius:11px; background:rgba(0,0,0,.26); border:1px solid var(--at-bd2,#232c34); text-align:center; }
.gm-at-sec .atsum-tile u{ display:block; font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em; text-decoration:none; }
.gm-at-sec .atsum-tile b{ display:block; font-size:16px; font-weight:800; margin-top:3px; font-variant-numeric:tabular-nums; }
.gm-at-sec .atsum-tile i{ display:block; font-style:normal; font-size:8.5px; color:var(--at-mut); margin-top:2px; }
.gm-at-sec .atsum-life{ margin-top:10px; text-align:center; font-size:10.5px; color:var(--at-mut); }

/* ── Transactions stat strip ──────────────────────────────────────────────── */
.gm-at-sec .atv-txstats:empty{ display:none; }
.gm-at-sec .atv-txstats{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:11px; }
.gm-at-sec .atv-txstat{ padding:9px 6px; border-radius:10px; background:rgba(0,0,0,.28); border:1px solid var(--at-bd2,#232c34); text-align:center; }
.gm-at-sec .atv-txstat u{ display:block; font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em; text-decoration:none; }
.gm-at-sec .atv-txstat b{ display:block; font-size:15px; font-weight:800; margin-top:3px; font-variant-numeric:tabular-nums; }

/* ── ULTRA-REAL session report card ───────────────────────────────────────── */
.gm-at-sec .atv-pop-card{ --c:#57e6b0; }
.gm-at-sec .atv-pop-rib{ position:absolute; top:16px; left:0; padding:4px 16px 4px 14px; font-size:9px; font-weight:900; letter-spacing:.14em;
  background:linear-gradient(90deg, var(--c), transparent); color:#04211b; border-radius:0 999px 999px 0; }
.gm-at-sec .atv-pop.loss .atv-pop-rib{ background:linear-gradient(90deg,#ff6b76,transparent); color:#2a0d0f; }
.gm-at-sec .atv-pop-an{ display:flex; align-items:center; justify-content:center; gap:7px; font-size:11px; font-weight:700; color:var(--at-mut); margin-top:6px; }
.gm-at-sec .atv-pop-dot{ width:8px; height:8px; border-radius:50%; }
.gm-at-sec .atv-pop-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:13px 0 4px; }
.gm-at-sec .atv-pop-grid span{ padding:9px 5px; border-radius:10px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.08); text-align:center; }
.gm-at-sec .atv-pop-grid u{ display:block; font-size:8.5px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em; text-decoration:none; }
.gm-at-sec .atv-pop-grid b{ display:block; font-size:15px; font-weight:800; margin-top:3px; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-pop-stamp{ margin-top:9px; font-size:9.5px; color:var(--at-mut); opacity:.85; text-align:center; letter-spacing:.02em; }

/* ── responsive ───────────────────────────────────────────────────────────── */
@media (max-width:560px){
  .gm-at-sec .atv-txstats{ grid-template-columns:repeat(2,1fr); }
  .gm-at-sec .atsum-hero-r b{ font-size:23px; }
  .gm-at-sec .atsum-donut{ width:66px; height:66px; }
}


/* ══════════════════════════════════════════════════════════════════════════════
   🤖 AUTO TRADER v5 — SINGLE-COLUMN everywhere · per-type VISUAL SIGNAL PANELS ·
   next-gen popup & card GLOWS. Scoped under .gm-at-sec.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── ONE COLUMN on every device (phone·tablet·desktop·monitor), centered like mobile ── */
.gm-at-sec .atv{ max-width:764px; margin-left:auto; margin-right:auto; }
.gm-at-sec #at-analyzers{ grid-template-columns:1fr !important; }
.gm-at-sec .atv-2{ grid-template-columns:1fr !important; }

/* ── per-type visual signal panel ─────────────────────────────────────────── */
.gm-at-sec .atk-tp{ position:relative; margin:11px 0; padding:11px 12px; border-radius:13px; overflow:hidden;
  background:linear-gradient(150deg, color-mix(in srgb,var(--c) 13%, rgba(0,0,0,.34)), rgba(0,0,0,.36));
  border:1px solid color-mix(in srgb,var(--c) 28%, transparent);
  box-shadow:0 0 0 1px rgba(255,255,255,.03) inset, 0 10px 30px -18px var(--c); }
.gm-at-sec .atk-tp.warm{ display:flex; align-items:center; gap:9px; font-size:11px; color:var(--at-mut); }
.gm-at-sec .atk-tp-pulse{ width:9px; height:9px; border-radius:50%; background:var(--c); box-shadow:0 0 10px var(--c); animation:atTpPulse 1.3s ease-in-out infinite; }
@keyframes atTpPulse{ 0%,100%{opacity:.4; transform:scale(.8)} 50%{opacity:1; transform:scale(1.25)} }
.gm-at-sec .atk-tp-t{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:10px; font-weight:700; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em; margin-bottom:10px; }
.gm-at-sec .atk-tp-t b{ font-size:12px; font-weight:900; color:color-mix(in srgb,var(--c) 65%, #ffffff); letter-spacing:0; text-transform:none; }
.gm-at-sec .atk-tp-lab{ display:flex; justify-content:space-between; gap:8px; margin-top:9px; font-size:10px; color:var(--at-mut); }
.gm-at-sec .atk-tp-lab b{ color:var(--at-txt); font-weight:800; } .gm-at-sec .atk-tp-lab em{ font-style:normal; opacity:.7; }
.gm-at-sec .atk-tp-lab .g b{ color:#57e6b0; } .gm-at-sec .atk-tp-lab .b, .gm-at-sec .atk-tp-lab .b b{ color:#7fb8ff; }

/* barrier ladder (over/under) */
.gm-at-sec .atk-tp-ladder{ display:flex; align-items:flex-end; gap:4px; height:62px; }
.gm-at-sec .atk-tp-ladder i{ position:relative; flex:1; border-radius:3px 3px 0 0; height:calc(14% + var(--h) * 0.82); min-height:9px; }
.gm-at-sec .atk-tp-ladder i u{ position:absolute; bottom:-16px; left:0; right:0; text-align:center; font-size:8px; color:var(--at-mut); text-decoration:none; }
.gm-at-sec .atk-tp-ladder .b-over{ background:linear-gradient(180deg,#57e6b0,rgba(87,230,176,.22)); }
.gm-at-sec .atk-tp-ladder .b-under{ background:linear-gradient(180deg,#7fb8ff,rgba(127,184,255,.2)); }
.gm-at-sec .atk-tp-ladder .b-bar{ background:linear-gradient(180deg,#f5c850,rgba(245,200,80,.28)); box-shadow:0 0 13px -2px #f5c850; }
.gm-at-sec .atk-tp.ou .atk-tp-lab{ margin-top:17px; }

/* repeat radar (matches) */
.gm-at-sec .atk-tp-dots{ display:flex; gap:5px; align-items:flex-end; height:40px; }
.gm-at-sec .atk-tp-dots i{ position:relative; flex:1; border-radius:5px; background:rgba(255,255,255,.08); height:calc(22% + var(--v) * 0.78); display:flex; align-items:flex-start; justify-content:center; }
.gm-at-sec .atk-tp-dots i u{ font-size:8px; color:var(--at-mut); text-decoration:none; margin-top:2px; }
.gm-at-sec .atk-tp-dots i.hot{ background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 28%,transparent)); box-shadow:0 0 15px -2px var(--c); animation:atTpGlow 1.4s ease-in-out infinite; }
.gm-at-sec .atk-tp-dots i.hot u{ color:#fff; font-weight:800; }
@keyframes atTpGlow{ 0%,100%{filter:brightness(1)} 50%{filter:brightness(1.4)} }
.gm-at-sec .atk-tp-gauge{ height:7px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; margin-top:10px; }
.gm-at-sec .atk-tp-gauge i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 50%,#fff)); box-shadow:0 0 10px -1px var(--c); }
.gm-at-sec .atk-tp-gauge.exh i{ background:linear-gradient(90deg,#57e6b0,#f5c850 55%,#ff6b76); }
.gm-at-sec .atk-tp-gauge.dir i{ background:linear-gradient(90deg,var(--c),#6ff0c8); }

/* parity beam (even/odd) */
.gm-at-sec .atk-tp-beam{ display:flex; height:26px; border-radius:8px; overflow:hidden; font-size:10px; font-weight:800; }
.gm-at-sec .atk-tp-beam span{ display:flex; align-items:center; justify-content:center; color:#04211b; transition:width .45s ease; min-width:26px; }
.gm-at-sec .atk-tp-beam .e{ background:linear-gradient(90deg,#57e6b0,#6ff0c8); }
.gm-at-sec .atk-tp-beam .o{ background:linear-gradient(90deg,#f5a0c0,#ff8ab0); }
.gm-at-sec .atk-tp-chips{ display:flex; gap:3px; margin-top:9px; }
.gm-at-sec .atk-tp-chips i{ flex:1; text-align:center; font-size:8.5px; font-weight:800; padding:3px 0; border-radius:4px; }
.gm-at-sec .atk-tp-chips .e{ background:rgba(87,230,176,.16); color:#57e6b0; }
.gm-at-sec .atk-tp-chips .o{ background:rgba(255,138,176,.16); color:#ff8ab0; }

/* run meter (streak) */
.gm-at-sec .atk-tp-pips{ display:flex; gap:5px; }
.gm-at-sec .atk-tp-pips i{ flex:1; height:15px; border-radius:4px; background:rgba(255,255,255,.07); transition:background .3s; }
.gm-at-sec .atk-tp-pips i.on{ background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 38%,transparent)); box-shadow:0 0 8px -1px var(--c); }

/* momentum tape / spark (rise-fall · vanilla · asians) */
.gm-at-sec .atk-tp-spark{ display:flex; align-items:flex-end; gap:2px; height:44px; }
.gm-at-sec .atk-tp-spark i{ flex:1; min-width:0; border-radius:2px 2px 0 0; height:calc(6% + var(--h) * 0.9); background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 18%,transparent)); }
.gm-at-sec .atk-tp.dn .atk-tp-spark i{ background:linear-gradient(180deg,#ff6b76,rgba(255,107,118,.18)); }
.gm-at-sec .atk-tp-spark.avg i{ opacity:.85; }

/* calm gauge + growth ladder (accumulator) */
.gm-at-sec .atk-tp-calm{ position:relative; height:23px; border-radius:8px; background:rgba(255,255,255,.07); overflow:hidden; }
.gm-at-sec .atk-tp-calm i{ position:absolute; inset:0 auto 0 0; height:100%; width:0; border-radius:8px; transition:width .5s ease; }
.gm-at-sec .atk-tp-calm.ok i{ background:linear-gradient(90deg,#57e6b0,#6ff0c8); }
.gm-at-sec .atk-tp-calm.mid i{ background:linear-gradient(90deg,#f5c850,#ffd97a); }
.gm-at-sec .atk-tp-calm.bad i{ background:linear-gradient(90deg,#ff6b76,#ff9aa2); }
.gm-at-sec .atk-tp-calm span{ position:relative; z-index:1; display:flex; align-items:center; height:100%; padding:0 11px; font-size:10px; font-weight:800; color:#04211b; }
.gm-at-sec .atk-tp-calm.bad span{ color:#2a0d0f; }
.gm-at-sec .atk-tp-ladder2{ display:flex; gap:5px; margin-top:10px; }
.gm-at-sec .atk-tp-ladder2 i{ flex:1; text-align:center; padding:6px 2px; border-radius:8px; background:rgba(0,0,0,.28); border:1px solid color-mix(in srgb,var(--c) 20%, transparent); }
.gm-at-sec .atk-tp-ladder2 u{ display:block; font-size:8px; color:var(--at-mut); text-decoration:none; }
.gm-at-sec .atk-tp-ladder2 b{ display:block; font-size:10px; font-weight:800; color:color-mix(in srgb,var(--c) 55%,#ffffff); margin-top:2px; }

/* ── next-gen GLOWS ───────────────────────────────────────────────────────── */
.gm-at-sec .atk.expanded{ box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 22%, transparent), 0 20px 54px -28px color-mix(in srgb,var(--c) 65%, transparent); }
.gm-at-sec .atv-pop-card{ box-shadow:0 30px 90px -22px rgba(0,0,0,.82), 0 0 0 1px color-mix(in srgb,var(--c) 30%, transparent), 0 0 66px -12px color-mix(in srgb,var(--c) 45%, transparent) !important; }
.gm-at-sec .atv-pop-pnl.pos{ text-shadow:0 0 32px rgba(87,230,176,.55); }
.gm-at-sec .atv-pop-pnl.neg{ text-shadow:0 0 32px rgba(255,107,118,.5); }
.gm-at-sec .atv-pop-rib{ box-shadow:0 0 22px -5px var(--c); animation:atRibShimmer 2.4s ease-in-out infinite; }
@keyframes atRibShimmer{ 0%,100%{filter:brightness(1)} 50%{filter:brightness(1.32)} }
.gm-at-sec .atv-pop-again{ box-shadow:0 0 26px -7px var(--c); }
.gm-at-sec .atv-pop-dot{ box-shadow:0 0 10px -1px var(--c); }

/* kill panel glow animations while scrolling / on small screens for smoothness */
html.is-scrolling.gm-shed .gm-at-sec .atk-tp-dots i.hot, html.is-scrolling.gm-shed .gm-at-sec .atk-tp-pulse, html.is-scrolling.gm-shed .gm-at-sec .atv-pop-rib{ animation:none; }


/* ═══ 🎯 PREDICTION ANALYSIS PANELS (console: above Sentinel · Genesis · MATCHMASTER) ═══ */
.gm-pred{ --acc:#57e6b0; position:relative; margin:0 0 14px; padding:14px; border-radius:16px; overflow:hidden;
  background:linear-gradient(155deg, color-mix(in srgb,var(--acc) 12%, rgba(10,14,18,.92)), rgba(9,12,16,.94));
  border:1px solid color-mix(in srgb,var(--acc) 34%, transparent);
  box-shadow:0 0 0 1px rgba(255,255,255,.04) inset, 0 16px 44px -24px var(--acc); }
.gm-pred::before{ content:""; position:absolute; inset:0 0 auto 0; height:2px; background:linear-gradient(90deg,transparent,var(--acc),transparent); opacity:.7; }
.gm-pred-head{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#cdd8e0; margin-bottom:12px; }
.gm-pred-ic{ font-size:15px; filter:drop-shadow(0 0 6px color-mix(in srgb,var(--acc) 60%,transparent)); }
.gm-pred-live{ margin-left:auto; display:inline-flex; align-items:center; gap:5px; font-size:9px; color:var(--acc); letter-spacing:.08em; }
.gm-pred-live i{ width:7px; height:7px; border-radius:50%; background:var(--acc); box-shadow:0 0 9px var(--acc); animation:gmPredPulse 1.4s ease-in-out infinite; }
@keyframes gmPredPulse{ 0%,100%{opacity:.35; transform:scale(.8)} 50%{opacity:1; transform:scale(1.25)} }
.gm-pred-main{ display:flex; align-items:center; gap:14px; }
.gm-pred-call{ flex:1; min-width:0; }
.gm-pred-call u{ display:block; font-size:9px; color:#7f8c98; letter-spacing:.1em; text-decoration:none; }
.gm-pred-verdict{ display:block; font-size:27px; font-weight:900; line-height:1.05; color:#fff; letter-spacing:-.01em; white-space:nowrap;
  text-shadow:0 0 26px color-mix(in srgb,var(--acc) 55%, transparent); }
.gm-pred-sub{ font-style:normal; font-size:11px; color:#93a1ac; }
.gm-pred-ring{ position:relative; --p:0; flex:none; width:74px; height:74px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:conic-gradient(var(--acc) calc(var(--p) * 1%), rgba(255,255,255,.08) 0); transition:background .5s ease; }
.gm-pred-ring[data-t="lo"]{ --acc:#7f8c98; }
.gm-pred-ring[data-t="mid"]{ --acc:#f5c850; }
.gm-pred-ring::before{ content:""; position:absolute; inset:8px; border-radius:50%; background:linear-gradient(160deg,#141c24,#0c1116); }
.gm-pred-ring span{ position:relative; font-size:18px; font-weight:900; color:#fff; font-variant-numeric:tabular-nums; }
.gm-pred-ring em{ position:relative; font-style:normal; font-size:7px; color:#93a1ac; text-transform:uppercase; letter-spacing:.06em; }
.gm-pred-bars{ display:flex; align-items:flex-end; gap:4px; height:48px; margin:15px 0 4px; }
.gm-pred-bars i{ position:relative; flex:1; border-radius:3px 3px 0 0; min-height:8px; height:calc(12% + var(--h) * 0.82); background:rgba(255,255,255,.1); }
.gm-pred-bars i u{ position:absolute; bottom:-15px; left:0; right:0; text-align:center; font-size:8px; color:#7f8c98; text-decoration:none; }
.gm-pred-bars i.top{ background:linear-gradient(180deg,var(--acc),color-mix(in srgb,var(--acc) 22%,transparent)); box-shadow:0 0 13px -2px var(--acc); }
.gm-pred-metrics{ display:flex; gap:8px; margin:16px 0 12px; }
.gm-pred-metrics span{ flex:1; text-align:center; padding:8px 4px; border-radius:9px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); }
.gm-pred-metrics u{ display:block; font-size:8.5px; color:#7f8c98; text-transform:uppercase; letter-spacing:.03em; text-decoration:none; }
.gm-pred-metrics b{ display:block; font-size:14px; font-weight:800; color:#eaf1f6; margin-top:3px; font-variant-numeric:tabular-nums; }
.gm-pred-fire{ width:100%; padding:13px; border:none; border-radius:12px; cursor:pointer; font:inherit; font-size:14px; font-weight:800; color:#04211b;
  background:linear-gradient(180deg,var(--acc),color-mix(in srgb,var(--acc) 70%,#000)); box-shadow:0 12px 30px -12px var(--acc); transition:filter .15s, transform .1s; }
.gm-pred-fire:hover{ filter:brightness(1.09); }
.gm-pred-fire:active{ transform:translateY(1px); }
.gm-pred-note{ text-align:center; font-size:9.5px; color:#7f8c98; margin-top:9px; }
html.is-scrolling.gm-shed .gm-pred-live i{ animation:none; }
@media (max-width:560px){
  .gm-pred-verdict{ font-size:22px; }
  .gm-pred-ring{ width:64px; height:64px; } .gm-pred-ring::before{ inset:7px; }
}


/* ══ AUTO TRADER v6 — accumulator TP dropdown · per-analyzer tx breakdown · polish ══ */

/* accumulator take-profit dropdown */
.gm-at-sec .atk-tpsel{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.gm-at-sec .atk-sel{ appearance:none; -webkit-appearance:none; padding:9px 30px 9px 12px; border-radius:10px; cursor:pointer; font:inherit; font-size:12px; font-weight:800;
  color:var(--at-txt,#eaf1f6); background:rgba(0,0,0,.3) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237f8c98' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 10px center;
  border:1px solid var(--at-bd2,#232c34); min-width:118px; }
.gm-at-sec .atk-sel:hover{ border-color:#4a545e; }
.gm-at-sec .atk-sel:focus{ outline:none; border-color:var(--at-teal,#4bd6c0); box-shadow:0 0 0 3px rgba(75,214,192,.15); }
.gm-at-sec .atk-tpsel-out{ font-size:11px; color:var(--at-mut); } .gm-at-sec .atk-tpsel-out em{ font-style:normal; opacity:.7; }
.gm-at-sec .atk-tp-ladder2 i.tgt{ background:linear-gradient(180deg,color-mix(in srgb,var(--c) 30%, rgba(0,0,0,.3)), rgba(0,0,0,.3)); border-color:color-mix(in srgb,var(--c) 55%, transparent); box-shadow:0 0 14px -3px var(--c); }
.gm-at-sec .atk-tp-ladder2 i.tgt b{ color:color-mix(in srgb,var(--c) 80%,#fff); }
.gm-at-sec .atk-tp-lab .g, .gm-at-sec .atk-tp-lab .g b{ color:#57e6b0; }

/* 5-tile transactions stat strip */
.gm-at-sec .atv-txstats{ grid-template-columns:repeat(5,1fr); }
@media (max-width:560px){ .gm-at-sec .atv-txstats{ grid-template-columns:repeat(3,1fr); } }

/* per-analyzer breakdown */
.gm-at-sec .atv-txbreak:empty{ display:none; }
.gm-at-sec .atv-txbreak{ margin-bottom:12px; padding:11px 12px; border-radius:12px; background:rgba(0,0,0,.24); border:1px solid var(--at-bd,#2a333c); }
.gm-at-sec .atv-brk-h{ font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--at-mut); margin-bottom:9px; }
.gm-at-sec .atv-brk-row{ display:grid; grid-template-columns:auto 1.3fr auto 1fr auto; align-items:center; gap:9px; padding:5px 0; }
.gm-at-sec .atv-brk-dot{ width:8px; height:8px; border-radius:50%; box-shadow:0 0 8px -1px currentColor; }
.gm-at-sec .atv-brk-n{ font-size:11.5px; font-weight:800; color:var(--at-txt,#eaf1f6); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-at-sec .atv-brk-tr{ font-size:9.5px; color:var(--at-mut); white-space:nowrap; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-brk-bar{ height:6px; border-radius:999px; background:rgba(255,255,255,.07); overflow:hidden; }
.gm-at-sec .atv-brk-bar i{ display:block; height:100%; border-radius:999px; }
.gm-at-sec .atv-brk-bar.pos i{ background:linear-gradient(90deg,#57e6b0,#6ff0c8); } .gm-at-sec .atv-brk-bar.neg i{ background:linear-gradient(90deg,#ff6b76,#ff9aa2); }
.gm-at-sec .atv-brk-pl{ font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
.gm-at-sec .atv-brk-pl.pos{ color:#57e6b0; } .gm-at-sec .atv-brk-pl.neg{ color:#ff6b76; }

/* ── ultra-sophisticated polish ─────────────────────────────────────────────── */
.gm-at-sec .atc{ transition:border-color .2s; }
.gm-at-sec .atv-hud{ position:relative; overflow:hidden; }
.gm-at-sec .atv-hud::after{ content:""; position:absolute; inset:0 0 auto 0; height:1px; background:linear-gradient(90deg,transparent,rgba(75,214,192,.5),transparent); }
.gm-at-sec .atc-h h4{ letter-spacing:-.01em; }
.gm-at-sec .atk-presets{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
@media (max-width:520px){ .gm-at-sec .atk-presets{ grid-template-columns:1fr; } }


/* ══ AUTO TRADER v7 — win-rate presets · multi-session · LIVE SESSIONS dock · ACCU live contract ══ */

/* preset win-rate badge */
.gm-at-sec .atk-pre-wr{ display:inline-block; font-size:8px; font-weight:900; padding:2px 8px; border-radius:999px; margin-bottom:5px; letter-spacing:.03em; }
.gm-at-sec .atk-pre-wr.hi{ background:rgba(87,230,176,.18); color:#57e6b0; box-shadow:0 0 10px -3px rgba(87,230,176,.7); }
.gm-at-sec .atk-pre-wr.md{ background:rgba(245,200,80,.16); color:#f5c850; }
.gm-at-sec .atk-pre-wr.lo{ background:rgba(255,138,176,.15); color:#ff8ab0; }

/* run-another button */
.gm-at-sec .atk-run.more{ background:rgba(255,255,255,.05); border:1px dashed color-mix(in srgb,var(--c) 45%, rgba(255,255,255,.2)); color:var(--at-txt,#eaf1f6); font-weight:700; }
.gm-at-sec .atk-run.more:hover{ background:rgba(255,255,255,.09); }

/* ⚡ LIVE SESSIONS DOCK */
.gm-at-sec .atc-sessions[hidden]{ display:none; }
.gm-at-sec .atc-sessions{ border-color:color-mix(in srgb,var(--at-teal,#4bd6c0) 26%, transparent) !important; }
.gm-at-sec #at-sessions{ display:grid; grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); gap:10px; }
.gm-at-sec .atv-ss{ --c:#4bd6c0; position:relative; padding:12px; border-radius:13px; overflow:hidden;
  background:linear-gradient(150deg, color-mix(in srgb,var(--c) 13%, rgba(0,0,0,.34)), rgba(0,0,0,.36));
  border:1px solid color-mix(in srgb,var(--c) 32%, transparent); box-shadow:0 10px 30px -18px var(--c); }
.gm-at-sec .atv-ss.paused{ opacity:.72; }
.gm-at-sec .atv-ss-top{ display:flex; align-items:center; gap:7px; }
.gm-at-sec .atv-ss-dot{ width:8px; height:8px; border-radius:50%; background:var(--c); box-shadow:0 0 9px var(--c); animation:atSsPulse 1.4s ease-in-out infinite; }
.gm-at-sec .atv-ss.paused .atv-ss-dot{ animation:none; }
@keyframes atSsPulse{ 0%,100%{opacity:.4; transform:scale(.85)} 50%{opacity:1; transform:scale(1.15)} }
.gm-at-sec .atv-ss-top b{ font-size:12px; font-weight:800; color:var(--at-txt,#eaf1f6); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-at-sec .atv-ss-pnl{ margin-left:auto; font-size:13px; font-weight:900; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-sub{ font-size:9.5px; color:var(--at-mut); margin:6px 0 8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-at-sec .atv-ss-bar{ height:7px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.gm-at-sec .atv-ss-bar i{ display:block; height:100%; border-radius:999px; }
.gm-at-sec .atv-ss-bar i.pos{ background:linear-gradient(90deg,#57e6b0,#6ff0c8); } .gm-at-sec .atv-ss-bar i.neg{ background:linear-gradient(90deg,#ff6b76,#ff9aa2); }
.gm-at-sec .atv-ss-lab{ display:flex; justify-content:space-between; margin-top:5px; font-size:9.5px; color:var(--at-mut); font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-live{ margin-top:9px; padding:8px 9px; border-radius:9px; background:rgba(0,0,0,.3); border:1px solid color-mix(in srgb,var(--c) 24%, transparent); }
.gm-at-sec .atv-ss-live-h{ display:flex; justify-content:space-between; font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.04em; }
.gm-at-sec .atv-ss-live-h b{ color:color-mix(in srgb,var(--c) 72%,#fff); font-weight:800; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-live-bar{ height:6px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; margin:6px 0; }
.gm-at-sec .atv-ss-live-bar i{ display:block; height:100%; background:linear-gradient(90deg,var(--c),#6ff0c8); box-shadow:0 0 9px -1px var(--c); transition:width .4s; }
.gm-at-sec .atv-ss-live-l{ display:flex; justify-content:space-between; font-size:9.5px; color:var(--at-mut); }
.gm-at-sec .atv-ss-live-l b{ font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-ctl{ display:flex; gap:6px; margin-top:10px; }
.gm-at-sec .atv-ss-b{ flex:1; padding:7px; border:none; border-radius:8px; cursor:pointer; font:inherit; font-size:12px; font-weight:800; color:var(--at-txt,#eaf1f6); background:rgba(255,255,255,.06); }
.gm-at-sec .atv-ss-b:hover{ background:rgba(255,255,255,.1); }
.gm-at-sec .atv-ss-b.stop{ color:#ff9aa2; }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss-dot{ animation:none; }


/* ══ AUTO TRADER v7.1 — recovery-method badge · mobile transactions (Market+Step visible) ══ */

/* preset recovery-method badge (replaces the win-% badge) */
.gm-at-sec .atk-pre-meth{ display:block; margin-top:6px; font-size:8px; font-weight:800; color:color-mix(in srgb,var(--c) 62%, #ffffff); opacity:.92; letter-spacing:.02em; }

/* folded Market · Step line inside the Play cell — shown only on phones */
.gm-at-sec .atv-txp-m{ display:none; }
@media (max-width:560px){
  .gm-at-sec .atv-txp-m{ display:block; font-size:9px; color:var(--at-mut); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* Market / Step / Balance are folded into the Play cell → hide those columns so the table fits */
  .gm-at-sec .atv-tx th:nth-child(2), .gm-at-sec .atv-tx td:nth-child(2),
  .gm-at-sec .atv-tx th:nth-child(4), .gm-at-sec .atv-tx td:nth-child(4),
  .gm-at-sec .atv-tx th:nth-child(7), .gm-at-sec .atv-tx td:nth-child(7){ display:none; }
  .gm-at-sec .atv-tx td, .gm-at-sec .atv-tx th{ padding-left:7px; padding-right:7px; }
}


/* ══ Prediction panels v2 — prime-digit trade window · detail chips · clear-tx button ══ */

/* ⏱ live trade window */
.gm-pred-win{ margin:15px 0 11px; padding:11px 12px; border-radius:12px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.08); transition:border-color .3s; }
.gm-pred-win[data-t="low"]{ border-color:rgba(255,107,118,.42); }
.gm-pred-win-h{ display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:11px; color:#93a1ac; margin-bottom:8px; }
.gm-pred-win-h b{ color:#eaf1f6; font-weight:800; }
.gm-pred-win-t{ font-variant-numeric:tabular-nums; color:var(--acc,#57e6b0); font-size:12px; font-weight:800; white-space:nowrap; }
.gm-pred-win-bar{ height:8px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.gm-pred-win-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--acc,#57e6b0),#6ff0c8); box-shadow:0 0 10px -2px var(--acc,#57e6b0); transition:width .6s linear; }
.gm-pred-win-bar i.mid{ background:linear-gradient(90deg,#f5c850,#ffd97a); box-shadow:0 0 10px -2px #f5c850; }
.gm-pred-win-bar i.low{ background:linear-gradient(90deg,#ff6b76,#ff9aa2); box-shadow:0 0 10px -2px #ff6b76; }

/* detail chips (safest-3 / top-3 / last-12 parity) */
.gm-pred-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:9px; }
.gm-pred-chips:empty{ display:none; }
.gm-pred-chips u{ font-size:9px; color:#7f8c98; text-transform:uppercase; letter-spacing:.05em; text-decoration:none; margin-right:3px; }
.pchip{ font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px; background:rgba(255,255,255,.06); color:#cdd8e0; font-variant-numeric:tabular-nums; }
.pchip b{ color:var(--acc,#57e6b0); }
.pchip.e{ background:rgba(87,230,176,.16); color:#57e6b0; }
.pchip.o{ background:rgba(255,138,176,.16); color:#ff8ab0; }

/* extra intelligence line */
.gm-pred-extra{ font-size:10px; color:#93a1ac; margin-bottom:10px; }
.gm-pred-extra:empty{ display:none; }

/* matches AT panel — ensemble top-3 strip */
.gm-at-sec .atk-tp-top3{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:9px; }
.gm-at-sec .atk-tp-top3 u{ font-size:9px; color:var(--at-mut); text-transform:uppercase; letter-spacing:.05em; text-decoration:none; }
.gm-at-sec .atk-tp-t3{ font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px; background:rgba(0,0,0,.3); border:1px solid color-mix(in srgb,var(--c) 26%, transparent); color:var(--at-txt,#eaf1f6); font-variant-numeric:tabular-nums; }
.gm-at-sec .atk-tp-t3 b{ color:color-mix(in srgb,var(--c) 72%,#fff); margin-right:2px; }

/* 🗑 clear transactions button */
.gm-at-sec .atc > .atc-h{ display:flex; align-items:center; gap:8px; }
.gm-at-sec .atv-txclear{ margin-left:auto; padding:5px 13px; border-radius:999px; cursor:pointer; font:inherit; font-size:10.5px; font-weight:800; color:#ff9aa2; background:rgba(255,107,118,.12); border:1px solid rgba(255,107,118,.32); }
.gm-at-sec .atv-txclear:hover{ background:rgba(255,107,118,.2); }

/* ═══════════════════════════════════════════════════════════════════════════
   AUTO TRADER · at26 — Magnificent AI read + Futuristic live market digit panel
   ═══════════════════════════════════════════════════════════════════════════ */
.atk-sig-x{ position:relative; display:flex; flex-direction:column; gap:9px; padding:12px 13px 12px 15px; border-radius:14px;
  background:linear-gradient(160deg, rgba(20,26,40,.72), rgba(12,16,26,.85)); border:1px solid rgba(120,150,220,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 10px 26px -16px rgba(0,0,0,.75); overflow:hidden; }
.atk-sig-x::before{ content:""; position:absolute; inset:0 auto 0 0; width:3px; background:linear-gradient(180deg,#57e6a1,#3fb0ff); opacity:.9; }
.atk-sig-x.mid::before{ background:linear-gradient(180deg,#ffd36a,#ff9d3d); }
.atk-sig-x.lo::before{ background:linear-gradient(180deg,#8892a6,#5a6376); }
.atk-sig-top{ display:flex; align-items:center; gap:8px; }
.atk-sig-top>b{ font-size:12.5px; letter-spacing:.02em; color:#eaf0ff; }
.atk-sig-pick{ margin-left:auto; font-weight:800; font-size:13px; color:#bfe9ff; padding:2px 11px; border-radius:999px;
  background:rgba(63,176,255,.15); border:1px solid rgba(63,176,255,.32); white-space:nowrap; }
.atk-sig-why{ font-size:12px; color:#aeb8cc; line-height:1.42; }
.atk-sig-bar{ height:7px; border-radius:6px; background:rgba(255,255,255,.07); overflow:hidden; }
.atk-sig-bar>i{ display:block; height:100%; border-radius:6px; background:linear-gradient(90deg,#3fb0ff,#57e6a1); transition:width .5s cubic-bezier(.2,.8,.2,1); }
.atk-sig-x.mid .atk-sig-bar>i{ background:linear-gradient(90deg,#ff9d3d,#ffd36a); }
.atk-sig-x.lo .atk-sig-bar>i{ background:linear-gradient(90deg,#5a6376,#8892a6); }
.atk-sig-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.atk-sig-m{ display:flex; flex-direction:column; gap:2px; padding:6px 8px; border-radius:9px; text-align:center;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.06); }
.atk-sig-m u{ font-style:normal; font-size:9px; letter-spacing:.03em; text-transform:uppercase; color:#7e879b; }
.atk-sig-m b{ font-size:13px; color:#eaf0ff; font-variant-numeric:tabular-nums; }
.atk-sig-m b.pos{ color:#57e6a1; } .atk-sig-m b.neg{ color:#ff7a8a; }
.atk-sig-facs{ display:flex; flex-wrap:wrap; gap:6px; }
.atk-fac{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; color:#d6deee; padding:3px 9px;
  border-radius:999px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09); }
.atk-fac u{ font-style:normal; font-size:9px; text-transform:uppercase; letter-spacing:.04em; color:#8b93a7; }
.atk-fac.t-good{ background:rgba(52,211,153,.13); border-color:rgba(52,211,153,.34); color:#8ff0c4; }
.atk-fac.t-good u{ color:#5fcf9e; }
.atk-fac.t-ok{ background:rgba(99,179,255,.11); border-color:rgba(99,179,255,.28); color:#bfe0ff; }
.atk-fac.t-warn{ background:rgba(255,196,84,.12); border-color:rgba(255,196,84,.3); color:#ffdca0; }
.atk-fac.t-bad{ background:rgba(255,107,129,.13); border-color:rgba(255,107,129,.32); color:#ffb3bd; }
.atk-sig-verdict{ font-size:11.5px; line-height:1.45; color:#c3cbdd; padding:7px 10px; border-radius:9px;
  background:rgba(63,176,255,.06); border:1px dashed rgba(120,150,220,.22); }

/* ── futuristic live market digit panel ─────────────────────────────────────── */
#at-live{ display:flex; flex-direction:column; gap:11px; }
.atl-head{ display:flex; align-items:stretch; gap:10px; flex-wrap:wrap; }
.atl-px{ flex:1 1 120px; display:flex; flex-direction:column; gap:2px; padding:8px 12px; border-radius:12px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); }
.atl-px u{ font-style:normal; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#8b93a7; }
.atl-px b{ font-size:18px; font-weight:800; color:#eaf0ff; font-variant-numeric:tabular-nums; }
.atl-lastbig{ display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:64px; padding:6px 14px; border-radius:12px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); }
.atl-lastbig u{ font-style:normal; font-size:9px; text-transform:uppercase; letter-spacing:.04em; color:#8b93a7; }
.atl-lastbig b{ font-size:28px; font-weight:900; line-height:1; }
.atl-lastbig.hi b{ color:#57e6a1; } .atl-lastbig.lo b{ color:#ff9d6a; }
.atl-pick{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:6px 14px; border-radius:12px;
  background:linear-gradient(150deg,rgba(63,176,255,.15),rgba(87,230,161,.1)); border:1px solid rgba(63,176,255,.3); }
.atl-pick u{ font-style:normal; font-size:9px; text-transform:uppercase; letter-spacing:.04em; color:#89b7e6; }
.atl-pick b{ font-size:15px; font-weight:800; color:#e6f2ff; }
.atl-pick em{ font-style:normal; font-size:11px; font-weight:700; color:#7fd6a8; }
.atl-heat{ display:grid; grid-template-columns:repeat(10,1fr); gap:5px; align-items:end; height:96px; padding:8px 6px 4px; border-radius:12px;
  background:rgba(8,11,18,.5); border:1px solid rgba(255,255,255,.06); }
.atl-col{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:3px; }
.atl-col-bar{ width:68%; min-height:6px; border-radius:5px 5px 2px 2px; background:linear-gradient(180deg,#4a5570,#2b3346); transition:height .5s cubic-bezier(.2,.8,.2,1); }
.atl-col.hot .atl-col-bar{ background:linear-gradient(180deg,#ff9d3d,#ff5f6d); box-shadow:0 0 12px -2px rgba(255,110,90,.6); }
.atl-col.cold .atl-col-bar{ background:linear-gradient(180deg,#4aa8ff,#2b6ad6); }
.atl-col-d{ font-size:12px; font-weight:800; color:#cfd7e8; }
.atl-col-p{ font-style:normal; font-size:8.5px; color:#7e879b; font-variant-numeric:tabular-nums; }
.atl-col.now .atl-col-d{ color:#fff; }
.atl-col.now::after{ content:""; position:absolute; top:-3px; width:6px; height:6px; border-radius:50%; background:#fff; box-shadow:0 0 8px #8fdcff; animation:atlpulse 1.1s infinite; }
@keyframes atlpulse{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }
.atl-stats{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.atl-stat{ display:flex; flex-direction:column; gap:1px; padding:5px 6px; border-radius:9px; text-align:center;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.06); }
.atl-stat u{ font-style:normal; font-size:8px; text-transform:uppercase; letter-spacing:.02em; color:#7e879b; }
.atl-stat b{ font-size:12.5px; font-weight:800; color:#eaf0ff; font-variant-numeric:tabular-nums; }
.atl-stat b.pos{ color:#57e6a1; } .atl-stat b.neg{ color:#ff7a8a; }
.atl-river{ display:flex; flex-wrap:nowrap; gap:3px; overflow-x:auto; padding:4px 2px; scrollbar-width:none; }
.atl-river::-webkit-scrollbar{ display:none; }
.atl-river i{ flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:22px; height:24px; border-radius:6px;
  font-size:12px; font-weight:700; font-style:normal; font-variant-numeric:tabular-nums; }
.atl-river i.hi{ background:rgba(52,211,153,.14); color:#8ff0c4; }
.atl-river i.lo{ background:rgba(255,157,106,.13); color:#ffc39e; }
.atl-river i.now{ outline:2px solid rgba(255,255,255,.55); }
.atl-warm{ padding:16px; text-align:center; font-size:12.5px; color:#8b93a7; }
@media(max-width:560px){ .atl-heat{ height:78px; } .atl-stats{ grid-template-columns:repeat(3,1fr); } .atk-sig-metrics{ grid-template-columns:repeat(2,1fr); } }

/* ═══════ Cloud failover status strip in AT settings (at28) ═══════ */
.ats-cloud{ display:flex; align-items:center; gap:9px; margin-top:10px; padding:10px 12px; border-radius:11px; font-size:12px; line-height:1.4;
  background:rgba(63,176,255,.07); border:1px solid rgba(120,150,220,.22); color:#cbd6ea; }
.ats-cloud-dot{ width:9px; height:9px; border-radius:50%; background:#5a6376; flex:0 0 auto; }
.ats-cloud.armed{ background:rgba(63,176,255,.1); border-color:rgba(63,176,255,.32); }
.ats-cloud.armed .ats-cloud-dot{ background:#3fb0ff; box-shadow:0 0 8px #3fb0ff; }
.ats-cloud.cover{ background:rgba(255,180,84,.12); border-color:rgba(255,180,84,.34); color:#ffe0b0; }
.ats-cloud.cover .ats-cloud-dot{ background:#ffb454; box-shadow:0 0 10px #ffb454; animation:atlpulse 1s infinite; }
.ats-cloud.err{ background:rgba(255,107,129,.1); border-color:rgba(255,107,129,.3); color:#ffb3bd; }
.ats-cloud.err .ats-cloud-dot{ background:#ff6b81; }
.ats-cloud-t{ flex:1 1 auto; }
.ats-cloud-revoke{ flex:0 0 auto; background:rgba(255,68,79,.14); border:1px solid rgba(255,68,79,.4); color:#ff9aa4; border-radius:8px; font:inherit; font-size:11px; font-weight:700; padding:5px 9px; cursor:pointer; }
.ats-cloud-revoke:hover{ filter:brightness(1.1); }

/* ═══════════════════════════════════════════════════════════════════════════
   ANALYZER CARDS (at29) — remove the bright LEFT colour bar, both edges now read
   as a soft ambient glow, and the on/running/expanded glows are richer + layered.
   (No !important: these sit last so they win at equal specificity, while the
   html.is-scrolling.gm-shed perf override below still wins to keep mobile scrolling light.)
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-at-sec .atk::after{ display:none; }
.gm-at-sec .atk.on::after{ display:none; box-shadow:none; }
/* the top-right colour wash stays, softened + wider, so the accent is ambient not a bar */
.gm-at-sec .atk::before{ width:66%; height:150px;
  background:radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--c) 15%, transparent), transparent 64%); opacity:.5; }
.gm-at-sec .atk.on::before{ opacity:.85; }
/* upgraded glows — soft, layered, premium; colour breathes from the border + shadow */
.gm-at-sec .atk{ box-shadow:0 10px 30px -22px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.04); }
.gm-at-sec .atk.on{ border-color:color-mix(in srgb, var(--c) 40%, transparent);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 20%, transparent), 0 16px 42px -24px color-mix(in srgb, var(--c) 62%, #000), inset 0 1px 0 rgba(255,255,255,.06); }
.gm-at-sec .atk.running{ border-color:color-mix(in srgb, var(--c) 48%, transparent);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 30%, transparent), 0 0 50px -22px var(--c), 0 18px 46px -26px color-mix(in srgb, var(--c) 55%, #000), inset 0 1px 0 rgba(255,255,255,.06); }
.gm-at-sec .atk.expanded{ box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 24%, transparent), 0 20px 54px -28px color-mix(in srgb, var(--c) 52%, #000), inset 0 1px 0 rgba(255,255,255,.06); }
/* keep mobile scrolling light — re-assert the perf override with higher specificity */
html.is-scrolling.gm-shed .gm-at-sec .atk.on, html.is-scrolling.gm-shed .gm-at-sec .atk.running{ box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 26%, transparent); }

/* ═══════════════════════════════════════════════════════════════════════════
   at30 — Martingale recovery card GLOWING EDGES + upgraded analyzer glows
   ═══════════════════════════════════════════════════════════════════════════ */
/* the martingale recovery card: a warm amber edge-glow (box-shadow ring, no layout
   shift) + a gradient border via mask; brighter + gently breathing when ARMED */
.gm-at-sec .atk-mart{ position:relative; border-radius:13px;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--at-gold,#ffcf6a) 22%,transparent), 0 0 22px -15px color-mix(in srgb,var(--at-gold,#ffcf6a) 85%,#000), inset 0 1px 0 rgba(255,255,255,.05); }
.gm-at-sec .atk-mart::before{ content:""; position:absolute; inset:0; border-radius:13px; padding:1px; pointer-events:none; z-index:0;
  background:linear-gradient(135deg, color-mix(in srgb,var(--at-gold,#ffcf6a) 60%,transparent), transparent 42%, color-mix(in srgb,var(--at-gold,#ffcf6a) 45%,transparent));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude; opacity:.5; transition:opacity .3s; }
.gm-at-sec .atk-mart>*{ position:relative; z-index:1; }
.gm-at-sec .atk-mart:has(.atk-sw2.on){ box-shadow:0 0 0 1px color-mix(in srgb,var(--at-gold,#ffcf6a) 34%,transparent), 0 0 34px -12px color-mix(in srgb,var(--at-gold,#ffcf6a) 95%,#000), inset 0 1px 0 rgba(255,255,255,.06); }
.gm-at-sec .atk-mart:has(.atk-sw2.on)::before{ opacity:.9; animation:atMartEdge 3.6s ease-in-out infinite; }
@keyframes atMartEdge{ 0%,100%{ opacity:.6 } 50%{ opacity:1 } }
html.is-scrolling.gm-shed .gm-at-sec .atk-mart:has(.atk-sw2.on)::before{ animation:none }

/* upgraded analyzer glow — richer icon aura + a gentle breathing card glow while RUNNING */
.gm-at-sec .atk-ic{ box-shadow:0 4px 16px -6px var(--c), inset 0 1px 0 rgba(255,255,255,.28); }
.gm-at-sec .atk.on .atk-ic{ box-shadow:0 6px 22px -6px var(--c), 0 0 0 1px color-mix(in srgb,var(--c) 28%,transparent), inset 0 1px 0 rgba(255,255,255,.32); }
.gm-at-sec .atk.running{ animation:atCardBreath 3.8s ease-in-out infinite; }
@keyframes atCardBreath{
  0%,100%{ box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent), 0 0 38px -24px var(--c), 0 18px 46px -26px color-mix(in srgb,var(--c) 55%,#000), inset 0 1px 0 rgba(255,255,255,.06); }
  50%{ box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 42%,transparent), 0 0 58px -18px var(--c), 0 18px 46px -26px color-mix(in srgb,var(--c) 62%,#000), inset 0 1px 0 rgba(255,255,255,.07); }
}
html.is-scrolling.gm-shed .gm-at-sec .atk.running{ animation:none }

/* ═══════════════════════════════════════════════════════════════════════════
   at31 — AI-read stripe removed · preset BEST-FIT badge · PUZZLE-EDGE cards
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1 — AI read: drop the left colour stripe so the left reads clean like the right */
.gm-at-sec .atk-sig-x::before{ display:none !important; }
.gm-at-sec .atk-sig-x{ padding-left:13px; }

/* 2 — preset "best fit" badge for the current digit / side selection */
.gm-at-sec .atk-bestfit-note{ font-size:10.5px; line-height:1.4; color:#9fb0c8; margin:1px 0 9px; }
.gm-at-sec .atk-bestfit-note b{ color:#8ff0c4; }
.gm-at-sec .atk-pre{ position:relative; overflow:visible; }
.gm-at-sec .atk-pre.bestfit{ border-color:color-mix(in srgb,#57e6a1 55%,transparent) !important;
  box-shadow:0 0 0 1px color-mix(in srgb,#57e6a1 42%,transparent), 0 0 26px -10px #57e6a1 !important; }
.gm-at-sec .atk-pre-bf{ position:absolute; top:-9px; right:9px; z-index:3; font-size:9px; font-weight:800; letter-spacing:.03em;
  color:#06140d; background:linear-gradient(90deg,#57e6a1,#3fe0c0); padding:2px 8px; border-radius:999px;
  box-shadow:0 3px 10px -3px rgba(87,230,161,.7); white-space:nowrap; }

/* 3 — PUZZLE-EDGE analyzer cards: a futuristic interlocking silhouette (keystone
   notches top+bottom + chamfered corners). The glow now FOLLOWS the shape via a
   filter drop-shadow (a box-shadow would stay rectangular and get clipped). */
.gm-at-sec .atk{
  clip-path: polygon(
    0 12px, 12px 0,
    calc(50% - 30px) 0, calc(50% - 16px) 13px, calc(50% + 16px) 13px, calc(50% + 30px) 0,
    calc(100% - 12px) 0, 100% 12px,
    100% calc(100% - 12px), calc(100% - 12px) 100%,
    calc(50% + 30px) 100%, calc(50% + 16px) calc(100% - 13px), calc(50% - 16px) calc(100% - 13px), calc(50% - 30px) 100%,
    12px 100%, 0 calc(100% - 12px)
  );
  border-color:transparent !important;
  box-shadow:none !important;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.55));
}
.gm-at-sec .atk.on{ filter:drop-shadow(0 0 15px color-mix(in srgb,var(--c) 50%,transparent)) drop-shadow(0 12px 18px rgba(0,0,0,.5)); }
.gm-at-sec .atk.expanded{ filter:drop-shadow(0 0 18px color-mix(in srgb,var(--c) 55%,transparent)) drop-shadow(0 16px 26px rgba(0,0,0,.55)); }
.gm-at-sec .atk.running{ animation:none; filter:drop-shadow(0 0 22px color-mix(in srgb,var(--c) 78%,transparent)) drop-shadow(0 12px 20px rgba(0,0,0,.55)); }
/* crisp edge line tracing the same silhouette — re-purpose the (disabled) ::after */
.gm-at-sec .atk::after{ display:block !important; content:""; position:absolute; inset:0; left:0; top:0; width:auto; height:auto;
  background:none !important; clip-path:inherit; pointer-events:none; z-index:2;
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 26%,transparent); opacity:.7; }
.gm-at-sec .atk.on::after{ display:block !important; box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 52%,transparent); opacity:1; }
.gm-at-sec .atk.running::after{ box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 66%,transparent); }
/* mobile scroll perf — drop the heavy glow filter while actively scrolling */
html.is-scrolling.gm-shed .gm-at-sec .atk{ filter:none; }
@media (max-width:560px){
  .gm-at-sec .atk{ clip-path:polygon(
    0 10px, 10px 0,
    calc(50% - 24px) 0, calc(50% - 13px) 11px, calc(50% + 13px) 11px, calc(50% + 24px) 0,
    calc(100% - 10px) 0, 100% 10px,
    100% calc(100% - 10px), calc(100% - 10px) 100%,
    calc(50% + 24px) 100%, calc(50% + 13px) calc(100% - 11px), calc(50% - 13px) calc(100% - 11px), calc(50% - 24px) 100%,
    10px 100%, 0 calc(100% - 10px)
  ); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at32 — puzzle edges on ALL main Auto-Trader cards · kill idle-dim · drop best-fit
   ═══════════════════════════════════════════════════════════════════════════ */

/* idle-dim removed everywhere (JS strips the classes too) */
.gm-idle, .gm-fade-panel{ opacity:1 !important; filter:none !important; transition:none !important; }

/* best-fit preset badge fully removed (no longer rendered; hide any remnant) */
.gm-at-sec .atk-pre-bf, .gm-at-sec .atk-bestfit-note{ display:none !important; }
.gm-at-sec .atk-pre.bestfit{ box-shadow:none !important; }

/* ── PUZZLE-EDGE the whole desk: every section panel, the command banner, the HUD
   and the live-session cards get the same interlocking keystone silhouette; the
   glow follows the shape via a drop-shadow (a box-shadow would stay rectangular). */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud,
.gm-at-sec .atv-ss{
  position:relative;
  clip-path: polygon(
    0 13px, 13px 0,
    calc(50% - 34px) 0, calc(50% - 18px) 14px, calc(50% + 18px) 14px, calc(50% + 34px) 0,
    calc(100% - 13px) 0, 100% 13px,
    100% calc(100% - 13px), calc(100% - 13px) 100%,
    calc(50% + 34px) 100%, calc(50% + 18px) calc(100% - 14px), calc(50% - 18px) calc(100% - 14px), calc(50% - 34px) 100%,
    13px 100%, 0 calc(100% - 13px)
  );
  border-color:transparent !important;
  box-shadow:none !important;
}
.gm-at-sec .atc, .gm-at-sec .atv-top, .gm-at-sec .atv-hud{ filter:drop-shadow(0 10px 20px rgba(0,0,0,.5)); }
.gm-at-sec .atv-ss{ filter:drop-shadow(0 0 16px color-mix(in srgb,var(--c,#4bb4b3) 45%,transparent)) drop-shadow(0 8px 16px rgba(0,0,0,.5)); }
/* keep mobile scrolling smooth — drop the heavy glow filters while actively scrolling */
html.is-scrolling.gm-shed .gm-at-sec .atc,
html.is-scrolling.gm-shed .gm-at-sec .atv-top,
html.is-scrolling.gm-shed .gm-at-sec .atv-hud,
html.is-scrolling.gm-shed .gm-at-sec .atv-ss{ filter:none; }

@media (max-width:560px){
  .gm-at-sec .atc, .gm-at-sec .atv-top, .gm-at-sec .atv-hud, .gm-at-sec .atv-ss{ clip-path:polygon(
    0 10px, 10px 0,
    calc(50% - 26px) 0, calc(50% - 14px) 11px, calc(50% + 14px) 11px, calc(50% + 26px) 0,
    calc(100% - 10px) 0, 100% 10px,
    100% calc(100% - 10px), calc(100% - 10px) 100%,
    calc(50% + 26px) 100%, calc(50% + 14px) calc(100% - 11px), calc(50% - 14px) calc(100% - 11px), calc(50% - 26px) 100%,
    10px 100%, 0 calc(100% - 10px)
  ); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at33 — HYPER-REAL rounded jigsaw edges · NO scroll brighten/dim · cleaner glows
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · kill the scroll brighten/dim everywhere ─────────────────────────────── */
/* the scroll-reveal ENTRANCE (cards fading up from 0 as they enter view) — gone */
.ae-reveal, .ae-reveal.is-revealed{ opacity:1 !important; transform:none !important; transition:none !important; }
html.is-scrolling.gm-shed .ae-spot{ opacity:1 !important; }
/* AT cards must NOT dim while scrolling — the glow filters are re-asserted below with
   the SAME value at rest and mid-scroll, so nothing brightens or dims on scroll. */

/* ── 2 · HYPER-REAL rounded jigsaw silhouette (socket top · real TAB bottom) ──── */
.gm-at-sec .atk,
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud,
.gm-at-sec .atv-ss{
  clip-path: polygon(
    0 7px, 7px 0,
    calc(50% - 12px) 0, calc(50% - 10.2px) 6.3px, calc(50% - 6.3px) 10.2px, 50% 12px, calc(50% + 6.3px) 10.2px, calc(50% + 10.2px) 6.3px, calc(50% + 12px) 0,
    calc(100% - 7px) 0, 100% 7px,
    100% calc(100% - 19px), calc(100% - 7px) calc(100% - 12px),
    calc(50% + 12px) calc(100% - 12px), calc(50% + 10.2px) calc(100% - 5.7px), calc(50% + 6.3px) calc(100% - 1.8px), 50% 100%, calc(50% - 6.3px) calc(100% - 1.8px), calc(50% - 10.2px) calc(100% - 5.7px), calc(50% - 12px) calc(100% - 12px),
    7px calc(100% - 12px), 0 calc(100% - 19px)
  ) !important;
}

/* ── 3 · cleaner glows — crisp, lighter, and CONSTANT through scroll (rest == scroll) */
.gm-at-sec .atk,               html.is-scrolling.gm-shed .gm-at-sec .atk{ filter:drop-shadow(0 6px 12px rgba(0,0,0,.5)); }
.gm-at-sec .atk.on,            html.is-scrolling.gm-shed .gm-at-sec .atk.on{ filter:drop-shadow(0 0 11px color-mix(in srgb,var(--c) 42%,transparent)) drop-shadow(0 7px 13px rgba(0,0,0,.45)); }
.gm-at-sec .atk.expanded,      html.is-scrolling.gm-shed .gm-at-sec .atk.expanded{ filter:drop-shadow(0 0 13px color-mix(in srgb,var(--c) 46%,transparent)) drop-shadow(0 10px 20px rgba(0,0,0,.5)); }
.gm-at-sec .atk.running,       html.is-scrolling.gm-shed .gm-at-sec .atk.running{ filter:drop-shadow(0 0 17px color-mix(in srgb,var(--c) 62%,transparent)) drop-shadow(0 7px 14px rgba(0,0,0,.5)); }
.gm-at-sec .atc,               html.is-scrolling.gm-shed .gm-at-sec .atc,
.gm-at-sec .atv-top,           html.is-scrolling.gm-shed .gm-at-sec .atv-top,
.gm-at-sec .atv-hud,           html.is-scrolling.gm-shed .gm-at-sec .atv-hud{ filter:drop-shadow(0 8px 16px rgba(0,0,0,.45)); }
.gm-at-sec .atv-ss,            html.is-scrolling.gm-shed .gm-at-sec .atv-ss{ filter:drop-shadow(0 0 13px color-mix(in srgb,var(--c,#4bb4b3) 40%,transparent)) drop-shadow(0 6px 12px rgba(0,0,0,.45)); }

/* the crisp edge line + running glow ring, unchanged during scroll */
.gm-at-sec .atk::after, html.is-scrolling.gm-shed .gm-at-sec .atk::after{ opacity:.7; }
.gm-at-sec .atk.on::after, html.is-scrolling.gm-shed .gm-at-sec .atk.on::after{ opacity:1; }

@media (max-width:560px){
  .gm-at-sec .atk, .gm-at-sec .atc, .gm-at-sec .atv-top, .gm-at-sec .atv-hud, .gm-at-sec .atv-ss{
    clip-path: polygon(
      0 6px, 6px 0,
      calc(50% - 10px) 0, calc(50% - 8.5px) 5.3px, calc(50% - 5.3px) 8.5px, 50% 10px, calc(50% + 5.3px) 8.5px, calc(50% + 8.5px) 5.3px, calc(50% + 10px) 0,
      calc(100% - 6px) 0, 100% 6px,
      100% calc(100% - 16px), calc(100% - 6px) calc(100% - 10px),
      calc(50% + 10px) calc(100% - 10px), calc(50% + 8.5px) calc(100% - 4.7px), calc(50% + 5.3px) calc(100% - 1.5px), 50% 100%, calc(50% - 5.3px) calc(100% - 1.5px), calc(50% - 8.5px) calc(100% - 4.7px), calc(50% - 10px) calc(100% - 10px),
      6px calc(100% - 10px), 0 calc(100% - 16px)
    ) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at34 — fix card glitches: breathing room so glows/shadows don't collide in the
   seam, lighter notch depth, stronger live-session glow
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · give stacked cards room so adjacent drop-shadows/tabs never collide ──── */
.gm-at-sec #at-analyzers{ gap:18px !important; }
.gm-at-sec .atv-2{ gap:18px !important; }
.gm-at-sec #at-sessions{ display:flex; flex-direction:column; gap:16px; }

/* ── 2 · lighter, cleaner rounded-jigsaw notch (depth 10) — same on every card ── */
.gm-at-sec .atk,
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud,
.gm-at-sec .atv-ss{
  clip-path: polygon(
    0 6px, 6px 0,
    calc(50% - 10px) 0, calc(50% - 8.5px) 5.3px, calc(50% - 5.3px) 8.5px, 50% 10px, calc(50% + 5.3px) 8.5px, calc(50% + 8.5px) 5.3px, calc(50% + 10px) 0,
    calc(100% - 6px) 0, 100% 6px,
    100% calc(100% - 16px), calc(100% - 6px) calc(100% - 10px),
    calc(50% + 10px) calc(100% - 10px), calc(50% + 8.5px) calc(100% - 4.7px), calc(50% + 5.3px) calc(100% - 1.5px), 50% 100%, calc(50% - 5.3px) calc(100% - 1.5px), calc(50% - 8.5px) calc(100% - 4.7px), calc(50% - 10px) calc(100% - 10px),
    6px calc(100% - 10px), 0 calc(100% - 16px)
  ) !important;
}

/* ── 3 · soften the edge-ring so it never shows a seam at the rounded notch ────── */
.gm-at-sec .atk::after, html.is-scrolling.gm-shed .gm-at-sec .atk::after{ box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent) !important; opacity:.6 !important; }
.gm-at-sec .atk.on::after, html.is-scrolling.gm-shed .gm-at-sec .atk.on::after{ box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 44%,transparent) !important; opacity:.9 !important; }

/* ── 4 · stronger, unmistakable glow on the LIVE-SESSION cards ─────────────────── */
.gm-at-sec .atv-ss,
html.is-scrolling.gm-shed .gm-at-sec .atv-ss{
  filter:drop-shadow(0 0 20px color-mix(in srgb,var(--c,#4bd6c0) 62%,transparent)) drop-shadow(0 8px 16px rgba(0,0,0,.5)) !important;
}
.gm-at-sec .atv-ss{ border-color:color-mix(in srgb,var(--c,#4bd6c0) 40%,transparent) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at36 — scroll smoothness (idle cards drop their filter) + LIVE-SESSION glow on
   the EDGES (outer ring + halo), no inside tint
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── scroll perf: the BULK of on-screen cards (idle analyzers) carry NO filter, so
   scrolling is composite-only. Only summoned / running / expanded cards (few at a
   time) keep the glow filter. Puzzle shape + edge ring still define idle cards. ── */
.gm-at-sec .atk:not(.on):not(.running):not(.expanded),
html.is-scrolling.gm-shed .gm-at-sec .atk:not(.on):not(.running):not(.expanded){ filter:none !important; }
.gm-at-sec .atk:not(.on):not(.running):not(.expanded)::after{ box-shadow:inset 0 0 0 1px rgba(255,255,255,.08) !important; opacity:1 !important; }

/* ── LIVE-SESSION cards: glow strictly on the EDGES ──────────────────────────────
   neutral dark fill (kills the inner colour tint) + a crisp bright edge RING + an
   outer coloured halo. Nothing glows "inside" the card anymore. */
.gm-at-sec .atv-ss{ background:linear-gradient(150deg, rgba(20,26,34,.74), rgba(10,14,20,.82)) !important; box-shadow:none !important; }
.gm-at-sec .atv-ss, html.is-scrolling.gm-shed .gm-at-sec .atv-ss{
  filter:drop-shadow(0 0 16px color-mix(in srgb,var(--c,#4bd6c0) 72%,transparent)) drop-shadow(0 5px 12px rgba(0,0,0,.5)) !important; }
.gm-at-sec .atv-ss::after{ content:""; position:absolute; inset:0; clip-path:inherit; pointer-events:none; z-index:4;
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c,#4bd6c0) 62%,transparent); }

/* ═══════════════════════════════════════════════════════════════════════════
   at37 — Matches verdict · Accumulator knockout tracker + toggle · Market
   intelligence strip · scroll-perf pass
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Matches intelligence verdict banner ─────────────────────────────────────── */
.gm-at-sec .atk-mi-verdict{ font-size:11px; font-weight:800; padding:6px 10px; border-radius:9px; margin:8px 0; text-align:center; letter-spacing:.01em; }
.gm-at-sec .atk-mi-verdict.fire{ color:#8ff0c4; background:rgba(52,211,153,.14); border:1px solid rgba(52,211,153,.4); box-shadow:0 0 18px -8px #34d399; }
.gm-at-sec .atk-mi-verdict.hold{ color:#ffdca0; background:rgba(255,196,84,.1); border:1px solid rgba(255,196,84,.3); }
.gm-at-sec .atk-mi-verdict.noise{ color:#9aa4b8; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); }
.gm-at-sec .atk-tp-t3.top{ box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 45%,transparent); color:#eaf6ff; }

/* ── Accumulator KNOCKOUT TRACKER ────────────────────────────────────────────── */
.gm-at-sec .atk-ko{ margin:9px 0; padding:9px 10px; border-radius:11px; background:rgba(255,87,99,.05); border:1px solid rgba(255,87,99,.2); }
.gm-at-sec .atk-ko.ok{ background:rgba(52,211,153,.06); border-color:rgba(52,211,153,.26); }
.gm-at-sec .atk-ko.mid{ background:rgba(255,196,84,.06); border-color:rgba(255,196,84,.26); }
.gm-at-sec .atk-ko-h{ display:flex; align-items:center; justify-content:space-between; font-size:10.5px; }
.gm-at-sec .atk-ko-h span{ font-weight:800; color:#ffb3bd; letter-spacing:.02em; }
.gm-at-sec .atk-ko.ok .atk-ko-h span{ color:#8ff0c4; } .gm-at-sec .atk-ko.mid .atk-ko-h span{ color:#ffdca0; }
.gm-at-sec .atk-ko-h b{ font-size:10px; font-weight:800; color:#eaf1f6; }
.gm-at-sec .atk-ko-bar{ height:8px; border-radius:999px; background:rgba(0,0,0,.35); overflow:hidden; margin:7px 0; }
.gm-at-sec .atk-ko-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#ff6b76,#ffb454); }
.gm-at-sec .atk-ko-bar.ok i{ background:linear-gradient(90deg,#34d399,#6ff0c8); }
.gm-at-sec .atk-ko-bar.mid i{ background:linear-gradient(90deg,#ffb454,#ffd36a); }
.gm-at-sec .atk-ko-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.gm-at-sec .atk-ko-stats span{ display:flex; flex-direction:column; align-items:center; gap:1px; padding:5px 4px; border-radius:8px; background:rgba(255,255,255,.03); text-align:center; }
.gm-at-sec .atk-ko-stats u{ font-style:normal; font-size:8px; text-transform:uppercase; letter-spacing:.02em; color:#7e879b; }
.gm-at-sec .atk-ko-stats b{ font-size:13px; font-weight:800; color:#eaf1f6; font-variant-numeric:tabular-nums; }

/* ── knockout on/off toggle (accumulator card) ───────────────────────────────── */
.gm-at-sec .atk-kotog{ display:flex; align-items:center; gap:9px; width:100%; margin:10px 0 2px; padding:9px 11px; border-radius:11px; cursor:pointer; text-align:left;
  background:rgba(255,87,99,.05); border:1px solid rgba(255,87,99,.18); }
.gm-at-sec .atk-kotog.on{ background:rgba(255,87,99,.09); border-color:rgba(255,87,99,.34); }
.gm-at-sec .atk-kotog-t{ flex:1; min-width:0; } .gm-at-sec .atk-kotog-t b{ display:block; font-size:12px; font-weight:800; color:#ffb3bd; }
.gm-at-sec .atk-kotog-t i{ display:block; font-style:normal; font-size:9.5px; color:var(--at-mut); margin-top:1px; }

/* ── generational MARKET INTELLIGENCE strip ──────────────────────────────────── */
.gm-at-sec .atk-mscan{ margin-top:8px; }
.gm-at-sec .atk-mscan-h{ font-size:10px; font-weight:700; color:#9fb0c8; letter-spacing:.02em; margin-bottom:6px; }
.gm-at-sec .atk-mscan-h em{ font-style:normal; color:var(--at-mut); font-weight:400; }
.gm-at-sec .atk-mscan-row{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.gm-at-sec .atk-msc{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:8px 10px; border-radius:10px; cursor:pointer; text-align:left;
  background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); transition:border-color .15s, box-shadow .15s; }
.gm-at-sec .atk-msc:hover{ border-color:rgba(120,150,220,.3); }
.gm-at-sec .atk-msc.on{ border-color:color-mix(in srgb,var(--c,#4bd6c0) 50%,transparent); }
.gm-at-sec .atk-msc.best{ border-color:rgba(52,211,153,.45); box-shadow:0 0 20px -10px #34d399; }
.gm-at-sec .atk-msc b{ font-size:11.5px; font-weight:800; color:#eaf1f6; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.gm-at-sec .atk-msc-g{ font-size:15px; font-weight:900; color:#8892a6; font-variant-numeric:tabular-nums; }
.gm-at-sec .atk-msc.hi .atk-msc-g{ color:#57e6b0; } .gm-at-sec .atk-msc.mid .atk-msc-g{ color:#ffd36a; }
.gm-at-sec .atk-msc-g u{ font-style:normal; text-decoration:none; font-size:8px; color:#7e879b; margin-left:3px; text-transform:uppercase; }
.gm-at-sec .atk-msc-p{ font-size:9px; color:var(--at-mut); font-variant-numeric:tabular-nums; }
.gm-at-sec .atk-msc-bf{ position:absolute; top:-8px; right:8px; font-size:8px; font-weight:800; letter-spacing:.04em; color:#06140d; background:linear-gradient(90deg,#57e6a1,#3fe0c0); padding:2px 7px; border-radius:999px; }

/* ── scroll-perf: skip rendering off-screen COLLAPSED analyzer cards ──────────── */
.gm-at-sec .atk:not(.expanded){ content-visibility:auto; contain-intrinsic-size:auto 66px; }

/* ═══════════════════════════════════════════════════════════════════════════
   at38 — GENERATIONAL ULTRA puzzle cards: deep glass material, glowing interlock
   connectors, crisp gradient edge, premium icon, alive running-glow
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── ULTRA glass fill: connector glows at the socket (top-center) + tab (bottom-
   center) so the interlocking points light up, a top sheen, a corner wash, and a
   deep layered glass base. Traces the puzzle shape for free (it's the fill). ── */
.gm-at-sec .atk{
  background-image:
    radial-gradient(72px 34px at 50% -3%,  color-mix(in srgb,var(--c) 30%,transparent), transparent 72%),
    radial-gradient(72px 34px at 50% 103%, color-mix(in srgb,var(--c) 30%,transparent), transparent 72%),
    linear-gradient(180deg, rgba(255,255,255,.07), transparent 11%),
    radial-gradient(130% 82% at 100% 0%, color-mix(in srgb,var(--c) 13%,transparent), transparent 56%),
    linear-gradient(165deg, rgba(37,45,55,.76), rgba(12,16,22,.87)) !important;
}

/* ── ULTRA edge: a crisp bright ring + a top light-catch highlight; idle-safe (no
   filter). Brighter + a soft inner rim when summoned/running/expanded. ────────── */
.gm-at-sec .atk::after, html.is-scrolling.gm-shed .gm-at-sec .atk::after{
  background:none !important; opacity:1 !important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent), inset 0 1.5px 0 rgba(255,255,255,.10) !important; }
.gm-at-sec .atk.on::after, .gm-at-sec .atk.running::after, .gm-at-sec .atk.expanded::after,
html.is-scrolling.gm-shed .gm-at-sec .atk.on::after, html.is-scrolling.gm-shed .gm-at-sec .atk.running::after{
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 58%,transparent), inset 0 2px 0 rgba(255,255,255,.14) !important; }
/* idle ::after must out-specify the at36 triple-:not ring (spec 0,5,1) so idle cards
   carry a refined per-hue coloured edge + a top light-catch, not a flat white ring. */
.gm-at-sec .atk:not(.on):not(.running):not(.expanded)::after,
html.is-scrolling.gm-shed .gm-at-sec .atk:not(.on):not(.running):not(.expanded)::after{
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 26%,transparent), inset 0 1.5px 0 rgba(255,255,255,.09) !important; opacity:1 !important; }

/* ── richer layered OUTER glow (follows the jigsaw silhouette) on active cards ─── */
.gm-at-sec .atk.on,       html.is-scrolling.gm-shed .gm-at-sec .atk.on{ filter:drop-shadow(0 0 14px color-mix(in srgb,var(--c) 50%,transparent)) drop-shadow(0 8px 16px rgba(0,0,0,.5)); }
.gm-at-sec .atk.expanded, html.is-scrolling.gm-shed .gm-at-sec .atk.expanded{ filter:drop-shadow(0 0 17px color-mix(in srgb,var(--c) 54%,transparent)) drop-shadow(0 12px 24px rgba(0,0,0,.5)); }
.gm-at-sec .atk.running{ animation:pzAlive 3.6s ease-in-out infinite; }
@keyframes pzAlive{
  0%,100%{ filter:drop-shadow(0 0 16px color-mix(in srgb,var(--c) 60%,transparent)) drop-shadow(0 9px 18px rgba(0,0,0,.55)); }
  50%{     filter:drop-shadow(0 0 26px color-mix(in srgb,var(--c) 85%,transparent)) drop-shadow(0 9px 18px rgba(0,0,0,.55)); } }
html.is-scrolling.gm-shed .gm-at-sec .atk.running{ animation:none; filter:drop-shadow(0 0 18px color-mix(in srgb,var(--c) 66%,transparent)) drop-shadow(0 9px 18px rgba(0,0,0,.55)); }

/* ── premium icon badge — deeper glow + glass bevel ──────────────────────────── */
.gm-at-sec .atk-ic{ box-shadow:0 6px 20px -5px var(--c), inset 0 1.5px 0 rgba(255,255,255,.38), inset 0 -8px 14px -8px rgba(0,0,0,.45) !important; }
.gm-at-sec .atk.on .atk-ic, .gm-at-sec .atk.running .atk-ic{ box-shadow:0 8px 26px -5px var(--c), 0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent), inset 0 1.5px 0 rgba(255,255,255,.42), inset 0 -8px 14px -8px rgba(0,0,0,.45) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at39 — PREMIUM GLOW SYSTEM (kills the fat saturated halos) + puzzle-knob
   surface texture + live-session card upgrade
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · GLOW REDESIGN ────────────────────────────────────────────────────────
   The old look was a big, saturated colour cloud (0 0 22px @ 72%) smeared around
   an irregular jigsaw outline — reads as a smudge. Premium = a clean dark DEPTH
   shadow (the "lifted card" feel) + a TIGHT low-opacity colour rim-light. No throb. */
.gm-at-sec .atk.on,       html.is-scrolling.gm-shed .gm-at-sec .atk.on,
.gm-at-sec .atk.running,  html.is-scrolling.gm-shed .gm-at-sec .atk.running,
.gm-at-sec .atk.expanded, html.is-scrolling.gm-shed .gm-at-sec .atk.expanded{ animation:none !important; }
.gm-at-sec .atk.on,       html.is-scrolling.gm-shed .gm-at-sec .atk.on{
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.5)) drop-shadow(0 0 6px color-mix(in srgb,var(--c) 30%,transparent)) !important; }
.gm-at-sec .atk.running,  html.is-scrolling.gm-shed .gm-at-sec .atk.running{
  filter:drop-shadow(0 5px 14px rgba(0,0,0,.55)) drop-shadow(0 0 8px color-mix(in srgb,var(--c) 40%,transparent)) !important; }
.gm-at-sec .atk.expanded, html.is-scrolling.gm-shed .gm-at-sec .atk.expanded{
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.5)) drop-shadow(0 0 7px color-mix(in srgb,var(--c) 32%,transparent)) !important; }

/* ── 2 · MORE PUZZLE PATTERN — a faint tiled jigsaw-knob texture on the surface
   + emphasised interlock joints (socket top-center, tab bottom-center). Safe: no
   clip-geometry change, so nothing clips the compact collapsed header rows. ──── */
.gm-at-sec .atk{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Cg fill='none' stroke='%23aecbff' stroke-opacity='0.05' stroke-width='1'%3E%3Cpath d='M0 23 H15 a8 8 0 0 1 16 0 H46'/%3E%3Cpath d='M23 0 V15 a8 8 0 0 0 0 16 V46'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(78px 36px at 50% -3%,  color-mix(in srgb,var(--c) 34%,transparent), transparent 72%),
    radial-gradient(78px 36px at 50% 103%, color-mix(in srgb,var(--c) 34%,transparent), transparent 72%),
    linear-gradient(180deg, rgba(255,255,255,.07), transparent 11%),
    radial-gradient(130% 82% at 100% 0%, color-mix(in srgb,var(--c) 13%,transparent), transparent 56%),
    linear-gradient(165deg, rgba(37,45,55,.78), rgba(12,16,22,.88)) !important;
  background-size:46px 46px, auto,auto,auto,auto,auto !important;
  background-repeat:repeat, no-repeat,no-repeat,no-repeat,no-repeat,no-repeat !important;
  background-position:0 0, center,center,center,center,center !important;
}

/* ── 3 · LIVE-SESSION cards — premium neutral glass, clean edge ring, tight glow
   (was the ugliest: a 72% 16px colour halo). Nicer bar + live dot. ───────────── */
.gm-at-sec .atv-ss{ background:linear-gradient(158deg, rgba(22,28,37,.84), rgba(11,15,21,.9)) !important; box-shadow:none !important; }
.gm-at-sec .atv-ss, html.is-scrolling.gm-shed .gm-at-sec .atv-ss{
  filter:drop-shadow(0 5px 14px rgba(0,0,0,.5)) drop-shadow(0 0 7px color-mix(in srgb,var(--c,#4bd6c0) 34%,transparent)) !important; }
.gm-at-sec .atv-ss::after{ content:""; position:absolute; inset:0; clip-path:inherit; pointer-events:none; z-index:4;
  box-shadow:inset 0 0 0 1.3px color-mix(in srgb,var(--c,#4bd6c0) 52%,transparent), inset 0 1.5px 0 rgba(255,255,255,.1) !important; }
/* live dot pulse */
.gm-at-sec .atv-ss-dot{ box-shadow:0 0 0 0 color-mix(in srgb,var(--c,#4bd6c0) 60%,transparent); animation:atSsDot 1.8s ease-out infinite; }
@keyframes atSsDot{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--c,#4bd6c0) 55%,transparent); } 70%,100%{ box-shadow:0 0 0 7px transparent; } }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss-dot{ animation:none; }
/* progress bar: gradient fill + soft shine */
.gm-at-sec .atv-ss-bar{ background:rgba(0,0,0,.36) !important; box-shadow:inset 0 1px 2px rgba(0,0,0,.4) !important; }
.gm-at-sec .atv-ss-bar i{ background:linear-gradient(90deg, color-mix(in srgb,var(--c,#4bd6c0) 70%,#0b0f15), var(--c,#4bd6c0)) !important; box-shadow:0 0 10px -3px var(--c,#4bd6c0) !important; }
.gm-at-sec .atv-ss-bar i.pos{ background:linear-gradient(90deg,#1c8f63,#57e6b0) !important; }
.gm-at-sec .atv-ss-pnl{ font-variant-numeric:tabular-nums; font-weight:800; }

/* ═══════════════════════════════════════════════════════════════════════════
   at40 — MAGNIFICENT live-session cards (ultra-sophisticated, layered outer glow)
   + richer puzzle pattern & interlock-knob glow on the outer analyzer cards
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── LIVE-SESSION CARDS · irreplaceable showpiece ───────────────────────────── */
/* deep glass + colour-tinted header halo + puzzle-knob texture */
.gm-at-sec .atv-ss{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Cg fill='none' stroke='%23bfe0ff' stroke-opacity='0.05' stroke-width='1'%3E%3Cpath d='M0 23 H15 a8 8 0 0 1 16 0 H46'/%3E%3Cpath d='M23 0 V15 a8 8 0 0 0 0 16 V46'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(140px 66px at 16% -6%, color-mix(in srgb,var(--c,#4bd6c0) 20%,transparent), transparent 68%),
    radial-gradient(120% 90% at 100% 100%, color-mix(in srgb,var(--c,#4bd6c0) 8%,transparent), transparent 60%),
    linear-gradient(158deg, rgba(24,31,42,.9), rgba(9,13,19,.95)) !important;
  background-size:46px 46px, auto, auto, auto !important;
  background-repeat:repeat, no-repeat, no-repeat, no-repeat !important;
}
/* MAGNIFICENT layered outer glow — tight bright rim + soft aura + luxurious wide halo + depth */
.gm-at-sec .atv-ss, html.is-scrolling.gm-shed .gm-at-sec .atv-ss{
  filter:
    drop-shadow(0 0 5px  color-mix(in srgb,var(--c,#4bd6c0) 58%,transparent))
    drop-shadow(0 0 16px color-mix(in srgb,var(--c,#4bd6c0) 30%,transparent))
    drop-shadow(0 0 34px color-mix(in srgb,var(--c,#4bd6c0) 14%,transparent))
    drop-shadow(0 10px 26px rgba(0,0,0,.55)) !important; }
/* crisp bright edge ring + top light-catch */
.gm-at-sec .atv-ss::after{ content:""; position:absolute; inset:0; clip-path:inherit; pointer-events:none; z-index:4;
  box-shadow:inset 0 0 0 1.4px color-mix(in srgb,var(--c,#4bd6c0) 62%,transparent), inset 0 1.5px 0 rgba(255,255,255,.13) !important; }

/* header — glowing analyzer name + live dot + PnL pill */
.gm-at-sec .atv-ss-top b{ color:#eef8ff !important; letter-spacing:.01em; font-weight:800; text-shadow:0 0 14px color-mix(in srgb,var(--c,#4bd6c0) 40%,transparent); }
.gm-at-sec .atv-ss-dot{ width:9px; height:9px; border-radius:50%; background:var(--c,#4bd6c0) !important; box-shadow:0 0 10px 0 var(--c,#4bd6c0); animation:atSsDot 1.8s ease-out infinite; }
@keyframes atSsDot{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--c,#4bd6c0) 60%,transparent), 0 0 10px 0 var(--c,#4bd6c0); } 70%,100%{ box-shadow:0 0 0 8px transparent, 0 0 10px 0 var(--c,#4bd6c0); } }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss-dot{ animation:none; }
.gm-at-sec .atv-ss-pnl{ padding:2px 10px; border-radius:999px; font-weight:800; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-pnl.pos{ color:#8ff0c4 !important; background:rgba(52,211,153,.12); box-shadow:0 0 16px -6px #34d399, inset 0 0 0 1px rgba(52,211,153,.32); }
.gm-at-sec .atv-ss-pnl.neg{ color:#ff9ba3 !important; background:rgba(255,87,99,.12); box-shadow:0 0 16px -6px #ff5763, inset 0 0 0 1px rgba(255,87,99,.32); }
.gm-at-sec .atv-ss-sub{ font-size:10.5px; color:#a3b4cc; letter-spacing:.02em; }

/* progress bar — taller, gradient fill, glow + travelling shine */
.gm-at-sec .atv-ss-bar{ height:9px !important; border-radius:999px !important; background:rgba(0,0,0,.42) !important; box-shadow:inset 0 1px 3px rgba(0,0,0,.5) !important; overflow:hidden; position:relative; }
.gm-at-sec .atv-ss-bar i{ position:relative; overflow:hidden; border-radius:999px !important; box-shadow:0 0 12px -2px var(--c,#4bd6c0) !important; }
.gm-at-sec .atv-ss-bar i.pos{ background:linear-gradient(90deg,#1c8f63,#57e6b0) !important; }
.gm-at-sec .atv-ss-bar i::after{ content:""; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%); animation:atSsShine 2.6s ease-in-out infinite; }
@keyframes atSsShine{ 0%{ transform:translateX(-100%); } 60%,100%{ transform:translateX(240%); } }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss-bar i::after{ animation:none; }

/* control buttons — premium glass with hover glow */
.gm-at-sec .atv-ss-b{ border-radius:10px !important; background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)) !important; border:1px solid rgba(255,255,255,.1) !important; transition:box-shadow .15s, border-color .15s, transform .08s; }
.gm-at-sec .atv-ss-b:hover{ border-color:color-mix(in srgb,var(--c,#4bd6c0) 48%,transparent) !important; box-shadow:0 0 18px -6px var(--c,#4bd6c0) !important; }
.gm-at-sec .atv-ss-b:active{ transform:translateY(1px); }
.gm-at-sec .atv-ss-b.stop:hover{ border-color:rgba(255,87,99,.55) !important; box-shadow:0 0 18px -6px #ff5763 !important; }

/* ── OUTER ANALYZER CARDS · richer puzzle pattern + glowing interlock knobs ──── */
.gm-at-sec .atk{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23aecbff' stroke-opacity='0.06' stroke-width='1'%3E%3Cpath d='M0 22 H14 a8 8 0 0 1 16 0 H44'/%3E%3Cpath d='M22 0 V14 a8 8 0 0 0 0 16 V44'/%3E%3Ccircle cx='22' cy='22' r='1.4' fill='%23aecbff' fill-opacity='0.10' stroke='none'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(4px 4px at 8px 8px,             color-mix(in srgb,var(--c) 55%,transparent), transparent 72%),
    radial-gradient(4px 4px at calc(100% - 8px) 8px, color-mix(in srgb,var(--c) 55%,transparent), transparent 72%),
    radial-gradient(52px 22px at 50% 1px,           color-mix(in srgb,var(--c) 42%,transparent), transparent 70%),
    radial-gradient(52px 22px at 50% calc(100% - 1px), color-mix(in srgb,var(--c) 42%,transparent), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.07), transparent 11%),
    radial-gradient(130% 82% at 100% 0%, color-mix(in srgb,var(--c) 13%,transparent), transparent 56%),
    linear-gradient(165deg, rgba(37,45,55,.78), rgba(12,16,22,.88)) !important;
  background-size:44px 44px, auto,auto,auto,auto,auto,auto,auto !important;
  background-repeat:repeat, no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   at41 — fix ALL the other puzzle cards (.atc / .atv-top / .atv-hud): the same
   premium puzzle texture + interlock-knob glow + corner nodes + edge ring as the
   analyzer & live-session cards, so the whole desk reads as one cohesive puzzle.
   ═══════════════════════════════════════════════════════════════════════════ */

.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{
  position:relative;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23aecbff' stroke-opacity='0.055' stroke-width='1'%3E%3Cpath d='M0 22 H14 a8 8 0 0 1 16 0 H44'/%3E%3Cpath d='M22 0 V14 a8 8 0 0 0 0 16 V44'/%3E%3Ccircle cx='22' cy='22' r='1.4' fill='%23aecbff' fill-opacity='0.09' stroke='none'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(4px 4px at 9px 9px,             rgba(150,195,225,.30), transparent 72%),
    radial-gradient(4px 4px at calc(100% - 9px) 9px, rgba(150,195,225,.30), transparent 72%),
    radial-gradient(64px 26px at 50% 1px,           rgba(130,190,220,.13), transparent 70%),
    radial-gradient(64px 26px at 50% calc(100% - 1px), rgba(130,190,220,.13), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 12%),
    linear-gradient(163deg, rgba(27,34,45,.82), rgba(11,15,21,.9)) !important;
  background-size:44px 44px, auto,auto,auto,auto,auto,auto !important;
  background-repeat:repeat, no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat !important;
  box-shadow:inset 0 0 0 1px rgba(140,180,215,.15), inset 0 1.5px 0 rgba(255,255,255,.05) !important;
}

/* keep the left accent bar (section headers) reading crisp over the new texture */
.gm-at-sec .atc > *,
.gm-at-sec .atv-top > *,
.gm-at-sec .atv-hud > *{ position:relative; z-index:1; }

/* ═══════════════════════════════════════════════════════════════════════════
   at42 — SIMPLE PERFECTION: de-glitch the analyzer cards (drop the busy surface
   grid + corner nodes + halve the layer count), and make the SECTION puzzle cards
   physical + FLOATING. Puzzle character stays in the clip shape + edge, not noise.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── ANALYZER CARDS · clean & fast — no surface texture, no corner nodes, 4 layers
   (was 8). Subtle interlock-knob glow + sheen + glass; puzzle read via clip+ring. ─ */
.gm-at-sec .atk{
  background-image:
    radial-gradient(58px 24px at 50% 1px,             color-mix(in srgb,var(--c) 38%,transparent), transparent 70%),
    radial-gradient(58px 24px at 50% calc(100% - 1px), color-mix(in srgb,var(--c) 38%,transparent), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.06), transparent 12%),
    linear-gradient(165deg, rgba(37,45,55,.8), rgba(12,16,22,.9)) !important;
  background-size:auto,auto,auto,auto !important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat !important;
}

/* ── SECTION / HUD / HEADER PUZZLE CARDS · more physical jigsaw + FLOATING ────────
   whisper texture (not a grid), embossed bevel (light top edge + inner base shadow),
   crisp ring, and a soft OUTER drop-shadow so each section floats above the desk. */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{
  position:relative;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23aecbff' stroke-opacity='0.03' stroke-width='1'%3E%3Cpath d='M0 22 H14 a8 8 0 0 1 16 0 H44'/%3E%3Cpath d='M22 0 V14 a8 8 0 0 0 0 16 V44'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(70px 26px at 50% 1px,             rgba(130,190,220,.11), transparent 70%),
    radial-gradient(70px 26px at 50% calc(100% - 1px), rgba(130,190,220,.11), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 12%),
    linear-gradient(163deg, rgba(28,35,47,.85), rgba(11,15,21,.92)) !important;
  background-size:44px 44px, auto,auto,auto,auto !important;
  background-repeat:repeat, no-repeat,no-repeat,no-repeat,no-repeat !important;
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.09), inset 0 -16px 26px -16px rgba(0,0,0,.55), inset 0 0 0 1px rgba(140,180,215,.15) !important;
}
/* FLOATING — soft cast shadow that follows the jigsaw silhouette (few cards, keeps
   the sections lifted); dropped only while actively scrolling for buttery motion. */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{ filter:drop-shadow(0 12px 24px rgba(0,0,0,.5)) drop-shadow(0 3px 6px rgba(0,0,0,.4)); }
html.is-scrolling.gm-shed .gm-at-sec .atc,
html.is-scrolling.gm-shed .gm-at-sec .atv-top,
html.is-scrolling.gm-shed .gm-at-sec .atv-hud{ filter:none !important; }
.gm-at-sec .atc > *,
.gm-at-sec .atv-top > *,
.gm-at-sec .atv-hud > *{ position:relative; z-index:1; }

/* ── at42 · tone down the bright-orange scrollbars inside the Auto Trader ──────────
   The global *::-webkit-scrollbar-thumb + #view-auto thumb paint #fa9200 orange with
   OS arrow buttons — jarring against the dark glass. Make them a subtle grey-blue,
   thin, no arrows. (Platform-wide orange branding elsewhere is left untouched.) */
.gm-at-sec ::-webkit-scrollbar{ width:8px; height:8px; }
.gm-at-sec ::-webkit-scrollbar-track{ background:rgba(0,0,0,.25); border-radius:8px; }
.gm-at-sec ::-webkit-scrollbar-thumb{ background:rgba(140,162,196,.34) !important; border-radius:8px; border:2px solid transparent; background-clip:padding-box; }
.gm-at-sec ::-webkit-scrollbar-thumb:hover{ background:rgba(162,182,215,.5) !important; }
.gm-at-sec ::-webkit-scrollbar-button{ display:none !important; width:0 !important; height:0 !important; }
.gm-at-sec ::-webkit-scrollbar-corner{ background:transparent; }
.gm-at-sec .atv-txw, .gm-at-sec .atl-river{ scrollbar-width:thin; scrollbar-color:rgba(140,162,196,.42) rgba(0,0,0,.25); }
/* the Auto Trader's own page scrollbar (the body is the AT scroller) — subtle grey-blue,
   not the platform's orange #fa9200; scoped to body.gm-at-active so other views keep theirs */
body.gm-at-active::-webkit-scrollbar{ width:10px; height:10px; }
body.gm-at-active::-webkit-scrollbar-track{ background:rgba(0,0,0,.25); }
body.gm-at-active::-webkit-scrollbar-thumb{ background:rgba(140,162,196,.34) !important; border-radius:8px; border:2px solid transparent; background-clip:padding-box; }
body.gm-at-active::-webkit-scrollbar-thumb:hover{ background:rgba(162,182,215,.5) !important; }
body.gm-at-active::-webkit-scrollbar-button{ display:none !important; width:0 !important; height:0 !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at43 — the 7 SECTION puzzle cards: each a UNIQUE signature hue, deeper physical
   jigsaw bevel, tinted interlock connectors, and a coloured FLOATING underglow.
   (Analyzer cards untouched; analyzers container neutralised so it never boxes them.)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── per-section signature hue (default first, modifier classes override) ─────── */
.gm-at-sec .atc{ --sec:#7fb0e6; }                     /* default / misc */
.gm-at-sec .atc-sessions{ --sec:#38bdf8; }            /* Live sessions — sky */
.gm-at-sec .atc-live{ --sec:#a78bfa; }                /* Live market   — violet */
.gm-at-sec .atc-set{ --sec:#f6b73c; }                 /* Session & automation — amber */
.gm-at-sec .atc-sum{ --sec:#34e0a1; }                 /* Summary — emerald */
.gm-at-sec .atc:has(.atv-txw){ --sec:#fb8faa; }       /* Transactions — rose */
.gm-at-sec .atv-top{ --sec:#5eead4; }                 /* Auto Trader header — teal */
.gm-at-sec .atv-hud{ --sec:#3ee6a0; }                 /* Sessions HUD — green */

/* ── physical jigsaw fill: whisper texture + TINTED interlock-knob connectors +
   sheen + deep glass; embossed bevel + tinted edge ring (all edge-based, no inner
   glow per the live-session feedback). ───────────────────────────────────────── */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{
  position:relative;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23aecbff' stroke-opacity='0.03' stroke-width='1'%3E%3Cpath d='M0 22 H14 a8 8 0 0 1 16 0 H44'/%3E%3Cpath d='M22 0 V14 a8 8 0 0 0 0 16 V44'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(76px 27px at 50% 1px,             color-mix(in srgb,var(--sec,#7fb0e6) 44%,transparent), transparent 70%),
    radial-gradient(76px 27px at 50% calc(100% - 1px), color-mix(in srgb,var(--sec,#7fb0e6) 44%,transparent), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.055), transparent 12%),
    linear-gradient(163deg, rgba(28,35,47,.86), rgba(11,15,21,.93)) !important;
  background-size:44px 44px, auto,auto,auto,auto !important;
  background-repeat:repeat, no-repeat,no-repeat,no-repeat,no-repeat !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.12),
    inset 0 -20px 32px -18px rgba(0,0,0,.62),
    inset 0 0 0 1px color-mix(in srgb, var(--sec,#7fb0e6) 30%, rgba(140,180,215,.12)) !important;
}
/* ── FLOATING: soft dark cast + coloured underglow in the section's own hue; the
   sections lift right off the desk. Dropped only while actively scrolling. ────── */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{
  filter: drop-shadow(0 15px 28px rgba(0,0,0,.55)) drop-shadow(0 7px 20px color-mix(in srgb, var(--sec,#7fb0e6) 26%, transparent));
}
html.is-scrolling.gm-shed .gm-at-sec .atc,
html.is-scrolling.gm-shed .gm-at-sec .atv-top,
html.is-scrolling.gm-shed .gm-at-sec .atv-hud{ filter:none !important; }
.gm-at-sec .atc > *,
.gm-at-sec .atv-top > *,
.gm-at-sec .atv-hud > *{ position:relative; z-index:1; }

/* ── the analyzers container is a bare .atc too — strip the section skin so it never
   reads as a floating textured box behind the analyzer cards. ─────────────────── */
.gm-at-sec .atc:has(#at-analyzers){
  background-image:none !important;
  box-shadow:none !important;
  filter:none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   at45 — Precision Barrier Matrix next-gen: ⚡Turbo toggle + premium panel glows
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── ⚡ TURBO toggle — matches the Smart toggle layout, electric-amber on-state ─── */
.oup-turbo{ appearance:none; cursor:pointer; width:100%; text-align:left;
  display:flex; align-items:center; gap:11px; margin-top:10px; padding:11px 13px; border-radius:14px;
  border:1px solid rgba(255,180,70,.26); background:linear-gradient(120deg, rgba(255,175,60,.06), rgba(255,175,60,.015));
  transition:transform .2s cubic-bezier(.22,.61,.36,1), box-shadow .25s ease, background .25s ease, border-color .25s ease; }
@media (hover:hover) and (pointer:fine){ .oup-turbo:hover{ transform:translateY(-1px); filter:brightness(1.05); } }
.oup-turbo:active{ transform:translateY(0) scale(.98); }
.oup-turbo-ic{ font-size:18px; line-height:1; filter:grayscale(.35); opacity:.78; transition:filter .25s, opacity .25s, transform .25s; }
.oup-turbo-txt{ flex:1 1 auto; min-width:0; display:grid; gap:3px; }
.oup-turbo-txt b{ font:800 13px/1.1 var(--font-display,system-ui); color:#ffe6bf; }
.oup-turbo-txt small{ font-size:9.5px; line-height:1.42; letter-spacing:.01em; color:#b3a488; }
.oup-turbo-txt small b{ font-size:9.5px; color:#ffcf8a; }
.oup-turbo.is-on{ border-color:rgba(255,182,72,.75);
  background:linear-gradient(120deg, rgba(255,175,60,.2), rgba(255,138,38,.06));
  box-shadow:0 0 30px -8px rgba(255,170,55,.7), inset 0 1px 0 rgba(255,255,255,.1); }
.oup-turbo.is-on .oup-turbo-ic{ filter:none; opacity:1; transform:scale(1.08); animation:oupTurboFlash 1.4s ease-in-out infinite; }
.oup-turbo.is-on .oup-turbo-txt b{ color:#fff4e2; }
.oup-turbo.is-on .oup-sw-track{ background:linear-gradient(90deg, rgba(255,170,55,.55), rgba(255,140,35,.95)); }
@keyframes oupTurboFlash{ 0%,100%{ filter:drop-shadow(0 0 0 rgba(255,180,70,0)); } 50%{ filter:drop-shadow(0 0 8px rgba(255,190,90,.9)); } }
html.is-scrolling.gm-shed .oup-turbo.is-on .oup-turbo-ic{ animation:none; }

/* ── PREMIUM PANEL GLOWS — the auto panel lifts + edges glow when armed / turbo ── */
.oup-auto{ box-shadow:0 16px 40px -26px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.045); }
.oup-auto.is-armed{ box-shadow:0 22px 54px -24px rgba(90,150,255,.5), 0 0 0 1px rgba(120,170,255,.2) inset, inset 0 1px 0 rgba(255,255,255,.06) !important; }
.oup-auto.is-smart.is-armed{ box-shadow:0 22px 54px -24px rgba(140,120,255,.52), 0 0 0 1px rgba(150,130,255,.22) inset, inset 0 1px 0 rgba(255,255,255,.06) !important; }
.oup-auto.is-turbo{ border-color:rgba(255,180,70,.5) !important;
  box-shadow:0 22px 54px -24px rgba(255,150,40,.5), 0 0 0 1px rgba(255,180,70,.2) inset, inset 0 1px 0 rgba(255,255,255,.07) !important; }

/* ── the live "Engine says" verdict box glows by tier ─────────────────────────── */
.oup-call{ transition:box-shadow .3s ease, border-color .3s ease; }
.oup-call[data-state="prime"]{ box-shadow:0 0 26px -8px rgba(52,224,161,.6), inset 0 0 0 1px rgba(52,224,161,.3); }
.oup-call[data-state="good"]{ box-shadow:0 0 22px -10px rgba(90,150,255,.5), inset 0 0 0 1px rgba(90,150,255,.24); }

/* ── cross-market hunt rows — premium tier glows so a live find pops ──────────── */
.ouh-row{ transition:box-shadow .3s ease, transform .2s ease; }
.ouh-row.t-prime{ box-shadow:0 0 24px -10px rgba(52,224,161,.55), inset 0 0 0 1px rgba(52,224,161,.28); }
.ouh-row.t-good{ box-shadow:0 0 20px -12px rgba(90,150,255,.5), inset 0 0 0 1px rgba(90,150,255,.2); }
.ouh-row.is-live{ box-shadow:0 0 26px -8px rgba(255,180,70,.55), inset 0 0 0 1px rgba(255,180,70,.3); }
.ouh-count.is-hit{ text-shadow:0 0 12px rgba(52,224,161,.6); }

/* ═══════════════════════════════════════════════════════════════════════════
   at47 — SOLID card backgrounds (kill the puzzle-surface texture) + DIFFERENT
   puzzle-edge styles per card group + an UNBELIEVABLE live-session card.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── (1) SOLID backgrounds — remove the tiled jigsaw texture + connector-knob
   radials from every section card; clean dark glass + a whisper of top sheen.
   The section's signature hue now lives entirely on the EDGE (ring + float). ── */
.gm-at-sec .atc,
.gm-at-sec .atv-top,
.gm-at-sec .atv-hud{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 14%),
    linear-gradient(164deg, rgba(30,37,50,.95), rgba(10,14,20,.975)) !important;
  background-size:auto, auto !important;
  background-repeat:no-repeat, no-repeat !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.1),
    inset 0 -18px 30px -18px rgba(0,0,0,.6),
    inset 0 0 0 1px color-mix(in srgb, var(--sec,#7fb0e6) 30%, rgba(140,180,215,.12)) !important;
}

/* ── (2) DIFFERENT PUZZLE-EDGE STYLES ─────────────────────────────────────────
   Style A "keystone" (single centre notch, 12px corners) — analyzers + HUD.
   Style B "twin-tab"  (two notches at 30% & 70%)          — the .atc panels.
   Style C "octagon"   (deep 18px corner chamfers + notch) — the header.
   All notches stay on TOP/BOTTOM edges (never the sides) so nothing clips text. */

/* Style C · header */
.gm-at-sec .atv-top{
  clip-path: polygon(
    0 18px, 18px 0,
    calc(50% - 30px) 0, calc(50% - 16px) 13px, calc(50% + 16px) 13px, calc(50% + 30px) 0,
    calc(100% - 18px) 0, 100% 18px,
    100% calc(100% - 18px), calc(100% - 18px) 100%,
    calc(50% + 30px) 100%, calc(50% + 16px) calc(100% - 13px), calc(50% - 16px) calc(100% - 13px), calc(50% - 30px) 100%,
    18px 100%, 0 calc(100% - 18px)
  ) !important;
}
/* Style B · twin-tab section panels */
.gm-at-sec .atc{
  clip-path: polygon(
    0 12px, 12px 0,
    calc(30% - 15px) 0, calc(30% - 8px) 12px, calc(30% + 8px) 12px, calc(30% + 15px) 0,
    calc(70% - 15px) 0, calc(70% - 8px) 12px, calc(70% + 8px) 12px, calc(70% + 15px) 0,
    calc(100% - 12px) 0, 100% 12px,
    100% calc(100% - 12px), calc(100% - 12px) 100%,
    calc(70% + 15px) 100%, calc(70% + 8px) calc(100% - 12px), calc(70% - 8px) calc(100% - 12px), calc(70% - 15px) 100%,
    calc(30% + 15px) 100%, calc(30% + 8px) calc(100% - 12px), calc(30% - 8px) calc(100% - 12px), calc(30% - 15px) 100%,
    12px 100%, 0 calc(100% - 12px)
  ) !important;
}
/* Style A stays the default on .atk and .atv-hud (defined earlier) */

/* ── (3) UNBELIEVABLE live-session cards (.atv-ss) ────────────────────────────
   Hue-lit glass, a slow signature light-sweep while live (scroll-paused), a
   brighter interlock edge, a pulsing live orb, and glowing progress rails. ── */
.gm-at-sec .atv-ss{
  background:
    radial-gradient(130% 90% at 50% 0%, color-mix(in srgb,var(--c) 16%,transparent), transparent 62%),
    linear-gradient(164deg, rgba(19,27,35,.93), rgba(8,12,18,.975)) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.09),
    inset 0 0 0 1px color-mix(in srgb,var(--c) 34%,transparent),
    inset 0 -22px 34px -20px rgba(0,0,0,.55) !important;
  filter:drop-shadow(0 0 22px color-mix(in srgb,var(--c) 55%,transparent)) drop-shadow(0 10px 20px rgba(0,0,0,.55));
}
/* the live light-sweep — a diagonal shimmer travelling across the card */
.gm-at-sec .atv-ss:not(.paused)::before{
  content:""; position:absolute; inset:0; clip-path:inherit; pointer-events:none; z-index:0;
  background:linear-gradient(115deg, transparent 38%, color-mix(in srgb,var(--c) 16%,transparent) 50%, transparent 62%);
  background-size:250% 100%; background-repeat:no-repeat; animation:atSsSweep 3.4s ease-in-out infinite;
}
@keyframes atSsSweep{ 0%{ background-position:185% 0; } 100%{ background-position:-85% 0; } }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss::before{ animation:none; }
.gm-at-sec .atv-ss > *{ position:relative; z-index:1; }
/* bigger, brighter pulsing orb */
.gm-at-sec .atv-ss-dot{ width:10px; height:10px; box-shadow:0 0 16px var(--c), inset 0 0 3px rgba(255,255,255,.8); }
/* glowing progress rails */
.gm-at-sec .atv-ss-bar, .gm-at-sec .atv-ss-live-bar{ box-shadow:inset 0 0 0 1px rgba(255,255,255,.07), inset 0 1px 2px rgba(0,0,0,.4); }
.gm-at-sec .atv-ss-bar i.pos{ background:linear-gradient(90deg,#57e6b0,#8ffde0) !important; box-shadow:0 0 12px -1px #57e6b0; }
.gm-at-sec .atv-ss-bar i.neg{ box-shadow:0 0 12px -1px #ff6b76; }
.gm-at-sec .atv-ss-live-bar i{ background:linear-gradient(90deg,var(--c),#eafff8) !important; box-shadow:0 0 12px -1px var(--c); }
.gm-at-sec .atv-ss-pnl{ text-shadow:0 0 14px color-mix(in srgb,var(--c) 45%,transparent); }
/* control buttons — hue-tinted, tactile */
.gm-at-sec .atv-ss-b{ background:color-mix(in srgb,var(--c) 11%, rgba(255,255,255,.05)) !important; transition:background .2s ease, transform .14s ease; }
.gm-at-sec .atv-ss-b:hover{ background:color-mix(in srgb,var(--c) 20%, rgba(255,255,255,.09)) !important; }
.gm-at-sec .atv-ss-b:active{ transform:scale(.96); }
.gm-at-sec .atv-ss-b.stop{ background:rgba(255,107,118,.12) !important; }
.gm-at-sec .atv-ss-b.stop:hover{ background:rgba(255,107,118,.2) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at48 — ULTRA-REALISTIC DEPTH atmosphere. Builds ON the dim colour-shift field
   (never replaces it): a cinematic overhead key light, an atmospheric recession
   core, a volumetric light shaft, distant depth-of-field bokeh, and a deeper focus
   vignette + cool/warm colour grade. PERF CONTRACT HONOURED: the only motion is
   transform/opacity (composited), scroll-paused, phone-trimmed. New gradient layers
   sit on the EXISTING pseudo-elements (painted once, no per-frame cost).
   ═══════════════════════════════════════════════════════════════════════════ */

/* deeper jewel ground — a touch more value range so there's somewhere to recede TO */
html{ background-color:#070c1c !important; }

/* body::before — the deep field, now layered for real depth:
   ① cinematic overhead KEY LIGHT (cool, from above)  ② volumetric light SHAFT
   ③ atmospheric RECESSION core (a soft glow that reads as distance)  ④ the existing
   deep-jewel colour wash + base. Same transform-drift as before (untouched). */
body::before{
  background:
    radial-gradient(120% 64% at 50% -16%, rgba(178,208,255,0.075), transparent 55%),
    linear-gradient(114deg, transparent 30%, rgba(150,190,255,0.038) 47%, transparent 60%),
    radial-gradient(66% 48% at 50% 45%, rgba(70,116,192,0.13), transparent 72%),
    radial-gradient(34% 40% at 30% 30%, rgba(63,224,255,0.20), transparent 68%),
    radial-gradient(36% 42% at 70% 29%, rgba(197,140,255,0.20), transparent 70%),
    radial-gradient(38% 44% at 68% 68%, rgba(92,140,255,0.18), transparent 68%),
    radial-gradient(34% 40% at 32% 70%, rgba(255,143,163,0.12), transparent 68%),
    linear-gradient(168deg, #0f1c37 0%, #0a1428 46%, #070e1c 100%) !important;
  opacity:1 !important;
}

/* DEPTH-OF-FIELD BOKEH — two large, ultra-soft, DIM distant lights on their own very
   slow loops. This is the "real" cue: far lights, out of focus, parallaxing against
   the nearer colour fields. Compositor-only; scroll-paused; hidden on phones. */
.gm-aurora i:nth-child(5), .gm-aurora i:nth-child(6){ display:block !important; position:absolute; border-radius:50%; will-change:transform; }
.gm-aurora i:nth-child(5){
  width:50vw; height:50vw; left:9vw; top:20vh;
  background:radial-gradient(circle, rgba(120,180,255,.10), transparent 60%) !important;
  mix-blend-mode:screen !important;
  animation:gmDepth5 92s ease-in-out infinite alternate, gmHueC 113s ease-in-out infinite !important;
}
.gm-aurora i:nth-child(6){
  width:58vw; height:58vw; right:5vw; bottom:6vh;
  background:radial-gradient(circle, rgba(150,142,238,.085), transparent 60%) !important;
  mix-blend-mode:screen !important;
  animation:gmDepth6 108s ease-in-out infinite alternate, gmHueD 131s ease-in-out infinite !important;
}
@keyframes gmDepth5{ 0%{ transform:translate3d(-4vw,-2vh,0) scale(1); } 100%{ transform:translate3d(6vw,4vh,0) scale(1.16); } }
@keyframes gmDepth6{ 0%{ transform:translate3d(3vw,2vh,0) scale(1.1); } 100%{ transform:translate3d(-5vw,-3vh,0) scale(.92); } }
html.is-scrolling.gm-shed .gm-aurora i:nth-child(5),
html.is-scrolling.gm-shed .gm-aurora i:nth-child(6){ animation-play-state:paused !important; }

/* body::after — deeper cinematic FOCUS vignette (pulls the eye into the depth) + a
   subtle warm-core / cool-surround colour grade + the existing fine grain. Static. */
body::after{
  background:
    radial-gradient(138% 100% at 50% 40%, transparent 54%, rgba(4,8,20,.30) 82%, rgba(2,4,12,.52) 100%),
    radial-gradient(82% 60% at 50% 46%, rgba(124,112,88,.055), transparent 66%),
    var(--gm-grain) !important;
  background-blend-mode:normal, soft-light, soft-light !important;
  opacity:.74 !important;
}

@media (max-width:640px){
  .gm-aurora i:nth-child(5), .gm-aurora i:nth-child(6){ display:none !important; }
}
@media (prefers-reduced-motion:reduce){
  .gm-aurora i:nth-child(5), .gm-aurora i:nth-child(6){ animation:none !important; opacity:.4 !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at49 — Precision Barrier Matrix "trade-window" cockpit (gmOUPrecision)
   ═══════════════════════════════════════════════════════════════════════════ */
.oupc{ display:flex; align-items:stretch; gap:12px; margin:10px 0 12px; padding:12px 13px; border-radius:15px;
  border:1px solid rgba(120,150,210,.22); background:linear-gradient(150deg, rgba(20,28,42,.92), rgba(10,15,24,.96));
  box-shadow:0 14px 34px -22px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.05); }
@media (max-width:440px){ .oupc{ flex-direction:column; } }

/* ── countdown ── */
.oupc-cd{ display:flex; align-items:center; gap:11px; flex:0 0 auto; }
.oupc-ring{ position:relative; width:56px; height:56px; flex:0 0 auto; }
.oupc-ring svg{ width:100%; height:100%; }
.oupc-ring-bg{ fill:none; stroke:rgba(255,255,255,.08); stroke-width:4; }
.oupc-ring-fg{ fill:none; stroke:#4be6a0; stroke-width:4; stroke-linecap:round;
  transform:rotate(-90deg); transform-origin:center; transition:stroke-dashoffset .12s linear, stroke .3s ease; }
.oupc-num{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font:800 15px/1 var(--font-display,system-ui); color:#eaf2ff; font-variant-numeric:tabular-nums; }
.oupc-cd-t{ display:grid; gap:3px; align-content:center; }
.oupc-cd-t b{ font:800 10px/1 var(--font-display,system-ui); letter-spacing:.1em; color:#9fb3d6; }
.oupc-cd-t i{ font-size:11px; font-style:normal; font-weight:700; color:#cfe0ff; }

/* colour + urgency by remaining window */
.oupc[data-win="ok"]   .oupc-ring-fg{ stroke:#4be6a0; }
.oupc[data-win="soon"] .oupc-ring-fg{ stroke:#ffcf5a; }
.oupc[data-win="now"]  .oupc-ring-fg{ stroke:#ff6b76; }
.oupc[data-win="soon"] .oupc-cd-t i{ color:#ffe6a6; }
.oupc[data-win="now"]{ border-color:rgba(255,107,118,.55); box-shadow:0 0 30px -8px rgba(255,90,100,.6), inset 0 1px 0 rgba(255,255,255,.06); }
.oupc[data-win="now"] .oupc-cd-t i{ color:#ffd0d4; }
.oupc[data-win="now"] .oupc-ring{ animation:oupcPulse 0.7s ease-in-out infinite; }
.oupc[data-win="now"] .oupc-num{ color:#ffd0d4; }
@keyframes oupcPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.07); } }
html.is-scrolling.gm-shed .oupc[data-win="now"] .oupc-ring{ animation:none; }

/* ── predicted barrier + signal meter ── */
.oupc-pick{ flex:1 1 auto; min-width:0; display:grid; gap:8px; align-content:center;
  padding-left:12px; border-left:1px solid rgba(255,255,255,.06); }
@media (max-width:440px){ .oupc-pick{ border-left:none; padding-left:0; padding-top:8px; border-top:1px solid rgba(255,255,255,.06); } }
.oupc-pick-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.oupc-pick-lbl{ font:800 9.5px/1 var(--font-display,system-ui); letter-spacing:.11em; color:#8b99b5; }
.oupc-pick-val{ font:900 15px/1 var(--font-display,system-ui); font-variant-numeric:tabular-nums; }
.oupc-pick-val[data-tier="prime"]{ color:#5cf2c0; text-shadow:0 0 14px rgba(52,224,161,.55); }
.oupc-pick-val[data-tier="good"]{ color:#8fd0ff; text-shadow:0 0 12px rgba(90,150,255,.45); }
.oupc-pick-val[data-tier="wait"]{ color:#8b99b5; text-shadow:none; }
.oupc-sig{ display:flex; align-items:center; gap:8px; }
.oupc-sig-l{ font:800 9px/1 var(--font-display,system-ui); letter-spacing:.08em; color:#8b99b5; flex:0 0 auto; }
.oupc-sigbar{ flex:1 1 auto; height:6px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; box-shadow:inset 0 1px 2px rgba(0,0,0,.4); }
.oupc-sigbar i{ display:block; height:100%; width:0; border-radius:99px; background:linear-gradient(90deg,#5a96ff,#5cf2c0); box-shadow:0 0 10px -1px #5cf2c0; transition:width .35s ease; }
.oupc-sig b{ font:800 11px/1 var(--font-display,system-ui); color:#cfe0ff; font-variant-numeric:tabular-nums; flex:0 0 auto; min-width:30px; text-align:right; }
.oupc[data-armed="0"] .oupc-sigbar i{ box-shadow:none; }

/* fresh-signal flash */
.oupc-flash{ animation:oupcFlash 1s ease-out; }
@keyframes oupcFlash{ 0%{ box-shadow:0 0 0 2px rgba(92,242,192,.9), 0 0 34px -4px rgba(92,242,192,.8); } 100%{ box-shadow:0 14px 34px -22px rgba(0,0,0,.7); } }

/* ═══════════════════════════════════════════════════════════════════════════
   at50 — ⚡ ×10 SALVO button + Sentinel/Genesis pop-up panel polish
   ═══════════════════════════════════════════════════════════════════════════ */

/* the salvo button — deliberately loud (it risks 10× stake) */
.gm-salvo-btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  width:100%; margin-top:10px; padding:11px 12px; cursor:pointer; text-align:center;
  border:1px solid rgba(255,150,60,.55); border-radius:12px;
  font:900 14.5px/1 var(--font-display,system-ui); letter-spacing:.04em; color:#fff4e6;
  background:linear-gradient(135deg, rgba(255,138,40,.92), rgba(255,84,58,.94));
  box-shadow:0 12px 28px -10px rgba(255,110,40,.8), inset 0 1px 0 rgba(255,255,255,.32);
  transition:transform .12s cubic-bezier(.22,.61,.36,1), box-shadow .2s ease, filter .2s ease; }
.gm-salvo-btn em{ font:800 8.5px/1.3 var(--font-display,system-ui); font-style:normal; letter-spacing:.07em;
  opacity:.92; text-transform:uppercase; }
@media (hover:hover){ .gm-salvo-btn:hover{ transform:translateY(-1.5px); filter:brightness(1.07);
  box-shadow:0 16px 34px -10px rgba(255,110,40,.92), inset 0 1px 0 rgba(255,255,255,.38); } }
.gm-salvo-btn:active{ transform:translateY(0) scale(.97); }

/* ── Sentinel pop-up + Genesis dock: premium glass + edge glow, more advanced feel ── */
#sentinel-pop, #genesis-dock{
  box-shadow:0 26px 60px -26px rgba(0,0,0,.85), 0 0 0 1px rgba(120,160,230,.14) inset, inset 0 1px 0 rgba(255,255,255,.06) !important;
}
#sentinel-pop{ border-color:rgba(120,190,255,.32) !important; }
#genesis-dock{ border-color:rgba(150,130,255,.32) !important; }
/* the prime/target readouts pop a little harder */
#sentinel-pop-digit, #gen-dock-target{ text-shadow:0 0 16px currentColor; }

/* ═══════════════════════════════════════════════════════════════════════════
   at51 — salvo size ↓ · Smart/Turbo switch knob-slide fix · AT expand de-glitch
   ═══════════════════════════════════════════════════════════════════════════ */

/* (1) ×10 SALVO button — was too big; make it compact */
.gm-salvo-btn{ margin-top:7px !important; padding:6px 10px !important; border-radius:9px !important;
  font-size:11px !important; gap:0 !important; }
.gm-salvo-btn em{ font-size:7px !important; letter-spacing:.05em !important; opacity:.88 !important; }

/* (2) Smart Auto + Turbo switches — the toggle KNOB never moved and the track never
   lit, because the slide rule is `.oup-sw.is-on .oup-sw-knob` and these buttons are
   `.oup-smart` / `.oup-turbo` (not `.oup-sw`). Slide the knob + light the track. */
.oup-smart.is-on .oup-sw-knob,
.oup-turbo.is-on .oup-sw-knob{ transform:translateX(18px) !important; }
.oup-smart.is-on .oup-sw-track{ background:linear-gradient(90deg, rgba(94,240,176,.55), rgba(94,240,176,.92)) !important; }
.oup-turbo.is-on .oup-sw-track{ background:linear-gradient(90deg, rgba(255,170,55,.55), rgba(255,140,35,.95)) !important; }
/* give the shared knob a clean spring so the slide reads as a real toggle */
.oup-smart .oup-sw-knob, .oup-turbo .oup-sw-knob{ transition:transform .22s cubic-bezier(.34,1.56,.64,1) !important; }

/* (3) Auto-Trader analyzer cards glitched on tap-to-expand: `content-visibility:auto`
   on a card that ALSO carries a drop-shadow filter + clip-path flickers/jumps when it
   toggles `.expanded` (and every card re-renders). Only 7 light cards, so drop
   content-visibility — the float + puzzle edge stay, the glitch goes. */
.gm-at-sec .atk,
.gm-at-sec .atk:not(.expanded){ content-visibility:visible !important; contain-intrinsic-size:auto !important; }
/* smooth the open so the height change isn't a hard jump */
.gm-at-sec .atk{ transition:transform .16s, border-color .18s, box-shadow .18s, filter .2s ease !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at52 — ADVANCED live-session cards: market+uptime, 4-stat grid, recent-form
   dots, recovery badge, loss-cap risk bar. Builds on the at47 hue-lit glass.
   ═══════════════════════════════════════════════════════════════════════════ */

/* market chip + uptime/status line (replaces the old plain sub) */
.gm-at-sec .atv-ss-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin:6px 0 9px; }
.gm-at-sec .atv-ss-mkt{ font:800 9px/1 var(--font-display,system-ui); letter-spacing:.02em;
  color:color-mix(in srgb,var(--c) 82%,#fff); background:color-mix(in srgb,var(--c) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--c) 28%,transparent); border-radius:6px; padding:3px 7px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:58%; }
.gm-at-sec .atv-ss-st{ font:700 9.5px/1 var(--font-display,system-ui); color:var(--at-mut,#8b93a8);
  white-space:nowrap; font-variant-numeric:tabular-nums; }

/* the 4-cell advanced stat grid */
.gm-at-sec .atv-ss-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin-bottom:8px; }
.gm-at-sec .atv-ss-stat{ display:grid; gap:2px; padding:6px 3px; border-radius:8px; text-align:center;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.05); box-shadow:inset 0 1px 0 rgba(255,255,255,.03); }
.gm-at-sec .atv-ss-stat span{ font:800 7px/1 var(--font-display,system-ui); letter-spacing:.09em; color:var(--at-mut,#8b93a8); }
.gm-at-sec .atv-ss-stat b{ font:900 13px/1 var(--font-display,system-ui); color:#eaf1f6; font-variant-numeric:tabular-nums; }
.gm-at-sec .atv-ss-stat b.pos{ color:#57e6b0; text-shadow:0 0 10px rgba(87,230,161,.4); }
.gm-at-sec .atv-ss-stat b.rec{ color:#ffb454; text-shadow:0 0 10px rgba(255,150,40,.45); }

/* recent-form dots (newest right) */
.gm-at-sec .atv-ss-dots{ display:flex; gap:3px; align-items:center; min-height:8px; margin-bottom:9px; flex-wrap:wrap; }
.gm-at-sec .atv-ss-dots i{ width:7px; height:7px; border-radius:50%; flex:0 0 auto; }
.gm-at-sec .atv-ss-dots i.w{ background:#57e6b0; box-shadow:0 0 6px -1px #57e6b0; }
.gm-at-sec .atv-ss-dots i.l{ background:#ff6b76; box-shadow:0 0 6px -1px #ff6b76; opacity:.9; }
.gm-at-sec .atv-ss-dots-e{ font:italic 9px/1 var(--font-display,system-ui); color:var(--at-mut,#8b93a8); }

/* recovery badge (blinks while chasing a loss) */
.gm-at-sec .atv-ss-rec{ margin-left:7px; font:900 8px/1 var(--font-display,system-ui); letter-spacing:.05em;
  color:#ffdca6; background:rgba(255,150,40,.16); border:1px solid rgba(255,160,60,.42); border-radius:6px; padding:3px 6px;
  animation:atSsRec 1.5s ease-in-out infinite; }
@keyframes atSsRec{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,150,40,0); } 50%{ box-shadow:0 0 11px -2px rgba(255,150,40,.75); } }
html.is-scrolling.gm-shed .gm-at-sec .atv-ss-rec{ animation:none; }

/* loss-cap risk bar (red, sits under the green target bar) */
.gm-at-sec .atv-ss-bar.loss{ margin-top:7px; }
.gm-at-sec .atv-ss-bar.loss i{ background:linear-gradient(90deg,#ff9a6b,#ff6b76) !important; box-shadow:0 0 8px -2px #ff6b76 !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at53 — STABILITY PASS: undo the render regressions that made it laggy/glitchy
   ═══════════════════════════════════════════════════════════════════════════ */

/* RESTORE content-visibility on collapsed AT cards. Removing it in at51 (to chase an
   expand glitch) RAISED render blocking — that was a big part of the new lag. Keep it
   for perf; instead drop the FILTER from truly-idle collapsed cards so the
   content-visibility + filter combo can't glitch on expand (best of both). */
.gm-at-sec .atk:not(.expanded){ content-visibility:auto !important; contain-intrinsic-size:auto 66px !important; }
.gm-at-sec .atk:not(.on):not(.running):not(.expanded){ filter:none !important; }

/* The live-session cards rebuild when their data changes; a RUNNING animation would
   restart on each rebuild → the flicker "when a session is on". Make them static
   (the hue-lit glass + glow stay — just no restarting motion). */
.gm-at-sec .atv-ss::before,
.gm-at-sec .atv-ss-dot,
.gm-at-sec .atv-ss-rec{ animation:none !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at54 — salvo spacing/consistency · cross-device display parity · mobile AT
   analyzer de-glitch
   ═══════════════════════════════════════════════════════════════════════════ */

/* (1) ⚡ SALVO — both pops already share .gm-salvo-btn (identical look); the Sentinel
   one just needs SPACE so a 10×-stake button is never mis-tapped next to the fire
   buttons. A clear top gap + a hairline separator, applied to BOTH so they match. */
.gm-salvo-btn{ margin-top:16px !important; position:relative; }
.gm-salvo-btn::before{ content:""; position:absolute; left:6%; right:6%; top:-9px; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent); }

/* (2) CROSS-DEVICE PARITY — iOS Safari inflates text + flashes a blue tap box, which
   Android doesn't; pin both so every device renders the same thing. overscroll-behavior
   stops the rubber-band scroll-chain glitch on touch. */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
*{ -webkit-tap-highlight-color:rgba(0,0,0,0); }
body, #view-console, .gm-at-sec{ overscroll-behavior-y:contain; }

/* (3) MOBILE AUTO-TRADER ANALYZER GLITCH — a clip-path + a drop-shadow FILTER on every
   card is what flickers/tears on real iOS + Android GPUs (fill-rate + clip-edge
   re-raster on scroll). On phones drop the float filter; the puzzle shape, hue fill and
   edge ring stay, so the cards still read premium but render rock-solid. */
@media (max-width:560px){
  .gm-at-sec .atk,
  .gm-at-sec .atk.on, .gm-at-sec .atk.running, .gm-at-sec .atk.expanded,
  .gm-at-sec .atc, .gm-at-sec .atv-top, .gm-at-sec .atv-hud, .gm-at-sec .atv-ss{ filter:none !important; }
  html.is-scrolling.gm-shed .gm-at-sec .atk{ filter:none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at55 — Digital Sentinel execution pop restyled to MATCH the Genesis dock
   (reuses .gen-dock-head / .gen-dock-rows / .gdk / .genesis-fire) + fits the modal.
   ═══════════════════════════════════════════════════════════════════════════ */
.sentinel-pop-card.sentinel-dock{
  width:min(340px, 92vw) !important; max-width:92vw !important; padding:13px !important;
  display:flex !important; flex-direction:column; gap:11px; align-items:stretch; text-align:left;
}
.sentinel-pop-card.sentinel-dock .gen-dock-head{ margin:0; }
.sentinel-pop-card.sentinel-dock .genesis-fire{ width:100%; margin:0; }
.sentinel-pop-card.sentinel-dock .spop-sub{ text-align:center; margin:0; font-size:10.5px; color:var(--text-muted,#8b93a8); }
.sentinel-pop-card.sentinel-dock .gm-salvo-btn{ margin-top:2px !important; }
.sentinel-pop-card.sentinel-dock .gm-salvo-btn::before{ display:none; }   /* the FIRE button already separates it */

/* ═══════════════════════════════════════════════════════════════════════════
   at57 — 📱 MOBILE GPU RELIEF (the real "cards still glitching on Android/iOS")

   MEASURED root cause: on a phone-width viewport the Auto-Trader cards STILL
   computed `filter: drop-shadow(...) drop-shadow(...)`. The at54 kill-switch
   (`@media (max-width:560px){ .gm-at-sec .atk…{ filter:none !important } }`)
   TIED the winning rule on specificity — `.gm-at-sec .atk.running` is (0,3,0)
   in BOTH — and lost on source order, so it silently no-op'd. (The exact trap
   in reference-css-cascade-traps: !important does not beat an equal-specificity
   !important that comes later.)

   Why it matters: `filter: drop-shadow()` forces the element into an offscreen
   buffer that must be RE-RASTERISED on every visual change. The AT cards change
   constantly while a session runs (live P&L, conf ring, progress bar) → a
   full-card GPU re-raster per update, per card. Desktop GPUs absorb it; phone
   GPUs stutter. That is the glitch, and it survived the JS rebuild fix because
   it was never a rebuild problem at this layer.

   Fix: out-specify decisively with `html body …` (adds 2 element selectors →
   (0,3,2) > (0,3,0)) and append LAST so source order can't lose either.
   ★ The look is PRESERVED, not deleted: each expensive drop-shadow is replaced
   with an equivalent `box-shadow`, which paints in-place with NO offscreen
   buffer. To let box-shadow actually show, the decorative `clip-path` puzzle
   silhouette is dropped on phones (box-shadow is clipped by clip-path) — cards
   become clean rounded rectangles WITH real depth instead of clipped shapes
   with a stuttering filter. Desktop keeps the full puzzle + filter treatment.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px){

  /* ── Auto Trader: cards, panels, hud, live-session cards ─────────────────── */
  html body .gm-at-sec .atk,
  html body .gm-at-sec .atk.on,
  html body .gm-at-sec .atk.running,
  html body .gm-at-sec .atk.expanded,
  html body .gm-at-sec .atc,
  html body .gm-at-sec .atv-top,
  html body .gm-at-sec .atv-hud,
  html body .gm-at-sec .atv-ss,
  html.is-scrolling.gm-shed body .gm-at-sec .atk,
  html.is-scrolling.gm-shed body .gm-at-sec .atk.on,
  html.is-scrolling.gm-shed body .gm-at-sec .atk.running,
  html.is-scrolling.gm-shed body .gm-at-sec .atc,
  html.is-scrolling.gm-shed body .gm-at-sec .atv-ss{
    filter: none !important;              /* ← the stutter */
    clip-path: none !important;           /* so box-shadow is visible */
    border-radius: 16px;                  /* keep the soft card silhouette */
  }

  /* depth restored the CHEAP way (in-place paint, no offscreen buffer) */
  html body .gm-at-sec .atk{
    box-shadow: 0 5px 14px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.05) inset !important;
  }
  html body .gm-at-sec .atk.on{
    box-shadow: 0 5px 14px rgba(0,0,0,.55),
                0 0 14px -2px color-mix(in srgb, var(--c) 50%, transparent),
                0 1px 0 rgba(255,255,255,.06) inset !important;
  }
  html body .gm-at-sec .atk.running{
    box-shadow: 0 5px 14px rgba(0,0,0,.55),
                0 0 20px -2px color-mix(in srgb, var(--c) 72%, transparent),
                0 1px 0 rgba(255,255,255,.07) inset !important;
  }
  html body .gm-at-sec .atv-ss{
    box-shadow: 0 6px 16px rgba(0,0,0,.5),
                0 0 16px -4px color-mix(in srgb, var(--c) 55%, transparent) !important;
  }
  html body .gm-at-sec .atc,
  html body .gm-at-sec .atv-top,
  html body .gm-at-sec .atv-hud{
    box-shadow: 0 6px 18px rgba(0,0,0,.45) !important;
  }

  /* ── the same trap platform-wide: analyzer / glass / signature cards ─────── */
  html body .analyzer,
  html body .analyzer.glass,
  html body .analyzer-themed,
  html body .glass,
  html body .trade-prediction-card,
  html.is-scrolling.gm-shed body .analyzer,
  html.is-scrolling.gm-shed body .glass{
    filter: none !important;
  }

  /* while actively scrolling, drop the coloured glow entirely — pure flat paint */
  html.is-scrolling.gm-shed body .gm-at-sec .atk,
  html.is-scrolling.gm-shed body .gm-at-sec .atk.on,
  html.is-scrolling.gm-shed body .gm-at-sec .atk.running,
  html.is-scrolling.gm-shed body .gm-at-sec .atv-ss{
    box-shadow: 0 4px 10px rgba(0,0,0,.5) !important;
  }
}

/* ── Reduced-motion / low-power: honour the OS setting everywhere ─────────── */
@media (prefers-reduced-motion: reduce){
  html body *,
  html body *::before,
  html body *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at60 — 📊 TRADE-TYPE INTELLIGENCE deck (Auto Trader)
   Per-trade-type live chart + honest expected-value maths + confidence
   calibration. Dark-surface by design (the platform is dark-only): marks are
   thin, axes recessive, status colours ALWAYS ship with an icon + word so
   identity is never colour-alone. Mobile-safe: no filters, no backdrop-filter.
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-at-sec .ati-note{
  font-size:11.5px; line-height:1.55; color:var(--at-mut,#8b93a8);
  background:rgba(255,255,255,.03); border:1px solid var(--at-bd2,rgba(255,255,255,.08));
  border-radius:10px; padding:9px 11px; margin:0 0 12px;
}
.gm-at-sec .ati-note b{ color:var(--at-txt,#e6ebf2); font-weight:800; }

.gm-at-sec #at-intel{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); }

.gm-at-sec .ati-card{
  position:relative; border-radius:14px; padding:12px;
  background:linear-gradient(165deg, rgba(34,41,50,.72), rgba(16,20,26,.82));
  border:1px solid var(--at-bd,rgba(255,255,255,.09));
  box-shadow:0 10px 26px -20px #000, inset 0 1px 0 rgba(255,255,255,.05);
}
.gm-at-sec .ati-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:2px; border-radius:14px 14px 0 0;
  background:linear-gradient(90deg, var(--c), transparent 78%); opacity:.85;
}
.gm-at-sec .ati-h{ display:flex; align-items:center; gap:8px; margin-bottom:9px; flex-wrap:wrap; }
.gm-at-sec .ati-ic{
  width:26px; height:26px; flex:none; border-radius:8px; display:grid; place-items:center; font-size:14px;
  color:var(--c); background:color-mix(in srgb, var(--c) 16%, transparent);
  border:1px solid color-mix(in srgb, var(--c) 38%, transparent);
}
.gm-at-sec .ati-h b{ font-size:13px; font-weight:900; color:var(--at-txt,#e6ebf2); letter-spacing:.01em; }
.gm-at-sec .ati-play{
  margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.02em; text-transform:uppercase;
  color:var(--at-mut,#8b93a8); background:rgba(0,0,0,.28); border:1px solid var(--at-bd2,rgba(255,255,255,.08));
  border-radius:999px; padding:3px 8px;
}

/* ── chart ─────────────────────────────────────────────────────────────── */
.gm-at-sec .ati-chart{ margin:2px 0 9px; }
.gm-at-sec .atisvg{ width:100%; height:78px; display:block; overflow:visible; }
.gm-at-sec .atisvg-ax{ stroke:rgba(255,255,255,.13); stroke-width:1; }          /* recessive axis */
.gm-at-sec .atisvg-b{ fill:rgba(255,255,255,.16); }                             /* magnitude, one hue */
.gm-at-sec .atisvg-b.on{ fill:var(--c); }                                        /* in-the-money */
.gm-at-sec .atisvg-x{ font-size:9px; font-weight:800; fill:var(--at-mut,#8b93a8); text-anchor:middle; }
.gm-at-sec .atisvg-x.on{ fill:var(--at-txt,#e6ebf2); }
.gm-at-sec .atisvg-p{ fill:rgba(255,255,255,.18); }
.gm-at-sec .atisvg-p.ev{ fill:var(--c); }
.gm-at-sec .atisvg-line{ fill:none; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.gm-at-sec .atisvg-line.up{ stroke:#4bd6c0; } .gm-at-sec .atisvg-line.dn{ stroke:#ff6b73; }
.gm-at-sec .atisvg-ema{ fill:none; stroke:rgba(255,255,255,.26); stroke-width:2; stroke-dasharray:3 3; }
.gm-at-sec .atisvg-dot.up{ fill:#4bd6c0; } .gm-at-sec .atisvg-dot.dn{ fill:#ff6b73; }
.gm-at-sec .ati-cap{
  display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:5px;
  font-size:10px; color:var(--at-mut,#8b93a8);
}
.gm-at-sec .ati-cap b{ font-weight:800; color:var(--at-txt,#e6ebf2); }
.gm-at-sec .ati-cap b.pos{ color:#4bd6c0; } .gm-at-sec .ati-cap b.neg{ color:#ff6b73; }
.gm-at-sec .ati-empty{
  height:78px; display:grid; place-items:center; border-radius:10px;
  background:rgba(255,255,255,.03); border:1px dashed var(--at-bd2,rgba(255,255,255,.1));
  font-size:11px; color:var(--at-mut,#8b93a8);
}
.gm-at-sec .ati-empty.sm{ height:auto; padding:9px; font-size:10.5px; text-align:center; }

/* ── verdict (status = icon + word, never colour alone) ────────────────── */
.gm-at-sec .ati-verdict{
  display:flex; align-items:center; gap:7px; padding:8px 10px; border-radius:10px; margin-bottom:9px;
  border:1px solid var(--at-bd2,rgba(255,255,255,.08)); background:rgba(0,0,0,.24);
}
.gm-at-sec .ati-verdict b{ font-size:11.5px; font-weight:900; letter-spacing:.02em; }
.gm-at-sec .ati-vic{ font-size:13px; line-height:1; }
.gm-at-sec .ati-ev{ margin-left:auto; font-size:10px; color:var(--at-mut,#8b93a8); font-weight:700; }
.gm-at-sec .ati-ev u{ text-decoration:none; font-weight:900; font-size:12px; margin-left:4px; }
.gm-at-sec .ati-verdict.good{ background:rgba(75,214,192,.09); border-color:rgba(75,214,192,.34); }
.gm-at-sec .ati-verdict.good b, .gm-at-sec .ati-verdict.good .ati-ev u{ color:#5fe6cf; }
.gm-at-sec .ati-verdict.bad{ background:rgba(255,68,79,.09); border-color:rgba(255,68,79,.34); }
.gm-at-sec .ati-verdict.bad b, .gm-at-sec .ati-verdict.bad .ati-ev u{ color:#ff7a82; }
.gm-at-sec .ati-verdict.thin{ background:rgba(245,166,35,.09); border-color:rgba(245,166,35,.32); }
.gm-at-sec .ati-verdict.thin b, .gm-at-sec .ati-verdict.thin .ati-ev u{ color:#f5b544; }

/* ── stat grid ─────────────────────────────────────────────────────────── */
.gm-at-sec .ati-grid{ display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:10px; }
.gm-at-sec .ati-cell{
  padding:7px 9px; border-radius:9px; background:rgba(0,0,0,.24);
  border:1px solid var(--at-bd2,rgba(255,255,255,.07));
}
.gm-at-sec .ati-cell u{ display:block; text-decoration:none; font-size:9px; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; color:var(--at-mut,#8b93a8); }
.gm-at-sec .ati-cell b{ display:block; font-size:15px; font-weight:900; color:var(--at-txt,#e6ebf2); margin:1px 0; }
.gm-at-sec .ati-cell b.pos{ color:#4bd6c0; } .gm-at-sec .ati-cell b.neg{ color:#ff6b73; }
.gm-at-sec .ati-cell i{ display:block; font-style:normal; font-size:9.5px; color:var(--at-mut,#8b93a8); }

/* ── calibration ───────────────────────────────────────────────────────── */
.gm-at-sec .ati-sub{ font-size:10px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:var(--at-mut,#8b93a8); margin-bottom:6px; }
.gm-at-sec .ati-cal{ display:grid; gap:4px; }
.gm-at-sec .ati-cal-row{ display:flex; align-items:center; gap:7px; font-size:10px; color:var(--at-mut,#8b93a8); }
.gm-at-sec .ati-cal-row > span:first-child{ width:46px; flex:none; font-weight:800; }
.gm-at-sec .ati-cal-bar{ flex:1; height:7px; border-radius:999px; background:rgba(255,255,255,.07); overflow:hidden; }
.gm-at-sec .ati-cal-bar i{ display:block; height:100%; border-radius:999px; background:var(--c); }
.gm-at-sec .ati-cal-row b{ width:32px; text-align:right; font-weight:900; color:var(--at-txt,#e6ebf2); }
.gm-at-sec .ati-cal-row em{ width:38px; font-style:normal; text-align:right; opacity:.75; }
.gm-at-sec .ati-cal-row.empty i{ font-style:normal; opacity:.55; }

@media (max-width:560px){
  .gm-at-sec #at-intel{ grid-template-columns:1fr; }
  .gm-at-sec .ati-card{ filter:none !important; }   /* at57 mobile-GPU rule holds here too */
}

/* at60b — the EV confidence band. Uncertainty is shown, never hidden: an edge
   that cannot clear its own error bar must not read as a win. */
.gm-at-sec .ati-band{
  font-size:9.5px; line-height:1.4; color:var(--at-mut,#8b93a8);
  margin:-5px 0 9px; padding:5px 8px; border-radius:8px;
  background:rgba(0,0,0,.2); border:1px dashed var(--at-bd2,rgba(255,255,255,.09));
}

/* at62 — 🛡 RECOVERY LAB. Shows what a loss cap really buys at a given payout:
   ladder depth, the odds of the streak that busts it, and a standing reminder
   that depth buys time, never edge. */
.gm-at-sec .atrl{ margin-top:10px; padding-top:9px; border-top:1px solid var(--at-bd2,rgba(255,255,255,.08)); }
.gm-at-sec .atrl-hero{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:8px; }
.gm-at-sec .atrl-hz{ padding:6px 7px; border-radius:9px; background:rgba(0,0,0,.26);
  border:1px solid var(--at-bd2,rgba(255,255,255,.07)); text-align:center; }
.gm-at-sec .atrl-hz u{ display:block; text-decoration:none; font-size:8.5px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; color:var(--at-mut,#8b93a8); }
.gm-at-sec .atrl-hz b{ display:block; font-size:17px; font-weight:900; color:var(--c); line-height:1.15; margin:1px 0; }
.gm-at-sec .atrl-hz i{ display:block; font-style:normal; font-size:8.5px; color:var(--at-mut,#8b93a8); }
.gm-at-sec .atrl-rows{ display:grid; gap:3px; margin-bottom:8px; }
.gm-at-sec .atrl-row{ display:flex; align-items:center; gap:7px; font-size:10px; padding:4px 7px; border-radius:7px;
  background:rgba(255,255,255,.03); color:var(--at-mut,#8b93a8); }
.gm-at-sec .atrl-row > span{ width:24px; flex:none; font-weight:800; color:var(--c); }
.gm-at-sec .atrl-row b{ font-weight:900; color:var(--at-txt,#e6ebf2); }
.gm-at-sec .atrl-row i{ margin-left:auto; font-style:normal; opacity:.8; }
.gm-at-sec .atrl-row.more{ justify-content:center; font-style:italic; opacity:.75; }
.gm-at-sec .atrl-warn{ font-size:9.5px; line-height:1.5; color:var(--at-mut,#8b93a8);
  padding:6px 8px; border-radius:8px; background:rgba(245,166,35,.07);
  border:1px solid rgba(245,166,35,.24); }
.gm-at-sec .atrl-warn b{ color:#f5b544; font-weight:900; }
.gm-at-sec .atrl-warn em{ font-style:italic; }

/* at63 — ◍ ACCUMULATOR KNOCKOUT ANALYZER. Survival curve + the growth ladder that
   lays each rate's EXACT break-even survival against what the market delivers. */
.gm-at-sec .atk-tpline{ stroke:var(--c); stroke-width:1.5; stroke-dasharray:2 3; opacity:.75; }
.gm-at-sec .atko-grid{ display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:10px; }
.gm-at-sec .atko-ladder{ display:grid; gap:3px; margin-bottom:9px; }
.gm-at-sec .atko-row{ display:flex; align-items:center; gap:8px; font-size:10px; padding:4px 8px;
  border-radius:7px; background:rgba(255,255,255,.03); color:var(--at-mut,#8b93a8); }
.gm-at-sec .atko-row.is-cur{ background:color-mix(in srgb, var(--c) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--c) 34%, transparent); }
.gm-at-sec .atko-row > span{ width:26px; flex:none; font-weight:900; color:var(--at-txt,#e6ebf2); }
.gm-at-sec .atko-row i{ font-style:normal; opacity:.85; }
.gm-at-sec .atko-row b{ margin-left:auto; font-weight:900; }
.gm-at-sec .atko-row em{ width:38px; text-align:right; font-style:normal; font-weight:800; }
.gm-at-sec .atko-row b.pos, .gm-at-sec .atko-row em.pos{ color:#4bd6c0; }
.gm-at-sec .atko-row b.neg, .gm-at-sec .atko-row em.neg{ color:#ff7a82; }
.gm-at-sec .atko-row.atko-head{ background:none; border:none; font-size:8.5px; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; opacity:.6; padding-bottom:1px; }
.gm-at-sec .atko-row.atko-head b, .gm-at-sec .atko-row.atko-head em{ color:inherit; }
.gm-at-sec .ati-sub em{ font-style:italic; text-transform:none; letter-spacing:0; opacity:.75; }

/* at65 — recovery profit multiple + its honest cost line */
.gm-at-sec .atk-prof button{ min-width:44px; }
.gm-at-sec .atrl-prof{ font-size:10px; line-height:1.5; color:var(--at-mut,#8b93a8);
  padding:6px 8px; border-radius:8px; margin-bottom:7px;
  background:color-mix(in srgb, var(--c) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--c) 30%, transparent); }
.gm-at-sec .atrl-prof b{ color:var(--at-txt,#e6ebf2); font-weight:900; }
.gm-at-sec .atrl-prof em{ font-style:italic; color:#f5b544; }


/* ═══════════════════════════════════════════════════════════════════════════
   at72 — 🧠 ANALYZER INTELLIGENCE CORE panel (one per analyzer card).
   Carries each analyzer's own signature hue via --c. Status colours ALWAYS ship
   with an icon + word, never colour alone. Mobile-safe: no filters, no blur.
   ═══════════════════════════════════════════════════════════════════════════ */
.aic{
  position:relative; margin:14px 0 4px; padding:13px; border-radius:14px;
  background:linear-gradient(165deg, rgba(30,37,46,.72), rgba(14,18,24,.86));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 12px 30px -24px #000, inset 0 1px 0 rgba(255,255,255,.05);
}
.aic::before{
  content:""; position:absolute; inset:0 0 auto 0; height:2px; border-radius:14px 14px 0 0;
  background:linear-gradient(90deg, var(--c), transparent 76%); opacity:.9;
}
.aic-h{ display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.aic-dot{ width:8px; height:8px; border-radius:50%; background:var(--c); flex:none;
  box-shadow:0 0 10px var(--c); }
.aic-h b{ font-size:11px; font-weight:900; letter-spacing:.09em; color:#e6ebf2; }
.aic-play{ margin-left:auto; font-size:9.5px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; color:#8b93a8; background:rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.09); border-radius:999px; padding:3px 9px; }

.aic-verdict{ display:flex; align-items:center; gap:8px; padding:9px 11px; border-radius:10px;
  background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.08); margin-bottom:8px; }
.aic-verdict > span:first-child{ font-size:13px; line-height:1; }
.aic-verdict b{ font-size:11.5px; font-weight:900; letter-spacing:.02em; }
.aic-ev{ margin-left:auto; font-size:9.5px; font-weight:700; color:#8b93a8; white-space:nowrap; }
.aic-ev u{ text-decoration:none; font-weight:900; font-size:12px; margin-left:4px; }
.aic-verdict.good{ background:rgba(75,214,192,.09); border-color:rgba(75,214,192,.34); }
.aic-verdict.good b, .aic-verdict.good .aic-ev u{ color:#5fe6cf; }
.aic-verdict.bad{ background:rgba(255,68,79,.09); border-color:rgba(255,68,79,.34); }
.aic-verdict.bad b, .aic-verdict.bad .aic-ev u{ color:#ff7a82; }
.aic-verdict.thin{ background:rgba(245,166,35,.09); border-color:rgba(245,166,35,.3); }
.aic-verdict.thin b, .aic-verdict.thin .aic-ev u{ color:#f5b544; }

.aic-band{ font-size:9.5px; line-height:1.45; color:#8b93a8; padding:6px 9px; border-radius:8px;
  background:rgba(0,0,0,.2); border:1px dashed rgba(255,255,255,.1); margin-bottom:9px; }

.aic-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-bottom:10px; }
.aic-c{ padding:7px 8px; border-radius:9px; background:rgba(0,0,0,.26);
  border:1px solid rgba(255,255,255,.07); }
.aic-c u{ display:block; text-decoration:none; font-size:8.5px; font-weight:800;
  letter-spacing:.05em; text-transform:uppercase; color:#8b93a8; }
.aic-c b{ display:block; font-size:15px; font-weight:900; color:#e6ebf2; margin:1px 0; }
.aic-c b.pos{ color:#4bd6c0; } .aic-c b.neg{ color:#ff6b73; }
.aic-c i{ display:block; font-style:normal; font-size:9px; color:#8b93a8; }

.aic-spark{ margin-bottom:9px; }
.aic-svg{ width:100%; height:46px; display:block; overflow:visible; }
.aic-b{ fill:var(--c); opacity:.75; }
.aic-x{ font-size:8.5px; font-weight:800; fill:#8b93a8; text-anchor:middle; }
.aic-line{ fill:none; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.aic-line.up{ stroke:#4bd6c0; } .aic-line.dn{ stroke:#ff6b73; }
.aic-empty{ height:46px; display:grid; place-items:center; border-radius:9px; font-size:10px;
  color:#8b93a8; background:rgba(255,255,255,.03); border:1px dashed rgba(255,255,255,.1); }

.aic-note{ font-size:9.5px; line-height:1.5; color:#8b93a8; }
.aic-note b{ color:#e6ebf2; font-weight:800; }

@media (max-width:560px){
  .aic{ filter:none !important; padding:11px; }          /* at57 mobile-GPU rule holds */
  .aic-grid{ grid-template-columns:1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at74 — AUTO TRADER view: strip the header to ONE control.
   Inside the Auto Trader the header's console furniture (voice orb, Aether power,
   balance, connection chip, session/nav chips) is noise — the only action that
   makes sense there is getting back. Hide everything except the toggle button,
   which reads "‹ Trading Console" while the view is open.
   Uses :not() on the button rather than listing every chip, so any header control
   added later is hidden by default instead of leaking into the view.
   ═══════════════════════════════════════════════════════════════════════════ */
body.gm-at-active .header-actions > *:not(.at-open-btn):not(#at-open){
  display:none !important;
}
body.gm-at-active .header-actions{
  justify-content:flex-end !important; gap:0 !important;
}
/* the session / nav row under the actions (Home · Admin · Sign out · user chip) */
body.gm-at-active .session-chips,
body.gm-at-active .header-session,
body.gm-at-active #session-chips,
body.gm-at-active .aether-header .nav-row,
body.gm-at-active #sub-countdown,
body.gm-at-active #balance-chip,
body.gm-at-active #connection-chip,
body.gm-at-active #aether-ctl{
  display:none !important;
}
/* make the single remaining control read clearly as the way back */
body.gm-at-active .at-open-btn{
  display:inline-flex !important; align-items:center; gap:7px;
  padding:9px 16px !important; border-radius:999px !important;
  font-weight:900 !important; letter-spacing:.01em;
}
body.gm-at-active .at-open-btn .ao-t{ display:inline !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   at76 — 📱 PHONE SCROLL: stop painting what isn't on screen.
   Proven by bisect: with all timers cleared, the FIRST fling costs ~10 blocking
   tasks (offscreen content being laid out + painted) while the 2nd and 3rd cost
   0–1. The expensive part is realising content that was never visible.
   `content-visibility:auto` lets the browser skip layout+paint for a section until
   it approaches the viewport — the single biggest lever for a long, heavy page.

   Scoped deliberately:
     • phones only (≤820px) — that is where the paint budget actually hurts
     • TOP-LEVEL sections only, never the analyzer cards themselves (an earlier
       attempt on `.atk` flickered on expand because content-visibility + filter +
       clip-path re-raster together)
     • every rule carries `contain-intrinsic-size`, otherwise the scrollbar jumps
       as sections are realised and the page fights the user's thumb
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:820px){
  /* Auto Trader: the stacked section cards */
  .gm-at-sec .atc{
    content-visibility:auto;
    contain-intrinsic-size:auto 420px;
  }
  /* the live-sessions + summary blocks are short; give them tighter hints */
  .gm-at-sec .atc-sessions{ contain-intrinsic-size:auto 260px; }
  .gm-at-sec .atc-sum{ contain-intrinsic-size:auto 300px; }

  /* Trading Console: the long furniture below the fold */
  #journal-section,
  .aether-footer,
  .ad-rail, .ads-rail{
    content-visibility:auto;
    contain-intrinsic-size:auto 520px;
  }
}

/* ⚠ Never apply content-visibility to an element that hosts a position:fixed child
   or an expanding panel — it creates a containment context and traps them. The
   analyzer articles are intentionally excluded for that reason. */

/* ═══════════════════════════════════════════════════════════════════════════
   at82 — 🎛 DROPDOWN PANELS: bigger, and actually usable with a thumb.
   The menus were desktop-sized: rows too short to hit reliably on a phone, panel
   too small to show enough options without a fiddly scroll, and no visual anchor
   for which option is current. Every number below is chosen for touch, not looks:
   44px is the minimum reliable tap target on both iOS and Android.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── the trigger button ─────────────────────────────────────────────────── */
.gm-sel-btn{
  min-height:46px !important; padding:11px 14px !important;
  border-radius:12px !important; font-size:13.5px !important; font-weight:800;
  display:flex !important; align-items:center; gap:10px; width:100%;
  transition:border-color .16s, background .16s;
}
.gm-sel-btn:active{ transform:none; }                     /* no jump under a thumb */
.gm-sel-val{ flex:1; text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gm-sel-chev{ flex:none; opacity:.7; transition:transform .2s ease; }
.gm-sel-wrap[data-open="1"] .gm-sel-chev,
.gm-sel-wrap.open .gm-sel-chev{ transform:rotate(180deg); }

/* ── the menu panel — bigger, scrollable, momentum-friendly ─────────────── */
.gm-sel-menu{
  min-width:250px !important;
  max-height:min(62vh, 460px) !important;                 /* was cramped; now shows ~9 rows */
  padding:8px !important; border-radius:14px !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;                        /* iOS momentum */
  overscroll-behavior:contain;                             /* don't scroll the page behind */
  scrollbar-width:thin;
  box-shadow:0 26px 60px -22px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.07) inset;
}
.gm-sel-menu::-webkit-scrollbar{ width:8px; }
.gm-sel-menu::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.18); border-radius:99px; }

/* ── options — full-size tap targets + a clear current-selection anchor ── */
.gm-sel-opt{
  min-height:44px !important;                              /* iOS/Android tap minimum */
  padding:11px 13px !important; border-radius:10px !important;
  font-size:13.5px !important; line-height:1.3;
  display:flex !important; align-items:center; gap:9px;
  transition:background .13s;
}
.gm-sel-opt:hover, .gm-sel-opt:focus-visible{ background:rgba(255,255,255,.08) !important; }
.gm-sel-opt[aria-selected="true"], .gm-sel-opt.is-sel, .gm-sel-opt.on{
  background:rgba(255,255,255,.10) !important; font-weight:900;
}
/* a leading rail marks the active row without relying on colour alone */
.gm-sel-opt[aria-selected="true"]::before, .gm-sel-opt.is-sel::before, .gm-sel-opt.on::before{
  content:""; width:3px; align-self:stretch; border-radius:99px;
  background:currentColor; opacity:.85; margin-right:2px;
}

/* ── Auto Trader market dropdown — same treatment ───────────────────────── */
.gm-at-sec .atk-mkt-head{
  min-height:46px !important; padding:11px 13px !important; border-radius:12px !important;
  font-size:13px !important;
}
.gm-at-sec .atk-mrows{
  max-height:min(56vh, 380px) !important; overflow-y:auto;
  -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding:6px !important;
}
.gm-at-sec .atk-mrow{
  min-height:44px !important; padding:10px 12px !important; border-radius:10px !important;
  font-size:12.5px !important; gap:10px;
}
.gm-at-sec .atk-mrow.on{ background:rgba(255,255,255,.10) !important; font-weight:900; }
.gm-at-sec .atk-mrow-bar{ height:6px !important; border-radius:99px; }

/* ── phones: go a little larger still, and let the panel use the width ──── */
@media (max-width:560px){
  .gm-sel-menu{ min-width:min(90vw, 320px) !important; max-height:64vh !important; }
  .gm-sel-opt{ min-height:48px !important; font-size:14px !important; }
  .gm-sel-btn{ min-height:48px !important; font-size:14px !important; }
  .gm-at-sec .atk-mrow{ min-height:48px !important; }
  .gm-at-sec .atk-mkt-head{ min-height:48px !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   at84 — 📱 ANDROID SCROLL: make the page CHEAP TO PAINT while it moves.
   Android Chrome jank on this platform is a paint/compositing problem, not a JS
   one: ~19 `will-change` layers + layered-gradient glass + large blurred shadows
   must all be re-rastered every scrolled frame, and mid-range GPUs cannot keep up.
   Measured earlier: removing paint work alone took the worst frame 218ms → 151ms.

   While `html.is-scrolling.gm-shed` is set we drop the expensive properties and restore
   them the instant motion stops (~140ms) — the user never sees a flat frame
   because they are only flat while the view is in motion.

   ⚠ Deliberately NOT using the `background` shorthand — that previously wiped the
   card grain + signature gradient on phones. Only `background-image` is touched,
   and only during scroll.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:900px){
  html.is-scrolling.gm-shed *,
  html.is-scrolling.gm-shed *::before,
  html.is-scrolling.gm-shed *::after{
    box-shadow:none !important;
    text-shadow:none !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    animation-play-state:paused !important;
    transition:none !important;
    will-change:auto !important;          /* collapse compositor layers */
  }
  /* flatten the layered-gradient glass to a solid tone while moving.
     background-image only — the base colour/grain stays intact. */
  html.is-scrolling.gm-shed .glass,
  html.is-scrolling.gm-shed .analyzer,
  html.is-scrolling.gm-shed .atk,
  html.is-scrolling.gm-shed .atc,
  html.is-scrolling.gm-shed .aic,
  html.is-scrolling.gm-shed .gm-at-sec .atv-hud,
  html.is-scrolling.gm-shed .card,
  html.is-scrolling.gm-shed .panel{
    background-image:none !important;
  }
  /* the drifting aurora fields are the single most expensive thing on screen */
  html.is-scrolling.gm-shed .gm-aurora,
  html.is-scrolling.gm-shed .nebula-layer,
  html.is-scrolling.gm-shed body::before,
  html.is-scrolling.gm-shed body::after{
    display:none !important;
  }
  /* give the compositor a hint that the scroller is its own layer */
  .aether-main{ contain:paint; }
}

/* Respect the OS setting — if the user asked for less motion, never animate at all */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* at85 — ⚠ SPECIFICITY FIX for the at84 scroll block.
   `html.is-scrolling.gm-shed *` is only (0,1,2) and LOSES to existing `!important` rules on
   compound selectors like `.gm-at-sec .atk.on` (0,3,0) — verified live: will-change
   collapsed but box-shadow kept painting, i.e. the expensive half never turned off.
   Repeating an attribute selector raises specificity without naming every element:
   `[class][class][class]` = (0,3,0) plus the html.is-scrolling.gm-shed class = (0,4,1),
   which outranks the card rules while still matching anything with a class. */
@media (max-width:900px){
  html.is-scrolling.gm-shed [class][class][class],
  html.is-scrolling.gm-shed [class][class][class]::before,
  html.is-scrolling.gm-shed [class][class][class]::after{
    box-shadow:none !important;
    text-shadow:none !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background-image:none !important;
    animation-play-state:paused !important;
    will-change:auto !important;
  }
}

/* at86 — side alternator control + the new risk stats on the live session card */
.gm-at-sec .atk-alt button{ min-width:64px; }
.gm-at-sec .atv-ss-stats{ grid-template-columns:repeat(4,1fr) !important; }
.gm-at-sec .atv-ss-alt{ font-style:normal; font-size:9px; margin-left:4px; opacity:.85; }

/* at88 — live knockout risk row on the running ACCU contract */
.gm-at-sec .atv-ss-ko{ display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:6px; }
.gm-at-sec .atv-ss-ko-c{ padding:5px 6px; border-radius:8px; background:rgba(0,0,0,.26);
  border:1px solid rgba(255,255,255,.07); text-align:center; }
.gm-at-sec .atv-ss-ko-c u{ display:block; text-decoration:none; font-size:8px; font-weight:800;
  letter-spacing:.05em; text-transform:uppercase; color:var(--at-mut,#8b93a8); }
.gm-at-sec .atv-ss-ko-c b{ display:block; font-size:12.5px; font-weight:900; color:var(--at-txt,#e6ebf2); }
.gm-at-sec .atv-ss-ko-c b.neg{ color:#ff7a82; }
.gm-at-sec .atv-ss-ko-v{ margin-top:5px; font-size:9.5px; line-height:1.45; padding:5px 8px;
  border-radius:8px; }
.gm-at-sec .atv-ss-ko-v.ok{ background:rgba(75,214,192,.09); border:1px solid rgba(75,214,192,.28); color:#5fe6cf; }
.gm-at-sec .atv-ss-ko-v.warn{ background:rgba(245,166,35,.09); border:1px solid rgba(245,166,35,.3); color:#f5b544; }

/* ═══════════════════════════════════════════════════════════════════════════
   at91 — 📱 PLATFORM-WIDE MOBILE PASS: scroll behaviour + card consistency.
   Everything here is device-behaviour, not decoration — the things that make a
   web app feel native on a phone and that were never set globally.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. SCROLL CONTAINMENT ──────────────────────────────────────────────────
   Without this, a flick inside any inner panel chains to the page behind it and
   the page "jumps" under the thumb; on Android it also fights pull-to-refresh. */
html{ overscroll-behavior-y:contain; }
body{ overscroll-behavior-y:contain; }
.gm-sel-menu, .atk-mrows, .atv-txw, .aic, .atc,
[class*="-scroll"], [class*="-list"], [class*="-rows"]{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;      /* iOS momentum inside panels */
}

/* ── 2. GESTURE INTENT ──────────────────────────────────────────────────────
   Declaring vertical-only panning lets the compositor start the scroll WITHOUT
   waiting to see if a horizontal gesture develops — removes the "sticky first
   frame" on Android. Genuinely horizontal scrollers opt back in below. */
.aether-main, #view-console, .gm-at-sec{ touch-action:pan-y; }
.atv-txw, .atk-mrows, [class*="-hscroll"]{ touch-action:pan-x pan-y; }

/* ── 3. DYNAMIC VIEWPORT — the mobile-browser-chrome jump ───────────────────
   `100vh` on a phone means "viewport with the URL bar hidden", so layouts shift
   as the bar shows/hides mid-scroll. `dvh` tracks the real visible height. */
@supports (height:100dvh){
  .full-h, .modal, .overlay, .gm-at-sec, .atv-pop, #at-pop{ min-height:auto; max-height:100dvh; }
  .sheet, .bottom-sheet{ max-height:88dvh; }
}

/* ── 4. NOTCH / HOME-INDICATOR SAFE AREAS (iOS) ─────────────────────────────
   Content was running under the home indicator and the status bar on iPhones. */
@supports (padding:max(0px)){
  .aether-header{ padding-top:max(10px, env(safe-area-inset-top)); }
  .aether-main{ padding-left:max(12px, env(safe-area-inset-left));
                padding-right:max(12px, env(safe-area-inset-right)); }
  body{ padding-bottom:env(safe-area-inset-bottom); }
}

/* ── 5. CARD CONSISTENCY (every card, every device) ─────────────────────────
   One radius language, no text able to burst a card, and controls that a thumb
   can actually hit. */
@media (max-width:900px){
  .glass, .analyzer, .atk, .atc, .aic, .card, .panel{
    border-radius:14px;
    overflow-wrap:anywhere;              /* long symbols/numbers can't overflow */
    word-break:normal;
  }
  /* nothing inside a card may exceed it */
  .glass *, .analyzer *, .atk *, .atc *, .aic *{ max-width:100%; }
  .glass img, .analyzer img, .atk img, .atc img, .aic img,
  .glass svg, .analyzer svg, .atk svg, .atc svg, .aic svg{ height:auto; }
  /* every interactive control clears the 44px touch minimum */
  .glass button, .analyzer button, .atk button, .atc button, .aic button,
  .glass select, .analyzer select, .atk select, .atc select,
  .glass input, .analyzer input, .atk input, .atc input{
    min-height:44px;
  }
  /* iOS zooms the page when a font under 16px is focused — this prevents it */
  input, select, textarea{ font-size:max(16px, 1em); }
}

/* ── 6. TEXT + TAP POLISH ───────────────────────────────────────────────────*/
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
*{ -webkit-tap-highlight-color:transparent; }
button, a, [role="button"]{ touch-action:manipulation; }   /* kills the 300ms delay */

/* at92 — ⚠ SPECIFICITY FIX for the at91 mobile pass.
   Verified live: `controlsUnder44px: 5` and `inputFontSize: 14px` — both rules lost
   to existing `!important` declarations, exactly like the at84→at85 scroll block.
   The input one is a real UX bug, not cosmetic: iOS Safari ZOOMS the whole page
   whenever a focused field's font is under 16px, which throws the layout off and
   the user has to pinch back. Raised specificity with a repeated attribute selector
   so these win without having to name every control. */
@media (max-width:900px){
  input[class], select[class], textarea[class],
  [class] input, [class] select, [class] textarea,
  input, select, textarea{
    font-size:16px !important;           /* the exact threshold iOS stops zooming at */
  }
  [class][class] button, [class][class] select, [class][class] input,
  [class][class] [role="button"]{
    min-height:44px !important;
  }
  /* keep genuinely tiny chips/toggles exempt — they are not primary tap targets
     and forcing 44px would break their layout */
  [class][class] .atk-sw, [class][class] .oup-sw, [class][class] .ats-sw,
  [class][class] .chip, [class][class] .atv-fchip{
    min-height:0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   at93 — 🎯 LAST DIGIT PREDICTION (rebuilt Matches analyzer)
   Colour language, stated once so it stays consistent:
     RED  = hot / over-represented ⇒ a BAD differs target (avoid)
     BLUE + ✓ = the digit you selected
     GREEN = the digit that just landed (live)
   Every state also carries a glyph or label — never colour alone.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── settings card ───────────────────────────────────────────────────────── */
.ldp-card{
  margin:14px 0; padding:14px; border-radius:16px;
  background:linear-gradient(165deg, rgba(32,40,50,.72), rgba(14,18,24,.86));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 14px 34px -26px #000, inset 0 1px 0 rgba(255,255,255,.05);
}
.ldp-card-h{ display:flex; align-items:center; gap:9px; margin-bottom:12px; }
.ldp-card-ic{ width:28px; height:28px; border-radius:9px; display:grid; place-items:center; font-size:14px;
  background:rgba(78,167,255,.16); border:1px solid rgba(78,167,255,.38); color:#4ea7ff; }
.ldp-card-h h4{ margin:0; font-size:14px; font-weight:900; letter-spacing:.01em; color:#e6ebf2; }
.ldp-sub-h{ display:flex; align-items:center; gap:8px; margin:16px 0 10px; padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08); }
.ldp-sub-h h5{ margin:0; font-size:11.5px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:#8b93a8; }

.ldp-fld{ margin-bottom:11px; }
.ldp-fld > label{ display:block; font-size:10.5px; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; color:#8b93a8; margin-bottom:5px; }
.ldp-sel{
  width:100%; min-height:46px; padding:11px 13px; border-radius:12px;
  font:inherit; font-size:14px; font-weight:800; color:#e6ebf2;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.12);
  -webkit-appearance:none; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#8b93a8 50%),linear-gradient(135deg,#8b93a8 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
}
.ldp-sel:focus{ outline:none; border-color:rgba(78,167,255,.6); }
.ldp-inp{ display:flex; align-items:center; gap:8px; min-height:46px; padding:0 13px; border-radius:12px;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.12); }
.ldp-cur{ font-weight:900; color:#8b93a8; }
.ldp-inp input{ flex:1; min-height:44px; background:none; border:none; outline:none;
  font:inherit; font-size:15px; font-weight:900; color:#e6ebf2; width:100%; }
.ldp-fixed{ display:flex; align-items:center; gap:8px; min-height:46px; padding:0 13px; border-radius:12px;
  font-size:13.5px; font-weight:900; color:#ff9b6b;
  background:rgba(255,107,64,.1); border:1px solid rgba(255,107,64,.3); }
.ldp-fixed i{ font-style:normal; font-size:10px; font-weight:700; color:#8b93a8; margin-left:auto; text-align:right; }

/* ── the digit field ─────────────────────────────────────────────────────── */
.ldp{ margin:14px 0; padding:14px; border-radius:16px;
  background:linear-gradient(170deg, rgba(20,28,38,.9), rgba(10,14,20,.94));
  border:1px solid rgba(255,255,255,.1); }
.ldp-h{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.ldp-h-t{ font-size:12px; font-weight:900; letter-spacing:.1em; color:#e6ebf2; }
.ldp-h-live{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:9.5px;
  font-weight:900; letter-spacing:.1em; color:#4bd6c0; }
.ldp-h-live i{ width:7px; height:7px; border-radius:50%; background:#4bd6c0; box-shadow:0 0 9px #4bd6c0;
  animation:ldpPulse 1.7s ease-in-out infinite; }
@keyframes ldpPulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

.ldp-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.ldp-tile{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:10px 4px 8px; border-radius:13px; cursor:pointer; font:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1.5px solid rgba(255,255,255,.1); color:#e6ebf2;
  transition:border-color .16s, background .16s, transform .1s;
  min-height:92px;
}
.ldp-tile:active{ transform:scale(.97); }
.ldp-d{ font-size:24px; font-weight:900; line-height:1; letter-spacing:-.02em; }
.ldp-bar{ width:100%; height:22px; display:flex; align-items:flex-end; justify-content:center; }
.ldp-bar > i{ display:block; width:16px; border-radius:3px 3px 0 0; background:rgba(255,255,255,.3); transition:height .45s cubic-bezier(.22,1,.36,1); }
.ldp-pct{ font-size:10px; font-weight:900; color:#b9c2d0; }
.ldp-gap{ font-size:8.5px; font-weight:700; color:#8b93a8; }

/* RED — hot / over-represented ⇒ avoid as a differs target */
.ldp-tile[data-state="avoid"]{ border-color:rgba(255,68,79,.55); background:linear-gradient(180deg, rgba(255,68,79,.16), rgba(255,68,79,.05)); }
.ldp-tile[data-state="avoid"] .ldp-bar > i{ background:#ff6b73; }
.ldp-tile[data-state="avoid"] .ldp-pct{ color:#ff8a90; }
.ldp-tile[data-state="avoid"]::after{ content:"AVOID"; position:absolute; top:4px; right:5px;
  font-size:6.5px; font-weight:900; letter-spacing:.08em; color:#ff8a90; }
/* rarer ⇒ the safer differs target */
.ldp-tile[data-state="prime"]{ border-color:rgba(75,214,192,.5); background:linear-gradient(180deg, rgba(75,214,192,.14), rgba(75,214,192,.04)); }
.ldp-tile[data-state="prime"] .ldp-bar > i{ background:#4bd6c0; }
.ldp-tile[data-state="prime"] .ldp-pct{ color:#5fe6cf; }
.ldp-tile[data-state="prime"]::after{ content:"PRIME"; position:absolute; top:4px; right:5px;
  font-size:6.5px; font-weight:900; letter-spacing:.08em; color:#5fe6cf; }

/* BLUE + ✓ — the digit you selected */
.ldp-tile.is-sel{ border-color:#4ea7ff !important;
  background:linear-gradient(180deg, rgba(78,167,255,.24), rgba(78,167,255,.08)) !important;
  box-shadow:0 0 0 1px rgba(78,167,255,.4), 0 8px 22px -12px rgba(78,167,255,.8); }
.ldp-tile.is-sel::before{ content:"✓"; position:absolute; top:4px; left:6px; font-size:11px; font-weight:900; color:#4ea7ff; }

/* GREEN — the digit that just landed */
.ldp-tile.is-live{ animation:ldpLand .5s ease; }
.ldp-tile.is-live .ldp-d{ color:#4bd6c0; text-shadow:0 0 14px rgba(75,214,192,.7); }
@keyframes ldpLand{ 0%{ transform:scale(1) } 45%{ transform:scale(1.09) } 100%{ transform:scale(1) } }

/* settlement flash (gmFlashResultEl) — $ for a win, ✕ for a loss */
.ldp-tile .dres-badge{ position:absolute; bottom:4px; right:6px; font-size:13px; font-weight:900; }
.ldp-tile.dres-win{ border-color:#4bd6c0 !important; }
.ldp-tile.dres-win .dres-badge{ font-size:0; color:#4bd6c0; }
.ldp-tile.dres-win .dres-badge::after{ content:"$"; font-size:15px; }
.ldp-tile.dres-loss{ border-color:#ff444f !important; }
.ldp-tile.dres-loss .dres-badge{ color:#ff6b73; }

/* ── footer + warmup ─────────────────────────────────────────────────────── */
.ldp-foot{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
.ldp-foot-c{ padding:8px; border-radius:10px; text-align:center;
  background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.07); }
.ldp-foot-c u{ display:block; text-decoration:none; font-size:8.5px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:#8b93a8; }
.ldp-foot-c b{ display:block; font-size:16px; font-weight:900; color:#e6ebf2; }
.ldp-warm{ height:6px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; margin-top:10px; }
.ldp-warm > i{ display:block; height:100%; width:0; border-radius:99px;
  background:linear-gradient(90deg,#4ea7ff,#4bd6c0); transition:width .5s ease; }
.ldp-warm-t{ font-size:10px; color:#8b93a8; margin-top:6px; line-height:1.45; }

/* ── auto engine buttons — vertical, tactile ─────────────────────────────── */
.ldp-autos{ display:flex; flex-direction:column; gap:9px; margin:14px 0 6px; }
.ldp-auto{
  position:relative; display:flex; align-items:center; gap:11px; width:100%;
  min-height:58px; padding:11px 14px; border-radius:14px; cursor:pointer; font:inherit;
  text-align:left; color:#fff; border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg, var(--a1), var(--a2));
  box-shadow:0 10px 24px -14px var(--a2), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .12s, box-shadow .16s, filter .16s;
  overflow:hidden;
}
.ldp-auto::before{                       /* moving sheen — reads as "live" */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg, transparent 35%, rgba(255,255,255,.22) 50%, transparent 65%);
  transform:translateX(-120%); animation:ldpSheen 3.6s ease-in-out infinite;
}
.ldp-auto:active{ transform:translateY(2px) scale(.995); box-shadow:0 4px 12px -8px var(--a2); }
@keyframes ldpSheen{ 0%,72%{ transform:translateX(-120%) } 92%,100%{ transform:translateX(120%) } }
.ldp-auto-ic{ font-size:17px; flex:none; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5)); }
.ldp-auto-tx{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.ldp-auto-tx b{ font-size:13px; font-weight:900; letter-spacing:.03em; }
.ldp-auto-tx i{ font-style:normal; font-size:9.5px; font-weight:600; opacity:.92; line-height:1.35; }
.ldp-auto-cd{ flex:none; font-size:12px; font-weight:900; opacity:.95; min-width:34px; text-align:right; }

.ldp-auto.a-red   { --a1:#ff5a63; --a2:#c81e2b; }
.ldp-auto.a-pink  { --a1:#ff7ac0; --a2:#d81b7f; }
.ldp-auto.a-orange{ --a1:#ffa74d; --a2:#e06a00; }
.ldp-auto.a-purple{ --a1:#b07cff; --a2:#6a30d0; }
.ldp-auto.a-yellow{ --a1:#ffd24d; --a2:#d99b00; color:#2a1f00; }
.ldp-auto.a-yellow .ldp-auto-tx i{ opacity:.8; }
.ldp-auto.a-blue  { --a1:#5aa9ff; --a2:#1b62d8; }

/* cooling + locked states carry text, not just dimming */
.ldp-auto[data-cooling="1"]{ filter:grayscale(.55) brightness(.72); cursor:progress; }
.ldp-auto[data-cooling="1"]::before{ animation:none; }
.ldp-autos[data-armed="0"] .ldp-auto{ filter:grayscale(.75) brightness(.6); cursor:not-allowed; }
.ldp-autos[data-armed="0"] .ldp-auto::before{ animation:none; }
.ldp-autos-note{ font-size:10px; color:#8b93a8; line-height:1.5; margin-bottom:10px; }

/* ── phones ──────────────────────────────────────────────────────────────── */
@media (max-width:560px){
  .ldp-grid{ grid-template-columns:repeat(5,1fr); gap:6px; }
  .ldp-tile{ min-height:84px; padding:9px 2px 7px; border-radius:11px; }
  .ldp-d{ font-size:21px; }
  .ldp-auto{ min-height:62px; }          /* comfortable thumb target */
  .ldp-auto-tx b{ font-size:12.5px; }
  .ldp-auto::before{ animation:none; }   /* no sheen repaint cost on mobile */
}


/* ═══════════════════════════════════════════════════════════════════════════
   at98 — LAST DIGIT PREDICTION: realistic keycap tiles, compact pop, real
   dropdowns. Overrides the at93 block (later rule, same specificity wins).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── DIGIT TILES: physical keycaps, not flat boxes ───────────────────────── */
.ldp-grid{ display:grid !important; grid-template-columns:repeat(5,1fr); gap:10px; }
.ldp-tile{
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:flex-start; gap:0; min-height:0; padding:12px 6px 9px;
  border-radius:14px; cursor:pointer; font:inherit; color:#e9eef5; overflow:hidden;
  /* a real key: light from above, darker base, crisp top edge, seated shadow */
  background:
    linear-gradient(180deg, rgba(255,255,255,.13) 0%, rgba(255,255,255,.03) 38%, rgba(0,0,0,.16) 100%),
    linear-gradient(180deg, #2b3440 0%, #1b222c 100%);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -2px 5px rgba(0,0,0,.45),
    0 3px 0 rgba(0,0,0,.45),
    0 8px 18px -8px rgba(0,0,0,.75);
  transition:transform .11s cubic-bezier(.3,1.4,.5,1), box-shadow .14s, border-color .16s;
}
.ldp-tile:hover{ transform:translateY(-1px); }
.ldp-tile:active{
  transform:translateY(3px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 3px rgba(0,0,0,.5);
}
.ldp-d{
  font-size:27px; font-weight:900; line-height:1; letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
  text-shadow:0 1px 0 rgba(255,255,255,.18), 0 2px 6px rgba(0,0,0,.6);
}
/* frequency: a slim seated meter, not a floating stub */
.ldp-bar{
  width:calc(100% - 14px); height:5px; margin:9px 0 6px; border-radius:99px;
  display:block; background:rgba(0,0,0,.42);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.6); overflow:hidden;
}
.ldp-bar > i{
  display:block; height:100%; border-radius:99px;
  background:linear-gradient(90deg, rgba(255,255,255,.5), rgba(255,255,255,.85));
  box-shadow:0 0 8px rgba(255,255,255,.35);
  transition:width .5s cubic-bezier(.22,1,.36,1), background .3s;
}
.ldp-pct{ font-size:10.5px; font-weight:900; color:#c6cfdb; font-variant-numeric:tabular-nums; }
.ldp-gap{ font-size:8.5px; font-weight:700; color:#79839a; margin-top:1px; font-variant-numeric:tabular-nums; }

/* states — colour AND a label, never colour alone */
.ldp-tile[data-state="avoid"]{
  border-color:rgba(255,86,96,.6);
  background:linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(255,86,96,.1) 40%, rgba(120,20,26,.5) 100%),
             linear-gradient(180deg,#3a2128 0%,#25141a 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24), inset 0 -2px 5px rgba(0,0,0,.5),
             0 3px 0 rgba(90,15,20,.6), 0 8px 20px -8px rgba(255,68,79,.45);
}
.ldp-tile[data-state="avoid"] .ldp-bar > i{ background:linear-gradient(90deg,#ff8a90,#ff4a56); box-shadow:0 0 10px rgba(255,74,86,.7); }
.ldp-tile[data-state="avoid"] .ldp-pct{ color:#ff9aa0; }
.ldp-tile[data-state="prime"]{
  border-color:rgba(75,214,192,.55);
  background:linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(75,214,192,.1) 40%, rgba(10,80,70,.45) 100%),
             linear-gradient(180deg,#1d3a37 0%,#122523 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24), inset 0 -2px 5px rgba(0,0,0,.5),
             0 3px 0 rgba(8,70,60,.6), 0 8px 20px -8px rgba(75,214,192,.45);
}
.ldp-tile[data-state="prime"] .ldp-bar > i{ background:linear-gradient(90deg,#7df0da,#35c9b0); box-shadow:0 0 10px rgba(75,214,192,.7); }
.ldp-tile[data-state="prime"] .ldp-pct{ color:#6fe8d2; }
.ldp-tile[data-state="avoid"]::after,
.ldp-tile[data-state="prime"]::after{
  position:absolute; top:5px; right:6px; font-size:6px; font-weight:900; letter-spacing:.1em;
  padding:2px 4px; border-radius:4px; background:rgba(0,0,0,.4);
}
.ldp-tile[data-state="avoid"]::after{ content:"AVOID"; color:#ff9aa0; }
.ldp-tile[data-state="prime"]::after{ content:"PRIME"; color:#6fe8d2; }

/* selected — blue, lit from within */
.ldp-tile.is-sel{
  border-color:#5ab0ff !important;
  background:linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(90,176,255,.2) 40%, rgba(12,52,110,.6) 100%),
             linear-gradient(180deg,#1e3350 0%,#14243d 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34), inset 0 -2px 6px rgba(0,0,0,.45),
             0 3px 0 rgba(10,50,105,.7), 0 10px 26px -8px rgba(90,176,255,.75),
             0 0 0 1px rgba(90,176,255,.45) !important;
}
.ldp-tile.is-sel::before{
  content:"✓"; position:absolute; top:4px; left:6px; font-size:10px; font-weight:900; color:#9fd0ff;
  text-shadow:0 0 8px rgba(90,176,255,.9);
}
.ldp-tile.is-sel .ldp-d{ color:#d6ebff; text-shadow:0 0 14px rgba(90,176,255,.8); }

/* live landed digit */
.ldp-tile.is-live .ldp-d{ color:#5fe6cf; text-shadow:0 0 16px rgba(75,214,192,.85); }
.ldp-tile.is-live{ animation:ldpLand .55s cubic-bezier(.3,1.5,.5,1); }

/* ── COMPACT EXECUTION POP ───────────────────────────────────────────────── */
.sentinel-pop-card.sentinel-dock{
  width:min(272px, 84vw) !important; max-width:84vw !important;
  padding:12px !important; gap:8px !important; border-radius:16px !important;
}
.sentinel-pop-card.sentinel-dock .gen-dock-head{ margin:0 0 2px !important; }
.sentinel-pop-card.sentinel-dock .gen-dock-title{ font-size:10px !important; letter-spacing:.08em; }
.sentinel-pop-card.sentinel-dock .gen-dock-rows{ gap:5px !important; }
.sentinel-pop-card.sentinel-dock .gdk{ padding:7px 9px !important; border-radius:9px !important; font-size:10px !important; }
.sentinel-pop-card.sentinel-dock .gdk b{ font-size:12.5px !important; }
.sentinel-pop-card.sentinel-dock .genesis-fire{
  width:100% !important; min-height:44px !important; padding:11px !important;
  font-size:13px !important; border-radius:11px !important; margin:2px 0 0 !important;
}
.sentinel-pop-card.sentinel-dock .spop-sub{
  font-size:9.5px !important; line-height:1.4; text-align:center; margin:0 !important; opacity:.85;
}
.sentinel-pop-card.sentinel-dock .gm-salvo-btn{ display:none !important; }

/* ── DROPDOWNS: real, seated controls ────────────────────────────────────── */
.ldp-sel{
  width:100%; min-height:48px; padding:12px 40px 12px 14px; border-radius:12px;
  font:inherit; font-size:14.5px; font-weight:800; color:#e9eef5;
  -webkit-appearance:none; appearance:none; cursor:pointer; line-height:1.2;
  background:
    linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,0)),
    linear-gradient(180deg, #232c38, #171d26);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15), 0 3px 10px -6px rgba(0,0,0,.8);
  transition:border-color .16s, box-shadow .16s;
}
.ldp-fld{ position:relative; }
.ldp-fld::after{
  content:""; position:absolute; right:16px; bottom:19px; width:8px; height:8px;
  border-right:2px solid #93a0b4; border-bottom:2px solid #93a0b4;
  transform:rotate(45deg); pointer-events:none; border-radius:1px;
}
.ldp-fld:has(.ldp-inp)::after, .ldp-fld:has(.ldp-fixed)::after{ display:none; }
.ldp-sel:hover{ border-color:rgba(255,255,255,.24); }
.ldp-sel:focus{ outline:none; border-color:#5ab0ff; box-shadow:inset 0 1px 0 rgba(255,255,255,.15), 0 0 0 3px rgba(90,176,255,.2); }
.ldp-sel option{ background:#171d26; color:#e9eef5; font-weight:700; }

.ldp-inp{
  min-height:48px; border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,0)), linear-gradient(180deg,#232c38,#171d26);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15), 0 3px 10px -6px rgba(0,0,0,.8);
}
.ldp-inp:focus-within{ border-color:#5ab0ff; box-shadow:inset 0 1px 0 rgba(255,255,255,.15), 0 0 0 3px rgba(90,176,255,.2); }
.ldp-fixed{ min-height:48px; border-radius:12px; }

@media (max-width:560px){
  .ldp-grid{ gap:7px; }
  .ldp-tile{ padding:11px 3px 8px; border-radius:12px; }
  .ldp-d{ font-size:23px; }
  .ldp-bar{ width:calc(100% - 8px); margin:8px 0 5px; }
  .sentinel-pop-card.sentinel-dock{ width:min(262px, 86vw) !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   at99 — ⚠ THE DROPDOWNS ARE NOT NATIVE SELECTS.
   `gmCustomSelect` wraps every <select> in a `.gm-sel-wrap`, sets the real
   <select> to display:none, and renders a `.gm-sel-btn` in its place. So all the
   `.ldp-sel` styling in at93/at98 was invisible — verified live: the select
   measured 0x0 while a 44px `.gm-sel-btn` sat next to it.
   The visible control must be styled, and the at98 chevron pseudo has to go
   because the component already draws its own `.gm-sel-chev`.
   ═══════════════════════════════════════════════════════════════════════════ */
.ldp-fld::after{ display:none !important; }          /* component draws its own chevron */
.ldp-fld .gm-sel-wrap{ display:block; width:100%; position:relative; }

.ldp-fld .gm-sel-btn{
  width:100% !important; min-height:50px !important;
  padding:13px 44px 13px 15px !important; border-radius:13px !important;
  font:inherit !important; font-size:14.5px !important; font-weight:800 !important;
  color:#e9eef5 !important; text-align:left !important; cursor:pointer;
  display:flex !important; align-items:center; gap:10px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0)),
    linear-gradient(180deg, #242e3b, #161c25) !important;
  border:1px solid rgba(255,255,255,.15) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.17), 0 4px 12px -7px rgba(0,0,0,.9) !important;
  transition:border-color .16s, box-shadow .16s, transform .1s;
}
.ldp-fld .gm-sel-btn:hover{ border-color:rgba(255,255,255,.27) !important; }
.ldp-fld .gm-sel-btn:active{ transform:translateY(1px); }
.ldp-fld .gm-sel-wrap[data-open="1"] .gm-sel-btn,
.ldp-fld .gm-sel-wrap.open .gm-sel-btn,
.ldp-fld .gm-sel-btn:focus-visible{
  border-color:#5ab0ff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.17), 0 0 0 3px rgba(90,176,255,.22) !important;
  outline:none;
}
.ldp-fld .gm-sel-val{
  flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-weight:800; letter-spacing:.01em;
}
.ldp-fld .gm-sel-chev{
  position:absolute; right:16px; top:50%; transform:translateY(-50%);
  width:9px; height:9px; border:none !important; font-size:0; opacity:.75;
}
.ldp-fld .gm-sel-chev::after{
  content:""; position:absolute; inset:0; margin:auto; width:8px; height:8px;
  border-right:2px solid #9aa7bb; border-bottom:2px solid #9aa7bb;
  transform:rotate(45deg) translate(-2px,-2px); border-radius:1px;
}
.ldp-fld .gm-sel-wrap[data-open="1"] .gm-sel-chev,
.ldp-fld .gm-sel-wrap.open .gm-sel-chev{ transform:translateY(-50%) rotate(180deg); }

/* the open menu — match the card, keep the big touch rows from at82 */
.ldp-fld .gm-sel-menu, .gm-sel-menu{
  border-radius:14px !important; padding:8px !important;
  background:linear-gradient(180deg,#1e2632,#141a22) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 26px 60px -20px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.1) !important;
}
.gm-sel-opt{ border-radius:10px !important; font-weight:800 !important; }
.gm-sel-opt:hover{ background:rgba(90,176,255,.16) !important; }
.gm-sel-opt[aria-selected="true"], .gm-sel-opt.is-sel, .gm-sel-opt.on{
  background:rgba(90,176,255,.22) !important; color:#dbeeff !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   b3 — EXECUTION POP: the button, and nothing else.
   The dock layout (title bar + 4 info rows + sub-line) repeated what the digit
   field already shows. Stripped to a single floating action on a transparent
   backdrop; the button carries the digit, so no context is lost.
   Backdrop tap still closes (existing #sentinel-pop click handler).
   ═══════════════════════════════════════════════════════════════════════════ */
#sentinel-pop{
  background:rgba(6,10,16,.42) !important;          /* see the field behind it */
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
@media (max-width:900px){                            /* phones: no blur (GPU cost) */
  #sentinel-pop{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
}

.sentinel-pop-card.sentinel-dock{
  width:auto !important; max-width:none !important; min-width:0 !important;
  padding:0 !important; gap:0 !important;
  background:none !important; border:none !important; box-shadow:none !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
/* everything except the fire button is gone */
.sentinel-pop-card.sentinel-dock .spop-grip,
.sentinel-pop-card.sentinel-dock .gen-dock-head,
.sentinel-pop-card.sentinel-dock .gen-dock-rows,
.sentinel-pop-card.sentinel-dock .gen-dock-mods,
.sentinel-pop-card.sentinel-dock .spop-sub,
.sentinel-pop-card.sentinel-dock .gm-salvo-btn{ display:none !important; }

/* the one control — compact, tactile, legible on any background */
.sentinel-pop-card.sentinel-dock .genesis-fire#ldp-fire{
  display:inline-flex !important; align-items:center; justify-content:center;
  width:auto !important; min-width:190px; min-height:52px !important;
  margin:0 !important; padding:14px 26px !important;
  border-radius:14px !important;
  font-size:14.5px !important; font-weight:900 !important; letter-spacing:.04em;
  color:#08211c !important; white-space:nowrap;
  background:linear-gradient(180deg,#6ff0cf,#25c3a2) !important;
  border:1px solid rgba(255,255,255,.4) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.6),
    0 4px 0 rgba(12,120,98,.9),
    0 16px 34px -12px rgba(45,220,180,.75) !important;
  transition:transform .1s, box-shadow .14s;
  animation:ldpFirePop .22s cubic-bezier(.3,1.5,.5,1);
}
.sentinel-pop-card.sentinel-dock .genesis-fire#ldp-fire:active{
  transform:translateY(3px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 1px 0 rgba(12,120,98,.9) !important;
}
@keyframes ldpFirePop{ from{ transform:scale(.9); opacity:0 } to{ transform:scale(1); opacity:1 } }

@media (max-width:560px){
  .sentinel-pop-card.sentinel-dock .genesis-fire#ldp-fire{
    min-width:170px; min-height:54px !important; font-size:14px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   b5 — WIN / LOSS on the settled digit.
   Win  → the whole key floods GREEN and carries a $
   Loss → the whole key floods RED and carries an ✕
   The glyph is written by JS (see the gmFlashResultEl wrapper) because a
   higher-specificity `.dres-badge` rule made the CSS swap unreliable — this
   block only does colour, weight and motion.
   `.ldp-res` is added alongside dres-win/dres-loss and removed after 3.2s.
   ═══════════════════════════════════════════════════════════════════════════ */

/* the badge itself — big, centred on the key, unmistakable */
.ldp-tile .dres-badge{
  position:absolute !important; top:50% !important; left:50% !important;
  right:auto !important; bottom:auto !important;
  transform:translate(-50%,-50%) !important;
  font-size:30px !important; font-weight:900 !important; line-height:1 !important;
  pointer-events:none; z-index:3;
  animation:ldpResPop .34s cubic-bezier(.3,1.6,.5,1);
}
.ldp-tile.dres-win  .dres-badge{ color:#eafff8 !important; text-shadow:0 2px 10px rgba(0,0,0,.55), 0 0 18px rgba(90,255,214,.9) !important; }
.ldp-tile.dres-loss .dres-badge{ color:#fff0f1 !important; text-shadow:0 2px 10px rgba(0,0,0,.55), 0 0 18px rgba(255,90,100,.9) !important; }
@keyframes ldpResPop{ from{ transform:translate(-50%,-50%) scale(.4); opacity:0 } to{ transform:translate(-50%,-50%) scale(1); opacity:1 } }

/* WIN — flood the key green, dim its own readout so the $ owns the tile */
.ldp-tile.dres-win.ldp-res{
  border-color:#4bd6c0 !important;
  background:linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(75,214,192,.5) 42%, rgba(9,110,92,.9) 100%),
             linear-gradient(180deg,#12564a,#0b3730) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), inset 0 -2px 6px rgba(0,0,0,.4),
             0 3px 0 rgba(8,90,74,.9), 0 12px 30px -8px rgba(75,214,192,.85),
             0 0 0 1px rgba(75,214,192,.6) !important;
  animation:ldpResShake .42s ease;
}
/* LOSS — flood red */
.ldp-tile.dres-loss.ldp-res{
  border-color:#ff525d !important;
  background:linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,82,93,.48) 42%, rgba(130,14,22,.9) 100%),
             linear-gradient(180deg,#66151d,#3d0d13) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4), inset 0 -2px 6px rgba(0,0,0,.45),
             0 3px 0 rgba(105,12,20,.9), 0 12px 30px -8px rgba(255,68,79,.8),
             0 0 0 1px rgba(255,82,93,.55) !important;
  animation:ldpResShake .42s ease;
}
@keyframes ldpResShake{ 0%,100%{ transform:translateY(0) } 30%{ transform:translateY(-3px) } 60%{ transform:translateY(1px) } }

/* while a result is showing, fade the tile's own numbers so the mark reads first */
.ldp-tile.ldp-res .ldp-d,
.ldp-tile.ldp-res .ldp-pct,
.ldp-tile.ldp-res .ldp-gap,
.ldp-tile.ldp-res .ldp-bar{ opacity:.22 !important; transition:opacity .2s; }
.ldp-tile.ldp-res::after{ opacity:0 !important; }     /* hide AVOID/PRIME chip briefly */

@media (max-width:560px){
  .ldp-tile .dres-badge{ font-size:26px !important; }
}

/* b6 — ⚠ the at93 `::after{content:"$"}` still painted a SECOND dollar sign on top of
   the one the JS wrapper writes into .dres-badge, so a win rendered "$$". The glyph is
   owned by JS now; the pseudo must draw nothing. */
.ldp-tile .dres-badge::after,
.ldp-tile.dres-win .dres-badge::after,
.ldp-tile.dres-loss .dres-badge::after{ content:none !important; display:none !important; }

/* b8 — ⚠ the stake input has NO class attribute, so the at92 specificity hack
   `[class][class] input{min-height:44px}` could not match it and it measured 43px.
   Target it by id (and any classless control in the card) so the 44px touch
   minimum holds everywhere. */
#ldp-stake,
.ldp-card input, .ldp-card select, .ldp-card button{ min-height:44px !important; }
.ldp-inp{ align-items:stretch; }
.ldp-inp #ldp-stake{ height:auto; }

/* b9 — green PENTA button + the analyzer header is gone (title/subtitle removed),
   so the card must not keep the header's top spacing. */
.ldp-auto.a-green{ --a1:#5ce88f; --a2:#18a552; color:#04240f; }
.ldp-auto.a-green .ldp-auto-tx i{ opacity:.82; }
article.analyzer[data-analyzer="matches"]{ padding-top:14px; }
article.analyzer[data-analyzer="matches"] > header{ display:none !important; }
article.analyzer[data-analyzer="matches"] #ldp-settings{ margin-top:0; }


/* ═══════════════════════════════════════════════════════════════════════════
   c1 — manual execute button · live ON/OFF engine states · draggable pop + cancel
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── ⚡ MANUAL EXECUTE (above the engines) ───────────────────────────────── */
.ldp-exec{
  display:flex; align-items:center; gap:12px; width:100%;
  min-height:62px; padding:13px 16px; margin:0 0 12px;
  border-radius:15px; cursor:pointer; font:inherit; text-align:left;
  color:#04210f; border:1px solid rgba(255,255,255,.42);
  background:linear-gradient(180deg,#8ff5c2,#23c97e);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 5px 0 rgba(14,120,72,.9),
             0 16px 32px -14px rgba(35,201,126,.85);
  transition:transform .11s, box-shadow .14s, filter .16s;
}
.ldp-exec:active{ transform:translateY(4px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), 0 1px 0 rgba(14,120,72,.9); }
.ldp-exec-ic{ font-size:20px; flex:none; filter:drop-shadow(0 2px 3px rgba(0,0,0,.35)); }
.ldp-exec-tx{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.ldp-exec-tx b{ font-size:13.5px; font-weight:900; letter-spacing:.03em; }
.ldp-exec-tx i{ font-style:normal; font-size:10px; font-weight:700; opacity:.78; }
.ldp-exec-d{
  flex:none; min-width:38px; height:38px; border-radius:11px;
  display:grid; place-items:center; font-size:19px; font-weight:900;
  background:rgba(0,0,0,.24); color:#04210f; border:1px solid rgba(255,255,255,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
}
.ldp-exec[data-armed="0"]{ filter:grayscale(.7) brightness(.62); cursor:not-allowed; }

/* ── ENGINE TOGGLES: OFF is dim, ON is lit and pulsing ───────────────────── */
.ldp-auto[data-on="0"]{ filter:saturate(.42) brightness(.72); }
.ldp-auto[data-on="0"]::before{ animation:none; }
.ldp-auto[data-on="1"]{
  filter:none;
  box-shadow:0 0 0 2px rgba(255,255,255,.5), 0 10px 26px -10px var(--a2),
             inset 0 1px 0 rgba(255,255,255,.3);
}
.ldp-auto[data-on="1"] .ldp-auto-cd{
  background:rgba(0,0,0,.34); border-radius:999px; padding:3px 9px; min-width:42px;
}
/* a live dot so ON reads at a glance, not by colour alone */
.ldp-auto[data-on="1"] .ldp-auto-ic::after{
  content:""; position:absolute; margin:-14px 0 0 -6px; width:7px; height:7px;
  border-radius:50%; background:#fff; box-shadow:0 0 8px #fff;
  animation:ldpLiveDot 1.3s ease-in-out infinite;
}
.ldp-auto-ic{ position:relative; }
@keyframes ldpLiveDot{ 0%,100%{ opacity:1 } 50%{ opacity:.25 } }
.ldp-auto-cd{ font-variant-numeric:tabular-nums; }

/* ── POP: cancel + draggable ─────────────────────────────────────────────── */
.sentinel-pop-card.sentinel-dock .ldp-cancel{
  display:inline-flex !important; align-items:center; justify-content:center;
  margin:8px auto 0 !important; padding:9px 18px !important;
  min-height:38px; border-radius:11px; cursor:pointer; font:inherit;
  font-size:11.5px !important; font-weight:800; letter-spacing:.03em;
  color:#cfd8e4; background:rgba(14,19,26,.86);
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 6px 16px -10px #000;
}
.sentinel-pop-card.sentinel-dock .ldp-cancel:active{ transform:translateY(1px); }
/* the card is a column so Fire sits above Cancel */
.sentinel-pop-card.sentinel-dock{
  display:flex !important; flex-direction:column !important; align-items:center !important;
  cursor:grab;
}
.sentinel-pop-card.sentinel-dock[data-dragging="1"]{ cursor:grabbing; }
/* while dragging, the overlay must not re-centre it */
#sentinel-pop{ align-items:center; justify-content:center; }

@media (max-width:560px){
  .ldp-exec{ min-height:66px; }
  .ldp-exec-tx b{ font-size:13px; }
}

/* c2 — the "🛡 DIFFERS ENGINE" strap above the digit field is a ::before on the
   panel (aether.css ~11168). Removed: the card is named G Digit now and the trade
   type is already stated in Strategy Settings, so the strap was noise. */
[data-analyzer="matches"] #digital-sentinel::before{ content:none !important; display:none !important; margin:0 !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   c4 — 🧠 INTELLIGENT DIFFERS: a horizontal scanner strip above the digit field.
   Left = switch + status · middle = the 30-tick distribution · right = the pick.
   ═══════════════════════════════════════════════════════════════════════════ */
.idf{
  display:flex; align-items:center; gap:14px; margin:0 0 12px; padding:12px 14px;
  border-radius:16px; overflow:hidden; position:relative;
  background:linear-gradient(140deg, rgba(30,40,54,.82), rgba(13,18,25,.9));
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 14px 30px -24px #000, inset 0 1px 0 rgba(255,255,255,.06);
  transition:border-color .2s, box-shadow .2s;
}
.idf[data-on="1"]{
  border-color:rgba(126,215,255,.45);
  box-shadow:0 16px 34px -20px rgba(90,190,255,.55), inset 0 1px 0 rgba(255,255,255,.1);
}
.idf[data-on="1"]::before{                       /* a slow scan sweep while live */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg, transparent 38%, rgba(126,215,255,.14) 50%, transparent 62%);
  transform:translateX(-110%); animation:idfScan 3.4s linear infinite;
}
@keyframes idfScan{ to{ transform:translateX(110%) } }

.idf-l{ display:flex; align-items:center; gap:11px; flex:none; min-width:0; }
.idf-sw{
  position:relative; width:50px; height:28px; flex:none; border-radius:999px; cursor:pointer;
  background:rgba(0,0,0,.42); border:1px solid rgba(255,255,255,.16); padding:0;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.55); transition:background .2s, border-color .2s;
}
.idf-sw > i{
  position:absolute; top:2px; left:2px; width:22px; height:22px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#c7d2e0); box-shadow:0 2px 5px rgba(0,0,0,.55);
  transition:transform .22s cubic-bezier(.3,1.4,.5,1), background .2s;
}
.idf[data-on="1"] .idf-sw{ background:linear-gradient(180deg,#3fa9ff,#1c6fd0); border-color:rgba(126,215,255,.6); }
.idf[data-on="1"] .idf-sw > i{ transform:translateX(22px); background:linear-gradient(180deg,#fff,#dbeaff); }

.idf-t{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.idf-t b{ font-size:11.5px; font-weight:900; letter-spacing:.07em; color:#e6ebf2; white-space:nowrap; }
.idf-t i{ font-style:normal; font-size:9.5px; color:#8b93a8; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; max-width:190px; }
.idf[data-on="1"] .idf-t i{ color:#9ed6ff; }

/* the 30-tick distribution — 10 little columns */
.idf-bars{ flex:1; display:flex; align-items:flex-end; gap:3px; height:44px; min-width:0; }
.idf-b{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; min-width:0; }
.idf-b > i{ display:block; width:100%; max-width:14px; height:var(--h,10%); border-radius:3px 3px 0 0;
  background:rgba(255,255,255,.2); transition:height .45s cubic-bezier(.22,1,.36,1), background .25s; }
.idf-b > u{ text-decoration:none; font-size:7.5px; font-weight:800; color:#69738a; margin-top:3px; }
.idf-b.pick > i{ background:linear-gradient(180deg,#7ee0ff,#2f9fe8); box-shadow:0 0 10px rgba(90,190,255,.8); }
.idf-b.pick > u{ color:#9ed6ff; }

.idf-r{ display:flex; align-items:center; gap:10px; flex:none; }
.idf-pick{ text-align:center; }
.idf-pick u{ display:block; text-decoration:none; font-size:7.5px; font-weight:900;
  letter-spacing:.09em; color:#8b93a8; }
.idf-pick b{
  display:block; font-size:30px; font-weight:900; line-height:1.05; color:#e6ebf2;
  font-variant-numeric:tabular-nums; text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.idf[data-on="1"] .idf-pick b{ color:#9ed6ff; text-shadow:0 0 16px rgba(90,190,255,.8); }
.idf-use{
  min-height:40px; padding:0 16px; border-radius:11px; cursor:pointer; font:inherit;
  font-size:11.5px; font-weight:900; letter-spacing:.05em; color:#04223b;
  background:linear-gradient(180deg,#8fd8ff,#2f9fe8);
  border:1px solid rgba(255,255,255,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 4px 0 rgba(16,90,150,.9);
  transition:transform .1s, filter .16s;
}
.idf-use:active{ transform:translateY(3px); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 1px 0 rgba(16,90,150,.9); }
.idf-use:disabled{ filter:grayscale(.75) brightness(.62); cursor:not-allowed; }

/* phones: keep it horizontal but drop the bar strip, which is the least critical part */
@media (max-width:560px){
  .idf{ gap:10px; padding:11px; }
  .idf-bars{ display:none; }
  .idf-l{ flex:1; min-width:0; }
  .idf-t i{ max-width:none; }
  .idf-pick b{ font-size:27px; }
  .idf-use{ min-height:44px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   c5 — (a) un-bulk every toggle switch  (b) Intelligent Differs, upgraded
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── (a) SWITCHES WERE BULKY — my own accessibility rule did it ───────────
   at92 forced `[class][class] button/select/input { min-height:44px !important }`
   to guarantee touch targets. That is right for real buttons but wrong for a
   switch TRACK: every toggle on every analyzer was inflated into a 44px slab
   (measured: the IDF switch rendered 43px when designed at 28px).
   Fix: exempt switch tracks from the height rule, then give them back a LARGER
   INVISIBLE HIT AREA via ::after — compact to look at, still easy to hit. */
.mini-toggle, .mini-toggle input,
.idf-sw, .atk-sw, .atk-sw2, .oup-sw, .ats-sw, .ats-tog,
[role="switch"], .gm-sw, .sw, .switch-track{
  min-height:0 !important;
}
.mini-toggle{
  position:relative; display:inline-flex !important; align-items:center; gap:7px;
  padding:5px 9px !important; border-radius:999px !important;
  font-size:10.5px !important; font-weight:700; line-height:1.2;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
}
.mini-toggle::after{                 /* invisible 44px tap area, no visual weight */
  content:""; position:absolute; left:0; right:0; top:50%;
  height:44px; transform:translateY(-50%); pointer-events:none;
}
.mini-toggle input[type="checkbox"]{
  -webkit-appearance:none; appearance:none; position:relative; flex:none;
  width:30px !important; height:17px !important; border-radius:999px !important;
  background:rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.6); cursor:pointer; margin:0;
  transition:background .18s, border-color .18s;
}
.mini-toggle input[type="checkbox"]::before{
  content:""; position:absolute; top:1px; left:1px; width:13px; height:13px;
  border-radius:50%; background:linear-gradient(180deg,#fff,#c9d3e0);
  box-shadow:0 1px 3px rgba(0,0,0,.5);
  transition:transform .2s cubic-bezier(.3,1.4,.5,1);
}
.mini-toggle input[type="checkbox"]:checked{
  background:linear-gradient(180deg,#4bb4ff,#1d78d6); border-color:rgba(120,200,255,.6);
}
.mini-toggle input[type="checkbox"]:checked::before{ transform:translateX(13px); }

/* the IDF switch: back to its designed size, with the same invisible hit area */
.idf-sw{ width:46px !important; height:26px !important; padding:0 !important; }
.idf-sw > i{ width:20px; height:20px; }
.idf[data-on="1"] .idf-sw > i{ transform:translateX(20px); }
.idf-sw::after{ content:""; position:absolute; inset:-11px -8px; pointer-events:none; }

/* ── (b) INTELLIGENT DIFFERS — upgraded ──────────────────────────────────── */
.idf{ align-items:stretch; gap:16px; padding:13px 15px; }
.idf-l{ align-items:center; }
.idf-mid{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:6px; min-width:0; }
.idf-bars{ height:34px; }
.idf-b > i{ max-width:12px; }

/* scan-progress meter — fills while warming, solid once the sample is complete */
.idf-meter{ height:3px; border-radius:99px; background:rgba(255,255,255,.09); overflow:hidden; }
.idf-meter > i{ display:block; height:100%; width:0; border-radius:99px;
  background:linear-gradient(90deg,#4bb4ff,#7ee0ff); transition:width .4s ease; }

/* runner-up digits — context, so the pick is not a lone oracle number */
.idf-alts{ display:flex; gap:6px; align-items:center; }
.idf-alt{ display:inline-flex; align-items:baseline; gap:3px; padding:2px 7px;
  border-radius:7px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); }
.idf-alt b{ font-size:11px; font-weight:900; color:#c6cfdb; }
.idf-alt u{ text-decoration:none; font-size:8px; color:#79839a; }

/* the pick block */
.idf-r{ align-items:center; gap:12px; }
.idf-pick{ position:relative; min-width:58px; padding:6px 4px; border-radius:12px;
  background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.08); }
.idf[data-on="1"] .idf-pick{ border-color:rgba(126,215,255,.4);
  box-shadow:0 0 18px -6px rgba(90,190,255,.6), inset 0 1px 0 rgba(255,255,255,.08); }
.idf-conf{ display:block; font-size:7.5px; font-weight:900; letter-spacing:.1em; color:#79839a; }
.idf[data-conf="strong"] .idf-conf{ color:#5fe6cf; }
.idf[data-conf="fair"]   .idf-conf{ color:#f5b544; }
.idf[data-conf="weak"]   .idf-conf{ color:#ff8a90; }

@media (max-width:560px){
  .idf{ gap:11px; padding:11px 12px; }
  .idf-bars{ display:none; }
  .idf-alts{ gap:4px; }
  .idf-alt{ padding:2px 5px; }
  .idf-pick b{ font-size:26px; }
}

/* c6 — ⚠ THIRD time the at92 hack has outranked a later rule.
   `[class][class] button/select/input{min-height:44px!important}` is (0,3,0); my
   exemptions `.idf-sw` (0,1,0) and `.mini-toggle input` (0,2,0) both lost, so the
   switches stayed 43-54px tall. Matching its specificity with a repeated attribute
   selector finally wins. The invisible ::after hit area (c5) keeps them tappable. */
[class][class].idf-sw{
  width:46px !important; height:26px !important; min-height:0 !important;
  padding:0 !important; flex:none !important;
}
[class][class].mini-toggle{
  min-height:0 !important; height:auto !important;
  padding:5px 9px !important; align-items:center !important;
}
[class][class] .mini-toggle input[type="checkbox"],
[class][class].mini-toggle input[type="checkbox"]{
  width:30px !important; height:17px !important; min-height:0 !important;
  padding:0 !important; flex:none !important;
}
/* the same for the other analyzers' switch tracks */
[class][class].atk-sw, [class][class].atk-sw2,
[class][class].oup-sw, [class][class].ats-sw{ min-height:0 !important; }

/* c7 — ⚠ NARROW-WIDTH OVERLAP. At ~450px the Intelligent Differs row could not fit
   switch + title + alts + pick + USE side by side, so the title ran straight through
   the BEST DIGIT block. Screenshot-only bug — every DOM/size assertion passed.
   Fix: let the strip WRAP into two tidy rows instead of forcing one. */
@media (max-width:620px){
  .idf{ flex-wrap:wrap; row-gap:10px; }
  .idf-l{ flex:1 1 100%; order:1; }                 /* switch + title on their own row */
  .idf-mid{ flex:1 1 auto; order:2; min-width:0; }
  .idf-r{ flex:0 0 auto; order:3; margin-left:auto; }
  .idf-t b{ font-size:11px; }
  .idf-t i{ max-width:none; white-space:normal; line-height:1.3; }
}
@media (max-width:420px){
  .idf-alts{ display:none; }                         /* least critical piece goes first */
}
/* nothing in this card may break mid-word */
.idf-t b, .idf-t i, .idf-pick u, .idf-conf, .idf-use{ white-space:nowrap; }

/* the digit tiles' PRIME/AVOID chips and the LIVE badge were wrapping to two lines */
.ldp-tile[data-state="avoid"]::after,
.ldp-tile[data-state="prime"]::after,
.ldp-h-live, .ldp-h-t{ white-space:nowrap !important; }
.ldp-tile[data-state="avoid"]::after,
.ldp-tile[data-state="prime"]::after{ letter-spacing:.04em; padding:2px 3px; }
@media (max-width:430px){
  /* on the narrowest phones drop the chip text — the colour + bar already say it,
     and a wrapped "PRI/ME" is worse than no chip */
  .ldp-tile[data-state="avoid"]::after,
  .ldp-tile[data-state="prime"]::after{ content:"" !important; padding:0; width:6px; height:6px;
    border-radius:50%; top:5px; right:5px; }
  .ldp-tile[data-state="avoid"]::after{ background:#ff8a90; }
  .ldp-tile[data-state="prime"]::after{ background:#6fe8d2; }
}

/* c9 — the c7 narrow-screen PRIME/AVOID dot is gone. It read as an unexplained
   speck in the corner of a digit; colour + the frequency bar already carry the
   state, so on the narrowest phones the chip simply disappears. */
@media (max-width:430px){
  .ldp-tile[data-state="avoid"]::after,
  .ldp-tile[data-state="prime"]::after{
    content:none !important; display:none !important; background:none !important;
    width:0 !important; height:0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   d3 — Intelligent Differs: show the analysis happening.
   Every animation is compositor-only (transform/opacity) and stops when the card
   is off, so an always-on strip costs nothing while idle.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── the live tick stream ────────────────────────────────────────────────── */
.idf-stream{
  display:flex; align-items:center; gap:3px; height:22px; overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, #000 14%, #000 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 14%, #000 100%);
}
.idf-tk{
  flex:none; width:17px; height:19px; border-radius:5px;
  display:grid; place-items:center;
  font-size:10px; font-weight:900; font-variant-numeric:tabular-nums;
  color:#8b93a8; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.07);
  transition:color .3s, background .3s, border-color .3s;
}
.idf-tk.is-hit{                       /* the scanner's target actually landed */
  color:#ffd9dc; background:rgba(255,82,93,.22); border-color:rgba(255,82,93,.5);
}
.idf-tk.is-last{ color:#e6ebf2; background:rgba(126,215,255,.16); border-color:rgba(126,215,255,.4); }
.idf-tk.is-new{ animation:idfTickIn .42s cubic-bezier(.25,1.4,.4,1); }
@keyframes idfTickIn{
  0%   { transform:translateX(14px) scale(.6); opacity:0 }
  60%  { transform:translateX(0) scale(1.12); opacity:1 }
  100% { transform:translateX(0) scale(1); opacity:1 }
}

/* ── bars: rise into place, and the pick breathes ────────────────────────── */
.idf-b > i{ transform-origin:bottom; }
.idf[data-on="1"] .idf-b.pick > i{ animation:idfPickPulse 1.8s ease-in-out infinite; }
@keyframes idfPickPulse{
  0%,100%{ box-shadow:0 0 8px rgba(90,190,255,.55) }
  50%    { box-shadow:0 0 16px rgba(126,215,255,.95) }
}

/* ── the pick digit: a soft swap when the winner changes ─────────────────── */
.idf-pick b{ transition:transform .2s cubic-bezier(.3,1.5,.5,1); }
.idf[data-on="1"] .idf-pick b{ animation:idfPickIn .34s cubic-bezier(.25,1.5,.4,1); }
@keyframes idfPickIn{ from{ transform:scale(.72); opacity:.3 } to{ transform:scale(1); opacity:1 } }

/* ── scanning state: a travelling bar under the meter while warming up ───── */
.idf-meter{ position:relative; }
.idf[data-on="1"] .idf-meter::after{
  content:""; position:absolute; inset:0; border-radius:99px; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  transform:translateX(-100%); animation:idfMeterSweep 1.9s linear infinite;
}
.idf[data-conf="strong"] .idf-meter::after,
.idf[data-conf="fair"] .idf-meter::after,
.idf[data-conf="weak"] .idf-meter::after{ animation:none; opacity:0; }  /* sample complete */
@keyframes idfMeterSweep{ to{ transform:translateX(100%) } }

/* ── the switch gets a soft halo while live ──────────────────────────────── */
.idf[data-on="1"] .idf-sw{ box-shadow:inset 0 2px 5px rgba(0,0,0,.4), 0 0 14px -2px rgba(90,190,255,.8); }

/* ── grey sequence engine ────────────────────────────────────────────────── */
.ldp-auto.a-grey{ --a1:#9aa6b8; --a2:#4d5769; }
.ldp-auto.a-grey .ldp-auto-tx i{ opacity:.9; }

/* respect reduced motion + stop all of it on a dead card */
@media (prefers-reduced-motion:reduce){
  .idf-tk.is-new, .idf[data-on="1"] .idf-b.pick > i,
  .idf[data-on="1"] .idf-pick b, .idf[data-on="1"] .idf-meter::after{ animation:none !important; }
}
.idf[data-on="0"] .idf-meter::after{ animation:none; opacity:0; }

@media (max-width:620px){
  .idf-stream{ height:20px; }
  .idf-tk{ width:15px; height:17px; font-size:9px; }
}
@media (max-width:430px){
  .idf-stream{ display:none; }         /* the bars + pick carry it on tiny screens */
}

/* ═══════════════════════════════════════════════════════════════════════════
   d5 — IDF: mini ON/OFF button, tick-analysis readout, no USE button.
        Sequence strategy modifiers (mix / reverse) + a live cycle view.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── mini ON/OFF button (replaces the sliding switch) ────────────────────── */
.idf-btn{
  display:inline-flex; align-items:center; gap:7px; flex:none;
  min-height:34px !important; padding:7px 13px !important; border-radius:10px;
  cursor:pointer; font:inherit; font-size:11px; font-weight:900; letter-spacing:.08em;
  color:#9aa6b8; background:linear-gradient(180deg,#222b37,#161d27);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 3px 8px -5px rgba(0,0,0,.9);
  transition:color .18s, border-color .18s, box-shadow .18s, background .18s;
}
.idf-btn-dot{ width:8px; height:8px; border-radius:50%; background:#5c6678; flex:none; transition:background .2s, box-shadow .2s; }
.idf-btn[data-on="1"]{
  color:#0a2b24; background:linear-gradient(180deg,#7ef0c8,#25c39a);
  border-color:rgba(255,255,255,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 4px 0 rgba(12,120,98,.85), 0 10px 22px -10px rgba(45,220,180,.8);
}
.idf-btn[data-on="1"] .idf-btn-dot{ background:#06331f; box-shadow:0 0 8px rgba(6,51,31,.8); animation:idfDot 1.4s ease-in-out infinite; }
@keyframes idfDot{ 0%,100%{ opacity:1 } 50%{ opacity:.35 } }
.idf-btn:active{ transform:translateY(2px); }

/* ── recent-tick analysis row ────────────────────────────────────────────── */
.idf-read{ display:flex; gap:5px; flex-wrap:wrap; }
.idf-rd{
  display:inline-flex; flex-direction:column; align-items:center; gap:1px;
  padding:3px 8px; border-radius:8px; min-width:46px;
  background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.07);
}
.idf-rd u{ text-decoration:none; font-size:6.5px; font-weight:900; letter-spacing:.1em; color:#79839a; }
.idf-rd b{ font-size:11px; font-weight:900; color:#c6cfdb; font-variant-numeric:tabular-nums; }
.idf-rd.good b{ color:#5fe6cf; }
.idf-rd.warn b{ color:#f5b544; }

/* the pick block is wider now that USE is gone */
.idf-r{ gap:0; }
.idf-pick{ min-width:74px; padding:7px 10px; }

/* ── sequence strategy modifiers ─────────────────────────────────────────── */
.ldp-seqmods{ display:flex; gap:8px; }
.ldp-mod{
  flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:1px;
  min-height:48px !important; padding:8px 11px !important; border-radius:11px;
  cursor:pointer; font:inherit; text-align:left;
  color:#9aa6b8; background:linear-gradient(180deg,#222b37,#161d27);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
  transition:color .16s, border-color .16s, background .16s, box-shadow .16s;
}
.ldp-mod b{ font-size:10.5px; font-weight:900; letter-spacing:.04em; }
.ldp-mod i{ font-style:normal; font-size:8.5px; font-weight:700; opacity:.8; }
.ldp-mod[data-on="1"]{
  color:#e9eef5; background:linear-gradient(180deg,#3d4a5e,#232c3a);
  border-color:rgba(126,215,255,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 0 16px -6px rgba(90,190,255,.85);
}
.ldp-mod[data-on="1"] i{ color:#9ed6ff; opacity:1; }

/* ── the live cycle view ─────────────────────────────────────────────────── */
.ldp-seqview{
  display:flex; align-items:center; gap:5px; flex-wrap:wrap;
  padding:7px 10px; border-radius:10px;
  background:rgba(0,0,0,.24); border:1px solid rgba(255,255,255,.07);
}
.ldp-seqview-k{ font-size:7.5px; font-weight:900; letter-spacing:.12em; color:#79839a; margin-right:3px; }
.ldp-seqd{
  min-width:22px; height:22px; border-radius:6px; display:grid; place-items:center;
  font-size:11px; font-weight:900; color:#9aa6b8;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08);
  font-variant-numeric:tabular-nums; transition:all .2s;
}
.ldp-seqd.next{
  color:#04210f; background:linear-gradient(180deg,#8ff5c2,#23c97e);
  border-color:rgba(255,255,255,.4); box-shadow:0 0 12px -3px rgba(35,201,126,.9);
}
.ldp-seqarrow{ font-size:9px; color:#4d5769; }

@media (max-width:560px){
  .ldp-mod{ min-height:52px !important; }
  .idf-rd{ min-width:42px; padding:3px 6px; }
  .idf-btn{ min-height:38px !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   e1 — OVER / UNDER rebuilt: barrier selector + graded barrier matrix.
   Reuses the G Digit card/field/engine styling so the two analyzers read as
   one family; only the matrix and barrier picker are new.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── barrier picker ──────────────────────────────────────────────────────── */
.oud-bsel{ display:grid; grid-template-columns:repeat(10,1fr); gap:5px; margin-bottom:10px; }
.oud-b{
  min-height:42px !important; padding:8px 0 !important; border-radius:10px; cursor:pointer; font:inherit;
  color:#c6cfdb; background:linear-gradient(180deg,#2b3440,#1b222c);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 2px 0 rgba(0,0,0,.4);
  transition:all .14s;
}
.oud-b b{ font-size:15px; font-weight:900; font-variant-numeric:tabular-nums; }
.oud-b.is-sel{
  color:#04210f; background:linear-gradient(180deg,#8ff5c2,#23c97e);
  border-color:rgba(255,255,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 3px 0 rgba(14,120,72,.9), 0 8px 20px -8px rgba(35,201,126,.8);
}
.oud-b[data-dead="1"]{ opacity:.3; }          /* Over 9 / Under 0 can never win */
.oud-b[data-dead="1"].is-sel{ background:linear-gradient(180deg,#ff8a90,#c8323c); color:#2a0508; }

.oud-bside{ display:flex; gap:8px; margin-bottom:9px; }
.oud-side{
  flex:1; min-height:44px !important; border-radius:11px; cursor:pointer; font:inherit;
  font-size:12.5px; font-weight:900; letter-spacing:.05em; color:#9aa6b8;
  background:linear-gradient(180deg,#222b37,#161d27); border:1px solid rgba(255,255,255,.12);
  transition:all .16s;
}
.oud-side[data-on="1"]{
  color:#04223b; background:linear-gradient(180deg,#8fd8ff,#2f9fe8);
  border-color:rgba(255,255,255,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 3px 0 rgba(16,90,150,.9);
}
.oud-bline{ font-size:10.5px; line-height:1.5; color:#8b93a8; padding:8px 10px; border-radius:9px;
  background:rgba(0,0,0,.24); border:1px solid rgba(255,255,255,.07); }
.oud-bline[data-dead="1"]{ color:#ff8a90; border-color:rgba(255,68,79,.35); background:rgba(255,68,79,.08); }

/* ── the matrix ──────────────────────────────────────────────────────────── */
.oudm{ margin:0 0 12px; padding:14px; border-radius:16px;
  background:linear-gradient(170deg, rgba(20,28,38,.9), rgba(10,14,20,.94));
  border:1px solid rgba(255,255,255,.1); }
.oudm-head, .oudm-row{
  display:grid; grid-template-columns:1.25fr .8fr .9fr .7fr .9fr; gap:6px; align-items:center;
}
.oudm-head{ padding:0 10px 7px; font-size:7.5px; font-weight:900; letter-spacing:.09em; color:#69738a; }
.oudm-head span:not(:first-child){ text-align:right; }
.oudm-rows{ display:grid; gap:4px; max-height:320px; overflow-y:auto; overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch; }
.oudm-row{
  width:100%; padding:9px 10px; border-radius:10px; cursor:pointer; font:inherit; text-align:left;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07);
  transition:background .14s, border-color .14s;
  min-height:0 !important;
}
.oudm-l{ font-size:12px; font-weight:900; color:#e6ebf2; }
.oudm-v{ font-size:11px; font-weight:800; color:#c6cfdb; text-align:right; font-variant-numeric:tabular-nums; }
.oudm-v.dim{ color:#79839a; }
.oudm-v.pos{ color:#5fe6cf; } .oudm-v.neg{ color:#ff8a90; }
.oudm-g{ font-size:8px; font-weight:900; letter-spacing:.07em; text-align:right; }
.oudm-row[data-grade="prime"]{ border-color:rgba(75,214,192,.5); background:rgba(75,214,192,.1); }
.oudm-row[data-grade="prime"] .oudm-g{ color:#5fe6cf; }
.oudm-row[data-grade="good"]{ border-color:rgba(245,166,35,.35); background:rgba(245,166,35,.07); }
.oudm-row[data-grade="good"] .oudm-g{ color:#f5b544; }
.oudm-row[data-grade="avoid"] .oudm-g{ color:#79839a; }
.oudm-row.is-sel{ outline:2px solid #4ea7ff; outline-offset:-2px; }
.oudm-wait{ padding:22px 10px; text-align:center; font-size:11px; color:#8b93a8; }

/* engine hues unique to this analyzer */
.ldp-auto.a-teal  { --a1:#5fe0d0; --a2:#188f86; }
.ldp-auto.a-violet{ --a1:#b98cff; --a2:#6b33cf; }
.ldp-auto.a-amber { --a1:#ffc766; --a2:#d08a00; color:#2a1c00; }

@media (max-width:560px){
  .oud-bsel{ grid-template-columns:repeat(5,1fr); }
  .oudm-head, .oudm-row{ grid-template-columns:1.2fr .8fr .8fr .6fr .8fr; gap:4px; }
  .oudm-l{ font-size:11px; } .oudm-v{ font-size:10px; }
  .oudm{ padding:11px; }
}

/* e2 — matrix values were wrapping ("72.0 %" onto two lines) in the narrow grid.
   Screenshot-only: every DOM assertion passed. Keep each cell on one line and let
   the label column absorb the slack. */
.oudm-v, .oudm-g, .oudm-l, .oudm-head span{ white-space:nowrap; }
.oudm-head, .oudm-row{ grid-template-columns:minmax(0,1.1fr) .72fr .8fr .62fr .82fr; }
.oudm-v{ font-size:10.5px; letter-spacing:-.02em; }
.oudm-head{ font-size:7px; letter-spacing:.06em; }
@media (max-width:560px){
  .oudm-head, .oudm-row{ grid-template-columns:minmax(0,1fr) .7fr .7fr .55fr .75fr; gap:3px; }
  .oudm-row{ padding:9px 7px; }
  .oudm-l{ font-size:10.5px; } .oudm-v{ font-size:9.5px; } .oudm-g{ font-size:7px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   e3 — OVER / UNDER: merged BARRIER CORE, prediction summary, the three
   intelligence mode buttons, the last-digit tiles' barrier read-out, and the
   4-square execution pop.
   The core is nested INSIDE the settings card, so it is styled as an inset
   module (recessed, own rail) rather than another floating card — otherwise two
   card surfaces stack and the hierarchy disappears.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── the merged core ─────────────────────────────────────────────────────── */
.oudc{
  margin:16px -2px 0; padding:13px 12px 12px; border-radius:15px;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(90,176,255,.07), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.2));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 -14px 26px -20px #000;
  position:relative; overflow:hidden;
}
.oudc::before{                                  /* lit rail — alive only when ON */
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg,#5ab0ff,#4bd6c0); opacity:.85;
}
.oudc[data-on="0"]::before{ background:#4a5364; opacity:.5; }

.oudc-h{ display:flex; align-items:center; gap:10px; }
.oudc-h-t{ display:flex; flex-direction:column; gap:1px; min-width:0; flex:1; }
.oudc-h-t b{ font-size:11.5px; font-weight:900; letter-spacing:.06em; color:#e9eef5; }
.oudc-h-t i{ font-style:normal; font-size:9px; font-weight:700; color:#79839a;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.oudc-live{ flex:none; display:inline-flex; align-items:center; gap:5px; font-size:8.5px;
  font-weight:900; letter-spacing:.1em; color:#4bd6c0; }
.oudc-live i{ width:6px; height:6px; border-radius:50%; background:#4bd6c0;
  box-shadow:0 0 8px #4bd6c0; animation:ldpPulse 1.7s ease-in-out infinite; }
.oudc[data-on="0"] .oudc-live{ display:none; }

/* mini ON/OFF — a real switch, 26px. ⚠ the at92 mobile rule forces 44px on every
   button; it is out-specified at the bottom of this block. */
.oudc-sw{
  flex:none; display:inline-flex; align-items:center; gap:6px; cursor:pointer; font:inherit;
  height:26px; min-height:26px; padding:0 10px 0 8px; border-radius:99px;
  font-size:9px; font-weight:900; letter-spacing:.09em; color:#9aa6b8;
  background:linear-gradient(180deg,#273140,#18202a);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 2px 6px -4px #000;
  transition:color .18s, border-color .18s, box-shadow .18s, background .18s;
}
.oudc-sw-dot{ width:7px; height:7px; border-radius:50%; background:#4a5364;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.5); transition:background .18s, box-shadow .18s; }
.oudc-sw[aria-pressed="true"]{
  color:#d8ecff; border-color:rgba(90,176,255,.55);
  background:linear-gradient(180deg,#1d3a57,#12243a);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 12px -3px rgba(90,176,255,.7);
}
.oudc-sw[aria-pressed="true"] .oudc-sw-dot{ background:#5ab0ff; box-shadow:0 0 8px #5ab0ff; }
.oudc-sw:active{ transform:translateY(1px); }

/* collapsed — summary stays, everything analytical folds away */
.oudc[data-on="0"] .oudc-sum-cells,
.oudc[data-on="0"] .oudc-sum-rf,
.oudc[data-on="0"] .oudc-sec,
.oudc[data-on="0"] .ldp-foot,
.oudc[data-on="0"] .ldp-warm,
.oudc[data-on="0"] .ldp-warm-t{ display:none; }
.oudc[data-on="0"]{ padding-bottom:11px; }

/* ── prediction summary ──────────────────────────────────────────────────── */
.oudc-sum{ margin:11px 0 0; }
.oudc-sum-main{
  display:flex; align-items:center; gap:9px; padding:10px 11px; border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.1);
}
.oudc-sum-main > u{ text-decoration:none; flex:none; font-size:7.5px; font-weight:900;
  letter-spacing:.12em; color:#69738a; writing-mode:vertical-rl; transform:rotate(180deg); }
.oudc-sum-main > b{ flex:1; min-width:0; font-size:17px; font-weight:900; color:#e9eef5;
  letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.oudc-sum-grade{
  flex:none; font-size:8px; font-weight:900; letter-spacing:.1em; padding:5px 8px;
  border-radius:7px; background:rgba(255,255,255,.07); color:#9aa6b8;
  border:1px solid rgba(255,255,255,.1);
}
.oudc-sum-grade[data-grade="prime"]{ color:#6fe8d2; background:rgba(75,214,192,.14); border-color:rgba(75,214,192,.45); }
.oudc-sum-grade[data-grade="good"] { color:#f5b544; background:rgba(245,166,35,.12); border-color:rgba(245,166,35,.4); }
.oudc-sum-grade[data-grade="avoid"]{ color:#ff9aa0; background:rgba(255,68,79,.12); border-color:rgba(255,68,79,.4); }

.oudc-sum-cells{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin-top:6px; }
.oudc-cell{ padding:7px 4px; border-radius:9px; text-align:center;
  background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.07); }
.oudc-cell u{ display:block; text-decoration:none; font-size:7px; font-weight:900;
  letter-spacing:.05em; text-transform:uppercase; color:#69738a; white-space:nowrap; }
.oudc-cell b{ display:block; font-size:12.5px; font-weight:900; color:#e9eef5;
  font-variant-numeric:tabular-nums; white-space:nowrap; margin-top:2px; }
.oudc-cell b[data-sign="pos"]{ color:#5fe6cf; } .oudc-cell b[data-sign="neg"]{ color:#ff8a90; }
.oudc-sum-rf{
  margin-top:6px; padding:7px 9px; border-radius:9px; font-size:9px; line-height:1.5;
  color:#8b93a8; background:rgba(90,176,255,.05); border:1px solid rgba(90,176,255,.14);
}

/* ── sections inside the core ────────────────────────────────────────────── */
.oudc-sec{ margin-top:12px; padding-top:11px; border-top:1px solid rgba(255,255,255,.07); }
.oudc-lab{ display:block; font-size:7.5px; font-weight:900; letter-spacing:.12em;
  text-transform:uppercase; color:#69738a; margin-bottom:8px; }
.oudc-sec .oud-bsel{ margin-bottom:8px; }
.oudc-sec .oudm-head{ padding:0 9px 6px; }
.oudc-sec .oudm-rows{ max-height:272px; }

/* ── the three intelligence mode buttons ─────────────────────────────────── */
.oudc-mods{ display:flex; flex-direction:column; gap:7px; }
.oudc-mod{
  position:relative; display:flex; align-items:center; gap:10px; width:100%;
  padding:10px 11px 10px 13px; border-radius:12px; cursor:pointer; font:inherit;
  text-align:left; color:#c6cfdb; overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  transition:color .18s, border-color .18s, box-shadow .18s, transform .1s, background .2s;
}
.oudc-mod::before{                              /* the mode's own colour rail */
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--m, #4a5364); opacity:.45; transition:opacity .2s, box-shadow .2s;
}
.oudc-mod.m-rec{ --m:#ffc766; } .oudc-mod.m-int{ --m:#b98cff; } .oudc-mod.m-dyn{ --m:#5fe0d0; }
.oudc-mod-ic{ flex:none; width:26px; height:26px; border-radius:8px; display:grid; place-items:center;
  font-size:13px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
  transition:background .2s, border-color .2s, box-shadow .2s; }
.oudc-mod-tx{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.oudc-mod-tx b{ font-size:10.5px; font-weight:900; letter-spacing:.05em; color:#e9eef5; }
.oudc-mod-tx i{ font-style:normal; font-size:8.5px; font-weight:600; line-height:1.4; color:#79839a; }
.oudc-mod-st{
  flex:none; font-size:8px; font-weight:900; letter-spacing:.09em; color:#79839a;
  padding:4px 7px; border-radius:6px; background:rgba(0,0,0,.32);
  border:1px solid rgba(255,255,255,.08); transition:color .18s, background .18s, border-color .18s;
}
.oudc-mod:active{ transform:translateY(1px); }

/* ON — the rail lights, the icon takes the mode colour, a slow scan crosses it */
.oudc-mod[data-on="1"]{
  border-color:color-mix(in srgb, var(--m) 55%, transparent);
  background:linear-gradient(180deg, color-mix(in srgb, var(--m) 13%, transparent), rgba(255,255,255,.015));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 0 16px -6px var(--m);
}
.oudc-mod[data-on="1"]::before{ opacity:1; box-shadow:0 0 10px var(--m); }
.oudc-mod[data-on="1"] .oudc-mod-ic{
  background:color-mix(in srgb, var(--m) 22%, transparent);
  border-color:color-mix(in srgb, var(--m) 55%, transparent);
  box-shadow:0 0 12px -4px var(--m);
}
.oudc-mod[data-on="1"] .oudc-mod-tx i{ color:#9aa6b8; }
.oudc-mod[data-on="1"] .oudc-mod-st{
  color:#0d1117; background:var(--m); border-color:transparent;
}
.oudc-mod[data-on="1"]::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg, transparent 38%, color-mix(in srgb, var(--m) 26%, transparent) 50%, transparent 62%);
  transform:translateX(-120%); animation:oudcScan 4.2s ease-in-out infinite;
}
@keyframes oudcScan{ 0%,74%{ transform:translateX(-120%) } 94%,100%{ transform:translateX(120%) } }

/* ── matrix row markers ──────────────────────────────────────────────────── */
.oudm-star{ font-style:normal; color:#ffc766; margin-right:4px; text-shadow:0 0 8px rgba(255,199,102,.8); }
.oudm-rf{ font-style:normal; font-size:8.5px; margin-left:4px; opacity:.9; }

/* ── last-digit tiles: the barrier read-out line ─────────────────────────── */
.oud-t-side{ font-size:8.5px; font-weight:900; color:#79839a; margin-top:1px;
  font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.ldp-tile[data-state="prime"] .oud-t-side{ color:#6fe8d2; }
.ldp-tile[data-state="avoid"] .oud-t-side{ color:#ff9aa0; }
.ldp-tile.is-sel .oud-t-side{ color:#9fd0ff; }

/* ── 🎲 the fourth engine colour ─────────────────────────────────────────── */
.ldp-auto.a-slate{ --a1:#8e9bb0; --a2:#434d5e; }

/* ═══ ⚡ EXECUTION POP — 4 squares, draggable, transparent glass ══════════ */
.oudp{
  position:fixed; z-index:10040; width:240px; padding:11px;
  border-radius:17px; display:flex; flex-direction:column; gap:9px;
  background:linear-gradient(180deg, rgba(22,28,38,.82), rgba(10,14,20,.88));
  -webkit-backdrop-filter:blur(16px) saturate(150%); backdrop-filter:blur(16px) saturate(150%);
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 28px 60px -24px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.14);
  opacity:0; transform:translateY(8px) scale(.96); transform-origin:50% 100%;
  transition:opacity .17s ease, transform .22s cubic-bezier(.25,1.5,.45,1);
}
.oudp.is-in{ opacity:1; transform:translateY(0) scale(1); }
.oudp.is-drag{ transition:none; box-shadow:0 34px 70px -22px rgba(0,0,0,1); cursor:grabbing; }

.oudp-h{ display:flex; align-items:center; gap:8px; cursor:grab; touch-action:none;
  padding:1px 2px 2px; user-select:none; -webkit-user-select:none; }
.oudp-grip{ flex:none; width:18px; height:3px; border-radius:99px; background:rgba(255,255,255,.28);
  box-shadow:0 5px 0 -2px rgba(255,255,255,.18); }
.oudp-t{ flex:1; font-size:8.5px; font-weight:900; letter-spacing:.13em; color:#79839a; }
.oudp-t b{ font-size:13px; color:#e9eef5; letter-spacing:0; margin-left:3px;
  font-variant-numeric:tabular-nums; }
.oudp-stake{ flex:none; font-size:10px; font-weight:900; color:#9fd0ff;
  padding:3px 7px; border-radius:7px; background:rgba(90,176,255,.13);
  border:1px solid rgba(90,176,255,.3); font-variant-numeric:tabular-nums; }

/* the four squares */
.oudp-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.oudp-b{
  position:relative; aspect-ratio:1; min-height:0; width:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  padding:6px 5px; border-radius:13px; cursor:pointer; font:inherit; overflow:hidden;
  color:#fff; border:1px solid rgba(255,255,255,.18);
  background:
    linear-gradient(180deg, rgba(255,255,255,.17) 0%, rgba(255,255,255,.03) 42%, rgba(0,0,0,.2) 100%),
    linear-gradient(180deg, var(--p1), var(--p2));
  /* a real key: top highlight, seated base, cast shadow underneath */
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -2px 6px rgba(0,0,0,.4),
    0 4px 0 var(--p3),
    0 10px 20px -8px rgba(0,0,0,.8);
  transition:transform .09s cubic-bezier(.3,1.5,.5,1), box-shadow .12s, filter .16s;
}
.oudp-b.bo{ --p1:#46d6b6; --p2:#14877a; --p3:rgba(6,62,56,.85); }
.oudp-b.bu{ --p1:#ff7d86; --p2:#c32230; --p3:rgba(80,10,16,.85); }
.oudp-b:hover{ transform:translateY(-1px); }
/* the press: the key travels down onto its base and the cast shadow collapses */
.oudp-b:active{
  transform:translateY(4px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 4px rgba(0,0,0,.5), 0 0 0 var(--p3);
  filter:brightness(1.1);
}
.oudp-ic{ font-size:11px; line-height:1; opacity:.9; letter-spacing:-1px;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.6)); }
.oudp-b b{ font-size:12px; font-weight:900; letter-spacing:.02em; text-align:center;
  text-shadow:0 1px 3px rgba(0,0,0,.5); }
.oudp-b i{ font-style:normal; font-size:8px; font-weight:700; opacity:.88; text-align:center;
  font-variant-numeric:tabular-nums; }
.oudp-b.x3 b{ font-size:11px; }
.oudp-b.x3::after{                      /* 3 stacked edges = three contracts */
  content:""; position:absolute; right:6px; top:6px; width:10px; height:10px; border-radius:3px;
  background:repeating-linear-gradient(180deg, rgba(255,255,255,.5) 0 2px, transparent 2px 4px);
  opacity:.6;
}
/* grade tint on the rim — the pop tells you what you are about to take */
.oudp-b[data-grade="prime"]{ border-color:rgba(111,232,210,.9); box-shadow:
  inset 0 1px 0 rgba(255,255,255,.34), inset 0 -2px 6px rgba(0,0,0,.4),
  0 4px 0 var(--p3), 0 10px 24px -8px rgba(75,214,192,.7), 0 0 0 1px rgba(111,232,210,.5); }
.oudp-b[data-grade="avoid"]{ filter:saturate(.72) brightness(.92); }
.oudp-b[disabled]{ cursor:not-allowed; filter:grayscale(.85) brightness(.55); }
.oudp-b[disabled]:hover, .oudp-b[disabled]:active{ transform:none; }

.oudp-x{
  width:100%; min-height:0; height:26px; padding:0; border-radius:9px; cursor:pointer; font:inherit;
  font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#79839a;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09);
  transition:color .16s, background .16s;
}
.oudp-x:hover{ color:#c6cfdb; background:rgba(255,255,255,.08); }
.oudp-x:active{ transform:translateY(1px); }

/* ── phones ──────────────────────────────────────────────────────────────── */
@media (max-width:560px){
  .oudc{ margin:14px -1px 0; padding:12px 10px 11px; }
  .oudc-sum-cells{ gap:4px; }
  .oudc-cell{ padding:6px 3px; } .oudc-cell b{ font-size:11.5px; }
  .oudc-mod{ padding:10px 9px 10px 12px; }
  .oudc-mod-tx i{ font-size:8px; }
  .oudc-mod[data-on="1"]::after{ animation:none; }   /* no repaint cost on mobile */
  .oudp{ width:min(244px, calc(100vw - 24px)); }
}
@media (prefers-reduced-motion:reduce){
  .oudc-mod[data-on="1"]::after{ animation:none; }
}

/* ⚠ at92 (`@media (max-width:900px){ [class][class] button{min-height:44px!important} }`)
   would stretch the 26px core switch and the 26px cancel strip into 44px slabs —
   the same trap that broke the stake input, the IDF switch and the mini-toggle rows.
   Matched with the same (0,3,0) shape so these two win by coming later. */
@media (max-width:900px){
  [class][class] .oudc-sw, [class][class] .oudp-x{ min-height:0 !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   e4 — OVER/UNDER colour-language fix + matrix header legibility.

   ⚠ Caught by screenshot, not by any assertion: the barrier picker painted the
   SELECTED barrier green. Green already carries two other meanings inside this
   same card — the digit that just landed, and a PRIME grade — so "selected"
   became the third. The card's stated language is BLUE + ✓ for a selection
   (it is what the digit tiles and the OVER/UNDER side buttons already use), so
   the picker is brought in line.
   ═══════════════════════════════════════════════════════════════════════════ */
.oud-b{ position:relative; }
.oud-b.is-sel{
  color:#eaf5ff;
  background:
    linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(90,176,255,.28) 42%, rgba(12,52,110,.7) 100%),
    linear-gradient(180deg,#24456e 0%,#16294a 100%);
  border-color:#5ab0ff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 -2px 5px rgba(0,0,0,.4),
    0 3px 0 rgba(10,50,105,.9),
    0 9px 22px -8px rgba(90,176,255,.85),
    0 0 0 1px rgba(90,176,255,.5);
}
.oud-b.is-sel b{ color:#eaf5ff; text-shadow:0 0 12px rgba(90,176,255,.9); }
.oud-b.is-sel::after{                      /* the ✓ the rest of the card uses */
  content:"✓"; position:absolute; top:2px; right:4px;
  font-size:8px; font-weight:900; color:#9fd0ff; text-shadow:0 0 6px rgba(90,176,255,.9);
}
/* an untradeable barrier that is somehow selected stays red — it is a warning,
   not a selection, and must not read as "blue = fine" */
.oud-b[data-dead="1"].is-sel{
  background:linear-gradient(180deg,#ff8a90,#c8323c); color:#2a0508; border-color:#ff8a90;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 3px 0 rgba(120,20,26,.9);
}
.oud-b[data-dead="1"].is-sel b{ color:#2a0508; text-shadow:none; }
.oud-b[data-dead="1"].is-sel::after{ content:"✕"; color:#2a0508; text-shadow:none; }

/* ── matrix header: the 7px labels are right-aligned and sit 3px apart, which
      reads as crowded even though nothing overflows (measured: 0px of text
      overflow in every cell). Shorten the longest label on phones and spend the
      reclaimed width on the gaps. ─────────────────────────────────────────── */
@media (max-width:560px){
  .oudm-head span:nth-child(3){ font-size:0; }
  .oudm-head span:nth-child(3)::after{ content:"B/E"; font-size:7px; letter-spacing:.06em; }
  .oudm-head, .oudm-row{ gap:5px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   e8 — Skilli X: compact MATRIX INTELLIGENCE chips + a smaller execution pop.
   Later block, same specificity ⇒ these win over the e3 versions.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── MATRIX INTELLIGENCE: three tall description rows → three small chips ──
   The old rows were ~64px each (≈200px of card) because every one carried a
   full sentence. The sentences moved to `title`; the strip is now ~58px total. */
.oudc-mods{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px;
  flex-direction:row;                      /* undo the e3 column stack */
}
.oudc-mod{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  width:100%; min-height:0; padding:8px 4px 7px; border-radius:11px;
  cursor:pointer; font:inherit; text-align:center; overflow:hidden; position:relative;
  color:#9aa6b8;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  transition:color .18s, border-color .18s, box-shadow .18s, background .2s, transform .1s;
}
.oudc-mod::before{                         /* rail moves to the TOP edge */
  content:""; position:absolute; left:8px; right:8px; top:0; bottom:auto; width:auto; height:2px;
  border-radius:0 0 3px 3px;
  background:var(--m, #4a5364); opacity:.4; transition:opacity .2s, box-shadow .2s;
}
.oudc-mod-ic{
  width:auto; height:auto; border:0; background:none; box-shadow:none;
  font-size:14px; line-height:1; filter:grayscale(.45) opacity(.75);
  transition:filter .2s, transform .18s;
}
.oudc-mod-n{
  font-size:7px; font-weight:900; letter-spacing:.07em; line-height:1.25;
  color:#8b93a8; transition:color .18s;
}
.oudc-mod-st{
  font-size:6.5px; font-weight:900; letter-spacing:.1em; color:#69738a;
  padding:2px 6px; border-radius:5px; background:rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.07);
  transition:color .18s, background .18s, border-color .18s;
}
.oudc-mod:active{ transform:translateY(1px); }

/* ON */
.oudc-mod[data-on="1"]{
  border-color:color-mix(in srgb, var(--m) 58%, transparent);
  background:linear-gradient(180deg, color-mix(in srgb, var(--m) 16%, transparent), rgba(255,255,255,.015));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 14px -5px var(--m);
}
.oudc-mod[data-on="1"]::before{ opacity:1; box-shadow:0 0 8px var(--m); }
.oudc-mod[data-on="1"] .oudc-mod-ic{ filter:none; transform:scale(1.08); }
.oudc-mod[data-on="1"] .oudc-mod-n{ color:#e9eef5; }
.oudc-mod[data-on="1"] .oudc-mod-st{ color:#0d1117; background:var(--m); border-color:transparent; }
.oudc-mod[data-on="1"]::after{ content:none; }    /* drop the e3 scan sweep entirely */

/* ── EXECUTION POP: smaller, no grip rule, no stake chip ─────────────────── */
.oudp{ width:196px; padding:9px; gap:7px; border-radius:15px; }
.oudp-h{ justify-content:center; padding:0 2px 1px; }
.oudp-grip{ display:none; }                       /* the top-left rule — removed */
.oudp-stake{ display:none; }                      /* the top-right chip — removed */
.oudp-t{ flex:0 1 auto; text-align:center; font-size:7.5px; letter-spacing:.14em; }
.oudp-t b{ font-size:12px; margin-left:4px; }

.oudp-grid{ gap:7px; }
.oudp-b{ border-radius:11px; padding:4px 3px; gap:2px; box-shadow:
  inset 0 1px 0 rgba(255,255,255,.32), inset 0 -2px 5px rgba(0,0,0,.4),
  0 3px 0 var(--p3), 0 8px 16px -7px rgba(0,0,0,.8); }
.oudp-b:active{ transform:translateY(3px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 4px rgba(0,0,0,.5), 0 0 0 var(--p3); }
.oudp-ic{ font-size:9px; }
.oudp-b b{ font-size:10.5px; }
.oudp-b.x3 b{ font-size:9.5px; }
.oudp-b i{ font-size:7px; }
.oudp-b.x3::after{ right:5px; top:5px; width:8px; height:8px; }
.oudp-x{ height:22px; font-size:8.5px; border-radius:8px; }

@media (max-width:560px){
  .oudc-mods{ gap:5px; }
  .oudc-mod{ padding:7px 3px 6px; }
  .oudc-mod-n{ font-size:6.5px; letter-spacing:.05em; }
  .oudp{ width:min(196px, calc(100vw - 28px)); }
}
/* the 26px cancel strip shrank again — keep it out of the 44px mobile rule */
@media (max-width:900px){
  [class][class] .oudp-x, [class][class] .oudc-mod{ min-height:0 !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   e9 — Skilli X: drop the Barrier Core's left rail, 2-up digit-panel footer.
   ═══════════════════════════════════════════════════════════════════════════ */

/* the vertical blue/teal rule down the left edge of the core — removed.
   `content:none` kills the box outright, so the [data-on="0"] variant that only
   recoloured it has nothing left to paint. */
.oudc::before,
.oudc[data-on="0"]::before{ content:none; }

/* the digit panel's footer lost "Over wins" / "Under wins" and gained the live
   last digit, so it is two cells now — .ldp-foot is a hard 3-column grid. */
.oud-ld-foot{ grid-template-columns:repeat(2,minmax(0,1fr)); }


/* ═══════════════════════════════════════════════════════════════════════════
   f1 — ACCUMULATOR rebuilt: live chart, growth-rate controls, knockout history.
   Dark slate panels, Deriv-green accents, generous rounding.
   ═══════════════════════════════════════════════════════════════════════════ */
[data-analyzer="accumulator"]{
  --ag:#22d18a;            /* the green */
  --ag2:#16a86c;
  --ared:#ff5c5c;
  --apanel:#141b22;
  --apanel2:#1b242d;
  --aline:rgba(255,255,255,.07);
  --amut:#7c8a97;
}
[data-analyzer="accumulator"] > section{
  background:var(--apanel); border:1px solid var(--aline);
  border-radius:14px; margin:0 0 12px; overflow:hidden;
}

/* ── 📈 CHART ────────────────────────────────────────────────────────────── */
.acc-chart-h{ display:flex; align-items:flex-start; gap:10px; padding:14px 16px 8px; }
.acc-mkt{
  display:inline-flex; align-items:center; gap:7px; min-height:0; padding:4px 2px;
  background:none; border:0; cursor:pointer; font:inherit;
  font-size:15px; font-weight:800; color:#eaf1f6; letter-spacing:-.01em;
}
.acc-mkt i{ font-style:normal; font-size:10px; color:var(--amut); }
.acc-mkt:hover{ color:#fff; }
.acc-px{ margin-left:auto; text-align:right; line-height:1.25; }
.acc-px b{ display:block; font-size:20px; font-weight:800; color:var(--ared); font-variant-numeric:tabular-nums; }
.acc-px b[data-dir="up"]{ color:var(--ag); }
.acc-px span{ font-size:11px; font-weight:600; color:var(--ared); font-variant-numeric:tabular-nums; }
.acc-px span[data-dir="up"]{ color:var(--ag); }

.acc-chart-body{ position:relative; height:310px; padding:0 64px 10px 0; }
.acc-svg{ width:100%; height:100%; display:block; }
.acc-axis{ position:absolute; inset:0 0 10px auto; right:8px; width:56px; pointer-events:none; }
.acc-axis span{
  position:absolute; right:0; transform:translateY(-50%);
  font-size:9.5px; font-weight:600; color:#5d6b78; font-variant-numeric:tabular-nums;
}
.acc-badge{
  position:absolute; right:8px; transform:translateY(-50%);
  padding:3px 7px; border-radius:5px; background:var(--ag); color:#05231a;
  font-size:10px; font-weight:900; font-variant-numeric:tabular-nums;
  box-shadow:0 3px 10px -4px rgba(34,209,138,.9);
}

/* market menu (body-appended so no ancestor can clip or transform it) */
.acc-mkt-menu{
  position:fixed; z-index:10050; min-width:210px; max-height:60vh; overflow:auto;
  padding:6px; border-radius:12px; background:#111820;
  border:1px solid rgba(255,255,255,.14); box-shadow:0 24px 50px -20px #000;
}
.acc-mkt-o{
  display:block; width:100%; min-height:0; padding:9px 11px; border:0; border-radius:8px;
  background:none; cursor:pointer; font:inherit; font-size:12.5px; font-weight:700;
  color:#c3cdd6; text-align:left;
}
.acc-mkt-o:hover{ background:rgba(255,255,255,.06); color:#fff; }
.acc-mkt-o.is-on{ background:rgba(34,209,138,.14); color:var(--ag); }

/* ── ⚙ CONTROLS ─────────────────────────────────────────────────────────── */
.acc-ctl{ padding:16px; }
.acc-lab{ font-size:10.5px; font-weight:700; letter-spacing:.09em; color:var(--amut); margin:0 0 9px; }
.acc-rates{ display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
.acc-rate{
  min-height:46px; border-radius:9px; cursor:pointer; font:inherit;
  font-size:14px; font-weight:800; color:#c3cdd6;
  background:var(--apanel2); border:1px solid transparent;
  transition:background .16s, color .16s, transform .1s;
}
.acc-rate:hover{ background:#222d38; }
.acc-rate:active{ transform:translateY(1px); }
.acc-rate.is-on{ background:var(--ag); color:#05231a; font-weight:900; }
.acc-maxt{ font-size:10.5px; color:var(--amut); margin:8px 0 18px; }

.acc-stake{
  display:flex; align-items:center; gap:12px; min-height:56px; padding:0 16px;
  border-radius:10px; background:var(--apanel2); margin-bottom:6px;
}
.acc-stake > span{ font-size:13.5px; font-weight:700; color:#9fadb9; }
.acc-stake input{
  flex:1; min-width:0; min-height:52px; background:none; border:0; outline:none;
  font:inherit; font-size:16px; font-weight:800; color:#eaf1f6; font-variant-numeric:tabular-nums;
}

/* switch rows */
.acc-row{ display:flex; align-items:center; gap:12px; min-height:48px; }
.acc-row-k{ flex:1; font-size:11.5px; font-weight:700; letter-spacing:.08em; color:#b3c0cb; }
.acc-sw{ position:relative; flex:none; width:46px; height:26px; cursor:pointer; }
.acc-sw input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.acc-sw i{
  position:absolute; inset:0; border-radius:99px; background:#2b3540;
  transition:background .2s; pointer-events:none; display:block;
}
.acc-sw i::after{
  content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; transition:transform .2s cubic-bezier(.3,1.4,.5,1);
  box-shadow:0 2px 5px rgba(0,0,0,.45);
}
.acc-sw input:checked + i{ background:var(--ag2); }
.acc-sw input:checked + i::after{ transform:translateX(20px); }
.acc-sw input:focus-visible + i{ box-shadow:0 0 0 3px rgba(34,209,138,.35); }

/* the field each switch reveals */
.acc-sub{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:-2px 0 10px; padding:10px 12px; border-radius:10px;
  background:rgba(34,209,138,.06); border:1px solid rgba(34,209,138,.16);
}
.acc-sub > label{ flex:1; min-width:0; font-size:10.5px; font-weight:600; color:#9fadb9; }
.acc-mini{ display:flex; align-items:center; gap:6px; padding:0 10px; border-radius:8px;
  background:rgba(0,0,0,.34); border:1px solid rgba(255,255,255,.1); }
.acc-mini input{
  width:58px; min-height:34px; background:none; border:0; outline:none; text-align:right;
  font:inherit; font-size:13px; font-weight:800; color:#eaf1f6; font-variant-numeric:tabular-nums;
}
.acc-mini span{ font-size:10px; font-weight:700; color:var(--amut); }
.acc-mini .pre{ order:-1; }

.acc-buy{
  width:100%; min-height:60px; margin-top:12px; border-radius:10px; cursor:pointer; font:inherit;
  font-size:16px; font-weight:800; color:#05231a; border:0;
  background:linear-gradient(180deg,#2fe09a,var(--ag2));
  box-shadow:0 10px 26px -14px rgba(34,209,138,.9), inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .1s, filter .16s;
}
.acc-buy b{ font-weight:900; font-variant-numeric:tabular-nums; }
.acc-buy:hover{ filter:brightness(1.06); }
.acc-buy:active{ transform:translateY(2px); }
.acc-buy-note{ font-size:10px; color:var(--ag); margin-top:8px; text-align:center; min-height:12px; }

/* ── 📊 STATS ────────────────────────────────────────────────────────────── */
.acc-stats-h{
  display:flex; align-items:center; gap:9px; width:100%; min-height:56px; padding:0 16px;
  background:none; border:0; cursor:pointer; font:inherit; text-align:left;
}
.acc-stats-ic{ font-size:13px; }
.acc-stats-t{ font-size:13.5px; font-weight:800; color:#eaf1f6; }
.acc-stats-sub{ font-size:11px; color:var(--amut); }
.acc-stats-live{ margin-left:auto; display:inline-flex; align-items:center; gap:6px;
  font-size:11px; color:#9fadb9; font-variant-numeric:tabular-nums; }
.acc-stats-live i{ width:7px; height:7px; border-radius:50%; background:#3a4650; }
.acc-stats-live i[data-live="1"]{ background:var(--ag); box-shadow:0 0 8px var(--ag); animation:accPulse 1.6s ease-in-out infinite; }
@keyframes accPulse{ 0%,100%{opacity:1} 50%{opacity:.4} }
.acc-stats-live b{ font-weight:800; color:#eaf1f6; }
.acc-stats-caret{ font-size:13px; color:var(--amut); transition:transform .2s; }
.acc-stats[data-open="1"] .acc-stats-caret{ transform:rotate(180deg); }
.acc-stats-body{ display:none; padding:0 16px 16px; }
.acc-stats[data-open="1"] .acc-stats-body{ display:block; }
.acc-sgrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:8px; }
.acc-sc{ padding:10px 8px; border-radius:9px; text-align:center; background:var(--apanel2); }
.acc-sc u{ display:block; text-decoration:none; font-size:8.5px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--amut); }
.acc-sc b{ display:block; font-size:15px; font-weight:800; color:#eaf1f6; margin-top:3px; font-variant-numeric:tabular-nums; }
.acc-snote{ font-size:9.5px; line-height:1.55; color:var(--amut); }

/* ── 📊 KNOCKOUT HISTORY ─────────────────────────────────────────────────── */
.acc-ko{ padding:16px; }
.acc-ko-h{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:14px; }
.acc-ko-ic{ font-size:13px; }
.acc-ko-t{ font-size:13.5px; font-weight:800; color:#eaf1f6; }
.acc-ko-live{ display:inline-flex; align-items:center; gap:5px; font-size:9.5px;
  font-weight:800; letter-spacing:.06em; color:var(--ag); }
.acc-ko-live i{ width:6px; height:6px; border-radius:50%; background:var(--ag);
  box-shadow:0 0 8px var(--ag); animation:accPulse 1.7s ease-in-out infinite; }
.acc-ko-n{ font-size:11px; color:var(--amut); }
.acc-ko-counts{ margin-left:auto; display:flex; gap:9px; flex-wrap:wrap; }
.acc-ko-counts i{ font-style:normal; font-size:9.5px; font-weight:700; color:#6d7b88;
  font-variant-numeric:tabular-nums; }
.acc-ko-counts i.is-on{ color:var(--ag); }
.acc-ko-reset{ flex:none; width:26px; height:26px; min-height:0; border-radius:7px; cursor:pointer;
  background:none; border:1px solid var(--aline); color:var(--amut); font-size:12px; line-height:1; }
.acc-ko-reset:hover{ color:#fff; border-color:rgba(255,255,255,.24); }

.acc-ko-chips{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.acc-ko-chip{
  min-height:34px; padding:0 14px; border-radius:8px; cursor:pointer; font:inherit;
  font-size:11.5px; font-weight:700; color:#9fadb9;
  background:var(--apanel2); border:1px solid transparent; transition:all .15s;
}
.acc-ko-chip:hover{ color:#fff; }
.acc-ko-chip.is-on{ background:rgba(34,209,138,.16); color:var(--ag); border-color:rgba(34,209,138,.5); }
.acc-ko-maxt{ font-size:10.5px; color:var(--amut); margin-bottom:12px; }

.acc-ko-cards{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.acc-koc{ padding:11px 6px; border-radius:10px; text-align:center;
  background:var(--apanel2); border:1px solid var(--aline); }
.acc-koc u{ display:block; text-decoration:none; font-size:8.5px; font-weight:600; color:var(--amut); white-space:nowrap; }
.acc-koc b{ display:block; font-size:19px; font-weight:800; color:#eaf1f6; margin-top:4px; font-variant-numeric:tabular-nums; }
.acc-koc b.c-red{ color:var(--ared); } .acc-koc b.c-green{ color:var(--ag); }

.acc-ko-grid{ display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:6px; margin-bottom:12px; }
.acc-kt{
  display:grid; place-items:center; min-height:38px; border-radius:7px;
  font-size:12px; font-weight:800; font-variant-numeric:tabular-nums;
  border:1px solid transparent;
}
.acc-kt[data-b="1"]{ background:rgba(255,92,92,.2);  color:#ff8f8f; border-color:rgba(255,92,92,.35); }
.acc-kt[data-b="2"]{ background:rgba(255,150,70,.18); color:#ffb070; border-color:rgba(255,150,70,.3); }
.acc-kt[data-b="3"]{ background:rgba(214,190,70,.16); color:#e2cf78; border-color:rgba(214,190,70,.28); }
.acc-kt[data-b="4"]{ background:rgba(60,180,150,.16); color:#5fd7b4; border-color:rgba(60,180,150,.3); }
.acc-kt[data-b="5"]{ background:rgba(34,209,138,.2);  color:#5fe6b0; border-color:rgba(34,209,138,.4); }
.acc-kt[data-b="done"]{ background:rgba(64,150,235,.22); color:#8cc2ff; border-color:rgba(64,150,235,.45); }
.acc-kt[data-b="live"]{ background:rgba(90,150,255,.26); color:#a9cbff; border-color:#5a96ff;
  box-shadow:0 0 12px -3px #5a96ff; animation:accPulse 1.5s ease-in-out infinite; }
.acc-kt.is-real{ outline:1px dashed rgba(255,255,255,.4); outline-offset:-3px; }
.acc-kt-wait{ grid-column:1/-1; padding:18px 8px; text-align:center; font-size:11px; color:var(--amut); }

.acc-ko-legend{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.acc-ko-legend span{ display:inline-flex; align-items:center; gap:5px; font-size:9.5px; color:var(--amut); }
.acc-ko-legend i{ width:8px; height:8px; border-radius:50%; }
.acc-ko-legend [data-b="1"] i{ background:#ff5c5c; }
.acc-ko-legend [data-b="2"] i{ background:#ff9646; }
.acc-ko-legend [data-b="3"] i{ background:#d6be46; }
.acc-ko-legend [data-b="4"] i{ background:#3cb496; }
.acc-ko-legend [data-b="5"] i{ background:#22d18a; }
.acc-ko-legend [data-b="done"] i{ background:#4096eb; }
.acc-ko-legend [data-b="live"] i{ background:#5a96ff; box-shadow:0 0 6px #5a96ff; }
.acc-ko-note{ font-size:9.5px; line-height:1.6; color:var(--amut); }

/* ── 💲 CONTRACT INFO ────────────────────────────────────────────────────── */
.acc-info{ padding:16px; }
.acc-info-h{ display:flex; align-items:center; gap:9px; margin-bottom:14px; }
.acc-info-ic{ width:22px; height:22px; border-radius:6px; display:grid; place-items:center;
  font-size:12px; font-weight:900; color:var(--ag); background:rgba(34,209,138,.14); }
.acc-info-h b{ font-size:14px; font-weight:800; color:#eaf1f6; }
.acc-info-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.acc-infoc{ padding:14px; border-radius:10px; background:var(--apanel2); border:1px solid var(--aline); }
.acc-infoc u{ display:block; text-decoration:none; font-size:10.5px; font-weight:600; color:var(--amut); }
.acc-infoc b{ display:block; font-size:16px; font-weight:800; color:#eaf1f6; margin-top:5px; font-variant-numeric:tabular-nums; }
.acc-infoc b.c-green{ color:var(--ag); }
.acc-info-p{ font-size:11px; line-height:1.65; color:var(--amut); margin:14px 0 0; }

/* the honest EV block */
.acc-ev{ margin-top:14px; padding:12px; border-radius:10px;
  background:rgba(255,92,92,.06); border:1px solid rgba(255,92,92,.18); }
.acc-ev-h{ font-size:9.5px; font-weight:800; letter-spacing:.1em; color:#ff9a9a; margin-bottom:9px; }
.acc-ev-rows{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:9px; }
.acc-ev-rows i{ font-style:normal; display:block; padding:8px 5px; border-radius:8px; text-align:center;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.06); }
.acc-ev-rows u{ display:block; text-decoration:none; font-size:8.5px; font-weight:700; color:var(--amut); }
.acc-ev-rows b{ display:block; font-size:13px; font-weight:800; color:#eaf1f6; margin:3px 0 1px;
  font-variant-numeric:tabular-nums; }
.acc-ev-rows s{ display:block; text-decoration:none; font-size:10px; font-weight:800; color:#ff8f8f;
  font-variant-numeric:tabular-nums; }
.acc-ev-t{ font-size:9.5px; line-height:1.6; color:var(--amut); }

/* ── phones ──────────────────────────────────────────────────────────────── */
@media (max-width:560px){
  .acc-chart-body{ height:250px; padding-right:56px; }
  .acc-axis{ width:50px; }
  .acc-rates{ gap:6px; }
  .acc-rate{ min-height:42px; font-size:13px; }
  .acc-ko-cards{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
  .acc-koc{ padding:9px 3px; } .acc-koc b{ font-size:15px; } .acc-koc u{ font-size:7.5px; }
  .acc-ko-grid{ grid-template-columns:repeat(10,minmax(0,1fr)); gap:4px; }
  .acc-kt{ min-height:30px; font-size:10px; border-radius:5px; }
  .acc-info-grid{ gap:8px; } .acc-infoc{ padding:11px; } .acc-infoc b{ font-size:14px; }
  .acc-ko-counts{ width:100%; margin-left:0; }
}
/* ⚠ the at92 mobile rule forces min-height:44px on every button/input — it would
   turn the 26px switch, the 34px chips, the mini fields and the 38px tiles into
   slabs. Matched at the same (0,3,0) weight so these win by coming later. */
@media (max-width:900px){
  [class][class] .acc-sw, [class][class] .acc-sw input, [class][class] .acc-ko-chip,
  [class][class] .acc-mini input, [class][class] .acc-kt, [class][class] .acc-ko-reset,
  [class][class] .acc-mkt, [class][class] .acc-mkt-o{ min-height:0 !important; }
  [class][class] .acc-ko-chip{ min-height:34px !important; }
  [class][class] .acc-mkt-o{ min-height:38px !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   f5 — ⚠ the accumulator panels lost their background on phones.
   The mobile anti-blur pass (~14375) sets
       .analyzer[data-analyzer] > * { background-color: rgba(9,13,24,.9) }
   inside @media (pointer:coarse),(hover:none),(max-width:820px). That selector is
   (0,2,0) and uses the background-COLOR longhand; my panel rule was
   `[data-analyzer="accumulator"] > section` at (0,1,1) with the background
   SHORTHAND, so it lost on every phone and every touch laptop — measured
   rgba(9,13,24,0.9) instead of #141b22.
   Same family of bug as the earlier "mobile lost the card material". Re-stated at
   (0,2,1) so it wins outright, and with the longhand so it cannot be half-applied.
   ═══════════════════════════════════════════════════════════════════════════ */
.analyzer[data-analyzer="accumulator"] > section{
  background-color:#141b22;
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px; margin:0 0 12px; overflow:hidden;
}
.analyzer[data-analyzer="accumulator"] .acc-stake,
.analyzer[data-analyzer="accumulator"] .acc-sc,
.analyzer[data-analyzer="accumulator"] .acc-koc,
.analyzer[data-analyzer="accumulator"] .acc-infoc{ background-color:#1b242d; }
.analyzer[data-analyzer="accumulator"] .acc-rate{ background-color:#1b242d; }
.analyzer[data-analyzer="accumulator"] .acc-rate.is-on{ background-color:#22d18a; }
.analyzer[data-analyzer="accumulator"] .acc-ko-chip{ background-color:#1b242d; }
.analyzer[data-analyzer="accumulator"] .acc-ko-chip.is-on{ background-color:rgba(34,209,138,.16); }


/* ═══════════════════════════════════════════════════════════════════════════
   f6 — two bugs only the screenshot showed (every DOM assertion passed).

   ① `[hidden]` DID NOT HIDE. The reveal panels are set `sub.hidden = !on` in JS,
      and the attribute was correctly present — but the UA rule `[hidden]{display:none}`
      is (0,0,0)+attr and my `.acc-sub{display:flex}` is (0,1,0), so the panel stayed
      visible with its switch off. Restated so `hidden` always wins.

   ② THE STAKE FIELD HAD A BOX INSIDE A BOX. `.glass :where(input,select,textarea)`
      paints every input with `background … !important` + a border. `:where()` is
      zero-specificity so the rule is only (0,1,0) — but `!important` beats my
      unflagged declaration regardless of weight. These two fields are already
      wrapped in their own styled shell, so the inner paint has to be cancelled
      explicitly, with !important, above (0,1,0).
   ═══════════════════════════════════════════════════════════════════════════ */
.acc-sub{ display:flex; }
.acc-sub[hidden]{ display:none !important; }

.analyzer[data-analyzer="accumulator"] .acc-stake input,
.analyzer[data-analyzer="accumulator"] .acc-mini input{
  background:none !important; border:0 !important; box-shadow:none !important;
  color:#eaf1f6 !important; border-radius:0 !important;
}
.analyzer[data-analyzer="accumulator"] .acc-stake input:focus,
.analyzer[data-analyzer="accumulator"] .acc-mini input:focus{ outline:none !important; }
/* keep the focus ring on the SHELL so the control still reads as focusable */
.analyzer[data-analyzer="accumulator"] .acc-stake:focus-within{ box-shadow:0 0 0 2px rgba(34,209,138,.45); }
.analyzer[data-analyzer="accumulator"] .acc-mini:focus-within{ border-color:rgba(34,209,138,.6); }


/* ═══════════════════════════════════════════════════════════════════════════
   f7 — accumulator phone layout. At 375px the knockout header wrapped its reset
   button onto its own line, the six rate chips broke 5+1, and the legend broke
   6+1. Available width inside the card is ~321px, and the chips needed ~326.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:560px){
  /* header: title row keeps the reset on the right, the two data lines stack under it */
  .acc-ko-h{ row-gap:7px; }
  .acc-ko-reset{ order:0; margin-left:auto; }
  .acc-ko-n{ order:1; width:100%; }
  .acc-ko-counts{ order:2; width:100%; margin-left:0; gap:7px; justify-content:space-between; }
  .acc-ko-counts i{ font-size:8.5px; }

  /* chips: trim the horizontal padding so all six fit one row */
  .acc-ko-chips{ gap:5px; flex-wrap:nowrap; }
  .acc-ko-chip{ padding:0 9px; font-size:10.5px; flex:0 1 auto; white-space:nowrap; }
  .acc-ko-chip[data-acc-kochip="all"]{ flex:0 0 auto; }

  /* legend: tighter so it reads as one block rather than a stray trailing item */
  .acc-ko-legend{ gap:6px 9px; }
  .acc-ko-legend span{ font-size:8.5px; }
  .acc-ko-legend i{ width:7px; height:7px; }
}
@media (max-width:900px){
  [class][class] .acc-ko-chip{ min-height:32px !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   f8 — Skilli Pro: the all-rates comparison + the survival curve.
   ═══════════════════════════════════════════════════════════════════════════ */
.acc-cmp{ margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.07); }
.acc-cmp-h{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;
  font-size:9.5px; font-weight:800; letter-spacing:.09em; color:#b3c0cb; margin-bottom:10px; }
.acc-cmp-h i{ font-style:normal; font-weight:600; letter-spacing:0; font-size:9px; color:#7c8a97; }
.acc-cmp-head, .acc-cmp-row{
  display:grid; grid-template-columns:minmax(0,.62fr) .78fr .62fr .74fr .58fr .78fr .72fr;
  gap:4px; align-items:center;
}
.acc-cmp-head{ padding:0 8px 6px; font-size:7px; font-weight:800; letter-spacing:.06em; color:#69738a; }
.acc-cmp-head span:not(:first-child){ text-align:right; }
.acc-cmp-rows{ display:grid; gap:4px; }
.acc-cmp-row{
  width:100%; padding:9px 8px; border-radius:8px; cursor:pointer; font:inherit; text-align:left;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  transition:background .15s, border-color .15s;
}
.acc-cmp-row:hover{ background:rgba(255,255,255,.06); }
.acc-cmp-row.is-on{ background:rgba(34,209,138,.12); border-color:rgba(34,209,138,.5); }
.acc-cr-r{ font-size:12px; font-weight:900; color:#eaf1f6; }
.acc-cmp-row.is-on .acc-cr-r{ color:#22d18a; }
.acc-cr-v{ font-size:10px; font-weight:700; color:#c3cdd6; text-align:right;
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.acc-cr-v i{ display:block; font-style:normal; font-size:7.5px; font-weight:700; color:#5fd7b4; }
.acc-cr-v.warn{ color:#e2cf78; }
.acc-cr-v.bad{ color:#ff8f8f; }
.acc-cmp-n{ font-size:9.5px; line-height:1.6; color:#7c8a97; margin-top:9px; }

/* ── survival curve ─────────────────────────────────────────────────────── */
.acc-surv{ margin-top:14px; padding:12px; border-radius:10px;
  background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.06); }
.acc-surv-h{ font-size:9.5px; font-weight:800; letter-spacing:.09em; color:#b3c0cb; margin-bottom:10px; }
.acc-surv-h b{ color:#22d18a; }
.acc-surv-rows{ display:grid; gap:6px; }
.acc-surv-rows i{ display:grid; grid-template-columns:56px 1fr 42px 48px; gap:8px; align-items:center; font-style:normal; }
.acc-surv-rows u{ text-decoration:none; font-size:9.5px; font-weight:700; color:#7c8a97; white-space:nowrap; }
.acc-sv-bar{ height:7px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; }
.acc-sv-bar b{ display:block; height:100%; border-radius:99px;
  background:linear-gradient(90deg,#22d18a,#5fe6b0); transition:width .5s cubic-bezier(.22,1,.36,1); }
.acc-surv-rows s{ text-decoration:none; font-size:10.5px; font-weight:800; color:#eaf1f6;
  text-align:right; font-variant-numeric:tabular-nums; }
.acc-surv-rows em{ font-style:normal; font-size:9.5px; font-weight:800; color:#5fd7b4;
  text-align:right; font-variant-numeric:tabular-nums; }

@media (max-width:560px){
  .acc-cmp-head, .acc-cmp-row{ grid-template-columns:minmax(0,.6fr) .72fr .56fr .68fr .5fr .72fr .66fr; gap:3px; }
  .acc-cmp-head{ font-size:6.5px; padding:0 6px 5px; }
  .acc-cmp-row{ padding:8px 6px; }
  .acc-cr-r{ font-size:11px; } .acc-cr-v{ font-size:9px; }
  .acc-surv-rows i{ grid-template-columns:50px 1fr 38px 44px; gap:6px; }
}
@media (max-width:900px){
  [class][class] .acc-cmp-row{ min-height:0 !important; }
}


/* f9 — 🎯 same target, different cost */
.acc-tgt{ margin-top:14px; padding:12px; border-radius:10px;
  background:rgba(34,209,138,.05); border:1px solid rgba(34,209,138,.16); }
.acc-tgt-h{ display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  font-size:9.5px; font-weight:800; letter-spacing:.09em; color:#b3c0cb; margin-bottom:10px; }
.acc-tgt-chips{ margin-left:auto; display:flex; gap:5px; }
.acc-tgt-c{ min-height:0; padding:4px 9px; border-radius:6px; cursor:pointer; font:inherit;
  font-size:9.5px; font-weight:800; color:#9fadb9;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.09); }
.acc-tgt-c.is-on{ background:#22d18a; color:#05231a; border-color:transparent; }
.acc-tgt-head, .acc-tgt-row{ display:grid; grid-template-columns:minmax(0,.6fr) 1fr .7fr .7fr; gap:5px; align-items:center; }
.acc-tgt-head{ padding:0 8px 6px; font-size:7px; font-weight:800; letter-spacing:.06em; color:#69738a; }
.acc-tgt-head span:not(:first-child){ text-align:right; }
.acc-tgt-rows{ display:grid; gap:4px; }
.acc-tgt-row{ padding:8px; border-radius:7px; background:rgba(0,0,0,.24); border:1px solid transparent; }
.acc-tgt-row.is-on{ border-color:rgba(255,255,255,.16); }
.acc-tgt-row.is-best{ background:rgba(34,209,138,.13); border-color:rgba(34,209,138,.45); }
.acc-tgt-row.is-over{ opacity:.45; }
.acc-tg-r{ font-size:11.5px; font-weight:900; color:#eaf1f6; }
.acc-tgt-row.is-best .acc-tg-r{ color:#22d18a; }
.acc-tg-v{ font-size:10px; font-weight:700; color:#c3cdd6; text-align:right;
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.acc-tg-v i{ display:block; font-style:normal; font-size:7px; font-weight:700; color:#ff8f8f; }
.acc-tg-v.bad{ color:#ff8f8f; }
.acc-tgt-n{ font-size:9.5px; line-height:1.6; color:#7c8a97; margin-top:9px; }
@media (max-width:560px){
  .acc-tgt-head, .acc-tgt-row{ grid-template-columns:minmax(0,.55fr) 1fr .66fr .66fr; gap:4px; }
  .acc-tg-v{ font-size:9.5px; }
}
@media (max-width:900px){ [class][class] .acc-tgt-c{ min-height:0 !important; } }


/* ═══════════════════════════════════════════════════════════════════════════
   g1 — Skilli Pro chart: barrier corridor, grid, live dot, trade markers,
   and a grouped market menu.
   ═══════════════════════════════════════════════════════════════════════════ */

/* the corridor the contract must stay inside, tick to tick */
.acc-band-f{ fill:rgba(34,209,138,.11); }
.acc-band-e{ stroke:rgba(34,209,138,.45); stroke-width:1; stroke-dasharray:3 3; }
.acc-grid-l{ stroke:rgba(255,255,255,.045); stroke-width:1; }

.acc-band-t{
  position:absolute; left:10px; bottom:8px; pointer-events:none;
  font-size:8.5px; font-weight:700; letter-spacing:.02em; color:#6f8a80;
  font-variant-numeric:tabular-nums;
  background:rgba(10,15,20,.55); padding:3px 7px; border-radius:5px;
}

/* the live price dot */
.acc-dot{
  position:absolute; width:9px; height:9px; margin:-4.5px 0 0 -4.5px; border-radius:50%;
  background:#25d38a; box-shadow:0 0 0 3px rgba(37,211,138,.22); pointer-events:none;
}
.acc-dot[data-live="1"]{ animation:accDotPulse 1.3s ease-in-out infinite; }
@keyframes accDotPulse{
  0%,100%{ box-shadow:0 0 0 3px rgba(37,211,138,.22) }
  50%    { box-shadow:0 0 0 8px rgba(37,211,138,.05) }
}

/* ── trade markers ───────────────────────────────────────────────────────── */
.acc-marks{ position:absolute; inset:0 64px 10px 0; pointer-events:none; }
.acc-mk{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:1px;
}
.acc-mk i{
  font-style:normal; display:grid; place-items:center;
  width:17px; height:17px; border-radius:50%;
  font-size:10px; font-weight:900; line-height:1;
  border:1.5px solid; box-shadow:0 2px 8px rgba(0,0,0,.65);
}
.acc-mk u{
  text-decoration:none; font-size:7.5px; font-weight:800; letter-spacing:.02em;
  padding:1px 4px; border-radius:4px; background:rgba(8,12,16,.8);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.acc-mk[data-k="entry"] i{ background:#1d3350; border-color:#5ab0ff; color:#9fd0ff; }
.acc-mk[data-k="entry"] u{ color:#9fd0ff; }
.acc-mk[data-k="win"] i{ background:#0f3d2e; border-color:#22d18a; color:#5fe6b0;
  box-shadow:0 0 14px -2px rgba(34,209,138,.9); }
.acc-mk[data-k="win"] u{ color:#5fe6b0; }
.acc-mk[data-k="loss"] i{ background:#3d1418; border-color:#ff5c5c; color:#ff9a9a;
  box-shadow:0 0 14px -2px rgba(255,92,92,.8); }
.acc-mk[data-k="loss"] u{ color:#ff9a9a; }
.acc-mk[data-k="win"], .acc-mk[data-k="loss"]{ animation:accMarkIn .45s cubic-bezier(.25,1.5,.4,1); }
@keyframes accMarkIn{ from{ transform:translate(-50%,-50%) scale(.3); opacity:0 } to{ transform:translate(-50%,-50%) scale(1); opacity:1 } }

/* ── grouped market menu ─────────────────────────────────────────────────── */
.acc-mkt-menu{ min-width:232px; }
.acc-mkt-g{
  padding:9px 10px 5px; font-size:7.5px; font-weight:900; letter-spacing:.11em;
  text-transform:uppercase; color:#5d6b78;
}
.acc-mkt-g.bad{ color:#ff8f8f; }
.acc-mkt-x{
  padding:6px 11px; font-size:10.5px; font-weight:600; color:#6a757f;
  display:flex; align-items:baseline; gap:6px;
}
.acc-mkt-x i{ font-style:normal; font-size:8px; color:#ff8f8f; margin-left:auto; }

@media (max-width:560px){
  .acc-marks{ inset:0 56px 10px 0; }
  .acc-mk i{ width:15px; height:15px; font-size:9px; }
  .acc-mk u{ font-size:7px; }
  .acc-band-t{ font-size:7.5px; left:8px; bottom:6px; }
}
@media (prefers-reduced-motion:reduce){
  .acc-dot[data-live="1"]{ animation:none; }
  .acc-mk[data-k="win"], .acc-mk[data-k="loss"]{ animation:none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   h1 — HYBRID ANALYSIS (Higher + Lower barrier legs).
   ⚠ .analyzer[data-analyzer] > * (0,2,0, background-COLOR longhand) in the mobile
   anti-blur pass beats a (0,1,1) shorthand — every panel rule here is stated at
   (0,2,1) with the longhand, the same trap that stripped the accumulator panels.
   ═══════════════════════════════════════════════════════════════════════════ */
[data-analyzer="streak"]{
  --hu:#2bd67b; --hd:#ff4d5e; --hb:#3b9dff;
  --hp:#111823; --hp2:#1a2331; --hln:rgba(255,255,255,.08); --hm:#7e8b9a;
}
.analyzer[data-analyzer="streak"] > section{
  background-color:#111823; border:1px solid rgba(255,255,255,.08);
  border-radius:14px; margin:0 0 12px; padding:14px; overflow:hidden;
}
.analyzer[data-analyzer="streak"] .hyb-inp,
.analyzer[data-analyzer="streak"] .hyb-sel,
.analyzer[data-analyzer="streak"] .hyb-step-i{
  background-color:#1a2331 !important; border:1px solid rgba(255,255,255,.1) !important;
  color:#e9eef5 !important; box-shadow:none !important;
}

/* ── header ── */
.hyb-head{ display:flex; align-items:center; gap:11px; margin-bottom:16px; }
.hyb-head-ic{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center; font-size:17px;
  background:rgba(59,157,255,.16); border:1px solid rgba(59,157,255,.4); }
.hyb-head-t{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.hyb-head-t b{ font-size:16px; font-weight:800; color:#eef3f8; }
.hyb-head-t i{ font-style:normal; font-size:10.5px; color:var(--hm); }
.hyb-live{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; flex:none;
  padding:5px 11px; border-radius:99px; font-size:10.5px; font-weight:700; color:#7fd3ff;
  background:rgba(59,157,255,.14); border:1px solid rgba(59,157,255,.35); }
.hyb-live i{ width:7px; height:7px; border-radius:50%; background:#3b9dff; box-shadow:0 0 8px #3b9dff;
  animation:hybPulse 1.7s ease-in-out infinite; }
@keyframes hybPulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

.hyb-row2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hyb-fld{ margin-bottom:13px; min-width:0; }
.hyb-fld > label{ display:block; font-size:11px; font-weight:700; color:#c2cdd8; margin-bottom:6px; }
.hyb-fld > label.up{ color:var(--hu); } .hyb-fld > label.dn{ color:var(--hd); }
.hyb-sel, .hyb-inp{
  width:100%; min-height:48px; padding:12px 14px; border-radius:10px;
  font:inherit; font-size:14px; font-weight:700; color:#e9eef5;
  background:#1a2331; border:1px solid rgba(255,255,255,.1);
  -webkit-appearance:none; appearance:none;
}
.hyb-sel{ padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,#8c99a8 50%),linear-gradient(135deg,#8c99a8 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%, calc(100% - 13px) 50%;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat; }
.hyb-inp.up{ border-color:rgba(43,214,123,.3) !important; }
.hyb-inp.dn{ border-color:rgba(255,77,94,.3) !important; }

.hyb-seg{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:10px; overflow:hidden;
  background:#1a2331; border:1px solid rgba(255,255,255,.1); width:max-content; min-width:260px; }
.hyb-seg.sm{ min-width:0; }
.hyb-seg-b{ min-height:44px; padding:0 22px; border:0; cursor:pointer; font:inherit;
  font-size:13px; font-weight:700; color:#9aa7b5; background:none; }
.hyb-seg.sm .hyb-seg-b{ min-height:36px; padding:0 14px; font-size:11.5px; }
.hyb-seg-b.is-on{ background:rgba(59,157,255,.22); color:#9fd3ff; }
.hyb-half{ display:flex; justify-content:center; margin-top:4px; }
.hyb-halfsw{ display:inline-flex; align-items:center; gap:9px; min-height:38px; padding:0 16px;
  border-radius:99px; cursor:pointer; font:inherit; font-size:12px; font-weight:700; color:#9aa7b5;
  background:#1a2331; border:1px solid rgba(255,255,255,.1); }
.hyb-halfsw-k{ width:30px; height:16px; border-radius:99px; background:#39465a; position:relative; transition:background .2s; }
.hyb-halfsw-k::after{ content:""; position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%;
  background:#fff; transition:transform .2s; }
.hyb-halfsw[data-on="1"]{ color:#9fd3ff; border-color:rgba(59,157,255,.45); }
.hyb-halfsw[data-on="1"] .hyb-halfsw-k{ background:#3b9dff; }
.hyb-halfsw[data-on="1"] .hyb-halfsw-k::after{ transform:translateX(14px); }

/* ── barrier cards ── */
.analyzer[data-analyzer="streak"] > section#hyb-bars{ background-color:transparent; border:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; overflow:visible; }
.hyb-bar{ padding:13px; border-radius:13px; background:#111823; border:1px solid rgba(255,255,255,.08); }
.hyb-bar.up{ border-color:rgba(43,214,123,.3); }
.hyb-bar.dn{ border-color:rgba(255,77,94,.3); }
.hyb-bar-h{ display:flex; align-items:baseline; gap:8px; margin-bottom:10px; }
.hyb-bar-t{ font-size:11.5px; font-weight:700; }
.hyb-bar.up .hyb-bar-t{ color:var(--hu); } .hyb-bar.dn .hyb-bar-t{ color:var(--hd); }
.hyb-bar-v{ margin-left:auto; font-size:9.5px; color:var(--hm); font-variant-numeric:tabular-nums; }
.hyb-step{ display:grid; grid-template-columns:36px 1fr 36px; gap:7px; margin-bottom:9px; }
.hyb-step-b{ min-height:38px; border-radius:9px; cursor:pointer; font:inherit; font-size:16px; font-weight:800;
  color:#c2cdd8; background:#1a2331; border:1px solid rgba(255,255,255,.1); }
.hyb-step-b:active{ transform:translateY(1px); }
.hyb-step-i{ min-height:38px; width:100%; text-align:center; border-radius:9px; padding:0 4px;
  font:inherit; font-size:15px; font-weight:800; color:#e9eef5; background:#1a2331;
  border:1px solid rgba(255,255,255,.1); font-variant-numeric:tabular-nums; }
.hyb-chips{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
.hyb-chip{ min-height:26px; border-radius:6px; cursor:pointer; font:inherit; font-size:9px; font-weight:700;
  color:#8e9bab; background:#1a2331; border:1px solid rgba(255,255,255,.07);
  font-variant-numeric:tabular-nums; padding:0 2px; }
.hyb-bar.up .hyb-chip.is-on{ background:rgba(43,214,123,.24); color:#7ff0b4; border-color:rgba(43,214,123,.6); }
.hyb-bar.dn .hyb-chip.is-on{ background:rgba(255,77,94,.24); color:#ff9aa4; border-color:rgba(255,77,94,.6); }

/* ── the gap read-out ── */
.hyb-gap-h{ display:flex; align-items:baseline; gap:9px; margin-bottom:9px; }
.hyb-gap-h b{ font-size:11px; font-weight:900; letter-spacing:.09em; }
.hyb-gap[data-mode="clean"] .hyb-gap-h b{ color:#7fd3ff; }
.hyb-gap[data-mode="dead"] .hyb-gap-h b{ color:#ff9aa4; }
.hyb-gap[data-mode="overlap"] .hyb-gap-h b{ color:#7ff0b4; }
.hyb-gap-h span{ margin-left:auto; font-size:10px; color:var(--hm); font-variant-numeric:tabular-nums; }
.hyb-gap-bar{ display:flex; height:10px; border-radius:99px; overflow:hidden; background:#1a2331; margin-bottom:9px; }
.hyb-gap-bar i{ display:block; height:100%; transition:width .4s ease; }
.hyb-gap-bar .z-lo{ background:linear-gradient(90deg,#ff4d5e,#ff7d8a); }
.hyb-gap-bar .z-hi{ background:linear-gradient(90deg,#25c973,#5fe6a8); }
.hyb-gap-bar .z-mid[data-kind="none"]{ background:repeating-linear-gradient(45deg,#4a2028 0 5px,#33161c 5px 10px); }
.hyb-gap-bar .z-mid[data-kind="both"]{ background:repeating-linear-gradient(45deg,#1d6b4a 0 5px,#12503a 5px 10px); }
.hyb-gap-t{ font-size:10px; line-height:1.6; color:var(--hm); }

/* ── optimizer ── */
.hyb-opt-h{ display:flex; align-items:center; gap:11px; width:100%; background:none; border:0;
  cursor:pointer; font:inherit; text-align:left; padding:0; min-height:0; }
.hyb-opt-ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font-size:15px;
  background:rgba(255,150,40,.16); border:1px solid rgba(255,150,40,.4); color:#ffb45e; }
.hyb-opt-t{ display:flex; flex-direction:column; gap:2px; }
.hyb-opt-t b{ font-size:13.5px; font-weight:800; color:#eef3f8; }
.hyb-opt-t i{ font-style:normal; font-size:9.5px; color:var(--hm); }
.hyb-opt-c{ margin-left:auto; color:var(--hm); font-size:13px; transition:transform .2s; }
.hyb-opt[data-open="0"] .hyb-opt-c{ transform:rotate(180deg); }
.hyb-opt[data-open="0"] .hyb-opt-b{ display:none; }
.hyb-opt-b{ margin-top:14px; }
.hyb-opt-win{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.hyb-opt-win > span{ font-size:10.5px; color:var(--hm); margin-right:2px; }
.hyb-win{ min-height:30px; padding:0 11px; border-radius:7px; cursor:pointer; font:inherit;
  font-size:10.5px; font-weight:700; color:#7b8796; background:#1a2331; border:1px solid rgba(255,255,255,.07); }
.hyb-win.is-on{ background:rgba(255,150,40,.16); color:#ffb45e; border-color:rgba(255,150,40,.45); }
.hyb-golive{ margin-left:auto; min-height:34px; padding:0 16px; border-radius:8px; cursor:pointer; font:inherit;
  font-size:11.5px; font-weight:800; color:#2a1500; border:0;
  background:linear-gradient(180deg,#ffa640,#f57c00); }
.hyb-golive[data-on="1"]{ background:linear-gradient(180deg,#5a6a7d,#3b4655); color:#dfe7ef; }
.hyb-opt-empty{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:28px 14px; text-align:center; }
.hyb-opt-empty > span{ width:48px; height:48px; border-radius:13px; display:grid; place-items:center; font-size:20px;
  background:rgba(255,150,40,.12); border:1px solid rgba(255,150,40,.3); color:#ffb45e; }
.hyb-opt-empty b{ font-size:12.5px; font-weight:700; color:#c2cdd8; }
.hyb-opt-empty i{ font-style:normal; font-size:10px; line-height:1.55; color:var(--hm); max-width:330px; }
.hyb-opt-head, .hyb-opt-row{ display:grid; grid-template-columns:minmax(0,1.25fr) .74fr .5fr .5fr .5fr .62fr;
  gap:5px; align-items:center; }
.hyb-opt-head{ padding:0 8px 6px; font-size:7px; font-weight:800; letter-spacing:.06em; color:#69768a; }
.hyb-opt-head span:not(:first-child){ text-align:right; }
.hyb-opt-row{ width:100%; padding:9px 8px; margin-bottom:4px; border-radius:8px; cursor:pointer; font:inherit;
  text-align:left; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }
.hyb-opt-row.is-best{ background:rgba(255,150,40,.1); border-color:rgba(255,150,40,.4); }
.o-b{ font-size:10.5px; font-weight:800; color:#e9eef5; font-variant-numeric:tabular-nums; white-space:nowrap; }
.o-k{ font-size:8px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; text-align:right; }
.o-k[data-k="level"]{ color:#7fd3ff; } .o-k[data-k="split"]{ color:#ff9aa4; } .o-k[data-k="crossed"]{ color:#7ff0b4; }
.o-v{ font-size:9.5px; font-weight:700; color:#c2cdd8; text-align:right; font-variant-numeric:tabular-nums; }
.o-v.bad{ color:#ff9aa4; } .o-v.good{ color:#7ff0b4; }
.hyb-opt-n{ font-size:9.5px; line-height:1.6; color:var(--hm); margin-top:9px; }

/* ── chart ── */
.hyb-chart-h{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.hyb-chart-t{ font-size:13.5px; font-weight:800; color:#eef3f8; }
.hyb-chart-s{ font-size:9.5px; color:var(--hm); }
.hyb-chart-p{ margin-left:auto; text-align:right; }
.hyb-chart-p b{ display:block; font-size:17px; font-weight:800; color:#ff6b78; font-variant-numeric:tabular-nums; }
.hyb-chart-p i{ font-style:normal; font-size:10px; color:#ff6b78; font-variant-numeric:tabular-nums; }
.hyb-chart-p i[data-dir="up"]{ color:var(--hu); }
.hyb-anchor{ display:flex; align-items:center; gap:9px; padding:7px 11px; border-radius:8px;
  background:rgba(59,157,255,.07); border:1px solid rgba(59,157,255,.16); margin-bottom:9px; }
.hyb-anchor span{ font-size:10px; color:var(--hm); } .hyb-anchor b{ color:#c2cdd8; font-variant-numeric:tabular-nums; }
.hyb-anchor-r{ margin-left:auto; min-height:0; padding:3px 8px; border-radius:6px; cursor:pointer; font:inherit;
  font-size:9.5px; font-weight:700; color:#7fd3ff; background:none; border:1px solid rgba(59,157,255,.35); }
.hyb-zbanner{ padding:9px 12px; border-radius:8px; font-size:10.5px; font-weight:800; text-align:center; margin-bottom:10px; }
.hyb-zbanner[data-z="hi"]{ background:rgba(43,214,123,.14); color:#7ff0b4; border:1px solid rgba(43,214,123,.35); }
.hyb-zbanner[data-z="lo"]{ background:rgba(255,77,94,.14); color:#ff9aa4; border:1px solid rgba(255,77,94,.35); }
.hyb-zbanner[data-z="mid"]{ background:rgba(255,255,255,.05); color:#c2cdd8; border:1px solid rgba(255,255,255,.1); }
.hyb-plot{ position:relative; height:240px; padding-right:58px; margin-bottom:8px; }
.hyb-svg{ width:100%; height:100%; display:block; }
.hyb-line{ stroke:#ff4d5e; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.hyb-bl{ stroke-width:1.5; stroke-dasharray:6 4; }
.hyb-bl.up{ stroke:#2bd67b; } .hyb-bl.dn{ stroke:#ff4d5e; }
.hyb-mid-f[data-kind="dead"]{ fill:rgba(255,77,94,.09); }
.hyb-mid-f[data-kind="both"]{ fill:rgba(43,214,123,.11); }
.hyb-mid-f[data-kind="none"]{ fill:transparent; }
.hyb-plot-ax{ position:absolute; inset:0 0 0 auto; right:6px; width:50px; pointer-events:none; }
.hyb-plot-ax span{ position:absolute; right:0; transform:translateY(-50%); font-size:8.5px; color:#5f6d7c;
  font-variant-numeric:tabular-nums; }
.hyb-plot-tags{ position:absolute; inset:0 58px 0 0; pointer-events:none; }
.hyb-plot-tags b{ position:absolute; transform:translateY(-50%); padding:2px 6px; border-radius:4px;
  font-size:8.5px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hyb-plot-tags .t-hi{ left:4px; background:rgba(43,214,123,.85); color:#04240f; }
.hyb-plot-tags .t-lo{ right:4px; background:rgba(255,77,94,.85); color:#2a0509; }
.hyb-plot-tags .t-px{ left:4px; background:rgba(255,77,94,.7); color:#fff; }
.hyb-marks{ position:absolute; inset:0 58px 0 0; pointer-events:none; }
.hyb-mk{ position:absolute; transform:translate(-50%,-50%); }
.hyb-mk i{ font-style:normal; display:grid; place-items:center; width:16px; height:16px; border-radius:50%;
  font-size:9px; font-weight:900; border:1.5px solid; box-shadow:0 2px 8px rgba(0,0,0,.6); }
.hyb-mk[data-k="entry"] i{ background:#16304f; border-color:#3b9dff; color:#9fd3ff; }
.hyb-mk[data-k="win"] i{ background:#0d3a26; border-color:#2bd67b; color:#7ff0b4; }
.hyb-mk[data-k="loss"] i{ background:#3d1218; border-color:#ff4d5e; color:#ff9aa4; }
.hyb-legend{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; margin-bottom:10px; }
.hyb-legend span{ display:inline-flex; align-items:center; gap:6px; font-size:9.5px; color:var(--hm); }
.hyb-legend i{ width:14px; height:2px; border-radius:2px; }
.hyb-legend .l-p i{ background:#ff4d5e; }
.hyb-legend .l-h i{ background:#2bd67b; }
.hyb-legend .l-l i{ background:#ff4d5e; opacity:.6; }
.hyb-ztabs{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-radius:8px; overflow:hidden;
  border:1px solid rgba(255,255,255,.08); }
.hyb-ztab{ min-height:38px; border:0; cursor:default; font:inherit; font-size:10.5px; font-weight:700;
  color:#7b8796; background:#161f2b; }
.hyb-ztab.is-on[data-hyb-z="hi"]{ background:rgba(43,214,123,.22); color:#7ff0b4; }
.hyb-ztab.is-on[data-hyb-z="lo"]{ background:rgba(255,77,94,.22); color:#ff9aa4; }
.hyb-ztab.is-on[data-hyb-z="mid"]{ background:rgba(255,255,255,.1); color:#e9eef5; }

/* ── odds ── */
.analyzer[data-analyzer="streak"] > section#hyb-odds{ background-color:transparent; border:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; overflow:visible; }
.hyb-odd{ padding:16px; border-radius:13px; }
.hyb-odd.up{ background:linear-gradient(160deg,rgba(43,214,123,.16),rgba(43,214,123,.04));
  border:1px solid rgba(43,214,123,.3); }
.hyb-odd.dn{ background:linear-gradient(160deg,rgba(255,77,94,.16),rgba(255,77,94,.04));
  border:1px solid rgba(255,77,94,.3); }
.hyb-odd-k{ display:block; font-size:11.5px; font-weight:700; margin-bottom:7px; }
.hyb-odd.up .hyb-odd-k{ color:var(--hu); } .hyb-odd.dn .hyb-odd-k{ color:var(--hd); }
.hyb-odd b{ display:block; font-size:27px; font-weight:800; font-variant-numeric:tabular-nums; }
.hyb-odd.up b{ color:var(--hu); } .hyb-odd.dn b{ color:var(--hd); }
.hyb-odd i{ font-style:normal; font-size:9.5px; color:var(--hm); }

.hyb-recent-h{ display:flex; align-items:center; gap:8px; margin-bottom:11px; }
.hyb-recent-h b{ font-size:13px; font-weight:800; color:#eef3f8; }
.hyb-recent-r{ display:flex; gap:7px; flex-wrap:wrap; }
.hyb-mv{ width:30px; height:30px; border-radius:8px; display:grid; place-items:center;
  font-size:11px; font-weight:800; }
.hyb-mv.up{ background:rgba(43,214,123,.2); color:#7ff0b4; border:1px solid rgba(43,214,123,.4); }
.hyb-mv.dn{ background:rgba(255,77,94,.2); color:#ff9aa4; border:1px solid rgba(255,77,94,.4); }

/* ── prediction ── */
.analyzer[data-analyzer="streak"] > section#hyb-pred[data-dir="up"]{
  background-color:#0f2118; border-color:rgba(43,214,123,.28); }
.analyzer[data-analyzer="streak"] > section#hyb-pred[data-dir="dn"]{
  background-color:#201215; border-color:rgba(255,77,94,.28); }
.hyb-pred-h{ display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.hyb-pred-h b{ font-size:13px; font-weight:800; color:#eef3f8; }
.hyb-pred-c{ margin-left:auto; font-size:10.5px; color:var(--hm); }
.hyb-pred-b{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.hyb-pred-ar{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-size:16px;
  border:1.5px solid; }
.hyb-pred[data-dir="up"] .hyb-pred-ar{ color:var(--hu); border-color:var(--hu); }
.hyb-pred[data-dir="dn"] .hyb-pred-ar{ color:var(--hd); border-color:var(--hd); }
.hyb-pred-t b{ display:block; font-size:19px; font-weight:800; }
.hyb-pred[data-dir="up"] .hyb-pred-t b{ color:var(--hu); }
.hyb-pred[data-dir="dn"] .hyb-pred-t b{ color:var(--hd); }
.hyb-pred-t i{ font-style:normal; font-size:10px; color:var(--hm); }
.hyb-pred-m{ height:7px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; }
.hyb-pred-m i{ display:block; height:100%; width:0; border-radius:99px; transition:width .45s ease; }
.hyb-pred[data-dir="up"] .hyb-pred-m i{ background:linear-gradient(90deg,#1f9e5c,#5fe6a8); }
.hyb-pred[data-dir="dn"] .hyb-pred-m i{ background:linear-gradient(90deg,#c8323f,#ff8a95); }

/* ── execution ── */
.analyzer[data-analyzer="streak"] > section#hyb-exec{ background-color:transparent; border:0; padding:0; overflow:visible; }
.hyb-exec-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.hyb-fire{ width:100%; min-height:76px; border-radius:12px; cursor:pointer; font:inherit; border:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:12px 8px;
  box-shadow:0 10px 24px -14px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .1s, filter .16s; }
.hyb-fire:active{ transform:translateY(2px); }
.hyb-fire b{ font-size:14px; font-weight:800; }
.hyb-fire i{ font-style:normal; font-size:10.5px; font-weight:700; opacity:.95; }
.hyb-fire u{ text-decoration:none; font-size:9.5px; font-weight:700; opacity:.85; }
.hyb-fire.up{ background:linear-gradient(180deg,#2ee085,#159c58); color:#04240f; }
.hyb-fire.dn{ background:linear-gradient(180deg,#ff5f6e,#d61f33); color:#fff; }
.hyb-fire.both{ min-height:66px; background:linear-gradient(180deg,#3fa9ff,#1667d6); color:#fff; }

/* ── auto ── */
.hyb-auto-h{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.hyb-auto-h b{ font-size:14px; font-weight:800; color:#eef3f8; }
.hyb-auto-ic{ font-size:15px; }
.hyb-sw{ position:relative; margin-left:auto; flex:none; width:52px; height:29px; cursor:pointer; }
.hyb-sw input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.hyb-sw i{ position:absolute; inset:0; border-radius:99px; background:#39465a; transition:background .2s;
  pointer-events:none; display:block; }
.hyb-sw i::after{ content:""; position:absolute; top:3px; left:3px; width:23px; height:23px; border-radius:50%;
  background:#fff; transition:transform .2s cubic-bezier(.3,1.4,.5,1); box-shadow:0 2px 5px rgba(0,0,0,.45); }
.hyb-sw input:checked + i{ background:#1667d6; }
.hyb-sw input:checked + i::after{ transform:translateX(23px); }
.hyb-auto-r{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:12px; }
.hyb-auto-min{ font-size:10.5px; color:var(--hm); }
.hyb-mins{ display:flex; gap:5px; flex-wrap:wrap; }
.hyb-min{ min-height:32px; padding:0 10px; border-radius:7px; cursor:pointer; font:inherit;
  font-size:10.5px; font-weight:700; color:#7b8796; background:#1a2331; border:1px solid rgba(255,255,255,.07); }
.hyb-min.is-on{ background:rgba(59,157,255,.22); color:#9fd3ff; border-color:rgba(59,157,255,.5); }
.hyb-auto-t{ font-size:10px; line-height:1.6; color:var(--hm); margin:0; }

/* ── all 4 ── */
.hyb-all4-h{ display:flex; align-items:center; gap:9px; margin-bottom:14px; }
.hyb-all4-h span{ font-size:15px; color:#ffb45e; }
.hyb-all4-h b{ font-size:14px; font-weight:800; color:#ffb45e; }
.hyb-all4-b{ width:100%; min-height:78px; border-radius:12px; cursor:pointer; font:inherit; border:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:13px 10px;
  background:linear-gradient(180deg,#ffa640,#f06f00); color:#2a1500;
  box-shadow:0 10px 26px -14px rgba(240,111,0,.9), inset 0 1px 0 rgba(255,255,255,.3); }
.hyb-all4-b:active{ transform:translateY(2px); }
.hyb-all4-b b{ font-size:15px; font-weight:800; }
.hyb-all4-b i{ font-style:normal; font-size:11px; font-weight:700; opacity:.9; }
.hyb-all4-c{ display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.hyb-all4-c em{ font-style:normal; font-size:9px; font-weight:800; padding:2px 6px; border-radius:5px;
  font-variant-numeric:tabular-nums; }
.hyb-all4-c em.up{ background:rgba(4,36,15,.3); color:#0c3d1f; }
.hyb-all4-c em.dn{ background:rgba(42,5,9,.25); color:#5c1219; }

/* ── status ── */
.analyzer[data-analyzer="streak"] > section#hyb-status{
  display:flex; gap:14px; flex-wrap:wrap; justify-content:space-between;
  background-color:transparent; border:0; border-top:1px solid rgba(255,255,255,.07);
  border-radius:0; padding:12px 2px 2px; }
.hyb-status span{ font-size:9.5px; color:#69768a; }
.hyb-status u{ text-decoration:none; }
.hyb-status b{ color:#a8b4c2; font-variant-numeric:tabular-nums; }

/* ── phones ── */
@media (max-width:560px){
  .analyzer[data-analyzer="streak"] > section{ padding:12px; }
  .hyb-row2{ gap:9px; }
  .hyb-seg{ min-width:0; width:100%; }
  .hyb-seg-b{ padding:0 10px; }
  .hyb-chips{ gap:4px; } .hyb-chip{ font-size:8px; min-height:24px; }
  .hyb-plot{ height:200px; padding-right:50px; }
  .hyb-plot-ax{ width:44px; } .hyb-plot-tags, .hyb-marks{ inset:0 50px 0 0; }
  .hyb-odd{ padding:13px; } .hyb-odd b{ font-size:23px; }
  .hyb-opt-head, .hyb-opt-row{ grid-template-columns:minmax(0,1.15fr) .66fr .46fr .46fr .46fr .58fr; gap:3px; }
  .o-b{ font-size:9px; } .o-v{ font-size:8.5px; } .o-k{ font-size:7px; }
  .hyb-status{ gap:8px; } .hyb-status span{ font-size:8.5px; }
}
/* ⚠ the at92 mobile rule forces min-height:44px on every button/input — it would
   turn the chips, steppers, window buttons and switches into slabs. */
@media (max-width:900px){
  [class][class] .hyb-chip, [class][class] .hyb-win, [class][class] .hyb-min,
  [class][class] .hyb-sw, [class][class] .hyb-sw input, [class][class] .hyb-halfsw,
  [class][class] .hyb-anchor-r, [class][class] .hyb-opt-h, [class][class] .hyb-opt-row,
  [class][class] .hyb-ztab, [class][class] .hyb-step-b, [class][class] .hyb-step-i{
    min-height:0 !important;
  }
  [class][class] .hyb-step-b, [class][class] .hyb-step-i{ min-height:38px !important; }
  [class][class] .hyb-ztab{ min-height:38px !important; }
  [class][class] .hyb-halfsw{ min-height:38px !important; }
  [class][class] .hyb-golive{ min-height:34px !important; }
}


/* h5 — the shared gmCustomSelect wrapper paints its own label (.gm-sel-val) over the
   real <select>. "Volatility 100 Index" measured 137px inside a 100px box, so the
   market name ran past its control. Let it ellipsis inside this card. */
.analyzer[data-analyzer="streak"] .gm-sel-val,
.analyzer[data-analyzer="accumulator"] .gm-sel-val{
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.analyzer[data-analyzer="streak"] .gm-sel,
.analyzer[data-analyzer="streak"] .gm-select{ min-width:0; max-width:100%; }


/* h6 — ⚠ UNREACHABLE BARRIER.
   A barrier the tape has never reached quotes a huge payout while both legs lose
   almost always. The panel turns amber and says so, because the payout figure on
   its own reads as an opportunity. */
.hyb-gap[data-unreachable="1"]{
  background-color:#231803 !important;
  border-color:rgba(255,170,40,.5) !important;
}
.hyb-gap[data-unreachable="1"] .hyb-gap-h b{ color:#ffc357 !important; }
.hyb-gap[data-unreachable="1"] .hyb-gap-t{ color:#ffd08a; }
.hyb-gap[data-unreachable="1"] .hyb-gap-bar{ box-shadow:0 0 0 1px rgba(255,170,40,.35); }
/* the fire buttons carry it too — the warning has to reach the point of action */
.hyb-fire[data-dead="1"]{ filter:grayscale(.55) brightness(.7); }
.hyb-fire[data-dead="1"]::after{
  content:"never hit"; position:absolute; top:6px; right:8px;
  font-size:7.5px; font-weight:900; letter-spacing:.06em; color:#ffc357;
  background:rgba(0,0,0,.45); padding:2px 5px; border-radius:4px;
}
.hyb-fire{ position:relative; }

/* h7 — the optimizer's window chips wrapped 3+1 at 375px, pushing "Go Live" onto a
   second row. The word "ticks" is the only thing that does not fit: drop it on
   phones and all four chips plus the button share one row, as designed. */
.hyb-win u{ text-decoration:none; }
@media (max-width:560px){
  .hyb-win u{ display:none; }
  .hyb-win{ padding:0 9px; min-width:30px; }
  .hyb-opt-win{ gap:5px; flex-wrap:nowrap; }
  .hyb-opt-win > span{ flex:none; }
  .hyb-golive{ padding:0 12px; font-size:11px; white-space:nowrap; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   h8 — Hybrid chart, next pass: the two winning zones are painted, the price
   line gets a gradient body and a glow, and the recommended pair gets its own
   card with an explicit Apply.
   ═══════════════════════════════════════════════════════════════════════════ */

/* the winning zones — green above the higher barrier, red below the lower one */
.hyb-zone-hi{ fill:url(#hybUp); }
.hyb-zone-lo{ fill:url(#hybDn); }
.hyb-area{ fill:url(#hybPx); }
.hyb-grid-l{ stroke:rgba(255,255,255,.045); stroke-width:1; }
.hyb-line{ stroke:#9ec6ff; stroke-width:2.2; }
.hyb-bl{ stroke-width:1.6; stroke-dasharray:7 5; }
.hyb-bl.up{ stroke:#2bd67b; opacity:.95; }
.hyb-bl.dn{ stroke:#ff4d5e; opacity:.95; }
.hyb-mid-f[data-kind="dead"]{ fill:rgba(255,77,94,.10); }
.hyb-mid-f[data-kind="both"]{ fill:rgba(43,214,123,.12); }
.hyb-mid-f[data-kind="none"]{ fill:rgba(255,255,255,.03); }

.hyb-now{
  position:absolute; width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:50%;
  background:#9ec6ff; box-shadow:0 0 0 3px rgba(158,198,255,.22), 0 0 14px rgba(158,198,255,.8);
  pointer-events:none; animation:hybNow 1.5s ease-in-out infinite;
}
@keyframes hybNow{
  0%,100%{ box-shadow:0 0 0 3px rgba(158,198,255,.22), 0 0 14px rgba(158,198,255,.8) }
  50%    { box-shadow:0 0 0 9px rgba(158,198,255,.05), 0 0 18px rgba(158,198,255,.5) }
}
.hyb-legend .l-p i{ background:#9ec6ff; }

/* ── ★ recommended pair ──────────────────────────────────────────────────── */
.hyb-best{
  margin-bottom:14px; padding:13px; border-radius:12px;
  background:linear-gradient(160deg,rgba(255,150,40,.12),rgba(255,150,40,.03));
  border:1px solid rgba(255,150,40,.42);
}
.hyb-best[data-reach="0"]{
  background:linear-gradient(160deg,rgba(255,170,40,.10),rgba(255,170,40,.02));
  border-color:rgba(255,170,40,.35);
}
.hyb-best-h{ display:flex; align-items:baseline; gap:8px; margin-bottom:11px; }
.hyb-best-h span{ color:#ffc357; font-size:13px; }
.hyb-best-h b{ font-size:10.5px; font-weight:900; letter-spacing:.1em; color:#ffc357; }
.hyb-best-h i{ margin-left:auto; font-style:normal; font-size:9px; color:#8d97a5; }
.hyb-best-v{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.hyb-best-c{ padding:9px 6px; border-radius:9px; text-align:center;
  background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.07); }
.hyb-best-c u{ display:block; text-decoration:none; font-size:8px; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase; color:#7e8b9a; }
.hyb-best-c b{ display:block; font-size:15px; font-weight:800; margin-top:3px;
  color:#e9eef5; font-variant-numeric:tabular-nums; }
.hyb-best-c.up b{ color:#2bd67b; } .hyb-best-c.dn b{ color:#ff4d5e; }
.hyb-best-s{ font-size:9.5px; line-height:1.6; color:#8d97a5; margin-bottom:11px; }
.hyb-apply{
  width:100%; min-height:46px; border-radius:10px; cursor:pointer; font:inherit; border:0;
  font-size:13px; font-weight:800; color:#2a1500;
  background:linear-gradient(180deg,#ffc357,#f59000);
  box-shadow:0 8px 20px -12px rgba(245,144,0,.9), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .1s, filter .16s;
}
.hyb-apply:active{ transform:translateY(2px); }
.hyb-apply[data-applied="1"]{
  background:linear-gradient(180deg,#2bd67b,#159c58); color:#04240f; cursor:default;
}

@media (max-width:560px){
  .hyb-best-v{ gap:6px; } .hyb-best-c{ padding:8px 4px; } .hyb-best-c b{ font-size:13px; }
  .hyb-now{ width:9px; height:9px; margin:-4.5px 0 0 -4.5px; }
}
@media (prefers-reduced-motion:reduce){ .hyb-now{ animation:none; } }
@media (max-width:900px){ [class][class] .hyb-apply{ min-height:46px !important; } }

/* ═══════════════════════════════════════════════════════════════════════════
   h9 — ⚠ THE CHARTS COLLAPSED ON PHONES.
   The mobile "nothing overflows a card" pass (~21196) includes
       .analyzer svg { height:auto }   /* inside @media (max-width:900px) */
   at (0,1,1), which beats `.hyb-svg` / `.acc-svg` at (0,1,0). With height:auto an
   SVG falls back to its viewBox aspect ratio: measured 108px inside a 200px plot,
   so the price line, the barrier zones and the axis labels stopped agreeing — the
   chart drew in the top half of its own box.
   That rule exists for IMAGES; these are sized, positioned plots. Restated at
   (0,2,0) so the explicit height wins on every width.
   ═══════════════════════════════════════════════════════════════════════════ */
.analyzer .hyb-svg, .analyzer .acc-svg{ height:100% !important; width:100% !important; display:block; }


/* ═══════════════════════════════════════════════════════════════════════════
   a3 — BARRIER OPTIMIZER as a multi-market scanner: one card per pair, ranked,
   each with its own barriers and an Apply that switches the desk to it.
   ═══════════════════════════════════════════════════════════════════════════ */
.hyb-opt-live{ display:inline-flex; align-items:center; gap:5px; flex:none;
  padding:3px 9px; border-radius:99px; font-size:8.5px; font-weight:800; letter-spacing:.07em;
  color:#5fe6a8; background:rgba(43,214,123,.14); border:1px solid rgba(43,214,123,.4); }
.hyb-opt-live i{ width:6px; height:6px; border-radius:50%; background:#2bd67b;
  box-shadow:0 0 7px #2bd67b; animation:hybPulse 1.6s ease-in-out infinite; }
.hyb-opt-n{ flex:none; padding:3px 9px; border-radius:99px; font-size:8.5px; font-weight:800;
  color:#ffc357; background:rgba(255,150,40,.14); border:1px solid rgba(255,150,40,.4); }
.hyb-opt-h .hyb-opt-c{ margin-left:6px; }
.hyb-opt-t{ flex:1; min-width:0; }

.hyb-golive[data-on="1"]{ background:linear-gradient(180deg,#ff5f6e,#d61f33) !important; color:#fff !important; }

/* scan sub-header */
.hyb-scan-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.hyb-scan-ic{ color:#ffc357; font-size:12px; }
.hyb-scan-h b{ font-size:11.5px; font-weight:800; color:#e9eef5; }
.hyb-scan-live{ margin-left:auto; display:inline-flex; align-items:center; gap:5px;
  padding:2px 8px; border-radius:99px; font-size:8px; font-weight:800; color:#5fe6a8;
  background:rgba(43,214,123,.12); border:1px solid rgba(43,214,123,.35); }
.hyb-scan-live i{ width:5px; height:5px; border-radius:50%; background:#2bd67b; box-shadow:0 0 6px #2bd67b; }
.hyb-scan-n{ font-size:9px; color:#7e8b9a; font-variant-numeric:tabular-nums; }

/* ── one card per market ── */
.hyb-mk-card{
  padding:13px; margin-bottom:10px; border-radius:13px;
  background:#141c28; border:1px solid rgba(255,255,255,.08);
}
.hyb-mk-card.is-top{
  background:linear-gradient(160deg,rgba(43,214,123,.13),rgba(43,214,123,.03));
  border-color:rgba(43,214,123,.45);
}
.hyb-mk-card.is-cur{ box-shadow:inset 0 0 0 1px rgba(59,157,255,.35); }
.hyb-mk-h{ display:flex; align-items:center; gap:9px; margin-bottom:11px; }
.hyb-mk-r{ flex:none; min-width:26px; padding:3px 6px; border-radius:6px; text-align:center;
  font-size:9px; font-weight:900; color:#ffc357;
  background:rgba(255,150,40,.16); border:1px solid rgba(255,150,40,.35); }
.hyb-mk-n{ font-size:14px; font-weight:800; color:#eef3f8; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hyb-mk-cur{ flex:none; font-size:8px; font-weight:800; letter-spacing:.05em; color:#9fd3ff;
  padding:2px 6px; border-radius:5px; background:rgba(59,157,255,.16); border:1px solid rgba(59,157,255,.4); }
.hyb-mk-score{ margin-left:auto; flex:none; text-align:right; }
.hyb-mk-score b{ display:block; font-size:26px; font-weight:800; line-height:1;
  color:#5fe6a8; font-variant-numeric:tabular-nums; }
.hyb-mk-score u{ display:block; text-decoration:none; font-size:7.5px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:#7e8b9a; margin-top:2px; }

.hyb-mk-g{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; margin-bottom:9px; }
.hyb-mk-g span{ display:flex; align-items:baseline; gap:6px; }
.hyb-mk-g u{ text-decoration:none; font-size:9.5px; color:#7e8b9a; }
.hyb-mk-g b{ margin-left:auto; font-size:11.5px; font-weight:800; color:#e9eef5;
  font-variant-numeric:tabular-nums; }
.hyb-mk-g b.up{ color:#2bd67b; } .hyb-mk-g b.dn{ color:#ff4d5e; }

.hyb-mk-diff{ display:flex; align-items:baseline; gap:8px; padding:7px 9px; margin-bottom:10px;
  border-radius:8px; background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.06); }
.hyb-mk-diff u{ text-decoration:none; font-size:9.5px; color:#7e8b9a; }
.hyb-mk-diff b{ margin-left:auto; font-size:12.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.hyb-mk-diff b.up{ color:#2bd67b; } .hyb-mk-diff b.dn{ color:#ff4d5e; }

.hyb-mk-chips{ display:flex; gap:7px; flex-wrap:wrap; margin-bottom:10px; }
.hyb-mk-chips span{ padding:6px 11px; border-radius:8px; font-size:10.5px; font-weight:800;
  font-variant-numeric:tabular-nums; }
.hyb-mk-chips .c-up{ color:#5fe6a8; background:rgba(43,214,123,.14); border:1px solid rgba(43,214,123,.35); }
.hyb-mk-chips .c-dn{ color:#ff9aa4; background:rgba(255,77,94,.14); border:1px solid rgba(255,77,94,.35); }
.hyb-mk-chips .c-v{ margin-left:auto; }
.hyb-mk-chips .c-v[data-v="up"]{ color:#5fe6a8; background:rgba(43,214,123,.18); border:1px solid rgba(43,214,123,.45); }
.hyb-mk-chips .c-v[data-v="dn"]{ color:#ff9aa4; background:rgba(255,77,94,.18); border:1px solid rgba(255,77,94,.45); }
.hyb-mk-chips .c-v[data-v="na"]{ color:#8d97a5; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); }

.hyb-mk-bar{ height:5px; border-radius:99px; background:rgba(255,255,255,.07);
  overflow:hidden; margin-bottom:11px; }
.hyb-mk-bar i{ display:block; height:100%; border-radius:99px;
  background:linear-gradient(90deg,#1f9e5c,#5fe6a8); transition:width .45s ease; }
.hyb-mk-apply{
  width:100%; min-height:42px; border-radius:9px; cursor:pointer; font:inherit; border:0;
  font-size:12px; font-weight:800; color:#2a1500;
  background:linear-gradient(180deg,#ffc357,#f59000);
  box-shadow:0 7px 18px -12px rgba(245,144,0,.9), inset 0 1px 0 rgba(255,255,255,.32);
}
.hyb-mk-apply:active{ transform:translateY(2px); }

.hyb-opt-foot{ margin-top:4px; font-size:9.5px; line-height:1.6; color:#7e8b9a; }
.hyb-opt-foot b{ color:#ffc357; }
.hyb-opt-foot em{ font-style:normal; color:#96a2b0; }

@media (max-width:560px){
  .hyb-mk-card{ padding:11px; }
  .hyb-mk-n{ font-size:12.5px; }
  .hyb-mk-score b{ font-size:22px; }
  .hyb-mk-g{ gap:5px 8px; }
  .hyb-mk-g u{ font-size:8.5px; } .hyb-mk-g b{ font-size:10.5px; }
  .hyb-mk-chips span{ padding:5px 8px; font-size:9.5px; }
  .hyb-scan-h b{ font-size:10.5px; }
}
@media (max-width:900px){
  [class][class] .hyb-mk-apply{ min-height:42px !important; }
  [class][class] .hyb-opt-live, [class][class] .hyb-opt-n{ min-height:0 !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   a5 — the optimizer window row broke with 7 windows.
   h7 forced `flex-wrap:nowrap` when there were four chips; at seven the chips were
   squeezed to 30px, "100" wrapped across three lines, and Go Live was pushed to
   x=327 — outside the card. Wrap is allowed again, chips keep their digits on one
   line, and Go Live takes its own full-width row so it can never be clipped.
   ═══════════════════════════════════════════════════════════════════════════ */
.hyb-opt-win{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.hyb-win{ white-space:nowrap; flex:0 0 auto; min-width:34px; padding:0 10px; }
.hyb-golive{ margin-left:auto; }
@media (max-width:560px){
  .hyb-opt-win{ flex-wrap:wrap !important; gap:5px; }
  .hyb-win{ min-width:32px; padding:0 8px; font-size:10px; }
  .hyb-golive{ flex:1 1 100%; margin-left:0; margin-top:4px; }
}

/* a8 — a refused barrier must be visible where the fire buttons are */
.hyb-fire-err{
  padding:10px 12px; margin-bottom:12px; border-radius:10px;
  font-size:10.5px; font-weight:700; line-height:1.5; color:#ffb3ba;
  background:rgba(255,77,94,.12); border:1px solid rgba(255,77,94,.4);
}

/* ═══════════════════════════════════════════════════════════════════════════
   b6 — BARRIERS drawn as a crisp HTML overlay instead of stretched SVG strokes,
   with the price-axis labels a real trading chart uses.
   ⚠ The SVG is preserveAspectRatio="none": a 1.6px stroke rendered at 1.21px
   (fractional ⇒ blurry on a horizontal line) and a 7/5 dash squashed to 5.1/3.7.
   HTML borders sit on the device pixel grid and never rescale.
   ═══════════════════════════════════════════════════════════════════════════ */
.hyb-blines{ position:absolute; inset:0 58px 0 0; pointer-events:none; }
.hyb-blines .bl{
  position:absolute; left:0; right:0; height:0; display:block;
  border-top:1px dashed currentColor; opacity:.85;
}
.hyb-blines .bl::after{          /* a soft halo so the line reads as a level, not a hairline */
  content:""; position:absolute; left:0; right:0; top:-2px; height:5px;
  background:currentColor; opacity:.1; filter:blur(2px);
}
.hyb-blines .bl.up{ color:#2bd67b; }
.hyb-blines .bl.dn{ color:#ff4d5e; }
.hyb-blines .bl.now{ color:#9ec6ff; border-top-style:solid; opacity:.5; }
.hyb-blines .bl.now::after{ opacity:.16; }

/* labels ride the price axis on the right, like a real chart */
.hyb-plot-tags{ position:absolute; inset:0 0 0 auto; right:0; width:58px; pointer-events:none; }
.hyb-plot-tags b{
  position:absolute; right:2px; transform:translateY(-50%);
  padding:2px 5px; border-radius:3px; white-space:nowrap;
  font-size:8.5px; font-weight:800; font-variant-numeric:tabular-nums;
  box-shadow:0 1px 4px rgba(0,0,0,.55);
}
.hyb-plot-tags .t-hi{ background:#2bd67b; color:#04240f; }
.hyb-plot-tags .t-lo{ background:#ff4d5e; color:#2a0509; }
.hyb-plot-tags .t-px{ background:#9ec6ff; color:#0a1b33; }
/* the axis numbers step aside for the labels */
.hyb-plot-ax{ opacity:.55; }
@media (max-width:560px){
  .hyb-blines{ inset:0 50px 0 0; }
  .hyb-plot-tags{ width:50px; }
  .hyb-plot-tags b{ font-size:8px; padding:2px 4px; }
}

/* b8 — what the market actually supports, shown before a trade is attempted */
.hyb-spec{
  padding:8px 11px; margin-bottom:10px; border-radius:9px;
  font-size:9.5px; font-weight:700; color:#8fa3b8;
  background:rgba(59,157,255,.07); border:1px solid rgba(59,157,255,.18);
}
.hyb-fire[data-blocked="1"], .hyb-all4-b[data-blocked="1"]{
  filter:grayscale(.7) brightness(.6); cursor:not-allowed;
}


/* ═══════════════════════════════════════════════════════════════════════════
   f4 — BARRIERS: preset + tighten-only. The manual offset inputs are gone;
   a typed barrier is how "+2889" reached the wire.
   ═══════════════════════════════════════════════════════════════════════════ */
.analyzer .hyb-bars{ display:block; }
.analyzer .hyb-bars-h{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.analyzer .hyb-bars-t{ font-size:11.5px; font-weight:800; color:#e9eef5; letter-spacing:.02em; }
.analyzer .hyb-bars-auto{ margin-left:auto; font-size:8.5px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:#9fd3ff; padding:3px 8px; border-radius:99px;
  background:rgba(59,157,255,.14); border:1px solid rgba(59,157,255,.34); }

.analyzer .hyb-bar-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.analyzer .hyb-bar{ padding:11px 12px; border-radius:12px; min-width:0;
  background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.08); }
.analyzer .hyb-bar.up{ border-color:rgba(43,214,123,.34); background:linear-gradient(160deg,rgba(43,214,123,.10),rgba(43,214,123,.02)); }
.analyzer .hyb-bar.dn{ border-color:rgba(255,77,94,.34); background:linear-gradient(160deg,rgba(255,77,94,.10),rgba(255,77,94,.02)); }
.analyzer .hyb-bar .hyb-bar-t{ display:block; font-size:9.5px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:#8d97a5; margin-bottom:5px; }
.analyzer .hyb-bar .hyb-bar-v{ display:block; font-size:17px; font-weight:800; line-height:1.1;
  font-variant-numeric:tabular-nums; color:#eef3f8; overflow:hidden; text-overflow:ellipsis; }
.analyzer .hyb-bar.up .hyb-bar-v{ color:#5fe6a8; }
.analyzer .hyb-bar.dn .hyb-bar-v{ color:#ff9aa4; }
.analyzer .hyb-bar .hyb-bar-o{ display:block; margin-top:3px; font-style:normal;
  font-size:10.5px; font-weight:700; color:#7e8b9a; font-variant-numeric:tabular-nums; }

.analyzer .hyb-tight{ padding:12px; border-radius:12px;
  background:rgba(0,0,0,.24); border:1px solid rgba(255,255,255,.07); }
.analyzer .hyb-tight-h{ display:flex; align-items:baseline; gap:8px; margin-bottom:9px; }
.analyzer .hyb-tight-h span{ font-size:10.5px; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; color:#8d97a5; }
.analyzer .hyb-tight-h b{ margin-left:auto; font-size:15px; font-weight:800;
  color:#ffc357; font-variant-numeric:tabular-nums; }

.analyzer input[type="range"].hyb-tight-r{
  -webkit-appearance:none; appearance:none; width:100%; height:26px; margin:0 0 10px;
  background:transparent; cursor:pointer; display:block;
}
.analyzer input[type="range"].hyb-tight-r::-webkit-slider-runnable-track{
  height:6px; border-radius:99px;
  background:linear-gradient(90deg,#f59000,#2bd67b);
  border:1px solid rgba(255,255,255,.12);
}
.analyzer input[type="range"].hyb-tight-r::-moz-range-track{
  height:6px; border-radius:99px;
  background:linear-gradient(90deg,#f59000,#2bd67b);
  border:1px solid rgba(255,255,255,.12);
}
.analyzer input[type="range"].hyb-tight-r::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:22px; height:22px; margin-top:-9px;
  border-radius:50%; background:linear-gradient(180deg,#fff,#cfd8e3);
  border:2px solid #0d1420; box-shadow:0 3px 10px -3px rgba(0,0,0,.8);
}
.analyzer input[type="range"].hyb-tight-r::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%;
  background:linear-gradient(180deg,#fff,#cfd8e3);
  border:2px solid #0d1420; box-shadow:0 3px 10px -3px rgba(0,0,0,.8);
}

.analyzer .hyb-tight-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.analyzer .hyb-tight-chips .hyb-tchip{
  flex:1 1 auto; min-width:58px; padding:8px 6px; border-radius:9px; cursor:pointer;
  font:inherit; font-size:10.5px; font-weight:800; color:#b9c4d2;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
}
.analyzer .hyb-tight-chips .hyb-tchip.is-on{
  color:#2a1500; background:linear-gradient(180deg,#ffc357,#f59000);
  border-color:rgba(245,144,0,.6); box-shadow:0 6px 16px -11px rgba(245,144,0,.95);
}
.analyzer .hyb-tight-chips .hyb-tchip:active{ transform:translateY(1px); }
.analyzer .hyb-tight-t{ margin:10px 0 0; font-size:9.5px; line-height:1.6; color:#7e8b9a; }

@media (max-width:560px){
  .analyzer .hyb-bar-row{ gap:8px; }
  .analyzer .hyb-bar{ padding:9px 10px; }
  .analyzer .hyb-bar .hyb-bar-v{ font-size:15px; }
  .analyzer .hyb-tight-chips .hyb-tchip{ min-width:0; font-size:9.5px; padding:8px 4px; }
}
@media (max-width:900px){
  [class][class] .analyzer .hyb-tight-chips .hyb-tchip{ min-height:40px !important; }
}


/* ⚠ CASCADE: an earlier block sets
   `.analyzer[data-analyzer="streak"] > section#hyb-bars{ display:grid; grid-template-columns:repeat(2,…) }`
   — specificity (1,2,1). The new barrier panel is a single column with its own inner
   grid, and `.analyzer .hyb-bars` (0,2,0) could never beat it, so the header and the
   two barrier cards were laid out side by side and ran off the right edge.
   Match the same shape so this wins on source order. */
.analyzer[data-analyzer="streak"] > section#hyb-bars{
  display:block !important;
  grid-template-columns:none !important;
}
.analyzer[data-analyzer="streak"] > section#hyb-bars .hyb-bar-row{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px;
}


/* f9 — on-screen diagnostic (the console is unusable on a phone) */
.analyzer .hyb-diag{ margin-top:10px; }
.analyzer .hyb-diag-b{
  width:100%; min-height:44px; border-radius:10px; cursor:pointer; font:inherit; border:0;
  font-size:12px; font-weight:800; color:#08131f;
  background:linear-gradient(180deg,#8fd8ff,#3b9dff);
  box-shadow:0 7px 18px -12px rgba(59,157,255,.95), inset 0 1px 0 rgba(255,255,255,.35);
}
.analyzer .hyb-diag-b:active{ transform:translateY(2px); }
.analyzer .hyb-diag-b[disabled]{ opacity:.6; }
.analyzer .hyb-diag-out{
  margin:10px 0 0; padding:11px 12px; border-radius:10px; max-height:320px; overflow:auto;
  background:rgba(0,0,0,.42); border:1px solid rgba(255,255,255,.1);
  color:#cfe0f2; font-size:10.5px; line-height:1.55; white-space:pre-wrap; word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  -webkit-overflow-scrolling:touch;
}


/* g3 — market-count chip on the Market label */
.analyzer .hyb-mkt-n{
  font-style:normal; font-size:9px; font-weight:700; letter-spacing:.03em;
  color:#5fe6a8; margin-left:5px;
}
.analyzer .hyb-mkt-n[data-busy="1"]{ color:#ffc357; }


/* g5 — per-market bias readout + data-freshness chip in the Barrier Optimizer */
.analyzer .hyb-mk-bias{
  display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;
  padding:7px 9px; margin-bottom:10px; border-radius:8px;
  background:rgba(0,0,0,.26); border:1px solid rgba(255,255,255,.07);
}
.analyzer .hyb-mk-bias .mkb-d{ font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; color:#e9eef5; }
.analyzer .hyb-mk-bias .mkb-s{ font-size:9.5px; color:#7e8b9a; font-variant-numeric:tabular-nums; }
.analyzer .hyb-mk-bias .mkb-n{
  margin-left:auto; padding:2px 8px; border-radius:99px;
  font-size:8.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
}
.analyzer .hyb-mk-bias[data-tier="real"]{ border-color:rgba(43,214,123,.4); }
.analyzer .hyb-mk-bias[data-tier="real"] .mkb-d{ color:#5fe6a8; }
.analyzer .hyb-mk-bias[data-tier="real"] .mkb-n{ color:#08130c; background:#5fe6a8; }
.analyzer .hyb-mk-bias[data-tier="leaning"]{ border-color:rgba(255,195,87,.35); }
.analyzer .hyb-mk-bias[data-tier="leaning"] .mkb-d{ color:#ffc357; }
.analyzer .hyb-mk-bias[data-tier="leaning"] .mkb-n{ color:#2a1500; background:#ffc357; }
.analyzer .hyb-mk-bias[data-tier="flat"] .mkb-n{ color:#9aa5b2; background:rgba(255,255,255,.08); }

.analyzer .hyb-mk-chips .c-age{
  margin-left:auto; padding:5px 9px; border-radius:8px;
  font-size:9.5px; font-weight:700; color:#8d97a5;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
}
.analyzer .hyb-mk-chips .c-age[data-live="1"]{
  color:#5fe6a8; background:rgba(43,214,123,.14); border-color:rgba(43,214,123,.38);
}
@media (max-width:560px){
  .analyzer .hyb-mk-bias .mkb-d{ font-size:11px; }
  .analyzer .hyb-mk-bias .mkb-s{ font-size:8.5px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   g7 — LIVE TRADE STRIP. Sits directly above the Higher/Lower fire buttons,
   appears the instant a fire starts, counts the contract down, reports the result.
   ═══════════════════════════════════════════════════════════════════════════ */
.analyzer .hyb-lstrip{
  margin:0 0 10px; padding:9px 11px; border-radius:11px; overflow:hidden;
  background:linear-gradient(160deg,rgba(59,157,255,.14),rgba(59,157,255,.03));
  border:1px solid rgba(59,157,255,.38);
  animation:hybLiveIn .22s ease-out;
}
@keyframes hybLiveIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

.analyzer .hyb-lstrip-top{ display:flex; align-items:baseline; gap:8px; margin-bottom:8px; min-width:0; }
.analyzer .hyb-lstrip .hl-ic{ flex:none; font-size:13px; line-height:1; color:#9fd3ff; }
.analyzer .hyb-lstrip .hl-time{
  flex:none; font-size:17px; font-weight:800; line-height:1; color:#eef3f8;
  font-variant-numeric:tabular-nums; letter-spacing:.01em;
}
.analyzer .hyb-lstrip .hl-lbl{
  flex:1 1 auto; min-width:0; font-size:9.5px; color:#8d97a5;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.analyzer .hyb-lstrip .hl-legs{
  flex:none; font-size:8.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:#9fd3ff; padding:2px 7px; border-radius:99px;
  background:rgba(59,157,255,.16); border:1px solid rgba(59,157,255,.36);
}
.analyzer .hyb-lstrip .hl-pay{
  flex:none; font-size:12px; font-weight:800; color:#5fe6a8; font-variant-numeric:tabular-nums;
}

.analyzer .hyb-lstrip-bar{
  height:5px; border-radius:99px; background:rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.07); overflow:hidden;
}
.analyzer .hyb-lstrip-bar > i{
  display:block; height:100%; width:100%; border-radius:99px;
  background:linear-gradient(90deg,#3b9dff,#8fd8ff);
  transition:width .25s linear;
}

/* ── placing: indeterminate sweep, nothing numeric claimed yet ── */
.analyzer .hyb-lstrip[data-phase="placing"] .hyb-lstrip-bar > i,
.analyzer .hyb-lstrip[data-phase="settling"] .hyb-lstrip-bar > i{
  background:linear-gradient(90deg,rgba(59,157,255,.15),#8fd8ff,rgba(59,157,255,.15));
  background-size:220% 100%; animation:hybLiveSweep 1.1s linear infinite; transition:none;
}
@keyframes hybLiveSweep{ from{ background-position:220% 0; } to{ background-position:-20% 0; } }
.analyzer .hyb-lstrip[data-phase="placing"] .hl-ic,
.analyzer .hyb-lstrip[data-phase="settling"] .hl-ic{ animation:hybLiveSpin 1s linear infinite; display:inline-block; }
@keyframes hybLiveSpin{ to{ transform:rotate(360deg); } }

/* ── running: fill drains, turns amber then red as it closes ── */
.analyzer .hyb-lstrip[data-phase="running"]{ border-color:rgba(255,195,87,.42);
  background:linear-gradient(160deg,rgba(255,195,87,.13),rgba(255,195,87,.03)); }
.analyzer .hyb-lstrip[data-phase="running"] .hl-ic{ color:#ffc357; }
.analyzer .hyb-lstrip[data-phase="running"] .hyb-lstrip-bar > i{ background:linear-gradient(90deg,#f59000,#ffc357); }
.analyzer .hyb-lstrip[data-phase="running"] .hl-legs{
  color:#ffc357; background:rgba(255,150,40,.16); border-color:rgba(255,150,40,.38); }

/* ── results ── */
.analyzer .hyb-lstrip[data-phase="won"]{ border-color:rgba(43,214,123,.5);
  background:linear-gradient(160deg,rgba(43,214,123,.16),rgba(43,214,123,.03)); }
.analyzer .hyb-lstrip[data-phase="won"] .hl-ic,
.analyzer .hyb-lstrip[data-phase="won"] .hl-time{ color:#5fe6a8; }
.analyzer .hyb-lstrip[data-phase="won"] .hyb-lstrip-bar > i{ background:linear-gradient(90deg,#1f9e5c,#5fe6a8); }

.analyzer .hyb-lstrip[data-phase="lost"]{ border-color:rgba(255,77,94,.5);
  background:linear-gradient(160deg,rgba(255,77,94,.15),rgba(255,77,94,.03)); }
.analyzer .hyb-lstrip[data-phase="lost"] .hl-ic,
.analyzer .hyb-lstrip[data-phase="lost"] .hl-time{ color:#ff9aa4; }
.analyzer .hyb-lstrip[data-phase="lost"] .hl-pay{ color:#ff9aa4; }
.analyzer .hyb-lstrip[data-phase="lost"] .hyb-lstrip-bar > i{ background:linear-gradient(90deg,#c02436,#ff6b7a); }

.analyzer .hyb-lstrip[data-phase="refund"]{ border-color:rgba(255,255,255,.2);
  background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); }
.analyzer .hyb-lstrip[data-phase="refund"] .hl-pay{ color:#cfd8e3; }

.analyzer .hyb-lstrip[data-phase="failed"]{ border-color:rgba(255,77,94,.45);
  background:linear-gradient(160deg,rgba(255,77,94,.12),rgba(255,77,94,.02)); }
.analyzer .hyb-lstrip[data-phase="failed"] .hl-ic,
.analyzer .hyb-lstrip[data-phase="failed"] .hl-time{ color:#ff9aa4; }
.analyzer .hyb-lstrip[data-phase="failed"] .hyb-lstrip-bar > i{ background:rgba(255,77,94,.5); }

@media (max-width:560px){
  .analyzer .hyb-lstrip{ padding:8px 10px; }
  .analyzer .hyb-lstrip .hl-time{ font-size:15px; }
  .analyzer .hyb-lstrip .hl-lbl{ font-size:9px; }
  .analyzer .hyb-lstrip .hl-pay{ font-size:11px; }
  .analyzer .hyb-lstrip .hl-legs{ display:none; }   /* keep one clean line on a phone */
}
@media (prefers-reduced-motion: reduce){
  .analyzer .hyb-lstrip{ animation:none; }
  .analyzer .hyb-lstrip .hyb-lstrip-bar > i{ animation:none !important; }
  .analyzer .hyb-lstrip .hl-ic{ animation:none !important; }
}


/* h9 — one-tap switch to the classic Deriv link, shown only when the new Options
   API is refusing barrier contracts */
.analyzer .hyb-classic-b{
  width:100%; min-height:46px; margin-bottom:8px; border-radius:10px; cursor:pointer; font:inherit; border:0;
  font-size:12px; font-weight:800; color:#2a1500; line-height:1.3; padding:8px 12px;
  background:linear-gradient(180deg,#ffc357,#f59000);
  box-shadow:0 7px 18px -12px rgba(245,144,0,.95), inset 0 1px 0 rgba(255,255,255,.32);
}
.analyzer .hyb-classic-b:active{ transform:translateY(2px); }


/* i2 — the barrier chip goes green when the level shown is Deriv's own published one */
.analyzer .hyb-bars-auto[data-deriv="1"]{
  color:#5fe6a8; background:rgba(43,214,123,.14); border-color:rgba(43,214,123,.4);
}


/* ═══════════════════════════════════════════════════════════════════════════
   i6 — BOLD BARRIERS on the price chart. The lines were a 1px dashed hairline at
   .85 opacity — invisible on a phone in daylight. Now a 2.5px solid line, full
   opacity, with a wider coloured glow, and the axis tags are bigger and heavier.
   Same selector shape as the block above so this wins on source order.
   ═══════════════════════════════════════════════════════════════════════════ */
.hyb-blines .bl{
  border-top:2.5px solid currentColor;
  opacity:1;
}
.hyb-blines .bl::after{
  top:-4px; height:9px; opacity:.28; filter:blur(4px);
}
/* a second, tighter halo so the core line stays crisp on top of the glow */
.hyb-blines .bl::before{
  content:""; position:absolute; left:0; right:0; top:-1.5px; height:4px;
  background:currentColor; opacity:.35; filter:blur(1px);
}
.hyb-blines .bl.up{ color:#3dff98; }
.hyb-blines .bl.dn{ color:#ff5a6b; }
/* the live price line stays a thin reference, so the barriers are what stand out */
.hyb-blines .bl.now{ border-top:1.5px solid currentColor; opacity:.55; }
.hyb-blines .bl.now::before{ display:none; }
.hyb-blines .bl.now::after{ opacity:.14; }

.hyb-plot-tags b{
  font-size:10px; font-weight:900; padding:3px 7px; border-radius:4px;
  box-shadow:0 2px 8px rgba(0,0,0,.7), 0 0 0 1.5px rgba(0,0,0,.35);
  letter-spacing:.02em;
}
.hyb-plot-tags .t-hi{ background:#3dff98; box-shadow:0 2px 8px rgba(0,0,0,.7), 0 0 10px rgba(61,255,152,.55); }
.hyb-plot-tags .t-lo{ background:#ff5a6b; box-shadow:0 2px 8px rgba(0,0,0,.7), 0 0 10px rgba(255,90,107,.55); }

@media (max-width:560px){
  .hyb-blines .bl{ border-top-width:2.5px; }
  .hyb-plot-tags b{ font-size:9.5px; padding:3px 6px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   G1 · PARITY GENESIS — the Even/Odd card rebuilt to the reference:
   market · streak scanner · prediction mode · two stake cards · duration + totals ·
   cooldown chips · reinvest / secure-profit / streak-auto toggle cards ·
   gradient fire row with 2x/3x · Live Analysis (parity %, lean, streak, digit
   distribution, last 20). Everything is namespaced g1-.
   ═══════════════════════════════════════════════════════════════════════════ */
.analyzer[data-analyzer="even_odd"] .g1-card{
  display:block; margin:0 0 14px; padding:16px 14px 14px; border-radius:16px;
  background:#0b1220; border:1px solid rgba(255,255,255,.07);
  box-shadow:0 12px 30px -22px rgba(0,0,0,.9);
}
.analyzer[data-analyzer="even_odd"] .g1-head{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.analyzer[data-analyzer="even_odd"] .g1-ic{
  flex:none; width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  font-size:18px; color:#5fe6d0; background:rgba(45,212,191,.14); border:1px solid rgba(45,212,191,.35);
}
.analyzer[data-analyzer="even_odd"] .g1-head-t{ min-width:0; }
.analyzer[data-analyzer="even_odd"] .g1-head-t b{ display:block; font-size:16px; font-weight:800; color:#eef3f8; letter-spacing:.01em; }
.analyzer[data-analyzer="even_odd"] .g1-head-t i{ display:block; font-style:normal; font-size:11px; color:#8d97a5; margin-top:2px; }
.analyzer[data-analyzer="even_odd"] .g1-live{
  margin-left:auto; flex:none; display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; border-radius:99px; font-size:10px; font-weight:800; color:#9fd3ff;
  background:rgba(59,157,255,.12); border:1px solid rgba(59,157,255,.35);
}
.analyzer[data-analyzer="even_odd"] .g1-live i{ width:6px; height:6px; border-radius:50%; background:#3b9dff; box-shadow:0 0 8px #3b9dff; }

.analyzer[data-analyzer="even_odd"] .g1-lbl{ display:block; font-size:11.5px; font-weight:700; color:#cfd8e3; margin:12px 0 7px; }
.analyzer[data-analyzer="even_odd"] .g1-lbl-ic{ font-size:11.5px; font-weight:700; color:#cfd8e3; }
.analyzer[data-analyzer="even_odd"] .g1-between{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 0 7px; }
.analyzer[data-analyzer="even_odd"] .g1-between .g1-lbl{ margin:0; }
.analyzer[data-analyzer="even_odd"] .g1-hint{ margin:6px 0 0; font-size:10px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-hint.center{ text-align:center; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-title{ font-size:12.5px; font-weight:800; color:#eef3f8; }

/* selects */
.analyzer[data-analyzer="even_odd"] .g1-selwrap{ position:relative; }
.analyzer[data-analyzer="even_odd"] .g1-sel{
  width:100%; min-height:44px; padding:10px 36px 10px 14px; border-radius:10px;
  font:inherit; font-size:13.5px; font-weight:600; color:#eef3f8;
  background:#111a2a; border:1px solid rgba(255,255,255,.1); appearance:none; -webkit-appearance:none;
}
.analyzer[data-analyzer="even_odd"] .g1-selwrap::after{
  content:"⇕"; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  font-size:11px; color:#8d97a5; pointer-events:none;
}

/* iOS-style toggles */
.analyzer[data-analyzer="even_odd"] .g1-tg{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; user-select:none; }
.analyzer[data-analyzer="even_odd"] .g1-tg input{ position:absolute; opacity:0; width:0; height:0; }
.analyzer[data-analyzer="even_odd"] .g1-tg i{
  position:relative; width:44px; height:24px; border-radius:99px; flex:none;
  background:#1b2637; border:1px solid rgba(255,255,255,.1); transition:background .18s;
}
.analyzer[data-analyzer="even_odd"] .g1-tg i::after{
  content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%;
  background:#e8eef6; box-shadow:0 1px 3px rgba(0,0,0,.6); transition:transform .18s;
}
.analyzer[data-analyzer="even_odd"] .g1-tg input:checked + i{ background:#22c55e; border-color:#22c55e; }
.analyzer[data-analyzer="even_odd"] .g1-tg input:checked + i::after{ transform:translateX(20px); }
.analyzer[data-analyzer="even_odd"] .g1-tg span{ font-size:10.5px; font-weight:700; color:#8d97a5; }
.analyzer[data-analyzer="even_odd"] .g1-tg.sm i{ width:38px; height:21px; }
.analyzer[data-analyzer="even_odd"] .g1-tg.sm i::after{ width:15px; height:15px; }
.analyzer[data-analyzer="even_odd"] .g1-tg.sm input:checked + i::after{ transform:translateX(17px); }
.analyzer[data-analyzer="even_odd"] .g1-tg.xs i{ width:34px; height:19px; }
.analyzer[data-analyzer="even_odd"] .g1-tg.xs i::after{ width:13px; height:13px; }
.analyzer[data-analyzer="even_odd"] .g1-tg.xs input:checked + i::after{ transform:translateX(15px); }
.analyzer[data-analyzer="even_odd"] .g1-stake.odd .g1-tg input:checked + i{ background:#ef4444; border-color:#ef4444; }

/* prediction modes */
.analyzer[data-analyzer="even_odd"] .g1-modes{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.analyzer[data-analyzer="even_odd"] .g1-mode{
  min-height:42px; border-radius:10px; cursor:pointer; font:inherit; font-size:12px; font-weight:800;
  color:#b9c4d2; background:#111a2a; border:1px solid rgba(255,255,255,.1); letter-spacing:.04em;
}
.analyzer[data-analyzer="even_odd"] .g1-mode.is-on{ color:#04240f; background:#22c55e; border-color:#22c55e; box-shadow:0 6px 16px -10px #22c55e; }
.analyzer[data-analyzer="even_odd"] .g1-mode[data-g1-mode="odd"].is-on{ color:#2a0509; background:#ef4444; border-color:#ef4444; box-shadow:0 6px 16px -10px #ef4444; }
.analyzer[data-analyzer="even_odd"] .g1-mode[data-g1-mode="genesis"].is-on{ color:#061a16; background:linear-gradient(90deg,#2dd4bf,#22c55e); border-color:#2dd4bf; }

/* stake cards */
.analyzer[data-analyzer="even_odd"] .g1-stakes{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.analyzer[data-analyzer="even_odd"] .g1-stake{ padding:12px; border-radius:12px; min-width:0; background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07); }
.analyzer[data-analyzer="even_odd"] .g1-stake.even{ border-color:rgba(34,197,94,.35); background:linear-gradient(160deg,rgba(34,197,94,.10),rgba(34,197,94,.02)); }
.analyzer[data-analyzer="even_odd"] .g1-stake.odd{ border-color:rgba(239,68,68,.35); background:linear-gradient(160deg,rgba(239,68,68,.10),rgba(239,68,68,.02)); }
.analyzer[data-analyzer="even_odd"] .g1-stake-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.analyzer[data-analyzer="even_odd"] .g1-stake-h > span{ font-size:11.5px; font-weight:800; }
.analyzer[data-analyzer="even_odd"] .g1-stake.even .g1-stake-h > span{ color:#4ade80; }
.analyzer[data-analyzer="even_odd"] .g1-stake.odd .g1-stake-h > span{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-stake[data-off="1"]{ opacity:.45; }
.analyzer[data-analyzer="even_odd"] .g1-inp{
  width:100%; min-height:44px; padding:10px 12px; border-radius:9px; font:inherit; font-size:15px; font-weight:700;
  color:#eef3f8; background:#0b1220; border:1px solid rgba(255,255,255,.1); -moz-appearance:textfield;
}
.analyzer[data-analyzer="even_odd"] .g1-inp::-webkit-outer-spin-button,
.analyzer[data-analyzer="even_odd"] .g1-inp::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.analyzer[data-analyzer="even_odd"] .g1-est{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-top:7px; }
.analyzer[data-analyzer="even_odd"] .g1-est span{ font-size:9.5px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-est b{ font-size:11.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-stake.even .g1-est b{ color:#4ade80; }
.analyzer[data-analyzer="even_odd"] .g1-stake.odd .g1-est b{ color:#f87171; }

/* duration + totals */
.analyzer[data-analyzer="even_odd"] .g1-durrow{ display:flex; align-items:flex-end; gap:12px; margin-top:4px; }
.analyzer[data-analyzer="even_odd"] .g1-durcol{ flex:1 1 55%; min-width:0; }
.analyzer[data-analyzer="even_odd"] .g1-totals{ flex:1 1 45%; text-align:right; display:flex; flex-direction:column; gap:3px; padding-bottom:10px; }
.analyzer[data-analyzer="even_odd"] .g1-totals span{ font-size:10px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-totals b{ color:#5fd7ff; font-weight:800; font-variant-numeric:tabular-nums; }

/* chips */
.analyzer[data-analyzer="even_odd"] .g1-chips{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.analyzer[data-analyzer="even_odd"] .g1-chip{
  min-height:40px; border-radius:9px; cursor:pointer; font:inherit; font-size:11.5px; font-weight:700;
  color:#8d97a5; background:#111a2a; border:1px solid rgba(255,255,255,.08);
}
.analyzer[data-analyzer="even_odd"] .g1-chip.is-on{ color:#9fd3ff; background:rgba(59,157,255,.22); border-color:rgba(59,157,255,.55); }
.analyzer[data-analyzer="even_odd"] .g1-chip.xs{ min-height:30px; padding:0 9px; font-size:10.5px; }
.analyzer[data-analyzer="even_odd"] .g1-kchips{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:8px 0 6px; }
.analyzer[data-analyzer="even_odd"] .g1-kchips > span{ font-size:10px; color:#6f7b8a; margin-right:4px; }

/* toggle cards (reinvest / secure / auto) */
.analyzer[data-analyzer="even_odd"] .g1-tcard{ margin-top:12px; padding:12px; border-radius:12px; background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.07); }
.analyzer[data-analyzer="even_odd"] .g1-tcard-h{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.analyzer[data-analyzer="even_odd"] .g1-tcard-t{ font-size:12px; font-weight:800; color:#8d97a5; }
.analyzer[data-analyzer="even_odd"] .g1-tcard-p{ margin:8px 0 0; font-size:10.5px; color:#6f7b8a; line-height:1.5; }
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="1"]{ border-color:rgba(255,255,255,.14); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.amber[data-on="1"]{ background:linear-gradient(160deg,rgba(245,158,11,.12),rgba(245,158,11,.02)); border-color:rgba(245,158,11,.4); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.amber[data-on="1"] .g1-tcard-t{ color:#fbbf24; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.amber .g1-tg input:checked + i{ background:#f59e0b; border-color:#f59e0b; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.green[data-on="1"]{ background:linear-gradient(160deg,rgba(45,212,191,.12),rgba(45,212,191,.02)); border-color:rgba(45,212,191,.4); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.green[data-on="1"] .g1-tcard-t{ color:#5fe6d0; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.green .g1-tg input:checked + i{ background:#2dd4bf; border-color:#2dd4bf; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.orange[data-on="1"]{ background:linear-gradient(160deg,rgba(249,115,22,.14),rgba(249,115,22,.02)); border-color:rgba(249,115,22,.45); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.orange[data-on="1"] .g1-tcard-t{ color:#fb923c; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.orange .g1-tg input:checked + i{ background:#f97316; border-color:#f97316; }
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-tcard-p,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-split,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-target,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-bar,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-kchips,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-streakrow,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-match,
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-hint{ display:none; }

.analyzer[data-analyzer="even_odd"] .g1-split{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; font-size:9.5px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-split button{
  min-height:24px; padding:0 8px; border-radius:6px; cursor:pointer; font:inherit; font-size:9.5px; font-weight:800;
  color:#8d97a5; background:#111a2a; border:1px solid rgba(255,255,255,.08);
}
.analyzer[data-analyzer="even_odd"] .g1-split button.is-on{ color:#2a1500; background:#fbbf24; border-color:#fbbf24; }
.analyzer[data-analyzer="even_odd"] .g1-target{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; font-size:10px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-target input{
  width:64px; min-height:28px; padding:4px 8px; border-radius:6px; font:inherit; font-size:12px; font-weight:800;
  color:#eef3f8; background:#0b1220; border:1px solid rgba(255,255,255,.1); -moz-appearance:textfield;
}
.analyzer[data-analyzer="even_odd"] .g1-target input::-webkit-inner-spin-button{ -webkit-appearance:none; }
.analyzer[data-analyzer="even_odd"] .g1-bar{ height:6px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-bar > i{ display:block; height:100%; width:0; border-radius:99px; transition:width .35s ease; background:linear-gradient(90deg,#2dd4bf,#22c55e); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.orange .g1-bar > i{ background:linear-gradient(90deg,#f97316,#fbbf24); }
.analyzer[data-analyzer="even_odd"] .g1-streakrow{ display:flex; align-items:center; gap:8px; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-streakrow > span{ flex:none; font-size:10px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-streakrow .g1-bar{ flex:1; margin:0; }
.analyzer[data-analyzer="even_odd"] .g1-streakrow > b{ flex:none; font-size:10.5px; font-weight:800; color:#fb923c; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-match{
  display:flex; justify-content:space-between; align-items:center; margin-top:8px; padding:7px 10px; border-radius:8px;
  background:rgba(249,115,22,.16); border:1px solid rgba(249,115,22,.4); font-size:10.5px; font-weight:800; color:#fb923c;
}
.analyzer[data-analyzer="even_odd"] .g1-auto-st{ margin-left:auto; font-size:10px; color:#9fd3ff; }
.analyzer[data-analyzer="even_odd"] .g1-auto-st[data-busy="1"]::before{ content:"◌ "; display:inline-block; animation:g1spin 1s linear infinite; }
@keyframes g1spin{ to{ transform:rotate(360deg); } }

/* status line */
.analyzer[data-analyzer="even_odd"] .g1-status{
  margin-top:12px; padding:11px 12px; border-radius:10px; font-size:12px; font-weight:700; color:#7dd3fc;
  background:rgba(59,157,255,.12); border:1px solid rgba(59,157,255,.35);
}
.analyzer[data-analyzer="even_odd"] .g1-status[data-kind="err"]{ color:#ff9aa4; background:rgba(255,77,94,.12); border-color:rgba(255,77,94,.4); }
.analyzer[data-analyzer="even_odd"] .g1-status[data-kind="ok"]{ color:#5fe6a8; background:rgba(43,214,123,.12); border-color:rgba(43,214,123,.4); }

/* fire row */
.analyzer[data-analyzer="even_odd"] .g1-firerow{ display:flex; gap:8px; margin-top:14px; }
.analyzer[data-analyzer="even_odd"] .g1-fire{
  flex:1 1 auto; min-height:54px; border-radius:12px; cursor:pointer; font:inherit; border:0;
  display:flex; align-items:center; justify-content:center; gap:8px;
  color:#fff; font-size:14px; font-weight:800; letter-spacing:.01em;
  background:linear-gradient(90deg,#0ea5e9,#22c55e); box-shadow:0 10px 24px -14px rgba(14,165,233,.9);
}
.analyzer[data-analyzer="even_odd"] .g1-fire:active{ transform:translateY(2px); }
.analyzer[data-analyzer="even_odd"] .g1-fire[data-busy="1"]{ background:#1b2637; color:#8d97a5; box-shadow:none; }
.analyzer[data-analyzer="even_odd"] .g1-fire-spin{ display:none; width:16px; height:16px; border-radius:50%; border:2px solid rgba(255,255,255,.25); border-top-color:#fff; animation:g1spin .8s linear infinite; }
.analyzer[data-analyzer="even_odd"] .g1-fire[data-busy="1"] .g1-fire-spin{ display:inline-block; }
.analyzer[data-analyzer="even_odd"] .g1-x{
  flex:none; min-width:74px; min-height:54px; border-radius:12px; cursor:pointer; font:inherit; border:0;
  font-size:13px; font-weight:800; color:#fff;
}
.analyzer[data-analyzer="even_odd"] .g1-x.two{ background:linear-gradient(180deg,#fb923c,#ea580c); box-shadow:0 10px 24px -14px rgba(234,88,12,.9); }
.analyzer[data-analyzer="even_odd"] .g1-x.three{ background:linear-gradient(180deg,#f43f5e,#e11d48); box-shadow:0 10px 24px -14px rgba(225,29,72,.9); }
.analyzer[data-analyzer="even_odd"] .g1-x:active{ transform:translateY(2px); }
.analyzer[data-analyzer="even_odd"] .g1-x[disabled], .analyzer[data-analyzer="even_odd"] .g1-fire[disabled]{ opacity:.55; cursor:default; }

/* scanner output */
.analyzer[data-analyzer="even_odd"] .g1-scan{ margin:6px 0 4px; display:grid; gap:6px; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row{
  display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:9px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07); font-size:11px; color:#cfd8e3; cursor:pointer;
}
.analyzer[data-analyzer="even_odd"] .g1-scan-row.is-cur{ border-color:rgba(59,157,255,.45); }
.analyzer[data-analyzer="even_odd"] .g1-scan-row b{ font-weight:800; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .r{ flex:none; width:22px; color:#6f7b8a; font-size:10px; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .n{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .s{ flex:none; font-size:10.5px; font-weight:800; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .s.even{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-scan-row .s.odd{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .a{ flex:none; font-size:9.5px; color:#6f7b8a; }

/* ── Live Analysis ── */
.analyzer[data-analyzer="even_odd"] .g1-la-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.analyzer[data-analyzer="even_odd"] .g1-la{ padding:14px; border-radius:12px; background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07); min-width:0; }
.analyzer[data-analyzer="even_odd"] .g1-la.even{ border-color:rgba(34,197,94,.3); }
.analyzer[data-analyzer="even_odd"] .g1-la.odd{ border-color:rgba(239,68,68,.3); }
.analyzer[data-analyzer="even_odd"] .g1-la > span{ display:block; font-size:11px; font-weight:800; letter-spacing:.04em; }
.analyzer[data-analyzer="even_odd"] .g1-la.even > span{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-la.odd > span{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-la > b{ display:block; margin-top:8px; font-size:30px; font-weight:800; line-height:1; color:#eef3f8; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-la > i{ display:block; margin-top:8px; font-style:normal; font-size:9.5px; color:#6f7b8a; }
.analyzer[data-analyzer="even_odd"] .g1-lean{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; padding:11px 12px; border-radius:10px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07); font-size:12px; color:#cfd8e3;
}
.analyzer[data-analyzer="even_odd"] .g1-lean b{ font-weight:800; }
.analyzer[data-analyzer="even_odd"] .g1-lean[data-p="even"]{ background:rgba(34,197,94,.1); border-color:rgba(34,197,94,.35); }
.analyzer[data-analyzer="even_odd"] .g1-lean[data-p="even"] #g1-lean-p{ color:#4ade80; }
.analyzer[data-analyzer="even_odd"] .g1-lean[data-p="odd"]{ background:rgba(239,68,68,.1); border-color:rgba(239,68,68,.35); }
.analyzer[data-analyzer="even_odd"] .g1-lean[data-p="odd"] #g1-lean-p{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-conf{ padding:3px 9px; border-radius:7px; font-size:11px; color:#04240f; background:#22c55e; }
.analyzer[data-analyzer="even_odd"] .g1-lean[data-locked="1"] .g1-conf{ color:#2a1500; background:#fbbf24; }
.analyzer[data-analyzer="even_odd"] .g1-streakline{
  margin-top:8px; padding:10px 12px; border-radius:10px; font-size:12px; font-weight:700; color:#fbbf24;
  background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.3);
}
.analyzer[data-analyzer="even_odd"] .g1-dist{ display:grid; gap:5px; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-drow{ display:grid; grid-template-columns:14px 1fr 18px; align-items:center; gap:8px; }
.analyzer[data-analyzer="even_odd"] .g1-drow > span{ font-size:10.5px; font-weight:800; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-drow.even > span:first-child{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-drow.odd > span:first-child{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-drow > span:last-child{ text-align:right; color:#6f7b8a; font-weight:700; }
.analyzer[data-analyzer="even_odd"] .g1-dbar{ height:18px; border-radius:5px; background:rgba(255,255,255,.05); overflow:hidden; }
.analyzer[data-analyzer="even_odd"] .g1-dbar > i{ display:block; height:100%; width:0; border-radius:5px; transition:width .35s ease; }
.analyzer[data-analyzer="even_odd"] .g1-drow.even .g1-dbar > i{ background:#22c55e; } .analyzer[data-analyzer="even_odd"] .g1-drow.odd .g1-dbar > i{ background:#ef4444; }
.analyzer[data-analyzer="even_odd"] .g1-drow.is-last .g1-dbar > i{ background:#fbbf24; }
.analyzer[data-analyzer="even_odd"] .g1-last{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-last > span{
  width:34px; height:34px; border-radius:8px; display:grid; place-items:center;
  font-size:13px; font-weight:800; font-variant-numeric:tabular-nums; border:1px solid transparent;
}
.analyzer[data-analyzer="even_odd"] .g1-last > span.even{ color:#4ade80; background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.35); }
.analyzer[data-analyzer="even_odd"] .g1-last > span.odd{ color:#f87171; background:rgba(239,68,68,.14); border-color:rgba(239,68,68,.35); }
.analyzer[data-analyzer="even_odd"] .g1-last > span.is-last{ box-shadow:0 0 0 2px #9fd3ff inset; }

@media (max-width:560px){
  .analyzer[data-analyzer="even_odd"] .g1-card{ padding:14px 12px 12px; }
  .analyzer[data-analyzer="even_odd"] .g1-chips{ gap:5px; }
  .analyzer[data-analyzer="even_odd"] .g1-chip{ font-size:10.5px; min-height:38px; }
  .analyzer[data-analyzer="even_odd"] .g1-la > b{ font-size:26px; }
  .analyzer[data-analyzer="even_odd"] .g1-x{ min-width:64px; font-size:12px; }
  .analyzer[data-analyzer="even_odd"] .g1-fire{ font-size:12.5px; }
  .analyzer[data-analyzer="even_odd"] .g1-last > span{ width:30px; height:30px; font-size:12px; }
  .analyzer[data-analyzer="even_odd"] .g1-split{ width:100%; margin-left:0; margin-top:6px; }
}
@media (max-width:900px){
  [class][class] .analyzer[data-analyzer="even_odd"] .g1-chip.xs{ min-height:30px !important; }
  [class][class] .analyzer[data-analyzer="even_odd"] .g1-split button{ min-height:24px !important; }
}

/* j4 — the platform's custom dropdown inside the G1 card: full-width box like the
   reference, and no second chevron (the button paints its own) */
.analyzer[data-analyzer="even_odd"] .g1-selwrap::after{ display:none; }
.analyzer[data-analyzer="even_odd"] .g1-selwrap .gm-sel-wrap{ display:block; width:100%; }
.analyzer[data-analyzer="even_odd"] .g1-selwrap .gm-sel-btn{
  width:100% !important; min-height:44px !important; padding:10px 14px !important; border-radius:10px !important;
  font-size:13.5px !important; font-weight:600 !important; color:#eef3f8 !important;
  background:#111a2a !important; border:1px solid rgba(255,255,255,.1) !important;
  display:flex !important; align-items:center; justify-content:space-between; box-shadow:none !important;
}
.analyzer[data-analyzer="even_odd"] .g1-selwrap .gm-sel-val{ max-width:none !important; overflow:hidden; text-overflow:ellipsis; }

/* ═══ j6 — G Pro: Smart Hedge plan · streak-consistency scanner · Live Analysis Auto ═══ */
.analyzer[data-analyzer="even_odd"] .g1-hplan{
  margin-top:10px; padding:11px 12px; border-radius:12px;
  background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.08);
}
.analyzer[data-analyzer="even_odd"] .g1-hplan[data-tone="ok"]{ border-color:rgba(45,212,191,.35); }
.analyzer[data-analyzer="even_odd"] .g1-hplan[data-tone="bad"]{ border-color:rgba(255,77,94,.45); background:rgba(255,77,94,.06); }
.analyzer[data-analyzer="even_odd"] .g1-hplan-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.analyzer[data-analyzer="even_odd"] .g1-cover{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; font-size:9.5px; color:#6f7b8a; flex-wrap:wrap; }
.analyzer[data-analyzer="even_odd"] .g1-cover button{
  min-height:24px; padding:0 8px; border-radius:6px; cursor:pointer; font:inherit; font-size:9.5px; font-weight:800;
  color:#8d97a5; background:#111a2a; border:1px solid rgba(255,255,255,.08);
}
.analyzer[data-analyzer="even_odd"] .g1-cover button.is-on{ color:#061a16; background:#2dd4bf; border-color:#2dd4bf; }
.analyzer[data-analyzer="even_odd"] .g1-hplan-legs{ margin:8px 0 0; font-size:11px; font-weight:700; color:#cfd8e3; line-height:1.45; }
.analyzer[data-analyzer="even_odd"] .g1-outs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-out{
  display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-radius:9px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07); min-width:0;
}
.analyzer[data-analyzer="even_odd"] .g1-out > span{ font-size:9.5px; color:#8d97a5; font-weight:700; }
.analyzer[data-analyzer="even_odd"] .g1-out.even > span{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-out.odd > span{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-out > b{ font-size:13px; font-weight:800; font-variant-numeric:tabular-nums; color:#eef3f8; white-space:nowrap; }
.analyzer[data-analyzer="even_odd"] .g1-out[data-tone="pos"]{ border-color:rgba(43,214,123,.45); background:rgba(43,214,123,.1); }
.analyzer[data-analyzer="even_odd"] .g1-out[data-tone="pos"] > b{ color:#5fe6a8; }
.analyzer[data-analyzer="even_odd"] .g1-out[data-tone="neg"]{ border-color:rgba(255,77,94,.35); background:rgba(255,77,94,.08); }
.analyzer[data-analyzer="even_odd"] .g1-out[data-tone="neg"] > b{ color:#ff9aa4; }
.analyzer[data-analyzer="even_odd"] .g1-hplan .g1-hint{ margin:8px 0 0; }
.analyzer[data-analyzer="even_odd"] .g1-hplan[data-tone="bad"] .g1-hint{ color:#ff9aa4; }

/* stake cards under Smart Hedge: the cover side is derived (dimmed input + tag) */
.analyzer[data-analyzer="even_odd"] .g1-autotag{
  margin-left:auto; margin-right:6px; font-style:normal; font-size:8.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  padding:2px 6px; border-radius:5px; color:#9fd3ff; background:rgba(59,157,255,.16); border:1px solid rgba(59,157,255,.35);
}
.analyzer[data-analyzer="even_odd"] .g1-autotag:empty{ display:none; }
.analyzer[data-analyzer="even_odd"] .g1-stake[data-auto="1"] .g1-autotag{ color:#fbbf24; background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.4); }
.analyzer[data-analyzer="even_odd"] .g1-stake[data-auto="1"] .g1-inp{ opacity:.6; }

/* scanner rows: consistent side + live run */
.analyzer[data-analyzer="even_odd"] .g1-scan-row .c{ flex:none; font-size:10px; font-weight:800; color:#8d97a5; min-width:38px; text-align:right; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .c.even{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-scan-row .c.odd{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row.is-ready{ border-color:rgba(249,115,22,.55); background:rgba(249,115,22,.1); }
.analyzer[data-analyzer="even_odd"] .g1-streakrow > span{ max-width:52%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Live Analysis Auto card */
.analyzer[data-analyzer="even_odd"] .g1-tcard.violet[data-on="1"]{ background:linear-gradient(160deg,rgba(139,92,246,.16),rgba(139,92,246,.02)); border-color:rgba(139,92,246,.5); }
.analyzer[data-analyzer="even_odd"] .g1-tcard.violet[data-on="1"] .g1-tcard-t{ color:#c4b5fd; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.violet .g1-tg input:checked + i{ background:#8b5cf6; border-color:#8b5cf6; }
.analyzer[data-analyzer="even_odd"] .g1-tcard.violet .g1-match{ background:rgba(139,92,246,.16); border-color:rgba(139,92,246,.45); color:#c4b5fd; }
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-lameter{ display:none; }
.analyzer[data-analyzer="even_odd"] .g1-lameter{ display:flex; align-items:center; gap:8px; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-lameter > span{ flex:none; font-size:10px; font-weight:800; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-lameter > span.even{ color:#4ade80; } .analyzer[data-analyzer="even_odd"] .g1-lameter > span.odd{ color:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-lameter .g1-bar{ flex:1; margin:0; height:8px; }
.analyzer[data-analyzer="even_odd"] .g1-bar.dual{ background:rgba(239,68,68,.55); }
.analyzer[data-analyzer="even_odd"] .g1-bar.dual > i{ background:#22c55e; border-radius:99px 0 0 99px; }
@media (max-width:560px){
  .analyzer[data-analyzer="even_odd"] .g1-cover{ width:100%; margin-left:0; margin-top:6px; }
  .analyzer[data-analyzer="even_odd"] .g1-out > b{ font-size:12px; }
}
@media (max-width:900px){
  [class][class] .analyzer[data-analyzer="even_odd"] .g1-cover button{ min-height:24px !important; }
}
/* `hidden` must win over the display:flex/grid the G Pro rows carry (MATCHED / ARMED rows,
   scanner box) — author display beats the UA's [hidden] rule, so restate it with force */
.analyzer[data-analyzer="even_odd"] [hidden]{ display:none !important; }

/* ⚠ FIRST-PAINT WIDTH BUG (phones): `.aether-footer{content-visibility:auto; contain-intrinsic-size:auto 520px}`
   gives the footer an intrinsic WIDTH of 520px (+40px padding) while it is offscreen — a single length
   applies to both axes — and as a grid item of main.aether-main with min-width:auto that forced the
   ONLY column to 560px on a 375px phone: every card rendered 560px wide, clipped by body{overflow-x:hidden}
   until the user had scrolled the footer into view once (then `auto` remembers the real size). Let the
   track ignore the footer's intrinsic width: min-width:0 + a height-only intrinsic size. */
.aether-footer{ min-width:0; contain-intrinsic-width:auto 0px; contain-intrinsic-height:auto 520px; }
.analyzer[data-analyzer="even_odd"] .g1-out > span{ white-space:nowrap; }
.analyzer[data-analyzer="even_odd"] .g1-out{ flex-wrap:wrap; }

/* j9 — Skilli Pro auto panel: "enter after N knockouts" row + live status line */
.analyzer[data-analyzer="accumulator"] .acc-sub > label{ flex:1 1 52%; }
.analyzer[data-analyzer="accumulator"] .acc-auto-st{ flex-basis:100%; min-width:0; font-size:10.5px; font-weight:700; color:#5fe6a8; line-height:1.45; }
.analyzer[data-analyzer="accumulator"] .acc-auto-st:empty{ display:none; }

/* ═══ j10 — Only God Hybrid: zone-coloured chart, crossings, ribbon, entry line, strategy read,
   width sweep, cooldown chips, regime chips ═══ */
/* the base line dims; the zone layers paint the path by where it sits against the barriers */
.analyzer[data-analyzer="streak"] .hyb-line{ opacity:.28; }
.analyzer[data-analyzer="streak"] .hyb-line-z{ stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.analyzer[data-analyzer="streak"] .hyb-line-z.hi{ stroke:#2bd67b; filter:drop-shadow(0 0 4px rgba(43,214,123,.75)); }
.analyzer[data-analyzer="streak"] .hyb-line-z.lo{ stroke:#ff4d5e; filter:drop-shadow(0 0 4px rgba(255,77,94,.75)); }
.analyzer[data-analyzer="streak"] .hyb-line-z.mid{ stroke:#9ec6ff; opacity:.95; }
.analyzer[data-analyzer="streak"] .hyb-cross .hx{ stroke-width:1.2; }
.analyzer[data-analyzer="streak"] .hyb-cross .hx.up{ fill:#2bd67b; stroke:#04240f; }
.analyzer[data-analyzer="streak"] .hyb-cross .hx.dn{ fill:#ff4d5e; stroke:#2a0509; }
.analyzer[data-analyzer="streak"] .hyb-cross .hx.back{ fill:#0b1220; stroke:#9ec6ff; stroke-width:1.6; }
/* the barrier a live leg is currently beating glows solid */
.analyzer[data-analyzer="streak"] .hyb-blines .bl.is-winning{ border-top-style:solid; border-top-width:2px; opacity:1; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.is-winning::after{ opacity:.35; height:9px; top:-4px; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.entry{ color:#ffd24a; border-top-style:dotted; opacity:.9; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.entry em{
  position:absolute; left:6px; top:-9px; font-style:normal; font-size:8px; font-weight:800; letter-spacing:.04em;
  padding:1px 5px; border-radius:3px; color:#2a1500; background:#ffd24a; white-space:nowrap;
}
/* zone ribbon: one cell per visible tick */
.analyzer[data-analyzer="streak"] .hyb-zribbon{ display:flex; gap:1px; height:8px; margin:6px 58px 4px 0; border-radius:3px; overflow:hidden; }
.analyzer[data-analyzer="streak"] .hyb-zribbon i{ flex:1 1 0; min-width:0; display:block; background:rgba(158,198,255,.35); }
.analyzer[data-analyzer="streak"] .hyb-zribbon i.z-hi{ background:#2bd67b; }
.analyzer[data-analyzer="streak"] .hyb-zribbon i.z-lo{ background:#ff4d5e; }
.analyzer[data-analyzer="streak"] .hyb-zcounts{ display:flex; gap:10px; flex-wrap:wrap; margin:0 0 6px; font-size:9.5px; font-weight:800; }
.analyzer[data-analyzer="streak"] .hyb-zcounts .k-hi{ color:#7ff0b4; } .analyzer[data-analyzer="streak"] .hyb-zcounts .k-lo{ color:#ff9aa4; }
.analyzer[data-analyzer="streak"] .hyb-zcounts .k-mid{ color:#c2cdd8; } .analyzer[data-analyzer="streak"] .hyb-zcounts .k-n{ color:#6f7b8a; font-weight:600; margin-left:auto; }
.analyzer[data-analyzer="streak"] .hyb-legend .l-x i{ background:#ffd24a; }
.analyzer[data-analyzer="streak"] .hyb-zbanner[data-live="1"]{ box-shadow:0 0 0 1px currentColor inset, 0 0 18px -6px currentColor; }
/* strategy read */
.analyzer[data-analyzer="streak"] .hyb-pred[data-grade="high"] .hyb-pred-m i{ background:linear-gradient(90deg,#1f9e5c,#5fe6a8); }
.analyzer[data-analyzer="streak"] .hyb-pred[data-grade="mid"] .hyb-pred-m i{ background:linear-gradient(90deg,#b8860b,#fbbf24); }
.analyzer[data-analyzer="streak"] .hyb-pred[data-grade="low"] .hyb-pred-m i{ background:linear-gradient(90deg,#c8323f,#ff8a95); }
.analyzer[data-analyzer="streak"] .hyb-pred-rows{ display:grid; gap:6px; margin-top:10px; }
.analyzer[data-analyzer="streak"] .hpr{
  display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; padding:7px 10px; border-radius:8px;
  background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.07); font-size:10px; color:#9fadb9;
}
.analyzer[data-analyzer="streak"] .hpr > span{ font-weight:800; }
.analyzer[data-analyzer="streak"] .hpr.up > span{ color:#7ff0b4; } .analyzer[data-analyzer="streak"] .hpr.dn > span{ color:#ff9aa4; }
.analyzer[data-analyzer="streak"] .hpr > b{ font-size:11.5px; color:#eef3f8; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="streak"] .hpr > i{ font-style:normal; color:#8d97a5; }
.analyzer[data-analyzer="streak"] .hpr > u{ margin-left:auto; text-decoration:none; font-weight:800; padding:2px 7px; border-radius:6px; }
.analyzer[data-analyzer="streak"] .hpr > u[data-tone="pos"]{ color:#5fe6a8; background:rgba(43,214,123,.14); }
.analyzer[data-analyzer="streak"] .hpr > u[data-tone="neg"]{ color:#ff9aa4; background:rgba(255,77,94,.12); }
.analyzer[data-analyzer="streak"] .hpr.ev[data-tone="pos"]{ border-color:rgba(43,214,123,.4); } .analyzer[data-analyzer="streak"] .hpr.ev[data-tone="pos"] > b{ color:#5fe6a8; }
.analyzer[data-analyzer="streak"] .hpr.ev[data-tone="neg"]{ border-color:rgba(255,77,94,.35); } .analyzer[data-analyzer="streak"] .hpr.ev[data-tone="neg"] > b{ color:#ff9aa4; }
/* width sweep */
.analyzer[data-analyzer="streak"] .hyb-sweep{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin-top:10px; }
.analyzer[data-analyzer="streak"] .hyb-swp{
  position:relative; min-width:0; padding:7px 3px 6px; border-radius:9px; cursor:pointer; font:inherit; text-align:center;
  color:#b9c4d2; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
}
.analyzer[data-analyzer="streak"] .hyb-swp b{ display:block; font-size:11px; font-weight:800; }
.analyzer[data-analyzer="streak"] .hyb-swp u{ display:block; text-decoration:none; font-size:8px; color:#8d97a5; margin-top:2px; white-space:nowrap; }
.analyzer[data-analyzer="streak"] .hyb-swp i{ display:block; font-style:normal; font-size:9px; font-weight:800; margin-top:2px; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="streak"] .hyb-swp i[data-tone="pos"]{ color:#5fe6a8; } .analyzer[data-analyzer="streak"] .hyb-swp i[data-tone="neg"]{ color:#ff9aa4; }
.analyzer[data-analyzer="streak"] .hyb-swp em{ position:absolute; left:50%; top:-8px; transform:translateX(-50%); font-style:normal; font-size:7px; font-weight:800; white-space:nowrap; padding:1px 5px; border-radius:99px; color:#2a1500; background:#fbbf24; }
.analyzer[data-analyzer="streak"] .hyb-swp.is-best{ border-color:rgba(251,191,36,.6); }
.analyzer[data-analyzer="streak"] .hyb-swp.is-on{ color:#9fd3ff; background:rgba(59,157,255,.22); border-color:rgba(59,157,255,.55); }
.analyzer[data-analyzer="streak"] .hyb-sweep-t{ margin:8px 0 0; font-size:10px; color:#8d97a5; line-height:1.5; }
.analyzer[data-analyzer="streak"] .hyb-sweep-t:empty{ display:none; }
/* optimizer regime chip */
.analyzer[data-analyzer="streak"] .hyb-mk-g b.rg{ font-size:10px; text-transform:capitalize; }
.analyzer[data-analyzer="streak"] .hyb-mk-g b.rg[data-rg="trending"]{ color:#5fe6a8; }
.analyzer[data-analyzer="streak"] .hyb-mk-g b.rg[data-rg="ranging"]{ color:#ff9aa4; }
.analyzer[data-analyzer="streak"] .hyb-mk-g b.rg[data-rg="drifting"]{ color:#fbbf24; }
@media (max-width:560px){
  .analyzer[data-analyzer="streak"] .hyb-sweep{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .analyzer[data-analyzer="streak"] .hyb-swp u{ font-size:7.5px; }
}

/* ═══ j14 — G Pro Streak Auto v3: decision chips, continuation stat, streak log ═══ */
.analyzer[data-analyzer="even_odd"] .g1-scan-row .k{ flex:none; font-size:9.5px; font-weight:800; color:#9fd3ff; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .d{ flex:none; font-size:8.5px; font-weight:800; letter-spacing:.04em; padding:2px 6px; border-radius:5px; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .d.ride{ color:#04240f; background:#22c55e; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row .d.fade{ color:#2a0509; background:#f87171; }
.analyzer[data-analyzer="even_odd"] .g1-scan-row.is-fire{ border-color:rgba(251,191,36,.65); background:rgba(251,191,36,.08); }
.analyzer[data-analyzer="even_odd"] .g1-match[data-dec="fade"]{ background:rgba(248,113,113,.16); border-color:rgba(248,113,113,.45); color:#ff9aa4; }
.analyzer[data-analyzer="even_odd"] .g1-match[data-dec="hold"]{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); color:#c2cdd8; }
.analyzer[data-analyzer="even_odd"] .g1-match > span{ min-width:0; overflow:hidden; text-overflow:ellipsis; }
.analyzer[data-analyzer="even_odd"] .g1-slog{ display:grid; gap:4px; margin-top:8px; }
.analyzer[data-analyzer="even_odd"] .g1-slog-r{
  display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:7px; font-size:10px;
  background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.07); color:#9fadb9;
}
.analyzer[data-analyzer="even_odd"] .g1-slog-r .t{ flex:none; font-size:8.5px; font-weight:800; letter-spacing:.05em; color:#fbbf24; }
.analyzer[data-analyzer="even_odd"] .g1-slog-r b{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#cfd8e3; font-weight:700; }
.analyzer[data-analyzer="even_odd"] .g1-slog-r i{ flex:none; font-style:normal; font-weight:800; }
.analyzer[data-analyzer="even_odd"] .g1-slog-r u{ flex:none; text-decoration:none; font-weight:800; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="even_odd"] .g1-slog-r[data-net="win"] u{ color:#5fe6a8; } .analyzer[data-analyzer="even_odd"] .g1-slog-r[data-net="loss"] u{ color:#ff9aa4; }
.analyzer[data-analyzer="even_odd"] .g1-tcard[data-on="0"] .g1-slog{ display:none; }

/* ═══ j15 — Only God Hybrid LEVEL layout: one shared barrier line, never between ═══ */
.analyzer[data-analyzer="streak"] .hyb-blines .bl.level{ color:#ffd24a; border-top:2px solid currentColor; opacity:1; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.level::after{ opacity:.22; height:9px; top:-4px; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.level[data-z="hi"]{ color:#2bd67b; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.level[data-z="lo"]{ color:#ff4d5e; }
.analyzer[data-analyzer="streak"] .hyb-blines .bl.level em{
  position:absolute; right:6px; top:-9px; font-style:normal; font-size:8px; font-weight:800; letter-spacing:.04em;
  padding:1px 5px; border-radius:3px; color:#0b1220; background:currentColor; white-space:nowrap;
}
.analyzer[data-analyzer="streak"] .hyb-plot-tags b.t-lv{ color:#0b1220; background:#ffd24a; }
.hyb-plot-tags .t-lv{ background:#ffd24a; color:#2a1500; }

/* ═══ j16 — Only God Hybrid level-pair integrity: Barrier Type locked to Absolute on a level pair ═══ */
.analyzer[data-analyzer="streak"] .hyb-seg-b[disabled]{ cursor:default; opacity:.55; }
.analyzer[data-analyzer="streak"] .hyb-seg-b[disabled].is-on{ opacity:1; }
.analyzer[data-analyzer="streak"] #hyb-btype-t{ margin:6px 0 0; }
.analyzer[data-analyzer="streak"] #hyb-btype-t:empty{ display:none; }

/* ═══ j17 — TRADE TYPE SWITCHBOARD: the orb gallery is a board of premium switches ═══
   Each trade type is one row: glyph · name/description/live status · an iOS-class
   toggle. The switch IS the old .orb button (same data-orb, same summon/dismiss
   handler, same ADMIN/video badges) so every existing hook keeps working; only the
   presentation changed. .summoned = ON. The cell keeps the console's jewel-glass
   material (--oc/--rim fed from the row's own colour --tc). */
#view-console .orb-gallery.tts-board .orbs.tts-grid{
  display:grid !important; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)) !important;
  gap:12px !important; padding:8px 0 2px !important;
}
#view-console .orb-gallery.tts-board .orbs .orb-cell.tts{
  --oc:var(--tc, #7aa0d8); --rim:var(--tc, #7aa0d8);
  display:grid !important; grid-template-columns:46px minmax(0,1fr) auto !important; align-items:center !important;
  gap:12px !important; padding:13px 15px 13px 19px !important; min-height:78px; border-radius:20px !important;
  cursor:default; text-align:left !important;
  transition:transform .28s cubic-bezier(.2,.8,.2,1), border-color .25s ease, box-shadow .3s ease;
}
#view-console .orb-gallery.tts-board .orbs .orb-cell.tts > *{ position:relative; z-index:2; }
#view-console .orb-gallery.tts-board .orbs .orb-cell.tts[data-on="1"]{
  border-color:color-mix(in srgb, var(--tc) 58%, rgba(255,255,255,.14)) !important;
}
/* the ON row carries a soft field of its own colour behind the content */
#view-console .orb-gallery.tts-board .orbs .orb-cell.tts .tts-field{
  position:absolute; inset:0; z-index:1; pointer-events:none; border-radius:inherit; opacity:0; transition:opacity .35s ease;
  background:
    radial-gradient(120% 90% at 100% 50%, color-mix(in srgb, var(--tc) 22%, transparent), transparent 62%),
    linear-gradient(90deg, transparent, color-mix(in srgb, var(--tc) 7%, transparent));
}
#view-console .orb-gallery.tts-board .orbs .orb-cell.tts[data-on="1"] .tts-field{ opacity:1; }
@media (hover:hover) and (pointer:fine){
  #view-console .orb-gallery.tts-board .orbs .orb-cell.tts:hover{ transform:translateY(-2px); }
}
/* glyph */
#view-console .orb-gallery.tts-board .tts-ic{
  width:46px; height:46px; border-radius:15px; display:grid; place-items:center;
  font-size:21px; line-height:1; color:var(--tc); font-weight:900;
  background:radial-gradient(circle at 35% 28%, rgba(255,255,255,.14), transparent 55%),
             linear-gradient(160deg, color-mix(in srgb, var(--tc) 22%, rgba(255,255,255,.04)), rgba(6,10,20,.55));
  border:1px solid color-mix(in srgb, var(--tc) 34%, rgba(255,255,255,.10));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 0 0 transparent; text-shadow:0 0 10px color-mix(in srgb, var(--tc) 60%, transparent);
  transition:box-shadow .35s ease, transform .3s ease;
}
#view-console .orb-gallery.tts-board .orb-cell.tts[data-on="1"] .tts-ic{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 22px -4px color-mix(in srgb, var(--tc) 75%, transparent); transform:scale(1.04);
}
/* body */
#view-console .orb-gallery.tts-board .tts-body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
#view-console .orb-gallery.tts-board .tts-name{
  font-family:var(--font-display); font-size:13.5px; font-weight:800; letter-spacing:.04em; color:#f1f5fb; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#view-console .orb-gallery.tts-board .orb-cell.tts .orb-desc{
  position:static !important; margin:0 !important; padding:0 !important; text-align:left !important;
  font-size:10.5px; line-height:1.35; color:#93a2b8; opacity:1 !important; white-space:normal;
}
#view-console .orb-gallery.tts-board .tts-st{
  display:inline-flex; align-items:center; gap:6px; font-style:normal; font-size:9.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#6f7d92; min-width:0;
}
#view-console .orb-gallery.tts-board .tts-st > span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#view-console .orb-gallery.tts-board .tts-st em{ width:7px; height:7px; border-radius:50%; background:#3b4658; box-shadow:0 0 0 2px rgba(255,255,255,.04); flex:none; }
#view-console .orb-gallery.tts-board .orb-cell.tts[data-on="1"] .tts-st{ color:color-mix(in srgb, var(--tc) 80%, #fff); }
#view-console .orb-gallery.tts-board .orb-cell.tts[data-on="1"] .tts-st em{ background:var(--tc); box-shadow:0 0 0 2px color-mix(in srgb, var(--tc) 25%, transparent), 0 0 10px var(--tc); animation:ttsLed 2.2s ease-in-out infinite; }
#view-console .orb-gallery.tts-board .tts-st b{ padding:1px 6px; border-radius:6px; font-size:8.5px; letter-spacing:.1em; color:#0b1220; background:#ffd24a; margin-left:2px; }
@keyframes ttsLed{ 0%,100%{ opacity:1 } 50%{ opacity:.45 } }
/* ── THE SWITCH — the orb button, reshaped ── */
#view-console .orb-gallery.tts-board .orb.tts-sw{
  --orb-color:var(--tc);
  position:relative !important; aspect-ratio:auto !important; width:60px !important; height:34px !important; min-width:60px !important;
  border-radius:999px !important; padding:0 !important; margin:0 !important; overflow:visible !important; flex:none;
  background:linear-gradient(180deg, rgba(0,0,0,.42), rgba(255,255,255,.06)) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.6), inset 0 -1px 0 rgba(255,255,255,.06) !important;
  transform:none !important; animation:none !important; cursor:pointer;
  transition:background .3s ease, border-color .3s ease, box-shadow .35s ease !important;
}
#view-console .orb-gallery.tts-board .orb.tts-sw::before,
#view-console .orb-gallery.tts-board .orb.tts-sw::after,
#view-console .orb-gallery.tts-board .orb.tts-sw .orb-glow{ display:none !important; animation:none !important; }
#view-console .orb-gallery.tts-board .orb.tts-sw .orb-label{
  position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important;
  opacity:0 !important; pointer-events:none !important; inset:auto !important; display:block !important;
}
#view-console .orb-gallery.tts-board .orb.tts-sw .tts-knob{
  position:absolute; top:3px; left:3px; width:26px; height:26px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #ffffff, #c9d4e6 70%, #aebbd1);
  box-shadow:0 2px 6px rgba(0,0,0,.6), inset 0 -1px 0 rgba(0,0,0,.15);
  transition:transform .3s cubic-bezier(.2,.85,.25,1.1), background .25s ease, box-shadow .3s ease;
}
#view-console .orb-gallery.tts-board .orb.tts-sw.summoned{
  background:linear-gradient(90deg, color-mix(in srgb, var(--tc) 62%, #071018), var(--tc)) !important;
  border-color:color-mix(in srgb, var(--tc) 85%, #fff) !important;
  box-shadow:0 0 20px -3px color-mix(in srgb, var(--tc) 80%, transparent), 0 0 0 1px color-mix(in srgb, var(--tc) 30%, transparent), inset 0 1px 0 rgba(255,255,255,.4) !important;
}
#view-console .orb-gallery.tts-board .orb.tts-sw.summoned .tts-knob{
  transform:translateX(26px); background:radial-gradient(circle at 35% 30%, #ffffff, #f2f6ff 70%, #dfe8f6);
  box-shadow:0 2px 8px rgba(0,0,0,.5), 0 0 12px -2px color-mix(in srgb, var(--tc) 90%, #fff);
}
#view-console .orb-gallery.tts-board .orb.tts-sw:hover{ transform:none !important; }
#view-console .orb-gallery.tts-board .orb.tts-sw:active .tts-knob{ width:30px; }
#view-console .orb-gallery.tts-board .orb.tts-sw.summoned:active .tts-knob{ transform:translateX(22px); }
#view-console .orb-gallery.tts-board .orb.tts-sw:focus-visible{ outline:2px solid color-mix(in srgb, var(--tc) 80%, #fff); outline-offset:3px; }
/* badges the platform injects into the orb keep working — they now sit above / below the switch */
#view-console .orb-gallery.tts-board .orb.tts-sw .orb-admin-badge{ top:auto !important; bottom:calc(100% + 6px) !important; left:50% !important; transform:translateX(-50%) !important; }
#view-console .orb-gallery.tts-board .orb.tts-sw .orb-video-badge{ bottom:auto !important; top:calc(100% + 6px) !important; left:50% !important; transform:translateX(-50%) !important; }
#view-console .orb-gallery.tts-board .orb.tts-sw.admin-disabled{ opacity:.55; }
/* the board's own header */
#view-console .orb-gallery.tts-board .section-head small{ max-width:640px; }
@media (max-width:640px){
  #view-console .orb-gallery.tts-board{ padding:18px 14px !important; }
  #view-console .orb-gallery.tts-board .orbs.tts-grid{ grid-template-columns:1fr !important; gap:10px !important; }
  #view-console .orb-gallery.tts-board .orbs .orb-cell.tts{ min-height:70px; padding:11px 12px 11px 17px !important; grid-template-columns:42px minmax(0,1fr) auto !important; }
  #view-console .orb-gallery.tts-board .tts-ic{ width:42px; height:42px; font-size:19px; border-radius:13px; }
}

/* ═══ j17 — TRADE HISTORY: TRANSPARENT win / loss / pending cards + the lifecycle card ═══
   The cards were opaque navy slabs (solid #0f1626 on phones). They are see-through glass
   now: a faint tint of their own verdict colour over the atmosphere, a crisp rim, and the
   frost kept (a handful of cards — the one place the blur is worth its cost on a phone).
   Every rule here out-specifies the earlier material blocks by source order + !important. */
.journal-list li.journal-trade-card,
.journal-list li.journal-trade-card.j-win,
.journal-list li.journal-trade-card.j-loss{
  background:linear-gradient(160deg, rgba(255,255,255,.055), rgba(255,255,255,.014) 52%, rgba(0,0,0,.05)) !important;
  backdrop-filter:blur(14px) saturate(1.35) !important; -webkit-backdrop-filter:blur(14px) saturate(1.35) !important;
  border:1px solid rgba(255,255,255,.15) !important;
}
.journal-list li.journal-trade-card.j-win{
  border-color:rgba(46,230,140,.46) !important;
  background:linear-gradient(160deg, rgba(46,230,140,.13), rgba(46,230,140,.03) 46%, rgba(255,255,255,.012)) !important;
  box-shadow:0 0 0 1px rgba(46,230,140,.18), inset 0 1px 0 rgba(255,255,255,.16), 0 18px 44px -26px rgba(0,0,0,.72), 0 0 36px -16px rgba(46,230,140,.55) !important;
}
.journal-list li.journal-trade-card.j-loss{
  border-color:rgba(255,90,110,.46) !important;
  background:linear-gradient(160deg, rgba(255,90,110,.13), rgba(255,90,110,.03) 46%, rgba(255,255,255,.012)) !important;
  box-shadow:0 0 0 1px rgba(255,90,110,.18), inset 0 1px 0 rgba(255,255,255,.14), 0 18px 44px -26px rgba(0,0,0,.72), 0 0 36px -16px rgba(255,90,110,.5) !important;
}
/* the texture / caustic sheets painted on the cards read as fog on clear glass — fainter */
.journal-list li.journal-trade-card::before,
.journal-list li.journal-trade-card::after{ opacity:.28 !important; }
.journal-trade-card .journal-card-shell{ background:transparent !important; border:none !important; }
.journal-trade-card .journal-section-card,
.journal-trade-card .journal-hero-line > div,
.journal-trade-card .journal-detail-grid span{
  background:rgba(255,255,255,.045) !important; border-color:rgba(255,255,255,.10) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
/* pending (in-flight) card: amber tint, same glass */
.journal-list li.journal-card.j-pending, li.journal-card.j-pending{
  background:linear-gradient(150deg, rgba(255,198,74,.16), rgba(255,198,74,.04) 48%, rgba(255,255,255,.015)) !important;
  backdrop-filter:blur(14px) saturate(1.3) !important; -webkit-backdrop-filter:blur(14px) saturate(1.3) !important;
  border:1px solid rgba(255,198,74,.5) !important;
}
/* ── the "placed from" vocabulary: desk › section › who ── */
.journal-via{ background:rgba(255,255,255,.035) !important; border:1px solid rgba(255,255,255,.10) !important; }
.journal-via-sec{ max-width:100%; white-space:normal; line-height:1.35; }
.journal-via-mode.m-auto, .jp-mode.m-auto, .tpc-src-mode.m-auto{
  color:#e6d5ff !important; background:rgba(168,120,255,.16) !important; border:1px solid rgba(168,120,255,.42) !important;
  box-shadow:0 0 14px -6px rgba(168,120,255,.7);
}
.journal-via-mode.m-manual, .jp-mode.m-manual, .tpc-src-mode.m-manual{
  color:#ffe2a8 !important; background:rgba(255,190,80,.14) !important; border:1px solid rgba(255,190,80,.42) !important;
  box-shadow:0 0 14px -6px rgba(255,190,80,.6);
}
.jp-src{ padding:2px 8px; border-radius:999px; font-size:10px; font-weight:700; color:#ffe9bf; background:rgba(255,198,74,.10); border:1px solid rgba(255,198,74,.28); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jp-mode{ padding:2px 7px; border-radius:999px; font:800 9.5px/1.4 var(--font-display); letter-spacing:.08em; }
/* ── the lifecycle (live → win/loss) card: transparent glass, tinted by its state ── */
.trade-prediction-card,
.trade-prediction-card.is-live,
.trade-prediction-card.is-win,
.trade-prediction-card.is-loss{
  background:linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.015)) !important;
  backdrop-filter:blur(16px) saturate(1.35) !important; -webkit-backdrop-filter:blur(16px) saturate(1.35) !important;
}
.trade-prediction-card.is-live{ background:linear-gradient(135deg, rgba(255,198,74,.16), rgba(255,198,74,.04) 50%, rgba(255,255,255,.015)) !important; }
.trade-prediction-card.is-win{  background:linear-gradient(135deg, rgba(46,230,140,.16), rgba(46,230,140,.04) 50%, rgba(255,255,255,.015)) !important; }
.trade-prediction-card.is-loss{ background:linear-gradient(135deg, rgba(255,90,110,.16), rgba(255,90,110,.04) 50%, rgba(255,255,255,.015)) !important; }
.trade-prediction-card .tpc-face{ background:transparent !important; }
.trade-prediction-card .tpc-src{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0 2px; padding:6px 10px; border-radius:10px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); font-size:10.5px; color:#d5deea;
}
.trade-prediction-card .tpc-src-mode{ padding:2px 7px; border-radius:999px; font:800 9.5px/1.4 var(--font-display); letter-spacing:.08em; }
.trade-prediction-card .tpc-src span{ min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* ═══ j18 — SCROLL DIM: GONE EVERYWHERE · no lazy painting anywhere ═══
   gm-shed is never granted (aether.js), so every html.is-scrolling.gm-shed rule is inert on
   every device. Lazy painting (content-visibility:auto) made cards arrive blank and fill in
   while the page moved — read as a dim — so nothing is painted lazily any more. */
#journal-section .journal-list, .journal-trade-card, .journal-list li.journal-trade-card,
.gm-at-sec .atk:not(.expanded), .gm-at-sec .atk,
#view-auto .sat-switches, #view-auto .sat-cracked, #view-auto .sat-modgrid, #view-auto .sat-strip, #view-auto .sat-panels{
  content-visibility:visible !important; contain-intrinsic-size:auto !important;
}
/* ═══ j18 — Only God Hybrid OUTCOME LEDGER (in the prediction rows) ═══ */
.analyzer[data-analyzer="streak"] .hpr.outh{ margin-top:8px; padding:4px 10px 2px; background:transparent; border:0; opacity:.75; }
.analyzer[data-analyzer="streak"] .hpr.outh span, .analyzer[data-analyzer="streak"] .hpr.outh b, .analyzer[data-analyzer="streak"] .hpr.outh i, .analyzer[data-analyzer="streak"] .hpr.outh u{ font-size:8.5px !important; font-weight:800 !important; letter-spacing:.06em; text-transform:uppercase; color:#8d97a5 !important; text-decoration:none; }
.analyzer[data-analyzer="streak"] .hpr.out{ border-left-width:3px; }
.analyzer[data-analyzer="streak"] .hpr.out.up{ border-left-color:#2bd67b; }
.analyzer[data-analyzer="streak"] .hpr.out.dn{ border-left-color:#ff4d5e; }
.analyzer[data-analyzer="streak"] .hpr.out.md{ border-left-color:#fbbf24; }
.analyzer[data-analyzer="streak"] .hpr.out u{ text-decoration:none; font-weight:900; font-variant-numeric:tabular-nums; }
.analyzer[data-analyzer="streak"] .hpr.out[data-tone="pos"] u{ color:#5fe6a8; }
.analyzer[data-analyzer="streak"] .hpr.out[data-tone="neg"] u{ color:#ff9aa4; }
.analyzer[data-analyzer="streak"] .hpr.out[data-tone="pos"] u{ background:rgba(43,214,123,.14); }
.analyzer[data-analyzer="streak"] .hpr.out[data-tone="neg"] u{ background:rgba(255,77,94,.12); }

/* ═══════════════════════════════════════════════════════════════════════════
   j19 — VOICE TRADING JOURNAL v2 · LIVE TRADE CARD v2 · ultra-real transparent cards
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── LIVE TRADE CARD v2 — a layout that survives 320px ─────────────────────── */
.trade-prediction-card.tpc2{ border-radius:18px !important; }
.trade-prediction-card.tpc2 .tpc-face{ padding:14px 14px 12px !important; }
.trade-prediction-card.tpc2 .tpc-front{ display:flex !important; flex-direction:column; gap:10px; }
.trade-prediction-card.tpc2 .tpc-head{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.trade-prediction-card.tpc2 .tpc-eyebrow{ font-size:10px; letter-spacing:.12em; }
.trade-prediction-card.tpc2 .tpc-head strong{ font-size:clamp(13px, 4.2vw, 17px); line-height:1.25; letter-spacing:.04em; overflow-wrap:anywhere; }
.trade-prediction-card.tpc2 .tpc-body{ display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; align-items:center; }
.trade-prediction-card.tpc2 .tpc-ring{ width:92px; height:92px; }
.trade-prediction-card.tpc2 .tpc-ring-fg{ animation:none !important; stroke-dasharray:314; stroke-dashoffset:314; transition:stroke-dashoffset .25s linear, stroke .4s ease; }
.trade-prediction-card.tpc2 .tpc-ring[data-state="loading"] .tpc-ring-fg{ stroke:url(#tpc-grad); }
.trade-prediction-card.tpc2 .tpc-ring-label strong{ font-size:15px; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.trade-prediction-card.tpc2 .tpc-ring-label small{ font-size:8.5px; letter-spacing:.08em; margin-top:3px; }
.trade-prediction-card.tpc2 .tpc-stats{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px; }
.trade-prediction-card.tpc2 .tpc-stats > div{ padding:6px 8px; min-width:0; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09); }
.trade-prediction-card.tpc2 .tpc-stats small{ font-size:8.5px; white-space:nowrap; }
.trade-prediction-card.tpc2 .tpc-stats strong{ font-size:11.5px; line-height:1.25; white-space:normal; overflow-wrap:anywhere; }
.trade-prediction-card.tpc2 .tpc-src{ margin:0; }
.trade-prediction-card.tpc2 .tpc-note{ line-height:1.45; }
.trade-prediction-card.tpc2 .tpc-back{ display:flex; flex-direction:column; justify-content:center; gap:10px; text-align:center; padding:14px !important; }
.trade-prediction-card.tpc2 .tpc-result-headline{ font-size:clamp(14px, 4.4vw, 20px); line-height:1.25; overflow-wrap:anywhere; }
.trade-prediction-card.tpc2 .tpc-result-figures{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:6px; padding:0; }
.trade-prediction-card.tpc2 .tpc-result-figures > div{ padding:7px 6px; min-width:0; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09); }
.trade-prediction-card.tpc2 .tpc-result-figures strong{ font-size:13px; overflow-wrap:anywhere; }
.trade-prediction-card.tpc2 .tpc-result-note{ padding:0; line-height:1.45; }
@media (max-width:360px){
  .trade-prediction-card.tpc2 .tpc-body{ grid-template-columns:80px minmax(0,1fr); gap:8px; }
  .trade-prediction-card.tpc2 .tpc-ring{ width:80px; height:80px; }
  .trade-prediction-card.tpc2 .tpc-stats{ grid-template-columns:1fr; }
}

/* ── SESSION LEDGER v2 ──────────────────────────────────────────────────────── */
.jv2-ledger{
  position:relative; display:flex; flex-direction:column; gap:10px; margin:0 0 12px; padding:12px; border-radius:18px;
  background:linear-gradient(150deg, rgba(255,255,255,.06), rgba(255,255,255,.018) 55%, rgba(0,0,0,.05));
  border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(14px) saturate(1.35); -webkit-backdrop-filter:blur(14px) saturate(1.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 18px 40px -26px rgba(0,0,0,.75);
  transition:border-color .4s ease, box-shadow .4s ease;
}
.jv2-ledger[data-pnl="profit"]{ border-color:rgba(46,230,140,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 0 1px rgba(46,230,140,.14), 0 18px 40px -26px rgba(0,0,0,.75), 0 0 36px -18px rgba(46,230,140,.55); }
.jv2-ledger[data-pnl="loss"]{ border-color:rgba(255,90,110,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 0 1px rgba(255,90,110,.14), 0 18px 40px -26px rgba(0,0,0,.75), 0 0 36px -18px rgba(255,90,110,.5); }
.jv2-ledger[data-pending="true"]{ border-color:rgba(255,198,74,.55); }
.jv2-ledger .wl-pending-pill{ order:-1; }
.jv2-hero{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:10px; }
.jv2-net, .jv2-rate{ min-width:0; display:grid; gap:3px; padding:10px 12px; border-radius:13px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); }
.jv2-net > span, .jv2-rate > span{ font-size:9.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#93a2b8; }
.jv2-net strong, .jv2-rate strong{ font-family:var(--font-display); font-size:clamp(19px, 5vw, 26px); line-height:1.05; font-variant-numeric:tabular-nums; }
.jv2-net strong.wl-positive{ color:#5fe6a8; } .jv2-net strong.wl-negative{ color:#ff8a98; }
.jv2-net small, .jv2-rate small{ font-size:10px; color:#8d97a5; }
.jv2-net small[data-tone="ok"]{ color:#5fe6a8; } .jv2-net small[data-tone="bad"]{ color:#ff9aa4; }
.jv2-rate strong[data-tier="elite"]{ color:#5fe6a8; } .jv2-rate strong[data-tier="ok"]{ color:#ffd88a; } .jv2-rate strong[data-tier="drift"]{ color:#ff9aa4; } .jv2-rate strong[data-tier="warming"]{ color:#c9d3e0; }
.jv2-rate .wl-segmented-bar{ display:flex; height:6px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.08); }
.jv2-rate .wl-seg-wins{ display:block; background:linear-gradient(90deg,#1f9e5c,#5fe6a8); transition:width .4s ease; }
.jv2-rate .wl-seg-losses{ display:block; background:linear-gradient(90deg,#ff4d5e,#ff9aa4); transition:width .4s ease; }
.jv2-tiles{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:6px; }
.jv2-tiles > div{ min-width:0; display:grid; gap:2px; padding:7px 9px; border-radius:10px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); }
.jv2-tiles small{ font-size:8.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#8d97a5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jv2-tiles b{ font-size:12.5px; font-weight:800; color:#e8eef7; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jv2-tiles b[data-tone="pos"]{ color:#5fe6a8; } .jv2-tiles b[data-tone="neg"]{ color:#ff9aa4; }
.jv2-desks{ display:flex; gap:6px; flex-wrap:wrap; }
.jv2-desks:empty{ display:none; }
.jv2-desk{
  display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:0 11px; border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); color:#dfe6f0; font:700 11px/1 var(--font-body, inherit);
}
.jv2-desk b{ font-weight:800; } .jv2-desk i{ font-style:normal; color:#8d97a5; font-size:10px; } .jv2-desk u{ text-decoration:none; font-weight:800; font-variant-numeric:tabular-nums; }
.jv2-desk[data-tone="pos"] u{ color:#5fe6a8; } .jv2-desk[data-tone="neg"] u{ color:#ff9aa4; }
.jv2-desk.is-active{ border-color:rgba(59,157,255,.6); background:rgba(59,157,255,.12); }
.jv2-filters{ display:flex; gap:6px; flex-wrap:wrap; }
.jv2-filters .journal-filter{
  flex:1 1 auto; min-height:38px; padding:0 12px; border-radius:11px; cursor:pointer;
  background:rgba(255,255,255,.04) !important; border:1px solid rgba(255,255,255,.12) !important; color:#dfe6f0 !important;
  font:800 11.5px/1 var(--font-display) !important; letter-spacing:.03em; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  box-shadow:none !important; text-transform:none !important;
}
.jv2-filters .journal-filter strong{ font-weight:900; color:inherit; }
.jv2-filters .journal-filter.is-active{ border-color:rgba(59,157,255,.65) !important; background:rgba(59,157,255,.14) !important; color:#cfe6ff !important; }
.jv2-filters .journal-filter.filter-wins.is-active{ border-color:rgba(46,230,140,.6) !important; background:rgba(46,230,140,.12) !important; color:#bff5d9 !important; }
.jv2-filters .journal-filter.filter-losses.is-active{ border-color:rgba(255,90,110,.6) !important; background:rgba(255,90,110,.12) !important; color:#ffd0d6 !important; }
.jv2-filters .jv2-export{ flex:0 0 auto; border-style:dashed !important; }

/* ── THE CARDS v2 — ultra-real transparent glass, one line, tap for detail ─── */
.journal-list.jv2-list{ display:flex; flex-direction:column; gap:8px; padding:0; margin:0; list-style:none; }
.journal-list li.journal-trade-card.jc{
  --jc:#8aa0c0; position:relative; margin:0 !important; padding:0 !important; border-radius:16px !important; overflow:hidden !important; isolation:isolate;
  background:
    linear-gradient(115deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 28%, rgba(255,255,255,.015) 55%, rgba(255,255,255,.045) 100%),
    linear-gradient(160deg, color-mix(in srgb, var(--jc) 14%, transparent), color-mix(in srgb, var(--jc) 3%, transparent) 60%, transparent) !important;
  border:1px solid color-mix(in srgb, var(--jc) 42%, rgba(255,255,255,.16)) !important;
  backdrop-filter:blur(18px) saturate(1.55) brightness(1.04) !important; -webkit-backdrop-filter:blur(18px) saturate(1.55) brightness(1.04) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),                      /* the lit top edge of a pane of glass */
    inset 0 -1px 0 rgba(0,0,0,.28),
    inset 0 0 0 1px color-mix(in srgb, var(--jc) 12%, transparent),
    0 1px 1px rgba(0,0,0,.45),
    0 14px 30px -22px rgba(0,0,0,.85),
    0 0 34px -18px color-mix(in srgb, var(--jc) 60%, transparent) !important;
  transition:transform .25s ease, box-shadow .3s ease, border-color .3s ease;
  content-visibility:visible !important; contain-intrinsic-size:auto !important;
}
.journal-list li.journal-trade-card.jc.j-win{ --jc:#2ee68c; }
.journal-list li.journal-trade-card.jc.j-loss{ --jc:#ff5a6e; }
/* the specular sheen and the coloured edge light are the two things that make glass read as glass */
.journal-list li.journal-trade-card.jc::before{
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important; opacity:1 !important; display:block !important; width:auto !important; height:auto !important; border-radius:inherit; transform:none !important; animation:none !important;
  background:
    linear-gradient(105deg, transparent 38%, rgba(255,255,255,.10) 46%, rgba(255,255,255,.02) 52%, transparent 60%),
    radial-gradient(90% 60% at 0% 0%, rgba(255,255,255,.12), transparent 60%) !important;
}
.journal-list li.journal-trade-card.jc::after{
  content:"" !important; position:absolute !important; left:0 !important; top:0 !important; bottom:0 !important; width:3px !important; height:auto !important; z-index:1 !important; pointer-events:none !important; opacity:1 !important; display:block !important; transform:none !important; animation:none !important; inset:auto !important;
  background:linear-gradient(180deg, color-mix(in srgb, var(--jc) 95%, #fff), var(--jc) 50%, color-mix(in srgb, var(--jc) 40%, transparent)) !important;
  box-shadow:0 0 14px var(--jc) !important;
}
.journal-list li.journal-trade-card.jc > *{ position:relative; z-index:2; }
@media (hover:hover) and (pointer:fine){ .journal-list li.journal-trade-card.jc:hover{ transform:translateY(-1px); } }
.jc .jc-row{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto 18px; gap:10px; align-items:center; width:100%;
  padding:10px 10px 8px 14px; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; font:inherit;
}
.jc .jc-badge{
  display:inline-flex; align-items:center; justify-content:center; min-width:56px; height:26px; padding:0 8px; border-radius:8px;
  font:900 10px/1 var(--font-display); letter-spacing:.08em; color:#06130c; background:linear-gradient(180deg, color-mix(in srgb, var(--jc) 92%, #fff), var(--jc));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--jc) 60%, transparent), 0 4px 12px -6px var(--jc); white-space:nowrap;
}
.jc.j-loss .jc-badge{ color:#1a0509; }
.jc .jc-main{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.jc .jc-route{ font:800 13px/1.25 var(--font-display); letter-spacing:.03em; color:#f1f5fb; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jc .jc-route .j-fam-ic{ font-style:normal; margin-right:2px; }
.jc .jc-meta{ font-style:normal; font-size:10px; line-height:1.3; color:#93a2b8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jc .jc-net{ display:flex; flex-direction:column; align-items:flex-end; gap:2px; min-width:0; text-align:right; }
.jc .jc-net b{ font:900 14px/1.1 var(--font-display); letter-spacing:.02em; color:var(--jc); font-variant-numeric:tabular-nums; white-space:nowrap; }
.jc .jc-net i{ font-style:normal; font-size:9.5px; color:#93a2b8; white-space:nowrap; }
.jc .jc-chev{ color:#93a2b8; font-size:12px; transition:transform .25s ease; text-align:center; }
.jc[data-open="1"] .jc-chev{ transform:rotate(180deg); }
.jc .jc-via{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0 10px 9px 14px; padding:5px 9px; border-radius:9px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); font-size:10px; color:#c9d3e0;
}
.jc .jc-via b{ font-weight:800; color:#e8eef7; }
.jc .jc-via em{ font-style:normal; color:#b9c5d6; min-width:0; overflow-wrap:anywhere; }
.jc .jc-via u{ text-decoration:none; margin-left:auto; padding:2px 7px; border-radius:999px; font:800 9px/1.4 var(--font-display); letter-spacing:.08em; white-space:nowrap; }
.jc .jc-more{ padding:0 10px 12px 14px; display:grid; gap:8px; }
.jc .jc-outcome{ display:grid; gap:3px; padding:8px 10px; border-radius:10px; background:rgba(255,255,255,.04); border:1px solid color-mix(in srgb, var(--jc) 30%, rgba(255,255,255,.08)); }
.jc .jc-outcome span{ font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#8d97a5; }
.jc .jc-outcome strong{ font:900 13px/1.2 var(--font-display); color:var(--jc); }
.jc .jc-outcome small{ font-size:10.5px; line-height:1.45; color:#b9c5d6; }
.jc .jc-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(112px,1fr)); gap:6px; }
.jc .jc-grid > span{ display:grid; gap:2px; min-width:0; padding:6px 8px; border-radius:9px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); }
.jc .jc-grid small{ font-size:8.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#8d97a5; }
.jc .jc-grid strong{ font-size:12px; font-weight:800; color:#e8eef7; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.jc .jc-grid strong.jf-pos{ color:#5fe6a8; } .jc .jc-grid strong.jf-neg{ color:#ff9aa4; } .jc .jc-grid strong.jf-dir{ color:#9fd3ff; }
.jc .jc-grid strong.jf-digit{ font-family:var(--font-display); font-size:15px; }
@media (max-width:420px){
  .jc .jc-row{ grid-template-columns:auto minmax(0,1fr) 16px; gap:8px; padding:10px 8px 6px 12px; }
  .jc .jc-net{ grid-column:1 / 3; flex-direction:row; align-items:baseline; justify-content:space-between; }
  .jc .jc-chev{ grid-row:1; grid-column:3; }
  .jc .jc-badge{ min-width:50px; }
}
/* the in-flight cards, same family */
.journal-list li.journal-card.j-pending.jc-pending{
  margin:0 !important; padding:10px 12px 10px 14px !important; border-radius:16px !important; gap:6px !important; animation:none !important;
  background:linear-gradient(115deg, rgba(255,255,255,.09), rgba(255,255,255,.025) 35%, rgba(255,198,74,.06)) !important;
  border:1px solid rgba(255,198,74,.5) !important; backdrop-filter:blur(18px) saturate(1.5) !important; -webkit-backdrop-filter:blur(18px) saturate(1.5) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 3px 0 0 rgba(255,198,74,.9), 0 0 30px -16px rgba(255,198,74,.7), 0 14px 30px -22px rgba(0,0,0,.85) !important;
}
.jc-pending .jp-top{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.jc-pending .jp-route{ display:flex; align-items:center; justify-content:space-between; gap:8px; font:800 12.5px/1.25 var(--font-display); color:#f1f5fb; }
.jc-pending .jp-dur{ font:700 10px/1 var(--font-body, inherit); color:#ffd88a; padding:2px 7px; border-radius:999px; background:rgba(255,198,74,.12); border:1px solid rgba(255,198,74,.3); }
.jc-pending .jp-meta{ display:flex; gap:10px; flex-wrap:wrap; font-size:10px; color:#93a2b8; }
.jc-pending .jp-meta b{ color:#e8eef7; font-variant-numeric:tabular-nums; }
.jc-pending .jp-bar{ height:3px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.08); }
.jc-pending .jp-bar i{ display:block; height:100%; width:40%; background:linear-gradient(90deg,#ffd45a,#fa9200); animation:jpSweep 1.4s ease-in-out infinite alternate; }
@keyframes jpSweep{ from{ transform:translateX(-20%); } to{ transform:translateX(230%); } }
.journal-empty{ padding:14px; border-radius:14px; background:rgba(255,255,255,.035); border:1px dashed rgba(255,255,255,.14); display:grid; gap:4px; }

/* ═══════════════════════════════════════════════════════════════════════════
   j20 — TRADE HISTORY (the reference design): summary cards · filter pills ·
   one card per trade, green when won, red when lost, ORANGE while pending
   ═══════════════════════════════════════════════════════════════════════════ */
#journal-section.th{
  --th-blue:#4fb3ff; --th-green:#3ddc84; --th-red:#ff5c6c; --th-amber:#ffb340; --th-text:#e8eef7; --th-dim:#8d9bb0; --th-line:rgba(120,150,200,.16);
  padding:16px 14px 14px !important; border-radius:22px !important;
  background:linear-gradient(170deg, rgba(14,26,46,.92), rgba(9,18,34,.94)) !important;
  border:1px solid rgba(120,160,220,.16) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 24px 60px -34px rgba(0,0,0,.9) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
#journal-section.th > *{ position:relative; }
#journal-section.th::before, #journal-section.th::after{ display:none !important; content:none !important; }
/* header */
#journal-section.th .th-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 14px; }
#journal-section.th .th-title{ display:flex; align-items:center; gap:12px; min-width:0; }
#journal-section.th .th-tico{
  width:38px; height:38px; border-radius:11px; display:grid; place-items:center; font-size:19px; flex:none;
  background:linear-gradient(160deg, rgba(79,179,255,.22), rgba(79,179,255,.08)); border:1px solid rgba(79,179,255,.42); color:var(--th-blue);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 18px -8px rgba(79,179,255,.8);
}
#journal-section.th .th-title h2{ margin:0 !important; padding:0 !important; font:800 19px/1.1 var(--font-display) !important; letter-spacing:.01em !important; color:var(--th-blue) !important; text-transform:none !important; background:none !important; -webkit-text-fill-color:currentColor !important; text-shadow:none !important; }
#journal-section.th .th-trash{
  width:40px; height:40px; border-radius:11px; display:grid; place-items:center; cursor:pointer; flex:none; padding:0 !important; margin:0 !important;
  background:linear-gradient(160deg, rgba(255,92,108,.30), rgba(255,92,108,.14)) !important; border:1px solid rgba(255,92,108,.55) !important; color:#ff8d99 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 16px -8px rgba(255,92,108,.8) !important;
}
#journal-section.th .th-trash svg{ width:17px; height:17px; }
#journal-section.th .th-trash:active{ transform:scale(.96); }
/* summary cards */
#journal-section.th .th-sum{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin:0 0 14px; }
#journal-section.th .th-sum-card{
  min-width:0; display:grid; gap:8px; align-content:start; padding:16px 16px 18px; border-radius:14px;
  border:1px solid var(--th-line); background:rgba(255,255,255,.025);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
#journal-section.th .th-net-card{ background:linear-gradient(145deg, rgba(61,220,132,.10), rgba(61,220,132,.02) 55%, rgba(255,255,255,.015)); border-color:rgba(61,220,132,.22); }
#journal-section.th .th-rate-card{ background:linear-gradient(145deg, rgba(79,179,255,.12), rgba(79,179,255,.03) 55%, rgba(255,255,255,.015)); border-color:rgba(79,179,255,.24); }
#journal-section.th .th-sum-k{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; color:#c7d2e2; }
#journal-section.th .th-sum-k i{ font-style:normal; font-size:12px; color:var(--th-dim); }
#journal-section.th .th-net-card .th-sum-k i{ color:var(--th-green); } #journal-section.th .th-rate-card .th-sum-k i{ color:var(--th-blue); }
#journal-section.th .th-sum-card strong{ font:800 clamp(22px, 6.2vw, 30px)/1 var(--font-display); letter-spacing:-.01em; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#journal-section.th #wl-pnl.wl-positive, #journal-section.th #wl-pnl{ color:var(--th-green); }
#journal-section.th #wl-pnl.wl-negative{ color:var(--th-red); }
#journal-section.th .th-rate-line{ display:flex; align-items:baseline; gap:8px; min-width:0; }
#journal-section.th #wl-rate{ color:var(--th-blue) !important; }
#journal-section.th #wl-trades-taken{ font-size:14px; font-weight:600; color:#b9c5d6; white-space:nowrap; }
/* filter pills */
#journal-section.th .th-filters{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin:0 0 14px; }
#journal-section.th .th-filter{
  min-height:46px; padding:0 10px; border-radius:12px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:0;
  background:rgba(255,255,255,.03) !important; border:1px solid var(--th-line) !important; color:#c7d2e2 !important;
  font:700 12.5px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; box-shadow:none !important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#journal-section.th .th-filter i{ font-style:normal; font-size:12px; opacity:.9; }
#journal-section.th .th-filter strong{ font-weight:700; color:inherit; }
#journal-section.th .th-filter.is-active{ background:linear-gradient(160deg, rgba(79,179,255,.38), rgba(59,130,246,.24)) !important; border-color:rgba(120,190,255,.7) !important; color:#eaf4ff !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 18px -8px rgba(79,179,255,.9) !important; }
/* the list */
#journal-section.th .th-list{ display:flex; flex-direction:column; gap:12px; margin:0; padding:0; list-style:none; }
#journal-section.th .th-card{
  --c:var(--th-green); position:relative; margin:0; padding:14px 14px 12px; border-radius:14px; overflow:hidden; isolation:isolate;
  background:linear-gradient(160deg, color-mix(in srgb, var(--c) 9%, rgba(255,255,255,.02)), rgba(255,255,255,.012) 60%, color-mix(in srgb, var(--c) 4%, transparent));
  border:1px solid color-mix(in srgb, var(--c) 32%, rgba(255,255,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 14px 30px -24px rgba(0,0,0,.9), 0 0 30px -20px color-mix(in srgb, var(--c) 70%, transparent);
  transition:border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
#journal-section.th .th-card.th-lost{ --c:var(--th-red); }
#journal-section.th .th-card.th-pending{ --c:var(--th-amber); animation:thPending 2.2s ease-in-out infinite; }
@keyframes thPending{ 0%,100%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 14px 30px -24px rgba(0,0,0,.9), 0 0 22px -14px rgba(255,179,64,.6); } 50%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 14px 30px -24px rgba(0,0,0,.9), 0 0 34px -10px rgba(255,179,64,.85); } }
#journal-section.th .th-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
#journal-section.th .th-left{ min-width:0; display:flex; flex-direction:column; gap:6px; }
#journal-section.th .th-l1{ display:flex; align-items:center; gap:8px; }
#journal-section.th .th-ic{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; font-size:14px; background:color-mix(in srgb, var(--c) 16%, rgba(255,255,255,.03)); border:1px solid color-mix(in srgb, var(--c) 34%, transparent); }
#journal-section.th .th-sym{ font:800 15px/1 var(--font-display); color:var(--th-text); letter-spacing:.01em; }
#journal-section.th .th-st{ padding:3px 9px; border-radius:999px; font:800 10px/1.2 var(--font-body, inherit); letter-spacing:.06em; color:var(--c); background:color-mix(in srgb, var(--c) 14%, transparent); border:1px solid color-mix(in srgb, var(--c) 55%, transparent); }
#journal-section.th .th-route{ font:700 13px/1.3 var(--font-body, inherit); color:var(--th-blue); letter-spacing:.02em; overflow-wrap:anywhere; }
#journal-section.th .th-chip{ align-self:flex-start; display:inline-flex; align-items:center; gap:5px; padding:3px 8px; border-radius:6px; font-size:10.5px; font-weight:700; color:#a9c8ff; background:rgba(79,179,255,.10); border:1px solid rgba(79,179,255,.26); }
#journal-section.th .th-chip i{ font-style:normal; font-size:11px; }
#journal-section.th .th-right{ flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; max-width:52%; }
#journal-section.th .th-net{ font:800 clamp(17px, 5.2vw, 22px)/1.1 var(--font-display); color:var(--c); font-variant-numeric:tabular-nums; white-space:nowrap; }
#journal-section.th .th-pending .th-net{ font-size:clamp(15px, 4.6vw, 19px); }
#journal-section.th .th-stake{ font-size:11.5px; color:#c7d2e2; white-space:nowrap; }
#journal-section.th .th-stake b{ font-weight:800; color:var(--th-text); }
#journal-section.th .th-pay{ font-size:11px; color:var(--th-dim); white-space:nowrap; }
#journal-section.th .th-rows{ margin-top:12px; padding-top:10px; border-top:1px solid color-mix(in srgb, var(--c) 18%, rgba(255,255,255,.08)); display:grid; gap:9px; }
#journal-section.th .th-rows > div{ display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; }
#journal-section.th .th-rows span{ font-size:12.5px; color:#b9c5d6; flex:none; }
#journal-section.th .th-rows b{ font-size:12.5px; font-weight:700; color:var(--th-text); text-align:right; min-width:0; overflow-wrap:anywhere; }
#journal-section.th .th-rows .th-mono{ font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size:12px; letter-spacing:.01em; }
#journal-section.th .th-pill{ padding:3px 10px; border-radius:6px; font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size:12px; font-weight:800; letter-spacing:.04em; color:var(--c) !important; background:color-mix(in srgb, var(--c) 14%, rgba(0,0,0,.25)); border:1px solid color-mix(in srgb, var(--c) 45%, transparent); }
#journal-section.th .th-status{ color:var(--c) !important; }
#journal-section.th .th-placed{ display:inline-flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-end; font-size:11.5px !important; }
#journal-section.th .th-placed u{ text-decoration:none; padding:2px 7px; border-radius:999px; font-size:10px; font-weight:800; }
#journal-section.th .th-placed u.m-auto{ color:#e6d5ff; background:rgba(168,120,255,.16); border:1px solid rgba(168,120,255,.42); }
#journal-section.th .th-placed u.m-manual{ color:#ffe2a8; background:rgba(255,190,80,.14); border:1px solid rgba(255,190,80,.42); }
#journal-section.th .th-empty{ padding:18px 14px; border-radius:14px; border:1px dashed var(--th-line); background:rgba(255,255,255,.025); display:grid; gap:4px; text-align:center; }
#journal-section.th .th-empty strong{ font:800 14px/1.2 var(--font-display); color:var(--th-text); }
#journal-section.th .th-empty small{ font-size:11.5px; color:var(--th-dim); }
@media (max-width:380px){
  #journal-section.th{ padding:14px 10px 12px !important; }
  #journal-section.th .th-sum{ gap:8px; }
  #journal-section.th .th-sum-card{ padding:12px 12px 14px; }
  #journal-section.th .th-filters{ gap:6px; }
  #journal-section.th .th-filter{ padding:0 6px; font-size:11.5px !important; }
  #journal-section.th .th-right{ max-width:50%; }
}
#journal-section.th .th-sum, #journal-section.th #win-loss-card{ box-shadow:none !important; border:0 !important; outline:0 !important; background:transparent !important; padding:0 !important; animation:none !important; }
#journal-section.th #win-loss-card::before, #journal-section.th #win-loss-card::after{ display:none !important; content:none !important; }
/* the cards fill the panel: an old grid rule pinned the list's items to align-items:start */
#journal-section.th .th-list{ display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start; gap:12px !important; padding:0 !important; margin:0 !important; grid-template-columns:none !important; max-height:none !important; overflow:visible !important; }
#journal-section.th .th-card{ width:100% !important; max-width:100% !important; margin:0 !important; box-sizing:border-box; }

/* ═══ j22 — Only God Hybrid audit: level-aware chart legend, losing widths, grade colours ═══ */
.hyb-legend .l-lv i{ background:#ffd24a; }
.hyb-legend .l-e i{ background:#ffd24a; opacity:.55; }
.analyzer[data-analyzer="streak"] .hyb-lvlrow{ justify-content:center; }
.analyzer[data-analyzer="streak"] .hyb-lvlrow b{ color:#ffd24a; font-variant-numeric:tabular-nums; }
/* a losing width, when it is the current one, is shown crossed so the hold makes sense */
.analyzer[data-analyzer="streak"] .hyb-swp.is-losing{ opacity:.75; border-color:rgba(255,77,94,.5); }
.analyzer[data-analyzer="streak"] .hyb-swp em.x{ background:#ff5a6e; color:#2a0a0f; }
.analyzer[data-analyzer="streak"] .hyb-swp-hid{ grid-column:1 / -1; margin-top:4px; font-size:9px; color:#8d97a5; text-align:center; }
/* Strategy Read on a LEVEL pair: the headline follows the grade, not the lean */
.analyzer[data-analyzer="streak"] > section#hyb-pred[data-lvl="1"][data-grade="high"]{ background-color:#0f2118 !important; border-color:rgba(43,214,123,.28) !important; }
.analyzer[data-analyzer="streak"] > section#hyb-pred[data-lvl="1"][data-grade="high"] .hyb-pred-t b{ color:#5fe6a8 !important; }
.analyzer[data-analyzer="streak"] > section#hyb-pred[data-lvl="1"][data-grade="high"] .hyb-pred-m i{ background:linear-gradient(90deg,#1f9e5c,#5fe6a8) !important; }
.analyzer[data-analyzer="streak"] #hyb-minconf-row[hidden], .analyzer[data-analyzer="streak"] #hyb-mins[hidden]{ display:none !important; }

/* ═══ j23 — Trade History: the pending countdown ═══ */
#journal-section.th .th-cdbar{ margin-top:10px; height:4px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.08); }
#journal-section.th .th-cdbar i{ display:block; height:100%; width:0; background:linear-gradient(90deg, #ffd45a, #ff9f1a); box-shadow:0 0 10px rgba(255,179,64,.7); transition:width .45s linear; }
#journal-section.th .th-pending[data-settling="1"] .th-cdbar i{ animation:thSettle 1.1s ease-in-out infinite; }
@keyframes thSettle{ 0%,100%{ opacity:1 } 50%{ opacity:.35 } }
#journal-section.th .th-pending .th-cd{ font-variant-numeric:tabular-nums; }

/* ═══════════════════════════════════════════════════════════════════════════
   j25 — PLATFORM HEADER v3
   One bar. One surface for every control (same height, same radius, same border).
   One accent (amber) — for the mark, the current page, and nothing else.
   Quiet text links like the reference; no emoji; no title card.
   ═══════════════════════════════════════════════════════════════════════════ */
.aether-header.gh3{
  --gh-bg:#0c0f15; --gh-line:rgba(255,255,255,.08); --gh-surf:#151a23; --gh-surf2:#1b212c;
  --gh-text:#e9edf3; --gh-dim:#98a2b3; --gh-accent:#ffb547; --gh-ok:#34d399;
  position:sticky; top:0; z-index:40; margin:0 0 14px; padding:0 20px; min-height:64px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:rgba(12,15,21,.94) !important; border:0 !important; border-bottom:1px solid var(--gh-line) !important; border-radius:0 !important;
  box-shadow:0 10px 30px -22px rgba(0,0,0,.9) !important;
  backdrop-filter:blur(18px) saturate(1.3) !important; -webkit-backdrop-filter:blur(18px) saturate(1.3) !important;
}
.aether-header.gh3::before, .aether-header.gh3::after{ content:none !important; display:none !important; }
/* brand */
.aether-header.gh3 .gh-brand{ display:inline-flex; align-items:center; gap:11px; text-decoration:none; color:inherit; min-width:0; }
.aether-header.gh3 .gh-logo{
  width:40px; height:40px; border-radius:12px; display:grid; place-items:center; flex:none;
  background:linear-gradient(180deg, var(--gh-surf2), var(--gh-surf)); border:1px solid var(--gh-line);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 0 transparent;
}
.aether-header.gh3 .gh-logo svg{ width:20px; height:20px; display:block; filter:drop-shadow(0 0 6px rgba(255,181,71,.45)); }
.aether-header.gh3 .gh-name{ font:600 17px/1 var(--font-display); letter-spacing:.01em; color:var(--gh-text); white-space:nowrap; }
.aether-header.gh3 .gh-name em{ font-style:normal; font-weight:700; color:var(--gh-accent); }
/* the right cluster */
.aether-header.gh3 .gh-right{ display:flex; align-items:center; gap:10px; min-width:0; }
.aether-header.gh3 .gh-live{ display:flex; align-items:center; gap:8px; }
/* every control: 40px tall, 12px radius, the same surface */
.aether-header.gh3 .voice-orb,
.aether-header.gh3 .aether-power,
.aether-header.gh3 .chip,
.aether-header.gh3 .gh-link.gh-logout{
  height:40px; min-height:40px; border-radius:12px; padding:0 12px; box-sizing:border-box;
  background:linear-gradient(180deg, var(--gh-surf2), var(--gh-surf)) !important;
  border:1px solid var(--gh-line) !important; color:var(--gh-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06) !important; transform:none !important; filter:none !important;
  font:600 13px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; margin:0;
}
/* Aether: mic + power as one segmented control */
.aether-header.gh3 .gh-aether{ display:inline-flex; align-items:stretch; }
.aether-header.gh3 .voice-orb{ display:inline-flex; align-items:center; gap:8px; border-radius:12px 0 0 12px !important; border-right:0 !important; cursor:pointer; }
.aether-header.gh3 .voice-orb svg{ width:17px; height:17px; fill:var(--gh-accent); }
.aether-header.gh3 .voice-orb .voice-label{ font:600 13px/1 var(--font-body, inherit); color:var(--gh-text); }
.aether-header.gh3 .voice-orb.listening{ animation:none !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 0 1px rgba(255,181,71,.45) !important; }
.aether-header.gh3 .aether-power{
  position:static !important; width:40px !important; padding:0 !important; display:inline-flex !important; align-items:center; justify-content:center;
  border-radius:0 12px 12px 0 !important; color:var(--gh-ok) !important; cursor:pointer;
}
.aether-header.gh3 .aether-power .ap-glyph{ width:16px; height:16px; }
.aether-header.gh3 .aether-power .ap-glyph svg{ width:16px; height:16px; }
.aether-header.gh3 .aether-power::after{ content:""; position:absolute; right:7px; top:7px; width:6px; height:6px; border-radius:50%; background:var(--gh-ok); box-shadow:0 0 8px var(--gh-ok); }
.aether-header.gh3 .aether-power{ position:relative !important; }
.aether-header.gh3 .aether-power[aria-checked="false"]{ color:var(--gh-dim) !important; }
.aether-header.gh3 .aether-power[aria-checked="false"]::after{ background:#5b6675; box-shadow:none; }
/* chips */
.aether-header.gh3 .chip{ display:inline-flex; align-items:center; gap:7px; }
.aether-header.gh3 .chip .chip-k{ font-size:10.5px; color:var(--gh-dim); text-transform:uppercase; letter-spacing:.06em; }
.aether-header.gh3 .chip .chip-v{ font-weight:700; font-variant-numeric:tabular-nums; }
.aether-header.gh3 .chip .chip-sub{ font-size:10.5px; color:var(--gh-dim); }
.aether-header.gh3 .chip-dot{ width:7px; height:7px; border-radius:50%; background:#5b6675; box-shadow:none; }
.aether-header.gh3 .chip.chip-online .chip-dot, .aether-header.gh3 .chip.chip-live .chip-dot{ background:var(--gh-ok); box-shadow:0 0 8px var(--gh-ok); }
.aether-header.gh3 .chip .chip-text{ font-size:12.5px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--gh-text); }
/* nav — plain text, the current page carries the only accent */
.aether-header.gh3 .gh-nav{ display:flex; align-items:center; gap:2px; margin-left:4px; }
.aether-header.gh3 .gh-link{
  position:relative; display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 12px; border-radius:10px; cursor:pointer; text-decoration:none;
  color:var(--gh-dim); font:500 14.5px/1 var(--font-body, inherit); letter-spacing:0; background:transparent; border:0; appearance:none; white-space:nowrap;
  transition:color .18s ease, background .18s ease;
}
.aether-header.gh3 .gh-link:hover{ color:var(--gh-text); background:rgba(255,255,255,.04); }
.aether-header.gh3 .gh-link.is-here{ color:var(--gh-text); }
.aether-header.gh3 .gh-link.is-here::after{ content:""; position:absolute; left:12px; right:12px; bottom:6px; height:2px; border-radius:2px; background:var(--gh-accent); box-shadow:0 0 10px rgba(255,181,71,.6); }
.aether-header.gh3 .at-open-btn.gh-link{ height:40px !important; padding:0 12px !important; border-radius:10px !important; background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--gh-dim) !important; font:500 14.5px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; transform:none !important; filter:none !important; min-height:0; }
.aether-header.gh3 .at-open-btn.gh-link:hover{ color:var(--gh-text) !important; background:rgba(255,255,255,.04) !important; }
.aether-header.gh3 .at-open-btn.gh-link.active{ color:var(--gh-text) !important; }
.aether-header.gh3 .at-open-btn.gh-link.active::after{ content:""; position:absolute; left:12px; right:12px; bottom:6px; height:2px; border-radius:2px; background:var(--gh-accent); box-shadow:0 0 10px rgba(255,181,71,.6); }
.aether-header.gh3 .gh-link.gh-logout{ margin-left:6px; color:var(--gh-text) !important; }
.aether-header.gh3 .gh-link.gh-logout svg{ width:16px; height:16px; }
.aether-header.gh3 .gh-link.gh-logout:hover{ background:linear-gradient(180deg, #232a36, #1a202a) !important; }
.aether-header.gh3 .gh-link:focus-visible, .aether-header.gh3 .voice-orb:focus-visible, .aether-header.gh3 .aether-power:focus-visible{ outline:2px solid rgba(255,181,71,.7); outline-offset:2px; }
/* the one time the desk is open, the header stays exactly the same bar */
body.gm-at-active .aether-header.gh3{ background:rgba(12,15,21,.94) !important; }
body.gm-at-active #aether-ctl.gh-aether{ display:inline-flex !important; }
/* phones: two calm rows */
@media (max-width:820px){
  .aether-header.gh3{ padding:8px 12px; min-height:0; flex-wrap:wrap; gap:8px 10px; }
  .aether-header.gh3 .gh-brand{ order:1; }
  .aether-header.gh3 .gh-right{ display:contents; }
  .aether-header.gh3 .gh-aether{ order:2; margin-left:auto; }
  .aether-header.gh3 .gh-live{ order:3; width:100%; justify-content:flex-start; }
  .aether-header.gh3 .gh-nav{ order:4; width:100%; margin:0; padding:2px 0 2px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; gap:0; justify-content:space-between; }
  .aether-header.gh3 .gh-nav::-webkit-scrollbar{ display:none; }
  .aether-header.gh3 .gh-link, .aether-header.gh3 .at-open-btn.gh-link{ height:38px; padding:0 10px !important; font-size:14px !important; }
  .aether-header.gh3 .gh-link.gh-logout{ margin-left:0; height:38px; min-height:38px; }
  .aether-header.gh3 .voice-orb .voice-label{ display:none; }
  .aether-header.gh3 .voice-orb{ width:40px; padding:0 !important; justify-content:center; }
  .aether-header.gh3 .gh-name{ font-size:16px; }
  .aether-header.gh3 .chip{ height:34px; min-height:34px; padding:0 10px; }
  .aether-header.gh3 .chip .chip-text{ font-size:12px; }
}
@media (max-width:360px){
  .aether-header.gh3 .gh-link, .aether-header.gh3 .at-open-btn.gh-link{ padding:0 8px !important; font-size:13.5px !important; }
}
.aether-header.gh3 .chip.chip-connecting .chip-dot{ background:var(--gh-accent); box-shadow:0 0 8px rgba(255,181,71,.7); animation:ghPulse 1.2s ease-in-out infinite; }
.aether-header.gh3 .chip.chip-authorized .chip-dot, .aether-header.gh3 .chip.chip-connected .chip-dot{ background:var(--gh-ok); box-shadow:0 0 8px var(--gh-ok); }
@keyframes ghPulse{ 0%,100%{ opacity:1 } 50%{ opacity:.35 } }
/* ⚠ body carries overflow-x:hidden (phones), which breaks position:sticky for anything inside
   it — the bar scrolled away with the page. Fixed to the viewport instead; the page starts
   below it via --gh-h, measured live by gmHeaderNav. */
.aether-header.gh3{ position:fixed !important; top:0 !important; left:0 !important; right:0 !important; margin:0 !important; width:auto !important; max-width:none !important; }
body{ padding-top:var(--gh-h, 64px); }
.aether-header.gh3 .at-open-btn.gh-link .ao-t{ display:inline !important; }
.aether-header.gh3 .at-open-btn.gh-link .ao-i{ display:none !important; }
.aether-header.gh3 .chip[hidden], .aether-header.gh3 [hidden]{ display:none !important; }

/* ═══ j26 — header: a navy shade instead of flat black · two short rows on phones ═══ */
.aether-header.gh3{
  --gh-bg:#111827; --gh-surf:#1a2334; --gh-surf2:#212c40; --gh-line:rgba(140,170,220,.14);
  background:linear-gradient(180deg, rgba(24,33,50,.97), rgba(15,21,33,.97)) !important;
  border-bottom:1px solid rgba(140,170,220,.16) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 12px 32px -22px rgba(0,0,0,.85) !important;
}
.aether-header.gh3 .voice-orb, .aether-header.gh3 .aether-power, .aether-header.gh3 .chip, .aether-header.gh3 .gh-link.gh-logout, .aether-header.gh3 .gh-logo{
  background:linear-gradient(180deg, #232f45, #19233a) !important; border-color:rgba(140,170,220,.18) !important;
}
.aether-header.gh3 .gh-link:hover, .aether-header.gh3 .at-open-btn.gh-link:hover{ background:rgba(140,170,220,.08) !important; }
@media (max-width:820px){
  .aether-header.gh3{ padding:6px 10px; gap:6px 8px; }
  /* row 1: brand · status · Aether — row 2: the nav */
  .aether-header.gh3 .gh-brand{ order:1; gap:9px; }
  .aether-header.gh3 .gh-live{ order:2; width:auto; margin-left:auto; gap:6px; }
  .aether-header.gh3 .gh-aether{ order:3; margin-left:0; }
  .aether-header.gh3 .gh-nav{ order:4; width:100%; padding:0; }
  .aether-header.gh3 .gh-logo{ width:34px; height:34px; border-radius:10px; }
  .aether-header.gh3 .gh-logo svg{ width:17px; height:17px; }
  .aether-header.gh3 .gh-name{ font-size:15.5px; }
  .aether-header.gh3 .voice-orb, .aether-header.gh3 .aether-power{ height:34px !important; min-height:34px !important; width:34px !important; border-radius:10px; }
  .aether-header.gh3 .voice-orb{ border-radius:10px 0 0 10px !important; }
  .aether-header.gh3 .aether-power{ border-radius:0 10px 10px 0 !important; }
  .aether-header.gh3 .aether-power::after{ right:5px; top:5px; width:5px; height:5px; }
  .aether-header.gh3 .voice-orb svg, .aether-header.gh3 .aether-power .ap-glyph svg{ width:15px; height:15px; }
  /* the chips shrink to what matters: the dot, and the balance figure when connected */
  .aether-header.gh3 .chip{ height:34px; min-height:34px !important; padding:0 9px !important; border-radius:10px; gap:6px; }
  .aether-header.gh3 #connection-chip .chip-text{ font-size:11.5px; }
  .aether-header.gh3 #balance-chip .chip-k{ display:none; }
  .aether-header.gh3 #balance-chip .chip-sub{ display:none; }
  .aether-header.gh3 #balance-chip .chip-v{ font-size:12.5px; }
  .aether-header.gh3 .gh-link, .aether-header.gh3 .at-open-btn.gh-link{ height:34px !important; min-height:34px; padding:0 8px !important; font-size:13.5px !important; border-radius:9px; }
  .aether-header.gh3 .gh-link.is-here::after, .aether-header.gh3 .at-open-btn.gh-link.active::after{ left:8px; right:8px; bottom:4px; }
  .aether-header.gh3 .gh-link.gh-logout{ height:34px !important; min-height:34px !important; padding:0 10px !important; gap:5px; }
  .aether-header.gh3 .gh-link.gh-logout svg{ width:14px; height:14px; }
}
@media (max-width:380px){
  .aether-header.gh3 .gh-name{ font-size:14.5px; }
  .aether-header.gh3 #connection-chip .chip-text{ display:none; }
  .aether-header.gh3 #connection-chip{ width:34px; padding:0 !important; justify-content:center; }
  .aether-header.gh3 .gh-link, .aether-header.gh3 .at-open-btn.gh-link{ padding:0 6px !important; font-size:13px !important; }
  .aether-header.gh3 .gh-link.gh-logout span{ display:none; }
  .aether-header.gh3 .gh-link.gh-logout{ width:34px; padding:0 !important; justify-content:center; }
}

/* ═══ j27 — the balance chip IS the Demo ↔ Real switch ═══ */
.aether-header.gh3 .gh-balance{ cursor:pointer; gap:8px; font:inherit; appearance:none; }
.aether-header.gh3 .gh-balance:hover{ background:linear-gradient(180deg, #2a3852, #1e2a42) !important; }
.aether-header.gh3 .gh-balance:active{ transform:scale(.98) !important; }
.aether-header.gh3 .gh-balance .chip-acct{ padding:2px 7px; border-radius:6px; font:800 10px/1.3 var(--font-display); letter-spacing:.08em; color:#0b1220; background:#5fe6a8; }
.aether-header.gh3 .gh-balance[data-acct="real"] .chip-acct{ background:#ff8a98; }
.aether-header.gh3 .gh-balance .chip-swap{ color:var(--gh-dim); font-size:13px; }
.aether-header.gh3 .gh-balance:hover .chip-swap{ color:var(--gh-accent); }
@media (max-width:820px){
  .aether-header.gh3 #balance-chip .chip-acct{ display:inline-block; }
  .aether-header.gh3 #balance-chip .chip-swap{ display:none; }
}
@media (max-width:820px){
  /* once the balance is showing, the account IS the connection status — one chip, not two */
  .aether-header.gh3 .gh-live:has(#balance-chip:not([hidden])) #connection-chip{ display:none !important; }
  .aether-header.gh3 #balance-chip{ min-width:0; max-width:52vw; }
  .aether-header.gh3 #balance-chip .chip-v{ font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .aether-header.gh3 #balance-chip .chip-acct{ font-size:9px; padding:2px 6px; }
}
@media (max-width:820px){
  /* row 1: brand … Aether · row 2: status chip + the nav (the nav scrolls if it must) */
  .aether-header.gh3 .gh-aether{ order:2; margin-left:auto; }
  .aether-header.gh3 .gh-live{ order:4; width:auto; margin-left:0; flex:none; }
  .aether-header.gh3 .gh-nav{ order:5; width:auto; flex:1 1 0; min-width:0; justify-content:flex-start; gap:2px; }
  .aether-header.gh3 .gh-link.gh-logout{ margin-left:auto; }
  .aether-header.gh3 #balance-chip{ max-width:44vw; }
}
.aether-header.gh3 .gh-balance .chip-cur{ font-size:11px; color:var(--gh-dim); margin-left:-4px; }
@media (max-width:820px){
  .aether-header.gh3 .gh-balance .chip-cur{ display:none; }          /* the figure alone — the currency is in the tooltip */
  .aether-header.gh3 .gh-nav .gh-link[href="/"]{ display:none; }     /* the logo is Home on a phone */
  .aether-header.gh3 .gh-link, .aether-header.gh3 .at-open-btn.gh-link{ padding:0 7px !important; }
}

/* ═══ j28 — account NUMBER on the balance chip · the power pip lives on the mic · no Logout ═══ */
.aether-header.gh3 .gh-balance .chip-id{ font:700 11.5px/1 var(--font-display); letter-spacing:.04em; color:var(--gh-accent); font-variant-numeric:tabular-nums; }
.aether-header.gh3 .gh-balance .chip-acct{ display:none !important; }
.aether-header.gh3 .gh-balance .chip-sub{ display:none !important; }
/* the Aether control: ONE mic button with a small power pip on its corner */
.aether-header.gh3 .gh-aether{ position:relative; display:inline-flex; align-items:center; overflow:visible; }
.aether-header.gh3 .voice-orb{ border-radius:12px !important; border-right:1px solid var(--gh-line) !important; }
.aether-header.gh3 .aether-power{
  position:absolute !important; top:-6px !important; right:-6px !important; width:20px !important; height:20px !important; min-height:0 !important;
  border-radius:50% !important; padding:0 !important; display:inline-flex !important; align-items:center; justify-content:center; z-index:2;
  background:radial-gradient(circle at 50% 35%, #34d399, #15956a) !important; border:1px solid rgba(255,255,255,.25) !important; color:#04140c !important;
  box-shadow:0 0 0 2px rgba(15,21,33,.95), 0 0 10px rgba(52,211,153,.7) !important;
}
.aether-header.gh3 .aether-power::after{ display:none !important; content:none !important; }
.aether-header.gh3 .aether-power .ap-glyph, .aether-header.gh3 .aether-power .ap-glyph svg{ width:11px !important; height:11px !important; }
.aether-header.gh3 .aether-power[aria-checked="false"]{ background:linear-gradient(180deg, #3a4458, #2a3244) !important; color:#c9d3e0 !important; box-shadow:0 0 0 2px rgba(15,21,33,.95) !important; }
@media (max-width:820px){
  .aether-header.gh3 .voice-orb{ border-radius:10px !important; }
  .aether-header.gh3 .aether-power{ top:-5px !important; right:-5px !important; width:18px !important; height:18px !important; }
  .aether-header.gh3 .aether-power .ap-glyph, .aether-header.gh3 .aether-power .ap-glyph svg{ width:10px !important; height:10px !important; }
  .aether-header.gh3 .gh-aether{ margin-right:4px; }
  .aether-header.gh3 .gh-balance .chip-id{ font-size:10.5px; }
  .aether-header.gh3 #balance-chip{ max-width:58vw; }
}
@media (max-width:820px){
  /* a hard line break after the Aether control: row 1 = brand + Aether, row 2 = account chip + nav */
  .aether-header.gh3::after{ content:"" !important; display:block !important; flex-basis:100% !important; width:100%; height:0 !important; order:3; margin:0 !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; position:static !important; }
  .aether-header.gh3 .gh-live{ order:4; flex:0 0 auto; max-width:60vw; }
  .aether-header.gh3 .gh-nav{ order:5; flex:1 1 auto; min-width:0; width:auto; }
  .aether-header.gh3 #balance-chip{ max-width:100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j29 — PLATFORM HEADER v4 — the reference's form: ONE row, always.
   [logo box][Skilli Godmind] …………… [Aether square] Home  Analyzer  G Mind  Admin
   Near-black bar with a faint warm floor, like the picture. Nothing else.
   ═══════════════════════════════════════════════════════════════════════════ */
.aether-header.gh4{
  --g-text:#e8e4dc; --g-dim:#a39d94; --g-brand:#f5b544; --g-ok:#34d399;
  position:fixed !important; top:0 !important; left:0 !important; right:0 !important; z-index:40;
  margin:0 !important; padding:0 22px !important; height:66px; box-sizing:border-box;
  display:flex !important; align-items:center; gap:14px; flex-wrap:nowrap !important;
  background:linear-gradient(180deg, #121113 0%, #100e10 70%, #17110e 100%) !important;
  border:0 !important; border-bottom:1px solid rgba(255,255,255,.06) !important; border-radius:0 !important;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 8px 24px -18px rgba(0,0,0,.9) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important; overflow:visible;
}
.aether-header.gh4::before, .aether-header.gh4::after{ content:none !important; display:none !important; }
.aether-header.gh4 [hidden]{ display:none !important; }
/* brand */
.aether-header.gh4 .gh-brand{ display:inline-flex; align-items:center; gap:14px; text-decoration:none; color:inherit; min-width:0; flex:0 1 auto; }
.aether-header.gh4 .gh-logo{
  width:50px; height:50px; border-radius:14px; display:grid; place-items:center; flex:none;
  background:linear-gradient(180deg, #23252b, #141518); border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), inset 0 -8px 14px -10px rgba(0,0,0,.8), 0 6px 16px -10px rgba(0,0,0,.9);
}
.aether-header.gh4 .gh-logo svg{ width:26px; height:26px; display:block; filter:drop-shadow(0 0 8px rgba(255,170,60,.5)); }
.aether-header.gh4 .gh-name{ font:700 21px/1 var(--font-display); letter-spacing:.005em; color:var(--g-brand); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* the account chip — the number, the balance */
.aether-header.gh4 .gh-balance{
  display:inline-flex; align-items:center; gap:9px; height:40px; padding:0 13px; border-radius:11px; cursor:pointer; flex:0 1 auto; min-width:0;
  background:#1a191c !important; border:1px solid rgba(255,255,255,.09) !important; color:var(--g-text) !important;
  font:600 13px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; box-shadow:none !important; transform:none !important; margin:0;
}
.aether-header.gh4 .gh-balance:hover{ background:#211f23 !important; }
.aether-header.gh4 .gh-balance .chip-id{ font:700 12px/1 var(--font-display); letter-spacing:.04em; color:var(--g-brand); font-variant-numeric:tabular-nums; white-space:nowrap; }
.aether-header.gh4 .gh-balance .chip-v{ font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.aether-header.gh4 .gh-balance .chip-cur{ font-size:11px; color:var(--g-dim); margin-left:-4px; }
.aether-header.gh4 .gh-balance .chip-acct, .aether-header.gh4 .gh-balance .chip-sub{ display:none !important; }
/* right cluster */
.aether-header.gh4 .gh-right{ margin-left:auto; display:flex; align-items:center; gap:22px; flex:0 0 auto; }
/* the square icon button of the reference: Aether */
.aether-header.gh4 .gh-aether{ position:relative; display:inline-flex; overflow:visible; }
.aether-header.gh4 .voice-orb{
  width:44px; height:44px; padding:0 !important; border-radius:12px !important; display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  background:linear-gradient(180deg, rgba(52,211,153,.16), rgba(52,211,153,.07)) !important; border:1px solid rgba(52,211,153,.35) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 0 18px -8px rgba(52,211,153,.7) !important; transform:none !important; animation:none !important; margin:0;
}
.aether-header.gh4 .voice-orb svg{ width:20px; height:20px; fill:var(--g-ok); }
.aether-header.gh4 .voice-orb .voice-label{ display:none !important; }
.aether-header.gh4 .voice-orb.listening{ box-shadow:inset 0 0 0 1px rgba(52,211,153,.7), 0 0 22px -6px rgba(52,211,153,.9) !important; }
.aether-header.gh4 .voice-orb.aether-muted{ opacity:1 !important; filter:none !important; background:#1a191c !important; border-color:rgba(255,255,255,.09) !important; box-shadow:none !important; }
.aether-header.gh4 .voice-orb.aether-muted svg{ fill:var(--g-dim); }
.aether-header.gh4 .aether-power{
  position:absolute !important; top:-6px !important; right:-6px !important; width:20px !important; height:20px !important; min-height:0 !important; padding:0 !important; z-index:2;
  border-radius:50% !important; display:inline-flex !important; align-items:center; justify-content:center; cursor:pointer;
  background:radial-gradient(circle at 50% 35%, #34d399, #15956a) !important; border:1px solid rgba(255,255,255,.25) !important; color:#04140c !important;
  box-shadow:0 0 0 2px #100e10, 0 0 10px rgba(52,211,153,.7) !important; transform:none !important;
}
.aether-header.gh4 .aether-power .ap-glyph, .aether-header.gh4 .aether-power .ap-glyph svg{ width:11px !important; height:11px !important; }
.aether-header.gh4 .aether-power[aria-checked="false"]{ background:linear-gradient(180deg, #3a3a40, #26262b) !important; color:#c9c4bc !important; box-shadow:0 0 0 2px #100e10 !important; }
/* connection state — one quiet dot + word */
.aether-header.gh4 #connection-chip{ display:inline-flex; align-items:center; gap:7px; height:auto; padding:0; background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--g-dim) !important; font:500 13px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; }
.aether-header.gh4 #connection-chip .chip-dot{ width:7px; height:7px; border-radius:50%; background:#5b5b63; box-shadow:none; }
.aether-header.gh4 #connection-chip.chip-online .chip-dot{ background:var(--g-ok); box-shadow:0 0 8px var(--g-ok); }
.aether-header.gh4 #connection-chip.chip-connecting .chip-dot{ background:var(--g-brand); animation:ghPulse 1.2s ease-in-out infinite; }
.aether-header.gh4 #connection-chip .chip-text{ font-size:13px; font-weight:500; color:var(--g-dim); letter-spacing:0; text-transform:none; }
/* nav — plain words, the reference's spacing */
.aether-header.gh4 .gh-nav{ display:flex; align-items:center; gap:26px; }
.aether-header.gh4 .gh-link{ display:inline-flex; align-items:center; height:44px; padding:0; border:0; background:transparent; cursor:pointer; text-decoration:none; color:var(--g-text); font:500 17px/1 var(--font-body, inherit); letter-spacing:0; white-space:nowrap; appearance:none; transition:color .18s ease; }
.aether-header.gh4 .gh-link:hover{ color:#fff; }
.aether-header.gh4 .gh-link.is-here{ color:#fff; }
.aether-header.gh4 .at-open-btn.gh-link{ height:44px !important; padding:0 !important; border-radius:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--g-text) !important; font:500 17px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; transform:none !important; filter:none !important; min-height:0; }
.aether-header.gh4 .at-open-btn.gh-link .ao-t{ display:inline !important; } .aether-header.gh4 .at-open-btn.gh-link .ao-i{ display:none !important; }
.aether-header.gh4 .at-open-btn.gh-link:hover, .aether-header.gh4 .at-open-btn.gh-link.active{ color:#fff !important; }
.aether-header.gh4 .gh-link:focus-visible, .aether-header.gh4 .voice-orb:focus-visible, .aether-header.gh4 .gh-balance:focus-visible{ outline:2px solid rgba(245,181,68,.7); outline-offset:3px; border-radius:6px; }
body.gm-at-active .aether-header.gh4{ background:linear-gradient(180deg, #121113 0%, #100e10 70%, #17110e 100%) !important; }
body.gm-at-active #aether-ctl.gh-aether{ display:inline-flex !important; }
/* phones and narrow tablets: STILL one row — the words shrink, never the shape */
@media (max-width:900px){
  .aether-header.gh4{ padding:0 12px !important; height:58px; gap:10px; }
  .aether-header.gh4 .gh-logo{ width:40px; height:40px; border-radius:12px; }
  .aether-header.gh4 .gh-logo svg{ width:21px; height:21px; }
  .aether-header.gh4 .gh-name{ font-size:17px; }
  .aether-header.gh4 .gh-right{ gap:12px; }
  .aether-header.gh4 .voice-orb{ width:38px; height:38px; border-radius:11px !important; }
  .aether-header.gh4 .voice-orb svg{ width:17px; height:17px; }
  .aether-header.gh4 .aether-power{ width:18px !important; height:18px !important; top:-5px !important; right:-5px !important; }
  .aether-header.gh4 .aether-power .ap-glyph, .aether-header.gh4 .aether-power .ap-glyph svg{ width:10px !important; height:10px !important; }
  .aether-header.gh4 #connection-chip .chip-text{ display:none; }
  .aether-header.gh4 .gh-nav{ gap:14px; }
  .aether-header.gh4 .gh-link, .aether-header.gh4 .at-open-btn.gh-link{ font-size:14px !important; height:38px !important; }
  .aether-header.gh4 .gh-balance{ height:36px; padding:0 10px; gap:7px; }
  .aether-header.gh4 .gh-balance .chip-id{ font-size:11px; }
  .aether-header.gh4 .gh-balance .chip-v{ font-size:12px; }
  .aether-header.gh4 .gh-balance .chip-cur{ display:none; }
}
/* below ~600px the brand name yields to the account chip once connected; below ~420px Home yields to the logo */
@media (max-width:600px){
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-name{ display:none; }
  .aether-header.gh4 .gh-brand{ gap:8px; }
}
@media (max-width:420px){
  .aether-header.gh4 .gh-nav .gh-link[href="/"]{ display:none; }
  .aether-header.gh4 .gh-right{ gap:10px; }
  .aether-header.gh4 .gh-nav{ gap:11px; }
  .aether-header.gh4 .gh-link, .aether-header.gh4 .at-open-btn.gh-link{ font-size:13.5px !important; }
  .aether-header.gh4 #connection-chip{ display:none; }
  .aether-header.gh4 .gh-balance{ padding:0 8px; gap:6px; }
}
@media (max-width:350px){
  .aether-header.gh4 .gh-name{ display:none; }
}
/* the account chip never truncates its figure; below 700px, once connected, the logo is Home */
.aether-header.gh4 .gh-balance{ flex:0 0 auto !important; overflow:visible; }
@media (max-width:700px){
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-nav .gh-link[href="/"]{ display:none; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-nav{ gap:12px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) #connection-chip{ display:none; }
}
@media (max-width:420px){
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance{ padding:0 7px; gap:5px; height:34px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance .chip-id{ font-size:10px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance .chip-v{ font-size:11.5px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-nav{ gap:9px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-link, .aether-header.gh4:has(#balance-chip:not([hidden])) .at-open-btn.gh-link{ font-size:13px !important; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-right{ gap:8px; }
  .aether-header.gh4{ gap:8px; }
}
.aether-header.gh4 .gh-brand{ flex:0 0 auto !important; }
.aether-header.gh4 .gh-right{ flex:0 1 auto; min-width:0; }
.aether-header.gh4 .gh-nav{ min-width:0; overflow-x:auto; scrollbar-width:none; }
.aether-header.gh4 .gh-nav::-webkit-scrollbar{ display:none; }
@media (max-width:420px){
  .aether-header.gh4:has(#balance-chip:not([hidden])){ padding:0 8px !important; gap:6px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-logo{ width:36px; height:36px; border-radius:10px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) #session-admin-link{ display:none !important; }   /* the admin console is one tap from Home */
}
/* the G Mind desk keeps the whole bar: Aether, the account chip and the status stay usable */
body.gm-at-active .aether-header.gh4 #aether-ctl.gh-aether, body.gm-at-active .aether-header.gh4 #balance-chip:not([hidden]), body.gm-at-active .aether-header.gh4 #connection-chip{ display:inline-flex !important; }
body.gm-at-active .aether-header.gh4 .at-open-btn.gh-link{ padding:0 !important; border-radius:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
/* j31 — the chip says "Live account" (same words for demo and real), then the balance */
.aether-header.gh4 .gh-balance .chip-id{ font:600 12px/1 var(--font-body, inherit); letter-spacing:0; color:var(--g-dim); text-transform:none; }
@media (max-width:420px){ .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance .chip-id{ font-size:11px; } }

/* ═══ j32 — Trade History pills: All = blue · Wins = green · Losses = red when selected ═══ */
#journal-section.th .th-filter[data-journal-filter="wins"].is-active{ background:linear-gradient(160deg, rgba(61,220,132,.34), rgba(34,160,94,.22)) !important; border-color:rgba(110,240,170,.7) !important; color:#eafff3 !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 18px -8px rgba(61,220,132,.9) !important; }
#journal-section.th .th-filter[data-journal-filter="losses"].is-active{ background:linear-gradient(160deg, rgba(255,92,108,.34), rgba(190,50,66,.22)) !important; border-color:rgba(255,140,150,.7) !important; color:#fff0f2 !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 18px -8px rgba(255,92,108,.9) !important; }
#journal-section.th .th-filter[data-journal-filter="wins"] i{ color:var(--th-green); }
#journal-section.th .th-filter[data-journal-filter="losses"] i{ color:var(--th-red); }
#journal-section.th .th-filter[data-journal-filter="all"] i{ color:var(--th-blue); }
#journal-section.th .th-filter.is-active i{ color:inherit; }
/* ⚠ the legacy .header-actions rules wrap the right cluster on phones — the nav then spilled
   out UNDER the bar. One row, never wrapping: the nav scrolls sideways if it must. */
.aether-header.gh4 .gh-right, .aether-header.gh4 .header-actions{ flex-wrap:nowrap !important; flex-direction:row !important; width:auto !important; margin-left:auto !important; justify-content:flex-end; align-items:center !important; }
.aether-header.gh4 .gh-nav{ flex:0 1 auto !important; min-width:0; overflow-x:auto; overflow-y:hidden; white-space:nowrap; }
.aether-header.gh4{ overflow:hidden !important; }
.aether-header.gh4 .gh-aether{ overflow:visible; }
@media (max-width:380px){
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance .chip-v{ font-size:11px; }
  .aether-header.gh4:has(#balance-chip:not([hidden])) .gh-balance .chip-id{ font-size:10.5px; }
  .aether-header.gh4 .gh-right{ gap:8px; }
}
@media (max-width:400px){ .aether-header.gh4 .gh-name{ display:none; } .aether-header.gh4 .gh-brand{ gap:0; } }

/* ═══ j33 — Logout (red) back in the bar ═══ */
.aether-header.gh4 .gh-link.gh-logout{ display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 13px; border-radius:11px; color:#ff8d99 !important; background:linear-gradient(180deg, rgba(255,92,108,.20), rgba(255,92,108,.10)) !important; border:1px solid rgba(255,92,108,.55) !important; font:600 15px/1 var(--font-body, inherit) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.08) !important; }
.aether-header.gh4 .gh-link.gh-logout:hover{ color:#fff !important; background:linear-gradient(180deg, rgba(255,92,108,.34), rgba(255,92,108,.18)) !important; }
.aether-header.gh4 .gh-link.gh-logout svg{ width:16px; height:16px; }
@media (max-width:900px){
  .aether-header.gh4 .gh-link.gh-logout{ height:36px; padding:0 10px; font-size:14px !important; }
}
@media (max-width:520px){
  .aether-header.gh4 .gh-link.gh-logout span{ display:none; }
  .aether-header.gh4 .gh-link.gh-logout{ width:36px; padding:0 !important; justify-content:center; }
}
/* with Logout back, the bar needs its room: the logo is Home ≤700px, and ≤560px the brand is the logo alone */
@media (max-width:700px){ .aether-header.gh4 .gh-nav .gh-link[href="/"]{ display:none; } .aether-header.gh4 .gh-nav{ gap:14px; } }
@media (max-width:560px){ .aether-header.gh4 .gh-name{ display:none; } .aether-header.gh4 .gh-brand{ gap:0; } }


/* ═══════════════════════════════════════════════════════════════════════════
   j34 — VERTICAL LAYOUT (phone) audit fixes
   ═══════════════════════════════════════════════════════════════════════════ */
/* the switch status line wraps instead of being cut ("OFF · SWITCH ON TO OPE…") */
#view-console .orb-gallery.tts-board .tts-st{ align-items:flex-start; }
#view-console .orb-gallery.tts-board .tts-st em{ margin-top:3px; }
#view-console .orb-gallery.tts-board .tts-st > span{ white-space:normal; overflow:visible; text-overflow:clip; line-height:1.35; min-width:0; }
/* stake fields that sit inside a "$ / USD" wrapper: the wrapper is the box — the glass theme
   was painting a second box (background + border + inset shadow) on the input inside it */
#view-console .ldp-inp input[type="number"], .analyzer.glass .ldp-inp input, .glass .ldp-inp :where(input),
#view-console .acc-stake input[type="number"], .analyzer.glass .acc-stake input, .glass .acc-stake :where(input){
  background:none !important; border:0 !important; box-shadow:none !important; border-radius:0 !important;
}
/* hero: on the narrowest phones the third metric no longer sits alone in a 2-column row */
@media (max-width:380px){
  .hero-metrics .metric:nth-child(3):last-child{ grid-column:1 / -1; }
}
/* Only God Hybrid: the market name ("Volatility 100 (1s) Index") was cut to "Volatility 1…" in a
   half-width column — the market column takes the larger share; on phones the two stack and the
   selects fill their row like every other desk's */
.analyzer[data-analyzer="streak"] .hyb-row2:has(#hyb-market){ grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); }
@media (max-width:600px){
  .analyzer[data-analyzer="streak"] .hyb-row2:has(#hyb-market){ grid-template-columns:1fr; }
  .analyzer[data-analyzer="streak"] .hyb-row2:has(#hyb-market) .hyb-fld .gm-sel-wrap,
  .analyzer[data-analyzer="streak"] .hyb-row2:has(#hyb-market) .hyb-fld .gm-sel-btn{ width:100%; }
}
@media (max-width:480px){
  /* G Pro: EVEN · ODD · ⚡ AUTO PICK stay one line each */
  .analyzer[data-analyzer="even_odd"] .g1-mode{ white-space:nowrap; padding:0 4px; font-size:11px; letter-spacing:.02em; }
}
/* twin cockpit (≥760px, body.gm-dual): the switchboard sits in the ~240px left deck, where a
   minmax(250px,1fr) column overflowed the panel by 36px — the column can never exceed the deck */
#view-console .orb-gallery.tts-board .orbs.tts-grid{ grid-template-columns:repeat(auto-fit, minmax(min(250px, 100%), 1fr)) !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   j37 — G MIND, built to the user's reference mockups (and Deriv's own Automate
   page underneath it): deep navy ground, softly-lit cards on a 20px radius,
   the market card with its live dot, the big live price with the last digit in
   teal, the five trade types as a strip, teal side pills, the digit row,
   Duration / Initial stake, Strategy parameters, Risk management, the gradient
   Run pill, the session stats and that trade type's own Recent Trades.
   Everything is keyed on `.atv.dv`, so the older .atv* rules never reach it.
   ═══════════════════════════════════════════════════════════════════════════ */
.gm-at-sec .atv.dv{
  --d-bg:#0A0F17; --d-card:#141B26; --d-card2:#101722; --d-in:#0E141D;
  --d-line:rgba(255,255,255,.06); --d-line2:rgba(255,255,255,.10);
  --d-txt:#F2F6FA; --d-mut:rgba(233,240,248,.56); --d-dim:rgba(233,240,248,.38);
  --d-teal:#1FD1AC; --d-teal2:#25C08E; --d-indigo:#5B5BF5; --d-red:#FF5470; --d-amber:#FFB147;
  max-width:620px; margin:0 auto; padding:0 0 42px; background:transparent; color:var(--d-txt);
  font-family:var(--font-body, "Inter", system-ui), sans-serif; font-size:15px; -webkit-font-smoothing:antialiased;
}
/* ⚠ position:fixed is NOT safe here (a transformed ancestor traps it): the desk takes an
   explicit viewport-height box and owns its own scroll instead. */
body.gm-at-active{ overflow:hidden !important; }
body.gm-at-active .aether-main{ padding:0 !important; gap:0 !important; }
body.gm-at-active .gm-at-sec{
  height:calc(100vh - var(--gh-h,58px)); max-height:calc(100vh - var(--gh-h,58px));
  overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  margin:0 !important; padding:0 !important;
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(31,209,172,.07), transparent 60%),
    radial-gradient(90% 50% at 100% 100%, rgba(91,91,245,.06), transparent 62%),
    #0A0F17;
}
/* ── top bar ── */
.atv.dv .dv-top{
  position:sticky; top:0; z-index:8; display:flex; align-items:center; gap:10px; height:60px; padding:0 10px;
  background:rgba(10,15,23,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--d-line);
}
.atv.dv .dv-back{ width:40px; height:40px; flex:none; display:grid; place-items:center; padding:0; cursor:pointer;
  background:transparent; border:0; border-radius:12px; color:var(--d-txt); }
.atv.dv .dv-back svg{ width:22px; height:22px; }
.atv.dv .dv-back:active{ background:rgba(255,255,255,.08); }
.atv.dv .dv-top-t{ font-size:17px; font-weight:700; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.atv.dv .dv-top-r{ margin-left:auto; padding-right:8px; font-size:12.5px; color:var(--d-dim); }
.atv.dv .dv-top-r.on{ color:var(--d-teal); font-weight:700; }
.atv.dv .dv-body{ display:flex; flex-direction:column; gap:12px; padding:14px 12px 0; }
/* ── the cards ── */
.atv.dv .dv-card, .atv.dv .dv-panel, .atv.dv .dv-mkt, .atv.dv .dv-price, .atv.dv .dv-types, .atv.dv .dv-sides{
  background:var(--d-card); border:1px solid var(--d-line); border-radius:20px;
  box-shadow:0 18px 40px -34px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.03);
}
.atv.dv .dv-panel{ padding:16px 14px; display:flex; flex-direction:column; gap:10px; margin:0; }
.atv.dv .dv-panel > h4{ margin:0 0 2px; font-size:17px; font-weight:700; color:var(--d-txt); letter-spacing:-.01em; }
.atv.dv .dv-panel-h{ display:flex; align-items:center; gap:10px; }
.atv.dv .dv-panel-h h4{ margin:0; font-size:17px; font-weight:700; color:var(--d-txt); letter-spacing:-.01em; }
.atv.dv .dv-panel-h span{ margin-left:auto; font-size:12.5px; color:var(--d-dim); }
.atv.dv .dv-note{ margin:2px 2px 0; font-size:12.5px; line-height:1.55; color:var(--d-dim); }
/* ── market card ── */
.atv.dv .dv-mkt{ display:flex; align-items:center; gap:14px; padding:16px 18px; }
.atv.dv .dv-mkt-ic{ width:30px; height:30px; flex:none; display:grid; place-items:center; color:var(--d-teal); }
.atv.dv .dv-mkt-ic svg{ width:26px; height:26px; }
.atv.dv .dv-mkt-t{ min-width:0; flex:1; display:block; cursor:pointer; }
.atv.dv .dv-mkt-t > u{ display:block; text-decoration:none; font-size:14px; color:var(--d-mut); margin-bottom:2px; }
.atv.dv .dv-mkt-v{ display:flex; align-items:center; gap:9px; min-width:0; }
.atv.dv .dv-dot{ width:9px; height:9px; flex:none; border-radius:50%; background:rgba(255,255,255,.2); }
.atv.dv .dv-dot.on{ background:#2ED47A; box-shadow:0 0 10px rgba(46,212,122,.8); animation:dvPulse 1.8s ease-in-out infinite; }
@keyframes dvPulse{ 0%,100%{ opacity:1 } 50%{ opacity:.4 } }
.atv.dv .dv-mkt-r{ margin-left:auto; display:flex; align-items:center; gap:8px; flex:none; color:var(--d-mut); }
.atv.dv .dv-mkt-r em{ font-style:normal; font-size:15px; font-weight:600; color:#FF7A8A; font-variant-numeric:tabular-nums; }
/* ── the live price ── */
.atv.dv .dv-price{ padding:26px 18px 20px; text-align:center; }
.atv.dv .dv-price b{ display:block; font-size:clamp(34px,10vw,46px); font-weight:800; letter-spacing:-.02em; line-height:1.05; font-variant-numeric:tabular-nums; }
.atv.dv .dv-price b i{ font-style:normal; color:var(--d-teal); text-shadow:0 0 26px rgba(31,209,172,.45); }
.atv.dv .dv-price u{ display:block; margin-top:8px; text-decoration:none; font-size:14px; color:var(--d-dim); }
/* ── the five trade types ── */
.atv.dv .dv-types{ display:flex; gap:4px; padding:8px; overflow-x:auto; scrollbar-width:none; }
.atv.dv .dv-types::-webkit-scrollbar{ display:none; }
.atv.dv .dv-type{
  position:relative; flex:1 0 auto; min-width:92px; display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:12px 10px; border-radius:16px; cursor:pointer; background:transparent; border:0;
  color:var(--d-mut); font:inherit; font-size:13.5px; font-weight:600; white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.atv.dv .dv-type-ic{ display:grid; place-items:center; height:22px; }
.atv.dv .dv-type-ic svg{ width:21px; height:21px; }
.atv.dv .dv-type.is-on{ background:var(--d-indigo); color:#fff; box-shadow:0 12px 26px -16px rgba(91,91,245,.95); }
.atv.dv .dv-type.is-on .dv-type-ic{ display:none; }
.atv.dv .dv-type.is-on .dv-type-n{ font-size:15px; font-weight:700; }
.atv.dv .dv-type-live{ position:absolute; top:8px; right:10px; width:7px; height:7px; border-radius:50%; background:#2ED47A; box-shadow:0 0 8px rgba(46,212,122,.9); }
/* ── side pills ── */
.atv.dv .dv-sides{ display:flex; gap:6px; padding:8px; }
.atv.dv .dv-side{
  flex:1; min-width:0; height:58px; border:0; border-radius:15px; cursor:pointer; background:transparent;
  font:inherit; font-size:18px; font-weight:700; color:var(--d-txt); transition:background .2s ease, color .2s ease;
}
.atv.dv .dv-side.on{ background:var(--d-teal); color:#052019; box-shadow:0 14px 30px -18px rgba(31,209,172,.95); }
/* ── digit row ── */
.atv.dv .dv-digcard{ padding:14px; display:flex; flex-direction:column; gap:12px; }
.atv.dv .dv-card-l{ text-decoration:none; font-size:14px; color:var(--d-mut); }
.atv.dv .dv-digrow{ display:flex; gap:6px; }
.atv.dv .dv-dig{
  flex:1; min-width:0; height:46px; border-radius:12px; cursor:pointer; font:inherit; font-size:16px; font-weight:700;
  background:var(--d-in); border:1px solid var(--d-line); color:var(--d-txt); padding:0;
}
.atv.dv .dv-dig.on{ background:var(--d-teal); border-color:var(--d-teal); color:#052019; box-shadow:0 0 22px -8px rgba(31,209,172,.9); }
.atv.dv .dv-dig.ai{ border-color:rgba(31,209,172,.55); color:var(--d-teal); }
/* ── fields ── */
.atv.dv .dv-f{
  display:flex; flex-direction:column; justify-content:center; gap:4px; min-height:74px; padding:12px 18px; cursor:text;
  background:var(--d-card); border:1px solid var(--d-line); border-radius:18px;
}
.atv.dv .dv-panel .dv-f{ background:var(--d-card2); }
.atv.dv .dv-f:focus-within{ border-color:rgba(31,209,172,.5); }
.atv.dv .dv-f > u{ text-decoration:none; font-size:14px; line-height:1.2; color:var(--d-mut); }
.atv.dv .dv-f-in{ display:flex; align-items:center; gap:10px; }
.atv.dv .dv-f input, .atv.dv .dv-f select{
  flex:1; min-width:0; width:100%; height:28px; padding:0; margin:0; appearance:none; -webkit-appearance:none;
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; outline:none;
  font:inherit; font-size:21px; font-weight:700; color:var(--d-txt) !important; letter-spacing:-.01em;
}
.atv.dv .dv-f select{ cursor:pointer; }
.atv.dv .dv-f select option, .atv.dv .dv-mkt select option{ background:#141B26; color:#fff; font-weight:400; }
.atv.dv .dv-f-u{ font-style:normal; flex:none; font-size:15px; font-weight:500; color:var(--d-mut); }
.atv.dv .dv-chev{ width:16px; height:16px; flex:none; color:var(--d-mut); }
/* the platform turns every <select> into gmCustomSelect — inside these cards that
   button IS the value line (no pill, no second chevron) */
.atv.dv .gm-sel-wrap{ display:block; width:100%; min-width:0; }
.atv.dv .gm-sel-btn{
  width:100%; min-height:0; height:28px; padding:0 !important; margin:0; text-align:left; cursor:pointer;
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
  font:inherit !important; font-size:21px !important; font-weight:700 !important; color:var(--d-txt) !important;
  letter-spacing:-.01em !important; text-transform:none !important;
}
.atv.dv .gm-sel-val{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.atv.dv .gm-sel-chev{ display:none !important; }
.atv.dv .dv-mkt .gm-sel-btn{ font-size:19px !important; }
/* ── toggles ── */
.atv.dv .dv-tog{
  display:flex; align-items:center; gap:14px; width:100%; min-height:66px; padding:12px 18px; cursor:pointer; text-align:left;
  background:var(--d-card); border:1px solid var(--d-line); border-radius:18px; color:var(--d-txt); font:inherit;
}
.atv.dv .dv-panel .dv-tog, .atv.dv .dv-digcard .dv-tog{ background:var(--d-card2); }
.atv.dv .dv-tog-t{ min-width:0; }
.atv.dv .dv-tog-t b{ display:block; font-size:15px; font-weight:700; }
.atv.dv .dv-tog-t i{ display:block; font-style:normal; font-size:12.5px; line-height:1.45; color:var(--d-dim); margin-top:3px; }
.atv.dv .dv-sw{ margin-left:auto; flex:none; width:52px; height:30px; border-radius:99px; background:rgba(255,255,255,.16); position:relative; transition:background .2s ease; }
.atv.dv .dv-sw > i{ position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%; background:#fff; transition:transform .2s ease; }
.atv.dv .dv-tog.on .dv-sw{ background:var(--d-teal); }
.atv.dv .dv-tog.on .dv-sw > i{ transform:translateX(22px); }
/* ── the best-market strip ── */
.atv.dv .dv-best{ padding:14px 18px; border-radius:16px; background:var(--d-card2); border:1px solid var(--d-line);
  font-size:13px; line-height:1.5; color:var(--d-mut); text-align:center; }
.atv.dv .dv-best b{ color:var(--d-txt); }
.atv.dv .dv-best em{ font-style:normal; color:var(--d-dim); }
/* ── session stats ── */
.atv.dv .dv-statc{ padding:18px 14px 16px; }
.atv.dv .dv-stat-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.atv.dv .dv-stat{ text-align:center; min-width:0; }
.atv.dv .dv-stat u{ display:block; text-decoration:none; font-size:13.5px; color:var(--d-mut); margin-bottom:8px; }
.atv.dv .dv-stat b{ display:block; font-size:24px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.atv.dv .dv-stat b.pos{ color:var(--d-teal); } .atv.dv .dv-stat b.neg{ color:var(--d-red); }
.atv.dv .dv-stat-foot{ display:flex; flex-direction:column; align-items:center; gap:4px; margin-top:14px; }
.atv.dv .dv-state{ font-size:15px; color:var(--d-mut); }
.atv.dv .dv-state.running{ color:var(--d-teal); font-weight:700; }
.atv.dv .dv-state.paused{ color:var(--d-amber); font-weight:700; }
.atv.dv .dv-stat-sub{ font-size:12.5px; color:var(--d-dim); }
/* ── Run ── */
.atv.dv .dv-runrow{ position:sticky; bottom:0; z-index:6; display:flex; gap:10px; padding:10px 0 16px;
  background:linear-gradient(180deg, rgba(10,15,23,0), #0A0F17 42%); }
.atv.dv .dv-run{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:12px; height:62px; cursor:pointer;
  border:0; border-radius:18px; color:#03211A; font:inherit; font-size:20px; font-weight:800; letter-spacing:-.01em;
  background:linear-gradient(97deg, #1FD1AC 0%, #2ED47A 100%);
  box-shadow:0 20px 40px -22px rgba(31,209,172,.95), inset 0 1px 0 rgba(255,255,255,.25);
}
.atv.dv .dv-run svg{ width:24px; height:24px; }
.atv.dv .dv-run.stop{ background:linear-gradient(97deg,#FF5470,#E23A5B); color:#fff; box-shadow:0 20px 40px -22px rgba(255,84,112,.9); }
.atv.dv .dv-run:active{ transform:translateY(1px); }
.atv.dv .dv-run2{ flex:0 0 auto; padding:0 22px; height:62px; border-radius:18px; cursor:pointer; font:inherit; font-size:16px; font-weight:700;
  background:var(--d-card); border:1px solid var(--d-line2); color:var(--d-txt); }
/* ── Recent Trades ── */
.atv.dv .dv-recent{ display:flex; flex-direction:column; gap:10px; }
.atv.dv .dv-tr{ display:flex; align-items:center; gap:12px; min-height:62px; padding:10px 16px; border-radius:16px;
  background:var(--d-card2); border:1px solid var(--d-line); }
.atv.dv .dv-tr.win{ background:rgba(31,209,172,.07); border-color:rgba(31,209,172,.34); }
.atv.dv .dv-tr.loss{ background:rgba(255,84,112,.07); border-color:rgba(255,84,112,.34); }
.atv.dv .dv-tr.pend{ background:rgba(255,177,71,.07); border-color:rgba(255,177,71,.34); }
.atv.dv .dv-tr-b{ flex:none; padding:7px 12px; border-radius:9px; font-size:13px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; white-space:nowrap; background:rgba(31,209,172,.16); color:#5FE3C6; }
.atv.dv .dv-tr-s{ font-size:16px; color:var(--d-mut); font-variant-numeric:tabular-nums; }
.atv.dv .dv-tr-p{ margin-left:auto; font-size:18px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--d-mut); }
.atv.dv .dv-tr.win .dv-tr-p{ color:var(--d-teal); }
.atv.dv .dv-tr.loss .dv-tr-p{ color:var(--d-red); }
.atv.dv .dv-tr.pend .dv-tr-p{ color:var(--d-amber); font-size:14px; font-weight:600; }
.atv.dv .dv-empty{ padding:26px 16px; text-align:center; font-size:13.5px; line-height:1.6; color:var(--d-dim); }
.atv.dv .dv-clear{ margin-left:auto; padding:8px 14px; border-radius:99px; cursor:pointer; font:inherit; font-size:12.5px; font-weight:700;
  background:transparent; border:1px solid var(--d-line2); color:var(--d-mut); }
/* ── the honest recovery readout ── */
.atv.dv .atk-risk{ display:flex; flex-direction:column; gap:7px; padding:14px 16px; border-radius:16px;
  background:var(--d-card2); border:1px solid var(--d-line); }
.atv.dv .atk-risk.off{ font-size:12.5px; color:var(--d-dim); }
.atv.dv .atk-risk-row{ display:flex; align-items:baseline; gap:10px; font-size:12.5px; color:var(--d-mut); }
.atv.dv .atk-risk-row b{ margin-left:auto; text-align:right; font-size:13px; font-weight:700; color:var(--d-txt); }
.atv.dv .atk-risk-row b.neg{ color:var(--d-red); } .atv.dv .atk-risk-row b.pos{ color:var(--d-teal); }
.atv.dv .atk-risk-row em{ font-style:normal; color:var(--d-dim); }
/* ── kept panels in the same skin ── */
.atv.dv #at-live, .atv.dv #at-sessions, .atv.dv #at-settings{ display:flex; flex-direction:column; gap:10px; }
.atv.dv .atl-head, .atv.dv .atl-heat, .atv.dv .atl-stats, .atv.dv .atl-river, .atv.dv .atl-warm, .atv.dv .atv-ss{
  background:var(--d-card2); border:1px solid var(--d-line); border-radius:16px; }
.atv.dv .atl-warm{ padding:16px; font-size:13.5px; color:var(--d-mut); text-align:center; }
.atv.dv .ats-cloud{ display:flex; align-items:center; gap:9px; padding:12px 16px; border-radius:16px; font-size:12.5px;
  background:var(--d-card2); border:1px solid var(--d-line); color:var(--d-mut); }
.atv.dv .ats-cloud-dot{ width:8px; height:8px; border-radius:50%; background:var(--d-dim); flex:none; }
.atv.dv .ats-cloud.armed .ats-cloud-dot{ background:var(--d-teal); }
.atv.dv .ats-cloud.cover .ats-cloud-dot{ background:var(--d-red); }
@media (max-width:400px){
  .atv.dv .dv-body{ padding:12px 10px 0; }
  .atv.dv .dv-type{ min-width:84px; font-size:12.5px; padding:11px 8px; }
  .atv.dv .dv-type.is-on .dv-type-n{ font-size:14px; }
  .atv.dv .dv-dig{ height:42px; font-size:15px; }
  .atv.dv .dv-stat b{ font-size:21px; }
  .atv.dv .dv-f input, .atv.dv .dv-f select, .atv.dv .gm-sel-btn{ font-size:19px !important; }
}

/* ── j37b ── the market card's own <select> (before/without the gmCustomSelect upgrade)
   and the five trade types fitting one phone row ─────────────────────────────── */
.atv.dv .dv-mkt select{
  flex:1; min-width:0; width:100%; height:28px; padding:0; margin:0; appearance:none; -webkit-appearance:none;
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; outline:none;
  font:inherit; font-size:19px; font-weight:700; color:var(--d-txt) !important; letter-spacing:-.01em; cursor:pointer;
}
.atv.dv .dv-types{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; overflow:visible; }
.atv.dv .dv-type{ min-width:0; padding:11px 4px; font-size:11.5px; line-height:1.25; white-space:normal; text-align:center; }
.atv.dv .dv-type-n{ display:block; }
.atv.dv .dv-type.is-on{ box-shadow:0 12px 26px -16px rgba(91,91,245,.95); }
.atv.dv .dv-type.is-on .dv-type-ic{ display:grid; }
.atv.dv .dv-type.is-on .dv-type-n{ font-size:11.5px; font-weight:700; }
@media (min-width:470px){
  .atv.dv .dv-type{ font-size:13px; padding:13px 6px; }
  .atv.dv .dv-type.is-on .dv-type-n{ font-size:13px; }
}

/* ── j37c ── Market analysis (the kept live-digit panel) in the desk's palette ── */
.atv.dv .atl-head{ display:flex; gap:8px; padding:12px; }
.atv.dv .atl-px, .atv.dv .atl-lastbig, .atv.dv .atl-pick{ flex:1; min-width:0; padding:10px 12px; border-radius:14px;
  background:var(--d-in) !important; border:1px solid var(--d-line) !important; box-shadow:none !important; }
.atv.dv .atl-px u, .atv.dv .atl-lastbig u, .atv.dv .atl-pick u, .atv.dv .atl-stat u, .atv.dv .atl-col-p{
  display:block; text-decoration:none; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--d-dim) !important; }
.atv.dv .atl-px b, .atv.dv .atl-lastbig b, .atv.dv .atl-pick b{ display:block; margin-top:4px; font-size:19px; font-weight:800;
  color:var(--d-txt) !important; font-variant-numeric:tabular-nums; }
.atv.dv .atl-lastbig.hi b{ color:var(--d-teal) !important; } .atv.dv .atl-lastbig.lo b{ color:#7EA6FF !important; }
.atv.dv .atl-pick em{ font-style:normal; font-size:11px; color:var(--d-mut) !important; }
.atv.dv .atl-heat{ display:flex; gap:3px; align-items:flex-end; padding:12px 10px; }
.atv.dv .atl-col{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:4px; }
.atv.dv .atl-col-bar{ display:block; width:100%; min-height:6px; border-radius:6px; background:rgba(255,255,255,.14) !important; }
.atv.dv .atl-col.hot .atl-col-bar{ background:var(--d-red) !important; }
.atv.dv .atl-col.cold .atl-col-bar{ background:#7EA6FF !important; }
.atv.dv .atl-col.now .atl-col-bar{ background:var(--d-teal) !important; box-shadow:0 0 12px -2px var(--d-teal); }
.atv.dv .atl-col-d{ font-size:12px; font-weight:700; color:var(--d-txt) !important; }
.atv.dv .atl-stats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:12px; }
.atv.dv .atl-stat{ padding:10px; border-radius:12px; text-align:center; background:var(--d-in) !important; border:1px solid var(--d-line) !important; }
.atv.dv .atl-stat b{ display:block; margin-top:4px; font-size:15px; font-weight:700; color:var(--d-txt) !important; }
.atv.dv .atl-stat b.pos{ color:var(--d-teal) !important; } .atv.dv .atl-stat b.neg{ color:var(--d-red) !important; }
.atv.dv .atl-river{ display:flex; flex-wrap:wrap; gap:4px; padding:12px; }
.atv.dv .atl-river i{ width:22px; height:22px; display:grid; place-items:center; border-radius:7px; font-style:normal;
  font-size:11.5px; font-weight:700; background:rgba(255,255,255,.06) !important; color:var(--d-mut) !important; }
.atv.dv .atl-river i.hi{ color:var(--d-teal) !important; } .atv.dv .atl-river i.lo{ color:#7EA6FF !important; }
.atv.dv .atl-river i.now{ background:var(--d-teal) !important; color:#052019 !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   j38 — the desk's third pass, to the user's reference: the LIVE CONTRACT strip,
   one "<Type> settings" card (segmented growth / strategy chips, sliders, a 2-up
   stake+risk grid), Run · Pause · Stop, the status line, six stat tiles and a
   trade history that only exists once that trade type has fired.
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── live contract ── */
.atv.dv .dv-livec{
  padding:14px 16px 16px; border-radius:18px; background:linear-gradient(180deg, rgba(255,177,71,.10), rgba(255,177,71,.03));
  border:1px solid rgba(255,177,71,.34); box-shadow:0 18px 40px -34px rgba(0,0,0,.9);
}
.atv.dv .dv-livec-h{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.atv.dv .dv-livec-t{ font-size:14px; font-weight:700; color:var(--d-amber); }
.atv.dv .dv-livec-t::before{ content:"⏱ "; }
.atv.dv .dv-livec-k{ margin-left:auto; font-size:13px; color:var(--d-mut); font-variant-numeric:tabular-nums; }
.atv.dv .dv-livec-k b{ color:var(--d-txt); font-size:14px; }
.atv.dv .dv-livec-v{ font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--d-mut); }
.atv.dv .dv-livec-v.pos{ color:var(--d-teal); } .atv.dv .dv-livec-v.neg{ color:var(--d-red); }
.atv.dv .dv-livec-bar{ height:8px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.atv.dv .dv-livec-bar > i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#FFB147,#FF7A3C);
  box-shadow:0 0 16px -2px rgba(255,140,60,.8); transition:width .3s linear; }
/* ── the settings card ── */
.atv.dv .dv-setc .dv-panel-h{ gap:10px; margin-bottom:4px; }
.atv.dv .dv-setc-ic{ width:22px; height:22px; display:grid; place-items:center; color:var(--d-teal); }
.atv.dv .dv-setc-ic svg{ width:20px; height:20px; }
.atv.dv .dv-fld{ display:flex; flex-direction:column; gap:8px; }
.atv.dv .dv-fld > u{ text-decoration:none; font-size:14px; color:var(--d-mut); }
/* segmented chips */
.atv.dv .dv-chips{ display:flex; gap:6px; padding:5px; border-radius:15px; background:var(--d-in); border:1px solid var(--d-line);
  overflow-x:auto; scrollbar-width:none; }
.atv.dv .dv-chips::-webkit-scrollbar{ display:none; }
.atv.dv .dv-chip{
  flex:1 0 auto; min-width:0; height:42px; padding:0 14px; border:0; border-radius:11px; cursor:pointer; white-space:nowrap;
  background:transparent; color:var(--d-mut); font:inherit; font-size:13.5px; font-weight:700; transition:background .18s ease, color .18s ease;
}
.atv.dv .dv-chip.on{ background:var(--d-teal); color:#052019; box-shadow:0 10px 22px -14px rgba(31,209,172,.95); }
.atv.dv .dv-chips.gold .dv-chip.on{ background:linear-gradient(180deg,#F0B542,#D99A24); color:#24160A; box-shadow:0 10px 22px -14px rgba(240,181,66,.95); }
/* sliders */
.atv.dv .dv-slide{ display:flex; flex-direction:column; gap:8px; padding:14px 16px; border-radius:18px;
  background:var(--d-card2); border:1px solid var(--d-line); }
.atv.dv .dv-slide-h{ display:flex; align-items:baseline; gap:10px; }
.atv.dv .dv-slide-h u{ text-decoration:none; font-size:14px; color:var(--d-mut); }
.atv.dv .dv-slide-h b{ margin-left:auto; font-size:17px; font-weight:800; color:var(--d-teal); font-variant-numeric:tabular-nums; }
.atv.dv .dv-slide input[type="range"]{
  width:100%; height:26px; margin:0; padding:0; background:transparent !important; border:0 !important; box-shadow:none !important;
  -webkit-appearance:none; appearance:none; cursor:pointer;
}
.atv.dv .dv-slide input[type="range"]::-webkit-slider-runnable-track{ height:6px; border-radius:99px; background:rgba(255,255,255,.14); }
.atv.dv .dv-slide input[type="range"]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:24px; height:24px; margin-top:-9px;
  border-radius:50%; background:#fff; border:0; box-shadow:0 4px 12px -4px rgba(0,0,0,.9); }
.atv.dv .dv-slide input[type="range"]::-moz-range-track{ height:6px; border-radius:99px; background:rgba(255,255,255,.14); }
.atv.dv .dv-slide input[type="range"]::-moz-range-thumb{ width:24px; height:24px; border:0; border-radius:50%; background:#fff; }
.atv.dv .dv-slide-n{ font-style:normal; font-size:12px; line-height:1.5; color:var(--d-dim); }
.atv.dv .dv-fld .dv-slide-n{ margin-top:-2px; }
/* the 2-up stake / risk grid */
.atv.dv .dv-2up{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.atv.dv .dv-2up .dv-f{ min-height:82px; padding:12px 14px; border-radius:16px; }
.atv.dv .dv-2up .dv-f input{ font-size:19px; }
/* ── status line ── */
.atv.dv .dv-status{ display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:16px;
  background:var(--d-card2); border:1px solid var(--d-line); font-size:13px; line-height:1.45; color:var(--d-mut); }
.atv.dv .dv-status > i{ width:8px; height:8px; flex:none; border-radius:50%; background:var(--d-teal);
  box-shadow:0 0 10px rgba(31,209,172,.8); animation:dvPulse 1.8s ease-in-out infinite; }
.atv.dv .dv-status.warn{ background:rgba(255,84,112,.08); border-color:rgba(255,84,112,.34); color:#FFC2CD; }
.atv.dv .dv-status.warn > i{ background:var(--d-red); box-shadow:0 0 10px rgba(255,84,112,.8); }
/* ── six stat tiles ── */
.atv.dv .dv-statc{ padding:16px 12px; display:flex; flex-direction:column; gap:14px; }
.atv.dv .dv-stat-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.atv.dv .dv-stat b.gold{ color:#F0B542; }
/* ── run row: Pause + Stop side by side while running ── */
.atv.dv .dv-run2.wide{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:10px; }
.atv.dv .dv-run2 svg{ width:20px; height:20px; }
.atv.dv .dv-run.stop{ flex:1; }
/* ── trade history rows (dot · time · length · stake · P/L) ── */
.atv.dv .dv-hist .dv-recent{ gap:6px; }
.atv.dv .dv-tr{ display:flex; align-items:center; gap:10px; min-height:52px; padding:10px 14px; border-radius:14px;
  background:var(--d-card2); border:1px solid var(--d-line); }
.atv.dv .dv-tr-d{ width:9px; height:9px; flex:none; border-radius:50%; background:var(--d-mut); }
.atv.dv .dv-tr.win .dv-tr-d{ background:var(--d-teal); box-shadow:0 0 10px rgba(31,209,172,.7); }
.atv.dv .dv-tr.loss .dv-tr-d{ background:var(--d-red); box-shadow:0 0 10px rgba(255,84,112,.7); }
.atv.dv .dv-tr.pend .dv-tr-d{ background:var(--d-amber); animation:dvPulse 1.4s ease-in-out infinite; }
.atv.dv .dv-tr-t{ font-size:13.5px; color:var(--d-txt); font-variant-numeric:tabular-nums; white-space:nowrap;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace; }
.atv.dv .dv-tr-k{ font-size:13px; color:var(--d-dim); white-space:nowrap; }
.atv.dv .dv-tr-s{ margin-left:auto; font-size:14.5px; color:var(--d-mut); font-variant-numeric:tabular-nums; }
.atv.dv .dv-tr-p{ margin-left:0; min-width:74px; text-align:right; font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--d-mut); }
.atv.dv .dv-tr.win{ background:rgba(31,209,172,.06); border-color:rgba(31,209,172,.26); }
.atv.dv .dv-tr.loss{ background:rgba(255,84,112,.06); border-color:rgba(255,84,112,.26); }
.atv.dv .dv-tr.pend{ background:rgba(255,177,71,.06); border-color:rgba(255,177,71,.26); }
.atv.dv .dv-tr.pend .dv-tr-p{ color:var(--d-amber); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
@media (max-width:400px){
  .atv.dv .dv-tr{ gap:8px; padding:9px 12px; }
  .atv.dv .dv-tr-t{ font-size:12.5px; }
  .atv.dv .dv-tr-k{ font-size:12px; }
  .atv.dv .dv-tr-s{ font-size:13.5px; }
  .atv.dv .dv-tr-p{ min-width:66px; font-size:14px; }
  .atv.dv .dv-2up .dv-f input{ font-size:17px; }
  .atv.dv .dv-chip{ height:38px; padding:0 11px; font-size:12.5px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j39 — the stat card, the Pause / Stop pair and the Recent Trades rows exactly
   as the user's photo: three tiles (Current Stake · Session P/L · Trades) with
   the last result under them, a big ORANGE Pause pill beside a square RED stop,
   and rows of [teal route badge] [stake] ………… [P/L].
   Panel headings are explicit here so every card on the desk carries its title.
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── stat card ── */
.atv.dv .dv-statc{ padding:20px 14px 16px; gap:0; }
.atv.dv .dv-stat-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.atv.dv .dv-stat u{ font-size:15px; color:var(--d-mut); margin-bottom:10px; letter-spacing:-.01em; }
.atv.dv .dv-stat b{ font-size:27px; font-weight:800; letter-spacing:-.02em; }
.atv.dv .dv-stat-foot{ margin-top:14px; }
.atv.dv .dv-foot-n{ font-size:16px; font-weight:600; color:var(--d-mut); }
.atv.dv .dv-foot-n.pos{ color:var(--d-teal); }
.atv.dv .dv-foot-n.neg{ color:#FF7A8A; }
.atv.dv .dv-foot-n.live{ color:var(--d-amber); }
/* ── the run row: Run · Pause(+Stop) ── */
.atv.dv .dv-runrow{ gap:12px; align-items:stretch; }
.atv.dv .dv-run{ height:66px; border-radius:20px; font-size:21px; }
.atv.dv .dv-run.pause{
  background:linear-gradient(180deg,#FFA423 0%,#F7860B 100%); color:#2A1500;
  box-shadow:0 20px 42px -20px rgba(255,150,25,.95), inset 0 1px 0 rgba(255,255,255,.35);
}
.atv.dv .dv-run.resume{ background:linear-gradient(97deg,#1FD1AC,#2ED47A); color:#03211A; }
.atv.dv .dv-stopb{
  flex:0 0 auto; width:76px; display:inline-grid; place-items:center; cursor:pointer; border:0; border-radius:20px;
  background:linear-gradient(180deg,#FF5A5A 0%,#E0293F 100%); color:#fff;
  box-shadow:0 20px 42px -20px rgba(255,70,90,.95), inset 0 1px 0 rgba(255,255,255,.28);
}
.atv.dv .dv-stopb svg{ width:26px; height:26px; }
.atv.dv .dv-stopb:active, .atv.dv .dv-run:active{ transform:translateY(1px); }
/* ── Recent Trades ── */
.atv.dv .dv-hist .dv-panel-h h4{ font-size:22px; font-weight:800; letter-spacing:-.02em; }
.atv.dv .dv-hist .dv-recent{ gap:10px; }
.atv.dv .dv-tr{ display:flex; align-items:center; gap:14px; min-height:70px; padding:12px 16px; border-radius:16px; }
.atv.dv .dv-tr-b{
  flex:none; padding:9px 13px; border-radius:10px; font-size:14px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; white-space:nowrap; background:rgba(31,209,172,.18); color:#5FE3C6;
}
.atv.dv .dv-tr-s{ margin-left:0; font-size:18px; font-weight:500; color:#D4DCE6; font-variant-numeric:tabular-nums; }
.atv.dv .dv-tr-p{ margin-left:auto; min-width:0; text-align:right; font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; }
.atv.dv .dv-tr.win .dv-tr-p{ color:#2FE0A8; }
.atv.dv .dv-tr.loss .dv-tr-p{ color:#FF6B7F; }
.atv.dv .dv-tr.pend .dv-tr-p{ color:var(--d-amber); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.atv.dv .dv-tr.win{ background:rgba(31,209,172,.08); border-color:rgba(31,209,172,.26); }
.atv.dv .dv-tr.loss{ background:rgba(255,84,112,.08); border-color:rgba(255,84,112,.26); }
/* ── every card on the desk shows its heading ── */
.atv.dv .dv-panel-h{ display:flex !important; align-items:center; gap:10px; margin-bottom:4px; }
.atv.dv .dv-panel-h h4, .atv.dv .dv-panel > h4{ display:block !important; font-size:19px; font-weight:800; color:var(--d-txt); letter-spacing:-.02em; }
@media (max-width:400px){
  .atv.dv .dv-stat u{ font-size:13.5px; }
  .atv.dv .dv-stat b{ font-size:23px; }
  .atv.dv .dv-foot-n{ font-size:15px; }
  .atv.dv .dv-run{ height:60px; font-size:19px; }
  .atv.dv .dv-stopb{ width:68px; }
  .atv.dv .dv-tr{ min-height:64px; padding:11px 13px; gap:11px; }
  .atv.dv .dv-tr-b{ font-size:12.5px; padding:8px 11px; }
  .atv.dv .dv-tr-s{ font-size:16px; }
  .atv.dv .dv-tr-p{ font-size:17px; }
  .atv.dv .dv-hist .dv-panel-h h4{ font-size:20px; }
}

/* ── j39b ── THE HEADER STAYS ON THE AUTO-TRADER SECTION ──────────────────────
   An early-era block (".. the only action that makes sense there is getting back")
   hid every header control while G Mind was open — and because header v4 keeps the
   Aether mic, the chips AND the nav inside .header-actions, the bar was reduced to a
   logo. The desk is a full screen of its own now, so the platform header belongs on
   it: balance, mic, connection, nav and Logout all stay. */
body.gm-at-active .header-actions > *:not(#gm-none){ display:inline-flex !important; }
body.gm-at-active .aether-header .gh-nav:not(#gm-none){ display:flex !important; }
body.gm-at-active .aether-header .gh-nav > [hidden]{ display:none !important; }
body.gm-at-active .header-actions{ justify-content:flex-end !important; gap:12px !important; }
body.gm-at-active .aether-header .gh-nav{ display:flex !important; }
body.gm-at-active #aether-ctl{ display:inline-flex !important; }
body.gm-at-active #connection-chip{ display:inline-flex !important; }
body.gm-at-active #balance-chip:not([hidden]){ display:inline-flex !important; }
body.gm-at-active #balance-chip[hidden], body.gm-at-active #sub-countdown[hidden],
body.gm-at-active #session-admin-link[hidden]{ display:none !important; }
body.gm-at-active .at-open-btn{ padding:0 !important; border-radius:0 !important; font-weight:500 !important; }

/* ── j40 ── the reference's card structure back: loose fields, then the two titled
   cards, then the switches; USD/ticks units sit at the right of each value ── */
.atv.dv .dv-panel > h4{ margin:0 0 6px; font-size:19px; font-weight:800; color:var(--d-txt); letter-spacing:-.02em; }
.atv.dv .dv-fldc{ padding:14px; display:flex; flex-direction:column; gap:10px; }
.atv.dv .dv-panel .dv-f{ background:var(--d-in); }
.atv.dv .dv-f-u{ font-size:15px; font-weight:500; color:var(--d-mut); }
.atv.dv .dv-status.rep{ background:rgba(31,209,172,.07); border-color:rgba(31,209,172,.3); color:#9FE9D7; }
.atv.dv .dv-status.rep > i{ background:var(--d-teal); }
/* the safeguard switch reads as the risk it is once it is off */
.atv.dv .dv-tog[data-dvnosafe].on{ border-color:rgba(255,177,71,.45); background:rgba(255,177,71,.07); }
.atv.dv .dv-tog[data-dvnosafe].on .dv-sw{ background:var(--d-amber); }

.atv.dv #at-status{ display:flex; flex-direction:column; gap:8px; }

/* ── j42 ── a completed SESSION reads as its own card in the trade history, and the
   desk's title bar has no back arrow (the header's "Console" link is the way back) ── */
.atv.dv .dv-top{ padding-left:16px; }
.atv.dv .dv-sr{
  position:relative; display:flex; flex-direction:column; gap:8px; padding:14px 16px 12px 18px; border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  border:1px solid var(--d-line2); overflow:hidden;
}
.atv.dv .dv-sr::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--d-mut); }
.atv.dv .dv-sr.target::before{ background:linear-gradient(180deg,#1FD1AC,#2ED47A); }
.atv.dv .dv-sr.loss::before{ background:linear-gradient(180deg,#FF6B7F,#E0293F); }
.atv.dv .dv-sr.manual::before{ background:rgba(255,255,255,.28); }
.atv.dv .dv-sr-h{ display:flex; align-items:center; gap:10px; }
.atv.dv .dv-sr-b{
  flex:none; padding:5px 10px; border-radius:8px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  background:rgba(255,255,255,.10); color:var(--d-mut);
}
.atv.dv .dv-sr.target .dv-sr-b{ background:rgba(31,209,172,.18); color:#5FE3C6; }
.atv.dv .dv-sr.loss .dv-sr-b{ background:rgba(255,84,112,.18); color:#FF9FAE; }
.atv.dv .dv-sr-r{ font-size:14.5px; font-weight:700; color:var(--d-txt); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.atv.dv .dv-sr-p{ margin-left:auto; font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; }
.atv.dv .dv-sr-p.pos{ color:#2FE0A8; } .atv.dv .dv-sr-p.neg{ color:#FF6B7F; }
.atv.dv .dv-sr-m{ display:flex; flex-wrap:wrap; gap:6px 8px; }
.atv.dv .dv-sr-m span{
  padding:5px 9px; border-radius:8px; font-size:12px; color:var(--d-mut);
  background:rgba(255,255,255,.04); border:1px solid var(--d-line);
}
.atv.dv .dv-sr-t{ font-size:11.5px; color:var(--d-dim); font-variant-numeric:tabular-nums; }
@media (max-width:400px){
  .atv.dv .dv-sr{ padding:12px 13px 11px 16px; }
  .atv.dv .dv-sr-r{ font-size:13.5px; }
  .atv.dv .dv-sr-p{ font-size:17px; }
  .atv.dv .dv-sr-m span{ font-size:11.5px; padding:4px 8px; }
}

/* ── j43 ── desk audit fixes ─────────────────────────────────────────────────
   · the session card loses the thick left rail (the badge already says what it is)
   · the sticky Run row can never leave content permanently hidden underneath
   · the desk's native <select> fields get the same value line as every other field */
.atv.dv .dv-sr::before{ content:none !important; }
.atv.dv .dv-sr{ padding:14px 16px 12px; }
@media (max-width:400px){ .atv.dv .dv-sr{ padding:12px 13px 11px; } }
/* the last card always clears the pinned Run pill */
.atv.dv .dv-body{ padding-bottom:96px; }
.atv.dv .dv-runrow{ background:linear-gradient(180deg, rgba(10,15,23,0) 0%, rgba(10,15,23,.92) 34%, #0A0F17 62%); }
/* native selects on the desk (gmCustomSelect no longer touches them) */
.atv.dv .dv-f select, .atv.dv .dv-mkt select{
  appearance:none; -webkit-appearance:none; background-image:none !important; text-overflow:ellipsis;
}
.atv.dv .dv-f-sel .dv-f-in, .atv.dv .dv-mkt-v{ min-width:0; }

/* the Run row is the last thing in the flow now (so it pins for the whole scroll and
   covers nothing at the end) — the padding that used to clear it is dead space */
.atv.dv .dv-body{ padding-bottom:8px; }
.gm-at-sec .atv.dv{ padding-bottom:14px !important; }
.atv.dv .dv-runrow{ padding-bottom:10px; margin-top:-2px; }

/* ── j43b ── narrow phones (≤380px) ──────────────────────────────────────────
   · the trade-type label wraps cleanly instead of being cut ("Accumulator")
   · the 10-cell digit row keeps a comfortable tap target and scrolls instead of
     squeezing every cell to 26px */
.atv.dv .dv-type-n{ overflow:visible; white-space:normal; word-break:normal; overflow-wrap:anywhere; line-height:1.2; }
.atv.dv .dv-type{ align-items:center; justify-content:center; }
.atv.dv .dv-digrow{ overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
.atv.dv .dv-digrow::-webkit-scrollbar{ display:none; }
.atv.dv .dv-dig{ flex:1 0 auto; min-width:34px; scroll-snap-align:center; }
@media (max-width:380px){
  .atv.dv .dv-types{ gap:3px; }
  .atv.dv .dv-type{ padding:10px 2px; font-size:10.5px; }
  .atv.dv .dv-type.is-on .dv-type-n{ font-size:10.5px; }
  .atv.dv .dv-digrow{ gap:5px; }
  .atv.dv .dv-dig{ min-width:32px; font-size:14.5px; }
}

/* never break a trade type's name mid-word ("Accumulat / or") — it wraps at its own
   spaces and scales down instead */
.atv.dv .dv-type-n{ overflow-wrap:normal; word-break:normal; hyphens:none; }
@media (max-width:400px){
  .atv.dv .dv-type{ font-size:10px; letter-spacing:-.01em; padding:10px 1px; }
  .atv.dv .dv-type.is-on .dv-type-n{ font-size:10px; }
}
@media (max-width:365px){
  .atv.dv .dv-type{ font-size:9.2px; }
  .atv.dv .dv-type.is-on .dv-type-n{ font-size:9.2px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j45 — G MIND SITS ON THE CONSOLE'S OWN BACKGROUND
   The console's ground is html{background:#070C1C} + body::before (the fixed
   atmosphere) + the drifting .gm-aurora field. The desk was painting its own
   #0A0F17 over all of it, so the living background stopped at the desk's edge.
   ⚠ the desk and the body must stay TRANSPARENT or body::before / .gm-aurora
   are painted over (the same trap as the console itself).
   ═══════════════════════════════════════════════════════════════════════════ */
body.gm-at-active{ background:transparent !important; }
body.gm-at-active .gm-at-sec{ background:transparent !important; }
.gm-at-sec .atv.dv{ background:transparent !important; }
/* the two bars that float over the content borrow the console's ground colour so the
   atmosphere reads through them instead of stopping at a hard edge */
.atv.dv .dv-top{ background:rgba(7,12,28,.82) !important; backdrop-filter:blur(16px) saturate(120%); -webkit-backdrop-filter:blur(16px) saturate(120%); }
.atv.dv .dv-runrow{ background:linear-gradient(180deg, rgba(7,12,28,0) 0%, rgba(7,12,28,.86) 38%, rgba(7,12,28,.97) 70%) !important; }
/* cards keep their shape but let a little of the moving background through */
.gm-at-sec .atv.dv{ --d-card:rgba(20,27,38,.88); --d-card2:rgba(16,23,34,.86); --d-in:rgba(9,14,25,.82); }
.atv.dv .dv-card, .atv.dv .dv-panel, .atv.dv .dv-mkt, .atv.dv .dv-price, .atv.dv .dv-types, .atv.dv .dv-sides{
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
/* a trade left unsettled by a reload is labelled, never coloured as a loss */
.atv.dv .dv-tr.stale{ background:rgba(255,255,255,.03); border-color:var(--d-line); }
.atv.dv .dv-tr.stale .dv-tr-d{ background:var(--d-dim); }
.atv.dv .dv-tr.stale .dv-tr-p{ color:var(--d-dim); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }

/* ═══════════════════════════════════════════════════════════════════════════
   j46 — MOBILE SCROLLING: the desk scrolls the PAGE, not an inner box.
   The inner scroller (height:calc(100vh - --gh-h) + body{overflow:hidden}) is what
   made scrolling feel broken on phones: 100vh is the URL-bar-collapsed height, so
   the box was taller than the visible area, the browser could not collapse its bar
   (the body could not scroll), and momentum/rubber-band belonged to an inner
   element. Letting the document scroll gives native momentum, the URL bar behaves,
   and the sticky Run row pins to the real viewport.
   ═══════════════════════════════════════════════════════════════════════════ */
body.gm-at-active{ overflow:visible !important; }
body.gm-at-active .aether-main{ display:block !important; padding:0 !important; }
body.gm-at-active .gm-at-sec{
  height:auto !important; max-height:none !important; overflow:visible !important;
  overscroll-behavior:auto !important;
}
/* no shade behind "Automate …" — the title sits on the console's own background and
   scrolls with the page (a transparent bar pinned over moving content reads as broken) */
.atv.dv .dv-top{
  position:static !important; background:transparent !important; border-bottom:0 !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  height:auto; padding:12px 16px 2px; box-shadow:none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   j47 — placement to the reference images + the SESSION RESULT SHEET
   · Run / Pause+Stop sit in the flow right under the settings (no pin, no scrim)
   · the session sheet rises from the bottom of the phone: ribbon, counted-up net,
     equity curve, the trade tape, a 12-cell stat grid, the auto-repeat countdown
   ═══════════════════════════════════════════════════════════════════════════ */
.atv.dv .dv-runrow{
  position:static !important; bottom:auto !important; z-index:auto; background:none !important;
  padding:4px 0 2px !important; margin:0 !important;
}
/* ── the sheet ── */
.gm-at-sec .atv-pop.gp{
  position:fixed; inset:0; z-index:9700; display:flex; align-items:flex-end; justify-content:center; padding:0;
  background:rgba(4,8,16,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  opacity:0; transition:opacity .22s ease;
}
.gm-at-sec .atv-pop.gp.is-in{ opacity:1; }
.gm-at-sec .atv-pop.gp[hidden]{ display:none; }
.gm-at-sec .gp-sheet{
  --g:#1FD1AC; --g2:#2ED47A;
  position:relative; width:min(560px,100%); max-height:calc(100vh - 40px); overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:12px 18px 22px; border-radius:26px 26px 0 0; text-align:center;
  background:linear-gradient(180deg, rgba(22,30,44,.98), rgba(12,18,30,.99));
  border:1px solid rgba(255,255,255,.08); border-bottom:0;
  box-shadow:0 -30px 80px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.02) inset;
  transform:translateY(24px); transition:transform .28s cubic-bezier(.2,.8,.2,1);
  color:#F2F6FA; font-family:var(--font-body, "Inter", system-ui), sans-serif;
}
.gm-at-sec .atv-pop.gp.is-in .gp-sheet{ transform:translateY(0); }
.gm-at-sec .atv-pop.gp.target .gp-sheet{ --g:#1FD1AC; --g2:#2ED47A; box-shadow:0 -30px 80px -30px rgba(0,0,0,.9), 0 -6px 60px -20px rgba(31,209,172,.55); }
.gm-at-sec .atv-pop.gp.loss .gp-sheet{ --g:#FF5470; --g2:#FF7A8A; box-shadow:0 -30px 80px -30px rgba(0,0,0,.9), 0 -6px 60px -20px rgba(255,84,112,.5); }
.gm-at-sec .atv-pop.gp.manual .gp-sheet{ --g:#9FB0C6; --g2:#C6D2E0; }
.gm-at-sec .gp-grip{ width:44px; height:5px; border-radius:99px; margin:0 auto 10px; background:rgba(255,255,255,.18); }
.gm-at-sec .gp-x{ position:absolute; top:14px; right:14px; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:12px; cursor:pointer;
  background:rgba(255,255,255,.07); color:#fff; }
.gm-at-sec .gp-x svg{ width:18px; height:18px; }
.gm-at-sec .gp-rib{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:99px; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--g); background:color-mix(in srgb, var(--g) 14%, transparent); border:1px solid color-mix(in srgb, var(--g) 35%, transparent); }
.gm-at-sec .gp-rib-dot{ width:7px; height:7px; border-radius:50%; background:var(--g); box-shadow:0 0 10px var(--g); }
.gm-at-sec .gp-head{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:14px; }
.gm-at-sec .gp-ic{ width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:var(--g);
  background:color-mix(in srgb, var(--g) 14%, transparent); }
.gm-at-sec .gp-ic svg{ width:22px; height:22px; }
.gm-at-sec .gp-head-t{ text-align:left; }
.gm-at-sec .gp-head-t b{ display:block; font-size:15px; font-weight:800; }
.gm-at-sec .gp-head-t i{ display:block; font-style:normal; font-size:12px; color:rgba(233,240,248,.55); margin-top:1px; }
.gm-at-sec .gp-title{ margin:14px 0 4px; font-size:26px; font-weight:800; letter-spacing:-.02em; }
.gm-at-sec .gp-sub{ margin:0 auto; max-width:38ch; font-size:13.5px; line-height:1.5; color:rgba(233,240,248,.6); }
.gm-at-sec .gp-net{ margin-top:16px; font-size:52px; font-weight:800; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.gm-at-sec .gp-net.pos{ color:var(--g); text-shadow:0 0 34px color-mix(in srgb, var(--g) 45%, transparent); }
.gm-at-sec .gp-net.neg{ color:#FF6B7F; text-shadow:0 0 34px rgba(255,84,112,.35); }
.gm-at-sec .gp-net-l{ margin-top:6px; font-size:12.5px; color:rgba(233,240,248,.5); }
/* the equity curve */
.gm-at-sec .gp-curve{ display:block; width:100%; height:96px; margin:16px 0 6px; border-radius:14px; background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.06); }
.gm-at-sec .gp-curve .gp-zero{ stroke:rgba(255,255,255,.14); stroke-width:1; stroke-dasharray:3 4; }
.gm-at-sec .gp-curve .gp-line{ fill:none; stroke:var(--g); stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.gm-at-sec .gp-curve .gp-area{ fill:color-mix(in srgb, var(--g) 18%, transparent); stroke:none; }
.gm-at-sec .gp-curve.neg .gp-line{ stroke:#FF6B7F; } .gm-at-sec .gp-curve.neg .gp-area{ fill:rgba(255,84,112,.16); }
.gm-at-sec .gp-curve .gp-peak{ fill:#fff; stroke:var(--g); stroke-width:2; }
/* the tape */
.gm-at-sec .gp-tape{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px; margin:6px 0 4px; }
.gm-at-sec .gp-tape i{ width:10px; height:10px; border-radius:3px; background:rgba(255,255,255,.14); }
.gm-at-sec .gp-tape i.w{ background:#1FD1AC; box-shadow:0 0 8px rgba(31,209,172,.6); }
.gm-at-sec .gp-tape i.l{ background:#FF5470; }
/* the stat grid */
.gm-at-sec .gp-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:14px; }
.gm-at-sec .gp-cell{ padding:10px 6px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); min-width:0; }
.gm-at-sec .gp-cell u{ display:block; text-decoration:none; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:rgba(233,240,248,.48); margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-at-sec .gp-cell b{ display:block; font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-at-sec .gp-cell b.pos, .gm-at-sec .gp-cell .pos{ color:#2FE0A8; } .gm-at-sec .gp-cell b.neg, .gm-at-sec .gp-cell .neg{ color:#FF6B7F; }
/* auto-repeat countdown */
.gm-at-sec .gp-repeat{ display:flex; align-items:center; gap:10px; margin-top:14px; padding:12px 14px; border-radius:14px; text-align:left;
  background:rgba(31,209,172,.08); border:1px solid rgba(31,209,172,.32); font-size:13px; color:#B9F0E3; }
.gm-at-sec .gp-repeat-dot{ width:8px; height:8px; flex:none; border-radius:50%; background:#1FD1AC; box-shadow:0 0 10px rgba(31,209,172,.8); animation:dvPulse 1.6s ease-in-out infinite; }
.gm-at-sec .gp-repeat-t{ flex:1; min-width:0; }
.gm-at-sec .gp-repeat-t b{ color:#fff; font-variant-numeric:tabular-nums; }
.gm-at-sec .gp-repeat-x{ flex:none; padding:8px 12px; border-radius:99px; border:1px solid rgba(255,255,255,.16); background:transparent; color:#fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.gm-at-sec .gp-life{ margin-top:14px; font-size:12px; color:rgba(233,240,248,.5); }
.gm-at-sec .gp-btns{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.gm-at-sec .gp-again{ display:inline-flex; align-items:center; justify-content:center; gap:10px; height:58px; border:0; border-radius:18px; cursor:pointer;
  font:inherit; font-size:17px; font-weight:800; color:#03211A; background:linear-gradient(97deg,#1FD1AC,#2ED47A);
  box-shadow:0 18px 40px -20px rgba(31,209,172,.9), inset 0 1px 0 rgba(255,255,255,.25); }
.gm-at-sec .gp-again svg{ width:20px; height:20px; }
.gm-at-sec .gp-close{ height:52px; border-radius:18px; cursor:pointer; font:inherit; font-size:15px; font-weight:700; color:#fff;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.gm-at-sec .gp-stamp{ margin-top:12px; font-size:11px; line-height:1.5; color:rgba(233,240,248,.38); }
@media (min-width:600px){
  .gm-at-sec .atv-pop.gp{ align-items:center; padding:20px; }
  .gm-at-sec .gp-sheet{ border-radius:26px; border-bottom:1px solid rgba(255,255,255,.08); max-height:calc(100vh - 60px); }
  .gm-at-sec .gp-grip{ display:none; }
  .gm-at-sec .gp-btns{ flex-direction:row; } .gm-at-sec .gp-again{ flex:1; } .gm-at-sec .gp-close{ flex:0 0 140px; }
}
@media (max-width:400px){
  .gm-at-sec .gp-title{ font-size:23px; }
  .gm-at-sec .gp-net{ font-size:44px; }
  .gm-at-sec .gp-grid{ gap:6px; }
  .gm-at-sec .gp-cell{ padding:9px 4px; border-radius:12px; }
  .gm-at-sec .gp-cell b{ font-size:14px; }
}

/* ── j47b ── two real bugs ────────────────────────────────────────────────────
   1. `hidden` panels were still SHOWING: the desk's own display:flex on .dv-panel /
      .dv-statc outranks the UA's [hidden]{display:none} — the reason the stats card and
      Recent Trades never disappeared. Author display must yield to hidden. */
.atv.dv [hidden]{ display:none !important; }
/* 2. .aether-main carries contain:paint, which makes it the containing block for FIXED
      descendants — the session sheet was pinned to the top of main, off-screen whenever
      the page was scrolled. Released only while the desk is open. */
body.gm-at-active .aether-main{ contain:none !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   j48 — OVER/UNDER PRESETS (dropdown + breakdown panel) · the SESSION SHEET v3
   ═══════════════════════════════════════════════════════════════════════════ */
/* ── the preset panel ── */
.atv.dv .dv-preset{ gap:10px; }
.atv.dv .dv-pre-k{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.atv.dv .dv-pre-c{ padding:10px 6px; border-radius:14px; text-align:center; background:var(--d-in); border:1px solid var(--d-line); min-width:0; }
.atv.dv .dv-pre-c u{ display:block; text-decoration:none; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--d-dim); margin-bottom:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.atv.dv .dv-pre-c b{ display:block; font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; }
.atv.dv .dv-pre-c b.pos{ color:var(--d-teal); }
.atv.dv .dv-lad{ border-radius:16px; background:var(--d-in); border:1px solid var(--d-line); overflow:hidden; }
.atv.dv .dv-lad-h{ display:flex; justify-content:space-between; padding:10px 14px; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--d-dim); border-bottom:1px solid var(--d-line); }
.atv.dv .dv-lad-h span:last-child{ color:var(--d-teal); font-weight:700; }
.atv.dv .dv-lad-r{ display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 14px; border-bottom:1px solid rgba(255,255,255,.04); font-size:13px; }
.atv.dv .dv-lad-r:last-child{ border-bottom:0; }
.atv.dv .dv-lad-n{ font-weight:700; color:var(--d-txt); }
.atv.dv .dv-lad-l{ color:var(--d-dim); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.atv.dv .dv-lad-v{ font-weight:800; font-variant-numeric:tabular-nums; }
.atv.dv .dv-lad-r.fin{ background:rgba(255,177,71,.08); }
.atv.dv .dv-lad-r.fin .dv-lad-v, .atv.dv .dv-lad-r.fin .dv-lad-l{ color:var(--d-amber); }
.atv.dv .dv-lad-r.now{ background:rgba(31,209,172,.10); box-shadow:inset 3px 0 0 var(--d-teal); }
.atv.dv .dv-lad-r.now .dv-lad-n::after{ content:" ●"; color:var(--d-teal); }
.atv.dv .dv-pre-m{ padding:11px 14px; border-radius:14px; background:var(--d-in); border:1px solid var(--d-line); font-size:12.5px; line-height:1.55; color:var(--d-mut); }
.atv.dv .dv-pre-m b{ color:var(--d-txt); font-variant-numeric:tabular-nums; }
.atv.dv .dv-pre-m b.pos{ color:var(--d-teal); }
.atv.dv .dv-pre-m.warn{ border-color:rgba(255,177,71,.35); background:rgba(255,177,71,.06); }
.atv.dv .dv-pre-m.ok{ border-color:rgba(31,209,172,.3); background:rgba(31,209,172,.06); }
.atv.dv .dv-pre-m.bad{ border-color:rgba(255,84,112,.38); background:rgba(255,84,112,.07); color:#FFC2CD; }
.atv.dv .dv-pre-m.bad b{ color:#fff; }
@media (max-width:400px){
  .atv.dv .dv-pre-k{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .atv.dv .dv-lad-r{ grid-template-columns:46px minmax(0,1fr) auto; padding:8px 12px; }
}
/* ── the session sheet v3 ── */
.gm-at-sec .gp-sheet{ padding:10px 18px 22px; overflow:hidden; overflow-y:auto; }
.gm-at-sec .gp-glow{ position:absolute; left:50%; top:-120px; width:420px; height:420px; transform:translateX(-50%); border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, color-mix(in srgb, var(--g) 34%, transparent), transparent 62%); filter:blur(10px); }
.gm-at-sec .gp-spark{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.gm-at-sec .gp-spark i{ position:absolute; bottom:-10px; width:6px; height:6px; border-radius:50%; background:var(--g); opacity:0;
  left:calc(6% + (var(--n) * 6.4%)); animation:gpRise 2.8s ease-out infinite; animation-delay:calc(var(--n) * .17s); }
.gm-at-sec .gp-spark i:nth-child(1){--n:0} .gm-at-sec .gp-spark i:nth-child(2){--n:1} .gm-at-sec .gp-spark i:nth-child(3){--n:2} .gm-at-sec .gp-spark i:nth-child(4){--n:3}
.gm-at-sec .gp-spark i:nth-child(5){--n:4} .gm-at-sec .gp-spark i:nth-child(6){--n:5} .gm-at-sec .gp-spark i:nth-child(7){--n:6} .gm-at-sec .gp-spark i:nth-child(8){--n:7}
.gm-at-sec .gp-spark i:nth-child(9){--n:8} .gm-at-sec .gp-spark i:nth-child(10){--n:9} .gm-at-sec .gp-spark i:nth-child(11){--n:10} .gm-at-sec .gp-spark i:nth-child(12){--n:11}
.gm-at-sec .gp-spark i:nth-child(13){--n:12} .gm-at-sec .gp-spark i:nth-child(14){--n:13}
@keyframes gpRise{ 0%{ transform:translateY(0) scale(.6); opacity:0 } 15%{ opacity:.9 } 100%{ transform:translateY(-560px) scale(1.2); opacity:0 } }
.gm-at-sec .gp-hero{ position:relative; width:176px; height:176px; margin:6px auto 2px; }
.gm-at-sec .gp-ring{ position:absolute; inset:0; width:100%; height:100%; }
.gm-at-sec .gp-ring-bg{ fill:none; stroke:rgba(255,255,255,.08); stroke-width:9; }
.gm-at-sec .gp-ring-fg{ fill:none; stroke-width:9; stroke-linecap:round; filter:drop-shadow(0 0 10px color-mix(in srgb, var(--g) 70%, transparent)); animation:gpArc 1.1s cubic-bezier(.2,.8,.2,1) both; }
@keyframes gpArc{ from{ stroke-dasharray:0 1000 } }
.gm-at-sec .gp-hero-in{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.gm-at-sec .gp-hero-in .gp-net{ margin:0; font-size:34px; line-height:1; text-shadow:none; }
.gm-at-sec .gp-hero-in u{ text-decoration:none; font-size:11.5px; letter-spacing:.04em; color:rgba(233,240,248,.55); }
.gm-at-sec .gp-rib{ margin-top:12px; }
.gm-at-sec .gp-title{ margin:12px 0 4px; font-size:28px; }
.gm-at-sec .gp-meta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px; margin-top:10px; font-size:12.5px; color:rgba(233,240,248,.62); }
.gm-at-sec .gp-meta i{ font-style:normal; color:rgba(233,240,248,.28); }
.gm-at-sec .gp-meta .gp-ic{ width:22px; height:22px; border-radius:7px; }
.gm-at-sec .gp-meta .gp-ic svg{ width:14px; height:14px; }
.gm-at-sec .gp-curve{ height:110px; margin-top:14px; }
.gm-at-sec .gp-bars{ display:flex; align-items:flex-end; justify-content:center; gap:3px; height:42px; margin:8px 4px 2px; }
.gm-at-sec .gp-bars i{ flex:0 1 12px; min-width:5px; height:var(--h,50%); border-radius:3px 3px 1px 1px; background:rgba(255,255,255,.14); }
.gm-at-sec .gp-bars i.w{ background:linear-gradient(180deg,#5FE3C6,#1FD1AC); box-shadow:0 0 10px -2px rgba(31,209,172,.7); }
.gm-at-sec .gp-bars i.l{ background:linear-gradient(180deg,#FF8FA1,#FF5470); }
.gm-at-sec .gp-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.gm-at-sec .gp-cell{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 14px; text-align:left; }
.gm-at-sec .gp-cell u{ margin:0; font-size:11px; }
.gm-at-sec .gp-cell b{ font-size:15px; }
@media (min-width:480px){ .gm-at-sec .gp-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } .gm-at-sec .gp-cell{ display:block; text-align:center; } .gm-at-sec .gp-cell u{ margin-bottom:5px; } }
.gm-at-sec .gp-again{ box-shadow:0 22px 44px -22px color-mix(in srgb, var(--g) 90%, transparent), inset 0 1px 0 rgba(255,255,255,.25); }
.gm-at-sec .atv-pop.gp.loss .gp-again{ background:linear-gradient(97deg,#2ED47A,#1FD1AC); }
.gm-at-sec .atv-pop.gp.manual .gp-hero .gp-ring-fg{ stroke:#C6D2E0; filter:none; }
@media (max-width:400px){ .gm-at-sec .gp-hero{ width:156px; height:156px; } .gm-at-sec .gp-hero-in .gp-net{ font-size:30px; } .gm-at-sec .gp-title{ font-size:24px; } }

/* sheet cells: label above value at every width (the side-by-side row cut long values) */
.gm-at-sec .gp-cell{ display:block; text-align:center; padding:11px 8px; }
.gm-at-sec .gp-cell u{ margin-bottom:5px; }
.gm-at-sec .gp-cell b{ font-size:16px; }
@media (max-width:400px){ .gm-at-sec .gp-cell b{ font-size:15px; } }

/* the preset panel's header: title on its own line, the strategy/side line under it */
.atv.dv .dv-preset .dv-panel-h{ flex-wrap:wrap; gap:2px 10px; }
.atv.dv .dv-preset .dv-panel-h h4{ white-space:nowrap; }
.atv.dv .dv-preset .dv-panel-h span{ margin-left:0; flex:1 0 100%; font-size:12.5px; color:var(--d-teal); }

/* ── j53 ── Recent Trades collapses like a dropdown: tap the header ── */
.atv.dv .dv-hist-h{ cursor:pointer; user-select:none; -webkit-user-select:none; align-items:center; }
.atv.dv .dv-hist-h h4{ flex:0 0 auto; }
.atv.dv .dv-hist-sum{ flex:1; min-width:0; margin-left:2px; font-size:12.5px; font-weight:700; color:var(--d-mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.atv.dv .dv-hist-sum.pos{ color:var(--d-teal); } .atv.dv .dv-hist-sum.neg{ color:var(--d-red); }
.atv.dv .dv-hist-h .dv-clear{ margin-left:auto; }
.atv.dv .dv-hist-chev{ width:30px; height:30px; flex:none; display:grid; place-items:center; border-radius:10px; color:var(--d-mut); background:rgba(255,255,255,.05); transition:transform .22s ease; }
.atv.dv .dv-hist-chev svg{ width:16px; height:16px; }
.atv.dv .dv-hist.is-min .dv-hist-chev{ transform:rotate(-90deg); }
.atv.dv .dv-hist.is-min{ padding-bottom:12px; }
.atv.dv .dv-hist .dv-recent[hidden]{ display:none !important; }

/* collapsed: the Clear button steps aside so the count and net fit beside the title */
.atv.dv .dv-hist.is-min .dv-clear{ display:none; }
.atv.dv .dv-hist.is-min .dv-hist-sum{ text-align:right; }

/* ── j54 ── the digit row: digit + its share of the last 100 ticks; the LIVE digit ── */
.atv.dv .dv-digcard-h{ display:flex; align-items:center; gap:10px; }
.atv.dv .dv-dig-live{ margin-left:auto; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--d-teal); }
.atv.dv .dv-dig{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; height:50px; padding:0; }
.atv.dv .dv-dig b{ font-size:16px; font-weight:800; line-height:1; }
.atv.dv .dv-dig u{ text-decoration:none; font-size:9.5px; font-weight:700; color:var(--d-dim); line-height:1; }
.atv.dv .dv-dig.on u{ color:rgba(5,32,25,.7); }
.atv.dv .dv-dig.live{ border-color:#7EA6FF; box-shadow:0 0 0 2px rgba(126,166,255,.35), 0 0 18px -4px rgba(126,166,255,.9); }
.atv.dv .dv-dig.live b{ color:#9FBDFF; }
.atv.dv .dv-dig.live.on b{ color:#052019; }
.atv.dv .dv-dig.live::after{ content:""; position:absolute; top:4px; right:4px; width:6px; height:6px; border-radius:50%; background:#7EA6FF; box-shadow:0 0 8px #7EA6FF; animation:dvPulse 1.2s ease-in-out infinite; }
.atv.dv .dv-dig{ position:relative; }
@media (max-width:380px){ .atv.dv .dv-dig{ height:46px; } .atv.dv .dv-dig b{ font-size:14.5px; } .atv.dv .dv-dig u{ font-size:9px; } }

/* all ten digits fit one phone row (Matches) — no sideways scroll needed */
@media (max-width:400px){
  .atv.dv .dv-digrow{ gap:3px; }
  .atv.dv .dv-dig{ min-width:29px; flex:1 1 0; }
  .atv.dv .dv-dig u{ font-size:8.8px; letter-spacing:-.02em; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j60 — LIVE CONTRACT · the facts row under the bar (stake · growth · target ·
   value · spot · source), and the status line's warning tone for a refused fire
   ═══════════════════════════════════════════════════════════════════════════ */
.atv.dv .dv-livec-sub{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; font-size:11.5px; line-height:1.3; color:var(--d-mut); font-variant-numeric:tabular-nums; }
.atv.dv .dv-livec-sub > span{ white-space:nowrap; }
.atv.dv .dv-livec-sub > span:last-child{ flex-basis:100%; color:var(--d-dim); font-size:11px; }
.atv.dv .dv-mkt select option:disabled{ color:rgba(255,255,255,.35); }

/* ═══════════════════════════════════════════════════════════════════════════
   j62 — FROSTED GLASS · the analyzer cards and the Trade History cards read as
   frozen glass: an etched frost mottle + sparse ice crystals + the fine grain,
   a key-light diffusion at the top-left, a cold sheen across the pane, an icy
   rim that scatters light, and a hairline specular on the top edge. Every
   colour layer the cards already had is restated UNCHANGED underneath — this
   is material only. Zero backdrop-filter, zero animation: the frost is three
   static tiles rasterised once, so phones pay nothing per frame.
   Specificity: the live winners are (1,3,0)+important (analyzer) and (1,2,0)
   (history card) — `html body …` adds two element selectors so every rule here
   out-specifies them instead of tying on source order.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  /* soft large-scale ice patches — mean-grey noise, so soft-light adds texture, not brightness */
  --gm-frost-mottle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.085' numOctaves='5' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0.40'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  /* the same mottle at a quarter of the strength — for the history PANE, which is flatter and would read smoky at full strength */
  --gm-frost-mottle-soft:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.085' numOctaves='5' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0.22'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  /* sparse white crystal specks — only the brightest 3% of a fine noise survives */
  --gm-frost-ice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='s' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='1' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 6 -4.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)'/%3E%3C/svg%3E");
  /* the light: key-light diffusion top-left + a cold sheen across the pane */
  --gm-frost-key:radial-gradient(120% 72% at 16% -8%, rgba(226,240,255,.13), rgba(226,240,255,.04) 34%, transparent 58%);
  --gm-frost-sheen:linear-gradient(116deg, transparent 36%, rgba(255,255,255,.026) 45%, rgba(255,255,255,.058) 50%, rgba(255,255,255,.026) 55%, transparent 64%);
}

/* ── analyzer cards · desktop (fine pointer, real GPU) ── */
@media (hover:hover) and (pointer:fine) and (min-width:821px){
  html body #view-console .analyzer[data-analyzer]:not(.analyzer-themed){
    background:
      var(--gm-frost-ice) padding-box,
      var(--gm-frost-mottle) padding-box,
      var(--gm-grain) padding-box,
      var(--gm-frost-key) padding-box,
      var(--gm-frost-sheen) padding-box,
      linear-gradient(158deg, rgb(16,29,51) 0%, rgb(10,20,38) 56%, rgb(7,15,31) 100%) padding-box !important;
    background-blend-mode: screen, soft-light, soft-light, normal, normal, normal !important;
    border-color:rgba(200,226,255,.22) !important;
    box-shadow:
      0 1px 2px rgba(0,0,0,.58),
      0 3px 8px -2px rgba(0,0,0,.46),
      0 12px 26px -12px rgba(0,0,0,.68),
      0 28px 60px -30px rgba(0,0,0,.80),
      0 52px 96px -54px rgba(0,0,0,.7),
      inset 0 1.5px 0 -0.5px rgba(236,248,255,.34),
      inset 0 1px 0 rgba(206,230,255,.14),
      inset 1px 0 0 rgba(190,222,255,.07),
      inset 0 -1px 0 rgba(0,0,0,.55),
      inset -1px 0 0 rgba(0,0,0,.26),
      inset 0 0 0 1px rgba(255,255,255,.045),
      inset 0 0 46px -16px rgba(214,232,255,.30) !important;
  }
  html body #view-console .analyzer[data-analyzer].analyzer-themed{
    background:
      var(--gm-frost-ice) padding-box,
      var(--gm-frost-mottle) padding-box,
      var(--gm-grain) padding-box,
      var(--gm-frost-key) padding-box,
      var(--gm-frost-sheen) padding-box,
      linear-gradient(159deg,
        color-mix(in srgb, var(--sig-c) 30%, rgba(18,21,30,.80)) 0%,
        rgba(10,12,19,.80) 50%,
        color-mix(in srgb, var(--sig-c) 14%, rgba(6,8,13,.86)) 100%) padding-box,
      radial-gradient(135% 92% at 50% -14%, color-mix(in srgb, var(--sig-c) 40%, transparent), transparent 54%) padding-box,
      linear-gradient(150deg,
        color-mix(in srgb, var(--sig-c) 88%, #ffffff) 0%,
        color-mix(in srgb, var(--sig-c) 46%, #ffffff) 15%,
        rgba(255,255,255,.05) 44%,
        rgba(0,0,0,.34) 72%,
        color-mix(in srgb, var(--sig-c) 30%, transparent) 100%) border-box !important;
    background-blend-mode: screen, soft-light, soft-light, normal, normal, normal, normal, normal !important;
  }
}

/* ── analyzer cards · touch / phones (the flat 4-layer stack + 2 frost layers = 6, the mobile ceiling) ── */
@media (pointer:coarse), (hover:none), (max-width:820px){
  html body #view-console .analyzer[data-analyzer]:not(.analyzer-themed){
    background:
      var(--gm-frost-ice) padding-box,
      var(--gm-frost-mottle) padding-box,
      var(--gm-grain) padding-box,
      var(--gm-frost-key) padding-box,
      var(--gm-frost-sheen) padding-box,
      linear-gradient(180deg,
        rgba(255,255,255,.055) 0%,
        rgba(255,255,255,.016) 26%,
        rgba(255,255,255,0)    50%) padding-box,
      rgb(15,25,48) padding-box !important;
    background-blend-mode: screen, soft-light, soft-light, normal, normal, normal, normal !important;
  }
  html body #view-console .analyzer[data-analyzer].analyzer-themed{
    background:
      var(--gm-frost-ice) padding-box,
      var(--gm-frost-mottle) padding-box,
      var(--gm-grain) padding-box,
      var(--gm-frost-key) padding-box,
      var(--gm-frost-sheen) padding-box,
      linear-gradient(168deg,
        color-mix(in srgb, var(--sig-c) 10%, transparent) 0%,
        rgba(255,255,255,.050) 15%,
        rgba(255,255,255,.014) 30%,
        rgba(255,255,255,0)    48%) padding-box,
      linear-gradient(180deg,
        rgba(0,0,0,0)   58%,
        rgba(0,0,0,.13) 100%) padding-box,
      rgb(15,25,48) padding-box !important;
    background-blend-mode: screen, soft-light, soft-light, normal, normal, normal, normal, normal !important;
  }
  html body #view-console .analyzer[data-analyzer]:not(.analyzer-themed),
  html body #view-console .analyzer[data-analyzer].analyzer-themed{
    border-color:rgba(204,228,255,.26) !important;
    box-shadow:
      0 1px 2px rgba(0,0,0,.55),
      0 6px 16px -8px rgba(0,0,0,.6),
      inset 0 1px 0 rgba(236,248,255,.22),
      inset 0 -1px 0 rgba(0,0,0,.4),
      inset 0 0 0 1px rgba(255,255,255,.04),
      inset 0 0 36px -14px rgba(214,232,255,.27) !important;
  }
}

/* ── the Trade History panel: frost on the pane itself, lighter ── */
html body #journal-section.th{
  background:
    var(--gm-frost-mottle-soft) padding-box,
    var(--gm-grain) padding-box,
    radial-gradient(90% 60% at 12% -10%, rgba(226,240,255,.085), transparent 56%) padding-box,
    linear-gradient(170deg, rgba(14,26,46,.92), rgba(9,18,34,.94)) padding-box !important;
  background-blend-mode: soft-light, soft-light, normal, normal !important;
  border-color:rgba(176,210,255,.22) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 0 0 1px rgba(255,255,255,.03),
    inset 0 0 52px -22px rgba(214,232,255,.20),
    0 24px 60px -34px rgba(0,0,0,.9) !important;
}
/* ── the history cards: full frost, the card's own colour layers restated beneath.
   ⚠ the card used to be an 8%-alpha tint over the pane; blending frost onto a
   transparent backdrop leaves raw grey noise, so a pane-matched base sits under
   the tint — the colour you see is the same. ── */
html body #journal-section.th .th-card{
  background:
    var(--gm-frost-ice) padding-box,
    var(--gm-frost-mottle) padding-box,
    var(--gm-grain) padding-box,
    radial-gradient(110% 78% at 14% -10%, rgba(226,240,255,.10), rgba(226,240,255,.03) 34%, transparent 56%) padding-box,
    linear-gradient(118deg, transparent 40%, rgba(255,255,255,.024) 47%, rgba(255,255,255,.05) 50%, rgba(255,255,255,.024) 53%, transparent 60%) padding-box,
    linear-gradient(160deg, color-mix(in srgb, var(--c) 9%, rgba(255,255,255,.02)), rgba(255,255,255,.012) 60%, color-mix(in srgb, var(--c) 4%, transparent)) padding-box,
    linear-gradient(170deg, rgb(13,24,44), rgb(9,18,33)) padding-box;
  background-blend-mode: screen, soft-light, soft-light, normal, normal, normal, normal;
  border-color:color-mix(in srgb, var(--c) 32%, rgba(255,255,255,.14));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    inset 0 0 0 1px rgba(255,255,255,.035),
    inset 0 0 30px -12px rgba(214,232,255,.22),
    0 14px 30px -24px rgba(0,0,0,.9),
    0 0 30px -20px color-mix(in srgb, var(--c) 70%, transparent);
}
/* the pending pulse keeps its amber breath, now over the frost rim */
@keyframes thPending{
  0%,100%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.09), inset 0 0 0 1px rgba(255,255,255,.035), inset 0 0 30px -12px rgba(214,232,255,.22), 0 14px 30px -24px rgba(0,0,0,.9), 0 0 22px -14px rgba(255,179,64,.6); }
  50%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.11), inset 0 0 0 1px rgba(255,255,255,.045), inset 0 0 30px -12px rgba(214,232,255,.26), 0 14px 30px -24px rgba(0,0,0,.9), 0 0 34px -10px rgba(255,179,64,.85); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j62 — TRADE HISTORY SCROLLS INSIDE: the header, the Net P/L · Win Rate cards
   and the filter pills stay put; only the win/loss cards scroll, in their own
   pane with a thin rail and soft edge fades that follow the scroll.
   ═══════════════════════════════════════════════════════════════════════════ */
html body #journal-section.th{
  display:flex !important; flex-direction:column !important; align-items:stretch !important;
  min-height:0 !important; overflow:hidden !important;
  max-height:min(80vh, 860px) !important; max-height:min(80dvh, 860px) !important;
}
html body #journal-section.th > *{ flex:none; }
html body #journal-section.th .th-list > li{ flex:0 0 auto !important; }   /* ⚠ overflow:hidden items have min-height 0 in a flex column — they squashed to 42px */
html body #journal-section.th .th-list{
  flex:1 1 auto !important; min-height:0 !important; max-height:none !important; height:auto !important;
  overflow-y:auto !important; overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch; overscroll-behavior-y:auto;
  scrollbar-width:thin; scrollbar-color:rgba(140,180,240,.38) transparent;
  padding:0 4px 0 0 !important; margin:0 -2px 0 0 !important;
  scroll-padding-top:26px;
}
html body #journal-section.th .th-list::-webkit-scrollbar{ width:6px; }
html body #journal-section.th .th-list::-webkit-scrollbar-track{ background:transparent; }
html body #journal-section.th .th-list::-webkit-scrollbar-thumb{ border-radius:99px; background:linear-gradient(180deg, rgba(150,190,250,.42), rgba(110,150,220,.30)); border:1px solid rgba(255,255,255,.06); }
html body #journal-section.th .th-list::-webkit-scrollbar-thumb:hover{ background:linear-gradient(180deg, rgba(170,205,255,.6), rgba(120,165,235,.45)); }
/* edge fades — sticky bands at the top and bottom of the scroll pane, coloured like the
   pane so cards melt into the frame as they leave it; they cancel the list gap they sit in */
html body #journal-section.th .th-list::before,
html body #journal-section.th .th-list::after{
  content:""; display:block; flex:none; position:sticky; left:0; height:22px; pointer-events:none; z-index:3;
}
html body #journal-section.th .th-list::before{ top:0; margin-bottom:-12px; background:linear-gradient(180deg, rgb(12,23,42) 0%, rgba(12,23,42,.88) 30%, rgba(12,23,42,0) 100%); }
html body #journal-section.th .th-list::after{ bottom:0; margin-top:-12px; background:linear-gradient(0deg, rgb(10,19,36) 0%, rgba(10,19,36,.88) 30%, rgba(10,19,36,0) 100%); }
/* where scroll-driven animations exist the fades only show when there is something
   beyond them: the top one appears as you scroll down, the bottom one leaves at the end */
@supports (animation-timeline: scroll()){
  html body #journal-section.th .th-list::before{ animation:thFadeTop linear both; animation-timeline:scroll(nearest block); }
  html body #journal-section.th .th-list::after{ animation:thFadeBottom linear both; animation-timeline:scroll(nearest block); }
  @keyframes thFadeTop{ 0%{ opacity:0 } 4%{ opacity:1 } 100%{ opacity:1 } }
  @keyframes thFadeBottom{ 0%{ opacity:1 } 96%{ opacity:1 } 100%{ opacity:0 } }
}
/* the empty state and the hidden queue card never fight the pane */
html body #journal-section.th #next-trade-card[hidden]{ display:none !important; }
@media (max-width:560px){
  html body #journal-section.th{ max-height:min(84vh, 900px) !important; max-height:min(84dvh, 900px) !important; }
}
@media (prefers-reduced-motion:reduce){
  html body #journal-section.th .th-list::before, html body #journal-section.th .th-list::after{ animation:none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   j63 — 📦 BULK TRADER (gmBulk) · the desk, the floating AI scanner, the dock
   and the records drawer. Built to the reference screenshots: market + trade
   type selects, AI SCAN + the 1-2-3 / Auto / Skip AI / Green / Double / Stop
   pills, the tick count, the big current tick + session P/L, ten digit rings,
   the matching-digit panel, the outcome strip, TICKS · STAKE · NO OF TRADES,
   the two big side buttons, the status line. Everything sits on the console's
   own atmosphere (the section and the body stay transparent).
   ═══════════════════════════════════════════════════════════════════════════ */
body.gm-bulk-active .aether-main > :not(#gm-bulk-sec){ display:none !important; }
body.gm-bulk-active .aether-footer{ display:none !important; }
body.gm-bulk-active{ background:transparent !important; overflow:visible !important; }
body.gm-bulk-active .aether-main{ display:block !important; padding:0 !important; gap:0 !important; contain:none !important; transform:none !important; }
body.gm-bulk-drawer{ overflow:hidden !important; }
.gm-bulk-sec[hidden]{ display:none !important; }
.gm-bulk-sec{
  --bk-bg:rgba(11,20,36,.80); --bk-bg2:rgba(9,17,31,.86); --bk-in:rgba(8,15,28,.92); --bk-line:rgba(96,140,210,.26); --bk-line2:rgba(120,165,235,.42);
  --bk-text:#e6eefc; --bk-dim:#8fa3c2; --bk-mut:#b7c6df; --bk-blue:#3b7dd8; --bk-cyan:#22d3ee; --bk-green:#2ec47a; --bk-red:#ff4d6d; --bk-gold:#f5b53c; --bk-purple:#8b5cf6;
  display:block; position:relative; color:var(--bk-text); font-family:var(--font-body, inherit); background:transparent !important;
}
.gm-bulk-sec *, .gm-bulk-sec *::before, .gm-bulk-sec *::after{ box-sizing:border-box; }
.gm-bulk-sec .bk-wrap{ max-width:1100px; margin:0 auto; padding:10px 12px 150px; display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }   /* ⚠ minmax(0,1fr): an auto track would grow to the pill row's max-content (≈520px) and push the whole desk past a phone's width */
.gm-bulk-sec .bk-wrap > *, .gm-bulk-sec .bk-ctl > *{ min-width:0; }
/* ── title ── */
.gm-bulk-sec .bk-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:2px 2px 0; }
.gm-bulk-sec .bk-title{ display:flex; align-items:center; gap:10px; min-width:0; }
.gm-bulk-sec .bk-title h2{ margin:0; font:800 19px/1.1 var(--font-display, inherit); letter-spacing:.01em; color:#fff; text-transform:none; background:none; -webkit-text-fill-color:currentColor; text-shadow:none; }
.gm-bulk-sec .bk-title-ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:var(--bk-cyan); background:linear-gradient(160deg, rgba(34,211,238,.18), rgba(34,211,238,.05)); border:1px solid rgba(34,211,238,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 18px -8px rgba(34,211,238,.8); }
.gm-bulk-sec .bk-title-ic svg{ width:18px; height:18px; }
.gm-bulk-sec .bk-conn{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--bk-dim); white-space:nowrap; }
.gm-bulk-sec .bk-conn i{ width:8px; height:8px; border-radius:50%; background:#5b6273; }
.gm-bulk-sec .bk-conn i.on{ background:var(--bk-green); box-shadow:0 0 10px var(--bk-green); }
/* ── fields ── */
.gm-bulk-sec .bk-field{ display:grid; gap:7px; min-width:0; }
.gm-bulk-sec .bk-field > u{ text-decoration:none; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--bk-dim); }
.gm-bulk-sec .bk-field input, .gm-bulk-sec .bk-sel select{
  width:100%; height:48px; padding:0 14px; border-radius:9px; color:var(--bk-text); font:700 15px/1 var(--font-body, inherit); letter-spacing:.01em;
  background:var(--bk-in); border:1px solid var(--bk-line); box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 8px 20px -18px rgba(0,0,0,.9); outline:0; appearance:none; -webkit-appearance:none; margin:0;
}
.gm-bulk-sec .bk-field input:focus, .gm-bulk-sec .bk-sel select:focus{ border-color:var(--bk-line2); box-shadow:0 0 0 3px rgba(59,125,216,.18), inset 0 1px 0 rgba(255,255,255,.05); }
.gm-bulk-sec .bk-field input::-webkit-outer-spin-button, .gm-bulk-sec .bk-field input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.gm-bulk-sec .bk-field input[type=number]{ -moz-appearance:textfield; }
.gm-bulk-sec .bk-sel{ position:relative; display:block; }
.gm-bulk-sec .bk-sel::after{ content:""; position:absolute; right:14px; top:50%; width:0; height:0; margin-top:-3px; border-left:6px solid transparent; border-right:6px solid transparent; border-top:7px solid var(--bk-mut); pointer-events:none; }
.gm-bulk-sec .bk-sel select{ padding-right:36px; cursor:pointer; }
.gm-bulk-sec .bk-sel select option, .gm-bulk-sec .bk-sel select optgroup{ background:#0c1526; color:var(--bk-text); }
.gm-bulk-sec .bk-row2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.gm-bulk-sec .bk-hist input{ text-align:center; font-size:17px; }
.gm-bulk-sec .bk-hist small{ font-size:11px; color:var(--bk-dim); margin-top:-2px; }
/* ── AI SCAN + the pills ── */
.gm-bulk-sec .bk-ctl{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; }
.gm-bulk-sec .bk-ctl-l{ display:flex; align-items:center; gap:10px; min-width:0; }
.gm-bulk-sec .bk-scan{
  height:44px; padding:0 18px; border-radius:9px; cursor:pointer; font:800 12px/1 var(--font-body, inherit); letter-spacing:.16em; text-transform:uppercase; color:#d6e8ff;
  background:linear-gradient(180deg, rgba(30,64,130,.85), rgba(15,36,72,.92)); border:1px solid rgba(80,140,230,.75); box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 22px -8px rgba(59,125,216,.9), 0 10px 24px -18px rgba(0,0,0,.9); white-space:nowrap;
  transition:transform .15s ease, filter .15s ease;
}
.gm-bulk-sec .bk-scan:hover{ filter:brightness(1.08); } .gm-bulk-sec .bk-scan:active{ transform:scale(.97); }
.gm-bulk-sec .bk-scan.is-scanning{ color:#eaf4ff; border-color:rgba(120,190,255,.9); animation:bkScanGlow 1.1s ease-in-out infinite; }
@keyframes bkScanGlow{ 0%,100%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 0 18px -8px rgba(59,125,216,.8); } 50%{ box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 0 30px -6px rgba(90,170,255,1); } }
.gm-bulk-sec .bk-scanbar{ position:relative; display:block; width:min(220px, 44vw); height:5px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.gm-bulk-sec .bk-scanbar i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg, #2563eb, #22d3ee); box-shadow:0 0 12px rgba(34,211,238,.8); transition:width .25s ease; }
.gm-bulk-sec .bk-scan-n{ font-size:11px; color:var(--bk-dim); font-variant-numeric:tabular-nums; }
.gm-bulk-sec .bk-pills{ display:inline-flex; align-items:center; gap:6px; padding:5px; border-radius:999px; background:rgba(8,15,28,.75); border:1px solid var(--bk-line); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); max-width:100%; overflow-x:auto; scrollbar-width:none; }
.gm-bulk-sec .bk-pills::-webkit-scrollbar{ display:none; }
.gm-bulk-sec .bk-counter{ display:inline-flex; align-items:center; gap:2px; height:32px; padding:0 12px 0 8px; border-radius:999px; border:1px solid rgba(96,140,210,.34); background:rgba(15,26,46,.9); flex:none; }
.gm-bulk-sec .bk-counter b{ width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:10.5px; font-weight:800; color:var(--bk-dim); transition:all .2s ease; }
.gm-bulk-sec .bk-counter b.on{ color:#fff; background:radial-gradient(circle at 40% 35%, #5aa0ff, #1d4ed8); box-shadow:0 0 12px rgba(59,125,216,.8); }
.gm-bulk-sec .bk-counter i{ width:8px; height:8px; border-radius:50%; background:#3a4356; margin-left:6px; }
.gm-bulk-sec .bk-counter i.on{ background:var(--bk-cyan); box-shadow:0 0 10px var(--bk-cyan); animation:bkPulse 1s ease-in-out infinite; }
@keyframes bkPulse{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(.7); opacity:.6 } }
.gm-bulk-sec .bk-pill{
  --p:#94a3b8; height:32px; padding:0 12px 0 9px; border-radius:999px; display:inline-flex; align-items:center; gap:7px; cursor:pointer; flex:none;
  font:800 10.5px/1 var(--font-body, inherit); letter-spacing:.06em; text-transform:none; color:#c9d6ea; background:rgba(15,26,46,.9); border:1px solid color-mix(in srgb, var(--p) 45%, transparent); box-shadow:none; transition:all .18s ease; white-space:nowrap;
}
.gm-bulk-sec .bk-pill i{ width:10px; height:10px; border-radius:50%; background:color-mix(in srgb, var(--p) 55%, #1a2740); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08); }
.gm-bulk-sec .bk-pill.auto{ --p:#2ec47a; } .gm-bulk-sec .bk-pill.skip{ --p:#94a3b8; } .gm-bulk-sec .bk-pill.green{ --p:#2ec47a; } .gm-bulk-sec .bk-pill.dbl{ --p:#f5b53c; } .gm-bulk-sec .bk-pill.stop{ --p:#ff4d6d; }
.gm-bulk-sec .bk-pill.on{ color:#fff; background:color-mix(in srgb, var(--p) 22%, rgba(15,26,46,.9)); border-color:color-mix(in srgb, var(--p) 85%, transparent); box-shadow:0 0 16px -6px var(--p); }
.gm-bulk-sec .bk-pill.on i{ background:var(--p); box-shadow:0 0 10px var(--p); }
.gm-bulk-sec .bk-pill.stop:active{ background:rgba(255,77,109,.3); }
/* ── current tick + session P/L ── */
.gm-bulk-sec .bk-tick{ display:flex; align-items:center; justify-content:center; gap:14px; padding:6px 0 2px; }
.gm-bulk-sec .bk-tick-l{ display:grid; justify-items:center; gap:4px; }
.gm-bulk-sec .bk-tick-l u, .gm-bulk-sec .bk-pl u{ text-decoration:none; font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--bk-dim); }
.gm-bulk-sec .bk-tick-l b{ font:800 clamp(28px, 8vw, 40px)/1 var(--font-display, inherit); color:var(--bk-red); letter-spacing:-.01em; font-variant-numeric:tabular-nums; text-shadow:0 0 22px rgba(255,77,109,.35); }
.gm-bulk-sec .bk-tick-l b.live{ animation:bkTick .35s ease; }
@keyframes bkTick{ from{ opacity:.55; transform:translateY(2px) } to{ opacity:1; transform:none } }
.gm-bulk-sec .bk-pl{ display:grid; justify-items:center; gap:5px; padding:10px 14px; border-radius:12px; background:var(--bk-in); border:1px solid var(--bk-line); box-shadow:inset 0 1px 0 rgba(255,255,255,.05); min-width:104px; }
.gm-bulk-sec .bk-pl u{ font-size:9px; letter-spacing:.14em; }
.gm-bulk-sec .bk-pl b{ font:800 16px/1 var(--font-display, inherit); color:#fff; font-variant-numeric:tabular-nums; }
.gm-bulk-sec .bk-pl.pos b{ color:var(--bk-green); } .gm-bulk-sec .bk-pl.neg b{ color:var(--bk-red); }
/* ── the digit rings ── */
.gm-bulk-sec .bk-rings{ display:grid; gap:6px; padding:6px 0 14px; }
.gm-bulk-sec .bk-rings.ten{ grid-template-columns:repeat(10, minmax(0,1fr)); }
.gm-bulk-sec .bk-rings.five{ grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
.gm-bulk-sec .bk-ring{ position:relative; aspect-ratio:1; width:100%; padding:0; margin:0; border:0; background:transparent; cursor:pointer; display:grid; place-items:center; color:var(--bk-text); border-radius:50%; -webkit-tap-highlight-color:transparent; transition:transform .15s ease; }
.gm-bulk-sec .bk-ring:active{ transform:scale(.95); }
.gm-bulk-sec .bk-ring svg{ position:absolute; inset:0; width:100%; height:100%; }
.gm-bulk-sec .bk-ring circle{ fill:none; stroke-width:2.6; }
.gm-bulk-sec .bk-ring circle.bg{ stroke:rgba(90,120,170,.22); }
.gm-bulk-sec .bk-ring circle.fg{ stroke:rgba(120,160,220,.55); stroke-linecap:round; transition:stroke-dasharray .4s ease; }
.gm-bulk-sec .bk-ring.hot1 circle.fg{ stroke:var(--bk-cyan); filter:drop-shadow(0 0 4px rgba(34,211,238,.8)); }
.gm-bulk-sec .bk-ring.hot2 circle.fg{ stroke:#3b82f6; }
.gm-bulk-sec .bk-ring.cold1 circle.fg{ stroke:var(--bk-red); }
.gm-bulk-sec .bk-ring.cold2 circle.fg{ stroke:var(--bk-gold); }
.gm-bulk-sec .bk-ring.sel circle.fg{ stroke:var(--bk-gold); }
.gm-bulk-sec .bk-ring.sel::before{ content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--bk-cyan); box-shadow:0 0 14px rgba(34,211,238,.55), inset 0 0 10px rgba(34,211,238,.15); }
.gm-bulk-sec .bk-ring b{ position:relative; font:800 clamp(12px, 3.6vw, 17px)/1 var(--font-display, inherit); color:#fff; }
.gm-bulk-sec .bk-ring u{ position:relative; text-decoration:none; font-size:clamp(6px, 1.9vw, 9.5px); font-weight:600; color:var(--bk-dim); letter-spacing:0; margin-top:1px; white-space:nowrap; }
.gm-bulk-sec .bk-rings.five .bk-ring b{ font-size:clamp(16px, 5vw, 24px); } .gm-bulk-sec .bk-rings.five .bk-ring u{ font-size:clamp(9px, 2.6vw, 12px); }
.gm-bulk-sec .bk-rings.five .bk-ring circle{ stroke-width:2; }
.gm-bulk-sec .bk-ring.last::after{ content:""; position:absolute; left:50%; bottom:-11px; width:0; height:0; margin-left:-5px; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:7px solid var(--bk-red); filter:drop-shadow(0 0 4px rgba(255,77,109,.7)); }
.gm-bulk-sec .bk-rings.five .bk-ring.last::after{ bottom:-14px; }
/* ── matching digits ── */
.gm-bulk-sec .bk-match{ padding:12px 14px 10px; border-radius:12px; background:var(--bk-bg); border:1px solid var(--bk-line); box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 14px 30px -26px rgba(0,0,0,.9); display:grid; gap:10px; }
.gm-bulk-sec .bk-match-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.gm-bulk-sec .bk-match-h b{ display:block; font:800 14px/1.2 var(--font-display, inherit); color:#fff; }
.gm-bulk-sec .bk-match-h small{ display:block; margin-top:4px; font-size:11px; color:var(--bk-dim); }
.gm-bulk-sec .bk-match-n{ font:800 14px/1.2 var(--font-display, inherit); color:var(--bk-gold); white-space:nowrap; }
.gm-bulk-sec .bk-match-row{ display:flex; flex-wrap:wrap; gap:6px; }
.gm-bulk-sec .bk-mchip{ width:52px; padding:7px 0 6px; border-radius:8px; display:grid; justify-items:center; gap:2px; background:rgba(15,26,46,.9); border:1px solid var(--bk-line); }
.gm-bulk-sec .bk-mchip b{ font:800 13px/1 var(--font-display, inherit); color:var(--bk-gold); }
.gm-bulk-sec .bk-mchip u{ text-decoration:none; font-size:11px; font-weight:700; color:#fff; }
.gm-bulk-sec .bk-mchip.last{ border-color:rgba(34,211,238,.6); box-shadow:0 0 12px -4px rgba(34,211,238,.6); }
.gm-bulk-sec .bk-match-note{ font-size:10.5px; color:var(--bk-dim); }
/* ── the outcome strip ── */
.gm-bulk-sec .bk-strip{ display:grid; grid-template-columns:repeat(var(--n, 18), minmax(0,1fr)); gap:4px; padding:0 2px; }
.gm-bulk-sec .bk-chip{ min-width:0; height:26px; border-radius:6px; display:grid; place-items:center; font:800 11px/1 var(--font-display, inherit); color:#fff; background:rgba(28,40,64,.9); border:1px solid rgba(96,140,210,.3); }
.gm-bulk-sec .bk-chip.win.g{ background:linear-gradient(180deg, #3bd98a, #1fa864); border-color:rgba(120,255,190,.5); box-shadow:0 0 10px -3px rgba(46,196,122,.8); }
.gm-bulk-sec .bk-chip.win.r{ background:linear-gradient(180deg, #ff6b87, #e63a5a); border-color:rgba(255,160,180,.5); box-shadow:0 0 10px -3px rgba(255,77,109,.8); }
.gm-bulk-sec .bk-chip.miss{ color:#9fb0cc; background:rgba(20,30,50,.9); border-color:rgba(120,165,235,.35); }
.gm-bulk-sec .bk-chip.last{ outline:2px solid rgba(34,211,238,.7); outline-offset:1px; }
/* ── ticks · stake · count ── */
.gm-bulk-sec .bk-inputs{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.gm-bulk-sec .bk-inputs u{ text-align:center; }
.gm-bulk-sec .bk-inputs input{ text-align:center; font-size:16px; }
/* ── the two side buttons ── */
.gm-bulk-sec .bk-sides{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.gm-bulk-sec .bk-side{
  --c:#2ec47a; position:relative; min-height:82px; padding:12px 14px; border-radius:12px; cursor:pointer; text-align:left; display:flex; flex-direction:column; justify-content:space-between; gap:8px; color:#fff; overflow:hidden;
  background:linear-gradient(160deg, color-mix(in srgb, var(--c) 96%, #fff), color-mix(in srgb, var(--c) 82%, #000)); border:1px solid color-mix(in srgb, var(--c) 60%, #fff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 14px 30px -18px color-mix(in srgb, var(--c) 80%, transparent); transition:transform .15s ease, filter .2s ease, opacity .2s ease;
}
.gm-bulk-sec .bk-side.r{ --c:#ff4d6d; }
.gm-bulk-sec .bk-side:active{ transform:scale(.985); }
.gm-bulk-sec .bk-side.dim{ opacity:.55; filter:saturate(.75); }
.gm-bulk-sec .bk-side.on{ box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 0 0 2px rgba(255,255,255,.35), 0 16px 34px -16px color-mix(in srgb, var(--c) 90%, transparent); }
.gm-bulk-sec .bk-side-l{ display:grid; gap:2px; font:800 14px/1.15 var(--font-display, inherit); color:rgba(255,255,255,.96); }
.gm-bulk-sec .bk-side-l small{ font:800 9.5px/1.2 var(--font-body, inherit); letter-spacing:.02em; color:rgba(255,255,255,.85); }
.gm-bulk-sec .bk-side b{ font:800 clamp(17px, 5vw, 22px)/1 var(--font-display, inherit); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
/* ── the status line ── */
.gm-bulk-sec .bk-msg-in{ display:flex; align-items:flex-start; gap:10px; padding:12px 14px; border-radius:10px; background:var(--bk-in); border:1px solid var(--bk-line2); box-shadow:inset 0 1px 0 rgba(255,255,255,.05); font-size:13px; line-height:1.45; color:#dbe6f7; }
.gm-bulk-sec .bk-msg-in i{ flex:none; width:8px; height:8px; border-radius:50%; margin-top:6px; background:var(--bk-blue); box-shadow:0 0 10px var(--bk-blue); }
.gm-bulk-sec .bk-msg-in.ok i{ background:var(--bk-green); box-shadow:0 0 10px var(--bk-green); }
.gm-bulk-sec .bk-msg-in.warn{ border-color:rgba(255,177,71,.45); } .gm-bulk-sec .bk-msg-in.warn i{ background:var(--bk-gold); box-shadow:0 0 10px var(--bk-gold); }
.gm-bulk-sec .bk-honest{ margin:0; font-size:11px; line-height:1.5; color:var(--bk-dim); padding:0 76px 0 4px; }
.gm-bulk-sec .bk-honest.in{ padding:10px 2px 0; }
/* ── the floating AI scanner ── */
.gm-bulk-sec .bk-fab{
  position:fixed; right:14px; bottom:calc(74px + env(safe-area-inset-bottom, 0px)); z-index:9450; width:58px; height:58px; border-radius:50%; cursor:pointer; padding:0; border:1px solid rgba(140,190,255,.55);
  background:radial-gradient(circle at 35% 30%, #2f5fd8, #0b1a3a 70%); color:#eaf4ff; font:800 15px/1 var(--font-display, inherit); letter-spacing:.06em; display:grid; place-items:center;
  box-shadow:0 0 0 1px rgba(255,255,255,.06), 0 18px 40px -16px rgba(0,0,0,.9), 0 0 30px -8px rgba(59,125,216,.9); -webkit-tap-highlight-color:transparent; transition:transform .15s ease;
}
.gm-bulk-sec .bk-fab:active{ transform:scale(.94); }
.gm-bulk-sec .bk-fab-t{ position:relative; z-index:1; }
.gm-bulk-sec .bk-fab-ring{ position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(34,211,238,.55); animation:bkFab 2.2s ease-out infinite; pointer-events:none; }
@keyframes bkFab{ 0%{ transform:scale(.85); opacity:.9 } 100%{ transform:scale(1.35); opacity:0 } }
/* ── the dock ── */
.gm-bulk-sec .bk-dock{
  position:fixed; left:0; right:0; bottom:0; z-index:9440; height:calc(56px + env(safe-area-inset-bottom, 0px)); padding:0 14px env(safe-area-inset-bottom, 0px); display:flex; align-items:center; gap:12px;
  background:rgba(7,12,28,.9); border-top:1px solid rgba(96,140,210,.3); box-shadow:0 -14px 34px -22px rgba(0,0,0,.9); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.gm-bulk-sec .bk-dock-btn{ width:52px; height:40px; border-radius:10px; border:1px solid var(--bk-line); background:rgba(15,26,46,.9); color:#dbe6f7; cursor:pointer; display:grid; place-items:center; padding:0; margin:0 auto; }
.gm-bulk-sec .bk-dock-btn svg{ width:22px; height:22px; }
.gm-bulk-sec .bk-dock-sum{ position:absolute; left:14px; top:50%; transform:translateY(-50%); display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--bk-dim); max-width:38%; overflow:hidden; white-space:nowrap; }
.gm-bulk-sec .bk-dock-sum b{ font-size:13px; } .gm-bulk-sec .bk-dock-sum b.pos{ color:var(--bk-green); } .gm-bulk-sec .bk-dock-sum b.neg{ color:var(--bk-red); }
.gm-bulk-sec .bk-dock-sum em{ font-style:normal; color:var(--bk-gold); }
/* ── the records drawer ── */
.gm-bulk-sec .bk-sheet{ position:fixed; inset:0; z-index:9600; background:rgba(4,8,16,.6); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); display:flex; align-items:flex-end; }
.gm-bulk-sec .bk-sheet[hidden]{ display:none; }
.gm-bulk-sec .bk-sheet-in{ width:100%; max-width:1100px; margin:0 auto; height:min(92vh, 100%); height:min(92dvh, 100%); display:flex; flex-direction:column; background:linear-gradient(180deg, #0c1526, #080f1e); border:1px solid rgba(96,140,210,.3); border-bottom:0; border-radius:20px 20px 0 0; box-shadow:0 -24px 60px -30px rgba(0,0,0,.95); animation:bkUp .28s cubic-bezier(.22,.61,.36,1) both; overflow:hidden; }
@keyframes bkUp{ from{ transform:translateY(40px); opacity:0 } to{ transform:none; opacity:1 } }
.gm-bulk-sec .bk-sheet-top{ display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-bottom:1px solid rgba(96,140,210,.2); flex:none; }
.gm-bulk-sec .bk-sheet-close{ width:64px; height:40px; border-radius:10px; border:1px solid var(--bk-line); background:rgba(15,26,46,.9); color:#dbe6f7; cursor:pointer; display:grid; place-items:center; padding:0; margin:0 auto 0 0; }
.gm-bulk-sec .bk-sheet-close svg{ width:22px; height:22px; }
.gm-bulk-sec .bk-reset{ height:40px; padding:0 22px; border-radius:10px; border:1px solid rgba(160,190,240,.5); background:rgba(15,26,46,.9); color:#fff; font:700 14px/1 var(--font-body, inherit); cursor:pointer; }
.gm-bulk-sec .bk-tabs{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); flex:none; border-bottom:1px solid rgba(96,140,210,.18); background:rgba(8,15,28,.5); }
.gm-bulk-sec .bk-tab{ position:relative; height:46px; border:0; background:transparent; color:var(--bk-mut); font:600 14px/1 var(--font-body, inherit); cursor:pointer; }
.gm-bulk-sec .bk-tab.on{ color:#fff; font-weight:800; }
.gm-bulk-sec .bk-tab.on::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--bk-red); box-shadow:0 0 12px rgba(255,77,109,.7); }
.gm-bulk-sec .bk-sheet-body{ flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 14px 40px; display:grid; gap:14px; align-content:start; scrollbar-width:thin; }
.gm-bulk-sec .bk-tools{ display:flex; gap:12px; flex-wrap:wrap; }
.gm-bulk-sec .bk-btn{ height:46px; padding:0 20px; border-radius:9px; border:1px solid rgba(160,190,240,.4); background:rgba(15,26,46,.9); color:#fff; font:700 14px/1 var(--font-body, inherit); cursor:pointer; }
.gm-bulk-sec .bk-btn.on{ border-color:rgba(120,190,255,.8); box-shadow:0 0 16px -6px rgba(59,125,216,.9); }
.gm-bulk-sec .bk-thead{ display:grid; grid-template-columns:minmax(80px, .8fr) minmax(0, 1.4fr) minmax(0, 1fr); gap:10px; padding:8px 6px 10px; font-size:12px; font-weight:700; color:#dbe6f7; border-bottom:1px solid rgba(96,140,210,.18); }
.gm-bulk-sec .bk-thead span:last-child{ text-align:right; }
.gm-bulk-sec .bk-tbody{ display:grid; }
.gm-bulk-sec .bk-tr{ display:grid; grid-template-columns:minmax(80px, .8fr) minmax(0, 1.4fr) minmax(0, 1fr); gap:10px; align-items:center; padding:14px 6px; border-bottom:1px solid rgba(96,140,210,.14); }
.gm-bulk-sec .bk-tr.pend{ background:linear-gradient(90deg, rgba(245,181,60,.06), transparent); }
.gm-bulk-sec .bk-td.type{ display:flex; align-items:center; gap:12px; min-width:0; }
.gm-bulk-sec .bk-mk{ display:inline-flex; align-items:center; gap:4px; }
.gm-bulk-sec .bk-mk b{ padding:3px 6px; border-radius:6px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); font:800 10px/1 var(--font-body, inherit); color:#fff; }
.gm-bulk-sec .bk-mk i{ padding:3px 5px; border-radius:99px; background:rgba(255,77,109,.18); border:1px solid rgba(255,77,109,.45); font:800 8.5px/1 var(--font-body, inherit); font-style:normal; color:#ffb3c0; }
.gm-bulk-sec .bk-ct{ display:inline-grid; justify-items:center; gap:2px; color:var(--bk-green); }
.gm-bulk-sec .bk-ct.r{ color:var(--bk-red); }
.gm-bulk-sec .bk-ct svg{ width:22px; height:22px; }
.gm-bulk-sec .bk-ct u{ text-decoration:none; font:800 9.5px/1 var(--font-body, inherit); letter-spacing:.04em; color:inherit; white-space:nowrap; }
.gm-bulk-sec .bk-td.spot{ display:grid; gap:8px; min-width:0; }
.gm-bulk-sec .bk-td.spot > div{ display:flex; align-items:center; gap:10px; font-size:13px; color:#dbe6f7; font-variant-numeric:tabular-nums; min-width:0; }
.gm-bulk-sec .bk-td.spot span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gm-bulk-sec .bk-td.spot i{ flex:none; width:16px; height:16px; border-radius:50%; border:2px solid #e8eef7; }
.gm-bulk-sec .bk-td.spot i.in{ border-color:#ff4d6d; background:radial-gradient(circle, #ff4d6d 0 45%, transparent 50%); }
.gm-bulk-sec .bk-td.pl{ display:grid; justify-items:end; gap:8px; text-align:right; }
.gm-bulk-sec .bk-td.pl b{ font-size:13px; font-weight:600; color:#dbe6f7; white-space:nowrap; }
.gm-bulk-sec .bk-td.pl span{ font-size:13px; font-weight:700; white-space:nowrap; }
.gm-bulk-sec .bk-td.pl .pos{ color:var(--bk-green); } .gm-bulk-sec .bk-td.pl .neg{ color:var(--bk-red); } .gm-bulk-sec .bk-td.pl .pend{ color:var(--bk-gold); } .gm-bulk-sec .bk-td.pl .stale{ color:var(--bk-dim); }
.gm-bulk-sec .bk-td.detail{ grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px 14px; font-size:11px; color:var(--bk-dim); padding-top:2px; }
.gm-bulk-sec .bk-totals{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px 12px; padding:22px 6px 6px; text-align:center; }
.gm-bulk-sec .bk-totals > div{ display:grid; gap:10px; justify-items:center; position:relative; }
.gm-bulk-sec .bk-totals u{ text-decoration:none; font-size:12.5px; font-weight:700; color:#dbe6f7; }
.gm-bulk-sec .bk-totals b{ font-size:14px; font-weight:600; color:#dbe6f7; font-variant-numeric:tabular-nums; }
.gm-bulk-sec .bk-totals b.pos{ color:var(--bk-green); } .gm-bulk-sec .bk-totals b.neg{ color:var(--bk-red); }
.gm-bulk-sec .bk-totals small{ position:absolute; top:-18px; right:0; font-size:10.5px; color:#cbd5e1; text-decoration:underline dotted; cursor:pointer; }
.gm-bulk-sec .bk-what{ margin:0; padding:10px 12px; border-radius:10px; background:rgba(15,26,46,.9); border:1px solid var(--bk-line); font-size:12px; line-height:1.5; color:var(--bk-mut); }
.gm-bulk-sec .bk-empty{ padding:24px 14px; border-radius:12px; border:1px dashed var(--bk-line); text-align:center; display:grid; gap:4px; }
.gm-bulk-sec .bk-empty b{ font:800 14px/1.2 var(--font-display, inherit); color:#fff; } .gm-bulk-sec .bk-empty small{ font-size:11.5px; color:var(--bk-dim); }
/* summary */
.gm-bulk-sec .bk-sum-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.gm-bulk-sec .bk-sum-c{ padding:14px; border-radius:12px; background:var(--bk-bg); border:1px solid var(--bk-line); display:grid; gap:6px; box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.gm-bulk-sec .bk-sum-c.hero{ grid-column:1 / -1; }
.gm-bulk-sec .bk-sum-c u{ text-decoration:none; font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--bk-dim); }
.gm-bulk-sec .bk-sum-c b{ font:800 20px/1 var(--font-display, inherit); color:#fff; font-variant-numeric:tabular-nums; }
.gm-bulk-sec .bk-sum-c.hero b{ font-size:30px; }
.gm-bulk-sec .bk-sum-c.pos b, .gm-bulk-sec .bk-sum-c b.pos{ color:var(--bk-green); } .gm-bulk-sec .bk-sum-c.neg b, .gm-bulk-sec .bk-sum-c b.neg{ color:var(--bk-red); }
.gm-bulk-sec .bk-sum-c small{ font-size:11.5px; color:var(--bk-dim); }
.gm-bulk-sec .bk-sum-curve{ display:grid; gap:8px; padding:14px; border-radius:12px; background:var(--bk-bg); border:1px solid var(--bk-line); }
.gm-bulk-sec .bk-sum-curve u{ text-decoration:none; font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--bk-dim); }
.gm-bulk-sec .bk-curve{ width:100%; height:90px; display:block; }
.gm-bulk-sec .bk-curve .zero{ stroke:rgba(255,255,255,.14); stroke-dasharray:3 4; }
.gm-bulk-sec .bk-curve path{ fill:none; stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.gm-bulk-sec .bk-curve path.pos{ stroke:var(--bk-green); filter:drop-shadow(0 0 6px rgba(46,196,122,.6)); } .gm-bulk-sec .bk-curve path.neg{ stroke:var(--bk-red); filter:drop-shadow(0 0 6px rgba(255,77,109,.6)); }
/* journal */
.gm-bulk-sec .bk-log{ display:grid; gap:6px; }
.gm-bulk-sec .bk-log-r{ display:grid; grid-template-columns:76px minmax(0,1fr); gap:10px; padding:9px 12px; border-radius:9px; background:rgba(15,26,46,.7); border:1px solid rgba(96,140,210,.16); font-size:12.5px; line-height:1.4; color:#dbe6f7; border-left-width:3px; }
.gm-bulk-sec .bk-log-r time{ font-size:11px; color:var(--bk-dim); font-variant-numeric:tabular-nums; padding-top:1px; }
.gm-bulk-sec .bk-log-r.scan{ border-left-color:var(--bk-blue); } .gm-bulk-sec .bk-log-r.fire{ border-left-color:var(--bk-cyan); } .gm-bulk-sec .bk-log-r.win{ border-left-color:var(--bk-green); } .gm-bulk-sec .bk-log-r.loss{ border-left-color:var(--bk-red); } .gm-bulk-sec .bk-log-r.warn{ border-left-color:var(--bk-gold); } .gm-bulk-sec .bk-log-r.hold{ border-left-color:#94a3b8; } .gm-bulk-sec .bk-log-r.mode{ border-left-color:var(--bk-purple); }
/* the header entry */
.aether-header.gh4 .bulk-open-btn.gh-link{ height:44px !important; padding:0 !important; border-radius:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--g-text) !important; font:500 17px/1 var(--font-body, inherit) !important; letter-spacing:0 !important; text-transform:none !important; transform:none !important; filter:none !important; min-height:0; cursor:pointer; appearance:none; }
.aether-header.gh4 .bulk-open-btn.gh-link:hover, .aether-header.gh4 .bulk-open-btn.gh-link.active{ color:#fff !important; }
@media (max-width:900px){ .aether-header.gh4 .bulk-open-btn.gh-link{ font-size:14px !important; height:38px !important; } }
@media (max-width:420px){ .aether-header.gh4 .bulk-open-btn.gh-link{ font-size:13.5px !important; } .aether-header.gh4:has(#balance-chip:not([hidden])) .bulk-open-btn.gh-link{ font-size:13px !important; } }
/* wide screens: the reference's two-column rhythm */
@media (min-width:700px){
  .gm-bulk-sec .bk-wrap{ padding:16px 18px 150px; gap:14px; }
  .gm-bulk-sec .bk-rings.ten .bk-ring{ max-width:96px; margin:0 auto; }
  .gm-bulk-sec .bk-rings.five .bk-ring{ max-width:150px; margin:0 auto; }
  .gm-bulk-sec .bk-sum-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  .gm-bulk-sec .bk-sum-c.hero{ grid-column:1 / -1; }
  .gm-bulk-sec .bk-strip{ gap:6px; max-width:720px; margin:0 auto; width:100%; } .gm-bulk-sec .bk-chip{ height:30px; font-size:12px; }
}
@media (max-width:400px){
  .gm-bulk-sec .bk-row2{ gap:8px; } .gm-bulk-sec .bk-inputs{ gap:8px; } .gm-bulk-sec .bk-sides{ gap:8px; }
  .gm-bulk-sec .bk-field input, .gm-bulk-sec .bk-sel select{ height:44px; padding:0 10px; font-size:14px; }
  .gm-bulk-sec .bk-sel select{ padding-right:28px; } .gm-bulk-sec .bk-sel::after{ right:10px; }
  .gm-bulk-sec .bk-rings.ten{ gap:3px; }
  .gm-bulk-sec .bk-mchip{ width:46px; }
  .gm-bulk-sec .bk-strip{ gap:3px; } .gm-bulk-sec .bk-chip{ height:24px; font-size:10px; }
  .gm-bulk-sec .bk-side{ min-height:76px; padding:10px 12px; }
  .gm-bulk-sec .bk-totals{ gap:18px 8px; }
  .gm-bulk-sec .bk-totals u{ font-size:11.5px; } .gm-bulk-sec .bk-totals b{ font-size:13px; }
  .gm-bulk-sec .bk-tr, .gm-bulk-sec .bk-thead{ grid-template-columns:minmax(70px, .8fr) minmax(0, 1.3fr) minmax(0, 1fr); gap:8px; }
}
@media (prefers-reduced-motion:reduce){
  .gm-bulk-sec .bk-fab-ring, .gm-bulk-sec .bk-counter i.on, .gm-bulk-sec .bk-scan.is-scanning{ animation:none !important; }
  .gm-bulk-sec .bk-sheet-in{ animation:none !important; }
}
/* phones: the pill row wraps so Double and Stop are never off the edge */
@media (max-width:480px){
  .gm-bulk-sec .bk-pills{ flex-wrap:wrap; border-radius:18px; gap:5px; padding:6px; overflow:visible; }
  .gm-bulk-sec .bk-pill{ height:30px; padding:0 10px 0 8px; font-size:10px; }
  .gm-bulk-sec .bk-counter{ height:30px; }
}

/* j66 — Bulk Trader: payout line on the side buttons, rings Deriv does not take, the sheet's live line */
.gm-bulk-sec .bk-side-l .bk-side-q{ font:600 10px/1.25 var(--font-body, inherit); letter-spacing:0; color:rgba(255,255,255,.82); text-transform:none; }
.gm-bulk-sec .bk-ring.off{ opacity:.38; }
.gm-bulk-sec .bk-ring.off circle.fg{ stroke:rgba(120,160,220,.3); }
.gm-bulk-sec .bk-sheet-live{ flex:1 1 auto; min-width:0; text-align:center; font-size:12px; color:var(--bk-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 8px; }
.gm-bulk-sec .bk-sheet-live b.pos{ color:var(--bk-green); } .gm-bulk-sec .bk-sheet-live b.neg{ color:var(--bk-red); }
.gm-bulk-sec .bk-sheet-live em{ font-style:normal; color:var(--bk-gold); } .gm-bulk-sec .bk-sheet-live u{ text-decoration:none; color:var(--bk-cyan); }
.gm-bulk-sec .bk-sheet-in{ height:min(80vh, 100%); height:min(80dvh, 100%); }
.gm-bulk-sec .bk-sheet-close{ margin:0; }
/* j69 — Bulk Trader: hidden means hidden, the side a digit cannot take, the armed Reset */
.gm-bulk-sec [hidden]{ display:none !important; }
.gm-bulk-sec .bk-side.na{ opacity:.42; filter:saturate(.6); }
.gm-bulk-sec .bk-side-l .bk-side-ai{ font:800 9.5px/1.2 var(--font-body, inherit); letter-spacing:.02em; color:rgba(255,255,255,.85); }
.gm-bulk-sec .bk-reset.armed{ background:linear-gradient(160deg, rgba(255,77,109,.38), rgba(255,77,109,.18)); border-color:rgba(255,120,140,.8); color:#fff; box-shadow:0 0 18px -6px rgba(255,77,109,.9); }
.gm-bulk-sec .bk-sheet-body{ overscroll-behavior:contain; }
/* the drawer's rail matches the desk, not the platform orange */
.gm-bulk-sec .bk-sheet-body{ scrollbar-width:thin; scrollbar-color:rgba(140,180,240,.38) transparent; }
.gm-bulk-sec .bk-sheet-body::-webkit-scrollbar{ width:6px; }
.gm-bulk-sec .bk-sheet-body::-webkit-scrollbar-track{ background:transparent; }
.gm-bulk-sec .bk-sheet-body::-webkit-scrollbar-thumb{ border-radius:99px; background:rgba(140,180,240,.38); }
body.gm-bulk-active::-webkit-scrollbar-thumb{ background:rgba(140,162,196,.34) !important; border-radius:8px; }
