/* Kartoza brand tokens.
 *
 * Aligned with kartoza/InfrastructureMapper so documentation across Kartoza
 * projects reads as one family. The three brand hues are taken directly from
 * the Kartoza symbol: #54A2CC, #EEB348, #8A8B8B.
 *
 * Diagrams generated by docs/hooks/generate_diagrams.py read the same values
 * from docs/assets/css/kartoza-palette.json, so illustrations and page chrome
 * cannot drift apart.
 */

:root {
  /* Brand */
  --kartoza-blue: #54a2cc;
  --kartoza-amber: #eeb348;
  --kartoza-grey: #8a8b8b;

  /* Extended blue ramp, for diagrams and depth */
  --kartoza-blue-100: #e4f1f8;
  --kartoza-blue-300: #9ccae2;
  --kartoza-blue-500: #54a2cc;
  --kartoza-blue-700: #2f7ba5;
  --kartoza-blue-900: #1b526f;

  /* Extended amber ramp */
  --kartoza-amber-100: #fcf3e0;
  --kartoza-amber-300: #f5d18f;
  --kartoza-amber-500: #eeb348;
  --kartoza-amber-700: #c68f2b;
  --kartoza-amber-900: #8a611a;

  /* Ink and surfaces */
  --text-default: #383939;
  --text-muted: #676869;
  --rule-line: #d1d1d1;
  --surface-cloud: #f5f5f2;
  --surface-white: #ffffff;

  /* Status */
  --status-success: #3c7d54;
  --status-success-tint: #eaf3ec;
  --status-warn: #eeb348;
  --status-warn-tint: #fcf3e0;
  --status-error: #b0473c;
  --status-error-tint: #fbefef;

  /* Type */
  --font-sans: "Nunito", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", monospace;
}

/* ---- Material theme mapping: light ---- */

[data-md-color-scheme="default"] {
  --md-primary-fg-color: var(--kartoza-blue);
  --md-primary-fg-color--light: var(--kartoza-blue-300);
  --md-primary-fg-color--dark: var(--kartoza-blue-700);
  --md-accent-fg-color: var(--kartoza-amber-700);
  --md-accent-fg-color--transparent: rgba(238, 179, 72, 0.1);

  --md-default-bg-color: var(--surface-white);
  --md-default-fg-color: var(--text-default);
  --md-default-fg-color--light: var(--text-muted);
  --md-typeset-a-color: var(--kartoza-blue-700);
  --md-code-bg-color: var(--surface-cloud);

  --md-footer-bg-color: var(--kartoza-blue-900);
  --md-footer-bg-color--dark: var(--kartoza-blue-900);
}

/* ---- Material theme mapping: dark ---- */

[data-md-color-scheme="slate"] {
  --md-primary-fg-color: var(--kartoza-blue);
  --md-primary-fg-color--light: var(--kartoza-blue-300);
  --md-primary-fg-color--dark: var(--kartoza-blue-900);
  --md-accent-fg-color: var(--kartoza-amber);
  --md-accent-fg-color--transparent: rgba(238, 179, 72, 0.14);

  --md-default-bg-color: #14202a;
  --md-default-fg-color: rgba(255, 255, 255, 0.9);
  --md-typeset-a-color: var(--kartoza-blue-300);
  --md-code-bg-color: #0e1720;

  --md-footer-bg-color: #0e1720;
  --md-footer-bg-color--dark: #0a1119;
}

/* ---- Status colours applied to admonitions ---- */

.md-typeset .admonition.success,
.md-typeset .admonition.tip {
  border-color: var(--status-success);
}

.md-typeset .admonition.warning {
  border-color: var(--status-warn);
}

.md-typeset .admonition.danger,
.md-typeset .admonition.bug {
  border-color: var(--status-error);
}

/* ---- Generated and hand-drawn diagrams ---- */

.md-typeset figure {
  margin: 1.6rem auto;
  text-align: center;
}

.md-typeset figure img,
.md-typeset figure svg,
.md-typeset img[src$=".svg"] {
  max-width: 100%;
  height: auto;
}

.md-typeset figure figcaption {
  color: var(--text-muted);
  font-size: 0.75rem;
  font-style: italic;
  margin-top: 0.5rem;
  max-width: 46rem;
}

[data-md-color-scheme="slate"] .md-typeset figure figcaption {
  color: rgba(255, 255, 255, 0.62);
}

/* Diagrams are authored on a light canvas; lift them slightly in dark mode so
   they do not sit as a hard white block against the page. */
[data-md-color-scheme="slate"] .md-typeset img[src$=".svg"],
[data-md-color-scheme="slate"] .md-typeset figure svg {
  filter: brightness(0.94) saturate(1.05);
  border-radius: 6px;
}

/* A generated diagram carries a marker so readers know it tracks the code. */
.md-typeset .generated-note {
  color: var(--text-muted);
  font-size: 0.7rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
