/*
 * Tema visual del sistema (menú lateral, barra superior y fondo).
 * Mismos colores y formas que las pantallas de ventas (pos-estilos).
 * Solo estilos: no cambia ningún comportamiento de AdminLTE.
 */

:root {
    --sb-primario: #2563eb;
    --sb-primario-suave: #eff4ff;
    --sb-texto: #1f2937;
    --sb-texto-suave: #6b7280;
    --sb-icono: #94a3b8;
    --sb-borde: #e5e7eb;
    --sb-fondo: #f5f7fb;
    --sb-hover: #f1f5f9;
}

/* ---------- Fondo general ---------- */
.content-wrapper {
    background: var(--sb-fondo);
}

/* ---------- Barra superior ---------- */
.main-header.navbar {
    background: #fff;
    border-bottom: 1px solid var(--sb-borde) !important;
    box-shadow: none;
}

.main-header .navbar-nav > .nav-item > .nav-link {
    color: var(--sb-texto-suave);
    border-radius: 8px;
}

.main-header .navbar-nav > .nav-item > .nav-link:hover {
    color: var(--sb-primario);
    background: var(--sb-hover);
}

/* ---------- Menú lateral (azul noche con degradado) ---------- */
.main-sidebar {
    background: linear-gradient(180deg, #0f172a 0%, #172554 55%, #1e3a8a 100%) !important;
    border-right: 0;
    box-shadow: 4px 0 24px rgba(15, 23, 42, .12) !important;
}

/* Logo / nombre */
.main-sidebar .brand-link {
    height: calc(3.5rem + 1px);
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    color: #f8fafc !important;
    background: transparent !important;
}

.main-sidebar .brand-link:hover {
    color: #fff !important;
}

.main-sidebar .brand-link .brand-image {
    box-shadow: 0 0 0 2px rgba(147, 197, 253, .35) !important;
    margin-top: 0;
    max-height: 32px;
}

.main-sidebar .brand-link .brand-text {
    font-weight: 400;
    letter-spacing: .02em;
}

.main-sidebar .brand-link .brand-text b {
    color: #93c5fd;
    font-weight: 800;
}

/* Bloque de usuario (si está activo) */
.main-sidebar .user-panel {
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

.main-sidebar .user-panel a {
    color: #e2e8f0 !important;
}

/* Lista */
.main-sidebar .sidebar {
    padding-top: .5rem;
}

.main-sidebar .nav-sidebar .nav-item {
    margin-bottom: 3px;
}

/* Encabezados de sección */
.main-sidebar .nav-sidebar .nav-header {
    padding: 1rem .8rem .35rem;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(147, 197, 253, .6) !important;
    background: transparent !important;
}

.main-sidebar .nav-sidebar > .nav-header:first-child {
    padding-top: .35rem;
}

/* Opciones */
.main-sidebar .nav-sidebar .nav-link {
    color: #cbd5e1 !important;
    background: transparent !important;
    border-radius: 10px;
    padding: .5rem .8rem;
    font-size: .9rem;
    font-weight: 500;
    box-shadow: none !important;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.main-sidebar .nav-sidebar .nav-link .nav-icon {
    color: rgba(147, 197, 253, .75);
    font-size: .95rem;
    transition: color .18s ease;
}

.main-sidebar .nav-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, .07) !important;
    color: #fff !important;
    transform: translateX(2px);
}

.main-sidebar .nav-sidebar .nav-link:hover .nav-icon {
    color: #bfdbfe;
}

/* Opción activa: píldora azul con brillo suave */
.main-sidebar .nav-sidebar .nav-link.active {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%) !important;
    color: #fff !important;
    font-weight: 600;
    box-shadow: 0 6px 16px -4px rgba(59, 130, 246, .65) !important;
    transform: none;
}

.main-sidebar .nav-sidebar .nav-link.active .nav-icon {
    color: #fff;
}

/* Grupo abierto (submenú) */
.main-sidebar .nav-sidebar .menu-open > .nav-link:not(.active) {
    background: rgba(255, 255, 255, .06) !important;
    color: #fff !important;
}

/* Submenús */
.main-sidebar .nav-treeview {
    margin: 3px 0 4px .9rem;
    padding-left: .45rem;
    border-left: 1px solid rgba(147, 197, 253, .18);
}

.main-sidebar .nav-treeview .nav-link {
    font-size: .84rem;
    padding: .4rem .7rem;
}

.main-sidebar .nav-treeview .nav-link.active {
    background: rgba(59, 130, 246, .22) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.main-sidebar .nav-sidebar .nav-link > p > .right {
    color: rgba(147, 197, 253, .6);
}

/* Buscador del menú (si está activo) */
.main-sidebar .form-control-sidebar,
.main-sidebar .btn-sidebar {
    background: rgba(255, 255, 255, .07) !important;
    border: 1px solid rgba(255, 255, 255, .1) !important;
    color: #e2e8f0 !important;
}

/* Menú colapsado: solo iconos */
.sidebar-mini.sidebar-collapse .main-sidebar:not(:hover) .nav-sidebar .nav-header {
    display: none;
}

.sidebar-mini.sidebar-collapse .main-sidebar:not(:hover) .nav-sidebar .nav-link:hover {
    transform: none;
}

/* Barra de desplazamiento del menú */
.main-sidebar .os-scrollbar-handle {
    background: rgba(147, 197, 253, .3) !important;
}

/* ---------- Accesibilidad global ---------- */

/* Foco visible para teclado en todo el sistema (WCAG 2.4.7) */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.pos-icon-btn:focus-visible,
.page-link:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #2563eb !important;
    outline-offset: 2px;
}

/* Campos: anillo de foco con contraste suficiente sobre blanco */
.form-control:focus,
.custom-select:focus,
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .3) !important;
    outline: 0;
}

/* Enlace "Saltar al contenido" (visible solo con teclado) */
.skip-link {
    position: absolute;
    left: .5rem;
    top: -3rem;
    z-index: 2000;
    padding: .5rem 1rem;
    border-radius: 8px;
    background: #2563eb;
    color: #fff !important;
    font-weight: 700;
    transition: top .15s ease;
}

.skip-link:focus {
    top: .5rem;
}

/* Respetar a quien pide menos movimiento */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* El contenedor principal recibe foco desde el skip link: sin recuadro */
#contenido-principal:focus {
    outline: none !important;
}
