/* theme/calendar.css – v9.final
   • 4–5 rzędów (bez 6)
   • Jedna obwódka tylko na „pill”
   • Kolory i pastelowe tła jak w propagacji (wzmocnione)
   • DOW bez ramek (jak „Dzień/Noc”)
   • Tytuł miesiąca wycentrowany, hover tylko na „pillu”
*/

:root{
  --ekf-border:#e5e7eb;
  --ekf-neutral:#f6f7fb;

  /* kolory bazowe jak w propagacji */
  --good-text:#0a7a4b; --good-bg:#f3faf6; --good-br:#cfe9dc;   /* egzamin */
  --fair-text:#8a6d3b; --fair-bg:#fdf9f0; --fair-br:#e9dec5;   /* meet (opcjonalnie) */
  --poor-text:#a61b1b; --poor-bg:#fff5f5; --poor-br:#efc5c5;   /* zawody */
  --today:#F4D58D;

  /* wzmocnione pastele + separator MIX (jak v9.2) */
  --mix-sep:#b7bec8;
  --good-bg-strong:#E2F1EA;
  --good-br-strong:#B9E6D3;
  --poor-bg-strong:#FFE1E1;
  --poor-br-strong:#F1B5B5;
}

/* KARTA */
.mini-cal.card{
  background:#fff; border:1px solid var(--ekf-border); border-radius:18px;
  box-shadow:var(--ekf-shadow,0 10px 30px rgba(0,0,0,.08));
  padding:12px; box-sizing:border-box;
}

/* NAGŁÓWEK (tytuł pośrodku, strzałki po bokach) */
.mini-cal .cal-header{ display:block; margin-bottom:8px; }
.mini-cal .cal-nav{
  width:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr;  /* [←] [tytuł] [→] */
  align-items:center; column-gap:16px;
}
.mini-cal .cal-nav strong{
  justify-self:center; text-align:center; white-space:nowrap; padding:0 8px;
  font-weight:600; color:var(--brand); text-shadow:1px 1px 2px rgba(0,0,0,.15);
}
.btn.btn-xs{
  padding:6px 6px; border-radius:12px; border:1px solid var(--ekf-border);
  background:#fff; color:#111; text-decoration:none; line-height:1;
}
.btn.btn-xs:hover{ background:#f6f7fb }
.mini-cal .cal-nav .btn.btn-xs:first-child{ justify-self:start; }
.mini-cal .cal-nav .btn.btn-xs:last-child { justify-self:end;   }

/* DOW (jak „Dzień/Noc”) */
.cal-dow{
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px; margin-bottom:6px;
}
.cal-dow .item{ font-size:12px; color:#6b7280; font-weight:500; text-align:center; }

/* SIATKA DNI (7 kolumn, 4–5 rzędów) — rytm spójny z propagacją */
.cal-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px 8px; }
.cal-cell{
  min-height:34px; display:flex; align-items:center; justify-content:center;
  border-radius:12px; background:transparent;
}
.cal-cell.empty{ visibility:hidden; }
a.cal-cell{ color:inherit; text-decoration:none; }

/* PILL (jedyna obwódka/kolor) */
.day .pill{
  display:inline-flex; align-items:center; justify-content:center;
  height:22px; padding:1px 8px;
  min-width:34px; max-width:100%;
  border-radius:8px; line-height:1; white-space:nowrap;
  background:#f7f8f9; border:1px solid var(--ekf-border); color:#111;
}

/* KOLORY WG KATEGORII */
.day.exam   .pill{ background:var(--good-bg-strong);  border-color:var(--good-br-strong);  color:var(--good-text); }
.day.contest .pill{ background:var(--poor-bg-strong);  border-color:var(--poor-br-strong);  color:var(--poor-text); }
.day.meet    .pill{ background:var(--fair-bg);          border-color:var(--fair-br);         color:var(--fair-text); }

/* MIX (exam + contest) — przekątna + separator */
.day.exam.contest .pill{
  background:
    linear-gradient(135deg,
      transparent calc(50% - 1px),
      var(--mix-sep) calc(50% - 1px) calc(50% + 1px),
      transparent calc(50% + 1px)
    ),
    linear-gradient(135deg, var(--good-bg-strong) 0 50%, var(--poor-bg-strong) 50% 100%);
  border-color:var(--poor-br-strong); color:#111;
}
/* 3 kategorie (rzadko) — pasy pionowe + separator */
.day.exam.contest.meet .pill{
  background:
    linear-gradient(135deg,
      transparent calc(50% - 1px),
      var(--mix-sep) calc(50% - 1px) calc(50% + 1px),
      transparent calc(50% + 1px)
    ),
    linear-gradient(to bottom, var(--good-bg-strong) 0 33.34%,
                               var(--poor-bg-strong) 33.34% 66.67%,
                               var(--fair-bg) 66.67% 100%);
  border-color:var(--poor-br-strong); color:#111;
}

/* DZIŚ – żółta obwódka (na pillu) + bold */
.day.today .pill{ outline:3px solid var(--today); outline-offset:2px; font-weight:800; }

/* INTERAKCJE — bez dużego kwadratu; lekki hover tylko na pillu */
.cal-cell:hover{ background:transparent; }
.cal-cell:focus-within{ box-shadow:none; }
.cal-cell:hover .pill{ filter:brightness(.98); }
.day:focus-visible{ outline:none; }
.day:focus-visible .pill{ outline:2px solid var(--today); outline-offset:2px; border-radius:8px; }

/* LEGENDKA (jak w propagacji) */
.cal-legend{
  display:flex; flex-wrap:wrap; gap:8px 12px;
  margin-top:8px; font-size:12px; color:#6b7280;
}
.cal-legend .item{ display:flex; align-items:center; gap:6px }
.cal-legend .pill{
  display:inline-flex; align-items:center; justify-content:center;
  height:20px; padding:0 8px; border-radius:6px;
  border:1px solid var(--ekf-border); background:#f7f8f9; color:#111;
  line-height:1; font-weight:600;
}
.cal-legend .pill--exam   { background:var(--good-bg-strong); border-color:var(--good-br-strong); color:var(--good-text); }
.cal-legend .pill--contest{ background:var(--poor-bg-strong); border-color:var(--poor-br-strong); color:var(--poor-text); }
.cal-legend .pill--mix{
  background:
    linear-gradient(135deg, transparent calc(50% - 1px), var(--mix-sep) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(135deg, var(--good-bg-strong) 0 50%, var(--poor-bg-strong) 50% 100%);
  border-color:var(--poor-br-strong);
}

/* MOBILE */
@media (max-width:900px){
  .cal-dow{ gap:6px; margin-bottom:4px; }
  .cal-grid{ gap:4px 6px; }
  .cal-cell{ min-height:32px; }
  .day .pill{ height:20px; padding:1px 6px; }
}

/* === MINI-CALENDAR — FIX: odstęp między wierszami (bez ruszania pilla) === */

/* Zmniejszamy *wyłącznie* przerwę między rzędami:
   - row-gap: 2px (przerwa siatki)
   - min-height komórki: 26px (pilla nie ruszamy: 22px)
   To daje wizualnie ~6 px między pillami (2 px gap + 2 px górą + 2 px dołem). */
.mini-cal .cal-grid{ row-gap:6px !important; column-gap:8px !important; }
.mini-cal .cal-cell{ min-height:26px !important; }

/* Pilla zostawiamy na 22 px — zero zmian w środku. Daję tylko !important,
   żeby nadpisać wcześniejsze łatki, ale bez zmiany wartości. */
.mini-cal .day .pill{ height:22px !important; padding:1px 8px !important; }

/* (opcjonalnie) jeśli chcesz ~8 px między wierszami jak w „Warunki na pasmach”,
   użyj zamiast 26px -> 28px: */
/* .mini-cal .cal-cell{ min-height:28px !important; } */

/* === MINI KALENDARZ: numer dnia + kropki kategorii === */
.mini-cal .cal-grid .day .pill{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-width:28px;      /* w razie ciasnoty powiększymy się w pionie */
  min-height:28px;     /* daje miejsce na kropki */
  line-height:1;
  font-size:13px;      /* mniejsza czcionka w dniu */
  padding:2px 8px;
}
.mini-cal .cal-grid .day .pill .num{ line-height:1; }
.mini-cal .cal-grid .day .pill .dots{
  display:flex;
  gap:3px;
  height:6px;          /* rezerwuje minimalne miejsce na rząd kropek */
  align-items:flex-end;
}

/* Kropki: domyślny wygląd + kolory kategorii */
.mini-cal .cal-grid .day .pill .dot{
  width:6px; height:6px;
  border-radius:50%;
  display:inline-block;
}

/* Kolory (spójne z paletą) */
.mini-cal .cal-grid .day .pill .dot-exam    { background:#2e7d32; }  /* zielony */
.mini-cal .cal-grid .day .pill .dot-contest { background:#BF0603; }  /* czerwony */
.mini-cal .cal-grid .day .pill .dot-award   { background:#F4D58D; border:1px solid #bfa44c; } /* żółty z delikatną ramką */
.mini-cal .cal-grid .day .pill .dot-meet    { background:#8dc5fa; }  /* granat/niebieski */

/* Legenda: nowe pille */
.mini-cal .cal-legend .pill--award{
  background:#FFF6D8;   /* jaśniejsze tło żółte */
  border:1px solid #F4D58D;
  color:#111;
}

/* --- MINI KALENDARZ: stała szerokość dnia + mniejsza czcionka + kropki --- */
.mini-cal .cal-grid {
  display: grid;                /* na wszelki wypadek */
  grid-template-columns: repeat(7, 1fr);
  gap: 14px 14px;               /* WIĘKSZE odstępy (H x V) */
}

.mini-cal .cal-grid .cal-cell.day {
  display: flex;
  justify-content: center;
  align-items: center;
}

.mini-cal .cal-grid .day .pill{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 100%;                  /* STAŁA szerokość = wszystkie równe */
  min-height: 30px;             /* rośnie w pionie, gdy są kropki */
  padding: 2px 6px;
  line-height: 1;
  font-size: 12px;              /* trochę mniejszy numer dnia */
  box-sizing: border-box;
}

.mini-cal .cal-grid .day .pill .dots{
  display: flex;
  gap: 3px;
  height: 6px;                  /* rezerwuje miejsce na rząd kropek */
  align-items: flex-end;
}

.mini-cal .cal-grid .day .pill .dot{
  width: 6px; height: 6px;
  border-radius: 50%;
  display: inline-block;
}

/* Kolory kropek (bez zmian, tylko przypomnienie) */
.mini-cal .cal-grid .day .pill .dot-exam    { background:#2e7d32; }
.mini-cal .cal-grid .day .pill .dot-contest { background:#BF0603; }
.mini-cal .cal-grid .day .pill .dot-award   { background:#F4D58D; border:1px solid #bfa44c; }
.mini-cal .cal-grid .day .pill .dot-meet    { background:#00305c; } /* NIEBIESKI / granat */

/* --- LEGENDA: Spotkania na niebiesko --- */
.mini-cal .cal-legend .pill--meet{
  background:#8dc5fa;           /* pełny niebieski */
  border:1px solid #00305c;
  color:#2400a5;
}
/* ON AIR */
@keyframes onair-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(191,6,3,.15), 0 0 10px rgba(191,6,3,.45); }
  50%      { box-shadow: 0 0 0 3px rgba(191,6,3,.25), 0 0 16px rgba(191,6,3,.75); }
}
.onair-badge { animation: onair-pulse 1.6s ease-in-out infinite; }