/* Layout base */
.cac-wrapper, .cac-admin-left { max-width: 100%; }
.cac-toolbar {
  display: flex; align-items: center; justify-content: center; gap: .75rem;
  margin: .5rem 0 1rem;
}
.cac-current-month { font-weight: 700; }

/* Calendarios en horizontal (grid por columnas) */
.cac-calendar {
  display: grid;
  grid-auto-rows: auto;
  gap: 14px;
}
.cac-calendar.cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.cac-calendar.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cac-calendar.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cac-calendar.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cac-calendar.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cac-calendar.cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.cac-month-wrap { background: transparent; margin: 0; }
.cac-month-title { font-weight: 700; margin: .25rem 2px .35rem; }

/* Grid mensual */
.cac-grid { width: 100%; }
.cac-grid-header, .cac-grid-body {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

/* Cabecera compacta (días de la semana) */
.cac-head {
  border: none;
  background: transparent;
  padding: 0;
  min-height: unset;
  text-align: center;
  font-weight: 600;
  font-size: .85rem;
  line-height: 1.2;
  color: #334155;
}

/* Celdas día */
.cac-cell {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  min-height: 64px;
  background: #fff;
  position: relative;
}
.cac-empty { background: transparent; border: none; }
.cac-day { cursor: pointer; }

.cac-day.cac-available {
  background: #ecfdf5;
  border-color: #86efac;
}
.cac-day.cac-available .cac-dayprice { color: #065f46; }

.cac-day.cac-unset  { background: #f8fafc; color:#475569; }
.cac-day.cac-booked { background: #fef2f2; color:#991b1b; cursor: not-allowed; }
.cac-day.cac-booked .cac-dayprice { display: none; } /* ocultar precio si está ocupado */

/* Números y precio */
.cac-daynum {
  position: absolute; top: 6px; left: 8px; font-weight: 700; font-size: .95rem;
}
.cac-dayprice {
  position: absolute; bottom: 6px; right: 8px; font-size: .9rem; color:#0f172a;
}

/* Leyenda y summary */
.cac-legend { display:flex; gap:.5rem; align-items:center; flex-wrap: wrap; margin-top: .5rem; }
.cac-badge { display:inline-block; padding:.25rem .5rem; border-radius:.35rem; font-size:.825rem; border:1px solid #e2e8f0; }
.cac-badge.cac-available { background: #ecfdf5; color:#065f46; }
.cac-badge.cac-booked    { background: #fef2f2; color:#991b1b; }
.cac-badge.cac-unset     { background: #f1f5f9; color:#475569; }

.cac-summary { margin-top: .5rem; font-size: 1rem; }

/* Formulario de solicitud (front) */
.cac-enquiry { margin-top: .75rem; }
.cac-enquiry-title { font-weight: 700; margin: .25rem 2px .35rem; }
.cac-enquiry-form .cac-enquiry-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.cac-enquiry-form label { display: flex; flex-direction: column; gap: 4px; font-size: .9rem; }
.cac-enquiry-form label.full { grid-column: span 6; }
.cac-enquiry-form input[type="text"],
.cac-enquiry-form input[type="email"],
.cac-enquiry-form input[type="number"] {
  border: 1px solid #e2e8f0; border-radius: 8px; padding: .5rem .6rem; font-size: .95rem;
}
.cac-enquiry-footer {
  display:flex; align-items:center; justify-content: space-between; gap:10px; margin-top:.5rem; flex-wrap: wrap;
}
.cac-enquiry-dates { font-size:.95rem; color:#334155; }
.cac-enquiry-submit {
  border:1px solid #0ea5e9; background:#0ea5e9; color:#fff; padding:.5rem .75rem; border-radius:8px; cursor:pointer;
}
.cac-enquiry-submit:hover { background:#0284c7; border-color:#0284c7; }
.cac-enquiry-msg { margin-top:.5rem; font-size:.95rem; display:none; }
.cac-enquiry-msg.ok { color:#065f46; }
.cac-enquiry-msg.ko { color:#991b1b; }

/* Botones toolbar */
.cac-toolbar button {
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: .35rem .6rem;
  border-radius: .35rem;
  cursor: pointer;
}
.cac-toolbar button:hover { background: #f1f5f9; }

/* Selección (rango en azul) */
.cac-day.cac-selected-start,
.cac-day.cac-selected-end,
.cac-day.cac-inrange { background: #e0f2fe; border-color:#38bdf8; }
.cac-day.cac-selected-start .cac-daynum,
.cac-day.cac-selected-end .cac-daynum,
.cac-day.cac-inrange .cac-daynum { color:#075985; }
.cac-day.cac-selected-start { box-shadow: inset 0 0 0 2px #0284c7; }
.cac-day.cac-selected-end   { box-shadow: inset 0 0 0 2px #0284c7; }

/* Tooltip siempre encima */
.cac-tooltip {
  z-index: 99999;
  opacity:0;
  transition: opacity .15s ease;
  pointer-events:none;
  position:absolute;
  background:#0ea5e9;
  color:#fff;
  padding:.35rem .6rem;
  border-radius:.35rem;
  font-size:.825rem;
  box-shadow: 0 4px 10px rgba(0,0,0,.1);
}
.cac-tooltip.visible { opacity:1; }

/* Responsive fino */
@media (max-width: 1024px){
  .cac-enquiry-form .cac-enquiry-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .cac-enquiry-form .cac-enquiry-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cac-enquiry-footer { flex-direction: column; align-items: stretch; }
}
