/* app.css — minimal custom styles on top of TailwindCSS + DaisyUI. */

/* HTMX global loading indicator (hidden until a request is in flight). */
.htmx-indicator {
  opacity: 0;
  transition: opacity 200ms ease-in;
}
.htmx-request.htmx-indicator {
  opacity: 1;
}

/* ---------------------------------------------------------------------------
   flatpickr calendar, themed with DaisyUI v5 color variables so it follows the
   active light/dark theme. DaisyUI v5 exposes colors as full oklch() values in
   --color-* custom properties; alpha tints use color-mix().
   ------------------------------------------------------------------------- */
.flatpickr-calendar {
  background: var(--color-base-100);
  color: var(--color-base-content);
  border: 1px solid color-mix(in oklch, var(--color-base-content) 18%, transparent);
  border-radius: var(--radius-field, 0.5rem);
  box-shadow: 0 12px 32px color-mix(in oklch, var(--color-base-content) 18%, transparent);
}
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
  border-bottom-color: var(--color-base-100);
}
.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
  border-top-color: var(--color-base-100);
}

/* Header: month/year + prev/next arrows. */
.flatpickr-months .flatpickr-month,
.flatpickr-current-month {
  color: var(--color-base-content);
  fill: var(--color-base-content);
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  color: var(--color-base-content);
  fill: var(--color-base-content);
  transition: color 120ms ease, fill 120ms ease;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
  color: var(--color-primary);
  fill: var(--color-primary);
}
.flatpickr-current-month input.cur-year,
.flatpickr-current-month .numInputWrapper span {
  color: var(--color-base-content);
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
  background: var(--color-base-100);
  color: var(--color-base-content);
}
.numInputWrapper:hover {
  background: var(--color-base-200);
}

/* Weekday labels. */
span.flatpickr-weekday {
  color: color-mix(in oklch, var(--color-base-content) 55%, transparent);
  background: transparent;
  font-weight: 600;
}

/* Day cells. */
.flatpickr-day {
  color: var(--color-base-content);
  border-radius: var(--radius-field, 0.5rem);
  transition: background 120ms ease, color 120ms ease;
}
.flatpickr-day:hover,
.flatpickr-day:focus {
  background: var(--color-base-200);
  border-color: var(--color-base-200);
  color: var(--color-base-content);
}
.flatpickr-day.today {
  border-color: var(--color-primary);
}
.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-content);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-content);
}
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  color: color-mix(in oklch, var(--color-base-content) 35%, transparent);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  color: color-mix(in oklch, var(--color-base-content) 25%, transparent);
}

/* Time picker (unused today, themed for completeness). */
.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
  color: var(--color-base-content);
}
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover {
  background: var(--color-base-200);
}
