/* Wiederverwendbares Kalender-Bauteil — gleiche Optik in /eventkalender/
   und im Activity-Painting-Buchungs-Dialog. Klassen-Präfix .ek-cal*
   ist historisch gewachsen aus dem Eventkalender, bleibt zur Konsistenz
   auch hier. */

.ek-cal {
  display: flex;
  flex-direction: column;
}

.ek-cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-2xl);
  border-bottom: 1px solid var(--mauve-light-30);
}

.ek-cal__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.05;
  color: var(--color-midnight);
}

.ek-cal__year {
  font-family: var(--font-body);
  font-weight: 300;
  font-style: italic;
  font-size: var(--font-size-body);
  color: var(--color-mauve);
  margin-inline-start: var(--space-sm);
}

.ek-cal__nav {
  display: flex;
  gap: var(--space-sm);
}

.ek-cal__btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  border: 1px solid rgba(200, 49, 74, 0.2);
  background-color: transparent;
  color: var(--color-midnight);
  cursor: pointer;
  transition: background-color var(--transition-base);
}

.ek-cal__btn:hover {
  background-color: var(--color-pink-light);
}

.ek-cal__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-xs);
  text-align: center;
  margin-bottom: var(--space-md);
  font-family: var(--font-ui);
  font-size: var(--font-size-base);
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--color-mauve);
}

.ek-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-xl) var(--space-xs);
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  color: var(--color-midnight);
}

.ek-cal__day {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  color: inherit;
  font: inherit;
}

.ek-cal__day--muted {
  color: rgba(141, 112, 113, 0.4);
  cursor: default;
}

/* Geschlossener Tag — durchgestrichene Zahl, deutlich ausgegraut.
   text-decoration ist von Natur aus zentriert durch die Mitte der
   Zahl, das ist robuster als ein absolut positioniertes Pseudo. */
.ek-cal__day.is-closed {
  cursor: not-allowed;
}

.ek-cal__day.is-closed .ek-cal__pill {
  color: rgba(141, 112, 113, 0.55);
  text-decoration: line-through;
  text-decoration-color: rgba(141, 112, 113, 0.7);
  text-decoration-thickness: 1.5px;
  background-color: rgba(141, 112, 113, 0.06);
}

.ek-cal__day.is-closed.ek-cal__day--muted {
  color: rgba(141, 112, 113, 0.55);
}

.ek-cal__pill {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  transition: background-color var(--transition-base);
}

.ek-cal__day:hover .ek-cal__pill:not(.ek-cal__pill--today) {
  background-color: var(--color-pink-light);
}

.ek-cal__day.is-selected .ek-cal__pill:not(.ek-cal__pill--today) {
  background-color: var(--color-mauve-light);
  color: var(--color-midnight);
  font-weight: 700;
}

.ek-cal__day.is-selected .ek-cal__pill--today {
  outline: 2px solid var(--color-baby-pink);
  outline-offset: 2px;
}

.ek-cal__pill--today {
  width: 40px;
  height: 40px;
  background-color: var(--color-brand-red);
  color: var(--color-white);
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(200, 49, 74, 0.3);
}

.ek-cal__dots {
  display: inline-flex;
  gap: 4px;
}

.ek-cal__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
}

.ek-cal__dot--baby-pink { background-color: var(--color-baby-pink); }
.ek-cal__dot--mauve     { background-color: var(--color-mauve); }
.ek-cal__dot--red       { background-color: var(--color-brand-red); }
.ek-cal__dot--midnight  { background-color: var(--color-midnight); }
