/* ================================================================
   QUIPU 2.0 — ENTERPRISE MODERN UI 2026
   Paleta SaaS Enterprise — Azul corporativo #1D4ED8
   Overlay sobre AdminLTE 2.x + Bootstrap 3
   VERSIÓN LIMPIA — sin reglas duplicadas ni conflictos
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root { /* ── TEMA DE COLOR — controlado por el administrador ─────────────
     Estos valores son el "fallback" cuando no hay tema en DB.
     layout.php inyecta :root{ --q-theme-dark / --q-theme-darker /
     --q-theme-accent } con la paleta guardada. ── */
  --q-theme-dark: #1e293b; --q-theme-darker: #0f172a; --q-theme-accent: #2563eb; --q-primary: var(--q-theme-accent); --q-primary-dark: #1E40AF; --q-primary-light: rgba(37,99,235,.12); --q-success: #16A34A; --q-success-light: rgba(22,163,74,.12); --q-warning: #D97706; --q-warning-light: rgba(217,119,6,.12); --q-danger: #DC2626; --q-danger-light: rgba(220,38,38,.12); --q-info: #0891B2; --q-info-light: rgba(8,145,178,.12); --q-bg: #F4F7FB; --q-surface: #FFFFFF; --q-surface-2: #F8FAFC; --q-sidebar: var(--q-theme-darker); --q-topbar: var(--q-theme-darker); --q-text-1: #1E293B; --q-text-2: #64748B; --q-text-3: #94A3B8; --q-text-sidebar: rgba(226,232,240,.80); --q-border: #E5E7EB; --q-radius: 10px; --q-radius-sm: 6px; --q-shadow: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05); --q-shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 6px 18px rgba(0,0,0,.05); --q-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --q-sidebar-mini: 65px; --q-sidebar-full: 240px; --q-topbar-h: 44px;
}
body.dark-mode { --q-bg: #0D1117; --q-surface: #161B22; --q-surface-2: #1C2333; --q-sidebar: #0D1117; --q-topbar: #161B22; --q-text-1: #E6EDF3; --q-text-2: #8B949E; --q-text-3: #484F58; --q-border: #30363D; --q-shadow: 0 1px 3px rgba(0,0,0,.4); --q-shadow-card: 0 1px 3px rgba(0,0,0,.3), 0 6px 18px rgba(0,0,0,.25);
}
* { box-sizing: border-box; }

body,
body.skin-peru { font-family: var(--q-font) !important; font-size: 13px !important; background: var(--q-bg) !important; color: var(--q-text-1) !important; -webkit-font-smoothing: antialiased;
}
.skin-peru .wrapper { background: transparent !important;
}

/* ================================================================
   §4 — TOPBAR
   Logo oscuro (sidebar color) + Navbar BLANCO con iconos oscuros
   ================================================================ */

.skin-peru .main-header { background: transparent !important; border-bottom: 1px solid var(--q-border) !important; box-shadow: 0 1px 3px rgba(0,0,0,.08) !important; min-height: var(--q-topbar-h) !important; max-height: var(--q-topbar-h) !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 1030 !important; display: flex !important; flex-direction: row !important; align-items: stretch !important; overflow: visible !important; /* visible: permite que los dropdowns se desplieguen */
}
.skin-peru .main-header .logo { background: var(--q-sidebar) !important; border-right: 1px solid rgba(255,255,255,.07) !important; width: 230px !important; min-width: 50px !important; height: var(--q-topbar-h) !important; display: flex !important; align-items: center !important; justify-content: flex-start !important; padding: 0 16px !important; float: none !important; flex-shrink: 0 !important; text-decoration: none !important; transition: width .3s ease !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .main-header .logo { width: 50px !important; justify-content: center !important; padding: 0 !important;
}

.skin-peru .main-header .logo .logo-mini { display: none !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .main-header .logo .logo-mini { display: flex !important; align-items: center !important; justify-content: center !important;
}

.skin-peru .main-header .logo .logo-lg { display: flex !important; align-items: center !important; gap: 10px !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .main-header .logo .logo-lg { display: none !important;
}

.q2-logo-square { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--q-primary); color: #fff; font-weight: 800; font-size: 13px; border-radius: 8px; letter-spacing: -.5px; flex-shrink: 0;
}

.q2-logo-text { color: #fff; font-weight: 700; font-size: 15px; letter-spacing: -.3px; white-space: nowrap;
}

.skin-peru .main-header .navbar.navbar-static-top { background: var(--q-surface) !important; border: none !important; box-shadow: none !important; margin-left: 0 !important; padding: 0 !important; min-height: var(--q-topbar-h) !important; height: var(--q-topbar-h) !important; flex: 1 1 auto !important; display: flex !important; flex-direction: row !important; align-items: center !important; overflow: visible !important;
}

/* Hamburger toggle
   NOTA: skin-peru.css tiene color:rgba(255,255,255,.9)!important con especificidad (0,4,0)
   sobre .skin-peru .main-header .navbar .sidebar-toggle.
   Igualamos la especificidad aquí para ganar en orden de carga (modern.css carga al final). */
.skin-peru .main-header .navbar .sidebar-toggle,
.skin-peru .main-header .sidebar-toggle { background: transparent !important; color: #374151 !important; border: none !important; float: none !important; flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; width: 44px !important; height: var(--q-topbar-h) !important; padding: 0 !important; font-size: 20px !important; text-decoration: none !important; line-height: 1 !important;
}
.skin-peru .main-header .navbar .sidebar-toggle::before,
.skin-peru .main-header .sidebar-toggle::before { color: #374151 !important; font-size: 20px !important; line-height: 1 !important; display: block !important;
}
.skin-peru .main-header .navbar .sidebar-toggle:hover,
.skin-peru .main-header .sidebar-toggle:hover { color: var(--q-primary) !important; background: rgba(29,78,216,.07) !important;
}
.skin-peru .main-header .navbar .sidebar-toggle:hover::before,
.skin-peru .main-header .sidebar-toggle:hover::before { color: var(--q-primary) !important;
}

.navbar-greeting-wrap { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; padding: 0 8px !important; gap: 6px !important; min-width: 0 !important; flex-shrink: 1 !important;
}
.navbar-greeting-main { font-size: 12px; font-weight: 500; color: var(--q-text-1); white-space: nowrap; line-height: 1;
}
.navbar-greeting-main strong { color: var(--q-primary); font-weight: 700; }
.navbar-greeting-date { display: none !important;
}

.topbar-user-name,
.topbar-user-role,
.topbar-user-info { display: none !important;
}

.skin-peru .navbar.navbar-static-top .navbar-custom-menu,
.skin-peru .navbar.navbar-static-top > .navbar-custom-menu { float: none !important; display: flex !important; align-items: center !important; height: var(--q-topbar-h) !important; flex-shrink: 0 !important; padding-right: 10px !important;
}
.skin-peru .navbar-custom-menu > .nav.navbar-nav { display: flex !important; flex-direction: row !important; align-items: center !important; float: none !important; margin: 0 !important; padding: 0 !important; height: var(--q-topbar-h) !important;
}

/* Botones icono topbar
   PROBLEMA: skin-blue-light.min.css fuerza color:#fff en .navbar .nav>li>a
   SOLUCIÓN: regla con alta especificidad + !important para garantizar visibilidad */
.skin-peru .main-header .navbar .nav > li > a.topbar-icon-btn,
.topbar-icon-btn { background: transparent !important; border: none !important; color: #374151 !important; width: 36px !important; height: 36px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border-radius: 8px !important; cursor: pointer !important; font-size: 16px !important; transition: background .15s, color .15s !important; padding: 0 !important; position: relative !important; text-decoration: none !important;
}
/* Forzar color oscuro en el <i> directamente — anula herencia de skin */
.skin-peru .main-header .navbar-custom-menu .topbar-icon-btn i,
.skin-peru .main-header .navbar-custom-menu .topbar-icon-btn .fa,
.topbar-icon-btn > i,
.topbar-icon-btn > .fa { color: #374151 !important; font-size: 16px !important; line-height: 1 !important; display: inline-block !important;
}
.skin-peru .main-header .navbar .nav > li > a.topbar-icon-btn:hover,
.topbar-icon-btn:hover { background: rgba(29,78,216,.07) !important; color: var(--q-primary) !important;
}
.topbar-icon-btn:hover > i,
.topbar-icon-btn:hover > .fa { color: var(--q-primary) !important;
}
.topbar-icon-li { list-style: none; display: flex !important; align-items: center !important; padding: 0 2px !important;
}

.topbar-notif-badge { position: absolute; top: 2px; right: 2px; background: var(--q-danger); color: #fff; font-size: 9px; font-weight: 700; border-radius: 20px; min-width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; padding: 0 3px; line-height: 1; pointer-events: none;
}

.topbar-user-btn { display: flex !important; align-items: center !important; gap: 6px !important; background: transparent !important; border: none !important; color: var(--q-text-1) !important; padding: 3px 6px !important; border-radius: 8px !important; cursor: pointer !important; text-decoration: none !important; transition: background .15s !important; height: 34px !important;
}
.topbar-user-btn:hover { background: var(--q-bg) !important; text-decoration: none !important;
}
.topbar-avatar { width: 28px; height: 28px; border-radius: 8px; background: var(--q-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12px; flex-shrink: 0;
}
.topbar-avatar-lg { width: 36px; height: 36px; font-size: 14px; }
.topbar-user-info { display: flex; flex-direction: column; line-height: 1.25; text-align: left;
}
.topbar-user-name { font-size: 12px; font-weight: 600; color: var(--q-text-1); display: block;
}
.topbar-user-role { font-size: 10px; color: var(--q-text-3); display: block;
}

/* Dropdown topbar — z-index mayor que sidebar (860) y content (1) */
.topbar-dropdown-menu,
.skin-peru .navbar-custom-menu .dropdown-menu,
.skin-peru .main-header .dropdown-menu { border: 1px solid var(--q-border) !important; border-radius: var(--q-radius) !important; box-shadow: 0 8px 24px rgba(0,0,0,.14) !important; padding: 4px 0 !important; min-width: 200px !important; margin-top: 4px !important; background: var(--q-surface) !important; z-index: 1050 !important; position: absolute !important;
}
.topbar-dropdown-menu > li > a { color: var(--q-text-1) !important; font-size: 12.5px !important; padding: 8px 14px !important; display: flex !important; align-items: center !important;
}
.topbar-dropdown-menu > li > a:hover { background: var(--q-bg) !important; color: var(--q-primary) !important;
}
.topbar-dropdown-menu > li.dropdown-header { font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .06em !important; color: var(--q-text-3) !important; padding: 8px 14px 4px !important;
}

body.dark-mode .skin-peru .main-header .navbar.navbar-static-top { background: var(--q-surface) !important; border-bottom-color: var(--q-border) !important;
}

/* ================================================================
   §5 — SIDEBAR
   REGLA CLAVE CSS: overflow-x:visible + overflow-y:auto = IMPOSIBLE.
   El navegador convierte visible→auto cuando el otro eje es auto/hidden.
   SOLUCIÓN: overflow diferente según estado del sidebar.
   ================================================================ */
.skin-peru .main-sidebar,
.skin-peru .left-side { position: fixed !important; top: 0 !important; left: 0 !important; bottom: 0 !important; height: 100vh !important; z-index: 860 !important; background: var(--q-sidebar) !important; box-shadow: 2px 0 16px rgba(0,0,0,.35) !important; padding-top: var(--q-topbar-h) !important; transition: width .28s ease !important; overflow: hidden !important;
}

.skin-peru .sidebar { height: calc(100vh - var(--q-topbar-h) - 90px) !important; overflow-y: auto !important; overflow-x: hidden !important;
}

/* ─────────────────────────────────────────────
   §5.2 COLAPSADO — overflow:visible para flyouts
   La propiedad overflow:hidden en un positioned element
   RECORTA los submenús absolutos que salen a left:50px.
   En modo mini TODOS los overflow deben ser visible.
   ───────────────────────────────────────────── */
.skin-peru.sidebar-mini.sidebar-collapse .main-sidebar,
.skin-peru.sidebar-mini.sidebar-collapse .left-side { overflow: visible !important; /* CRÍTICO: permite flyout hacia la derecha */
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar { overflow: visible !important; /* CRÍTICO: CSS no permite x:visible + y:auto */
}
.skin-peru:not(.sidebar-collapse) .content-wrapper,
.skin-peru:not(.sidebar-collapse) .main-footer { margin-left: 230px !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .content-wrapper,
.skin-peru.sidebar-mini.sidebar-collapse .main-footer { margin-left: 50px !important;
}
.skin-peru .content-wrapper { background: var(--q-bg) !important; margin-top: var(--q-topbar-h) !important; min-height: calc(100vh - var(--q-topbar-h)) !important; position: relative !important; z-index: 1 !important;
}
.skin-peru .main-footer { background: var(--q-surface) !important; border-top: 1px solid var(--q-border) !important; color: var(--q-text-2) !important; font-size: 12px !important; padding: 10px 20px !important; margin-top: 0 !important;
}
.skin-peru .sidebar-menu > li.header { color: rgba(148,163,184,.50) !important; font-size: 9.5px !important; font-weight: 700 !important; letter-spacing: .14em !important; text-transform: uppercase !important; background: transparent !important; padding: 16px 16px 5px !important; white-space: nowrap !important;
}
.skin-peru .sidebar-menu > li > a { color: rgba(226,232,240,.80) !important; border-left: 3px solid transparent !important; padding: 10px 15px !important; font-size: 13px !important; font-weight: 500 !important; transition: background .15s, color .15s, border-color .15s !important; white-space: nowrap !important;
}
.skin-peru .sidebar-menu > li > a:hover,
.skin-peru .sidebar-menu > li:hover > a { background: rgba(255,255,255,.08) !important; color: #fff !important; border-left-color: var(--q-primary) !important; text-decoration: none !important;
}
.skin-peru .sidebar-menu > li.active > a,
.skin-peru .sidebar-menu > li.active > a:hover { background: rgba(29,78,216,.28) !important; color: #fff !important; border-left-color: var(--q-primary) !important; font-weight: 600 !important;
}

/* ─────────────────────────────────────────────
   §5.6 ICONOS — visibles, blancos, opacity:1
   Igual que los iconos de "Módulos del sistema"
   ───────────────────────────────────────────── */
.skin-peru .sidebar-menu > li > a > i { color: rgba(255,255,255,.85) !important; opacity: 1 !important; font-size: 15px !important; width: 22px !important; text-align: center !important; margin-right: 9px !important; flex-shrink: 0 !important; transition: color .15s !important;
}
.skin-peru .sidebar-menu > li > a:hover > i,
.skin-peru .sidebar-menu > li:hover > a > i { color: #4da3ff !important;
}
.skin-peru .sidebar-menu > li.active > a > i { color: #fff !important;
}
.skin-peru .sidebar-menu > li > a > span { font-size: 13px !important; font-weight: 500 !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a { padding: 9px 0 !important; text-align: center !important; border-left-color: transparent !important; border-right: none !important; display: flex !important; align-items: center !important; justify-content: center !important;
}

/* AdminLTE oculta el span de texto por defecto en sidebar-mini, pero hay spans extra y .pull-right con fa-angle-left que persisten */
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span:not(.pull-right),
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span.pull-right,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .fa-angle-left,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .fa-angle-down { display: none !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li.header { display: none !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li > a > i { width: auto !important; height: auto !important; line-height: 1 !important; border-radius: 0 !important; background: none !important; display: inline-block !important; color: #fff !important; opacity: 1 !important; font-size: 15px !important; margin: 0 !important; flex-shrink: 0 !important; box-shadow: none !important; transition: color .15s ease !important; vertical-align: middle !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > i,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li[data-flyopen] > a > i { background: none !important; transform: none !important; box-shadow: none !important; color: #4da3ff !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li.active > a { background: rgba(29,78,216,.28) !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li.active > a > i { background: none !important; box-shadow: none !important; color: #fff !important; transform: none !important;
}

/* ─────────────────────────────────────────────
   §5.8 FLYOUT SUBMENU — colapsado (el crucial)
   AdminLTE lo posiciona: position:absolute; left:50px; top:44px
   Nosotros añadimos z-index, estilo y aseguramos visibilidad.
   ───────────────────────────────────────────── */
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right) { z-index: 9999 !important; background: var(--q-sidebar) !important; color: #fff !important; font-size: 13px !important; font-weight: 600 !important; padding: 13px 18px !important; border-left: 3px solid var(--q-primary) !important; border-radius: 0 8px 0 0 !important; box-shadow: 4px 0 16px rgba(0,0,0,.30) !important; min-width: 200px !important; white-space: nowrap !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu > li.flyout-header,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li[data-flyopen] > .treeview-menu > li.flyout-header { font-size: 11px !important; font-weight: 700 !important; color: rgba(255,255,255,.78) !important; padding: 12px 18px 9px !important; letter-spacing: .14em !important; text-transform: uppercase !important; border-bottom: 1px solid rgba(255,255,255,.12) !important; margin-bottom: 2px !important; cursor: default !important; pointer-events: none !important; list-style: none !important; display: block !important;
}
.skin-peru:not(.sidebar-collapse) .sidebar-menu > li > .treeview-menu > li.flyout-header { display: none !important;
}

/* ── FLYOUT SUBMENU — posicionamiento corregido ──
   top: 0  → alineado al borde superior del li (no 44px abajo)
   left: 50px → pegado al borde derecho del sidebar (sin hueco)
   data-flyopen → clase JS que extiende el hover 250ms (evita cierre accidental)
   ─────────────────────────────────────────────────────────────── */
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li[data-flyopen] > .treeview-menu { z-index: 9999 !important; position: absolute !important; left: 50px !important; top: 0 !important; /* CLAVE: sin desfase vertical, sin zona muerta */
  min-width: 210px !important; background: var(--q-sidebar) !important; border-left: 3px solid var(--q-primary) !important; border-radius: 0 8px 8px 0 !important; box-shadow: 6px 4px 20px rgba(0,0,0,.42) !important; padding: 4px 0 8px !important; margin: 0 !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu > li > a { color: rgba(203,213,225,.90) !important; padding: 9px 18px !important; font-size: 12.5px !important; font-weight: 400 !important; white-space: nowrap !important; display: block !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu > li > a:hover { color: #fff !important; background: rgba(29,78,216,.25) !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu > li > a > i { color: rgba(255,255,255,.75) !important; font-size: 12px !important; margin-right: 8px !important;
}
.skin-peru .sidebar-menu > li > .treeview-menu,
.skin-peru .treeview-menu { background: rgba(0,0,0,.20) !important; border-left: 2px solid rgba(29,78,216,.30) !important; margin-left: 12px !important; padding: 4px 0 !important;
}
.skin-peru .treeview-menu > li > a { color: rgba(203,213,225,.80) !important; font-size: 12.5px !important; padding: 8px 12px 8px 22px !important; transition: color .15s, background .15s !important;
}
.skin-peru .treeview-menu > li > a:hover,
.skin-peru .treeview-menu > li.active > a { color: #fff !important; background: rgba(255,255,255,.07) !important;
}
.skin-peru .treeview-menu > li > a > i { color: rgba(255,255,255,.70) !important; font-size: 12px !important; width: 16px !important; margin-right: 6px !important;
}
.skin-peru .sidebar-menu > li > a > .fa-angle-left,
.skin-peru .sidebar-menu > li > a > .pull-right { color: rgba(255,255,255,.40) !important; transition: transform .2s !important;
}
.skin-peru .sidebar-footer { position: absolute !important; bottom: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; overflow: hidden !important; border-top: 1px solid rgba(255,255,255,.06) !important; background: rgba(0,0,0,.18) !important; padding: 6px 0 !important;
}
.sidebar-footer { border-top: 1px solid rgba(255,255,255,.06) !important; background: rgba(0,0,0,.12) !important; padding: 8px 0 !important;
}

.sidebar-collapse-link { display: flex !important; align-items: center !important; padding: 8px 16px !important; color: rgba(148,163,184,.65) !important; text-decoration: none !important; font-size: 12.5px !important; transition: color .15s !important;
}

.sidebar-collapse-link:hover { color: #fff !important; text-decoration: none !important;
}

.sidebar-collapse-icon { margin-right: 8px !important; font-size: 12px !important;
}

.sidebar-footer-label { font-size: 12px !important; font-weight: 500 !important; white-space: nowrap !important;
}

.sidebar-dark-row { display: flex !important; align-items: center !important; padding: 6px 16px !important;
}

.sidebar-toggle-switch { margin-left: auto !important; background: transparent !important; border: none !important; display: flex !important; align-items: center !important; gap: 6px !important; cursor: pointer !important; padding: 0 !important;
}

.toggle-track { width: 34px; height: 18px; background: rgba(255,255,255,.15); border-radius: 9px; position: relative; flex-shrink: 0;
}

.toggle-thumb { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; transition: left .18s ease;
}

.sidebar-toggle-icon { font-size: 13px; }

.sidebar-version { font-size: 9.5px !important; color: rgba(255,255,255,.22) !important; line-height: 1.5 !important; padding: 6px 16px !important; white-space: nowrap !important;
}

/* ─────────────────────────────────────────────
   §5.11 SIDEBAR FOOTER — modo COLAPSADO
   Ocultar labels; centrar solo el icono/toggle.
   El footer tiene position:absolute bottom:0, width sigue al sidebar (50px en collapsed).
   ───────────────────────────────────────────── */
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-footer { overflow: hidden !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-footer-label,
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-version { display: none !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-collapse-link { justify-content: center !important; padding: 9px 0 !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-collapse-icon { margin-right: 0 !important; font-size: 14px !important;
}

.skin-peru.sidebar-mini.sidebar-collapse .sidebar-dark-row { justify-content: center !important; padding: 7px 0 !important;
}
.skin-peru.sidebar-mini.sidebar-collapse .sidebar-toggle-switch { margin-left: 0 !important;
}
.skin-peru .content-wrapper > .content { padding: 8px 14px 12px !important;
}

.skin-peru .content-wrapper > .content-header { padding: 6px 14px !important; background: transparent !important;
}

.skin-peru .content-wrapper > .content-header h1 { font-size: 18px !important; font-weight: 700 !important; color: var(--q-text-1) !important; margin: 0 !important;
}
.box,
.skin-peru .box { background: var(--q-surface) !important; border: 1px solid var(--q-border) !important; border-radius: var(--q-radius) !important; box-shadow: var(--q-shadow-card) !important; border-top: none !important; margin-bottom: 18px !important;
}

.box .box-header,
.skin-peru .box .box-header { background: transparent !important; border-bottom: 1px solid var(--q-border) !important; padding: 12px 16px !important; display: flex !important; align-items: center !important; border-radius: var(--q-radius) var(--q-radius) 0 0 !important;
}

.box .box-header .box-title,
.skin-peru .box .box-header .box-title { font-size: 13.5px !important; font-weight: 700 !important; color: var(--q-text-1) !important;
}

.box .box-body,
.skin-peru .box .box-body { padding: 14px 16px !important;
}

.box.box-primary  { border-top: 3px solid var(--q-primary) !important; }
.box.box-success  { border-top: 3px solid var(--q-success) !important; }
.box.box-warning  { border-top: 3px solid var(--q-warning) !important; }
.box.box-danger   { border-top: 3px solid var(--q-danger) !important; }
.box.box-info     { border-top: 3px solid var(--q-info) !important; }

.info-box { background: var(--q-surface) !important; border: 1px solid var(--q-border) !important; border-radius: var(--q-radius) !important; box-shadow: var(--q-shadow-card) !important; overflow: hidden !important; margin-bottom: 16px !important; display: flex !important; min-height: 72px !important;
}

.info-box-icon { display: flex !important; align-items: center !important; justify-content: center !important; width: 70px !important; min-width: 70px !important; font-size: 24px !important; color: #fff !important;
}

.info-box-content { padding: 10px 14px !important; flex: 1 !important;
}

.info-box-text { font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: .05em !important; color: var(--q-text-2) !important; display: block !important;
}

.info-box-number { font-size: 22px !important; font-weight: 700 !important; color: var(--q-text-1) !important; display: block !important; line-height: 1.2 !important;
}
.table,
.skin-peru table.dataTable { background: transparent !important; border-collapse: separate !important; border-spacing: 0 !important; width: 100% !important;
}

.table > thead > tr > th,
.skin-peru table.dataTable thead th { background: var(--q-surface-2, #F8FAFC); color: var(--q-text-2); font-size: 10.5px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .06em !important; padding: 10px 12px !important; border-bottom: 1px solid var(--q-border) !important; border-top: none !important; white-space: nowrap !important;
}

.table > tbody > tr > td,
.skin-peru table.dataTable tbody td { background: var(--q-surface) !important; color: var(--q-text-1) !important; font-size: 12.5px !important; padding: 9px 12px !important; border-bottom: 1px solid var(--q-border) !important; vertical-align: middle !important;
}

.table > tbody > tr:hover > td,
.skin-peru table.dataTable tbody tr:hover td { background: var(--q-bg) !important;
}

.table > tbody > tr:last-child > td,
.skin-peru table.dataTable tbody tr:last-child td { border-bottom: none !important; }

.dataTables_wrapper { padding: 0 !important;
}

.dataTables_wrapper .dataTables_filter input { border: 1px solid var(--q-border) !important; border-radius: var(--q-radius-sm) !important; padding: 5px 10px !important; font-size: 12px !important; background: var(--q-surface) !important; color: var(--q-text-1) !important; outline: none !important;
}

.dataTables_wrapper .dataTables_length select { border: 1px solid var(--q-border) !important; border-radius: var(--q-radius-sm) !important; padding: 4px 8px !important; font-size: 12px !important; background: var(--q-surface) !important; color: var(--q-text-1) !important;
}

.dataTables_wrapper .dataTables_info { font-size: 11.5px !important; color: var(--q-text-2) !important; padding-top: 8px !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: var(--q-radius-sm) !important; font-size: 12px !important; padding: 4px 9px !important; border: 1px solid transparent !important; color: var(--q-text-2) !important; cursor: pointer !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--q-bg) !important; border-color: var(--q-border) !important; color: var(--q-text-1) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { background: var(--q-primary) !important; border-color: var(--q-primary) !important; color: #fff !important;
}
.q-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 20px; font-size: 10.5px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; line-height: 1;
}

.q-badge-success { background: var(--q-success-light); color: var(--q-success); }
.q-badge-warning { background: var(--q-warning-light); color: var(--q-warning); }
.q-badge-danger  { background: var(--q-danger-light); color: var(--q-danger); }
.q-badge-info    { background: var(--q-info-light); color: var(--q-info); }
.q-badge-primary { background: var(--q-primary-light); color: var(--q-primary); }
.q-badge-neutral { background: rgba(100,116,139,.1); color: #64748B; }

/* ================================================================
   §10 — BOTONES DE ACCIÓN EN TABLA (btn-xs)
   Iconos: Amarillo=Detalle, Azul=Convertir, Rojo=Anular, Verde=Imprimir, Cian=Descargar/PDF, Gris=Default
   ================================================================ */

.table .btn-xs,
table.dataTable .btn-xs,
td .btn-xs,
td .btn.btn-xs { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 30px !important; height: 30px !important; padding: 0 !important; border-radius: 8px !important; font-size: 12px !important; font-weight: 400 !important; border: none !important; cursor: pointer !important; text-decoration: none !important; transition: filter .15s, transform .12s, box-shadow .12s !important; line-height: 1 !important; margin: 0 2px 0 0 !important; /* override inline margin-bottom */
  vertical-align: middle !important; flex-shrink: 0 !important; box-shadow: 0 1px 3px rgba(0,0,0,.18) !important;
}

.table .btn-xs:hover,
table.dataTable .btn-xs:hover,
td .btn-xs:hover,
td .btn.btn-xs:hover { transform: translateY(-1px) scale(1.05) !important; box-shadow: 0 3px 8px rgba(0,0,0,.22) !important; text-decoration: none !important; filter: brightness(1.08) !important;
}

td .btn-xs.btn-warning,
td .btn.btn-xs.btn-warning { background: #F59E0B !important; color: #fff !important; }

td .btn-xs.btn-primary,
td .btn.btn-xs.btn-primary { background: #3B82F6 !important; color: #fff !important; }

td .btn-xs.btn-danger,
td .btn.btn-xs.btn-danger  { background: #EF4444 !important; color: #fff !important; }

td .btn-xs.btn-success,
td .btn.btn-xs.btn-success { background: #22C55E !important; color: #fff !important; }

td .btn-xs.btn-info,
td .btn.btn-xs.btn-info    { background: #06B6D4 !important; color: #fff !important; }

td .btn-xs.btn-default,
td .btn.btn-xs.btn-default { background: #94A3B8 !important; color: #fff !important; border: none !important; }

td .btn-xs em,
td .btn-xs i,
td .btn.btn-xs em,
td .btn.btn-xs i { font-size: 11.5px !important; color: #fff !important; font-style: normal !important; pointer-events: none !important;
}
td:last-child,
td.acciones,
td[style*="white-space"] { white-space: nowrap !important;
}

/* ── Botones btn-xs con texto (ej: Movimientos) — ancho automático ── */
td .btn-xs[title="Movimientos"],
td a.btn-xs[title="Movimientos"] {
  width: auto !important;
  padding: 0 12px !important;
  min-width: 110px !important;
  white-space: nowrap !important;
  gap: 6px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

/* ================================================================
   §10b — BOTONES DE FILTRO (btn sin btn-xs, en panel-body)
   Pill redondeado, más grandes, ALINEADOS A LA DERECHA
   ================================================================ */

/* ── Detectar fila de botones de filtro y empujar a la derecha ──
   Usamos :has() para la fila form-group que contiene .btn (no .btn-xs)
   Esta fila va siempre DESPUÉS de la fila de inputs de filtro        */
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > .btn:not(.btn-xs)),
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > a.btn:not(.btn-xs)) { display: flex !important; justify-content: flex-end !important; margin-left: 0 !important; margin-right: 0 !important; padding-right: 0 !important;
}
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > .btn:not(.btn-xs)) > [class*="col-"],
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > a.btn:not(.btn-xs)) > [class*="col-"] { float: none !important; width: auto !important; max-width: 100% !important; padding-top: 6px !important; padding-bottom: 6px !important; display: flex !important; align-items: center !important; gap: 7px !important;
}
/* ── Cols con label dentro de una fila-botones: restituir columna vertical ── */
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > .btn:not(.btn-xs)) > [class*="col-"]:has(> label),
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > a.btn:not(.btn-xs)) > [class*="col-"]:has(> label) { flex-direction: column !important; align-items: stretch !important; justify-content: flex-end !important; gap: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important;
}
.panel-body .btn:not(.btn-xs):not(.btn-block):not([data-dismiss]) { border-radius: 14px !important; width: 42px !important; height: 42px !important; padding: 0 !important; font-size: 15px !important; font-weight: 400 !important; gap: 0 !important; flex-shrink: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; box-shadow: 0 2px 8px rgba(0,0,0,.15) !important; transition: transform .15s, box-shadow .15s, filter .15s !important; border: none !important;
}

.panel-body .btn:not(.btn-xs):not(.btn-block):not([data-dismiss]):hover { transform: translateY(-2px) !important; box-shadow: 0 5px 14px rgba(0,0,0,.20) !important; filter: brightness(1.07) !important; text-decoration: none !important;
}

.panel-body .btn-success:not(.btn-xs):not(.btn-block) { background: #22C55E !important; color: #fff !important; }
.panel-body .btn-danger:not(.btn-xs):not(.btn-block)  { background: #EF4444 !important; color: #fff !important; }
.panel-body .btn-primary:not(.btn-xs):not(.btn-block) { background: #3B82F6 !important; color: #fff !important; }
.panel-body .btn-info:not(.btn-xs):not(.btn-block)    { background: #06B6D4 !important; color: #fff !important; }
.panel-body .btn-warning:not(.btn-xs):not(.btn-block) { background: #F59E0B !important; color: #fff !important; }
.panel-body .btn-default:not(.btn-xs):not(.btn-block) { background: #94A3B8 !important; color: #fff !important; }

.panel-body .btn:not(.btn-xs) em,
.panel-body .btn:not(.btn-xs) i { font-size: 14px !important; color: #fff !important; font-style: normal !important; pointer-events: none !important;
}

.modal .btn,
.modal-footer .btn,
.modal-body .btn { border-radius: var(--q-radius-sm) !important; width: auto !important; height: auto !important; padding: 6px 14px !important; display: inline-flex !important; font-size: 12.5px !important; font-weight: 600 !important;
}

.btn-action { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 6px; border: none; cursor: pointer; font-size: 12px; transition: background .15s, transform .1s; text-decoration: none; background: transparent; color: var(--q-text-2);
}
.btn-action:hover { transform: scale(1.12); }
.btn-action-edit   { background: var(--q-primary-light); color: var(--q-primary); }
.btn-action-delete { background: var(--q-danger-light); color: var(--q-danger); }
.btn-action-view   { background: var(--q-info-light, #E0F2FE); color: var(--q-info, #0284C7); }

/* ==============================================================
   S13  TOP NAVIGATION MODE  (body.layout-topnav)
   ==============================================================
   Segundo modo de navegacion: barra horizontal superior.
   El sidebar se oculta y el topnav aparece fijo bajo el header.
============================================================== */

:root { --q-topnav-h: 44px; --q-topnav-bg: #1E3A5F; --q-topnav-hover: rgba(255,255,255,0.11); --q-topnav-active: rgba(255,255,255,0.18); --q-topnav-text: rgba(255,255,255,0.92); --q-topnav-dropdown-bg: #ffffff; --q-topnav-dropdown-text: #1e293b; --q-topnav-dropdown-hover:#f1f5f9;
}

body.layout-topnav .main-sidebar,
body.layout-topnav .left-side { display: none !important; }
body.layout-topnav .content-wrapper,
body.layout-topnav .main-footer { margin-left: 0 !important; }
body.layout-topnav .main-header .logo { width: 0 !important; min-width: 0 !important; overflow: hidden !important; padding: 0 !important;
}
body.layout-topnav .main-header .navbar { margin-left: 0 !important; }
body.layout-topnav .main-header .sidebar-toggle { display: none !important; }
body.layout-topnav .wrapper { padding-top: calc(var(--q-topbar-h, 50px) + var(--q-topnav-h)) !important;
}

.q2-topnav { display: none; position: fixed; top: var(--q-topbar-h, 50px); left: 0; right: 0; z-index: 1029; height: var(--q-topnav-h); background: var(--q-topnav-bg); border-bottom: 1px solid rgba(255,255,255,0.08); box-shadow: 0 2px 10px rgba(0,0,0,0.18); overflow: visible;
}
body.layout-topnav .q2-topnav { display: block !important; }
.q2-topnav-inner { display: flex; align-items: stretch; height: 100%; overflow: visible; position: relative;
}

.q2-topnav-menu { display: flex; align-items: stretch; list-style: none; margin: 0; padding: 0; height: 100%; flex: 1 1 auto; overflow: visible;
}
.q2-tn-item { position: relative; display: flex; align-items: stretch;
}
.q2-tn-link { display: flex; align-items: center; gap: 6px; padding: 0 13px; color: var(--q-topnav-text) !important; font-size: 12px; font-weight: 500; text-decoration: none !important; white-space: nowrap; height: 100%; border-bottom: 2px solid transparent; transition: background 0.14s, border-color 0.14s; cursor: pointer; letter-spacing: 0.01em;
}
.q2-tn-link i { font-size: 13px; color: inherit; flex-shrink: 0; opacity: 0.85;
}
.q2-tn-arrow { font-size: 10px !important; margin-left: 1px; opacity: 0.7; transition: transform 0.2s;
}
.q2-tn-item:hover > .q2-tn-link { background: var(--q-topnav-hover); border-bottom-color: rgba(255,255,255,0.45);
}
.q2-tn-item.q2-tn-open > .q2-tn-link { background: var(--q-topnav-hover); border-bottom-color: rgba(255,255,255,0.6);
}
.q2-tn-item.q2-tn-active > .q2-tn-link { background: var(--q-topnav-active); border-bottom-color: #fff; font-weight: 600;
}
.q2-tn-item.q2-tn-open > .q2-tn-link .q2-tn-arrow { transform: rotate(180deg); opacity: 1;
}

.q2-tn-dropdown { display: none; position: absolute; top: calc(var(--q-topnav-h) - 1px); left: 0; min-width: 215px; background: var(--q-topnav-dropdown-bg); border: 1px solid #e2e8f0; border-top: none; border-radius: 0 0 8px 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.13); z-index: 2000; list-style: none; margin: 0; padding: 4px 0; overflow: hidden;
}
.q2-tn-item.q2-tn-open > .q2-tn-dropdown { display: block; animation: q2TnDropIn 0.15s ease;
}
@keyframes q2TnDropIn { from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}
.q2-tn-dropdown > li > a { display: flex; align-items: center; gap: 9px; padding: 8px 15px; color: var(--q-topnav-dropdown-text) !important; font-size: 12px; font-weight: 400; text-decoration: none !important; transition: background 0.12s; border-left: 3px solid transparent;
}
.q2-tn-dropdown > li > a:hover { background: var(--q-topnav-dropdown-hover); color: var(--q-primary, #1D4ED8) !important; border-left-color: var(--q-primary, #1D4ED8);
}
.q2-tn-dropdown > li > a i { font-size: 13px; width: 16px; text-align: center; color: var(--q-primary, #1D4ED8); flex-shrink: 0;
}

.q2-topnav-toggle { display: none; background: none; border: none; color: rgba(255,255,255,0.85); font-size: 17px; padding: 0 14px; cursor: pointer; align-items: center; margin-left: auto;
}
.q2-topnav-toggle:hover { color: #fff; }

body.layout-topnav #q2-layout-toggle { background: rgba(29,78,216,0.12) !important; border-radius: 6px !important;
}

@media (max-width: 991px) { .q2-topnav-menu { display: none; flex-direction: column; position: fixed; top: calc(var(--q-topbar-h, 50px) + var(--q-topnav-h)); left: 0; right: 0; background: var(--q-topnav-bg); z-index: 1028; max-height: calc(100vh - var(--q-topbar-h, 50px) - var(--q-topnav-h)); overflow-y: auto; padding-bottom: 16px; box-shadow: 0 8px 16px rgba(0,0,0,0.22); }
  .q2-topnav-menu.q2-topnav-open { display: flex; }
  .q2-tn-item { flex-direction: column; align-items: flex-start; }
  .q2-tn-link { width: 100%; padding: 10px 16px; border-bottom: none; border-left: 3px solid transparent; }
  .q2-tn-item:hover > .q2-tn-link, .q2-tn-item.q2-tn-active > .q2-tn-link, .q2-tn-item.q2-tn-open > .q2-tn-link { border-bottom: none; border-left-color: rgba(255,255,255,0.7); background: var(--q-topnav-hover); }
  .q2-tn-dropdown { position: static; display: none; width: 100%; border-radius: 0; border: none; box-shadow: none; background: rgba(0,0,0,0.22); animation: none; }
  .q2-tn-item.q2-tn-open > .q2-tn-dropdown { display: block; }
  .q2-tn-dropdown > li > a { color: rgba(255,255,255,0.82) !important; padding-left: 32px; border-left: 3px solid transparent; }
  .q2-tn-dropdown > li > a:hover { background: rgba(255,255,255,0.09); color: #fff !important; border-left-color: rgba(255,255,255,0.5); }
  .q2-tn-dropdown > li > a i { color: rgba(255,255,255,0.65); }
  .q2-topnav-toggle { display: flex; }
}

body.dark-mode .q2-topnav { background: #0f2444; border-bottom-color: rgba(255,255,255,0.06); }
body.dark-mode .q2-tn-dropdown { background: var(--q-theme-dark); border-color: #334155; }
body.dark-mode .q2-tn-dropdown > li > a { color: #cbd5e1 !important; }
body.dark-mode .q2-tn-dropdown > li > a:hover { background: #334155; color: #93c5fd !important; border-left-color: #60a5fa; }
body.dark-mode .q2-tn-dropdown > li > a i { color: #60a5fa; }

/* ================================================================
   §14  FILTROS COMPACTOS + TABLA ENTERPRISE
   ----------------------------------------------------------------
   Sin cambios en PHP. Solo CSS.
   Objetivo: toolbar 1-2 filas / ~40px por fila, labels encima, header oscuro, filas compactas, espacio muerto = cero.
   Funciona identico en modo sidebar y en modo topnav.
================================================================ */

.content .panel { border: 1px solid var(--q-border) !important; border-radius: var(--q-radius) !important; box-shadow: 0 1px 4px rgba(0,0,0,.06) !important; background: var(--q-surface) !important; margin-bottom: 0 !important; overflow: visible !important;
}
body.dark-mode .content .panel { box-shadow: 0 1px 6px rgba(0,0,0,.25) !important;
}

.content .panel .panel-heading { background: var(--q-theme-dark) !important; border-bottom: none !important; padding: 9px 14px !important; border-radius: var(--q-radius) var(--q-radius) 0 0 !important; min-height: 0 !important;
}
.content .panel .panel-heading,
.content .panel .panel-heading .panel-title,
.content .panel .panel-heading strong,
.content .panel .panel-heading a,
.content .panel .panel-heading span,
.content .panel .panel-heading i { color: #f1f5f9 !important;
}
.content .panel .panel-heading .panel-title { font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; margin: 0 !important; line-height: 1.3 !important;
}
body.dark-mode .content .panel .panel-heading { background: var(--q-theme-darker) !important; border-bottom: 1px solid var(--q-theme-dark) !important;
}

.content .panel .panel-body { padding: 10px 14px 10px !important;
}

/* ── FORM HORIZONTAL → flex row compacto ──────────────────────
   Cada .form-group se convierte en fila flex.
   Cada col-* se vuelve un item auto-width.
   Los labels quedan encima del campo (son block dentro del col).
──────────────────────────────────────────────────────────────── */
.content .panel-body .form-horizontal .form-group { display: flex !important; flex-wrap: wrap !important; align-items: flex-end !important; gap: 6px 10px !important; margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 8px !important; padding: 0 !important;
}
.content .panel-body .form-horizontal .form-group:last-child { margin-bottom: 4px !important;
}

.content .panel-body .form-horizontal .form-group > [class*="col-"] { float: none !important; width: auto !important; flex: 0 0 auto !important; padding-left: 0 !important; padding-right: 0 !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-2,
.content .panel-body .form-horizontal .form-group > .col-sm-12.col-md-2 { min-width: 118px !important; max-width: 155px !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-3 { min-width: 145px !important; max-width: 195px !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-4,
.content .panel-body .form-horizontal .form-group > .col-sm-12.col-md-4 { flex: 1 1 165px !important; min-width: 165px !important; max-width: 270px !important; display: flex !important; flex-direction: column !important; justify-content: flex-end !important;
}

/* ── Sobrescribir inline padding-top en columna de botones ──
   El HTML tiene style="padding-top: 25px;" — lo anulamos   */
.content .panel-body .form-horizontal .form-group > [class*="col-"][style*="padding-top"] { padding-top: 0 !important; flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; max-width: none !important; display: flex !important; flex-direction: row !important; align-items: flex-end !important; gap: 6px !important;
}

.content .panel-body .form-horizontal label { font-size: 10.5px !important; font-weight: 600 !important; color: var(--q-text-3, #94A3B8) !important; text-transform: uppercase !important; letter-spacing: 0.04em !important; display: block !important; margin-bottom: 3px !important; white-space: nowrap !important; line-height: 1.2 !important;
}

.content .panel-body .form-horizontal .form-control { height: 32px !important; font-size: 12px !important; padding: 4px 8px !important; border-radius: 6px !important; border: 1px solid var(--q-border, #e2e8f0) !important; background: var(--q-surface) !important; color: var(--q-text-1) !important; width: 100% !important; min-width: 0 !important; box-shadow: none !important;
}
.content .panel-body .form-horizontal .form-control:focus { border-color: var(--q-primary, #1D4ED8) !important; box-shadow: 0 0 0 2px rgba(29,78,216,0.10) !important; outline: none !important;
}

.content .panel-body .form-horizontal .select2-container { min-width: 100px !important; width: 100% !important;
}
.content .panel-body .form-horizontal .select2-selection--single { height: 32px !important; border-radius: 6px !important; border: 1px solid var(--q-border, #e2e8f0) !important; background: var(--q-surface) !important; display: flex !important; align-items: center !important;
}
.content .panel-body .form-horizontal .select2-selection__rendered { line-height: 30px !important; font-size: 12px !important; padding-left: 8px !important; padding-right: 24px !important; color: var(--q-text-1) !important;
}
.content .panel-body .form-horizontal .select2-selection__arrow { height: 30px !important; top: 0 !important;
}

.content .panel-body .table-responsive { margin-top: 10px !important; border-top: 1px solid var(--q-border, #e2e8f0) !important; padding-top: 0 !important;
}
.content .panel-body .box-body { padding: 0 !important;
}

/* ── Tabla: header oscuro enterprise ──
   Aplica a TODAS las tablas dentro de section.content: tanto las de las vistas-lista (.panel-body .table)
   como las de las vistas-new (table.table-hover anidadas en paneles)
   Selector con section.content (0,2,4) para ganar a .table>thead>tr>th (0,1,3) */
section.content .table thead tr th,
section.content .table > thead > tr > th { background: var(--q-theme-dark) !important; color: #f1f5f9 !important; font-size: 10.5px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.07em !important; padding: 9px 10px !important; border: none !important; white-space: nowrap !important; vertical-align: middle !important;
}
section.content .table thead tr th:first-child,
section.content .table > thead > tr > th:first-child { border-radius: 6px 0 0 0 !important;
}
section.content .table thead tr th:last-child,
section.content .table > thead > tr > th:last-child { border-radius: 0 6px 0 0 !important;
}
body.dark-mode section.content .table thead tr th,
body.dark-mode section.content .table > thead > tr > th { background: var(--q-theme-darker) !important; color: #94a3b8 !important; border-bottom: 1px solid var(--q-theme-dark) !important;
}

.content .panel-body .table tbody > tr > td { padding: 6px 10px !important; font-size: 12px !important; vertical-align: middle !important; border-color: var(--q-border, #e2e8f0) !important; line-height: 1.4 !important;
}
.content .panel-body .table tbody > tr:hover > td { background: var(--q-bg, #F8FAFC) !important;
}
body.dark-mode .content .panel-body .table tbody > tr > td { border-color: var(--q-theme-dark) !important;
}
body.dark-mode .content .panel-body .table tbody > tr:hover > td { background: rgba(255,255,255,0.03) !important;
}

.content .panel-body .table tfoot > tr > td { padding: 8px 10px !important; font-size: 12.5px !important; border-top: 2px solid var(--q-border, #e2e8f0) !important; background: var(--q-surface) !important;
}

.content .dataTables_wrapper .dataTables_length label,
.content .dataTables_wrapper .dataTables_filter label { font-size: 12px !important; color: var(--q-text-2) !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; margin-bottom: 6px !important;
}
.content .dataTables_wrapper .dataTables_length select { height: 28px !important; font-size: 12px !important; padding: 2px 6px !important; border-radius: 5px !important; border: 1px solid var(--q-border) !important;
}
.content .dataTables_wrapper .dataTables_filter input { height: 28px !important; font-size: 12px !important; padding: 2px 8px !important; border-radius: 5px !important; border: 1px solid var(--q-border) !important;
}
.content .dataTables_wrapper .dataTables_info { font-size: 12px !important; padding-top: 8px !important; color: var(--q-text-3) !important;
}
.content .dataTables_wrapper .dataTables_paginate { padding-top: 6px !important;
}

.content > .row { margin-left: 0 !important; margin-right: 0 !important;
}
.content > .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important;
}

/* ================================================================
   RESPONSIVE INTELIGENTE
   ── sidebar expandido (≤1350px) / sidebar colapsado (≥1200px)
   ── tablet (≤991px) / mobile (≤575px)
================================================================ */

body:not(.sidebar-collapse):not(.layout-topnav)
  .content .panel-body .form-horizontal .form-group > .col-md-2 { min-width: 110px !important; max-width: 145px !important;
}

body.layout-topnav .content .panel-body .form-horizontal .form-group > .col-md-2 { min-width: 128px !important; max-width: 170px !important;
}
body.layout-topnav .content .panel-body .form-horizontal .form-group > .col-md-4 { max-width: 300px !important;
}

@media (max-width: 991px) { .content .panel-body .form-horizontal .form-group > [class*="col-"] { flex: 1 1 calc(50% - 10px) !important; max-width: calc(50% - 10px) !important; min-width: calc(50% - 10px) !important; }
  .content .panel-body .form-horizontal .form-group > [class*="col-"][style*="padding-top"] { flex: 1 1 100% !important; max-width: 100% !important; justify-content: flex-end !important; }
}

@media (max-width: 575px) { .content .panel-body .form-horizontal .form-group > [class*="col-"] { flex: 1 1 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .content .panel .panel-body { padding: 8px 10px !important; }
}

/* ================================================================
   §15  BARRA ÚNICA UNIFICADA  (body.layout-topnav)
   ────────────────────────────────────────────────────────────────
   ESTRATEGIA (v2 — corregida): • main-header permanece con su fondo azul corporativo natural
     (skin-peru.css ya lo colorea con --topbar-bg — sin luchar).
   • q2-topnav sube a z:1040 (SOBRE main-header) con fondo
     TRANSPARENTE y pointer-events:none en zonas vacías.
   • q2-topnav-menu restaura pointer-events:all → items clickables.
   • Padding izq (52px) y der (270px) liberan el espacio del
     toggle-button (izq) y los iconos bell/cog/dark/user (der).
   Resultado visual: UNA sola barra azul de 56px con: [≡toggle] [VENTAS▾ COMPRAS▾ CAJA▾ ...] [🔔][⚙️][🌙][A▾]
================================================================ */

body.layout-topnav { --q-topbar-h: 56px; --q-unified-h: 56px;
}

/* ── 1. MAIN-HEADER: ajustar solo altura y z-index.
        El color azul lo pone skin-peru.css con --topbar-bg — no tocar. ── */
body.layout-topnav .main-header { height: var(--q-unified-h) !important; min-height: var(--q-unified-h) !important; z-index: 1033 !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
}
body.layout-topnav .main-header .logo { display: none !important;
}
body.layout-topnav .main-header .navbar { height: var(--q-unified-h) !important; min-height: var(--q-unified-h) !important; margin-left: 0 !important; padding: 0 4px !important;
}
body.layout-topnav .main-header .navbar-greeting-wrap { display: none !important;
}
body.layout-topnav .main-header .navbar > div[style*="flex:1"] { flex: 1 1 auto !important;
}

/* ── 2. Q2-TOPNAV: SOBRE main-header, fondo transparente, se ve el azul de main-header a través de él ── */
body.layout-topnav .q2-topnav { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; height: var(--q-unified-h) !important; z-index: 1040 !important; /* SOBRE main-header (1033) */
  background: transparent !important; box-shadow: none !important; border-bottom: none !important; overflow: visible !important; /* pointer-events:none — zona de relleno no captura clicks
     (los clicks en los márgenes pasan a main-header buttons) */
  pointer-events: none !important;
}

/* ── 3. INNER PADDING: dejar libre el toggle (izq ~52px)
        y los iconos bell+cog+dark+user (der ~270px) ── */
body.layout-topnav .q2-topnav-inner { height: var(--q-unified-h) !important; padding-left: 52px !important; padding-right: 270px !important; overflow: visible !important;
}
body.layout-topnav .q2-topnav-menu { height: var(--q-unified-h) !important; overflow: visible !important; pointer-events: all !important;
}
body.layout-topnav .q2-tn-item { pointer-events: all !important;
}
body.layout-topnav .q2-tn-link { height: var(--q-unified-h) !important; line-height: var(--q-unified-h) !important; font-size: 11px !important; font-weight: 500 !important; padding: 0 8px !important; letter-spacing: 0 !important; border-bottom-width: 3px !important; color: rgba(255,255,255,0.90) !important;
}
body.layout-topnav .q2-tn-link:hover,
body.layout-topnav .q2-tn-link:focus { background: rgba(255,255,255,0.12) !important; color: #fff !important;
}
body.layout-topnav .q2-tn-link .q2-tn-arrow { opacity: 0.65;
}
body.layout-topnav .q2-tn-dropdown { top: var(--q-unified-h) !important; z-index: 2000 !important; pointer-events: all !important;
}
/* ── FIX (bug navbar): la campana no recibía el clic en layout-topnav ─────────────────────────
   Causa raíz: .main-header es fixed+z-index:1033 → crea stacking context; los iconos
   (.navbar-custom-menu z1045) quedan atrapados por debajo de .q2-topnav (z1040), y el UL
   .q2-topnav-menu (pointer-events:all) extiende su caja VACÍA sobre la campana e intercepta el
   clic (elementFromPoint = UL.q2-topnav-menu). Corrección mínima: SOLO en escritorio (≥992px,
   donde el menú es inline) el UL deja pasar el clic en su zona vacía; los ítems .q2-tn-item ya
   tienen pointer-events:all y siguen capturando. NO afecta al menú móvil (≤991px, panel
   hamburguesa) ni al modo sidebar ni a ningún otro layout. */
@media (min-width: 992px){
  body.layout-topnav .q2-topnav-menu { pointer-events: none !important; }
}

/* ── 5. OFFSET DE CONTENIDO: solo 56px (UNA barra) ──
   PROBLEMA A: §5.3 pone margin-top:var(--q-topbar-h) en .content-wrapper
               + wrapper padding-top:56px = 112px doble offset → resetear a 0.
   PROBLEMA B: al quitar sidebar-collapse, §5.3 aplica margin-left:230px
               con spec (0,3,0)=30 que gana a §13 (0,2,0)=20.
   SOLUCIÓN: body.skin-peru.layout-topnav → spec (0,3,1)=31 → gana ambas. ── */
body.layout-topnav .wrapper { padding-top: var(--q-unified-h) !important;
}
body.skin-peru.layout-topnav .content-wrapper,
body.skin-peru.layout-topnav .main-footer { margin-top: 0 !important; /* anula el margin-top:56px de §5.3 */
  margin-left: 0 !important; /* anula el margin-left:230px de §5.3 */
  padding-left: 0 !important;
}
body.skin-peru.sidebar-mini.sidebar-collapse.layout-topnav .content-wrapper,
body.skin-peru.sidebar-mini.sidebar-collapse.layout-topnav .main-footer { margin-left: 0 !important;
}

/* ── 6. ICONOS TOPBAR → ya blancos via skin-peru.
        Solo refuerzo por si acaso. ── */
body.layout-topnav .main-header .topbar-icon-btn { color: rgba(255,255,255,0.88) !important;
}
body.layout-topnav .main-header .topbar-icon-btn i,
body.layout-topnav .main-header .topbar-icon-btn .fa { color: rgba(255,255,255,0.88) !important;
}
body.layout-topnav .main-header .topbar-icon-btn:hover { background: rgba(255,255,255,0.14) !important; color: #fff !important;
}
body.layout-topnav .main-header .topbar-icon-btn:hover i,
body.layout-topnav .main-header .topbar-icon-btn:hover .fa { color: #fff !important;
}

body.layout-topnav #q2-layout-toggle { color: rgba(255,255,255,0.88) !important; background: rgba(255,255,255,0.08) !important; border-radius: 8px !important;
}
body.layout-topnav #q2-layout-toggle:hover { background: rgba(255,255,255,0.18) !important; color: #fff !important;
}
body.layout-topnav #q2-layout-toggle i { color: inherit !important; font-size: 15px !important;
}

body.layout-topnav .topbar-user-btn,
body.layout-topnav .topbar-user-btn:focus { color: rgba(255,255,255,0.88) !important;
}
body.layout-topnav .topbar-user-btn:hover { background: rgba(255,255,255,0.12) !important; color: #fff !important;
}

/* ── FIX DROPDOWN ALERTAS / TOPNAV ─────────────────────────────────────
   PROBLEMA: main-header crea stacking context en z-index:1033 (root).
             q2-topnav está en z-index:1040 (root). Los dropdowns dentro
             de main-header (z-index:1050 local) quedan BAJO q2-topnav
             en el root context (1033 < 1040), por lo que aunque se ven,
             los items NO se pueden clickear.
   SOLUCIÓN: .navbar-custom-menu pasa a position:fixed con z-index:1045
             propio — escapa el stacking context de main-header y queda
             directamente en el root a z-index 1045 > q2-topnav 1040.
             Sus dropdowns (z-index:1050) quedan dentro del context 1045,
             que supera a q2-topnav → plenamente clickeables.
─────────────────────────────────────────────────────────────────────── */
body.layout-topnav .main-header .navbar-custom-menu {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  height: var(--q-unified-h) !important;
  z-index: 1045 !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  padding-right: 6px !important;
  pointer-events: auto !important;
}
body.layout-topnav .main-header .navbar-custom-menu > ul,
body.layout-topnav .main-header .navbar-custom-menu > ul > li,
body.layout-topnav .main-header .navbar-custom-menu * {
  pointer-events: auto !important;
}
body.layout-topnav .main-header .navbar-custom-menu .topbar-dropdown-menu,
body.layout-topnav .main-header .navbar-custom-menu .dropdown-menu {
  z-index: 1050 !important;
}
body.layout-topnav .topbar-avatar { background: rgba(255,255,255,0.20) !important; color: #fff !important; font-weight: 700 !important; border: 1.5px solid rgba(255,255,255,0.30) !important;
}
body.layout-topnav .topbar-user-name { color: rgba(255,255,255,0.92) !important; font-size: 11.5px !important;
}
body.layout-topnav .topbar-user-role { color: rgba(255,255,255,0.55) !important; font-size: 10px !important;
}

body.layout-topnav .topbar-notif-badge { border-color: var(--q-topnav-bg, #1E3A5F) !important;
}

body.dark-mode.layout-topnav .q2-topnav {
}
body.dark-mode.layout-topnav .topbar-notif-badge { border-color: #0a1628 !important;
}

/* ── CRÍTICO: Override §4 que pone background:white en navbar ──
   §4 usa .skin-peru .main-header .navbar.navbar-static-top (spec 0,3,0 = 30)
   Necesitamos spec superior para ganar: body.skin-peru.layout-topnav = (0,4,1) = 41 ── */
body.skin-peru.layout-topnav .main-header .navbar,
body.skin-peru.layout-topnav .main-header .navbar.navbar-static-top { background: var(--q-topnav-bg, #1E3A5F) !important; box-shadow: none !important; border: none !important;
}
body.skin-peru.layout-topnav .main-header { border-bottom: none !important; box-shadow: 0 2px 16px rgba(0,0,0,0.22) !important;
}

/* ── Override iconos oscuros de §4 (spec 0,4,0=40) → blancos ──
   §4 usa .skin-peru .main-header .navbar .nav > li > a.topbar-icon-btn (spec=40)
   Usamos spec (0,5,1)=51 para ganar ── */
body.skin-peru.layout-topnav .main-header .navbar .nav > li > a.topbar-icon-btn,
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .nav > li > a.topbar-icon-btn,
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn { color: rgba(255,255,255,0.88) !important; background: transparent !important;
}
body.skin-peru.layout-topnav .main-header .navbar .nav > li > a.topbar-icon-btn:hover,
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn:hover { background: rgba(255,255,255,0.14) !important; color: #fff !important;
}
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn i,
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn .fa,
body.skin-peru.layout-topnav .main-header .navbar .nav > li > a.topbar-icon-btn i,
body.skin-peru.layout-topnav .main-header .navbar .nav > li > a.topbar-icon-btn .fa { color: rgba(255,255,255,0.88) !important;
}
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn:hover i,
body.skin-peru.layout-topnav .main-header .navbar-custom-menu .topbar-icon-btn:hover .fa { color: #fff !important;
}

/* ── Layout toggle: también blanco con alta especificidad ── */
body.skin-peru.layout-topnav .main-header .navbar #q2-layout-toggle,
body.skin-peru.layout-topnav .main-header #q2-layout-toggle { color: rgba(255,255,255,0.88) !important; background: rgba(255,255,255,0.08) !important;
}

/* ── Layout toggle blanco (hover) — spec (0,4,1)=41 ── */
body.skin-peru.layout-topnav .main-header #q2-layout-toggle:hover { background: rgba(255,255,255,0.18) !important; color: #fff !important;
}

body.skin-peru.layout-topnav .main-header .navbar .sidebar-toggle { display: none !important;
}

body.skin-peru.layout-topnav .main-header .navbar .user-menu > a.topbar-user-btn { color: rgba(255,255,255,0.88) !important;
}
body.skin-peru.layout-topnav .main-header .navbar .user-menu > a.topbar-user-btn:hover { background: rgba(255,255,255,0.12) !important; color: #fff !important;
}

/* ════════════════════════════════════════════════════════════════
   §15  OCULTAR NOMBRE DE USUARIO — UNA SOLA LÍNEA
   Solo mostrar el avatar (inicial) en topnav para liberar espacio.
   "ADMINISTRADOR SISTEMA / ADMINISTRADOR GENERAL" → oculto.
   El padding-right se reduce de 270px → 185px (sin texto de usuario).
════════════════════════════════════════════════════════════════ */
body.layout-topnav .topbar-user-info,
body.layout-topnav .topbar-user-name,
body.layout-topnav .topbar-user-role { display: none !important;
}
body.layout-topnav .topbar-avatar { width: 32px !important; height: 32px !important; font-size: 13px !important; font-weight: 700 !important; border-radius: 8px !important; background: rgba(255,255,255,0.22) !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,0.35) !important; flex-shrink: 0 !important;
}
body.layout-topnav .q2-topnav-inner { padding-right: 182px !important; /* override del valor anterior 270px */
}

/* ════════════════════════════════════════════════════════════════
   §15  RESPONSIVE
════════════════════════════════════════════════════════════════ */
@media (max-width: 1280px) { body.layout-topnav .q2-topnav-inner { padding-left: 48px !important; padding-right: 178px !important; }
  body.layout-topnav .q2-tn-link { font-size: 10.5px !important; padding: 0 6px !important; }
}

@media (max-width: 1100px) { body.layout-topnav .q2-tn-link { font-size: 10px !important; padding: 0 5px !important; letter-spacing: -0.02em !important; }
}

/* §15 RESPONSIVE ≤991px */
@media (max-width: 991px) {
  body.layout-topnav .q2-topnav-inner {
    padding-left: 48px !important;
    padding-right: 170px !important;
  }
  body.layout-topnav .q2-topnav-menu {
    position: absolute !important;
    top: var(--q-unified-h) !important;
    left: 0 !important; right: 0 !important;
    flex-direction: column !important;
    background: var(--q-topnav-bg, #1E3A5F) !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.28) !important;
    display: none !important;
    pointer-events: all !important;
    z-index: 2100 !important;
    max-height: calc(100vh - var(--q-unified-h)) !important;
    overflow-y: auto !important;
  }
  body.layout-topnav .q2-topnav-menu.q2-topnav-open { display: flex !important; }
  body.layout-topnav .q2-tn-item { width: 100% !important; }
  body.layout-topnav .q2-tn-link {
    width: 100% !important;
    height: 44px !important;
    line-height: 44px !important;
    font-size: 12px !important;
    padding: 0 18px !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    border-left: none !important;
  }
  body.layout-topnav .q2-topnav-toggle {
    display: flex !important;
    pointer-events: all !important;
  }
}

@media (max-width: 767px) {
  body.layout-topnav .q2-topnav-inner {
    padding-left: 48px !important;
    padding-right: 130px !important;
  }
}

/* §16 — FILTER TOOLBAR: display:contents */

.content .panel-body .form-horizontal {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 6px 10px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.content .panel-body .form-horizontal .form-group,
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > .btn:not(.btn-xs)),
.panel-body .form-horizontal .form-group:has(> [class*="col-"] > a.btn:not(.btn-xs)) {
  display: contents !important;
}

.content .panel-body .form-horizontal .form-group > [class*="col-"] {
  float: none !important;
  flex: 0 0 auto !important;
  width: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-2,
.content .panel-body .form-horizontal .form-group > .col-sm-12.col-md-2 {
  min-width: 118px !important;
  max-width: 155px !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-3 {
  min-width: 145px !important;
  max-width: 195px !important;
}
.content .panel-body .form-horizontal .form-group > .col-md-4,
.content .panel-body .form-horizontal .form-group > .col-sm-12.col-md-4 {
  flex: 1 1 165px !important;
  min-width: 165px !important;
  max-width: 270px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
}

.content .panel-body .form-horizontal .form-group > [class*="col-"][style*="padding-top"],
.content .panel-body .form-horizontal .form-group > [class*="col-"]:has(> .btn:not(.btn-xs)),
.content .panel-body .form-horizontal .form-group > [class*="col-"]:has(> a.btn:not(.btn-xs)) {
  margin-left: auto !important;
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end !important;
  gap: 7px !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

#btnNuevo,
#modalagregar {
  width: auto !important;
  padding: 0 14px 0 10px !important;
  min-width: 76px !important;
  gap: 5px !important;
}
#btnExportar {
  width: auto !important;
  padding: 0 16px !important;
  min-width: 95px !important;
  white-space: nowrap !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  gap: 5px !important;
}

/* ── Botones de acción de formulario (Registrar / Actualizar / Cancelar)
   Se ubican en col-md-12 en las vistas new*.
   Deben mostrar texto, no ser íconos circulares de 42px.             */
.content .panel-body .col-md-12 > button:not(.btn-xs):not([data-toggle]),
.content .panel-body .col-sm-12.col-md-12 > button:not(.btn-xs):not([data-toggle]) {
  width: auto !important;
  height: 38px !important;
  padding: 0 24px !important;
  min-width: 110px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  gap: 7px !important;
  letter-spacing: 0.02em !important;
}
#btnNuevo:not(.q-btn)::after,
#modalagregar:not(.q-btn)::after {
  content: "Nuevo";
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  color: #fff !important;
  white-space: nowrap !important;
}

@media (max-width: 991px) {
  .content .panel-body .form-horizontal { flex-wrap: wrap !important; }
  .content .panel-body .form-horizontal .form-group > [class*="col-"][style*="padding-top"],
  .content .panel-body .form-horizontal .form-group > [class*="col-"]:has(> .btn:not(.btn-xs)),
  .content .panel-body .form-horizontal .form-group > [class*="col-"]:has(> a.btn:not(.btn-xs)) {
    flex: 1 1 100% !important;
    margin-left: 0 !important;
    justify-content: flex-end !important;
  }
}

@media (max-width: 575px) {
  .content .panel-body .form-horizontal .form-group > [class*="col-"] {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

.filter-row-break,
.ocs-row-break {
  flex-basis: 100% !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* §17 — MODALES */
.modal-backdrop { z-index: 10000 !important; }
.modal { z-index: 10050 !important; pointer-events: auto !important; }
.modal-dialog { pointer-events: auto !important; }
.modal-content { pointer-events: auto !important; position: relative !important; }
.modal-header,
.modal-body,
.modal-footer { pointer-events: auto !important; position: relative !important; }
.modal input,
.modal select,
.modal textarea,
.modal button,
.modal a { pointer-events: auto !important; }
.modal .select2-container--open .select2-dropdown,
.select2-dropdown { z-index: 10100 !important; }
.ui-datepicker { z-index: 10100 !important; }
.swal2-container { z-index: 10200 !important; }
.blockUI.blockOverlay,
.blockUI.blockMsg { z-index: 10300 !important; }
