/* static/css/style.css */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Montserrat:wght@500;600;700&display=swap');

:root {
  /* Paleta Principal - Teal y Grises */
  --color-primario: #424242;        /* Teal Oscuro */
  --color-secundario: #686868;      /* Teal Claro */
  --color-fondo-global: #F5F5F5;     /* Gris Muy Claro (Solicitado) */
  --color-fondo-contenido: #FFFFFF; /* Blanco */
  --color-texto-principal: #424242;  /* Gris Oscuro */
  --color-texto-secundario: #757575; /* Gris Medio */
  --color-bordes-sutiles: #E0E0E0;  /* Gris para bordes */

  /* Fuentes */
  --fuente-titulos: 'Montserrat', sans-serif;
  --fuente-texto: 'Plus Jakarta Sans', sans-serif;
  
  /* Espaciado */
  --espaciado-xs: 0.25rem;
  --espaciado-sm: 0.5rem;
  --espaciado-md: 1rem;
  --espaciado-lg: 1.5rem;
  --espaciado-xl: 2rem;
  
  /* Bordes y sombras */
  --border-radius-sm: 0.25rem;
  --border-radius-md: 0.5rem;
  --border-radius-lg: 0.75rem;
  --box-shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
  --box-shadow-md: 0 4px 8px rgba(0,0,0,0.08);
  --transition-default: all 0.2s ease-in-out;
}

body {
  font-family: var(--fuente-texto);
  color: var(--color-texto-principal);
  background-color: var(--color-fondo-global);
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Contenedor principal y secciones con fondo blanco */
.content-section,
.hero-section,
.card,
.search-form-container,
.promoted-section {
    background-color: var(--color-fondo-contenido);
    border-radius: var(--border-radius-md);
    box-shadow: var(--box-shadow-sm);
    transition: var(--transition-default);
}

/* Ajustes padding/margin */
.hero-section {
    padding: var(--espaciado-xl) var(--espaciado-lg);
    margin-bottom: var(--espaciado-xl);
}
.content-section,
.promoted-section {
    padding: var(--espaciado-lg) var(--espaciado-md);
    margin-bottom: var(--espaciado-lg);
}
.search-form-container {
    background-color: transparent;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--fuente-titulos);
  font-weight: 600;
  color: var(--color-primario);
  margin-top: var(--espaciado-md);
  margin-bottom: var(--espaciado-sm);
  letter-spacing: -0.02em;
  line-height: 1.3;
}

h1 { font-size: 1.8rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.15rem; }
h5 { font-size: 1.05rem; }
h6 { font-size: 1rem; }

/* Tamaños de títulos para documento específicos (términos, política de privacidad, etc.) */
.terms-container h1,
.privacy-container h1,
.cookies-container h1,
.about-container h1 {
  font-size: 2.2rem;
}

.terms-container h2,
.privacy-container h2,
.cookies-container h2,
.about-container h2 {
  font-size: 1.8rem;
}

.terms-container h3,
.privacy-container h3,
.cookies-container h3,
.about-container h3 {
  font-size: 1.5rem;
}

a {
  color: var(--color-secundario);
  text-decoration: none;
  transition: var(--transition-default);
}

a:hover {
  color: var(--color-primario);
  text-decoration: none;
}

/* Estilos de botones consolidados */
.btn {
  font-family: var(--fuente-texto);
  font-weight: 500;
  border-radius: var(--border-radius-sm);
  padding: 0.6rem 1.2rem;
  transition: var(--transition-default);
  text-transform: none;
  letter-spacing: 0.02em;
  box-shadow: none;
  background-color: var(--color-primario);
  border-color: var(--color-primario);
  color: #FFFFFF;
}

.btn:hover {
  background-color: #1a7f80;
  border-color: #1a7f80;
  color: #FFFFFF;
}

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

.btn-secondary:hover {
  background-color: #3dbaba;
  border-color: #3dbaba;
}

/* Estilos de modales consolidados */
.modal {
    z-index: 1050;
    /* Bootstrap controla display: none/block */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    outline: 0;
}

.modal-backdrop {
    z-index: 1040;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
}

.modal.show {
    /* Bootstrap controla display: block */
}

.modal-dialog {
    position: relative;
    width: auto;
    margin: 1.75rem auto;
    max-width: 800px;
    pointer-events: none;
}

.modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - 3.5rem);
}

.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: #fff;
    background-clip: padding-box;
    border: none;
    border-radius: 12px;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    outline: 0;
}

.modal-header {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e9ecef;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    background-color: #fff;
}

.modal-title {
    margin: 0;
    font-family: var(--fuente-titulos);
    font-weight: 600;
    color: #2a3132;
    font-size: 1.25rem;
}

.modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: 1.5rem;
    background-color: #fff;
}

.modal-footer {
    display: flex;
    flex-wrap: wrap;
    flex-shrink: 0;
    align-items: center;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
    border-top: 1px solid #e9ecef;
    border-bottom-right-radius: 12px;
    border-bottom-left-radius: 12px;
    background-color: #fff;
}

/* Botones de modal sin transiciones */
.btn-modal-close {
    background-color: #f8f9fa;
    color: #6c757d;
    border: 1px solid #dee2e6;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-weight: 500;
}

.btn-modal-close:hover {
    background-color: #e9ecef;
    color: #495057;
}

.btn-modal-apply {
    background-color: #336b87;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-weight: 500;
}

.btn-modal-apply:hover {
    background-color: #2a5a6f;
    color: white;
}

/* --- ELIMINADAS reglas de display, transform, transition, animation en .modal, .modal.show, .modal-dialog, .modal-content, .modal-backdrop y media queries relacionadas --- */

/* Tarjetas */
.card {
  border: 1px solid var(--color-bordes-sutiles);
  box-shadow: var(--box-shadow-sm);
  transition: var(--transition-default);
  overflow: hidden;
}
/* Efecto hover de elevación eliminado por solicitud del usuario */
.card:hover {
    /* box-shadow: var(--box-shadow-md); */
    /* transform: translateY(-3px); */
}

.card-title {
    color: var(--color-primario);
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: var(--espaciado-sm);
}

.card-subtitle,
.text-muted,
.card-footer small {
    color: var(--color-texto-secundario) !important;
    font-size: 0.9rem;
}

/* Formularios */
.form-label {
    font-weight: 500;
    color: var(--color-texto-principal);
    margin-bottom: var(--espaciado-sm);
    font-size: 0.95rem;
}

.form-select,
.form-control {
    border: 1px solid var(--color-bordes-sutiles);
    color: var(--color-texto-principal);
    border-radius: var(--border-radius-sm);
    padding: 0.6rem 0.8rem;
    font-family: var(--fuente-texto);
    transition: var(--transition-default);
}
.form-select:focus,
.form-control:focus {
    border-color: var(--color-secundario);
    box-shadow: 0 0 0 0.25rem rgba(72, 207, 203, 0.25);
}

/* Navbar */
.navbar {
    background-color: #FFFFFF;
    border-bottom: 1px solid var(--color-bordes-sutiles);
    box-shadow: var(--box-shadow-sm);
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

.navbar-brand {
    font-family: var(--fuente-titulos);
    font-weight: 700;
    color: var(--color-primario) !important;
    font-size: 1.4rem;
    letter-spacing: -0.03em;
}

.navbar .nav-link {
    color: var(--color-texto-principal) !important;
    font-family: var(--fuente-texto);
    font-weight: 500;
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    padding: 0.5rem 0.8rem;
    border-radius: var(--border-radius-sm);
    transition: var(--transition-default);
    font-size: 0.95rem;
}

.navbar .nav-link:hover {
    color: var(--color-primario) !important;
    background-color: rgba(34, 151, 153, 0.1);
}

.navbar .nav-link.active {
    color: var(--color-primario) !important;
    font-weight: 600;
}

/* Fix específico para dropdowns en navbar fixed */
.navbar.fixed-top .dropdown-menu {
    position: absolute !important;
    z-index: 1055 !important;
    top: 100% !important;
    transform: none !important;
}

.navbar .nav-item.dropdown {
    position: relative !important;
}



/* ===== FOOTER MODERNO Y MINIMALISTA ===== */
.footer-modern {
    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
    color: #ffffff;
    margin-top: 4rem;
}

.footer-modern::before {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 93, 21, 0.5), transparent);
    margin-bottom: 0;
}

.footer-content {
    padding: 3rem 0 2rem 0;
}

/* Logo y Marca */
.footer-brand {
    margin-bottom: 1.5rem;
}

.footer-logo {
    height: 45px;
    width: auto;
    margin-bottom: 1rem;
    filter: brightness(0) invert(1);
}

.footer-description {
    color: #b8bcc8;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    max-width: 280px;
}

/* Redes Sociales */
.footer-social {
    display: flex;
    gap: 0.75rem;
}

.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: rgba(255, 255, 255, 0.08);
    color: #b8bcc8;
    border-radius: 50%;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1.1rem;
}

.footer-social a:hover {
    background: rgb(255, 93, 21);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(255, 93, 21, 0.3);
}

/* Títulos de sección */
.footer-title {
    color: #ffffff;
    font-family: var(--fuente-titulos);
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
    position: relative;
    padding-bottom: 0.5rem;
}

.footer-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background: rgb(255, 93, 21);
    border-radius: 1px;
}

/* Menús de links */
.footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu li {
    margin-bottom: 0.5rem;
}

.footer-menu a {
    color: #b8bcc8;
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    display: inline-block;
    position: relative;
}

.footer-menu a:hover {
    color: #ffffff;
    transform: translateX(3px);
}

.footer-menu a::before {
    content: '';
    position: absolute;
    left: -8px;
    top: 50%;
    transform: translateY(-50%) scaleX(0);
    width: 3px;
    height: 3px;
    background: rgb(255, 93, 21);
    border-radius: 50%;
    transition: transform 0.3s ease;
}

.footer-menu a:hover::before {
    transform: translateY(-50%) scaleX(1);
}

/* Libro de Reclamaciones - Diseño especial */
.footer-special-link {
    margin-top: 0.5rem;
}

.complaints-book-link {
    display: flex;
    align-items: center;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.complaints-book-link:hover {
    background: rgba(255, 93, 21, 0.1);
    border-color: rgba(255, 93, 21, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.complaints-icon {
    width: 40px;
    height: 40px;
    margin-right: 0.75rem;
    border-radius: 6px;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.complaints-text {
    display: flex;
    flex-direction: column;
}

.complaints-title {
    color: #ffffff;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 0.1rem;
}

.complaints-subtitle {
    color: #b8bcc8;
    font-size: 0.75rem;
}

/* Footer Bottom */
.footer-bottom {
    background: rgba(0, 0, 0, 0.3);
    padding: 1.25rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-copyright,
.footer-made {
    margin: 0;
    font-size: 0.85rem;
    color: #9ca3af;
    line-height: 1.4;
}

.footer-copyright strong {
    color: #ffffff;
}

.footer-made {
    font-style: italic;
}

.heart {
    color: #ff6b6b;
    animation: heartbeat 2s infinite;
    font-size: 1.1em;
}

@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Responsive Design */
@media (max-width: 991.98px) {
    .footer-content {
        padding: 2.5rem 0 1.5rem 0;
    }
    
    .footer-brand {
        text-align: center;
        margin-bottom: 2rem;
    }
    
    .footer-description {
        max-width: none;
        text-align: center;
    }
    
    .footer-social {
        justify-content: center;
    }
}

@media (max-width: 767.98px) {
    .footer-content {
        padding: 2rem 0 1rem 0;
    }
    
    .footer-logo {
        height: 40px;
    }
    
    .footer-description {
        font-size: 0.9rem;
    }
    
    .footer-title {
        font-size: 0.95rem;
        text-align: center;
        margin-bottom: 1rem;
    }
    
    .footer-menu {
        text-align: center;
    }
    
    .complaints-book-link {
        justify-content: center;
        text-align: center;
    }
    
    .footer-copyright,
    .footer-made {
        text-align: center;
        font-size: 0.8rem;
    }
    
    .footer-bottom .col-md-6:last-child {
        margin-top: 0.5rem;
    }
}

/* Otros Ajustes */
.hero-image-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.hero-image {
    max-width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: .3rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .hero-image-container {
        margin-top: 2rem;
    }
    .hero-image {
        max-height: 400px;
    }
}

img[src$="placeholder.png"],
.image-error-placeholder {
    /* ... estilos existentes ... */
    background-color: #f8f9fa; /* Fondo claro */
    color: var(--color-texto-secundario);
    border: 1px dashed var(--color-bordes-sutiles);
}

.image-error-placeholder {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 220px; /* Ajustar a la altura de la imagen de la tarjeta */
    text-align: center;
    font-size: 0.9rem;
}

.image-load-error {
    filter: grayscale(80%) brightness(95%);
    opacity: 0.7;
}

/* Badge Promocionado */
.badge.bg-warning {
    background-color: var(--color-secundario) !important; /* Usar teal claro */
    color: var(--color-fondo-contenido) !important; /* Texto blanco */
}

/* Mejoras para secciones de proyecto */
.section-title {
  font-size: 1.4rem;
  font-weight: 600;
  color: #336b87;
  border-bottom: 2px solid #e0e0e0;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}

.unidad-card {
  transition: all 0.2s ease-in-out;
  border-radius: var(--border-radius-md);
}

/* Efecto hover de elevación eliminado por solicitud del usuario */
.unidad-card:hover {
  /* transform: translateY(-3px); */
  /* box-shadow: var(--box-shadow-md); */
}

/* Estilos para formularios de proyectos */
.form-select-sm, 
.form-control-sm {
  font-size: 0.875rem;
  padding: 0.4rem 0.6rem;
}

.motivo-cierre-container {
  background-color: rgba(253, 237, 237, 0.4);
  padding: 0.75rem;
  border-radius: var(--border-radius-sm);
  border-left: 3px solid #dc3545;} 

.breadcrumb-item + .breadcrumb-item::before {
    color: #6c757d;
}

.breadcrumb-item a {
    color: #336b87;
    text-decoration: none;
}

.breadcrumb-item a:hover {
    color: #2a5a6f;
    text-decoration: underline;
}

/* STYLES FROM base.html */
.navbar-brand img {
  max-height: 40px;
  margin-right: 0.5rem;
}
.bg-primary {
  background-color: #336b87 !important;
}
.navbar-brand span {
  font-family: 'Playfair Display', serif;
  color: #336b87;
  font-weight: 600;
  font-size: 1.8rem;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: linear-gradient(45deg, #336b87, #2a5a6f);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}
.navbar-brand:hover span {
  transform: scale(1.02);
  text-shadow: 3px 3px 6px rgba(0,0,0,0.15);
}
.navbar-brand {
  text-decoration: none;
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
}
.navbar-brand:hover {
  text-decoration: none;
}
.btn, .btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger, .btn-light, .btn-dark {
  background-color: #336b87 !important;
  border-color: #336b87 !important;
  color: white !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  padding: 0.6rem 1.2rem;
  border-radius: 0.25rem;
}

/* Efectos hover solo en dispositivos de escritorio */
@media (hover: hover) and (min-width: 992px) {
  .btn, .btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger, .btn-light, .btn-dark {
	transition: all 0.2s ease-in-out;
  }
  
  .btn:hover, .btn-primary:hover, .btn-secondary:hover, .btn-success:hover, .btn-info:hover, .btn-warning:hover, .btn-danger:hover, .btn-light:hover, .btn-dark:hover {
	background-color: #2a5a6f !important;
	border-color: #2a5a6f !important;
	color: white !important;
	text-decoration: none !important;
	transform: translateY(-2px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.08);
  }
}
.nav-link {
  text-decoration: none;
  font-weight: 500;
  font-size: 0.95rem;
}

/* Efectos hover para nav-links solo en dispositivos de escritorio */
@media (hover: hover) and (min-width: 992px) {
  .nav-link {
	transition: all 0.2s ease-in-out;
  }
  
  .nav-link:hover {
	text-decoration: none;
  }
}
.nav-link i.fa-search {
  font-size: 1rem;
  padding: 0.4rem;
  transition: transform 0.2s;
}
.nav-link i.fa-search:hover {
  transform: scale(1.1);
}
/* Estilo para el mensaje flash personalizado naranja */
.alert-custom-orange {
  background-color: #f8a978;
  border-color: #f8a978;
  color: #ffffff;
  font-weight: 500;
}

/* Estilos para el dropdown de búsqueda */
.dropdown-menu {
  border: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  padding: 0.5rem 0;
  min-width: 200px;
  position: absolute !important;
  z-index: 1050 !important;
  margin-top: 0 !important;
  top: 100% !important;
}

.dropdown-item {
  padding: 0.75rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: #495057;
  border: none;
  background: none;
}

.dropdown-item i {
  color: #6c757d;
}

/* Efectos hover para dropdown-items solo en dispositivos de escritorio */
@media (hover: hover) and (min-width: 992px) {
  .dropdown-item {
	transition: all 0.2s ease;
  }

  .dropdown-item:hover {
	background-color: #f8f9fa;
	color: #336b87;
	transform: translateX(3px);
  }

  .dropdown-item i {
	transition: color 0.2s ease;
  }

  .dropdown-item:hover i {
	color: #336b87;
  }
}

/* En móviles, solo cambiar colores sin animaciones */
@media (hover: none) or (max-width: 991.98px) {
  .dropdown-item:active {
	background-color: #f8f9fa;
	color: #336b87;
  }

  .dropdown-item:active i {
	color: #336b87;
  }
}

/* Estilo para el botón dropdown */
#searchDropdown {
  background-color: #336b87 !important;
  border-color: #336b87 !important;
  font-weight: 500;
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
}

/* Efectos hover para botón dropdown solo en dispositivos de escritorio */
@media (hover: hover) and (min-width: 992px) {
  #searchDropdown {
	transition: all 0.2s ease-in-out;
  }
  
  #searchDropdown:hover {
	background-color: #2a5a6f !important;
	border-color: #2a5a6f !important;
  }
}

/* Flecha del dropdown */
.dropdown-toggle::after {
  margin-left: 0.5rem;
}


/* Ajustar el dropdown del perfil */
#profileDropdown.dropdown-toggle::after {
  margin-left: 0.5rem;
  color: #6c757d;
}

/* Responsive: ocultar nombre en pantallas pequeñas y fijar posición */
@media (max-width: 767.98px) {
  .profile-image-nav, .profile-placeholder-nav {
	margin-right: 0 !important;
	position: relative;
	left: 0 !important;
	right: 0 !important;
  }

  /* Asegurar que el dropdown del perfil mantenga su posición */
  #profileDropdown {
	position: relative;
	left: 0 !important;
	right: 0 !important;
  }

  /* Prevenir cualquier movimiento del contenedor del dropdown */
  .dropdown {
	position: relative;
  }

  .dropdown-toggle {
	position: relative !important;
	left: 0 !important;
	right: 0 !important;        }
}

/* Estilos para dropdowns */
.dropdown-menu {
  margin-top: 0.125rem;
  transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out, visibility 0.2s ease-in-out;
}

/* Comportamiento por defecto para dispositivos móviles y táctiles */
@media (hover: none) or (max-width: 991.98px) {
  .dropdown-menu {
	opacity: 0;
	visibility: hidden;
	transform: none !important;          display: none;
  }
  
  .dropdown-menu.show {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	animation: none !important;
  }

  /* Reglas específicas para el dropdown del perfil en móviles */
  #profileDropdown + .dropdown-menu {
	position: absolute !important;
	top: 100% !important;
	left: auto !important;
	right: 0 !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
  }

  #profileDropdown + .dropdown-menu.show {
	/*transform: none !important;*/
	animation: none !important;
	transition: none !important;        }
}

/* Comportamiento hover solo para dispositivos de escritorio */
@media (hover: hover) and (min-width: 992px) {
  .dropdown-menu {
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	display: none;
  }

  .dropdown-menu.show {
	display: block;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
  }

  .dropdown:hover .dropdown-menu {
	display: block;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
  }

  /* Mantener el dropdown abierto cuando se hace hover sobre él */
  .dropdown-menu:hover {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
  }
}

/* Animación para el despliegue suave en móviles - DESACTIVADA */
@keyframes dropdownSlideIn {
  from {
	opacity: 0;
	transform: none;
  }
  to {
	opacity: 1;
	transform: none;
  }
}

/* Reglas específicas y fuertes para prevenir CUALQUIER movimiento en móviles */
@media (hover: none), (max-width: 991.98px), (pointer: coarse) {
		   /* Anular transformaciones que causan movimiento, pero permitir centrado del dropdown */
   .navbar-nav .nav-item.dropdown,
   .navbar-nav .nav-item.dropdown .dropdown-toggle,
   .navbar-nav .nav-item.dropdown .dropdown-toggle *,
   .profile-image-nav,
   .profile-placeholder-nav,
   #profileDropdown {
	 transform: none !important;
	 transition: none !important;
	 animation: none !important;
	 position: relative !important;
	 left: 0 !important;
	 right: 0 !important;
	 top: auto !important;
	 bottom: auto !important;
	 margin-left: 0 !important;
	 margin-right: 0 !important;
	 translate: none !important;
	 scale: none !important;
	 rotate: none !important;
   }

   /* El dropdown-menu puede tener transform para centrado, pero sin animaciones */
   .navbar-nav .nav-item.dropdown .dropdown-menu {
	 transition: none !important;
	 animation: none !important;
	 translate: none !important;
	 scale: none !important;
	 rotate: none !important;
   }

		   /* Anular dropdown-menu-end en móviles y centrar - Regla muy específica */
   .navbar-nav .nav-item.dropdown .dropdown-menu-mobile-center.dropdown-menu-end,
   .dropdown-menu-mobile-center.dropdown-menu-end {
	 left: 50% !important;
	 right: auto !important;
	 transform: translateX(-50%) !important;
	 margin-top: 0.5rem !important;
	 margin-left: 0 !important;
	 margin-right: 0 !important;
   }

   /* Asegurar que Bootstrap no aplique estilos de alineación a la derecha */
   .dropdown-menu-mobile-center {
	 left: 50% !important;
	 right: auto !important;
	 transform: translateX(-50%) !important;
   }

   /* Forzar que el dropdown mantenga su posición y esté centrado */
   .navbar-nav .nav-item.dropdown .dropdown-menu {
	 position: absolute !important;
	 top: 100% !important;
	 left: 50% !important;
	 right: auto !important;
	 transform: translateX(-50%) !important;
	 margin-top: 0.5rem !important;
   }

   /* Específicamente para el dropdown del perfil en móviles */
   #profileDropdown + .dropdown-menu,
   #profileDropdown + .dropdown-menu-mobile-center {
	 left: 50% !important;
	 right: auto !important;
	 transform: translateX(-50%) !important;
   }

  /* Evitar que Bootstrap aplique clases que causen movimiento */
  .collapsing,
  .collapse.show {
	transform: none !important;
	transition: none !important;        }
}

/* Styles from templates/buscar_propiedades.html */
.page-title {
	font-size: 1.75rem;
	color: #336b87;
	font-weight: 600;
	margin-bottom: 1.5rem;
	font-family: 'Montserrat', sans-serif;
	border-left: 4px solid #f8a978;
	padding-left: 12px;
}
.filters-card {
	background-color: #fff;
	border: none;
	border-radius: 12px;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
	margin-bottom: 2rem;
	transform: none !important;
	transition: none !important;
}
.container .filters-card:hover,
.filters-card.card:hover,
.card.filters-card:hover,
.filters-card:hover {
	transform: none !important;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
	/*translate: 0 !important;*/
	transition: none !important;
}
.form-label {
	font-size: 0.9rem;
	font-weight: 500;
	color: #2d3b55;
	margin-bottom: 0.5rem;
}
.form-select, .form-control {
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 0.5rem 1rem;
	font-size: 0.95rem;
	transition: all 0.2s ease;
}
.form-select:focus, .form-control:focus {
	border-color: #336b87;
	box-shadow: 0 0 0 0.2rem rgba(51, 107, 135, 0.15);
}
.form-select:hover, .form-control:hover {
	border-color: #336b87;
}
.btn-filters {
    background-color: #fff;
    color: #336b87;
    border: 1px solid #336b87;
    border-radius: 30px;
    padding: 0.6rem 1.5rem;
    font-size: 0.9rem;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.btn-filters:hover {
    background-color: #336b87;
    color: #fff;
}

.modal-content {
    border: none;
    border-radius: 12px;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.modal-header {
    border-bottom: 1px solid #e9ecef;
    padding: 1rem 1.5rem;
}

.modal-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #2a3132;
}

.modal-body {
    padding: 1.5rem;
}

.modal-footer {
    border-top: 1px solid #e9ecef;
    padding: 1rem 1.5rem;
}

.btn-modal-close {
    background-color: #f8f9fa;
    color: #6c757d;
    border: 1px solid #dee2e6;
    padding: 0.5rem 1rem;
    border-radius: 6px;
}

.btn-modal-close:hover {
    background-color: #e9ecef;
    color: #495057;
}

.btn-modal-apply {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 6px;
}

.btn-modal-apply:hover {
    background-color: #0056b3;
}

.results-grid {
	margin-top: 2rem;
}
.card-img-top {
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	transition: transform 0.5s ease;
}
.card:hover .card-img-top {
	transform: scale(1.02);
}
.card-body {
	padding: 1.25rem;
}
.card-title {
	font-size: 1.1rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: #336b87;
}
.card-subtitle {
	font-size: 0.9rem;
	color: #6c757d;
}
.card-footer {
	background-color: transparent;
	border-top: 1px solid rgba(0, 0, 0, 0.05);
	padding: 1rem 1.25rem;
}
.sort-section {
	background-color: #fff;
	padding: 1rem 1.25rem;
	border-radius: 10px;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	border: 1px solid rgba(0, 0, 0, 0.05);
	transition: all 0.3s ease;
}
.sort-section:hover {
	box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}
#sortControl {
	min-width: 200px;
	border-radius: 8px;
	border: 1px solid #e0e0e0;
	transition: all 0.2s ease;
}
#sortControl:focus {
	border-color: #336b87;
	box-shadow: 0 0 0 0.2rem rgba(51, 107, 135, 0.15);
}
.pagination {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}
.page-link {
	color: #424242 !important;
	border: none !important;
	padding: 0.7rem 1.2rem !important;
	margin: 0 !important;
	border-radius: 8px !important;
	transition: all 0.3s ease !important;
	font-weight: 600 !important;
	min-width: 45px !important;
	text-align: center !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #f5f5f5 !important;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
	font-size: 0.95rem !important;
	letter-spacing: 0.5px !important;
}
.page-link:hover {
	background-color: #e0e0e0 !important;
	color: #212121 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important;
}
.page-item.active .page-link {
	background: linear-gradient(135deg, #686868 0%, #424242 100%) !important;
	border-color: #424242 !important;
	color: #fff !important;
	box-shadow: 0 4px 8px rgba(66, 66, 66, 0.3) !important;
}
.page-item.disabled .page-link {
	color: #adb5bd;
	pointer-events: none;
	background-color: #f8f9fa;
	box-shadow: none;
	opacity: 0.7;
}
.page-link i {
	font-size: 0.9em;
	font-weight: 600;
}
.results-counter {
	color: #2d3b55;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.3px;
}
.pagination-container {
	background: #fff;
	padding: 1.8rem;
	border-radius: 10px;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	margin-top: 2.5rem;
	border: 1px solid rgba(0, 0, 0, 0.05);
	transition: all 0.3s ease;
}
.pagination-container:hover {
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}
.alert-warning {
	background-color: rgba(255, 209, 102, 0.2);
	border-color: #ffd166;
	color: #856404;
	border-radius: 10px;
	padding: 1.25rem;
	font-weight: 500;
}
.btn-premium {
	background: linear-gradient(135deg, #336b87 0%, #2d3b55 100%);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 0.8rem 1.8rem;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
.btn-premium:hover, .btn-premium:focus {
	color: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	text-decoration: none;
}
.btn-premium::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(248, 169, 120, 0.15) 0%, rgba(248, 169, 120, 0) 100%);
	z-index: -1;
}
.btn-premium i {
	font-size: 1.1rem;
}

/* Styles from templates/mi_perfil.html */
.profile-header {
	background: linear-gradient(135deg, #336b87, #2d3b55);
	color: white;
	border-radius: 15px;
	padding: 2rem;
	margin-bottom: 2rem;
	position: relative;
	overflow: hidden;
}
.profile-header::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 200px;
	height: 200px;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	transform: translate(50%, -50%);
}
.profile-avatar {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	border: 4px solid rgba(255, 255, 255, 0.3);
	object-fit: cover;
	margin-bottom: 1rem;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}
.profile-avatar-placeholder {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 1rem;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}
.profile-name {
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.profile-email {
	font-size: 1.1rem;
	opacity: 0.9;
	margin-bottom: 1.5rem;
}
.profile-card {
	background: white;
	border-radius: 15px;
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
	border: none;
	overflow: hidden;
	margin-bottom: 2rem;
}
.profile-card-header {
	background: #f8f9fa;
	padding: 1.5rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.profile-card-title {
	color: #336b87;
	font-weight: 600;
	margin: 0;
	display: flex;
	align-items: center;
}
.profile-card-title i {
	margin-right: 0.75rem;
	font-size: 1.2rem;
}
.profile-info-minimal {
	padding: 2rem;
}
.info-row {
	display: flex;
	align-items: flex-start;
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	transition: all 0.2s ease;
}
.info-row:last-child {
	border-bottom: none;
}
.info-row:hover {
	background: rgba(51, 107, 135, 0.02);
	margin: 0 -1rem;
	padding-left: 1rem;
	padding-right: 1rem;
	border-radius: 8px;
}
.info-icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, #336b87, #2a9d8f);
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 0.9rem;
	margin-right: 1rem;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(51, 107, 135, 0.2);
}
.info-content {
	flex: 1;
	min-width: 0;
}
.info-label {
	font-size: 0.85rem;
	font-weight: 500;
	color: #6c757d;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.info-value {
	font-size: 1rem;
	font-weight: 500;
	color: #2d3b55;
	word-break: break-word;
	line-height: 1.4;
}
.info-value.empty {
	color: #6c757d;
	font-style: italic;
	opacity: 0.7;
	font-weight: 400;
}
.btn-edit-profile {
	background: linear-gradient(45deg, #336b87, #2a9d8f);
	border: none;
	color: white;
	padding: 0.75rem 2rem;
	border-radius: 25px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(51, 107, 135, 0.3);
}
.btn-edit-profile:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(51, 107, 135, 0.4);
	color: white;
}
.stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.5rem;
	margin-bottom: 2rem;
}
.stat-card {
	background: white;
	border-radius: 15px;
	padding: 1.5rem;
	text-align: center;
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
	border: none;
	transition: transform 0.3s ease;
}
.stat-card:hover {
	transform: translateY(-5px);
}
.stat-icon {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1rem;
	font-size: 1.5rem;
	color: white;
}
.stat-icon.properties {
	background: linear-gradient(45deg, #336b87, #2a9d8f);
}
.stat-icon.projects {
	background: linear-gradient(45deg, #f8a978, #ffd166);
}
.stat-icon.messages {
	background: linear-gradient(45deg, #74c0fc, #336b87);
}
.stat-number {
	font-size: 2rem;
	font-weight: 700;
	color: #336b87;
	margin-bottom: 0.5rem;
}
.stat-label {
	color: #6c757d;
	font-weight: 500;
	text-transform: uppercase;
	font-size: 0.9rem;
	letter-spacing: 0.5px;
}
.verification-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 1rem;
	border-radius: 20px;
	font-size: 0.9rem;
	font-weight: 500;
	margin-top: 1rem;
}
.verification-badge.verified {
	background: rgba(129, 231, 175, 0.2);
	color: #81E7AF;
	border: 1px solid rgba(129, 231, 175, 0.3);
}
.verification-badge.unverified {
	background: rgba(255, 107, 107, 0.2);
	color: #ff6b6b;
	border: 1px solid rgba(255, 107, 107, 0.3);
}
@media (max-width: 768px) {
	.profile-header {
		text-align: center;
		padding: 1.5rem;
	}
	.profile-name {
		font-size: 1.5rem;
	}
	.profile-info-minimal {
		padding: 1rem;
	}
	.info-row {
		padding: 1rem 0;
	}
	.info-row:hover {
		margin: 0 -0.5rem;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
	.info-icon {
		width: 35px;
		height: 35px;
		font-size: 0.8rem;
		margin-right: 0.75rem;
	}
	.info-label {
		font-size: 0.8rem;
	}
	.info-value {
		font-size: 0.95rem;
	}
	.stats-grid {
		grid-template-columns: 1fr;
	}
}

/* Styles from templates/index.html */
.carousel {
	padding: 0 40px;
	margin-bottom: 30px;
}
.carousel .row {
	margin: 0;
	padding: 15px 0;
}
.carousel .col-md-4 {
	padding: 0 12px;
}
.carousel .card {
	border: none;
	border-radius: 12px;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	margin-bottom: 20px;
}
.carousel .card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}
.carousel .card-img-top {
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}
.carousel-control-prev,
.carousel-control-next {
	width: 40px;
	height: 40px;
	top: 50%;
	transform: translateY(-50%);
	background: white;
	border-radius: 50%;
	opacity: 0.9;
	box-shadow: 0 2px 5px rgba(0,0,0,0.2);
	transition: all 0.3s ease;
}
.carousel-control-prev {
	left: -5px;
}
.carousel-control-next {
	right: -5px;
}
.carousel-control-prev:hover,
.carousel-control-next:hover {
	background: white;
	opacity: 1;
	box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
	background-color: transparent;
	width: 20px;
	height: 20px;
	background-size: 100%;
}
.carousel-control-prev-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23336b87'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}
.carousel-control-next-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23336b87'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.promoted-section h2,
.content-section h2 {
	font-weight: 600;
	margin-bottom: 1.5rem;
	position: relative;
	display: inline-block;
	padding-bottom: 0px;
}
.promoted-section h2::after,
.content-section h2::after {
	content: '';
	position: absolute;
	left: 25%;
	right: 25%;
	bottom: 0;
	height: 3px;
	background: linear-gradient(to right, transparent, #336b87, transparent);
	border-radius: 2px;
}
.badge.bg-warning {
	background-color: #ffd700 !important;
	color: #2a3132 !important;
	font-weight: 500;
	padding: 8px 12px;
	border-radius: 20px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.carousel-inner {
	transition: transform 0.5s ease;
}
.search-container {
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	padding: 2rem;
	border: 1px solid rgba(51, 107, 135, 0.1);
}
.search-tabs .nav-pills {
	background-color: #f8f9fa;
	border-radius: 8px;
	padding: 4px;
	border: 1px solid #e9ecef;
}
.search-tabs .nav-link {
	color: #6c757d;
	background: transparent;
	border: none;
	border-radius: 6px;
	padding: 12px 24px;
	font-weight: 500;
	font-size: 0.95rem;
	transition: all 0.3s ease;
	position: relative;
	margin: 0 2px;
}
.search-tabs .nav-link:hover {
	color: #336b87;
	background-color: rgba(51, 107, 135, 0.05);
}
.search-tabs .nav-link.active {
	color: #ffffff;
	background: linear-gradient(135deg, #336b87 0%, #2a5a6b 100%);
	box-shadow: 0 2px 8px rgba(51, 107, 135, 0.3);
}
.search-form {
	padding: 0rem 0;
}
.search-form .form-label {
	font-weight: 600;
	color: #2d3b55;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.search-form .form-select {
	border: 2px solid #e9ecef;
	border-radius: 8px;
	padding: 12px 16px;
	font-size: 0.95rem;
	background-color: #ffffff;
	transition: all 0.3s ease;
	color: #495057;
}
.search-form .form-select:focus {
	border-color: #336b87;
	box-shadow: 0 0 0 0.2rem rgba(51, 107, 135, 0.15);
	outline: none;
}
.search-form .form-select:hover {
	border-color: #336b87;
}
.btn-search {
	background: linear-gradient(135deg, #336b87 0%, #2a5a6b 100%);
	border: none;
	color: white;
	padding: 14px 32px;
	font-size: 1rem;
	font-weight: 600;
	border-radius: 8px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(51, 107, 135, 0.3);
	width: 100%;
	position: relative;
	overflow: hidden;
}
.btn-search::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
	transition: left 0.5s;
}
.btn-search:hover::before {
	left: 100%;
}
.btn-search:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(51, 107, 135, 0.4);
	background: linear-gradient(135deg, #2a5a6b 0%, #336b87 100%);
}
.btn-search:active {
	transform: translateY(0);
	box-shadow: 0 2px 8px rgba(51, 107, 135, 0.3);
}
.search-actions {
	border-top: 1px solid #e9ecef;
	padding-top: 0rem;
	margin-top: 1.5rem;
}
@media (max-width: 768px) {
	.carousel {
		padding: 0 20px;
	}
	.carousel-control-prev,
	.carousel-control-next {
		width: 30px;
		height: 30px;
	}
	.carousel .col-md-4 {
		padding: 0 8px;
	}
	.search-container {
		padding: 1.5rem;
		margin: 0 -15px;
		border-radius: 0;
		box-shadow: none;
		border: none;
		border-top: 1px solid #e9ecef;
		border-bottom: 1px solid #e9ecef;
	}
	.search-tabs .nav-link {
		padding: 10px 16px;
		font-size: 0.9rem;
	}
	.btn-search {
		padding: 12px 24px;
		font-size: 0.95rem;
	}
}

/* Styles from templates/panel_usuario.html */
.dashboard-container {
	margin-bottom: 3rem;
}
.dashboard-card {
	border: none;
	border-radius: 10px;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	transition: box-shadow 0.2s;
	overflow: hidden;
	height: 100%;
}
.dashboard-card:hover {
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}
.dashboard-card .card-header {
	background-color: white;
	border-bottom: 1px solid rgba(0,0,0,0.05);
	padding: 1.25rem 1.5rem;
}
.dashboard-card .card-header h5 {
	margin: 0;
	font-weight: 600;
	display: flex;
	align-items: center;
}
.dashboard-card .card-header i {
	font-size: 1.2rem;
	margin-right: 0.75rem;
	color: #336b87;
}
.dashboard-card .card-body {
	padding: 0;
}
.dashboard-table {
	margin-bottom: 0;
}
.dashboard-table thead th {
	background-color: #f8f9fa;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.5px;
	padding: 1rem;
	border-bottom: 1px solid rgba(0,0,0,0.05);
}
.dashboard-table tbody tr {
	border-bottom: 1px solid rgba(0,0,0,0.05);
	transition: background-color 0.2s;
}
.dashboard-table tbody tr:hover {
	background-color: rgba(248, 169, 120, 0.05);
}
.dashboard-table tbody tr:last-child {
	border-bottom: none;
}
.dashboard-table td {
	padding: 1rem;
	vertical-align: middle;
}
.item-thumbnail {
	width: 60px;
	height: 60px;
	border-radius: 8px;
	background-color: #e9f2f9;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 1rem;
	flex-shrink: 0;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.item-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.item-thumbnail i {
	font-size: 1.5rem;
	color: #336b87;
}
.item-title {
	font-weight: 600;
	color: #336b87;
	font-size: 0.9rem;
	margin-bottom: 0.25rem;
}
.item-subtitle {
	color: #6c757d;
	font-size: 0.8rem;
	line-height: 1.2;
}
.badge-pill {
	border-radius: 50rem;
}
.badge.bg-info {
	color: #fff;
}
.btn-activar {
	transition: all 0.3s ease;
	background-color: #81E7AF !important;
	border-color: #81E7AF !important;
	color: white !important;
}
.btn-activar:hover {
	background-color: #5CDB95 !important;
	border-color: #5CDB95 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.btn-editar {
	transition: all 0.3s ease;
	background-color: #6c757d !important;
	border-color: #6c757d !important;
	color: white !important;
}
.btn-editar:hover {
	background-color: #5a6268 !important;
	border-color: #5a6268 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.btn-inactivar {
	transition: all 0.3s ease;
	background-color: #ff6b6b !important;
	border-color: #ff6b6b !important;
	color: white !important;
}
.btn-inactivar:hover {
	background-color: #ff5252 !important;
	border-color: #ff5252 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.btn-renovar {
	transition: all 0.3s ease;
	background-color: #ffd166 !important;
	border-color: #ffd166 !important;
	color: white !important;
}
.btn-renovar:hover:not(:disabled) {
	background-color: #e0a800 !important;
	border-color: #e0a800 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.btn-action {
	width: 34px;
	height: 34px;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s;
	margin-right: 0.25rem;
	padding: 0;
}
.btn-action i {
	font-size: 0.85rem;
}
.btn-outline-info {
	color: #74c0fc;
	border-color: #74c0fc;
}
.btn-outline-info:hover {
	background-color: #74c0fc;
	border-color: #74c0fc;
	color: white;
}
.profile-card .card-header {
	background: linear-gradient(to right, #336b87, #2d3b55);
	color: white;
	padding: 1.5rem;
	border-bottom: none;
}
.profile-info-item {
	margin-bottom: 1rem;
	display: flex;
	align-items: flex-start;
}
.profile-info-label {
	font-weight: 600;
	color: #2d3b55;
	min-width: 140px;
	margin-right: 0.5rem;
}
.profile-info-value {
	color: #6c757d;
	word-break: break-word;
	max-width: 100%;
}
.list-group-item {
	transition: box-shadow 0.3s ease;
	border: none;
	margin-bottom: 0.5rem;
	border-radius: 8px;
}
.list-group-item:hover {
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.d-flex.flex-wrap.gap-2 {
	width: 100%;
}
.d-flex.flex-wrap.gap-2 .btn {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.d-flex.flex-wrap.gap-2 .btn-outline-primary {
	text-overflow: ellipsis;
	overflow: hidden;
	max-width: 100%;
}
@media (max-width: 576px) {
	.d-flex.flex-wrap.gap-2 .btn {
		width: 100%;
		margin-bottom: 0.25rem;
	}
}
.message-filter {
	border-radius: 8px;
	background-color: #f8f9fa;
	padding: 0.5rem;
	margin-bottom: 1.5rem;
}
.message-filter .nav-link {
	border-radius: 6px;
	font-size: 0.9rem;
	font-weight: 500;
	padding: 0.5rem 1rem;
	color: #6c757d;
	transition: all 0.3s ease;
}
.message-filter .nav-link.active {
	background-color: #336b87;
	color: white;
}
.message-filter .nav-link:hover:not(.active) {
	background-color: rgba(51, 107, 135, 0.1);
	color: #336b87;
}
.message-group {
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid rgba(0,0,0,0.08);
	margin-bottom: 2rem;
}
.message-group-header {
	padding: 1rem;
	background-color: #f8f9fa;
	border-bottom: 1px solid rgba(0,0,0,0.08);
}
.message-prop-title {
	font-weight: 600;
	margin-bottom: 0.2rem;
	font-size: 1rem;
	color: #336b87;
}
.message-prop-subtitle {
	color: #6c757d;
	font-size: 0.85rem;
}
.message-list {
	padding: 1rem;
	background-color: white;
}
.message-card {
	border-radius: 10px;
	background-color: #f8f9fa;
	padding: 1.25rem;
	margin-bottom: 1rem;
	transition: box-shadow 0.3s ease;
	border: 1px solid rgba(0,0,0,0.05);
	border-left: 4px solid #336b87;
	box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
#messagesModal .message-card {
	padding: 0.75rem;
	margin-bottom: 0.75rem;
}
#messagesModal .message-header {
	margin-bottom: 0.5rem;
}
#messagesModal .message-content {
	padding: 0.25rem 0;
}
#messagesModal .message-footer {
	margin-top: 0.5rem;
}
#messagesModal .message-intention {
	padding: 8px 12px;
	margin-bottom: 0.5rem;
}
#messagesModal .message-text {
	margin-bottom: 0.25rem;
}
#messagesModal .message-meta {
	font-size: 0.85rem;
}
#messagesModal .message-actions .btn {
	padding: 0.25rem 0.5rem;
	font-size: 0.8rem;
}
.message-card:nth-child(odd) {
	background-color: #f0f4f8;
}
.message-card:nth-child(even) {
	background-color: #ffffff;
}
.message-card:hover {
	box-shadow: 0 3px 10px rgba(0,0,0,0.1);
}
.message-header {
	margin-bottom: 1rem;
}
.message-sender {
	font-size: 0.95rem;
	color: #2d3b55;
}
.message-meta {
	display: flex;
	align-items: center;
}
.message-date {
	font-size: 0.8rem;
	color: #6c757d;
}
.message-content {
	padding: 0.5rem 0;
}
.message-text {
	font-size: 0.95rem;
	color: #343a40;
	margin-bottom: 0;
	line-height: 1.5;
	white-space: pre-line;
}
.message-footer {
	margin-top: 1rem;
}
.message-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.message-actions .btn {
	font-weight: 500;
	font-size: 0.85rem;
}
.message-section {
	padding: 1rem;
}
.message-property-info {
	background-color: rgba(0,0,0,0.03);
	padding: 0.75rem;
	border-radius: 8px;
	border-left: 3px solid #336b87;
	margin-bottom: 1rem;
}
.message-list-container {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.btn-whatsapp {
	background-color: #25D366 !important;
	border-color: #25D366 !important;
	color: white !important;
	transition: all 0.3s ease;
}
.btn-whatsapp:hover {
	background-color: #1da851 !important;
	border-color: #1da851 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
@media (min-width: 768px) {
	.message-actions {
		justify-content: flex-end;
	}
}
@media (max-width: 767px) {
	.message-header .d-flex {
		flex-direction: column;
		align-items: flex-start !important;
	}
	.message-meta {
		margin-top: 0.5rem;
	}
}
.message-intention {
	background-color: rgba(51, 107, 135, 0.08);
	padding: 12px 15px;
	border-radius: 8px;
	border-left: 4px solid #336b87;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.intention-tag {
	color: #6c757d;
	font-size: 0.85rem;
	font-weight: 500;
}
.intention-value {
	background-color: #336b87;
	color: white;
	font-weight: 600;
	padding: 3px 10px;
	border-radius: 20px;
	font-size: 0.9rem;
	display: inline-block;
}
#messagesModal .intention-value {
	font-size: 0.85rem;
}
.count-value {
	font-weight: 500;
	background-color: rgba(13, 110, 253, 0.05);
	color: #0d6efd;
	padding: 0.25rem 0.5rem;
	border-radius: 4px;
	display: inline-block;
	min-width: 45px;
	text-align: center;
}
.stat-item {
	padding: 0.5rem;
}
.stat-number {
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 0.25rem;
}
.stat-label {
	font-size: 0.8rem;
	color: #6c757d;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.dashboard-tabs {
	margin-bottom: 1.5rem;
	border-bottom: 2px solid rgba(0,0,0,0.05);
}
.nav-tab-container {
	display: flex;
	gap: 8px;
}
.nav-tab {
	position: relative;
	background: transparent;
	border: none;
	padding: 12px 25px;
	font-weight: 500;
	color: #6c757d;
	transition: all 0.3s ease;
	text-align: center;
	cursor: pointer;
	border-radius: 8px 8px 0 0;
	font-size: 1rem;
	min-width: 180px;
}
.nav-tab:hover:not(.active) {
	color: #336b87;
	background-color: rgba(0,0,0,0.03);
}
.nav-tab.active {
	color: #336b87;
	font-weight: 600;
}
.nav-tab.active::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 100%;
	height: 3px;
	background: #336b87;
	border-radius: 3px 3px 0 0;
	animation: tabIndicator 0.3s ease forwards;
}
.nav-tab.active i {
	color: #336b87;
}
.nav-tab i {
	transition: all 0.3s ease;
}
@keyframes tabIndicator {
	from { width: 0; left: 50%; }
	to { width: 100%; left: 0; }
}

.premium-header {
	background: linear-gradient(135deg, #f5f7fa 0%, #eef2f7 100%);
	border-radius: 12px;
	padding: 2rem;
	margin-bottom: 2rem;
	text-align: center;
	border: 1px solid rgba(0,0,0,0.05);
	position: relative;
	overflow: hidden;
}
.premium-header:hover {
	border-color: rgba(51, 107, 135, 0.1);
}
.header-link {
	text-decoration: none;
	color: inherit;
}
.premium-title {
	font-size: 2rem;
	font-weight: 700;
	color: #2d3b55;
	margin: 0;
	font-family: 'Montserrat', sans-serif;
}
.premium-subtitle {
	font-size: 1rem;
	color: #6c757d;
	margin-top: 0.5rem;
	margin-bottom: 0;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.project-icon {
	color: #f8a978;
}
.premium-decoration {
	position: absolute;
	bottom: -50px;
	right: -50px;
	width: 150px;
	height: 150px;
	background: radial-gradient(circle, rgba(248, 169, 120, 0.1) 0%, rgba(248, 169, 120, 0) 70%);
	border-radius: 50%;
	opacity: 0.8;
	pointer-events: none;
}
.premium-filters {
	border: 1px solid rgba(51, 107, 135, 0.1);
	overflow: hidden;
}
.filter-header {
	background: linear-gradient(135deg, #336b87 0%, #2d3b55 100%);
	padding: 1rem 1.5rem;
	color: white;
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}
.filter-title {
	font-size: 1.15rem;
	font-weight: 600;
	margin-bottom: 0.2rem;
}
.filter-subtitle {
	opacity: 0.8;
	margin-bottom: 0;
	font-size: 0.85rem;
}
.btn-primary:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 15px rgba(45, 59, 85, 0.2);
}
.entrega-inmediata-badge,
.fecha-entrega-badge {
	border-radius: 20px;
	padding: 0.4rem 0.8rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
}
.card-img-container {
    position: relative;
    overflow: hidden;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.entrega-inmediata-badge,
.fecha-entrega-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 10;
    padding: 0.35em 0.8em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
    display: inline-block;
    pointer-events: none;
}
.entrega-inmediata-badge {
    background: rgba(129,231,175,0.9);
    color: #0a5a30;
}
.fecha-entrega-badge {
    background: rgba(248,169,120,0.9);
    color: #783c00;
}

/* === Herramientas Inmobiliarias: Tarjetas Minimalistas === */
.tool-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 25px;
    margin-bottom: 60px;
}
.tool-card-minimal {
    background-color: var(--color-fondo-contenido, #fff);
    border: 1px solid var(--color-bordes-sutiles, #e0e0e0);
    border-radius: 4px;
    padding: 25px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.04);
    min-height: 340px;
}

.tool-card-minimal .icon-wrapper {
    background-color: var(--color-primary, #336b87);
    color: white;
    width: 70px;
    height: 70px;
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2.2em;
    margin-bottom: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    overflow: hidden;
}
.tool-card-minimal.seller .icon-wrapper {
    background-color: var(--color-success, #43a047);
}
.tool-card-minimal h3 {
    font-size: 1.25em;
    color: var(--color-texto-principal, #212121);
    margin-top: 0;
    margin-bottom: 10px;
    font-weight: 600;
    font-family: var(--fuente-titulos, 'Montserrat', sans-serif);
}
.tool-card-minimal p {
    font-size: 0.9em;
    color: var(--color-texto-secundario, #616161);
    margin-bottom: 20px;
    flex-grow: 1;
    max-height: 3.8em;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tool-card-minimal .btn {
    display: inline-block;
    border-radius: 4px;
    font-weight: 500;
    font-size: 0.95em;
    border: none;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(30, 136, 229, 0.2);
    padding: 10px 20px;
}

.tool-card-minimal.seller .btn {
    background-color: var(--color-success, #43a047);
    box-shadow: 0 2px 5px rgba(67, 160, 71, 0.2);
}
.tool-card-minimal.seller .btn:hover {
    background-color: #388E3C;
}
.section-title {
    font-size: 2em;
    text-align: center;
    color: var(--color-texto-principal, #212121);
    margin-top: 60px;
    margin-bottom: 40px;
    position: relative;
    font-weight: 600;
    font-family: var(--fuente-titulos, 'Montserrat', sans-serif);
}
.section-title::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background-color: var(--color-primary, #336b87);
    margin: 15px auto 0;
    border-radius: 2px;
}
@media (max-width: 992px) {
    .section-title {
        font-size: 1.5em;
        margin-top: 40px;
        margin-bottom: 30px;
    }
    .tool-grid {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 20px;
    }
    .tool-card-minimal {
        padding: 20px;
    }
    .tool-card-minimal .icon-wrapper {
        width: 60px;
        height: 60px;
        font-size: 2em;
        margin-bottom: 15px;
    }
    .tool-card-minimal h3 {
        font-size: 1.05em;
    }
    .tool-card-minimal p {
        font-size: 0.85em;
        max-height: 3.6em;
    }
    .tool-card-minimal .btn {
        padding: 8px 16px;
        font-size: 0.9em;
    }
}
@media (max-width: 768px) {
    .section-title {
        font-size: 1.2em;
        margin-top: 30px;
        margin-bottom: 25px;
    }
    .tool-grid {
        grid-template-columns: 1fr;
    }
    .tool-card-minimal .icon-wrapper {
        width: 55px;
        height: 55px;
        font-size: 1.8em;
    }
    .tool-card-minimal h3 {
        font-size: 1.05em;
    }
    .tool-card-minimal p {
        font-size: 0.8em;
        max-height: 3.4em;
    }
}

.section-title {
    font-size: 1.3em;
    margin-top: 20px;
    margin-bottom: 0.5rem;
}
.lead.text-muted {
    font-size: 1em;
    margin-bottom: 1rem;
}
.herramientas-hero {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}
.alert-info {
    font-size: 0.95em;
    padding: 0.5rem 1rem;
    margin-bottom: 0.5rem;
}
.d-flex.gap-2.mb-2 > a.btn {
    padding: 0.4rem 1.2rem;
    font-size: 0.95em;
}
@media (max-width: 768px) {
    .section-title {
        font-size: 1.1em;
        margin-top: 10px;
        margin-bottom: 0.3rem;
    }
    .lead.text-muted {
        font-size: 0.95em;
        margin-bottom: 0.7rem;
    }
    .herramientas-hero {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
        margin-bottom: 1rem !important;
    }
}

.page-header-inmo {
    text-align: center;
    margin-bottom: 32px;
    padding: 28px 16px 22px 16px;
    background: linear-gradient(90deg, #6E6E6E 0%, #6E6E6E 100%);
    color: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.page-header-inmo h1 {
    font-size: 2.1em;
    margin: 0 0 8px 0;
    font-weight: 700;
    font-family: var(--fuente-titulos, 'Montserrat', sans-serif);
    letter-spacing: -0.01em;
}
.page-header-inmo p {
    font-size: 1.08em;
    margin: 0;
    opacity: 0.93;
    font-weight: 400;
}
@media (max-width: 768px) {
    .page-header-inmo {
        padding: 18px 8px 14px 8px;
        margin-bottom: 18px;
    }
    .page-header-inmo h1 {
        font-size: 1.25em;
    }
    .page-header-inmo p {
        font-size: 0.98em;
    }
}

/* ========================================
   PROFILE DROPDOWN - ESTRUCTURA EXACTA DEL EJEMPLO (ESTILOS ESPECÍFICOS)
   ======================================== */

/* Contenedor del profile - MÁS ESPECÍFICO */
.navbar .profile-container {
    position: relative !important;
}

/* Icono del profile - MINIMALISTA */
.navbar .profile-container .profile-icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 8px !important;
    background: #6c757d !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: none !important;
    box-shadow: none !important;
}

.navbar .profile-container .profile-icon svg {
    width: 24px !important;
    height: 24px !important;
    fill: white !important;
}

/* Dropdown menu del profile - SOBRESCRIBIR TODOS LOS ESTILOS BOOTSTRAP */
.navbar .profile-container .dropdown-menu {
    position: absolute !important;
    top: calc(100% + 15px) !important;
    right: 0 !important;
    left: auto !important;
    background: white !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15) !important;
    min-width: 200px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-10px) !important;
    transition: all 0.3s ease !important;
    z-index: 1055 !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
}

/* Hover del contenedor activa el dropdown */
.navbar .profile-container:hover .dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

/* Flecha del dropdown */
.navbar .profile-container .dropdown-menu::before {
    content: '' !important;
    position: absolute !important;
    top: -8px !important;
    right: 12px !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 8px solid transparent !important;
    border-right: 8px solid transparent !important;
    border-bottom: 8px solid white !important;
    z-index: 1056 !important;
}

/* Items del dropdown - SOBRESCRIBIR BOOTSTRAP COMPLETAMENTE */
.navbar .profile-container .dropdown-menu .dropdown-item {
    padding: 0.75rem 1.25rem !important;
    color: #2c3e50 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    transition: background 0.2s !important;
    border-bottom: 1px solid #ecf0f1 !important;
    border-radius: 0 !important;
    background: white !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.navbar .profile-container .dropdown-menu .dropdown-item:first-child {
    border-radius: 8px 8px 0 0 !important;
}

.navbar .profile-container .dropdown-menu .dropdown-item:last-child {
    border-radius: 0 0 8px 8px !important;
    border-bottom: none !important;
}

.navbar .profile-container .dropdown-menu .dropdown-item:hover {
    background: #ecf0f1 !important;
    text-decoration: none !important;
    color: #2c3e50 !important;
    transform: none !important;
}

.navbar .profile-container .dropdown-menu .dropdown-item svg {
    width: 18px !important;
    height: 18px !important;
    fill: #7f8c8d !important;
    flex-shrink: 0 !important;
}

/* ANULAR CUALQUIER INTERFERENCIA DE BOOTSTRAP EN EL PROFILE DROPDOWN */
.navbar .profile-container .dropdown-menu.show {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

/* Asegurar que el navbar permita overflow visible para el dropdown */
.navbar .navbar-collapse,
.navbar .navbar-nav,
.navbar .nav-item {
    overflow: visible !important;
    position: static !important;
}

/* Posicionamiento específico para el profile container */
.navbar .nav-item:has(.profile-container),
.navbar .nav-item .profile-container {
    position: relative !important;
    overflow: visible !important;
}

/* FORZAR FUNCIONAMIENTO DEL HOVER SOLO EN EL DROPDOWN, NO EN EL ICONO */
.navbar .profile-container:hover .dropdown-menu,
.navbar .profile-container .dropdown-menu:hover {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    display: block !important;
    pointer-events: auto !important;
}

/* ASEGURAR QUE EL ICONO NO TENGA EFECTOS HOVER */
.navbar .profile-container .profile-icon:hover {
    background: #6c757d !important;
    transform: none !important;
    box-shadow: none !important;
    border-radius: 8px !important;
}

/* Debug: Asegurar que el dropdown sea visible en hover */
@media (hover: hover) {
    .navbar .profile-container:hover .dropdown-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
    }
}

/* ========================================
   TOOLS DROPDOWN - SIMILAR AL PROFILE
   ======================================== */

/* Contenedor del tools dropdown */
.navbar .tools-container {
    position: relative !important;
}

/* Botón de herramientas - estilo nav-link VISIBLE SIEMPRE */
.navbar .tools-container .tools-icon {
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: transparent !important;
    color: #000 !important;
}

.navbar .tools-container .tools-icon .nav-link {
    color: #000 !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    padding: 0.5rem 1rem !important;
    margin: 0 !important;
    transition: color 0.3s ease !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    background: transparent !important;
}

.navbar .tools-container .tools-icon:hover .nav-link {
    color: #ff5d15 !important;
}

/* Dropdown menu del tools - IGUAL AL PROFILE */
.navbar .tools-container .dropdown-menu {
    position: absolute !important;
    top: calc(100% + 15px) !important;
    left: 0 !important;
    right: auto !important;
    background: white !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15) !important;
    min-width: 240px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-10px) !important;
    transition: all 0.3s ease !important;
    z-index: 1055 !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
}

/* Hover del contenedor activa el dropdown */
.navbar .tools-container:hover .dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

/* Flecha del dropdown */
.navbar .tools-container .dropdown-menu::before {
    content: '' !important;
    position: absolute !important;
    top: -8px !important;
    left: 20px !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 8px solid transparent !important;
    border-right: 8px solid transparent !important;
    border-bottom: 8px solid white !important;
    z-index: 1056 !important;
}

/* Items del dropdown */
.navbar .tools-container .dropdown-menu .dropdown-item {
    padding: 0.75rem 1.25rem !important;
    color: #2c3e50 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    transition: background 0.2s !important;
    border-bottom: 1px solid #ecf0f1 !important;
    border-radius: 0 !important;
    background: white !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.navbar .tools-container .dropdown-menu .dropdown-item:first-child {
    border-radius: 8px 8px 0 0 !important;
}

.navbar .tools-container .dropdown-menu .dropdown-item:last-child {
    border-radius: 0 0 8px 8px !important;
    border-bottom: none !important;
}

.navbar .tools-container .dropdown-menu .dropdown-item:hover {
    background: #ecf0f1 !important;
    text-decoration: none !important;
    color: #2c3e50 !important;
}

.navbar .tools-container .dropdown-menu .dropdown-item svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor !important;
    flex-shrink: 0 !important;
}

/* Estilo para el enlace "Ver todo" - más sutil */
.navbar .tools-container .dropdown-menu .view-all {
    font-size: 0.85rem !important;
    opacity: 0.8 !important;
    font-style: italic !important;
}

.navbar .tools-container .dropdown-menu .view-all:hover {
    opacity: 1 !important;
    background: #f8f9fa !important;
}

/* Separador */
.navbar .tools-container .dropdown-menu .dropdown-divider {
    margin: 0 !important;
    border-top: 1px solid #ecf0f1 !important;
}

/* Hover behavior en desktop */
.navbar .tools-container:hover .dropdown-menu,
.navbar .tools-container .dropdown-menu:hover {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

/* Asegurar que nav-item contenga bien el dropdown */
.navbar .nav-item:has(.tools-container),
.navbar .nav-item .tools-container {
    overflow: visible !important;
}

/* ========================================
   RESPONSIVE DESIGN PARA PROFILE DROPDOWN
   ======================================== */

/* MÓVILES: Cambiar a click/touch en lugar de hover */
@media (max-width: 991.98px) or (hover: none) {
    
    /* En móviles, el dropdown inicia oculto */
    .navbar .profile-container .dropdown-menu {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(-10px) !important;
        transition: all 0.3s ease !important;
    }
    
    /* Clase .show para activar el dropdown en móviles */
    .navbar .profile-container .dropdown-menu.show {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
    }
    
    /* El icono debe ser más grande en móviles para mejor accesibilidad - MINIMALISTA */
    .navbar .profile-container .profile-icon {
        width: 44px !important;
        height: 44px !important;
        border-radius: 10px !important;
        -webkit-tap-highlight-color: transparent !important;
    }
    
    /* Dropdown posicionado mejor en móviles */
    .navbar .profile-container .dropdown-menu {
        right: -10px !important;
        top: calc(100% + 10px) !important;
        min-width: 180px !important;
    }
    
    /* Items más espaciados en móviles */
    .navbar .profile-container .dropdown-menu .dropdown-item {
        padding: 1rem 1.25rem !important;
        font-size: 1rem !important;
        -webkit-tap-highlight-color: transparent !important;
    }
    
    /* Anular hover en móviles - solo funciona con touch */
    .navbar .profile-container:hover .dropdown-menu {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(-10px) !important;
    }
    
    /* ===== TOOLS DROPDOWN RESPONSIVE ===== */
    
    /* En móviles, el dropdown de tools inicia oculto */
    .navbar .tools-container .dropdown-menu {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(-10px) !important;
        transition: all 0.3s ease !important;
        left: -10px !important;
        top: calc(100% + 10px) !important;
        min-width: 220px !important;
    }
    
    /* Clase .show para activar el dropdown de tools en móviles */
    .navbar .tools-container .dropdown-menu.show {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
    }
    
    /* Items más espaciados en móviles */
    .navbar .tools-container .dropdown-menu .dropdown-item {
        padding: 1rem 1.25rem !important;
        font-size: 1rem !important;
        -webkit-tap-highlight-color: transparent !important;
    }
    
    /* Anular hover en móviles - solo funciona con touch */
    .navbar .tools-container:hover .dropdown-menu {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(-10px) !important;
    }
}

/* TABLETS: Ajustar posicionamiento */
@media (min-width: 768px) and (max-width: 991.98px) {
    .navbar .profile-container .dropdown-menu {
        right: 0 !important;
        min-width: 200px !important;
    }
}

/* MÓVILES PEQUEÑOS: Ajustes adicionales */
@media (max-width: 576px) {
    .navbar .profile-container .dropdown-menu {
        right: -20px !important;
        min-width: 160px !important;
        font-size: 0.9rem !important;
    }
    
    .navbar .profile-container .dropdown-menu .dropdown-item {
        padding: 0.9rem 1rem !important;
        font-size: 0.9rem !important;
    }
    
    .navbar .profile-container .dropdown-menu .dropdown-item svg {
        width: 16px !important;
        height: 16px !important;
    }
}

/* ========================================
   ACCESIBILIDAD Y MEJORAS TÁCTILES
   ======================================== */

/* Focus styles para accesibilidad con teclado - MINIMALISTA */
.navbar .profile-container .profile-icon:focus {
    outline: 2px solid #6c757d !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}

/* Mejorar área táctil en todos los dispositivos */
.navbar .profile-container .profile-icon {
    min-width: 44px !important;
    min-height: 44px !important;
}

/* Animación suave para el dropdown en todas las pantallas */
.navbar .profile-container .dropdown-menu {
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease !important;
}

/* Mejor contraste para los items del dropdown */
.navbar .profile-container .dropdown-menu .dropdown-item:focus {
    background: #e9ecef !important;
    outline: 2px solid #3498db !important;
    outline-offset: -2px !important;
}

/* Indicador visual de que el dropdown está activo - MINIMALISTA */
.navbar .profile-container .profile-icon[aria-expanded="true"] {
    background: #495057 !important;
    transform: none !important;
}

/* Sombra adicional cuando el dropdown está abierto */
.navbar .profile-container .dropdown-menu.show {
    box-shadow: 0 10px 25px rgba(0,0,0,0.2) !important;
}

/* ========================================
   ESTILOS PARA IMAGEN DE PERFIL Y ELEMENTOS ADICIONALES
   ======================================== */

/* Imagen de usuario en el icono del perfil - MINIMALISTA */
.navbar .profile-container .profile-icon .profile-user-image {
    width: 100% !important;
    height: 100% !important;
    border-radius: 8px !important;
    object-fit: cover !important;
    border: none !important;
}

/* Iconos SVG genéricos y de fallback */
.navbar .profile-container .profile-icon .profile-generic-icon,
.navbar .profile-container .profile-icon .profile-fallback-icon {
    width: 24px !important;
    height: 24px !important;
    fill: white !important;
}

/* Separadores en el dropdown */
.navbar .profile-container .dropdown-menu .dropdown-divider {
    margin: 0.5rem 0 !important;
    border-top: 1px solid #e9ecef !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Headers en el dropdown */
.navbar .profile-container .dropdown-menu .dropdown-header {
    padding: 0.5rem 1.25rem !important;
    margin-bottom: 0 !important;
    font-size: 0.875rem !important;
    color: #6c757d !important;
    white-space: nowrap !important;
    display: flex !important;
    align-items: center !important;
    font-weight: 600 !important;
    background: rgba(248, 249, 250, 0.5) !important;
    border-radius: 0 !important;
}

/* Ajustar el dropdown para más elementos */
.navbar .profile-container .dropdown-menu {
    min-width: 220px !important;
    max-height: 80vh !important;
    overflow-y: auto !important;
}

/* Items del dropdown con colores específicos para iconos de admin */
.navbar .profile-container .dropdown-menu .dropdown-item svg {
    width: 18px !important;
    height: 18px !important;
    fill: #7f8c8d !important;
    flex-shrink: 0 !important;
    margin-right: 0.75rem !important;
}

/* Responsive: Ajustar dropdown en móviles para más contenido */
@media (max-width: 576px) {
    .navbar .profile-container .dropdown-menu {
        min-width: 180px !important;
        max-height: 70vh !important;
        right: -15px !important;
    }
    
    .navbar .profile-container .dropdown-menu .dropdown-item {
        padding: 0.75rem 1rem !important;
        font-size: 0.875rem !important;
    }
    
    .navbar .profile-container .dropdown-menu .dropdown-header {
        padding: 0.4rem 1rem !important;
        font-size: 0.8rem !important;
    }
}

/* ========================================
   RESPONSIVE DROPDOWN BEHAVIOR
   ======================================== */

/* En pantallas grandes (992px+): mantener hover */
@media (min-width: 992px) {
    .navbar .profile-container:hover .dropdown-menu,
    .navbar .profile-container .dropdown-menu:hover,
    .navbar .tools-container:hover .dropdown-menu,
    .navbar .tools-container .dropdown-menu:hover {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
    }
    
    /* Asegurar que el hover funcione correctamente */
    .navbar .profile-container,
    .navbar .tools-container {
        cursor: pointer !important;
    }
}

/* En pantallas pequeñas (menos de 992px): deshabilitar hover y usar solo click */
@media (max-width: 991.98px) {
    /* Deshabilitar hover completamente */
    .navbar .profile-container:hover .dropdown-menu,
    .navbar .profile-container .dropdown-menu:hover,
    .navbar .tools-container:hover .dropdown-menu,
    .navbar .tools-container .dropdown-menu:hover {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateX(-50%) translateY(-10px) !important;
    }
    
    /* Solo mostrar dropdown cuando tenga la clase .show (manejado por JavaScript) */
    .navbar .profile-container .dropdown-menu.show,
    .navbar .tools-container .dropdown-menu.show {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateX(-50%) translateY(0) !important;
    }
    
    /* Ajustar posicionamiento en móviles - CENTRADO */
    .navbar .profile-container .dropdown-menu {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) translateY(-10px) !important;
        min-width: 200px !important;
    }
    
    .navbar .tools-container .dropdown-menu {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) translateY(-10px) !important;
        min-width: 220px !important;
    }
    
    /* Ajustar la flecha para que esté centrada */
    .navbar .profile-container .dropdown-menu::before {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
    }
    
    .navbar .tools-container .dropdown-menu::before {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
    }
}

