/* ---- Restauración visual mínima, sin romper PHP ---- */
:root{
  --mf-main:#198754; /* verde corporativo aproximado */
  --mf-accent:#0d6efd; /* azul bootstrap */
  --mf-bg:#f7f9fb;
}
body{ background: var(--mf-bg); }
.navbar{ background:#fff !important; }
.header-calendario{ display:flex; align-items:center; }
.logo-mf14{ max-height:48px; height:auto; width:auto; object-fit:contain; }
.select-card{ border:1px solid #e5e7eb; transition:all .2s ease; border-radius:.75rem; }
.select-card:hover{ box-shadow:0 6px 18px rgba(0,0,0,.06); transform:translateY(-1px); }
.select-card.active{ border-color: var(--mf-accent); box-shadow:0 6px 22px rgba(13,110,253,.15); }
.thead-sticky th{ position:sticky; top:0; z-index:2; background:#fff; }
.cell{ min-width:150px; height:44px; }
.cell-busy, .cell-past{ display:flex; align-items:center; justify-content:center; color:#999; }
.btn.js-dispo{ white-space:nowrap; }
.lock-icon{ font-size:1rem; color:#dc3545; }
.resumen-box{ border:1px solid #e5e7eb; border-radius:.75rem; overflow:hidden; background:#fff; }
.resumen-band{ background:var(--mf-main); color:#fff; font-weight:600; padding:.35rem .6rem; font-size:.9rem; }
.resumen-body{ padding:.75rem .9rem; }
.badge.bg-primary{ background: var(--mf-accent) !important; }
.is-sel{ border-color: var(--mf-accent) !important; color: var(--mf-accent) !important; }
.table>thead th, .table>tbody td, .table>tbody th{ vertical-align:middle; }
.small-muted{ color:#6c757d; font-size:.9rem; }
.modal-content{ border-radius: .75rem; }

/* ✅ Fix PC/Mobile: usa clases explícitas y NO pisa Bootstrap */
@media (max-width: 991.98px){
  .desktop-only{display:none!important}
  .mobile-only{display:block!important}
}
@media (min-width: 992px){
  .desktop-only{display:block!important}
  .mobile-only{display:none!important}
}
/* ===== Columna Horas (desktop) ===== */
.table th:first-child,
.table td:first-child {
  white-space: nowrap;     /* no partir línea */
  min-width: 120px;        /* ancho fijo suficiente */
  text-align: center;
  font-weight: 600;
}
/* ====== Tipografías más pequeñas (PC y móvil) ====== */

/* Encabezados de servicios (tabla PC) */
.d-lg-block .table thead th{
  font-size: .85rem;
}

/* Columna Horas (PC) */
.d-lg-block .table tbody th,
.d-lg-block .table thead th:first-child{
  font-size: .85rem;
}

/* Celdas (PC) */
.d-lg-block .table td{
  font-size: .85rem;
}

/* Botones "Disponible" (PC) */
.d-lg-block .table .btn{
  font-size: .8rem;
  padding: .25rem .45rem;
}

/* Móvil: título del servicio (accordion) */
.d-lg-none .accordion-button{
  font-size: .9rem;
}

/* Móvil: horas dentro de cada tarjeta */
.d-lg-none .slot-card .fw-semibold{
  font-size: .9rem;
}

/* Móvil: texto “Disponible/No disponible” */
.d-lg-none .slot-card .small{
  font-size: .8rem;
}

/* Móvil: botones Reservar / Pack */
.d-lg-none .slot-card .btn{
  font-size: .8rem;
  padding: .3rem .55rem;
}
/* ===== Animación accordion móvil ===== */
@media (max-width: 991.98px){

  /* transición más suave del cuerpo */
  .accordion-collapse{
    transition: height .35s ease;
  }

  /* animación de entrada del contenido */
  .accordion-collapse .accordion-body{
    animation: accordionFadeIn .25s ease;
  }

  @keyframes accordionFadeIn{
    from{
      opacity: 0;
      transform: translateY(-6px);
    }
    to{
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* flecha más suave */
  .accordion-button{
    transition: background-color .2s ease;
  }

  .accordion-button::after{
    transition: transform .25s ease;
  }
}
/* 🔥 Eliminar cualquier mes en inglés residual */
.rango-mes + *,
.text-end,
.text-right,
.month-label,
.month-title {
  display: none !important;
}
