:root {
  --brand-blue: #2563eb;
  --brand-blue-dark: #1d4ed8;
  --brand-blue-light: #eff6ff;
  --brand-orange: #f97316;
  --brand-orange-dark: #ea580c;
  --brand-orange-light: #fff7ed;
  --bs-body-font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

[data-bs-theme="dark"] {
  --brand-blue-light: #1e293b;
  --brand-orange-light: #292018;
}

body {
  background-color: var(--bs-body-bg);
}

/* ---------- Navbar ---------- */
.navbar-brand {
  font-weight: 800;
  font-size: 1.35rem;
  color: var(--brand-blue) !important;
}
.navbar-brand span {
  color: var(--brand-orange);
}
.navbar .nav-link {
  font-weight: 500;
  color: var(--bs-body-color);
}
.navbar .nav-link:hover,
.navbar .nav-link.active {
  color: var(--brand-blue);
}
.btn-brand {
  background-color: var(--brand-blue);
  border-color: var(--brand-blue);
  color: #fff;
  font-weight: 600;
}
.btn-brand:hover {
  background-color: var(--brand-blue-dark);
  border-color: var(--brand-blue-dark);
  color: #fff;
}
.btn-brand-outline {
  border: 1.5px solid var(--brand-blue);
  color: var(--brand-blue);
  font-weight: 600;
}
.btn-brand-outline:hover {
  background-color: var(--brand-blue);
  color: #fff;
}
.btn-orange {
  background-color: var(--brand-orange);
  border-color: var(--brand-orange);
  color: #fff;
  font-weight: 600;
}
.btn-orange:hover {
  background-color: var(--brand-orange-dark);
  border-color: var(--brand-orange-dark);
  color: #fff;
}

/* ---------- Hero ---------- */
.hero-section {
  background: linear-gradient(135deg, var(--brand-blue-light) 0%, var(--bs-body-bg) 60%);
  padding: 5rem 0;
}
.hero-title {
  font-weight: 800;
  font-size: 2.75rem;
  line-height: 1.15;
}
.hero-title .accent {
  color: var(--brand-blue);
}
.stat-card {
  text-align: center;
}
.stat-number {
  font-weight: 800;
  font-size: 2.25rem;
  color: var(--brand-blue);
}

/* ---------- Cards ---------- */
.card-surface {
  border: 1px solid var(--bs-border-color);
  border-radius: 1rem;
  background-color: var(--bs-body-bg);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.card-surface:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.chapitre-card {
  border-radius: 1rem;
  border: 1px solid var(--bs-border-color);
  padding: 1.5rem;
  height: 100%;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.chapitre-card:hover {
  border-color: var(--brand-blue);
  transform: translateY(-2px);
}

/* ---------- Badges ---------- */
.badge-facile { background-color: #d1fae5; color: #065f46; }
.badge-moyen { background-color: #fef3c7; color: #92400e; }
.badge-difficile { background-color: #fee2e2; color: #991b1b; }
[data-bs-theme="dark"] .badge-facile { background-color: rgba(16,185,129,.2); color: #6ee7b7; }
[data-bs-theme="dark"] .badge-moyen { background-color: rgba(245,158,11,.2); color: #fcd34d; }
[data-bs-theme="dark"] .badge-difficile { background-color: rgba(239,68,68,.2); color: #fca5a5; }

.badge-publie { background-color: #d1fae5; color: #065f46; }
.badge-brouillon { background-color: #fef3c7; color: #92400e; }

/* ---------- Footer ---------- */
footer {
  background-color: var(--bs-tertiary-bg);
  border-top: 1px solid var(--bs-border-color);
  padding: 3rem 0 1.5rem;
}
footer h6 {
  font-weight: 700;
  color: var(--bs-body-color);
}
footer a {
  color: var(--bs-secondary-color);
  text-decoration: none;
}
footer a:hover {
  color: var(--brand-blue);
}

/* ---------- Admin sidebar ---------- */
.admin-sidebar {
  min-height: calc(100vh - 56px);
  background-color: var(--bs-tertiary-bg);
  border-right: 1px solid var(--bs-border-color);
}
.admin-sidebar .nav-link {
  color: var(--bs-body-color);
  border-radius: 0.5rem;
  padding: 0.5rem 0.9rem;
  font-weight: 500;
}
.admin-sidebar .nav-link.active {
  background-color: var(--brand-blue-light);
  color: var(--brand-blue);
}

/* ---------- Misc ---------- */
.text-brand { color: var(--brand-blue); }
.text-orange { color: var(--brand-orange); }
.section-title {
  font-weight: 800;
  font-size: 1.75rem;
}
.pdf-viewer-frame {
  width: 100%;
  height: 75vh;
  border: 0;
}
