/* ============================================================
   Tipografía base
   - @font-face (Google Sans, IBM Plex Mono) — fusionado desde googlesans.css
   - Reglas tipográficas y card base — extraído de custom.css (98–145)
   ============================================================ */

@font-face {
    font-family: 'GoogleSans';
    src: url('/fonts/GoogleSans-VariableFont_GRAD.ttf') format('truetype-variations');
    font-weight: 100 1000;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBMPlexMono';
    src: url('/fonts/IBMPlexMono-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Códigos (BC, presupuestos, cualquier identificador alfanumérico).
   Tiene mayor especificidad que el selector global para que GoogleSans no la sobreescriba.
   Forzamos font-weight normal para anular cualquier <strong>, <b>, fw-bold, etc. del contenedor.
   line-height:1 + vertical-align:middle evitan que la métrica vertical de IBM Plex Mono
   (mayor que la de GoogleSans) empuje el line-box del badge/contenedor y desalinee el resto. */
body .text-code,
.text-code {
    font-family: 'IBMPlexMono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
    color: #ff4fa0 !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1 !important;
    vertical-align: middle;
}

/* Aplicación global. Se excluyen únicamente las clases de fuentes de iconos
   (FontAwesome, Boxicons, Material Design Icons, Remix) para no romper sus glifos. */
body,
body *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.fa-solid):not(.fa-regular):not(.fa-brands):not(.fa-light):not(.fa-thin):not(.fa-duotone):not([class*=" fa-"]):not([class^="fa-"]):not(.bx):not([class*=" bx-"]):not([class^="bx-"]):not(.mdi):not([class*=" mdi-"]):not([class^="mdi-"]):not(.material-icons):not(.material-icons-outlined):not(.ri):not([class*=" ri-"]):not([class^="ri-"]) {
    font-family: 'GoogleSans', system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
    letter-spacing: 0.01em;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
    letter-spacing: -0.01em;
}

/* Texto claro sobre fondo oscuro a tamaños pequeños (11-12px).
   Sin estos ajustes los labels y filtros rápidos sobre azul oscuro se ven finos
   y borrosos: subimos un punto el tamaño, weight 600 y subpixel-antialiased. */
.col-form-label.custom-label,
.custom-label {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
    text-shadow: 0 0 0.5px rgba(255, 255, 255, 0.25);
}

.quick-label,
.quick-text {
    /* font-size: 13px !important; */
    /* font-weight: 600 !important; */
    /* letter-spacing: 0.01em !important; */
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
    text-shadow: 0 0 0.5px rgba(255, 255, 255, 0.25);
}

.quick-value {
    font-size: 20px !important;
    /* font-weight: 500 !important; */
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
}

.form-control.input-filter,
.form-select.select-filter {
    font-size: 12px !important;
    font-weight: 500 !important;
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
}

.form-control.input-filter::placeholder {
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 400 !important;
}

/* --- Tipografía y cards base (custom.css 98–145) --- */

/* Firefox scrollbar styles */
/* * {
    scrollbar-width: thin;
    scrollbar-color: rgba(19, 21, 22, .2) #fff;
} */

/* Reglas de Choices.js movidas a public/css/choices.css */

.card-title {
    color: var(--bs-primary) !important;
}

.card {
    margin-bottom: 20px;
}

.form-control:disabled,
.form-select:disabled {
    background-color: var(--bs-border-color) !important;
    pointer-events: none;
    opacity: 0.6;
}

/* Equivalente para Choices en public/css/choices.css */

.text-xs {
    font-size: 12px !important;
}

.text-xxs {
    font-size: 10px !important;
}

/* .card-body{
    padding: 15px 20px;
} */

/* button,
label,
input,
select,
p,
span,
div,
textarea {
    font-family: Montserrat, sans-serif !important;
} */
