/* =====================================================================
   PrevenSoft - Identidad visual (documento de producto)
   Azul Faena #0F2A44 · Petróleo #146C78 · Naranja Alta Visibilidad #FF7A1A
   El semáforo (verde / ámbar / rojo) se reserva para el estado de cumplimiento.
   ===================================================================== */
:root {
    --ps-azul: #0F2A44;
    --ps-petroleo: #146C78;
    --ps-naranja: #FF7A1A;
    --ps-naranja-oscuro: #C2410C;
    --ps-tinta: #1B2430;
    --ps-gris: #5B6B7F;
    --ps-fondo: #F5F7FA;
    --ps-borde: #E3E8EF;
    --ps-cumple: #15803D;
    --ps-por-vencer: #F2B705;
    --ps-no-cumple: #D93B3B;
    --bs-primary: #0F2A44;
    --bs-primary-rgb: 15, 42, 68;
    --bs-link-color: #146C78;
    --bs-link-hover-color: #0F2A44;
    --bs-success: #15803D;
    --bs-success-rgb: 21, 128, 61;
    --bs-warning: #F2B705;
    --bs-warning-rgb: 242, 183, 5;
    --bs-danger: #D93B3B;
    --bs-danger-rgb: 217, 59, 59;
    --bs-body-font-family: 'Inter', system-ui, sans-serif;
}

body { font-family: 'Inter', system-ui, sans-serif; color: var(--ps-tinta); }
body:not([data-bs-theme="dark"]) .page-content { background-color: var(--ps-fondo); }
h1, h2, h3, h4, h5, .page-title-box h4, .logo-txt, .card-title { font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; font-weight: 700; }
a { color: var(--ps-petroleo); }
.table, .ps-num { font-variant-numeric: tabular-nums; }

/* Botón principal: naranja con texto blanco (decisión del usuario; contraste 2,9:1, bajo el mínimo AA de 4,5:1) */
.btn-primary, .btn-primary:focus { background-color: var(--ps-naranja); border-color: var(--ps-naranja); color: #fff; font-weight: 600; }
.btn-primary:hover, .btn-primary:active { background-color: #F06A0A; border-color: #F06A0A; color: #fff; }
.btn-soft-primary { background-color: rgba(20, 108, 120, .12); color: var(--ps-petroleo); border-color: transparent; }
.btn-soft-primary:hover { background-color: var(--ps-petroleo); color: #fff; }
.bg-primary { background-color: var(--ps-azul) !important; }
.text-primary { color: var(--ps-petroleo) !important; }
.bg-success { background-color: var(--ps-cumple) !important; }
.bg-warning { background-color: var(--ps-por-vencer) !important; color: var(--ps-tinta) !important; }
.bg-danger { background-color: var(--ps-no-cumple) !important; }
.text-success { color: var(--ps-cumple) !important; }
.text-warning { color: #B45309 !important; }
.text-danger { color: var(--ps-no-cumple) !important; }
.card { border-color: var(--ps-borde); }

/* Elemento activo y hover del menú en Naranja Alta Visibilidad (alto contraste sobre Azul Faena).
   Se redefinen las variables de Minia porque su regla .mm-active > a usa !important. */
.vertical-menu {
    --bs-sidebar-menu-item-active-color: #FF7A1A;
    --bs-sidebar-menu-item-active-effact-color: rgba(255, 122, 26, .2);
    --bs-sidebar-menu-item-hover-color: #FF7A1A;
    --bs-sidebar-menu-item-hover-effact-color: rgba(255, 122, 26, .2);
}
#sidebar-menu .mm-active > a,
#sidebar-menu .mm-active > a span,
#sidebar-menu ul.sub-menu li a.active { color: var(--ps-naranja) !important; font-weight: 600; }

/* Menú lateral en Azul Faena */
body:not([data-bs-theme="dark"]) .vertical-menu { background: var(--ps-azul); border-right-color: var(--ps-azul); }
body:not([data-bs-theme="dark"]) .navbar-brand-box { background: var(--ps-azul); border-right-color: var(--ps-azul); }
body:not([data-bs-theme="dark"]) .navbar-brand-box .logo-txt { color: #fff; }
body:not([data-bs-theme="dark"]) #sidebar-menu ul li a,
body:not([data-bs-theme="dark"]) #sidebar-menu ul li a i,
body:not([data-bs-theme="dark"]) #sidebar-menu ul li a svg { color: #C9D4E0; stroke: #C9D4E0; }
body:not([data-bs-theme="dark"]) #sidebar-menu ul li a:hover,
body:not([data-bs-theme="dark"]) #sidebar-menu ul li.mm-active > a,
body:not([data-bs-theme="dark"]) #sidebar-menu ul li a:hover svg,
body:not([data-bs-theme="dark"]) #sidebar-menu ul li.mm-active > a svg { color: var(--ps-naranja); stroke: var(--ps-naranja); }
body:not([data-bs-theme="dark"]) #sidebar-menu .menu-title { color: #8FA3B8; }
body:not([data-bs-theme="dark"]) #sidebar-menu ul li ul.sub-menu li a { color: #AFC0D1; }
body[data-sidebar-size="sm"]:not([data-bs-theme="dark"]) .vertical-menu #sidebar-menu > ul > li:hover > a { background: var(--ps-azul); }
body[data-sidebar-size="sm"]:not([data-bs-theme="dark"]) .vertical-menu #sidebar-menu > ul ul { background: var(--ps-azul); }

/* Botón de las tres líneas: con el menú extendido queda sobre el logo (Azul Faena), por eso va en blanco.
   En pantallas chicas y en "Solo íconos" queda sobre la barra superior clara y conserva su color. */
@media (min-width: 992px) {
    body:not([data-sidebar-size="sm"]):not([data-bs-theme="dark"]) #vertical-menu-btn { color: #fff; }
    body:not([data-sidebar-size="sm"]):not([data-bs-theme="dark"]) #vertical-menu-btn:hover { color: var(--ps-naranja); }
}

/* Menú "Solo íconos": panel flotante con texto blanco como el logo; hover y activo en naranja */
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > a,
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > a span,
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > ul a { color: #fff !important; }
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > a { background-color: var(--ps-azul) !important; }
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > a svg { color: var(--ps-naranja) !important; stroke: var(--ps-naranja) !important; }
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul ul { background-color: var(--ps-azul) !important; }
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > ul a:hover,
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > ul li.mm-active > a,
body[data-sidebar-size="sm"] .vertical-menu #sidebar-menu > ul > li:hover > ul a.active { color: var(--ps-naranja) !important; }

/* Selector de empresa activa */
.ps-selector-empresa { max-width: 320px; }
.ps-selector-empresa .btn { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 320px; }

/* Semáforo del panel */
.ps-semaforo { width: 132px; height: 132px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 10px rgba(15, 42, 68, .06); }
.ps-semaforo span { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 2rem; font-weight: 700; color: #fff; }
.ps-semaforo.bg-warning span { color: var(--ps-tinta); }
.ps-punto { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex-shrink: 0; }

/* Páginas públicas (firma y denuncias) */
.ps-publico { background: var(--ps-fondo); font-family: 'Inter', system-ui, sans-serif; color: var(--ps-tinta); }
.ps-publico .btn-primary { background: var(--ps-naranja); border-color: var(--ps-naranja); color: #fff; font-weight: 600; }

/* Login */
.auth-bg { background-color: var(--ps-azul) !important; }
.auth-bg .bg-overlay { background: linear-gradient(135deg, var(--ps-azul), var(--ps-petroleo)) !important; opacity: .95; }
