/* Click and touch share a persistent time reveal. The glass is a cheap tint,
   never a backdrop blur or a calendar redraw. */
.calendar-day::after,
.calendar-day .day-duration {
  transition: opacity 90ms ease-out;
}

.calendar-day.is-time-visible::after,
.calendar-day.is-time-visible .day-duration {
  opacity: 1;
}

.calendar-day.is-time-visible .day-number,
.calendar-day.is-time-visible .day-water,
.calendar-day.is-time-visible .day-wave-art {
  opacity: .28;
}

.calendar-day.is-time-visible .day-wave-art img,
.calendar-day.is-time-visible .day-water::before {
  animation-play-state: paused;
}

.calendar-day.is-time-suppressed::after,
.calendar-day.is-time-suppressed .day-duration {
  opacity: 0;
}

.calendar-day.is-time-suppressed .day-number,
.calendar-day.is-time-suppressed .day-water,
.calendar-day.is-time-suppressed .day-wave-art {
  opacity: 1;
}

.calendar-day.is-outside.is-time-suppressed .day-water { opacity: .56; }

/* Press the date gently without shrinking the grid or moving its hit target. */
.calendar-day .day-number { transition: transform 130ms cubic-bezier(.2, .7, .2, 1); }
.calendar-day:active .day-number {
  transform: translateY(1px);
  transition-duration: 45ms;
}

/* ===== APPLE-STYLE DRAG HIGHLIGHT ===== */
/* Touch-drag across calendar days highlights each cell with a glassy spring feel. */
.calendar-day {
  transition: background-color 180ms cubic-bezier(.22, .8, .26, 1),
              box-shadow 180ms cubic-bezier(.22, .8, .26, 1),
              transform 120ms cubic-bezier(.22, .8, .26, 1);
}

.calendar-day.is-drag-over {
  background: var(--accent-soft) !important;
  box-shadow: inset 0 0 0 2px rgba(82, 117, 101, .2);
  transform: scale(.97);
}

.calendar-day.is-drag-over .day-number {
  transform: scale(1.06);
  transition: transform 160ms cubic-bezier(.22, .8, .26, 1);
}

.calendar-day.is-drag-selected {
  background: var(--accent-soft) !important;
  box-shadow: inset 0 0 0 2.5px var(--accent);
}

.calendar-day.is-drag-selected .day-number:not([style]) {
  background: var(--accent);
  color: #fff;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
}

@media (hover: none), (pointer: coarse) {
  .calendar-day::after { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-day::after,
  .calendar-day .day-duration,
  .calendar-day .day-number { transition: none !important; }
  .calendar-day:active .day-number { transform: none; }
  .calendar-day.is-drag-over { transform: none; }
}
