/**
 * Theme 3: Tailwind
 * ---------------------------------------------
 * Two layers:
 *   1. Raw Tailwind palette variables (--tw-{name}-{stop})
 *      All 22 palettes from https://tailwindcss.com/docs/colors
 *   2. Semantic framework variables (--color-primary-*, etc.)
 *      mapped onto the raw Tailwind palettes.
 *
 * Stops: 25, 50, 75, 100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 950
 *   25, 75 and 150 are custom stops sitting at RGB midpoints (white↔50,
 *   50↔100, and 100↔200 respectively). 25 is an ultra-soft tint — barely a
 *   wash off white — used for whole-row / panel backgrounds where the page
 *   itself stays white. 75 is a "soft chip" tint used for badges, metric
 *   icons, priority indicators, and the sidebar active state. 150 is a
 *   hairline-border step — heavier than 100 (which reads as a row wash)
 *   so cell borders show without competing with text.
 *
 * Semantic mapping:
 *   primary   → blue        secondary → sky
 *   tertiary  → violet      accent    → orange
 *   neutral   → slate       error     → red
 *   success   → emerald     warning   → amber
 *   info      → blue
 */

:root {

    /* ============================================================
       LAYER 1 — Raw Tailwind palettes
       ============================================================ */

    /* --- Grays ----------------------------------------------- */

    /* Slate */
    --tw-slate-25:  #fcfdfe;
    --tw-slate-50:  #f8fafc;
    --tw-slate-75:  #f4f8fb;
    --tw-slate-100: #f1f5f9;
    --tw-slate-150: #e9eef4;
    --tw-slate-200: #e2e8f0;
    --tw-slate-300: #cbd5e1;
    --tw-slate-400: #94a3b8;
    --tw-slate-500: #64748b;
    --tw-slate-600: #475569;
    --tw-slate-700: #334155;
    --tw-slate-800: #1e293b;
    --tw-slate-900: #0f172a;
    --tw-slate-950: #020617;

    /* Gray */
    --tw-gray-25:  #fcfdfd;
    --tw-gray-50:  #f9fafb;
    --tw-gray-75:  #f6f7f9;
    --tw-gray-100: #f3f4f6;
    --tw-gray-150: #ecedf0;
    --tw-gray-200: #e5e7eb;
    --tw-gray-300: #d1d5db;
    --tw-gray-400: #9ca3af;
    --tw-gray-500: #6b7280;
    --tw-gray-600: #4b5563;
    --tw-gray-700: #374151;
    --tw-gray-800: #1f2937;
    --tw-gray-900: #111827;
    --tw-gray-950: #030712;

    /* Zinc */
    --tw-zinc-25:  #fdfdfd;
    --tw-zinc-50:  #fafafa;
    --tw-zinc-75:  #f7f7f8;
    --tw-zinc-100: #f4f4f5;
    --tw-zinc-150: #ececee;
    --tw-zinc-200: #e4e4e7;
    --tw-zinc-300: #d4d4d8;
    --tw-zinc-400: #a1a1aa;
    --tw-zinc-500: #71717a;
    --tw-zinc-600: #52525b;
    --tw-zinc-700: #3f3f46;
    --tw-zinc-800: #27272a;
    --tw-zinc-900: #18181b;
    --tw-zinc-950: #09090b;

    /* Neutral */
    --tw-neutral-25:  #fdfdfd;
    --tw-neutral-50:  #fafafa;
    --tw-neutral-75:  #f8f8f8;
    --tw-neutral-100: #f5f5f5;
    --tw-neutral-150: #ededed;
    --tw-neutral-200: #e5e5e5;
    --tw-neutral-300: #d4d4d4;
    --tw-neutral-400: #a3a3a3;
    --tw-neutral-500: #737373;
    --tw-neutral-600: #525252;
    --tw-neutral-700: #404040;
    --tw-neutral-800: #262626;
    --tw-neutral-900: #171717;
    --tw-neutral-950: #0a0a0a;

    /* Stone */
    --tw-stone-25:  #fdfdfc;
    --tw-stone-50:  #fafaf9;
    --tw-stone-75:  #f7f7f7;
    --tw-stone-100: #f5f5f4;
    --tw-stone-150: #eeedec;
    --tw-stone-200: #e7e5e4;
    --tw-stone-300: #d6d3d1;
    --tw-stone-400: #a8a29e;
    --tw-stone-500: #78716c;
    --tw-stone-600: #57534e;
    --tw-stone-700: #44403c;
    --tw-stone-800: #292524;
    --tw-stone-900: #1c1917;
    --tw-stone-950: #0c0a09;

    /* --- Reds & Pinks ---------------------------------------- */

    /* Red */
    --tw-red-25:  #fff9f9;
    --tw-red-50:  #fef2f2;
    --tw-red-75:  #feeaea;
    --tw-red-100: #fee2e2;
    --tw-red-150: #fed6d6;
    --tw-red-200: #fecaca;
    --tw-red-300: #fca5a5;
    --tw-red-400: #f87171;
    --tw-red-500: #ef4444;
    --tw-red-600: #dc2626;
    --tw-red-700: #b91c1c;
    --tw-red-800: #991b1b;
    --tw-red-900: #7f1d1d;
    --tw-red-950: #450a0a;

    /* Rose */
    --tw-rose-25:  #fff8f9;
    --tw-rose-50:  #fff1f2;
    --tw-rose-75:  #ffeaec;
    --tw-rose-100: #ffe4e6;
    --tw-rose-150: #fed8dc;
    --tw-rose-200: #fecdd3;
    --tw-rose-300: #fda4af;
    --tw-rose-400: #fb7185;
    --tw-rose-500: #f43f5e;
    --tw-rose-600: #e11d48;
    --tw-rose-700: #be123c;
    --tw-rose-800: #9f1239;
    --tw-rose-900: #881337;
    --tw-rose-950: #4c0519;

    /* Pink */
    --tw-pink-25:  #fef9fc;
    --tw-pink-50:  #fdf2f8;
    --tw-pink-75:  #fdedf6;
    --tw-pink-100: #fce7f3;
    --tw-pink-150: #fbdbed;
    --tw-pink-200: #fbcfe8;
    --tw-pink-300: #f9a8d4;
    --tw-pink-400: #f472b6;
    --tw-pink-500: #ec4899;
    --tw-pink-600: #db2777;
    --tw-pink-700: #be185d;
    --tw-pink-800: #9d174d;
    --tw-pink-900: #831843;
    --tw-pink-950: #500724;

    /* Fuchsia */
    --tw-fuchsia-25:  #fefaff;
    --tw-fuchsia-50:  #fdf4ff;
    --tw-fuchsia-75:  #fceeff;
    --tw-fuchsia-100: #fae8ff;
    --tw-fuchsia-150: #f7dcfe;
    --tw-fuchsia-200: #f5d0fe;
    --tw-fuchsia-300: #f0abfc;
    --tw-fuchsia-400: #e879f9;
    --tw-fuchsia-500: #d946ef;
    --tw-fuchsia-600: #c026d3;
    --tw-fuchsia-700: #a21caf;
    --tw-fuchsia-800: #86198f;
    --tw-fuchsia-900: #701a75;
    --tw-fuchsia-950: #4a044e;

    /* --- Purples --------------------------------------------- */

    /* Purple */
    --tw-purple-25:  #fdfaff;
    --tw-purple-50:  #faf5ff;
    --tw-purple-75:  #f7eeff;
    --tw-purple-100: #f3e8ff;
    --tw-purple-150: #eedeff;
    --tw-purple-200: #e9d5ff;
    --tw-purple-300: #d8b4fe;
    --tw-purple-400: #c084fc;
    --tw-purple-500: #a855f7;
    --tw-purple-600: #9333ea;
    --tw-purple-700: #7e22ce;
    --tw-purple-800: #6b21a8;
    --tw-purple-900: #581c87;
    --tw-purple-950: #3b0764;

    /* Violet */
    --tw-violet-25:  #faf9ff;
    --tw-violet-50:  #f5f3ff;
    --tw-violet-75:  #f1eefe;
    --tw-violet-100: #ede9fe;
    --tw-violet-150: #e5dffe;
    --tw-violet-200: #ddd6fe;
    --tw-violet-300: #c4b5fd;
    --tw-violet-400: #a78bfa;
    --tw-violet-500: #8b5cf6;
    --tw-violet-600: #7c3aed;
    --tw-violet-700: #6d28d9;
    --tw-violet-800: #5b21b6;
    --tw-violet-900: #4c1d95;
    --tw-violet-950: #2e1065;

    /* Indigo */
    --tw-indigo-25:  #f7f9ff;
    --tw-indigo-50:  #eef2ff;
    --tw-indigo-75:  #e7ecff;
    --tw-indigo-100: #e0e7ff;
    --tw-indigo-150: #d3dcfe;
    --tw-indigo-200: #c7d2fe;
    --tw-indigo-300: #a5b4fc;
    --tw-indigo-400: #818cf8;
    --tw-indigo-500: #6366f1;
    --tw-indigo-600: #4f46e5;
    --tw-indigo-700: #4338ca;
    --tw-indigo-800: #3730a3;
    --tw-indigo-900: #312e81;
    --tw-indigo-950: #1e1b4b;

    /* --- Blues ----------------------------------------------- */

    /* Blue */
    --tw-blue-25:  #f7fbff;
    --tw-blue-50:  #eff6ff;
    --tw-blue-75:  #e5f0fe;
    --tw-blue-100: #dbeafe;
    --tw-blue-150: #cde2fe;
    --tw-blue-200: #bfdbfe;
    --tw-blue-300: #93c5fd;
    --tw-blue-400: #60a5fa;
    --tw-blue-500: #3b82f6;
    --tw-blue-600: #2563eb;
    --tw-blue-700: #1d4ed8;
    --tw-blue-800: #1e40af;
    --tw-blue-900: #1e3a8a;
    --tw-blue-950: #172554;

    /* Sky */
    --tw-sky-25:  #f8fcff;
    --tw-sky-50:  #f0f9ff;
    --tw-sky-75:  #e8f5fe;
    --tw-sky-100: #e0f2fe;
    --tw-sky-150: #cdecfd;
    --tw-sky-200: #bae6fd;
    --tw-sky-300: #7dd3fc;
    --tw-sky-400: #38bdf8;
    --tw-sky-500: #0ea5e9;
    --tw-sky-600: #0284c7;
    --tw-sky-700: #0369a1;
    --tw-sky-800: #075985;
    --tw-sky-900: #0c4a6e;
    --tw-sky-950: #082f49;

    /* Cyan */
    --tw-cyan-25:  #f6ffff;
    --tw-cyan-50:  #ecfeff;
    --tw-cyan-75:  #ddfcfe;
    --tw-cyan-100: #cffafe;
    --tw-cyan-150: #baf6fd;
    --tw-cyan-200: #a5f3fc;
    --tw-cyan-300: #67e8f9;
    --tw-cyan-400: #22d3ee;
    --tw-cyan-500: #06b6d4;
    --tw-cyan-600: #0891b2;
    --tw-cyan-700: #0e7490;
    --tw-cyan-800: #155e75;
    --tw-cyan-900: #164e63;
    --tw-cyan-950: #083344;

    /* --- Greens ---------------------------------------------- */

    /* Teal */
    --tw-teal-25:  #f8fefd;
    --tw-teal-50:  #f0fdfa;
    --tw-teal-75:  #defcf5;
    --tw-teal-100: #ccfbf1;
    --tw-teal-150: #b2f8ea;
    --tw-teal-200: #99f6e4;
    --tw-teal-300: #5eead4;
    --tw-teal-400: #2dd4bf;
    --tw-teal-500: #14b8a6;
    --tw-teal-600: #0d9488;
    --tw-teal-700: #0f766e;
    --tw-teal-800: #115e59;
    --tw-teal-900: #134e4a;
    --tw-teal-950: #042f2e;

    /* Emerald */
    --tw-emerald-25:  #f6fefa;
    --tw-emerald-50:  #ecfdf5;
    --tw-emerald-75:  #defbed;
    --tw-emerald-100: #d1fae5;
    --tw-emerald-150: #bcf6da;
    --tw-emerald-200: #a7f3d0;
    --tw-emerald-300: #6ee7b7;
    --tw-emerald-400: #34d399;
    --tw-emerald-500: #10b981;
    --tw-emerald-600: #059669;
    --tw-emerald-700: #047857;
    --tw-emerald-800: #065f46;
    --tw-emerald-900: #064e3b;
    --tw-emerald-950: #022c22;

    /* Green */
    --tw-green-25:  #f8fefa;
    --tw-green-50:  #f0fdf4;
    --tw-green-75:  #e6fced;
    --tw-green-100: #dcfce7;
    --tw-green-150: #cbf9db;
    --tw-green-200: #bbf7d0;
    --tw-green-300: #86efac;
    --tw-green-400: #4ade80;
    --tw-green-500: #22c55e;
    --tw-green-600: #16a34a;
    --tw-green-700: #15803d;
    --tw-green-800: #166534;
    --tw-green-900: #14532d;
    --tw-green-950: #052e16;

    /* Lime */
    --tw-lime-25:  #fbfff3;
    --tw-lime-50:  #f7fee7;
    --tw-lime-75:  #f1fdd9;
    --tw-lime-100: #ecfccb;
    --tw-lime-150: #e2fab4;
    --tw-lime-200: #d9f99d;
    --tw-lime-300: #bef264;
    --tw-lime-400: #a3e635;
    --tw-lime-500: #84cc16;
    --tw-lime-600: #65a30d;
    --tw-lime-700: #4d7c0f;
    --tw-lime-800: #3f6212;
    --tw-lime-900: #365314;
    --tw-lime-950: #1a2e05;

    /* --- Yellows / Oranges ----------------------------------- */

    /* Yellow */
    --tw-yellow-25:  #fffef4;
    --tw-yellow-50:  #fefce8;
    --tw-yellow-75:  #fefad5;
    --tw-yellow-100: #fef9c3;
    --tw-yellow-150: #fef4a6;
    --tw-yellow-200: #fef08a;
    --tw-yellow-300: #fde047;
    --tw-yellow-400: #facc15;
    --tw-yellow-500: #eab308;
    --tw-yellow-600: #ca8a04;
    --tw-yellow-700: #a16207;
    --tw-yellow-800: #854d0e;
    --tw-yellow-900: #713f12;
    --tw-yellow-950: #422006;

    /* Amber */
    --tw-amber-25:  #fffdf5;
    --tw-amber-50:  #fffbeb;
    --tw-amber-75:  #fff7d9;
    --tw-amber-100: #fef3c7;
    --tw-amber-150: #fdeca8;
    --tw-amber-200: #fde68a;
    --tw-amber-300: #fcd34d;
    --tw-amber-400: #fbbf24;
    --tw-amber-500: #f59e0b;
    --tw-amber-600: #d97706;
    --tw-amber-700: #b45309;
    --tw-amber-800: #92400e;
    --tw-amber-900: #78350f;
    --tw-amber-950: #451a03;

    /* Orange */
    --tw-orange-25:  #fffbf6;
    --tw-orange-50:  #fff7ed;
    --tw-orange-75:  #fff2e1;
    --tw-orange-100: #ffedd5;
    --tw-orange-150: #fee2bf;
    --tw-orange-200: #fed7aa;
    --tw-orange-300: #fdba74;
    --tw-orange-400: #fb923c;
    --tw-orange-500: #f97316;
    --tw-orange-600: #ea580c;
    --tw-orange-700: #c2410c;
    --tw-orange-800: #9a3412;
    --tw-orange-900: #7c2d12;
    --tw-orange-950: #431407;


    /* ============================================================
       LAYER 2 — Semantic mapping (consumed by framework.css)
       ============================================================ */

    /* Primary palette → Tailwind blue */
    --color-primary-25:  var(--tw-blue-25);
    --color-primary-50:  var(--tw-blue-50);
    --color-primary-75:  var(--tw-blue-75);
    --color-primary-100: var(--tw-blue-100);
    --color-primary-150: var(--tw-blue-150);
    --color-primary-200: var(--tw-blue-200);
    --color-primary-300: var(--tw-blue-300);
    --color-primary-400: var(--tw-blue-400);
    --color-primary-500: var(--tw-blue-500);
    --color-primary-600: var(--tw-blue-600);
    --color-primary-700: var(--tw-blue-700);
    --color-primary-800: var(--tw-blue-800);
    --color-primary-900: var(--tw-blue-900);
    --color-primary-950: var(--tw-blue-950);

    /* Secondary palette → Tailwind sky (paler stops used for panel/input bg) */
    --color-secondary-25:  var(--tw-sky-25);
    --color-secondary-50:  var(--tw-sky-50);
    --color-secondary-75:  var(--tw-sky-75);
    --color-secondary-100: var(--tw-sky-50);    /* extra-pale baseline for panel bg */
    --color-secondary-150: var(--tw-sky-75);
    --color-secondary-200: var(--tw-sky-100);
    --color-secondary-300: var(--tw-sky-200);
    --color-secondary-400: var(--tw-sky-300);
    --color-secondary-500: var(--tw-sky-500);
    --color-secondary-600: var(--tw-sky-600);
    --color-secondary-700: var(--tw-sky-700);
    --color-secondary-800: var(--tw-sky-800);
    --color-secondary-900: var(--tw-sky-900);
    --color-secondary-950: var(--tw-sky-950);

    /* Tertiary palette → Tailwind violet */
    --color-tertiary-25:  var(--tw-violet-25);
    --color-tertiary-50:  var(--tw-violet-50);
    --color-tertiary-75:  var(--tw-violet-75);
    --color-tertiary-100: var(--tw-violet-100);
    --color-tertiary-150: var(--tw-violet-150);
    --color-tertiary-200: var(--tw-violet-200);
    --color-tertiary-300: var(--tw-violet-300);
    --color-tertiary-400: var(--tw-violet-400);
    --color-tertiary-500: var(--tw-violet-500);
    --color-tertiary-600: var(--tw-violet-600);
    --color-tertiary-700: var(--tw-violet-700);
    --color-tertiary-800: var(--tw-violet-800);
    --color-tertiary-900: var(--tw-violet-900);
    --color-tertiary-950: var(--tw-violet-950);

    /* Accent palette → Tailwind orange */
    --color-accent-25:  var(--tw-orange-25);
    --color-accent-50:  var(--tw-orange-50);
    --color-accent-75:  var(--tw-orange-75);
    --color-accent-100: var(--tw-orange-100);
    --color-accent-150: var(--tw-orange-150);
    --color-accent-200: var(--tw-orange-200);
    --color-accent-300: var(--tw-orange-300);
    --color-accent-400: var(--tw-orange-400);
    --color-accent-500: var(--tw-orange-500);
    --color-accent-600: var(--tw-orange-600);
    --color-accent-700: var(--tw-orange-700);
    --color-accent-800: var(--tw-orange-800);
    --color-accent-900: var(--tw-orange-900);
    --color-accent-950: var(--tw-orange-950);

    /* Neutral palette → Tailwind slate */
    --color-neutral-25:  var(--tw-slate-25);
    --color-neutral-50:  var(--tw-slate-50);
    --color-neutral-75:  var(--tw-slate-75);
    --color-neutral-100: var(--tw-slate-100);
    --color-neutral-150: var(--tw-slate-150);
    --color-neutral-200: var(--tw-slate-200);
    --color-neutral-300: var(--tw-slate-300);
    --color-neutral-400: var(--tw-slate-400);
    --color-neutral-500: var(--tw-slate-500);
    --color-neutral-600: var(--tw-slate-600);
    --color-neutral-700: var(--tw-slate-700);
    --color-neutral-800: var(--tw-slate-800);
    --color-neutral-900: var(--tw-slate-900);
    --color-neutral-950: var(--tw-slate-950);

    /* Error palette → Tailwind red */
    --color-error-25:  var(--tw-red-25);
    --color-error-50:  var(--tw-red-50);
    --color-error-75:  var(--tw-red-75);
    --color-error-100: var(--tw-red-100);
    --color-error-150: var(--tw-red-150);
    --color-error-200: var(--tw-red-200);
    --color-error-300: var(--tw-red-300);
    --color-error-400: var(--tw-red-400);
    --color-error-500: var(--tw-red-500);
    --color-error-600: var(--tw-red-600);
    --color-error-700: var(--tw-red-700);
    --color-error-800: var(--tw-red-800);
    --color-error-900: var(--tw-red-900);
    --color-error-950: var(--tw-red-950);

    /* Success palette → Tailwind emerald */
    --color-success-25:  var(--tw-emerald-25);
    --color-success-50:  var(--tw-emerald-50);
    --color-success-75:  var(--tw-emerald-75);
    --color-success-100: var(--tw-emerald-100);
    --color-success-150: var(--tw-emerald-150);
    --color-success-200: var(--tw-emerald-200);
    --color-success-300: var(--tw-emerald-300);
    --color-success-400: var(--tw-emerald-400);
    --color-success-500: var(--tw-emerald-500);
    --color-success-600: var(--tw-emerald-600);
    --color-success-700: var(--tw-emerald-700);
    --color-success-800: var(--tw-emerald-800);
    --color-success-900: var(--tw-emerald-900);
    --color-success-950: var(--tw-emerald-950);

    /* Warning palette → Tailwind amber */
    --color-warning-25:  var(--tw-amber-25);
    --color-warning-50:  var(--tw-amber-50);
    --color-warning-75:  var(--tw-amber-75);
    --color-warning-100: var(--tw-amber-100);
    --color-warning-150: var(--tw-amber-150);
    --color-warning-200: var(--tw-amber-200);
    --color-warning-300: var(--tw-amber-300);
    --color-warning-400: var(--tw-amber-400);
    --color-warning-500: var(--tw-amber-500);
    --color-warning-600: var(--tw-amber-600);
    --color-warning-700: var(--tw-amber-700);
    --color-warning-800: var(--tw-amber-800);
    --color-warning-900: var(--tw-amber-900);
    --color-warning-950: var(--tw-amber-950);

    /* Info palette → Tailwind blue */
    --color-info-25:  var(--tw-blue-25);
    --color-info-50:  var(--tw-blue-50);
    --color-info-75:  var(--tw-blue-75);
    --color-info-100: var(--tw-blue-100);
    --color-info-150: var(--tw-blue-150);
    --color-info-200: var(--tw-blue-200);
    --color-info-300: var(--tw-blue-300);
    --color-info-400: var(--tw-blue-400);
    --color-info-500: var(--tw-blue-500);
    --color-info-600: var(--tw-blue-600);
    --color-info-700: var(--tw-blue-700);
    --color-info-800: var(--tw-blue-800);
    --color-info-900: var(--tw-blue-900);
    --color-info-950: var(--tw-blue-950);

    /* Lime palette → Tailwind lime (used by the batch "Filling" status) */
    --color-lime-25:  var(--tw-lime-25);
    --color-lime-50:  var(--tw-lime-50);
    --color-lime-75:  var(--tw-lime-75);
    --color-lime-100: var(--tw-lime-100);
    --color-lime-150: var(--tw-lime-150);
    --color-lime-200: var(--tw-lime-200);
    --color-lime-300: var(--tw-lime-300);
    --color-lime-400: var(--tw-lime-400);
    --color-lime-500: var(--tw-lime-500);
    --color-lime-600: var(--tw-lime-600);
    --color-lime-700: var(--tw-lime-700);
    --color-lime-800: var(--tw-lime-800);
    --color-lime-900: var(--tw-lime-900);
    --color-lime-950: var(--tw-lime-950);


    /* --- Semantic Roles --- */

    /* Base Roles */
    --color-primary:   var(--color-primary-500);    /* #3b82f6 — Tailwind blue-500 */
    --color-secondary: var(--color-secondary-500);
    --color-tertiary:  var(--color-tertiary-500);
    --color-accent:    var(--color-accent-500);
    --color-neutral:   var(--color-neutral-700);
    --color-error:     var(--color-error-600);      /* #dc2626 */
    --color-success:   var(--color-success-600);    /* #059669 */
    --color-warning:   var(--color-warning-500);
    --color-info:      var(--color-info-500);

    /* Surface System */
    --color-surface:                   #FFFFFF;
    --color-surface-dim:               var(--tw-slate-50);
    --color-surface-bright:            #FFFFFF;
    --color-surface-variant:           var(--tw-slate-100);
    --color-surface-tint:              var(--color-primary-600);
    --color-surface-container-lowest:  #FFFFFF;
    --color-surface-container-low:     var(--color-neutral-50);      /* neutral (slate) tint - matches other surface containers */
    --color-surface-container:         var(--tw-slate-100);
    --color-surface-container-high:    var(--tw-slate-200);
    --color-surface-container-highest: var(--tw-slate-300);
    --color-background:                #FFFFFF;
    --color-surface-disabled:          color-mix(in srgb, var(--color-on-surface) 12%, transparent);

    /* Content Colors (On-Colors) - three muted tiers
       on-surface         strong:  ≈ #0f172a  slate-900  (headings, body text)
       on-surface-variant medium:  ≈ #64748b  slate-500  (subtitles, descriptions)
       on-surface-muted   weak:    ≈ #94a3b8  slate-400  (field labels, eyebrows, dividers) */
    --color-on-primary:           #FFFFFF;
    --color-on-secondary:         #FFFFFF;
    --color-on-tertiary:          #FFFFFF;
    --color-on-error:             #FFFFFF;
    --color-on-success:           #FFFFFF;
    --color-on-warning:           #FFFFFF;
    --color-on-info:              #FFFFFF;
    --color-on-surface:           var(--color-neutral-900);
    --color-on-surface-variant:   var(--color-neutral-600);
    --color-on-surface-muted:     var(--color-neutral-400);
    --color-on-background:        var(--color-neutral-900);
    --color-on-surface-disabled:  color-mix(in srgb, var(--color-on-surface) 38%, transparent);

    /* Container System */
    --color-primary-container:    var(--color-primary-100);
    --color-secondary-container:  var(--color-secondary-100);
    --color-tertiary-container:   var(--color-tertiary-100);
    --color-error-container:      var(--color-error-100);
    --color-success-container:    var(--color-success-100);
    --color-warning-container:    var(--color-warning-100);
    --color-info-container:       var(--color-info-100);

    /* On-Container System */
    --color-on-primary-container:    var(--color-primary-900);
    --color-on-secondary-container:  var(--color-secondary-900);
    --color-on-tertiary-container:   var(--color-tertiary-900);
    --color-on-error-container:      var(--color-error-700);
    --color-on-success-container:    var(--color-success-700);
    --color-on-warning-container:    var(--color-warning-700);
    --color-on-info-container:       var(--color-info-700);

    /* Outlines */
    --color-outline:           var(--color-neutral-200);
    --color-outline-variant:   var(--color-neutral-100);   /* whisper-soft hairline */
    --color-outline-disabled:  color-mix(in srgb, var(--color-on-surface) 12%, transparent);

    /* States & Utilities */
    --color-scrim:                  rgba(0, 0, 0, 0.4);
    --color-shadow:                 rgba(0, 0, 0, 0.04);
    --color-state-hover-opacity:    0.08;
    --color-state-focus-opacity:    0.12;
    --color-state-pressed-opacity:  0.12;
    --color-state-dragged-opacity:  0.16;
}
