style(mobile): responsiver Durchgang - Sidebar+Liste-Layouts brechen um
CI / backend-tests (push) Failing after 1m54s
CI / frontend-build (push) Successful in 17s

4 Admin-Sektionen (ObjektSection, MaterialSection, ZustaendigkeitSection,
ObjektPositionenPanel) hatten identisches fest-20rem/12rem-Sidebar-neben-
Liste-Layout ohne Umbruch - auf Mobile lagen beide Spalten nebeneinander
breiter als der Bildschirm. Neue global.css-Klassen .split-layout/
-sidebar/-sidebar-sm/-content lösen das inline-Style-Duplikat auf und
klappen unter 768px automatisch auf eine Spalte.

Zusätzlich: .page-wide/.topbar/.card-grid/.row bekommen eigene 768px-
Anpassungen (kleinere Paddings/Schrift, Kacheln volle Breite, automatischer
Zeilenumbruch). Tabellen (Historie/Lagerbewegungen) waren schon per
overflow-x:auto abgesichert, keine Änderung nötig dort.

Mitarbeiter-Mobilflow (ObjektListPage/KontrollPage, 640px-Spalte) unverändert
- war laut Nutzer-Feedback bereits gut.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
2026-09-05 15:02:52 +02:00
co-authored by Claude Sonnet 5
parent 7ebbae802e
commit 985e80b59d
6 changed files with 99 additions and 15 deletions
@@ -103,8 +103,8 @@ export function ZustaendigkeitSection({ standorte, objekte, benutzer, onFehler }
return (
<section className="section">
<h2>Zuständigkeit</h2>
<div style={{ display: "flex", flexDirection: "row", alignItems: "flex-start", gap: "1.25rem" }}>
<div className="card" style={{ flex: "0 0 20rem", width: "20rem", boxSizing: "border-box" }}>
<div className="split-layout">
<div className="card split-layout-sidebar">
<p className="text-muted" style={{ marginBottom: "1rem" }}>
Wer ist materialverantwortlich für welchen Standort/welches Objekt. Standort-Zuordnung
gilt für alle Objekte dort, Objekt-Zuordnung ist eine zusätzliche, feinere Ergänzung.
@@ -182,7 +182,7 @@ export function ZustaendigkeitSection({ standorte, objekte, benutzer, onFehler }
</div>
</div>
<div style={{ flex: "1 1 0%", minWidth: 0 }}>
<div className="split-layout-content">
<input
className="input input-search"
style={{ marginBottom: "1rem" }}