/* =====================================================================
   DACHKONZEPTE ERP – Grundregeln einer umgezogenen Seite
   app/static/ds/ds-basis.css (seit 1.8.161, Stufe 2 „Rahmen“)

   Schrift, Farben und Steuerelemente für Seiten, die auf das
   Design-System „Schiefer & Signal“ umgezogen sind. Jede Regel gilt nur
   unter .ds-seite (die Klasse setzt eine Seite beim Umzug an ihr <body>,
   für das Tablet zusätzlich .ds-tablet -- seit 1.9.88 jede Seite im
   Monteursrahmen, tests/test_v509_ds_tablet.py) -- eine Seite ohne die Klasse
   bleibt unverändert. Hier stehen keine --ds-*-Werte (die setzt nur
   ds.css), keine At-Regeln, kein !important (Wächter:
   tests/test_v441_rahmen_baustein.py). Regel 37 für ds.css bleibt.

   Seit 1.9.4: jeder Selektor steht ganz in :where(…) und hat damit das
   Gewicht null (0,0,0). Die Grundregeln gelten für alle Elemente, jede
   Klasse (auch ein Elementselektor einer Seite) überstimmt sie. Ersetzt
   „nur Elemente ohne Klasse“ (:not([class]), 1.9.3): ein Element unter
   .ds-seite (0,1,1) wog mehr als eine Klasse (0,1,0) und färbte Leiste,
   Kontomenü und den grünen Knopf um. Untereinander entscheidet bei
   gleichem Gewicht die Reihenfolge -- die Tablet-Regeln stehen deshalb
   hinter den allgemeinen.
   ===================================================================== */

:where(.ds-seite) {
  margin: 0;
  background: var(--ds-grund);
  color: var(--ds-text);
  font-family: var(--ds-schrift-text);
  font-size: var(--ds-groesse-4);
  line-height: 1.45;
}

:where(.ds-seite.ds-tablet) {
  font-size: var(--ds-groesse-5);
}

:where(.ds-seite h1, .ds-seite h2, .ds-seite h3) {
  font-family: var(--ds-schrift-titel);
  font-weight: 600;
  color: var(--ds-text);
}

:where(.ds-seite button, .ds-seite input, .ds-seite select, .ds-seite textarea) {
  font: inherit;
  color: inherit;
}

:where(.ds-seite input, .ds-seite select, .ds-seite textarea) {
  border: 1px solid var(--ds-feld-rand);
  border-radius: var(--ds-ecke-feld);
  background: var(--ds-flaeche);
  color: var(--ds-text);
}

:where(.ds-seite button) {
  border-radius: var(--ds-ecke-feld);
}

:where(.ds-seite.ds-tablet input, .ds-seite.ds-tablet select, .ds-seite.ds-tablet textarea, .ds-seite.ds-tablet button) {
  border-radius: var(--ds-ecke-tablet-feld);
}

/* Seit 1.9.88: Ziele im Tablet mindestens 48 px hoch (Stufe 4) -- Knöpfe, Auswahlen und einzeilige Felder; nicht Häkchen und
   Optionsfelder, nicht mehrzeilige Felder. Bis dahin waren Konto (40 px), Objekt (44 px) und Checkliste (44/47 px) darunter. */
:where(.ds-seite.ds-tablet button, .ds-seite.ds-tablet select,
       .ds-seite.ds-tablet input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"])) {
  min-height: 48px;
}

:where(.ds-seite a) {
  color: var(--ds-link);
}

:where(.ds-seite a:hover) {
  color: var(--ds-link-hover);
}

:where(.ds-seite :focus-visible) {
  outline: 2px solid var(--ds-fokus);
  outline-offset: 2px;
}
