/**
 * ============================================
 * GESTDOC ADMIN CSS (Versión Definitiva)
 * ============================================
 */

/* ============================================
   OCULTAR HEADER/FOOTER GENERATEPRESS EN PANEL ADMIN
============================================ */

.gestdoc-admin-page #masthead,
.gestdoc-admin-page .site-footer,
.gestdoc-admin-page .site-info,
.gestdoc-admin-page .generate-back-to-top {
    display: none !important;
}

.gestdoc-admin-page #page,
.gestdoc-admin-page #content,
.gestdoc-admin-page #primary,
.gestdoc-admin-page #main,
.gestdoc-admin-page .content-area,
.gestdoc-admin-page .inside-article,
.gestdoc-admin-page .entry-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

.gestdoc-admin-wrapper {
    width: 95%;
    max-width: 95%;
    margin: 20px auto;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    padding: 20px;
    box-sizing: border-box;
    font-size: 13px;
}

/* Tipografía base 13px para todo el panel admin */
.gestdoc-admin-wrapper,
.gestdoc-admin-wrapper p,
.gestdoc-admin-wrapper td,
.gestdoc-admin-wrapper th,
.gestdoc-admin-wrapper label,
.gestdoc-admin-wrapper input,
.gestdoc-admin-wrapper select,
.gestdoc-admin-wrapper textarea,
.gestdoc-admin-wrapper button,
.gestdoc-admin-wrapper a:not(.gestdoc-tab):not(.gestdoc-btn-save):not(.gestdoc-btn-cerrar) {
    font-size: 13px;
}

/* ============================================
   CABECERA
============================================ */

.gestdoc-admin-wrapper .gestdoc-header-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    /*border-bottom: 2px solid #2271b1;
    padding-bottom: 15px;*/
    margin-bottom: 20px;
}

.gestdoc-admin-wrapper .gestdoc-main-title {
    margin: 0;
    padding: 0;
    color: #2271b1;
    font-size: 26px;
    line-height: 1.2;
}

.gestdoc-admin-wrapper .gestdoc-header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gestdoc-admin-wrapper .gestdoc-btn-cerrar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 16px;
    height: 34px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.15s ease;
    color: #555;
    background: transparent;
    border: 1px solid #e0e0e0;
    box-sizing: border-box;
}

.gestdoc-admin-wrapper .gestdoc-btn-cerrar:hover {
    background: #dc3545;
    color: white !important;
    border-color: #dc3545;
}

/* ============================================
   AVATAR + MENÚ DESPLEGABLE (cabecera admin)
============================================ */
.gestdoc-admin-wrapper .gestdoc-avatar-menu {
    position: relative;
}

.gestdoc-admin-wrapper .gestdoc-avatar-btn {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    border: 2px solid #ffffff   ;
    background: #f0f2f5;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition: border-color 0.15s ease;
}

.gestdoc-admin-wrapper .gestdoc-avatar-btn:hover {
    border-color: #2271b1;
}

.gestdoc-admin-wrapper .gestdoc-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gestdoc-admin-wrapper .gestdoc-avatar-svg {
    width: 18px;
    height: 18px;
    color: #8a8f98;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: max-content;
    min-width: 190px;
    max-width: min(320px, 90vw);
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    z-index: 100;
    overflow: hidden;
    flex-direction: column;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown.gestdoc-avatar-dropdown-abierto {
    display: flex;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown-info {
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f1;
    background: #f8f9fa;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown-email {
    font-size: 12px;
    color: #646970;
    word-break: break-all;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: transparent;
    border: none;
    text-align: left;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    color: #1d2327;
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown-item:hover {
    background: #f0f2f5;
}

.gestdoc-admin-wrapper .gestdoc-avatar-dropdown-item-danger:hover {
    background: #f8d7da;
    color: #721c24;
}

/* ============================================
   TABS / PESTAÑAS
============================================ */

.gestdoc-admin-wrapper .gestdoc-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 1px solid #c3c4c7;
    margin: 20px 0 0;
    position: relative;
}

.gestdoc-admin-wrapper .gestdoc-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    color: #50575e;
    background: #f0f0f1;
    border: 1px solid #e2e4e7;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    transition: all 0.2s ease;
    margin-bottom: -1px;
    white-space: nowrap;
}

/* Resaltado de pestaña seleccionada: fondo blanco, borde superior azul y
   texto en negrita azul, igual que en el área privada del cliente.
   Máxima especificidad para que se vea igual en TODAS las pestañas. */
.gestdoc-admin-wrapper a.gestdoc-tab.active {
    background: #ffffff !important;
    border-color: #2271b1 #e2e4e7 #ffffff !important;
    border-top: 3px solid #2271b1 !important;
    color: #1d5f96 !important;
    font-weight: 700 !important;
}

.gestdoc-admin-wrapper .gestdoc-tab:hover {
    background: #ffffff;
    color: #2271b1;
}

/* ============================================
   MENÚ LATERAL (alternativa a las pestañas de arriba, opción en
   Configuración → Diseño de navegación). Solo se activa en escritorio: el
   menú lateral está oculto por defecto (display: none) y solo aparece a
   partir de 769px, así que en móvil se ve siempre la barra de pestañas de
   toda la vida, esté cual esté la opción elegida.
============================================ */

.gestdoc-admin-wrapper .gestdoc-sidebar-nav {
    display: none;
}

.gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-main-area {
    min-width: 0;
}

@media (min-width: 769px) {
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-body-area {
        display: flex;
        align-items: stretch;
        gap: 16px;
    }

    /* Exterior: solo reserva el ancho real en el layout (200px fijado, o
       60px colapsado). Sin fondo ni padding propios: eso lo pone la capa
       interior, que es la que se ve. display:block explícito porque la
       regla base (fuera de este media query) la pone en display:none para
       el móvil, y aquí hay que anularlo o no se ve nada en escritorio. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-nav {
        display: block;
        position: relative;
        width: 200px;
        flex-shrink: 0;
    }

    /* Interior: posición absoluta para poder crecer (al pasar el ratón,
       estando colapsada) sin desplazar el contenido de al lado, ya que la
       exterior no cambia de ancho mientras dura el hover. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-nav-inner {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        width: 200px;
        display: flex;
        flex-direction: column;
        gap: 6px;
        /* padding: 0 8px 8px; */
        background: var(--gd-menu, #2271b1);
        border-radius: 12px;
        overflow: hidden;
        transition: width 0.15s ease;
    }

    /* Logo de empresa: con el menú lateral activo se quita de la cabecera
       (ver .gestdoc-area-header-logo más abajo) y aparece aquí arriba del
       todo, justo debajo del botón de colapsar/fijar. */
    /* Fila de arriba del menú (logo + botón de colapsar/fijar): 62px de
       alto, igual que la cabecera con el avatar de la columna de contenido,
       para que logo y avatar queden a la misma altura. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-top {
        position: relative;
        display: flex;
        align-items: center;
        height: 62px;
        padding-right: 30px;
        margin-bottom: 6px;
        flex-shrink: 0;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-logo {
        display: flex;
        align-items: center;
        min-width: 0;
        padding-left: 4px;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-logo img {
        max-width: 100%;
        max-height: 40px;
        object-fit: contain;
    }

    /* Con el menú lateral activo, el logo vive en el propio menú (ver
       arriba): se quita de la cabecera para no repetirlo dos veces. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-area-header-logo {
        display: none;
    }

    /* Botón para colapsar/fijar el menú: arriba del todo, a la derecha,
       fuera del flujo de las secciones para que no desplace nada.
       Deliberadamente distinto de .gestdoc-btn-icono (que se usa en tablas
       de documentos/clientes): circular y translúcido sobre el azul, no
       cuadrado con borde sobre blanco. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-collapse-btn {
        position: absolute;
        top: 19px;
        right: 2px;
        width: 24px;
        height: 24px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: none;
        border-radius: 50%;
        background: rgba(255,255,255,0.16);
        color: #eaf2fb;
        cursor: pointer;
        padding: 0;
        flex-shrink: 0;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-collapse-btn svg {
        width: 14px;
        height: 14px;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-collapse-btn:hover {
        background: rgba(255,255,255,0.32);
        color: #fff;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 4px 10px;
        border-radius: 6px;
        text-decoration: none;
        font-size: 15px !important; /* el CSS dinámico fuerza font-size con !important en todo el panel */
        font-weight: 500;
        color: rgba(255,255,255,0.82);
        white-space: nowrap;
        transition: background 0.15s ease, color 0.15s ease;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-item-main {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-icon {
        font-size: 20px;
        line-height: 1;
        flex-shrink: 0;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-label {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-badge {
        background: #dc3545;
        color: #fff;
        border-radius: 20px;
        padding: 2px 8px;
        font-size: 11px;
        margin-left: 6px;
        flex-shrink: 0;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-item:hover {
        background: rgba(255,255,255,0.14);
        color: #fff;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral a.gestdoc-sidebar-item.active {
        background: #fff !important;
        color: var(--gd-menu, #1d5f96) !important;
        font-weight: 700;
        box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    }

    /* PRUEBA de estilo: botones en un tono derivado del color del menú
       (se aclara un poco para destacar sobre el fondo) e iconos en blanco
       dentro de un círculo más oscuro. Todo sale del mismo --gd-menu, así
       que se adapta al color configurado. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral a.gestdoc-sidebar-item:not(.active) {
        background: color-mix(in srgb, var(--gd-menu, #2271b1) 92%, #fff);
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral a.gestdoc-sidebar-item:not(.active):hover {
        background: color-mix(in srgb, var(--gd-menu, #2271b1) 84%, #fff);
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        font-size: 12px;
        background: color-mix(in srgb, var(--gd-menu, #2271b1) 75%, #000);
    }

    /* El CSS dinámico (class-dynamic-css.php) pone font-size !important en
       cada elemento del panel: el texto y el icono del menú lo heredan del
       item, y el emoji lleva su propio tamaño. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-label {
        font-size: inherit !important;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-icon {
        font-size: 12px !important;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-sidebar-icon svg {
        width: 13px;
        height: 13px;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral a.gestdoc-sidebar-item.active .gestdoc-sidebar-icon {
        background: var(--gd-menu, #2271b1);
    }

    /* Toda la página con el color de fondo elegido; el contenido, en una
       tarjeta blanca a la derecha del menú. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral {
        width: 100%;
        max-width: 100%;
        min-height: 100vh;
        margin: 0;
        /* padding: 12px; */
        border-radius: 0;
        box-shadow: none;
        background: var(--gd-fondo, #2271b1);
        display: flex;
        flex-direction: column;
    }

    /* La tarjeta de contenido llega hasta abajo aunque haya poco contenido. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-body-area {
        flex: 1;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-main-area {
        flex: 1;
        background: #ffffff;
        border-radius: 14px;
        padding: 0 20px 20px;
    }

    /* Cabecera dentro de la tarjeta: sin título, solo el avatar a la
       derecha, a la altura del logo del menú. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-header-flex {
        height: 62px;
        margin: 0 0 10px;
        flex-wrap: nowrap;
        border-bottom: 1px solid #eef0f2;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-main-title {
        display: none;
    }

    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-area-footer {
        border-top: none;
        color: rgba(255,255,255,0.85);
        box-sizing: border-box;
        margin-top: 12px;
        padding-bottom: 0;
    }

    /* Con el menú lateral visible, las pestañas de arriba sobran. */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral .gestdoc-tabs-nav {
        display: none;
    }

    /* ── COLAPSADO: solo iconos, centrados ─────────────────────────── */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav {
        width: 60px;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner {
        width: 60px;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-item {
        justify-content: center;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-item-main {
        gap: 0;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-label,
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-badge,
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-logo {
        display: none;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-top {
        padding-right: 0;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-collapse-btn {
        right: 10px;
    }

    /* ── COLAPSADO + ratón encima de esa columna (icono o hueco, da igual):
       se expande igual que fijado, sin mover el contenido de al lado
       porque la capa exterior sigue reservando solo 60px. Al salir el
       ratón, vuelve sola a 60px. ───────────────────────────────────── */
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover {
        width: 200px;
        z-index: 50;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-item {
        justify-content: space-between;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-item-main {
        gap: 10px;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-label,
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-badge {
        display: inline-block;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-logo {
        display: flex;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-top {
        padding-right: 30px;
    }
    .gestdoc-admin-wrapper.gestdoc-layout-lateral.gestdoc-sidebar-colapsado .gestdoc-sidebar-nav-inner:hover .gestdoc-sidebar-collapse-btn {
        right: 2px;
    }
}

/* ============================================
   CONTENIDO GENERAL Y ALERTAS VERDES/ROJAS
============================================ */

.gestdoc-admin-wrapper .gestdoc-content-wrapper {
    padding: 10px 0;
}

.gestdoc-admin-wrapper .gestdoc-success {
    background: #d4edda !important;
    color: #155724 !important;
    padding: 12px 15px !important;
    border-radius: 5px !important;
    margin-bottom: 20px !important;
    border-left: 4px solid #28a745 !important;
    font-size: 14px;
}

.gestdoc-admin-wrapper .gestdoc-error {
    background: #f8d7da !important;
    color: #721c24 !important;
    padding: 12px 15px !important;
    border-radius: 5px !important;
    margin-bottom: 20px !important;
    border-left: 4px solid #dc3545 !important;
    font-size: 14px;
}

/* ============================================
   MAQUETACIÓN SECCIÓN: LISTA DOCUMENTOS
============================================ */

/* Contenedor del Formulario de Filtros */
.gestdoc-admin-wrapper .gestdoc-filter-form {
    background: #f6f7f7;
    padding: 15px 20px;
    border: 1px solid #c3c4c7;
    border-radius: 6px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.gestdoc-admin-wrapper .gestdoc-filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gestdoc-admin-wrapper .gestdoc-filter-group label {
    font-weight: 600;
    color: #1d2327;
    font-size: 13px;
    margin-bottom: 0;
}

.gestdoc-admin-wrapper .gestdoc-filter-select {
    padding: 8px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    background-color: #fff;
    min-width: 200px;
    color: #2c3338;
    height: 38px;
    font-size: 14px;
}

/* Grupo para botones */
.gestdoc-admin-wrapper .gestdoc-filter-group-buttons {
    display: flex;
    gap: 10px;
    padding-top: 22px;
}

/* Botón Filtrar */
.gestdoc-admin-wrapper .gestdoc-btn-filtrar {
    background: #2271b1;
    color: #fff;
    border: none;
    padding: 0 24px;
    height: 38px;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
}

.gestdoc-admin-wrapper .gestdoc-btn-filtrar:hover {
    background: #135e96;
    transform: translateY(-1px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.gestdoc-admin-wrapper .gestdoc-btn-filtrar:active {
    transform: translateY(0);
}

/* Botón Limpiar filtros */
.gestdoc-admin-wrapper .gestdoc-btn-limpiar {
    background: #28a745;
    color: #fff !important;
    padding: 0 24px;
    height: 38px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
    border: none;
    cursor: pointer;
}

.gestdoc-admin-wrapper .gestdoc-btn-limpiar:hover {
    background: #5a6268;
    transform: translateY(-1px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    color: #fff !important;
}

.gestdoc-admin-wrapper .gestdoc-btn-limpiar:active {
    transform: translateY(0);
}

/* Estilos para la Tabla */
.gestdoc-admin-wrapper .gestdoc-docs-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
    background: #ffffff;
    border: 1px solid #c3c4c7;
    border-radius: 6px;
}

.gestdoc-admin-wrapper .gestdoc-docs-table th {
    background: #f8f9fa;
    color: #1d2327;
    font-weight: 600;
    padding: 12px 15px;
    text-align: left;
    border-bottom: 2px solid #c3c4c7;
    font-size: 14px;
}

.gestdoc-admin-wrapper .gestdoc-docs-table td {
    padding: 6px 10px !important;
    border-bottom: 1px solid #e2e4e7;
    color: #2c3338;
    font-size: 13px;
    vertical-align: middle;
}

.gestdoc-admin-wrapper .gestdoc-docs-table tr:hover td {
    background: #f6f7f7;
}

/* ============================================
   BOTONES DE ACCIONES EN TABLA
============================================ */

/* Botón Descargar */
/* Botones de acción unificados — color en hover únicamente */
.gestdoc-link-descargar,
.gestdoc-link-ver-pdf,
.gestdoc-link-reenviar,
.gestdoc-admin-wrapper .gestdoc-link-eliminar {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: #666 !important;
    border: 1px solid #e0e0e0 !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
    font-size: 0 !important;
    flex-shrink: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    min-width: unset !important;
}

.gestdoc-link-descargar svg,
.gestdoc-link-ver-pdf svg,
.gestdoc-link-reenviar svg,
.gestdoc-admin-wrapper .gestdoc-link-eliminar svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.gestdoc-link-descargar:hover,
.gestdoc-link-ver-pdf:hover,
.gestdoc-admin-wrapper .gestdoc-link-reenviar:hover {
    background: #2271b1 !important;
    color: #fff !important;
    border-color: #2271b1 !important;
}

.gestdoc-admin-wrapper .gestdoc-link-eliminar:hover {
    background: #dc3545 !important;
    color: #fff !important;
    border-color: #dc3545 !important;
}

/* ============================================
   MODAL
============================================ */

.gestdoc-admin-wrapper .gestdoc-modal {
    display: none;
    position: fixed;
    z-index: 999999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    align-items: center;
    justify-content: center;
}

.gestdoc-admin-wrapper .gestdoc-modal-content {
    background: #ffffff !important;
    padding: 30px !important;
    border-radius: 8px !important;
    border: 1px solid #c3c4c7 !important;
    width: 90%;
    max-width: 480px;
    box-shadow: 0 4px 25px rgba(0,0,0,0.2) !important;
    text-align: center;
    margin: auto;
}

.gestdoc-admin-wrapper .gestdoc-modal-content h3 {
    color: #dc3545;
    margin: 0 0 12px 0;
    font-size: 20px;
}

.gestdoc-admin-wrapper .gestdoc-modal-content p {
    color: #50575e;
    font-size: 14px;
    margin: 0 0 24px 0;
    line-height: 1.5;
}

.gestdoc-admin-wrapper .gestdoc-modal-footer {
    display: flex;
    justify-content: center;
    gap: 12px;
}

.gestdoc-admin-wrapper .gestdoc-modal-footer button {
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    transition: background 0.15s;
}

.gestdoc-admin-wrapper #modal_doc_btn_confirmar {
    background: #dc3545;
    color: white;
}

.gestdoc-admin-wrapper #modal_doc_btn_confirmar:hover {
    background: #bd2130;
}

.gestdoc-admin-wrapper #modal_doc_btn_cancelar {
    background: #6c757d;
    color: white;
}

.gestdoc-admin-wrapper #modal_doc_btn_cancelar:hover {
    background: #5a6268;
}

.gestdoc-admin-wrapper .gestdoc-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    border-top-color: #fff;
    animation: gestdoc-spin 0.8s linear infinite;
    margin-right: 6px;
}

@keyframes gestdoc-spin {
    to { transform: rotate(360deg); }
}

/* ============================================
   AYUDA (texto explicativo a pie de pestaña)
   Mismo estilo que .gestdoc-comunicaciones-ayuda
   (admin-comunicaciones.css), pero disponible en
   cualquier pestaña porque vive en admin.css.
============================================ */

.gestdoc-admin-wrapper .gestdoc-ayuda-tab {
    margin-top: 25px;
    padding: 16px 20px;
    background: #eef6fc;
    border: 1px solid #c8e1f4;
    border-radius: 8px;
    font-size: 13px;
    color: #333;
    white-space: normal;
}

.gestdoc-admin-wrapper .gestdoc-ayuda-tab > strong:first-child {
    display: block;
    margin-bottom: 8px;
    color: #135e96;
}

.gestdoc-admin-wrapper .gestdoc-ayuda-tab p {
    display: block;
    margin: 0 0 10px 0;
    line-height: 1.6;
    white-space: normal;
}

.gestdoc-admin-wrapper .gestdoc-ayuda-tab p:last-child {
    margin-bottom: 0;
}

.gestdoc-admin-wrapper .gestdoc-ayuda-tab strong {
    display: inline;
    color: #135e96;
    white-space: normal;
}

/* ============================================
   BADGES
============================================ */

.gestdoc-admin-wrapper .gestdoc-badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.gestdoc-admin-wrapper .gestdoc-badge-nuevo {
    background: #d4edda;
    color: #155724;
}

.gestdoc-admin-wrapper .gestdoc-badge-antiguo {
    background: #e2e3e5;
    color: #383d41;
}

/* ============================================ */
/* CABECERA FIJA EN LISTADO DE DOCUMENTOS       */
/* ============================================ */

.gestdoc-admin-wrapper .gestdoc-scroll-documentos {
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: auto;
    position: relative;
    border: 1px solid #c3c4c7;
    border-radius: 8px;
}

/* La tabla dentro del contenedor scroll */
.gestdoc-admin-wrapper .gestdoc-scroll-documentos .gestdoc-docs-table {
    margin-top: 0;
    border: none;
    border-radius: 0;
}

/* Cabecera sticky */
.gestdoc-admin-wrapper .gestdoc-scroll-documentos .gestdoc-docs-table thead tr th {
    position: sticky;
    top: 0;
    background: #f8f9fa !important;
    z-index: 20;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
	padding-left: 16px;
}

/* Asegurar fondo sólido */
.gestdoc-admin-wrapper .gestdoc-scroll-documentos .gestdoc-docs-table thead {
    background: #f8f9fa;
}
/* =================================================================================================
   RESPONSIVE
============================================ */

@media (max-width: 991px) {
    .gestdoc-admin-wrapper {
        width: 98%;
        padding: 15px;
    }
.gestdoc-admin-wrapper .gestdoc-main-title {
        font-size: 22px;
    }
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper {
        width: 98%;
        padding: 10px;
        border-radius: 0;
    }

.gestdoc-admin-wrapper .gestdoc-header-flex {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

.gestdoc-admin-wrapper .gestdoc-header-actions {
        width: 100%;
        flex-direction: column;
    }

.gestdoc-admin-wrapper .gestdoc-btn-cerrar {
        width: 100%;
    }

.gestdoc-admin-wrapper .gestdoc-avatar-menu {
        align-self: center;
    }

.gestdoc-admin-wrapper .gestdoc-tabs-nav {
        flex-wrap: wrap !important;
        gap: 6px 4px !important;
    }

.gestdoc-admin-wrapper .gestdoc-tab {
        flex: 1 1 auto !important;
        white-space: normal !important;
        text-align: center;
        padding: 10px 12px !important;
        font-size: 13px !important;
        border-radius: 4px !important;
        margin-bottom: 0 !important;
    }

.gestdoc-admin-wrapper .gestdoc-tab.active {
        border-color: #2271b1 !important;
        background: #2271b1 !important;
        color: #ffffff !important;
    }

.gestdoc-admin-wrapper .gestdoc-filter-form {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

.gestdoc-admin-wrapper .gestdoc-filter-group {
        flex-direction: column;
        align-items: stretch;
    }

.gestdoc-admin-wrapper .gestdoc-filter-select {
        width: 100%;
    }

.gestdoc-admin-wrapper .gestdoc-filter-group-buttons {
        padding-top: 0;
        flex-direction: column;
        width: 100%;
    }

    .gestdoc-btn-filtrar,
.gestdoc-admin-wrapper .gestdoc-btn-limpiar {
        width: 100%;
        justify-content: center;
    }

    /* Tabla modo tarjetas */
.gestdoc-admin-wrapper .gestdoc-docs-table {
        display: grid;
        border: none;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table thead {
        display: none;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table tr {
        display: block;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        padding: 12px;
        margin-bottom: 12px;
        border: 1px solid #c3c4c7;
        border-radius: 6px;
        background: #fff;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px dashed #e2e4e7;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table td:last-child {
        border-bottom: none;
        justify-content: center;
        gap: 20px;
        padding-top: 12px;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table td::before {
        content: attr(data-label);
        font-weight: bold;
        color: #1d2327;
    }

.gestdoc-admin-wrapper .gestdoc-docs-table td:last-child::before {
        content: "";
    }

    /* Botones en móvil */
    .gestdoc-link-descargar,
    .gestdoc-link-ver-pdf,
    .gestdoc-link-reenviar,
.gestdoc-admin-wrapper .gestdoc-link-eliminar {
        width: 40px !important;
        height: 40px !important;
    }
}
/* Botón Exportar Logs */
.gestdoc-admin-wrapper .gestdoc-btn-export-logs {
    transition: background 0.2s ease;
}

.gestdoc-admin-wrapper .gestdoc-btn-export-logs:hover {
    background: #2271b1 !important;
    color: white !important;
    border-color: #2271b1 !important;
    text-decoration: none !important;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-security-actions > div {
        flex-direction: column;
        width: 100%;
    }
    .gestdoc-btn-export-logs,
.gestdoc-admin-wrapper .gestdoc-security-actions form {
        width: 100%;
    }
.gestdoc-admin-wrapper .gestdoc-btn-export-logs {
        justify-content: center;
    }
}
/* Estado deshabilitado durante el envío */
.gestdoc-link-reenviar.disabled,
.gestdoc-admin-wrapper .gestdoc-link-reenviar:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}
/* ============================================= */
/* MODAL PARA VER PDF ONLINE                     */
/* ============================================= */

.gestdoc-admin-wrapper .gestdoc-modal-pdf {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    z-index: 100000;
    align-items: center;
    justify-content: center;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-content {
    background: #fff;
    border-radius: 12px;
    width: 90%;
    height: 90%;
    max-width: 1200px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-header {
    padding: 15px 20px;
    background: #2271b1;
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-header h3 {
    margin: 0;
    color: white;
    font-size: 18px;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-close {
    background: none;
    border: none;
    color: white;
    font-size: 28px;
    cursor: pointer;
    padding: 0 10px;
    line-height: 1;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-close:hover {
    color: #ffc107;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-body {
    flex: 1;
    padding: 0;
    overflow: hidden;
}

.gestdoc-modal-pdf-body iframe,
.gestdoc-admin-wrapper .gestdoc-modal-pdf-body embed {
    width: 100%;
    height: 100%;
    border: none;
}

/* Imágenes en el visor: se ajustan al ancho y al alto disponibles, sin
   recortarse ni necesitar scroll, aunque su resolución sea mayor. */
.gestdoc-modal-pdf-body {
    min-height: 0;
}

.gestdoc-modal-pdf-body #gestdoc-img-visor {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #f0f0f1;
}

.gestdoc-admin-wrapper .gestdoc-modal-pdf-footer {
    padding: 12px 20px;
    background: #f8f9fa;
    border-top: 1px solid #e2e4e7;
    text-align: center;
    font-size: 13px;
    color: #666;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-modal-pdf-content {
        width: 95%;
        height: 95%;
    }
.gestdoc-admin-wrapper .gestdoc-modal-pdf-header h3 {
        font-size: 14px;
    }
}
/* Campo de búsqueda en lista de documentos */
.gestdoc-admin-wrapper .gestdoc-filter-buscar {
    width: 100%;
    min-width: 200px;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-filter-buscar {
        width: 100%;
        min-width: auto;
    }
}
/* Contador de documentos */
.gestdoc-admin-wrapper .gestdoc-docs-count {
    background: #f0f6ff;
    border-left: 4px solid #2271b1;
}

.gestdoc-admin-wrapper .gestdoc-docs-count strong {
    color: #1d2327;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-docs-count {
        flex-direction: column;
        text-align: center;
    }
}
.gestdoc-admin-wrapper .gestdoc-categorias-tabla {
    width:100%;
    border-collapse:collapse;
    background:#fff;
    border:1px solid #e2e4e7;
}

.gestdoc-categorias-tabla th,
.gestdoc-admin-wrapper .gestdoc-categorias-tabla td {
    padding:12px;
    border-bottom:1px solid #e2e4e7;
    text-align:left;
}

.gestdoc-admin-wrapper .gestdoc-categorias-tabla th {
    background:#f8f9fa;
    font-weight:600;
}
/* ============================================= */
/* BOTONES ICONO CON TOOLTIP                     */
/* ============================================= */

.gestdoc-admin-wrapper .gestdoc-acciones-grupo {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono {
    position: relative;
    /* z-index explícito: garantiza que el tooltip (::after, z-index:100) se
       pinte siempre por encima de la cabecera "pegajosa" de la tabla
       (z-index:20), pase lo que pase con la fila en la que esté. Ver la
       nota más extensa en la misma regla del área de cliente (public.css),
       donde este mismo patrón sí llegó a fallar por un "transform" en
       :hover. */
    z-index: 21;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    /* padding:0 explícito: sin esto, un <button> con esta clase hereda el
       padding:10px 20px que el tema (GeneratePress) aplica a todo <button>
       de la página, y el botón sale más ancho que su gemelo en <a> (que el
       tema no toca). Todos los usos anteriores de .gestdoc-btn-icono eran
       <a>, así que nunca se había notado. */
    padding: 0;
    border-radius: 6px;
    background: transparent;
    color: #666 !important;
    text-decoration: none !important;
    font-size: 0;
    border: 1px solid #e0e0e0;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    flex-shrink: 0;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono:hover {
    background: #2271b1;
    color: white !important;
    border-color: #2271b1;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-icono-danger:hover {
    background: #dc3545 !important;
    color: white !important;
    border-color: #dc3545 !important;
}

/* Antes el botón de borrar era visualmente idéntico a Ver/Editar hasta que
   se pasaba el ratón por encima (solo la variante :hover estaba en rojo).
   Se marca en rojo también en reposo para que la acción destructiva se
   reconozca de un vistazo, sin depender del hover. */
.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-icono-danger {
    color: #dc3545 !important;
    border-color: #f1b0b7;
}

/* Variante "OK" (marcar como revisado/correcto): mismo patrón que la
   variante danger de arriba, pero en verde, para reconocer la acción
   positiva de un vistazo sin depender del hover. */
.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-icono-success {
    color: #198754 !important;
    border-color: #a3d9b8;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-icono-success:hover {
    background: #198754 !important;
    color: white !important;
    border-color: #198754 !important;
}

/* Tooltip */
.gestdoc-admin-wrapper .gestdoc-btn-icono::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: #1d2327;
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    z-index: 100;
}

/* Flecha del tooltip */
.gestdoc-admin-wrapper .gestdoc-btn-icono::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1d2327;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    z-index: 100;
}

.gestdoc-btn-icono:hover::after,
.gestdoc-admin-wrapper .gestdoc-btn-icono:hover::before {
    opacity: 1;
}

/* Móvil: mantener botones como iconos cuadrados, ocultar tooltip */
@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-btn-icono {
        width: 38px !important;
        height: 38px !important;
        padding: 0 !important;
        font-size: 0 !important;
        border-radius: 6px;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .gestdoc-admin-wrapper .gestdoc-btn-icono::after,
    .gestdoc-admin-wrapper .gestdoc-btn-icono::before {
        display: none !important;
    }
}

/* ============================================= */
/* LOGO CABECERA Y FOOTER PANEL ADMIN            */
/* ============================================= */

.gestdoc-admin-wrapper .gestdoc-area-header-logo {
    width: 100%;
    background: #ffffff;
    /*padding: 12px 30px;*/
    /*border-bottom: 1px solid #e2e4e7;*/
    display: flex;
    align-items: center;
    justify-content: center;
}

.gestdoc-admin-wrapper .gestdoc-cabecera-logo {
    max-height: 75px;
    width: auto;
    max-width: 200px;
    object-fit: contain;
}

.gestdoc-admin-wrapper .gestdoc-area-footer {
    width: 100%;
    padding: 15px 30px;
    text-align: center;
    border-top: 1px solid #f0f0f0;
    margin-top: 20px;
    opacity: 0.5;
    transition: opacity 0.2s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.gestdoc-admin-wrapper .gestdoc-area-footer:hover {
    opacity: 0.8;
}

.gestdoc-admin-wrapper .gestdoc-footer-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    color: inherit;
}

.gestdoc-admin-wrapper .gestdoc-footer-logo {
    max-height: 50px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    filter: grayscale(30%);
}

.gestdoc-admin-wrapper .gestdoc-footer-texto {
    text-align: center;
    line-height: 1.6;
}

.gestdoc-admin-wrapper .gestdoc-footer-texto a {
    text-decoration: none;
}

.gestdoc-admin-wrapper .gestdoc-footer-texto a:hover {
    text-decoration: underline;
}

@media (max-width: 480px) {
    .gestdoc-admin-wrapper .gestdoc-cabecera-logo {
        max-height: 36px;
        max-width: 140px;
    }
.gestdoc-admin-wrapper .gestdoc-area-header-logo {
        padding: 10px 15px;
    }
}
/* ============================================
   CATEGORÍAS (categorias.php)
============================================ */

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categorias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-card {
    background: #ffffff;
    border: 1px solid #e2e4e7;
    border-radius: 8px;
    padding: 15px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-icono {
    width: 50px;
    height: 50px;
    object-fit: contain;
    margin-bottom: 10px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-nombre {
    font-size: 18px;
    font-weight: 600;
    color: #2271b1;
    margin: 10px 0;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-descripcion {
    color: #666;
    font-size: 13px;
    margin-bottom: 10px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-docs {
    color: #999;
    font-size: 12px;
    margin-bottom: 15px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-tipo {
    display: inline-block;
    background: #e9ecef;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 11px;
    margin-top: 5px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-acciones {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    flex-wrap: wrap;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-categoria {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-top: 30px;
    border: 1px solid #e2e4e7;
    display: none;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-categoria.show {
    display: block;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group {
    margin-bottom: 15px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 5px;
    color: #1d2327;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group input,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group textarea,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
}

/* Excepción: el checkbox "Permitir que los clientes suban archivos aquí" NO
   debe heredar el width:100% (ni el padding/borde) de los inputs de texto de
   este formulario. Si lo hereda, el checkbox se estira a lo ancho de la fila y
   su marca queda muy separada de la etiqueta. Se le devuelve su tamaño natural
   para que quede pegado al texto (la separación real la da el gap:8px del
   <label> que envuelve al checkbox y su descripción). */
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group input[type="checkbox"] {
    width: auto !important;
    flex: 0 0 auto;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group input:focus,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group textarea:focus,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group select:focus {
    border-color: #2271b1;
    outline: none;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-icon {
    background: #2271b1;
    color: white;
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 5px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-icon:hover {
    background: #135e96;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-icon-preview {
    max-width: 50px;
    max-height: 50px;
    margin-top: 10px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    height: 34px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 4px;
    border: 1px solid #e0e0e0;
    cursor: pointer;
    transition: all 0.15s ease;
    background: transparent;
    color: #555;
    box-sizing: border-box;
    line-height: 1;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small:hover {
    background: #2271b1;
    color: white;
    border-color: #2271b1;
}

/* .gestdoc-btn-danger: antes había dos declaraciones duplicadas en categorias.php, consolidadas en una */
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-danger {
    background: transparent;
    color: #555;
    border: 1px solid #e0e0e0;
    text-decoration: none;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    box-sizing: border-box;
    line-height: 1;
    transition: all 0.15s;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-danger:hover {
    background: #dc3545 !important;
    color: white !important;
    border-color: #dc3545 !important;
}
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small {
    position: relative;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: #1d2327;
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    z-index: 100;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #1d2327;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    z-index: 100;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small:hover::after,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small:hover::before {
    opacity: 1;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-nueva {
    background: #28a745;
    color: white;
    padding: 8px 16px;
    text-decoration: none;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
    border: none;
    cursor: pointer;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-nueva:hover {
    background: #218838;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-header-categorias {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 1px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 20px;
    flex-direction: row-reverse;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-submit {
    background: #2271b1;
    color: white;
    padding: 10px 24px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}

/* .gestdoc-btn-cancel: antes había dos diseños distintos chocando entre sí (bug); consolidado en el estilo claro/borde rojo, igual que el de clientes.php */
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-cancel {
    background: #f0f0f1;
    color: #dc3545;
    padding: 10px 24px;
    border: 1px solid #dc3545;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-cancel:hover {
    background: #dc3545;
    color: white;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-warning-box {
    background: #fff3cd;
    border: 2px solid #ffc107;
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-warning-box h3 {
    color: #856404;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-modo-vista-categorias {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #f0f0f1;
    border-radius: 30px;
    padding: 3px;
    margin-bottom: 20px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-modo-vista-categorias .modo-label {
    font-size: 12px;
    color: #666;
    padding: 0 8px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-modo-vista-categorias .modo-btn {
    display: inline-block;
    padding: 5px 12px;
    font-size: 12px;
    text-decoration: none;
    border-radius: 20px;
    color: #333;
    transition: all .2s;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-modo-vista-categorias .modo-btn:hover {
    background: #e2e4e7;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-modo-vista-categorias .modo-btn.activo {
    background: #2271b1;
    color: #fff;
}

/* Tabla en vista "lista" (la vista de tarjetas usa gestdoc-categorias-grid,
   arriba). Mismo contenedor con scroll y misma clase gestdoc-table que usan
   Clientes y Comunicaciones, para que se comporte igual: en escritorio con
   scroll interno si hace falta, y en móvil como tarjetas apiladas en vez de
   desbordar el ancho de la pantalla. */
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-scroll-clientes {
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: auto;
    position: relative;
    border: 1px solid #c3c4c7;
    border-radius: 8px;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-scroll-clientes .gestdoc-table {
    margin-top: 0;
    border: none;
    border-radius: 0;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-scroll-clientes .gestdoc-table thead tr th {
    position: sticky;
    top: 0;
    background: #f8f9fa !important;
    z-index: 20;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-scroll-clientes .gestdoc-table thead {
    background: #f8f9fa;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table th,
.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td {
    text-align: left !important;
    border-bottom: 1px solid #eee;
    padding: 3px 10px !important;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table th {
    background: #f0f0f0;
    font-weight: bold;
}

.gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table tr:hover {
    background: #f9f9f9;
}

@media (min-width: 769px) and (max-width: 991px) {
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categorias-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-card {
        padding: 12px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-nombre {
        font-size: 16px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table {
        font-size: 14px;
    }
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categorias-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-card {
        text-align: center;
        padding: 12px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-acciones {
        justify-content: center;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-header-categorias {
        flex-direction: column;
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-submit,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-cancel {
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group input,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group textarea,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-form-group select {
        font-size: 14px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-icon {
        width: 100%;
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table thead,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table tbody,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table th,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td,
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table tr {
        display: block;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table thead {
        display: none;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table tr {
        border: 1px solid #e2e4e7;
        border-radius: 8px;
        margin-bottom: 15px;
        background: #ffffff;
        padding: 10px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px;
        border-bottom: 1px solid #f0f0f0;
        text-align: right;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td:last-child {
        border-bottom: none;
        flex-direction: row;
        gap: 6px;
        align-items: center;
        justify-content: flex-end;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td::before {
        content: attr(data-label);
        font-weight: 600;
        color: #2271b1;
        text-align: left;
        flex: 1;
    }
}

@media (max-width: 480px) {
    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-nombre {
        font-size: 15px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-categoria-descripcion {
        font-size: 12px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-small {
        padding: 4px 10px;
        font-size: 11px;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-btn-nueva {
        width: 100%;
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td {
        padding: 8px;
        font-size: 12px;
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
    }

    .gestdoc-admin-wrapper .gestdoc-categorias .gestdoc-table td::before {
        margin-bottom: 5px;
        display: block;
        width: 100%;
    }
}

/* ============================================
   CLIENTES (clientes.php)
============================================ */

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-scroll-clientes {
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: auto;
    position: relative;
    border: 1px solid #c3c4c7;
    border-radius: 8px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-scroll-clientes .gestdoc-table {
    margin-top: 0;
    border: none;
    border-radius: 0;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-scroll-clientes .gestdoc-table thead tr th {
    position: sticky;
    top: 0;
    background: #f8f9fa !important;
    z-index: 20;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-scroll-clientes .gestdoc-table thead {
    background: #f8f9fa;
}

/* Cabecera: título + contador + buscador + botón nuevo cliente
   (antes había dos declaraciones de .gestdoc-header-clientes que se pisaban; consolidada en una) */
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-header-clientes {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 20px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-header-clientes-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-header-clientes-left h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: #1d2327;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-clientes-count {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #e9ecef;
    padding: 3px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    color: #2271b1;
    white-space: nowrap;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-buscador-clientes {
    flex: 1;
    min-width: 180px;
    max-width: 320px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-buscador-clientes input {
    width: 100%;
    padding: 7px 12px 7px 30px;
    border: 1px solid #c3c4c7;
    border-radius: 5px;
    font-size: 13px;
    background: #f8f9fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") 9px center no-repeat;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-buscador-clientes input:focus {
    border-color: #2271b1;
    box-shadow: 0 0 0 2px rgba(34,113,177,0.15);
    outline: none;
    background-color: #fff;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-nuevo {
    background: #28a745;
    color: white;
    padding: 8px 16px;
    text-decoration: none;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
    border: none;
    cursor: pointer;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-nuevo:hover {
    background: #218838;
    color: white;
}

/* Formulario */
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    background: #f9f9f9;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
    border: 1px solid #e2e4e7;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-field {
    display: flex;
    flex-direction: column;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-field label {
    font-weight: bold;
    margin-bottom: 5px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-field input,
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-field select {
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-actions {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 10px;
    flex-wrap: wrap;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-submit {
    background: #2271b1;
    color: white;
    padding: 10px 24px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-submit:hover {
    background: #135e96;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-cancel {
    background: #f0f0f1;
    color: #dc3545;
    padding: 10px 24px;
    border: 1px solid #dc3545;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-block;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-cancel:hover {
    background: #dc3545;
    color: white;
}

/* Tabla */
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table th,
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td {
    text-align: left !important;
    border-bottom: 1px solid #eee;
    padding: 3px 10px !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table th {
    background: #f0f0f0;
    font-weight: bold;
    /* Misma altura de cabecera que en la pestaña "Documentos": antes
       heredaba el padding compacto de las filas (3px) y quedaba demasiado
       baja, pegada a la primera fila y tapando el tooltip de sus acciones. */
    padding: 12px 15px !important;
    font-size: 14px;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table tr:hover {
    background: #f9f9f9;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table-responsive {
    overflow-x: auto;
}

/* Botones de acciones (editar/eliminar/portal) - misma altura y tamaño */
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    min-width: 85px !important;
    height: 34px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-editar,
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-portal {
    background: transparent;
    color: #555;
    border: 1px solid #e0e0e0 !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-editar:hover,
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-portal:hover {
    background: #2271b1;
    color: white;
    border-color: #2271b1 !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-eliminar {
    background: transparent;
    color: #555;
    border: 1px solid #e0e0e0 !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small.btn-eliminar:hover {
    background: #dc3545;
    color: white;
    border-color: #dc3545 !important;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small:active,
.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small:focus {
    transform: none;
    outline: none;
    box-shadow: none;
}

.gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-wrapper {
    margin-top: 30px;
}

/* Modal de confirmación de borrado de cliente (#modal_eliminar).
   El contenedor exterior (.gestdoc-modal / .gestdoc-modal-content / .gestdoc-modal-footer)
   usa deliberadamente el estilo genérico de admin.css; aquí solo van las partes
   internas que no existen en admin.css. El modal vive fuera de .gestdoc-clientes
   en el HTML, por eso se ancla por ID en vez de por el wrapper de la página. */
.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-header {
    padding: 20px 20px 10px 20px;
    border-bottom: 1px solid #e2e4e7;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-header h3 {
    margin: 0;
    color: #dc3545;
    font-size: 20px;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-body {
    padding: 20px;
    max-height: 60vh;
    overflow-y: auto;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info {
    background: #f8f9fa;
    padding: 15px;
    border-radius: 8px;
    margin: 15px 0;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info-item {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #e2e4e7;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info-item:last-child {
    border-bottom: none;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info-label {
    font-weight: 600;
    color: #1d2327;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info-value {
    color: #666;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-warning {
    background: #fff3cd;
    border-left: 4px solid #ffc107;
    padding: 12px;
    margin-top: 15px;
    border-radius: 5px;
    font-size: 13px;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn {
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn-cancel {
    background: #f0f0f1;
    color: #333;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn-cancel:hover {
    background: #e2e4e7;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn-confirm {
    background: #dc3545;
    color: white;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn-confirm:hover {
    background: #bd2130;
}

.gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

@media (min-width: 769px) and (max-width: 991px) {
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table {
        font-size: 14px;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-small {
        min-width: 75px !important;
        height: 32px !important;
        font-size: 11px !important;
    }
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-header-clientes {
        flex-direction: column;
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-nuevo {
        width: 100%;
        text-align: center;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-grid {
        grid-template-columns: 1fr;
        padding: 15px;
        gap: 12px;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table thead,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table tbody,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table th,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table tr {
        display: block;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table thead {
        display: none;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table tr {
        border: 1px solid #e2e4e7;
        border-radius: 8px;
        margin-bottom: 15px;
        background: #ffffff;
        padding: 10px;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px;
        border-bottom: 1px solid #f0f0f0;
        text-align: right;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td:last-child {
        border-bottom: none;
        flex-direction: row;
        gap: 6px;
        align-items: center;
        justify-content: flex-end;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td::before {
        content: attr(data-label);
        font-weight: 600;
        color: #2271b1;
        text-align: left;
        flex: 1;
    }

    /* btn-small ya no se usa en acciones de clientes; se usa gestdoc-btn-icono */

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-form-actions {
        flex-direction: column;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-submit,
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-btn-cancel {
        width: 100%;
        text-align: center;
    }

    .gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-info-item {
        flex-direction: column;
        gap: 5px;
    }

    .gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-btn {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td {
        padding: 8px;
        font-size: 12px;
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
    }

    .gestdoc-admin-wrapper .gestdoc-clientes .gestdoc-table td::before {
        margin-bottom: 5px;
        display: block;
        width: 100%;
    }

    .gestdoc-admin-wrapper #modal_eliminar .gestdoc-modal-body {
        padding: 15px;
        font-size: 14px;
    }
}

/* ============================================
   SUBIR DOCUMENTOS (documentos.php)
============================================ */

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-form-documento {
    background: #f8f9fa;
    padding: 25px;
    border-radius: 8px;
    border: 1px solid #e2e4e7;
    max-width: 100%;
    margin-bottom: 30px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-form-group {
    margin-bottom: 20px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-clientes-checkbox-group {
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    padding: 10px;
    max-height: 200px;
    overflow-y: auto;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-clientes-checkbox-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    font-weight: normal;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-clientes-checkbox-group input {
    margin: 0;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-form-group select {
    width: 100%;
    padding: 10px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-dropzone {
    border: 2px dashed #c3c4c7;
    padding: 40px 20px;
    text-align: center;
    border-radius: 8px;
    cursor: pointer;
    background: #fff;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-dropzone:hover {
    border-color: #2271b1;
    background: #f0f6ff;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-dropzone.dragover {
    border-color: #28a745;
    background: #e8f5e9;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-lista-archivos {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-file-preview {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 8px;
    padding: 10px 15px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-file-status-subido {
    color: #28a745;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-file-status-error {
    color: #dc3545;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-progress-mini {
    width: 100px;
    height: 4px;
    background: #e2e4e7;
    border-radius: 2px;
    overflow: hidden;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-progress-mini-fill {
    width: 0%;
    height: 100%;
    background: #2271b1;
}

.gestdoc-admin-wrapper .gestdoc-documentos .checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-btn-submit {
    background: #2271b1;
    color: white;
    padding: 12px 24px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-btn-submit:disabled {
    background: #c3c4c7;
    cursor: not-allowed;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-mensaje-success {
    background: #d4edda;
    color: #155724;
    padding: 12px;
    border-radius: 5px;
    border-left: 4px solid #28a745;
    margin-top: 15px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-mensaje-error {
    background: #f8d7da;
    color: #721c24;
    padding: 12px;
    border-radius: 5px;
    border-left: 4px solid #dc3545;
    margin-top: 15px;
}

.gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-mensaje-info {
    background: #e7f1ff;
    color: #004085;
    padding: 12px;
    border-radius: 5px;
    border-left: 4px solid #2271b1;
    margin-top: 15px;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-form-documento {
        padding: 15px;
    }
    .gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-file-preview {
        flex-direction: column;
        gap: 10px;
    }
    .gestdoc-admin-wrapper .gestdoc-documentos .gestdoc-btn-submit {
        width: 100%;
    }
}

/* ============================================
   SUBIDA MASIVA POR DNI (selector de modo + tabla de vista previa)
============================================ */

.gestdoc-admin-wrapper .gestdoc-modo-btn {
    padding: 9px 18px;
    border: 1px solid #c3c4c7;
    border-radius: 6px;
    background: #f0f0f1;
    color: #50575e;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.gestdoc-admin-wrapper .gestdoc-modo-btn-activo {
    background: #2271b1;
    border-color: #2271b1;
    color: #fff;
}

.gestdoc-admin-wrapper #tabla_multi select {
    width: 100%;
    max-width: 260px;
    padding: 5px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
}

.gestdoc-admin-wrapper #tabla_multi tr.gestdoc-fila-sin-cliente {
    background: #fdecea;
}

.gestdoc-admin-wrapper #tabla_multi tr.gestdoc-fila-sin-cliente select.gestdoc-select-cliente-fila {
    border-color: #dc3545;
}

/* Subida masiva: el botón «Cambiar categoría» se queda marcado en azul
   cuando ese archivo tiene una categoría distinta de la del lote; el de
   «Dar de alta al cliente», en verde para distinguirlo. */
.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-icono-activo {
    color: #2271b1 !important;
    border-color: #2271b1;
    background: #e7f1ff;
}

.gestdoc-admin-wrapper .gestdoc-btn-icono.gestdoc-btn-alta-cliente-fila {
    color: #198754 !important;
    border-color: #a3d9b8;
}

.gestdoc-admin-wrapper #tabla_multi .gestdoc-dni-detectado {
    font-family: monospace;
    font-size: 12px;
    background: #f0f0f1;
    padding: 2px 6px;
    border-radius: 4px;
}

/* ============================================
   EXPORTAR (exportar.php)
============================================ */

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-export-section {
    background: #f8f9fa;
    padding: 25px;
    border-radius: 8px;
    margin-bottom: 30px;
    border: 1px solid #e2e4e7;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-export-section h3 {
    margin-top: 0;
    color: #2271b1;
}

/* Fila de filtros en exportar: los 4 campos (cliente, categoría, fecha desde, fecha hasta)
   en una sola línea horizontal, sobreescribiendo el flex-direction:column del genérico. */
.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 15px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 160px;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group label {
    font-weight: 600;
    font-size: 13px;
    color: #1d2327;
    white-space: nowrap;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group select,
.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group input {
    width: 100%;
    padding: 8px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    height: 38px;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group {
        flex-direction: column;
    }
    .gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-filter-group > div {
        min-width: 100%;
    }
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-btn-export {
    background: #28a745;
    color: white;
    padding: 10px 24px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-btn-export:hover {
    background: #218838;
}

.gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-info {
    background: #e7f1ff;
    padding: 15px;
    border-radius: 5px;
    margin-top: 15px;
    font-size: 13px;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-export-section {
        padding: 15px;
    }
    .gestdoc-admin-wrapper .gestdoc-exportar .gestdoc-btn-export {
        width: 100%;
        text-align: center;
    }
}

/* ============================================
   LISTA DOCUMENTOS — extras (lista-documentos.php)
============================================ */

.gestdoc-admin-wrapper .gestdoc-total-documentos {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #e9ecef;
    padding: 0 16px;
    height: 38px;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 500;
    color: #1d2327;
    margin-left: auto;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .gestdoc-admin-wrapper .gestdoc-filter-group-buttons {
        flex-wrap: nowrap;
        justify-content: flex-start;
        gap: 8px;
    }

    .gestdoc-admin-wrapper .gestdoc-total-documentos {
        font-size: 12px;
        padding: 0 12px;
        height: 34px;
        white-space: nowrap;
    }
}
/* =====================================================
   MODAL CAMBIAR CONTRASEÑA ADMIN
   ===================================================== */
.gestdoc-admin-wrapper .gestdoc-modal-pass-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.6);
    z-index: 99999;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-box {
    background: #fff;
    border-radius: 10px;
    max-width: 420px;
    width: 90%;
    margin: 80px auto;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
    overflow: hidden;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-header {
    background: #2271b1;
    padding: 18px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-header h3 {
    margin: 0;
    color: #fff;
    font-size: 16px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    line-height: 1;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-body {
    padding: 24px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-mensaje {
    margin-bottom: 15px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-field {
    margin-bottom: 15px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-field:last-of-type {
    margin-bottom: 20px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 5px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-field input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 5px;
    box-sizing: border-box;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-field small {
    color: #666;
    font-size: 12px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-footer {
    padding: 16px 24px;
    background: #f8f9fa;
    border-top: 1px solid #e2e4e7;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-btn-cancelar {
    background: #f0f0f0;
    border: 1px solid #c3c4c7;
    padding: 8px 16px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 13px;
}
.gestdoc-admin-wrapper .gestdoc-modal-pass-btn-guardar {
    background: #2271b1;
    color: #fff;
    border: none;
    padding: 8px 16px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}
/* .gestdoc-header-date y .gestdoc-btn-cambiar-pass quedaron huérfanos al
   sustituir la fecha decorativa y el botón suelto por el menú de avatar
   (ver .gestdoc-avatar-* más arriba). Eliminados por limpieza. */
/* ================================================= */
/* PESTAÑA PLANES (Fase 2)                            */
/* ================================================= */

/* Inputs y selects del panel de planes (coherentes con el resto) */
.gestdoc-planes .gestdoc-config-field input[type="number"],
.gestdoc-planes .gestdoc-config-field select {
    padding: 6px 10px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    background: #ffffff;
    font-size: 14px;
    color: #1d2327;
}

.gestdoc-planes .gestdoc-config-field input[type="number"] {
    width: 140px;
    max-width: 100%;
}

/* Rejilla de parámetros a 3 columnas (Límites de esta instalación).
   Sustituye a las filas etiqueta-campo, que dejaban los inputs
   perdidos en una columna enorme. */
.gestdoc-planes .gestdoc-planes-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px 24px;
    align-items: start;
}

.gestdoc-planes .gestdoc-plan-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.gestdoc-planes .gestdoc-plan-campo > label {
    font-weight: 600;
    color: #1d2327;
}

.gestdoc-planes .gestdoc-plan-campo input[type="number"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.gestdoc-planes .gestdoc-plan-campo .description {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 1300px) {
    .gestdoc-planes .gestdoc-planes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1000px) {
    .gestdoc-planes .gestdoc-planes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gestdoc-planes .gestdoc-planes-grid {
        grid-template-columns: 1fr;
    }
}

/* Etiqueta "Personalizado" junto al plan actual */
.gestdoc-plan-badge-custom {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    color: #7a5b00;
    background: #fff3cd;
    border: 1px solid #ffe08a;
    border-radius: 12px;
    vertical-align: middle;
}

/* Tabla de valores de referencia de los planes */
.gestdoc-planes-ref {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
    font-size: 14px;
}

.gestdoc-planes-ref th,
.gestdoc-planes-ref td {
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid #e2e4e7;
}

.gestdoc-planes-ref thead th {
    background: #f8f9fa;
    color: #1d2327;
    font-weight: 600;
    border-bottom: 2px solid #c3c4c7;
}

.gestdoc-planes-ref thead th:first-child,
.gestdoc-planes-ref tbody td:first-child {
    font-weight: 600;
    color: #50575e;
    background: #fbfbfc;
    white-space: nowrap;
}

.gestdoc-planes-ref tbody tr:hover td {
    background: #f6f7f7;
}

.gestdoc-planes-ref tbody tr:last-child td {
    border-bottom: none;
}

/* Responsive: scroll horizontal en pantallas estrechas */
@media (max-width: 600px) {
    .gestdoc-planes-ref {
        display: block;
        overflow-x: auto;
    }
    .gestdoc-planes-ref th,
    .gestdoc-planes-ref td {
        padding: 8px 10px;
        white-space: nowrap;
    }
}