/* ==========================================================================
   Dni wolne od szkoły - /dni-wolne-od-szkoly/
   (page-dni-wolne-od-szkoly.php, inc/dni-wolne-od-szkoly.php, assets/js/dni-wolne-od-szkoly.js)
   Kolory kategorii dni z palety kalendarza szkolnego (--szk-* w main.css), tabele, kafelki
   liczb, FAQ i ramka .ics - wspólne klasy z podstron odliczania (.kal-odl-*, .kal-szkolny-*).
   ========================================================================== */

.kal-dws {
  --dws-swieto: var(--szk-swieto);
  --dws-przerwa: var(--szk-przerwa);
  --dws-ferie: var(--szk-ferie);
  --dws-wakacje: var(--szk-wakacje);
  --dws-dyr: var(--szk-egzamin);
  --dws-den: #B07D1A;
  --dws-weekend: #EEEAE0;
}

/* Znacznik kategorii przed nazwą dnia (tabela, listy miesięcy) */
.kal-dws-znacznik {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--szk-nauka);
  vertical-align: 1px;
}
.kal-dws-znacznik--swieto { background: var(--dws-swieto); }
.kal-dws-znacznik--swieto-weekend { background: transparent; border: 2px solid var(--dws-swieto); }
.kal-dws-znacznik--przerwa { background: var(--dws-przerwa); }
.kal-dws-znacznik--ferie { background: var(--dws-ferie); }
.kal-dws-znacznik--wakacje { background: var(--dws-wakacje); }
.kal-dws-znacznik--dyrektorski { background: repeating-linear-gradient(135deg, var(--dws-dyr) 0 2px, #fff 2px 4px); border: 1px solid var(--dws-dyr); }
.kal-dws-znacznik--den { background: var(--dws-den); }

/* ---------- Ramka „teraz”: dziś, jutro, najbliższe wolne ---------- */

.kal-dws-teraz {
  margin: 28px 0 40px;
  padding: 24px 28px;
  background: #fff;
  border: 1px solid var(--kal-line);
  border-top: 4px solid var(--kal-brass);
  border-radius: 10px;
}
.kal-dws-teraz__gora {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: flex-end;
  justify-content: space-between;
}
.kal-dws-teraz h2 { margin: 0; }
.kal-dws-woj { display: flex; flex-direction: column; gap: 4px; min-width: 240px; }
.kal-dws-woj__etykieta { font-family: var(--kal-font-mono); font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--kal-ink-soft); }
.kal-dws-woj select {
  padding: 9px 12px;
  border: 1px solid var(--kal-line);
  border-radius: var(--kal-radius);
  background: #fff;
  font: inherit;
  color: var(--kal-ink);
}

.kal-dws-teraz__dni {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0 0;
}
.kal-dws-dzien {
  --dzien-kolor: var(--szk-nauka);
  --dzien-tlo: var(--szk-nauka-tlo);
  --dzien-tekst: var(--szk-nauka-tekst);
  padding: 16px 18px;
  background: var(--dzien-tlo);
  border-left: 5px solid var(--dzien-kolor);
  border-radius: 8px;
}
.kal-dws-dzien--wolne { --dzien-kolor: var(--szk-wakacje); --dzien-tlo: var(--szk-wakacje-tlo); --dzien-tekst: var(--szk-wakacje-tekst); }
.kal-dws-dzien--moze { --dzien-kolor: var(--szk-przerwa); --dzien-tlo: var(--szk-przerwa-tlo); --dzien-tekst: var(--szk-przerwa-tekst); }
.kal-dws-dzien__pytanie { margin: 0; font-size: 0.95rem; color: var(--dzien-tekst); }
.kal-dws-dzien__data { margin: 2px 0 0; font-size: 0.85rem; color: var(--kal-ink-soft); }
.kal-dws-dzien__odp {
  margin: 8px 0 0;
  font-family: var(--kal-font-display);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.15;
  color: var(--dzien-kolor);
}
.kal-dws-dzien__opis { margin: 4px 0 0; font-size: 0.9rem; line-height: 1.45; color: var(--dzien-tekst); }

/* Lista najbliższych dni wolnych */
.kal-dws-nl { list-style: none; margin: 18px 0 0; padding: 0; }
.kal-dws-nl__poz {
  --nl-kolor: var(--szk-nauka);
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 11px 0 11px 14px;
  border-left: 4px solid var(--nl-kolor);
  border-bottom: 1px dashed var(--kal-line);
}
.kal-dws-nl__poz:last-child { border-bottom: none; }
.kal-dws-nl__poz--swieto { --nl-kolor: var(--dws-swieto); }
.kal-dws-nl__poz--przerwa { --nl-kolor: var(--dws-przerwa); }
.kal-dws-nl__poz--ferie { --nl-kolor: var(--dws-ferie); }
.kal-dws-nl__poz--wakacje { --nl-kolor: var(--dws-wakacje); }
.kal-dws-nl__poz--dyrektorski { --nl-kolor: var(--dws-dyr); border-left-style: dashed; }
.kal-dws-nl__poz--den { --nl-kolor: var(--dws-den); }
.kal-dws-nl__kiedy {
  font-family: var(--kal-font-mono);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--nl-kolor);
  white-space: nowrap;
}
.kal-dws-nl__tresc { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
.kal-dws-nl__data { font-family: var(--kal-font-display); font-weight: 600; color: var(--kal-navy); }
.kal-dws-nl__nazwa { color: var(--kal-ink); }
a.kal-dws-nl__nazwa { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(166, 135, 59, 0.6); }
a.kal-dws-nl__nazwa:hover { color: var(--kal-brass); }
.kal-dws-nl__opis { flex-basis: 100%; font-size: 0.84rem; color: var(--kal-ink-soft); }
.kal-dws-teraz__przypis { margin: 14px 0 0; font-size: 0.82rem; line-height: 1.5; color: var(--kal-ink-soft); }

@media (max-width: 700px) {
  .kal-dws-teraz { padding: 18px 16px; }
  .kal-dws-woj { min-width: 0; width: 100%; }
  .kal-dws-teraz__dni { grid-template-columns: 1fr; }
  .kal-dws-dzien__odp { font-size: 1.35rem; }
  .kal-dws-nl__poz { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- Tabela wszystkich dni wolnych ---------- */

.kal-dws-tabela__opis { display: block; margin-top: 3px; font-size: 0.82rem; line-height: 1.45; color: var(--kal-ink-soft); }
.kal-dws-tabela th[scope="row"], .kal-dws-tabela td:nth-child(2) { white-space: nowrap; }
.kal-dws-tabela td:nth-child(3) { min-width: 280px; }
.kal-dws-tabela td:nth-child(4) { min-width: 150px; font-size: 0.88rem; }
.kal-dws-wiersz--swieto-weekend th, .kal-dws-wiersz--swieto-weekend td { color: var(--kal-ink-soft); }
.kal-dws-wiersz--dyrektorski { background: repeating-linear-gradient(135deg, rgba(106, 85, 168, 0.05) 0 8px, transparent 8px 16px) !important; }
.kal-odl-tabela tr.is-minione th, .kal-odl-tabela tr.is-minione td { opacity: 0.5; }
.kal-odl-tabela tr.is-teraz { background: rgba(46, 138, 106, 0.10) !important; }
.kal-odl-tabela tr.is-teraz th::after { content: ' · trwa'; font-size: 0.8rem; color: var(--szk-wakacje-tekst); }
.kal-odl-tabela tr.is-inna-tura th, .kal-odl-tabela tr.is-inna-tura td { opacity: 0.4; }
.kal-odl-tabela tr.is-twoja-tura { background: var(--szk-ferie-tlo) !important; }
/* Telefon: wiersz tabeli jako karta (termin, dzień tygodnia, nazwa z opisem, kto ma wolne) */
@media (max-width: 700px) {
  .kal-dws-tabela thead { display: none; }
  .kal-dws-tabela, .kal-dws-tabela tbody, .kal-dws-tabela tr, .kal-dws-tabela th, .kal-dws-tabela td { display: block; width: auto; min-width: 0 !important; }
  .kal-dws-tabela tr { padding: 12px 14px; border-bottom: 1px solid var(--kal-line); }
  .kal-dws-tabela tbody tr:last-child { border-bottom: none; }
  .kal-dws-tabela th, .kal-dws-tabela td { padding: 0; border: none; white-space: normal !important; }
  .kal-dws-tabela th[scope="row"] { display: inline; }
  .kal-dws-tabela td:nth-child(2) { display: inline; margin-left: 6px; font-size: 0.85rem; color: var(--kal-ink-soft); }
  .kal-dws-tabela td:nth-child(2)::before { content: '· '; }
  .kal-dws-tabela td:nth-child(3) { margin-top: 4px; }
  .kal-dws-tabela td:nth-child(4) { margin-top: 4px; font-size: 0.82rem; color: var(--kal-ink-soft); }
  .kal-dws-tabela td:nth-child(4)::before { content: 'Kto ma wolne: '; font-weight: 600; }
}

/* ---------- Miesiąc po miesiącu ---------- */

.kal-dws-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.82rem;
  color: var(--kal-ink-soft);
}
.kal-dws-legenda li { display: inline-flex; align-items: center; gap: 6px; }
.kal-dws-legenda__pole { display: inline-block; width: 16px; height: 16px; border-radius: 4px; border: 1px solid var(--kal-line); }

.kal-dws-miesiace {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
  gap: 14px;
  margin-top: 16px;
}
.kal-dws-mies {
  padding: 16px 16px 14px;
  background: var(--kal-paper-raised);
  border: 1px solid var(--kal-line);
  border-radius: 8px;
}
.kal-dws-mies h3 { margin: 0 0 10px; font-size: 1.05rem; }
.kal-dws-siatka {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 3px;
  font-variant-numeric: tabular-nums;
}
.kal-dws-siatka__nd {
  padding-bottom: 2px;
  font-family: var(--kal-font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  text-align: center;
  color: var(--kal-ink-soft);
}
.kal-dws-dz {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  border-radius: 5px;
  font-size: 0.78rem;
  color: var(--kal-ink);
  background: #fff;
  border: 1px solid #ECE8DD;
}
.kal-dws-dz--we { background: var(--dws-weekend); border-color: var(--dws-weekend); color: var(--kal-ink-soft); }
.kal-dws-dz--wak { background: var(--szk-wakacje-tlo); border-color: var(--szk-wakacje-tlo); color: var(--szk-wakacje-tekst); }
.kal-dws-dz--sw { background: var(--dws-swieto); border-color: var(--dws-swieto); color: #fff; font-weight: 700; }
.kal-dws-dz--pr { background: var(--dws-przerwa); border-color: var(--dws-przerwa); color: #fff; font-weight: 700; }
.kal-dws-dz--den { background: var(--dws-den); border-color: var(--dws-den); color: #fff; font-weight: 700; }
.kal-dws-dz--dyr { background: repeating-linear-gradient(135deg, var(--szk-egzamin-tlo) 0 4px, #fff 4px 8px); border-color: var(--dws-dyr); color: var(--szk-egzamin-tekst); font-weight: 700; }
/* Ferie: bez województwa wszystkie tury jasnym kreskowaniem, po wyborze - tylko tura województwa */
.kal-dws-dz--fe { background: repeating-linear-gradient(135deg, var(--szk-ferie-tlo) 0 4px, #fff 4px 8px); border-color: #BCD0E8; color: var(--szk-ferie-tekst); }
.kal-dws[data-tura] .kal-dws-dz--fe { background: #fff; border-color: #ECE8DD; color: var(--kal-ink); }
.kal-dws[data-tura] .kal-dws-dz--fe.kal-dws-dz--we { background: var(--dws-weekend); border-color: var(--dws-weekend); color: var(--kal-ink-soft); }
.kal-dws[data-tura="1"] .kal-dws-dz.kal-dws-dz--fe.kal-dws-dz--fe-t1,
.kal-dws[data-tura="2"] .kal-dws-dz.kal-dws-dz--fe.kal-dws-dz--fe-t2,
.kal-dws[data-tura="3"] .kal-dws-dz.kal-dws-dz--fe.kal-dws-dz--fe-t3,
.kal-dws[data-tura="4"] .kal-dws-dz.kal-dws-dz--fe.kal-dws-dz--fe-t4 { background: var(--dws-ferie); border-color: var(--dws-ferie); color: #fff; font-weight: 700; }
.kal-dws .kal-dws-legenda__pole.kal-dws-dz--fe { background: var(--dws-ferie); border-color: var(--dws-ferie); }
.kal-dws-dz.is-minione { opacity: 0.45; }
.kal-dws-dz.is-dzis { outline: 2px solid var(--szk-dzis); outline-offset: 1px; opacity: 1; }

.kal-dws-mies__nauka { margin: 10px 0 0; font-size: 0.86rem; color: var(--kal-ink-soft); }
.kal-dws-mies__nauka strong { font-family: var(--kal-font-display); font-size: 1.05rem; color: var(--kal-navy); }
.kal-dws-mies__lista { list-style: none; margin: 8px 0 0; padding: 8px 0 0; border-top: 1px solid var(--kal-line); font-size: 0.84rem; line-height: 1.45; }
.kal-dws-mies__poz { display: flex; gap: 2px; padding: 3px 0; }
.kal-dws-mies__poz .kal-dws-znacznik { flex: none; margin-top: 5px; }
.kal-dws-mies__poz strong { color: var(--kal-navy); }
.kal-dws-mies__poz--swieto-weekend { color: var(--kal-ink-soft); }
.kal-dws[data-tura="1"] .kal-dws-mies__poz[data-tura]:not([data-tura="1"]),
.kal-dws[data-tura="2"] .kal-dws-mies__poz[data-tura]:not([data-tura="2"]),
.kal-dws[data-tura="3"] .kal-dws-mies__poz[data-tura]:not([data-tura="3"]),
.kal-dws[data-tura="4"] .kal-dws-mies__poz[data-tura]:not([data-tura="4"]) { display: none; }
.kal-dws-mies__brak { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--kal-line); font-size: 0.84rem; color: var(--kal-ink-soft); }

/* ---------- Dni dyrektorskie ---------- */

.kal-dws-dyr { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.kal-dws-dyr__poz {
  padding: 14px 18px;
  background: repeating-linear-gradient(135deg, rgba(106, 85, 168, 0.05) 0 8px, #fff 8px 16px);
  border: 1px solid var(--kal-line);
  border-left: 4px dashed var(--dws-dyr);
  border-radius: 8px;
}
.kal-dws-dyr__poz.is-minione { opacity: 0.55; }
.kal-dws-dyr__termin { margin: 0; font-family: var(--kal-font-display); font-weight: 700; color: var(--kal-navy); }
.kal-dws-dyr__termin span { margin-left: 8px; font-family: var(--kal-font-body); font-size: 0.82rem; font-weight: 600; color: var(--szk-egzamin-tekst); }
.kal-dws-dyr__opis { margin: 4px 0 0; font-size: 0.88rem; line-height: 1.5; color: var(--kal-ink-soft); }

/* ---------- .ics i druk ---------- */

.kal-dws-druk-link { font-size: 0.9rem; text-align: center; color: var(--kal-navy); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(166, 135, 59, 0.6); }

@media print {
  .kal-dws-teraz, .kal-szkolny-ics, .kal-odl-karty { display: none; }
  .kal-dws-mies { break-inside: avoid; }
}
