/* Douce : thème du manuel, aux couleurs du site (tokens de web/workspace/tokens.css).
   Polices auto-hébergées, aucune ressource tierce. */

@font-face { font-family: "Instrument Sans"; src: url("../assets/fonts/instrument-sans-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../assets/fonts/instrument-sans-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../assets/fonts/instrument-sans-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("../assets/fonts/JetBrainsMono-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("../assets/fonts/JetBrainsMono-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

:root {
  --md-text-font: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --md-code-font: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --dc-r-field: 10px;
  --dc-r-card: 16px;
  --dc-r-pill: 999px;
}

/* Clair */
[data-md-color-scheme="default"] {
  --dc-ground: #eef0f4;
  --dc-card: #ffffff;
  --dc-hover: #f3f5f8;
  --dc-line: #e3e6eb;
  --dc-line2: #c9ced6;
  --dc-ink: #14171d;
  --dc-ink2: #4a515c;
  --dc-ink3: #606874;
  --dc-acc: #3451d1;
  --dc-accs: #eef1fd;
  --dc-onacc: #ffffff;
  --dc-rub: #b4441d;
  --dc-ok: #1f7a4d;
  --dc-warn: #8a5a00;
  --dc-err: #c0283f;
  --dc-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 10px 28px rgba(16, 24, 40, .08);
  color-scheme: light;
}

/* Sombre */
[data-md-color-scheme="slate"] {
  --dc-ground: #0f1115;
  --dc-card: #1c2027;
  --dc-hover: #242933;
  --dc-line: #2a2f38;
  --dc-line2: #3a404b;
  --dc-ink: #eef0f4;
  --dc-ink2: #b9c0cb;
  --dc-ink3: #9099a6;
  --dc-acc: #8ea2ff;
  --dc-accs: #232a4a;
  --dc-onacc: #0b1030;
  --dc-rub: #f08a5d;
  --dc-ok: #5cd39a;
  --dc-warn: #f0c060;
  --dc-err: #ff7d8d;
  --dc-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);
  color-scheme: dark;
}

[data-md-color-scheme="default"],
[data-md-color-scheme="slate"] {
  --md-default-bg-color: var(--dc-ground);
  --md-default-fg-color: var(--dc-ink);
  --md-default-fg-color--light: var(--dc-ink2);
  --md-default-fg-color--lighter: var(--dc-ink3);
  --md-default-fg-color--lightest: var(--dc-line);
  --md-primary-fg-color: var(--dc-acc);
  --md-primary-fg-color--light: var(--dc-acc);
  --md-primary-fg-color--dark: var(--dc-acc);
  --md-primary-bg-color: var(--dc-ink);
  --md-primary-bg-color--light: var(--dc-ink2);
  --md-accent-fg-color: var(--dc-acc);
  --md-accent-fg-color--transparent: var(--dc-accs);
  --md-accent-bg-color: var(--dc-onacc);
  --md-typeset-color: var(--dc-ink);
  --md-typeset-a-color: var(--dc-acc);
  --md-typeset-mark-color: var(--dc-accs);
  --md-code-fg-color: var(--dc-ink);
  --md-code-bg-color: var(--dc-card);
  --md-code-hl-color: var(--dc-accs);
  --md-footer-bg-color: var(--dc-card);
  --md-footer-bg-color--dark: var(--dc-card);
  --md-footer-fg-color: var(--dc-ink2);
  --md-footer-fg-color--light: var(--dc-ink3);
  --md-shadow-z1: var(--dc-shadow);
  --md-shadow-z2: var(--dc-shadow);
  --md-shadow-z3: var(--dc-shadow);
}

body { font-variant-numeric: tabular-nums; }

/* Typographie : 15 px / 24 px au corps, 600 pour le gras, jamais de 700 */
.md-typeset { font-size: .9375rem; line-height: 1.6; font-weight: 400; }
.md-typeset strong, .md-typeset b { font-weight: 600; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 {
  color: var(--dc-ink);
  font-weight: 600;
  margin-left: 0;
}
.md-typeset h1 { font-size: 2rem; line-height: 1.25; letter-spacing: -.02em; margin-bottom: .6em; }
.md-typeset h2 { font-size: 1.375rem; line-height: 1.27; letter-spacing: -.01em; margin-top: 2em; padding-bottom: 0; border: 0; }
.md-typeset h3 { font-size: 1.0625rem; line-height: 1.41; margin-top: 1.6em; }
.md-typeset a { text-decoration: none; }
.md-typeset a:hover { text-decoration: underline; text-underline-offset: 3px; }
.md-typeset code, .md-typeset kbd, .md-typeset pre { font-size: .8125rem; line-height: 1.55; }

/* En-tête : fond carte, filet bas, chevron rouille devant le nom */
.md-header {
  background: var(--dc-card);
  color: var(--dc-ink);
  box-shadow: 0 1px 0 var(--dc-line);
}
.md-header[data-md-state="shadow"] { box-shadow: 0 1px 0 var(--dc-line), var(--dc-shadow); }
.md-header__title { font-weight: 600; letter-spacing: -.01em; }
.md-header__button { color: var(--dc-ink2); }
.md-header__button.md-logo img { display: none; }
.md-header__button.md-logo::before {
  content: "";
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--dc-rub);
  -webkit-mask: url("../assets/brand/mark.svg") center / contain no-repeat;
  mask: url("../assets/brand/mark.svg") center / contain no-repeat;
}

/* Onglets */
.md-tabs { background: var(--dc-card); color: var(--dc-ink2); box-shadow: 0 1px 0 var(--dc-line); }
.md-tabs__link { color: var(--dc-ink2); font-weight: 500; opacity: 1; }
.md-tabs__link:hover { color: var(--dc-ink); }
.md-tabs__item--active .md-tabs__link { color: var(--dc-ink); box-shadow: inset 0 -2px 0 var(--dc-acc); }

/* Recherche */
.md-search__form { background: var(--dc-hover); border-radius: var(--dc-r-pill); box-shadow: none; }
.md-search__form:hover { background: var(--dc-line); }
.md-search__input, .md-search__input::placeholder { color: var(--dc-ink2); }
.md-search__output { border-radius: 0 0 var(--dc-r-card) var(--dc-r-card); }

/* Navigation latérale */
.md-nav { font-size: .8125rem; }
.md-nav__title { color: var(--dc-ink2); font-weight: 600; }
.md-nav__link { color: var(--dc-ink2); }
.md-nav__link:hover { color: var(--dc-ink); }
.md-nav__item--active > .md-nav__link,
.md-nav__link--active { color: var(--dc-acc); font-weight: 600; }

/* Code */
.md-typeset code {
  background: var(--dc-card);
  border: 1px solid var(--dc-line);
  border-radius: 6px;
  padding: .1em .4em;
}
.md-typeset .highlight, .md-typeset pre {
  border-radius: var(--dc-r-field);
  border: 1px solid var(--dc-line);
  box-shadow: none;
}
.md-typeset pre > code { border: 0; padding: 1em 1.1em; background: var(--dc-card); }
.md-clipboard { color: var(--dc-ink3); }
.md-clipboard:hover { color: var(--dc-acc); }
/* Le prompt des blocs de terminal porte la signature rouille. */
.md-typeset .highlight .gp { color: var(--dc-rub); }

/* Tableaux */
.md-typeset table:not([class]) {
  background: var(--dc-card);
  border: 1px solid var(--dc-line);
  border-radius: var(--dc-r-field);
  box-shadow: none;
  font-size: .8125rem;
}
.md-typeset table:not([class]) th { background: transparent; color: var(--dc-ink2); font-weight: 500; }
.md-typeset table:not([class]) td { border-top: 1px solid var(--dc-line); }
.md-typeset table:not([class]) tr:hover { background: var(--dc-hover); }

/* Boutons : pilules */
.md-typeset .md-button {
  font-family: var(--md-text-font);
  font-weight: 500;
  border-radius: var(--dc-r-pill);
  padding: .5em 1.3em;
  border: 1px solid var(--dc-line2);
  color: var(--dc-ink);
  background: var(--dc-card);
  box-shadow: none;
}
.md-typeset .md-button:hover { border-color: var(--dc-acc); color: var(--dc-acc); background: var(--dc-card); }
.md-typeset .md-button--primary { background: var(--dc-acc); border-color: var(--dc-acc); color: var(--dc-onacc); }
.md-typeset .md-button--primary:hover { background: var(--dc-acc); color: var(--dc-onacc); filter: brightness(.94); }

/* Encadrés : un seul filet, aucune teinte vive */
.md-typeset .admonition, .md-typeset details {
  background: var(--dc-card);
  border: 1px solid var(--dc-line);
  border-left: 3px solid var(--dc-line2);
  border-radius: var(--dc-r-field);
  box-shadow: none;
  font-size: .875rem;
}
.md-typeset .admonition-title, .md-typeset summary { background: transparent; font-weight: 600; }
.md-typeset .admonition-title::before, .md-typeset summary::before { background-color: var(--dc-ink2); }
.md-typeset .admonition.note, .md-typeset .admonition.info, .md-typeset details.note, .md-typeset details.info { border-left-color: var(--dc-acc); }
.md-typeset .admonition.tip, .md-typeset .admonition.success, .md-typeset details.tip, .md-typeset details.success { border-left-color: var(--dc-ok); }
.md-typeset .admonition.warning, .md-typeset details.warning { border-left-color: var(--dc-warn); }
.md-typeset .admonition.danger, .md-typeset .admonition.failure, .md-typeset details.danger, .md-typeset details.failure { border-left-color: var(--dc-err); }

/* Divers */
.md-typeset hr { border-bottom: 1px solid var(--dc-line); }
.md-typeset blockquote { border-left: 3px solid var(--dc-line2); color: var(--dc-ink2); }
.md-typeset img { border-radius: var(--dc-r-card); }
/* Icônes de la famille du site chargées en <img> : taille d'usage 20 px, jamais plus de 32. */
.md-typeset img[src*="assets/icons/"] { width: 1.25rem; height: 1.25rem; border-radius: 0; vertical-align: -.2em; }
.md-footer { background: var(--dc-card); box-shadow: 0 -1px 0 var(--dc-line); }
.md-footer-meta { background: var(--dc-card); }
::selection { background: var(--dc-accs); color: var(--dc-ink); }
* { scrollbar-color: var(--dc-line2) transparent; }
