/* =========================================================================
   Voyage-style theme para el backoffice OCRSaaS.
   Se carga DESPUÉS de material.min.css para sobrescribir el skin verde-oscuro
   del template (AdminMart) y darle el aspecto claro tipo consola Voyage AI.
   ========================================================================= */

:root {
    --vg-primary: #0f3d30;        /* verde bosque (botones, avatar, activo) */
    --vg-primary-hover: #0a2c22;
    --vg-mint: #e3f1ea;           /* fondo del ítem activo del sidebar */
    --vg-mint-border: #cfe6db;
    --vg-text: #1b2a25;           /* texto principal */
    --vg-text-muted: #6a7b74;     /* texto atenuado / iconos */
    --vg-cap: #8a9a93;            /* cabeceras de sección (mayúsculas) */
    --vg-border: #e9edeb;         /* bordes sutiles */
    --vg-surface: #ffffff;
    --vg-hover: #f2f6f4;          /* hover de filas / ítems */
    --vg-radius: 8px;
}

/* ---------- Base ---------- */
body,
#main-wrapper {
    background: var(--vg-surface) !important;
    color: var(--vg-text);
    font-family: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

.page-wrapper {
    background: var(--vg-surface) !important;
}

/* =========================================================================
   TOPBAR
   ========================================================================= */
.topbar,
.topbar .top-navbar,
.topbar .navbar-header,
.topbar .top-navbar .navbar-header {
    background: var(--vg-surface) !important;
    box-shadow: none !important;
}

.topbar {
    border-bottom: 1px solid var(--vg-border) !important;
}

/* Logo: mostrar la versión oscura sobre fondo claro */
.topbar .navbar-brand .light-logo { display: none !important; }
.topbar .navbar-brand .dark-logo  { display: inline-block !important; }

/* Iconos y enlaces del topbar en tono oscuro */
.topbar .top-navbar .navbar-nav > .nav-item > .nav-link {
    color: var(--vg-text-muted) !important;
    font-weight: 500;
}

.topbar .top-navbar .navbar-nav > .nav-item > .nav-link:hover,
.topbar .top-navbar .navbar-nav > .nav-item > .nav-link:focus {
    color: var(--vg-primary) !important;
    background: transparent !important;
}

.topbar .top-navbar .navbar-nav > .nav-item > .nav-link i {
    color: inherit !important;
}

.topbar .nav-toggler,
.topbar .sidebartoggler {
    color: var(--vg-text-muted) !important;
}

/* =========================================================================
   LEFT SIDEBAR
   ========================================================================= */
.left-sidebar,
.left-sidebar .scroll-sidebar,
.left-sidebar .sidebar-nav {
    background: var(--vg-surface) !important;
}

.left-sidebar {
    border-right: 1px solid var(--vg-border) !important;
    box-shadow: none !important;
}

/* Cabeceras de sección (Documentos, Ingesta, Automatización, Seguridad...) */
.sidebar-nav .nav-small-cap {
    color: var(--vg-cap) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 18px 18px 6px !important;
    background: transparent !important;
}

/* Ítems del menú */
.sidebar-nav ul#sidebarnav > li > a,
.sidebar-nav ul#sidebarnav li a.nav-link {
    color: var(--vg-text) !important;
    background: transparent !important;
    font-size: 14px !important;
    font-weight: 500;
    padding: 9px 14px !important;
    margin: 2px 10px !important;
    border-radius: var(--vg-radius) !important;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background .12s ease, color .12s ease;
}

.sidebar-nav ul#sidebarnav li a.nav-link i {
    color: var(--vg-text-muted) !important;
    font-size: 15px !important;
    width: 18px;
    text-align: center;
    margin: 0 !important;
}

/* Hover */
.sidebar-nav ul#sidebarnav li a.nav-link:hover {
    background: var(--vg-hover) !important;
    color: var(--vg-text) !important;
}

.sidebar-nav ul#sidebarnav li a.nav-link:hover i {
    color: var(--vg-primary) !important;
}

/* Activo — píldora mint con texto/icono verde (gana al override del componente) */
aside.left-sidebar .sidebar-nav ul#sidebarnav li a.nav-link.active,
.sidebar-nav ul#sidebarnav li a.nav-link.active {
    background: var(--vg-mint) !important;
    color: var(--vg-primary) !important;
    font-weight: 600;
}

aside.left-sidebar .sidebar-nav ul#sidebarnav li a.nav-link.active i,
.sidebar-nav ul#sidebarnav li a.nav-link.active i {
    color: var(--vg-primary) !important;
}

/* ---------- Sidebar COLAPSADO (mini-sidebar) ----------
   Comportamiento deseado (como la consola de referencia): al hacer hover el sidebar NO se
   expande ni muestra el texto; solo se resalta el fondo del icono en un cuadro redondeado. */

/* Cada ítem colapsado es una caja compacta y centrada (52px) que cabe en los 70px del sidebar. */
body.mini-sidebar .sidebar-nav ul#sidebarnav > li > a.nav-link {
    width: 52px !important;
    margin: 2px 9px !important;
    padding: 11px 0 !important;
    justify-content: center;
    border-radius: 10px !important;
}

body.mini-sidebar .sidebar-nav ul#sidebarnav > li > a.nav-link i {
    margin: 0 !important;
}

/* Hover: anula la expansión a 290px del template; solo resalta el fondo del icono. */
body.mini-sidebar .sidebar-nav ul#sidebarnav > li:hover > a.nav-link {
    width: 52px !important;
    background: var(--vg-hover) !important;
    color: var(--vg-primary) !important;
}

body.mini-sidebar .sidebar-nav ul#sidebarnav > li:hover > a.nav-link i {
    color: var(--vg-primary) !important;
}

/* El sidebar (con PerfectScrollbar) le pone overflow:hidden al .scroll-sidebar, lo que recortaba
   el tooltip en el borde. Forzamos overflow visible en toda la cadena para que la etiqueta escape. */
body.mini-sidebar .left-sidebar,
body.mini-sidebar .scroll-sidebar,
body.mini-sidebar .scroll-sidebar.ps,
body.mini-sidebar .sidebar-nav,
body.mini-sidebar .sidebar-nav ul#sidebarnav,
body.mini-sidebar .sidebar-nav ul#sidebarnav > li,
body.mini-sidebar .sidebar-nav ul#sidebarnav > li > a.nav-link {
    overflow: visible !important;
}

/* En lugar de revelar el texto inline (que expandía el sidebar), al hover se muestra el nombre
   como TOOLTIP flotante a la derecha del icono, sin ensanchar el ítem, y por encima de todo. */
body.mini-sidebar .sidebar-nav ul#sidebarnav > li:hover > a.nav-link .hide-menu {
    display: block !important;
    position: absolute;
    left: 62px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--vg-text);
    color: #fff;
    padding: 6px 11px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(15, 61, 48, .18);
    z-index: 100000;
    pointer-events: none;
}

/* Pico del tooltip (triangulito hacia el icono). */
body.mini-sidebar .sidebar-nav ul#sidebarnav > li:hover > a.nav-link .hide-menu::before {
    content: "";
    position: absolute;
    left: -4px;
    top: 50%;
    transform: translateY(-50%);
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-right: 5px solid var(--vg-text);
}

/* Activo en colapsado: cuadro mint sobre el icono. */
body.mini-sidebar .sidebar-nav ul#sidebarnav > li > a.nav-link.active {
    background: var(--vg-mint) !important;
}

/* =========================================================================
   TARJETAS / CONTENEDORES (aspecto "panel" limpio)
   ========================================================================= */
.card {
    background: var(--vg-surface);
    border: 1px solid var(--vg-border) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}

.card .card-title {
    color: var(--vg-text);
    font-weight: 600;
}

h4.card-title, h4.mb-0, h4.mb-3 {
    font-weight: 600;
    color: var(--vg-text);
}

/* =========================================================================
   TABLAS / GRIDS (estilo "Manage Projects")
   ========================================================================= */
.table {
    color: var(--vg-text);
    border-color: var(--vg-border);
    margin-bottom: 0;
}

.table thead th {
    color: var(--vg-cap) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--vg-border) !important;
    border-top: none !important;
    padding: 12px 14px !important;
    background: transparent !important;
}

.table tbody td {
    padding: 14px 14px !important;
    border-top: 1px solid var(--vg-border) !important;
    vertical-align: middle;
    font-size: 14px;
}

.table.table-sm tbody td,
.table.table-sm thead th {
    padding: 9px 12px !important;
}

.table-hover tbody tr:hover {
    background: var(--vg-hover) !important;
}

/* Contenedor de tabla con marco redondeado tipo panel */
.table-responsive {
    border: 1px solid var(--vg-border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--vg-surface);
}

.table-responsive > .table {
    border: none;
}

.table-responsive > .table thead th {
    border-top: none !important;
}

.table-responsive > .table tbody tr:first-child td {
    border-top: 1px solid var(--vg-border) !important;
}

/* Syncfusion Grid alineado al mismo estilo */
.e-grid,
.e-grid .e-gridheader,
.e-grid .e-content {
    border-color: var(--vg-border) !important;
}

.e-grid .e-headercell,
.e-grid .e-headercelldiv {
    background: transparent !important;
    color: var(--vg-cap) !important;
    font-size: 11px !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600 !important;
}

.e-grid .e-row:hover .e-rowcell {
    background: var(--vg-hover) !important;
}

/* =========================================================================
   BOTONES
   ========================================================================= */
/* Padding generoso para todos los botones: 5px de separación entre el texto y
   los bordes (arriba/derecha/abajo/izquierda). Se aplica a botones normales;
   los pequeños del grid mantienen su escala propia más abajo. */
.btn,
.btn-primary,
.btn-outline-secondary,
.btn-danger,
.e-btn,
.e-btn.e-primary,
.e-css.e-btn.e-primary,
button.e-primary,
.e-btn.e-outline,
.e-btn.e-danger {
    padding: 5px 5px !important;
}

/* Primarios: bootstrap + Syncfusion */
.btn-primary,
.e-btn.e-primary,
.e-css.e-btn.e-primary,
button.e-primary {
    background: var(--vg-primary) !important;
    border-color: var(--vg-primary) !important;
    color: #fff !important;
    border-radius: var(--vg-radius) !important;
    font-weight: 600;
    box-shadow: none !important;
}

.btn-primary:hover,
.btn-primary:focus,
.e-btn.e-primary:hover,
.e-btn.e-primary:focus,
button.e-primary:hover {
    background: var(--vg-primary-hover) !important;
    border-color: var(--vg-primary-hover) !important;
    color: #fff !important;
}

/* Botones neutros / outline */
.e-btn,
.btn-outline-secondary,
.e-btn.e-outline {
    border-radius: var(--vg-radius) !important;
    font-weight: 500;
}

.e-btn:not(.e-primary):not(.e-danger):not(.e-success):not(.e-warning),
.e-btn.e-outline:not(.e-danger) {
    background: var(--vg-surface) !important;
    color: var(--vg-text) !important;
    border: 1px solid var(--vg-border) !important;
    box-shadow: none !important;
}

.e-btn:not(.e-primary):not(.e-danger):not(.e-success):not(.e-warning):hover,
.e-btn.e-outline:not(.e-danger):hover {
    background: var(--vg-hover) !important;
    border-color: var(--vg-mint-border) !important;
    color: var(--vg-primary) !important;
}

/* Botones pequeños del grid — respetan los 5px mínimos de aire interior. */
.e-btn.e-small { padding: 5px 5px !important; }

/* Peligro (eliminar/retirar) — rojo sobrio y redondeado */
.e-btn.e-danger,
.btn-danger {
    border-radius: var(--vg-radius) !important;
    background: #c1362f !important;
    border-color: #c1362f !important;
    color: #fff !important;
    box-shadow: none !important;
}
.e-btn.e-danger:hover,
.btn-danger:hover { background: #a32a24 !important; border-color: #a32a24 !important; }

/* =========================================================================
   CONTROL SEGMENTADO (píldoras estilo Voyage "Active/Archived")
   ========================================================================= */
.vg-segmented {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    background: #eef2f1;
    border: 1px solid var(--vg-border);
    border-radius: 9px;
}

.vg-segmented .vg-seg-btn {
    border: none;
    background: transparent;
    color: var(--vg-text-muted);
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1;
    padding: 8px 16px;
    border-radius: 7px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: background .12s ease, color .12s ease, box-shadow .12s ease;
}

.vg-segmented .vg-seg-btn i {
    font-size: 12.5px;
}

.vg-segmented .vg-seg-btn:hover {
    color: var(--vg-text);
}

.vg-segmented .vg-seg-btn.active {
    background: #fff;
    color: var(--vg-primary);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(15, 61, 48, .12);
}

/* =========================================================================
   VARIOS (badges, focus, formularios) para coherencia visual
   ========================================================================= */
.bg-primary { background: var(--vg-primary) !important; }
.text-primary { color: var(--vg-primary) !important; }

.badge.bg-success { background: var(--vg-mint) !important; color: var(--vg-primary) !important; font-weight: 600; }

.form-control:focus,
.form-select:focus {
    border-color: var(--vg-mint-border);
    box-shadow: 0 0 0 3px rgba(15, 61, 48, .10);
}

a { color: var(--vg-primary); }

/* Progreso (dashboard) en la gama de la marca cuando es "success" */
.progress-bar.bg-success { background-color: var(--vg-primary) !important; }

/* =========================================================================
   SUBMENÚS DEL SIDEBAR (flyout colapsado, ul.collapse bajo los .has-arrow)
   El posicionamiento (flyout a la derecha en mini-sidebar) lo controla el
   template; aquí solo estilamos el contenido: fondo blanco, texto oscuro y
   hover verde claro, en coherencia con el tema. NO tocamos position/left/top.
   ========================================================================= */

/* Contenedor del submenú: fondo blanco coherente con el tema. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul.collapse,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul {
    background: var(--vg-surface) !important;
    border: none !important;
    margin: 0 !important;
    padding: 4px 0 !important;
    list-style: none;
}

/* Items del submenú: texto oscuro, alineados a la izquierda con indentación
   modesta para indicar jerarquía. Icono y texto en flexbox alineados. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a {
    color: var(--vg-text) !important;
    background: transparent !important;
    font-size: 13.5px !important;
    font-weight: 500;
    padding: 8px 14px 8px 26px !important;
    margin: 2px 8px !important;
    border-radius: var(--vg-radius) !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px;
    transition: background .12s ease, color .12s ease;
    text-align: left !important;
    width: auto;
}

/* El span/icono del subitem sin margin-left inline que desalineaba. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link > span[style],
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a > span[style] {
    margin-left: 0 !important;
}

/* Hover/foco de los items del submenú: fondo verde claro (mint), texto verde bosque. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link:hover,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link:focus,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a:hover,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a:focus {
    background: var(--vg-mint) !important;
    color: var(--vg-primary) !important;
}

/* Item activo del submenú: píldora mint con texto verde (igual que el nivel superior). */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link.active {
    background: var(--vg-mint) !important;
    color: var(--vg-primary) !important;
    font-weight: 600;
}

/* Iconos de los items del submenú en tono muted, tamaño y ancho fijos para
   alinear verticalmente todos los subitems entre sí. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link i,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a i {
    color: var(--vg-text-muted) !important;
    font-size: 13px !important;
    width: 16px !important;
    min-width: 16px;
    text-align: center;
    margin: 0 !important;
    line-height: 1;
}

/* Hover/foco/activo de iconos del submenú en color primario. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link:hover i,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link:focus i,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a.nav-link.active i,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a:hover i,
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li > a:focus i {
    color: var(--vg-primary) !important;
}

/* El separador/flecha del enlace padre (.has-arrow) en tono muted. */
aside.left-sidebar .sidebar-nav ul#sidebarnav > li > a.has-arrow {
    color: var(--vg-text) !important;
    background: transparent !important;
    font-size: 14px !important;
    font-weight: 600;
    padding: 9px 14px !important;
    margin: 2px 10px !important;
    border-radius: var(--vg-radius) !important;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background .12s ease, color .12s ease;
}

.sidebar-nav ul#sidebarnav > li > a.has-arrow i {
    color: var(--vg-text-muted) !important;
    font-size: 15px !important;
    width: 18px;
    text-align: center;
    margin: 0 !important;
}

.sidebar-nav ul#sidebarnav > li > a.has-arrow:hover,
.sidebar-nav ul#sidebarnav > li > a.has-arrow.active {
    background: var(--vg-hover) !important;
    color: var(--vg-primary) !important;
}

.sidebar-nav ul#sidebarnav > li > a.has-arrow:hover i,
.sidebar-nav ul#sidebarnav > li > a.has-arrow.active i {
    color: var(--vg-primary) !important;
}

/* =========================================================================
   FLYOUT DEL SUBMENÚ EN MINI-SIDEBAR
   El sidebar está colapsado (solo iconos, 70px). Al hacer hover sobre un icono
   de grupo (.has-arrow), el submenú sale como panel flotante a la derecha,
   ALINEADO AL TOP del icono padre, con el TÍTULO de la categoría como cabecera
   en la parte superior y los subitems debajo. El icono padre NO se ensancha.
   ========================================================================= */

/* Evitar que el contenedor recorte el flyout (PerfectScrollbar / overflow:hidden). */
body.mini-sidebar .left-sidebar,
body.mini-sidebar .left-sidebar .scroll-sidebar,
body.mini-sidebar .left-sidebar .scroll-sidebar.ps,
body.mini-sidebar .left-sidebar .scroll-sidebar.ps > .sidebar-nav,
body.mini-sidebar .left-sidebar .sidebar-nav,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li {
    overflow: visible !important;
}

/* El <li> padre es la base de posicionamiento del flyout absoluto del hijo. */
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li {
    position: relative !important;
}

/* El icono padre NO se ensancha a 290px al hover; se mantiene en 70px, fondo
   transparente (sin píldora) y solo el ICONO cambia a verde. El texto del
   padre (.hide-menu) permanece oculto. */
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > a,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li > a {
    width: 70px !important;
    padding: 15px 0 !important;
    justify-content: center !important;
    background: transparent !important;
}

body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > a {
    background: transparent !important;
}

body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > a i,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li > a i {
    color: var(--vg-text-muted) !important;
}

/* En hover, el icono del padre pasa a verde (sin tocar el fondo del item). */
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > a i {
    color: var(--vg-primary) !important;
}

body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > a .hide-menu,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li > a .hide-menu {
    display: none !important;
}

/* El flyout del submenú: panel blanco flotante, alineado al TOP del icono padre
   (top:0), a la derecha (left:70px), ancho 220px. */
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > ul.collapse,
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li:hover > ul {
    display: block !important;
    position: absolute !important;
    left: 70px !important;
    top: 0 !important;
    width: 220px !important;
    min-width: 220px;
    background: var(--vg-surface) !important;
    border: 1px solid var(--vg-border) !important;
    border-radius: var(--vg-radius) !important;
    box-shadow: 0 6px 18px rgba(15, 61, 48, .14) !important;
    padding: 4px 6px 8px !important;
    margin: 0 !important;
    list-style: none;
    z-index: 100001 !important;
}

/* Cabecera de título del flyout (.vg-flyout-title): aparece en el top del panel. */
body.mini-sidebar .left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li.vg-flyout-title {
    color: var(--vg-text) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 10px 12px 6px !important;
    margin: 0 0 2px !important;
    border-bottom: 1px solid var(--vg-border) !important;
    line-height: 1.2;
    list-style: none;
}

/* En modo NO mini-sidebar (sidebar expandido), ocultamos la cabecera de título
   del flyout porque el submenú se ve inline bajo su padre. */
.left-sidebar .sidebar-nav ul#sidebarnav > li > ul > li.vg-flyout-title {
    display: none;
}
