/* GESTAPLAB – identidad visual de APLABAS: blanco, amarillo, naranja y negro (ERS 2.4.1). */
:root {
    --ap-negro: #1a1a1a;
    --ap-negro-2: #2b2b2b;
    --ap-amarillo: #f5c400;
    --ap-amarillo-claro: #fff4cc;
    --ap-naranja: #e87a00;
    --ap-naranja-oscuro: #c46600;
    --bs-primary: var(--ap-naranja);
    --bs-primary-rgb: 232, 122, 0;
    --bs-link-color: var(--ap-naranja-oscuro);
    --bs-link-color-rgb: 196, 102, 0;
    --bs-link-hover-color: var(--ap-negro);
    --bs-body-bg: #fafafa;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

/* ---------------------------------------------------------------- barra superior */
.ap-navbar {
    background: var(--ap-negro);
    border-bottom: 4px solid var(--ap-amarillo);
}

.ap-navbar .nav-link {
    color: #f2f2f2;
}

.ap-navbar .nav-link:hover,
.ap-navbar .nav-link:focus {
    color: var(--ap-amarillo);
}

.ap-logo-nav {
    height: 38px;
    width: auto;
    background: #fff;
    border-radius: 6px;
    padding: 2px;
}

.ap-sigla {
    color: var(--ap-amarillo);
    font-weight: 600;
}

/* ---------------------------------------------------------------- botones */
.btn-primary {
    --bs-btn-bg: var(--ap-naranja);
    --bs-btn-border-color: var(--ap-naranja);
    --bs-btn-hover-bg: var(--ap-naranja-oscuro);
    --bs-btn-hover-border-color: var(--ap-naranja-oscuro);
    --bs-btn-active-bg: var(--ap-naranja-oscuro);
    --bs-btn-active-border-color: var(--ap-naranja-oscuro);
    --bs-btn-disabled-bg: var(--ap-naranja);
    --bs-btn-disabled-border-color: var(--ap-naranja);
    --bs-btn-color: #fff;
    --bs-btn-hover-color: #fff;
}

.btn-outline-primary {
    --bs-btn-color: var(--ap-naranja-oscuro);
    --bs-btn-border-color: var(--ap-naranja);
    --bs-btn-hover-bg: var(--ap-naranja);
    --bs-btn-hover-border-color: var(--ap-naranja);
    --bs-btn-active-bg: var(--ap-naranja-oscuro);
    --bs-btn-hover-color: #fff;
}

.btn-dark {
    --bs-btn-bg: var(--ap-negro);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ap-amarillo);
    box-shadow: 0 0 0 .2rem rgba(245, 196, 0, .35);
}

.page-link {
    color: var(--ap-naranja-oscuro);
}

/* ---------------------------------------------------------------- tarjetas y tablas */
.ap-titulo {
    border-left: 6px solid var(--ap-naranja);
    padding-left: .75rem;
    margin-bottom: 1.25rem;
}

.ap-titulo h1 {
    font-size: 1.5rem;
    margin: 0;
}

.ap-titulo p {
    margin: 0;
    color: #666;
}

.card {
    border: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}

.card-header {
    background: var(--ap-negro);
    color: #fff;
    font-weight: 600;
}

.ap-kpi {
    border-top: 4px solid var(--ap-amarillo);
}

.ap-kpi.naranja {
    border-top-color: var(--ap-naranja);
}

.ap-kpi.negro {
    border-top-color: var(--ap-negro);
}

.ap-kpi .valor {
    font-size: 1.6rem;
    font-weight: 700;
}

.ap-kpi .etiqueta {
    color: #666;
    font-size: .875rem;
}

.table thead th {
    background: var(--ap-negro-2);
    color: #fff;
    font-weight: 600;
    white-space: nowrap;
}

.table tfoot td {
    background: var(--ap-amarillo-claro);
    font-weight: 700;
}

.ap-dl dt {
    color: #666;
    font-weight: 500;
}

.badge.ap-mora {
    background: #c62828;
}

.badge.ap-aldia {
    background: #2e7d32;
}

.badge.ap-inactivo {
    background: #757575;
}

/* ---------------------------------------------------------------- inicio de sesión */
.ap-login {
    background: linear-gradient(135deg, var(--ap-negro) 0%, var(--ap-negro-2) 55%, var(--ap-naranja) 100%);
}

.ap-login .card {
    max-width: 420px;
    width: 100%;
    border-top: 6px solid var(--ap-amarillo);
}

.ap-logo-login {
    max-height: 110px;
    max-width: 220px;
}

/* ---------------------------------------------------------------- pie */
.ap-footer {
    background: var(--ap-negro);
    color: #ddd;
    font-size: .8rem;
    padding: .75rem 0;
    border-top: 3px solid var(--ap-naranja);
}

@media print {
    .ap-navbar, .ap-footer, .no-print {
        display: none !important;
    }
}
