/* ═══════════════════════════════════════════════════════════════════════
   Bimo Lite — Base: reinicio, tipografía y puente con Bootstrap
   Las pantallas aún no migradas siguen usando Bootstrap; aquí se le pasan los
   tokens para que hereden la fuente, los colores y los radios del diseño.
   ═══════════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--fuente);
    font-size: 15px;
    line-height: 1.45;
    color: var(--tinta);
    background: var(--fondo);
    -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font-family: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }

a { color: var(--verde-enlace); }
a:hover { color: var(--verde-texto); }

h1, h2, h3, h4 { margin: 0; color: var(--marino); font-weight: 800; letter-spacing: -.01em; }

:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }

/* Cifras alineadas en montos y tablas */
.numero { font-variant-numeric: tabular-nums; }

/* Texto solo para lectores de pantalla */
.solo-lector {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Visibilidad por tamaño de pantalla (celular < 768 px) */
@media (max-width: 767.98px) { .oculto-celular { display: none !important; } }
@media (min-width: 768px)    { .solo-celular    { display: none !important; } }
@media (min-width: 992px), (max-width: 767.98px) { .solo-tablet { display: none !important; } }   /* solo 768–991 px */

/* Modales y hojas abiertas: el fondo no se desplaza */
body:has(.velo), body:has(.modal.d-block) { overflow: hidden; }

/* Entrada suave de pantallas y modales */
@keyframes aparecer { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes desvanecer { from { opacity: 0; } to { opacity: 1; } }   /* velos de fondo: sin desplazamiento */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ── Puente con Bootstrap (pantallas aún no rediseñadas) ───────────────── */
:root {
    --bs-body-font-family: var(--fuente);
    --bs-body-color:       var(--tinta);
    --bs-body-bg:          var(--fondo);
    --bs-primary:          var(--verde);
    --bs-primary-rgb:      59, 171, 98;
    --bs-success:          var(--verde);
    --bs-success-rgb:      59, 171, 98;
    --bs-danger:           var(--rojo);
    --bs-danger-rgb:       217, 71, 58;
    --bs-warning:          var(--ambar);
    --bs-warning-rgb:      240, 167, 58;
    --bs-link-color:       var(--verde-enlace);
    --bs-link-color-rgb:   43, 138, 78;
    --bs-link-hover-color: var(--verde-texto);
    --bs-border-color:     var(--borde-campo);
    --bs-border-radius:    var(--radio-campo);
    --bs-secondary-color:  var(--gris);
}

.btn { font-weight: 700; border-radius: var(--radio-campo); }
.btn-primary {
    --bs-btn-bg: var(--verde); --bs-btn-border-color: var(--verde);
    --bs-btn-hover-bg: var(--verde-hover); --bs-btn-hover-border-color: var(--verde-hover);
    --bs-btn-active-bg: var(--verde-hover); --bs-btn-active-border-color: var(--verde-hover);
    --bs-btn-disabled-bg: var(--verde-deshabilitado); --bs-btn-disabled-border-color: var(--verde-deshabilitado);
}
.btn-outline-primary {
    --bs-btn-color: var(--verde-texto); --bs-btn-border-color: var(--verde);
    --bs-btn-hover-bg: var(--verde); --bs-btn-hover-border-color: var(--verde);
    --bs-btn-active-bg: var(--verde); --bs-btn-active-border-color: var(--verde);
}
.form-control, .form-select { border-color: var(--borde-campo); border-radius: var(--radio-campo); }
.form-control:focus, .form-select:focus { border-color: var(--verde); box-shadow: var(--anillo-foco); }
.form-check-input:checked { background-color: var(--verde); border-color: var(--verde); }
.text-primary { color: var(--verde-texto) !important; }
.text-muted   { color: var(--gris) !important; }
