/* Canonical web design tokens: master UI plan §§5.1–5.9, version-8 boards.
   Scoped components use --pg-* so this file can be imported before legacy CSS. */
@font-face { font-family: Manrope; src: url('../fonts/Manrope-VariableFont_wght.ttf') format('truetype'); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: Roboto; src: url('../fonts/Roboto-Variable.ttf') format('truetype'); font-style: normal; font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Roboto Mono'; src: url('../fonts/RobotoMono-Variable.ttf') format('truetype'); font-style: normal; font-weight: 100 700; font-display: swap; }

:root {
  --pg-ink: #030308; --pg-rail: #08080f; --pg-map-canvas: #07060e;
  --pg-inset: #0a0913; --pg-raised: #11101b;
  --pg-map-card-desktop: #0f0d19; --pg-map-card-phone: #110f1b;
  --pg-nav-android: #110f1d; --pg-sheet-ios: #12101f;
  --pg-search-dialog: #12111c; --pg-sheet-android: #17142a;
  --pg-avatar: #1c1b26; --pg-logo-tile: #1a1530; --pg-logo-tile-line: rgba(139,92,246,0.5); --pg-tab-active: #2a2145;
  --pg-tab-bar-float: rgba(22,19,40,0.9); --pg-map-overlay: rgba(16,14,30,0.88);
  --pg-map-sheet: rgba(18,16,31,0.96);
  --pg-scrim-menu: rgba(3,3,8,0.62); --pg-scrim-search: rgba(3,3,8,0.66);
  --pg-panel: rgba(255,255,255,0.045); --pg-section: rgba(255,255,255,0.035);
  --pg-fill-02: rgba(255,255,255,0.02); --pg-fill-04: rgba(255,255,255,0.04);
  --pg-fill-05: rgba(255,255,255,0.05); --pg-fill-06: rgba(255,255,255,0.06);
  --pg-fill-07: rgba(255,255,255,0.07); --pg-fill-08: rgba(255,255,255,0.08);
  --pg-line: rgba(255,255,255,0.09); --pg-line-control: rgba(255,255,255,0.14);
  --pg-line-header: rgba(255,255,255,0.08); --pg-line-input: rgba(255,255,255,0.12);
  --pg-line-row: rgba(255,255,255,0.07); --pg-line-row-light: rgba(255,255,255,0.05);
  --pg-line-heavy: rgba(255,255,255,0.16);
  --pg-text-bright: #f5f1e6; --pg-text: #ede8dc; --pg-text-2: #d9d4c8;
  --pg-muted: #b0ab9e; --pg-muted-2: #a39e92; --pg-caption: #8a8578;
  --pg-faint: #6b6658; --pg-axis: #4a4658; --pg-link: #c4b5fd;
  --pg-on-secondary: #e4dcff; --pg-white: #ffffff;
  --pg-primary: #7c4fe0; --pg-purple: #8b5cf6; --pg-violet: #a78bfa;
  --pg-cyan: #22d3ee; --pg-amber: #f59e0b; --pg-red: #ef4444;
  --pg-green: #4ade80; --pg-pink: #f472b6; --pg-slate: #94a3b8;
  --pg-cyan-text: #67e8f9; --pg-green-text: #86efac;
  --pg-amber-text: #f5c46b; --pg-red-text: #fca5a5;
  --pg-pink-text: #f9a8d4; --pg-slate-text: #cbd5e1;
  --pg-on-amber: #1a1204; --pg-on-cyan: #031418; --pg-on-green: #062012;
  --pg-android-tonal: #4c3a8f; --pg-on-android-tonal: #f1eaff;
  --pg-switch-on: #7c4fe0; /* §5.9 canonical across all platforms. */
  --pg-toggle-on-line: rgba(196,181,253,0.6);
  --pg-toggle-off-line: rgba(255,255,255,0.22);
  --pg-logo-battery-bg: #071a22; --pg-logo-cards-bg: #24091a;
  --pg-logo-night-bg: #140b26;
  --pg-logo-needs-halo: rgba(245,158,11,0.22);
  --pg-logo-offline-halo: rgba(239,68,68,0.25);
  --pg-machines-selected-line: rgba(139,92,246,0.45);
  --pg-machines-pack-bar: linear-gradient(90deg, #4ade80, #22d3ee);
  --pg-machine-bays-page-glow: radial-gradient(700px 420px at 70% -10%, rgba(34,211,238,0.08), transparent 70%), #030308;
  --pg-machine-screen-preview-glow: radial-gradient(220px 140px at 50% 30%, rgba(139,92,246,0.35), transparent 70%), #07061a;
  --pg-live-overlay: rgba(6,6,20,0.8);
  --pg-hub-today: #67e8f9; --pg-hub-today-tint: rgba(34,211,238,0.14);
  --pg-hub-fleet: #c4b5fd; --pg-hub-fleet-tint: rgba(139,92,246,0.18);
  --pg-hub-stock: #f5c46b; --pg-hub-stock-tint: rgba(245,158,11,0.15);
  --pg-hub-money: #86efac; --pg-hub-money-tint: rgba(74,222,128,0.13);
  --pg-hub-growth: #f9a8d4; --pg-hub-growth-tint: rgba(244,114,182,0.14);
  --pg-hub-control: #cbd5e1; --pg-hub-control-tint: rgba(148,163,184,0.15);
  --pg-hub-color: #67e8f9; --pg-hub-tint: rgba(34,211,238,0.14);
  --pg-kind-anomaly-bg: rgba(245,158,11,0.16);
  --pg-kind-stuck-bg: rgba(239,68,68,0.16);
  --pg-kind-case-bg: rgba(139,92,246,0.18);
  --pg-kind-ticket-bg: rgba(34,211,238,0.14);
  --pg-kind-stock-bg: rgba(245,158,11,0.16);
  --pg-kind-update-bg: rgba(148,163,184,0.16);
  --pg-history-rental-bg: rgba(139,92,246,0.18);
  --pg-history-return-bg: rgba(74,222,128,0.13);
  --pg-history-hold-bg: rgba(139,92,246,0.12);
  --pg-history-command-bg: rgba(148,163,184,0.16);
  --pg-history-software-bg: rgba(34,211,238,0.14);
  --pg-history-alert-bg: rgba(245,158,11,0.16);
  --pg-history-error-bg: rgba(239,68,68,0.16);
  --pg-history-audit-bg: rgba(255,255,255,0.08);
  --pg-history-hold-text: #d8ccff;
  --pg-status-ok-line: rgba(74,222,128,0.5);
  --pg-status-warn-line: rgba(245,158,11,0.55);
  --pg-status-bad-line: rgba(239,68,68,0.55);
  --pg-status-info-line: rgba(196,181,253,0.5);
  --pg-status-dim-line: rgba(255,255,255,0.2);
  --pg-online-bg: rgba(74,222,128,0.1); --pg-online-line: rgba(74,222,128,0.35);
  --pg-live-ring: rgba(74,222,128,0.18);
  --pg-battery-shell: rgba(237,232,220,0.85);
  --pg-battery-reserved-line: rgba(139,92,246,0.75);
  --pg-battery-empty-line: rgba(255,255,255,0.25);
  --pg-battery-ready-fill: linear-gradient(0deg, #4ade80, #22d3ee);
  --pg-battery-reserved-fill: repeating-linear-gradient(135deg, rgba(139,92,246,0.6) 0 4px, rgba(139,92,246,0.2) 4px 8px);
  --pg-battery-ready-glow: 0 0 18px rgba(74,222,128,0.45);
  --pg-battery-ready-card: rgba(74,222,128,0.04);
  --pg-battery-ready-card-line: rgba(74,222,128,0.25);
  --pg-battery-charging-card: rgba(255,255,255,0.035);
  --pg-battery-charging-card-line: rgba(255,255,255,0.07);
  --pg-battery-reserved-card: rgba(139,92,246,0.05);
  --pg-battery-reserved-card-line: rgba(139,92,246,0.3);
  --pg-battery-empty-card: rgba(255,255,255,0.02);
  --pg-battery-empty-card-line: rgba(255,255,255,0.06);
  --pg-battery-ready-chip: rgba(74,222,128,0.14);
  --pg-battery-charging-chip: rgba(239,68,68,0.14);
  --pg-battery-reserved-chip: rgba(139,92,246,0.18);
  --pg-battery-empty-chip: rgba(255,255,255,0.06);
  --pg-battery-charging-text: #fdba74; --pg-battery-yellow: #facc15;
  --pg-battery-red: #ef4444;
  --pg-battery-fill-height: 0%; --pg-battery-charging-top: #ef4444;
  --pg-provenance-measured-line: rgba(74,222,128,0.5);
  --pg-provenance-estimate-line: rgba(196,181,253,0.5);
  --pg-provenance-assumed-line: rgba(245,158,11,0.6);
  --pg-provenance-not-live-line: rgba(239,68,68,0.55);
  --pg-admin-bg: rgba(148,163,184,0.18);
  --pg-secondary-line: rgba(196,181,253,0.45);
  --pg-inline-line: rgba(196,181,253,0.4);
  --pg-chart-bar: #8b7fd6; --pg-chart-bar-active: #a99ef0;
  --pg-chart-band: rgba(163,158,146,0.16); --pg-chart-band-strong: rgba(163,158,146,0.3);
  --pg-chart-price-band: rgba(163,158,146,0.12);
  --pg-chart-price-band-tested: rgba(163,158,146,0.18);
  --pg-chart-band-edge: #6b6658; --pg-chart-grid: rgba(255,255,255,0.07);
  --pg-chart-hatch-base: rgba(139,127,214,0.18);
  --pg-chart-hatch-stripe: rgba(139,127,214,0.7);
  --pg-chart-forbidden-base: rgba(163,158,146,0.06);
  --pg-chart-forbidden-stripe: rgba(163,158,146,0.35);
  --pg-chart-tooltip: #16142a;
  --pg-chart-tooltip-line: rgba(255,255,255,0.18);
  --pg-map-land: #f2efe9; --pg-map-coast: #b9c9cc;
  --pg-map-water: #aad3df; --pg-map-forest: #add19e; --pg-map-urban: #e0dfdf;
  --pg-map-motorway: #e892a2; --pg-map-motorway-casing: #c24e6b;
  --pg-map-trunk: #f9b29c; --pg-map-primary: #fcd6a4;
  --pg-map-primary-casing: #c38a4a; --pg-map-street: #ffffff;
  --pg-map-street-casing: #cdc7ba; --pg-map-state-line: #8d618b;
  --pg-map-state-halo: rgba(141,97,139,0.22);
  --pg-map-label: #2b2b2b; --pg-map-label-strong: #1f1f1f;
  --pg-map-label-minor: #555555; --pg-map-label-minor-strong: #444444;
  --pg-map-credit: #333333; --pg-map-credit-bg: rgba(255,255,255,0.82);
  --pg-globe-sphere-light: #5d4a98; --pg-globe-sphere-mid: #2b2150;
  --pg-globe-sphere-dark: #110d22; --pg-globe-rim: #f472b6;
  --pg-globe-land: rgba(196,181,253,0.55); --pg-globe-land-line: rgba(232,224,255,0.35);
  --pg-globe-lake: #10172a; --pg-globe-graticule: rgba(216,200,255,0.3);
  --pg-globe-star: #d9d2ff; --pg-globe-pennsylvania: #f472b6;
  --pg-globe-pennsylvania-line: #f9a8d4;
  --pg-route-driven: #8e8b99; --pg-route-pending: #7c4fe0;
  --pg-route-return: #9f88ea;
  --pg-route-done-line: rgba(245,158,11,0.6);
  --pg-restock-summary-bg: rgba(245,158,11,0.06);
  --pg-restock-summary-line: rgba(245,158,11,0.3);
  /* Source-board additions are pinned in redesign-token-contract.mjs. */
  --pg-map-panel-shadow: rgba(0,0,0,0.45);
  --pg-map-pin-shadow: rgba(0,0,0,0.35);
  --pg-machine-screen-mock-glow: radial-gradient(520px 300px at 20% 10%, rgba(139,92,246,0.3), transparent 70%), radial-gradient(420px 260px at 90% 90%, rgba(34,211,238,0.14), transparent 70%), #07061a;
  --pg-scout-score-highest: #db2777;
  --pg-scout-score-high: #c0307a;
  --pg-scout-score-medium: #8e3a6e;
  --pg-scout-score-low: #5a3a5c;
  --pg-scout-results-bg: rgba(14,12,26,0.92);
  --pg-scout-region-line: rgba(244,114,182,0.3);
  --pg-scout-estimate-bg: rgba(139,92,246,0.09);
  --pg-globe-rim-glow: rgba(244,114,182,0.75);
  --pg-map-replay-bg: rgba(7,6,14,0.78);
  --pg-shadow-primary: rgba(124,79,224,0.35);
  --pg-ad-creative-start: #3a1a5c;
  --pg-ad-creative-end: #7c2d5a;
  --pg-ad-creative-text: #fbcfe8;
  --pg-growth-pink-07: rgba(244,114,182,0.07);
  --pg-pink-08: rgba(244,114,182,0.08);
  --pg-growth-pink-12: rgba(244,114,182,0.12);
  --pg-growth-pink-35: rgba(244,114,182,0.35);
  --pg-ad-creative-line: rgba(249,168,212,0.5);
  --pg-product-deck: #93c5fd;
  --pg-product-cable: #5eead4;
  --pg-product-water: #e2e8f0;
  --pg-stock-purple-10: rgba(139,92,246,0.1);
  --pg-stock-purple-20: rgba(139,92,246,0.2);
  --pg-stock-purple-25: rgba(139,92,246,0.25);
  --pg-stock-purple-40: rgba(139,92,246,0.4);
  --pg-stock-amber-05: rgba(245,158,11,0.05);
  --pg-stock-amber-07: rgba(245,158,11,0.07);
  --pg-amber-08: rgba(245,158,11,0.08);
  --pg-stock-amber-14: rgba(245,158,11,0.14);
  --pg-stock-amber-45: rgba(245,158,11,0.45);
  --pg-stock-amber-50: rgba(245,158,11,0.5);
  --pg-stock-green-selected-text: #bbf7d0;
  --pg-stock-green-selected-line: rgba(74,222,128,0.6);
  --pg-stock-pink-strong-line: rgba(249,168,212,0.55);
  --pg-stock-scrim: rgba(3,3,8,0.5);
  --pg-font-display: Manrope, 'Segoe UI', system-ui, sans-serif;
  --pg-font-body: Roboto, 'Segoe UI', system-ui, sans-serif;
  --pg-font-mono: 'Roboto Mono', ui-monospace, Menlo, monospace;
  --pg-type-page-title: 800 22px/1.15 var(--pg-font-display);
  --pg-type-button: 500 14px var(--pg-font-body);
  --pg-type-button-inline: 400 13px var(--pg-font-body);
  --pg-type-kind-badge: 400 11px var(--pg-font-mono);
  --pg-type-provenance-badge: 400 10.5px var(--pg-font-mono);
  --pg-type-status-badge: 400 10px var(--pg-font-mono);
  --pg-type-card-title: 800 17px var(--pg-font-display);
  --pg-type-card-copy: 400 13px/1.45 var(--pg-font-body);
  --pg-type-kpi-label: 400 11px var(--pg-font-mono);
  --pg-type-kpi-value: 800 30px var(--pg-font-display);
  --pg-type-kpi-note: 400 13px var(--pg-font-body);
  --pg-type-battery-label: 500 12px var(--pg-font-body);
  --pg-type-battery-chip: 400 10px var(--pg-font-mono);
  --pg-type-battery-percent: 700 15px var(--pg-font-display);
  --pg-type-battery-percent-desktop: 800 22px var(--pg-font-display);
  --pg-type-battery-bay: 400 11px var(--pg-font-mono);
  --pg-type-battery-pack: 400 11.5px var(--pg-font-mono);
  --pg-type-fixture-kicker: 400 12px var(--pg-font-mono);
  --pg-type-fixture-hero: 800 44px var(--pg-font-display);
  --pg-type-fixture-copy: 400 15px/1.5 var(--pg-font-body);
  --pg-type-fixture-label: 400 11px var(--pg-font-mono);
  --pg-type-fixture-hub: 400 13px var(--pg-font-body);
  --pg-type-fixture-provenance: 400 13px/1.4 var(--pg-font-body);
  --pg-letter-kicker: 3px; --pg-letter-label: 2px;
  --pg-letter-mono: 1px; --pg-letter-mono-compact: .8px;
  --pg-letter-kpi: 1.5px;
  --pg-button-height: 40px; --pg-inline-button-height: 32px;
  --pg-button-pad-inline: 16px; --pg-inline-button-pad-inline: 12px;
  --pg-card-padding: 16px 18px; --pg-card-padding-compact: 14px 16px;
  --pg-section-padding: 16px;
  --pg-battery-cell-width: 60px; --pg-battery-cell-height: 118px;
  --pg-battery-cell-padding: 5px; --pg-battery-cap-width: 16px;
  --pg-battery-cap-height: 6px; --pg-battery-cap-offset-top: -8px;
  --pg-battery-cap-offset-left: 20px;
  --pg-battery-legend-width: 26px; --pg-battery-legend-height: 46px;
  --pg-battery-mini-width: 5px; --pg-battery-mini-height: 14px;
  --pg-control-hit: 44px; --pg-toggle-hit-width: 52px;
  --pg-toggle-track-width: 44px; --pg-toggle-track-height: 26px;
  --pg-toggle-knob: 18px; --pg-chip-height: 26px;
  --pg-machine-logo-size: 32px; --pg-machine-row-height: 54px;
  --pg-machines-filter-height: 34px; --pg-machines-view-height: 30px;
  --pg-rail-width: 80px; --pg-header-height: 68px;
  --pg-rail-item-width: 64px; --pg-rail-logo-size: 40px;
  --pg-header-search-width: 330px;
  --pg-menu-left: 88px; --pg-menu-top: 12px;
  --pg-menu-width: 1336px; --pg-search-dialog-width: 760px;
  --pg-search-dialog-top: 96px;
  --pg-rail-active-bg: rgba(139,92,246,0.22);
  --pg-menu-active-bg: rgba(139,92,246,0.26);
  --pg-menu-idle-bg: rgba(139,92,246,0.08);
  --pg-menu-active-line: rgba(139,92,246,0.75);
  --pg-menu-idle-line: rgba(139,92,246,0.28);
  --pg-menu-active-glow: 0 0 22px rgba(139,92,246,0.4);
  --pg-menu-dialog-line: rgba(139,92,246,0.35);
  --pg-menu-hub-active-bg: rgba(34,211,238,0.05);
  --pg-menu-hub-active-line: rgba(34,211,238,0.35);
  --pg-menu-hub-idle-bg: rgba(255,255,255,0.025);
  --pg-menu-hub-idle-line: rgba(255,255,255,0.07);
  --pg-menu-page-bg: rgba(255,255,255,0.03);
  --pg-menu-page-hover-bg: rgba(139,92,246,0.16);
  --pg-menu-page-hover-line: rgba(139,92,246,0.55);
  --pg-search-dialog-line: rgba(139,92,246,0.45);
  --pg-search-active-bg: rgba(139,92,246,0.18);
  --pg-search-active-line: rgba(139,92,246,0.5);
  --pg-type-control: 500 14px var(--pg-font-body);
  --pg-type-chip: 400 12px var(--pg-font-body);
  --pg-type-row: 400 14px var(--pg-font-body);
  --pg-type-timeline-time: 400 12px var(--pg-font-mono);
  --pg-type-timeline-title: 400 13.5px var(--pg-font-body);
  --pg-type-region-kicker: 700 13px var(--pg-font-display);
  --pg-letter-region: 4px;
  --pg-type-live: 400 12.5px var(--pg-font-body);
  --pg-type-keycap: 400 12px var(--pg-font-mono);
  --pg-type-slider-label: 400 12px var(--pg-font-body);
  --pg-type-slider-value: 500 13px var(--pg-font-body);
  --pg-radius-pill: 999px; --pg-radius-button: 10px; --pg-radius-track: 12px;
  --pg-radius-row: 12px; --pg-radius-rail: 14px; --pg-radius-card: 16px;
  --pg-radius-panel: 18px; --pg-radius-dialog: 20px; --pg-radius-hero-phone: 22px;
  --pg-radius-badge: 5px; --pg-radius-kind: 6px; --pg-radius-tab: 9px;
  --pg-gap-2: 2px; --pg-gap-4: 4px; --pg-gap-6: 6px; --pg-gap-8: 8px;
  --pg-gap-10: 10px; --pg-gap-12: 12px; --pg-gap-14: 14px;
  --pg-gap-16: 16px; --pg-gap-18: 18px; --pg-gap-20: 20px;
  --pg-shadow-dialog: 0 30px 90px rgba(0,0,0,0.65), 0 0 60px rgba(139,92,246,0.12);
  --pg-shadow-sheet: 0 -20px 60px rgba(0,0,0,0.5);
  --pg-shadow-tab-bar: 0 12px 40px rgba(0,0,0,0.55);
  --pg-shadow-rail-active: 0 0 0 1px rgba(139,92,246,0.55), 0 0 22px rgba(139,92,246,0.35);
  /* Shell layout: one content gutter for every board (plan 2026-09-29 §4.10). */
  /* Live Scout result-pin score bands, pinned by verify-redesign-growth-scout-map-live. */
  --pg-scout-band-excellent: #22c55e; --pg-scout-band-excellent-text: #10251a;
  --pg-scout-band-good: #a3d900; --pg-scout-band-good-text: #202a08;
  --pg-scout-band-fair: #f59e0b; --pg-scout-band-fair-text: #2b1b06;
  --pg-scout-band-low: #ef4444; --pg-scout-band-low-text: #300d10;
  --pg-content-gutter: 28px; --pg-content-gutter-narrow: 14px; --pg-scrollbar-size: 8px;
  --pg-type-kpi-unavailable: 500 16px var(--pg-font-body);
  /* Motion (plan §5). Durations follow the motion review. The two easings are
     least-squares cubic-bezier fits, control points held in [0,1] so nothing
     overshoots, to a unit spring step response over its 0.1% settling window:
     spatial = damping ratio 0.9, effects = damping ratio 1.0. With time
     normalised the shape does not depend on stiffness, so the duration tokens
     carry it. Fit error RMS 1.4% / 1.1%, max 4.2% / 3.5%. */
  --pg-motion-fx-fast: 120ms; --pg-motion-fx: 180ms;
  --pg-motion-move-fast: 150ms; --pg-motion-move: 210ms; --pg-motion-move-slow: 320ms;
  --pg-motion-attention: 600ms;
  --pg-motion-stagger-step: 16ms; --pg-motion-stagger-max: 12;
  --pg-ease-spatial: cubic-bezier(0.385, 0.817, 0.13, 1);
  --pg-ease-effects: cubic-bezier(0.326, 0.686, 0.111, 1);
}
