/* Jetons de design repris de RigPlane Core (frontend/src/components-v2/theme/tokens.css)
 * Copyright (c) 2026 Sergey Morozik (KN4KYD) — licence MIT, voir TIERS.md */
:root {
  /* ── Colors: Backgrounds (~10% brighter) ──────────────────────────────── */
  --v2-bg-app: #121720;
  --v2-bg-card: #0E1420;
  --v2-bg-input: #151C28;
  --v2-bg-darker: #060A10;
  --v2-bg-darkest: #07090D;
  --v2-bg-panel: #1E252C;
  --v2-bg-gradient-start: #0d1117;
  --v2-bg-gradient-panel: #1a1a2e;
  --v2-border: #243040;
  --v2-border-subtle: #2A3340;
  --v2-border-dark: #18202A;
  --v2-border-darker: #1a2734;
  --v2-border-panel: #18222d;

  /* ── Colors: Accents ─────────────────────────────────────────────────────── */
  --v2-accent-cyan: #00D4FF;
  /* Focus illumination colour used by the protected value-control and native
   * range renderers. */
  --v2-focus-ring-color: var(--v2-accent-cyan);
  --v2-focus-ring-shadow: 0 0 0 2px var(--v2-focus-ring-color);
  --v2-accent-orange: #FF6A00;
  --v2-accent-red: #FF2020;
  --v2-accent-green: #00CC66;
  --v2-accent-yellow: #FFF21A; /* jaune fluo (libellés, repères, avertissements) */
  --v2-accent-violet: #9a78e0;
  --v2-indicator-cyan: #00D4FF;
  --v2-indicator-green: #00CC66;
  --v2-indicator-amber: #F2CF4A;
  --v2-indicator-red: #FF2020;
  --v2-indicator-orange: #FF6A00;
  --v2-indicator-white: #F5F8FC;
  --v2-accent-green-bright: #4ED37B;
  --v2-accent-green-medium: #18CC79;
  --v2-accent-green-dark: #14A665;
  --v2-accent-red-alt: #F14C42;
  --v2-accent-orange-alt: #F08B31;
  --v2-accent-cyan-bright: #7CFCE5;
  --v2-accent-cyan-teal: #228899;
  --v2-accent-cyan-alt: #00FFFF;

  /* ── MOR-2509 (mock-up v7): the VFO S-meter face's segment tones. Lit
   * below S9, lit at/above S9, and the unlit track. Per-theme overrides
   * belong with the theme files; these defaults are the owner-approved
   * values. */
  --v2-meter-blue: #58a0ff;
  --v2-meter-red: #e2362c;
  --v2-meter-unlit: #18212a;

  /* ── Colors: Text (~10% brighter) ────────────────────────────────────── */
  --v2-text-primary: #F5F8FC;
  --v2-text-secondary: #A0B4C8;
  --v2-text-muted: #607890;
  --v2-text-header: #A0B8D0;
  --v2-text-bright: #F0F5FA;
  --v2-text-white: #FFFFFF;
  --v2-text-light: #d8e3f0;
  --v2-text-lighter: #EAF1F8;
  --v2-text-dim: #6F8196;
  --v2-text-dimmer: #546578;
  --v2-text-disabled: #4D6074;
  --v2-text-subdued: #8ca0b8;
  --v2-text-subtle: #7b8da1;

  /* ── Typography ──────────────────────────────────────────────────────────── */
  --v2-font-mono: Verdana, 'DejaVu Sans', 'Bitstream Vera Sans', Arial, sans-serif;
  --v2-font-size-xs: 7px;
  --v2-font-size-sm: 9px;
  --v2-font-size-md: 11px;
  --v2-font-size-lg: 15px;
  --v2-font-size-xl: 18px;
  --v2-font-size-2xl: 28px;
  --v2-header-letter-spacing: 1.4px;
  --v2-header-font-weight: 700;

  /* ── Spacing ─────────────────────────────────────────────────────────────── */
  --v2-gap-xs: 4px;
  --v2-gap-sm: 8px;
  --v2-gap-md: 12px;
  --v2-gap-lg: 16px;
  --v2-gap-xl: 24px;
  --v2-panel-padding: 12px;
  --v2-panel-radius: 10px;

  /* ── Effects: Glows ──────────────────────────────────────────────────────── */
  --v2-glow-cyan: 0 0 8px rgba(0, 212, 255, 0.15);
  --v2-glow-orange: 0 0 8px rgba(255, 106, 0, 0.15);
  --v2-glow-red: 0 0 8px rgba(255, 32, 32, 0.15);

  /* ── Effects: Shadows ────────────────────────────────────────────────────── */
  --v2-shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.28);
  --v2-shadow-md: 0 12px 24px rgba(0, 0, 0, 0.32);
  --v2-shadow-lg: 0 32px 80px rgba(0, 0, 0, 0.46);

  /* ── Effects: Overlays ───────────────────────────────────────────────────── */
  --v2-overlay-dark: rgba(8, 14, 20, 0.94);
  --v2-overlay-darker: rgba(5, 9, 14, 0.98);
  --v2-overlay-medium: rgba(10, 16, 22, 0.9);
  --v2-overlay-light: rgba(10, 16, 22, 0.72);

  /* ── Effects: Borders with opacity ───────────────────────────────────────── */
  --v2-border-soft: rgba(72, 96, 122, 0.42);
  --v2-border-softer: rgba(72, 96, 122, 0.24);
  --v2-border-subtle-soft: rgba(72, 96, 122, 0.18);
  --v2-border-cyan: rgba(0, 212, 255, 0.24);
  --v2-border-cyan-bright: rgba(0, 212, 255, 0.48);

  /* ── Layer 2: Accents & Data Visualization ───────────────────────────── */
  /* These can be overridden independently from the base theme */

  /* Status Badges */
  --v2-badge-cyan-bg: #0D3B66;
  --v2-badge-cyan-border: #00D4FF;
  --v2-badge-cyan-text: #FFFFFF;
  --v2-badge-cyan-glow: rgba(0, 212, 255, 0.14);
  --v2-badge-orange-bg: #3D2200;
  --v2-badge-orange-border: #FF6A00;
  --v2-badge-orange-text: #FFF0E4;
  --v2-badge-orange-glow: rgba(255, 106, 0, 0.14);
  --v2-badge-amber-bg: #3D3000;
  --v2-badge-amber-border: #F2CF4A;
  --v2-badge-amber-text: #FFFAE6;
  --v2-badge-amber-glow: rgba(242, 207, 74, 0.14);
  --v2-badge-red-bg: #3D0A0A;
  --v2-badge-red-border: #FF2020;
  --v2-badge-red-text: #FFF0ED;
  --v2-badge-red-glow: rgba(255, 32, 32, 0.14);
  --v2-badge-green-bg: #0A3D1A;
  --v2-badge-green-border: #00CC66;
  --v2-badge-green-text: #F0FFF6;
  --v2-badge-green-glow: rgba(0, 204, 102, 0.14);
  --v2-badge-muted-bg: #1A2028;
  --v2-badge-muted-border: #4D6074;
  --v2-badge-muted-text: #8DA2B8;
  --v2-badge-muted-glow: rgba(77, 96, 116, 0.10);
  --v2-badge-inactive-border: #1A2028;
  --v2-badge-inactive-text: #4D6074;

  /* Badge color overrides (per feature) */
  --v2-badge-nr-color: amber;
  --v2-badge-nb-color: amber;
  --v2-badge-notch-color: amber;
  --v2-badge-anf-color: amber;
  --v2-badge-digi-sel-color: green;
  --v2-badge-ip-plus-color: cyan;
  --v2-badge-att-color: green;
  --v2-badge-pre-color: green;
  --v2-badge-rfg-color: amber;
  --v2-badge-sql-color: green;
  --v2-badge-split-color: amber;
  --v2-badge-rit-color: amber;
  --v2-badge-xit-color: amber;
  --v2-badge-data-color: cyan;
  --v2-badge-default-color: cyan;

  /* Receiver accent (MAIN/SUB distinction) */
  --v2-receiver-main-accent: #00D4FF;   /* cyan */
  --v2-receiver-sub-accent: #FF6A00;    /* orange */
  --v2-vfo-main-control-border: rgba(0, 212, 255, 0.48);
  --v2-vfo-main-control-glow: rgba(0, 212, 255, 0.12);
  --v2-vfo-main-panel-glow-outer: rgba(0, 212, 255, 0.35);
  --v2-vfo-sub-control-border: rgba(255, 106, 0, 0.48);
  --v2-vfo-sub-control-glow: rgba(255, 106, 0, 0.12);
  --v2-vfo-sub-panel-glow-outer: rgba(255, 106, 0, 0.35);

  /* VFO Indicators */
  --v2-vfo-active-glow: rgba(0, 212, 255, 0.08);
  --v2-vfo-badge-active-bg: rgba(21, 74, 34, 0.68);
  --v2-vfo-badge-active-border: rgba(61, 110, 72, 0.9);
  --v2-vfo-badge-standby-bg: rgba(20, 27, 36, 0.74);
  --v2-vfo-badge-standby-border: rgba(64, 81, 102, 0.86);
  --v2-vfo-meter-tag-bg: rgba(8, 53, 76, 0.62);
  --v2-vfo-slot-tag-bg: rgba(16, 23, 31, 0.8);
  --v2-vfo-mode-badge-bg: rgba(8, 58, 85, 0.66);
  --v2-vfo-filter-badge-bg: rgba(15, 24, 34, 0.86);
  --v2-vfo-rit-label-bg: rgba(9, 39, 56, 0.5);
  --v2-vfo-rit-offset-bg: rgba(62, 31, 7, 0.6);
  --v2-vfo-rit-offset-border: rgba(195, 126, 17, 0.82);

  /* TX Indicators */
  --v2-tx-tuning: #FF2020;
  --v2-tx-active: #FF6A00;
  --v2-tx-idle: #3A4A5A;
  --v2-tx-panel-glow: rgba(255, 32, 32, 0.15);

  /* Meter Gradients */
  --v2-meter-s-fill: linear-gradient(90deg, #65d8ff 0%, #82f2ff 60%, #e6f7ff 100%);
  --v2-meter-s-track: linear-gradient(90deg, rgba(21, 82, 97, 0.38) 0%, rgba(34, 116, 135, 0.26) 60%, rgba(230, 247, 255, 0.14) 100%);
  --v2-meter-power-fill: linear-gradient(90deg, var(--v2-text-primary) 0%, var(--v2-text-primary) 35%, #e3ae3a 35%, #a63514 100%);
  --v2-meter-power-track: linear-gradient(90deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.08) 35%, rgba(227, 174, 58, 0.14) 35%, rgba(166, 53, 20, 0.2) 100%);
  --v2-meter-swr-fill: linear-gradient(90deg, #0f5a37 0%, #18c36f 52%, #a48712 68%, #7e180f 100%);
  --v2-meter-swr-track: linear-gradient(90deg, rgba(15, 90, 55, 0.35) 0%, rgba(24, 195, 111, 0.22) 52%, rgba(164, 135, 18, 0.16) 68%, rgba(126, 24, 15, 0.2) 100%);
  --v2-meter-alc-fill: linear-gradient(90deg, #0d4b31 0%, #3e8b29 32%, #e1b43c 58%, #9e2710 100%);
  --v2-meter-alc-track: linear-gradient(90deg, rgba(13, 75, 49, 0.34) 0%, rgba(62, 139, 41, 0.2) 32%, rgba(225, 180, 60, 0.17) 58%, rgba(158, 39, 16, 0.2) 100%);
  --v2-meter-id-fill: linear-gradient(90deg, #5a2a08 0%, #d07a1a 55%, #f7c357 100%);
  --v2-meter-id-track: linear-gradient(90deg, rgba(90, 42, 8, 0.32) 0%, rgba(208, 122, 26, 0.2) 55%, rgba(247, 195, 87, 0.14) 100%);
  --v2-meter-vd-fill: linear-gradient(90deg, #0c4a6e 0%, #2fa5d6 55%, #8fe8ff 100%);
  --v2-meter-vd-track: linear-gradient(90deg, rgba(12, 74, 110, 0.32) 0%, rgba(47, 165, 214, 0.2) 55%, rgba(143, 232, 255, 0.14) 100%);
  --v2-meter-comp-fill: linear-gradient(90deg, #0f5a37 0%, #2fbd6b 55%, #b7f0a8 100%);
  --v2-meter-comp-track: linear-gradient(90deg, rgba(15, 90, 55, 0.32) 0%, rgba(47, 189, 107, 0.2) 55%, rgba(183, 240, 168, 0.14) 100%);

  /* Meter Source Tags */
  --v2-meter-source-s-bg: rgba(12, 54, 76, 0.52);
  --v2-meter-source-s-border: #235873;
  --v2-meter-source-s-text: #92eaff;
  --v2-meter-source-swr-bg: rgba(18, 79, 35, 0.52);
  --v2-meter-source-swr-border: #2c6d3f;
  --v2-meter-source-swr-text: #8ef7a8;
  --v2-meter-source-power-bg: rgba(95, 60, 8, 0.48);
  --v2-meter-source-power-border: rgba(195, 146, 48, 0.82);
  --v2-meter-source-power-text: #ffdca0;
  --v2-meter-tx-bg: rgba(93, 20, 12, 0.5);
  --v2-meter-tx-border: rgba(189, 59, 29, 0.78);
  --v2-meter-tx-text: #ffc4b8;
  --v2-meter-tx-active-bg: rgba(132, 25, 13, 0.82);
  --v2-meter-tx-active-text: #fff2ed;
  --v2-meter-active-glow: rgba(0, 180, 255, 0.14);
  --v2-meter-active-shadow: rgba(111, 194, 255, 0.08);
  --v2-meter-bar-divider: rgba(255, 255, 255, 0.2);

  /* Panel Backgrounds & Overlays */
  --v2-panel-bg-gradient-top: rgba(20, 28, 38, 0.98);
  --v2-panel-bg-gradient-bottom: rgba(14, 20, 30, 0.98);
  --v2-sidebar-gradient-top: rgba(8, 16, 24, 0.96);
  --v2-sidebar-gradient-bottom: rgba(5, 11, 18, 0.96);
  --v2-sidebar-footer-bg: rgba(10, 18, 26, 0.92);
  --v2-vfo-header-gradient-top: rgba(9, 14, 19, 0.96);
  --v2-vfo-header-gradient-bottom: rgba(6, 10, 15, 0.96);
  --v2-vfo-header-border: rgba(24, 34, 45, 0.92);
  --v2-meter-panel-glow: rgba(0, 212, 255, 0.08);

  /* Keyboard Handler & Modal */
  --v2-modal-backdrop: rgba(2, 6, 10, 0.82);
  --v2-modal-bg-top: rgba(8, 14, 20, 0.98);
  --v2-modal-bg-bottom: rgba(5, 9, 14, 0.98);
  --v2-modal-glow: rgba(0, 212, 255, 0.12);
  --v2-modal-section-border: rgba(72, 96, 122, 0.1);
  --v2-modal-key-active-border: rgba(0, 212, 255, 0.36);
  --v2-modal-key-active-glow: rgba(0, 212, 255, 0.08);
  --v2-modal-code-border: rgba(0, 212, 255, 0.26);
  --v2-modal-code-bg: rgba(8, 14, 20, 0.97);
  --v2-modal-shadow: rgba(0, 0, 0, 0.34);

  /* Popup & Dropdown Backgrounds */
  --v2-popup-bg: rgba(3, 7, 12, 0.62);
  --v2-popup-shadow: rgba(0, 0, 0, 0.45);
  --v2-popup-border-glow: rgba(0, 212, 255, 0.12);
  --v2-attenuator-bg: rgba(3, 7, 12, 0.58);
  --v2-attenuator-shadow: rgba(0, 0, 0, 0.35);

  /* Control Elements */
  --v2-control-button-gradient-top: rgba(18, 24, 33, 0.98);
  --v2-control-button-gradient-bottom: rgba(11, 16, 23, 0.98);
  --v2-control-button-highlight: rgba(255, 255, 255, 0.03);
  --v2-bipolar-gradient-edge: rgba(105, 121, 140, 0.04);
  --v2-bipolar-gradient-center: rgba(105, 121, 140, 0.02);
  --v2-bipolar-border: rgba(215, 226, 238, 0.04);
  --v2-knob-shadow: rgba(255, 255, 255, 0.3);
  --v2-theme-picker-border: rgba(0, 0, 0, 0.2);

  /* CollapsiblePanel */
  --v2-collapsible-bg: #060a10;
  --v2-collapsible-border: #18202a;
  --v2-collapsible-header-bg: #1a1a2e;
  --v2-collapsible-header-hover-bg: #222238;
  --v2-collapsible-header-text: #e0e0e0;
  --v2-collapsible-chevron: #888;
  --v2-collapsible-chevron-hover: #00d4ff;

  /* ── Receiver Accent Colors (REMOVED - duplicates semantic tokens at lines 145-152) ── */
  /* ── Badge Type Colors (REMOVED - duplicates semantic tokens above) ── */
  /* Semantic badge colors are now defined above (lines 128-138) using color names */

  /* ── VFO Frequency Display Colors ───────────────────────── */
  /* Per-receiver frequency display customization */
  --v2-vfo-main-freq-active: var(--v2-accent-cyan-bright);
  --v2-vfo-main-freq-inactive: var(--v2-text-muted);
  --v2-vfo-main-freq-hover: var(--v2-text-white);
  --v2-vfo-main-freq-selected-bg: var(--v2-accent-cyan);
  --v2-vfo-main-freq-selected-text: var(--v2-text-white);
  
  --v2-vfo-sub-freq-active: var(--v2-text-white);
  --v2-vfo-sub-freq-inactive: var(--v2-text-muted);
  --v2-vfo-sub-freq-hover: var(--v2-text-white);
  --v2-vfo-sub-freq-selected-bg: rgba(255, 255, 255, 0.92);
  --v2-vfo-sub-freq-selected-text: var(--v2-bg-darkest);

  /* VFO Frequency Glow Effects (lamp/LED/tube style) */
  --v2-vfo-main-freq-glow: 0 0 12px rgba(124, 252, 229, 0.5);
  --v2-vfo-sub-freq-glow: 0 0 12px rgba(255, 255, 255, 0.42);
  --v2-vfo-freq-glow-intensity: 1.0;  /* 0.0-2.0, multiplier for glow strength */
  
  /* VFO Font Customization (7-segment, digital, retro) */
  --v2-vfo-font-family: Verdana, 'DejaVu Sans', 'Bitstream Vera Sans', Arial, sans-serif;  /* Default: monospace */
  --v2-vfo-font-weight: 700;
  --v2-vfo-font-style: normal;
}

/* ── MOR-1233: prefers-contrast / forced-colors — minimal automatic strategy ──
 * A manually-selectable "High Contrast" theme already exists (see
 * themes/high-contrast.css) but nothing responds to the OS-level signal
 * automatically. This is intentionally minimal, not a full palette swap:
 * bump border/text separation under `prefers-contrast: more`, and re-anchor
 * border tokens to system colors under `forced-colors: active` (e.g.
 * Windows High Contrast Mode) so panel/track outlines stay visible.
 * `:not([data-theme])` so an explicit manual theme choice always wins over
 * the automatic OS signal. SVG fill/stroke (meters, scope) is not
 * auto-adjusted by forced-colors and is out of scope here — see the build
 * report for MOR-1233 for a follow-up note.
 */
@media (prefers-contrast: more) {
  :root {
    --v2-vfo-glow-override: none;
    --v2-vfo-meter-lit-filter-override: none;
    --v2-vfo-panel-sheen-override: none;
  }

  :root:not([data-theme]) {
    --v2-border: #7a95b5;
    --v2-border-subtle: #5f7a9a;
    --v2-border-panel: #7a95b5;
    --v2-text-dim: #a8bcd0;
    --v2-text-muted: #9db2c8;
  }
}

@media (forced-colors: active) {
  :root:not([data-theme]) {
    --v2-border: CanvasText;
    --v2-border-subtle: CanvasText;
    --v2-border-panel: CanvasText;
    --v2-bg-panel: Canvas;
  }
}
