/* Reordenar tarjetas de info/progreso arriba del contenido hasta 991px */
@media (max-width: 991.98px) {
  .main-content .row.mb-4 {
    display: flex;
    flex-direction: column;
  }
  /* Curso: Progreso arriba */
  .main-content .row.mb-4 > .col-md-4 {
    order: -1;
    margin-bottom: 12px;
  }
  /* LecciÃ³n: InformaciÃ³n arriba */
  .main-content .row.mb-4 > .col-lg-4 {
    order: -1;
    margin-bottom: 12px;
  }
}
/* Capacitaciones responsive */
@media (max-width: 992px) {
  .main-content .card .ratio {
    max-width: 100%;
    width: 100%;
  }
  .main-content .card iframe {
    max-width: 100% !important;
    width: 100% !important;
    height: 52vh !important;
    display: block;
  }
}

@media (max-width: 576px) {
  .main-content .card iframe {
    max-width: 100% !important;
    width: 100% !important;
    height: 45vh !important;
    display: block;
  }
  .main-content .card .card-img-top {
    height: 120px;
  }

  /* Capacitaciones (curso): mostrar tarjeta de Progreso antes del contenido */
  .main-content .row.mb-4 {
    display: flex;
    flex-direction: column;
  }
  .main-content .row.mb-4 > .col-md-4 {
    order: -1;
    margin-bottom: 12px;
  }
  /* Capacitaciones (lecciÃ³n): informaciÃ³n antes del video/html */
  .main-content .row.mb-4 > .col-lg-4 {
    order: -1;
    margin-bottom: 12px;
  }

  /* Capacitaciones (curso): badges en columna en mobile */
  .main-content .col-md-8 .card .card-body > .d-flex.gap-2 {
    flex-direction: column !important;
    align-items: flex-start;
    gap: 6px;
  }
}

/* ==========================================================================
   RESPONSIVE CSS - MEDIA QUERIES ORGANIZADAS
   ========================================================================== */

/* ==========================================================================
   PANTALLAS GRANDES (1600px+)
   ========================================================================== */

@media screen and (min-width: 1600px) {
  /* Login */
  .login-container {
    max-width: 500px;
    padding: 50px;
  }

  .login-container h2 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
  }

  /* Welcome Card */
  .welcome-card {
    padding: 2.5rem;
    margin-bottom: 2.5rem;
  }

  .welcome-card .welcome-icon {
    font-size: 3.5rem;
    margin-right: 2.5rem;
  }

  .welcome-card .welcome-text h2 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 2);
  }

  .welcome-card .welcome-text p {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.1);
  }

  /* Home Layout */
  .home-grid-layout {
    grid-template-columns: 350px 1fr;
    gap: 6rem;
  }

  .module-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }

  .module-card {
    height: 140px;
    width: auto;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
  }

  .module-card .module-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
    margin-bottom: 18px;
  }

  .module-card .module-label h4 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.75);
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .urgent-text {
    line-height: 1;
    max-height: 1.2em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Mensaje de bienvenida para pantallas grandes */
  .welcome-message {
    padding: 2rem;
    min-height: 160px;
  }

  .welcome-title {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
    margin-bottom: 0.8rem;
  }

  .welcome-text {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.95);
    line-height: 1.5;
    margin-bottom: 0.6rem;
  }

  /* Mensaje de bienvenida responsive */
  .welcome-message {
    padding: 1.2rem;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }

  .welcome-icon {
    align-self: center;
  }

  .welcome-message-container {
    margin-bottom: 1rem;
  }

  /* Footer */
  .footer-content {
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
    padding: 2.5rem 1.5rem 1.5rem 1.5rem;
  }

  .company-logos {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }

  .company-logo {
    padding: 0.8rem;
    min-height: 70px;
  }

  .company-logo img {
    max-height: 50px;
  }

  .footer-bottom-content {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
}

@media screen and (max-width: 1600px) {
  .dashboard-container {
    margin-bottom: 3.5rem;
  }
}

@media screen and (max-width: 1024px) {
  .dashboard-container {
    margin-bottom: 2.5rem;
  }
}

@media screen and (max-width: 768px) {
  .dashboard-container {
    margin-bottom: 2rem;
  }
}

@media screen and (max-width: 490px) {
  .welcome-message {
    height: 180px;
  }
}

@media screen and (max-width: 480px) {
  .dashboard-container {
    margin-top: 1rem;
    margin-bottom: 2rem;
  }
}

/* ==========================================================================
   PANTALLAS GRANDES (1100px+)
   ========================================================================== */

@media screen and (min-width: 1100px) and (max-width: 1599px) {
  .home-grid-layout {
    gap: 0px;
  }
  .module-grid {
    margin: 0px 100px;
  }

  .module-card {
    width: 180px;
  }
}

/* Se aplica a laptops (pantallas con 1024px de ancho o menos) */
@media screen and (max-width: 1024px) {
  /* ==========================================================================
   ESTILOS PARA PÃGINA DE LOGIN
   ========================================================================== */
  /* ESTILOS PARA PANEL ADMIN HEADER */
  .main-header {
    width: 100%;
    padding: 0.75rem 1rem;
    gap: 0.75rem;
  }

  .main-header .logo-link img {
    width: 80px;
  }

  .header-title {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1);
    margin: 0 0.5rem;
  }

  .user-display {
    padding: 0.4rem 0.8rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.8);
  }

  .user-display i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1);
  }

  .user-actions {
    margin-left: 0.5rem;
    gap: 0.3rem;
  }

  .user-actions .btn {
    padding: 0.3rem 0.6rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.75);
  }

  /* ==========================================================================
   ESTILOS PARA PÃGINA DE HOME
   ========================================================================== */
  .home-grid-layout {
    grid-template-columns: 250px 1fr;
    gap: 3rem;
  }

  .module-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }

  .module-card {
    height: 125px;
    width: auto;
    padding: 20px 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
  }

  .module-card .module-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1);
    margin-bottom: 10px;
  }

  .module-card .module-label h4 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.65);
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .urgent-text {
    line-height: 1;
    max-height: 1.2em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* =====================
   DASHBOARD WELCOME RESPONSIVE
   ===================== */
  .dashboard-welcome {
    padding: 20px;
  }

  .dashboard-welcome h1 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
  }

  .dashboard-welcome .welcome-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.7);
  }
}

@media screen and (max-width: 768px) {
  .dashboard-welcome {
    flex-direction: column;
    text-align: center;
    padding: 1.2rem;
    gap: 1rem;
  }

  .dashboard-welcome h1 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.1);
  }

  .dashboard-welcome .welcome-icon {
    margin-top: 1rem;
  }

  .dashboard-welcome .welcome-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
    margin: 0;
  }

  .dashboard-welcome p {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.95);
  }
}

@media screen and (max-width: 480px) {
  .dashboard-welcome {
    padding: 0.7rem;
    gap: 0.7rem;
  }

  .dashboard-welcome h1 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.95);
  }

  .dashboard-welcome .welcome-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.1);
  }

  .dashboard-welcome p {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.85);
  }
}

/* Se aplica a tablets y celulares (pantallas con 768px de ancho o menos) */
@media screen and (max-width: 768px) {
  /* ==========================================================================
   ESTILOS PARA PÃGINA DE LOGIN
   ========================================================================== */
  .login-page {
    align-items: flex-start;
    padding-top: 50px;
    min-height: auto;
  }

  .login-container {
    padding: 30px 25px;
    box-shadow: none;
    border: 1px solid var(--color-gray-200);
  }

  .login-container h2 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.3);
  }

  .content-wrapper {
    padding: 1.5rem;
  }

  /* ==========================================================================
   ESTILOS PARA CARTA DE BIENVENIDA
   ========================================================================== */
  .welcome-card {
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    flex-direction: column;
    text-align: center;
  }

  .welcome-card .welcome-icon {
    font-size: 2.5rem;
    margin-right: 0;
    margin-bottom: 1rem;
  }

  .welcome-card .welcome-text h2 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.6);
  }

  .welcome-card .welcome-text p {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.95);
  }

  /* ==========================================================================
     ESTILOS RESPONSIVE PARA HEADER ADMIN
     ========================================================================== */
  .main-header {
    padding: 0.5rem 1rem;
    gap: 0.5rem;
  }

  .main-header .logo-link img {
    width: 70px;
  }

  .header-title {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.9);
    margin: 0 0.25rem;
  }

  .user-display {
    padding: 0.3rem 0.6rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.75);
  }

  .user-display i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.9);
  }

  .user-actions {
    margin-left: 0.3rem;
    gap: 0.2rem;
  }

  .user-actions .btn {
    padding: 0.25rem 0.5rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.7);
  }

  .user-actions .btn i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.8);
  }

  /* ==========================================================================
   ESTILOS PARA PÃGINA DE HOME
   ========================================================================== */
  .home-grid-layout {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .profile-card {
    width: 100%;
    margin: 0 auto;
  }

  .module-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.8rem;
  }

  .module-card {
    height: 130px;
    width: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
  }

  .module-card .module-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.1);
    margin-bottom: 12px;
  }

  .module-card .module-label h4 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.7);
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .urgent-text {
    line-height: 1;
    max-height: 1.2em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Mensaje de bienvenida responsive */
  .welcome-message {
    padding: 1.2rem;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }

  .welcome-icon {
    align-self: center;
  }

  .welcome-message-container {
    margin-bottom: 1rem;
  }

  /* ==========================================================================
     ESTILOS RESPONSIVE PARA FOOTER ADMIN
     ========================================================================== */
  .footer-content {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding: 2rem 1rem 1rem 1rem;
  }

  .company-logos {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.8rem;
  }

  .company-logo {
    padding: 0.7rem;
    min-height: 65px;
  }

  .company-logo img {
    max-height: 45px;
  }

  .footer-title {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.9);
  }

  .contact-item,
  .footer-link,
  .support-item {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.8);
  }
}

/* Se aplica a celulares muy pequeÃ±os (pantallas con 480px de ancho o menos) */
@media screen and (max-width: 480px) {
  /* ==========================================================================
   ESTILOS PARA PÃGINA DE LOGIN
   ========================================================================== */
  .login-page {
    padding: 0;
    align-items: stretch;
  }

  .login-container {
    border: none;
    box-shadow: none;
    border-radius: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .content-wrapper {
    padding: 1rem;
  }

  /* ==========================================================================
   ESTILOS PARA CARTA DE BIENVENIDA
   ========================================================================== */
  .welcome-card {
    padding: 1rem;
    margin-bottom: 1rem;
  }

  .welcome-card .welcome-icon {
    font-size: 2rem;
    margin-bottom: 0.75rem;
  }

  .welcome-card .welcome-text h2 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1.4);
    margin-bottom: 0.75rem;
  }

  .welcome-card .welcome-text p {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.9);
    margin-bottom: 0.75rem;
  }

  /* ==========================================================================
   ESTILOS PARA PÃGINA DE ADMIN
   ========================================================================== */
  /* ESTILOS PARA PANEL ADMIN HEADER */
  .main-header {
    padding: 0.4rem 0.5rem;
    gap: 0.4rem;
  }

  .main-header .logo-link img {
    width: 60px;
  }

  .header-title {
    display: none;
  }

  .user-display {
    padding: 0.25rem 0.5rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.7);
  }

  .user-display i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.8);
  }

  .user-actions {
    margin-left: 0.2rem;
    gap: 0.15rem;
  }

  .user-actions .btn {
    padding: 0.2rem 0.4rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.65);
  }

  .user-actions .btn i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.7);
  }

  /* ==========================================================================
   ESTILOS PARA PÃGINA DE HOME
   ========================================================================== */
  .home-grid-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .profile-card {
    width: 100%;
    margin: 0 auto;
  }

  .module-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8rem;
  }

  .module-card {
    height: 110px;
    width: auto;
    padding: 20px 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
  }

  .module-card .module-icon i {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 1);
    margin-bottom: 10px;
  }

  .module-card .module-label h4 {
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.65);
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .urgent-text {
    line-height: 1;
    max-height: 1.2em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Mensaje de bienvenida responsive */
  .welcome-message {
    padding: 1.2rem;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }

  .welcome-icon {
    align-self: center;
  }

  .welcome-message-container {
    margin-bottom: 1rem;
  }

  /* ==========================================================================
     ESTILOS RESPONSIVE PARA FOOTER ADMIN
     ========================================================================== */
  .footer-content {
    padding: 1.5rem 0.5rem 1rem 0.5rem;
    gap: 2rem;
  }

  .company-logos {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.6rem;
  }

  .company-logo {
    padding: 0.6rem;
    min-height: 55px;
  }

  .company-logo img {
    max-height: 35px;
  }

  .footer-bottom {
    padding: 1rem 0.5rem;
  }

  .footer-actions {
    flex-direction: column;
    gap: 0.5rem;
  }

  /* ==========================================================================
     ESTILOS RESPONSIVE PARA MENSAJES FLASH
     ========================================================================== */
  .flash-message-container {
    top: 70px;
    max-width: 95%;
  }

  .flash-message-container .alert {
    padding: 0.8rem 1.2rem;
    font-size: calc(var(--base-size) * var(--text-scale-ratio) * 0.85);
  }
}

/* ==========================================================================
   RESPONSIVE PARA PERFIL DETALLADO
   ========================================================================== */

/* Tablet y pantallas medianas */
@media (max-width: 900px) {
  .profile-view-card-horizontal {
    flex-direction: column;
    align-items: center;
    padding: 2rem 1.5rem;
    gap: 2rem;
    margin: 0 auto 2rem auto;
  }

  .profile-view-photo {
    flex: none;
    margin-bottom: 0;
  }

  .profile-view-info {
    width: 100%;
    align-items: center;
    justify-content: center;
  }

  .profile-fields-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    width: 100%;
    max-width: 500px;
  }

  .profile-field {
    text-align: center;
    padding: 0.8rem;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.05);
  }
}

/* MÃ³viles grandes */
@media (max-width: 576px) {
  .profile-view-card-horizontal {
    padding: 1.5rem 1rem;
    margin: 0 0.5rem 1.5rem 0.5rem;
    gap: 1.5rem;
  }

  .profile-picture-lg {
    width: 100px;
    height: 100px;
  }

  .profile-fields-grid {
    gap: 1rem;
    max-width: 100%;
  }

  .profile-field {
    padding: 0.6rem;
  }

  .profile-label {
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
  }

  .profile-value {
    font-size: 1rem;
    line-height: 1.3;
  }
}

/* MÃ³viles pequeÃ±os */
@media (max-width: 480px) {
  .dashboard-container {
    padding: 0 0.5rem;
  }

  /* Mejorar espaciado general en mobile */
  .dashboard-container .back-button-container {
    margin-bottom: 1rem;
  }

  /* Prevenir overflow horizontal */
  .profile-view-card-horizontal * {
    max-width: 100%;
    box-sizing: border-box;
  }
  .profile-view-card-horizontal {
    padding: 1rem 0.8rem;
    margin: 0 0.2rem 1rem 0.2rem;
    gap: 1.2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  }

  .profile-picture-lg {
    width: 85px;
    height: 85px;
    border-width: 3px;
  }

  .profile-fields-grid {
    gap: 0.8rem;
  }

  .profile-field {
    padding: 0.5rem;
    border-radius: 6px;
  }

  .profile-label {
    font-size: 0.85rem;
    font-weight: 600;
  }

  .profile-value {
    font-size: 0.95rem;
    line-height: 1.4;
  }

  /* Mejorar botÃ³n volver en mobile */
  .back-button-container {
    margin-bottom: 1rem;
    padding: 0 0.5rem;
  }

  .back-button-container .btn {
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}

/* MÃ³viles extra pequeÃ±os */
@media (max-width: 360px) {
  .profile-view-card-horizontal {
    padding: 0.8rem 0.6rem;
    margin: 0 0.1rem 0.8rem 0.1rem;
  }

  .profile-picture-lg {
    width: 75px;
    height: 75px;
  }

  .profile-label {
    font-size: 0.8rem;
  }

  .profile-value {
    font-size: 0.9rem;
  }

  .profile-field {
    padding: 0.4rem;
  }
}

/* ==========================================================================
   RESPONSIVE PARA MÃ“DULO DE AUTOGESTIÃ“N
   ========================================================================== */

@media (max-width: 768px) {
  .autogestion-stats-container {
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
  }

  .autogestion-stat-item {
    margin: 0;
    width: 100%;
    min-width: 0;
  }

  .autogestion-spacer,
  .autogestion-spacer-large {
    height: 15px;
  }

  .autogestion-navigation-spacing {
    margin-bottom: 1rem;
  }

  .autogestion-section-spacing {
    margin-bottom: 1.5rem;
  }

  .autogestion-history-spacing {
    margin-top: 1.5rem;
  }

  .autogestion-form {
    padding: 1rem;
  }

  .autogestion-info-card {
    margin-bottom: 1rem;
  }

  .autogestion-table {
    font-size: 0.875rem;
  }

  .autogestion-table th,
  .autogestion-table td {
    padding: 0.5rem 0.25rem;
  }
}

@media (max-width: 576px) {
  .autogestion-icon-large {
    font-size: 2.5rem;
  }

  .autogestion-stats-container {
    gap: 0.25rem;
    margin: 1rem 0;
  }

  .autogestion-stat-item {
    padding: 0.75rem;
  }

  .autogestion-stat-value {
    font-size: 1.25rem;
  }

  .autogestion-stat-label {
    font-size: 0.75rem;
  }

  .autogestion-empty-state {
    padding: 2rem 1rem;
  }

  .autogestion-empty-state i {
    font-size: 2.5rem;
  }

  .autogestion-info-card .card-body {
    padding: 1rem;
  }
}

@media (max-width: 992px) {
  .autogestion-stats-container {
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
  }
  .autogestion-stat-item {
    width: 100%;
    min-width: 0;
  }
}

/* ==========================================================================
   ESTILOS ESPECÃFICOS PARA MÃ“DULO DE DIRECTORIO INTERNO
   ========================================================================== */

/* Ocultar columnas de correo y telÃ©fono en la tabla del directorio */
.directorio-container .autogestion-table th:nth-child(3),
.directorio-container .autogestion-table td:nth-child(3),
.directorio-container .autogestion-table th:nth-child(4),
.directorio-container .autogestion-table td:nth-child(4) {
  display: none;
}

/* Para pantallas de 880px o menos, ocultar tambiÃ©n el cargo */
@media (max-width: 880px) {
  .directorio-container .autogestion-table th:nth-child(2),
  .directorio-container .autogestion-table td:nth-child(2),
  .directorio-container .autogestion-table th:nth-child(5),
  .directorio-container .autogestion-table td:nth-child(5) {
    display: none;
  }
}

/* Distribuir el ancho de las columnas restantes */
.directorio-container .autogestion-table {
  width: 100%;
  table-layout: fixed;
}

/* Ancho para pantallas grandes (con cargo visible) */
.directorio-container .autogestion-table th:nth-child(1),
.directorio-container .autogestion-table td:nth-child(1) {
  width: 35%; /* Nombre */
}

.directorio-container .autogestion-table th:nth-child(2),
.directorio-container .autogestion-table td:nth-child(2) {
  width: 25%; /* Cargo */
}

.directorio-container .autogestion-table th:nth-child(5),
.directorio-container .autogestion-table td:nth-child(5) {
  width: 25%; /* Empresa */
}

.directorio-container .autogestion-table th:nth-child(6),
.directorio-container .autogestion-table td:nth-child(6) {
  width: 15%; /* Acciones */
  text-align: center;
}

/* Ancho para pantallas pequeÃ±as (sin cargo) */
@media (max-width: 880px) {
  .directorio-container .autogestion-table th:nth-child(1),
  .directorio-container .autogestion-table td:nth-child(1) {
    width: 50%; /* Nombre */
  }

  .directorio-container .autogestion-table th:nth-child(5),
  .directorio-container .autogestion-table td:nth-child(5) {
    width: 35%; /* Empresa */
  }

  .directorio-container .autogestion-table th:nth-child(6),
  .directorio-container .autogestion-table td:nth-child(6) {
    width: 15%; /* Acciones */
    text-align: center;
  }
}

/* ==========================================================================
   ESTILOS PARA DOCUMENTOS Y POLÃTICAS
   ========================================================================== */

@media (max-width: 480px) {
  .document-card {
    flex-direction: column;
  }
}

/* ==========================================================================
   ESTILOS RESPONSIVE PARA GESTIÃ“N DE EMPRESAS
   ========================================================================== */

/* Ajustes para pantallas medianas (tablets) - mantener 3 columnas */
@media (max-width: 1200px) and (min-width: 993px) {
  .empresas-stats-container {
    margin-bottom: 1.5rem;
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .col-md-4 {
    margin-bottom: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .empresas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .card-body {
    padding: 1rem;
  }

  .empresas-stats-container .card-body h5 {
    font-size: 1.5rem;
  }

  .empresas-stats-container .card-body p {
    font-size: 0.85rem;
  }

  .empresas-stats-container .fa-2x {
    font-size: 1.5rem !important;
  }
}

/* Ajustes para pantallas de tablets grandes - mantener 3 columnas */
@media (max-width: 992px) and (min-width: 769px) {
  .empresas-stats-container {
    margin-bottom: 1.5rem;
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .col-md-4 {
    margin-bottom: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .empresas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .card-body {
    padding: 0.75rem;
  }

  .empresas-stats-container .card-body h5 {
    font-size: 1.25rem;
  }

  .empresas-stats-container .card-body p {
    font-size: 0.8rem;
  }

  .empresas-stats-container .fa-2x {
    font-size: 1.25rem !important;
  }
}

/* Ajustes para pantallas pequeÃ±as (mÃ³viles) - mantener 3 columnas en tablets */
@media (max-width: 768px) and (min-width: 577px) {
  .empresas-stats-container {
    margin-bottom: 1rem;
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .col-md-4 {
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .empresas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .card-body {
    padding: 0.75rem;
  }

  .empresas-stats-container .card-body h5 {
    font-size: 1.1rem;
  }

  .empresas-stats-container .card-body p {
    font-size: 0.75rem;
  }

  .empresas-stats-container .fa-2x {
    font-size: 1.1rem !important;
  }

  /* Ajustar el header de la tabla de empresas */
  .empresas-table-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .empresas-table-header .card-title {
    font-size: 1.1rem;
    margin-bottom: 0;
  }

  .empresas-table-header .btn {
    width: 100%;
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}

/* Ajustes para pantallas muy pequeÃ±as - colapsar a una columna */
@media (max-width: 576px) {
  .empresas-stats-container {
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .col-md-4 {
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .empresas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .empresas-stats-container .card-body {
    padding: 0.5rem;
  }

  .empresas-stats-container .card-body h5 {
    font-size: 1.1rem;
  }

  .empresas-stats-container .card-body p {
    font-size: 0.75rem;
  }

  .empresas-stats-container .fa-2x {
    font-size: 1rem !important;
  }

  .empresas-stats-container .d-flex {
    flex-direction: column;
    text-align: center;
  }

  .empresas-stats-container .flex-grow-1 {
    margin-top: 0.5rem;
  }

  /* Ajustar modales en pantallas pequeÃ±as */
  .autogestion-modal .modal-dialog {
    margin: 0.5rem;
  }

  .autogestion-modal .modal-content {
    border-radius: 0.5rem;
  }

  .autogestion-modal .modal-body {
    padding: 1rem;
  }

  .autogestion-modal .form-control-lg {
    font-size: 1rem;
    padding: 0.5rem 0.75rem;
  }

  .autogestion-modal .btn-lg {
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}

/* Ajustes especÃ­ficos para la tabla de empresas */
@media (max-width: 768px) {
  .empresas-table-container .jefatura-table th,
  .empresas-table-container .jefatura-table td {
    padding: 0.5rem 0.25rem;
    font-size: 0.875rem;
  }

  .empresas-table-container .jefatura-table .jefatura-colaborador-col strong {
    font-size: 0.9rem;
  }

  .empresas-table-container .jefatura-table .jefatura-colaborador-col small {
    font-size: 0.75rem;
  }

  .empresas-table-container .jefatura-table .badge {
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
  }

  .empresas-table-container .jefatura-table .btn-group-sm .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 576px) {
  .empresas-table-container .jefatura-table th,
  .empresas-table-container .jefatura-table td {
    padding: 0.4rem 0.2rem;
    font-size: 0.8rem;
  }

  .empresas-table-container .jefatura-table .jefatura-colaborador-col strong {
    font-size: 0.85rem;
  }

  .empresas-table-container .jefatura-table .jefatura-colaborador-col small {
    font-size: 0.7rem;
  }

  .empresas-table-container .jefatura-table .badge {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
  }

  .empresas-table-container .jefatura-table .btn-group-sm .btn {
    padding: 0.2rem 0.4rem;
    font-size: 0.7rem;
  }
}

/* ==========================================================================
   ESTILOS RESPONSIVE PARA GESTIÃ“N DE POLÃTICAS
   ========================================================================== */

/* Ajustes para pantallas medianas (tablets) - mantener 3 columnas */
@media (max-width: 1200px) and (min-width: 993px) {
  .politicas-stats-container {
    margin-bottom: 1.5rem;
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .col-md-4 {
    margin-bottom: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .politicas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .card-body {
    padding: 1rem;
  }

  .politicas-stats-container .card-body h5 {
    font-size: 1.5rem;
  }

  .politicas-stats-container .card-body p {
    font-size: 0.85rem;
  }

  .politicas-stats-container .fa-2x {
    font-size: 1.5rem !important;
  }
}

/* Ajustes para pantallas de tablets grandes - mantener 3 columnas */
@media (max-width: 992px) and (min-width: 769px) {
  .politicas-stats-container {
    margin-bottom: 1.5rem;
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .col-md-4 {
    margin-bottom: 1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .politicas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .card-body {
    padding: 0.75rem;
  }

  .politicas-stats-container .card-body h5 {
    font-size: 1.25rem;
  }

  .politicas-stats-container .card-body p {
    font-size: 0.8rem;
  }

  .politicas-stats-container .fa-2x {
    font-size: 1.25rem !important;
  }
}

/* Ajustes para pantallas pequeÃ±as (mÃ³viles) - mantener 3 columnas en tablets */
@media (max-width: 768px) and (min-width: 577px) {
  .politicas-stats-container {
    margin-bottom: 1rem;
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .col-md-4 {
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .politicas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .card-body {
    padding: 0.75rem;
  }

  .politicas-stats-container .card-body h5 {
    font-size: 1.1rem;
  }

  .politicas-stats-container .card-body p {
    font-size: 0.75rem;
  }

  .politicas-stats-container .fa-2x {
    font-size: 1.1rem !important;
  }

  /* Ajustar el header de la tabla de polÃ­ticas */
  .politicas-table-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .politicas-table-header .card-title {
    font-size: 1.1rem;
    margin-bottom: 0;
  }

  .politicas-table-header .btn {
    width: 100%;
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}

/* Ajustes para pantallas muy pequeÃ±as - colapsar a una columna */
@media (max-width: 576px) {
  .politicas-stats-container {
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .col-md-4 {
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .politicas-table-container {
    margin-left: 0;
    margin-right: 0;
  }

  .politicas-stats-container .card-body {
    padding: 0.5rem;
  }

  .politicas-stats-container .card-body h5 {
    font-size: 1.1rem;
  }

  .politicas-stats-container .card-body p {
    font-size: 0.75rem;
  }

  .politicas-stats-container .fa-2x {
    font-size: 1rem !important;
  }

  .politicas-stats-container .d-flex {
    flex-direction: column;
    text-align: center;
  }

  .politicas-stats-container .flex-grow-1 {
    margin-top: 0.5rem;
  }

  /* Ajustar modales en pantallas pequeÃ±as */
  .autogestion-modal .modal-dialog {
    margin: 0.5rem;
  }

  .autogestion-modal .modal-content {
    border-radius: 0.5rem;
  }

  .autogestion-modal .modal-body {
    padding: 1rem;
  }

  .autogestion-modal .form-control-lg {
    font-size: 1rem;
    padding: 0.5rem 0.75rem;
  }

  .autogestion-modal .btn-lg {
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}

/* Ajustes especÃ­ficos para la tabla de polÃ­ticas */
@media (max-width: 768px) {
  .politicas-table-container .jefatura-table th,
  .politicas-table-container .jefatura-table td {
    padding: 0.5rem 0.25rem;
    font-size: 0.875rem;
  }

  .politicas-table-container .jefatura-table .jefatura-colaborador-col strong {
    font-size: 0.9rem;
  }

  .politicas-table-container .jefatura-table .jefatura-colaborador-col small {
    font-size: 0.75rem;
  }

  .politicas-table-container .jefatura-table .badge {
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
  }

  .politicas-table-container .jefatura-table .btn-group-sm .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

@media (max-width: 576px) {
  .politicas-table-container .jefatura-table th,
  .politicas-table-container .jefatura-table td {
    padding: 0.4rem 0.2rem;
    font-size: 0.8rem;
  }

  .politicas-table-container .jefatura-table .jefatura-colaborador-col strong {
    font-size: 0.85rem;
  }

  .politicas-table-container .jefatura-table .jefatura-colaborador-col small {
    font-size: 0.7rem;
  }

  .politicas-table-container .jefatura-table .badge {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
  }

  .politicas-table-container .jefatura-table .btn-group-sm .btn {
    padding: 0.2rem 0.4rem;
    font-size: 0.7rem;
  }
}

/* ==========================================================================
   CAPA FINAL RESPONSIVE GLOBAL
   ========================================================================== */

.main-content,
.content-wrapper,
.dashboard-container,
.payroll-page,
.home-grid-layout,
.module-grid,
.payroll-sheet,
.table-responsive {
  min-width: 0;
}

.content-wrapper {
  width: 100% !important;
  max-width: none !important;
  justify-content: stretch !important;
}

.content-wrapper > *,
.dashboard-container,
.payroll-page {
  width: 100% !important;
  max-width: none !important;
}

.dashboard-container {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.table-responsive,
.payroll-sheet {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.payroll-sheet table {
  width: 100%;
}

.home-grid-layout {
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) !important;
  gap: clamp(1rem, 4vw, 4rem) !important;
}

.module-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
}

.module-card {
  width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 1100px) {
  .content-wrapper {
    padding: 1.25rem !important;
  }

  .home-grid-layout {
    grid-template-columns: 1fr !important;
  }

  .profile-card {
    width: 100% !important;
  }
}

@media (max-width: 760px) {
  .content-wrapper {
    padding: 0.85rem !important;
  }

  .main-header {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 0.75rem !important;
  }

  .brand-wrap,
  .user-info,
  .user-actions {
    width: 100% !important;
    min-width: 0 !important;
  }

  .user-info,
  .user-actions {
    flex-wrap: wrap !important;
  }

  .user-actions {
    margin-left: 0 !important;
  }

  .top-menu {
    position: relative !important;
    top: auto !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
    padding: 0.45rem 0.65rem !important;
  }

  .top-menu > a,
  .top-menu-item {
    flex: 1 1 auto !important;
  }

  .top-menu > a,
  .top-menu button {
    justify-content: center !important;
  }

  .top-submenu {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-top: 0.25rem !important;
    box-shadow: 0 8px 18px rgba(20, 33, 61, 0.12) !important;
  }

  .payroll-page {
    padding: 0.65rem !important;
  }

  .payroll-titlebar {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .payroll-form,
  .employee-form,
  .concepts-form,
  .user-admin-form,
  .autogestion-request-form,
  .schedule-form {
    grid-template-columns: 1fr !important;
  }

  .payroll-form .btn,
  .schedule-form .btn,
  .autogestion-request-form .btn {
    width: 100% !important;
  }

  .module-grid {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
  }

  .profile-view-card-horizontal {
    flex-direction: column !important;
    align-items: center !important;
    max-width: 100% !important;
    padding: 1rem !important;
  }

  .profile-fields-grid {
    grid-template-columns: 1fr !important;
  }

  .shift-post-row {
    grid-template-columns: 1fr !important;
  }

  .shift-post-days {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }
}

@media (max-width: 480px) {
  .content-wrapper {
    padding: 0.55rem !important;
  }

  .module-grid,
  .shift-post-days {
    grid-template-columns: 1fr !important;
  }

  .payroll-sheet table {
    font-size: 0.82rem !important;
  }
}
