/* ==========================================================
   PUBLIC — Estilos especificos de la pagina de reservas
   (base.css cubre layout, botones, cards, topbar, footer, etc.)
   ========================================================== */

/* ===== Page header ===== */
.page-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.page-header h1{font-size:26px}
.actions{display:flex;gap:10px;flex-wrap:wrap}

/* ===== GDPR checkbox ===== */
.gdpr-label{
  display:flex;
  gap:10px;
  align-items:center;
  cursor:pointer;
}

/* ===== Hints ===== */
.hint{margin-top:8px}
.selection-summary{
  margin-top:4px;
  color:var(--primary);
  font-weight:600;
}

/* ===== Form actions ===== */
.form-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

/* ===== Grid de disponibilidad ===== */
.availability-container{
  width:100%;
  overflow-x:auto;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px;
}

.availability-container table{
  width:100%;
  border-collapse:collapse;
  font-size:0.85rem;
}

.availability-container th{
  padding:8px 6px;
  text-align:center;
  font-size:12px;
  color:var(--muted);
  font-weight:600;
  white-space:nowrap;
  border-bottom:2px solid var(--line);
}

.availability-container td{
  padding:3px;
  text-align:center;
}

/* Slots */
.slot{
  display:block;
  width:100%;
  padding:6px 4px;
  border-radius:8px;
  font-weight:700;
  font-size:11px;
  letter-spacing:.2px;
  border:1px solid transparent;
  transition:all .15s;
}

.slot-available{
  cursor:pointer;
  background:#ecfdf5;
  border-color:#86efac;
  color:#065f46;
}
.slot-available:hover{
  background:#d1fae5;
  border-color:#4ade80;
}

.slot-busy{
  background:#f9fafb;
  border-color:#f3f4f6;
  color:#d1d5db;
  cursor:default;
}

.slot-selected{
  box-shadow:0 0 0 3px rgba(37,99,235,.2);
  border-color:var(--primary) !important;
  background:var(--primary-light) !important;
  color:var(--primary) !important;
}

/* ===== Week navigation ===== */
.week-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.week-nav__label{
  font-weight:600;
  font-size:14px;
  color:var(--text);
}

/* ===== Time column ===== */
.time-col{
  text-align:right !important;
  padding-right:10px !important;
  font-weight:700;
  color:var(--muted);
  white-space:nowrap;
  width:60px;
  min-width:60px;
}

/* ===== Responsive ===== */
@media (max-width:860px){
  .page-header{flex-direction:column;align-items:flex-start}
}
