/* EXTRACTED — do not edit by hand.
 * Source: design-system/design_system.md v53.31  →  assets/ds/tokens.css
 * Regenerate: php bin/ds-extract.php   ·   Verify: php bin/ds-extract.php --check */

:root{--background:#fff;--surface:#f8f8f7;--surface-raised:#fff;--surface-overlay:#fff;--foreground:#1a1a18;--foreground-subdued:#6b6b65;--foreground-disabled:#b0b0a8;--primary:#000;--primary-foreground:#fff;--primary-hover:#1a1a18;--border:#e4e4e0;--border-soft:#f0f0ec;--ring:#005ad2;--success:#298459;--success-surface:#cdfee1;--success-foreground:#15803d;--success-border:#86efac;--warning:#5e4300;--warning-surface:#fff1e4;--warning-foreground:#b45309;--warning-border:#feb800;--destructive:#e51c00;--destructive-surface:#fee9e8;--destructive-foreground:#b91c1c;--destructive-border:#e51c00;--info:#005ad2;--info-surface:#f0f2ff;--info-foreground:#0369a1;--info-border:#005ad2;--card:#fff;--card-foreground:#1a1a18;--secondary:#f1f1ef;--secondary-foreground:#1a1a18;--muted:#f1f1ef;--muted-foreground:#6b6b65;--accent:#f1f1ef;--accent-foreground:#1a1a18;--input:#e4e4e0;--radius:8px;--radius-lg:10px;--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow:0 4px 16px rgba(0,0,0,.07),0 1px 4px rgba(0,0,0,.04);--shadow-lg:0 24px 64px rgba(0,0,0,.15);--font:'DM Sans',system-ui,sans-serif;--mono:'DM Mono',monospace;--sidebar-w:232px;--base-size:14px;--density-card-p:24px;--density-table-py:12px;--density-input-h:36px;--search-overlay-bg:rgba(0,0,0,.4);
  --btn-primary-bg: rgba(0,0,0,1);
  --btn-primary-bg-hover: rgba(0,0,0,1);
  --btn-primary-text: rgba(255,255,255,1);
  --btn-primary-text-hover: rgba(227,227,227,1);
  --btn-primary-text-active: rgba(204,204,204,1);
  --btn-primary-shadow: 0 -1px 0 0 #000 inset,0 0 0 0 transparent,0 0 0 1px rgba(0,0,0,.8),0 1px 0 0 rgba(255,255,255,.06) inset;
  --btn-primary-shadow-active: 0 3px 0 0 rgba(0,0,0,.5) inset;
  --btn-focus-ring:#005ad2;

  --success-text:#0c5132;
  --warning-text:#5e4300;
  --destructive-text:#8e1f0b;
  --info-text:#005ad2;
  --success-fill:#298459;
  --warning-fill:#feb800;
  --destructive-fill:#e51c00;
  --info-fill:#005ad2;
  --success-on-fill:#f8fefa;
  --warning-on-fill:#251900;
  --destructive-on-fill:#fffbfa;
  --info-on-fill:#fff;

  /* v53.1 neutral fill ramp (Polaris bg-fill-tertiary) — status pills, subtle fills */
  --fill-tertiary:#e3e3e3;
  --fill-tertiary-hover:#d4d4d4;
  --fill-tertiary-active:#cccccc; /* .btn-flat pressed — completes the Polaris page-button ramp fill/hover/active */
  /* Skeleton needs its own pair. It had been borrowing --border-soft and --accent, which are
     #f0f0ec and #f1f1ef — a three-value difference, so the shimmer was invisible in light; and
     #222 against #1c1c1c in dark, where the "shine" was DARKER than the base and the sweep ran
     inverted. A loading state that reads as a rendering fault is worse than no animation. */
  --skel-base:#eceae6;
  --skel-shine:#f8f7f5;
--chart-1:#13ACF0;--chart-2:rgba(19,172,240,.55);--chart-3:rgba(19,172,240,.35);--chart-4:rgba(19,172,240,.20);--chart-5:rgba(19,172,240,.12);--chart-6:#13ACF0}

.dark{--background:#fff;--surface:#f8f8f7;--surface-raised:#1c1c1c;--surface-overlay:#1c1c1c;--foreground:#f5f5f5;--foreground-subdued:#8a8a8a;--foreground-disabled:#4a4a4a;--primary:#000;--primary-foreground:#000;--primary-hover:#e5e5e5;--border:#2a2a2a;--border-soft:#222;--ring:#6bb8ff;--success:#4cd97d;--success-surface:#0d2818;--success-foreground:#86efac;--success-border:#1a5c35;--warning:#feb800;--warning-surface:#2d1f00;--warning-foreground:#fde68a;--warning-border:#5e4300;--destructive:#ff6b5e;--destructive-surface:#2d0d09;--destructive-foreground:#fca5a5;--destructive-border:#8e1f0b;--info:#6bb8ff;--info-surface:#0d1f3d;--info-foreground:#93c5fd;--info-border:#005ad2;--card:#141414;--card-foreground:#f5f5f5;--secondary:#1c1c1c;--secondary-foreground:#f5f5f5;--muted:#1c1c1c;--muted-foreground:#8a8a8a;--accent:#1c1c1c;--accent-foreground:#f5f5f5;--input:#2a2a2a;--shadow-sm:0 1px 3px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15);--shadow:0 4px 16px rgba(0,0,0,.25);--shadow-lg:0 24px 64px rgba(0,0,0,.4);--search-overlay-bg:rgba(0,0,0,.6);
  --btn-primary-bg: rgba(0,0,0,1);
  --btn-primary-bg-hover: rgba(0,0,0,1);
  --btn-primary-text: rgba(255,255,255,1);
  --btn-primary-text-hover: rgba(227,227,227,1);
  --btn-primary-text-active: rgba(204,204,204,1);
  --btn-primary-shadow: 0 -1px 0 0 #000 inset,0 0 0 0 transparent,0 0 0 1px rgba(0,0,0,.8),0 1px 0 0 rgba(255,255,255,.06) inset;
  --btn-primary-shadow-active: 0 3px 0 0 rgba(0,0,0,.5) inset;
  --btn-focus-ring:#6bb8ff; /* v53: was missing from .dark — buttons kept the light-mode blue ring; now one focus color for all controls in dark */

  --success-text:#4cd97d;--warning-text:#feb800;--destructive-text:#ff6b5e;--info-text:#6bb8ff;
  --success-fill:#298459;--warning-fill:#feb800;--destructive-fill:#e51c00;--info-fill:#005ad2;
  --success-on-fill:#f8fefa;--warning-on-fill:#251900;--destructive-on-fill:#fffbfa;--info-on-fill:#fff;
  --fill-tertiary:rgba(255,255,255,.12);--fill-tertiary-hover:rgba(255,255,255,.17);--fill-tertiary-active:rgba(255,255,255,.22);
  --skel-base:#242424;--skel-shine:#313131;
--chart-1:#13ACF0;--chart-2:rgba(19,172,240,.55);--chart-3:rgba(19,172,240,.35);--chart-4:rgba(19,172,240,.20);--chart-5:rgba(19,172,240,.12);--chart-6:#13ACF0}

/* Utility attributes outrank component display. .btn sets display:inline-flex and
   .overlay sets display:flex, either of which silently beats the user-agent rule for
   [hidden] — a hidden button still renders, still measures, and still lands in the
   accessibility tree. Declare this once; never patch it per component. */
[hidden]{display:none!important}
