:root {
  --ink: #2f1a3d;
  --muted: #70657a;
  --paper: #f8f6fa;
  --line: #e7deec;
  --brand: #67408b;
  --brand-dark: #45245f;
  --accent: #f1c84b;
  --positive: #2e8059;
  --shadow: 0 8px 24px rgba(63, 34, 82, .08);
}

.sidebar {
  background: linear-gradient(165deg, #2e173f 0%, #45245f 58%, #245f46 130%);
}

.brand small,
.sidebar nav a,
.link-button { color: #d9cce2; }

.brand-mark {
  background: var(--accent);
  color: #321c42;
  box-shadow: 0 0 0 3px rgba(241, 200, 75, .16);
}

.sidebar nav a:hover,
.sidebar nav a.active {
  background: #2e8059;
  color: #fff;
}

.secondary { background: #eee8f3; color: var(--brand-dark); }
.badge.en-cours,
.badge.positive,
.tag { background: #dff2e9; color: #246a4f; }
.badge.strategy { background: #fff0bc; color: #6f520b; }
.insights li { background: #faf7fc; border-left-color: var(--brand); }
.program-card:hover { border-color: #9d81b3; }
.score-row div { background: #f7f3f9; }
.matrix-dot { background: linear-gradient(135deg, #fff3cb 0 50%, #e2f2e9 50%); }
.login-page { background: radial-gradient(circle at 72% 18%, #e0f0e7, transparent 34%), radial-gradient(circle at 15% 80%, #fff0b8, transparent 30%), #eee7f3; }
dialog::backdrop { background: rgba(47, 26, 61, .7); }

.kpi { border-top: 4px solid var(--brand); }
.kpi:nth-child(3n + 2) { border-top-color: #2e8059; }
.kpi:nth-child(3n) { border-top-color: #f1c84b; }

.source-list { display: grid; gap: 10px; }
.source-list article {
  display: grid;
  grid-template-columns: minmax(130px, 180px) 1fr;
  gap: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fcfbfd;
}
.source-list small { display: block; color: var(--muted); }
.source-list p { margin: 6px 0 0; color: var(--muted); }
.source-type {
  align-self: start;
  border-radius: 999px;
  padding: 5px 9px;
  background: #fff0bc;
  color: #6f520b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

@media (max-width: 620px) {
  .source-list article { grid-template-columns: 1fr; gap: 8px; }
}
