/* theme.css — wspólny motyw jasny dla wszystkich paneli (wstrzykiwany przez nginx).
   Ciemny motyw to tokeny w :root każdego panelu (design system z CLAUDE.md), ten plik
   nadpisuje je dla [data-theme="light"] i dokłada tokeny, których panele dotąd nie miały.
   Paleta jasna z Hub v2 (slate), akcenty przyciemnione do kontrastu AA jako tekst. */

/* Pełny ciemny zestaw jako zabezpieczenie: panel bez własnego :root (np. generowany
   skryptem) i tak dostaje działające tokeny. Własny :root panelu, wczytywany po tym
   pliku, nadpisuje te wartości. */
:root {
  --bg: #0a0a0a; --bg2: #111; --bg3: #141414; --bg4: #1a1a1a;
  --border: #2a2a2a; --border2: #222;
  --text1: #e0e0e0; --text2: #aaa; --text3: #666; --text4: #444;
  --accent: #f0a500; --green: #4caf50; --red: #f55; --yellow: #fc0;
  --blue: #4a9eff;
  --amber: #f0a500;
  --on-accent: #111;
  /* tła statusów: bliskie oryginalnym ciemnym odcieniom (#2b0d0d, #1a3a1a), nie blade */
  --accent-bg: rgba(240, 165, 0, .16);
  --ok-bg: rgba(76, 175, 80, .16);
  --err-bg: rgba(255, 85, 85, .16);
  --warn-bg: rgba(240, 165, 0, .14);
  --info-bg: rgba(74, 158, 255, .13);
  --overlay: rgba(0, 0, 0, .70);
  --shadow: 0 2px 24px rgba(0, 0, 0, .22);
  --hover: rgba(255, 255, 255, .03);
  /* tekst na kolorowych tlach (przyciski, odznaki): stale w obu motywach */
  --white: #ffffff;
  --black: #000000;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #f1f5f9;
  --bg2: #ffffff;
  --bg3: #f8fafc;
  --bg4: #eef2f6;
  --border: #d5dbe3;
  --border2: #e4e8ee;
  /* tekst: audyt kontrastu 12.09.2026 (theme_kontrast_audyt.py) pokazał, że dawne
     --text3 #64748b (4,3:1) i --text4 #94a3b8 (2,3:1) na tle #f1f5f9 są za jasne;
     teraz każdy stopień szarości ma na jasnym tle co najmniej 4,5:1 (AA) */
  --text1: #0f172a;
  --text2: #334155;
  --text3: #475569;
  --text4: #5b6b80;
  /* akcenty jako TEKST: co najmniej 5:1 na #f1f5f9 i #eef2f6 */
  --accent: #9a3d0c;
  --amber: #9a3d0c;
  --on-accent: #ffffff;
  --green: #166534;
  --red: #b91c1c;
  --yellow: #854d0e;
  --blue: #1d4ed8;
  --accent-bg: rgba(154, 61, 12, .10);
  --ok-bg: rgba(22, 101, 52, .10);
  --err-bg: rgba(185, 28, 28, .08);
  --warn-bg: rgba(154, 61, 12, .08);
  --info-bg: rgba(29, 78, 216, .08);
  --overlay: rgba(15, 23, 42, .45);
  --shadow: 0 2px 16px rgba(15, 23, 42, .10);
  --hover: rgba(15, 23, 42, .03);
  /* panele z wlasnymi nazwami tokenow (Owner Command: --card, --text, --sub) */
  --card: #ffffff;
  --text: #0f172a;
  --sub: #334155;
  /* --black to w panelach „tekst na kolorowym tle statusu” (w ciemnym: czarny na jasnej
     zieleni). W jasnym motywie zieleń, czerwień i akcent są ciemne, więc ten tekst ma być biały. */
  --black: #ffffff;
  color-scheme: light;
}

/* CIEMNY MOTYW: JEDYNE MIEJSCE DEFINICJI (od 12.09.2026 wieczór).
   Każdy panel ma jeszcze własny :root z kopią ciemnych tokenów (historycznie 60 kopii),
   ale ten blok ma wyższą specyficzność (data-theme="dark" stawia theme-early.js na każdej
   stronie), więc wygrywa: zmiana wartości TUTAJ zmienia wszystkie panele naraz. :root w
   panelach to już tylko martwy zapas na wypadek braku theme.css.
   Wyjątek świadomy: --accent (i --amber) NIE jest tu wymuszany, bo panele mają akcent
   per dashboard (bursztyn 37 paneli, niebieski 11: Payment/KSeF, zielony: Live Ops/FC). */
:root[data-theme="dark"] {
  --bg: #0a0a0a; --bg2: #111111; --bg3: #141414; --bg4: #1a1a1a;
  --border: #2a2a2a; --border2: #222222;
  --text1: #e0e0e0; --text2: #aaaaaa;
  --text3: #8f8f8f;   /* było #666 (3,3:1), audyt 12.09 */
  --text4: #828282;   /* było #444 (1,9:1), audyt 12.09 */
  --green: #4caf50; --red: #ff5555; --yellow: #ffcc00; --blue: #4a9eff;
  --on-accent: #111111;
  --accent-bg: rgba(240, 165, 0, .16);
  --ok-bg: rgba(76, 175, 80, .16);
  --err-bg: rgba(255, 85, 85, .16);
  --warn-bg: rgba(240, 165, 0, .14);
  --info-bg: rgba(74, 158, 255, .13);
  --overlay: rgba(0, 0, 0, .70);
  --shadow: 0 2px 24px rgba(0, 0, 0, .22);
  --hover: rgba(255, 255, 255, .03);
  --white: #ffffff;
  --black: #000000;
  /* panele z własnymi nazwami (Owner Command) */
  --card: #111111; --text: #e0e0e0; --sub: #aaaaaa;
  color-scheme: dark;
}

/* elementy wspólne, których panele nie kontrolują */

/* przycisk „← Hub" wklejony w każdym panelu z kolorami na sztywno */
:root[data-theme="light"] a.bulkes-hub-btn,
:root[data-theme="light"] a[href="/hub/"][style*="position:fixed"],
:root[data-theme="light"] a[href="/"][style*="position:fixed"] {
  background: #ffffff !important;
  color: #9a3d0c !important;
  border-color: #9a3d0c !important;
  opacity: 1 !important;
}
a.bulkes-hub-btn {
  position: fixed; bottom: 16px; left: 16px; z-index: 9999;
  background: var(--bg2, #111); border: 1px solid var(--accent, #f0a500);
  color: var(--accent, #f0a500); text-decoration: none; padding: 7px 14px;
  border-radius: 8px; font-size: .8em; font-weight: 700; opacity: .85;
}

/* zegar i przełącznik motywu (clock.js, theme.js) */
#bulkes-clock, #bulkes-theme-btn {
  background: var(--bg2, #111) !important;
  border: 1px solid var(--border, #2a2a2a) !important;
  color: var(--text2, #aaa) !important;
}
#bulkes-theme-btn { cursor: pointer; pointer-events: auto; font-family: inherit; }
#bulkes-theme-btn:hover { border-color: var(--accent, #f0a500) !important; color: var(--text1) !important; }

/* w jasnym motywie „#111 na akcencie" musi zostać czytelne: przyciski z tłem akcentu */
:root[data-theme="light"] button.primary,
:root[data-theme="light"] .btn-primary,
:root[data-theme="light"] .f-btn { color: #ffffff; }

/* ALIASY-START: własne nazwy tokenów paneli, generowane przez scripts/theme_aliasy.py */
:root[data-theme="light"] {
  --accent-dim: var(--info-bg);   /* fc-bar-dashboard */
  --accent2: var(--amber);   /* benchmark, kasa, plaud-explorer, pracownicy, schedule, seo-radar, ts-e */
  --bg5: var(--bg4);   /* instagram-content */
  --blue-dim: var(--info-bg);   /* instagram-content */
  --both: var(--blue);   /* chatgpt-posts */
  --bulkes: var(--accent);   /* chatgpt-posts, instagram-content, seo-radar */
  --bulkes-border: var(--hover);   /* instagram-content */
  --bulkes-dim: var(--hover);   /* instagram-content */
  --c-ogrodek: var(--text4);   /* damian-czas */
  --c-praca: var(--accent);   /* damian-czas */
  --c-toystore: var(--blue);   /* damian-czas */
  --cat-b: var(--blue);   /* wydatki */
  --cat-p: var(--text3);   /* wydatki */
  --cat-r: var(--green);   /* wydatki */
  --cat-t: var(--blue);   /* wydatki */
  --chaos: var(--blue);   /* seo-radar */
  --general: var(--green);   /* chatgpt-posts */
  --gray: var(--text3);   /* ksef-invoices */
  --gray-c: var(--text2);   /* cashflow-payables */
  --green-dim: var(--ok-bg);   /* instagram-content */
  --holiday: var(--err-bg);   /* schedule */
  --holiday-acc: var(--red);   /* schedule */
  --hot: var(--red);   /* flights */
  --orange: var(--yellow);   /* bidfood, cashflow-payables, flights, intermal, kuchnie-swiata, makro,  */
  --purple: var(--blue);   /* benchmark, cashflow-payables, mail-triage, zakupy-analiza */
  --red-dim: var(--err-bg);   /* instagram-content */
  --t1: var(--text1);   /* koszty-kategorie, opinie, todo-app */
  --t2: var(--text2);   /* koszty-kategorie, opinie, todo-app */
  --t3: var(--text3);   /* koszty-kategorie, opinie, todo-app */
  --teal: var(--blue);   /* zakupy-analiza */
  --toystore: var(--blue);   /* chatgpt-posts, instagram-content, seo-radar */
  --toystore-border: var(--info-bg);   /* instagram-content */
  --toystore-dim: var(--info-bg);   /* instagram-content */
}
/* ALIASY-END */

/* ALIASY-DARK-START: własne tokeny paneli za ciemne jako tekst w ciemnym motywie (theme_aliasy.py) */
:root[data-theme="dark"] {
  --c-ogrodek: var(--text4);   /* damian-czas */
  --toystore: #a467bc;   /* instagram-content */
  --t3: var(--text3);   /* koszty-kategorie */
  --gray: var(--text3);   /* ksef-invoices */
  --accent2: #9664e3;   /* plaud-explorer */
  --holiday-acc: #d35c5c;   /* schedule */
  --cat-t: #9266f7;   /* wydatki */
  --cat-p: var(--text3);   /* wydatki */
}
/* ALIASY-DARK-END */
