/* Calendario FullCalendar del front + panel de reserva. */
.mjy-calendar { background: #fff; border-radius: 12px; }

/* Estados de día */
.mjy-day-past { opacity: .4; }
.mjy-day-past .fc-daygrid-day-number { text-decoration: line-through; }
.mjy-day-busy { background: rgba(220, 53, 69, .12) !important; }
.mjy-day-blocked { background: rgba(108, 117, 125, .18) !important; }
.mjy-day-busy .fc-daygrid-day-number,
.mjy-day-blocked .fc-daygrid-day-number { color: #adb5bd; }

/* FullCalendar: acento de marca */
.mjy-availability-cal .fc .fc-button-primary,
.mjy-booking-cal .fc .fc-button-primary {
  background: var(--mjy-primary, #ff6b6b);
  border-color: var(--mjy-primary, #ff6b6b);
}
.mjy .fc .fc-button-primary:hover { background: var(--mjy-primary-dark, #e55c5c); border-color: var(--mjy-primary-dark, #e55c5c); }
.mjy .fc .fc-daygrid-day.fc-day-today { background: rgba(255, 107, 107, .08); }
.mjy .fc-highlight { background: rgba(255, 107, 107, .18) !important; }

/* Leyenda */
.mjy-cal-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 14px; padding: 12px 2px 0; margin: 0; font-size: .82rem; }
.mjy-cal-legend li { display: inline-flex; align-items: center; gap: 6px; color: #495057; }
.mjy-dot { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.mjy-dot-busy { background: rgba(220, 53, 69, .55); }
.mjy-dot-blocked { background: rgba(108, 117, 125, .55); }
.mjy-dot-available { background: rgba(40, 167, 69, .55); }

/* Panel de reserva (Fase 4) */
.mjy-booking { border: 1px solid var(--mjy-border, #e5e7eb); border-radius: 14px; padding: 16px; margin-top: 14px; }
.mjy-booking-summary { font-size: .9rem; }
.mjy-booking-dates { display: flex; gap: 10px; margin-bottom: 10px; }
.mjy-booking-dates .mjy-date-box { flex: 1; border: 1px solid var(--mjy-border, #e5e7eb); border-radius: 10px; padding: 8px 10px; }
.mjy-booking-dates label { display: block; font-size: .7rem; text-transform: uppercase; color: #6c757d; }
.mjy-booking-dates strong { font-size: .95rem; }
.mjy-guests-row { display: flex; gap: 10px; margin: 10px 0; }
.mjy-guests-row .mjy-field { flex: 1; }
.mjy-quote-lines { list-style: none; margin: 10px 0; padding: 0; font-size: .9rem; }
.mjy-quote-lines li { display: flex; justify-content: space-between; padding: 3px 0; }
.mjy-quote-total { display: flex; justify-content: space-between; font-weight: 700; border-top: 1px solid var(--mjy-border, #e5e7eb); padding-top: 8px; margin-top: 6px; }
.mjy-quote-error { color: #dc3545; font-size: .86rem; margin: 8px 0; }

/* Formularios reutilizables */
.mjy .mjy-field { margin-bottom: 12px; }
.mjy .mjy-field label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: 4px; }
.mjy .mjy-field input, .mjy .mjy-field select, .mjy .mjy-field textarea {
  width: 100%; padding: 10px 12px; border: 2px solid var(--mjy-border, #e5e7eb);
  border-radius: 10px; font-size: .95rem; background: #fff;
}
.mjy .mjy-field input:focus, .mjy .mjy-field select:focus, .mjy .mjy-field textarea:focus {
  outline: none; border-color: var(--mjy-primary, #ff6b6b);
}
.mjy-form-msg { padding: 10px 12px; border-radius: 8px; font-size: .9rem; margin-top: 10px; }
.mjy-form-msg-ok { background: #e6f4ea; color: #1e7e34; }
.mjy-form-msg-err { background: #fdecea; color: #c0392b; }
.mjy-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
