/* =========================   KALENDARZ - STYLE PODSTAWOWE========================= */.calendar-heading-section h1,.calendar-heading-section p {  color: #333; /* Dostosuj, jeśli nagłówki mają mieć inny kolor na tle Twojej strony */}.calendar-container {  width: 100% !important;  margin: 0 auto;  border-radius: 5px;  /* Usunięto box-shadow i background-color: #fff; aby kalendarz nie był na białej karcie */  /* box-shadow: 0 0 8px rgba(0,0,0,0.1); */  /* background-color: #fff; */}.calendar-outer {  position: relative;  width: 100%; /* Zmieniono z 99% na 100% dla lepszego dopasowania */  margin: 0 auto;  overflow: hidden;  height: auto;  min-height: 590px; /* Możesz dostosować lub usunąć jeśli niepotrzebne */}.inner-calendar-container {  display: flex;  flex-wrap: nowrap;  justify-content: center;  align-items: flex-start;  position: absolute;  top: 0;  left: 0;  width: 100%;  margin: 0 auto;  transition: transform 1.0s ease;}/* Animacje przesuwania tygodni */.slide-out-left {  transform: translateX(-100%);}.slide-in-right {  transform: translateX(100%);}.slide-out-right {  transform: translateX(100%);}.slide-in-left {  transform: translateX(-100%);}/* Kolumny dni i nagłówki */.day-column {  flex: 0 0 calc((100% / 7) - 4px);  background-color: rgba(250, 250, 250, 0.8); /* Lekko przezroczyste tło, dostosuj */  border: 1px solid #eee;  border-radius: 4px;  margin: 2px;  box-sizing: border-box;  text-align: center;}.day-header {  background-color: #572a1b; /* Twój kolor akcentu */  color: #fff;  padding: 8px;  font-weight: normal;  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  border-radius: 4px 4px 0 0;}.day-header div:first-child {  margin-bottom: 4px;  font-size: 0.95rem;}.day-header div:last-child {  font-size: 0.85rem;}.day-header.today {  background-color: #e5ded8;  color: black;  /* Ciemniejszy odcień Twojego koloru akcentu */  border: 1px solid #572a1b;}/* Sloty godzinowe (jako przyciski) */.time-slot {  appearance: none;  -webkit-appearance: none;  -moz-appearance: none;  background: none;  border: none;  padding: 0;  margin: 0;  font-family: inherit;  font-size: inherit;  color: inherit;  text-align: center;  cursor: pointer;  display: block;  width: 100%;  box-sizing: border-box;  border-bottom: 1px solid #eee;  padding: 5px;  padding-top:10px;  padding-bottom:10px;  font-size: 0.9rem;  transition: background-color 0.2s ease, color 0.2s ease;}.time-slot.available {  background-color: #fff; /* Możesz chcieć, aby dostępne sloty miały inne tło niż kolumna dnia */  color: #333;}.time-slot.available:hover {  background-color: rgba(87, 42, 27, 0.1); /* Jasny odcień Twojego koloru akcentu przy najechaniu */}.time-slot.booked-unavailable, /* Blokada przez system */.time-slot.booked, /* Zajęte przez pacjenta */.time-slot.booked-ms { /* Potencjalnie inny typ blokady z przykładu, ujednolicony */  background-color: #d3d3d3;  color: #5f5f5f; /* Ciemniejszy tekst na szarym tle dla czytelności */  cursor: not-allowed;  text-decoration: line-through; /* Opcjonalne przekreślenie */}.time-slot:disabled { /* Style dla zablokowanych/zajętych slotów, które są <button disabled> */  background-color: #e0e0e0; /* Jaśniejszy szary niż .booked */  color: #757575;  cursor: not-allowed;  text-decoration: line-through;}.time-slot:disabled:hover {   background-color: #e0e0e0; /* Bez zmiany hover dla disabled */}.time-slot:focus-visible {  outline: 3px solid #572a1b; /* Twój kolor akcentu */  outline-offset: 1px;}/* Nawigacja tygodniowa */.navigation-row {  display: flex;  justify-content: space-between;  align-items: center; /* Dodane dla wyrównania przycisku "Odwołaj wizytę" */  margin: 10px 0;  padding: 0 5px; /* Minimalny padding, aby strzałki nie dotykały krawędzi */}.navigation-arrow {  font-size: 1.5rem; /* Rozmiar tekstu/ikony wewnątrz buttona */  cursor: pointer;  user-select: none;  color: #572a1b; /* Twój kolor akcentu */  padding: 0 5px; /* Zmniejszony padding */  transition: color 0.2s ease;}.navigation-arrow:hover {  color: #8c4a2f; /* Ciemniejszy odcień Twojego koloru akcentu */}.navigation-arrow button.week-nav-btn {  background: none;  border: 1px solid #572a1b; /* Ramka w Twoim kolorze akcentu */  font-size: 0.9rem; /* Dostosuj rozmiar czcionki przycisku */  color: #572a1b; /* Twój kolor akcentu */  cursor: pointer;  padding: 6px 12px;  border-radius: 4px;  transition: background-color 0.2s ease, color 0.2s ease;}.navigation-arrow button.week-nav-btn:hover {  background-color: #572a1b; /* Twój kolor akcentu */  color: #fff;}/* Przycisk "Odwołaj wizytę" */.cancel-visit-btn {  background-color: #572a1b; /* Ciemniejszy odcień Twojego koloru akcentu lub inny kolor */  border: none;  color: #fff;  padding: 8px 16px; /* Dopasuj padding */  border-radius: 4px;  font-size: 0.9rem; /* Dopasuj rozmiar czcionki */  cursor: pointer;  transition: background-color .2s ease;  margin: 0 10px; /* Marginesy, aby nie stykał się z przyciskami nawigacji */}.cancel-visit-btn:hover {  background-color: #e5ded8; /* Twój kolor akcentu */  color:black;  border: 1px solid #572a1b;}@media (max-width: 768px) {	.navigation-arrow button.week-nav-btn {  background: none;  border: 0px solid #572a1b; /* Ramka w Twoim kolorze akcentu */  font-size: 0.8rem; /* Dostosuj rozmiar czcionki przycisku */  color: #572a1b; /* Twój kolor akcentu */  cursor: pointer;  padding: 6px 12px;  border-radius: 4px;  transition: background-color 0.2s ease, color 0.2s ease;}.navigation-arrow button.week-nav-btn:hover {  background-color: #572a1b; /* Twój kolor akcentu */  color: #fff;}/* Przycisk "Odwołaj wizytę" */.cancel-visit-btn {  background-color: #572a1b; /* Ciemniejszy odcień Twojego koloru akcentu lub inny kolor */  border: none;  color: #fff;  padding: 6px 10px; /* Dopasuj padding */  border-radius: 4px;  font-size: 0.8rem; /* Dopasuj rozmiar czcionki */  cursor: pointer;  transition: background-color .2s ease;  margin: 0 10px; /* Marginesy, aby nie stykał się z przyciskami nawigacji */}.cancel-visit-btn:hover {  background-color: #e5ded8; /* Twój kolor akcentu */  color:black;  border: 1px solid #572a1b;}}/* =========================   MODALE I KOMUNIKATY========================= *//* Uniwersalny komunikat (toast) */.custom-message {  position: fixed;  top: 20px;  left: 50%;  transform: translateX(-50%);  color: #fff;  padding: 12px 22px; /* Zwiększony padding */  border-radius: 5px;  z-index: 11000;  transition: opacity 0.5s ease;  width: 90%;  max-width: 450px; /* Zwiększona maksymalna szerokość */  box-shadow: 0 2px 10px rgba(0,0,0,0.2); /* Dodany cień */  font-size: 1rem; /* Zwiększona czcionka */  text-align: center;}.custom-message.success {  background-color: #4CAF50;}.custom-message.error {  background-color: #E74C3C;}.custom-message.info {  background: #fffae6;  color: #333;  border-left: 4px solid #ffc107;  white-space: pre-line;}/* Okna dialogowe (potwierdzenia, formularze) */.confirmation-box,.reservation-form,.offer-modal { /* Zakładając, że polityka prywatności używa podobnego stylu modala */  position: fixed;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  background-color: #fff;  padding: 20px; /* Zwiększony padding */  border-radius: 8px; /* Bardziej zaokrąglone rogi */  box-shadow: 0 4px 15px rgba(0,0,0,0.25); /* Mocniejszy cień */  z-index: 10000; /* Upewnij się, że jest nad .custom-message jeśli to możliwe, lub dostosuj */  text-align: center;  width: 90%;  max-width: 480px; /* Zwiększona maksymalna szerokość */}/* Styl dla modala polityki prywatności - bardziej szczegółowe z przykładu */.offer-modal {  display: flex; /* Używane przez logikę pokazywania/ukrywania z opacity/visibility */  align-items: center;  justify-content: center;  opacity: 0;  visibility: hidden;  transition: opacity 0.4s ease, visibility 0.4s ease; /* Szybsza animacja */}.offer-modal.show {  opacity: 1;  visibility: visible;}.offer-modal-content {  background: #fff;  padding: 1.5rem; /* 24px */  border-radius: 8px;  max-width: 550px; /* Szerszy modal dla polityki */  width: 90%;  transform: translateY(-20px) scale(0.95); /* Subtelniejsza animacja wejścia */  opacity: 0;  transition: transform 0.4s ease, opacity 0.4s ease;  position: relative;  display: flex;  flex-direction: column;  max-height: 85vh;}.offer-modal.show .offer-modal-content {  transform: translateY(0) scale(1);  opacity: 1;}.offer-modal-close {  position: absolute;  top: 0.75rem; /* 12px */  right: 1rem;  /* 16px */  font-size: 1.75rem; /* Większy krzyżyk */  font-weight: bold;  color: #777;  background: none;  border: none;  cursor: pointer;  line-height: 1;  padding: 0.25rem 0.5rem; /* Dodany padding dla łatwiejszego kliknięcia */}.offer-modal-close:hover {  color: #333;}.offer-modal-title {  margin-top: 0;  margin-bottom: 1rem; /* Odstęp pod tytułem */  text-align: center;  font-size: 1.5rem; /* Większy tytuł modala */  color: #333;}.offer-modal-body {  margin-top: 1rem;  max-height: 60vh;  overflow-y: auto;  padding-right: 15px; /* Dla paska przewijania */  text-align: left;  font-size: 0.95rem;  line-height: 1.6;  flex-grow: 1;}.offer-modal-body ul {  margin-left: 20px;  margin-bottom: 1em;}.offer-modal-body li {  margin-bottom: 0.5em;}/* Pola formularza w modalach */.reservation-form .form-group {  margin-bottom: 1rem;  text-align: left;}.reservation-form label {  display: block;  margin-bottom: 0.3rem;  font-weight: bold;  color: #555;}.reservation-form input[type="text"],.reservation-form input[type="tel"],.reservation-form input[type="password"] { /* Dodane password dla spójności */  width: 100%;  padding: 10px;  border: 1px solid #ccc;  border-radius: 4px;  box-sizing: border-box;  font-size: 1rem;}.reservation-form input[type="checkbox"] {  margin-right: 0.5rem;  vertical-align: middle;}.reservation-form .consent-group label {  font-weight: normal;  font-size: 0.9rem;  display: inline;}.reservation-form .modal-link { /* Link wewnątrz modala np. do polityki prywatności */  color: #572a1b; /* Twój kolor akcentu */  text-decoration: underline;}.reservation-form .modal-link:hover {  color: #8c4a2f; /* Ciemniejszy odcień */}/* Przyciski w modalach */.modal-btn-container {  display: flex;  justify-content: center; /* Domyślnie, ale można zmienić na space-around itp. */  gap: 15px; /* Odstęp między przyciskami */  margin-top: 1.5rem; /* Większy odstęp od reszty treści */}.modal-btn {  background-color: #572a1b; /* Twój kolor akcentu */  border: none;  color: #fff;  padding: 10px 18px;  border-radius: 4px;  cursor: pointer;  font-size: 1rem; /* Spójny rozmiar czcionki */  transition: background-color 0.2s ease, box-shadow 0.2s ease;  box-shadow: 0 2px 3px rgba(0,0,0,0.1);}.modal-btn:hover {  background-color: #8c4a2f; /* Ciemniejszy odcień Twojego koloru akcentu */  box-shadow: 0 3px 5px rgba(0,0,0,0.15);}/* Specjalny przycisk anulowania/zamknięcia (np. "Nie", "Anuluj") */.modal-btn.cancel-btn,.modal-btn#confirmReservationNo, /* Przykładowe ID z JS */.modal-btn#closeUrgentBtn,.modal-btn#cancelReservationFormBtn,.modal-btn#closeCancelPromptBtn,.modal-btn#noCancelFinal {  background-color: #757575; /* Szary dla przycisków negatywnych/neutralnych */}.modal-btn.cancel-btn:hover,.modal-btn#confirmReservationNo:hover,.modal-btn#closeUrgentBtn:hover,.modal-btn#cancelReservationFormBtn:hover,.modal-btn#closeCancelPromptBtn:hover,.modal-btn#noCancelFinal:hover {  background-color: #9e9e9e;}/* Dodatkowy, mały tekst informacyjny w formularzach */#cancelCodeFormatInfo {  display: block;  font-size: 0.8em;  margin-top: 4px;  color: #666;}/* Ukrywanie tytułu modala dla czytników ekranu (jeśli treść jest wystarczająco opisowa) */.modal-title-sr-only {  border: 0;  clip: rect(0 0 0 0);  height: 1px;  margin: -1px;  overflow: hidden;  padding: 0;  position: absolute;  width: 1px;  white-space: nowrap; /* Zapobiega zawijaniu i "widoczności" na niektórych czytnikach */}/* Styl dla aktywnego linku w menu (zdefiniowany w kalendarz.html w <style>) *//* Możesz go przenieść tutaj, jeśli chcesz mieć wszystkie style w jednym miejscu *//*.nav-menu li a.active-nav-link,.mobile-menu ul li a.active-nav-link {  border-bottom: 2px solid #572a1b; // Twój kolor akcentu}*//* =========================   MEDIA QUERIES DLA KALENDARZA========================= */@media (max-width: 768px) {  /* Upewniamy się, że kontener z Twojej głównej strony nie ogranicza kalendarza */  /* Ta reguła celuje w .container, który jest bezpośrednim dzieckiem .calendar-section */  .calendar-section > .container {    padding-left: 0 !important; /* Usuwamy paddingi z .container */    padding-right: 0 !important;    width: 100% !important;       /* .container zajmuje całą szerokość */    max-width: none !important;    /* Ignorujemy max-width dla .container na mobile */    margin-left: 0 !important;    margin-right: 0 !important;  }  .calendar-container { /* To jest kontener wewnątrz .container z HTML */    padding: 0; /* Już ustawione, dobrze */    /* width: 100% !important; jest w HTML, to też dobrze */    /* margin: 0 auto; z HTML - na mobile może być niepotrzebne jeśli .container jest już 100% */    margin: 0 !important;  }  .calendar-outer,  .inner-calendar-container {    width: 100%; /* Jednoznaczne ustawienie szerokości */  }  .day-column {    margin: 1px;    flex-grow: 1; /* Pozwól kolumnom rosnąć, aby wypełnić przestrzeń */    flex-shrink: 0; /* Nie pozwól kolumnom się kurczyć */    flex-basis: calc(100% / 7 - 2px); /* Podstawowa szerokość z uwzględnieniem marginesów */    box-sizing: border-box; /* Kluczowe dla poprawnego obliczania szerokości */    overflow: hidden; /* Jeśli treść wewnątrz kolumny (np. długi nagłówek) ją rozpycha */    min-height: auto; /* Zamiast stałej min-height, pozwólmy treści dyktować wysokość, chyba że jest problem */  }  .day-header {    padding: 4px 1px; /* Zmniejszony padding poziomy */    font-size: 0.65rem; /* Tak, zmniejszamy czcionkę, aby zaoszczędzić miejsce */    line-height: 1.2; /* Zmniejszony line-height */    min-height: 30px; /* Minimalna wysokość nagłówka, aby uniknąć "skakania" */    /* overflow-wrap: break-word; */ /* Jeśli nazwy dni są bardzo długie */  }  .day-header div:first-child { /* Nazwa dnia */    font-size: 0.6rem; /* Mniejsza czcionka */    white-space: nowrap; /* Można spróbować, jeśli krótkie nazwy dni */    overflow: hidden;    text-overflow: ellipsis; /* Jeśli nazwa jest za długa, utnij z "..." */  }  .day-header div:last-child { /* Data */    font-size: 0.55rem; /* Mniejsza czcionka */  }  .time-slot {    font-size: 0.8rem; /* Mniejsza czcionka dla slotów */    padding: 5px 1px;  /* Zmniejszony padding poziomy */    line-height: 1.3;    min-height: 34px; /* Minimalna wysokość slotu */    box-sizing: border-box;  }  /* Zmniejszenie minimalnej wysokości dla całego bloku kalendarza, jeśli potrzeba */  .calendar-outer {    min-height: 480px; /* Dostosuj tę wartość obserwując zachowanie */  }}/* Dodatkowe zawężenie dla bardzo małych ekranów, jeśli problem nadal występuje */@media (max-width: 360px) {  .day-header {    font-size: 0.6rem;    padding: 3px 0; /* Jeszcze mniejszy padding */  }   .day-header div:first-child {    font-size: 0.55rem;  }  .day-header div:last-child {    font-size: 0.5rem;  }  .time-slot {    font-size: 0.75rem;    padding: 4px 0;  }}