/*
 * Localsewa Frontend Color System — v32.5
 * Non-invasive token + legacy utility override layer.
 * Loaded after the compiled application stylesheet.
 */

:root {
  color-scheme: light;

  /* Customer */
  --ls-customer-primary: #0F8A4B;
  --ls-customer-primary-hover: #0B763F;
  --ls-customer-primary-dark: #086B3B;
  --ls-customer-accent: #22C55E;
  --ls-customer-bg: #F7FBF8;
  --ls-customer-soft: #F1FBF5;
  --ls-customer-border: #D8EADF;
  --ls-customer-text: #14231B;
  --ls-customer-muted: #66756D;

  /* Provider */
  --ls-provider-primary: #174A36;
  --ls-provider-primary-dark: #0E3024;
  --ls-provider-primary-mid: #216145;
  --ls-provider-accent: #34A56F;
  --ls-provider-accent-light: #86D6AA;
  --ls-provider-bg: #EEF6F1;
  --ls-provider-surface: #FFFFFF;
  --ls-provider-border: #D2E5D9;
  --ls-provider-text: #13251C;
  --ls-provider-muted: #63736A;

  /* Premium Provider / Localsewa+ */
  --ls-premium-primary: #6D4AFF;
  --ls-premium-primary-hover: #5B3DE0;
  --ls-premium-primary-dark: #3B257D;
  --ls-premium-accent: #A78BFA;
  --ls-premium-bg: #F5F2FF;
  --ls-premium-border: #DED5FF;
  --ls-premium-gold: #D6A83A;
  --ls-premium-gold-soft: #FFF6DA;
  --ls-premium-dark: #171429;

  /* Admin reference tokens (admin has its own stylesheet) */
  --ls-admin-primary: #1E3A8A;
  --ls-admin-primary-dark: #14275E;
  --ls-admin-primary-mid: #2451B7;
  --ls-admin-accent: #3B82F6;
  --ls-admin-soft: #DBEAFE;
  --ls-admin-bg: #F3F6FC;
  --ls-admin-border: #DCE4F0;
  --ls-admin-text: #111827;
  --ls-admin-muted: #64748B;

  /* Shared semantic */
  --ls-success: #16A34A;
  --ls-warning: #D97706;
  --ls-danger: #DC2626;
  --ls-info: #2563EB;
  --ls-disabled: #94A3B8;

  /* Shared neutral */
  --ls-neutral-page: #F8FAF9;
  --ls-neutral-surface: #FFFFFF;
  --ls-neutral-text: #17211B;
  --ls-neutral-text-muted: #647068;
  --ls-neutral-border: #E1E8E3;
  --ls-neutral-border-strong: #CBD8CF;

  /* Default semantic alias = customer/public context. */
  --ls-primary: var(--ls-customer-primary);
  --ls-primary-hover: var(--ls-customer-primary-hover);
  --ls-primary-dark: var(--ls-customer-primary-dark);
  --ls-accent: var(--ls-customer-accent);
  --ls-bg: var(--ls-customer-bg);
  --ls-surface: var(--ls-neutral-surface);
  --ls-surface-soft: var(--ls-customer-soft);
  --ls-border: var(--ls-customer-border);
  --ls-text: var(--ls-customer-text);
  --ls-text-muted: var(--ls-customer-muted);
}

/* -------------------------------------------------------------------------
   Legacy identity mapping
   These selectors target existing compiled Tailwind arbitrary-value classes.
   Status colors are deliberately not remapped globally.
   ------------------------------------------------------------------------- */

/* Customer brand */
[class~="bg-[#087A3F]"] { background-color: var(--ls-customer-primary) !important; }
[class~="text-[#087A3F]"] { color: var(--ls-customer-primary) !important; }
[class~="border-[#087A3F]"] { border-color: var(--ls-customer-primary) !important; }
[class~="border-t-[#087A3F]"] { border-top-color: var(--ls-customer-primary) !important; }
[class~="from-[#087A3F]"] { --tw-gradient-from: var(--ls-customer-primary) !important; }
[class~="to-[#087A3F]"] { --tw-gradient-to: var(--ls-customer-primary) !important; }
[class~="via-[#0E6B3C]"] { --tw-gradient-via: var(--ls-customer-primary-dark) !important; }

/* Provider forest */
[class~="bg-[#123528]"] { background-color: var(--ls-provider-primary-dark) !important; }
[class~="text-[#123528]"] { color: var(--ls-provider-primary-dark) !important; }
[class~="border-[#123528]"] { border-color: var(--ls-provider-primary-dark) !important; }
[class~="from-[#123528]"] { --tw-gradient-from: var(--ls-provider-primary-dark) !important; }
[class~="via-[#123528]"] { --tw-gradient-via: var(--ls-provider-primary-dark) !important; }
[class~="to-[#123528]"] { --tw-gradient-to: var(--ls-provider-primary-dark) !important; }

[class~="bg-[#173D2E]"] { background-color: var(--ls-provider-primary) !important; }
[class~="text-[#173D2E]"] { color: var(--ls-provider-primary) !important; }
[class~="border-[#173D2E]"] { border-color: var(--ls-provider-primary) !important; }
[class~="from-[#173D2E]"] { --tw-gradient-from: var(--ls-provider-primary) !important; }
[class~="via-[#173D2E]"] { --tw-gradient-via: var(--ls-provider-primary) !important; }
[class~="to-[#173D2E]"] { --tw-gradient-to: var(--ls-provider-primary) !important; }

[class~="bg-[#174A34]"] { background-color: var(--ls-provider-primary-mid) !important; }
[class~="text-[#174A34]"] { color: var(--ls-provider-primary-mid) !important; }
[class~="border-[#174A34]"] { border-color: var(--ls-provider-primary-mid) !important; }
[class~="from-[#174A34]"] { --tw-gradient-from: var(--ls-provider-primary-mid) !important; }
[class~="via-[#174A34]"] { --tw-gradient-via: var(--ls-provider-primary-mid) !important; }
[class~="to-[#174A34]"] { --tw-gradient-to: var(--ls-provider-primary-mid) !important; }

[class~="bg-[#86EFAC]"] { background-color: var(--ls-provider-accent-light) !important; }
[class~="text-[#86EFAC]"] { color: var(--ls-provider-accent-light) !important; }
[class~="border-[#86EFAC]"] { border-color: var(--ls-provider-accent-light) !important; }
[class~="focus-within:border-[#86EFAC]"]:focus-within { border-color: var(--ls-provider-accent-light) !important; }
[class~="hover:border-[#86EFAC]"]:hover { border-color: var(--ls-provider-accent-light) !important; }

/* Localsewa+ premium violet */
[class~="bg-[#7C3AED]"] { background-color: var(--ls-premium-primary) !important; }
[class~="text-[#7C3AED]"] { color: var(--ls-premium-primary) !important; }
[class~="border-[#7C3AED]"] { border-color: var(--ls-premium-primary) !important; }
[class~="from-[#7C3AED]"] { --tw-gradient-from: var(--ls-premium-primary) !important; }
[class~="via-[#7C3AED]"] { --tw-gradient-via: var(--ls-premium-primary) !important; }
[class~="to-[#7C3AED]"] { --tw-gradient-to: var(--ls-premium-primary) !important; }
[class~="hover:bg-[#7C3AED]"]:hover { background-color: var(--ls-premium-primary) !important; }

[class~="bg-[#6D28D9]"] { background-color: var(--ls-premium-primary-hover) !important; }
[class~="text-[#6D28D9]"] { color: var(--ls-premium-primary-hover) !important; }
[class~="border-[#6D28D9]"] { border-color: var(--ls-premium-primary-hover) !important; }
[class~="from-[#6D28D9]"] { --tw-gradient-from: var(--ls-premium-primary-hover) !important; }
[class~="via-[#6D28D9]"] { --tw-gradient-via: var(--ls-premium-primary-hover) !important; }
[class~="to-[#6D28D9]"] { --tw-gradient-to: var(--ls-premium-primary-hover) !important; }
[class~="hover:bg-[#6D28D9]"]:hover { background-color: var(--ls-premium-primary-hover) !important; }

[class~="bg-[#4C1D95]"] { background-color: var(--ls-premium-primary-dark) !important; }
[class~="text-[#4C1D95]"] { color: var(--ls-premium-primary-dark) !important; }
[class~="border-[#4C1D95]"] { border-color: var(--ls-premium-primary-dark) !important; }
[class~="from-[#4C1D95]"] { --tw-gradient-from: var(--ls-premium-primary-dark) !important; }
[class~="via-[#4C1D95]"] { --tw-gradient-via: var(--ls-premium-primary-dark) !important; }
[class~="to-[#4C1D95]"] { --tw-gradient-to: var(--ls-premium-primary-dark) !important; }

/* Preserve an obvious keyboard focus state throughout the public app. */
:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ls-primary) 72%, white);
  outline-offset: 2px;
}
