/* AquaJoy: pastelowe akcenty (27.10.2026, gałąź kolory).
   Warstwa ładowana NA KOŃCU (inc/enqueue.php, aj_kolor_assets). Zmienia tylko
   kolory teł, ramek, kropek i ikon w kluczowych miejscach. Układ, pismo,
   przyciski (czarne) i zaznaczenie (czarne) zostają jak w DESIGN.md.

   Klucz kolorów (jeden w całym serwisie, kolor nigdy nie jest jedynym nośnikiem
   informacji: zawsze stoi przy nim słowo albo ikona):
     ok      zielony     wolne miejsca, opłacone, odbyte, można bezpłatnie odwołać
     warn    bursztyn    ostatnie miejsca, czeka na wpłatę, do odhaczenia
     err     róż         przerwa, brak zajęć, nieobecność, błąd
     info    szaroniebieski   podpowiedź, informacja dla wiadomości
     buk     turkus      Bukowina Tatrzańska (blisko turkusu logo i koloru Ani w panelu)
     nt      lawenda     Nowy Targ
   Tekst na pastelach zostaje ciemny (#111 / #555) albo w ciemnym odcieniu
   tej samej barwy (-ink). Pasek i kropka (bez -bg) mają co najmniej 3:1 na bieli.

   Wdrożony wariant A (bardzo jasne pastele, decyzja Roberta 27.10.2026).
   Każda reguła stoi pod :where(html:not(.aj-kolor-off)): zero dodatkowej
   specyficzności, wygrywa kolejnością, a klasa aj-kolor-off na <html>
   wyłącza całą warstwę (stan sprzed zmian). */

/* Stany: pełne kolory i tła są w tokens.css, tu ramki i lżejsze odcienie
   dla strony publicznej (panel ma je w ajp.css z tymi samymi wartościami).
   Tylko tryb jasny: w ciemnym panelu wartości daje ajp.css, a ta reguła ma
   tę samą wagę i ładuje się później, więc bez :not() zostawiałaby jasne
   ramki i wiersze obecności także przy klasie aj-kolor-off. */
:root:where(:not([data-aj-theme="dark"])) {
  --c-ok-line: #c5dfd1;
  --c-warn-line: #e7d5c2;
  --c-err-line: #f6c6c8;
  --c-ok-tint: #f3f9f5;
  --c-warn-tint: #fefaf3;
  --c-err-tint: #fdf4f4;
}

:root {
  /* Informacja. --k-info-ink 6.9:1 na --k-info-bg. */
  --k-info: #4a6f9c;
  --k-info-ink: #2f5580;
  /* Chłodna szarość z odrobiną błękitu: daleko od lawendy Nowego Targu. */
  --k-info-bg: #f1f5f7;
  --k-info-line: #d8e1e7;

  /* Lokalizacje. */
  --k-buk: #13917f;
  --k-buk-ink: #0b5c52;
  --k-buk-bg: #e9f7f4;
  --k-buk-line: #c2e7df;

  --k-nt: #7367bf;
  --k-nt-ink: #483f80;
  --k-nt-bg: #f2f1fc;
  --k-nt-line: #dbd7f5;


  /* Przerwa / brak zajęć. */
  --k-off: #c4545a;
  --k-off-bg: #fcf1f1;

  /* Kafel w kolorze osoby (panel): udział koloru osoby w tle, ramce, kaflu odbytym. */
  --k-tile: 9%;
  --k-tile-line: 26%;
  --k-tile-done: 6%;
}

/* Tryb ciemny panelu (html[data-aj-theme="dark"], panel.css): stany ma już
   panel.css i ajp.css, tu tylko nowe tokeny. */
@media screen {
  :root:where([data-aj-theme="dark"]) {
    --k-info: #8fb4dc;
    --k-info-ink: #a9c6e6;
    --k-info-bg: #142030;
    --k-info-line: #26394f;
    --k-buk: #3fc2ae;
    --k-buk-ink: #7fdccd;
    --k-buk-bg: #0e2622;
    --k-buk-line: #1d4a42;
    --k-nt: #a69cf0;
    --k-nt-ink: #c3bbf7;
    --k-nt-bg: #1c1a33;
    --k-nt-line: #343060;
    --k-off: #ff8a8a;
    --k-off-bg: #2a1515;
    --k-tile: 16%;
    --k-tile-line: 40%;
    --k-tile-done: 8%;
  }
}

/* ==========================================================================
   Wspólne komponenty i strona publiczna (STRONA)
   ========================================================================== */

/* ---------- 1. Plakietki stanu (.aj-slot, .aj-badge, .aj-navbadge) ----------
   Tło i ramka w pastelu stanu, tekst dalej #111, kropka bez zmian. Zamknięte,
   pełne, po zajęciach i ghost zostają neutralne. Ten sam znacznik stoi w zapisie
   (.ajr-g__b) i w strefie rodzica (Zaplanowane, Obecność odhaczona, Opłacone:
   też zielone, bo znaczą "w porządku"). Panel /basen ma własne reguły
   (.aj-panel-body .aj-slot, wyższa specyficzność) i tej warstwy nie bierze.
   Stałe etykiety funkcji ("Zapisy online": .aj-badge--new, .aj-navbadge) zostają
   białe: to nie zmienny stan, a obok koloru miejsca zlewały się w jedną miętę. */
:where(html:not(.aj-kolor-off)) .aj-slot--open,
:where(html:not(.aj-kolor-off)) .aj-badge--open {
  border-color: var(--c-ok-line);
  background: var(--c-ok-bg);
}

:where(html:not(.aj-kolor-off)) .aj-slot--last,
:where(html:not(.aj-kolor-off)) .aj-slot[data-aj-state^="last"],
:where(html:not(.aj-kolor-off)) .aj-badge--warn {
  border-color: var(--c-warn-line);
  background: var(--c-warn-bg);
}

/* ---------- Kolor lokalizacji: jeden klucz dla haków data-loc i stałych id ---------- */
:where(html:not(.aj-kolor-off)) :is([data-loc="bukowina-tatrzanska"], .aj-htile[aria-labelledby="aj-htile-buk"], #zajecia-grupowe.aj-prices__col) {
  --k-loc: var(--k-buk);
  --k-loc-bg: var(--k-buk-bg);
  --k-loc-line: var(--k-buk-line);
}

:where(html:not(.aj-kolor-off)) :is([data-loc="nowy-targ"], .aj-htile[aria-labelledby="aj-htile-nt"], #indywidualne.aj-prices__col) {
  --k-loc: var(--k-nt);
  --k-loc-bg: var(--k-nt-bg);
  --k-loc-line: var(--k-nt-line);
}

/* ---------- 2. Mega menu i szuflada: kafelek ikony lokalizacji ---------- */
:where(html:not(.aj-kolor-off)) .aj-mega__card[data-loc] .aj-mega__ico,
:where(html:not(.aj-kolor-off)) .aj-drawer__loccard[data-loc] .aj-drawer__locico {
  border-color: var(--k-loc-line);
  background: var(--k-loc-bg);
  color: var(--k-loc);
}

/* ---------- 3, 4, 7. Znak lokalizacji na kartach ----------
   Pasek 3 px u góry karty (kafle w hero, kolumny cennika, duże karty basenów),
   a w kontakcie krótka kreska przy kontekście (Robert, obie lokalizacje, bez).
   Celowo nie kropka: w tych kartach stoi zielona kropka stanu ("Zapisy online",
   "Zapisy otwarte") i turkusowa kropka obok niej czytała się jak drugi stan.
   Nazwa miejsca zawsze stoi obok, tła kart zostają białe. Pasek jest pozycjonowany
   absolutnie, więc nie zmienia wymiarów karty. */
:where(html:not(.aj-kolor-off)) .aj-htile[aria-labelledby],
:where(html:not(.aj-kolor-off)) .aj-prices__col[id],
:where(html:not(.aj-kolor-off)) .aj-where__card[data-loc] {
  position: relative;
}

:where(html:not(.aj-kolor-off)) .aj-htile[aria-labelledby] {
  overflow: hidden;
}

/* Karty ze zdjęciem: pasek na dolnej krawędzi kadru, bo u góry ginął na
   turkusowej wodzie. Bez zdjęcia: u góry karty. */
:where(html:not(.aj-kolor-off)) .aj-where__card[data-loc] .aj-where__media {
  position: relative;
}

:where(html:not(.aj-kolor-off)) .aj-htile[aria-labelledby]::before,
:where(html:not(.aj-kolor-off)) .aj-prices__col[id]::before,
:where(html:not(.aj-kolor-off)) .aj-loc[data-loc]:not(:has(> .aj-loc__media))::before,
:where(html:not(.aj-kolor-off)) .aj-where__card[data-loc]:not(:has(> .aj-where__media))::before,
:where(html:not(.aj-kolor-off)) .aj-loc[data-loc] > .aj-loc__media::after,
:where(html:not(.aj-kolor-off)) .aj-where__card[data-loc] > .aj-where__media::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--k-loc);
  pointer-events: none;
}

:where(html:not(.aj-kolor-off)) .aj-loc[data-loc] > .aj-loc__media::after,
:where(html:not(.aj-kolor-off)) .aj-where__card[data-loc] > .aj-where__media::after {
  top: auto;
  bottom: 0;
  /* Biała kreska nad paskiem: pasek leży optycznie na bieli, nie ginie na wodzie. */
  box-shadow: 0 -2px 0 var(--c-bg);
}

/* Kreska wisi w lewym odstępie wiersza: nazwa nie przesuwa się i nie łamie. */
:where(html:not(.aj-kolor-off)) .aj-contacts__row[data-loc] .aj-contacts__ctx {
  position: relative;
}

:where(html:not(.aj-kolor-off)) .aj-contacts__row[data-loc] .aj-contacts__ctx::before {
  content: "";
  position: absolute;
  top: 0.3em;
  left: -9px;
  width: 3px;
  height: 0.85em;
  border-radius: 2px;
  background: var(--k-loc);
}

/* ---------- 5. Podpowiedzi "jak się zapisać" i notka z (i) ---------- */
:where(html:not(.aj-kolor-off)) .aj-lp-book {
  border-color: var(--k-info-line);
  background: var(--k-info-bg);
}

:where(html:not(.aj-kolor-off)) .aj-note--soft:has(> .aj-i--info) {
  border-color: var(--k-info-line);
  background: var(--k-info-bg);
}

:where(html:not(.aj-kolor-off)) .aj-note--soft > .aj-i--info {
  color: var(--k-info);
}

/* ---------- 6. Harmonogram Bukowiny: dni bez zajęć w tonie przerwy ----------
   Dni zajęć zostają czarne. Skos i legenda niosą znaczenie, kolor je wzmacnia. */
:where(html:not(.aj-kolor-off)) .aj-cal__grid .is-off .aj-cal__d,
:where(html:not(.aj-kolor-off)) .aj-cal__key.is-off {
  background: var(--k-off-bg);
}

:where(html:not(.aj-kolor-off)) .aj-cal__grid .is-off .aj-cal__d::after,
:where(html:not(.aj-kolor-off)) .aj-cal__key.is-off::after {
  border-top-color: var(--k-off);
}

/* ---------- 8. Numery kroków, pusty koszyk, końcowe CTA: celowo neutralne ----------
   Jasny turkus marki byłby nie do odróżnienia od turkusu Bukowiny, a te
   miejsca to ozdoba bez informacji (CTA stoi też na końcu /nowy-targ/, koszyk
   służy głównie voucherom). Zostają szare jak w DESIGN.md. */

/* ---------- 9. Karta grupy: wybrana godzina ----------
   Zaznaczenie w systemie jest czarne: ramka #111 zamiast #eaeaea, bez nowego
   koloru. Stanu miejsc per godzina tu nie ma (PHP i cache). */
:where(html:not(.aj-kolor-off)) .aj-vswitch--slots .aj-vswitch__item[aria-current="page"] {
  border-color: var(--c-fg);
}
