/* command.css — owned by WP-ADMIN-COMMAND. Tokens only (docs/vfx-master-spec.md §1 rule 5). */

/* ------------------------------------------------------------ FLEET MAP
   One rider layer per online rider over ui.map. The layer shares the map's
   viewBox and slice fit, so a zone pin and the marker gliding to it land on
   the same pixel. Nothing here moves layout: the layer is absolute, the
   marker is a transform inside the SVG. */
.cmd-fleet { position: relative; }
.cmd-route-layer { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.cmd-route-layer .vfx-path { width: 100%; height: 100%; }
.cmd-route-layer.is-disc .vfx-rider circle { r: 8; }
.cmd-route-layer .vfx-rider image { pointer-events: none; }
.mapbox .cmd-route-layer .vfx-path-trail { stroke: var(--txt-3); opacity: .55; }
.mapbox .cmd-route-layer .vfx-path-done { stroke: var(--fc-green-600); }
.cmd-fleet-cap { font-variant-numeric: tabular-nums; }
.cmd-fleet-cap b { color: var(--txt-1); font-weight: var(--fc-w-semi); }

/* ------------------------------------------------------- P&L WATERFALL
   A coin stack per line: one coin per eighth of revenue, revealed as that
   line lands so the stacks read as the arithmetic the bars just did. */
.cmd-stack { display: inline-flex; align-items: flex-end; gap: 2px; margin-left: var(--fc-s-2); vertical-align: middle; }
.cmd-coin { display: inline-block; width: 10px; height: 4px; border-radius: var(--fc-r-pill); background: var(--fc-warn); box-shadow: inset 0 -1px 0 var(--fc-premium); }
.cmd-coin.fc-stagger-in { animation-duration: var(--fc-m-quick); }

/* ---------------------------------------------------------- LIVE PULSE */
.cmd-pulse-n { display: inline-grid; font-variant-numeric: tabular-nums; }
