/* ==========================================================================
   2  DUNKLE FASSUNG — durchgerechnet am 10.09.2026, Entwurf zur Abnahme.

   Vorgeschichte: hier stand bis zum 09.09.2026 ein Block mit 15 Werten aus
   einem früheren Entwurf. Er war nie durchgerechnet, kannte die Abschnitte
   1.5b bis 1.5d nicht und hatte für die Tiefe keine Antwort. Er ist jetzt
   Wert für Wert geprüft, bestätigt oder ersetzt; was aus ihm bleibt, steht
   am Ende dieses Kommentars.

   GERECHNET WURDE GEGEN DIE ECHTE VERWENDUNG, nicht gegen die Rollennamen
   dieser Datei. Das ist nicht dasselbe, und der Unterschied hat den ersten
   Entwurf dieser Fassung gekostet: die Kommentare in 1.4 nennen --fl-2 den
   Seitenhintergrund und --fl-4 den Hover, die gebauten Seiten benutzen aber
   --fl-3 als Seitengrund und --fl-4 als Fläche der Navigationsspalte
   (CockpitAufgaben.dc.html, Huelle.jsx). Wer die Leiter nach den Namen
   umbaut, färbt damit die Navigationsspalte um.

   DIE VIER ENTSCHEIDUNGEN, aus denen alles Übrige folgt:

   1. DIE FLÄCHENLEITER BEHÄLT IHRE REIHENFOLGE VOLLSTÄNDIG. Gespiegelt wird
      die TINTE, nicht die Leiter: --fl bleibt die hellste Fläche, --fl-5 die
      äußerste, nur liegen jetzt alle sieben Stufen im Dunkeln. Damit gilt
      jede Zusicherung weiter, die ein Bauteil an ein Paar dieser Stufen
      hängt — und es gibt solche Zusicherungen, schwarz auf weiß:
        Liste.jsx, Kopfkommentar: „Grundfläche --fl-3, damit die ausgewählte
        Zeile in --fl heller ist als ihre Umgebung."
        Listenzeile: ausgewählt --fl, überfahren --fl-4, normal --fl-3.
      Die ausgewählte Zeile geht also nach OBEN aus dem Grund heraus und die
      überfahrene nach UNTEN. Zwei Richtungen von einem Grund: genau das
      trägt die Unterscheidung, und genau das geht verloren, sobald man die
      Leiter umdreht oder nach Rollen neu sortiert. Beide Wege sind versucht
      und verworfen (siehe unten).
      Gemessen: --fl gegen --fl-3 1,12 (hell 1,09), Hover 1,07 unter dem
      Grund (hell 1,06). Dieselbe Mechanik, dieselben Abstände.
   2. GETÖNTE FLÄCHEN BLEIBEN DUNKEL, GEFÜLLTE WERDEN HELL.
      --rot-fl und Geschwister sind Tönungen des Grundes; sie bleiben in der
      Flächenfamilie und tragen den hellen Zustandston. Knopf,
      Geldfluss-Segment und Dateityp-Kachel sind dagegen FÜLLUNGEN: eine
      dunkle Füllung auf dunklem Grund verschwindet, deshalb werden sie hell
      und tragen dunkle Schrift (--auf-farbe). Das ist die Umkehrung, die der
      alte Block nicht hatte.
   3. MARINE BLEIBT DIE EBENE UNTER DER LEITER, TRÄGT ALS FLÄCHE ABER NICHT
      MEHR ALLEIN. Im Hellen ist sie die einzige Fläche, die aus der Leiter
      herausfällt, und das bleibt sie: sie sitzt unter --fl-5 (1,05) und
      damit unter jeder Arbeitsfläche. Was dabei verloren geht, gehört
      benannt und nicht verschwiegen. Gemessen, Bauteil gegen seine
      Umgebung, hell gegen dunkel:
        Hero gegen die Hülle                    14,02  →  1,16
        Kennzahl mit haupt gegen normale Kachel 14,46  →  1,29
        aktive Monatskachel gegen normale       14,46  →  1,29
        aktiver Navpunkt gegen die Navspalte    13,29  →  1,08
      Beim Hero und den beiden Kacheln ist das vertretbar: sie sind groß,
      tragen ihre eigene Schrift und der Hero zusätzlich die Kupferkante
      (Kupfer gegen Marine 6,99). BEIM AKTIVEN NAVIGATIONSPUNKT IST ES NICHT
      VERTRETBAR. Huelle.d.ts schreibt „Aktiv = Marine-Fläche UND kupferner
      Punkt", und Liste.jsx begründet die Doppelmarkierung mit „Ein
      einzelner geht bei Farbfehlsichtigkeit unter". Bei 1,08 fällt die
      Fläche als Marker aus, übrig bliebe der kupferne Punkt — also genau
      der reine Farbmarker, den die Regel ausschließt (Kupfer gegen den
      --muted-Punkt eines inaktiven Eintrags: 1,04, in Graustufen also
      nichts).
      DESHALB TRÄGT DER AKTIVE PUNKT IM DUNKELN EINEN KUPFERSTRICH LINKS,
      --sp-1 breit, wie ihn die untere Leiste am Handy als data-kante schon
      führt. Er hält 6,44 gegen die Navigationsspalte und ist damit auch in
      Graustufen ein heller Streifen an fester Stelle: ein Marker, der nicht
      von Farbwahrnehmung abhängt. Das ist die EINE Stelle, an der die
      dunkle Fassung eine Zeile Markup braucht und nicht nur einen Wert
      (Huelle.jsx, Navpunkt, innerhalb des bestehenden Polsters, ohne
      Verschiebung). Wer sie nicht baut, schaltet die Fassung mit einem
      Navigationspunkt ein, der nur noch farbig markiert ist.
   4. KEIN REINES SCHWARZ. Die tiefste Fläche ist --marine-d #06101A, kühl
      Richtung Marine getönt (B > G > R), so wie die helle Leiter Richtung
      Creme getönt ist (R > G > B): dieselbe Leiter, an der Grauachse
      gespiegelt.

   GEMESSEN (sRGB, WCAG-2-Verhältnis). Fließtext ≥ 4,5, Rahmen und
   bedeutungstragende Linien ≥ 3,0. Der knappste Wert der Fassung ist
   --muted auf --fl mit 5,63 — dieselbe Rolle, die im Hellen mit 4,59 der
   knappste Wert ist, hier mit mehr Luft. Weil die Leiter ihre Reihenfolge
   behält, ist der knappste Fall jetzt die HELLSTE Fläche --fl und nicht mehr
   --fl-5; wer --fl heller macht, rückt ihn nach unten.
     Grauleiter auf fl (hellste) / marine-d (tiefste): ink 12,55 / 16,78 ·
       text 8,55 / 11,42 · muted 5,63 / 7,52
     Marine-Ebene: auf-marine 16,23 · nav-ruhe 11,49 · nav-leise 8,08 ·
       nav-leise auf marine-d 8,35
     Feldrand gegen alle sieben Flächen: 4,56 · 4,80 · 5,10 · 5,44 · 5,60 ·
       5,90 · 6,10
     Zustände auf fl / fl-3 / marine: rot 6,63/7,42/8,58 ·
       gruen 6,33/7,07/8,18 · gelb 6,71/7,50/8,67 · blau 5,66/6,33/7,32
     Kupfer: copper als Fläche gegen die Karte 5,40 · --auf-farbe auf
       copper-d 6,13 (hell: 4,83) · copper-t auf der Karte 6,35 ·
       --marine als Zahl auf --copper 6,99
     Geldfluss und Dateityp, --auf-farbe darauf: 11,24 · 8,57 · 7,91 · 8,00 ·
       8,39 · 5,69 · 5,74 · 5,99 · 5,85
     --auf-farbe auf --blau (Marke „ungeprüft"): 7,16

   ROT UND GRÜN müssen sich auch ohne Farbwahrnehmung unterscheiden. Im
   Hellen liegt ihr Luminanzverhältnis bei 1,024; hier bei 1,049 — also etwas
   deutlicher als heute. Gelb zu Rot 1,011 (hell 1,01), Gelb zu Blau 1,184
   (hell 1,296). Blau ist der Deckel: --blau hält auf --fl nur noch 5,66 und
   sollte nicht heller werden. Wie im Hellen steht die Beschriftung im
   Segment, Farbe ist nie der einzige Träger.

   AUS DEM ALTEN BLOCK BESTÄTIGT: die Richtung der Grauleiter, die
   Reihenfolge der Flächenleiter und --copper-fl #2a1f14. ERSETZT: alle vier
   Zustandstöne (Rot und Grün fielen auf ein Luminanzverhältnis von 0,999
   zusammen), alle drei Kupferrollen (als Knopfgrund brauchten sie dunkle
   statt cremefarbene Schrift), die Linien (sie waren dunkler als ihre Fläche
   und damit unsichtbar) und der Feldrand.

   ZWEI VERWORFENE FASSUNGEN, damit sie nicht wiederkommen:
     · Rollenweise Neuordnung („Träger behalten die Ordnung, Zustände
       wechseln die Seite"). Scheitert daran, dass --fl-4 gleichzeitig Hover
       UND Fläche der Navigationsspalte ist.
     · Spiegelung der ganzen Leiter (--fl am dunkelsten). Scheitert an der
       Zusicherung in Liste.jsx: die ausgewählte Zeile wäre dunkler als ihre
       Umgebung geworden, und die drei --fl-Bänder der Liste wären von
       aufliegend zu eingesenkt gekippt.

   WO DIESE DATEI GILT — UND WARUM SIE EINE EIGENE DATEI IST (seit
   11.09.2026, Etappe 3b; bis dahin stand sie als Abschnitt 2 in tokens.css
   unter html[data-farbe="dunkel"]). Die Werte gelten unter ZWEI
   Bedingungen: dunkel ausdrücklich gewählt, ODER nichts gewählt und das
   Gerät steht auf dunkel. Eine Selektorliste kann keine Media-Bedingung
   enthalten, und in einer Datei ginge es nur mit zwei Blöcken derselben
   Werte, die beim nächsten Umbau auseinanderlaufen. Deshalb stehen die
   Werte hier GENAU EINMAL, und die Bedingung sitzt am <link>
   (templates/_farbwelt.html): `screen` bei gewähltem dunkel, sonst
   `screen and (prefers-color-scheme: dark)`. Der Selektor schließt
   ausdrücklich gewähltes hell aus — so schlägt „hell“ die
   Systemeinstellung.

   WER NUR data-farbe="dunkel" SETZT, SIEHT AN EINEM HELL EINGESTELLTEN
   GERÄT NICHTS: die Datei ist dann gar nicht aktiv. Zum Ansehen den
   Umschalter benutzen, oder im Browser die Systemeinstellung auf dunkel.

   HIER STEHT NICHTS ALS TOKENS UND color-scheme. Eine Regel, die auf
   Elemente zielt, gehört nach style.css und hängt dort an einem Token aus
   dieser Datei (Beispiel: --nav-an-strich) — sonst wird aus der Token-Datei
   ein zweites Stylesheet, und kontrast.py misst an ihm vorbei.
   tests/test_farbwelt.py hält beides fest.

   DER SELEKTOR TRÄGT KEINEN FLÄCHENTEIL. Im Design-System steht davor ein
   [data-flaeche="cockpit"] — dort liegen drei Flächen in einem Dokument,
   und ohne die Einschränkung färbte die Fassung auch Portal und Print um,
   für die diese Werte nie gerechnet wurden. Das Cockpit kennt gar keine
   Flächenattribute, weil es nur eine Fläche hat. Wer den Entwurfsselektor
   1:1 übernimmt, bekommt eine dunkle Fassung, die NIE greift, und zwar ohne
   Fehlermeldung. Die Werte selbst sind in beiden Richtungen unverändert.
   ========================================================================== */
html:not([data-farbe="hell"]){

  /* 1.10 Farbwelt-Schalter — Gegenstück zu tokens.css 1.10. */
  color-scheme: dark;
  --nav-an-strich:   var(--copper);
  --farbwelt-hell:   none;
  --farbwelt-dunkel: inline;

  /* 1.1 Marke. Marine bleibt die Ebene unter der Leiter (Entscheidung 3):
     Hero, Kennzahl mit haupt, aktiver Navigationspunkt, Markenquadrat.
     nav-ruhe und nav-leise bleiben unverändert, sie sind auf dem tieferen
     Marine besser als heute (11,49 und 8,08 gegen 9,73 und 6,83).
     Zur schwächeren Flächenwirkung von Marine und zum Kupferstrich am
     aktiven Navigationspunkt siehe Entscheidung 3 im Kopf dieses
     Abschnitts. */
  --marine:      #0A1420;
  --marine-d:    #06101A;
  --nav-ruhe:    #b9cfdd;
  --nav-leise:   #8fb0c2;
  --auf-marine:  #EAF1F5;

  /* Die drei Kupferrollen bleiben getrennt und behalten ihre Aufgabe.
     --copper ist weiter NUR Fläche (5,40 gegen die Karte, 6,99 gegen
     Marine). --copper-d ist weiter Knopfgrund und Fokusring, trägt aber
     jetzt --auf-farbe statt Creme: 6,13 gegen 4,83 im Hellen, der
     Primärknopf wird also besser. --copper-t bleibt Text und Link.
     --copper-fl ist der einzige Wert, der aus dem alten Entwurf unverändert
     übernommen ist. */
  --copper:      #D29155;
  --copper-d:    #C9884B;
  --copper-t:    #DDA069;
  --copper-fl:   #2A1F14;
  --auf-farbe:   #0C1720;

  /* 1.3 Grauleiter. Drei Stufen, kühl getönt, --muted bleibt die äußerste
     erlaubte Textfarbe — im Dunkeln heißt das: die dunkelste. */
  --ink:    #EAF1F5;
  --text:   #BCCAD3;
  --muted:  #93A5B0;

  /* 1.4 Flächen und Linien. Reihenfolge wie im Hellen (Entscheidung 1):
     --fl ist die hellste Fläche und trägt weiter alles Aufliegende — Karte,
     Detailbereich, ausgewählte Listenzeile, Kopf- und Fußband der Liste,
     Eingabefeld. --fl-3 ist der Grund darunter (Hülle, Listenspalte,
     Tabellenkopf, klebende Zwischenüberschrift), --fl-4 liegt eine Stufe
     TIEFER und trägt Hover und die Navigationsspalte, --fl-5 das Gedrückte.
     Die Linien sind heller als ihre Fläche; gemessen gegen die Karte 1,13 ·
     1,30 · 1,57 (hell 1,09 · 1,25 · 1,55). Weil sie im Dunkeln nach oben
     statt nach unten abweichen, werden sie auf den TIEFEREN Stufen
     deutlicher statt schwächer — die eine Stelle, an der die dunkle Fassung
     besser ist als die helle, wo --linie auf --fl-5 auf 1,05 fällt.
     --linie-x, der Bilanz-Abschlussstrich, ist die Tinte selbst. */
  --fl:    #1D2C36;
  --fl-2:  #1A2831;
  --fl-3:  #16232C;
  --fl-4:  #121D26;
  --fl-5:  #101A22;
  --linie-w:  #26353F;
  --linie:    #2F3E48;
  --linie-s:  #3A4A57;
  --linie-x:  #EAF1F5;
  --feldrand: #82949F;

  /* 1.4b Geldfluss. Helle Füllungen, dunkle Schrift. --fluss-weiter ist wie
     im Hellen der Ausschlag der Reihe, nur am anderen Ende. Blau und Orange
     halten ihr Luminanzverhältnis bei 1,011 (hell 1,025) — die Achse, die
     bei Rot-Grün-Schwäche trägt. */
  --fluss-weiter: #B9CFDD;
  --fluss-ab:     #8FB8D0;
  --fluss-ab2:    #DDA85C;
  --fluss-plus:   #5FBE93;
  --fluss-minus:  #EE9A9A;

  /* 1.4d Dateityp-Kacheln. Die vier Markentöne sind aufgehellt, damit die
     Kachel auf dunklem Grund überhaupt eine Kachel ist und die Endung darauf
     lesbar bleibt (--auf-farbe: 5,69 · 5,74 · 5,99 · 5,85). Hue und
     Wiedererkennung bleiben; der Vorbehalt aus 1.4d gilt unverändert — sie
     sind keine CI-Farben und gehören vor einer Öffnung des Cockpits
     ersetzt. */
  --typ-excel:   #3FA26B;
  --typ-word:    #6193D6;
  --typ-ppt:     #E2764F;
  --typ-acrobat: #EC6A5C;

  --typ-pdf:   #DDA069;
  --typ-tab:   #8BB5CD;
  --typ-daten: #B9CFDD;
  --typ-bild:  #5FBE93;
  --typ-rest:  #8FA3AE;

  /* 1.5 Zustände. Sättigung zurückgenommen: auf dunklem Grund wirkt dieselbe
     Sättigung kräftiger, und vier schreiende Töne in einer Datenmaske sind
     Lärm. Die Flächen bleiben Tönungen des Grundes (Entscheidung 2). */
  --rot:    #EE9A9A;   --rot-fl:    #31191E;
  --gruen:  #5FBE93;   --gruen-fl:  #162923;
  --gelb:   #DDA85C;   --gelb-fl:   #2A2214;
  --blau:   #79A9C6;   --blau-fl:   #15252F;

  /* 1.5b ZUSTÄNDE AUF DUNKLER FLÄCHE — im Dunkeln fallen die drei TÖNE mit
     1.5 zusammen, die sechs FILME bleiben unverändert.
     Der Grund für diesen Abschnitt war, dass --gruen auf --marine nur
     1,48:1 hält. Hier sind die Zustandstöne selbst hell und tragen auf
     Marine ohne Weiteres (8,18 · 8,67 · 8,58), also braucht es keinen
     zweiten Satz. Die drei Namen bleiben, weil der Code sie kennt, und
     zeigen mit var() auf ihre Herkunft — so ist auch später sichtbar, dass
     es dieselbe Bedeutung ist und nicht zufällig derselbe Wert.
     GEBRAUCHT WERDEN SIE NICHT MEHR. Wer den Code anfasst, kann die drei
     Aufrufe ersetzen und die Namen streichen; das ist eine Aufräumarbeit,
     keine Farbentscheidung.

     Die sechs Chipflächen behalten ihre Deckkraft EXAKT. Nachgerechnet auf
     der dunklen Heroebene trägt jeder Ton auf seinem Chip weiter über 5,9
     (5,95 · 6,02 · 7,65 · 8,15 · 6,21 · 6,52), und die Chipfläche hebt sich
     mit 1,31 bis 1,44 von der Heroebene ab. Reifegrad und Vergleich bleiben
     getrennt, wie 1.5b verlangt; die zwei Prozentpunkte Unterschied sind
     weiter ungeklärt und weiter nicht angefasst. */
  --gruen-dkl:  var(--gruen);
  --gelb-dkl:   var(--gelb);
  --rot-dkl:    var(--rot);

  --reife-gruen-dkl:     rgba(95,190,147,.18);
  --reife-gelb-dkl:      rgba(221,168,92,.2);
  --reife-neutral-dkl:   rgba(234,241,245,.14);
  --vergleich-fl-dkl:    rgba(234,241,245,.12);
  --vergleich-gruen-dkl: rgba(95,190,147,.16);
  --vergleich-rot-dkl:   rgba(238,154,154,.16);

  /* 1.5c DECKSCHICHTEN. Rolle für Rolle, nicht umgerechnet:
       --schleier-hover  KIPPT. Ein dunkler Film auf dunklem Grund ist
                         unsichtbar; jetzt Tinte→Creme bei 6 %. Rolle gleich:
                         Navigationspunkt beim Überfahren, auf --fl-4. Die
                         Listenzeile benutzt ihn nicht, sie hat mit --fl-4
                         eine eigene Hoverfläche.
       --schleier-modal  BLEIBT DUNKEL und wird stärker (.36 → .66). Ein
                         Modalgrund soll wegnehmen, nicht aufhellen — die
                         einzige der fünf, die im Dunkeln ihre Richtung hält.
       --ring-fokus      KIPPT AUF DEN HELLEN KUPFERTON, sonst unverändert in
                         der Aufgabe. Der Ring selbst ist --copper-d (4,85
                         gegen die hellste Fläche), der Hof bleibt Beigabe.
       --ring-fehler     KIPPT auf den hellen Rotton, Deckkraft leicht höher.
       --ring-dringend   KIPPT auf den hellen Kupferton.
       --hover-dkl       ROLLE UNVERÄNDERT. Sie war schon „hell auf dunkel",
                         und ihre Fläche ist im Dunkeln nur tiefer.
       --spur-dkl        ROLLE UNVERÄNDERT, dieselbe Begründung.
     Fünf kippen, eine hält die Richtung, zwei bleiben ganz — genau die
     Grenze, die 1.5c als „hier wird entschieden, nicht gerechnet" benennt. */
  --schleier-hover: rgba(234,241,245,.06);
  --schleier-modal: rgba(2,6,10,.66);
  --ring-fokus:     rgba(201,136,75,.32);
  --ring-fehler:    rgba(238,154,154,.24);
  --ring-dringend:  rgba(210,145,85,.22);
  --hover-dkl:      rgba(234,241,245,.1);
  --spur-dkl:       rgba(234,241,245,.14);

  /* 1.5d CREME AUF KUPFERFLÄCHE — im Dunkeln TINTE auf Kupferfläche.
     Die Kupferfläche ist hier hell (--copper-d #C9884B), also kippt die
     Schrift auf --auf-farbe. Die Deckkraftstufen von Etikett und Wirktext
     können dabei BLEIBEN: auf dem hellen Kupfer hält .88 noch 5,24 und .92
     noch 5,56. Ihre Rangfolge war nie falsch, nur der helle Grund gab ihr
     keinen Platz.
     Das Feld geht den umgekehrten Weg wie in der hellen Fassung: dort wurde
     es zur Mulde, hier wird es zur Aufhellung (28 % Creme), weil die Schrift
     jetzt dunkel ist. Opake Tinte darauf 8,48, im Fokus 9,69; Platzhalter
     bei 74 % noch 5,06; der Rand hält 5,82 gegen das Feld und 4,21 gegen das
     Kupfer. Keine Stufe unter der Schwelle. */
  --auf-kupfer-etikett: rgba(12,23,32,.88);
  --auf-kupfer-text:    rgba(12,23,32,.92);
  --auf-kupfer-schwach: rgba(12,23,32,.74);
  --auf-kupfer-feld:    rgba(253,252,249,.28);
  --auf-kupfer-feld-an: rgba(253,252,249,.4);
  --auf-kupfer-rand:    rgba(12,23,32,.8);

  /* 1.8 TIEFE. Im Dunkeln trägt ein Schatten keine Tiefe: ein dunkler Fleck
     auf dunklem Grund ist kein fehlendes Licht, sondern nichts. Die drei
     Stufen behalten Namen und Eigenschaft, wechseln aber das Mittel — eine
     INNENLINIE aus Licht an der Oberkante, dazu ein dunkler Hof, der nur
     noch die Ablösung andeutet. Die Regel aus 1.8 bleibt gültig: eine
     Technik pro Element, Karte hat Schatten ODER Rahmen. Die Innenlinie IST
     der Schatten.

     Konkret unterscheiden sich die drei Ebenen so:
       Karte       --fl mit --tiefe-1, eine Stufe ÜBER dem Seitengrund
                   (1,12) wie im Hellen. Die Innenlinie ersetzt den Rahmen.
       Dialog      --fl mit --tiefe-2 und dem --schleier-modal darunter. Der
                   Schleier ist hier das tragende Mittel: er nimmt den Grund
                   weg, statt den Dialog anzuheben.
       Schwebendes --fl mit --tiefe-3, der stärksten Innenlinie. Toast,
                   Palette, Chatfenster.
     Weil die Leiter ihre Reihenfolge behält, ist --fl auch im Dunkeln die
     oberste Fläche; die drei Ebenen unterscheiden sich deshalb über die
     Stärke der Innenlinie und den Schleier, nicht über weitere Stufen.
     --fl-4 und --fl-5 bleiben, was sie im Hellen sind: Zustände, nicht
     Ebenen. */
  --tiefe-1: inset 0 0 0 1px rgba(234,241,245,.07),
             0 1px 2px rgba(2,6,10,.5),
             0 6px 16px rgba(2,6,10,.34); /* @kind shadow */
  --tiefe-2: inset 0 0 0 1px rgba(234,241,245,.1),
             0 1px 2px rgba(2,6,10,.5),
             0 6px 16px rgba(2,6,10,.44),
             0 12px 28px rgba(2,6,10,.36); /* @kind shadow */
  --tiefe-3: inset 0 0 0 1px rgba(234,241,245,.14),
             0 1px 2px rgba(2,6,10,.5),
             0 6px 14px rgba(2,6,10,.46),
             0 16px 34px rgba(2,6,10,.42),
             0 32px 64px rgba(2,6,10,.36); /* @kind shadow */
}
