/* GERÜSTWERK Phase 9 S3 — Zieloptik-Schicht (Flag `workDeskChrome`).
   Wirkt NUR unter body.gw-chrome-workdesk und NUR ab 901px (Mobil: nach S4/V2).
   Referenz: docs/mockup/referenz/2026-09-01-referenz-arbeitsplatz.png —
   Chrome Graphit #0f1720 + Petrol #0e7a5a, Arbeitsfläche #eef1f4 mit weißen Karten.
   Abschnitte: 1 Tokens · 2 Arbeitsfläche · 3 Chrome · 4 Dashboard · 5 Overlays. */
@media (min-width: 901px) {

/* ── 1 Tokens ─────────────────────────────────────────────────────────── */
body.gw-chrome-workdesk {
  --chrome: #0f1720; --chrome-2: #0b1219; --chrome-line: #1f2b38;
  --chrome-text: #c8d2dc; --chrome-dim: #7d8b99;
  --brand: #0e7a5a; --brand-ink: #0a5c44; --blue: #2563eb;
  --bg: #eef1f4; --card: #ffffff; --line: #e2e7ec;
  --text: #17222c; --muted: #5a6b7a;
  --accent: #0e7a5a; --accent2: #0a5c44; --accent-text: #ffffff;
  --panel-raised: #f3f6f9; --header-bg: #0f1720; --header-bg2: #141c26;
  --radius: 10px;
}

/* ── 2 Arbeitsfläche (alle Views mit .tabview.active, Shell und Nicht-Shell, ausser Landing; T7-Ruling 6d) ───────────────────────────────── */
body.gw-chrome-workdesk.gw-shell { color: var(--text); background: var(--bg) !important; background-image: none !important; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .card {
  background: var(--card); border: 1px solid var(--line); border-radius: 10px; color: var(--text);
  box-shadow: 0 1px 2px rgba(23,34,44,.06), 0 4px 14px rgba(23,34,44,.05); backdrop-filter: none;
}
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active h1, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active h2,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active h3, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active label,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active p, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active th,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active td, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active li { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active th { color: var(--muted); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid var(--line); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active td { border-bottom: 1px solid #eef1f4; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .small, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .sub { color: var(--muted); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active input, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active select,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active textarea { background: #ffffff; border: 1px solid var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active input::placeholder, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active textarea::placeholder { color: #8a99a8; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active select option { background: #ffffff; color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .item { background: #fbfcfd; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .item b, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .item strong { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .item .small { color: var(--muted); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .item.active { border-color: var(--brand); outline-color: var(--brand); box-shadow: 0 0 0 2px rgba(14,122,90,.18); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .statusbox { background: var(--panel-raised) !important; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .dash-mini { background: #ffffff !important; border: 1px solid var(--line); border-radius: 10px; color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active button.primary, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .send-btn { background: var(--brand); border-color: var(--brand); color: #ffffff; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active button.primary:hover, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .send-btn:hover { background: var(--brand-ink); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .tab.active { background: var(--brand); border-color: var(--brand); color: #ffffff; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active a { color: var(--blue); }
body.gw-chrome-workdesk:not(.gw-landing-open) .status-aside { background: #ffffff; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .status-aside .sa-werk { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .status-aside .sa-row { background: var(--panel-raised); border-color: var(--line); }
body.gw-chrome-workdesk:not(.gw-landing-open) .status-aside .sa-row:hover { background: #e9eef3; }

/* ── 3 Chrome: Sidebar + Kopfzeile (E-S3-1, E-S3-5, E-S3-9) ───────────── */
body.gw-chrome-workdesk .gw-dashboard__side { background: var(--chrome) !important; background-image: none !important; border-right: 1px solid var(--chrome-line) !important; padding: 18px 12px 40px; overflow: visible; }
body.gw-chrome-workdesk .gw-dashboard__side::after { content: none !important; }
body.gw-chrome-workdesk .gw-brand { padding: 0 8px 18px; color: #ffffff; }
body.gw-chrome-workdesk .gw-brand b span { color: var(--brand); }
body.gw-chrome-workdesk .gw-brand small { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-brand__mark, body.gw-chrome-workdesk .gw-brand__mark::before, body.gw-chrome-workdesk .gw-brand__mark::after, body.gw-chrome-workdesk .gw-brand__mark i { border-color: var(--chrome-text); background-color: var(--chrome-text); }
body.gw-chrome-workdesk .gw-brand__mark { background: none; }
body.gw-chrome-workdesk .gw-side-item, body.gw-chrome-workdesk .gw-acc-head, body.gw-chrome-workdesk .gw-side-sub { color: var(--chrome-text); border-radius: 7px; font-size: .84rem; }
body.gw-chrome-workdesk .gw-side-item:hover, body.gw-chrome-workdesk .gw-acc-head:hover, body.gw-chrome-workdesk .gw-side-sub:hover { background: #151f2a; }
body.gw-chrome-workdesk .gw-side-item.active, body.gw-chrome-workdesk .gw-side-sub.active { background: var(--brand) !important; background-image: none !important; color: #ffffff; font-weight: 600; }
body.gw-chrome-workdesk .gw-acc-head { color: var(--chrome-dim) !important; font-size: .62rem; letter-spacing: .1em; }
body.gw-chrome-workdesk .gw-acc-head .ic { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-side-item .ic, body.gw-chrome-workdesk .gw-side-sub .ic { color: var(--chrome-text); opacity: .85; }
body.gw-chrome-workdesk .gw-side-item.active .ic, body.gw-chrome-workdesk .gw-side-sub.active .ic { color: #ffffff; opacity: 1; }
body.gw-chrome-workdesk .gw-side-nav button { color: var(--chrome-text); }
body.gw-chrome-workdesk .gw-side-nav button:hover { background: #151f2a; }
body.gw-chrome-workdesk .gw-side-nav button.active { background: var(--brand); background-image: none; color: #ffffff; }
body.gw-chrome-workdesk .gw-acc-body .gw-work-select span { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-acc-body .gw-work-select select { background: var(--chrome-2); border-color: var(--chrome-line); color: var(--chrome-text); }

body.gw-chrome-workdesk.gw-shell .gw-shell-body { padding: 0; }
body.gw-chrome-workdesk.gw-shell .gw-shell-frame > .gw-shell-body > .gw-dash-head { background: var(--chrome); border-bottom: 1px solid var(--chrome-line); min-height: 64px; padding: 0 22px; margin: 0; }
body.gw-chrome-workdesk.gw-shell .tabview.active > .wrap { padding: 20px 26px 40px; }
body.gw-chrome-workdesk .gw-welcome h1 { color: #ffffff; font-size: 1rem; font-weight: 600; }
body.gw-chrome-workdesk .gw-welcome h1 span { font-size: 1rem; }
body.gw-chrome-workdesk .gw-welcome p { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-head-search input, body.gw-chrome-workdesk .gw-head-search.open input { background: #ffffff; border-color: var(--chrome-line); color: var(--text); border-radius: 8px; }
body.gw-chrome-workdesk .gw-head-search input::placeholder { color: #8a99a8; }
body.gw-chrome-workdesk .gw-search-toggle { color: var(--chrome-text); }
body.gw-chrome-workdesk .gw-head-clock { color: var(--chrome-text); }
body.gw-chrome-workdesk .gw-head-clock .gw-clock-date { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-tool { min-height: 40px; padding: 6px 12px; background: var(--chrome-2); border-color: var(--chrome-line); color: var(--chrome-text); border-radius: 8px; }
body.gw-chrome-workdesk .gw-tool small { color: var(--chrome-dim); }
body.gw-chrome-workdesk .gw-lang-sel { background: transparent; color: var(--chrome-text); border: 0; }
body.gw-chrome-workdesk .gw-lang-sel option { background: #ffffff; color: var(--text); }
body.gw-chrome-workdesk .gw-head-shortcuts button { background: var(--chrome-2); border-color: var(--chrome-line); color: var(--chrome-text); }
body.gw-chrome-workdesk .gw-head-shortcuts button:hover { background: #151f2a; }
body.gw-chrome-workdesk .gw-head-shortcuts button > span:first-child { color: var(--brand); }
body.gw-chrome-workdesk .gw-head-icon { background: var(--chrome-2); border-color: var(--chrome-line); color: var(--chrome-text); }

/* ── 4 Dashboard #viewS + Werk-Startkarten ────────────────────────────── */
body.gw-chrome-workdesk .gw-dashboard {
  --dash-bg: #eef1f4; --dash-side: #0f1720; --dash-card: #ffffff; --dash-card-2: #f3f6f9;
  --dash-line: #e2e7ec; --dash-text: #17222c; --dash-muted: #5a6b7a; --dash-orange: #0e7a5a;
  background: transparent; color: var(--dash-text);
}
body.gw-chrome-workdesk.gw-dashboard-active, body.gw-chrome-workdesk:has(#viewS.active) { background: var(--bg) !important; background-image: none !important; background-position: 0 0; }
body.gw-chrome-workdesk .gw-panel { background: #ffffff; border: 1px solid var(--line); color: var(--text); box-shadow: 0 1px 2px rgba(23,34,44,.06), 0 4px 14px rgba(23,34,44,.05); }
body.gw-chrome-workdesk .gw-panel__head { border-bottom-color: var(--line); }
body.gw-chrome-workdesk .gw-panel__head h2 { color: var(--text); font-size: .74rem; letter-spacing: .09em; text-transform: uppercase; }
body.gw-chrome-workdesk .gw-panel--calendar .cal-cell { background: #ffffff; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk .gw-panel--calendar .cal-cell.has-ev { background: #e6f6ec; }
body.gw-chrome-workdesk .gw-panel--calendar .cal-cell.today { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(14,122,90,.18); }
body.gw-chrome-workdesk .gw-panel--calendar .cal-cell.sel { background: var(--brand); color: #ffffff; }
body.gw-chrome-workdesk .gw-panel--calendar .cal-wd { color: var(--muted); }
body.gw-chrome-workdesk .gw-kpi-card { background: #ffffff; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk .gw-kpi-card__body small { color: var(--muted); }
body.gw-chrome-workdesk .gw-start__title { color: var(--text); }
body.gw-chrome-workdesk .gw-start__add { background: var(--brand); color: #ffffff; }
body.gw-chrome-workdesk .gw-start-card { background: #ffffff; background-image: none; border: 1px solid var(--line); color: var(--text); box-shadow: 0 1px 2px rgba(23,34,44,.06); }
body.gw-chrome-workdesk .gw-start-card:hover { border-color: var(--brand); box-shadow: 0 8px 24px rgba(23,34,44,.10); }
body.gw-chrome-workdesk .gw-start-card__ic { color: var(--brand); }
body.gw-chrome-workdesk .gw-start-card__name small, body.gw-chrome-workdesk .gw-start-card__stats span { color: var(--muted); }
body.gw-chrome-workdesk .gw-start-card__stats span b { color: var(--text); }
body.gw-chrome-workdesk .gw-start__empty { color: var(--text); }
body.gw-chrome-workdesk .gw-start__empty h2 { color: var(--text); }
body.gw-chrome-workdesk .gw-start__empty p { color: var(--muted); }
body.gw-chrome-workdesk .gw-start__empty-ic { color: var(--brand); }
body.gw-chrome-workdesk.gw-dashboard-active #gw-footer, body.gw-chrome-workdesk.gw-dashboard-active #gw-footer a { color: var(--muted); }
body.gw-chrome-workdesk.gw-dashboard-active #gw-footer a:hover { color: var(--text); }

/* ── 4b Bestandsabweichung: reale #viewS-Arbeitsfläche (Phase 4 „gw-workspace") ──
   Befund T4 (empirisch, chrome.spec.ts RED belegt): app.js renderStartUebersicht()
   (Z. 3102) nimmt IMMER den window.gw.workspace-Zweig (Z. 3103), weil gw-workspace.js
   window.gw.workspace unbedingt beim Laden setzt (Z. 247) — kein Feature-Flag schützt
   davor. Die .gw-dashboard/.gw-start/.gw-panel/.gw-kpi-card-Auszeichnung aus app.css
   (Z. 761-1108) wird dadurch für #viewS NIE gerendert (siehe auch Bestandstests
   tests/e2e.spec.ts, mehrfach `.gw-dashboard` toBeHidden). Die obige Abschnitt-4-CSS
   bleibt daher wirkungslos für #viewS; sie steht dennoch brief-konform (verbatim) im
   Code, falls der Fallback-Pfad je greift. Diese Ergänzung hält die TATSÄCHLICH
   gerenderte Fläche (.gw-workspace, Phase 4 "industrielle Arbeitsoberfläche",
   gw-workspace.css) hell — Status-/Ampelfarben (.gw-ws-badge--*, .gw-ws-status-dot--*)
   bleiben unberührt (semantisch, siehe Constraints). */
body.gw-chrome-workdesk .gw-workspace { background: transparent; color: var(--text); border-top-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-header { background: #ffffff; border-bottom-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-header small { color: var(--brand); }
body.gw-chrome-workdesk .gw-ws-benefit { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-modes { background: var(--panel-raised); border-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-modes button { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-modes button.is-active { background: var(--brand); }
body.gw-chrome-workdesk .gw-ws-kpis { background: var(--line); border-bottom-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-kpi { background: #ffffff; }
body.gw-chrome-workdesk .gw-ws-kpi span { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-kpi b { color: var(--text); }
body.gw-chrome-workdesk .gw-ws-kpi small { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-list-panel { background: #ffffff; border-right-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk .gw-ws-list-panel>header { border-bottom-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-list-panel>header small { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-list-panel>header>span { background: var(--panel-raised); color: var(--brand); }
body.gw-chrome-workdesk .gw-ws-search { background: #ffffff; border-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-search input { color: var(--text); }
body.gw-chrome-workdesk .gw-ws-filter-row button { background: var(--panel-raised); color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-filter-row button.is-active { color: var(--brand); }
body.gw-chrome-workdesk .gw-ws-list { border-top-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-scaffold { background: #ffffff; border-bottom-color: var(--line); }
body.gw-chrome-workdesk .gw-ws-scaffold:hover, body.gw-chrome-workdesk .gw-ws-scaffold.is-selected { background: var(--panel-raised); box-shadow: inset 3px 0 0 var(--brand); }
body.gw-chrome-workdesk .gw-ws-scaffold b { color: var(--text); }
body.gw-chrome-workdesk .gw-ws-scaffold small { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-scaffold em { color: var(--muted); }
body.gw-chrome-workdesk .gw-ws-resizer { background: var(--line); }
body.gw-chrome-workdesk .gw-ws-resizer i { background: var(--muted); }
body.gw-chrome-workdesk .gw-ws-resizer:hover, body.gw-chrome-workdesk .gw-ws-resizer:focus-visible { background: var(--panel-raised); }
body.gw-chrome-workdesk .gw-ws-resizer:hover i, body.gw-chrome-workdesk .gw-ws-resizer:focus-visible i { background: var(--brand); }
body.gw-chrome-workdesk .gw-ws-empty { color: var(--muted); }

/* ── 5 Modul-Overlays (E-S3-6: enumerierte Liste, keine Wildcards) ───── */
body.gw-chrome-workdesk .gw-abw-card, body.gw-chrome-workdesk .gw-am-card, body.gw-chrome-workdesk .gw-audit-card,
body.gw-chrome-workdesk .gw-fm-card, body.gw-chrome-workdesk .gw-gal-card, body.gw-chrome-workdesk .gw-geo-card,
body.gw-chrome-workdesk .gw-ma-card, body.gw-chrome-workdesk .gw-mz-card, body.gw-chrome-workdesk .gw-onb-card,
body.gw-chrome-workdesk .gw-pm-card, body.gw-chrome-workdesk .gw-users-card, body.gw-chrome-workdesk .gw-ver-card,
body.gw-chrome-workdesk .gw-verlauf-card, body.gw-chrome-workdesk .gw-vh-card, body.gw-chrome-workdesk .gw-wz-card,
body.gw-chrome-workdesk .gw-zl-card, body.gw-chrome-workdesk .gw-modal {
  background: #ffffff !important; color: #17222c !important; border: 1px solid #e2e7ec; border-radius: 12px;
  box-shadow: 0 20px 60px rgba(23,34,44,.18);
}
body.gw-chrome-workdesk .gw-onb { background: rgba(23,34,44,.55) !important; }
/* Überschriften/Text in den Karten */
body.gw-chrome-workdesk .gw-abw-card h3, body.gw-chrome-workdesk .gw-am-card h3, body.gw-chrome-workdesk .gw-audit-card h3,
body.gw-chrome-workdesk .gw-fm-card h3, body.gw-chrome-workdesk .gw-gal-card h3, body.gw-chrome-workdesk .gw-geo-card h3,
body.gw-chrome-workdesk .gw-ma-card h3, body.gw-chrome-workdesk .gw-mz-card h3, body.gw-chrome-workdesk .gw-onb-card h3,
body.gw-chrome-workdesk .gw-pm-card h3, body.gw-chrome-workdesk .gw-users-card h3, body.gw-chrome-workdesk .gw-ver-card h3,
body.gw-chrome-workdesk .gw-verlauf-card h3, body.gw-chrome-workdesk .gw-vh-card h3, body.gw-chrome-workdesk .gw-wz-card h3,
body.gw-chrome-workdesk .gw-zl-card h3, body.gw-chrome-workdesk .gw-modal h3, body.gw-chrome-workdesk .gw-modal h2 { color: #17222c !important; }
/* Erhöhte Flächen (Formulare, Stände, Summen, Zeilen) */
body.gw-chrome-workdesk .gw-abw-form, body.gw-chrome-workdesk .gw-abw-stand, body.gw-chrome-workdesk .gw-am-form, body.gw-chrome-workdesk .gw-am-summen,
body.gw-chrome-workdesk .gw-au-row, body.gw-chrome-workdesk .gw-code-regen, body.gw-chrome-workdesk .gw-fm-form, body.gw-chrome-workdesk .gw-fm-stand,
body.gw-chrome-workdesk .gw-gal-item, body.gw-chrome-workdesk .gw-geo-form, body.gw-chrome-workdesk .gw-geo-fotos, body.gw-chrome-workdesk .gw-geo-stand,
body.gw-chrome-workdesk .gw-mz-row, body.gw-chrome-workdesk .gw-mz-sub, body.gw-chrome-workdesk .gw-pm-form, body.gw-chrome-workdesk .gw-pm-summen,
body.gw-chrome-workdesk .gw-users-hint, body.gw-chrome-workdesk .gw-ver-form, body.gw-chrome-workdesk .gw-ver-stand, body.gw-chrome-workdesk .gw-vh-block,
body.gw-chrome-workdesk .gw-vh-form, body.gw-chrome-workdesk .gw-vl-row, body.gw-chrome-workdesk .gw-wz-row, body.gw-chrome-workdesk .gw-wz-sub,
body.gw-chrome-workdesk .gw-zl-form, body.gw-chrome-workdesk .gw-zl-summen, body.gw-chrome-workdesk .gw-allow-row, body.gw-chrome-workdesk .gw-allow-del,
body.gw-chrome-workdesk .gw-modal .ghost {
  background: #f3f6f9 !important; color: #17222c !important; border-color: #e2e7ec !important;
}
/* Badges */
body.gw-chrome-workdesk .gw-abw-badge, body.gw-chrome-workdesk .gw-am-badge, body.gw-chrome-workdesk .gw-geo-badge, body.gw-chrome-workdesk .gw-pm-badge,
body.gw-chrome-workdesk .gw-ver-badge, body.gw-chrome-workdesk .gw-vh-badge, body.gw-chrome-workdesk .gw-zl-badge { background: #e9eef3 !important; color: #5a6b7a !important; }
/* Kopfbuttons, Tabellen, Eingaben in den Karten.
   T5-Korrektur ggü. Brief-Vorlage (empirisch per grep public/src/gw-*.js geprüft):
   - .gw-onb-head button gestrichen: gw-onboarding.js hat keinen Kopf mit Button (nur .gw-onb-card h2/h3), toter Selektor.
   - .gw-audit-tbl / .gw-verlauf-tbl gestrichen: beide Module rendern Listenzeilen (.gw-au-row / .gw-vl-row,
     bereits oben in "Erhöhte Flächen" abgedeckt), keine <table>; nur .gw-users-tbl existiert real. */
body.gw-chrome-workdesk .gw-abw-head button, body.gw-chrome-workdesk .gw-am-head button, body.gw-chrome-workdesk .gw-audit-head button,
body.gw-chrome-workdesk .gw-fm-head button, body.gw-chrome-workdesk .gw-gal-head button, body.gw-chrome-workdesk .gw-geo-head button,
body.gw-chrome-workdesk .gw-ma-head button, body.gw-chrome-workdesk .gw-mz-head button,
body.gw-chrome-workdesk .gw-pm-head button, body.gw-chrome-workdesk .gw-users-head button, body.gw-chrome-workdesk .gw-ver-head button,
body.gw-chrome-workdesk .gw-verlauf-head button, body.gw-chrome-workdesk .gw-vh-head button, body.gw-chrome-workdesk .gw-wz-head button,
body.gw-chrome-workdesk .gw-zl-head button { background: #f3f6f9 !important; color: #17222c !important; border: 1px solid #e2e7ec; }
body.gw-chrome-workdesk .gw-users-tbl th, body.gw-chrome-workdesk .gw-users-tbl td { border-bottom-color: #e2e7ec !important; color: #17222c; }
body.gw-chrome-workdesk .gw-users-tbl select, body.gw-chrome-workdesk .gw-modal input, body.gw-chrome-workdesk .gw-modal select,
body.gw-chrome-workdesk .gw-abw-form input, body.gw-chrome-workdesk .gw-abw-form select, body.gw-chrome-workdesk .gw-abw-form textarea,
body.gw-chrome-workdesk .gw-am-form input, body.gw-chrome-workdesk .gw-am-form select, body.gw-chrome-workdesk .gw-am-form textarea,
body.gw-chrome-workdesk .gw-fm-form input, body.gw-chrome-workdesk .gw-fm-form select, body.gw-chrome-workdesk .gw-fm-form textarea,
body.gw-chrome-workdesk .gw-geo-form input, body.gw-chrome-workdesk .gw-geo-form select, body.gw-chrome-workdesk .gw-geo-form textarea,
body.gw-chrome-workdesk .gw-pm-form input, body.gw-chrome-workdesk .gw-pm-form select, body.gw-chrome-workdesk .gw-pm-form textarea,
body.gw-chrome-workdesk .gw-ver-form input, body.gw-chrome-workdesk .gw-ver-form select, body.gw-chrome-workdesk .gw-ver-form textarea,
body.gw-chrome-workdesk .gw-vh-form input, body.gw-chrome-workdesk .gw-vh-form select, body.gw-chrome-workdesk .gw-vh-form textarea,
body.gw-chrome-workdesk .gw-zl-form input, body.gw-chrome-workdesk .gw-zl-form select, body.gw-chrome-workdesk .gw-zl-form textarea {
  background: #ffffff !important; color: #17222c !important; border: 1px solid #e2e7ec !important;
}
body.gw-chrome-workdesk .gw-modal .meta { color: #5a6b7a !important; border-top-color: #e2e7ec !important; }
/* T5-Ergänzung (Login-Modal, im Tasktitel genannt): .gw-modal label/.sub tragen im Original-Style-Tag
   (gw-ui.js) eine eigene, spezifischere Farbregel (#8b9bab) als die Karten-Regel oben erreicht (Vererbung
   greift hier nicht, da direkt auf dem Element deklariert) — ohne diese Zeile blieben Login-Feldbeschriftungen
   hellgrau auf weiß (Kontrast < AA). Spezifität (3 Klassen) schlägt das Original (2 Klassen/Klasse+Tag), kein !important nötig. */
body.gw-chrome-workdesk .gw-modal label, body.gw-chrome-workdesk .gw-modal .sub { color: #5a6b7a; }
body.gw-chrome-workdesk .allow-date { color: #5a6b7a !important; }
/* T5-Korrektur: Original-Regel ist ID-gescopt (#gwHeadAufgaben .gw-aufg-badge, gw-aufgaben.js) und schlägt damit
   jeden reinen Klassen-Selektor an Spezifität, auch ohne !important auf der Originalseite — die Brief-Vorlage
   (".gw-aufg-badge" ohne ID) würde also wirkungslos bleiben. Fix: ID mit in den Override-Selektor aufgenommen
   (Spezifität statt !important, wie von den Constraints gefordert). */
body.gw-chrome-workdesk #gwHeadAufgaben .gw-aufg-badge, body.gw-chrome-workdesk .gw-aufg-host .gw-aufg-badge { background: #0e7a5a; color: #ffffff; }

/* Review-Fix Runde 1: verschachtelte Kind-Elemente innerhalb bereits oben gelisteter/gelichteter
   Container. Die Modul-Style-Tags setzen auf diesen Kindern eine EIGENE, direkte Hell-auf-Dunkel-
   Farbe/-Fläche (nicht ererbt) — Vererbung wird von jeder direkten Deklaration am Kind selbst
   geschlagen, unabhängig davon, ob die Vorfahren-Regel oben !important trägt. Ohne diese Zeilen
   blieben Zeilentexte in Benutzerverwaltung (mz/wz/allow-row), Protokoll (Audit) und Verlauf sowie
   Eingaben in Materialanforderung/Onboarding dunkel bzw. kaum lesbar — dunkle Inseln unter dem Flag.
   Enumeriert (kein Wildcard), Spezifität statt !important: alle Selektoren unten sind 1 Klasse
   spezifischer (3 Klassen bzw. 2 Klassen+Tag) als die Original-Regel in den Modul-Style-Tags,
   das reicht ohne !important. Quellen (Zeilen Stand Review):
   gw-users.js:794-796 (.gw-mz-row), gw-users.js:622-624 (.gw-wz-row), gw-users.js:86 (.gw-allow-row),
   gw-audit.js:38-41 (.gw-au-row), gw-verlauf.js:65-68 (.gw-vl-row),
   gw-materialanforderung.js:30-31,40-41 (.gw-ma-field, .gw-ma-row), gw-onboarding.js:27-28 (.gw-onb-card). */
body.gw-chrome-workdesk .gw-mz-row .name, body.gw-chrome-workdesk .gw-wz-row .name,
body.gw-chrome-workdesk .gw-allow-row .allow-email,
body.gw-chrome-workdesk .gw-au-row .lbl, body.gw-chrome-workdesk .gw-vl-row .status {
  color: #17222c;
}
body.gw-chrome-workdesk .gw-au-row .who, body.gw-chrome-workdesk .gw-au-row .dets, body.gw-chrome-workdesk .gw-au-row time,
body.gw-chrome-workdesk .gw-vl-row .who, body.gw-chrome-workdesk .gw-vl-row .zeit {
  color: #5a6b7a;
}
body.gw-chrome-workdesk .gw-vl-row .grund, body.gw-chrome-workdesk .gw-vl-row .bemerkung, body.gw-chrome-workdesk .gw-vl-row .doks {
  color: #17222c;
}
/* E-S3-4 (Amber → Petrol): reiner Hinweistext "Korrektur zu Eintrag #…", keine Ampel-/Statusfarbe. */
body.gw-chrome-workdesk .gw-vl-row .korrHinweis { color: #0e7a5a; }
body.gw-chrome-workdesk .gw-mz-row select, body.gw-chrome-workdesk .gw-wz-row select {
  background: #ffffff; color: #17222c; border: 1px solid #e2e7ec;
}
/* .gw-ma-field selbst trägt keinen eigenen Hintergrund (nur margin), nichts zu lichten — nur die
   Kinder (label/input/textarea). .gw-ma-row input.qty/.unit ergänzt: gleiche Karte (.gw-ma-card),
   gleiches Muster (dunkle Eingabe #0e1620), in der Review-Vorlage nicht einzeln genannt, aber
   dieselbe dunkle Insel im selben, bereits gelichteten Overlay. */
body.gw-chrome-workdesk .gw-ma-field label, body.gw-chrome-workdesk .gw-onb-card p { color: #5a6b7a; }
body.gw-chrome-workdesk .gw-ma-field input, body.gw-chrome-workdesk .gw-ma-field textarea,
body.gw-chrome-workdesk .gw-ma-row input.qty, body.gw-chrome-workdesk .gw-ma-row input.unit,
body.gw-chrome-workdesk .gw-onb-card input {
  background: #ffffff; color: #17222c; border: 1px solid #e2e7ec;
}


/* ── 6 T7-Nacharbeit aus der Sichtpruefung (Detektor-Befunde 2026-09-07, tests/chrome.spec.ts "S3 T7") ── */
/* 6a Shell-Views: Bestandselemente mit hartem Dunkelgrund in app.css (button Z.46, .pill Z.59, .check Z.65,
   .home-tile Z.203, .stability-box Z.282, .valid-badge.none Z.138, .badge--grey Z.668, .defect-priority.normal/
   .defect-due Z.700, .stat-box/.dash-kpi/.werk-stammdaten/.workflow-card/.area-item/.anf-send-more). Bei Flag EIN
   erbten sie die dunkle --text-Schrift => Schrift-auf-Grund k~1,0 (unlesbar). Semantische Varianten bleiben
   unberuehrt: button.primary/.good/.bad/.camBtn, .pill.good/.warn/.bad, .valid-badge.ok/.soon/.over,
   .defect-priority.dringend/.niedrig, .badge--green/--blue. Spezifitaet: (0,5,1)+ schlaegt Bestand (0,0,1..0,2,0).
   Generische Button-Regel NICHT in #viewS (.gw-workspace, eigene Modus-/Panel-Buttons) und #viewD (S1/S2 gw-workdesk.css,
   eigene Buttons/Tabs) — dort haben die Module ihre eigene Zieloptik (GREEN-Befund T7: .gw-ws-modes .is-active wurde weiss). */
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active:not(#viewS):not(#viewD) button:not(.primary):not(.good):not(.bad):not(.camBtn):not(.send-btn):not(.tab) { background: #ffffff; border: 1px solid var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active:not(#viewS):not(#viewD) button:not(.primary):not(.good):not(.bad):not(.camBtn):not(.send-btn):not(.tab):hover { background: var(--panel-raised); border-color: #cfd8e0; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .camBtn, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active button.good, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active button.bad { color: #ffffff; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .pill:not(.good):not(.warn):not(.bad), body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .valid-badge.none,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .badge--grey, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .defect-priority.normal,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .defect-due { background: #e9eef3; color: var(--muted); border-color: var(--line); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .home-tile, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .workflow-card,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .area-item, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .werk-stammdaten,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .stat-box, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .dash-kpi { background: #ffffff; border: 1px solid var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .home-tile:hover, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .home-tile:active { background: var(--panel-raised); border-color: var(--brand); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .home-tile .ht-title { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .home-tile .ht-sub { color: var(--muted); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .check, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .stability-box,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .anf-send-more, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .anf-send-more__buttons { background: var(--panel-raised); border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .check b, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .stability-box b { color: var(--text); }
body.gw-chrome-workdesk:not(.gw-landing-open) .status-aside .sa-row.sa-wert { background: #ffffff; }
/* Amber-Hinweise bleiben semantisch (Warnhinweis, keine Flaechenaenderung), aber auf hellem Grund braucht der
   Text ein dunkles Amber: #f5a623 auf Weiss = 1,9:1 (unter AA); #7a4d00 auf Weiss/rgba(245,166,35,.14) >= 6:1. */
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .notice, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .defect-safety-note,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .gw-ns-lab, body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .gw-ns-lab ~ b,
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .valid-badge.soon { color: #7a4d00; }
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .gw-ns-arr { color: var(--brand); }

/* 6b Dashboard-Workspace: app.css Z.22 `header{background:var(--header-bg)}` trifft auch die Panel-Koepfe
   <header> in .gw-ws-list-panel/.gw-ws-photo-card/.gw-ws-docs; mit Token --header-bg:#0f1720 wurden sie
   Graphit mit dunkler Schrift (Befund "Geruest/Fotos/Dokumente" k=1,1). */
body.gw-chrome-workdesk .gw-workspace header { background: #ffffff; }
body.gw-chrome-workdesk .gw-ws-list-panel > header b, body.gw-chrome-workdesk .gw-ws-photo-card header, body.gw-chrome-workdesk .gw-ws-docs header { color: var(--text); }
body.gw-chrome-workdesk .gw-ws-modes button.is-active { color: #ffffff; }

/* 6c Benutzerverwaltung (gw-users.js Style-Tag): Sektionen mit Amber-Tint + Amber-h4 (E-S3-4 -> Petrol),
   Beitrittscode-Feld #0e1620, Einladungs-Select/Input/Button, Rechte-Buttons (.wz-open-btn/.mz-open-btn)
   und Wartelisten-Eingaben mit Dunkelgrund. Spezifitaet (0,2,0)+ schlaegt die Modul-Regeln (0,1,0..0,1,1);
   #gw-inv-btn ueber ID im Selektor (1,2,0). */
body.gw-chrome-workdesk .gw-code-section, body.gw-chrome-workdesk .gw-wait-section { background: rgba(14,122,90,.07); border-color: rgba(14,122,90,.35); }
body.gw-chrome-workdesk .gw-allow-section { background: rgba(37,99,235,.06); border-color: rgba(37,99,235,.3); }
body.gw-chrome-workdesk .gw-code-section h4, body.gw-chrome-workdesk .gw-wait-section h4 { color: var(--brand-ink); }
body.gw-chrome-workdesk .gw-code-hint, body.gw-chrome-workdesk .gw-code-hint b, body.gw-chrome-workdesk .gw-wait-row .wait-email, body.gw-chrome-workdesk .gw-firma-add .gw-firma-list { color: var(--muted); }
body.gw-chrome-workdesk .gw-code-value { background: #ffffff; border-color: var(--line); color: var(--text); }
body.gw-chrome-workdesk .gw-code-regen { color: var(--brand-ink); }
body.gw-chrome-workdesk .gw-users-card input:not([type=checkbox]), body.gw-chrome-workdesk .gw-users-card select,
body.gw-chrome-workdesk .gw-wait-row select, body.gw-chrome-workdesk .gw-firma-add input, body.gw-chrome-workdesk .gw-allow-add-row input { background: #ffffff; border: 1px solid var(--line); color: var(--text); }
body.gw-chrome-workdesk .gw-users-card input[type=checkbox] { accent-color: var(--brand); }
body.gw-chrome-workdesk .gw-users-card #gw-inv-btn { background: var(--brand); color: #ffffff; border: 0; }
body.gw-chrome-workdesk .gw-users-card #gw-inv-btn:hover { background: var(--brand-ink); }
body.gw-chrome-workdesk .gw-users-card .wz-open-btn, body.gw-chrome-workdesk .gw-users-card .mz-open-btn, body.gw-chrome-workdesk .gw-users-msg button { background: var(--panel-raised); color: var(--text); border: 1px solid var(--line); }

/* 6d Nicht-Shell-Views (viewA Anfordern, viewF Geruestfreigabe/Pruefung, viewG Geruestbuch, viewR Regelwerk,
   viewY/viewO GBU): navTo('freigabe') nach Geruest-Wahl fuehrt in viewF (app.js viewMap f->'F'), NICHT in die
   Shell-View B (Probe 2026-09-07, tests/chrome.spec.ts "S3 T7 Nicht-Shell-View"). Diese Views tragen die
   App-Kopfzeile <header.app-header>, #gwBreadcrumb und .gw-module-bar (Zurueck) statt Sidebar.
   Ruling T7: im Umfang (Nutzer-Satz "alte Optik darf nicht mehr erscheinen"; die Freigabe-Pruefung ist der
   Kern-Ablauf und der Demo-Pfad). Die Arbeitsflaechen-Regeln (Abschnitt 2 + 6a) gelten daher fuer
   body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active — Shell UND Nicht-Shell; Landing/Werk-Gate
   bleiben ausgenommen (E-S3-2). Hier nur, was Nicht-Shell zusaetzlich braucht. */
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) { background: var(--bg) !important; background-image: none !important; color: var(--text); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) > header.app-header { background: var(--chrome); border-bottom: 1px solid var(--chrome-line); color: var(--chrome-text); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) > header.app-header h1 { color: #ffffff; }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .header-auth, body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .header-werk { color: var(--chrome-text); border-color: var(--chrome-line); background: var(--chrome-2); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-breadcrumb { background: var(--chrome-2); color: var(--chrome-text); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-breadcrumb a, body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-breadcrumb button { color: var(--chrome-text); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-module-bar { background: var(--chrome); backdrop-filter: none; border-bottom: 1px solid var(--chrome-line); }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-back-button { background: var(--chrome-2); border-color: var(--chrome-line); color: var(--chrome-text); box-shadow: none; backdrop-filter: none; }
body.gw-chrome-workdesk:not(.gw-shell):not(.gw-landing-open) .gw-back-button:hover { background: #151f2a; }

/* 6e Ruling (b) 2026-09-04: Shell-Views zeigen auf Desktop eine HORIZONTALE Nav-Leiste (app.css @media 901
   "Desktop-Shell: Arbeitsbereiche als obere Navigation"), das Dashboard eine vertikale Sidebar. Das
   Referenzbild zeigt die vertikale Sidebar ueberall => im Chrome-Modus wird der horizontale Block fuer
   Shell-Views CSS-only auf die Grundwerte (app.css Z.813-815, 902-913) zurueckgefuehrt. Kein JS, keine
   Aenderung an gw-nav.js; Akkordeon (.gw-acc.open) arbeitet wie im Dashboard. Spezifitaet: eine Klasse
   mehr als jede Regel des horizontalen Blocks (body.gw-shell #gwSideNav ... => body.gw-chrome-workdesk.gw-shell #gwSideNav ...). */
/* 220px wie das Dashboard im Workspace-Modus (gw-workspace.css Z.8), damit die Sidebar beim Wechsel nicht springt. */
body.gw-chrome-workdesk.gw-shell .gw-shell-frame { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: 100vh; }
body.gw-chrome-workdesk.gw-shell .gw-shell-frame > .gw-dashboard__side {
  position: sticky; inset: auto; top: 0; z-index: 3; display: flex; flex-direction: column; align-items: stretch; align-self: start; gap: 0;
  width: auto; height: 100vh; min-height: 100vh; padding: 18px 12px 40px; border: 0; border-right: 1px solid var(--chrome-line);
  background: var(--chrome); box-shadow: none; overflow: visible;
}
body.gw-chrome-workdesk.gw-shell .gw-brand { flex: 0 0 auto; width: 100%; min-width: 0; padding: 0 8px 18px; }
body.gw-chrome-workdesk.gw-shell .gw-brand__mark { width: 38px; height: 58px; flex-basis: 38px; }
body.gw-chrome-workdesk.gw-shell .gw-brand small { display: block; margin-top: 2px; font-size: 8px; }
body.gw-chrome-workdesk.gw-shell #gwSideNav { display: flex; flex: 1 1 auto; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 3px; width: 100%; min-width: 0; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc { position: static; flex: 0 0 auto; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-head { min-height: 42px; padding: 8px 13px; border-radius: 7px; color: var(--chrome-dim); font-size: .62rem; font-weight: 600; letter-spacing: .1em; white-space: normal; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-head:hover, body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc.open > .gw-acc-head { background: #151f2a; color: var(--chrome-text); }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-head .ic { display: block; font-size: 14px; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-head .chev { margin-left: auto; transform: none; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc.open > .gw-acc-head .chev { transform: rotate(90deg); }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-body {
  position: static; top: auto; left: auto; right: auto; z-index: auto; display: none; width: auto; min-width: 0; max-width: none; max-height: none;
  overflow: visible; padding: 2px 0 6px 10px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none;
}
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc.open > .gw-acc-body { display: block; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-side-sub { min-height: 38px; padding: 7px 6px 7px 10px; border-radius: 7px; font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.gw-chrome-workdesk.gw-shell #gwSideNav .gw-acc-body { padding-left: 4px; }
body.gw-chrome-workdesk.gw-shell .gw-shell-frame > .gw-shell-body > .gw-dash-head { min-height: 64px; padding: 0 22px; }

/* 6f Restbefunde Sichtpruefung 2 (2026-09-07): viewF-Karte "1. Fertigmeldung" traegt inline background:#1a2432
   (app.js Z.3442) — nur hier !important, weil Inline-Style (Global Constraint). Schritt 3 (Gruen/Amber-Tint je
   canRelease) ist semantisch und bleibt. Zaehler-Span in Overlay-Titeln (#8b9bab auf Weiss = 2,85:1) auf --muted. */
body.gw-chrome-workdesk:not(.gw-landing-open) .tabview.active .card[style*="background:#1a2432"] { background: var(--panel-raised) !important; }
body.gw-chrome-workdesk .gw-users-card h3 span, body.gw-chrome-workdesk .gw-verlauf-card h3 span { color: #5a6b7a !important; }

} /* /media 901 */
