:root {
  --azul: #0d2b52;
  --azul-claro: #1d4e89;
  --verde: #00a876;
  --fondo: #f4f7fb;
}

body {
  background: var(--fondo);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main { flex: 1; }

.app-navbar {
  background: linear-gradient(135deg, var(--azul) 0%, var(--azul-claro) 60%, #2b6cb0 100%);
}
.app-navbar .navbar-brand { color: #fff; font-weight: 700; }
.app-navbar .nav-link { color: rgba(255,255,255,.85); }
.app-navbar .nav-link.active { color: #fff; font-weight: 600; }
.brand-badge {
  display: inline-block; background: var(--verde); color: #fff;
  border-radius: 6px; padding: 1px 7px; font-size: .75rem; margin-right: 6px;
}

/* ---- Login ---- */
.login-wrap {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--azul) 0%, var(--azul-claro) 60%, #2b6cb0 100%);
  padding: 20px;
}
.login-card {
  width: 100%; max-width: 400px;
  background: #fff; border-radius: 14px; box-shadow: 0 15px 40px rgba(0,0,0,.25);
  overflow: hidden;
}
.login-card .login-head {
  background: linear-gradient(135deg, var(--azul), var(--azul-claro));
  color: #fff; padding: 22px 24px; text-align: center;
}
.login-card .login-head h1 { font-size: 1.25rem; margin: 0; font-weight: 700; }
.login-card .login-head p { margin: 4px 0 0; font-size: .8rem; opacity: .85; }
.login-body { padding: 24px; }

.card-stat { border: none; border-radius: 12px; box-shadow: 0 4px 12px rgba(13,43,82,.08); }
.card-stat .stat-num { font-size: 1.9rem; font-weight: 700; color: var(--azul); }
.card-stat .stat-lbl { color: #5f6b7a; font-size: .85rem; }
.icon-circle {
  width: 46px; height: 46px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--verde); color: #fff; font-size: 1.2rem;
}

/* ---- Landing pública ---- */
.landing-navbar {
  background: linear-gradient(135deg, var(--azul) 0%, var(--azul-claro) 60%, #2b6cb0 100%);
  padding: 14px 0;
}
.landing-navbar .navbar-brand { color: #fff; font-weight: 700; }
.landing-hero {
  background: linear-gradient(135deg, var(--azul) 0%, var(--azul-claro) 60%, #2b6cb0 100%);
  color: #fff;
  padding: 48px 0 64px;
  text-align: center;
}
.landing-hero h1 { font-size: 2rem; font-weight: 700; margin-bottom: .5rem; }
.landing-hero p { opacity: .9; font-size: 1.05rem; margin-bottom: 0; }
.landing-content { margin-top: -40px; }

/* ---- Ficha de inscripción (impresión) ---- */
.ficha-head {
  background: var(--azul); color: #fff;
}
@media print {
  .app-navbar, footer, .no-print, form { display: none !important; }
  body { background: #fff; }
  main { padding: 0 !important; }
  .card { border: 1px solid #000; box-shadow: none; }
}
