/* =====================================================================
   Myra Branding für Material for MkDocs
   Quelle der Tokens und Regeln:
     "Myra_Design_System_1.2__standalone_.html" (DOCU/htmldesign)
   Leitsätze des Design Systems 1.2:
     · Navy ist die Fläche, Cyan der Akzent, Weiß der Textkörper.
     · Scharfe Kanten überall — kein border-radius (Markenvorgabe).
     · Kontrastgebot: auf hellem Grund ist jeder Text Navy, auf dunklem
       Grund ist jeder Text Weiß. Gedämpfte Töne bleiben Platzhaltern
       vorbehalten (--ds-ph).
     · Für Text ausschließlich die funktionalen Token-Paare (WCAG AA),
       nie die rohen Markenfarben.
     · Montserrat = Überschriften, Rubik = Fließtext,
       JetBrains Mono = Code, Labels, Eyebrows.
   ===================================================================== */

/* ---------- Schriften (self-hosted) ----------
   woff2 zuerst, die älteren OTF/TTF aus dem Flare-Projekt als Fallback.  */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;
  src:url("../assets/fonts/Montserrat-Regular.otf") format("opentype");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;
  src:url("../assets/fonts/Montserrat-SemiBold.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;
  src:url("../assets/fonts/Montserrat-Bold.otf") format("opentype");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;
  src:url("../assets/fonts/Montserrat-ExtraBold.woff2") format("woff2");}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:900;font-display:swap;
  src:url("../assets/fonts/Montserrat-Black.otf") format("opentype");}

@font-face{font-family:"Rubik";font-style:normal;font-weight:400;font-display:swap;
  src:url("../assets/fonts/Rubik-Regular.woff2") format("woff2"),
      url("../assets/fonts/Rubik-Regular.ttf") format("truetype");}
@font-face{font-family:"Rubik";font-style:normal;font-weight:500;font-display:swap;
  src:url("../assets/fonts/Rubik-Medium.woff2") format("woff2");}
@font-face{font-family:"Rubik";font-style:normal;font-weight:600;font-display:swap;
  src:url("../assets/fonts/Rubik-SemiBold.woff2") format("woff2");}
@font-face{font-family:"Rubik";font-style:normal;font-weight:700;font-display:swap;
  src:url("../assets/fonts/Rubik-Bold.ttf") format("truetype");}

/* ---------- 1. Tokens aus dem Design System 1.2 ---------- */
:root{
  /* Marke */
  --brand-cyan:      #2AD9FF;
  --brand-cyan-hi:   #5BE3FF;
  --brand-darkblue:  #002B4A;
  --brand-buttontext:#00052C;

  /* Funktionale Paare auf Weiß (WCAG AA).
     --text-muted ist im Design System 1.2 gleich --text-primary:
     "rule: all text = ink (light)".                                   */
  --text-primary:    #002B4A;
  --text-muted:      #002B4A;
  --sky-on-white:    #005E8A;
  --green-on-white:  #2A7200;
  --red-on-white:    #B91C1C;
  --orange-on-white: #92400E;

  /* Funktionale Paare auf Navy.
     "rule: all text = white (dark surfaces)".                          */
  --text-inverse:    #FFFFFF;
  --text-muted-inv:  #FFFFFF;
  --sky-on-navy:     #3EDDFF;
  --green-on-navy:   #5FBF40;
  --red-on-navy:     #FF5744;
  --orange-on-navy:  #F79121;

  /* Navy-Chrome: die Navigation auf der Markenfläche trägt im Design
     System einen eigenen, ruhigeren Ton als der Fließtext (.nav-item).  */
  --nav-ink:         #C8D8E4;

  /* Flächen und Banner */
  --surface-neutral: #F2F4F6;
  --surface-sky:     #E0F4FF;
  --surface-green:   #E5FFDD;
  --surface-red:     #FEDCD9;
  --surface-orange:  #FEF0DC;
  --border:          #CCD5DB;

  /* Abstände */
  --space-xs:8px; --space-s:12px; --space-m:16px;
  --space-l:24px; --space-xl:32px; --space-2xl:40px;

  /* Bewegung */
  --dur-fast:120ms; --dur-base:180ms;

  /* Schriftfamilien */
  --font-head:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --font-body:"Rubik","Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}

/* Hellmodus-Ebenen (html[data-theme='light'] im Design System) */
[data-md-color-scheme="myra"]{
  color-scheme:light;
  --ds-bg:        #F2F4F6;
  --ds-bg-2:      #FFFFFF;
  --ds-surface:   #FFFFFF;
  --ds-surface-2: #F2F4F6;
  --ds-line:      #CCD5DB;
  --ds-line-soft: #E1E6EA;
  --ds-ink:       #002B4A;
  --ds-ink-dim:   #002B4A;
  --ds-ink-mute:  #002B4A;
  --ds-ph:        #4D6B80;
  --ds-accent:    #005E8A;
  --ds-accent-bg: #E0F4FF;
  --ds-shadow:    0 1px 2px rgba(0,43,74,.08);
  /* Funktionale Statusfarben */
  --ds-pos:#2A7200; --ds-neg:#B91C1C; --ds-warn:#C2410C; --ds-info:#005E8A;
  --ds-focus:#2360C5;
  /* Rollennamen auf dieselben Farben — keine neuen Töne */
  --ds-link:#005E8A; --ds-success:#2A7200; --ds-danger:#B91C1C;
  --ds-warning:#C2410C;
  /* Interaktionsstufen: nur dort, wo eine klickbare Fläche eine
     sichtbare Rückmeldung braucht.                                     */
  --ds-accent-hover:#00476B; --ds-accent-active:#00354F; --ds-on-accent:#FFFFFF;
}

/* Dunkelmodus-Ebenen (html[data-theme='dark'] im Design System) */
[data-md-color-scheme="slate"]{
  color-scheme:dark;
  --ds-bg:        #0A1A29;
  --ds-bg-2:      #0F2334;
  --ds-surface:   #102A40;
  --ds-surface-2: #163049;
  --ds-line:      rgba(62,221,255,.20);
  --ds-line-soft: rgba(255,255,255,.10);
  --ds-ink:       #FFFFFF;
  --ds-ink-dim:   #FFFFFF;
  --ds-ink-mute:  #FFFFFF;
  --ds-ph:        #C2D2DF;
  --ds-accent:    #5BE3FF;
  --ds-accent-bg: rgba(62,221,255,.12);
  --ds-shadow:    0 1px 0 rgba(0,0,0,.30);
  --ds-pos:#5FBF40; --ds-neg:#FF5744; --ds-warn:#FFB454; --ds-info:#3EDDFF;
  --ds-focus:#2360C5;
  --ds-link:#3EDDFF; --ds-success:#5FBF40; --ds-danger:#FF5744;
  --ds-warning:#FFB454;
  --ds-accent-hover:#26C6E6; --ds-accent-active:#12AECF; --ds-on-accent:#002B4A;
}

/* ---------- 2. Material-Paletten aus den Tokens ableiten ---------- */
[data-md-color-scheme="myra"],
[data-md-color-scheme="slate"]{
  --md-default-fg-color:            var(--ds-ink);
  --md-default-fg-color--light:     var(--ds-ink-dim);
  --md-default-fg-color--lighter:   var(--ds-ink-mute);
  --md-default-fg-color--lightest:  var(--ds-line);
  --md-default-bg-color:            var(--ds-bg-2);

  --md-primary-fg-color:            var(--brand-darkblue);
  --md-primary-fg-color--light:     #163049;
  --md-primary-fg-color--dark:      #001B30;
  --md-primary-bg-color:            var(--text-inverse);
  --md-primary-bg-color--light:     var(--nav-ink);

  --md-accent-fg-color:             var(--ds-accent);
  --md-accent-fg-color--transparent:var(--ds-accent-bg);

  --md-typeset-color:               var(--ds-ink);
  --md-typeset-a-color:             var(--ds-link);
  --md-code-bg-color:               var(--ds-surface-2);
  --md-code-fg-color:               var(--ds-ink);
  --md-footer-bg-color:             var(--brand-darkblue);
  --md-footer-bg-color--dark:       #001B30;
  --md-footer-fg-color:             var(--text-inverse);
  --md-footer-fg-color--light:      var(--nav-ink);
  --md-footer-fg-color--lighter:    var(--nav-ink);
  --md-typeset-table-color:         var(--ds-line);

  --md-text-font-family:            var(--font-body);
  --md-code-font-family:            var(--font-mono);
}

/* ---------- 3. Grundlagen ---------- */
/* Markenvorgabe des Design Systems: scharfe Kanten, kein border-radius. */
*,*::before,*::after{border-radius:0 !important;}

/* Fließtext: Rubik 14 px, Zeilenhöhe 1.5 (body des Design Systems).
   Material stellt die Wurzel auf 125 %, 1 rem sind also 20 px.        */
body,input,select,textarea,button{font-family:var(--font-body);}
.md-typeset{font-size:.7rem;line-height:1.5;}
.md-typeset .md-content__inner>:first-child{margin-top:0;}
::placeholder{color:var(--ds-ph);opacity:1;}

/* Fokusring — universell, 2 px Akzent mit 2 px Abstand. */
*:focus{outline:none;}
*:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important;}
}

/* ---------- 4. Seitenraster: Fläche, Inhaltskarte, Breite ---------- */
.md-grid{max-width:none;}
.md-main{background:var(--ds-bg);}
.md-main__inner{margin-top:0;}

/* .md-main__inner ist eine Flex-Zeile aus Navigation, Inhaltsverzeichnis
   und Inhalt. Mit Umbruch belegt die Kopfleiste (.myra-topbar) die erste
   Zeile neben der Navigation und läuft bis zum rechten Rand; Inhalt und
   Inhaltsverzeichnis rücken in die zweite Zeile darunter. Die Reihenfolge
   wird dafür ausdrücklich gesetzt, weil Flex nach "order" umbricht.     */
.md-main__inner{flex-wrap:wrap;}
.myra-topbar{order:1;flex:0 0 100%;}
.md-content{order:2;padding:0;}
.md-sidebar--secondary{order:3;}

/* Sobald das Inhaltsverzeichnis eingeblendet wird, tritt an die Stelle des
   Umbruchs ein Raster: die Navigation steht über beide Zeilen links, die
   Kopfleiste beginnt an ihrer Kante und läuft bis zum rechten Rand, Inhalt
   und Inhaltsverzeichnis liegen darunter. Ohne Seitennavigation (hide:
   navigation, z. B. Startseite) oder solange sie als Schublade über der
   Seite liegt, entfällt die erste Spalte und die Leiste nimmt die volle
   Breite ein.                                                          */
@media screen and (min-width:60em){
  .md-main__inner{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:auto 1fr;}
  .md-sidebar--primary{grid-column:1;grid-row:1/3;align-self:start;}
  .myra-topbar{grid-column:2/4;grid-row:1;}
  .md-content{grid-column:2;grid-row:2;}
  .md-sidebar--secondary{grid-column:3;grid-row:2;align-self:start;}
}
/* .page des Design Systems: keine Karte, keine Umrandung — der Text
   steht unmittelbar auf der Seitenfläche. Maße 26/36/56, Satzbreite
   höchstens 1280 px.                                                   */
.md-content__inner{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:26px 36px 56px;
  margin:0;
  max-width:64rem;
}
.md-content__inner::before{display:none;}
@media screen and (max-width:76.1875em){
  .md-content__inner{padding:24px 18px 60px;}
}

/* ---------- 5. Typografie (Product-Ramp des Design Systems) ---------- */
.md-typeset :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--font-head);color:var(--ds-ink);text-wrap:balance;}

.md-typeset h1{font-size:1.9rem;font-weight:800;line-height:1.06;
  letter-spacing:-.02em;color:var(--ds-ink);margin:0 0 var(--space-s);}
/* Abschnitte werden im Design System durch eine Haarlinie *über* dem
   Titel getrennt (.section + .section), nicht durch eine Linie darunter. */
.md-typeset h2{font-size:1.05rem;font-weight:700;line-height:1.2;
  letter-spacing:0;margin-top:var(--space-2xl);
  padding-top:var(--space-xl);border-top:1px solid var(--ds-line-soft);}
.md-typeset h1+h2{margin-top:var(--space-l);padding-top:0;border-top:none;}
.md-typeset h3{font-size:.8rem;font-weight:700;line-height:1.35;
  margin-top:var(--space-xl);}
.md-typeset h4{font-size:.7rem;font-weight:600;line-height:1.45;
  margin-top:var(--space-l);}
.md-typeset h5{font-size:.65rem;font-weight:600;line-height:1.5;
  text-transform:none;color:var(--ds-ink);}
/* h6 folgt dem Label-Stil des Design Systems (.card__head) */
.md-typeset h6{font-size:.55rem;font-weight:700;line-height:1.5;
  text-transform:uppercase;letter-spacing:.10em;color:var(--ds-ink);}

.md-typeset p{text-wrap:pretty;}
.md-typeset .lead,.md-typeset h1+p{font-size:.75rem;line-height:1.55;
  color:var(--ds-ink-dim);}

@media screen and (max-width:76.1875em){
  .md-typeset h1{font-size:1.6rem;}
  .md-typeset h2{font-size:.98rem;}
}

/* ---------- 6. Kopfleiste ---------- */
.md-header{
  background-color:var(--brand-darkblue);
  color:var(--text-inverse);
  box-shadow:0 1px 0 rgba(0,0,0,.30);
}
.md-header__title{font-family:var(--font-head);font-weight:800;
  font-size:.8rem;letter-spacing:.01em;}
.md-header__button.md-logo :is(img,svg){height:1.5rem;width:auto;}
/* Wortmarke wie .sidebar__brand: nur der Titel, mittig auf einer Linie
   mit dem Myra-Logo — die Zeilenhöhe von .md-header__title zentriert
   ihn, deshalb bleibt sie hier unangetastet.                           */

/* Sprachschalter links neben dem Umschalter für Hell- und Dunkelmodus.
   Benannt ist immer die andere Fassung: auf der deutschen Seite steht
   EN, auf der englischen DE. Maße wie bei den Symbolschaltflächen der
   Kopfleiste, Beschriftung in Mono wie die übrigen Kennungen.          */
a.md-header__button.myra-lang{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.2rem;height:1.2rem;padding:0 .25rem;
  font-family:var(--font-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.08em;line-height:1;
  color:currentcolor;text-decoration:none;
  border:1px solid rgba(255,255,255,.35);
  transition:border-color var(--dur-fast),background-color var(--dur-fast);}
a.md-header__button.myra-lang:is(:hover,:focus){
  opacity:1;border-color:var(--text-inverse);
  background-color:rgba(255,255,255,.12);}

/* ---------- 6a. Hauptnavigation waagerecht (.md-tabs) --------------
   Die obersten Navigationspunkte stehen als Reiter in der Kopfleiste;
   die Seitenleiste zeigt daraufhin nur den Unterbaum des aktiven
   Reiters. Gestaltung nach .nav-item des Design Systems: Rubik 500 auf
   Navy, aktiv in Weiß mit Cyan-Balken.                                */
.md-tabs{background-color:#001B30;}
.md-tabs__list{padding-left:0;}
.md-tabs__item{padding:0 .8rem;}
.md-tabs__link{
  font-family:var(--font-body);font-weight:500;font-size:.7rem;
  color:var(--nav-ink);opacity:1;position:relative;
  margin-top:.5rem;padding-bottom:.5rem;
  transition:color var(--dur-fast);}
.md-tabs__link:is(:hover,:focus){color:var(--text-inverse);}
/* Material markiert den aktiven Reiter am <li>, nicht am Anker. */
.md-tabs__item--active>.md-tabs__link,
.md-tabs__item--active>.md-tabs__link:hover{
  color:var(--text-inverse);font-weight:600;}
.md-tabs__item--active>.md-tabs__link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--sky-on-navy);}

/* Suchfeld: scharfe Kanten, Akzentrahmen im Fokus */
.md-search__form{background-color:rgba(255,255,255,.10);}
.md-search__form:hover{background-color:rgba(255,255,255,.16);}
[data-md-toggle=search]:checked~.md-header .md-search__form{
  background-color:var(--ds-surface);
  box-shadow:0 0 0 2px var(--sky-on-navy);}
.md-search__input::placeholder{color:var(--nav-ink);}
.md-search-result__link:is(:focus,:hover){background-color:var(--ds-accent-bg);}
.md-search-result__article--document .md-search-result__title{
  font-family:var(--font-head);font-weight:700;}

/* ---------- 7. Primärnavigation — Navy-Chrome des Design Systems ---- */
@media screen and (min-width:76.25em){
  /* Die Navigation klebt am oberen Rand und ist nur so hoch wie ihr
     Baum. Der Navy-Streifen gehört deshalb an .md-main: der Bereich
     reicht von der Kopf- bis zur Fußzeile, damit läuft die Leiste über
     die ganze Seitenlänge und schiebt sich nicht über die Fußzeile.   */
  .md-main{
    background:linear-gradient(to right,
      var(--brand-darkblue) 0 12rem,
      rgba(255,255,255,.08) 12rem calc(12rem + 1px),
      var(--ds-bg) calc(12rem + 1px) 100%);}
  .md-sidebar--primary{
    background:transparent;border-right:none;
    width:12rem;padding:0;
    height:auto;max-height:calc(100vh - 2.4rem);}
  .md-main:has(>.md-main__inner>.md-sidebar--primary[hidden]){
    background:var(--ds-bg);}
  .md-sidebar--primary .md-sidebar__scrollwrap{
    margin:0;padding:18px 14px 20px;
    max-height:calc(100vh - 4.8rem);overflow-y:auto;}
  .md-sidebar--primary .md-nav{color:var(--nav-ink);}

  /* Gruppentitel wie .sidebar__group-title */
  /* Der Seitenname steht bereits in der Kopfleiste — in der Seitenleiste
     wird er nicht wiederholt.                                          */
  .md-sidebar--primary .md-nav__title{display:none;}
  /* Sektionen: Material bettet den Titelanker in .md-nav__container ein —
     beide Ebenen müssen den Label-Stil bekommen.                       */
  .md-sidebar--primary .md-nav__item--section>.md-nav__link,
  .md-sidebar--primary .md-nav__item--section>.md-nav__container>.md-nav__link{
    font-family:var(--font-head);font-weight:700;font-size:.5rem;
    letter-spacing:.16em;text-transform:uppercase;
    color:rgba(200,216,228,.55);background:transparent;}
  .md-sidebar--primary .md-nav__item--section>.md-nav__container{
    margin-top:var(--space-m);}

  /* Navigationseinträge wie .nav-item */
  .md-sidebar--primary .md-nav__link{
    font-family:var(--font-body);font-weight:500;font-size:.7rem;
    color:var(--nav-ink);padding:9px 12px;margin:0;
    transition:background-color var(--dur-fast),color var(--dur-fast);}
  .md-sidebar--primary .md-nav__link:hover{
    background:rgba(255,255,255,.05);color:var(--text-inverse);}
  .md-sidebar--primary .md-nav__link--active,
  .md-sidebar--primary .md-nav__link--active:hover{
    background:rgba(62,221,255,.10);color:var(--text-inverse);
    font-weight:600;position:relative;}
  .md-sidebar--primary .md-nav__link--active::before{
    content:"";position:absolute;left:0;top:5px;bottom:5px;
    width:3px;background:var(--sky-on-navy);}

  /* Aufklappbare Einträge bestehen aus .md-nav__container + Anker + Label.
     Material markiert Anker UND Label als aktiv — das ergäbe zwei getrennte
     Kästen. Der aktive Zustand liegt deshalb auf dem Container, damit die
     Zeile wie ein .nav-item des Design Systems durchgehend wirkt.        */
  .md-sidebar--primary .md-nav__container:has(>.md-nav__link--active){
    background:rgba(62,221,255,.10);position:relative;}
  .md-sidebar--primary .md-nav__container:has(>.md-nav__link--active)::before{
    content:"";position:absolute;left:0;top:5px;bottom:5px;
    width:3px;background:var(--sky-on-navy);z-index:1;}
  .md-sidebar--primary .md-nav__container>.md-nav__link--active{
    background:transparent;}
  .md-sidebar--primary .md-nav__container>.md-nav__link--active::before{
    content:none;}
  /* Der Container trägt selbst die Klasse .md-nav__link — sein
     Innenabstand käme sonst zu dem des Ankers hinzu und Einträge mit
     Pfeil stünden weiter rechts als ihre Geschwister ohne Pfeil.       */
  .md-sidebar--primary .md-nav__link.md-nav__container{padding:0;}
  .md-sidebar--primary .md-nav__container>label.md-nav__link{
    cursor:pointer;}
  /* Mit den Reitern hebt Material (.md-nav--lifted) den Namen des aktiven
     Reiters an den Kopf der Seitenleiste. Er steht bereits im Reiter und
     im Brotkrumenpfad und entfällt hier.                                */
  .md-sidebar--primary .md-nav--lifted>.md-nav__list
    >.md-nav__item--active>:is(.md-nav__link,.md-nav__container>.md-nav__link){
    display:none;}
  .md-sidebar--primary .md-nav--secondary{display:none;}

  /* Material kürzt lange Titel mit Auslassungspunkten. In dieser Doku sind
     die Abschnittstitel lang und beschreibend — sie werden umbrochen
     statt abgeschnitten.                                                */
  .md-sidebar--primary .md-ellipsis{
    white-space:normal;overflow:visible;text-overflow:clip;}
}

/* Aufklapppfeil der Hauptnavigation: der Hover-Zustand zeigt sich allein an
   der Farbe des Pfeils, die Fläche bleibt in jedem Fall transparent.
   Material hinterlegt den Pfeil sonst mit --md-accent-fg-color--transparent —
   im Myra-Farbsatz ein deckendes Hellblau (#E0F4FF), das auf dem
   navyfarbenen Grund als heller Kasten erscheint.
   Die Regeln stehen bewusst außerhalb der Breitenabfragen: dieselbe
   Navigation erscheint auf breiten Fenstern als Seitenleiste und auf
   schmalen als Schublade.                                                */
.md-nav--primary .md-nav__icon,
.md-nav--primary .md-nav__icon:hover,
.md-nav--primary .md-nav__link:hover .md-nav__icon:hover{
  background-color:transparent;}
.md-nav--primary .md-nav__icon{
  color:var(--nav-ink);transition:color var(--dur-fast);}
.md-nav--primary .md-nav__link:hover .md-nav__icon,
.md-nav--primary .md-nav__icon:hover{color:var(--sky-on-navy);}
/* Bei Einträgen mit eigener Seite ist der Pfeil ein Label neben dem Anker —
   die Zeile soll trotzdem als Ganzes reagieren.                          */
.md-nav--primary
  .md-nav__container:has(>label.md-nav__link:hover):not(:has(>.md-nav__link--active)){
  background:rgba(255,255,255,.05);}

/* Ausklappnavigation auf schmalen Viewports */
@media screen and (max-width:76.1875em){
  /* Material legt für jede Ebene der Schubladennavigation ein eigenes
     <nav>/<ul> an und färbt es mit der Standard-Hintergrundfarbe. Ohne
     diese Regeln stünde heller Navigationstext auf weißer Fläche.      */
  .md-nav--primary,
  .md-nav--primary .md-nav,
  .md-nav--primary .md-nav__list,
  .md-nav--primary .md-nav__title~.md-nav__list{
    background-color:var(--brand-darkblue);color:var(--nav-ink);
    box-shadow:none;}
  .md-nav--primary .md-nav__title{
    background-color:#001B30;color:var(--text-inverse);
    font-family:var(--font-head);font-weight:700;box-shadow:none;}
  .md-nav--primary .md-nav__title .md-nav__button.md-logo :is(img,svg){
    height:1.2rem;width:auto;}
  .md-nav--primary .md-nav__link{color:var(--nav-ink);}
  .md-nav--primary .md-nav__link--active{
    color:var(--text-inverse);font-weight:600;
    background-color:rgba(62,221,255,.10);
    box-shadow:inset 3px 0 0 var(--sky-on-navy);}
  .md-nav--primary .md-nav__icon{color:var(--nav-ink);}
}

/* ---------- 7a. Kopfleiste des Inhaltsbereichs (.topbar) ------------
   Struktur wie im Design System: links der Brotkrumenpfad in Mono mit
   "/" als Trenner und der aktuellen Seite als .here, rechts die
   Statuszeile mit quadratischem Statuspunkt. Die Leiste spannt über die
   ganze Spaltenbreite, deshalb hebt der negative Rand den Innenabstand
   von .md-content auf.                                                 */
.myra-topbar{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:var(--space-s);
  padding:14px var(--space-xl);margin:0;
  background:var(--ds-bg-2);
  border-bottom:1px solid var(--ds-line-soft);}
.myra-crumbs{
  display:flex;flex-wrap:wrap;gap:8px;
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.04em;
  color:var(--ds-ink-mute);}
.myra-crumbs>:not(:last-child)::after{
  content:" /";margin-left:6px;color:var(--ds-ink-mute);}
.myra-crumbs a{color:inherit;text-decoration:none;
  transition:color var(--dur-fast);}
.myra-crumbs a:hover{color:var(--ds-accent);}
.myra-crumbs .here{color:var(--ds-ink);font-weight:600;}
.myra-topbar__meta{
  display:flex;flex-wrap:wrap;gap:18px;
  font-family:var(--font-mono);font-size:.55rem;letter-spacing:.06em;
  color:var(--ds-ink-mute);}
/* Scharfe Kanten sind Markenvorgabe — der Statuspunkt ist ein Quadrat. */
.myra-topbar__dot{display:inline-block;width:7px;height:7px;
  background:var(--green-on-white);margin-right:6px;vertical-align:middle;}
[data-md-color-scheme="slate"] .myra-topbar__dot{
  background:var(--green-on-navy);}
@media screen and (max-width:76.1875em){
  .myra-topbar{padding:10px var(--space-s);}
  .myra-topbar__meta{font-size:.5rem;gap:10px;}
}

/* ---------- 8. Inhaltsverzeichnis (rechte Spalte) ---------- */
/* Material hinterlegt den Titel des Inhaltsverzeichnisses beim Mitscrollen
   mit der Standardfläche; auf der grauen Seitenfläche bliebe davon ein
   weißer Balken stehen.                                                 */
/* Aufbau wie .toc des Design Systems: Titel als Label, darunter eine
   Liste an einer senkrechten Führungslinie; der aktive Eintrag trägt
   den Akzent als 2 px starke Marke auf dieser Linie.                   */
.md-sidebar--secondary{width:11.8rem;}
.md-sidebar--secondary .md-sidebar__scrollwrap{margin:0;padding:28px 28px 56px 4px;}
.md-sidebar--secondary .md-nav__title{
  font-family:var(--font-head);font-weight:700;font-size:.5rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ds-ink-mute);
  background:transparent;box-shadow:none;padding-left:14px;margin-bottom:12px;}
.md-nav--secondary>.md-nav__list{
  display:grid;gap:1px;border-left:1px solid var(--ds-line);}
.md-nav--secondary .md-nav__link{
  font-size:.625rem;line-height:1.4;color:var(--ds-ink-mute);
  padding:6px 14px;margin:0 0 0 -1px;border-left:2px solid transparent;
  transition:color var(--dur-fast),border-color var(--dur-fast);}
.md-nav--secondary .md-nav__link:hover{color:var(--ds-ink);}
.md-nav--secondary .md-nav__link--active{
  color:var(--ds-accent);font-weight:600;border-left-color:var(--ds-accent);}

/* ---------- 9. Links und Bewegung ---------- */
/* Verweise tragen die Rollenfarbe --ds-link; der Hover-Zustand nutzt
   dieselbe Rückmeldesprache wie die Schaltflächen (--ds-accent-hover). */
.md-typeset a{color:var(--ds-link);font-weight:500;
  transition:color var(--dur-fast) ease;}
.md-typeset a:hover{color:var(--ds-accent-hover);
  text-decoration:underline;text-underline-offset:2px;}
.md-typeset a.headerlink{color:var(--ds-ink-mute);text-decoration:none;}

/* ---------- 10. Tabellen (.pv-table) ------------------------------
   Kopfzeile auf neutraler Fläche, Montserrat-Versalien, nur waagerechte
   Trennlinien — kein Rahmen, keine Zebrastreifen.                     */
/* Material zeichnet Tabellen als inline-block und laesst sie damit auf
   ihren Inhalt schrumpfen. Eine Tabelle nimmt hier immer die volle
   Textbreite ein — sonst stehen zwei Tabellen derselben Seite
   verschieden weit und die Seite wirkt ausgefranst.                    */
/* Eine Tabelle steht wie ein Hinweiskasten auf der hellen Flaeche und
   nicht auf dem Grund der Seite — der ist getoent, und ohne eigene
   Flaeche verschwaemme die Tabelle mit ihm.                            */
.md-typeset table:not([class]){
  display:table;width:100%;
  border:none;box-shadow:none;font-size:.65rem;
  background-color:var(--ds-surface);}
/* Material umschließt Tabellen per JavaScript; damit sie die volle
   Spaltenbreite nutzen, wird der Wrapper auf block gestellt. Der
   umgebende .md-typeset__scrollwrap bleibt waagerecht scrollbar.      */
.md-typeset__table{display:block;padding:0;}
.md-typeset__table table{width:100%;}
/* Material zieht den Scrollbereich mit negativen Rändern aus dem Textfluss;
   in der umrandeten Inhaltskarte würde die Tabelle sonst überstehen.    */
.md-typeset__scrollwrap{margin-left:0;margin-right:0;}
.md-typeset table:not([class]) th{
  background-color:var(--ds-surface-2);
  font-family:var(--font-head);font-weight:700;font-size:.55rem;
  letter-spacing:.10em;text-transform:uppercase;color:var(--ds-ink-mute);
  padding:12px 14px;border-bottom:1px solid var(--ds-line);
  min-width:0;}
.md-typeset table:not([class]) td{
  color:var(--ds-ink);padding:12px 14px;vertical-align:top;
  border-bottom:1px solid var(--ds-line-soft);}
.md-typeset table:not([class]) tr:hover{background-color:var(--ds-surface-2);}
[data-md-color-scheme="slate"] .md-typeset table:not([class]) tr:hover{
  background-color:rgba(255,255,255,.03);}
.md-typeset table:not([class]) img{border:0;}
/* Ueber die volle Breite verteilt der Browser die Spalten nach ihrem
   Inhalt. Ein Wert in Code darf dabei nicht mitten im Wort brechen —
   sonst steht ein Feldname als "client_ / user_ag / ent" in der Spalte. */
.md-typeset table:not([class]) code{white-space:nowrap;}
/* Aufzaehlung in einer Zelle. Markdown-Listen sind dort nicht erlaubt,
   build_site.py setzt deshalb ein <ul>; Material formatiert nur seine
   eigenen Listen, also steht die Auszeichnung hier. */
.md-typeset .myra-zellenliste{
  margin:.2em 0;padding:0;list-style:none;}
.md-typeset .myra-zellenliste>li{
  position:relative;margin:0;padding-left:1em;}
.md-typeset .myra-zellenliste>li::before{
  content:"";position:absolute;left:.1em;top:.65em;
  width:4px;height:4px;border-radius:50%;
  background-color:var(--ds-accent);}

/* ---------- 11. Code ---------- */
.md-typeset code,.md-typeset kbd{font-family:var(--font-mono);
  font-size:.86em;background-color:var(--ds-surface-2);
  color:var(--ds-ink);padding:.1em .35em;}
/* Der Codeblock ist ein Kasten und traegt wie die Tabelle die helle
   Flaeche. Code mitten im Satz bleibt dagegen auf seinem getoenten Feld:
   es macht ihn im Fliesstext und in einer Tabellenzelle erkennbar.     */
.md-typeset pre>code{
  border:1px solid var(--ds-line-soft);border-left:3px solid var(--ds-accent);
  padding:14px 16px;background-color:var(--ds-surface);}
.md-typeset .highlight span.filename{
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;
  text-transform:uppercase;background:var(--ds-surface-2);
  color:var(--ds-ink-mute);border-bottom:1px solid var(--ds-line-soft);}

/* ---------- 12. Darstellungsmittel — Callouts ----------------------
   Aufbau wie in der Flare-Dokumentation (Tabelle "Darstellungsmittel"):
   links ein farbiges Symbolfeld, rechts der Textbereich, ringsum ein
   Rahmen in derselben Farbe. Die Symbole sind die Originalgrafiken des
   Flare-Projekts (Info_icon.svg, attention_icon.svg, Example_icon.svg)
   als Maske, damit die Farbe je nach Farbschema wechseln kann.
   Hinweis = Sky · Achtung = Orange · Beispiel = Grün — die Farbwerte
   stammen aus dem Design System, nicht aus dem Flare-Tabellenstil:
   dessen Grundtöne (#2ad9ff, #7dff54) tragen ein weißes Symbol nicht
   kontrastreich genug.
   Der Bezeichner ("Hinweis") bleibt im Markup, ist aber unsichtbar —
   wie in Flare trägt das Symbol die Bedeutung. Für Vorlesewerkzeuge
   und die Suche bleibt er lesbar.
   Zwei Bauformen mit gleichem Aussehen:
   .admonition  — eigenständiger Block (aus "> ℹ️ **Hinweis**")
   .myra-callout — Inline-Form in Tabellenzellen; dort sind Blöcke
   nicht erlaubt, siehe convert_inline_callouts in build_site.py.     */
:root{
  --md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.46 283.46"><path fill-rule="evenodd" d="M141.73,106.3c3.91,0,7.09,3.17,7.09,7.09v99.21c0,3.91-3.17,7.09-7.09,7.09s-7.09-3.17-7.09-7.09v-99.21c0-3.91,3.17-7.09,7.09-7.09Z"/><path fill-rule="evenodd" d="M141.73,56.69c5.87,0,10.63,4.76,10.63,10.63v.34c0,5.87-4.76,10.63-10.63,10.63s-10.63-4.76-10.63-10.63v-.34c0-5.87,4.76-10.63,10.63-10.63Z"/><path fill-rule="evenodd" d="M141.73,14.17c-70.45,0-127.56,57.11-127.56,127.56s57.11,127.56,127.56,127.56,127.56-57.11,127.56-127.56S212.18,14.17,141.73,14.17ZM0,141.73C0,63.46,63.46,0,141.73,0s141.73,63.46,141.73,141.73-63.46,141.73-141.73,141.73S0,220.01,0,141.73Z"/></svg>');
  --md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.46 283.46"><path fill-rule="evenodd" d="M141.73,269.29c70.45,0,127.56-57.11,127.56-127.56S212.18,14.17,141.73,14.17,14.17,71.28,14.17,141.73s57.11,127.56,127.56,127.56h0ZM283.46,141.73c0,78.28-63.46,141.73-141.73,141.73S0,220.01,0,141.73,63.46,0,141.73,0s141.73,63.46,141.73,141.73ZM141.73,223.23c-5.87,0-10.63-4.76-10.63-10.63v-.34c0-5.87,4.76-10.63,10.63-10.63s10.63,4.76,10.63,10.63v.34c0,5.87-4.76,10.63-10.63,10.63ZM134.65,170.08c0,3.91,3.17,7.09,7.09,7.09s7.09-3.17,7.09-7.09v-99.21c0-3.91-3.17-7.09-7.09-7.09s-7.09,3.17-7.09,7.09v99.21Z"/></svg>');
  --md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 284.46 270.59"><path d="M142.23.5l40.29,93.57,101.44,9.41-76.54,67.24,22.4,99.38-87.6-52.01-87.6,52.01,22.4-99.38L.5,103.47l101.44-9.41L142.23.5Z"/></svg>');
  --callout-bar:2.5rem;      /* Breite des Symbolfelds (Flare: 50 px) */
  --callout-icon-size:1.6rem;
}

/* --- Farbe und Symbol je Art ------------------------------------- */
.md-typeset :is(.admonition,details),
.md-typeset .myra-callout{
  --callout:var(--ds-accent);
  --callout-icon:var(--md-admonition-icon--note);
  --callout-glyph:var(--text-inverse);}
.md-typeset :is(.admonition,details).note,
.md-typeset .myra-callout--note{
  --callout:var(--sky-on-white);
  --callout-icon:var(--md-admonition-icon--note);}
.md-typeset :is(.admonition,details).warning,
.md-typeset .myra-callout--warning{
  --callout:var(--orange-on-white);
  --callout-icon:var(--md-admonition-icon--warning);}
.md-typeset :is(.admonition,details).example,
.md-typeset .myra-callout--example{
  --callout:var(--green-on-white);
  --callout-icon:var(--md-admonition-icon--example);}

/* --- Blockform ---------------------------------------------------- */
.md-typeset :is(.admonition,details){
  position:relative;
  margin:var(--space-m) 0;
  border:1px solid var(--callout);border-radius:0;
  box-shadow:none;font-size:.7rem;
  background-color:var(--ds-surface);
  color:var(--ds-ink);
  padding:10px 14px 10px calc(var(--callout-bar) + 14px);}
.md-typeset :is(.admonition,details)>:is(.admonition-title,summary){
  position:absolute;left:0;top:0;bottom:0;width:var(--callout-bar);
  margin:0;padding:0;border:0;border-radius:0;
  background-color:var(--callout);
  font-size:0;line-height:0;color:transparent;}
.md-typeset :is(.admonition,details)>:is(.admonition-title,summary)::before{
  left:50%;top:10px;transform:translateX(-50%);
  width:var(--callout-icon-size);height:var(--callout-icon-size);
  background-color:var(--callout-glyph);
  -webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);
  -webkit-mask-size:contain;mask-size:contain;}
.md-typeset :is(.admonition,details)>:is(.admonition-title,summary)+*{
  margin-top:0;}
.md-typeset :is(.admonition,details)>:last-child{margin-bottom:0;}

/* --- Inline-Form in Tabellenzellen -------------------------------- */
.md-typeset .myra-callout{
  display:block;position:relative;
  margin:6px 0 2px;padding:6px 8px 6px calc(var(--callout-bar) * .72 + 8px);
  border:1px solid var(--callout);
  background-color:var(--ds-surface);}
.md-typeset td>.myra-callout:first-child,
.md-typeset th>.myra-callout:first-child{margin-top:0;}
.md-typeset .myra-callout::before{
  content:"";position:absolute;left:0;top:0;bottom:0;
  width:calc(var(--callout-bar) * .72);
  background-color:var(--callout);}
.md-typeset .myra-callout::after{
  content:"";position:absolute;top:6px;
  left:calc(var(--callout-bar) * .36);transform:translateX(-50%);
  width:calc(var(--callout-icon-size) * .72);
  height:calc(var(--callout-icon-size) * .72);
  background-color:var(--callout-glyph);
  -webkit-mask:var(--callout-icon) center/contain no-repeat;
  mask:var(--callout-icon) center/contain no-repeat;}
/* Bezeichner unsichtbar, aber vorlesbar. */
.md-typeset .myra-callout__label{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;}

/* --- Dunkelmodus: helle Farbfläche, dunkles Symbol ---------------- */
[data-md-color-scheme="slate"] .md-typeset :is(.admonition,details),
[data-md-color-scheme="slate"] .md-typeset .myra-callout{
  background-color:var(--ds-surface-2);color:var(--ds-ink-dim);
  --callout-glyph:var(--ds-bg);}
[data-md-color-scheme="slate"] .md-typeset :is(.admonition,details).note,
[data-md-color-scheme="slate"] .md-typeset .myra-callout--note{
  --callout:var(--sky-on-navy);}
[data-md-color-scheme="slate"] .md-typeset :is(.admonition,details).warning,
[data-md-color-scheme="slate"] .md-typeset .myra-callout--warning{
  --callout:var(--orange-on-navy);}
[data-md-color-scheme="slate"] .md-typeset :is(.admonition,details).example,
[data-md-color-scheme="slate"] .md-typeset .myra-callout--example{
  --callout:var(--green-on-navy);}

/* ---------- 13. Handlungsschritte (Auszeichnungstabelle) ------------
   ► Arbeitsschritt · ▷ Schritt unterhalb Ebene 1 · ☑ Voraussetzung
   ↳ Zwischenergebnis · ➔ Ergebnis · ■ Punkt einer Übersicht
   build_site.py fasst das führende Zeichen in <span class="myra-step">;
   Listenpunkte mit einem solchen Marker verlieren ihr Aufzählungs-
   zeichen, damit nur das Darstellungsmittel sichtbar ist.             */
.md-typeset :is(ul,ol) li{margin-bottom:var(--space-xs);}
.md-typeset ul li::marker{color:var(--ds-accent);}

.md-typeset :is(ul,ol) li:has(>.myra-step:first-child),
.md-typeset :is(ul,ol) li:has(>p:first-child>.myra-step:first-child){
  list-style:none;}
.md-typeset .myra-step{color:var(--ds-accent);font-weight:700;
  margin-right:.15em;}
/* Übergeordnete Punkte tragen wie im Flare-Stylesheet ein Quadrat
   (ol.Overview > li > ol > li::marker). Die Glyphe zeichnet kleiner als
   ihre Schriftgröße, deshalb der Ausgleich auf Texthöhe.              */
.md-typeset .myra-step--overview{font-size:1.25em;line-height:1;
  vertical-align:baseline;margin-right:.3em;}
/* Overview-Punkte gliedern eine Anweisung, sie sind selbst kein Schritt:
   sie stehen an der Textkante, die Schritte darunter bleiben eingerückt.
   Der Betrag hebt den linken Rand der Liste (.md-typeset ul) auf.
   Nur auf oberster Ebene: ein Overview-Punkt unterhalb eines Overview-
   Punktes ist ein Unterpunkt und muss seine Einrückung behalten — sonst
   höbe der Betrag den Rand der Unterliste auf und beide Ebenen stünden
   bündig. :not(li li) grenzt die Regel auf die äußerste Liste ein.     */
.md-typeset :is(ul,ol) li:not(li li):has(>.myra-step--overview:first-child),
.md-typeset :is(ul,ol) li:not(li li):has(>p:first-child>.myra-step--overview:first-child){
  margin-left:-.625em;}
/* Ein Zwischenergebnis gehoert zu dem Schritt, der es ausloest, und ist
   selbst kein Schritt: es steht eine Stufe weiter rechts. Eingerueckt
   wird ueber den Innenabstand — der linke Aussenabstand traegt bereits
   die Einrueckung der Liste, und Folgezeilen sollen mit einruecken.    */
.md-typeset :is(ul,ol) li:has(>.myra-step--sub:first-child),
.md-typeset :is(ul,ol) li:has(>p:first-child>.myra-step--sub:first-child){
  padding-left:1.5em;}
/* Steht im Quelltext eine Leerzeile zwischen zwei Schritten, verpackt
   Python-Markdown nur diese Punkte in <p>. Ohne Nullung der Absatz-
   ränder stünden sonst einzelne Schritte weiter auseinander als ihre
   Nachbarn — die Abstände einer Anweisung bleiben so gleich.          */
.md-typeset :is(ul,ol) li>p:first-child:has(>.myra-step:first-child){
  margin-top:0;}
.md-typeset :is(ul,ol) li>p:last-child:has(>.myra-step:first-child){
  margin-bottom:0;}

/* ---------- 14. Bilder und Bildunterschriften ---------- */
.md-typeset img{border:1px solid var(--ds-line);background:#fff;max-width:100%;}
/* Piktogramme sind keine Screenshots: freigestellt und ohne Rahmen, in
   der Größe der umgebenden Zeile. Die Dateien sind transparent und in
   Navy gezeichnet — auf dunklem Grund werden sie deshalb aufgehellt.  */
.md-typeset img[src*="/icons/"]{
  width:44px;height:44px;object-fit:contain;padding:8px;
  border:none;background:transparent;vertical-align:middle;}
[data-md-color-scheme="slate"] .md-typeset img[src*="/icons/"]{
  filter:invert(1) hue-rotate(180deg);}
/* Vorschaubild: im Text hoechstens 600 px breit, die Hoehe folgt dem
   Seitenverhaeltnis. Der Verweis zeigt dieselbe Datei in ihrer
   Aufnahmegroesse — der Zeiger sagt das an.                            */
.md-typeset a.myra-thumb{
  display:block;line-height:0;width:-moz-fit-content;width:fit-content;
  max-width:100%;cursor:zoom-in;}
.md-typeset a.myra-thumb:hover{text-decoration:none;}
.md-typeset a.myra-thumb img{
  width:600px;max-width:100%;height:auto;
  transition:border-color var(--dur-fast) ease;}
.md-typeset a.myra-thumb:hover img{border-color:var(--ds-accent);}
/* Ein Bild innerhalb einer Anweisung gehoert zu den Schritten und steht
   deshalb an derselben Kante wie das ► der ersten Ebene: 0.625em Rand der
   Liste und 1.25em Rand des Punktes. Die Bildunterschrift darunter geht
   mit. Ausserhalb einer Anweisung bleibt ein Bild an der Textkante.
   Die Auszeichnung setzt hooks/darstellung.py.                          */
.md-typeset p:has(>a.myra-schrittbild),
.md-typeset p:has(>img.myra-schrittbild),
.md-typeset p:has(>a.myra-schrittbild)+p:has(>em:only-child),
.md-typeset p:has(>img.myra-schrittbild)+p:has(>em:only-child){
  margin-left:1.875em;}
.md-typeset p>em:only-child{
  display:block;font-family:var(--font-mono);font-style:normal;
  font-size:.58rem;letter-spacing:.06em;color:var(--ds-ink-mute);
  margin-top:calc(-1*var(--space-xs));}
/* Ein Video steht wie ein Bild im Text: derselbe Rahmen, dieselbe Breite,
   und es wird nie über seine Aufnahmegröße hinaus vergrößert.          */
.md-typeset .myra-video{
  display:block;max-width:600px;width:100%;height:auto;
  margin:var(--space-sm) 0;
  border:1px solid var(--ds-line);background:#000;}

/* ---------- 15. Einstiegskacheln der Startseite (.pv-card) --------- */
/* .md-typeset vorangestellt: Material setzt display:flow-root auf Listen —
   ohne die höhere Spezifität bliebe das Raster einspaltig.             */
/* Vier gleich breite Spalten in einer Reihe; erst unterhalb der
   Tablet-Breite wird umgebrochen.                                    */
.md-typeset .myra-tiles ul{
  list-style:none;display:grid;padding:0;margin:var(--space-l) 0;
  gap:var(--space-m);grid-template-columns:repeat(4,1fr);}
.md-typeset .myra-tiles li{margin:0;}
.md-typeset .myra-tiles li::marker{content:none;}
.myra-tiles li a{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:20px 12px;background:var(--ds-surface);text-align:center;
  border:1px solid var(--ds-line);border-top:3px solid var(--ds-accent);
  font-family:var(--font-head);font-weight:700;font-size:.7rem;
  color:var(--ds-ink);text-decoration:none;
  transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease;}
.md-typeset .myra-tiles li a img{
  width:52px;height:52px;padding:10px;}
.myra-tiles li a:hover{
  border-color:var(--ds-accent);text-decoration:none;
  box-shadow:0 4px 16px rgba(0,94,138,.10);}
[data-md-color-scheme="slate"] .myra-tiles li a:hover{
  box-shadow:0 4px 16px rgba(0,0,0,.35);}
@media screen and (max-width:44.9375em){
  .md-typeset .myra-tiles ul{grid-template-columns:repeat(2,1fr);}
}

/* ---------- 16. Fußbereich ---------- */
.md-footer{background-color:var(--brand-darkblue);position:relative;z-index:1;}
.md-footer-meta{background-color:#001B30;}
.md-footer__title{font-family:var(--font-head);font-weight:700;}
.md-copyright{font-family:var(--font-mono);font-size:.55rem;
  letter-spacing:.08em;color:var(--nav-ink);}
.md-copyright__highlight{color:var(--nav-ink);}

/* Fusszeile: Rechtevermerk, Kontakt und rechtliche Verweise stehen als
   fortlaufende Zeile, durch einen senkrechten Strich getrennt. Die Teile
   sind Spannen und keine Kaesten — sonst fiele ein Verweis mitten im Satz
   (die Anschrift, das Kontaktformular) aus dem Textfluss. Der Strich haengt
   hinten am Teil, nicht vorn am naechsten: sonst begaenne eine umgebrochene
   Zeile mit ihm. Auf schmalen Anzeigen steht jeder Teil auf einer eigenen
   Zeile, und der Strich entfaellt. */
.myra-fuss{padding:.35rem 0;line-height:1.9;}
.myra-fuss__teil:not(:last-child)::after{content:"|";opacity:.4;
  margin:0 .35rem 0 .45rem;}
.myra-fuss__recht a{margin-left:.5rem;}
/* Die rechtlichen Verweise beginnen eine neue Zeile. Der Umbruch steht als
   Zeichen vor dem Teil und nicht als eigener Kasten — so bleibt der Hinweis
   auf das Theme dahinter auf derselben Zeile. */
.myra-fuss__umbruch::before{content:"\A";white-space:pre;}
.myra-fuss__teil.myra-fuss__zeilenende::after{content:none;}
.myra-fuss a{color:var(--nav-ink);text-decoration:underline;
  text-underline-offset:.14em;}
.myra-fuss a:hover,.myra-fuss a:focus{color:var(--sky-on-navy);}
@media screen and (max-width:44.9375em){
  .myra-fuss__teil{display:block;}
  .myra-fuss__teil:not(:last-child)::after{content:none;}
  .myra-fuss__umbruch::before{content:none;}
}
.md-footer__link:hover{color:var(--sky-on-navy);opacity:1;}
.md-footer__direction{font-family:var(--font-mono);font-size:.5rem;
  letter-spacing:.14em;text-transform:uppercase;}

/* Zurück-nach-oben-Schaltfläche wie .btn--primary */
.md-top{background-color:var(--brand-cyan);color:var(--brand-buttontext);
  font-family:var(--font-head);font-weight:700;box-shadow:var(--ds-shadow);}
.md-top:hover{background-color:var(--brand-cyan-hi);color:var(--brand-buttontext);}

/* ---------- 17. Bausteine des Design Systems 1.2 -------------------
   Nur die Komponenten, die in Markdown-Seiten vorkommen können:
   Eyebrow, Abschnittsnummer, Schaltfläche, Tag, Kennzahl.           */

/* .eyebrow / .section-head__num — Mono-Versalien in Akzentfarbe */
.md-typeset .myra-eyebrow,
.md-typeset .myra-num{
  display:block;font-family:var(--font-mono);font-weight:600;
  font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ds-accent);margin:0 0 10px;}
.md-typeset .myra-num{letter-spacing:.14em;margin-bottom:6px;}

/* .btn / .btn--primary / .btn--secondary */
.md-typeset .md-button{
  font-family:var(--font-head);font-weight:700;font-size:.65rem;
  letter-spacing:.02em;padding:10px 18px;
  border:1.5px solid var(--ds-ink);color:var(--ds-ink);
  background:transparent;transition:background-color var(--dur-fast),
  color var(--dur-fast),border-color var(--dur-fast);}
.md-typeset .md-button:hover{
  background:var(--ds-ink);color:var(--ds-bg-2);text-decoration:none;}
.md-typeset .md-button--primary{
  background:var(--brand-cyan);color:var(--brand-buttontext);
  border-color:var(--brand-cyan);}
.md-typeset .md-button--primary:hover{
  background:var(--brand-cyan-hi);border-color:var(--brand-cyan-hi);
  color:var(--brand-buttontext);}

/* .tag — Statuskennzeichen in Mono-Versalien */
.md-typeset .myra-tag{
  display:inline-flex;align-items:center;
  font-family:var(--font-mono);font-size:.5rem;font-weight:600;
  letter-spacing:.10em;text-transform:uppercase;line-height:1.4;
  padding:3px 8px;background:var(--surface-neutral);color:var(--text-muted);
  border:1px solid var(--border);}
.md-typeset .myra-tag--green {background:var(--surface-green); color:var(--green-on-white); border-color:transparent;}
.md-typeset .myra-tag--red   {background:var(--surface-red);   color:var(--red-on-white);   border-color:transparent;}
.md-typeset .myra-tag--orange{background:var(--surface-orange);color:var(--orange-on-white);border-color:transparent;}
.md-typeset .myra-tag--sky   {background:var(--surface-sky);   color:var(--sky-on-white);   border-color:transparent;}
[data-md-color-scheme="slate"] .md-typeset .myra-tag{
  background:rgba(255,255,255,.06);color:var(--ds-ink);
  border-color:var(--ds-line-soft);}
[data-md-color-scheme="slate"] .md-typeset .myra-tag--green {color:var(--green-on-navy);}
[data-md-color-scheme="slate"] .md-typeset .myra-tag--red   {color:var(--red-on-navy);}
[data-md-color-scheme="slate"] .md-typeset .myra-tag--orange{color:var(--orange-on-navy);}
[data-md-color-scheme="slate"] .md-typeset .myra-tag--sky   {color:var(--sky-on-navy);}

/* .pv-fact — Kennzahl mit Beschriftung */
.md-typeset .myra-stats{display:grid;gap:var(--space-l);
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:var(--space-l) 0;}
.md-typeset .myra-stat__num{font-family:var(--font-head);font-weight:800;
  font-size:1.9rem;line-height:1;letter-spacing:-.02em;color:var(--ds-accent);}
.md-typeset .myra-stat__lbl{font-size:.65rem;margin-top:8px;color:var(--ds-ink);}

/* ---------- 18. Versionsverfolgung: Zeile aufklappen ----------------
   Die Zelle „Änderungsgrund“ traegt ein <details>. Zu sehen ist erst
   die Einleitung der Zeile; die Abschnitte selbst stehen darunter,
   sobald der Lesende aufklappt. Die Regeln nehmen zurueck, was der
   Abschnitt „Hinweise“ jedem <details> gibt — dort ist ein <summary>
   der farbige Balken eines Kastens, hier ist es die Zeilenbeschriftung.
   Im Handbuch klappt pdf_event_hook.py alle Zeilen auf; die
   Beschriftung entfaellt dort (templates/styles.scss).             */
.md-typeset details.myra-version{
  position:static;margin:0;padding:0;border:0;border-radius:0;
  background:none;background-color:transparent;box-shadow:none;
  font-size:inherit;color:inherit;}
[data-md-color-scheme="slate"] .md-typeset details.myra-version{
  background:none;background-color:transparent;color:inherit;}
.md-typeset details.myra-version>summary.myra-version__titel{
  position:relative;left:auto;top:auto;bottom:auto;
  display:block;width:auto;height:auto;
  margin:0;padding:0 0 0 1.2em;border:0;border-radius:0;
  background:none;background-color:transparent;
  font-size:inherit;line-height:inherit;font-weight:500;
  color:var(--ds-link);cursor:pointer;list-style:none;}
.md-typeset details.myra-version>summary.myra-version__titel::after{
  content:none;display:none;}
.md-typeset details.myra-version>summary.myra-version__titel::marker,
.md-typeset details.myra-version>summary.myra-version__titel::-webkit-details-marker{
  content:"";display:none;}
.md-typeset details.myra-version>summary.myra-version__titel:hover{
  color:var(--ds-accent-hover);text-decoration:underline;}
.md-typeset details.myra-version>summary.myra-version__titel:focus-visible{
  outline:2px solid var(--ds-accent);outline-offset:2px;}
.md-typeset details.myra-version>summary.myra-version__titel::before{
  content:"▸";position:absolute;left:0;top:0;
  width:1em;height:auto;margin:0;transform:none;
  background:none;background-color:transparent;
  -webkit-mask-image:none;mask-image:none;
  font-size:inherit;line-height:inherit;color:currentColor;}
.md-typeset details.myra-version[open]>summary.myra-version__titel::before{
  content:"▾";}
.md-typeset details.myra-version>.myra-version__inhalt{
  margin-top:var(--space-xs);}
.md-typeset details.myra-version>.myra-version__inhalt .myra-zellenliste{
  margin-top:var(--space-xxs);}
