/*
  Theme sombre sobre et lisible pour MkDocs Material.
  Le contraste est optimisé pour la lecture prolongée.
*/

:root {
  --doc-bg: #0f1115;
  --doc-surface: #161b22;
  --doc-surface-soft: #1d2430;
  --doc-text: #e6edf3;
  --doc-text-muted: #a8b3c2;
  --doc-border: #2a3442;
  --doc-accent: #4ea1ff;
  --doc-accent-soft: #2d6fb9;
  --doc-code-bg: #0c1017;
  --doc-selection: rgba(78, 161, 255, 0.25);
}

/* Base */
.md-main,
.md-main__inner,
.md-content,
.md-typeset {
  background: var(--doc-bg);
  color: var(--doc-text);
}

.md-typeset {
  line-height: 1.72;
  letter-spacing: 0.01em;
}

/* Zones structurelles */
.md-header,
.md-tabs,
.md-footer {
  background: #0b0f15;
}

.md-nav,
.md-sidebar,
.md-nav__source {
  background: var(--doc-surface);
}

.md-nav__title,
.md-nav__item .md-nav__link,
.md-nav--lifted > .md-nav__list > .md-nav__item > .md-nav__link {
  color: var(--doc-text-muted);
}

.md-nav__item .md-nav__link--active,
.md-nav__item .md-nav__link:hover {
  color: var(--doc-accent);
}

/* Titres et texte */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  color: #f4f8ff;
  font-weight: 600;
}

.md-typeset p,
.md-typeset li,
.md-typeset td,
.md-typeset th {
  color: var(--doc-text);
}

.md-typeset a {
  color: #7ec0ff;
  text-decoration-color: rgba(126, 192, 255, 0.45);
}

.md-typeset a:hover {
  color: #a7d6ff;
  text-decoration-color: rgba(167, 214, 255, 0.75);
}

/* Blocs */
.md-typeset hr {
  border-bottom-color: var(--doc-border);
}

.md-typeset blockquote {
  color: var(--doc-text-muted);
  border-left: 0.2rem solid var(--doc-accent-soft);
  background: rgba(78, 161, 255, 0.07);
}

.md-typeset table:not([class]) {
  background: var(--doc-surface);
  border: 1px solid var(--doc-border);
  border-radius: 10px;
  overflow: hidden;
}

.md-typeset table:not([class]) th {
  background: var(--doc-surface-soft);
  color: #eef4ff;
}

.md-typeset table:not([class]) tr:hover {
  background: rgba(126, 192, 255, 0.06);
}

/* Code */
.md-typeset code {
  background: rgba(167, 214, 255, 0.13);
  color: #cbe5ff;
  border-radius: 0.35rem;
  padding: 0.12em 0.38em;
}

.md-typeset pre > code {
  background: var(--doc-code-bg);
  border: 1px solid var(--doc-border);
  border-radius: 12px;
  color: #eaf3ff;
}

.highlight .hll {
  background-color: rgba(78, 161, 255, 0.15);
}

/* Boutons / navigation interne */
.md-typeset .md-button {
  border-color: var(--doc-accent-soft);
  color: var(--doc-accent);
}

.md-typeset .md-button:hover {
  background: rgba(78, 161, 255, 0.15);
}

/* Search */
.md-search__input {
  background: var(--doc-surface-soft);
  color: var(--doc-text);
  border: 1px solid var(--doc-border);
}

.md-search__input::placeholder {
  color: var(--doc-text-muted);
}

/* Sélection */
::selection {
  background: var(--doc-selection);
  color: #ffffff;
}

/* Confort mobile */
@media screen and (max-width: 76.1875em) {
  .md-nav--primary .md-nav__title {
    background: #0b0f15;
  }

  .md-nav--primary .md-nav__item {
    border-top: 1px solid var(--doc-border);
  }
}
