html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  padding-top: 72px; /* compensa el navbar fijo */
  margin-bottom: 0;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* El dropdown del navbar debe flotar sobre el contenido, nunca empujar el layout */
.navbar .dropdown-menu {
    position: absolute !important;
}

/* Custom GIMSA Branding Colors */
.gimsa-text-blue {
    color: #004a99; /* Este es el azul oscuro Gimsa extraído de image_1.png */
}

.gimsa-bg-blue {
    background-color: #004a99; /* Fondo Gimsa */
}

.btn-gimsa {
    background-color: #004a99; /* Botón Gimsa */
    color: white;
}

    .btn-gimsa:hover {
        background-color: #003d7a;
        color: white;
    }

/* =============================================
   RESPONSIVE / MOBILE
   ============================================= */

/* Encabezados de página con título + botones */
.page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

@media (max-width: 767.98px) {

    /* Botones de acción en tablas — área mínima de toque */
    .table .btn-sm {
        min-width: 34px;
        min-height: 34px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Encabezados de página — apila título y acciones verticalmente */
    .page-header-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.75rem !important;
    }
    .page-header-row .page-actions {
        width: 100%;
        justify-content: flex-start;
    }

    /* Ocultar columnas secundarias en tablas en móvil */
    .col-mobile-hide {
        display: none !important;
    }

    /* Reducir padding de celdas en móvil */
    .table td, .table th {
        padding: 0.45rem 0.4rem;
        font-size: 0.82rem;
    }

    /* Cards sin margen lateral en móvil */
    .container-fluid {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .page-header-row {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
}