/* FastPaws foundation: palette → semantic roles → component contracts.
   Loaded after app.css. Existing public token names remain compatible. */
:root {
  /* Tier 1: established brand palette and geometry. */
  --palette-canvas:#0a0a0b;--palette-surface:#101012;--palette-hover:#141417;--palette-sunken:#0d0d0f;--palette-control:#111113;--palette-card:#1b1b1e;--palette-raised:#252529;
  --palette-orange:#ff8a1f;--palette-orange-hover:#ffa54d;
  --palette-ink:#f3f1ee;--palette-ink-secondary:#cfccc7;--palette-ink-muted:#8d8a85;--palette-ink-faint:#6f6c67;--palette-ink-ghost:#575450;
  --palette-line-subtle:#17171a;--palette-line:#232325;--palette-line-strong:#2e2e30;--palette-line-interactive:#3a3a3c;
  --palette-danger:#e5484d;--palette-success:#4ec97e;--palette-info:#6f9bef;--palette-warning:#ffc400;--palette-waitlist:#b57ae0;
  --scale-space-1:.25rem;--scale-space-2:.5rem;--scale-space-3:.75rem;--scale-space-4:1rem;--scale-space-5:1.25rem;--scale-space-6:1.5rem;--scale-space-8:2rem;--scale-space-10:2.5rem;--scale-space-12:3rem;
  --scale-radius-sm:.5rem;--scale-radius-md:.625rem;--scale-radius-lg:.875rem;--scale-radius-xl:1rem;--scale-radius-2xl:1.125rem;--scale-radius-pill:999px;
  /* Tier 2: semantic roles, shared with compiled app.css. */
  --color-background:var(--palette-canvas);--color-surface:var(--palette-surface);--color-surface-hover:var(--palette-hover);--color-surface-sunken:var(--palette-sunken);--color-surface-control:var(--palette-control);--color-surface-card:var(--palette-card);--color-surface-raised:var(--palette-raised);
  --color-primary:var(--palette-orange);--color-primary-hover:var(--palette-orange-hover);--color-on-primary:var(--palette-canvas);
  --color-text:var(--palette-ink);--color-text-secondary:var(--palette-ink-secondary);--color-text-muted:var(--palette-ink-muted);--color-text-faint:var(--palette-ink-faint);--color-text-ghost:var(--palette-ink-ghost);
  --color-border-subtle:var(--palette-line-subtle);--color-border:var(--palette-line);--color-border-strong:var(--palette-line-strong);--color-border-interactive:var(--palette-line-interactive);
  --color-rejected:var(--palette-danger);--color-paid:var(--palette-success);--color-pending:var(--palette-info);--color-flag:var(--palette-warning);--color-waitlist:var(--palette-waitlist);
  --space-1:var(--scale-space-1);--space-2:var(--scale-space-2);--space-3:var(--scale-space-3);--space-4:var(--scale-space-4);--space-5:var(--scale-space-5);--space-6:var(--scale-space-6);--space-8:var(--scale-space-8);--space-10:var(--scale-space-10);--space-12:var(--scale-space-12);
  --radius-sm:var(--scale-radius-sm);--radius-md:var(--scale-radius-md);--radius-lg:var(--scale-radius-lg);--radius-xl:var(--scale-radius-xl);--radius-2xl:var(--scale-radius-2xl);--radius-pill:var(--scale-radius-pill);
  --radius-control:var(--radius-md);--radius-table:var(--radius-lg);--radius-card:var(--radius-xl);--radius-panel:var(--radius-2xl);
  --shape-control:var(--radius-control);--shape-panel:var(--radius-table);--shape-pill:var(--radius-pill);
  --font-size-caption:.75rem;--font-size-control:.875rem;--font-size-body:1rem;--font-size-touch:1rem;
  --line-height-caption:1.4;--line-height-control:1.5;--line-height-body:1.65;
  --font-weight-label:700;--font-weight-action:800;
  --motion-instant:80ms;--motion-panel:220ms;--motion-slow:360ms;--motion-ease:ease;--motion-ease-out:cubic-bezier(.22,1,.36,1);
  --motion-fast:180ms;--disabled-opacity:.4;--shadow-floating:0 16px 48px #0008;
  /* Tier 3: one control geometry for buttons, inputs and enhanced selects. */
  --control-height-md:2.75rem;--control-height:var(--control-height-md);--control-height-sm:2.25rem;--control-height-lg:3.5rem;
  --control-radius:var(--radius-control);--control-padding-x:.875rem;--control-padding-y:.625rem;
  --control-icon-size:1rem;--control-icon-inset:var(--control-padding-x);--control-icon-gap:var(--space-2);
  --control-padding-end:calc(var(--control-icon-inset) + var(--control-icon-size) + var(--control-icon-gap));
  --control-border:var(--color-border);--control-bg:var(--color-surface-sunken);--control-ink:var(--color-text);--control-focus:var(--color-primary);--control-error:var(--color-rejected);
  --button-radius:var(--control-radius);--button-font-size:var(--font-size-control);--button-line-height:var(--line-height-control);
  --input-radius:var(--control-radius);--input-font-size:var(--font-size-control);--input-line-height:var(--line-height-control);
  --chip-radius:var(--radius-pill);--chip-font-size:var(--font-size-caption);--chip-line-height:var(--line-height-caption);
  --shadow-menu:0 12px 32px #0005;--shadow-scrim:#0008;
  --select-popup-radius:var(--radius-table);--select-option-radius:var(--radius-sm);--select-popup-z:10000;
}

/* Additional component contracts: reusable primitives. */
:root{--icon-size-sm:.875rem;--icon-size:var(--control-icon-size);--icon-size-lg:1.5rem;--choice-size:1.25rem;--switch-width:2.5rem;--switch-height:1.5rem;--switch-thumb:1rem;--toast-width:28rem;--toast-z:10010;--motion-spin:900ms}

/* Flat card surfaces: gradients are not part of the default widget contract. */
:root{
 --card-surface:var(--color-surface-card);
 --card-background:var(--card-surface);
 --card-shadow:none;
 --raised-surface-background:var(--color-surface-raised);
 --card-radius:var(--radius-card);--card-padding:var(--space-5);--card-border:var(--color-border);
 --choice-radius:var(--radius-sm);--choice-glyph-size:.75rem;--choice-glyph-ink:var(--color-on-primary);--choice-selected:var(--color-primary);
 --choice-border:var(--color-border-interactive);--choice-background:var(--color-surface-sunken);--switch-thumb-ink:var(--color-text-secondary);
}

/* Shared workspace compositions; shell geometry remains in workspace.css. */
:root{
 --font-size-page:clamp(1.75rem,2vw,2.25rem);--font-size-section:1.25rem;
 --page-heading-gap:var(--space-4);--section-gap-workspace:var(--space-8);
 --form-column-min:16rem;--entity-media-size:3.5rem;--entity-media-radius:var(--radius-control);
 --entity-row-gap:var(--space-4);--entity-selection-bg:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface-sunken));
 --layout-reading-width:44rem;--layout-form-width:56rem;
}
:root{--table-min-width:40rem}
