/**
 * MasterLink — przenośne tokeny wyglądu.
 * Domyślnie działa motyw ciemny; jasny włącza klasa `motyw-jasny` na <html>.
 * Wartości OKLCH oznaczone jako Tailwind 4.3 są dokładnymi domyślnymi wartościami
 * frameworka importowanego w źródle, a nie dodatkowymi decyzjami projektowymi.
 */

:root {
  color-scheme: dark; /* styles.css:43-46 */

  /* Neutralna rampa MasterLanka. */
  --ml-zinc-950: #0b0b0d; /* styles.css:22-27 */
  --ml-zinc-940: #101013; /* styles.css:22-28 */
  --ml-zinc-925: #131316; /* styles.css:22-29 */
  --ml-zinc-900: #18181b; /* styles.css:22-30 */
  --ml-zinc-800: #27272a; /* styles.css:22-31 */
  --ml-zinc-700: oklch(37% 0.013 285.805); /* styles.css:1,86-89; Tailwind 4.3 default */
  --ml-zinc-600: oklch(44.2% 0.017 285.786); /* styles.css:1,86-89; Tailwind 4.3 default */
  --ml-zinc-500: oklch(55.2% 0.016 285.938); /* styles.css:1,91-96; Tailwind 4.3 default */
  --ml-zinc-400: oklch(70.5% 0.015 286.067); /* styles.css:1,91-96; Tailwind 4.3 default */
  --ml-zinc-300: oklch(87.1% 0.006 286.286); /* styles.css:1,91-96; Tailwind 4.3 default */
  --ml-zinc-200: oklch(92% 0.004 286.32); /* styles.css:1,91-96; Tailwind 4.3 default */
  --ml-zinc-100: oklch(96.7% 0.001 286.375); /* styles.css:1,91-96; Tailwind 4.3 default */
  --ml-kontrast: #ffffff; /* styles.css:33-40 */
  --ml-accent: #00e5ff; /* ciemny: neon cyjan, decyzja właściciela 29.08 */
  --ml-accent-hover: #5df2ff;

  /* Amber — ostrzeżenia, blokady, „wymaga ręki”. */
  --ml-amber-100: oklch(96.2% 0.059 95.617); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-200: oklch(92.4% 0.12 95.746); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-300: oklch(87.9% 0.169 91.605); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-400: oklch(82.8% 0.189 84.429); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-500: oklch(76.9% 0.188 70.08); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-amber-600: oklch(66.6% 0.179 58.318); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-amber-700: oklch(55.5% 0.163 48.998); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-amber-800: oklch(47.3% 0.137 46.201); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-900: oklch(41.4% 0.112 45.904); /* styles.css:1,104-111; Tailwind 4.3 default */
  --ml-amber-950: oklch(27.9% 0.077 45.635); /* styles.css:1,104-111; Tailwind 4.3 default */

  /* Red — błędy, awarie, STOP. */
  --ml-red-100: oklch(93.6% 0.032 17.717); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-200: oklch(88.5% 0.062 18.334); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-300: oklch(80.8% 0.114 19.571); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-400: oklch(70.4% 0.191 22.216); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-500: oklch(63.7% 0.237 25.331); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-red-600: oklch(57.7% 0.245 27.325); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-red-700: oklch(50.5% 0.213 27.518); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-red-800: oklch(44.4% 0.177 26.899); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-900: oklch(39.6% 0.141 25.723); /* styles.css:1,113-120; Tailwind 4.3 default */
  --ml-red-950: oklch(25.8% 0.092 26.042); /* styles.css:1,113-120; Tailwind 4.3 default */

  /* Emerald — sukces, opłacone, gotowe. */
  --ml-emerald-100: oklch(95% 0.052 163.051); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-200: oklch(90.5% 0.093 164.15); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-300: oklch(84.5% 0.143 164.978); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-400: oklch(76.5% 0.177 163.223); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-500: oklch(69.6% 0.17 162.48); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-emerald-600: oklch(59.6% 0.145 163.225); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-emerald-700: oklch(50.8% 0.118 165.612); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-emerald-800: oklch(43.2% 0.095 166.913); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-900: oklch(37.8% 0.077 168.94); /* styles.css:1,122-129; Tailwind 4.3 default */
  --ml-emerald-950: oklch(26.2% 0.051 172.552); /* styles.css:1,122-129; Tailwind 4.3 default */

  /* Blue — informacja, akcent, stan „w toku”. */
  --ml-blue-100: oklch(93.2% 0.032 255.585); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-200: oklch(88.2% 0.059 254.128); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-300: oklch(80.9% 0.105 251.813); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-400: oklch(70.7% 0.165 254.624); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-500: oklch(62.3% 0.214 259.815); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-blue-600: oklch(54.6% 0.245 262.881); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-blue-700: oklch(48.8% 0.243 264.376); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-blue-800: oklch(42.4% 0.199 265.638); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-900: oklch(37.9% 0.146 265.522); /* styles.css:1,131-138; Tailwind 4.3 default */
  --ml-blue-950: oklch(28.2% 0.091 267.935); /* styles.css:1,131-138; Tailwind 4.3 default */

  /* Sky — rzadsze znaczniki; wariant toastu używa go dla informacji. */
  --ml-sky-100: oklch(95.1% 0.026 236.824); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-200: oklch(90.1% 0.058 230.902); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-300: oklch(82.8% 0.111 230.318); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-400: oklch(74.6% 0.16 232.661); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-500: oklch(68.5% 0.169 237.323); /* styles.css:1,158-160; Tailwind 4.3 default */
  --ml-sky-600: oklch(58.8% 0.158 241.966); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-sky-700: oklch(50% 0.134 242.749); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-sky-800: oklch(44.3% 0.11 240.79); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-900: oklch(39.1% 0.09 240.876); /* styles.css:1,149-167; Tailwind 4.3 default */
  --ml-sky-950: oklch(29.3% 0.066 243.157); /* styles.css:1,149-167; Tailwind 4.3 default */

  /* Fuchsia — put-wall, boxy hali i plakietki dosyłek. */
  --ml-fuchsia-100: oklch(95.2% 0.037 318.852); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-200: oklch(90.3% 0.076 319.62); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-300: oklch(83.3% 0.145 321.434); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-400: oklch(74% 0.238 322.16); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-500: oklch(66.7% 0.295 322.15); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-fuchsia-600: oklch(59.1% 0.293 322.896); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-fuchsia-700: oklch(51.8% 0.253 323.949); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-fuchsia-800: oklch(45.2% 0.211 324.591); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-900: oklch(40.1% 0.17 325.612); /* styles.css:1,140-147; Tailwind 4.3 default */
  --ml-fuchsia-950: oklch(29.3% 0.136 325.661); /* styles.css:1,140-147; Tailwind 4.3 default */

  /* Violet — rzadsze znaczniki; w semantyce badge’y oznacza ERP. */
  --ml-violet-100: oklch(94.3% 0.029 294.588); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-200: oklch(89.4% 0.057 293.283); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-300: oklch(81.1% 0.111 293.571); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-400: oklch(70.2% 0.183 293.541); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-500: oklch(60.6% 0.25 292.717); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-violet-600: oklch(54.1% 0.281 293.009); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-violet-700: oklch(49.1% 0.27 292.581); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-violet-800: oklch(43.2% 0.232 292.759); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-900: oklch(38% 0.189 293.745); /* styles.css:1,149-156; Tailwind 4.3 default */
  --ml-violet-950: oklch(28.3% 0.141 291.089); /* styles.css:1,149-156; Tailwind 4.3 default */

  /* Indigo — rzadsze znaczniki. */
  --ml-indigo-100: oklch(93% 0.034 272.788); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-200: oklch(87% 0.065 274.039); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-300: oklch(78.5% 0.115 274.713); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-400: oklch(67.3% 0.182 276.935); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-500: oklch(58.5% 0.233 277.117); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-indigo-600: oklch(51.1% 0.262 276.966); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-indigo-700: oklch(45.7% 0.24 277.023); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-indigo-800: oklch(39.8% 0.195 277.366); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-900: oklch(35.9% 0.144 278.697); /* styles.css:1,149-171; Tailwind 4.3 default */
  --ml-indigo-950: oklch(25.7% 0.09 281.288); /* styles.css:1,149-171; Tailwind 4.3 default */

  /* Cyan — rzadsze znaczniki. */
  --ml-cyan-100: oklch(95.6% 0.045 203.388); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-200: oklch(91.7% 0.08 205.041); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-300: oklch(86.5% 0.127 207.078); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-400: oklch(78.9% 0.154 211.53); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-500: oklch(71.5% 0.143 215.221); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-cyan-600: oklch(60.9% 0.126 221.723); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-cyan-700: oklch(52% 0.105 223.128); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-cyan-800: oklch(45% 0.085 224.283); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-900: oklch(39.8% 0.07 227.392); /* styles.css:1,149-174; Tailwind 4.3 default */
  --ml-cyan-950: oklch(30.2% 0.056 229.695); /* styles.css:1,149-174; Tailwind 4.3 default */

  /* Green — rzadsze znaczniki. */
  --ml-green-100: oklch(96.2% 0.044 156.743); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-200: oklch(92.5% 0.084 155.995); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-300: oklch(87.1% 0.15 154.449); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-400: oklch(79.2% 0.209 151.711); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-500: oklch(72.3% 0.219 149.579); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-green-600: oklch(62.7% 0.194 149.214); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-green-700: oklch(52.7% 0.154 150.069); /* styles.css:1,71-73; Tailwind 4.3 default */
  --ml-green-800: oklch(44.8% 0.119 151.328); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-900: oklch(39.3% 0.095 152.535); /* styles.css:1,149-176; Tailwind 4.3 default */
  --ml-green-950: oklch(26.6% 0.065 152.934); /* styles.css:1,149-176; Tailwind 4.3 default */

  /*
   * Role powierzchni i tekstu są źródłem prawdy dla dashboardu i loginu.
   * Ich tripletowe odpowiedniki zasilają Tailwind CDN z obsługą modyfikatorów /opacity.
   * Kontrast WCAG weryfikuje `npm run diag:kontrast`.
   */
  --ml-bg: #050610;
  --ml-bg-rgb: 5 6 16;
  --ml-panel: #111426;
  --ml-panel-rgb: 17 20 38;
  --ml-card: #171a2e;
  --ml-card-rgb: 23 26 46;
  --ml-rail: #0e1120;
  --ml-rail-rgb: 14 17 32;
  --ml-border: #4a5278;
  --ml-border-rgb: 74 82 120;
  --ml-border-strong: #626c9c;
  --ml-border-strong-rgb: 98 108 156;
  --ml-text: #f7f8ff;
  --ml-text-rgb: 247 248 255;
  --ml-text-2: #d5daf2;
  --ml-text-2-rgb: 213 218 242;
  --ml-text-3: #aeb6d4;
  --ml-text-3-rgb: 174 182 212;
  --ml-muted: var(--ml-text-2);
  --ml-dim: var(--ml-text-3);
  --ml-accent-text: #041319;
  --ml-series-muted: #aeb6d4;
  --ml-series-tiktok: #d8def5;

  /* Semantyka komunikatów — zestawy są dokładnie użyte przez toasty. */
  --ml-ok: var(--ml-emerald-400); /* components/toast.tsx:86-90 */
  --ml-ok-bg: var(--ml-emerald-950); /* components/toast.tsx:86-90 */
  --ml-ok-bd: var(--ml-emerald-800); /* components/toast.tsx:86-90 */
  --ml-warn: var(--ml-amber-400); /* components/toast.tsx:86-90 */
  --ml-warn-bg: var(--ml-amber-950); /* components/toast.tsx:86-90 */
  --ml-warn-bd: var(--ml-amber-700); /* components/toast.tsx:86-90 */
  --ml-bad: var(--ml-red-400); /* components/toast.tsx:86-90 */
  --ml-bad-bg: var(--ml-red-950); /* components/toast.tsx:86-90 */
  --ml-bad-bd: var(--ml-red-800); /* components/toast.tsx:86-90 */
  --ml-info: var(--ml-sky-400); /* components/toast.tsx:86-90 */
  --ml-info-bg: var(--ml-sky-950); /* components/toast.tsx:86-90 */
  --ml-info-bd: var(--ml-sky-800); /* components/toast.tsx:86-90 */

  /* Typografia — systemowy stack Tailwind 4; index.html nie ładuje webfontu. */
  --ml-font: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* index.html:3-11; styles.css:1 */
  --ml-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* styles.css:1; routes/SprzedazPage.tsx:59-62 */

  /* Radiusy produktu: mały = plain rounded, średni = rounded-lg, duży = rounded-xl. */
  --ml-radius-sm: 4px; /* components/ui.tsx:53-57; Tailwind 4.3 `rounded` */
  --ml-radius-md: 8px; /* components/ui.tsx:248-255; Tailwind 4.3 `rounded-lg` */
  --ml-radius-lg: 12px; /* components/ui.tsx:314-318; Tailwind 4.3 `rounded-xl` */
  --ml-radius-xl: 16px; /* routes/LoginPage.tsx:48-50; Tailwind 4.3 `rounded-2xl` */
  --ml-radius-full: 9999px; /* routes/SprzedazPage.tsx:185-196; Tailwind 4.3 `rounded-full` */

  /* Rytm: bazowa jednostka Tailwind to 4 px. */
  --ml-space-0-5: 2px; /* routes/OrdersListPage.tsx:1105-1110; Tailwind 4.3 `gap-0.5` */
  --ml-space-1: 4px; /* components/ui.tsx:53-57; Tailwind 4.3 `gap-1` */
  --ml-space-1-5: 6px; /* components/PrzelacznikMotywu.tsx:20-27; Tailwind 4.3 `gap-1.5` */
  --ml-space-2: 8px; /* styles.css:14; components/ui.tsx:405-427 */
  --ml-space-2-5: 10px; /* components/toast.tsx:119-127; Tailwind 4.3 `py-2.5`/`gap-2.5` */
  --ml-space-3: 12px; /* styles.css:14; components/ui.tsx:358-360 */
  --ml-space-4: 16px; /* styles.css:14; components/ui.tsx:314-315 */
  --ml-space-6: 24px; /* components/ui.tsx:515-521; Tailwind 4.3 `p-6` */
  --ml-space-8: 32px; /* routes/LoginPage.tsx:48-50; Tailwind 4.3 `p-8` */

  /* Cienie Tailwind użyte w powłoce, toastach i modalu/loginie. */
  --ml-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); /* components/Layout.tsx:256-261; Tailwind 4.3 `shadow-sm` */
  --ml-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); /* components/toast.tsx:119-125; Tailwind 4.3 `shadow-xl` */
  --ml-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); /* components/ui.tsx:515-522; Tailwind 4.3 `shadow-2xl` */
  --ml-shadow-toast: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.4); /* components/toast.tsx:119-125; Tailwind 4.3 `shadow-xl shadow-black/40` */
  --ml-shadow-login: 0 25px 50px -12px rgb(0 0 0 / 0.5); /* routes/LoginPage.tsx:48-50; Tailwind 4.3 `shadow-2xl shadow-black/50` */

  /* Ruch. */
  --ml-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1); /* components/ui.tsx:248-255; Tailwind 4.3 `transition` */
  --ml-transition-tooltip: 120ms ease; /* styles.css:253-279 */
  --ml-transition-toast: 160ms ease-out; /* styles.css:288-300 */

  /* Geometria szpalty listy. Globalny Layout nie ma bocznego menu. */
  --ml-orders-rail-width: 250px; /* components/LejekStatusow.tsx:350-358 */

  /* Dane i wykresy — wartości pochodzą z mockupu dashboardu, nie z @theme aplikacji. */
  --ml-s1: #3987e5; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-s2: #d95926; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-s3: #199e70; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-ghost: #71717a; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-r1: #9ec5f4; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-r2: #6da7ec; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-r3: #3987e5; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-r4: #256abf; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-r5: #184f95; /* docs/mockupy/dashboard-1.0.html:14-17 */
  --ml-chart-grid: var(--ml-border); /* czytelna siatka w obu motywach */

  /* === DASHBOARD: DANE I WYKRESY — CIEMNY (START) ===
   * Neutralne powierzchnie, teksty i obramowania są aliasami na role ML z #230.
   * Serie 1–5 i rynki 1–5 są kategoriami, więc zachowują rozróżnialne barwy.
   */
  --dash-transparent: transparent;
  --dash-current-color: currentColor;
  --dash-on-color: #ffffff;
  --dash-logo-bg: var(--ml-card);
  --dash-logo-status: var(--ml-accent);
  --dash-data-ink: var(--ml-text);
  --dash-chart-grid: var(--ml-border);
  --dash-chart-axis: var(--ml-text-3);
  --dash-chart-axis-line: var(--ml-border);
  --dash-chart-legend: var(--ml-text-2);
  --dash-chart-reference: var(--ml-text-3);
  --dash-chart-cursor: var(--ml-border-strong);
  --dash-tooltip-bg: var(--ml-card);
  --dash-tooltip-border: var(--ml-border-strong);
  --dash-tooltip-text: var(--ml-text);
  --dash-tooltip-muted: var(--ml-text-3);
  --dash-tooltip-strong: var(--ml-text);
  --dash-tooltip-shadow: var(--ml-shadow-sm);
  --dash-heat-empty: var(--ml-card);
  --dash-heat-text: var(--ml-text);
  --dash-heat-teal: #14b8a6;
  --dash-heat-positive: #22c55e;
  --dash-heat-orders: #0ea5e9;
  --dash-data-revenue: #3b82f6;
  --dash-data-profit: #22c55e;
  --dash-data-costs: var(--ml-series-muted);
  --dash-data-margin: #a78bfa;
  --dash-data-ads: #ef4444;
  --dash-data-ads-soft: #f87171;
  --dash-data-cogs: #8b5cf6;
  --dash-data-logistics: #f59e0b;
  --dash-data-logistics-share: #22d3ee;
  --dash-data-fulfilment: #06b6d4;
  --dash-data-orders: #0ea5e9;
  --dash-data-aov: #14b8a6;
  --dash-data-roas: #10b981;
  --dash-data-roas-compare: #60a5fa;
  --dash-data-roas-google: #fb7185;
  --dash-data-attribution-click: #a78bfa;
  --dash-data-contribution: #199e70;
  --dash-data-share: #3987e5;
  --dash-data-cost-aux: #64748b;
  --dash-data-secondary: var(--ml-series-muted);
  --dash-data-previous: var(--ml-ghost);
  --dash-channel-woo: var(--ml-text-3);
  --dash-channel-allegro: #fb923c;
  --dash-channel-other: var(--ml-text-2);
  --dash-platform-meta: #1877f2;
  --dash-platform-google: #4285f4;
  --dash-platform-google-budget: #34a853;
  --dash-platform-google-stack: #f59e0b;
  --dash-platform-tiktok: #ff0050;
  --dash-platform-tiktok-ink: var(--ml-text);
  --dash-platform-tiktok-stack: var(--ml-series-tiktok);
  --dash-platform-allegro: #ea580c;
  --dash-platform-influencer: #9333ea;
  --dash-platform-instagram: #e1306c;
  --dash-platform-other: var(--ml-series-muted);
  --dash-platform-other-stroke: var(--ml-text-2);
  --dash-state-positive: #4ade80;
  --dash-state-positive-strong: #22c55e;
  --dash-state-negative: #f87171;
  --dash-state-negative-strong: #ef4444;
  --dash-state-warning: #fbbf24;
  --dash-state-question: #60a5fa;
  --dash-state-positive-bg: #052e16;
  --dash-state-negative-bg: #450a0a;
  --dash-state-warning-bg: #451a03;
  --dash-state-dead-bg: #2e1065;
  --dash-shop-barber: #8f94c2;
  --dash-shop-labify: #34d399;
  --dash-data-ltv-medium: #2dd4bf;
  --dash-data-ltv-long: #14b8a6;
  --dash-series-1: #0ea5e9;
  --dash-series-2: #22c55e;
  --dash-series-3: #a855f7;
  --dash-series-4: #f59e0b;
  --dash-series-5: #ef4444;
  --dash-series-6: #a78bfa;
  --dash-series-7: #ec4899;
  --dash-series-8: #84cc16;
  --dash-market-1: #3b82f6;
  --dash-market-2: #ef4444;
  --dash-market-3: #22c55e;
  --dash-market-4: #f59e0b;
  --dash-market-5: #8b5cf6;
  --dash-market-6: var(--dash-series-6);
  --dash-market-7: var(--dash-series-7);
  --dash-market-8: var(--dash-series-8);
  --dash-market-9: #64748b;
  --dash-market-10: #0ea5e9;
  /* === DASHBOARD: DANE I WYKRESY — CIEMNY (END) === */
}

/* Jasna skórka. `:not(.hala-ciemna)` jest istotne: ekran pakowania zostaje ciemny. */
html.motyw-jasny:not(.hala-ciemna) {
  color-scheme: light; /* styles.css:75-78 */

  --ml-zinc-950: #f2f4f7; /* styles.css:80-81 */
  --ml-zinc-940: #e7ebf1; /* styles.css:80-82 */
  --ml-zinc-925: #ffffff; /* styles.css:80-83 */
  --ml-zinc-900: #e3e8ef; /* styles.css:80-84 */
  --ml-zinc-800: #d3dae4; /* styles.css:86-87 */
  --ml-zinc-700: #b9c2ce; /* styles.css:86-88 */
  --ml-zinc-600: #8a93a1; /* styles.css:86-89 */
  --ml-zinc-500: #626a78; /* styles.css:91-92 */
  --ml-zinc-400: #545c68; /* styles.css:91-93 */
  --ml-zinc-300: #3b424c; /* styles.css:91-94 */
  --ml-zinc-200: #252a32; /* styles.css:91-95 */
  --ml-zinc-100: #12161c; /* styles.css:91-96 */
  --ml-kontrast: #0d1015; /* styles.css:91-97 */
  --ml-bg: #eaeef3;
  --ml-bg-rgb: 234 238 243;
  --ml-panel: #f3f5f8;
  --ml-panel-rgb: 243 245 248;
  --ml-card: #ffffff;
  --ml-card-rgb: 255 255 255;
  --ml-rail: #e3e8ef;
  --ml-rail-rgb: 227 232 239;
  --ml-border: #c3ccd8;
  --ml-border-rgb: 195 204 216;
  --ml-border-strong: #aeb9c8;
  --ml-border-strong-rgb: 174 185 200;
  --ml-text: #111827;
  --ml-text-rgb: 17 24 39;
  --ml-text-2: #344054;
  --ml-text-2-rgb: 52 64 84;
  --ml-text-3: #475467;
  --ml-text-3-rgb: 71 84 103;
  --ml-muted: var(--ml-text-2);
  --ml-dim: var(--ml-text-3);
  --ml-accent: #2563eb;
  --ml-accent-hover: #1d4ed8; /* styles.css:99-102 */
  --ml-accent-text: #ffffff;
  --ml-series-muted: #616978;
  --ml-series-tiktok: #111827;

  --ml-amber-950: #fff8e8; /* styles.css:104-105 */
  --ml-amber-900: #fce3ab; /* styles.css:104-106 */
  --ml-amber-800: #f0cf86; /* styles.css:104-107 */
  --ml-amber-400: #8f5610; /* styles.css:104-108 */
  --ml-amber-300: #7a460b; /* styles.css:104-109 */
  --ml-amber-200: #713f12; /* styles.css:104-110 */
  --ml-amber-100: #451a03; /* styles.css:104-111 */

  --ml-red-950: #fef2f2; /* styles.css:113-114 */
  --ml-red-900: #fecaca; /* styles.css:113-115 */
  --ml-red-800: #f6a9a9; /* styles.css:113-116 */
  --ml-red-400: #b91c1c; /* styles.css:113-117 */
  --ml-red-300: #991b1b; /* styles.css:113-118 */
  --ml-red-200: #7f1d1d; /* styles.css:113-119 */
  --ml-red-100: #450a0a; /* styles.css:113-120 */

  --ml-emerald-950: #ecfdf5; /* styles.css:122-123 */
  --ml-emerald-900: #a7f3d0; /* styles.css:122-124 */
  --ml-emerald-800: #83dfb6; /* styles.css:122-125 */
  --ml-emerald-400: #05684c; /* styles.css:122-126 */
  --ml-emerald-300: #04563b; /* styles.css:122-127 */
  --ml-emerald-200: #064e3b; /* styles.css:122-128 */
  --ml-emerald-100: #022c22; /* styles.css:122-129 */

  --ml-blue-950: #eff6ff; /* styles.css:131-132 */
  --ml-blue-900: #bfdbfe; /* styles.css:131-133 */
  --ml-blue-800: #9dc5fb; /* styles.css:131-134 */
  --ml-blue-400: #1d4ed8; /* styles.css:131-135 */
  --ml-blue-300: #1e40af; /* styles.css:131-136 */
  --ml-blue-200: #1e3a8a; /* styles.css:131-137 */
  --ml-blue-100: #172554; /* styles.css:131-138 */

  --ml-fuchsia-950: #fdf4ff; /* styles.css:140-141 */
  --ml-fuchsia-900: #fae8ff; /* styles.css:140-142 */
  --ml-fuchsia-800: #eeaaf7; /* styles.css:140-143 */
  --ml-fuchsia-400: #a21caf; /* styles.css:140-144 */
  --ml-fuchsia-300: #86198f; /* styles.css:140-145 */
  --ml-fuchsia-200: #701a75; /* styles.css:140-146 */
  --ml-fuchsia-100: #4a044e; /* styles.css:140-147 */

  --ml-violet-950: #f5f3ff; /* styles.css:149-150 */
  --ml-violet-900: #ede9fe; /* styles.css:149-151 */
  --ml-violet-800: #c0b0fb; /* styles.css:149-152 */
  --ml-violet-400: #6d28d9; /* styles.css:149-153 */
  --ml-violet-300: #5b21b6; /* styles.css:149-154 */
  --ml-violet-200: #4c1d95; /* styles.css:149-155 */
  --ml-violet-100: #2e1065; /* styles.css:149-156 */

  --ml-sky-500: #075e8d; /* styles.css:158-160 */
  --ml-sky-950: #f0f9ff; /* styles.css:161 */
  --ml-sky-900: #e0f2fe; /* styles.css:162 */
  --ml-sky-800: #74c9f8; /* styles.css:163 */
  --ml-sky-400: #0369a1; /* styles.css:164 */
  --ml-sky-300: #075985; /* styles.css:165 */
  --ml-sky-200: #0c4a6e; /* styles.css:166 */
  --ml-sky-100: #082f49; /* styles.css:167 */

  --ml-indigo-950: #eef2ff; /* styles.css:169 */
  --ml-indigo-800: #9aabf8; /* styles.css:170 */
  --ml-indigo-300: #3730a3; /* styles.css:171 */

  --ml-cyan-400: #0e7490; /* styles.css:173 */
  --ml-cyan-200: #164e63; /* styles.css:174 */

  --ml-green-400: #15803d; /* styles.css:176 */

  /* === DASHBOARD: DANE I WYKRESY — JASNY (START) ===
   * Wartości zachowują paletę sprzed migracji 1:1. Duplikaty są celowe:
   * role mogą rozjechać się wyłącznie w ciemnym motywie bez zmiany jasnego.
   */
  --dash-transparent: transparent;
  --dash-current-color: currentColor;
  --dash-on-color: #ffffff;
  --dash-logo-bg: var(--ml-card);
  --dash-logo-status: var(--ml-accent);
  --dash-data-ink: var(--ml-text);
  --dash-chart-grid: var(--ml-border);
  --dash-chart-axis: var(--ml-text-3);
  --dash-chart-axis-line: var(--ml-border);
  --dash-chart-legend: var(--ml-text-2);
  --dash-chart-reference: var(--ml-text-3);
  --dash-chart-cursor: var(--ml-border-strong);
  --dash-tooltip-bg: var(--ml-card);
  --dash-tooltip-border: var(--ml-border-strong);
  --dash-tooltip-text: var(--ml-text);
  --dash-tooltip-muted: var(--ml-text-3);
  --dash-tooltip-strong: var(--ml-text);
  --dash-tooltip-shadow: var(--ml-shadow-sm);
  --dash-heat-empty: var(--ml-card);
  --dash-heat-text: var(--ml-text);
  --dash-heat-teal: #14b8a6;
  --dash-heat-positive: #22c55e;
  --dash-heat-orders: #0ea5e9;
  --dash-data-revenue: #3b82f6;
  --dash-data-profit: #22c55e;
  --dash-data-costs: var(--ml-series-muted);
  --dash-data-margin: #a78bfa;
  --dash-data-ads: #ef4444;
  --dash-data-ads-soft: #f87171;
  --dash-data-cogs: #8b5cf6;
  --dash-data-logistics: #f59e0b;
  --dash-data-logistics-share: #22d3ee;
  --dash-data-fulfilment: #06b6d4;
  --dash-data-orders: #0ea5e9;
  --dash-data-aov: #14b8a6;
  --dash-data-roas: #10b981;
  --dash-data-roas-compare: #60a5fa;
  --dash-data-roas-google: #fb7185;
  --dash-data-attribution-click: #7c3aed;
  --dash-data-contribution: #199e70;
  --dash-data-share: #3987e5;
  --dash-data-cost-aux: #64748b;
  --dash-data-secondary: var(--ml-series-muted);
  --dash-data-previous: var(--ml-ghost);
  --dash-channel-woo: var(--ml-text-3);
  --dash-channel-allegro: #fb923c;
  --dash-channel-other: var(--ml-text-2);
  --dash-platform-meta: #1877f2;
  --dash-platform-google: #4285f4;
  --dash-platform-google-budget: #34a853;
  --dash-platform-google-stack: #f59e0b;
  --dash-platform-tiktok: #ff0050;
  --dash-platform-tiktok-ink: var(--ml-text);
  --dash-platform-tiktok-stack: var(--ml-series-tiktok);
  --dash-platform-allegro: #ea580c;
  --dash-platform-influencer: #9333ea;
  --dash-platform-instagram: #e1306c;
  --dash-platform-other: var(--ml-series-muted);
  --dash-platform-other-stroke: var(--ml-text-2);
  --dash-state-positive: #15803d;
  --dash-state-positive-strong: #16a34a;
  --dash-state-negative: #dc2626;
  --dash-state-negative-strong: #b91c1c;
  --dash-state-warning: #a16207;
  --dash-state-question: #2563eb;
  --dash-state-positive-bg: #f0fdf4;
  --dash-state-negative-bg: #fef2f2;
  --dash-state-warning-bg: #fffbeb;
  --dash-state-dead-bg: #f5f3ff;
  --dash-shop-barber: #0f172a;
  --dash-shop-labify: #059669;
  --dash-data-ltv-medium: #0d9488;
  --dash-data-ltv-long: #0f766e;
  --dash-series-1: #0ea5e9;
  --dash-series-2: #22c55e;
  --dash-series-3: #a855f7;
  --dash-series-4: #f59e0b;
  --dash-series-5: #ef4444;
  --dash-series-6: #14b8a6;
  --dash-series-7: #ec4899;
  --dash-series-8: #84cc16;
  --dash-market-1: #3b82f6;
  --dash-market-2: #ef4444;
  --dash-market-3: #22c55e;
  --dash-market-4: #f59e0b;
  --dash-market-5: #8b5cf6;
  --dash-market-6: #06b6d4;
  --dash-market-7: #ec4899;
  --dash-market-8: #84cc16;
  --dash-market-9: #64748b;
  --dash-market-10: #0ea5e9;
  /* === DASHBOARD: DANE I WYKRESY — JASNY (END) === */
}

body {
  -webkit-font-smoothing: antialiased; /* styles.css:179-180 */
  -moz-osx-font-smoothing: grayscale; /* styles.css:179-180 */
  background-color: var(--ml-bg); /* styles.css:179-185 */
  color: var(--ml-text); /* styles.css:179-185 */
  font-family: var(--ml-font); /* index.html:3-11; styles.css:1 */
  font-size: 14px;
  line-height: 1.5;
}

:focus-visible {
  outline: 2px solid var(--ml-accent); /* styles.css:188-192 */
  outline-offset: 2px; /* styles.css:188-192 */
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none; /* styles.css:193-198 */
}

::selection {
  background: color-mix(in oklab, var(--ml-accent) 45%, transparent); /* styles.css:200-202 */
  color: var(--ml-text); /* styles.css:200-203 */
}

* {
  scrollbar-width: thin; /* styles.css:205-209 */
  scrollbar-color: var(--ml-zinc-700) transparent; /* styles.css:205-209 */
}

*::-webkit-scrollbar {
  width: 10px; /* styles.css:210-213 */
  height: 10px; /* styles.css:210-213 */
}

*::-webkit-scrollbar-track {
  background: transparent; /* styles.css:214-216 */
}

*::-webkit-scrollbar-thumb {
  background: var(--ml-zinc-700); /* styles.css:217-222 */
  border-radius: 5px; /* styles.css:217-222 */
  border: 2px solid transparent; /* styles.css:217-222 */
  background-clip: content-box; /* styles.css:217-222 */
}

*::-webkit-scrollbar-thumb:hover {
  background-color: var(--ml-zinc-600); /* styles.css:223-225 */
}

table {
  font-variant-numeric: tabular-nums; /* styles.css:227-230 */
}

.ml-table thead th {
  position: sticky; /* styles.css:234-241 */
  top: 0; /* styles.css:234-241 */
  z-index: 10; /* styles.css:234-241 */
  background: var(--ml-panel); /* styles.css:234-241 */
  border-bottom: 1px solid var(--ml-border); /* styles.css:234-241 */
}

.ml-table tbody tr {
  border-bottom: 1px solid color-mix(in oklab, var(--ml-card) 80%, transparent); /* styles.css:242-244 */
}

.ml-table tbody tr:nth-child(even) {
  background: color-mix(in oklab, var(--ml-card) 35%, transparent); /* styles.css:245-248 */
}

.ml-table tbody tr:hover {
  background: var(--ml-card); /* styles.css:249-251 */
}

.ml-tooltip {
  position: relative; /* styles.css:253-257 */
  display: inline-flex; /* styles.css:253-257 */
}

.ml-tooltip::after {
  content: attr(data-tip); /* styles.css:258-280 */
  position: absolute; /* styles.css:258-280 */
  bottom: calc(100% + 6px); /* styles.css:258-280 */
  left: 50%; /* styles.css:258-280 */
  transform: translateX(-50%) scale(0.96); /* styles.css:258-280 */
  max-width: 280px; /* styles.css:258-280 */
  width: max-content; /* styles.css:258-280 */
  padding: 4px 8px; /* styles.css:258-280 */
  border-radius: 6px; /* styles.css:258-280 */
  border: 1px solid var(--ml-zinc-700); /* styles.css:258-280 */
  background: var(--ml-zinc-800); /* styles.css:258-280 */
  color: var(--ml-zinc-100); /* styles.css:258-280 */
  font-size: 12px; /* styles.css:258-280 */
  line-height: 1.35; /* styles.css:258-280 */
  white-space: normal; /* styles.css:258-280 */
  text-align: left; /* styles.css:258-280 */
  opacity: 0; /* styles.css:258-280 */
  pointer-events: none; /* styles.css:258-280 */
  transition: opacity var(--ml-transition-tooltip), transform var(--ml-transition-tooltip); /* styles.css:277-279 */
  z-index: 50; /* styles.css:258-280 */
}

.ml-tooltip:hover::after,
.ml-tooltip:focus-visible::after {
  opacity: 1; /* styles.css:282-286 */
  transform: translateX(-50%) scale(1); /* styles.css:282-286 */
}

.ml-toast-enter {
  animation: ml-toast-in var(--ml-transition-toast); /* styles.css:288-291 */
}

@keyframes ml-toast-in {
  from {
    opacity: 0; /* styles.css:292-296 */
    transform: translateX(16px); /* styles.css:292-296 */
  }
  to {
    opacity: 1; /* styles.css:297-300 */
    transform: translateX(0); /* styles.css:297-300 */
  }
}

@media (prefers-reduced-motion: reduce) {
  .ml-toast-enter {
    animation: none; /* styles.css:302-305 */
  }
}

/* =====================================================================================
   RETRO-CYBERPUNK — ciemny motyw dashboardu (decyzja Szymona 29.08.2026; nadpisuje kolory ML).
   Wspólne dla index.html i login.html. Jasny motyw (html.motyw-jasny) zostaje ML 1:1.
   ===================================================================================== */
html:not(.motyw-jasny) {
  --ml-zinc-950: #07070c; --ml-zinc-940: #0a0a12; --ml-zinc-925: #0d0d16; --ml-zinc-900: #12121e;
  --ml-zinc-800: #1f2140; --ml-zinc-700: #2a2d57; --ml-zinc-600: #8f94c2; --ml-zinc-500: #b3b8dd;
  --ml-zinc-400: #b8bce0; --ml-zinc-300: #d6d8f0; --ml-zinc-200: #e8eaf8; --ml-zinc-100: #f4f5ff;
  --ml-accent: #00e5ff;         /* neon cyjan */
  --ml-accent-hover: #5df2ff;
  --ml-chart-grid: var(--ml-border);
  --ml-radius-sm: 0; --ml-radius-md: 0; --ml-radius-lg: 0; --ml-radius-xl: 0; --ml-radius-full: 0;
}
/* kwadraty zamiast zaokrągleń — wszędzie, także w klasach Tailwinda */
html:not(.motyw-jasny) [class*="rounded"] { border-radius: 0 !important; }
/* subtelna siatka 32 px — „ultra" vibe, nie przeszkadza w czytaniu */
html:not(.motyw-jasny) body {
  background-image: linear-gradient(rgba(0,229,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0,229,255,0.035) 1px, transparent 1px);
  background-size: 32px 32px;
}
/* akcent (przyciski główne, aktywne pigułki) — ciemny napis na neonie + poświata */
html:not(.motyw-jasny) .bg-zinc-900, html:not(.motyw-jasny) button.bg-zinc-900, html:not(.motyw-jasny) a.bg-zinc-900,
html:not(.motyw-jasny) button[type="submit"] {
  color: var(--ml-accent-text) !important; font-weight: 700;
  box-shadow: 0 0 0 1px rgba(0,229,255,0.55), 0 0 14px rgba(0,229,255,0.35);
}
html:not(.motyw-jasny) header { box-shadow: 0 1px 0 rgba(0,229,255,0.15); }
html:not(.motyw-jasny) .shadow-sm, html:not(.motyw-jasny) .shadow, html:not(.motyw-jasny) .shadow-xl, html:not(.motyw-jasny) .shadow-2xl {
  box-shadow: 0 0 0 1px var(--ml-border) !important;
}
html:not(.motyw-jasny) ::selection { background: rgba(0,229,255,0.35); }
