:root {
  --siaps-azul: #0d6efd;
  --siaps-azul-oscuro: #0a4fb5;
  --siaps-verde: #1e8e5a;
  --siaps-gris-borde: #ced4da;
}

body {
  background-color: #f4f7fb;
}

/* --- Barra superior --- */
.navbar-topbar {
  background: linear-gradient(90deg, var(--siaps-azul-oscuro), var(--siaps-azul));
}

/* --- Layout con sidebar --- */
.app-shell {
  display: flex;
  min-height: calc(100vh - 56px);
}

.app-sidebar {
  width: 260px;
  flex-shrink: 0;
  background: #ffffff;
  border-right: 1px solid var(--siaps-gris-borde);
  transition: margin-left .2s ease;
}

.app-sidebar .nav-link {
  color: #333;
  border-radius: 6px;
  padding: .5rem .75rem;
}

.app-sidebar .nav-link:hover,
.app-sidebar .nav-link.active {
  background-color: #e7f1ff;
  color: var(--siaps-azul-oscuro);
}

.app-content {
  flex: 1;
  padding: 1.5rem;
  min-width: 0;
}

@media (max-width: 991.98px) {
  .app-sidebar { position: fixed; top: 56px; bottom: 0; left: 0; z-index: 1030; margin-left: -260px; }
  .app-sidebar.mostrar { margin-left: 0; box-shadow: 4px 0 12px rgba(0,0,0,.15); }
}

/* --- Auth --- */
.login-wrapper { min-height: 100vh; padding: 1rem; }
.login-card { max-width: 440px; width: 100%; border: none; border-radius: 16px; }

/* --- Tarjetas estadística --- */
.stat-card { border-radius: 12px; }

/* --- Formulario Registro Tipo 2 --- */
.campo-label { font-weight: 500; font-size: .875rem; }
.campo-tooltip { cursor: help; margin-left: 4px; }
.campo-ayuda { font-size: .75rem; }

.campo-wrapper .form-control.campo-valido,
.campo-wrapper .form-select.campo-valido {
  border-color: var(--siaps-verde) !important;
  background-image: none;
}
.campo-wrapper .form-control.campo-invalido,
.campo-wrapper .form-select.campo-invalido {
  border-color: #dc3545 !important;
}
.campo-wrapper .form-control.campo-pendiente,
.campo-wrapper .form-select.campo-pendiente {
  border-color: var(--siaps-gris-borde);
}
.campo-error.mostrar { display: block !important; color: #dc3545; font-size: .8rem; }

.campo-oculto-condicional { display: none !important; }

#indicadorGuardado.estado-guardado { background-color: var(--siaps-verde) !important; }
#indicadorGuardado.estado-guardando { background-color: #f0ad4e !important; }
#indicadorGuardado.estado-error { background-color: #dc3545 !important; }

.nav-tabs .nav-link.active { font-weight: 600; border-bottom: 3px solid var(--siaps-azul); }

.campos-faltantes .ir-a-campo { color: inherit; }
.campos-faltantes .ir-a-campo:hover { text-decoration: underline !important; }

.scroll-resaltado {
  animation: resaltarCampo 1.6s ease;
}
@keyframes resaltarCampo {
  0% { box-shadow: 0 0 0 4px rgba(13,110,253,.35); }
  100% { box-shadow: none; }
}

/* Spinner AJAX genérico */
.spinner-ajax {
  display: inline-block;
  width: 1rem; height: 1rem;
  border: 2px solid rgba(0,0,0,.15);
  border-top-color: var(--siaps-azul);
  border-radius: 50%;
  animation: girar .6s linear infinite;
}
@keyframes girar { to { transform: rotate(360deg); } }
