/* tokens.css, ERZEUGT von tools/tokens-css.mjs aus design/tokens.json.
   Nicht von Hand ändern: der nächste Build überschreibt die Datei.
   Quelle der Wahrheit ist website/src/app/globals.css im Nachbar-Repo;
   npm run tokens:pruefen misst dagegen (PLAN.md 2.8). */

:root {
  color-scheme: light dark;

  /* Farben, hell. Aus design/tokens.json, erzeugt aus globals.css.
     Die Zahlen dahinter sind gerechnet, nicht getippt: tools/tokens-css.mjs
     ruft tools/kontrast.mjs bei jedem Build auf. */
  --seite: #eef0e6;
  --karte: #f7f8f1;            /* 1,08:1 auf --seite */
  --feld: #ffffff;             /* 1,07:1 auf --karte */
  --ink: #424242;              /* 8,73:1 auf --seite, 9,40:1 auf --karte */
  --ink-2: #5d6158;            /* 5,50:1 auf --seite, 5,93:1 auf --karte */
  --akzent: #855a24;           /* 5,23:1 auf --seite, 5,64:1 auf --karte */
  /* Schrift auf dem gefüllten Knopf, gerechnet gegen den Knopf selbst. */
  --knopf-ink: #ffffff;        /* 6,03:1 auf --akzent */
  --seite-tief: #464d43;       /* 7,59:1 auf --seite */

  /* Trennlinie zwischen Flächen. Trägt keine Bedienung und darf deshalb
     schwach sein; für einen Feldrand ist --kante-b zuständig. */
  --kante: #d5d7c9;            /* 1,27:1 auf --seite, 1,37:1 auf --karte */
  /* Rand von Bedienelementen, WCAG 1.4.11 verlangt 3,0:1. */
  --kante-b: #585b56;          /* 5,99:1 auf --seite, 6,45:1 auf --karte */

  /* Die zwei Statusfarben der Zustandschips (Phase 4, Etappe C).
     Grün heißt bezahlt, Rot heißt überfällig; die anderen vier Zustände
     tragen keine eigene Farbe, sondern Kontur und Durchstreichung. Die
     Farbe steht nie allein: neben jedem Chip steht sein Wort.
     Gerechnet von statusfarbe() bei Buntheit 0,10 auf 4,5:1 gegen den
     schlechteren der beiden Gründe (WCAG 1.4.3, Text). */
  --gut: #48773e;              /* 4,58:1 auf --seite, 4,93:1 auf --karte */
  --schlecht: #a15651;         /* 4,60:1 auf --seite, 4,96:1 auf --karte */
  /* DIE WARNFARBE, Nutzerentscheidung 22.09.2026: „Warnfarbe ja, sie muss
     aber nicht plakativ rot sein, sondern darf zum Stil des Cockpits
     passen." Winkel 105 ist ein Olivgold, gerastert am 22.09.2026 über
     die Winkel 60 bis 130: er hält den größten kleinsten OKLab-Abstand
     zu --akzent, --gut und --schlecht zugleich (6,12 hell, 5,95 dunkel).
     Das liegt UNTER dem Maßstab der Dock-Palette (7,6 hell, 6,9 dunkel),
     und genau das war am 21.09.2026 der Grund, keine vierte Statusfarbe
     zu setzen. Der Nutzer hat den Abstand in Kauf genommen. Sie trägt
     die Stufe „mittel" des Belegscores und steht wie jede Statusfarbe
     nie allein: neben ihr steht ihr Wort. */
  --warn: #756f1d;             /* 4,51:1 auf --seite, 4,85:1 auf --karte */

  /* Zwei Töne EINER Familie für die Zeichnungen (Ringkarte, Gewinnkarte).
     Erst Sage (22.09.2026 morgens), dann Nutzerbefund am Abend: „Farben
     immer noch nicht passend, gerne etwas Farbe." Jetzt Indigo, Winkel
     265: 25 Grad von --daten-2 (240) und --daten-4 (290), also eine eigene
     Farbe, und keine Statusfarbe. Kräftig wie datenfarbe() (3,0:1 auf
     --karte und --seite), leise dieselbe Familie hell und blass. */
  --zeichnung-1: #4066c2;      /* 5,04:1 auf --karte */
  --zeichnung-2: #a8beec;      /* 1,75:1 auf --karte */

  /* Fünf Datenfarben für Anteile (Top 5 Kunden, Top 5 Ausgaben), Nutzerbefund
     22.09.2026: die Dock-Töne hatten im Dunkeln „wenig Aussagekraft". Hell
     Buntheit 0,10 wie das Dock, dunkel 0,15: auf dunklem Grund trägt ein
     Pastell keine Fläche. Je Winkel die dunkelste (hell: hellste) Stufe,
     die noch 3,0:1 auf --karte hält (WCAG 1.4.11), gerechnet von
     datenfarbe(). Fünf Winkel, keiner der Akzent (60) und keiner die
     Statusfarben (25, 105, 140): 320, 240, 190, 290, 10 wie die Dock-Töne 2,
     4, 6, 7, 5 im hellen Modus. */
  --daten-1: #9750a7;          /* 4,89:1 auf --karte */
  --daten-2: #1d73a5;          /* 4,85:1 auf --karte */
  --daten-3: #007974;          /* 4,93:1 auf --karte */
  --daten-4: #705bbe;          /* 5,00:1 auf --karte */
  --daten-5: #b7445d;          /* 4,91:1 auf --karte */

  /* Sage-Skala, in beiden Farbwelten dieselben Werte. Sie trägt die
     Symbolfarben der Navigation und die Serienfarben der Diagramme. */
  --sage-800: #464d43;         /* 7,59:1 auf --seite */
  --sage-700: #576250;         /* 5,58:1 auf --seite */
  --sage-600: #585b56;         /* 5,99:1 auf --seite */
  --sage-500: #90998b;         /* 2,56:1 auf --seite */
  --sage-300: #b8c1b2;         /* 1,61:1 auf --seite */
  --sage-200: #cad1c6;         /* 1,36:1 auf --seite */

  /* DOCK. Neun Symbolfarben, gerechnet von tools/dock-farben.mjs: der
     Bronze-Akzent und Töne vom Farbkreis in OKLCH mit Buntheit 0,06 bis
     0,10 (Etappe D, Nutzerentscheidung 15.09.2026: die Palette geht über
     Sage und Bronze hinaus, PLAN.md 5.2). Jede hält mindestens 3,0:1 auf
     jedem der fünf Gründe der Leiste (WCAG 1.4.11), auch auf --dock-wanne.

     GEMESSEN: der kleinste OKLab-Abstand ist 8,10, zwischen
     oklch(0.55 0.10 110) und oklch(0.49 0.06 80). Das Cockpit hält bei FÜNF Farben
     7,6; das Ziel ist erreicht. Ein Grau ist mit Absicht nicht dabei:
     grau heißt hier „gesperrt". Die Farbe trägt trotzdem nichts allein,
     daneben stehen Form, Tooltip, aria-label und im aktiven Fall die
     Füllung mit Kontur. */
  --dock-flaeche: #f5f6ef;     /* Leiste oben, --karte bei 80 Prozent über --seite */
  --dock-1: #3d6b32;           /* 4,02:1 auf dem schlechtesten Grund */   /* oklch(0.48 0.10 140) */
  --dock-2: #91639c;           /* 3,01:1 auf dem schlechtesten Grund */   /* oklch(0.57 0.10 320) */
  --dock-3: #9f6532;           /* 3,07:1 auf dem schlechtesten Grund */   /* oklch(0.56 0.10 60) */
  --dock-4: #1b6793;           /* 3,95:1 auf dem schlechtesten Grund */   /* oklch(0.49 0.10 240) */
  --dock-5: #8a4f59;           /* 4,02:1 auf dem schlechtesten Grund */   /* oklch(0.50 0.08 10) */
  --dock-6: #457d79;           /* 3,01:1 auf dem schlechtesten Grund */   /* oklch(0.55 0.06 190) */
  --dock-7: #635898;           /* 3,98:1 auf dem schlechtesten Grund */   /* oklch(0.50 0.10 290) */
  --dock-8: #757628;           /* 3,07:1 auf dem schlechtesten Grund */   /* oklch(0.55 0.10 110) */
  --dock-9: #725d38;           /* 4,03:1 auf dem schlechtesten Grund */   /* oklch(0.49 0.06 80) */
  --dock-wanne: #cad1c6;       /* Füllung beim Zeigen und im aktiven Zustand */
  /* Die Kontur des aktiven Zustands trägt die Unterscheidbarkeit, nicht die
     Füllung: im Cockpit ergab nur Farbe 2,57:1 zwischen den Zuständen,
     gefordert sind 3,0 nach WCAG 1.4.11. --kante-b hält hier 6,34:1
     auf der Leistenfläche. */
  --dock-saum: #855a24;        /* 3,86:1 gegen den schlechteren Nachbarn */
  --dock-aus: 0.7;             /* gesperrte Rubrik in --ink-2, hält damit 2,97:1 */

  /* Abstand, Radius, Typo: Cockpit (render-dash.php, der
     :root-Block ab --s-1). Die Oberfläche übernimmt Aufbau, Dichte und Maß
     von dort, nur nicht die Farben (PLAN.md 5.2, berichtigt am 15.09.2026). */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px;

  --r:   12px;   /* Karte */
  --r-s:  8px;   /* Knopf, Feld, Pille */
  --r-xs: 6px;   /* Tag */

  --f-mikro: 0.75rem;
  --f-ui:    0.875rem;
  --f-titel: 1rem;
  --f-zahl:  1.6875rem;
  --f-seite: 2.0625rem;

  --ziel: 44px;   /* kleinste Trefferfläche */
  --lese: 53ch;   /* Lesebreite */

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);   /* render-dash.php, --ease */
  --z-sticky: 20;                              /* render-dash.php, --z-sticky */

  /* Schriften: die UI-Schrift ist der Systemstapel des COCKPITS, nicht der
     Website-Stapel aus tokens.json (berichtigt am 15.09.2026, Etappe D, siehe
     SYSTEMSTAPEL oben). Die Wortmarke bleibt Montserrat (PLAN.md 5.2). Alex
     Brush kommt in der Oberfläche NICHT vor, nur auf Dokumenten. */
  --schrift-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable", "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --schrift-marke: "Montserrat", "Montserrat Fallback", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* Systemeinstellung. Die Ausnahme sorgt dafür, dass ein Schalter auf „hell"
   auch auf einem dunklen System greift. */
@media (prefers-color-scheme: dark) {
  :root:not([data-thema="hell"]) {
  /* Farben, dunkel. Aus design/tokens.json, erzeugt aus globals.css.
     Die Zahlen dahinter sind gerechnet, nicht getippt: tools/tokens-css.mjs
     ruft tools/kontrast.mjs bei jedem Build auf. */
  --seite: #232a23;
  --karte: #2c342c;            /* 1,15:1 auf --seite */
  --feld: #232a23;             /* 1,15:1 auf --karte */
  --ink: #eef0e6;              /* 12,78:1 auf --seite, 11,16:1 auf --karte */
  --ink-2: #a9b4a3;            /* 6,83:1 auf --seite, 5,96:1 auf --karte */
  --akzent: #e3a75c;           /* 6,97:1 auf --seite, 6,09:1 auf --karte */
  /* Schrift auf dem gefüllten Knopf, gerechnet gegen den Knopf selbst. */
  --knopf-ink: #1b201a;        /* 7,84:1 auf --akzent */
  --seite-tief: #1b201a;       /* 1,13:1 auf --seite */

  /* Trennlinie zwischen Flächen. Trägt keine Bedienung und darf deshalb
     schwach sein; für einen Feldrand ist --kante-b zuständig. */
  --kante: #3e4739;            /* 1,52:1 auf --seite, 1,32:1 auf --karte */
  /* Rand von Bedienelementen, WCAG 1.4.11 verlangt 3,0:1. */
  --kante-b: #90998b;          /* 4,99:1 auf --seite, 4,35:1 auf --karte */

  /* Die zwei Statusfarben der Zustandschips (Phase 4, Etappe C).
     Grün heißt bezahlt, Rot heißt überfällig; die anderen vier Zustände
     tragen keine eigene Farbe, sondern Kontur und Durchstreichung. Die
     Farbe steht nie allein: neben jedem Chip steht sein Wort.
     Gerechnet von statusfarbe() bei Buntheit 0,10 auf 4,5:1 gegen den
     schlechteren der beiden Gründe (WCAG 1.4.3, Text). */
  --gut: #77a86c;              /* 5,33:1 auf --seite, 4,65:1 auf --karte */
  --schlecht: #d6857f;         /* 5,27:1 auf --seite, 4,60:1 auf --karte */
  /* DIE WARNFARBE, Nutzerentscheidung 22.09.2026: „Warnfarbe ja, sie muss
     aber nicht plakativ rot sein, sondern darf zum Stil des Cockpits
     passen." Winkel 105 ist ein Olivgold, gerastert am 22.09.2026 über
     die Winkel 60 bis 130: er hält den größten kleinsten OKLab-Abstand
     zu --akzent, --gut und --schlecht zugleich (6,12 hell, 5,95 dunkel).
     Das liegt UNTER dem Maßstab der Dock-Palette (7,6 hell, 6,9 dunkel),
     und genau das war am 21.09.2026 der Grund, keine vierte Statusfarbe
     zu setzen. Der Nutzer hat den Abstand in Kauf genommen. Sie trägt
     die Stufe „mittel" des Belegscores und steht wie jede Statusfarbe
     nie allein: neben ihr steht ihr Wort. */
  --warn: #a19c4e;             /* 5,17:1 auf --seite, 4,52:1 auf --karte */

  /* Zwei Töne EINER Familie für die Zeichnungen (Ringkarte, Gewinnkarte).
     Erst Sage (22.09.2026 morgens), dann Nutzerbefund am Abend: „Farben
     immer noch nicht passend, gerne etwas Farbe." Jetzt Indigo, Winkel
     265: 25 Grad von --daten-2 (240) und --daten-4 (290), also eine eigene
     Farbe, und keine Statusfarbe. Kräftig wie datenfarbe() (3,0:1 auf
     --karte und --seite), leise dieselbe Familie hell und blass. */
  --zeichnung-1: #6d97f8;      /* 4,55:1 auf --karte */
  --zeichnung-2: #9bb1de;      /* 5,96:1 auf --karte */

  /* Fünf Datenfarben für Anteile (Top 5 Kunden, Top 5 Ausgaben), Nutzerbefund
     22.09.2026: die Dock-Töne hatten im Dunkeln „wenig Aussagekraft". Hell
     Buntheit 0,10 wie das Dock, dunkel 0,15: auf dunklem Grund trägt ein
     Pastell keine Fläche. Je Winkel die dunkelste (hell: hellste) Stufe,
     die noch 3,0:1 auf --karte hält (WCAG 1.4.11), gerechnet von
     datenfarbe(). Fünf Winkel, keiner der Akzent (60) und keiner die
     Statusfarben (25, 105, 140): 320, 240, 190, 290, 10 wie die Dock-Töne 2,
     4, 6, 7, 5 im hellen Modus. */
  --daten-1: #ca80db;          /* 4,66:1 auf --karte */
  --daten-2: #1aa2eb;          /* 4,53:1 auf --karte */
  --daten-3: #25aea7;          /* 4,71:1 auf --karte */
  --daten-4: #9e8cf4;          /* 4,60:1 auf --karte */
  --daten-5: #ef758c;          /* 4,65:1 auf --karte */

  /* Sage-Skala, in beiden Farbwelten dieselben Werte. Sie trägt die
     Symbolfarben der Navigation und die Serienfarben der Diagramme. */
  --sage-800: #464d43;         /* 1,68:1 auf --seite */
  --sage-700: #576250;         /* 2,29:1 auf --seite */
  --sage-600: #585b56;         /* 2,13:1 auf --seite */
  --sage-500: #90998b;         /* 4,99:1 auf --seite */
  --sage-300: #b8c1b2;         /* 7,93:1 auf --seite */
  --sage-200: #cad1c6;         /* 9,42:1 auf --seite */

  /* DOCK. Neun Symbolfarben, gerechnet von tools/dock-farben.mjs: der
     Bronze-Akzent und Töne vom Farbkreis in OKLCH mit Buntheit 0,06 bis
     0,10 (Etappe D, Nutzerentscheidung 15.09.2026: die Palette geht über
     Sage und Bronze hinaus, PLAN.md 5.2). Jede hält mindestens 3,0:1 auf
     jedem der fünf Gründe der Leiste (WCAG 1.4.11), auch auf --dock-wanne.

     GEMESSEN: der kleinste OKLab-Abstand ist 7,63, zwischen
     oklch(0.75 0.10 280) und oklch(0.69 0.06 300). Das Cockpit hält bei FÜNF Farben
     6,9; das Ziel ist erreicht. Ein Grau ist mit Absicht nicht dabei:
     grau heißt hier „gesperrt". Die Farbe trägt trotzdem nichts allein,
     daneben stehen Form, Tooltip, aria-label und im aktiven Fall die
     Füllung mit Kontur. */
  --dock-flaeche: #2a322a;     /* Leiste oben, --karte bei 80 Prozent über --seite */
  --dock-1: #e3a75c;           /* 4,14:1 auf dem schlechtesten Grund */   /* akzent */
  --dock-2: #5aa0d0;           /* 3,07:1 auf dem schlechtesten Grund */   /* oklch(0.68 0.10 240) */
  --dock-3: #d28fbc;           /* 3,49:1 auf dem schlechtesten Grund */   /* oklch(0.73 0.10 340) */
  --dock-4: #74a469;           /* 3,02:1 auf dem schlechtesten Grund */   /* oklch(0.67 0.10 140) */
  --dock-5: #bb917a;           /* 3,10:1 auf dem schlechtesten Grund */   /* oklch(0.69 0.06 50) */
  --dock-6: #4ebcb6;           /* 3,83:1 auf dem schlechtesten Grund */   /* oklch(0.73 0.10 190) */
  --dock-7: #a1a7ec;           /* 3,85:1 auf dem schlechtesten Grund */   /* oklch(0.75 0.10 280) */
  --dock-8: #a6b186;           /* 3,85:1 auf dem schlechtesten Grund */   /* oklch(0.74 0.06 120) */
  --dock-9: #a193bc;           /* 3,09:1 auf dem schlechtesten Grund */   /* oklch(0.69 0.06 300) */
  --dock-wanne: #464d43;       /* Füllung beim Zeigen und im aktiven Zustand */
  /* Die Kontur des aktiven Zustands trägt die Unterscheidbarkeit, nicht die
     Füllung: im Cockpit ergab nur Farbe 2,57:1 zwischen den Zuständen,
     gefordert sind 3,0 nach WCAG 1.4.11. --kante-b hält hier 4,48:1
     auf der Leistenfläche. */
  --dock-saum: #e3a75c;        /* 4,14:1 gegen den schlechteren Nachbarn */
  --dock-aus: 0.7;             /* gesperrte Rubrik in --ink-2, hält damit 3,77:1 */
  }
}

/* Schalter, gewinnt gegen die Systemeinstellung. */
:root[data-thema="dunkel"] {
  /* Farben, dunkel. Aus design/tokens.json, erzeugt aus globals.css.
     Die Zahlen dahinter sind gerechnet, nicht getippt: tools/tokens-css.mjs
     ruft tools/kontrast.mjs bei jedem Build auf. */
  --seite: #232a23;
  --karte: #2c342c;            /* 1,15:1 auf --seite */
  --feld: #232a23;             /* 1,15:1 auf --karte */
  --ink: #eef0e6;              /* 12,78:1 auf --seite, 11,16:1 auf --karte */
  --ink-2: #a9b4a3;            /* 6,83:1 auf --seite, 5,96:1 auf --karte */
  --akzent: #e3a75c;           /* 6,97:1 auf --seite, 6,09:1 auf --karte */
  /* Schrift auf dem gefüllten Knopf, gerechnet gegen den Knopf selbst. */
  --knopf-ink: #1b201a;        /* 7,84:1 auf --akzent */
  --seite-tief: #1b201a;       /* 1,13:1 auf --seite */

  /* Trennlinie zwischen Flächen. Trägt keine Bedienung und darf deshalb
     schwach sein; für einen Feldrand ist --kante-b zuständig. */
  --kante: #3e4739;            /* 1,52:1 auf --seite, 1,32:1 auf --karte */
  /* Rand von Bedienelementen, WCAG 1.4.11 verlangt 3,0:1. */
  --kante-b: #90998b;          /* 4,99:1 auf --seite, 4,35:1 auf --karte */

  /* Die zwei Statusfarben der Zustandschips (Phase 4, Etappe C).
     Grün heißt bezahlt, Rot heißt überfällig; die anderen vier Zustände
     tragen keine eigene Farbe, sondern Kontur und Durchstreichung. Die
     Farbe steht nie allein: neben jedem Chip steht sein Wort.
     Gerechnet von statusfarbe() bei Buntheit 0,10 auf 4,5:1 gegen den
     schlechteren der beiden Gründe (WCAG 1.4.3, Text). */
  --gut: #77a86c;              /* 5,33:1 auf --seite, 4,65:1 auf --karte */
  --schlecht: #d6857f;         /* 5,27:1 auf --seite, 4,60:1 auf --karte */
  /* DIE WARNFARBE, Nutzerentscheidung 22.09.2026: „Warnfarbe ja, sie muss
     aber nicht plakativ rot sein, sondern darf zum Stil des Cockpits
     passen." Winkel 105 ist ein Olivgold, gerastert am 22.09.2026 über
     die Winkel 60 bis 130: er hält den größten kleinsten OKLab-Abstand
     zu --akzent, --gut und --schlecht zugleich (6,12 hell, 5,95 dunkel).
     Das liegt UNTER dem Maßstab der Dock-Palette (7,6 hell, 6,9 dunkel),
     und genau das war am 21.09.2026 der Grund, keine vierte Statusfarbe
     zu setzen. Der Nutzer hat den Abstand in Kauf genommen. Sie trägt
     die Stufe „mittel" des Belegscores und steht wie jede Statusfarbe
     nie allein: neben ihr steht ihr Wort. */
  --warn: #a19c4e;             /* 5,17:1 auf --seite, 4,52:1 auf --karte */

  /* Zwei Töne EINER Familie für die Zeichnungen (Ringkarte, Gewinnkarte).
     Erst Sage (22.09.2026 morgens), dann Nutzerbefund am Abend: „Farben
     immer noch nicht passend, gerne etwas Farbe." Jetzt Indigo, Winkel
     265: 25 Grad von --daten-2 (240) und --daten-4 (290), also eine eigene
     Farbe, und keine Statusfarbe. Kräftig wie datenfarbe() (3,0:1 auf
     --karte und --seite), leise dieselbe Familie hell und blass. */
  --zeichnung-1: #6d97f8;      /* 4,55:1 auf --karte */
  --zeichnung-2: #9bb1de;      /* 5,96:1 auf --karte */

  /* Fünf Datenfarben für Anteile (Top 5 Kunden, Top 5 Ausgaben), Nutzerbefund
     22.09.2026: die Dock-Töne hatten im Dunkeln „wenig Aussagekraft". Hell
     Buntheit 0,10 wie das Dock, dunkel 0,15: auf dunklem Grund trägt ein
     Pastell keine Fläche. Je Winkel die dunkelste (hell: hellste) Stufe,
     die noch 3,0:1 auf --karte hält (WCAG 1.4.11), gerechnet von
     datenfarbe(). Fünf Winkel, keiner der Akzent (60) und keiner die
     Statusfarben (25, 105, 140): 320, 240, 190, 290, 10 wie die Dock-Töne 2,
     4, 6, 7, 5 im hellen Modus. */
  --daten-1: #ca80db;          /* 4,66:1 auf --karte */
  --daten-2: #1aa2eb;          /* 4,53:1 auf --karte */
  --daten-3: #25aea7;          /* 4,71:1 auf --karte */
  --daten-4: #9e8cf4;          /* 4,60:1 auf --karte */
  --daten-5: #ef758c;          /* 4,65:1 auf --karte */

  /* Sage-Skala, in beiden Farbwelten dieselben Werte. Sie trägt die
     Symbolfarben der Navigation und die Serienfarben der Diagramme. */
  --sage-800: #464d43;         /* 1,68:1 auf --seite */
  --sage-700: #576250;         /* 2,29:1 auf --seite */
  --sage-600: #585b56;         /* 2,13:1 auf --seite */
  --sage-500: #90998b;         /* 4,99:1 auf --seite */
  --sage-300: #b8c1b2;         /* 7,93:1 auf --seite */
  --sage-200: #cad1c6;         /* 9,42:1 auf --seite */

  /* DOCK. Neun Symbolfarben, gerechnet von tools/dock-farben.mjs: der
     Bronze-Akzent und Töne vom Farbkreis in OKLCH mit Buntheit 0,06 bis
     0,10 (Etappe D, Nutzerentscheidung 15.09.2026: die Palette geht über
     Sage und Bronze hinaus, PLAN.md 5.2). Jede hält mindestens 3,0:1 auf
     jedem der fünf Gründe der Leiste (WCAG 1.4.11), auch auf --dock-wanne.

     GEMESSEN: der kleinste OKLab-Abstand ist 7,63, zwischen
     oklch(0.75 0.10 280) und oklch(0.69 0.06 300). Das Cockpit hält bei FÜNF Farben
     6,9; das Ziel ist erreicht. Ein Grau ist mit Absicht nicht dabei:
     grau heißt hier „gesperrt". Die Farbe trägt trotzdem nichts allein,
     daneben stehen Form, Tooltip, aria-label und im aktiven Fall die
     Füllung mit Kontur. */
  --dock-flaeche: #2a322a;     /* Leiste oben, --karte bei 80 Prozent über --seite */
  --dock-1: #e3a75c;           /* 4,14:1 auf dem schlechtesten Grund */   /* akzent */
  --dock-2: #5aa0d0;           /* 3,07:1 auf dem schlechtesten Grund */   /* oklch(0.68 0.10 240) */
  --dock-3: #d28fbc;           /* 3,49:1 auf dem schlechtesten Grund */   /* oklch(0.73 0.10 340) */
  --dock-4: #74a469;           /* 3,02:1 auf dem schlechtesten Grund */   /* oklch(0.67 0.10 140) */
  --dock-5: #bb917a;           /* 3,10:1 auf dem schlechtesten Grund */   /* oklch(0.69 0.06 50) */
  --dock-6: #4ebcb6;           /* 3,83:1 auf dem schlechtesten Grund */   /* oklch(0.73 0.10 190) */
  --dock-7: #a1a7ec;           /* 3,85:1 auf dem schlechtesten Grund */   /* oklch(0.75 0.10 280) */
  --dock-8: #a6b186;           /* 3,85:1 auf dem schlechtesten Grund */   /* oklch(0.74 0.06 120) */
  --dock-9: #a193bc;           /* 3,09:1 auf dem schlechtesten Grund */   /* oklch(0.69 0.06 300) */
  --dock-wanne: #464d43;       /* Füllung beim Zeigen und im aktiven Zustand */
  /* Die Kontur des aktiven Zustands trägt die Unterscheidbarkeit, nicht die
     Füllung: im Cockpit ergab nur Farbe 2,57:1 zwischen den Zuständen,
     gefordert sind 3,0 nach WCAG 1.4.11. --kante-b hält hier 4,48:1
     auf der Leistenfläche. */
  --dock-saum: #e3a75c;        /* 4,14:1 gegen den schlechteren Nachbarn */
  --dock-aus: 0.7;             /* gesperrte Rubrik in --ink-2, hält damit 3,77:1 */
}
