/*
  Jade Specification – MkDocs Material Overrides

  Font-Dateien werden bewusst NICHT mitgeliefert.
  Erwartete Pfade:

  docs/assets/fonts/fantasque-sans-mono/
    FantasqueSansMono-Regular.woff2
    FantasqueSansMono-Italic.woff2
    FantasqueSansMono-Bold.woff2
    FantasqueSansMono-BoldItalic.woff2

  docs/assets/fonts/atkinson-hyperlegible/
    AtkinsonHyperlegible-Regular.woff2
    AtkinsonHyperlegible-Italic.woff2
    AtkinsonHyperlegible-Bold.woff2
    AtkinsonHyperlegible-BoldItalic.woff2

  Wenn eine Datei fehlt, fällt der Browser auf die nächste Font in der Kette zurück.
*/

/* Text font: Atkinson Hyperlegible */
@font-face {
    font-family: "Roboto Slab";
    src: url("../assets/fonts/RobotoSlab/RobotoSlab-Regular.ttf");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Roboto Slab";
    src: url("../assets/fonts/RobotoSlab/RobotoSlab-Regular.ttf");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Roboto Slab";
    src: url("../assets/fonts/RobotoSlab/RobotoSlab-Medium.ttf");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Roboto Slab";
    src: url("../assets/fonts/RobotoSlab/RobotoSlab-Medium.ttf") format("ttf");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

/* Code font: Fantasque Sans Mono */
@font-face {
    font-family: "Fantasque Sans Mono";
    src: url("../assets/fonts/fantasque-sans-mono/FantasqueSansMono-Regular.ttf")
        format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Fantasque Sans Mono";
    src: url("../assets/fonts/fantasque-sans-mono/FantasqueSansMono-Italic.ttf")
        format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Fantasque Sans Mono";
    src: url("../assets/fonts/fantasque-sans-mono/FantasqueSansMono-Bold.ttf")
        format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Fantasque Sans Mono";
    src: url("../assets/fonts/fantasque-sans-mono/FantasqueSansMono-BoldItalic.ttf")
        format("woff2");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

/*
  Material for MkDocs erwartet diese CSS-Variablen.
  Nicht direkt font-family auf body setzen, sonst zerstört man Fallbacks.
*/
:root {
    --md-text-font: "Roboto Slab";
    --md-code-font: "Fantasque Sans Mono";
}

/* Etwas ruhigeres Lesebild für lange Specs */
.md-typeset {
    font-size: 0.78rem;
    line-height: 1.68;
}

.md-typeset h1 {
    font-weight: 700;
    letter-spacing: -0.025em;
}

.md-typeset h2,
.md-typeset h3 {
    letter-spacing: -0.015em;
}

/*
  JDL-Code ist Syntax, keine typografische Interpretation.
  Ligaturen müssen in Code deaktiviert bleiben, damit ASCII-Operatoren
  wie ->, =>, |>, :> und <{ }> exakt sichtbar bleiben.
*/
.md-typeset code,
.md-typeset pre,
.md-typeset kbd {
    font-variant-ligatures: none;
    font-feature-settings:
        "calt" 0,
        "liga" 0;
}

.md-typeset pre > code {
    font-size: 0.74rem;
    line-height: 1.55;
}

/* Inline-Code etwas weniger brutal als Standard-Material */
.md-typeset code:not(pre code) {
    padding: 0.08em 0.28em;
    border-radius: 0.25rem;
}

/* ASCII-Diagramme bleiben gut lesbar */
.md-typeset pre code.language-text,
.md-typeset pre code.language-ascii,
.md-typeset pre code.language-plaintext {
    white-space: pre;
    tab-size: 4;
}

/* Tabellen in Specs sind oft dicht; etwas kompakter, aber nicht winzig */
.md-typeset table:not([class]) {
    font-size: 0.72rem;
}

/* Lange Navigationspunkte dürfen umbrechen */
.md-nav__link {
    white-space: normal;
}

/* Kleine optische Trennung für normative Boxen */
.md-typeset .admonition,
.md-typeset details {
    border-radius: 0.45rem;
}
