:root {
--bs-primary: #001558 !important;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-danger: #dc3545;

/* Usamos accent como warning (Bootstrap lo usa mucho para botones/alertas) */
--bs-warning: #feb135;

/* Background institucional como "light" */
--bs-light: #f7f9ff;

/* RGB (Bootstrap los ocupa para sombras/gradientes/opacity) */
--bs-primary-rgb: 0,21,88;
--bs-secondary-rgb: 108,117,125;
--bs-success-rgb: 25,135,84;
--bs-danger-rgb: 220,53,69;
--bs-warning-rgb: 254,177,53;

--app-font: Poppins, sans-serif;
}

/* Tipografía global */
body {
font-family: var(--app-font);
background-color: #f7f9ff !important;
}

/* Botón "accent" propio */
.btn-accent {
--bs-btn-color: var(--bs-primary);
--bs-btn-bg: #feb135;
--bs-btn-border-color: #feb135;
--bs-btn-hover-color: var(--bs-primary);
--bs-btn-hover-bg: #feb135;
--bs-btn-hover-border-color: #feb135;
--bs-btn-focus-shadow-rgb: 254,177,53;
--bs-btn-active-color: var(--bs-primary);
--bs-btn-active-bg: #feb135;
--bs-btn-active-border-color: #feb135;
}

/* Links con color primario */
a {
color: var(--bs-primary);
}
a:hover {
color: var(--bs-primary);
opacity: .9;
}

/* Fuerza btn-primary aunque alguien haya redefinido vars de botón */
.btn-primary{
--bs-btn-bg: var(--bs-primary) !important;
--bs-btn-border-color: var(--bs-primary) !important;
--bs-btn-hover-bg: var(--bs-primary) !important;
--bs-btn-hover-border-color: var(--bs-primary) !important;
}
.alert-danger{ --bs-alert-color: #fff; --bs-alert-bg: var(--bs-danger); --bs-alert-border-color: var(--bs-danger); }

.btn-outline-primary{
--bs-btn-color: var(--bs-primary) !important;
--bs-btn-border-color: var(--bs-primary) !important;
--bs-btn-hover-color: #fff !important;
--bs-btn-hover-bg: var(--bs-primary) !important;
--bs-btn-hover-border-color: var(--bs-primary) !important;
--bs-btn-active-color: #fff !important;
--bs-btn-active-bg: var(--bs-primary) !important;
--bs-btn-active-border-color: var(--bs-primary) !important;
--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb) !important;
}

.btn-outline-secondary{
--bs-btn-color: var(--bs-secondary) !important;
--bs-btn-border-color: var(--bs-secondary) !important;
--bs-btn-hover-color: #fff !important;
--bs-btn-hover-bg: var(--bs-secondary) !important;
--bs-btn-hover-border-color: var(--bs-secondary) !important;
--bs-btn-active-color: #fff !important;
--bs-btn-active-bg: var(--bs-secondary) !important;
--bs-btn-active-border-color: var(--bs-secondary) !important;
--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb) !important;
}

.btn-outline-success{
--bs-btn-color: var(--bs-success) !important;
--bs-btn-border-color: var(--bs-success) !important;
--bs-btn-hover-color: #fff !important;
--bs-btn-hover-bg: var(--bs-success) !important;
--bs-btn-hover-border-color: var(--bs-success) !important;
--bs-btn-active-color: #fff !important;
--bs-btn-active-bg: var(--bs-success) !important;
--bs-btn-active-border-color: var(--bs-success) !important;
--bs-btn-focus-shadow-rgb: var(--bs-success-rgb) !important;
}

.btn-outline-danger{
--bs-btn-color: var(--bs-danger) !important;
--bs-btn-border-color: var(--bs-danger) !important;
--bs-btn-hover-color: #fff !important;
--bs-btn-hover-bg: var(--bs-danger) !important;
--bs-btn-hover-border-color: var(--bs-danger) !important;
--bs-btn-active-color: #fff !important;
--bs-btn-active-bg: var(--bs-danger) !important;
--bs-btn-active-border-color: var(--bs-danger) !important;
--bs-btn-focus-shadow-rgb: var(--bs-danger-rgb) !important;
}

.btn-outline-warning{
--bs-btn-color: var(--bs-warning) !important;
--bs-btn-border-color: var(--bs-warning) !important;
--bs-btn-hover-color: #000 !important; /* warning suele verse mejor en negro */
--bs-btn-hover-bg: var(--bs-warning) !important;
--bs-btn-hover-border-color: var(--bs-warning) !important;
--bs-btn-active-color: #000 !important;
--bs-btn-active-bg: var(--bs-warning) !important;
--bs-btn-active-border-color: var(--bs-warning) !important;
--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb) !important;
}

/* Si quieres outline para tu "accent" propio */
.btn-outline-accent{
--bs-btn-color: var(--bs-warning) !important;
--bs-btn-border-color: var(--bs-warning) !important;
--bs-btn-hover-color: var(--bs-primary) !important;
--bs-btn-hover-bg: var(--bs-warning) !important;
--bs-btn-hover-border-color: var(--bs-warning) !important;
--bs-btn-active-color: var(--bs-primary) !important;
--bs-btn-active-bg: var(--bs-warning) !important;
--bs-btn-active-border-color: var(--bs-warning) !important;
--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb) !important;
}

/* =====================================================
HOVER y ACTIVE global para TODOS los botones Bootstrap
===================================================== */

/* Suaviza la interacción */
.btn {
transition: all .15s ease-in-out;
}

/* Hover general: leve elevación + oscurecer un poco */
.btn:hover {
filter: brightness(1.2);
transform: translateY(-2px);
}

/* Active: vuelve a su lugar + más oscuro */
.btn:active,
.btn.active,
.btn.show {
filter: brightness(0.85);
transform: translateY(0);
box-shadow: inset 0 2px 4px rgba(0,0,0,.15);
}

/* Focus visible consistente con color del botón */
.btn:focus-visible {
outline: none;
box-shadow:
0 0 0 .2rem rgba(var(--bs-primary-rgb), .25);
}

/* Outline: al hacer hover mantiene contraste correcto */
.btn[class*="btn-outline-"]:hover {
color: #fff;
}

/* Warning / accent en hover debe ser texto negro */
.btn-outline-warning:hover,
.btn-warning:hover {
color: #000 !important;
}



/* Disabled: mantener paleta del theme con variación suave */
.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
opacity: .65;
filter: saturate(.8);
transform: none;
box-shadow: none;
}

.btn-primary:disabled,
.btn-primary.disabled,
fieldset:disabled .btn-primary {
--bs-btn-disabled-bg: rgba(var(--bs-primary-rgb), .55) !important;
--bs-btn-disabled-border-color: rgba(var(--bs-primary-rgb), .55) !important;
--bs-btn-disabled-color: #fff !important;
}

.btn-outline-primary:disabled,
.btn-outline-primary.disabled,
fieldset:disabled .btn-outline-primary {
--bs-btn-disabled-color: rgba(var(--bs-primary-rgb), .75) !important;
--bs-btn-disabled-border-color: rgba(var(--bs-primary-rgb), .45) !important;
--bs-btn-disabled-bg: rgba(var(--bs-primary-rgb), .10) !important;
}

.btn-outline-secondary:disabled,
.btn-outline-secondary.disabled,
fieldset:disabled .btn-outline-secondary {
--bs-btn-disabled-color: rgba(var(--bs-secondary-rgb), .8) !important;
--bs-btn-disabled-border-color: rgba(var(--bs-secondary-rgb), .45) !important;
--bs-btn-disabled-bg: rgba(var(--bs-secondary-rgb), .10) !important;
}

/* List group: alinear estado activo con el tema dinámico */
.list-group {
--bs-list-group-active-bg: var(--bs-primary);
--bs-list-group-active-border-color: var(--bs-primary);
}
.bg-light {
background-color: var(--bs-light) !important;
}

.pagination {
--bs-pagination-color: var(--bs-primary);
--bs-pagination-border-color: var(--bs-primary);
--bs-pagination-hover-color: #fff;
--bs-pagination-hover-bg: var(--bs-primary);
--bs-pagination-hover-border-color: var(--bs-primary);
--bs-pagination-focus-color: #fff;
--bs-pagination-focus-bg: var(--bs-primary);
--bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .25);
--bs-pagination-active-bg: var(--bs-primary);
--bs-pagination-active-border-color: var(--bs-primary);
--bs-pagination-disabled-color: rgba(var(--bs-primary-rgb), .65);
--bs-pagination-disabled-border-color: rgba(var(--bs-primary-rgb), .35);
--bs-pagination-disabled-bg: rgba(var(--bs-primary-rgb), .08);
}
