/* ==========================================================================
   Interfaz estilo Bitnetics ERP sobre el tema Bootstrap 5 existente.
   - Tipografía Plus Jakarta Sans, paleta azul (primary-600 #2563EB), cards
     con borde fino, tablas limpias, menú lateral claro, modo oscuro slate.
   - Se carga DESPUÉS de theme/css/app.min.css, así que sólo redefine variables
     y componentes; no hace falta tocar las vistas.
   ========================================================================== */

/* ---------- Variables compartidas ---------- */
html[data-bs-theme] {
    --bs-font-sans-serif: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: .875rem;
    --bs-border-radius: .5rem;
    --bs-border-radius-sm: .375rem;
    --bs-border-radius-lg: .75rem;
    --bs-link-decoration: none;

    --bs-primary: #2563EB;
    --bs-primary-rgb: 37, 99, 235;
    --bs-link-color: #2563EB;
    --bs-link-color-rgb: 37, 99, 235;
    --bs-link-hover-color: #1D4ED8;
    --bs-link-hover-color-rgb: 29, 78, 216;
    --bs-blue: #2563EB;
    --bs-blue-rgb: 37, 99, 235;
    --bs-focus-ring-color: rgba(59, 130, 246, .25);
    --bs-success: #16A34A;
    --bs-success-rgb: 22, 163, 74;
    --bs-danger: #DC2626;
    --bs-danger-rgb: 220, 38, 38;
    --bs-warning: #F59E0B;
    --bs-warning-rgb: 245, 158, 11;
    --bs-info: #0EA5E9;
    --bs-info-rgb: 14, 165, 233;

    --bs-sidenav-width: 256px;
    --bs-topbar-height: 64px;
    --bs-menu-item-font-size: 14px;
    --bs-menu-item-padding-x: 12px;
    --bs-menu-item-padding-y: 10px;
    --bs-menu-link-item-gap: 12px;
}

/* ---------- Claro ---------- */
html[data-bs-theme=light][data-menu-color][data-topbar-color] {
    --bs-body-bg: #F8FAFC;
    --bs-body-bg-rgb: 248, 250, 252;
    --bs-body-color: #475569;
    --bs-body-color-rgb: 71, 85, 105;
    --bs-heading-color: #1E293B;
    --bs-secondary-color: #64748B;
    --bs-secondary-bg: #FFFFFF;
    --bs-tertiary-bg: #F1F5F9;
    --bs-border-color: #E2E8F0;
    --bs-border-color-translucent: #E2E8F0;
    --bs-box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);
    --bs-primary-bg-subtle: #EFF6FF;
    --bs-primary-border-subtle: #BFDBFE;
    --bs-primary-text-emphasis: #1D4ED8;
    --bs-success-bg-subtle: #DCFCE7;
    --bs-success-text-emphasis: #15803D;
    --bs-danger-bg-subtle: #FEE2E2;
    --bs-danger-text-emphasis: #B91C1C;
    --bs-warning-bg-subtle: #FEF3C7;
    --bs-warning-text-emphasis: #B45309;
    --bs-info-bg-subtle: #E0F2FE;
    --bs-info-text-emphasis: #0369A1;

    --bs-menu-bg: #FFFFFF;
    --bs-menu-item-color: #475569;
    --bs-menu-item-hover-color: #1E293B;
    --bs-menu-item-hover-bg: #F8FAFC;
    --bs-menu-item-active-color: #2563EB;
    --bs-menu-item-active-bg: #EFF6FF;
    --bs-topbar-bg: rgba(255, 255, 255, .85);
    --bs-topbar-item-color: #475569;
    --bs-topbar-item-hover-color: #2563EB;
    --bs-topbar-search-bg: #F8FAFC;
}

/* ---------- Oscuro (slate, igual que el ERP) ---------- */
html[data-bs-theme=dark][data-menu-color][data-topbar-color] {
    --bs-body-bg: #020617;
    --bs-body-bg-rgb: 2, 6, 23;
    --bs-body-color: #CBD5E1;
    --bs-body-color-rgb: 203, 213, 225;
    --bs-heading-color: #F1F5F9;
    --bs-secondary-color: #94A3B8;
    --bs-secondary-bg: #0F172A;
    --bs-tertiary-bg: #1E293B;
    --bs-border-color: #1E293B;
    --bs-border-color-translucent: #1E293B;
    --bs-box-shadow: none;
    --bs-primary: #3B82F6;
    --bs-primary-rgb: 59, 130, 246;
    --bs-link-color: #60A5FA;
    --bs-link-color-rgb: 96, 165, 250;
    --bs-link-hover-color: #93C5FD;
    --bs-primary-bg-subtle: rgba(59, 130, 246, .12);
    --bs-primary-border-subtle: rgba(59, 130, 246, .35);
    --bs-primary-text-emphasis: #93C5FD;

    --bs-menu-bg: #0F172A;
    --bs-menu-item-color: #94A3B8;
    --bs-menu-item-hover-color: #FFFFFF;
    --bs-menu-item-hover-bg: #1E293B;
    --bs-menu-item-active-color: #60A5FA;
    --bs-menu-item-active-bg: rgba(59, 130, 246, .12);
    --bs-topbar-bg: rgba(15, 23, 42, .85);
    --bs-topbar-item-color: #94A3B8;
    --bs-topbar-item-hover-color: #FFFFFF;
    --bs-topbar-search-bg: #1E293B;
}

body {
    font-family: var(--bs-body-font-family);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 700; color: var(--bs-heading-color); }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #F1F5F9; }
::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94A3B8; }
html[data-bs-theme=dark] ::-webkit-scrollbar-track { background: #0F172A; }
html[data-bs-theme=dark] ::-webkit-scrollbar-thumb { background: #334155; }

/* ==========================================================================
   MENÚ LATERAL
   ========================================================================== */
.sidenav-menu {
    display: flex;
    flex-direction: column;
    background: var(--bs-menu-bg);
    border-right: 1px solid var(--bs-border-color);
    box-shadow: none;
}
.sidenav-menu > .logo { display: none !important; }

.erp-brand {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1.5rem 1.25rem 1.25rem;
    min-width: 0;
    flex-shrink: 0;
    color: var(--bs-heading-color);
}
.erp-brand:hover { color: var(--bs-heading-color); }
.erp-brand .erp-brand-logo {
    width: 36px; height: 36px; border-radius: .5rem; object-fit: cover; flex-shrink: 0;
    background: #2563EB; display: flex; align-items: center; justify-content: center; color: #fff;
}
.erp-brand .erp-brand-name {
    font-size: 1rem; font-weight: 700; line-height: 1.2; overflow: hidden; text-overflow: ellipsis;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal;
}

.sidenav-menu > [data-simplebar] { flex: 1 1 auto; min-height: 0; padding: 0 .75rem; }
.side-nav { padding-bottom: 1rem; }
.side-nav .side-nav-title { display: none; }
.side-nav .side-nav-item { margin-bottom: 2px; }

.side-nav .side-nav-link {
    border-radius: .5rem;
    padding: .625rem .75rem;
    font-size: .875rem;
    font-weight: 500;
    color: var(--bs-menu-item-color);
}
.side-nav .side-nav-link:hover,
.side-nav .side-nav-link:focus {
    background: var(--bs-menu-item-hover-bg);
    color: var(--bs-menu-item-hover-color);
}
.side-nav .side-nav-link.active,
.side-nav > .side-nav-item.active > a.side-nav-link,
.side-nav .side-nav-item.active > .side-nav-link,
.side-nav .side-nav-item.menuitem-active > .side-nav-link {
    background: var(--bs-menu-item-active-bg);
    color: var(--bs-menu-item-active-color);
    font-weight: 600;
}
.side-nav .menu-icon { width: 20px; text-align: center; font-size: 15px; }
.side-nav .menu-icon i { font-size: inherit; }
.side-nav .menu-arrow { font-size: .75rem; opacity: .7; }

.side-nav .sub-menu {
    margin: 2px 0 4px 1.55rem;
    padding-left: .5rem;
    border-left: 1px solid var(--bs-border-color);
}
.side-nav .sub-menu .side-nav-item .side-nav-link {
    padding: .5rem .75rem;
    font-size: .85rem;
    font-weight: 500;
}

/* Tarjeta de usuario al pie del menú */
.erp-user {
    position: relative;
    flex-shrink: 0;
    margin: .5rem .75rem 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
}
.erp-user-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border: 0;
    border-radius: .5rem;
    background: transparent;
    text-align: left;
    color: inherit;
    transition: background-color .2s;
}
.erp-user-btn:hover { background: var(--bs-menu-item-hover-bg); }
.erp-avatar {
    width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: #DBEAFE; color: #1D4ED8; font-size: .8rem; font-weight: 700;
}
html[data-bs-theme=dark] .erp-avatar { background: rgba(59, 130, 246, .2); color: #93C5FD; }
.erp-user-info { min-width: 0; flex: 1; line-height: 1.25; }
.erp-user-info .n { font-size: .85rem; font-weight: 600; color: var(--bs-heading-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.erp-user-info .e { font-size: .72rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.erp-user .dropdown-menu { width: 100%; min-width: 0; }

/* Menú condensado / hover (opciones del tema): ocultamos texto del usuario */
html[data-sidenav-size=condensed] .erp-brand-name,
html[data-sidenav-size=condensed] .erp-user-info,
html[data-sidenav-size=sm-hover]:not(.sidebar-enable) .erp-brand-name,
html[data-sidenav-size=sm-hover]:not(.sidebar-enable) .erp-user-info { display: none; }

/* ==========================================================================
   BARRA SUPERIOR
   ========================================================================== */
.app-topbar {
    background: var(--bs-topbar-bg);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--bs-border-color);
    min-height: var(--bs-topbar-height);
}
.app-topbar .topbar-menu { min-height: var(--bs-topbar-height); }
.app-topbar .topbar-link { width: 38px; height: 38px; border-radius: .5rem; transition: background-color .2s, color .2s; }
.app-topbar .topbar-link:hover { background: var(--bs-menu-item-hover-bg); color: var(--bs-topbar-item-hover-color); }
.app-topbar .sidenav-toggle-button { color: var(--bs-topbar-item-color); }

.erp-search { position: relative; width: min(420px, 38vw); }
.erp-search .fa-magnifying-glass {
    position: absolute; left: .75rem; top: 50%; transform: translateY(-50%);
    font-size: .75rem; color: var(--bs-secondary-color); pointer-events: none;
}
.erp-search input {
    width: 100%;
    padding: .5rem 1rem .5rem 2.1rem;
    font-size: .85rem;
    color: var(--bs-heading-color);
    background: var(--bs-topbar-search-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
}
.erp-search input::placeholder { color: var(--bs-secondary-color); }
.erp-search input:focus {
    outline: none; border-color: #3B82F6; box-shadow: 0 0 0 3px rgba(59, 130, 246, .2);
}
.erp-search-results {
    display: none; position: absolute; left: 0; right: 0; top: calc(100% + .5rem); z-index: 1100;
    max-height: 20rem; overflow-y: auto; padding: .25rem 0;
    background: var(--bs-secondary-bg); border: 1px solid var(--bs-border-color);
    border-radius: .5rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
}
.erp-search-results.show { display: block; }
.erp-search-results a {
    display: flex; align-items: center; gap: .75rem; padding: .5rem .75rem;
    font-size: .85rem; font-weight: 500; color: var(--bs-body-color);
}
.erp-search-results a i { width: 1rem; text-align: center; color: var(--bs-secondary-color); }
.erp-search-results a small { margin-left: auto; color: var(--bs-secondary-color); font-weight: 400; }
.erp-search-results a.sel { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }
.erp-search-results .vacio { padding: .5rem .75rem; font-size: .85rem; color: var(--bs-secondary-color); }

/* ==========================================================================
   CONTENIDO / ENCABEZADO DE PÁGINA
   ========================================================================== */
.page-content { background: var(--bs-body-bg); }
.page-container { padding-top: .25rem; padding-bottom: 1.5rem; }

.page-title-box.card {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 1.5rem 0 1.25rem;
    margin: 0 !important;
}
.page-title-box h4 { font-size: 1.5rem !important; font-weight: 700 !important; letter-spacing: -.01em; }
.page-title-box .breadcrumb { font-size: .8rem; }
.page-title-box .breadcrumb a { color: var(--bs-secondary-color); }
.page-title-box .breadcrumb a:hover { color: #2563EB; }
.page-title-box .breadcrumb-item.active { color: var(--bs-body-color); font-weight: 500; }

.footer { background: transparent; border-top: 1px solid var(--bs-border-color); color: var(--bs-secondary-color); font-size: .8rem; }

/* ==========================================================================
   CARDS
   ========================================================================== */
.card:not(.page-title-box) {
    background: var(--bs-secondary-bg);
    border: 1px solid #F1F5F9;
    border-radius: .75rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);
}
html[data-bs-theme=dark] .card:not(.page-title-box) { border-color: #1E293B; box-shadow: none; }
.card .card-header {
    background: transparent;
    border-bottom: 1px solid var(--bs-border-color);
    padding: 1rem 1.25rem;
}
.card .card-footer { background: transparent; border-top: 1px solid var(--bs-border-color); }
.card .card-body { padding: 1.25rem; }
.card .header-title { font-size: 1rem; font-weight: 700; color: var(--bs-heading-color); text-transform: none; }
.card .card-subtitle { font-size: .8rem; color: var(--bs-secondary-color); }

/* ==========================================================================
   BOTONES
   ========================================================================== */
.btn {
    --bs-btn-border-radius: .5rem;
    --bs-btn-font-size: .875rem;
    font-weight: 500;
    box-shadow: none !important;
    transition: background-color .2s, border-color .2s, color .2s;
}
.btn.rounded-pill { border-radius: .5rem !important; }
.btn.rounded { border-radius: .5rem !important; }

.btn-primary, .btn-blue, .btn-purple, .btn-outline-purple, .btn-info {
    --bs-btn-color: #fff; --bs-btn-bg: #2563EB; --bs-btn-border-color: #2563EB;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1D4ED8; --bs-btn-hover-border-color: #1D4ED8;
    --bs-btn-active-color: #fff; --bs-btn-active-bg: #1E40AF; --bs-btn-active-border-color: #1E40AF;
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #2563EB; --bs-btn-disabled-border-color: #2563EB;
    color: #fff; background-color: #2563EB; border-color: #2563EB;
}
.btn-primary:hover, .btn-blue:hover, .btn-purple:hover, .btn-outline-purple:hover, .btn-info:hover {
    color: #fff; background-color: #1D4ED8; border-color: #1D4ED8;
}
.btn-success { --bs-btn-bg: #16A34A; --bs-btn-border-color: #16A34A; --bs-btn-hover-bg: #15803D; --bs-btn-hover-border-color: #15803D; --bs-btn-active-bg: #166534; --bs-btn-active-border-color: #166534; --bs-btn-disabled-bg: #16A34A; --bs-btn-disabled-border-color: #16A34A; color: #fff; background-color: #16A34A; border-color: #16A34A; }
.btn-success:hover { background-color: #15803D; border-color: #15803D; color: #fff; }
.btn-danger { --bs-btn-bg: #DC2626; --bs-btn-border-color: #DC2626; --bs-btn-hover-bg: #B91C1C; --bs-btn-hover-border-color: #B91C1C; --bs-btn-active-bg: #991B1B; --bs-btn-active-border-color: #991B1B; --bs-btn-disabled-bg: #DC2626; --bs-btn-disabled-border-color: #DC2626; color: #fff; background-color: #DC2626; border-color: #DC2626; }
.btn-danger:hover { background-color: #B91C1C; border-color: #B91C1C; color: #fff; }
.btn-warning { --bs-btn-bg: #F59E0B; --bs-btn-border-color: #F59E0B; --bs-btn-hover-bg: #D97706; --bs-btn-hover-border-color: #D97706; --bs-btn-active-bg: #B45309; --bs-btn-active-border-color: #B45309; --bs-btn-disabled-bg: #F59E0B; --bs-btn-disabled-border-color: #F59E0B; color: #fff; background-color: #F59E0B; border-color: #F59E0B; }
.btn-warning:hover { background-color: #D97706; border-color: #D97706; color: #fff; }
.btn-secondary, .btn-dark { --bs-btn-bg: #64748B; --bs-btn-border-color: #64748B; --bs-btn-hover-bg: #475569; --bs-btn-hover-border-color: #475569; --bs-btn-active-bg: #334155; --bs-btn-active-border-color: #334155; color: #fff; background-color: #64748B; border-color: #64748B; }
.btn-secondary:hover, .btn-dark:hover { background-color: #475569; border-color: #475569; color: #fff; }

.btn-outline-primary, .btn-outline-secondary, .btn-outline-dark {
    --bs-btn-color: #334155; --bs-btn-border-color: #CBD5E1;
    --bs-btn-hover-color: #1E293B; --bs-btn-hover-bg: #F1F5F9; --bs-btn-hover-border-color: #CBD5E1;
    --bs-btn-active-color: #1E293B; --bs-btn-active-bg: #E2E8F0; --bs-btn-active-border-color: #CBD5E1;
}
.btn-outline-primary { --bs-btn-color: #2563EB; --bs-btn-border-color: #BFDBFE; --bs-btn-hover-color: #1D4ED8; --bs-btn-hover-bg: #EFF6FF; --bs-btn-hover-border-color: #93C5FD; }
.btn-outline-success { --bs-btn-color: #15803D; --bs-btn-border-color: #BBF7D0; --bs-btn-hover-color: #15803D; --bs-btn-hover-bg: #F0FDF4; --bs-btn-hover-border-color: #86EFAC; --bs-btn-active-color: #15803D; --bs-btn-active-bg: #DCFCE7; --bs-btn-active-border-color: #86EFAC; }
.btn-outline-danger { --bs-btn-color: #DC2626; --bs-btn-border-color: #FECACA; --bs-btn-hover-color: #B91C1C; --bs-btn-hover-bg: #FEF2F2; --bs-btn-hover-border-color: #FCA5A5; --bs-btn-active-color: #B91C1C; --bs-btn-active-bg: #FEE2E2; --bs-btn-active-border-color: #FCA5A5; }
.btn-outline-warning { --bs-btn-color: #B45309; --bs-btn-border-color: #FDE68A; --bs-btn-hover-color: #B45309; --bs-btn-hover-bg: #FFFBEB; --bs-btn-hover-border-color: #FCD34D; --bs-btn-active-color: #B45309; --bs-btn-active-bg: #FEF3C7; --bs-btn-active-border-color: #FCD34D; }
html[data-bs-theme=dark] .btn-outline-primary, html[data-bs-theme=dark] .btn-outline-secondary, html[data-bs-theme=dark] .btn-outline-dark { --bs-btn-color: #CBD5E1; --bs-btn-border-color: #334155; --bs-btn-hover-bg: #1E293B; --bs-btn-hover-color: #fff; }

/* Botones de acción dentro de las tablas: más compactos */
table .btn, .dataTable .btn { padding: .3rem .55rem; font-size: .8rem; }

/* ==========================================================================
   FORMULARIOS
   ========================================================================== */
.form-label, label { font-size: .85rem; font-weight: 500; color: var(--bs-heading-color); }
.form-control, .form-select, .input-group-text {
    font-size: .875rem;
    padding: .5rem .75rem;
    color: var(--bs-heading-color);
    background-color: var(--bs-secondary-bg);
    border: 1px solid #CBD5E1;
    border-radius: .5rem;
}
html[data-bs-theme=dark] .form-control,
html[data-bs-theme=dark] .form-select,
html[data-bs-theme=dark] .input-group-text { border-color: #334155; background-color: #1E293B; color: #F1F5F9; }
.form-control::placeholder { color: #94A3B8; }
.form-control:focus, .form-select:focus {
    border-color: #3B82F6;
    box-shadow: 0 0 0 3px rgb(59 130 246 / .2);
    background-color: var(--bs-secondary-bg);
    color: var(--bs-heading-color);
}
html[data-bs-theme=dark] .form-control:focus, html[data-bs-theme=dark] .form-select:focus { background-color: #1E293B; }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: #F1F5F9; }
html[data-bs-theme=dark] .form-control:disabled, html[data-bs-theme=dark] .form-control[readonly] { background-color: #0F172A; }
.form-control.is-invalid, .form-select.is-invalid { border-color: #DC2626; }
.form-control.is-invalid:focus, .form-select.is-invalid:focus { box-shadow: 0 0 0 3px rgb(220 38 38 / .2); }
.form-check-input:checked { background-color: #2563EB; border-color: #2563EB; }
.form-check-input:focus { box-shadow: 0 0 0 3px rgb(59 130 246 / .2); border-color: #3B82F6; }

/* Select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    min-height: 38px; border: 1px solid #CBD5E1; border-radius: .5rem; background-color: var(--bs-secondary-bg);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 36px; padding-left: .75rem; color: var(--bs-heading-color); font-size: .875rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple { border-color: #3B82F6; box-shadow: 0 0 0 3px rgb(59 130 246 / .2); }
.select2-dropdown { border: 1px solid #E2E8F0; border-radius: .5rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1); overflow: hidden; background: var(--bs-secondary-bg); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background-color: #2563EB; color: #fff; }
html[data-bs-theme=dark] .select2-container--default .select2-selection--single,
html[data-bs-theme=dark] .select2-container--default .select2-selection--multiple { background-color: #1E293B; border-color: #334155; }
html[data-bs-theme=dark] .select2-container--default .select2-selection--single .select2-selection__rendered { color: #F1F5F9; }
html[data-bs-theme=dark] .select2-dropdown { background: #1E293B; border-color: #334155; color: #F1F5F9; }

/* ==========================================================================
   TABLAS Y DATATABLES
   ========================================================================== */
.table {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: #F8FAFC;
    --bs-table-striped-bg: #F8FAFC;
    --bs-table-border-color: #F1F5F9;
    color: var(--bs-body-color);
}
html[data-bs-theme=dark] .table { --bs-table-hover-bg: rgb(30 41 59 / .5); --bs-table-striped-bg: rgb(30 41 59 / .35); --bs-table-border-color: #1E293B; }
.table > :not(caption) > * > * { padding: .75rem 1rem; border-bottom-width: 1px; border-color: var(--bs-table-border-color); }
/* ERP: filas separadas sólo por línea horizontal, sin cuadrícula */
.table-bordered > :not(caption) > * { border-width: 0; }
.table-bordered > :not(caption) > * > * { border-width: 0 0 1px; }
.table thead th {
    font-size: .75rem !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748B !important;
    background: #F8FAFC !important;
    border-bottom: 1px solid #E2E8F0 !important;
    white-space: nowrap;
}
html[data-bs-theme=dark] .table thead th { background: rgb(30 41 59 / .5) !important; border-bottom-color: #1E293B !important; color: #94A3B8 !important; }
.table tbody tr { transition: background-color .2s ease; }
.table-hover > tbody > tr:hover > *, table.dataTable tbody tr:hover > * { --bs-table-bg-state: var(--bs-table-hover-bg); background-color: var(--bs-table-hover-bg); }

table.dataTable { font-size: .85rem; margin: 0 !important; border-collapse: collapse !important; width: 100% !important; }
table.dataTable thead th, table.dataTable tbody td { padding: .65rem 1rem !important; vertical-align: middle !important; border-color: var(--bs-table-border-color) !important; }
table.dataTable tbody tr { height: auto; }
table.dataTable tbody td strong { font-weight: 600; color: var(--bs-heading-color); }

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select,
div.dt-container .dt-search input,
div.dt-container .dt-length select {
    height: 36px !important;
    font-size: .85rem !important;
    padding: .25rem .75rem !important;
    border: 1px solid #CBD5E1 !important;
    border-radius: .5rem !important;
    background-color: var(--bs-secondary-bg);
    color: var(--bs-heading-color);
}
.dataTables_wrapper .dataTables_filter input:focus,
div.dt-container .dt-search input:focus { outline: none; border-color: #3B82F6 !important; box-shadow: 0 0 0 3px rgb(59 130 246 / .2); }
.dataTables_wrapper .dataTables_info, div.dt-container .dt-info { font-size: .8rem; color: var(--bs-secondary-color); }
.dataTables_wrapper .dataTables_paginate .page-link, div.dt-container .page-link { font-size: .8rem; border-radius: .5rem; margin: 0 2px; border: 1px solid transparent; color: var(--bs-body-color); }
.page-item.active .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button.current { background-color: #2563EB !important; border-color: #2563EB !important; color: #fff !important; }
.page-link:hover { background: #EFF6FF; color: #1D4ED8; }
.page-item.disabled .page-link { color: #94A3B8; background: transparent; }
.dt-buttons .btn { border-radius: .5rem !important; }
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control::before { color: #2563EB !important; }

/* ==========================================================================
   BADGES, ALERTAS, MODALES, DROPDOWNS
   ========================================================================== */
.badge { font-size: .72rem; font-weight: 600; padding: .35em .75em; border-radius: 9999px !important; }
.badge.bg-success { background-color: #DCFCE7 !important; color: #15803D !important; }
.badge.bg-warning { background-color: #FEF3C7 !important; color: #B45309 !important; }
.badge.bg-danger  { background-color: #FEE2E2 !important; color: #B91C1C !important; }
.badge.bg-info    { background-color: #E0F2FE !important; color: #0369A1 !important; }
.badge.bg-primary, .badge.bg-blue, .badge.bg-blue-gradient { background: #DBEAFE !important; color: #1D4ED8 !important; }
.badge.bg-pink    { background-color: #FCE7F3 !important; color: #BE185D !important; }
.badge.bg-secondary, .badge.bg-dark { background-color: #E2E8F0 !important; color: #475569 !important; }
html[data-bs-theme=dark] .badge.bg-success { background-color: rgba(34, 197, 94, .15) !important; color: #86EFAC !important; }
html[data-bs-theme=dark] .badge.bg-warning { background-color: rgba(245, 158, 11, .15) !important; color: #FCD34D !important; }
html[data-bs-theme=dark] .badge.bg-danger  { background-color: rgba(239, 68, 68, .15) !important; color: #FCA5A5 !important; }
html[data-bs-theme=dark] .badge.bg-info    { background-color: rgba(14, 165, 233, .15) !important; color: #7DD3FC !important; }
html[data-bs-theme=dark] .badge.bg-primary, html[data-bs-theme=dark] .badge.bg-blue, html[data-bs-theme=dark] .badge.bg-blue-gradient { background: rgba(59, 130, 246, .18) !important; color: #93C5FD !important; }
html[data-bs-theme=dark] .badge.bg-secondary, html[data-bs-theme=dark] .badge.bg-dark { background-color: #334155 !important; color: #CBD5E1 !important; }

/* Estados de texto usados en columnas ("Activo"/"Inactivo") */
td strong.text-success, td strong.text-warning, td strong.text-danger { font-weight: 600 !important; }

.alert { border-radius: .5rem; font-size: .875rem; }
.modal-content { border: 1px solid var(--bs-border-color); border-radius: .75rem; box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); background: var(--bs-secondary-bg); }
.modal-header { border-bottom: 1px solid var(--bs-border-color); padding: 1rem 1.25rem; }
.modal-header .modal-title { font-weight: 700; font-size: 1.05rem; }
.modal-footer { border-top: 1px solid var(--bs-border-color); }
.modal-backdrop.show { opacity: .4; }
.dropdown-menu { border: 1px solid var(--bs-border-color); border-radius: .5rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); font-size: .85rem; padding: .25rem; }
.dropdown-item { border-radius: .375rem; padding: .5rem .75rem; font-weight: 500; }
.dropdown-item:hover { background: var(--bs-menu-item-hover-bg); }
.nav-tabs .nav-link.active, .nav-pills .nav-link.active { color: #2563EB; }
.nav-pills .nav-link.active { background: #EFF6FF; }

/* ==========================================================================
   SWEETALERT2 (mismo estilo que el ERP)
   ========================================================================== */
.swal2-popup { font-family: var(--bs-body-font-family); border-radius: .75rem; }
.swal2-popup.swal2-toast { padding: .75rem 1rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); }
html[data-bs-theme=dark] .swal2-popup { background: #1E293B; color: #F1F5F9; }
html[data-bs-theme=dark] .swal2-title, html[data-bs-theme=dark] .swal2-html-container { color: #F1F5F9; }
.swal2-styled.swal2-confirm { background-color: #2563EB !important; border-radius: .5rem; font-weight: 500; }
.swal2-styled.swal2-cancel { background-color: #64748B !important; border-radius: .5rem; font-weight: 500; }
.swal2-styled.swal2-confirm.erp-peligro { background-color: #DC2626 !important; }
.swal2-styled:focus { box-shadow: 0 0 0 3px rgb(59 130 246 / .3) !important; }

/* ==========================================================================
   DASHBOARD
   ========================================================================== */
.erp-stat { display: flex; align-items: center; gap: 1rem; }
.erp-stat-icon {
    width: 48px; height: 48px; border-radius: .75rem; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.25rem; background: #EFF6FF; color: #2563EB;
}
html[data-bs-theme=dark] .erp-stat-icon { background: rgba(59, 130, 246, .15); color: #93C5FD; }
.erp-stat-icon.verde   { background: #DCFCE7; color: #15803D; }
.erp-stat-icon.naranja { background: #FFEDD5; color: #C2410C; }
.erp-stat-icon.violeta { background: #EDE9FE; color: #6D28D9; }
html[data-bs-theme=dark] .erp-stat-icon.verde   { background: rgba(34, 197, 94, .15); color: #86EFAC; }
html[data-bs-theme=dark] .erp-stat-icon.naranja { background: rgba(249, 115, 22, .15); color: #FDBA74; }
html[data-bs-theme=dark] .erp-stat-icon.violeta { background: rgba(139, 92, 246, .15); color: #C4B5FD; }
.erp-stat-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); margin: 0; }
.erp-stat-value { font-size: 1.75rem; font-weight: 700; line-height: 1.1; color: var(--bs-heading-color); margin: .15rem 0; }
.erp-stat-link { font-size: .78rem; font-weight: 600; color: #2563EB; }
.erp-stat-link:hover { color: #1D4ED8; }
.erp-stat-link i { font-size: .65rem; margin-left: .15rem; }

/* ==========================================================================
   LOGIN (estilo guest del ERP)
   ========================================================================== */
body.erp-auth {
    min-height: 100vh;
    font-family: var(--bs-body-font-family);
    background: #1D4ED8;
    color: #1E293B;
}
.erp-auth-bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
    background: linear-gradient(180deg, #1D4ED8 0%, #3B82F6 45%, #93C5FD 72%, #E0F2FE 88%); }
.erp-auth-bg svg { width: 100%; height: 100%; display: block; }
.erp-auth-sun { animation: erp-latido 6s ease-in-out infinite; transform-origin: 1180px 300px; }
@keyframes erp-latido { 0%, 100% { opacity: .75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } }
.erp-auth-cloud { animation: erp-deriva 80s linear infinite alternate; }
.erp-auth-cloud.lenta { animation-duration: 120s; }
@keyframes erp-deriva { from { transform: translateX(-120px); } to { transform: translateX(160px); } }
.erp-truck { animation: erp-camion 28s linear infinite; }
@keyframes erp-camion { from { transform: translateX(-260px); } to { transform: translateX(1900px); } }
.erp-auth-wrap { position: relative; z-index: 10; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2.5rem 1rem; }
.erp-auth-box { width: 100%; max-width: 24rem; }
.erp-auth-head { text-align: center; margin-bottom: 2rem; }
.erp-auth-head .logo {
    width: 64px; height: 64px; border-radius: .9rem; object-fit: cover; margin: 0 auto 1rem; display: block;
    background: #fff; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .2); outline: 2px solid rgb(255 255 255 / .3);
}
.erp-auth-head h1 { font-size: 1.25rem; font-weight: 700; color: #fff; text-shadow: 0 1px 3px rgb(0 0 0 / .25); margin: 0; }
.erp-auth-head p { font-size: .85rem; color: #DBEAFE; margin: .25rem 0 0; text-shadow: 0 1px 3px rgb(0 0 0 / .25); }
.erp-auth-card {
    background: rgb(255 255 255 / .95); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border: 1px solid rgb(255 255 255 / .6); border-radius: .75rem; padding: 2rem;
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / .35);
}
.erp-auth-card label { font-size: .85rem; font-weight: 500; color: #334155; margin-bottom: .35rem; }
.erp-auth-card .form-control { background: #fff; color: #1E293B; border-color: #CBD5E1; }
.erp-auth-card .btn-primary { width: 100%; padding: .6rem 1rem; font-weight: 600; }
.erp-auth-card a { color: #2563EB; font-weight: 500; }
.erp-auth-foot { text-align: center; margin-top: 1.25rem; font-size: .75rem; color: #DBEAFE; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 991.98px) {
    .erp-search { width: auto; flex: 1; }
    .page-title-box.card { padding-top: 1rem; }
}

/* Selector "Mostrar N" de DataTables: que no recorte el número */
.dataTables_wrapper .dataTables_length select,
div.dt-container .dt-length select { width: auto !important; min-width: 4.75rem; padding-right: 1.75rem !important; display: inline-block; }

/* ---------- Panel: gráficas y estados ---------- */
.erp-stat-icon.rojo { background: #FEE2E2; color: #B91C1C; }
html[data-bs-theme=dark] .erp-stat-icon.rojo { background: rgba(239, 68, 68, .15); color: #FCA5A5; }
.erp-chart { position: relative; height: 270px; }
.erp-chart-vacio { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: var(--bs-secondary-color); }
.erp-chart-vacio i { font-size: 1.75rem; opacity: .6; }
html { scroll-padding-top: 80px; }
