.horizontal-calendar-container {
  position: relative;
  margin: 2rem 0; }

.scroll-buttons {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  pointer-events: none; }
  .scroll-buttons button {
    pointer-events: auto;
    padding: 0.5rem;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center; }

.horizontal-calendar {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none; }
  .horizontal-calendar::-webkit-scrollbar {
    display: none; }

.days-container {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  min-width: max-content; }

.day-card {
  flex: 0 0 200px;
  padding: 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease; }
  .day-card:hover {
    background-color: var(--bs-gray-100);
    transform: translateY(-2px); }
  .day-card.current-day {
    border-color: var(--bs-primary);
    background-color: var(--bs-primary-bg-subtle); }

.date-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1rem; }
  .date-header .day-name {
    font-size: 0.9rem;
    color: var(--bs-gray-600);
    text-transform: capitalize; }
  .date-header .day-number {
    font-size: 1.5rem;
    font-weight: bold; }

.events-count {
  text-align: center; }
/* -------- resets ---------------*/
.rs_dialog_holder {
  font-size: 14px;
  color: black; }
  .rs_dialog_holder a {
    color: black; }
  .rs_dialog_holder input[type=button] {
    font: small/normal Arial,sans-serif;
    background: #F5F5F5;
    color: #444;
    border: 1px solid #ccc;
    font-size: 11px;
    font-weight: bold;
    height: 27px;
    line-height: 27px;
    outline: none;
    padding: 0 8px;
    text-align: center;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    position: relative;
    background-image: -webkit-linear-gradient(top, #f5f5f5, #f1f1f1);
    /* Chrome 10+, Saf5.1+ */
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f5f5f5), to(#f1f1f1));
    /* Saf4+, Chrome */
    background-image: -moz-linear-gradient(top, #f5f5f5, #f1f1f1);
    /* FF3.6 */
    background-image: -ms-linear-gradient(top, #f5f5f5, #f1f1f1);
    /* IE10 */
    background-image: -o-linear-gradient(top, #f5f5f5, #f1f1f1);
    /* Opera 11.10+ */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f5f5f5',EndColorStr='#f1f1f1'); }
    .rs_dialog_holder input[type=button]:hover {
      border-color: #aaa;
      color: #222;
      background-color: #f9f9f9;
      -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
      -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
      -ms-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
      -o-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
      box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); }
    .rs_dialog_holder input[type=button]:focus {
      border-color: #1E90FF; }
    .rs_dialog_holder input[type=button]:active {
      border-color: #1E90FF; }

/*------- defaults ------------ */
.rs_dialog_holder {
  font-family: helvetica, arial, 'san-serif';
  color: #222;
  font-size: 12px; }

/*------- specifics ------------ */
select option.bold {
  font-weight: bold;
  color: red; }

.rs_dialog_holder {
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  background-color: rgba(255, 255, 255, 0.2);
  z-index: 50; }
  .rs_dialog_holder .rs_dialog {
    background-color: #f6f6f6;
    border: 1px solid #acacac;
    -webkit-box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.25);
    -ms-box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.25);
    -o-box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.25);
    box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.25);
    -moz-border-radius: 7px;
    -webkit-border-radius: 7px;
    border-radius: 7px;
    min-width: 200px;
    overflow: hidden; }
    .rs_dialog_holder .rs_dialog .rs_dialog_content {
      padding: 10px; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content h1 {
        font-size: 16px;
        padding: 0px;
        margin: 0 0 10px 0; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content h1 a {
          float: right;
          display: inline-block;
          height: 16px;
          width: 16px;
          background-image: url(/assets/recurring_select/cancel-471db6625d94439b9a9232192800d7155e5ca562d1b9b7c7e33aeda8fc3c31ec.png);
          background-position: center;
          background-repeat: no-repeat; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content p {
        padding: 5px 0;
        margin: 0;
        line-height: 14px; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content p label {
          margin-right: 10px; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content a {
        -moz-box-sizing: content-box;
        -webkit-box-sizing: content-box;
        box-sizing: content-box; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section {
        display: none; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section label {
          font-weight: bold; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_interval {
          width: 30px;
          text-align: center;
          display: inline-block; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .day_holder {
          border-left: 1px solid #ccc;
          position: relative;
          margin-top: 5px;
          height: 26px; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .day_holder a {
            display: block;
            padding: 5px 7px;
            font-size: 14px;
            border-style: solid;
            border-color: #ccc;
            border-width: 1px 1px 1px 0px;
            float: left;
            text-decoration: none;
            font-weight: bold;
            -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;
            -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;
            -ms-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;
            -o-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;
            box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;
            background-color: #fff; }
            .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .day_holder a.selected {
              background-color: #89a;
              color: #fff;
              -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -ms-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -o-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2) inset;
              box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2) inset;
              position: relative;
              background-image: -webkit-linear-gradient(top, #9ab, #789);
              /* Chrome 10+, Saf5.1+ */
              background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#9ab), to(#789));
              /* Saf4+, Chrome */
              background-image: -moz-linear-gradient(top, #9ab, #789);
              /* FF3.6 */
              background-image: -ms-linear-gradient(top, #9ab, #789);
              /* IE10 */
              background-image: -o-linear-gradient(top, #9ab, #789);
              /* Opera 11.10+ */ }
            .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .day_holder a:hover {
              cursor: pointer;
              background-color: #dde; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_day, .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week {
          width: 155px; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_day a, .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week a {
            display: inline-block;
            text-align: center;
            width: 15px;
            padding: 5px 3px;
            font-size: 12px;
            border-style: solid;
            border-color: #ccc;
            border-width: 1px 1px 1px 1px;
            margin: -1px 0 0 -1px;
            line-height: 10px;
            background-color: #fff;
            font-weight: bold; }
            .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_day a.selected, .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week a.selected {
              background-color: #89a;
              color: #fff;
              position: relative;
              background-image: -webkit-linear-gradient(top, #9ab, #789);
              /* Chrome 10+, Saf5.1+ */
              background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#9ab), to(#789));
              /* Saf4+, Chrome */
              background-image: -moz-linear-gradient(top, #9ab, #789);
              /* FF3.6 */
              background-image: -ms-linear-gradient(top, #9ab, #789);
              /* IE10 */
              background-image: -o-linear-gradient(top, #9ab, #789);
              /* Opera 11.10+ */
              -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -ms-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset;
              -o-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset;
              box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset;
              text-shadow: 0 1px 1px #333; }
            .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_day a:hover, .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week a:hover {
              cursor: pointer;
              background-color: #dde; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_day a.end_of_month, .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week a.end_of_month {
            width: 81px; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week {
          width: 191px; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .rs_calendar_week span {
            display: inline-block;
            width: 35px; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .freq_option_section .monthly_rule_type span {
          margin-right: 15px; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content .rs_summary {
        padding: 0px;
        margin-top: 15px;
        border-top: 1px solid #ccc; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .rs_summary span {
          font-weight: bold;
          border-top: 1px solid #fff;
          display: block;
          padding: 10px 0 5px 0; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .rs_summary.fetching {
          color: #999; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .rs_summary.fetching span {
            background-image: url(/assets/recurring_select/throbber_13x13-d78857ce33850fa1e233bcef159f2da7d7e119014f06755b97c90b0186c75d12.gif);
            background-position: center;
            background-repeat: no-repeat;
            display: inline-block;
            height: 13px;
            width: 13px;
            margin-top: -4px;
            padding-right: 5px; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .rs_summary label {
          font-weight: normal; }
      .rs_dialog_holder .rs_dialog .rs_dialog_content .controls {
        padding: 10px 0px 5px 0px;
        min-width: 170px;
        text-align: center; }
        .rs_dialog_holder .rs_dialog .rs_dialog_content .controls input[type=button] {
          margin: 0px 5px; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .controls input.rs_save[type=button] {
            color: #333; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .controls input.rs_cancel[type=button] {
            color: #666; }
          .rs_dialog_holder .rs_dialog .rs_dialog_content .controls input.disabled[type=button] {
            color: #aaa; }
    .rs_dialog_holder .rs_dialog.animated .controls {
      position: absolute;
      bottom: 10px;
      left: 10px; }
    .rs_dialog_holder .rs_dialog.animated .rs_summary, .rs_dialog_holder .rs_dialog.animated .freq_option_section {
      display: none; }
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
* vendor/assets/stylesheets directory can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
* compiled file so the styles you add here take precedence over styles defined in any other CSS
* files in this directory. Styles in this file should be added after the last require_* statement.
* It is generally better to create a new file per style scope.
*


*= requiere recurring_select
*/

/* Importación de la nueva fuente desde Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Cal+Sans&family=Petit+Formal+Script&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

/* ESTILOS GENERALES CON EL NUEVO BRANDING */
:root {
  /* Nueva Paleta de Marca para Botones y Acentos */
  --primary: #C5EA94;      /* Verde Lima */
  --primary-light: #E2F4C6; /* Verde Lima Claro (para hover) */
  --secondary: #BFD0EC;    /* Azul Claro */
  --secondary-light: #DDE6F5; /* Azul Claro Suave (para hover) */
  --accent: #ECA89D;      /* Durazno */
  --accent-light: #F5D3CD;  /* Durazno Claro (para hover) */
  
  /* Paleta principal "Blanco y Negro" */
  --white: #FFFFFF;
  --off-white: #f8f9fa; /* Gris muy claro para fondos sutiles */
  --gray: #6c757d;      /* Gris para texto secundario */
  --black: #212529;      /* Negro suave para texto principal y bordes */
}

body {
  font-family: "Poppins", Monserrat !important;
  font-weight: 700; /* Poppins por defecto */
  /* background:  radial-gradient(125% 125% at 50% 90%, #ffffff 40%, #BFD0EC 100%); */
  background:  linear-gradient(to right, rgba(229,231,235,0.8) 1px, transparent 1px),
  linear-gradient(to bottom, rgba(229,231,235,0.8) 1px, transparent 1px),
  radial-gradient(circle 500px at 0% 20%, #f5d3cdd8, transparent),
  radial-gradient(circle 500px at 100% 0%, #bfd0ec, transparent);
  color: var(--black) !important;
  position: relative;
  margin: 0;
  height: 100%;
  /* background-image: url(/assets/back_1-ba259a8cf08f6b6d99b69ee746ed5623e0f9ba71b4e17887738d0147c6450490.jpg);*/
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

body::after {
  /* Se elimina la imagen de fondo para un look limpio B&N */
  content: "";
  display: none;
}

/* Títulos y texto con la nueva tipografía */
h1, h2, h3, h4, h5, h6 {
  font-family: "Cal Sans", sans-serif !important;
  font-weight: 400 !important; /* Cal Sans */
  font-style: normal !important;

  color: var(--black) !important;
}

label {
  color: var(--black) !important;
  font-weight: 700; /* Bold */
  margin-bottom: .3em;
}

a {
  text-decoration: none !important;
  font-weight: 700;
  /* El color de los 'a' se define por componente (navbar, botones, etc) */
}

/* --- COMPONENTES BLANCO Y NEGRO (CON NAV/FOOTER OSCUROS) --- */

/* Navbar con fondo negro */
.navbar {
  background-color: var(--black) !important;
  border-bottom: 2px solid var(--black) !important; /* Mantenemos el borde para consistencia */
  box-shadow: none !important;
}

/* Enlaces y brand del navbar */
.navbar .nav-link, .navbar .navbar-brand {
  color: var(--white) !important;
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
  transition: background-color 0.2s ease-in-out;
}

.navbar-brand-logo {
  width: 40px;
  height: auto;
  flex-shrink: 0;
}

.navbar-brand-text {  
  font-size: 1rem;
  font-weight: 700;
  color: var(--white) !important;
  margin-left: 10px;
  max-width: 0;
  overflow: hidden;
  white-space: nowrap;
  vertical-align: middle;
  transition: max-width 0.3s ease-in-out;
}

/* En dispositivos móviles, el texto del brand SIEMPRE es visible */
@media (max-width: 991.98px) {
  .navbar-brand-text {
    max-width: 300px; /* Anula la animación y lo hace visible */
  }
}

/* Efecto hover para enlaces y brand */
.navbar .nav-link:hover,
.navbar .navbar-brand:hover {
  color: var(--white) !important;
  background-color: rgba(255, 255, 255, 0.1) !important; /* Fondo translúcido sutil al pasar el mouse */
}

/* --- ESTADO FINAL PARA LA ANIMACIÓN (AL HACER HOVER) --- */
/* Cuando se hace hover sobre el .navbar-brand completo (logo o el área del texto)... */
.navbar-brand:hover .navbar-brand-text {
  max-width: 300px;
}

/* Menú desplegable oscuro */
.dropdown-menu {
  background-color: var(--black) !important;
  border: 1px solid var(--gray) !important;
}

.dropdown-item {
  color: var(--white) !important;
}

.dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--white) !important;
}

/* Icono de menú hamburguesa (para móviles) en blanco */
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Footer con fondo negro */
.footer {
  background-color: var(--black) !important; 
  border-top: 2px solid var(--black) !important;
}

/* Todo el texto dentro del footer en blanco */
.footer a, .footer .text-dark, .footer h2, .footer small {
  color: var(--white) !important;
}
.footer a:hover {
  color: var(--off-white) !important; /* Un blanco un poco más sutil para el hover */
}

/* --- FIN DE COMPONENTES --- */

/* --- BOTONES CON LA NUEVA PALETA DE COLOR --- */

.btn-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--black) !important;
  font-weight: 700 !important;
}
.btn-primary:hover {
  background-color: var(--primary-light) !important;
  border-color: var(--primary-light) !important;
  color: var(--black) !important;
}

.btn-info, .btn-secondary {
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: var(--black) !important;
  font-weight: 700 !important;
}
.btn-info:hover, .btn-secondary:hover {
  background-color: var(--secondary-light) !important;
  border-color: var(--secondary-light) !important;
  color: var(--black) !important;
}

/* Para el resto de botones, usamos el color de acento */
.btn-warning, .btn-danger, .btn-success {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
  color: var(--black) !important;
  font-weight: 700 !important;
}
.btn-warning:hover, .btn-danger:hover, .btn-success:hover {
  background-color: var(--accent-light) !important;
  border-color: var(--accent-light) !important;
  color: var(--black) !important;
}

.back-btn {
  display: flex;
  z-index: 2000;
  color: var(--white) !important; /* Cambiado a blanco para que contraste con el nav negro */
  font-size: 24px;
}
.back-btn:hover {
  color: var(--off-white) !important; /* Hover sutil */
}

/* Paginación */
.page-item .page-link, .page-item a {
  color: var(--black) !important;
}
.page-item.active .page-link {
  background-color: var(--black) !important;
  border-color: var(--black) !important;
  color: var(--white) !important;
}
.page-link:hover {
  background-color: var(--off-white) !important;
}

/* --- ESTILOS DE COMPONENTES ESPECIALES --- */

/*.home-header {
  height: 90vh; 
  background: var(--off-white) !important;
}*/

.content-header h1{
  font-size: 4em;
  color: var(--black) !important;
}

.content-header p{
  font-weight: 700;
  max-width: 100%;
  color: var(--gray) !important;
}

.calendar-day {
  background-color: var(--white) !important;
  border: 1px solid var(--black) !important;
}

.current-day {
  background-color: var(--secondary-light) !important;
  color: var(--black) !important;
  font-weight: 800 !important;
}

.calendar-heading .calendar-title {
  color: var(--black) !important;
  font-weight: 800;
}

.simple-calendar a {
  color: var(--accent) !important;
}

/* Se eliminan estilos de pacientes recomendados para no interferir con el nuevo branding.
   Puedes volver a crearlos con las nuevas variables si es necesario. */

/* Estilos del footer */

.footer {
  background-color: var(--primary); 
  color: var(--nav-text-color);
  
  .nav-link {
    color: var(--nav-link-color);
    
    &:hover {
      color: var(--nav-link-hover-color);
    }
  }
  
  .navbar-brand {
    color: var(--nav-brand-color);
    
    &:hover {
      color: var(--nav-brand-hover-color);
    }
  }


  @media (min-width: 768px) {

    .row {
      display: flex;
      align-items: center;
    }

    .nav {
      flex-direction: column;
      align-items: flex-start;
      
      &.justify-content-md-end {
        align-items: flex-end;
      }
    }

    .nav-item {
      width: 100%;
      
      .nav-link {
        padding: 0.25rem 0;
      }
    }
  }


  @media (max-width: 767.98px) {
    .nav {
      flex-direction: column;
      align-items: center;
    }

    .nav-item {
      width: 100%;
      text-align: center;
      
      .nav-link {
        padding: 0.5rem 0;
      }
    }
  }
}

/* ESTILOS DEL NAVBAR */

/* Estilos del botón "regresar" */
.back-btn {
display: flex;
z-index: 2000;
color: var(--secondary) !important; /* Cambiar de #ec8157 a rosa principal */
font-size: 24px;
}

.back-btn:hover {
color: var(--secondary-light) !important; /* Cambiar de #c9c756 a verde azulado */
}

.navbar {
background-color: var(--black) !important;
color: #FFFFFF;
box-shadow: 0px 0px 15px #999; /* gray para sombra */
bottom: 5px !important;
}

.navbar .nav-link {
color: #FFFFFF;
font-weight: 500;
}

/* .dropdown-menu {
  background-color: var(--primary) !important;
  border: 1px solid rgba(0,0,0,.1);
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  color: #FFFFFF !important;
}

.dropdown-item:hover {
  background-color: var(--primary-light) !important;
  color: #000 !important;
}
*/
h2, h3, h4, h5, h6 {
color: #495057 !important; /* Neutro oscuro */
}



.btn-info {
  background-color: var(--secondary) !important; /* Cambiar a rosa oscuro */
  border-color: var(--secondary) !important;
  color: #FFFFFF !important;
}

.btn-info:hover {
  background-color: var(--secondary-light) !important; /* Cambiar a rosa claro */
  border-color: var(--secondary-light) !important;
}

.btn-warning {
  background-color: var(--primary) !important; /* Cambiar a verde azulado */
  border-color: var(--primary) !important;
  color: #FFFFFF !important;
}

.btn-warning:hover {
  background-color: #7aada8 !important; /* Versión más oscura del primary */
  border-color: var(--primary) !important;
}


.btn-success {
  background-color: var(--secondary) !important; /* Cambiar a rosa oscuro */
  border-color: var(--secondary) !important;
  color: #FFFFFF !important;
}

.btn-success:hover {
  background-color: var(--secondary-light) !important; /* Cambiar a rosa claro */
  border-color: var(--secondary-light) !important;
}



th {
  background-color: var(--black) !important; /* Cambiar a dark gray */
  color: #FFFFFF !important;
}

tbody tr:nth-child(even) {
  background-color: var(--secondary-light) !important; /* Cambiar a rosa claro para filas pares */
}

tbody tr:nth-child(odd) {
  background-color: rgba(255, 255, 255, 0.9) !important; /* Fondo blanco para filas impares */
}

/* Alternativa: si prefieres un fondo uniforme para todas las filas */
tbody tr {
  background-color: var(--neutral) !important; /* Cambiar a rosa beige */
}

a {
text-decoration: none !important;
color: whitesmoke !important; /* Whitesmoke */
font-weight: 500;
}

label {
color: #495057 !important;
font-weight: 400;
margin-bottom: .3em;
}

/* Estilo para la paginación de kamikari */
 .page-item .page-link {
  color: #212529 !important;
  margin: 0 2px;
  border-radius: 4px;
}

 .page-item.active .page-link {
  background-color: #212529 !important;
  border-color: #212529 !important;
  color: white !important;
}

.page-item.disabled .page-link {
  color: #6c757d !important;
}

.page-link:hover {
  background-color: #e9ecef !important;
  color: #212529 !important;
  border-color: #dee2e6 !important;
}

 .page-item a{
  color: #212529 !important;
}

/* Estilo para el calendario */
.simple-calendar {
display: grid;
/* grid-template-columns: repeat(7, 1fr);  */
gap: 10px;
overflow-x: auto; /* Permite scroll horizontal */
white-space: normal;
scroll-snap-type: x mandatory; /* Habilitamos scroll snap */
-webkit-overflow-scrolling: touch; /* Mejora el scroll en dispositivos táctiles */
}

/* Estilo para cada día */
.calendar-day {
background-color: rgba(255, 255, 255, 0.4) ;
display: flex;
flex-direction: column;
align-items: center;
min-width: -webkit-fill-available;
max-width: min-content;
padding: 10px;
border: 1px solid #ddd;
scroll-snap-align: start; /* Los días se alinean al comenzar el scroll */
aspect-ratio: 4/3;
}

.simple-calendar a{
color: var(--primary) !important; /* Cambiar a verde azulado */
}

.simple-calendar a:hover{
color: var(--primary-light) !important; /* Cambiar a verde menta */
}

/* Estilo para eventos dentro de cada día */
.events {
display: flex;
flex-direction: column;
gap: 1px;
}

.day-name{
display: none;
}

/* Estilos para marcar el día actual */
.current-day {
background-color: var(--secondary-light) !important; /* Cambiar a rosa claro */
color: var(--secondary) !important; /* Cambiar a rosa oscuro */
border-radius: 50%;  /* Hace que el fondo sea redondeado */
padding: 5px 10px;  /* Ajusta el espacio alrededor del número */
font-weight: bold;  /* Resalta el número del día */
}

.current-day-events {
background-color: rgba(217, 234, 226, 0.3) !important; /* Usar --primary-light con transparencia */
padding: 1rem;
border: 1px solid #dee2e6; /* Borde gris claro */
border-radius: 0.5rem;
margin-top: 1rem;
}

.current-day-events h3 {
margin-bottom: 0.5rem;
}

.current-day-events a{
color: var(--primary) !important; /* Cambiar a verde azulado */
}

.current-day-events .event {
margin-bottom: 0rem;
}

.event-text {
font-size: .9em;
}

.calendar-heading  .calendar-title {
color: var(--primary) !important; /* Cambiar a verde azulado */
font-weight: 500;

}

/* Horizontal Calendar Styles */
.horizontal-calendar-container {
  position: relative;
  margin: 2rem 0;
}

.scroll-buttons {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  padding: 0 1rem;
}

.horizontal-calendar {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.horizontal-calendar::-webkit-scrollbar {
  display: none;
}

.days-container {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  min-width: max-content;
}

.day-card {
  flex: 0 0 150px;
  padding: .5rem;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
  background: #cccccc8a;
}

.day-card:hover {
  background-color: #999;
  transform: translateY(-2px);
}

.day-card.current-day {
  border-color: var(--bs-primary);
  background-color: rgba(var(--bs-primary-rgb), 0.1);
}


/* Ajustes para pantallas móviles */
@media (max-width: 992px) {

.simple-calendar {
grid-template-columns: 100%; /* En móviles, la grilla será de 1 columna */
overflow-x: hidden; /* Permite scroll horizontal */
white-space: nowrap; /* Impide que se rompan las líneas */
height: 495px
}

.current-day-events {
padding-left: .1rem;
padding-right: .1rem;

}

.calendar-heading, .current-day-events h3{
text-align: center;
}

.calendar-heading  .calendar-title {
color: var(--primary) !important;

}

.calendar-day {
display: inline-block;
width: 95%;
scroll-snap-align: center; /* Centra el día al hacer scroll */
aspect-ratio: 10;
margin: 0px auto;
}

.day-number {
text-align: center;
font-size: 1.5rem;
font-weight: bold;
}
.day-name{
display: inline-block;
}
/* Hacer que los eventos sean verticales en móviles */
.events {
display: block;
}

.day{
display: grid;
grid-template-columns: 100%;
width: 90vw;
text-align: center;
margin: 0px auto;
}

#availabilty .day{
    width: 100% !important;
}

#availabilty .day-cell{
    min-height: 100px;
    margin-bottom: 10px;
}

.simple-calendar thead{
display: none;
}


.simple-calendar .prev-month, .next-month{
display: none;
}

.current-day{
border-radius: 8px;
}
.event-text {
font-size: 1.2em;
}
}


/* EVENTS SHOW */

.event-header{
/* background: url(/background_event_header_169.jpg); */
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent, rgba(0, 0, 0, 0.8)), url('') ;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
height: 45vh;
margin-bottom: 30px;

}
.overlay-header {
background: linear-gradient(to top, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, .1));  
height: 45vh;  
}

.event-container{
background-color: white;
padding: 15px;
}

@media (max-width: 992px)
{
.event-header{
height: 200px;
margin-bottom: 0px;
}

.event-header h2{
margin-top: 20px;
}
}


/* EVENTS NEW (MODAL) */

.custom-offcanvas {
position: fixed;
top: 0;
right: -100%;
width: 380px; /* Ajusta según tus necesidades */
height: 100%;
background-color: white;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: right 0.3s ease-in-out;
z-index: 1070;
}

.custom-offcanvas.show {
right: 0 !important; /* Muestra el offcanvas */

}

.custom-offcanvas-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem;
border-bottom: 1px solid #ddd;
}

.custom-offcanvas-body {
padding: 1rem;
overflow-y: auto !important;
height: 90%;
}

.custom-offcanvas-overlay{
display: none;
position:fixed;
top:0;
background: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
z-index: 1060;
}

.custom-offcanvas-overlay.show{
display: block;
}

/* ESTILOS DEL INDEX HOME */

.home-header {
height: 90vh; 
/*background: url(/assets/virk_karate_header-674500d1c6f4b35c40c02ed4049348fb2fd93acbe8aa7f31fb909c7efe339aab.jpg) fixed no-repeat;*/
/* background: linear-gradient(to left, transparent, rgba(0, 0, 0, 0.7)), url(/assets/virk_karate_header-674500d1c6f4b35c40c02ed4049348fb2fd93acbe8aa7f31fb909c7efe339aab.jpg) no-repeat; */
background-attachment: fixed;
background-repeat: no-repeat;
background-position: top right;
background-size: cover;


}

/* .home-header   .overlay-header {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 100%;
background: linear-gradient(to top, rgba(0, 0, 0, .3), rgba(0, 0, 0, .1)), linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .5));
z-index: 1;

} */

.content-header {
position: relative;
z-index: 2;
padding: 0 15px;
}

.content-header h1{
font-size: 4em
}

.content-header p{
font-weight: 400;
max-width: 100%;
}

.icon-home{
width: 200px;
}

.whatsapp-icon{
    height: 32px;
}

.whatsapp-text{
    font-weight: 500;
    margin-top: 0px auto !important;
    margin-bottom: 0px auto !important;
}


@media (max-width: 992px){
/* .home-header{
    background-position-x: -1065px;
    height: 100vh;
} */

.content-header p {
    font-weight: 400;
    max-width: 100%;
}
}


/* ESTILOS ANIMACIONES ANIMATE CONTROLLER */

@keyframes fadeInOut {
0% {
opacity: 0;
transform: translateX(-200px);
}
20% {
opacity: 1;
transform: translateX(0);
}
80% {
opacity: 1;
transform: translateX(0);
}
100% {
opacity: 0;
transform: translateX(-200px);
}
}
.hidden {
animation: fadeInOut 4s ease-in-out forwards !important;
}

.visible {
animation: fadeInOut 4s ease-in-out forwards !important;
}

/* ESTILOS ANIMACIONES FADE IN CONTROLLER */
.fadein_hidden {
opacity: 0;
transform: translateX(-50px);
transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadein_visible {
opacity: 1;
transform: translateX(0);
transition: opacity 0.8s ease, transform 0.8s ease;
}



/* FILTER RESERVATIONS */

@media (max-width: 992px){
.filter-reservations{
flex-wrap: wrap;
justify-content: center;
}
}

/* ESTILOS PARA INSTRUCTORS - SHOW */

.day-cell {
padding: 10px;
border: 1px solid #CCC;
border-radius: 8px;
background-color: #F8F9FA;
min-height: 150px;
}

.day-name {
font-size: 1.2rem;
font-weight: bold;
color: #343A40;
}

.availability-slot {
display: block;
border-radius: 5px;
font-size: 0.9rem;
}

.no-availability {
font-size: 0.9rem;
color: #DC3545;
font-style: italic;
}
  

.red{
    background-color: red !important;
    color: white !important;
    font-size: x-small !important;
    font-weight: bold !important;
}

/* Estilos específicos para el calendario de disponibilidad */
.availability-calendar {
  position: relative;
  margin: 1rem 0;
}

.availability-calendar .calendar-navigation {
  position: sticky;
  top: 0;
  background-color: white;
  z-index: 3;
  padding: 0.5rem 0;
  border-bottom: 1px solid #dee2e6;
}

.availability-calendar .table-responsive {
  overflow-x: hidden;
  margin-top: 0.5rem;
}

.availability-calendar .table-container {
  position: relative;
  min-width: 100%;
}

.availability-calendar .table {
  background-color: white;
  border-radius: 8px;
  margin-bottom: 0;
  font-size: 0.875rem; /* Texto más pequeño */
}

.availability-calendar .table th {
  background-color: #f8f9fa;
  text-align: center;
  padding: 0.5rem;
  position: sticky;
  top: 0;
  z-index: 1;
  font-size: 0.875rem;
  min-width: 100px; /* Ancho mínimo para las columnas */
}

.availability-calendar .table td:first-child {
  position: sticky;
  left: 0;
  background-color: #f8f9fa;
  z-index: 2;
  font-weight: 500;
  padding: 0.4rem;
  text-align: center;
  border-right: 2px solid #dee2e6;
}

.availability-calendar .table td {
  height: 35px; /* Celdas más compactas */
  padding: 0.4rem;
  vertical-align: middle;
  font-size: 0.8rem;
}

.availability-calendar .cursor-pointer {
  cursor: pointer;
}

.availability-calendar .cursor-pointer:hover {
  opacity: 0.8;
  transform: scale(1.02);
  transition: all 0.2s ease;
}

.availability-calendar .selected-slot {
  border: 2px solid #0d6efd !important;
  position: relative;
  background-color: #0d6efd !important;
}

.availability-calendar .selected-slot::after {
  content: '✓';
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 10px;
 
}

/* Estilos responsive */
@media (max-width: 768px) {
  .availability-calendar {
    margin: 0.5rem -0.5rem; /* Márgenes negativos para aprovechar más espacio */
  }

  .availability-calendar .table {
    font-size: 0.75rem;
  }

  .availability-calendar .table th,
  .availability-calendar .table td:first-child {
    min-width: 80px;
  }

  .availability-calendar .table td {
    height: 30px;
    padding: 0.3rem;
  }
}



/* Personalización adicional */
.ts-wrapper.form-select {
  padding: 0;
  height: auto;
}

.ts-control {
  border: none !important;
  padding: 0.375rem 2.25rem 0.375rem 0.75rem !important;
}

.ts-dropdown {
  border-radius: 0.375rem;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.ts-dropdown .active {
  background-color: #c9c756;
  color: white;
}

.ts-dropdown .option {
  padding: 0.5rem 0.75rem;
}

.no-results {
  color: #6c757d;
  font-style: italic;
}

/* Estilos para Tom Select */

#event_user_id-ts-control{
    width: 95%;
}


.ts-wrapper {
  width: 100% !important;
}

.ts-control {
  width: 100% !important;
  border: 1px solid #ced4da !important;
  padding: 0.375rem 0.75rem !important;
  border-radius: 0.375rem !important;
  min-height: 38px !important;
  box-shadow: none !important;
}

.ts-dropdown {
  width: 100% !important;
  border: 1px solid #ced4da !important;
  border-radius: 0 0 0.375rem 0.375rem !important;
  margin-top: -1px !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

.ts-dropdown .option {
  padding: 0.5rem 0.75rem !important;
}

.ts-wrapper.single .ts-control {
  background-color: white !important;
}

.ts-wrapper.single.input-active .ts-control {
  background-color: white !important;
}

/* Eliminar cualquier duplicación de campos */
.ts-wrapper .ts-control > input {
  opacity: 1 !important;
  border: none;
}

.clear-button{
    margin-left: 6px;
    font-size: xx-large;
    right: 0;
    text-align: right;
    display: inline-flex
;
}

/* Asegurarse de que el contenedor también tome el ancho completo */
[data-controller="select-user"] {
  width: 100%;
  display: block;
}

@media (max-width: 490px){
    #event_user_id-ts-control{
        width: 89%;
    }
}

/* Headers y elementos destacados */
.section-header {
  color: var(--primary) !important;
}

/* Elementos de acento */
.accent-element {
  background-color: var(--secondary) !important; /* Cambiar a rosa oscuro */
}

/* Fondos suaves */
.soft-background {
  background-color: var(--primary-light) !important; /* Cambiar a verde menta */
}

/* Elementos neutros */
.neutral-element {
  background-color: var(--neutral) !important; /* Cambiar a rosa beige */
}

/* Agregar al final de application.css */
table tbody tr.recommended-patient-Jesica {
  background-color: #f8f9ff !important;
}

table tbody tr.recommended-patient-Jesica:hover {
  background-color: #eef0ff !important;
}

table.table-striped tbody tr.recommended-patient-Jesica:nth-of-type(odd) {
  background-color: #f0f2ff !important;
}

table.table-striped tbody tr.recommended-patient-Jesica:nth-of-type(odd):hover {
  background-color: #e8ebff !important;
}

/* Estilos para pacientes recomendados */
tr.recommended-patient-Jesica {
  --bs-table-bg: #cfe2ff !important;
  --bs-table-hover-bg: #b9d6ff !important;
}

.table-striped > tbody > tr.recommended-patient-Jesica:nth-of-type(odd) {
  --bs-table-accent-bg: #dce9ff !important;
}

table tbody tr.recommended-patient-Camila {
  background-color: #f8f9ff !important;
}

table tbody tr.recommended-patient-Camila:hover {
  background-color: #eef0ff !important;
}

table.table-striped tbody tr.recommended-patient-Camila:nth-of-type(odd) {
  background-color: #f0f2ff !important;
}

table.table-striped tbody tr.recommended-patient-Camila:nth-of-type(odd):hover {
  background-color: #e8ebff !important;
}

/* Estilos para pacientes recomendados */
tr.recommended-patient-Camila {
  --bs-table-bg: #fff3cd !important;
  --bs-table-hover-bg: #ffeda7 !important;
}

.table-striped > tbody > tr.recommended-patient-Camila:nth-of-type(odd) {
  --bs-table-accent-bg: #fff7d9 !important;
}

/* Estilos para paciente recomendados en el dashboard */

.recommended-patient-Jesica {
  background-color: #cfe2ff !important;
}
.recommended-patient-Camila{
  background-color: #fff3cd !important;
}

.alert-info{
  --bs-alert-bg: var(--secondary) !important;
  --bs-alert-border-color: var(--secondary) !important;
  --bs-alert-color: #000000 !important;
  --bs-alert-link-color: #000000 !important;
  --bs-alert-link-hover-color: #000000 !important;
  --bs-alert-link-hover-text-decoration: underline !important;
  --bs-alert-link-hover-opacity: 1 !important;
  --bs-alert-link-hover-bg: #cfe2ff !important;
  --bs-alert-link-hover-border-color: #cfe2ff !important;
}
