/* Shared product tokens. Tenant branding overrides only --brand-* at runtime. */
:root {
  /* brand tokens — the only tokens a per-tenant theme (fetched from CredEntry, see
     Services/ThemeProvider.cs) overrides at runtime. Defaults retain the existing Geist/teal identity when no tenant theme is available.
     Derived shades follow the tenant's primary color; semantic status colors stay stable. */
  --brand-primary:#22bcc4; --brand-primary-hover:#0fa9b0; --brand-accent:#37b6e0;
  --brand-font:"Geist","GeistSans Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --brand-radius:14px; --brand-logo:none;

  /* teal (brand / cta) */
  --teal-50:color-mix(in srgb, var(--brand-primary) 6%, white); --teal-100:color-mix(in srgb, var(--brand-primary) 12%, white); --teal-200:color-mix(in srgb, var(--brand-primary) 25%, white); --teal-300:color-mix(in srgb, var(--brand-primary) 42%, white);
  --teal-400:color-mix(in srgb, var(--brand-primary) 70%, white); --teal-500:var(--brand-primary); --teal-600:var(--brand-primary-hover); --teal-700:color-mix(in srgb, var(--brand-primary) 70%, var(--slate-950));
  --teal-800:color-mix(in srgb, var(--brand-primary) 55%, var(--slate-950)); --teal-900:color-mix(in srgb, var(--brand-primary) 40%, var(--slate-950)); --teal-950:color-mix(in srgb, var(--brand-primary) 30%, var(--slate-950));
  /* slate (neutrals) */
  --slate-50:#f4f6f9; --slate-100:#e9edf2; --slate-200:#d7dde5; --slate-300:#b3bcc9;
  --slate-400:#8b96a8; --slate-500:#67748a; --slate-600:#4a5663; --slate-700:#37424a;
  --slate-800:#2c333c; --slate-900:#232931; --slate-950:#1b2026;

  --bg:#f2f5f8; --surface:#fff; --elevated:#fff;
  --fg:#37424a; --fg-strong:#232931; --fg-muted:#5d697d; --fg-subtle:#5d697d;
  --line:#37424a24; --line-strong:#37424a38;

  --brand-on-primary:#093a3e; --brand-on-primary-hover:#093a3e;
  --cta: var(--brand-primary); --cta-hover: var(--brand-primary-hover);
  --cta-fg:var(--brand-on-primary); --link:color-mix(in srgb, var(--brand-primary) 35%, var(--slate-950));
  --focus-ring:var(--slate-700);

  /* status */
  --blue: var(--brand-accent);  --blue-bg:#ddf1fa;
  --amber:#f19f4f; --amber-bg:#fcead7;
  --green:#4caf50; --green-bg:#dcefdd;
  --red-text:#a92320; --red:#e53935;   --red-bg:#fcdbd9;

  --r-xs:4px; --r-sm:8px; --r-md: var(--brand-radius); --r-lg:22px; --r-xl:32px; --r-full:999px;
  --sh-1:0 1px 2px #37424a0a, 0 4px 14px #37424a0f;
  --sh-2:0 2px 4px #37424a0d, 0 14px 38px #37424a1a;
  --sh-3:0 8px 20px #37424a1a, 0 30px 70px #37424a2e;
  --sh-brand:0 4px 12px color-mix(in srgb, var(--brand-primary) 18%, transparent);

  --ease:cubic-bezier(.2,.8,.2,1);
  --t-fast:.14s; --t:.22s; --t-slow:.42s;

  --font: var(--brand-font);
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --control-height:44px;
}
