/* =========================================================
   Formation OSINT - thème « tableau d'enquête »
   Encre de nuit, cyan (navigation), vert (vérifié),
   ambre (vigilance), rouge (interdit).
   Aucune ressource externe.
   ========================================================= */

:root {
  --osint-cyan: #3fd8e8;
  --osint-cyan-deep: #0e8fa0;
  --osint-green: #5ee89a;
  --osint-amber: #ffb547;
  --osint-red: #ff6b81;
  --osint-heading-font: Bahnschrift, "DIN Alternate", "DIN Condensed", "Roboto Condensed", "Arial Narrow", system-ui, sans-serif;
  --md-text-font: system-ui;
}

/* ---------- Mode sombre (par défaut) ---------- */
[data-md-color-scheme="slate"] {
  --osint-ink: #0c1824;
  --osint-ink-raised: #12222f;
  --osint-ink-high: #183040;
  --osint-line: #24404f;
  --osint-text: #d9e7ee;
  --osint-muted: #8ea8b6;

  --md-default-bg-color: var(--osint-ink);
  --md-default-bg-color--light: rgba(12, 24, 36, 0.7);
  --md-default-fg-color: var(--osint-text);
  --md-default-fg-color--light: var(--osint-muted);
  --md-default-fg-color--lighter: #5f7b8a;
  --md-default-fg-color--lightest: #24404f;

  --md-primary-fg-color: var(--osint-ink-raised);
  --md-primary-fg-color--light: var(--osint-ink-high);
  --md-primary-fg-color--dark: #081119;
  --md-primary-bg-color: var(--osint-text);
  --md-primary-bg-color--light: var(--osint-muted);

  --md-accent-fg-color: var(--osint-cyan);
  --md-accent-fg-color--transparent: rgba(63, 216, 232, 0.12);
  --md-accent-bg-color: var(--osint-ink);

  --md-typeset-color: var(--osint-text);
  --md-typeset-a-color: var(--osint-cyan);
  --md-typeset-mark-color: rgba(63, 216, 232, 0.25);
  --md-code-bg-color: #0a1520;
  --md-code-fg-color: #c9dde6;
  --md-footer-bg-color: #091420;
  --md-footer-bg-color--dark: #060e16;
  --md-footer-fg-color: var(--osint-text);
  --md-footer-fg-color--light: var(--osint-muted);
  --md-footer-fg-color--lighter: #5f7b8a;
  --md-typeset-table-color: var(--osint-line);
  --md-typeset-kbd-color: var(--osint-ink-high);
  --md-shadow-z1: 0 0 0 1px var(--osint-line);
  --md-shadow-z2: 0 0 0 1px var(--osint-line), 0 8px 24px rgba(0, 0, 0, 0.35);
  --md-shadow-z3: 0 0 0 1px var(--osint-line), 0 12px 32px rgba(0, 0, 0, 0.45);
}

/* ---------- Mode clair ---------- */
[data-md-color-scheme="default"] {
  --osint-ink: #f4f8fa;
  --osint-ink-raised: #0c1824;
  --osint-ink-high: #e6eef2;
  --osint-line: #c9d8e0;
  --osint-text: #10202c;
  --osint-muted: #4e6674;
  --osint-cyan: #007f8f;
  --osint-green: #13804a;
  --osint-amber: #a35f00;
  --osint-red: #c2183c;

  --md-default-bg-color: #ffffff;
  --md-default-fg-color: var(--osint-text);
  --md-default-fg-color--light: var(--osint-muted);
  --md-primary-fg-color: #0c1824;
  --md-primary-fg-color--light: #183040;
  --md-primary-fg-color--dark: #081119;
  --md-primary-bg-color: #e8f3f7;
  --md-primary-bg-color--light: #a9c3cf;
  --md-accent-fg-color: #007f8f;
  --md-accent-fg-color--transparent: rgba(0, 127, 143, 0.1);
  --md-typeset-a-color: #007f8f;
  --md-typeset-mark-color: rgba(0, 127, 143, 0.18);
}

/* ---------- En-tête et onglets ---------- */
.md-header {
  border-bottom: 1px solid var(--osint-line);
  box-shadow: none;
}
[data-md-color-scheme="default"] .md-header { border-bottom-color: #183040; }
.md-header__title { font-family: var(--osint-heading-font); letter-spacing: 0.02em; }
.md-header__button.md-logo .md-icon svg, .md-header__button.md-logo svg { fill: var(--osint-cyan); }
[data-md-color-scheme="default"] .md-header__button.md-logo svg { fill: #3fd8e8; }
.md-tabs { border-bottom: 1px solid var(--osint-line); }
.md-tabs__link { font-family: var(--osint-heading-font); font-size: 0.8rem; opacity: 0.75; }
.md-tabs__item--active .md-tabs__link, .md-tabs__link:hover { opacity: 1; color: var(--osint-cyan); }
[data-md-color-scheme="default"] .md-tabs__item--active .md-tabs__link,
[data-md-color-scheme="default"] .md-tabs__link:hover { color: #3fd8e8; }
.md-search__form { background-color: rgba(255, 255, 255, 0.06); }

/* ---------- Typographie ---------- */
.md-typeset { font-size: 0.82rem; line-height: 1.7; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 {
  font-family: var(--osint-heading-font);
  color: var(--md-default-fg-color);
  letter-spacing: 0.01em;
}
.md-typeset h1 { font-weight: 700; font-size: 2.1em; line-height: 1.15; margin-bottom: 0.9em; }
.md-typeset h2 {
  font-weight: 600; font-size: 1.45em;
  padding-top: 0.6em;
  border-top: 1px solid var(--osint-line);
}
.md-typeset h3 { font-weight: 600; font-size: 1.15em; color: var(--osint-cyan); }
.md-content__inner > h1:first-child + p, .md-content__inner > h1:first-child + p strong { font-size: 1.06em; }
.md-typeset a { text-underline-offset: 0.2em; }
.md-typeset a:hover { text-decoration: underline; }
.md-typeset :focus-visible { outline: 2px solid var(--osint-cyan); outline-offset: 2px; }

/* Liste à cocher : coché = vérifié = vert */
.md-typeset .task-list-indicator::before { background-color: var(--osint-line); }
.md-typeset [type=checkbox]:checked + .task-list-indicator::before { background-color: var(--osint-green); }

/* ---------- Tableaux ---------- */
.md-typeset table:not([class]) {
  border: 1px solid var(--osint-line);
  border-radius: 6px;
  font-size: 0.78rem;
  box-shadow: none;
}
.md-typeset table:not([class]) th {
  background: var(--osint-ink-high);
  color: var(--osint-cyan);
  font-family: var(--osint-heading-font);
  font-weight: 600;
  letter-spacing: 0.02em;
}
[data-md-color-scheme="default"] .md-typeset table:not([class]) th { color: #0c1824; }
.md-typeset table:not([class]) tbody tr:hover { background: var(--md-accent-fg-color--transparent); }

/* ---------- Encadrés : la couleur indique la nature du message ---------- */
.md-typeset .admonition, .md-typeset details {
  border-width: 0 0 0 3px;
  border-radius: 4px;
  box-shadow: none;
  background: var(--osint-ink-raised);
  font-size: 0.78rem;
}
[data-md-color-scheme="default"] .md-typeset .admonition,
[data-md-color-scheme="default"] .md-typeset details { background: #f2f7f9; }
.md-typeset .admonition-title, .md-typeset summary { font-family: var(--osint-heading-font); font-weight: 600; background: transparent !important; }
.md-typeset .admonition.info, .md-typeset .admonition.note, .md-typeset .admonition.abstract,
.md-typeset details.info, .md-typeset details.question { border-color: var(--osint-cyan); }
.md-typeset .admonition.tip, .md-typeset .admonition.success, .md-typeset details.success { border-color: var(--osint-green); }
.md-typeset .admonition.warning, .md-typeset .admonition.important, .md-typeset .admonition.example { border-color: var(--osint-amber); }
.md-typeset .admonition.danger { border-color: var(--osint-red); }
.md-typeset .info > .admonition-title::before, .md-typeset .note > .admonition-title::before,
.md-typeset .abstract > .admonition-title::before, .md-typeset .question > summary::before { background-color: var(--osint-cyan); }
.md-typeset .tip > .admonition-title::before { background-color: var(--osint-green); }
.md-typeset .warning > .admonition-title::before, .md-typeset .important > .admonition-title::before,
.md-typeset .example > .admonition-title::before { background-color: var(--osint-amber); }
.md-typeset .danger > .admonition-title::before { background-color: var(--osint-red); }
.md-typeset details > summary::after { background-color: var(--osint-muted); }

/* ---------- Code et touches ---------- */
.md-typeset pre > code { border: 1px solid var(--osint-line); border-radius: 6px; }
.md-typeset code { border-radius: 4px; }

/* ---------- Boutons ---------- */
.md-typeset .md-button {
  border-radius: 4px;
  font-family: var(--osint-heading-font);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--osint-cyan);
  border-color: var(--osint-cyan);
}
.md-typeset .md-button--primary, .md-typeset .md-button--primary:hover {
  background: var(--osint-cyan);
  border-color: var(--osint-cyan);
  color: var(--osint-ink);
}
[data-md-color-scheme="default"] .md-typeset .md-button--primary { color: #ffffff; }
.md-typeset .md-button:hover { background: var(--md-accent-fg-color--transparent); color: var(--osint-cyan); }
.md-typeset .md-button--primary:hover { filter: brightness(1.08); color: var(--osint-ink); }

/* ---------- Schémas : cadre discret ---------- */
.md-typeset img[src*="schemas/"] {
  display: block;
  margin: 1.2rem auto;
  padding: 0.6rem;
  border: 1px solid var(--osint-line);
  border-radius: 6px;
  background: var(--osint-ink-raised);
}
[data-md-color-scheme="default"] .md-typeset img[src*="schemas/"] { background: #ffffff; }

/* ---------- Cartes de rubriques ---------- */
.md-typeset .grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 0.9rem;
  margin: 1.2rem 0 2rem;
}
.md-typeset .grid-cards > div {
  position: relative;
  border: 1px solid var(--osint-line);
  border-radius: 6px;
  padding: 1rem 1.1rem;
  background: var(--osint-ink-raised);
  transition: border-color 0.15s ease;
}
[data-md-color-scheme="default"] .md-typeset .grid-cards > div { background: #f7fafb; }
.md-typeset .grid-cards > div:hover { border-color: var(--osint-cyan); }
.md-typeset .grid-cards > div p { margin: 0.35em 0; }
.md-typeset .grid-cards > div p:first-child { margin-top: 0; font-family: var(--osint-heading-font); font-size: 1.05em; }
.md-typeset .grid-cards .twemoji { color: var(--osint-cyan); margin-right: 0.25rem; }
.md-typeset .grid-cards > div.card-featured {
  grid-column: 1 / -1;
  border-color: var(--osint-cyan);
  background: linear-gradient(90deg, var(--md-accent-fg-color--transparent), transparent 70%), var(--osint-ink-raised);
}
[data-md-color-scheme="default"] .md-typeset .grid-cards > div.card-featured {
  background: linear-gradient(90deg, var(--md-accent-fg-color--transparent), transparent 70%), #f7fafb;
}

/* ---------- Accueil : bandeau et graphe de pivots ---------- */
.osint-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 1.5rem;
  align-items: center;
  margin: 0.5rem 0 1.5rem;
}
.md-typeset .osint-hero h1 {
  font-size: 2.6em;
  line-height: 1.08;
  margin: 0 0 0.5em;
  max-width: 14ch;
}
.osint-hero .osint-lead { font-size: 1.08em; color: var(--osint-muted); max-width: 46ch; }
.osint-hero .osint-actions, .osint-hero .osint-actions p { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.2rem; }
.osint-hero .osint-actions p { margin: 0; }
.osint-hero .md-button { margin: 0; }
.osint-graph { width: 100%; height: auto; display: block; }
.osint-graph .grid-dot { fill: var(--osint-line); }
.osint-graph .edge { stroke: var(--osint-cyan); stroke-width: 1.4; fill: none; opacity: 0.55; stroke-dasharray: 260; stroke-dashoffset: 0; }
.osint-graph .node rect { fill: var(--osint-ink-raised); stroke: var(--osint-line); stroke-width: 1.2; transition: stroke 0.15s ease; }
[data-md-color-scheme="default"] .osint-graph .node rect { fill: #ffffff; }
[data-md-color-scheme="default"] .osint-graph .core circle:not(.pulse) { fill: #e6f6f8; }
.osint-graph .node text { fill: var(--osint-text); font-family: var(--osint-heading-font); font-size: 15px; }
.osint-graph .node .sub { fill: var(--osint-muted); font-family: system-ui, sans-serif; font-size: 11px; }
.osint-graph a.node:hover rect, .osint-graph a.node:focus rect { stroke: var(--osint-cyan); stroke-width: 2; }
.osint-graph a.node:focus { outline: none; }
.osint-graph .core circle { fill: var(--osint-ink-high); stroke: var(--osint-cyan); stroke-width: 1.5; }
.osint-graph .core .pulse { fill: none; stroke: var(--osint-cyan); stroke-width: 1; opacity: 0; }
.osint-graph .core text { fill: var(--osint-cyan); font-family: var(--osint-heading-font); font-size: 16px; font-weight: 700; }
.osint-graph .verified rect { stroke: var(--osint-green); }
.osint-graph .verified .tick { fill: var(--osint-green); }

/* Un seul moment animé : les pistes se tracent au chargement */
@media (prefers-reduced-motion: no-preference) {
  .osint-graph .edge { stroke-dashoffset: 260; animation: osint-draw 1.4s ease-out forwards; }
  .osint-graph .edge:nth-of-type(2) { animation-delay: 0.12s; }
  .osint-graph .edge:nth-of-type(3) { animation-delay: 0.24s; }
  .osint-graph .edge:nth-of-type(4) { animation-delay: 0.36s; }
  .osint-graph .edge:nth-of-type(5) { animation-delay: 0.48s; }
  .osint-graph .edge:nth-of-type(6) { animation-delay: 0.6s; }
  .osint-graph .edge.second { animation-delay: 1s; }
  .osint-graph .node { opacity: 0; animation: osint-fade 0.5s ease-out forwards; animation-delay: 0.9s; }
  .osint-graph .core .pulse { animation: osint-pulse 2.4s ease-out 1.6s 2; }
}
@keyframes osint-draw { to { stroke-dashoffset: 0; } }
@keyframes osint-fade { to { opacity: 1; } }
@keyframes osint-pulse { 0% { opacity: 0.7; r: 46; } 100% { opacity: 0; r: 80; } }

.md-typeset .osint-principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1rem 1.6rem;
  margin-bottom: 2rem;
}
.md-typeset .osint-principles p { margin: 0; color: var(--osint-muted); }
.md-typeset .osint-principles .twemoji { color: var(--osint-cyan); }
.md-typeset .osint-principles strong { display: block; margin: 0.3rem 0 0.15rem; color: var(--md-default-fg-color); font-family: var(--osint-heading-font); font-size: 1.05em; }

@media screen and (max-width: 59.9375em) {
  .osint-hero { grid-template-columns: 1fr; }
  .md-typeset .osint-hero h1 { font-size: 2.1em; max-width: none; }
}

/* ---------- Quiz ---------- */
.md-typeset .quiz-q {
  border: 1px solid var(--osint-line);
  border-radius: 6px;
  margin: 0 0 1rem;
  padding: 0.6rem 1rem 0.8rem;
  background: var(--osint-ink-raised);
}
[data-md-color-scheme="default"] .md-typeset .quiz-q { background: #f7fafb; }
.md-typeset .quiz-q legend { font-family: var(--osint-heading-font); font-weight: 600; padding: 0 0.3rem; }
.md-typeset .quiz-opt { display: block; padding: 0.35rem 0.5rem; border-radius: 4px; cursor: pointer; }
.md-typeset .quiz-opt input { accent-color: var(--osint-cyan); }
.md-typeset .quiz-opt:hover { background: var(--md-accent-fg-color--transparent); }
.md-typeset .quiz-ok { border-color: var(--osint-green); }
.md-typeset .quiz-ko { border-color: var(--osint-red); }
.md-typeset .quiz-ok .quiz-answer, .md-typeset .quiz-ko .quiz-answer {
  background: rgba(94, 232, 154, 0.14);
  box-shadow: inset 3px 0 0 var(--osint-green);
  font-weight: 600;
}
.md-typeset .quiz-feedback { margin: 0.5rem 0 0; font-size: 0.85em; color: var(--osint-muted); }
.md-typeset .quiz-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.md-typeset .quiz-result { font-family: var(--osint-heading-font); font-size: 1.1em; font-weight: 700; margin-top: 1rem; }
.md-typeset .quiz-pass { color: var(--osint-green); }
.md-typeset .quiz-fail { color: var(--osint-amber); }

/* ---------- Méta des modules ---------- */
.md-typeset .module-meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem;
  font-size: 0.85em; color: var(--osint-muted);
  border-left: 3px solid var(--osint-cyan);
  padding-left: 0.8rem;
  margin-bottom: 1rem;
}
.md-typeset .module-meta p { margin: 0; }

/* ---------- Pied de page ---------- */
.md-footer { border-top: 1px solid var(--osint-line); }

/* ---------- Impression ---------- */
@media print {
  .md-header, .md-sidebar, .md-footer, .md-tabs, .quiz { display: none !important; }
}

/* Liens du pied de page (mentions légales, confidentialité) */
.md-copyright__highlight a, .md-copyright a { color: var(--osint-cyan); }
[data-md-color-scheme="default"] .md-copyright a { color: #3fd8e8; }
