/*
 * Hoja puente de Bootstrap 4.6.1 con los tokens del tema. GENERADA con
 * scripts/tools/generar_bootstrap_tema.py: no editar a mano.
 *
 * Repite las reglas con color de Bootstrap que usa la aplicación, con los colores base sustituidos
 * por su token y los tonos derivados (alertas, hover, foco) calculados con color-mix sobre ese
 * token. También sustituye sus radios de esquina por los del tema (--radio-*). Se carga justo después de
 * bootstrap.min.css; style.css va después y manda.
 */

.mark {
    background-color: color-mix(in srgb, var(--color-componente-aviso) 12%, white);
}

.img-thumbnail {
    background-color: var(--color-superficie);
    border-color: var(--color-borde);
    border-radius: var(--radio-base);
}

.table {
    color: var(--color-texto);
}

.table td,
.table th {
    border-top-color: var(--color-borde);
}

.table thead th {
    border-bottom-color: var(--color-borde);
}

.table tbody+tbody {
    border-top-color: var(--color-borde);
}

.table-bordered {
    border-color: var(--color-borde);
}

.table-bordered td,
.table-bordered th {
    border-color: var(--color-borde);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0,0,0,.05);
}

.table-hover tbody tr:hover {
    color: var(--color-texto);
    background-color: rgba(0,0,0,.075);
}

.table-responsive>.table-bordered {
    border-color: currentColor;
}

.form-control {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
    border-color: var(--color-borde-control);
    border-radius: var(--radio-base);
}

.form-control::-ms-expand {
    background-color: transparent;
    border-color: currentColor;
}

.form-control:focus {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
    border-color: var(--color-foco);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 25%, transparent);
}

.form-control::-webkit-input-placeholder {
    color: var(--color-componente-secundario);
}

.form-control::-moz-placeholder {
    color: var(--color-componente-secundario);
}

.form-control:-ms-input-placeholder {
    color: var(--color-componente-secundario);
}

.form-control::-ms-input-placeholder {
    color: var(--color-componente-secundario);
}

.form-control::placeholder {
    color: var(--color-componente-secundario);
}

.form-control:disabled,
.form-control[readonly] {
    background-color: var(--color-superficie-pulsada);
}

select.form-control:-moz-focusring {
    color: transparent;
}

select.form-control:focus::-ms-value {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
}

.form-control-sm {
    border-radius: calc(var(--radio-base) * 0.8);
}

.form-check-input:disabled~.form-check-label,
.form-check-input[disabled]~.form-check-label {
    color: var(--color-componente-secundario);
}

.invalid-feedback {
    color: var(--color-error-campo);
}

.form-control.is-invalid {
    border-color: var(--color-error-campo);
}

.form-control.is-invalid:focus {
    border-color: var(--color-error-campo);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-error-campo) 25%, transparent);
}

.custom-select.is-invalid {
    border-color: var(--color-error-campo);
    background-color: var(--color-superficie);
}

.custom-select.is-invalid:focus {
    border-color: var(--color-error-campo);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-error-campo) 25%, transparent);
}

.form-check-input.is-invalid~.form-check-label {
    color: var(--color-error-campo);
}

.custom-control-input.is-invalid~.custom-control-label {
    color: var(--color-error-campo);
}

.custom-control-input.is-invalid~.custom-control-label::before {
    border-color: var(--color-error-campo);
}

.custom-control-input.is-invalid:checked~.custom-control-label::before {
    border-color: color-mix(in srgb, var(--color-error-campo) 79%, white);
    background-color: color-mix(in srgb, var(--color-error-campo) 79%, white);
}

.custom-control-input.is-invalid:focus~.custom-control-label::before {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-error-campo) 25%, transparent);
}

.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before {
    border-color: var(--color-error-campo);
}

.btn {
    color: var(--color-texto);
    background-color: transparent;
    border-color: transparent;
    border-radius: var(--radio-base);
}

.btn:hover {
    color: var(--color-texto);
}

.btn.focus,
.btn:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 25%, transparent);
}

.btn-primary {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.btn-primary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 85%, black);
    border-color: color-mix(in srgb, var(--color-acento-componentes) 80%, black);
}

.btn-primary.focus,
.btn-primary:focus {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 85%, black);
    border-color: color-mix(in srgb, var(--color-acento-componentes) 80%, black);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-acento-componentes) 85%, white) 50%, transparent);
}

.btn-primary.disabled,
.btn-primary:disabled {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 80%, black);
    border-color: color-mix(in srgb, var(--color-acento-componentes) 75%, black);
}

.btn-primary:not(:disabled):not(.disabled).active:focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
.show>.btn-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-acento-componentes) 85%, white) 50%, transparent);
}

.btn-secondary {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-componente-secundario);
    border-color: var(--color-componente-secundario);
}

.btn-secondary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-componente-secundario) 83%, black);
    border-color: color-mix(in srgb, var(--color-componente-secundario) 78%, black);
}

.btn-secondary.focus,
.btn-secondary:focus {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-componente-secundario) 83%, black);
    border-color: color-mix(in srgb, var(--color-componente-secundario) 78%, black);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-componente-secundario) 85%, white) 50%, transparent);
}

.btn-secondary.disabled,
.btn-secondary:disabled {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-componente-secundario);
    border-color: var(--color-componente-secundario);
}

.btn-secondary:not(:disabled):not(.disabled).active,
.btn-secondary:not(:disabled):not(.disabled):active,
.show>.btn-secondary.dropdown-toggle {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-componente-secundario) 78%, black);
    border-color: color-mix(in srgb, var(--color-componente-secundario) 73%, black);
}

.btn-secondary:not(:disabled):not(.disabled).active:focus,
.btn-secondary:not(:disabled):not(.disabled):active:focus,
.show>.btn-secondary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-componente-secundario) 85%, white) 50%, transparent);
}

.btn-light {
    color: var(--color-texto);
    background-color: var(--color-superficie-alt);
    border-color: var(--color-superficie-alt);
}

.btn-light:hover {
    color: var(--color-texto);
    background-color: color-mix(in srgb, var(--color-superficie-alt) 92%, black);
    border-color: color-mix(in srgb, var(--color-superficie-alt) 90%, black);
}

.btn-light.focus,
.btn-light:focus {
    color: var(--color-texto);
    background-color: color-mix(in srgb, var(--color-superficie-alt) 92%, black);
    border-color: color-mix(in srgb, var(--color-superficie-alt) 90%, black);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-superficie-alt) 87%, black) 50%, transparent);
}

.btn-light.disabled,
.btn-light:disabled {
    color: var(--color-texto);
    background-color: var(--color-superficie-alt);
    border-color: var(--color-superficie-alt);
}

.btn-light:not(:disabled):not(.disabled).active,
.btn-light:not(:disabled):not(.disabled):active,
.show>.btn-light.dropdown-toggle {
    color: var(--color-texto);
    background-color: color-mix(in srgb, var(--color-superficie-alt) 90%, black);
    border-color: color-mix(in srgb, var(--color-superficie-alt) 87%, black);
}

.btn-light:not(:disabled):not(.disabled).active:focus,
.btn-light:not(:disabled):not(.disabled):active:focus,
.show>.btn-light.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, color-mix(in srgb, var(--color-superficie-alt) 87%, black) 50%, transparent);
}

.btn-outline-primary {
    color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.btn-outline-primary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.btn-outline-primary.focus,
.btn-outline-primary:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 50%, transparent);
}

.btn-outline-primary.disabled,
.btn-outline-primary:disabled {
    color: var(--color-acento-componentes);
    background-color: transparent;
}

.btn-outline-primary:not(:disabled):not(.disabled).active,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.show>.btn-outline-primary.dropdown-toggle {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 50%, transparent);
}

.btn-outline-secondary {
    color: var(--color-componente-secundario);
    border-color: var(--color-componente-secundario);
}

.btn-outline-secondary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-componente-secundario);
    border-color: var(--color-componente-secundario);
}

.btn-outline-secondary.focus,
.btn-outline-secondary:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-componente-secundario) 50%, transparent);
}

.btn-outline-secondary.disabled,
.btn-outline-secondary:disabled {
    color: var(--color-componente-secundario);
    background-color: transparent;
}

.btn-outline-secondary:not(:disabled):not(.disabled).active,
.btn-outline-secondary:not(:disabled):not(.disabled):active,
.show>.btn-outline-secondary.dropdown-toggle {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-componente-secundario);
    border-color: var(--color-componente-secundario);
}

.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
.show>.btn-outline-secondary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-componente-secundario) 50%, transparent);
}

.btn-link {
    color: var(--color-acento-componentes);
}

.btn-link:hover {
    color: color-mix(in srgb, var(--color-acento-componentes) 70%, black);
}

.btn-link.disabled,
.btn-link:disabled {
    color: var(--color-componente-secundario);
}

.btn-sm {
    border-radius: calc(var(--radio-base) * 0.8);
}

.dropdown-toggle::after {
    border-top-color: currentColor;
    border-right-color: transparent;
    border-bottom-color: currentColor;
    border-left-color: transparent;
}

.dropdown-menu {
    color: var(--color-texto);
    background-color: var(--color-superficie);
    border-color: rgba(0,0,0,.15);
    border-radius: var(--radio-base);
}

.dropdown-item {
    color: var(--color-texto);
    background-color: transparent;
    border-color: currentColor;
}

.dropdown-item:focus,
.dropdown-item:hover {
    color: color-mix(in srgb, var(--color-componente-oscuro) 42%, black);
    background-color: var(--color-superficie-pulsada);
}

.dropdown-item.active,
.dropdown-item:active {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
}

.dropdown-item.disabled,
.dropdown-item:disabled {
    color: var(--color-componente-apagado);
    background-color: transparent;
}

.btn-group>.btn-group:not(:last-child)>.btn,
.btn-group>.btn:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group>.btn-group:not(:first-child)>.btn,
.btn-group>.btn:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group>.custom-select:not(:first-child),
.input-group>.form-control:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group-text {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie-pulsada);
    border-color: var(--color-borde-control);
    border-radius: var(--radio-base);
}

.input-group-sm>.custom-select,
.input-group-sm>.form-control,
.input-group-sm>.input-group-append>.btn,
.input-group-sm>.input-group-append>.input-group-text,
.input-group-sm>.input-group-prepend>.btn,
.input-group-sm>.input-group-prepend>.input-group-text {
    border-radius: calc(var(--radio-base) * 0.8);
}

.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),
.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),
.input-group>.input-group-prepend>.btn,
.input-group>.input-group-prepend>.input-group-text {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group>.input-group-append>.btn,
.input-group>.input-group-append>.input-group-text,
.input-group>.input-group-prepend:first-child>.btn:not(:first-child),
.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),
.input-group>.input-group-prepend:not(:first-child)>.btn,
.input-group>.input-group-prepend:not(:first-child)>.input-group-text {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.custom-control-input:checked~.custom-control-label::before {
    color: var(--color-texto-sobre-componente);
    border-color: var(--color-acento-componentes);
    background-color: var(--color-acento-componentes);
}

.custom-control-input:focus~.custom-control-label::before {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 25%, transparent);
}

.custom-control-input:focus:not(:checked)~.custom-control-label::before {
    border-color: var(--color-foco);
}

.custom-control-input:not(:disabled):active~.custom-control-label::before {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 30%, white);
    border-color: color-mix(in srgb, var(--color-acento-componentes) 30%, white);
}

.custom-control-input:disabled~.custom-control-label,
.custom-control-input[disabled]~.custom-control-label {
    color: var(--color-componente-secundario);
}

.custom-control-input:disabled~.custom-control-label::before,
.custom-control-input[disabled]~.custom-control-label::before {
    background-color: var(--color-superficie-pulsada);
}

.custom-control-label::before {
    background-color: var(--color-superficie);
    border-color: var(--color-componente-apagado);
}

.custom-control-label::after {
    background-color: transparent;
}

.custom-checkbox .custom-control-label::before {
    border-radius: var(--radio-base);
}

.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before {
    border-color: var(--color-acento-componentes);
    background-color: var(--color-acento-componentes);
}

.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before {
    background-color: color-mix(in srgb, var(--color-acento-componentes) 50%, transparent);
}

.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before {
    background-color: color-mix(in srgb, var(--color-acento-componentes) 50%, transparent);
}

.custom-select {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
    border-color: var(--color-borde-control);
    border-radius: var(--radio-base);
}

.custom-select:focus {
    border-color: var(--color-foco);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 25%, transparent);
}

.custom-select:focus::-ms-value {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
}

.custom-select:disabled {
    color: var(--color-componente-secundario);
    background-color: var(--color-superficie-pulsada);
}

.custom-select:-moz-focusring {
    color: transparent;
}

.nav-link.disabled {
    color: var(--color-componente-secundario);
}

.nav-tabs {
    border-bottom-color: var(--color-borde);
}

.nav-tabs .nav-link {
    border-color: transparent;
    border-top-left-radius: var(--radio-base);
    border-top-right-radius: var(--radio-base);
}

.nav-tabs .nav-link:focus,
.nav-tabs .nav-link:hover {
    border-color: var(--color-superficie-pulsada) var(--color-superficie-pulsada) var(--color-borde);
}

.nav-tabs .nav-link.disabled {
    color: var(--color-componente-secundario);
    background-color: transparent;
    border-color: transparent;
}

.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie);
    border-color: var(--color-borde) var(--color-borde) var(--color-superficie);
}

.nav-tabs .dropdown-menu {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.navbar-toggler {
    background-color: transparent;
    border-color: transparent;
    border-radius: var(--radio-base);
}

.navbar-toggler-icon {
    background-color: transparent;
}

.navbar-light .navbar-brand {
    color: rgba(0,0,0,.9);
}

.navbar-light .navbar-brand:focus,
.navbar-light .navbar-brand:hover {
    color: rgba(0,0,0,.9);
}

.navbar-light .navbar-nav .nav-link {
    color: rgba(0,0,0,.5);
}

.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover {
    color: rgba(0,0,0,.7);
}

.navbar-light .navbar-nav .nav-link.disabled {
    color: rgba(0,0,0,.3);
}

.navbar-light .navbar-nav .active>.nav-link,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .show>.nav-link {
    color: rgba(0,0,0,.9);
}

.navbar-light .navbar-toggler {
    color: rgba(0,0,0,.5);
    border-color: rgba(0,0,0,.1);
}

.card {
    background-color: var(--color-superficie);
    border-color: rgba(0,0,0,.125);
    border-radius: var(--radio-base);
}

.card>.list-group {
    border-top-color: inherit;
    border-bottom-color: inherit;
}

.card>.list-group:first-child {
    border-top-left-radius: max(0px, calc(var(--radio-base) - 1px));
    border-top-right-radius: max(0px, calc(var(--radio-base) - 1px));
}

.card>.list-group:last-child {
    border-bottom-right-radius: max(0px, calc(var(--radio-base) - 1px));
    border-bottom-left-radius: max(0px, calc(var(--radio-base) - 1px));
}

.card>.card-header+.list-group,
.card>.list-group+.card-footer {
    border-top-color: currentColor;
}

.card-header {
    background-color: rgba(0,0,0,.03);
    border-bottom-color: rgba(0,0,0,.125);
}

.card-header:first-child {
    border-radius: max(0px, calc(var(--radio-base) - 1px)) max(0px, calc(var(--radio-base) - 1px)) 0 0;
}

.card-footer {
    background-color: rgba(0,0,0,.03);
    border-top-color: rgba(0,0,0,.125);
}

.card-footer:last-child {
    border-radius: 0 0 max(0px, calc(var(--radio-base) - 1px)) max(0px, calc(var(--radio-base) - 1px));
}

.card-header-tabs {
    border-bottom-color: currentColor;
}

.breadcrumb {
    background-color: var(--color-superficie-pulsada);
    border-radius: var(--radio-base);
}

.breadcrumb-item+.breadcrumb-item::before {
    color: var(--color-componente-secundario);
}

.breadcrumb-item.active {
    color: var(--color-componente-secundario);
}

.pagination {
    border-radius: var(--radio-base);
}

.page-link {
    color: var(--color-acento-componentes);
    background-color: var(--color-superficie);
    border-color: var(--color-borde);
}

.page-link:hover {
    color: color-mix(in srgb, var(--color-acento-componentes) 70%, black);
    background-color: var(--color-superficie-pulsada);
    border-color: var(--color-borde);
}

.page-link:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 25%, transparent);
}

.page-item:first-child .page-link {
    border-top-left-radius: var(--radio-base);
    border-bottom-left-radius: var(--radio-base);
}

.page-item:last-child .page-link {
    border-top-right-radius: var(--radio-base);
    border-bottom-right-radius: var(--radio-base);
}

.page-item.active .page-link {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.page-item.disabled .page-link {
    color: var(--color-componente-secundario);
    background-color: var(--color-superficie);
    border-color: var(--color-borde);
}

.badge {
    border-radius: var(--radio-base);
}

.badge-primary {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
}

a.badge-primary:focus,
a.badge-primary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 80%, black);
}

a.badge-primary.focus,
a.badge-primary:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-acento-componentes) 50%, transparent);
}

.badge-secondary {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-componente-secundario);
}

a.badge-secondary:focus,
a.badge-secondary:hover {
    color: var(--color-texto-sobre-componente);
    background-color: color-mix(in srgb, var(--color-componente-secundario) 78%, black);
}

a.badge-secondary.focus,
a.badge-secondary:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-componente-secundario) 50%, transparent);
}

.badge-warning {
    color: var(--color-texto-sobre-aviso);
    background-color: var(--color-componente-aviso);
}

a.badge-warning:focus,
a.badge-warning:hover {
    color: var(--color-texto-sobre-aviso);
    background-color: color-mix(in srgb, var(--color-componente-aviso) 81%, black);
}

a.badge-warning.focus,
a.badge-warning:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-componente-aviso) 50%, transparent);
}

.badge-light {
    color: var(--color-texto);
    background-color: var(--color-superficie-alt);
}

a.badge-light:focus,
a.badge-light:hover {
    color: var(--color-texto);
    background-color: color-mix(in srgb, var(--color-superficie-alt) 90%, black);
}

a.badge-light.focus,
a.badge-light:focus {
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-superficie-alt) 50%, transparent);
}

.alert {
    border-color: transparent;
    border-radius: var(--radio-base);
}

.alert-heading {
    color: inherit;
}

.alert-dismissible .close {
    color: inherit;
}

.alert-primary {
    color: color-mix(in srgb, var(--color-acento-componentes) 52%, black);
    background-color: color-mix(in srgb, var(--color-acento-componentes) 20%, white);
    border-color: color-mix(in srgb, var(--color-acento-componentes) 28%, white);
}

.alert-primary hr {
    border-top-color: color-mix(in srgb, var(--color-acento-componentes) 38%, white);
}

.alert-success {
    color: color-mix(in srgb, var(--color-componente-exito) 52%, black);
    background-color: color-mix(in srgb, var(--color-componente-exito) 20%, white);
    border-color: color-mix(in srgb, var(--color-componente-exito) 28%, white);
}

.alert-success hr {
    border-top-color: color-mix(in srgb, var(--color-componente-exito) 36%, white);
}

.alert-warning {
    color: color-mix(in srgb, var(--color-componente-aviso) 52%, black);
    background-color: color-mix(in srgb, var(--color-componente-aviso) 20%, white);
    border-color: color-mix(in srgb, var(--color-componente-aviso) 28%, white);
}

.alert-warning hr {
    border-top-color: color-mix(in srgb, var(--color-componente-aviso) 38%, white);
}

.alert-danger {
    color: color-mix(in srgb, var(--color-error-campo) 52%, black);
    background-color: color-mix(in srgb, var(--color-error-campo) 20%, white);
    border-color: color-mix(in srgb, var(--color-error-campo) 28%, white);
}

.alert-danger hr {
    border-top-color: color-mix(in srgb, var(--color-error-campo) 39%, white);
}

.alert-light {
    color: color-mix(in srgb, var(--color-superficie-alt) 52%, black);
    background-color: color-mix(in srgb, var(--color-superficie-alt) 17%, white);
    border-color: color-mix(in srgb, var(--color-superficie-alt) 27%, white);
}

.alert-light hr {
    border-top-color: var(--color-alerta-clara-separador);
}

.progress {
    background-color: var(--color-superficie-pulsada);
    border-radius: var(--radio-base);
}

.progress-bar {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
}

.list-group {
    border-radius: var(--radio-base);
}

.list-group-item-action {
    color: var(--color-texto-secundario);
}

.list-group-item-action:focus,
.list-group-item-action:hover {
    color: var(--color-texto-secundario);
    background-color: var(--color-superficie-alt);
}

.list-group-item-action:active {
    color: var(--color-texto);
    background-color: var(--color-superficie-pulsada);
}

.list-group-item {
    background-color: var(--color-superficie);
    border-color: rgba(0,0,0,.125);
}

.list-group-item:first-child {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
}

.list-group-item:last-child {
    border-bottom-right-radius: inherit;
    border-bottom-left-radius: inherit;
}

.list-group-item.disabled,
.list-group-item:disabled {
    color: var(--color-componente-secundario);
    background-color: var(--color-superficie);
}

.list-group-item.active {
    color: var(--color-texto-sobre-componente);
    background-color: var(--color-acento-componentes);
    border-color: var(--color-acento-componentes);
}

.close {
    color: var(--color-texto-fuerte);
}

.close:hover {
    color: var(--color-texto-fuerte);
}

button.close {
    background-color: transparent;
    border-color: currentColor;
}

.toast {
    background-color: rgba(255,255,255,.85);
    border-color: rgba(0,0,0,.1);
    box-shadow: 0 .25rem .75rem rgba(0,0,0,.1);
    border-radius: var(--radio-base);
}

.toast-header {
    color: var(--color-componente-secundario);
    background-color: rgba(255,255,255,.85);
    border-bottom-color: rgba(0,0,0,.05);
    border-top-left-radius: max(0px, calc(var(--radio-base) - 1px));
    border-top-right-radius: max(0px, calc(var(--radio-base) - 1px));
}

.modal-content {
    background-color: var(--color-superficie);
    border-color: rgba(0,0,0,.2);
    border-radius: calc(var(--radio-base) * 1.2);
}

.modal-header {
    border-bottom-color: var(--color-borde);
    border-top-left-radius: max(0px, calc(calc(var(--radio-base) * 1.2) - 1px));
    border-top-right-radius: max(0px, calc(calc(var(--radio-base) * 1.2) - 1px));
}

.modal-footer {
    border-top-color: var(--color-borde);
    border-bottom-right-radius: max(0px, calc(calc(var(--radio-base) * 1.2) - 1px));
    border-bottom-left-radius: max(0px, calc(calc(var(--radio-base) * 1.2) - 1px));
}

.bg-light {
    background-color: var(--color-superficie-alt) !important;
}

a.bg-light:focus,
a.bg-light:hover,
button.bg-light:focus,
button.bg-light:hover {
    background-color: color-mix(in srgb, var(--color-superficie-alt) 90%, black) !important;
}

.border {
    border-color: var(--color-borde) !important;
}

.border-bottom {
    border-bottom-color: var(--color-borde) !important;
}

.border-0 {
    border-color: currentColor !important;
}

.sr-only {
    border-color: currentColor;
}

.shadow-sm {
    box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
}

.text-white {
    color: var(--color-texto-sobre-componente) !important;
}

.text-success {
    color: var(--color-componente-exito) !important;
}

a.text-success:focus,
a.text-success:hover {
    color: color-mix(in srgb, var(--color-componente-exito) 63%, black) !important;
}

.text-danger {
    color: var(--color-error-campo) !important;
}

a.text-danger:focus,
a.text-danger:hover {
    color: hsl(from var(--color-error-campo) h s calc(l - 15)) !important;
}

.text-dark {
    color: var(--color-componente-oscuro) !important;
}

a.text-dark:focus,
a.text-dark:hover {
    color: color-mix(in srgb, var(--color-componente-oscuro) 34%, black) !important;
}

.text-muted {
    color: var(--color-componente-secundario) !important;
}

@media print {
.badge {
    border-color: var(--color-texto-fuerte);
}
}

@media print {
.table td,
.table th {
    background-color: var(--color-superficie) !important;
}
}

@media print {
.table-bordered td,
.table-bordered th {
    border-color: var(--color-borde) !important;
}
}
