:root {
  /* ---------- Superficies (tonos claros, calidos) ---------- */
  --mp-page-bg: #f5f4f0;
  --mp-surface: #fdfcfa;
  --mp-surface-2: #efece5;
  --mp-border: #e5e2da;

  /* ---------- Tinta ---------- */
  --mp-ink: #14161a;
  --mp-ink-secondary: #55565d;
  --mp-ink-muted: #8b8a86;

  /* ---------- Marca ---------- */
  --mp-blue: #0e6f9e;
  --mp-blue-dark: #0a5478;
  --mp-navy: #101d34;
  --mp-navy-soft: #1c2f4f;
  --mp-navy-line: rgba(255, 255, 255, 0.08);
  --mp-violet: #5b47c4;
  --mp-orange: #d9691f;

  /* ---------- Categorica (graficas / iconos KPI) ---------- */
  --mp-cat-1: #0e6f9e; /* azul  */
  --mp-cat-2: #0e9488; /* verde azulado */
  --mp-cat-3: #c98a1c; /* dorado */
  --mp-cat-4: #1f8a4c; /* verde */
  --mp-cat-5: #5b47c4; /* indigo */
  --mp-cat-6: #c8463c; /* rojo */
  --mp-cat-7: #b1447a; /* rosa */
  --mp-cat-8: #d9691f; /* naranja */

  /* ---------- Estado (fijo, no se reusa como categorica) ---------- */
  --mp-good: #0ca30c;
  --mp-warning: #e8a23c;
  --mp-serious: #ec835a;
  --mp-critical: #d03b3b;
  --mp-neutral: #8b8a86;
}

body {
  background-color: var(--mp-page-bg);
  color: var(--mp-ink);
}

/* ==================== Login ==================== */
.edu-login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(1100px 620px at 12% -10%, rgba(91, 71, 196, 0.35), transparent 60%),
    radial-gradient(900px 560px at 100% 100%, rgba(14, 111, 158, 0.45), transparent 55%),
    linear-gradient(160deg, var(--mp-navy) 0%, #0a1524 100%);
}

.edu-login-card {
  width: 100%;
  max-width: 380px;
  background: var(--mp-surface);
  border-radius: 18px;
  padding: 40px 32px;
  box-shadow: 0 30px 70px rgba(6, 10, 20, 0.35);
}

.edu-login-brand {
  text-align: center;
  margin-bottom: 24px;
}

.edu-login-brand .edu-logo-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(145deg, var(--mp-blue), var(--mp-navy));
  color: #fff;
  font-size: 26px;
  margin-bottom: 12px;
  box-shadow: 0 10px 24px rgba(14, 111, 158, 0.35);
}

.edu-login-brand h1 {
  font-size: 20px;
  font-weight: 800;
  color: var(--mp-ink);
  margin: 0;
}

.edu-login-brand p {
  color: var(--mp-ink-muted);
  font-size: 13px;
  margin: 4px 0 0;
}

.btn-edu-primary {
  background-color: var(--mp-blue);
  border-color: var(--mp-blue);
  color: #fff;
  font-weight: 600;
}

.btn-edu-primary:hover,
.btn-edu-primary:focus {
  background-color: var(--mp-blue-dark);
  border-color: var(--mp-blue-dark);
  color: #fff;
}

/* ==================== Layout AdminLTE ==================== */
.app-header,
.main-header {
  background-color: var(--mp-surface) !important;
  border-bottom: 1px solid var(--mp-border);
}

.app-sidebar,
.main-sidebar {
  background-color: var(--mp-navy) !important;
  border-right: 1px solid var(--mp-navy-line);
}

.sidebar-brand {
  background-color: var(--mp-navy) !important;
  border-bottom: 1px solid var(--mp-navy-line);
}

.nav-sidebar > .nav-item > .nav-link {
  color: rgba(255, 255, 255, 0.75);
}

.nav-sidebar > .nav-item > .nav-link:hover {
  background-color: var(--mp-navy-soft);
  color: #fff;
}

.nav-sidebar > .nav-item > .nav-link.active {
  background-color: var(--mp-blue) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(14, 111, 158, 0.35);
}

/* ==================== KPI cards ==================== */
.edu-kpi-card {
  border-radius: 14px;
  border: 1px solid var(--mp-border);
  box-shadow: 0 2px 12px rgba(16, 29, 52, 0.05);
  overflow: hidden;
  background: var(--mp-surface);
}

.edu-kpi-card .edu-kpi-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}

.edu-kpi-card .edu-kpi-label {
  font-size: 12px;
  color: var(--mp-ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}

.edu-kpi-card .edu-kpi-value {
  font-size: 21px;
  font-weight: 800;
  color: var(--mp-ink);
  font-variant-numeric: tabular-nums;
}

.edu-card {
  border-radius: 14px;
  border: 1px solid var(--mp-border);
  box-shadow: 0 2px 12px rgba(16, 29, 52, 0.05);
  background: var(--mp-surface);
}

.edu-card .card-header {
  background: transparent;
  border-bottom: 1px solid var(--mp-border);
  font-weight: 700;
  color: var(--mp-ink);
}

.edu-live-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--mp-good);
  margin-right: 6px;
  box-shadow: 0 0 0 rgba(12, 163, 12, 0.5);
  animation: edu-pulse 2s infinite;
}

@keyframes edu-pulse {
  0% { box-shadow: 0 0 0 0 rgba(12, 163, 12, 0.5); }
  70% { box-shadow: 0 0 0 8px rgba(12, 163, 12, 0); }
  100% { box-shadow: 0 0 0 0 rgba(12, 163, 12, 0); }
}

/* ==================== Tablas ==================== */
.edu-card table thead th {
  color: var(--mp-ink-muted);
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  border-bottom: 1px solid var(--mp-border);
}

.edu-card table tbody tr:hover {
  background-color: var(--mp-surface-2);
}

/* ==================== Badges de estado (paletas fija, no categorica) ==================== */
.badge.bg-warning {
  background-color: var(--mp-warning) !important;
  color: #241a04 !important;
}
.badge.bg-info {
  background-color: var(--mp-blue) !important;
  color: #fff !important;
}
.badge.bg-success {
  background-color: var(--mp-good) !important;
  color: #fff !important;
}
.badge.bg-secondary {
  background-color: var(--mp-neutral) !important;
  color: #fff !important;
}
.badge.bg-danger {
  background-color: var(--mp-critical) !important;
  color: #fff !important;
}
.badge.bg-mp-serious {
  background-color: var(--mp-serious) !important;
  color: #2b1206 !important;
}
