/* 🎨 Variables globales */
:root {
  --primary: #8C52FF;
  --secondary: #A652FF;
  --highlight: #52FFA3;
  --background-light: #F5F5FF;
  --text-main: #2E2E2E;
  --text-secondary: #666666;
  --button-light: #D1B3FF;
  --border-detail: #8C52FF;
}

/* 🌐 General */
body {
  font-family: 'Roboto', sans-serif;
  background-color: var(--background-light);
  color: var(--text-main);
}

.dark-mode .content-wrapper {
  background-color: #15151d !important;
  color: #ccc !important;
}

/* 🔝 Navbar */
.main-header {
  background-color: #ffffff;
  border-bottom: 1px solid #ddd;
  box-shadow: 0 2px 4px rgba(0,0,0,0.04);
}

.main-header .nav-link {
  color: var(--text-main);
  font-weight: 500;
}

.main-header .nav-link:hover {
  color: var(--primary);
}

/* 📦 Sidebar */
.main-sidebar {
  background-color: var(--border-detail);
}

.brand-link.logo {
  background-color: var(--primary);
  padding: 0.75rem 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.brand-logo-gif {
  max-height: 48px;
  object-fit: contain;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.25));
}

.user-panel .image img {
  border: 2px solid var(--primary);
}

/* 📁 Sidebar Links */
.nav-sidebar .nav-link {
  color: #fff;
  transition: background-color 0.2s;
}

.nav-sidebar .nav-link:hover,
.nav-sidebar .nav-link.active {
  background-color: var(--primary) !important;
  color: #fff !important;
}

.nav-sidebar .nav-link i,
.nav-sidebar .nav-link p {
  color: #fff;
}

/* 🔴 Logout */
.nav-link.text-danger {
  color: var(--highlight) !important;
}

/* 📦 Notificaciones Dropdown */
.notifications-menu .dropdown-menu {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  min-width: 400px;
  width: max-content;
  max-width: 500px;
  white-space: normal;
}

/* 🧾 Toasts */
.toast {
  z-index: 1060;
  font-weight: 500;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

/* 🟢 Toast Success */
.toast .bg-success {
  background-color: var(--highlight) !important;
}

/* 🔵 Toast Info */
.toast .bg-info {
  background-color: var(--secondary) !important;
}

/* 🟨 Alertas */
.alert-success {
  background-color: var(--highlight);
  color: var(--text-main);
  border-left: 4px solid #3ddc91;
}

.alert-danger {
  background-color: #ffe6e9;
  color: #e63946;
  border-left: 4px solid #e63946;
}

.alert-warning {
  background-color: #fff7e0;
  color: #856404;
  border-left: 4px solid #ffc107;
}

.alert-info {
  background-color: var(--secondary);
  color: white;
  border-left: 4px solid var(--primary);
}

.alert {
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* 📝 Inputs */
.form-control:focus {
  border-color: var(--border-detail);
  box-shadow: 0 0 0 0.2rem rgba(140, 82, 255, 0.25);
}

label {
  font-weight: 600;
  color: var(--text-main);
}

/* 🔘 Botones */
.btn-primary {
  background-color: var(--primary);
  border-color: var(--primary);
  color: white;
}

.btn-primary:hover {
  background-color: var(--secondary);
  border-color: var(--secondary);
}

.btn-success {
  background-color: var(--highlight);
  border-color: var(--highlight);
}

.btn-success:hover {
  background-color: #4be6a2;
  border-color: #4be6a2;
}

.btn-secondary {
  background-color: var(--button-light);
  color: var(--text-main);
  border: none;
}

.btn-secondary:hover {
  background-color: var(--secondary);
  color: white;
}

/* 📄 Select2 */
.select2-container--default .select2-selection--single {
  border: 1px solid var(--border-detail);
  height: 38px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 36px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px;
}

/* 📁 Input file */
.form-control-file {
  border: 1px solid var(--border-detail);
  padding: 6px;
  border-radius: 4px;
  background-color: #fafafa;
  transition: border-color 0.2s ease;
}
.form-control-file:hover {
  border-color: var(--secondary);
}

/* 🧩 Headers personalizados para cards */
.card-header-turno {
  background-color: var(--primary) !important;
  color: white !important;
  border-bottom: 1px solid var(--border-detail);
}

.card-header-disponibilidad {
  background-color: var(--highlight) !important;
  color: var(--text-main) !important;
  border-bottom: 1px solid var(--highlight);
}

/* 🖼️ Fondo de contenido */
.content-wrapper {
  background-color: var(--background-light);
  color: var(--text-main);
}

/* ⬇️ Footer */
footer {
  background: var(--button-light);
  color: var(--text-main);
  font-size: 0.9rem;
}

/* 📋 Card contenedora de turnos */
.card.card-outline.card-info {
  border: 1px solid var(--secondary);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
}

/* 🧠 Encabezado de la card */
.card.card-outline.card-info .card-header {
  background-color: var(--secondary);
  color: white;
  border-bottom: 1px solid var(--primary);
}

/* 🔍 Filtros */
#form-filtros {
  background-color: #f7f7ff;
  border: 1px solid var(--border-detail);
  border-radius: 6px;
}

#form-filtros label {
  color: var(--text-main);
  font-weight: 600;
}

/* 📋 Tabla turnos */
#tabla-turnos {
  border: 1px solid #ddd;
  background-color: white;
  font-size: 0.9rem;
}

#tabla-turnos thead {
  background-color: var(--secondary);
  color: white;
}

#tabla-turnos th,
#tabla-turnos td {
  vertical-align: middle;
  text-align: center;
}

/* 🏷️ Badges dinámicos por estado */
.badge.bg-success {
  background-color: var(--highlight) !important;
  color: var(--text-main);
}

.badge.bg-info {
  background-color: var(--secondary) !important;
  color: white;
}

.badge.bg-warning {
  background-color: var(--button-light) !important;
  color: var(--text-main);
}

.badge.bg-secondary {
  background-color: #bfbfbf !important;
  color: white;
}

/* ⚙️ Botones de acción */
#tabla-turnos .btn-warning {
  background-color: #f0ad4e;
  border-color: #eea236;
  color: white;
}

#tabla-turnos .btn-warning:hover {
  background-color: #ec971f;
  border-color: #d58512;
}

#tabla-turnos .btn-danger {
  background-color: #d9534f;
  border-color: #d43f3a;
  color: white;
}

#tabla-turnos .btn-danger:hover {
  background-color: #c9302c;
  border-color: #ac2925;
}
/* 📅 Contenedor del calendario */
#calendar {
  background-color: white;
  border-radius: 6px;
  padding: 1rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  border: 1px solid var(--border-detail);
}

/* 🗓️ FullCalendar botones */
.fc .fc-button {
  background-color: var(--primary);
  border: none;
  color: white;
  font-weight: 500;
  border-radius: 4px;
  padding: 0.5rem 1rem;
}

.fc .fc-button:hover,
.fc .fc-button:focus {
  background-color: var(--secondary);
  outline: none;
  box-shadow: none;
}

/* 🧭 Toolbar */
.fc-toolbar-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text-main);
}

/* 📌 Evento */
.fc-event {
  background-color: var(--highlight);
  color: var(--text-main);
  border: none;
  font-size: 0.85rem;
  padding: 4px 8px;
  border-radius: 4px;
}

.fc-event:hover {
  background-color: #4be6a2;
}

/* 📎 Día actual */
.fc .fc-daygrid-day.fc-day-today {
  background-color: #eae4ff;
}

/* 🌙 Dark Mode para calendar */
.dark-mode #calendar {
  background-color: #1f1f2b;
  border-color: var(--primary);
}

.dark-mode .fc .fc-toolbar-title,
.dark-mode .fc .fc-button {
  color: white;
}

.dark-mode .fc-event {
  background-color: var(--highlight);
  color: #1a1a1a;
}

/* 🧾 Modal de Detalle Turno */
#modalTurnoDetalle .modal-content {
  border-radius: 10px;
  border: 1px solid var(--border-detail);
}

#modalTurnoDetalle .modal-header {
  background-color: var(--primary);
  color: white;
  border-bottom: 1px solid var(--border-detail);
}

#modalTurnoDetalle .modal-body {
  background-color: #ffffff;
  color: var(--text-main);
  font-size: 0.9rem;
  padding: 1rem 1.2rem;
}

#modalTurnoDetalle .modal-body p {
  margin-bottom: 0.6rem;
  line-height: 1.4;
}

#modalTurnoDetalle .modal-body strong {
  color: var(--text-main);
}

/* 🌙 Dark mode para modal */
.dark-mode #modalTurnoDetalle .modal-content {
  background-color: #20202a;
  color: #ccc;
}

.dark-mode #modalTurnoDetalle .modal-header {
  background-color: var(--primary);
  color: white;
}

/* 📋 Tabla de comprobantes */
.table {
  border: 1px solid #ddd;
  font-size: 0.92rem;
  background-color: white;
}

.table th {
  font-weight: 600;
  text-align: center;
  background-color: var(--secondary);
  color: white;
}

.table td {
  vertical-align: middle;
  text-align: center;
}

/* 📎 Ver PDF botón */
.btn.btn-secondary {
  background-color: var(--button-light);
  color: var(--text-main);
  border: none;
}

.btn.btn-secondary:hover {
  background-color: var(--secondary);
  color: white;
}

/* ✅ Estado: Aprobado */
.badge.bg-success {
  background-color: var(--highlight) !important;
  color: var(--text-main);
}

/* ⚠️ Estado: Pendiente */
.badge.bg-warning {
  background-color: var(--button-light) !important;
  color: var(--text-main);
}

/* ❌ Estado: Rechazado */
.badge.bg-danger {
  background-color: #f44336 !important;
  color: white;
}

/* 🔘 Botones de acción aprobar/rechazar */
.btn-sm.btn-success {
  background-color: var(--highlight);
  border-color: var(--highlight);
  color: var(--text-main);
}

.btn-sm.btn-success:hover {
  background-color: #4be6a2;
  border-color: #4be6a2;
  color: var(--text-main);
}

.btn-sm.btn-danger {
  background-color: #e53935;
  border-color: #e53935;
  color: white;
}

.btn-sm.btn-danger:hover {
  background-color: #c62828;
  border-color: #c62828;
}

/* 🖼️ Comprobante imagen preview */
td img {
  border: 1px solid var(--border-detail);
  border-radius: 6px;
  max-height: 70px;
}

/* ℹ️ Mensaje sin comprobantes */
.alert-info {
  background-color: var(--secondary);
  color: white;
  border-left: 4px solid var(--primary);
}

/* 🟪 Override para bg-info en tablas */
.table thead.bg-info {
  background-color: var(--secondary) !important;
  color: white !important;
}

/* 💬 Burbuja violeta para mensajes del admin */
.bg-primary.text-white {
  background-color: var(--primary) !important;
  color: white !important;
}
.calendar-icon-custom {
  color: var(--primary) !important;
}
.icono-turno-manual {
  color: var(--primary) !important;
}
.icono-feriado {
  color: var(--primary) !important;
  margin-right: 8px;
  font-size: 1.3em;     
}
.icono-panelprincipal {
  color: var(--primary) !important;
}
.icono-turnodia {
  color: var(--primary) !important;
}
.titulo-seccion {
  color: #5c5c5ccf;
  font-weight: 600;
}
/* 💬 Mejor estilo para el contador de mensajes o notificaciones */
.navbar-badge {
  font-size: 0.7rem;
  padding: 0.3em 0.5em;
  line-height: 1;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-2px);
  background-color: var(--highlight);
  color: var(--text-main);
}

/* 🎨 Estilo custom para toast de mensajes nuevos */
.toast.bg-info {
  background-color: var(--primary) !important; /* Cambiá por el color que quieras */
  color: #ecf0f1 !important; /* Texto más visible */
}

.toast.bg-info .toast-header {
  background-color: #34495e !important;
  color: #ecf0f1 !important;
}

.toast.bg-info .toast-body a {
  color: var(--primary);
  font-weight: bold;
  text-decoration: underline;
}
.fc-event {
  background-color: var(--highlight) !important;
  color: var(--text-main) !important;
  font-size: 14px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  overflow: visible !important;
  white-space: nowrap !important;
  text-overflow: unset !important;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.fc-event-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
  text-align: center;
}

.fc-daygrid-event-dot {
  display: none;
}
.card.border-left-success {
  border-left: 5px solid #28a745 !important;
}
.card.border-left-warning {
  border-left: 5px solid #ffc107 !important;
}
/* Colores de eventos dinámicos */
.fc-event.evento-ocupado {
  background-color: #f44336 !important;
  color: white !important;
  font-weight: bold;
  font-size: 13px;
  text-align: center;
}

.fc-event.evento-libre {
  background-color: var(--highlight) !important;
  color: var(--text-main) !important;
  font-weight: bold;
  font-size: 13px;
  text-align: center;
}
.fc-event-title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  width: auto !important;
  text-align: center;
}