/* 🔠 Kleinere Grundschrift */
.availability-calendar {
  max-width: 800px;
  margin: 2rem auto;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 1rem;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  font-size: 0.9em;
}

.availability-calendar h3 {
  text-align: center;
  margin-bottom: 1rem;
  font-size: 1em;
}

/* 🧾 Tabellenstruktur */
.availability-calendar table {
  width: 100%;
  border-collapse: collapse;
}

.availability-calendar th,
.availability-calendar td {
  padding: 0.8rem;
  text-align: center;
  border: 1px solid #ccc;
  vertical-align: top;
}

.availability-calendar .available {
  background-color: #d4edda;
  color: #155724;
}

.availability-calendar .unavailable {
  background-color: #f8d7da;
  color: #721c24;
}

.availability-calendar .today {
  border: 2px solid red;
}

/* 🔁 Vergangene Tage Desktop: ausgrauen */
.vk-past {
  opacity: 0.4;
  pointer-events: none;
  color: #888;
}

/* 📅 Hinweisfeld Heute */
.vk-today-box {
  padding: 0.8rem;
  margin-bottom: 1rem;
  border-radius: 6px;
  font-weight: bold;
}
.vk-today-box.vk-available {
  background-color: #d4edda;
  color: #155724;
}
.vk-today-box.vk-unavailable {
  background-color: #f8d7da;
  color: #721c24;
}

/* 💬 Mitteilungstext */
.note-text {
  margin-top: 0.5rem;
  font-size: 0.85em;
  font-style: italic;
  color: #dc3545;
}

/* 🛠 Adminbereich */
.availability-admin {
  margin-top: 2rem;
}

.vk-day {
  flex: 1 1 120px;
  padding: 10px;
  border: 1px solid #ccc;
  margin: 5px;
  border-radius: 6px;
  text-align: center;
  position: relative;
}

/* 🖱️ Cursor nur im Adminbereich */
body.admin-page .vk-day {
  cursor: pointer;
}

/* 🎨 Farbgebung */
.vk-available {
  background-color: #d4edda !important;
  color: #155724;
}
.vk-unavailable {
  background-color: #f8d7da;
  color: #721c24;
}
.vk-today {
  border: 2px solid #dc3545;
}

/* 📌 Text in Tageskachel */
.status-text {
  font-weight: bold;
  min-height: 1.5em;
  display: block;
}

/* ✍ Eingabefeld */
.day-note {
  width: 100%;
  min-height: 50px;
  resize: vertical;
  font-size: 0.9em;
  margin-top: 5px;
}

/* ✔ Erfolgsanzeige */
.save-check {
  position: absolute;
  bottom: 5px;
  right: 8px;
  color: #28a745;
  font-size: 1.2em;
  pointer-events: none;
}

/* 📱 Responsive für Mobile */
@media (max-width: 500px) {
  .availability-calendar table,
  .availability-calendar thead,
  .availability-calendar tbody,
  .availability-calendar th,
  .availability-calendar td,
  .availability-calendar tr {
    display: block;
  }

  .availability-calendar thead {
    display: none;
  }

  .availability-calendar td {
    border: none;
    border-bottom: 1px solid #ccc;
    position: relative;
    text-align: right;
    padding: 1rem 1rem 1rem 5rem;
    font-size: 0.9em;
  }

  .availability-calendar td::before {
    content: attr(data-weekday);
    position: absolute;
    left: 1rem;
    top: 1rem;
    white-space: nowrap;
    font-weight: bold;
    font-size: 0.85em;
    text-align: left;
  }

  /* 📆 Datum inline */
  .availability-calendar td strong {
    display: inline;
    font-weight: bold;
    margin: 0;
    text-align: left;
  }

  /* ✅ Status daneben */
  .availability-calendar td .status-text {
    display: inline;
    font-style: italic;
    font-size: 0.85em;
    margin-left: 0.5em;
  }

  /* 💬 Hinweis darunter */
  .availability-calendar td .note-text {
    display: block;
    font-size: 0.8em;
    color: #dc3545;
    margin-top: 0.2em;
  }

  /* 🕓 Vergangene Tage ausblenden */
  .availability-calendar td.vk-past {
    display: none !important;
  }
}
.vk-selected {
  outline: 2px solid #007cba;
  background-color: #cde8ff !important;
}


/* 🎯 Admin-Reservierungskalender enges Layout */
.acal-reservation-selector {
  margin: 0;
  padding: 0;
}

/* XS–L Breitensteuerung */
.acal-reservation-selector.acal-size-xs .availability-calendar { width: 360px; }
.acal-reservation-selector.acal-size-s  .availability-calendar { width: 440px; }
.acal-reservation-selector.acal-size-m  .availability-calendar { width: 560px; }
.acal-reservation-selector.acal-size-l  .availability-calendar { width: 700px; }

.acal-reservation-selector .availability-calendar {
  margin: 0;
  padding: 0.5rem;
  font-size: 0.85rem;
  background: #fff;
  border-radius: 6px;
  box-shadow: none;
  border: none;
}

.acal-reservation-selector .availability-calendar h3 {
  font-size: 1rem;
  text-align: center;
  margin-bottom: 10px;
}

.acal-reservation-selector .availability-calendar table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
}

.acal-reservation-selector .availability-calendar th,
.acal-reservation-selector .availability-calendar td {
  width: 14.28%;
  padding: 6px;
  font-size: 0.8rem;
  text-align: center;
  border: 1px solid #ccc;
  box-sizing: border-box;
}

/* Farben & Auswahlmarkierung */
.acal-reservation-selector .availability-calendar .green {
  background-color: #d9f0d9;
}
.acal-reservation-selector .availability-calendar .red {
  background-color: #f8d9d9;
}
.acal-reservation-selector .availability-calendar .vk-selected {
  outline: 2px solid #e22;
}


/* Reservations */
.res-grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.res-row {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.res-col.res-half {
  flex: 1 1 48%;
}

.res-col.res-full {
  flex: 1 1 100%;
}

.res-flex {
  display: flex;
  gap: 0.5rem;
}

.res-sub {
  flex: 1;
}

/* === Admin Layout für Reservierungsformular === */

#reservation-form .res-grid {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

#reservation-form .res-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

#reservation-form .res-col.res-half {
  flex: 1 1 48%;
}

#reservation-form .res-col.res-full {
  flex: 1 1 100%;
}

#reservation-form .res-flex {
  display: flex;
  gap: 0.5rem;
}

#reservation-form .res-sub {
  flex: 1;
}

.vk-selected {
  font-weight: bold;
  color: #dc3545; /* rot */
  outline: 2px solid #007cba;
  background-color: #fff8f8 !important;
}

.vk-today {
  outline: 3px solid red !important;
  position: relative;
  z-index: 1;
}

.form-sm label,
.form-sm input,
.form-sm select,
.form-sm textarea,
.form-sm .form-check-label {
  font-size: 0.875rem; /* kleiner als normal (ca. 14px) */
}



