/* Simulation = Mechanik-/Vorbereitungsmaterial, KEIN Nutzer-/Marktbeleg. */
/*
 * public/verwaltung.schalter.css — Welle 3 (29.10.2026), Paket w3-schalter (Plenum P4): Gestalt der Tafel „Schalter“.
 * Eine Spalte bis 56 rem Breite, danach links die Mandanten, rechts die Stellungen; die Lesebreite bleibt auch bei 2560 px begrenzt.
 * Zustand immer als WORT (nicht nur Farbe). Nur Tokens aus `basis.css`; keine Adresse, kein `@import`.
 */

#sw-platz { display: grid; gap: var(--space-5); max-width: 84rem; }

.sw-meldung { margin: 0; min-height: 1.5em; font-size: var(--text-control); font-weight: 600; }
.sw-meldung[data-ton="fehler"] { color: var(--marke-fehler); }
.sw-meldung[data-ton="ok"] { color: var(--marke-erfolg); }

.sw-bahn { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 56rem) { .sw-bahn { grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); } }

.sw-links h2, .sw-detail h2, .sw-protokoll-block h2 { margin: 0 0 var(--space-3); font-size: var(--text-section); }

.sw-mandanten { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.sw-mandant {
  display: grid; gap: var(--space-2); width: 100%; text-align: start; cursor: pointer; min-height: var(--klickziel);
  padding: var(--space-3) var(--space-4); border: var(--haarlinie); border-radius: var(--r-1);
  background: var(--marke-grund); color: var(--marke-tinte);
}
.sw-mandant:hover { background: var(--marke-flaeche-stark); }
.sw-mandant[aria-pressed="true"] { border-color: var(--marke-aktion); background: var(--marke-flaeche); box-shadow: inset 3px 0 0 var(--marke-aktion); }
.sw-mandant-name { font-weight: 700; overflow-wrap: anywhere; }
.sw-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1) var(--space-3); }
.sw-chip-zeile { display: flex; flex-wrap: wrap; gap: 0 var(--space-2); align-items: baseline; min-width: 0; font-size: var(--text-caption); color: var(--marke-etikett); }
.sw-chip { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: var(--marke-tinte); }
.sw-chip::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--marke-etikett); }
.sw-chip[data-stellung="vorschau"]::before { background: var(--marke-warnung); }
.sw-chip[data-stellung="an"]::before { background: var(--marke-erfolg); }

.sw-detail { display: grid; gap: var(--space-4); max-width: 60rem; }
.sw-karte { margin: 0; display: grid; gap: var(--space-3); min-width: 0; padding: var(--space-4); border: var(--haarlinie); border-radius: var(--r-2); background: var(--marke-flaeche); }
.sw-karte legend { padding: 0 var(--space-2); font-weight: 750; font-size: var(--text-prose); }
.sw-beschreibung, .sw-hilfe { margin: 0; font-size: var(--text-caption); color: var(--marke-etikett); max-width: 70ch; overflow-wrap: anywhere; }
.sw-beschreibung { font-size: var(--text-control); color: var(--marke-tinte); }
.sw-zeile { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.sw-stellungen { display: inline-flex; flex-wrap: wrap; gap: var(--space-2); }
.sw-wahl {
  display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--klickziel); padding: 0 var(--space-4);
  border: 1px solid var(--marke-steuerung); border-radius: var(--r-1); background: var(--marke-grund); cursor: pointer; font-weight: 600;
}
.sw-wahl:has(input:checked) { background: var(--marke-aktion); border-color: var(--marke-aktion); color: var(--marke-knopf-schrift, var(--marke-grund)); }
.sw-wahl:has(input:focus-visible) { outline: 2px solid var(--marke-aktion); outline-offset: 2px; }
.sw-wahl[data-gesperrt="ja"] { cursor: not-allowed; opacity: .6; border-style: dashed; }
/* Radio im gefüllten Schalter: Kästchen in Licht, Punkt in Glasur (sonst verschwände es auf --marke-aktion). */
.sw-wahl input:checked { background-color: var(--licht); border-color: var(--licht); }
.sw-wahl input:checked::before { background: var(--glasur); }
.sw-abzeichen { padding: .2rem .7rem; border-radius: var(--r-pille); border: 1px solid var(--marke-warnung); font-size: var(--text-caption); font-weight: 700; }
.sw-karte[data-stellung="an"] .sw-abzeichen { border-color: var(--marke-erfolg); }

.sw-zaehler { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: var(--space-3); margin: 0; }
.sw-kennzahl { display: flex; flex-direction: column-reverse; gap: .1rem; margin: 0; }
.sw-kennzahl dd { margin: 0; font-size: var(--text-kennzahl, 1.5rem); font-weight: 750; }
.sw-kennzahl dt { font-size: var(--text-caption); color: var(--marke-etikett); }
.sw-kennzahl[data-zaehler="waere-falsch"] dd { color: var(--marke-fehler); }

.sw-protokoll-block { display: grid; gap: var(--space-2); max-width: 60rem; }
.sw-protokoll { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border: var(--haarlinie); border-radius: var(--r-1); max-height: 22rem; overflow: auto; }
.sw-protokoll-zeile { display: grid; grid-template-columns: minmax(0, 1fr); gap: .1rem var(--space-3); padding: var(--space-2) var(--space-3); border-bottom: var(--haarlinie); font-size: var(--text-caption); }
.sw-protokoll-zeile:last-child { border-bottom: 0; }
@media (min-width: 40rem) { .sw-protokoll-zeile { grid-template-columns: 9rem 10rem minmax(0, 1fr) 7rem; align-items: baseline; } }
.sw-p-hash { font-size: var(--text-caption); overflow-wrap: anywhere; }
.sw-p-klasse { overflow-wrap: anywhere; }
