:root {
  --bs-primary: #003f82;
  --bs-primary-rgb: 0, 63, 130;
  --bs-secondary: #2c694e;
  --bs-body-bg: #f9f9fa;
  --bs-body-color: #1a1c1d;
  
  /* Gradiente principal */
  --bg-gradient-primary: linear-gradient(135deg, #003f82, #0556ab);
  
  /* Superficies según "The Academic Atelier" */
  --surface-low: #f3f3f4;
  --surface-highest: #ffffff;
  --surface-variant: #e2e2e3;
  --text-variant: #434653;
}

body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* Asimilable a Manrope localmente */
  font-weight: 700;
  color: #003f82;
}

/* Redondeo y botones */
.rounded-xl {
  border-radius: 0.75rem !important; /* md (0.75rem) según guidelines */
}

.btn-primary-gradient {
  background: var(--bg-gradient-primary);
  color: white;
  border: none;
}

.btn-primary-gradient:hover {
  opacity: 0.9;
  color: white;
}

/* Tarjetas (Cards y Lists - The "Anti-Grid" Approach) */
.card-surface {
  background-color: var(--surface-highest);
  border: none; /* No 1px borders */
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(26, 28, 29, 0.04);
}

.card-surface-low {
  background-color: var(--surface-low);
  border: none;
  border-radius: 0.75rem;
}

/* Ambient shadow */
.ambient-shadow {
  box-shadow: 0 8px 32px rgba(26, 28, 29, 0.06);
}

/* Menu lateral suave */
.sidebar {
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(20px);
}

.nav-link-custom {
  color: var(--text-variant);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  transition: all 0.2s;
}

.nav-link-custom.active {
  background-color: rgba(0, 63, 130, 0.08);
  color: var(--bs-primary);
  font-weight: bold;
}

.nav-link-custom:hover:not(.active) {
  background-color: var(--surface-low);
  color: var(--bs-primary);
}

/* Ghost border fallback (si requerido) */
.ghost-border {
  border: 2px solid rgba(195, 198, 213, 0.15) !important;
}

.text-variant {
  color: var(--text-variant);
}
