/*
 * Lapidarium — a stone collection under glass: the page is the plain gallery
 * wall, the header the cyan-lit case, links the teal labels that lead on.
 *
 * Every pairing below clears WCAG AA against the surface it sits on, because
 * a palette nobody can read is just a mood. Measured, not asserted: the
 * tightest pairing is the light link #007c8a on white at 4.9:1. The brand
 * cyan itself is 2.4:1 on white, so it is a surface, never text on white:
 * the header text on it is #0b1e22 at 7.2:1.
 *
 * The scheme names are the two in mkdocs.yml's palette; there is no
 * `primary` or `accent` there. The light scheme keeps Material's own page
 * and code colours; the dark one restates slate's, since a scheme of its own
 * name inherits none of them.
 */

:root {
  --lapidarium-cyan: #00b8d4;
  --lapidarium-ink: #0b1e22;
  --lapidarium-teal: #007c8a;
  --lapidarium-teal-deep: #00636e;
  --lapidarium-cyan-light: #4dd0e1;
}

/* ---- Both ---- */

/* The case keeps its light: the same cyan header in both schemes. */
[data-md-color-scheme^="lapidarium"] {
  --md-primary-fg-color: var(--lapidarium-cyan);
  --md-primary-fg-color--light: #62ebff;
  --md-primary-fg-color--dark: #0088a3;
  --md-primary-bg-color: var(--lapidarium-ink);
  --md-primary-bg-color--light: rgb(11 30 34 / 70%);
}

/* ---- Light ---- */

[data-md-color-scheme="lapidarium"] {
  color-scheme: light;

  /* 7.0:1 on white. */
  --md-accent-fg-color: var(--lapidarium-teal-deep);
  --md-accent-fg-color--transparent: rgb(0 99 110 / 10%);

  --md-typeset-a-color: var(--lapidarium-teal);
  --md-typeset-mark-color: rgb(0 184 212 / 25%);

  --md-footer-bg-color: var(--lapidarium-ink);
  --md-footer-bg-color--dark: #061114;
}

/* ---- Dark ---- */

[data-md-color-scheme="lapidarium-night"] {
  color-scheme: dark;

  --md-hue: 232;

  --md-default-fg-color: hsl(var(--md-hue) 15% 90% / 82%);
  --md-default-fg-color--light: hsl(var(--md-hue) 15% 90% / 56%);
  --md-default-fg-color--lighter: hsl(var(--md-hue) 15% 90% / 32%);
  --md-default-fg-color--lightest: hsl(var(--md-hue) 15% 90% / 12%);
  --md-default-bg-color: hsl(var(--md-hue) 15% 14%);
  --md-default-bg-color--light: hsl(var(--md-hue) 15% 14% / 54%);
  --md-default-bg-color--lighter: hsl(var(--md-hue) 15% 14% / 26%);
  --md-default-bg-color--lightest: hsl(var(--md-hue) 15% 14% / 7%);

  /* 8.8:1 on the page. */
  --md-accent-fg-color: var(--lapidarium-cyan-light);
  --md-accent-fg-color--transparent: rgb(77 208 225 / 10%);

  /* 6.8:1 on the page. */
  --md-typeset-a-color: var(--lapidarium-cyan);
  --md-typeset-color: var(--md-default-fg-color);
  --md-typeset-mark-color: rgb(0 184 212 / 30%);
  --md-typeset-kbd-color: hsl(var(--md-hue) 15% 90% / 12%);
  --md-typeset-kbd-accent-color: hsl(var(--md-hue) 15% 90% / 20%);
  --md-typeset-kbd-border-color: hsl(var(--md-hue) 15% 14%);
  --md-typeset-table-color: hsl(var(--md-hue) 15% 95% / 12%);
  --md-typeset-table-color--light: hsl(var(--md-hue) 15% 95% / 3.5%);

  --md-admonition-fg-color: var(--md-default-fg-color);
  --md-admonition-bg-color: var(--md-default-bg-color);

  --md-code-fg-color: hsl(var(--md-hue) 18% 86% / 82%);
  --md-code-bg-color: hsl(var(--md-hue) 15% 18%);
  --md-code-bg-color--light: hsl(var(--md-hue) 15% 18% / 90%);
  --md-code-bg-color--lighter: hsl(var(--md-hue) 15% 18% / 54%);
  --md-code-hl-color: #2977ff;
  --md-code-hl-color--light: #2977ff1a;

  --md-footer-bg-color: hsl(var(--md-hue) 15% 10% / 87%);
  --md-footer-bg-color--dark: hsl(var(--md-hue) 15% 8%);

  --md-shadow-z1: 0 0.2rem 0.5rem #0000000d, 0 0 0.05rem #0000001a;
  --md-shadow-z2: 0 0.2rem 0.5rem #00000040, 0 0 0.05rem #00000040;
  --md-shadow-z3: 0 0.2rem 0.5rem #0006, 0 0 0.05rem #00000059;
}

/*
 * Syntax highlighting, both schemes. Keywords take the palette's teal, the
 * rest stay as Material measured them: light inherits its defaults, dark
 * restates slate's.
 */

[data-md-color-scheme="lapidarium"] {
  /* 4.5:1 on the light code background. */
  --md-code-hl-keyword-color: var(--lapidarium-teal);
}

[data-md-color-scheme="lapidarium-night"] {
  --md-code-hl-keyword-color: var(--lapidarium-cyan-light);
  --md-code-hl-function-color: #c973d9;
  --md-code-hl-string-color: #2fb170;
  --md-code-hl-number-color: #e6695b;
  --md-code-hl-comment-color: var(--md-default-fg-color--light);
  --md-code-hl-name-color: var(--md-code-fg-color);
  --md-code-hl-operator-color: var(--md-default-fg-color--light);
  --md-code-hl-punctuation-color: var(--md-default-fg-color--light);
  --md-code-hl-constant-color: #9383e2;
  --md-code-hl-special-color: #f06090;
  --md-code-hl-generic-color: var(--md-default-fg-color--light);
  --md-code-hl-variable-color: var(--md-default-fg-color--light);
}

/* An inlined diagram shrinks to the column, never past its own size. */
.diagram svg {
  max-width: 100%;
  height: auto;
}

/* A variable name in a table's first column stays whole, not ALLOWED_HOST / S. */
.md-typeset td:first-child code {
  white-space: nowrap;
}
