/* Habillage de l'administration Django.
 *
 * On surcharge les variables que l'administration expose elle-meme depuis
 * Django 3.2, plutot que de se battre avec ses selecteurs. Une trentaine de
 * lignes suffisent, et rien ne casse quand Django fait evoluer ses gabarits.
 *
 * Aucune dependance : django-unfold est fige a la 0.91.0 sur Python 3.11,
 * que o2switch ne depassera pas. Voir DECISIONS.md du 04/11/2026.
 */

html {
  --primary: var(--sci-primaire);
  --secondary: var(--sci-primaire);
  --accent: var(--sci-primaire-clair);
  --primary-fg: var(--sci-primaire-contraste);

  --body-fg: var(--sci-texte);
  --body-bg: var(--sci-fond);
  --body-quiet-color: var(--sci-texte-doux);
  --body-loud-color: var(--sci-texte);

  --header-color: var(--sci-primaire-contraste);
  --header-branding-color: var(--sci-primaire-contraste);
  --header-bg: var(--sci-primaire);
  --header-link-color: var(--sci-primaire-contraste);

  --breadcrumbs-fg: var(--sci-texte-doux);
  --breadcrumbs-link-fg: var(--sci-texte);
  --breadcrumbs-bg: var(--sci-surface-creuse);

  --link-fg: var(--sci-primaire);
  --link-hover-color: var(--sci-primaire-clair);
  --link-selected-fg: var(--sci-primaire-clair);

  --hairline-color: var(--sci-bordure);
  --border-color: var(--sci-bordure);

  --error-fg: var(--sci-retard);
  --message-success-bg: var(--sci-ok-fond);
  --message-warning-bg: var(--sci-bientot-fond);
  --message-error-bg: var(--sci-retard-fond);

  --darkened-bg: var(--sci-surface-creuse);
  --selected-bg: var(--sci-surface-creuse);
  --selected-row: var(--sci-bientot-fond);

  --button-bg: var(--sci-primaire);
  --button-fg: var(--sci-primaire-contraste);
  --button-hover-bg: var(--sci-primaire-clair);
  --default-button-bg: var(--sci-primaire);
  --default-button-hover-bg: var(--sci-primaire-clair);
  --close-button-bg: var(--sci-texte-doux);
  --close-button-hover-bg: var(--sci-texte);
  --delete-button-bg: var(--sci-retard);
  --delete-button-hover-bg: #8e1b21;

  --object-tools-bg: var(--sci-primaire);
  --object-tools-fg: var(--sci-primaire-contraste);
  --object-tools-hover-bg: var(--sci-primaire-clair);

  --font-family-primary: var(--sci-police);
  --font-family-monospace: var(--sci-police-chiffres);
}

/* --- Respiration et formes ------------------------------------------- */

body { font-size: 14px; }

#header {
  padding: 14px 40px;
  box-shadow: var(--sci-ombre);
}

#branding h1 { font-weight: 650; letter-spacing: .2px; }

.module,
.dashboard .module,
#content-main .module {
  border-radius: var(--sci-rayon-large);
  border: 1px solid var(--sci-bordure);
  box-shadow: var(--sci-ombre);
  overflow: hidden;
  background: var(--sci-surface);
}

.module caption,
.module h2 {
  background: var(--sci-surface-creuse);
  color: var(--sci-texte);
  font-weight: 650;
  letter-spacing: .2px;
  text-transform: none;
  font-size: 13px;
  padding: 11px 14px;
}

.button, input[type=submit], input[type=button], .submit-row input, a.button {
  border-radius: var(--sci-rayon);
  padding: 9px 16px;
  font-weight: 600;
  border: 0;
  transition: background .12s ease;
}

input[type=text], input[type=password], input[type=email], input[type=url],
input[type=number], input[type=tel], textarea, select, .vTextField {
  border: 1px solid var(--sci-bordure);
  border-radius: var(--sci-rayon);
  padding: 7px 9px;
  background: var(--sci-surface);
  color: var(--sci-texte);
}

input:focus, textarea:focus, select:focus {
  outline: 2px solid var(--sci-primaire-clair);
  outline-offset: 1px;
  border-color: var(--sci-primaire-clair);
}

/* --- Listes ----------------------------------------------------------- */

#changelist table thead th {
  background: var(--sci-surface-creuse);
  font-weight: 650;
}

#changelist table tbody tr:hover > * {
  background: var(--sci-surface-creuse);
}

#changelist-filter {
  background: var(--sci-surface);
  border: 1px solid var(--sci-bordure);
  border-radius: var(--sci-rayon-large);
  box-shadow: var(--sci-ombre);
}

#changelist-filter h2 {
  border-radius: var(--sci-rayon-large) var(--sci-rayon-large) 0 0;
}

/* Les retards se lisent sans distinguer les couleurs : le mot « retard »
 * est dans le texte de la cellule, la teinte ne fait que renforcer. */
#changelist table tbody td:has(> :not(a)) { color: inherit; }

.paginator { border-top: 1px solid var(--sci-bordure); }

/* --- Connexion -------------------------------------------------------- */

.login #container {
  border-radius: var(--sci-rayon-large);
  border: 1px solid var(--sci-bordure);
  box-shadow: var(--sci-ombre);
  overflow: hidden;
}

.login #header { border-radius: 0; }
