/*
 * Public-TV campaign cockpit constitution.
 * Font scale at 1080p: 10 / 12 / 16 / 24 / 112; viewport unit scales screen geometry.
 * Exceptions: 20px brand/nodes, 32px outlook/mobile, 40/48px currency/mobile, hero is the sole display accent.
 * Container-fit min() sizing derives from declared display tiers and real money character count.
 * Spacing: 8px grid. Exceptions: 12px gutters/padding, 2px status points and SVG geometry.
 * Palette: #05091b base; #0b1430 panels; #f2f6ff text; #9aaaca secondary;
 * #22c5d1 Moras/observed; #ffca6a prediction; #a087ff targets; #ff637b failures.
 * Fonts: installed PingFang SC/Arial Chinese and Menlo numeric. No locked brand asset modifications.
 * Brand exception: the user-supplied Mora portrait replaces only the placeholder M; the image is unchanged.
 * Semantics: observed hourly sparklines only, neutral missing target arcs, canonical forecast untouched.
 * Energy hero: forecast is the sole gold display accent; observed NY sample follows; monthly warehouse totals sit below.
 * Approved no-tray prototype: cyan/violet decorative orbit glow and particle trails; no daily target.
 * Energy type tiers: 12/16/24/32/96 scaled px; 20px mobile readout exception. Spacing: 8px grid.
 * Motion: 12/18s traces, 48/64s rotation; all follow the page motion gate and reduced-motion preference.
 * V2 type exceptions: 13/14/15/17/18/22/26/38px for dense panel hierarchy; 200px KPI row and 224px bottom deck.
 * V2 tints #071229/#c7b8ff/#7be6ff/#9ff3ff extend the navy, violet and cyan palette.
 * Prototype glow exceptions: #ffd984 gold, #cdbdff violet, #2bd7e1/#71f6ff/#31d5df/#7bf6ff cyan; 17px supply and 26px gap callout tiers.
 * The orbit is decorative and does not encode conversion or order events.
 * Motion exception: a quiet 14s cyan packet loop traces the six-metric circuit; it carries no event count or rate.
 * Commerce intel remains in the details dialog; animation never implies a new order.
 * The ridge is observed hourly GMV, with missing-hour breaks; depth strokes repeat that sequence; corridor shows independent event grains.
 * Desktop geometry scales down with the available viewport; only phone layouts scroll.
 * KPI row reserves 208 units for all trend/DoD lines, including the TTS follower annotation.
 * Variants: violet stage is the campaign treatment; cyan stage is the control-room treatment.
 */
.black-friday-page {
  --bf-unit: min(0.0520833333vw, 0.0925925926vh);
  --bf-unit: min(0.0520833333vw, 0.0925925926dvh);
  --bf-caption: calc(10 * var(--bf-unit));
  --bf-bg: #05091b; --bf-panel: #0b1430; --bf-text: #f2f6ff; --bf-muted: #9aaaca;
  --bf-actual: #22c5d1; --bf-forecast: #ffca6a; --bf-target: #a087ff; --bf-danger: #ff637b;
  box-sizing: border-box; color: var(--bf-text); font-family: "PingFang SC", Arial, sans-serif;
  font-size: calc(12 * var(--bf-unit)); line-height: 1.5; font-variant-numeric: tabular-nums;
  width: 100%; height: 100vh; height: 100dvh; min-height: 0; padding: calc(16 * var(--bf-unit)) calc(24 * var(--bf-unit));
  display: grid; grid-template-rows: calc(60 * var(--bf-unit)) calc(24 * var(--bf-unit)) calc(208 * var(--bf-unit)) minmax(0, 1fr) calc(32 * var(--bf-unit)); gap: calc(12 * var(--bf-unit));
  overflow: hidden; position: relative;
  background: radial-gradient(ellipse at 50% 28%, rgba(31,67,124,.24), transparent 48%), radial-gradient(ellipse at 6% 90%, rgba(34,197,209,.07), transparent 35%), #05091b;
}
.black-friday-page::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(rgba(154,170,202,.025) calc(1 * var(--bf-unit)), transparent calc(1 * var(--bf-unit))), linear-gradient(90deg, rgba(154,170,202,.025) calc(1 * var(--bf-unit)), transparent calc(1 * var(--bf-unit)));
  background-size: calc(64 * var(--bf-unit)) calc(64 * var(--bf-unit)); mask-image: linear-gradient(transparent, rgba(0,0,0,.5));
}
.black-friday-page *, .black-friday-page *::before, .black-friday-page *::after { box-sizing: border-box; }
.black-friday-page button, .black-friday-page input { font: inherit; }
.black-friday-page button { cursor: pointer; }
.black-friday-page b, .black-friday-page strong, .bf-clock { font-family: Menlo, "PingFang SC", Arial, sans-serif; font-weight: 500; }
.black-friday-page small, .black-friday-page em { font-size: var(--bf-caption); font-style: normal; }
.black-friday-page button:focus-visible { outline: calc(2 * var(--bf-unit)) solid var(--bf-actual); outline-offset: calc(3 * var(--bf-unit)); }
.bf-tv-head { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; position: relative; }
.bf-tv-head::after { content: ''; position: absolute; bottom: calc(-8 * var(--bf-unit)); left: 0; right: 0; height: calc(1 * var(--bf-unit)); background: linear-gradient(90deg, transparent, rgba(34,197,209,.3) 25%, rgba(160,135,255,.8) 50%, rgba(34,197,209,.3) 75%, transparent); }
.bf-brand-line { display: flex; align-items: center; gap: calc(12 * var(--bf-unit)); font-size: calc(20 * var(--bf-unit)); letter-spacing: .08em; }
.bf-brand-line small { display: block; color: var(--bf-muted); font-size: var(--bf-caption); letter-spacing: .22em; }
.bf-brand-mark { display: block; height: calc(44 * var(--bf-unit)); width: calc(44 * var(--bf-unit)); flex: none; overflow: hidden; border: calc(1 * var(--bf-unit)) solid rgba(34,197,209,.45); border-radius: calc(8 * var(--bf-unit)); }
.bf-brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bf-title-block { text-align: center; position: relative; }
.bf-title-block h1 { font-size: calc(24 * var(--bf-unit)); font-weight: 600; margin: 0; letter-spacing: .28em; text-shadow: 0 0 calc(24 * var(--bf-unit)) rgba(160,135,255,.5); }
.bf-title-block > span { color: var(--bf-muted); font-size: var(--bf-caption); letter-spacing: .28em; }
.bf-title-block::before, .bf-title-block::after { content: ''; position: absolute; width: calc(64 * var(--bf-unit)); height: calc(8 * var(--bf-unit)); top: calc(16 * var(--bf-unit)); background: linear-gradient(90deg, transparent, rgba(160,135,255,.4)); transform: skew(-36deg); }
.bf-title-block::before { left: 0; }.bf-title-block::after { right: 0; transform: skew(36deg) rotate(180deg); }
.bf-live-strip { display: flex; flex-direction: column; align-items: flex-end; gap: calc(2 * var(--bf-unit)); }
.bf-campaign-countdown { display: inline-flex; align-items: baseline; gap: calc(4 * var(--bf-unit)); padding: 0 calc(8 * var(--bf-unit)); border: calc(1 * var(--bf-unit)) solid rgba(255,202,106,.7); border-radius: calc(4 * var(--bf-unit)); background: rgba(255,202,106,.14); color: var(--bf-forecast); font-size: max(12px, calc(14 * var(--bf-unit))); font-weight: 600; white-space: nowrap; box-shadow: 0 0 calc(16 * var(--bf-unit)) rgba(255,202,106,.27); }
.bf-campaign-countdown b { font-size: max(20px, calc(24 * var(--bf-unit))); line-height: 1; }
.bf-countdown-prefix.is-mobile { display: none; }
.bf-clock { display: block; text-align: right; font-size: var(--bf-caption); letter-spacing: .08em; line-height: 1.35; }.bf-clock small, .bf-clock em { color: var(--bf-muted); font-size: var(--bf-caption); font-style: normal; }.bf-clock em { display: block; }
.bf-context-line { display: flex; align-items: center; gap: calc(16 * var(--bf-unit)); color: var(--bf-muted); font-size: var(--bf-caption); }
.bf-archive-banner { color: var(--bf-forecast); font-size: var(--bf-caption); }
.bf-status-pill.is-danger { color: var(--bf-danger); }.bf-status-pill.is-warn { color: var(--bf-forecast); }.bf-status-pill.is-ok { color: var(--bf-actual); }
.bf-local-goal-badge { color: var(--bf-target); font-size: var(--bf-caption); }
.bf-refresh-caption { margin-left: auto; letter-spacing: .08em; }
.bf-loading { display: grid; place-items: center; grid-row: 3 / -1; color: var(--bf-muted); }
.bf-battle-layout { display: grid; grid-template-columns: minmax(calc(280 * var(--bf-unit)), .82fr) minmax(0, 2.3fr) minmax(calc(300 * var(--bf-unit)), .88fr); gap: calc(24 * var(--bf-unit)); min-height: 0; }
.bf-wing, .bf-center { display: grid; min-width: 0; min-height: 0; gap: calc(16 * var(--bf-unit)); }
.bf-wing--left { grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
.bf-center { grid-template-rows: minmax(0, 1.6fr) minmax(0, 1fr); }
.bf-wing--right { grid-template-rows: minmax(0, .92fr) minmax(0, 1.22fr) minmax(0, 1.06fr); }
.bf-panel { display: flex; flex-direction: column; min-height: 0; min-width: 0; padding: calc(12 * var(--bf-unit)) calc(16 * var(--bf-unit)); position: relative; background: linear-gradient(130deg, rgba(154,170,202,.035), transparent 65%); }
.bf-panel::before { content: ''; height: calc(16 * var(--bf-unit)); width: calc(2 * var(--bf-unit)); background: var(--bf-actual); position: absolute; top: calc(15 * var(--bf-unit)); left: 0; box-shadow: 0 0 calc(12 * var(--bf-unit)) rgba(34,197,209,.3); }
.bf-panel--goal::before { background: var(--bf-target); }.bf-panel--scope::before { background: var(--bf-forecast); }
.bf-panel header { display: flex; align-items: baseline; gap: calc(12 * var(--bf-unit)); min-height: calc(32 * var(--bf-unit)); border-bottom: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.08); flex-shrink: 0; }
.bf-panel header h2 { margin: 0; font-weight: 500; font-size: calc(16 * var(--bf-unit)); letter-spacing: .08em; }
.bf-panel header > span { margin-left: auto; color: var(--bf-muted); font-size: var(--bf-caption); white-space: nowrap; }
.bf-panel header small { color: var(--bf-muted); font-size: var(--bf-caption); }
.bf-chart { flex: 1; min-height: 0; width: 100%; }
.bf-mini-trend path { fill: none; vector-effect: non-scaling-stroke; }
.bf-stage { min-height: 0; min-width: 0; position: relative; display: grid; grid-template-rows: calc(32 * var(--bf-unit)) minmax(0,1fr) calc(56 * var(--bf-unit)); }
.bf-stage-overline { display: flex; justify-content: space-between; align-items: center; padding: 0 calc(16 * var(--bf-unit)); letter-spacing: .08em; }
.bf-stage-overline > span:first-child { font-size: calc(16 * var(--bf-unit)); }.bf-stage-overline small { font-size: var(--bf-caption); color: var(--bf-muted); margin-left: calc(8 * var(--bf-unit)); }
.bf-stage-status { font-size: var(--bf-caption); color: var(--bf-actual); }.bf-stage-status.is-warn { color: var(--bf-forecast); }.bf-stage-status.is-danger { color: var(--bf-danger); }
.bf-hero-copy { position: relative; z-index: 1; text-align: center; pointer-events: none; padding: calc(16 * var(--bf-unit)) 0; }
.bf-hero-copy > small { font-size: var(--bf-caption); color: var(--bf-forecast); letter-spacing: .2em; }
.bf-hero-copy strong { display: block; font-size: min(calc(112 * var(--bf-unit)), calc(160cqw / var(--bf-money-chars, 10))); line-height: 1.15; color: var(--bf-forecast); letter-spacing: -.04em; text-shadow: 0 0 calc(32 * var(--bf-unit)) rgba(255,202,106,.25); white-space: nowrap; }
.bf-hero-copy strong i { font-size: calc(48 * var(--bf-unit)); font-style: normal; color: var(--bf-forecast); margin-right: calc(4 * var(--bf-unit)); }
.bf-hero-actual { display: flex; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: calc(8 * var(--bf-unit)); font-size: max(12px, var(--bf-caption)); color: var(--bf-muted); }
.bf-hero-actual b { color: var(--bf-actual); font-size: max(18px, calc(20 * var(--bf-unit))); }
.bf-hero-actual em { color: var(--bf-muted); border: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.16); padding: 0 calc(4 * var(--bf-unit)); }
.bf-stage-foot { display: grid; grid-template-columns: repeat(4,1fr); padding: 0 calc(16 * var(--bf-unit)); gap: calc(16 * var(--bf-unit)); align-items: center; background: linear-gradient(90deg, transparent, rgba(154,170,202,.055), transparent); }
.bf-stage-foot > div { text-align: center; }.bf-stage-foot span { display: block; color: var(--bf-muted); font-size: var(--bf-caption); }.bf-stage-foot b { display: block; font-size: calc(20 * var(--bf-unit)); }.bf-stage-foot small { color: var(--bf-muted); font-size: var(--bf-caption); margin-left: calc(4 * var(--bf-unit)); }
.bf-panel--gmv { display: grid; grid-template-columns: 40% minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 0 calc(10 * var(--bf-unit)); background: linear-gradient(180deg, rgba(34,197,209,.035), transparent); }
.bf-panel--gmv header { grid-column: 1 / -1; }
.bf-panel--gmv .bf-gmv-keys { display: inline-flex; gap: calc(9 * var(--bf-unit)); }
.bf-gmv-keys em { display: inline-flex; align-items: center; gap: calc(3 * var(--bf-unit)); color: var(--bf-muted); }
.bf-gmv-keys i { display: inline-block; width: calc(10 * var(--bf-unit)); border-top: calc(2 * var(--bf-unit)) solid var(--bf-actual); }
.bf-gmv-keys i.is-source { border-top-style: dotted; border-top-color: var(--bf-target); }
.bf-gmv-keys i.is-warehouse { border-top-style: dashed; border-top-color: var(--bf-forecast); }
.bf-panel--gmv .bf-chart-wrap { width: 100%; height: 100%; min-height: 0; padding-right: calc(8 * var(--bf-unit)); border-right: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.12); }
.bf-panel--gmv .bf-chart-state { top: 50%; bottom: auto; transform: translateY(-50%); }
.bf-intel-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: calc(8 * var(--bf-unit)); grid-column: 2; grid-row: 2; min-height: 0; padding-top: calc(4 * var(--bf-unit)); }
.bf-intel-grid > section { min-width: 0; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.bf-intel-orders { border-left: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.12); padding-left: calc(10 * var(--bf-unit)); }
.bf-intel-orders.is-stale .bf-intel-heading small, .bf-intel-orders.is-stale .bf-intel-basis { color: var(--bf-forecast); }
.bf-intel-heading { display: flex; align-items: baseline; justify-content: space-between; gap: calc(8 * var(--bf-unit)); white-space: nowrap; }
.bf-intel-heading h3 { margin: 0; font-size: calc(12 * var(--bf-unit)); font-weight: 500; color: var(--bf-text); }
.bf-intel-heading small, .bf-intel-basis { color: var(--bf-muted); font-size: var(--bf-caption); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-category-list { display: grid; gap: calc(2 * var(--bf-unit)); min-height: 0; }
.bf-category-row { display: grid; grid-template-columns: calc(18 * var(--bf-unit)) minmax(0,1fr) auto; column-gap: calc(6 * var(--bf-unit)); align-items: baseline; line-height: 1.2; }
.bf-category-rank { color: var(--bf-actual); font-family: Menlo, monospace; font-size: var(--bf-caption); }
.bf-category-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--bf-text); font-size: calc(11 * var(--bf-unit)); }
.bf-category-row b { color: var(--bf-actual); font-size: calc(13 * var(--bf-unit)); white-space: nowrap; }
.bf-category-row b small { color: var(--bf-muted); padding-left: calc(3 * var(--bf-unit)); }
.bf-category-row i { grid-column: 2 / 4; height: calc(2 * var(--bf-unit)); background: rgba(154,170,202,.12); overflow: hidden; }
.bf-category-row u { display: block; height: 100%; background: var(--bf-actual); text-decoration: none; }
.bf-order-viewport { position: relative; flex: 1; display: flex; align-items: center; overflow: hidden; }
.bf-order-item { display: flex; gap: calc(12 * var(--bf-unit)); width: 100%; align-items: center; }
.bf-order-signal { flex: none; width: calc(5 * var(--bf-unit)); height: calc(5 * var(--bf-unit)); border-radius: 50%; background: var(--bf-actual); box-shadow: 0 0 calc(12 * var(--bf-unit)) var(--bf-actual); }
.bf-order-copy { display: flex; flex-direction: column; min-width: 0; }
.bf-order-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--bf-text); font-size: calc(14 * var(--bf-unit)); }
.bf-order-copy > span { color: var(--bf-muted); font-size: calc(12 * var(--bf-unit)); }
.bf-order-copy > span b { color: var(--bf-actual); font-size: calc(18 * var(--bf-unit)); }
.bf-order-copy small { color: var(--bf-muted); }
.bf-intel-empty { display: flex; flex: 1; align-items: center; color: var(--bf-muted); font-size: calc(12 * var(--bf-unit)); }
.bf-order-roll-enter-active, .bf-order-roll-leave-active { transition: opacity 280ms ease, transform 280ms ease; }
.bf-order-roll-enter-from { opacity: 0; transform: translateY(40%); }
.bf-order-roll-leave-to { opacity: 0; transform: translateY(-40%); }
@media (prefers-reduced-motion: reduce) { .bf-order-roll-enter-active, .bf-order-roll-leave-active { transition: none; } }
.bf-monthly-goals { display: flex; flex: 1; min-height: 0; padding: calc(2 * var(--bf-unit)) 0; }
.bf-monthly-goal { display: flex; flex: 1; flex-direction: column; justify-content: center; min-height: 0; gap: 0; }
.bf-monthly-head, .bf-monthly-money { display: flex; justify-content: space-between; align-items: baseline; gap: calc(8 * var(--bf-unit)); }
.bf-monthly-head { color: var(--bf-muted); font-size: var(--bf-caption); }.bf-monthly-head b { color: var(--bf-target); font-size: calc(18 * var(--bf-unit)); }
.bf-monthly-money strong { color: var(--bf-text); font-size: calc(20 * var(--bf-unit)); line-height: 1.1; }.bf-monthly-money span { color: var(--bf-muted); font-size: calc(12 * var(--bf-unit)); }
.bf-monthly-pace, .bf-monthly-gap { display: flex; justify-content: space-between; gap: calc(8 * var(--bf-unit)); color: var(--bf-muted); font-size: var(--bf-caption); }.bf-monthly-pace b { color: var(--bf-text); }
.bf-monthly-pace strong.is-behind, .bf-monthly-gap strong.is-behind { color: var(--bf-forecast); }.bf-monthly-pace strong.is-ahead, .bf-monthly-gap strong.is-ahead { color: var(--bf-actual); }
.bf-monthly-track { position: relative; height: calc(5 * var(--bf-unit)); background: rgba(160,135,255,.14); margin: calc(3 * var(--bf-unit)) 0; }.bf-monthly-track i { display: block; height: 100%; background: linear-gradient(90deg, var(--bf-actual), var(--bf-target)); box-shadow: 0 0 calc(12 * var(--bf-unit)) var(--bf-target); }.bf-monthly-track em { position: absolute; top: calc(-3 * var(--bf-unit)); height: calc(11 * var(--bf-unit)); width: calc(2 * var(--bf-unit)); background: var(--bf-forecast); box-shadow: 0 0 calc(8 * var(--bf-unit)) var(--bf-forecast); }
.bf-monthly-goal small, .bf-monthly-source, .bf-monthly-loading { color: var(--bf-muted); font-size: var(--bf-caption); }
.bf-monthly-goal.is-upcoming .bf-monthly-money strong { color: var(--bf-muted); }
.bf-monthly-source { border-top: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.08); padding-top: calc(5 * var(--bf-unit)); }
.bf-monthly-loading { display: grid; place-items: center; flex: 1; }
.bf-supply-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: calc(7 * var(--bf-unit)) calc(10 * var(--bf-unit)); flex: 1; min-height: 0; padding: calc(7 * var(--bf-unit)) 0; }
.bf-supply-item { min-width: 0; display: flex; flex-direction: column; justify-content: center; border-bottom: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.1); }
.bf-supply-item > span, .bf-supply-basis { color: var(--bf-muted); font-size: var(--bf-caption); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-supply-item b { color: var(--bf-actual); font-size: calc(16 * var(--bf-unit)); line-height: 1.2; white-space: nowrap; }
.bf-supply-item b small { color: var(--bf-muted); margin-left: calc(3 * var(--bf-unit)); }
.bf-supply-item em { color: var(--bf-forecast); font-size: var(--bf-caption); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bf-dot { display: inline-block; width: calc(4 * var(--bf-unit)); height: calc(4 * var(--bf-unit)); margin: 0 calc(4 * var(--bf-unit)); }.bf-dot.actual { background: var(--bf-actual); }.bf-dot.forecast { background: var(--bf-forecast); }
.bf-baseline { display: flex; align-items: baseline; gap: calc(12 * var(--bf-unit)); margin-top: calc(12 * var(--bf-unit)); }.bf-baseline span { font-size: var(--bf-caption); color: var(--bf-muted); }.bf-baseline b { font-size: calc(24 * var(--bf-unit)); }.bf-baseline small { color: var(--bf-muted); font-size: var(--bf-caption); }
.bf-coverage-line { display: flex; justify-content: space-between; color: var(--bf-muted); margin-top: auto; }.bf-coverage-line b { color: var(--bf-actual); font-size: calc(16 * var(--bf-unit)); }
.bf-metric-ribbon { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: calc(16 * var(--bf-unit)); position: relative; }
.bf-metric-ribbon::before { content: ''; position: absolute; top: calc(-8 * var(--bf-unit)); left: 0; right: 0; height: calc(1 * var(--bf-unit)); background: linear-gradient(90deg, transparent, rgba(154,170,202,.15), transparent); }
.bf-metric-tile { display: flex; flex-direction: column; justify-content: space-between; min-height: 0; border: 0; padding: calc(12 * var(--bf-unit)) calc(16 * var(--bf-unit)); min-width: 0; overflow: hidden; text-align: left; background: linear-gradient(180deg, rgba(154,170,202,.035), transparent); color: var(--bf-text); position: relative; }
.bf-tile-heading { display: flex; justify-content: space-between; font-size: var(--bf-caption); color: var(--bf-muted); }.bf-tile-heading small { font-size: var(--bf-caption); }
.bf-tile-value { display: flex; align-items: baseline; gap: calc(8 * var(--bf-unit)); min-width: 0; white-space: nowrap; }
.bf-tile-value > b { font-size: calc(24 * var(--bf-unit)); color: var(--bf-actual); line-height: 1.5; }.bf-tile-value > b small { color: var(--bf-muted); font-size: var(--bf-caption); margin-left: calc(8 * var(--bf-unit)); }
.bf-tts-follower { display: flex; flex-direction: column; color: var(--bf-muted); font-size: var(--bf-caption); line-height: 1.25; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.bf-tts-follower span, .bf-tts-follower small { font-size: var(--bf-caption); overflow: hidden; text-overflow: ellipsis; }
.bf-tts-follower strong { color: var(--bf-actual); font-size: var(--bf-caption); }
.bf-metric-tile .bf-mini-trend svg { display: block; width: 100%; height: calc(24 * var(--bf-unit)); margin: 0; }
.bf-tile-meta { display: flex; align-items: center; justify-content: space-between; color: var(--bf-muted); font-size: var(--bf-caption); }.bf-tile-meta em { color: var(--bf-forecast); font-size: var(--bf-caption); }
.bf-tile-progress { display: block; height: calc(2 * var(--bf-unit)); background: rgba(154,170,202,.08); margin-top: calc(8 * var(--bf-unit)); }.bf-tile-progress u { display: block; height: 100%; background: var(--bf-forecast); max-width: 100%; }
.bf-metric-tile.active { background: linear-gradient(180deg, rgba(34,197,209,.10), transparent); }.bf-metric-tile.active::after { content: ''; position: absolute; top: 0; left: calc(16 * var(--bf-unit)); right: calc(16 * var(--bf-unit)); height: calc(2 * var(--bf-unit)); background: var(--bf-actual); }.bf-metric-tile.danger .bf-tile-value > b { color: var(--bf-danger); }
.bf-footer { display: flex; justify-content: space-between; align-items: center; gap: calc(16 * var(--bf-unit)); color: var(--bf-muted); font-size: var(--bf-caption); border-top: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.08); }
.bf-fresh-list { display: flex; align-items: center; gap: calc(16 * var(--bf-unit)); min-width: 0; }
.bf-fresh-list > span { white-space: nowrap; font-size: var(--bf-caption); }.bf-fresh-list small { font-size: var(--bf-caption); margin-left: calc(4 * var(--bf-unit)); }.bf-fresh-list i { display: inline-block; width: calc(4 * var(--bf-unit)); height: calc(4 * var(--bf-unit)); margin-right: calc(4 * var(--bf-unit)); background: var(--bf-actual); }.bf-fresh-list .is-warn i { background: var(--bf-forecast); }.bf-fresh-list .is-danger i { background: var(--bf-danger); }.bf-fresh-list .is-waiting i { background: var(--bf-muted); }
.bf-feed { min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--bf-caption); }.bf-feed .is-danger { color: var(--bf-danger); }.bf-feed .is-warn { color: var(--bf-forecast); }
.bf-goal-form { display: grid; grid-template-columns: 1fr 1fr; gap: calc(16 * var(--bf-unit)); padding: calc(16 * var(--bf-unit)) 0; }.bf-goal-form label { display: grid; gap: calc(8 * var(--bf-unit)); color: var(--bf-muted); }.bf-goal-form input { height: calc(32 * var(--bf-unit)); background: var(--bf-bg); color: var(--bf-text); border: calc(1 * var(--bf-unit)) solid rgba(154,170,202,.24); padding: calc(4 * var(--bf-unit)) calc(8 * var(--bf-unit)); }
.bf-detail-sources { display: grid; gap: calc(12 * var(--bf-unit)); }.bf-detail-sources b { display: block; color: var(--bf-actual); font-size: var(--bf-caption); }.bf-detail-sources span { display: block; color: var(--bf-muted); font-size: var(--bf-caption); }
.black-friday-compact-shell .topnav, .black-friday-compact-shell .top-bar, .black-friday-compact-shell .quick-tools, .black-friday-compact-shell .el-aside, .black-friday-compact-shell .sidebar { display: none !important; }
.black-friday-compact-shell .main-content, .black-friday-compact-shell .el-main, .black-friday-compact-shell .page-body { margin: 0 !important; padding: 0 !important; }
.bf-variant-cyan { --bf-target: #22c5d1; background: radial-gradient(ellipse at 50% 30%, rgba(34,197,209,.18), transparent 45%), #05091b; }
/* Compact and API fullscreen hosts must not add chrome or intrinsic scroll height. */
@media (min-width: 761px) {
  .black-friday-compact-shell .main-content,
  .black-friday-compact-shell .page-body { min-height: 0; overflow: hidden; }
}
.page-body:fullscreen { width: 100vw; height: 100vh; height: 100dvh; margin: 0; padding: 0; overflow: hidden; }
@media (max-width: 760px) {
  .black-friday-page { --bf-unit: 1px; height: auto; min-height: 100dvh; grid-template-rows: 80px auto auto auto auto; overflow: visible; padding: 16px; }
  .bf-battle-layout { gap: 16px; }
  .bf-metric-ribbon { gap: 10px; }
  .bf-metric-tile { padding: 8px 12px; }
  .bf-footer, .bf-fresh-list { flex-wrap: wrap; }
  .bf-fresh-list { gap: 8px; }
  .bf-live-strip { min-width: 0; }
  .bf-title-block::before, .bf-title-block::after { display: none; }
  .bf-tv-head { grid-template-columns: 1fr 1fr; height: 80px; }
  .bf-title-block { display: none; }
  .bf-battle-layout { grid-template-columns: minmax(0, 1fr); }
  .bf-center { grid-column: 1; grid-row: 1; grid-template-rows: 360px 400px; }
  .bf-wing--right, .bf-wing--left { grid-column: 1; grid-template-columns: minmax(0, 1fr); }
  .bf-wing--right { grid-row: 2; grid-template-rows: repeat(3, minmax(190px, auto)); }
  .bf-wing--left { grid-row: 3; grid-template-rows: 240px 240px; }
  .bf-metric-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bf-metric-tile { min-height: 208px; }
  .bf-hero-copy strong { font-size: 32px; }
  .bf-clock { font-size: var(--bf-caption); }
  .bf-campaign-countdown { font-size: 12px; padding: 0 4px; }
  .bf-campaign-countdown b { font-size: 18px; }
  .bf-countdown-prefix { display: none; }
  .bf-countdown-prefix.is-mobile { display: inline; }
  .bf-stage-foot { gap: 8px; padding: 0; }
  .bf-stage-foot b { font-size: 16px; }
  .bf-panel--gmv { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 120px minmax(0, 1fr); }
  .bf-panel--gmv header { flex-wrap: wrap; }
  .bf-panel--gmv .bf-gmv-keys { order: 3; flex-basis: 100%; margin-left: 0; }
  .bf-panel--gmv .bf-chart-wrap { grid-column: 1; grid-row: 2; border-right: 0; border-bottom: 1px solid rgba(154,170,202,.12); padding: 0 0 6px; }
  .bf-intel-grid { grid-column: 1; grid-row: 3; }
}


/* Honest empty states keep initialized chart containers stable during background refreshes. */
.bf-chart-wrap { position: relative; display: flex; flex: 1; min-height: 0; }
.bf-chart-state { position: absolute; left: 0; right: 0; bottom: calc(24 * var(--bf-unit)); display: flex; flex-direction: column; align-items: center; gap: calc(4 * var(--bf-unit)); padding: calc(8 * var(--bf-unit)); text-align: center; pointer-events: none; }
.bf-chart-state b { font-family: "PingFang SC", Arial, sans-serif; font-size: calc(12 * var(--bf-unit)); color: var(--bf-muted); }
.bf-chart-state span { font-size: var(--bf-caption); color: var(--bf-muted); max-width: 26em; }
.bf-chart-state.is-danger b { color: var(--bf-danger); }
.bf-detail-sources small { display: block; margin-top: calc(8 * var(--bf-unit)); color: var(--bf-muted); }
.bf-detail-sources small.is-danger { color: var(--bf-danger); }
.bf-detail-sources small.is-warn { color: var(--bf-forecast); }
.bf-source-issue strong { display: block; font-size: var(--bf-caption); color: var(--bf-danger); margin-bottom: calc(4 * var(--bf-unit)); }

/* Campaign stage: real dollars carry the visual weight; observed wave carries the stage. */
.bf-commerce-stage { container-type: inline-size; position: relative; min-height: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: center; overflow: hidden; }
.bf-campaign-band { display: flex; justify-content: center; align-items: center; gap: calc(16 * var(--bf-unit)); color: var(--bf-muted); position: relative; z-index: 1; }
.bf-campaign-band > span { font-size: calc(12 * var(--bf-unit)); letter-spacing: .28em; }
.bf-campaign-band b { color: var(--bf-target); }
.bf-campaign-band i { height: calc(1 * var(--bf-unit)); width: calc(48 * var(--bf-unit)); background: linear-gradient(90deg, var(--bf-target), transparent); }
.bf-campaign-band small { font-size: var(--bf-caption); letter-spacing: .16em; }
.bf-data-ridge { position: absolute; width: 100%; height: 30%; bottom: calc(16 * var(--bf-unit)); left: 0; overflow: visible; opacity: .62; }
.bf-ridge-line { fill: none; stroke: var(--bf-actual); stroke-width: 1.5; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 calc(5 * var(--bf-unit)) rgba(34,197,209,.45)); }
.bf-ridge-area { fill: url(#bf-ridge-light); stroke: none; }
.bf-ridge-caption { position: absolute; bottom: 0; left: calc(16 * var(--bf-unit)); color: var(--bf-muted); font-size: var(--bf-caption); opacity: .75; }
.bf-scope-battles { display: flex; flex: 1; flex-direction: column; justify-content: space-evenly; min-height: 0; gap: calc(1 * var(--bf-unit)); padding: 0; }
.bf-scope-heading { display: flex; justify-content: space-between; align-items: center; gap: calc(8 * var(--bf-unit)); }
.bf-scope-heading > span { color: var(--bf-text); font-size: calc(12 * var(--bf-unit)); }
.bf-scope-heading small { display: block; color: var(--bf-muted); font-size: var(--bf-caption); }
.bf-scope-heading b { color: var(--bf-actual); font-size: calc(16 * var(--bf-unit)); }
.bf-scope-tracks { display: grid; gap: calc(4 * var(--bf-unit)); margin-top: calc(4 * var(--bf-unit)); }
.bf-scope-tracks i { display: block; height: calc(4 * var(--bf-unit)); background: rgba(154,170,202,.06); }
.bf-scope-tracks u { display: block; height: 100%; background: linear-gradient(90deg, rgba(34,197,209,.16), var(--bf-actual)); box-shadow: 0 0 calc(8 * var(--bf-unit)) rgba(34,197,209,.2); }
.bf-scope-tracks .is-forecast { height: calc(2 * var(--bf-unit)); }.bf-scope-tracks .is-forecast u { background: linear-gradient(90deg, rgba(255,202,106,.12), var(--bf-forecast)); box-shadow: none; }
.bf-scope-forecast { display: flex; justify-content: space-between; color: var(--bf-muted); margin-top: calc(4 * var(--bf-unit)); font-size: var(--bf-caption); }.bf-scope-forecast em { color: var(--bf-forecast); }
.bf-inline-source-note { color: var(--bf-muted); }.bf-inline-source-note.is-danger { color: var(--bf-danger); }
.bf-metric-tile:not(:last-child)::before { content: ''; position: absolute; right: calc(2 * var(--bf-unit)); top: 48%; width: calc(8 * var(--bf-unit)); height: calc(8 * var(--bf-unit)); border-top: calc(1 * var(--bf-unit)) solid rgba(34,197,209,.3); border-right: calc(1 * var(--bf-unit)) solid rgba(34,197,209,.3); transform: rotate(45deg); }
.bf-variant-violet .bf-commerce-stage { background: radial-gradient(ellipse at 50% 65%, rgba(160,135,255,.10), transparent 60%); }
.bf-variant-cyan .bf-commerce-stage { background: radial-gradient(ellipse at 50% 65%, rgba(34,197,209,.08), transparent 60%); }
@media (max-width: 760px) { .bf-hero-copy strong { font-size: calc(48 * var(--bf-unit)); }.bf-campaign-band small { display: none; }.bf-hero-copy strong i { font-size: calc(24 * var(--bf-unit)); } }
.bf-ridge-depth { fill: none; stroke: var(--bf-target); stroke-width: 1; opacity: .24; vector-effect: non-scaling-stroke; }.bf-ridge-depth.is-far { opacity: .12; }

/* Integrated orbital instrument: the six live values frame the GMV, without cohort claims. */
.bf-orbit-stage { overflow: visible; }
.bf-orbit-stage .bf-campaign-band { position: absolute; top: 0; left: 22%; right: 22%; white-space: nowrap; }
.bf-campaign-orbit { position: absolute; inset: calc(8 * var(--bf-unit)) 0; width: 100%; height: calc(100% - calc(16 * var(--bf-unit))); pointer-events: none; }
.bf-ring-outer { fill: none; stroke: url(#bf-ring-light); stroke-width: 1.1; }
.bf-ring-core { fill: none; stroke: var(--bf-target); stroke-width: .6; stroke-dasharray: 2 7; opacity: .28; }
.bf-ring-cross { fill: none; stroke: var(--bf-target); stroke-width: .7; opacity: .25; }.bf-ring-cross.is-second { stroke: var(--bf-actual); opacity: .16; }
.bf-ring-highlight { fill: none; stroke: var(--bf-actual); stroke-width: 1.5; opacity: .8; filter: drop-shadow(0 0 calc(4 * var(--bf-unit)) rgba(34,197,209,.5)); }
.bf-ring-axis { fill: none; stroke: var(--bf-actual); stroke-width: .8; opacity: .2; }
.bf-business-flow-path { fill: none; stroke: var(--bf-actual); stroke-width: 1; stroke-dasharray: 2 11; opacity: .2; }
.bf-flow-packet { fill: var(--bf-actual); stroke: var(--bf-actual); stroke-width: 8; stroke-opacity: .12; paint-order: stroke fill; filter: drop-shadow(0 0 8px var(--bf-actual)); }
.bf-flow-packet.is-trail { opacity: .58; }
.bf-orbit-stage .bf-hero-copy { position: absolute; left: 18%; right: 18%; top: 50%; transform: translateY(-50%); padding: 0; }
.bf-orbit-stage .bf-hero-copy strong { font-size: min(calc(112 * var(--bf-unit)), calc(105cqw / var(--bf-money-chars, 10))); }
.bf-orbit-stage .bf-hero-copy strong i { font-size: calc(40 * var(--bf-unit)); }
.bf-orbit-stage .bf-hero-actual b { font-size: max(18px, calc(20 * var(--bf-unit))); }
.bf-orbit-stage .bf-data-ridge { height: 12%; width: 56%; left: 22%; bottom: calc(4 * var(--bf-unit)); opacity: .22; }
.bf-orbit-stage .bf-ridge-caption { bottom: calc(2 * var(--bf-unit)); left: auto; right: 0; font-size: var(--bf-caption); opacity: 1; }
.bf-orbit-battle-node { position: absolute; transform: translate(-50%,-50%); z-index: 2; border: 0; padding: calc(6 * var(--bf-unit)) calc(10 * var(--bf-unit)); background: radial-gradient(ellipse, rgba(5,9,27,.95), rgba(5,9,27,.6) 65%, transparent); min-width: calc(100 * var(--bf-unit)); text-align: center; color: var(--bf-text); }
.bf-node-label { display: block; font-size: calc(12 * var(--bf-unit)); color: var(--bf-muted); white-space: nowrap; }
.bf-node-label i { display: inline-block; width: calc(4 * var(--bf-unit)); height: calc(4 * var(--bf-unit)); margin-right: calc(5 * var(--bf-unit)); background: var(--bf-node-signal, var(--bf-actual)); transform: rotate(45deg); box-shadow: 0 0 calc(6 * var(--bf-unit)) rgba(34,197,209,.5); animation: bf-node-flow-beacon 14s linear infinite; animation-delay: var(--bf-node-flow-delay); }
.bf-orbit-battle-node b { display: block; font-size: calc(20 * var(--bf-unit)); color: var(--bf-actual); line-height: 1.4; white-space: nowrap; }.bf-orbit-battle-node small { color: var(--bf-muted); font-size: var(--bf-caption); margin-left: calc(4 * var(--bf-unit)); }
.bf-orbit-battle-node.is-danger { --bf-node-signal: var(--bf-danger); }.bf-orbit-battle-node.is-danger b { color: var(--bf-danger); }.bf-orbit-battle-node.is-warn { --bf-node-signal: var(--bf-forecast); }.bf-orbit-battle-node.active .bf-node-label { color: var(--bf-text); }
@keyframes bf-node-flow-beacon { 0%, 12%, 100% { box-shadow: 0 0 calc(6 * var(--bf-unit)) var(--bf-node-signal, var(--bf-actual)); transform: rotate(45deg) scale(1); } 4% { box-shadow: 0 0 calc(15 * var(--bf-unit)) var(--bf-node-signal, var(--bf-actual)); transform: rotate(45deg) scale(1.6); } }
@media (prefers-reduced-motion: reduce) { .bf-flow-packets { display: none; } .bf-node-label i { animation: none; } }
@media (max-width: 760px) { .bf-orbit-stage .bf-hero-copy strong { font-size: min(calc(48 * var(--bf-unit)), calc(96cqw / var(--bf-money-chars, 10))); }.bf-orbit-battle-node { min-width: 0; padding: calc(4 * var(--bf-unit)); }.bf-orbit-battle-node b { font-size: calc(12 * var(--bf-unit)); }.bf-node-label { font-size: var(--bf-caption); }.bf-orbit-stage .bf-campaign-band { left: 16%; right: 16%; }.bf-orbit-stage .bf-hero-copy strong i { font-size: calc(20 * var(--bf-unit)); } }
@media (max-width: 520px) { .bf-metric-ribbon { grid-template-columns: minmax(0, 1fr); } }

/* Day-complete mini trends: observed cumulative line and backend forecast share the 00–24 axis. */
.bf-mini-trend { min-width: 0; padding: calc(4 * var(--bf-unit)) 0; }
.bf-mini-legend, .bf-mini-axis { display: flex; align-items: center; justify-content: space-between; gap: calc(4 * var(--bf-unit)); font-size: var(--bf-caption); color: var(--bf-muted); line-height: 1.25; }
.bf-mini-legend { justify-content: flex-end; margin-bottom: calc(4 * var(--bf-unit)); }.bf-mini-legend > span { display: inline-flex; align-items: center; gap: calc(4 * var(--bf-unit)); font-size: var(--bf-caption); }
.bf-mini-legend i { display: inline-block; width: calc(8 * var(--bf-unit)); height: calc(1 * var(--bf-unit)); background: var(--bf-actual); }.bf-mini-legend i.is-forecast { background: var(--bf-forecast); }
.bf-mini-legend small { font-size: var(--bf-caption); color: var(--bf-muted); }
.bf-mini-trend .bf-mini-grid { stroke: rgba(154,170,202,.12); stroke-width: .7; }
.bf-mini-trend .bf-mini-actual { stroke: var(--bf-actual); stroke-width: 1.5; filter: drop-shadow(0 0 calc(3 * var(--bf-unit)) rgba(34,197,209,.3)); }
.bf-mini-trend .bf-mini-forecast { stroke: var(--bf-forecast); stroke-width: 1.3; stroke-dasharray: 4 3; opacity: .8; }
.bf-mini-end { fill: var(--bf-actual); }
.bf-mini-axis { margin-top: calc(2 * var(--bf-unit)); }.bf-mini-axis > span { font-size: var(--bf-caption); }
.bf-metric-tile .bf-mini-legend { margin-bottom: calc(2 * var(--bf-unit)); }
.bf-metric-tile .bf-mini-trend { padding: calc(1 * var(--bf-unit)) 0; }.bf-metric-tile .bf-mini-trend svg { height: calc(22 * var(--bf-unit)); }

/* DoD uses the same NY midnight-to-second window on both days. */
.bf-dod-change, .bf-dod-basis { display: flex; justify-content: space-between; align-items: baseline; gap: calc(4 * var(--bf-unit)); font-size: var(--bf-caption); line-height: 1.25; white-space: nowrap; }
.bf-dod-change { margin-top: calc(4 * var(--bf-unit)); color: var(--bf-muted); }.bf-dod-change b, .bf-dod-change em { display: inline; font-size: var(--bf-caption); line-height: 1.25; color: var(--bf-muted); }
.bf-dod-change.is-up b, .bf-dod-change.is-up em { color: var(--bf-actual); }.bf-dod-change.is-down b, .bf-dod-change.is-down em { color: var(--bf-forecast); }
.bf-dod-change.is-warn b { color: var(--bf-forecast); }
.bf-dod-basis { margin-top: calc(2 * var(--bf-unit)); color: var(--bf-muted); }.bf-dod-basis small { font-size: var(--bf-caption); line-height: 1.25; }
.bf-metric-tile .bf-tile-heading, .bf-metric-tile .bf-tile-heading small,
.bf-metric-tile .bf-tile-meta, .bf-metric-tile .bf-tile-meta em,
.bf-metric-tile .bf-dod-change, .bf-metric-tile .bf-dod-change b, .bf-metric-tile .bf-dod-change em,
.bf-metric-tile .bf-dod-basis, .bf-metric-tile .bf-dod-basis small { font-size: calc(12 * var(--bf-unit)); }

/* V2 fidelity pass: darker quiet surfaces, sharp cyan edges, single-line supply.
 * CEO distance pass (2026-10-14): primary tiers 16/24/32/56/88px at 1920x1080.
 * Exceptions: 14px provenance, 18/20px labels, 28px compact comparisons, 40/48/64px secondary totals.
 * Reflow KPI values above curves; supply gets 69% of bottom row; unavailable metrics live in details.
 * Latest user direction: only center receives a luminous boundary; satellite panels use quiet separators.
 * Reference: approved V2 prototype, real data retained. Grid 30/39/31; 8px gutters.
 * Font tiers: 12/16/24/40/80. Exceptions: 10/11px provenance, 14px dense labels,
 * 9px compact annotations; 13/18/20/22/28/32/36/38/48/72px optical hierarchy. Colors: navy #030b1c/#05142a,
 * text #f2f6ff/#b5c9e5; cyan #22c5d1/#42efff; violet #a087ff; gold #ffca6a.
 * Forecast backing #06233d/#0b1630 shields text from the decorative mesh.
 * Only decorative star/orbit layers move; charts retain measured points and gaps.
 */
.black-friday-page.bf-command-v2 { --bf-unit:min(.0520833333vw,.0925925926dvh); --bf-caption:calc(14 * var(--bf-unit));
  --bf-muted:#b5c9e5; --bf-light:#42efff; --bf-panel:#05142a; font-size:calc(16 * var(--bf-unit));
  padding:calc(12 * var(--bf-unit)) calc(20 * var(--bf-unit)); gap:calc(8 * var(--bf-unit));
  grid-template-rows:calc(72 * var(--bf-unit)) calc(28 * var(--bf-unit)) calc(220 * var(--bf-unit)) minmax(0,1fr) calc(28 * var(--bf-unit));
  background:radial-gradient(ellipse at 50% 49%,rgba(20,48,124,.2),transparent 38%),#030b1c; }
.bf-command-v2::after { content:none; }
.bf-command-v2::before { opacity:.25; }
.bf-icon-defs { position:absolute; pointer-events:none; }
.bf-command-v2 .bf-title-block h1 { font-size:calc(28 * var(--bf-unit)); font-weight:700; letter-spacing:.2em; text-shadow:none; }
.bf-command-v2 .bf-title-block > span { font-size:calc(12 * var(--bf-unit)); letter-spacing:.12em; }
.bf-command-v2 .bf-tv-head::before { content:''; position:absolute; inset:calc(-58 * var(--bf-unit)) 15% calc(38 * var(--bf-unit)); border-radius:50%; border-bottom:1px solid rgba(66,239,255,.25); box-shadow:0 4px 0 -3px rgba(160,135,255,.8),0 10px 0 -9px rgba(66,239,255,.4),0 18px 0 -17px rgba(66,239,255,.2); mask-image:linear-gradient(90deg,#000,transparent 22%,transparent 78%,#000); pointer-events:none; }
.bf-command-v2 .bf-clock { font-size:calc(16 * var(--bf-unit)); color:var(--bf-text); }
.bf-command-v2 .bf-campaign-countdown { background:none; border:0; box-shadow:none; color:var(--bf-light); font-size:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-context-line { gap:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-display-controls { display:flex; gap:8px; margin-left:auto; }
.bf-command-v2 .bf-display-controls button { color:var(--bf-muted); border:1px solid rgba(66,239,255,.25); background:var(--bf-panel); padding:0 calc(8 * var(--bf-unit)); border-radius:4px; font-size:calc(11 * var(--bf-unit)); }
.bf-command-v2 .bf-display-controls button:hover { color:var(--bf-light); border-color:var(--bf-light); }
.bf-command-v2 .bf-refresh-caption { margin-left:0; }
/* KPI: two visual columns, one shared information baseline. */
.bf-command-v2 .bf-metric-ribbon { gap:calc(10 * var(--bf-unit)); }
.bf-command-v2 .bf-metric-tile { position:relative; display:grid; grid-template-columns:minmax(0,1fr);
  grid-template-rows:calc(28 * var(--bf-unit)) calc(64 * var(--bf-unit)) calc(32 * var(--bf-unit)) minmax(0,1fr) calc(22 * var(--bf-unit));
  min-height:0; padding:calc(12 * var(--bf-unit)) calc(16 * var(--bf-unit));
  border:1px solid rgba(154,170,202,.10); border-radius:calc(7 * var(--bf-unit));
  background:linear-gradient(150deg,rgba(13,55,98,.16),transparent 65%),#030f23; box-shadow:none; }
.bf-command-v2 .bf-metric-tile::before,.bf-command-v2 .bf-metric-tile::after,.bf-command-v2 .bf-tile-progress { display:none; }
.bf-command-v2 .bf-metric-tile.active { border-color:rgba(66,239,255,.22); background:linear-gradient(135deg,rgba(10,72,112,.16),transparent 65%),#030f23; box-shadow:inset 0 1px 0 rgba(66,239,255,.45); }
.bf-command-v2 .bf-tile-heading { grid-column:1/-1; grid-row:1; font-size:calc(20 * var(--bf-unit)); font-weight:600; color:var(--bf-text); }
.bf-command-v2 .bf-tile-heading > span { display:flex; align-items:center; gap:calc(10 * var(--bf-unit)); }
.bf-command-v2 .bf-tile-heading em { display:none; }
.bf-command-v2 .bf-tile-heading small { font-size:calc(14 * var(--bf-unit)); font-weight:400; }
.bf-command-v2 .bf-tile-value { grid-column:1; grid-row:2; display:flex; align-items:center; position:relative; margin:0; }
.bf-command-v2 .bf-tile-value > b { font-size:calc(56 * var(--bf-unit)); font-family:Arial,"PingFang SC",sans-serif; font-weight:700; line-height:1.1; letter-spacing:-.025em; color:var(--bf-light); text-shadow:none; white-space:nowrap; }
.bf-command-v2 .bf-tile-value small { font-size:calc(16 * var(--bf-unit)); margin-left:4px; font-weight:400; }
.bf-command-v2 .bf-tts-follower { position:absolute; bottom:calc(-22 * var(--bf-unit)); left:0; margin:0; white-space:nowrap; font-size:calc(9 * var(--bf-unit)); }
.bf-command-v2 .bf-tts-follower strong { font-size:inherit; }
.bf-command-v2 .bf-mini-trend { grid-column:1; grid-row:4; min-height:0; display:grid; grid-template-rows:minmax(0,1fr) auto; margin:calc(4 * var(--bf-unit)) 0; }
.bf-command-v2 .bf-mini-trend svg { height:100%; width:100%; min-height:0; overflow:visible; }
.bf-command-v2 .bf-mini-legend { display:none; }
.bf-command-v2 .bf-mini-legend small { font-size:calc(9 * var(--bf-unit)); }
.bf-command-v2 .bf-mini-axis { font-size:calc(12 * var(--bf-unit)); opacity:.75; }
.bf-command-v2 .bf-mini-actual { stroke:var(--bf-light); stroke-width:2; filter:drop-shadow(0 0 4px rgba(66,239,255,.7)); }
.bf-command-v2 .bf-mini-end { fill:var(--bf-text); stroke:var(--bf-light); stroke-width:1; r:2.4; filter:drop-shadow(0 0 4px var(--bf-light)); }
.bf-command-v2 .bf-dod-change { grid-column:1; grid-row:3; margin:0; display:flex; align-items:center; gap:4px; }
.bf-command-v2 .bf-dod-change b { font-size:calc(28 * var(--bf-unit)); font-family:Arial,"PingFang SC",sans-serif; font-weight:600; }
.bf-command-v2 .bf-dod-change em { display:inline; color:var(--bf-muted); font-size:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-dod-change.is-up b { color:var(--bf-light); }
.bf-command-v2 .bf-metric-tile:has(.bf-tts-follower) .bf-dod-change { align-items:center; }
.bf-command-v2 .bf-metric-tile:has(.bf-tts-follower) .bf-tile-value { padding-bottom:0; }
.bf-command-v2 .bf-metric-tile:has(.bf-tts-follower) .bf-tts-follower { bottom:calc(-25 * var(--bf-unit)); left:auto; right:0; font-size:calc(14 * var(--bf-unit)); }
.bf-command-v2 .bf-tile-meta { grid-column:1/-1; grid-row:4; align-self:end; padding-top:calc(5 * var(--bf-unit)); border-top:1px solid rgba(66,239,255,.18); margin:calc(6 * var(--bf-unit)) 0 0; font-size:calc(11 * var(--bf-unit)); }
.bf-command-v2 .bf-tile-meta em { font-size:calc(11 * var(--bf-unit)); }
.bf-command-v2 .bf-dod-basis { grid-column:1; grid-row:5; margin:0; font-size:calc(14 * var(--bf-unit)); justify-content:flex-end; }
.bf-command-v2 .bf-dod-basis small { font-size:calc(14 * var(--bf-unit)); }
/* Panels and shared typography. */
.bf-command-v2 .bf-battle-layout { grid-column:1; grid-row:4; grid-template-columns:minmax(0,30fr) minmax(0,39fr) minmax(0,31fr); grid-template-rows:minmax(0,1fr) calc(216 * var(--bf-unit)); gap:calc(10 * var(--bf-unit)); height:100%; }
.bf-command-v2 .bf-wing--left { grid-column:1; grid-row:1; grid-template-rows:1fr 1fr; gap:calc(8 * var(--bf-unit)); }
.bf-command-v2 .bf-center { grid-column:2; grid-row:1; display:block; min-height:0; }
.bf-command-v2 .bf-wing--right { grid-column:3; grid-row:1; grid-template-rows:minmax(0,1.4fr) minmax(0,1fr); gap:calc(8 * var(--bf-unit)); }
.bf-command-v2 .bf-panel { border:1px solid rgba(154,170,202,.12); border-radius:calc(8 * var(--bf-unit)); padding:calc(12 * var(--bf-unit)) calc(16 * var(--bf-unit)); background:linear-gradient(120deg,rgba(14,62,101,.08),transparent 50%),#030f23; box-shadow:none; }
.bf-command-v2 .bf-panel::before { left:calc(14 * var(--bf-unit)); top:calc(16 * var(--bf-unit)); width:calc(3 * var(--bf-unit)); height:calc(20 * var(--bf-unit)); border-radius:3px; background:var(--bf-actual); opacity:.65; box-shadow:none; }
.bf-command-v2 .bf-panel header { min-height:calc(40 * var(--bf-unit)); border:0; gap:calc(8 * var(--bf-unit)); }
.bf-command-v2 .bf-panel header h2 { padding-left:calc(15 * var(--bf-unit)); font-size:calc(24 * var(--bf-unit)); font-weight:600; letter-spacing:0; }
.bf-command-v2 .bf-panel header > span { font-size:calc(14 * var(--bf-unit)); }
/* Stage: precision rings and controlled highlights on a dark star field. */
.bf-command-v2 .bf-stage { height:100%; display:grid; grid-template-rows:calc(48 * var(--bf-unit)) minmax(0,1fr) calc(80 * var(--bf-unit)) calc(96 * var(--bf-unit)); border:1px solid rgba(66,239,255,.5); border-radius:calc(8 * var(--bf-unit)); overflow:hidden; isolation:isolate; background:#030c23; }
.bf-command-v2 .bf-stage::before { content:''; position:absolute; inset:8%; z-index:-1; pointer-events:none; background-image:radial-gradient(circle,rgba(66,239,255,.75) .6px,transparent 1px),radial-gradient(circle,rgba(160,135,255,.6) .7px,transparent 1.2px); background-size:47px 37px,71px 59px; background-position:0 0,17px 23px; mask-image:radial-gradient(ellipse,transparent 28%,#000 52%,transparent 75%); opacity:.75; animation:bf-stars 8s ease-in-out infinite; }
.bf-command-v2 .bf-stage::after { content:''; position:absolute; z-index:-1; inset:20% 0 0; background:radial-gradient(ellipse at 50% 46%,rgba(25,66,164,.15),transparent 65%); pointer-events:none; }
.bf-command-v2 .bf-stage-overline { padding:0 calc(20 * var(--bf-unit)); }
.bf-command-v2 .bf-stage-overline > span:first-child { font-size:calc(24 * var(--bf-unit)); font-weight:600; letter-spacing:0; }
.bf-command-v2 .bf-stage-overline small { font-size:calc(11 * var(--bf-unit)); }
.bf-command-v2 .bf-commerce-stage { min-height:0; background:transparent; }
.bf-command-v2 .bf-campaign-orbit { inset:0; height:100%; transform:rotate(-10deg) scale(1.02,.94); overflow:visible; filter:none; }
.bf-command-v2 .bf-ring-outer { stroke:var(--bf-light); stroke-width:1.2; opacity:.65; filter:drop-shadow(0 0 5px var(--bf-light)); }
.bf-command-v2 .bf-ring-cross { stroke:var(--bf-target); opacity:.8; stroke-width:1; }
.bf-command-v2 .bf-ring-cross.is-second { stroke:var(--bf-light); opacity:.45; }
.bf-command-v2 .bf-ring-core { stroke:var(--bf-light); opacity:.4; stroke-width:1; stroke-dasharray:1 5; animation:bf-ring-dash 26s linear infinite; }
.bf-command-v2 .bf-ring-highlight { stroke:var(--bf-light); opacity:1; stroke-width:2.6; stroke-dasharray:180 540; filter:drop-shadow(0 0 5px var(--bf-light)); animation:bf-ring-chase 12s linear infinite; }
.bf-command-v2 .bf-business-flow-path { stroke:var(--bf-target); opacity:.25; stroke-dasharray:1 12; }
.bf-command-v2 .bf-stage-mesh { position:absolute; pointer-events:none; left:0; bottom:0; width:100%; height:calc(140 * var(--bf-unit)); z-index:-1; fill:none; stroke:var(--bf-light); stroke-width:1.4; stroke-dasharray:1 5; filter:drop-shadow(0 0 4px rgba(66,239,255,.7)); animation:bf-mesh-glow 6s ease-in-out infinite; }
.bf-command-v2 .bf-stage-mesh .bf-mesh-leading { stroke-width:.7; stroke-dasharray:none; opacity:.5; }
@keyframes bf-mesh-glow { 0%,100% { opacity:.4; } 50% { opacity:.75; } }
.bf-command-v2 .bf-flow-packet { fill:#f2f6ff; stroke:var(--bf-light); stroke-width:2; filter:drop-shadow(0 0 5px var(--bf-light)) drop-shadow(0 0 10px var(--bf-light)); }
.bf-command-v2 .bf-flow-packet.is-violet { stroke:var(--bf-target); filter:drop-shadow(0 0 6px var(--bf-target)); }
.bf-command-v2 .bf-flow-packet.is-trail { opacity:.6; }
.bf-command-v2 .bf-orbit-stage .bf-hero-copy { left:4%; right:4%; top:50%; padding:0; transform:translateY(-50%); }
.bf-command-v2 .bf-hero-copy > small { display:block; color:var(--bf-muted); font-size:calc(16 * var(--bf-unit)); letter-spacing:.08em; margin-bottom:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-hero-money { display:flex; align-items:baseline; justify-content:center; gap:calc(8 * var(--bf-unit)); white-space:nowrap; }
.bf-command-v2 .bf-orbit-stage .bf-hero-money strong { font-size:calc(88 * var(--bf-unit)); font-family:Arial,"PingFang SC",sans-serif; font-weight:700; color:var(--bf-forecast); letter-spacing:-.03em; line-height:1.1; text-shadow:0 0 18px rgba(255,202,106,.3); }
.bf-command-v2 .bf-hero-money span { color:var(--bf-forecast); font-size:calc(32 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; }
.bf-command-v2 .bf-hero-completion { display:block; margin-top:calc(8 * var(--bf-unit)); font-size:calc(56 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:700; line-height:1.1; color:#a087ff; }
.bf-command-v2 .bf-hero-completion small { display:none; }
.bf-command-v2 .bf-hero-caption { display:block; color:var(--bf-muted); font-size:calc(14 * var(--bf-unit)); margin-top:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-data-ridge { opacity:.4; width:94%; left:3%; height:15%; bottom:0; }
.bf-command-v2 .bf-ridge-caption { right:calc(12 * var(--bf-unit)); font-size:calc(9 * var(--bf-unit)); }
.bf-command-v2 .bf-goal-progress { display:grid; grid-template-columns:minmax(0,1fr) calc(148 * var(--bf-unit)); grid-template-rows:1fr 1fr; gap:0 calc(16 * var(--bf-unit)); padding:0 calc(24 * var(--bf-unit)); align-items:center; }
.bf-command-v2 .bf-monthly-track { grid-column:1; grid-row:1; height:calc(24 * var(--bf-unit)); border-radius:16px; overflow:visible; background:#132b50; border:1px solid rgba(66,239,255,.45); }
.bf-command-v2 .bf-monthly-track i { border-radius:16px; background:linear-gradient(90deg,#22c5d1,#42efff); box-shadow:0 0 12px rgba(66,239,255,.24); }
.bf-command-v2 .bf-monthly-track em { height:calc(34 * var(--bf-unit)); top:calc(-6 * var(--bf-unit)); border-left:2px dashed var(--bf-text); background:none; box-shadow:none; }
.bf-command-v2 .bf-monthly-pace { grid-column:1; grid-row:2; font-size:calc(16 * var(--bf-unit)); margin:0; }
.bf-command-v2 .bf-monthly-gap { grid-column:2; grid-row:1/3; display:flex; flex-direction:column; justify-content:center; gap:calc(4 * var(--bf-unit)); padding:calc(8 * var(--bf-unit)); background:rgba(255,202,106,.04); border:0; border-radius:6px; }
.bf-command-v2 .bf-monthly-gap strong { display:flex; flex-direction:column; color:var(--bf-forecast); }
.bf-command-v2 .bf-monthly-gap strong span { font-size:calc(14 * var(--bf-unit)); }
.bf-command-v2 .bf-monthly-gap strong b { font-size:calc(32 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; line-height:1.3; }
.bf-command-v2 .bf-monthly-gap small { display:none; }
.bf-command-v2 .bf-stage-forecast { width:90%; margin:auto; display:grid; grid-template-columns:1fr auto; align-items:center; gap:calc(16 * var(--bf-unit)); padding:calc(8 * var(--bf-unit)) calc(20 * var(--bf-unit)); border:0; border-top:1px solid rgba(34,197,209,.25); border-radius:0; background:linear-gradient(110deg,#06233d,#0b1630); box-shadow:none; }
.bf-command-v2 .bf-stage-forecast > div:first-child > span { display:block; color:var(--bf-muted); font-size:calc(16 * var(--bf-unit)); }
.bf-command-v2 .bf-forecast-value { display:block; color:var(--bf-light); font-size:calc(48 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; line-height:1.15; }
.bf-command-v2 .bf-forecast-meta { display:grid; gap:3px; color:var(--bf-muted); font-size:calc(16 * var(--bf-unit)); }
/* NY chart and tracks. */
.bf-command-v2 .bf-panel--gmv { display:grid; grid-template-columns:1fr; grid-template-rows:calc(80 * var(--bf-unit)) minmax(0,1fr) calc(28 * var(--bf-unit)); gap:0; }
.bf-command-v2 .bf-panel--gmv header { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:1fr auto; align-items:start; gap:0; }
.bf-command-v2 .bf-gmv-outlook { grid-column:2; grid-row:1; text-align:right; color:var(--bf-light); font-family:Arial,sans-serif; font-size:calc(40 * var(--bf-unit)); line-height:1; font-weight:600; }
.bf-command-v2 .bf-gmv-outlook small { display:block; color:var(--bf-muted); font-size:calc(12 * var(--bf-unit)); margin-top:calc(5 * var(--bf-unit)); }
.bf-command-v2 .bf-panel--gmv .bf-gmv-keys { grid-column:1/-1; grid-row:2; justify-content:flex-start; gap:calc(28 * var(--bf-unit)); padding:0 0 calc(8 * var(--bf-unit)); margin:0; font-size:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-commerce-readout { display:flex; align-items:center; gap:calc(16 * var(--bf-unit)); font-size:calc(14 * var(--bf-unit)); color:var(--bf-muted); }
.bf-command-v2 .bf-commerce-readout b { color:var(--bf-light); font-size:calc(20 * var(--bf-unit)); }
.bf-command-v2 .bf-commerce-readout small { margin-left:auto; font-size:calc(10 * var(--bf-unit)); }
.bf-command-v2 .bf-scope-battles { display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; grid-template-rows:repeat(3,minmax(0,1fr)); gap:calc(6 * var(--bf-unit)); }
.bf-command-v2 .bf-scope-battle { display:grid; grid-template-columns:calc(84 * var(--bf-unit)) minmax(0,1fr) calc(144 * var(--bf-unit)); align-items:center; gap:calc(16 * var(--bf-unit)); }
.bf-command-v2 .bf-scope-heading { display:contents; }
.bf-command-v2 .bf-scope-heading > span { grid-column:1; grid-row:1; font-size:calc(24 * var(--bf-unit)); }
.bf-command-v2 .bf-scope-heading b { grid-column:3; grid-row:1; font-size:calc(40 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; line-height:1.1; color:var(--bf-light); text-align:right; }
.bf-command-v2 .bf-scope-tracks { grid-column:2; grid-row:1; margin:0; }
.bf-command-v2 .bf-scope-tracks i { height:calc(16 * var(--bf-unit)); border-radius:12px; background:#132b50; overflow:hidden; }
.bf-command-v2 .bf-scope-tracks u { height:100%; border-radius:12px; background:linear-gradient(90deg,#22c5d1,#42efff); }
.bf-command-v2 .bf-scope-heading small,.bf-command-v2 .bf-scope-forecast,.bf-command-v2 .bf-scope-tracks .is-forecast { display:none; }
/* Bottom deck: single-line supply, clear icon labels, compact campaign timeline. */
.bf-command-v2 .bf-bottom-deck { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:minmax(0,69fr) minmax(0,31fr); gap:calc(10 * var(--bf-unit)); min-height:0; }
.bf-command-v2 .bf-panel--supply { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.bf-command-v2 .bf-supply-grid { display:grid; grid-template-columns:1fr; grid-template-rows:repeat(4,minmax(0,1fr)); gap:calc(4 * var(--bf-unit)); padding:0; }
.bf-command-v2 .bf-supply-item { display:grid; grid-template-columns:calc(184 * var(--bf-unit)) minmax(calc(48 * var(--bf-unit)),1fr) calc(320 * var(--bf-unit)) calc(112 * var(--bf-unit)); align-items:center; gap:calc(24 * var(--bf-unit)); border:0; }
.bf-command-v2 .bf-supply-name { display:flex; gap:calc(12 * var(--bf-unit)); align-items:center; font-size:calc(20 * var(--bf-unit)); color:var(--bf-text); white-space:nowrap; }
.bf-command-v2 .bf-line-icon { width:calc(20 * var(--bf-unit)); height:calc(20 * var(--bf-unit)); flex-shrink:0; stroke:var(--bf-light); fill:none; stroke-width:1.6; }
.bf-command-v2 .bf-supply-track { height:calc(14 * var(--bf-unit)); border-radius:12px; background:#132b50; overflow:hidden; }
.bf-command-v2 .bf-supply-track u { display:block; height:100%; border-radius:12px; background:linear-gradient(90deg,#22c5d1,#42efff); }
.bf-command-v2 .bf-supply-numbers { display:block; white-space:nowrap; text-align:right; }
.bf-command-v2 .bf-supply-numbers b,.bf-command-v2 .bf-supply-numbers small { color:var(--bf-text); font-size:calc(32 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; }
.bf-command-v2 .bf-supply-item em { color:var(--bf-light); text-align:right; font-size:calc(32 * var(--bf-unit)); font-family:Arial,sans-serif; font-weight:600; white-space:nowrap; }
.bf-command-v2 .bf-supply-basis { font-size:calc(14 * var(--bf-unit)); line-height:1.2; padding-top:calc(4 * var(--bf-unit)); }
.bf-command-v2 .bf-effective-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:calc(8 * var(--bf-unit)); flex:1; padding:calc(6 * var(--bf-unit)) 0 calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-effective-item { display:grid; grid-template-columns:calc(40 * var(--bf-unit)) minmax(0,1fr); grid-template-rows:1fr 1fr; align-items:center; column-gap:calc(8 * var(--bf-unit)); padding:calc(10 * var(--bf-unit)); border:1px solid rgba(154,170,202,.1); background:rgba(13,31,57,.28); border-radius:6px; min-width:0; }
.bf-command-v2 .bf-effective-icon { grid-column:1; grid-row:1/3; width:calc(40 * var(--bf-unit)); height:calc(40 * var(--bf-unit)); padding:calc(8 * var(--bf-unit)); border:1px solid rgba(34,197,209,.35); border-radius:50%; fill:none; stroke:var(--bf-light); stroke-width:1.5; }
.bf-command-v2 .bf-effective-item > span { align-self:end; white-space:nowrap; font-size:calc(12 * var(--bf-unit)); color:var(--bf-text); }
.bf-command-v2 .bf-effective-item > b { align-self:start; color:var(--bf-text); font-size:calc(24 * var(--bf-unit)); line-height:1.5; }
.bf-command-v2 .bf-effective-note,.bf-command-v2 .bf-phase-note { font-size:calc(12 * var(--bf-unit)); color:var(--bf-muted); white-space:nowrap; margin-top:auto; }
.bf-command-v2 .bf-panel--phase { justify-content:space-between; }
.bf-command-v2 .bf-phase-track { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:calc(16 * var(--bf-unit)); padding:calc(8 * var(--bf-unit)) calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-phase-track > span { display:flex; align-items:center; gap:calc(12 * var(--bf-unit)); background:none; }
.bf-command-v2 .bf-phase-track b { font-family:Arial,"PingFang SC",sans-serif; font-size:calc(20 * var(--bf-unit)); font-weight:400; color:var(--bf-muted); line-height:1.3; }
.bf-command-v2 .bf-phase-track small { display:block; font-size:calc(18 * var(--bf-unit)); }
.bf-command-v2 .bf-phase-node { width:calc(20 * var(--bf-unit)); height:calc(20 * var(--bf-unit)); border:2px solid var(--bf-light); outline:1px solid rgba(66,239,255,.3); outline-offset:4px; border-radius:50%; background:rgba(66,239,255,.16); box-shadow:0 0 12px rgba(66,239,255,.35); }
.bf-command-v2 .bf-phase-track > span:last-child .bf-phase-node { border-color:var(--bf-forecast); outline-color:rgba(255,202,106,.3); background:rgba(255,202,106,.16); box-shadow:0 0 12px rgba(255,202,106,.35); }
.bf-command-v2 .bf-phase-link { position:relative; height:4px; background:linear-gradient(90deg,transparent,var(--bf-target),var(--bf-actual),transparent); }
.bf-command-v2 .bf-phase-link::after { content:'›'; position:absolute; left:0; top:50%; transform:translateY(-50%); color:var(--bf-light); font-size:24px; text-shadow:0 0 8px var(--bf-light); animation:bf-phase-move 4s linear infinite; }
.bf-command-v2 .bf-phase-target { display:flex; align-items:baseline; justify-content:center; gap:calc(12 * var(--bf-unit)); }
.bf-command-v2 .bf-phase-target > span { color:var(--bf-muted); font-size:calc(16 * var(--bf-unit)); }
.bf-command-v2 .bf-phase-target strong { color:var(--bf-light); font-family:Arial,sans-serif; font-size:calc(56 * var(--bf-unit)); font-weight:600; line-height:1.2; }
.bf-command-v2 .bf-phase-note { text-align:center; border-top:1px solid rgba(66,239,255,.2); padding-top:calc(6 * var(--bf-unit)); }
/* Existing data details remain accessible; motion policy includes the dialog. */
.bf-command-v2 .bf-dialog-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:rgba(0,0,0,.7); padding:24px; }
.bf-command-v2 .bf-dialog { background:var(--bf-panel); width:min(960px,95vw); max-height:88vh; overflow:auto; padding:24px; color:var(--bf-text); font-size:14px; line-height:1.7; border:1px solid var(--bf-actual); }
.bf-command-v2 .bf-dialog header { display:flex; justify-content:space-between; align-items:center; }
.bf-command-v2 .bf-dialog button { border:1px solid var(--bf-muted); padding:6px 12px; color:var(--bf-text); background:transparent; }
.bf-command-v2 .bf-dialog .bf-intel-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.bf-command-v2 .is-updated { animation:bf-value-flash .9s ease-out; }
@keyframes bf-stars { 0%,100% { opacity:.45; } 50% { opacity:.85; } }
@keyframes bf-ring-dash { to { stroke-dashoffset:-180; } }
@keyframes bf-ring-chase { to { stroke-dashoffset:-720; } }
@keyframes bf-phase-move { 0% { left:0; opacity:0; } 20%,80% { opacity:1; } 100% { left:95%; opacity:0; } }
@keyframes bf-value-flash { 0% { box-shadow:inset 0 0 25px rgba(66,239,255,.3); } 100% { box-shadow:none; } }
.black-friday-page.bf-command-v2.is-motion-paused *, .black-friday-page.bf-command-v2.is-motion-paused *::before, .black-friday-page.bf-command-v2.is-motion-paused *::after { animation-play-state:paused !important; transition:none !important; }
@media (prefers-reduced-motion:reduce) { .bf-command-v2 *, .bf-command-v2 *::before,.bf-command-v2 *::after { animation:none !important; transition:none !important; } }

.bf-command-v2 .bf-clock em { font-size:inherit; }
.bf-command-v2 .bf-dod-basis > span { display:none; }
.bf-command-v2 .bf-metric-tile:has(.bf-tts-follower) .bf-dod-change em { display:none; }
.bf-command-v2 .bf-supply-numbers small { font-size:calc(20 * var(--bf-unit)); font-weight:400; color:var(--bf-muted); }
.bf-command-v2 .bf-commerce-readout > small { display:none; }
.bf-command-v2 .bf-phase-note { display:none; }
.bf-command-v2 .bf-panel--phase { padding-bottom:calc(24 * var(--bf-unit)); }
.bf-command-v2 .bf-detail-metrics { overflow-x:auto; }
.bf-command-v2 .bf-detail-metrics table { width:100%; border-collapse:collapse; font-size:14px; }
.bf-command-v2 .bf-detail-metrics th,.bf-command-v2 .bf-detail-metrics td { padding:8px; text-align:left; border-bottom:1px solid rgba(154,170,202,.14); white-space:nowrap; }

@media (max-width:980px) {
 .black-friday-page.bf-command-v2 { --bf-unit:1px; height:auto; min-height:100dvh; overflow:visible; grid-template-rows:auto auto auto auto auto; padding:16px; gap:12px; }
 .bf-command-v2 .bf-context-line { flex-wrap:wrap; }
 .bf-command-v2 .bf-tv-head { height:auto; min-height:80px; }
 .bf-command-v2 .bf-supply-item { grid-template-columns:140px minmax(48px,1fr) 220px 90px; gap:12px; }
 .bf-command-v2 .bf-supply-numbers b { font-size:28px; }
 .bf-command-v2 .bf-supply-numbers small { font-size:16px; }
 .bf-command-v2 .bf-refresh-caption { width:100%; }
 .bf-command-v2 .bf-metric-ribbon { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:220px; }
 .bf-command-v2 .bf-battle-layout { display:flex; flex-direction:column; height:auto; }
 .bf-command-v2 .bf-battle-layout > * { flex-shrink:0; }
 .bf-command-v2 .bf-center { order:-1; }
 .bf-command-v2 .bf-center,.bf-command-v2 .bf-wing--left,.bf-command-v2 .bf-wing--right,.bf-command-v2 .bf-bottom-deck { grid-column:1; grid-row:auto; }
 .bf-command-v2 .bf-wing--left { grid-template-rows:260px 260px; }
 .bf-command-v2 .bf-stage { height:570px; }
 .bf-command-v2 .bf-wing--right { grid-template-rows:320px 220px; }
 .bf-command-v2 .bf-bottom-deck { grid-template-columns:minmax(0,1fr); grid-auto-rows:220px; }
 .bf-command-v2 .bf-footer,.bf-command-v2 .bf-fresh-list { flex-wrap:wrap; }
}
@media (max-width:520px) {
 .bf-command-v2 .bf-clock { font-size:12px; letter-spacing:0; white-space:nowrap; }
 .bf-command-v2 .bf-metric-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bf-command-v2 .bf-tile-value > b { font-size:32px; }
 .bf-command-v2 .bf-metric-tile { column-gap:2px; padding:8px; }
 .bf-command-v2 .bf-tile-heading,.bf-command-v2 .bf-tile-heading small { font-size:11px; }
 .bf-command-v2 .bf-tile-heading > span { gap:3px; }
 .bf-command-v2 .bf-tts-follower { display:none; }
 .bf-command-v2 .bf-dod-change b { font-size:16px; }
 .bf-command-v2 .bf-dod-basis > span { display:none; }
 .bf-command-v2 .bf-tile-meta { font-size:9px; }
 .bf-command-v2 .bf-tile-meta em { font-size:9px; }
 .bf-command-v2 .bf-panel header h2 { font-size:18px; }
 .bf-command-v2 .bf-stage-overline > span:first-child { font-size:20px; }
 .bf-command-v2 .bf-orbit-stage .bf-hero-money strong { font-size:42px; }
 .bf-command-v2 .bf-hero-money span { font-size:22px; }
 .bf-command-v2 .bf-goal-progress { padding:0 12px; grid-template-columns:minmax(0,1fr) 114px; gap:10px; }
 .bf-command-v2 .bf-monthly-pace { flex-direction:column; }
 .bf-command-v2 .bf-monthly-gap strong b { font-size:22px; }
 .bf-command-v2 .bf-stage-forecast { width:92%; padding:12px; gap:8px; }
 .bf-command-v2 .bf-forecast-value { font-size:28px; }
 .bf-command-v2 .bf-supply-item { grid-template-columns:92px minmax(22px,1fr) 108px 42px; gap:5px; }
 .bf-command-v2 .bf-supply-name { font-size:11px; gap:4px; }
 .bf-command-v2 .bf-line-icon { width:14px; height:14px; }
 .bf-command-v2 .bf-supply-numbers b { font-size:14px; }
 .bf-command-v2 .bf-supply-numbers small { font-size:10px; }
 .bf-command-v2 .bf-supply-item em { font-size:12px; }
 .bf-command-v2 .bf-effective-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bf-command-v2 .bf-effective-item { padding:6px; grid-template-columns:30px 1fr; }
 .bf-command-v2 .bf-effective-icon { width:30px; height:30px; padding:5px; }
 .bf-command-v2 .bf-effective-item > b { font-size:18px; }
 .bf-command-v2 .bf-effective-note { font-size:10px; }
 .bf-command-v2 .bf-gmv-outlook { font-size:22px; }
}

/* Approved no-tray energy core. Strong expression surrounds a quiet, legible readout. */
.bf-command-v2 .bf-energy-stage { grid-template-rows:calc(48 * var(--bf-unit)) minmax(0,1fr) calc(88 * var(--bf-unit)); background:radial-gradient(ellipse at 50% 40%,rgba(25,66,164,.17),transparent 70%),#030c23; }
.bf-command-v2 .bf-energy-core { isolation:isolate; overflow:hidden; }
.bf-command-v2 .bf-energy-orbits { transform:none; inset:0; height:100%; z-index:-2; }
.bf-energy-shield { position:absolute; inset:22% 13% 24%; z-index:-1; pointer-events:none; background:radial-gradient(ellipse,#030c23 12%,rgba(3,12,35,.92) 38%,transparent 74%); }
.bf-command-v2 .bf-energy-core .bf-hero-copy { top:47%; }
.bf-command-v2 .bf-energy-core .bf-hero-copy > small { color:var(--bf-text); font-size:calc(24 * var(--bf-unit)); letter-spacing:.12em; margin-bottom:calc(8 * var(--bf-unit)); text-shadow:0 0 20px rgba(34,197,209,.4); }
.bf-energy-core .bf-hero-copy > small em { display:inline-block; margin-left:calc(8 * var(--bf-unit)); font-size:calc(12 * var(--bf-unit)); letter-spacing:0; font-style:normal; color:var(--bf-muted); vertical-align:middle; }
.bf-command-v2 .bf-energy-core .bf-hero-money strong { font-family:Menlo,Consolas,monospace; font-size:min(calc(96 * var(--bf-unit)),calc(140cqw / var(--bf-hero-money-chars, 10))); letter-spacing:-.06em; line-height:1.2; text-shadow:0 0 12px rgba(255,202,106,.25),0 0 40px rgba(255,202,106,.3); }
.bf-command-v2 .bf-energy-core .bf-hero-actual { margin-top:calc(16 * var(--bf-unit)); gap:calc(12 * var(--bf-unit)); color:var(--bf-text); font-size:calc(16 * var(--bf-unit)); }
.bf-command-v2 .bf-energy-core .bf-hero-actual b { font-family:Menlo,Consolas,monospace; font-size:min(calc(32 * var(--bf-unit)),calc(120cqw / var(--bf-actual-money-chars, 10))); color:var(--bf-text); white-space:nowrap; }
.bf-command-v2 .bf-energy-core .bf-hero-actual em { padding:0; border:0; font-style:normal; font-size:calc(12 * var(--bf-unit)); }
.bf-energy-cutoff { position:absolute; bottom:calc(16 * var(--bf-unit)); left:calc(16 * var(--bf-unit)); right:calc(16 * var(--bf-unit)); display:flex; justify-content:center; flex-wrap:wrap; gap:calc(4 * var(--bf-unit)) calc(16 * var(--bf-unit)); color:var(--bf-muted); font-size:calc(12 * var(--bf-unit)); text-align:center; }
.bf-energy-month { display:grid; grid-template-columns:1.35fr 1fr 1fr .9fr; gap:calc(16 * var(--bf-unit)); align-items:center; margin:0 calc(24 * var(--bf-unit)); border-top:1px solid rgba(154,170,202,.18); }
.bf-energy-month > div { min-width:0; }
.bf-energy-month span,.bf-energy-month small { display:block; color:var(--bf-muted); font-size:calc(12 * var(--bf-unit)); }
.bf-energy-month b { display:block; font-family:Menlo,Consolas,monospace; font-size:calc(24 * var(--bf-unit)); line-height:1.4; color:var(--bf-text); white-space:nowrap; }
.bf-energy-month-label b { font-family:"PingFang SC",Arial,sans-serif; font-size:calc(16 * var(--bf-unit)); }
.bf-energy-month-label small { line-height:1.5; }
.bf-energy-ring { stroke:var(--bf-actual); color:var(--bf-actual); }
.bf-energy-ring.is-violet { stroke:var(--bf-target); color:var(--bf-target); }
.bf-energy-band { stroke-width:7; opacity:.12; }
.bf-energy-wire { stroke-width:1.2; opacity:.8; filter:drop-shadow(0 0 3px currentColor); }
.bf-energy-chase { stroke-width:2; stroke-dasharray:125 1635; animation:bf-energy-chase 12s linear infinite; filter:drop-shadow(0 0 5px currentColor); }
.bf-energy-ring.is-violet .bf-energy-chase { animation-duration:18s; animation-direction:reverse; }
.bf-energy-particles { fill:currentColor; stroke:none; }
.bf-energy-spark { fill:var(--bf-text); filter:drop-shadow(0 0 4px currentColor) drop-shadow(0 0 8px currentColor); }
.bf-energy-spin { transform-origin:430px 210px; animation:bf-energy-spin 48s linear infinite; }
.bf-energy-spin.is-reverse { animation-direction:reverse; animation-duration:64s; }
.bf-energy-ticks { stroke:var(--bf-actual); stroke-width:4; stroke-dasharray:1 9; opacity:.4; }
.bf-energy-segments { stroke:var(--bf-actual); stroke-width:2; stroke-dasharray:100 50 22 73; opacity:.65; filter:drop-shadow(0 0 4px var(--bf-actual)); }
.bf-energy-outline { stroke:var(--bf-target); stroke-width:1; stroke-dasharray:174 53 7 53; opacity:.4; }
.bf-energy-dots { fill:none; stroke:var(--bf-actual); stroke-dasharray:1 8; opacity:.35; }
.bf-energy-pulse { animation:bf-stars 6s ease-in-out infinite; }
@keyframes bf-energy-spin { to { transform:rotate(360deg); } }
@keyframes bf-energy-chase { to { stroke-dashoffset:-1760; } }
@media (prefers-reduced-motion:reduce) { .bf-energy-stage *, .bf-energy-stage::before { animation:none !important; } }
@media (max-width:520px) {
 .bf-command-v2 .bf-energy-stage { grid-template-rows:48px minmax(0,1fr) 128px; }
 .bf-command-v2 .bf-energy-core .bf-hero-copy > small { font-size:20px; }
 .bf-command-v2 .bf-energy-core .bf-hero-actual { gap:8px; }
 .bf-command-v2 .bf-energy-core .bf-hero-actual b { font-size:min(24px,calc(120cqw / var(--bf-actual-money-chars, 10))); }
 .bf-energy-month { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0 16px; padding:8px 0; }
 .bf-energy-month-label { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
 .bf-energy-month b { font-size:20px; }
 .bf-energy-month-label b { font-size:16px; }
}
