/* chrrpr field v0 — semantic tokens. Owner-approved 2026-10-09.
   Rules: components use these slots only, never raw hex.
   --signal is on-air/audio activity and appears only on --hardware surfaces; it never means success.
   Status colours always pair with an icon and a word. Serif (--font-display) is for titles and milestones only. */
:root, [data-theme=light] {
  /* Surfaces */
  --ground:#eeefe8; --paper:#fbfaf6; --paper-raised:#ffffff; --line:#e2e3da; --line-strong:#cfd3c5;
  /* Text */
  --ink:#242623; --ink-muted:#5f6657; --ink-faint:#676c5f;
  /* Radio hardware layer (same in both themes) */
  --hardware:#20251f; --hardware-raised:#343c2d; --hardware-edge:#4a553f;
  --hardware-ink:#edf3e5; --hardware-muted:#9aa98a;
  --signal:#c7e38b; --signal-live:#d6fa8e;
  /* Interaction */
  --select:#e9eee0; --select-ink:#4f5e3c;
  --action:#20251f; --action-ink:#fbfaf6;
  --focus:#5a7329;
  /* Status (icon + word required) */
  --success:#2f6b45; --success-bg:#e6f0e8;
  --warning:#8a5a0f; --warning-bg:#f6ecd9;
  --danger:#b2423a; --danger-bg:#f7e4e1;
  --info:#2f5f8f; --info-bg:#e3ecf5;
  --neutral:#5f6657; --neutral-bg:#eeefe8;
  /* Agent identity (never reuse for status) */
  --id1:#7a6a9c; --id2:#3f7f86; --id3:#9a6d3a; --id4:#6d7a4a; --id5:#8a5f7a; --id6:#4f6f9a; --id7:#66692a; --id8:#5b6b6b;
  --shadow:0 1px 2px #1a22140d, 0 8px 28px #1a22140f;
  --shadow-hardware:0 6px 22px #14220e2e;
  /* Round 4: speckle texture painted on --ground in light themes (tiny inline SVG noise, ~500 bytes). Dark themes and the texture toggle set it to none. */
  --texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .26 0 0 0 0 .29 0 0 0 0 .2 0 0 0 7 -4.1'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
  --texture-size:180px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    --ground:#0b0e0c; --paper:#141a16; --paper-raised:#1b231e; --line:#2a332d; --line-strong:#3a463d;
    --ink:#eef2e8; --ink-muted:#a9b3a2; --ink-faint:#93a08c;
    --select:#26301f; --select-ink:#d6e7b8; --action:#d6fa8e; --action-ink:#141a16; --focus:#c7e38b;
    --success:#55c58a; --success-bg:#16271d; --warning:#f2b84b; --warning-bg:#2b2414;
    --danger:#ee756b; --danger-bg:#2c1a18; --info:#78a9e6; --info-bg:#162230; --neutral:#a9b3a2; --neutral-bg:#1b231e;
    --id1:#a594c9; --id2:#6fb3b9; --id3:#cf9b62; --id4:#a3b37a; --id5:#c08fb0; --id6:#86a6d4; --id7:#b5b96a; --id8:#93a3a3;
    --shadow:0 1px 2px #0006, 0 8px 28px #0005;
    --texture:none;
    color-scheme:dark;
  }
}
[data-theme=dark] {
  --ground:#0b0e0c; --paper:#141a16; --paper-raised:#1b231e; --line:#2a332d; --line-strong:#3a463d;
  --ink:#eef2e8; --ink-muted:#a9b3a2; --ink-faint:#93a08c;
  --select:#26301f; --select-ink:#d6e7b8; --action:#d6fa8e; --action-ink:#141a16; --focus:#c7e38b;
  --success:#55c58a; --success-bg:#16271d; --warning:#f2b84b; --warning-bg:#2b2414;
  --danger:#ee756b; --danger-bg:#2c1a18; --info:#78a9e6; --info-bg:#162230; --neutral:#a9b3a2; --neutral-bg:#1b231e;
  --id1:#a594c9; --id2:#6fb3b9; --id3:#cf9b62; --id4:#a3b37a; --id5:#c08fb0; --id6:#86a6d4; --id7:#b5b96a; --id8:#93a3a3;
  --shadow:0 1px 2px #0006, 0 8px 28px #0005;
  --texture:none;
  color-scheme:dark;
}
:root {
  /* Type */
  --font-display:Georgia, "Times New Roman", serif;
  --font-ui:"Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono:ui-monospace, Consolas, "SF Mono", monospace;
  --text-eyebrow:10px; --text-label:12px; --text-small:13px; --text-body:14px; --text-title:20px;
  --display-s:26px; --display-m:30px; --display-l:38px;
  --tracking-eyebrow:1.6px;
  /* Shape */
  --r-badge:6px; --r-chip:8px; --r-control:10px; --r-card:14px; --r-panel:18px; --r-pill:999px;
  /* Round 4 rule: buttons, chips, segments and selects use --r-chip/--r-control; status badges --r-badge; --r-pill only for counts, dots, switches and the hardware talk buttons. */
  --fs:1; /* font scale factor set by Chirp.theme (px literals in chirp.css multiply by it) */
  /* Space (MASTER scale) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px;
  /* Targets */
  --target-min:44px; --target-ptt:80px;
  /* Motion */
  --ease:cubic-bezier(.2,.7,.2,1); --dur-fast:120ms; --dur:200ms;
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast:0ms; --dur:0ms; }
}
