/* =========================================================
   MALERPLUS · UI FINAL HARDWALL · 30.08.2026
   Nur die spaeten, moduluebergreifenden Geometrie-Garantien.
   ========================================================= */

/* MP-20260927-030: Eine Reserve fuer die rechte Werkzeugleiste.
   Ohne @property-Unterstuetzung bleibt die Endgeometrie korrekt (ohne Animation). */
@property --mp-side-rail-space {
  syntax:"<length>";
  inherits:true;
  initial-value:90px;
}
@media (min-width:768px) {
  body {
    --mp-side-rail-space:90px;
    transition:--mp-side-rail-space 280ms cubic-bezier(.2,.8,.2,1);
  }
  body.mp-rail-collapsed { --mp-side-rail-space:32px; }
}
@media (prefers-reduced-motion:reduce) {
  body { transition:none; }
}

/* Tablet-Finder ist ein Overlay. Nur sein fester Oeffner braucht links
   eine Aussparung am Kopf; die Karten darunter nutzen die freie Breite. */
@media (min-width:768px) and (max-width:1199px) {
  :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-mail).view.is-list-rail-collapsed {
    --mp-tablet-list-inset:16px;
    --mp-tablet-header-inset:58px;
  }
}

/* Drei-Punkte-Aktionen entstehen am geklickten Griff, nicht am Fensterrand. */
@media (min-width:681px) {
  html body .mp-record-sheet.is-positioning {
    transition:none !important;
  }
  html body .mp-record-sheet.is-local-anchor,
  html body:has(:is(#view-kva,#view-rechnung,#view-projekte,#view-kunden).view.active) .mp-record-sheet.is-local-anchor {
    position:fixed !important;
    left:var(--mp-record-sheet-left,12px) !important;
    top:var(--mp-record-sheet-top,12px) !important;
    right:auto !important;
    bottom:auto !important;
    box-sizing:border-box !important;
    width:var(--mp-record-sheet-width,372px) !important;
    max-width:calc(100vw - 24px) !important;
    max-height:var(--mp-record-sheet-max-height,calc(100dvh - 24px)) !important;
    padding:14px 13px !important;
    overflow:auto !important;
    border:1px solid var(--mp-border,rgba(15,23,42,.11)) !important;
    border-radius:var(--mp-menu-radius,12px) !important;
    background:var(--mp-bg-elevated,rgb(var(--mp-flaeche-rgb))) !important;
    box-shadow:var(--mp-shadow-lg,0 16px 44px rgba(15,23,42,.14)) !important;
    transform:translateY(7px) scale(.985) !important;
    transform-origin:top left !important;
    opacity:0 !important;
    transition:transform 180ms cubic-bezier(.2,.8,.2,1),opacity 130ms ease !important;
  }
  html body .mp-record-sheet.is-local-anchor.is-open,
  html body:has(:is(#view-kva,#view-rechnung,#view-projekte,#view-kunden).view.active) .mp-record-sheet.is-local-anchor.is-open {
    transform:none !important;
    opacity:1 !important;
  }
  html body .mp-record-sheet.is-local-anchor .mp-record-sheet-handle { display:none !important; }
}

/* Ein geschlossenes Drei-Punkte-Menue ist sofort aus der Bedienkette. Die
   lokale Ankerklasse bleibt fuer eine ruhige Ausblendung am Ursprungsort
   bestehen, darf dort aber keine unsichtbaren Alt-Aktionen mehr ausloesen. */
html body .mp-record-sheet:not(.is-open) {
  pointer-events:none !important;
}
html body .mp-record-sheet.is-open {
  pointer-events:auto !important;
}

/* Tablet-Hochformat: Der Arbeitsfenster-Starter ist ein normales, zentriertes
   Dock-Element. Die fruehere sticky-Rechtskante legte ihn ueber das vorige
   Modulicon; zugleich lief die geoeffnete Masterliste bis hinter das Dock. */
@media (min-width:768px) and (max-width:899px) {
  html body.mp-taskbar-on nav.bottom-nav .mp-dtb,
  html body nav.bottom-nav .mp-dtb {
    position:relative !important;
    right:auto !important;
    z-index:auto !important;
    display:flex !important;
    flex:0 0 48px !important;
    width:48px !important;
    min-width:48px !important;
    height:48px !important;
    padding:0 !important;
    gap:0 !important;
    align-self:center !important;
    align-items:center !important;
    justify-content:center !important;
    background:transparent !important;
  }

  html body nav.bottom-nav .mp-dtb-sep,
  html body nav.bottom-nav .mp-dtb-tasks {
    display:none !important;
  }

  html body nav.bottom-nav .mp-dtb-start,
  html body nav.bottom-nav .mp-dtb-start .mp-dtb-tile {
    display:flex !important;
    flex:0 0 48px !important;
    width:48px !important;
    min-width:48px !important;
    height:48px !important;
    min-height:48px !important;
    padding:0 !important;
    align-items:center !important;
    justify-content:center !important;
    transform:none !important;
  }

  html body.mp-taskbar-on nav.bottom-nav #mpDockKi,
  html body nav.bottom-nav #mpDockKi {
    position:relative !important;
    right:auto !important;
  }

  html body :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-mail).mp-list-workspace.view.active > .mp-workspace-list-master {
    bottom:calc(84px + env(safe-area-inset-bottom,0px)) !important;
    height:auto !important;
  }
}

/* Einheitliche Hauptkartenbreite mit festem Schutzkorridor vor der rechten
   Schnellleiste. Bis 1700 px entspricht die Geometrie dem Dashboard; auf
   kleinen Laptops wird nur rechts Platz abgegeben, nie Inhalt überlagert. */
@media (min-width:900px) {
  /* Master-/Detail-Ansichten besitzen eine eigene, animierte Breiten- und
     Einrueckungslogik. Sie duerfen deshalb nie von der globalen Kartenbreite
     ueberschrieben werden. Der rechte Innenabstand schuetzt ihren Inhalt vor
     der Schnellleiste, ohne das Aus-/Einklappen der Liste zu beeinflussen. */
  html:not(#mp-list-dock-safe) body .main-container > :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-mail).view.active.mp-list-workspace > .view-container > .view-box {
    box-sizing:border-box !important;
    padding-right:var(--mp-side-rail-space,90px) !important;
  }
}

/* MP-20260926-053 (Lena Berger, Reproduktion): #view-material bekam hier
   zusaetzlich zur eigenen 90px-Dockreserve (Z. ~1930, @media 768-1199) noch
   eine 78px-Aussenmarge -- macht in Summe bis zu 258px bei 1024px Breite,
   die Tabellenspalten EK/VK/Bearbeiten-Stift wurden abgeschnitten. Ab 900px
   deshalb in zwei Bereiche gesplittet: 900-1199 OHNE #view-material (dort
   gilt ausschliesslich die eigene Dockreserve aus Z. ~1930), ab 1200px wie
   zuvor MIT #view-material -- alle anderen Module bleiben in beiden
   Bereichen unveraendert erfasst, nichts wird global geaendert. */
@media (min-width:768px) and (max-width:1199px) {
  html body .main-container > .view.active:not(#view-aufmass):not(#view-material):not(.mp-list-workspace) > .view-container > .view-box,
  html body .main-container > .view.active:not(#view-aufmass):not(#view-material):not(.mp-list-workspace) > .view-box {
    box-sizing:border-box !important;
    width:auto !important;
    max-width:none !important;
    margin-left:max(12px,calc((100% - 1700px)/2)) !important;
    margin-right:max(calc(var(--mp-side-rail-space,90px) - 12px),calc((100% - 1700px)/2 + var(--mp-side-rail-space,90px) - 90px)) !important;
  }
}

@media (min-width:1200px) {
  html body .main-container > .view.active:not(#view-aufmass):not(.mp-list-workspace) > .view-container > .view-box,
  html body .main-container > .view.active:not(#view-aufmass):not(.mp-list-workspace) > .view-box {
    box-sizing:border-box !important;
    width:auto !important;
    max-width:none !important;
    margin-left:max(12px,calc((100% - 1700px)/2)) !important;
    margin-right:max(calc(var(--mp-side-rail-space,90px) - 12px),calc((100% - 1700px)/2 + var(--mp-side-rail-space,90px) - 90px)) !important;
  }
}

/* Auswahl bleibt lesbar, aber ohne den kuenstlichen blauen Seiten-Patch. */
html body :is(#view-aufmass,#view-kva,#view-rechnung,#view-projekte,#view-mail)
  .mp-workspace-list-master .mp-record-row.is-active,
html body #projektGroupedList .mp-record-row.is-active {
  box-shadow:inset 0 0 0 1px rgba(43,176,255,.18) !important;
}

/* Formulardichte: Desktop 3, Tablet 2, Handy 1 Spalte. */
#view-kva .kva-editor > .card:has(#kvaKundeSelect) > .card-body,
#view-rechnung .rg-editor-card:has(#rechnungFormDetails) > .card-body {
  padding:18px 22px !important;
}

#view-kva .kva-editor > .card:has(#kvaKundeSelect) .form-grid,
#view-rechnung #rechnungFormDetails.form-grid {
  width:100% !important;
  max-width:1500px !important;
  margin:0 !important;
  gap:14px 18px !important;
  align-items:start !important;
}

#view-kva .kva-editor > .card:has(#kvaKundeSelect) .form-group,
#view-rechnung #rechnungFormDetails .form-group {
  min-width:0 !important;
  margin:0 !important;
}

#view-kva .kva-editor > .card:has(#kvaKundeSelect) :is(input,select,textarea),
#view-rechnung #rechnungFormDetails :is(input,select,textarea) {
  width:100% !important;
  max-width:none !important;
  min-height:44px !important;
  box-sizing:border-box !important;
}

#view-kva .kva-editor > .card:has(#kvaKundeSelect) textarea { min-height:70px !important; }

/* Angebot + Rechnung: identische, arbeitslogische Abschnittsstruktur. */
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section {
  grid-column:1 / -1 !important;
  min-width:0; display:flex; align-items:baseline; gap:10px;
  margin:8px 0 -2px; padding:0 0 9px;
  border-bottom:1px solid rgba(148,163,184,.22);
}
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section:first-of-type { margin-top:0; }
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section strong {
  color:rgb(var(--mp-t3-667386)); font-size:13px; font-weight:800; letter-spacing:-.01em;
}
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section span {
  color:rgb(var(--mp-t3-8a98aa)); font-size:11px; font-weight:650;
}
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section[data-form-step] strong { color:rgb(var(--mp-t3-667386)); }
:is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section + .form-group { margin-top:0 !important; }
html.dark :is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section { border-bottom-color:rgba(255,255,255,.11); }
html.dark :is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section strong { color:#eef4fb; }
@media (max-width:759px) {
  :is(#view-kva,#view-rechnung,#view-mail) .mp-document-form-section { display:grid; gap:2px; margin-top:5px; }
}

@media (min-width:1280px) {
  #view-kva .kva-editor > .card:has(#kvaKundeSelect) .form-grid,
  #view-rechnung #rechnungFormDetails.form-grid {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (min-width:760px) and (max-width:1279px) {
  #view-kva .kva-editor > .card:has(#kvaKundeSelect) .form-grid,
  #view-rechnung #rechnungFormDetails.form-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:759px) {
  #view-kva .kva-editor > .card:has(#kvaKundeSelect) > .card-body,
  #view-rechnung .rg-editor-card:has(#rechnungFormDetails) > .card-body { padding:14px !important; }
  #view-kva .kva-editor > .card:has(#kvaKundeSelect) .form-grid,
  #view-rechnung #rechnungFormDetails.form-grid { grid-template-columns:minmax(0,1fr) !important;gap:12px !important; }
}

/* Material: Header und Werkzeuge sind zwei klar getrennte Premium-Karten. */
html body #view-material .mat-sticky-top {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:12px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

html body #view-material .mat-sticky-top > .view-header,
html body #view-material .mat-sticky-top > .mat-controls {
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
  border:1px solid rgba(15,23,42,.09) !important;
  border-radius:20px !important;
  background:rgba(var(--mp-flaeche-rgb), .94) !important;
  box-shadow:0 14px 34px -28px rgba(15,23,42,.55),inset 0 1px 0 rgba(255,255,255,.95) !important;
}

html body #view-material .mat-controls {
  display:grid !important;
  grid-template-columns:minmax(280px,420px) minmax(460px,620px) minmax(260px,max-content) !important;
  align-items:center !important;
  justify-content:start !important;
  gap:10px 12px !important;
  padding:13px !important;
}

html body #view-material .mat-controls > :is(.mat-searchbar,.mp-material-filter-rail,.mat-viewbar) {
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

html body #view-material .mat-controls > .mat-searchbar { height:48px !important; }
html body #view-material .mat-controls > .mp-material-filter-rail { padding:4px !important;gap:7px !important;box-shadow:none !important; }
html body #view-material .mat-controls > .mat-viewbar { justify-content:flex-start !important;gap:8px !important;flex-wrap:wrap !important; }

@media (min-width:760px) and (max-width:1399px) {
  html body #view-material .mat-controls {
    grid-template-columns:minmax(260px,420px) minmax(380px,1fr) !important;
  }
  html body #view-material .mat-controls > .mat-viewbar { grid-column:1 / -1 !important; }
}

@media (max-width:759px) {
  html body #view-material .mat-sticky-top { gap:10px !important; }
  html body #view-material .mat-sticky-top > :is(.view-header,.mat-controls) { border-radius:17px !important; }
  html body #view-material .mat-controls {
    grid-template-columns:minmax(0,1fr) !important;
    gap:9px !important;
    padding:10px !important;
  }
  html body #view-material .mat-controls > :is(.mat-searchbar,.mp-material-filter-rail,.mat-viewbar) {
    width:100% !important;max-width:none !important;margin:0 !important;
  }
  html body #view-material .mat-controls > .mp-material-filter-rail { overflow-x:auto !important; }
}

/* Der permanente Ungelesen-/Bestaetigen-Hinweis wird nicht mehr als globale
   Baustellen-Aufforderung gezeigt. Briefings selbst bleiben im Tab erhalten. */
html body :is(#projBriefingStrip,#projBriefingTabBadge) {
  display:none !important;
}

/* Mail-Radar ohne künstliches LIVE-Badge. */
html body #view-dashboard #widgetOfferRadar .mp-radar-heading::after {
  content:none !important;
  display:none !important;
}

/* Viele Termine bleiben vollstaendig lesbar und scrollen im Fenster. */
html body #mpRailDrawer .mrd-list {
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable !important;
}

html body #mpRailDrawer .mrd-list > .mrd-item.mrd-termin {
  flex:0 0 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  border-left-width:1px !important;
  border-left-color:rgba(15,23,42,.09) !important;
  background:rgb(var(--mp-flaeche-rgb)) !important;
  transform:none !important;
}

/* Dock: keine Bump-, Puls- oder Einflugbewegung. */
html body nav.bottom-nav .nav-btn,
html body nav.bottom-nav .nav-btn:hover,
html body nav.bottom-nav .nav-btn:active,
html body nav.bottom-nav .nav-btn.active,
html body nav.bottom-nav .nav-btn .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn:hover .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn:active .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn.active .dash-launch-tile-icon,
html body nav.bottom-nav .mp-dock-bounce,
html body nav.bottom-nav .mp-dock-aktivpuls,
html body nav.bottom-nav .mp-dock-tap,
html body nav.bottom-nav.mp-dock-auftritt,
html body nav.bottom-nav.mp-dock-auftritt .nav-btn,
html body nav.bottom-nav.mp-dock-auftritt .mp-dsm-start {
  animation:none !important;
}

html body nav.bottom-nav .nav-btn,
html body nav.bottom-nav .nav-btn:hover,
html body nav.bottom-nav .nav-btn:active,
html body nav.bottom-nav .nav-btn.active,
html body nav.bottom-nav .nav-btn .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn:hover .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn:active .dash-launch-tile-icon,
html body nav.bottom-nav .nav-btn.active .dash-launch-tile-icon {
  transform:none !important;
}

html body.mp-role-worker nav.bottom-nav .nav-btn[data-nav="view-projekte"],
html body.mp-role-worker nav.bottom-nav .nav-btn[data-nav="view-meine-stunden"],
html body.mp-role-worker nav.bottom-nav .nav-btn[data-nav="view-worker-fotos"],
html body.mp-role-worker nav.bottom-nav .nav-btn[data-nav="view-baustellenchat"],
html body.mp-role-worker nav.bottom-nav .nav-btn[data-nav="view-workerstatus"],
html body.mp-role-foreman nav.bottom-nav .nav-btn[data-nav="view-projekte"],
html body.mp-role-foreman nav.bottom-nav .nav-btn[data-nav="view-meine-stunden"],
html body.mp-role-foreman nav.bottom-nav .nav-btn[data-nav="view-worker-fotos"],
html body.mp-role-foreman nav.bottom-nav .nav-btn[data-nav="view-baustellenchat"],
html body.mp-role-foreman nav.bottom-nav .nav-btn[data-nav="view-workerstatus"] {
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
}

html body.mp-role-worker nav.bottom-nav :is(.mp-dsm-start,.mp-dtb,.mp-dock-laser,#mpDockKi),
html body.mp-role-foreman nav.bottom-nav :is(.mp-dsm-start,.mp-dtb,.mp-dock-laser,#mpDockKi) {
  display:none !important;
}

/* Datensatzwechsel markieren nur statisch; nie als blauer Blitz/Halo. */
html body .mp-workspace-list-master .mp-record-row:is(.pulse,.is-pulse)::after,
html body #projektGroupedList .mp-record-row:is(.pulse,.is-pulse)::after {
  content:none !important;
  display:none !important;
  animation:none !important;
  box-shadow:none !important;
}

html body #projektGroupedList .mp-record-row:is(.pulse,.is-pulse) {
  animation:none !important;
  outline:0 !important;
}

html body .mp-workspace-list-master .mp-record-row:is(.pulse,.is-pulse) {
  animation:none !important;
  outline:0 !important;
}

html body .mp-workspace-list-master .mp-record-row::before {
  content:none !important;
  display:none !important;
}

/* Aufmaß-Listenzeilen: Identisch zu Angebote (KVA) — 1 Zeile Untertitel, kein Umbruch */
html body #view-aufmass .mp-workspace-list-master .mp-record-sub {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  min-width: 0 !important;
}

html body #view-aufmass .mp-workspace-list-master .mp-record-status {
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

html body #view-aufmass .mp-workspace-list-master .mp-record-sep {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

html body #view-aufmass .mp-workspace-list-master .mp-record-identity {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

/* Aufmaß Master-Rail Geometrie & Scroll: Identisch zu Angebote (KVA) */
@media (min-width: 1200px) {
  html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) {
    position: fixed !important;
    inset: 58px auto 0 0 !important;
    width: var(--mp-ws-rail-open, 420px) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    border: 1px solid var(--mp-ws-line, rgba(15,23,42,.09)) !important;
    border-left: 0 !important;
    border-radius: 0 28px 28px 0 !important;
    background: linear-gradient(105deg, rgba(var(--mp-flaeche-rgb), .99), rgba(var(--mp-flaeche-rgb), .97) 78%, rgba(var(--mp-f2-fafbfd), 0.98)) !important;
    box-shadow:
      1px 0 0 rgba(255,255,255,.96) inset,
      -1px 0 0 rgba(15,23,42,.025) inset,
      8px 0 18px -10px rgba(15,23,42,.24),
      22px 0 52px -24px rgba(15,23,42,.38),
      44px 0 90px -48px rgba(15,23,42,.28) !important;
    overflow: hidden !important;
  }
}

html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) > .card-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}

html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) .aufmass-list-wrapper {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
}

html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) #aufmassSavedList {
  display: block !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-bottom: 140px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) #aufmassSavedList::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) #aufmassSavedList > .mp-record-list,
html body #view-aufmass.view.active :is(.mp-workspace-list-master, .mp-aufmass-master) #aufmassSavedList > .mp-record-list--v2 {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  flex: none !important;
}

/* Baustellen · Nachtraege und verknuepftes Angebot: Titel, Primaeraktionen
   sowie Dokument-/Zoomwerkzeuge erhalten explizite Rasterplaetze. Ohne diese
   Areas platzierte CSS-Grid die spaet injizierte Dokumentleiste in Zeile 1
   und drueckte Titel und Aktionen sichtbar auf unterschiedliche Hoehen. */
html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projNachtraegeCard > .mp-header {
  display:grid !important;
  grid-template-columns:minmax(220px,1fr) auto auto !important;
  grid-template-areas:"title actions toolbar" !important;
  align-items:center !important;
  gap:10px 12px !important;
  row-gap:10px !important;
  column-gap:12px !important;
}

html body #view-projekte #projNachtraegeCard > .mp-header > .mp-header-left {
  grid-area:title !important;
  min-width:0 !important;
  align-self:center !important;
}

html body #view-projekte #projNachtraegeCard > .mp-header > .mp-header-actions {
  grid-area:actions !important;
}

html body #view-projekte #projNachtraegeCard > .mp-header > .kva-doc-mode-toolbar {
  grid-area:toolbar !important;
}

html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projKvaCard > .card-header {
  display:grid !important;
  grid-template-columns:minmax(240px,1fr) auto auto 42px !important;
  grid-template-areas:"title action toolbar toggle" !important;
  align-items:center !important;
  gap:10px 12px !important;
  row-gap:10px !important;
  column-gap:12px !important;
}

html body #view-projekte #projKvaCard > .card-header > h2 { grid-area:title !important;min-width:0 !important; }
html body #view-projekte #projKvaCard > .card-header > #projLinkOfferBtn { grid-area:action !important; }
html body #view-projekte #projKvaCard > .card-header > .kva-doc-mode-toolbar { grid-area:toolbar !important; }
html body #view-projekte #projKvaCard > .card-header > .card-toggle { grid-area:toggle !important; }

html body #view-projekte :is(#projNachtraegeCard,#projKvaCard)
  :is(.mp-header-actions,.kva-doc-mode-toolbar) {
  min-width:0 !important;
  min-height:44px !important;
  margin:0 !important;
  align-items:center !important;
  align-self:center !important;
}

html body #view-projekte :is(#projNachtraegeCard,#projKvaCard)
  :is(#btnProjNachtragConfirm,#btnProjNachtragAdd,#projLinkOfferBtn,.kva-doc-segment,.kva-doc-zoom) {
  box-sizing:border-box !important;
  min-height:44px !important;
  margin:0 !important;
}

@media (max-width:1100px) {
  html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projNachtraegeCard > .mp-header {
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:"title title" "actions toolbar" !important;
  }

  html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projKvaCard > .card-header {
    grid-template-columns:minmax(0,1fr) auto 42px !important;
    grid-template-areas:"title title toggle" "action toolbar toolbar" !important;
  }
}

@media (max-width:899px) {
  html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projNachtraegeCard > .mp-header {
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-areas:"title" "actions" "toolbar" !important;
  }

  html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte #projKvaCard > .card-header {
    grid-template-columns:minmax(0,1fr) 42px !important;
    grid-template-areas:"title toggle" "action action" "toolbar toolbar" !important;
  }

  html:not(#mp-ui-final):not(#mp-ui-final-2) body #view-projekte :is(#projNachtraegeCard,#projKvaCard)
    :is(.mp-header-actions,.kva-doc-mode-toolbar) {
    justify-self:stretch !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
  }
}

/* Positionseditor als freistehendes Premium-Fenster statt harter Seitenwand. */
html body .kva-doc-sheet {
  top:14px !important;
  right:14px !important;
  bottom:14px !important;
  height:auto !important;
  max-height:calc(100dvh - 28px) !important;
  width:min(560px,calc(100vw - 28px)) !important;
  max-width:none !important;
  overflow:hidden !important;
  border:1px solid rgba(15,23,42,.11) !important;
  border-radius:24px !important;
  background:#fff !important;
  box-shadow:-18px 24px 70px -28px rgba(15,23,42,.48),0 2px 8px rgba(15,23,42,.08),inset 0 1px 0 #fff !important;
}

html body .kva-doc-sheet-head {
  min-height:64px !important;
  padding:14px 18px !important;
  background:#fff !important;
  border-bottom:1px solid rgba(15,23,42,.075) !important;
}

html body .kva-doc-sheet-body {
  padding:17px 18px 22px !important;
  background:#fbfcfd !important;
}

html body .kva-doc-sheet :is(input,textarea,select) {
  border-color:rgba(15,23,42,.12) !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.035) !important;
}

html body .kva-doc-sheet-foot {
  padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)) !important;
  background:#fff !important;
  border-top:1px solid rgba(15,23,42,.075) !important;
  border-radius:0 0 24px 24px !important;
  box-shadow:0 -10px 26px -22px rgba(15,23,42,.28) !important;
}

html body .kva-doc-sheet-close {
  width:38px !important;
  height:38px !important;
  border-radius:11px !important;
  background:#f2f4f7 !important;
}

/* K-456 (QA Lena Berger, MP-20260905-018-Nacharbeit): derselbe Distanz-
   Fehler wie im Mobil-Block unten, hier mit `right:14px` (statt 8px) aus
   der Regel oben. GEMESSEN (Staging): geschlossenes Blatt-Rect `left:1426`
   bei `innerWidth:1440`, `left:806` bei `innerWidth:820` — beide 14px VOR
   dem rechten Rand, exakt der `right`-Wert. Fix identisch zum Mobil-Block:
   die geschlossene Distanz um den Inset (14px) plus Sicherheitsabstand
   verlaengern. Zusaetzlich abgesichert durch `visibility:hidden` in
   kva-doc-mode.css (robuster, breitenunabhaengiger zweiter Riegel) — diese
   Regel korrigiert trotzdem die tatsaechliche Position, nicht nur die
   Sichtbarkeit. */
html body .kva-doc-sheet:not(.is-open) {
  transform:translateX(calc(100% + 16px)) !important;
}

@media (max-width:699px) {
  html body .kva-doc-sheet {
    top:8px !important;right:8px !important;bottom:8px !important;left:8px !important;
    width:auto !important;max-height:calc(100dvh - 16px) !important;border-radius:20px !important;
  }
  html body .kva-doc-sheet-foot { border-radius:0 0 20px 20px !important; }
  /* MP-20260907-006 (Marcel, Android-PWA, 07.09.2026): zweite Stufe zum
     abgeschnittenen „Speichern"-Knopf. Die harte Sperre (`flex-wrap:wrap`)
     steht in css/kva-doc-mode.css am `.kva-doc-sheet-foot`; dort steht auch
     die vollstaendige Messung. Hier wird der Platz zurueckgeholt, damit die
     Fusszeile auf einem gewoehnlichen Handy gar nicht erst umbrechen MUSS:
     die Polsterung dieser Zeile (nicht die der Knoepfe) von 16 px auf 12 px
     und der Abstand von 10 px auf 8 px.
     Rechnung fuer 412 CSS-px (Blatt 396 px, Fusszeile 394 px):
       vorher  16+104+10+114+10+113+16 = 393 px Bedarf bei 394 px Platz -> 1 px Reserve
       nachher 12+104+ 8+114+ 8+113+12 = 371 px Bedarf bei 394 px Platz -> 23 px Reserve
     Marcels Geraet liegt bei 411,4 CSS-px (1080 physische Pixel, DPR 2,625)
     und bleibt damit sicher einzeilig, auch bei etwas groesserer
     Systemschrift. Auf 360 px reicht der Platz weiterhin nicht (342 px
     Platz gegen 355 px Bedarf) — dort greift bewusst der Umbruch, statt den
     Knopf aus dem Blatt zu schieben.
     Bewusst NICHT angefasst: die Polsterung der Knoepfe selbst. Die kommt
     aus dem Button-System (`padding:0 22px !important` in
     css/mp-button-system-v2.css); ein `.btn-*`-Override waere gegen die
     UI-Regel und wuerde ausserdem an jeder anderen Stelle mitwirken. */
  html body .kva-doc-sheet-foot {
    padding-left:12px !important;
    padding-right:12px !important;
    gap:8px !important;
  }
  /* MP-20260905-018 (Marcel, Android-PWA): Die Zeile darueber rueckt das
     Blatt beidseitig um 8px ein (right:8px statt der Basisregel right:0/14px
     aus kva-doc-mode.js/oben). Die GESCHLOSSENE Basisregel verschiebt das
     Blatt per `transform:translateX(100%)` — das ist exakt die EIGENE
     Breite. Bei einem rechtsbuendigen Blatt mit right:0 reicht das, weil die
     eigene Breite + der (Null-)Rand exakt bis zum Bildschirmrand reicht.
     Mit right:8px fehlen genau diese 8px: GEMESSEN (412px-Viewport, drei
     Wege — X, Abbrechen, Escape, alle ueber dieselbe closeEditSheet()):
     matrix(1,0,0,1,396,0) -> Blatt-Rect left:404/right:800 statt >=412 —
     ein 8px breiter, deckender (weiss, box-shadow, z-index 1200) Streifen
     bleibt dauerhaft am rechten Bildschirmrand stehen und verdeckt dort
     liegende fixe Elemente (Dock-Faehnchen, Mikrofon-FAB). Ursache ist die
     Distanz-Formel, nicht ein Rest-Scroll/State (dokumentElement.scrollLeft
     blieb in allen drei Faellen 0, document.documentElement.scrollWidth
     blieb 412 = clientWidth). Fix: die GESCHLOSSENE Distanz um den Inset
     (8px) plus Sicherheitsabstand verlaengern, statt die Ursache mit
     overflow-x:hidden zu uebertuenchen. */
  html body .kva-doc-sheet:not(.is-open) {
    transform:translateX(calc(100% + 16px)) !important;
  }
}

/* =========================================================
   MP-20260830-004 · TABLET PORTRAIT
   ========================================================= */
@media (min-width:700px) and (max-width:1199px) {
  /* Der sticky Modul-Command-Deck lag mit z-index 430 oberhalb des Finder-
     Backdrops (64/4660). Dadurch blieb genau diese Leiste scharf und sogar
     bedienbar, obwohl das Listenfenster offen war. Unterhalb des Backdrops
     bleibt sie Teil derselben abgedunkelten/unscharfen Arbeitsebene. */
  html body :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-mail).mp-list-workspace.view.active .mp-editor-command-deck {
    z-index:60 !important;
  }
  html body :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-mail).mp-list-workspace.view.active:not(.is-list-rail-collapsed) .mp-editor-command-deck {
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  /* Der Finder ist auf Tablets ein modales Arbeitsfenster. Modulnavigationen
     mit eigenem sticky/fixed z-index duerfen nicht als zweite scharfe Leiste
     ueber Drawer und Backdrop schweben (u. a. Baustellen und Dokumente). */
  html body .mp-list-workspace.view.active:not(.is-list-rail-collapsed)
    :is(.mp-editor-command-deck,.mp-bs-nav,.mp-editor-section-nav,.mp-workspace-command-deck) {
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }
  html body .mp-list-workspace.view.active:not(.is-list-rail-collapsed) > .view-container {
    position:relative !important;
    z-index:0 !important;
  }

  html body :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-notizen,#view-baustellenchat,#view-mail).mp-list-workspace.view.active > .mp-workspace-list-master {
    z-index:4660 !important;
  }

  html body :is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-notizen,#view-baustellenchat,#view-mail).mp-list-workspace.view.active::before {
    z-index:4640 !important;
  }

  /* Aufmaß besitzt eine eigene Listen-Shell. Der Header ist ein direktes
     Grid-Kind und landete ohne explizite Platzierung in der 72px-Spalte. */
  html body #view-aufmass.view.active > .view-box > .mp-aufmass-hero {
    grid-column:1 / -1 !important;
    min-width:0 !important;
    width:auto !important;
  }
  html body #view-aufmass.view.active > .view-box > .mp-aufmass-workspace {
    grid-column:1 / -1 !important;
  }
  html body #view-aufmass.view.active > .view-box:not(.is-rail-collapsed) .mp-aufmass-section-nav {
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  /* Container-Query aus dashboard.css begrenzte versehentlich den INNEREN
     Mail-Radar-Rail auf 230–290px. Die Karten selbst waren korrekt, nur ihr
     gemeinsamer Rail wurde rechts abgeschnitten. */
  html body #view-dashboard .dash-wxi-right #widgetOfferRadar .mp-radar-body > div:first-child {
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    flex:1 1 auto !important;
  }
  html body #view-dashboard #widgetOfferRadar .mp-radar-body > div:first-child > .mp-radar-card {
    width:calc((100% - 24px)/3) !important;
    min-width:0 !important;
    max-width:none !important;
    flex:0 0 calc((100% - 24px)/3) !important;
  }
}

/* =========================================================
   MP-20260831-002 · MOBILE BAUSTELLEN-LESBARKEIT
   ========================================================= */
@media (max-width: 767px) {
  html body #view-projekte.mp-baustellen-golden #mpProjKarte {
    box-sizing: border-box !important;
    padding-bottom: 0 !important;
  }

  /* Der Dock-Sicherheitsraum gehoert an den scrollenden Detail-Stack, nicht
     in die weisse Kopfkarte. Auf echten Handys machte dieses Padding die
     Projektkarte um 132 px hoeher, obwohl Kopf und App-Buttons korrekt waren. */
  html body #view-projekte.mp-baustellen-golden #projektDetailWrapper {
    box-sizing: border-box !important;
    padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)) !important;
  }

  html body #view-projekte.mp-baustellen-golden .mp-bs-group-nav {
    box-sizing: border-box !important;
    width: 100% !important;
    padding: 7px 6px !important;
    gap: 4px !important;
    border-radius: 16px !important;
  }

  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden .mp-bs-nav-item,
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden .mp-bs-nav-item > summary {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 5px 2px !important;
    gap: 4px !important;
    justify-content: center !important;
  }

  html body #view-projekte.mp-baustellen-golden .mp-bs-nav-icon {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    flex-basis: 30px !important;
    border-radius: 9px !important;
  }

  html body #view-projekte.mp-baustellen-golden .mp-bs-nav-label,
  html body #view-projekte.mp-baustellen-golden .mp-bs-nav-item > span:not(.mp-bs-nav-icon) {
    max-width: 100% !important;
    overflow: hidden !important;
    font-size: 10.5px !important;
    font-weight: 720 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard {
    box-sizing: border-box !important;
    padding: 14px 12px !important;
    overflow: hidden !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard > :first-child {
    align-items: center !important;
    margin-bottom: 12px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard > :first-child > h2 {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialDocBtn {
    min-height: 42px !important;
    padding: 0 13px !important;
    font-size: 13px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard > .card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding: 13px 10px !important;
    border-radius: 16px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    padding-bottom: 11px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-left {
    display: grid !important;
    grid-template-columns: 34px minmax(0,1fr) !important;
    gap: 9px !important;
    align-items: start !important;
    min-width: 0 !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-icon {
    width: 34px !important;
    height: 34px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-title {
    color: rgb(var(--mp-t1-172033)) !important;
    font-size: 15px !important;
    font-weight: 820 !important;
    line-height: 1.25 !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-sub {
    margin-top: 4px !important;
    color: rgb(var(--mp-t3-718095)) !important;
    font-size: 12px !important;
    font-weight: 560 !important;
    line-height: 1.4 !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-actions {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    width: 100% !important;
    gap: 7px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-header-actions > button {
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 12px !important;
    justify-content: center !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .proj-inline-inputs:not(.proj-beleg-add) {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 9px !important;
    width: 100% !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .proj-inline-inputs:not(.proj-beleg-add) > *,
  html body #view-projekte.mp-baustellen-golden #projMaterialCard .proj-inline-inputs:not(.proj-beleg-add) :is(input,select,button) {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 44px !important;
    font-size: 14px !important;
  }

  html body #view-projekte.mp-baustellen-golden #projMaterialCard .mp-tip {
    margin-top: 12px !important;
    padding: 11px 12px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 359px) {
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden .mp-bs-group-nav {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    min-height: 126px !important;
    overflow: hidden !important;
  }

  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden .mp-bs-nav-item,
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden .mp-bs-nav-item > summary {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px !important;
  }

  html body #view-projekte.mp-baustellen-golden .mp-bs-nav-label,
  html body #view-projekte.mp-baustellen-golden .mp-bs-nav-item > span:not(.mp-bs-nav-icon) {
    font-size: 11px !important;
    text-overflow: clip !important;
  }
}

/* ================================================================
   MP-20260831-006 · ANGEBOTE-BLAUPAUSE FUER ALLE MODULKOEPFE
   ================================================================
   Der Icon-/Titelblock beginnt in jedem Modul links. Statistiken und
   Aktionen duerfen rechts stehen, koennen den Titel aber nicht mehr in die
   Mitte druecken. Dies ist die letzte Kaskade nach allen Legacy-Modulskins. */
html:not(#mpkk):not(#mpkk-2) body .main-container > :is(
  #view-kunden,#view-aufmass,#view-kva,#view-projekte,#view-baustellenplanung,
  #view-rechnung,#view-baustellenchat,#view-briefe,#view-notizen,#view-material,
  #view-leistungen,#view-dateien,#view-stundenuebersicht,#view-meine-stunden,
  #view-workerstatus,#view-worker-activity,#view-worker-fotos,#view-settings,
  #view-profit-dashboard,#view-leads
).view.active .view-header.mp-module-view-header {
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:row !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  min-height:120px !important;
  margin:0 0 20px !important;
  padding:22px 28px 22px var(--mp-tablet-header-inset,28px) !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:22px !important;
  text-align:left !important;
  overflow:visible !important;
  border:1px solid rgba(15,23,42,.08) !important;
  border-radius:24px !important;
  background:rgba(var(--mp-flaeche-rgb), .96) !important;
  box-shadow:0 12px 34px -24px rgba(15,23,42,.30),inset 0 1px 0 rgba(255,255,255,.95) !important;
  transform:none !important;
}
html body .view.active .view-header.mp-module-view-header > .mp-module-header-title,
html body .view.active .view-header.mp-module-view-header > .mp-nz-view-title.mp-module-header-title {
  box-sizing:border-box !important;
  display:flex !important;
  flex:0 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:18px !important;
  text-align:left !important;
  transform:none !important;
}
html body .view.active .view-header.mp-module-view-header .mp-module-header-copy {
  min-width:0 !important;
  margin:0 !important;
  text-align:left !important;
}
html body .view.active .view-header.mp-module-view-header .mp-module-header-icon {
  display:grid !important;
  flex:0 0 56px !important;
  width:56px !important;
  min-width:56px !important;
  height:56px !important;
  min-height:56px !important;
  margin:0 !important;
  place-items:center !important;
  transform:none !important;
}
html body .view.active .view-header.mp-module-view-header .mp-module-header-icon svg {
  display:block !important;
  width:25px !important;
  height:25px !important;
}
html body .view.active .view-header.mp-module-view-header > :is(.view-header-actions,.mp-aufmass-hero-actions,.mp-nz-view-stats) {
  flex:0 0 auto !important;
  margin-left:auto !important;
}
#view-aufmass .view-header.mp-module-view-header .mp-aufmass-eyebrow { display:none !important; }

/* ================================================================
   MP-20260831-006 · AUFMASS = ANGEBOTE-RECORD-WORKSPACE
   ================================================================
   Ein finaler Geometrievertrag ersetzt die historischen Aufmass-Grids.
   Liste, Inhaltsfenster, Header und Dock besitzen damit dieselben Grenzen
   wie Angebote/Rechnungen. Die Selektoren decken auch den kurzen Moment vor
   der JS-DOM-Normalisierung ab. */
@media not all {
#view-aufmass {
  --mp-am-rail-open:420px;
  --mp-am-rail-closed:64px;
  --mp-am-top:58px;
  --mp-am-dock-safe:90px;
  --mp-am-bottom-safe:124px;
}
html body #view-aufmass.view.active {
  box-sizing:border-box !important;
  min-width:0 !important;
  max-width:100% !important;
  background:transparent !important;
  overflow-x:clip !important;
}
html body #view-aufmass.view.active > .view-box .mp-aufmass-workspace {
  box-sizing:border-box !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
html body #view-aufmass.view.active > .view-box .mp-aufmass-detail,
html body #view-aufmass.view.active .mp-aufmass-detail {
  box-sizing:border-box !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  padding-bottom: clamp(80px, 12vh, 120px) !important;
}
html body #view-aufmass.view.active .mp-aufmass-detail > :is(.mp-aufmass-section-nav,.aufmass-sticky-header,#aufmassInnenContainer,#aufmassFassadeContainer,.mp-aufmass-summary) {
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin-right:0 !important;
  margin-left:0 !important;
}
html body #view-aufmass.view.active .mp-aufmass-section-nav {
  z-index:430 !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-inline:contain !important;
  -webkit-overflow-scrolling:touch !important;
}
html body #view-aufmass.view.active > :is(.mp-aufmass-master,.mp-workspace-list-master),
html body #view-aufmass.view.active > .view-box .mp-aufmass-workspace > .mp-aufmass-master {
  box-sizing:border-box !important;
  flex-direction:column !important;
  min-width:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(15,23,42,.10) !important;
  border-left:0 !important;
  background:linear-gradient(105deg,rgba(var(--mp-flaeche-rgb), .99),rgba(var(--mp-flaeche-rgb), .97) 78%,rgba(var(--mp-f2-fafbfd), 0.98)) !important;
  box-shadow:1px 0 0 rgba(255,255,255,.96) inset,8px 0 18px -10px rgba(15,23,42,.24),22px 0 52px -24px rgba(15,23,42,.38) !important;
}
html body #view-aufmass.view.active .mp-aufmass-master > .aufmass-list-card {
  box-sizing:border-box !important;
  display:flex !important;
  flex:1 1 auto !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  flex-direction:column !important;
  overflow:hidden !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}
html body #view-aufmass.view.active .mp-aufmass-master > .aufmass-list-card > .card-body {
  display:flex !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
html body #view-aufmass.view.active .mp-aufmass-master :is(#aufmassSavedList,.aufmass-list-scroll) {
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch !important;
}
html body #view-aufmass.view.active .mp-aufmass-rail-toggle {
  position:absolute !important;
  z-index:12 !important;
  top:18px !important;
  right:14px !important;
  box-sizing:border-box !important;
  display:grid !important;
  width:42px !important;
  min-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 !important;
  place-items:center !important;
  border:1px solid rgba(15,23,42,.11) !important;
  border-radius:13px !important;
  background:rgb(var(--mp-flaeche-rgb)) !important;
  color:rgb(var(--mp-t2-253247)) !important;
  box-shadow:0 7px 18px -12px rgba(15,23,42,.38) !important;
}
html body #view-aufmass.view.active .mp-aufmass-rail-toggle-label {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}
html body #view-aufmass.view.active .mp-aufmass-rail-toggle-icon {
  display:block !important;
  font-size:32px !important;
  font-weight:400 !important;
  line-height:1 !important;
  transform:none !important;
}
html body #view-aufmass.view.active > .mp-aufmass-external-rail-toggle {
  position:fixed !important;
  z-index:4685 !important;
  top:calc(var(--mp-am-top) + 12px) !important;
  left:5px !important;
  box-sizing:border-box !important;
  display:none !important;
  width:42px !important;
  min-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 !important;
  place-items:center !important;
  border:1px solid rgba(15,23,42,.11) !important;
  border-radius:13px !important;
  background:rgb(var(--mp-flaeche-rgb)) !important;
  color:rgb(var(--mp-t2-253247)) !important;
  box-shadow:0 10px 24px -16px rgba(15,23,42,.5) !important;
}
html body #view-aufmass.view.active > .mp-aufmass-external-rail-toggle svg {
  width:22px !important;
  height:22px !important;
}

@media (min-width:1200px) {
  html body #view-aufmass.view.active > .view-box {
    box-sizing:border-box !important;
    display:block !important;
    width:calc(100% - var(--mp-am-rail-open)) !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 0 var(--mp-am-rail-open) !important;
    padding:24px var(--mp-am-dock-safe) var(--mp-am-bottom-safe) 24px !important;
    transition:width 560ms cubic-bezier(.22,1,.36,1),margin-left 560ms cubic-bezier(.22,1,.36,1) !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed > .view-box,
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed {
    width:calc(100% - var(--mp-am-rail-closed)) !important;
    margin-left:var(--mp-am-rail-closed) !important;
  }
  html body #view-aufmass.view.active > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box .mp-aufmass-workspace > .mp-aufmass-master {
    position:fixed !important;
    z-index:4660 !important;
    inset:var(--mp-am-top) auto 0 0 !important;
    display:flex !important;
    width:var(--mp-am-rail-open) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:0 !important;
    border-radius:0 28px 28px 0 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed .mp-aufmass-master,
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed ~ .mp-aufmass-master {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed > .mp-aufmass-external-rail-toggle,
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed ~ .mp-aufmass-external-rail-toggle {
    display:grid !important;
  }
}

@media (min-width:768px) and (max-width:1199px) {
  html body #view-aufmass.view.active > .view-box {
    box-sizing:border-box !important;
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    /* Wie beim Angebots-Workspace bleibt die Card selbst breit. Der rechte
       Dock-Sicherheitsraum gehoert an die Bedienelemente, nicht als 90-px-
       Abschlag an jede Aufmasskarte. Genau dieser Abschlag liess Aufmass auf
       iPad Mini/Air sichtbar schmaler als Angebote wirken. */
    padding:16px 8px var(--mp-am-bottom-safe) 74px !important;
  }
  html body #view-aufmass.view.active::before {
    content:"" !important;
    position:fixed !important;
    z-index:4640 !important;
    inset:var(--mp-am-top) 0 88px !important;
    display:block !important;
    background:rgba(15,23,42,.18) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    -webkit-backdrop-filter:blur(2px) !important;
    backdrop-filter:blur(2px) !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed::before,
  html body #view-aufmass.view.active:has(> .view-box.is-rail-collapsed)::before {
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  html body #view-aufmass.view.active > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box .mp-aufmass-workspace > .mp-aufmass-master {
    position:fixed !important;
    z-index:4660 !important;
    inset:var(--mp-am-top) auto 88px 0 !important;
    display:flex !important;
    width:min(520px,calc(100vw - 88px)) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:0 !important;
    border-radius:0 26px 26px 0 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed .mp-aufmass-master,
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed ~ .mp-aufmass-master {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  html body #view-aufmass.view.active.is-list-rail-collapsed > .mp-aufmass-external-rail-toggle,
  html body #view-aufmass.view.active > .view-box.is-rail-collapsed ~ .mp-aufmass-external-rail-toggle {
    display:grid !important;
  }
  html body #view-aufmass.view.active .view-header.mp-module-view-header {
    position:relative !important;
    top:auto !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  html body #view-aufmass.view.active .view-header.mp-module-view-header > .mp-aufmass-hero-actions {
    margin-right:58px !important;
  }
  html body #view-aufmass.view.active .mp-aufmass-section-nav,
  html body #view-aufmass.view.active.mp-aufmass-workzone-at-top .mp-aufmass-section-nav {
    position:sticky !important;
    top:0 !important;
    z-index:430 !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  html body #view-aufmass.view.active .aufmass-room-card > :is(.aufmass-room-header,.card-header.aufmass-room-header) {
    top:72px !important;
  }
}

@media (max-width:767px) {
  html body #view-aufmass.view.active > .view-box {
    box-sizing:border-box !important;
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:12px 12px 118px !important;
  }
  html body #view-aufmass.view.active > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box .mp-aufmass-workspace > .mp-aufmass-master {
    position:fixed !important;
    z-index:4660 !important;
    inset:var(--mp-am-top) auto 88px 0 !important;
    display:none !important;
    width:min(430px,calc(100vw - 16px)) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:0 !important;
    border-radius:0 24px 24px 0 !important;
  }
  html body #view-aufmass.view.active.is-mobile-list-open > :is(.mp-aufmass-master,.mp-workspace-list-master),
  html body #view-aufmass.view.active > .view-box.is-mobile-rail-open .mp-aufmass-master,
  html body #view-aufmass.view.active > .view-box.is-mobile-rail-open ~ .mp-aufmass-master,
  html body.mp-aufmass-mobile-list-open #view-aufmass.view.active > :is(.mp-aufmass-master,.mp-workspace-list-master) {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  html body #view-aufmass.view.active > .mp-aufmass-external-rail-toggle { display:none !important; }
}
/* MP-20260905-002-NACHBESSERUNG (Jonas Falk): Ein hier zuvor eingefuegter
   Fähnchen-Sichtbarkeits-Fix stand IRRTUEMLICH in diesem Block — der
   gesamte Umfassungs-Block "@media not all" (Zeile 890-1270, Kommentar
   "MP-20260831-006 · AUFMASS = ANGEBOTE-RECORD-WORKSPACE") ist TOTER CODE:
   `@media not all` matcht NIE, auf keinem Geraet. Per echtem Chromium
   bestaetigt (tools/test-aufmass-faehnchen-optik-vergleich.js,
   CSSMediaRule.media.mediaText === "not all" fuer jede Regel darin). Diese
   Zone wurde beim Ersatz durch css/mp-aufmass-layout-contract.css (selbe
   MP-Nummer im dortigen Dateikopf, "Einzige aktive Quelle") absichtlich
   stillgelegt statt geloescht — jede neue Regel HIER WIRKT NIE, unabhaengig
   davon wie korrekt sie aussieht. Der tatsaechliche Fix fuer das mobile
   Fähnchen liegt jetzt in css/mp-baustellen-golden-v2.css (Selektorliste
   der 6-Module-Regel um #view-aufmass erweitert, siehe dort). Siehe
   SHARED_LEARNINGS.md L-2026-09-05-B fuer die volle Falle. */

/* Rechte und untere Dockleiste bleiben in jeder Aufmass-Aufloesung ueber
   Viewer, Listen-Backdrop und Liste sichtbar.
   MP-20260901-022 (mp022d, Marcels Handy-Befund "Dock liegt wieder ueber
   dem Tuer/Fenster-Dialog"): diese Regel kannte body.sheet-open nicht und
   hatte durch das :has()-Argument (#view-aufmass.view.active traegt eine
   ID) MEHR Spezifitaet als jede reine Klassen-Regel wie
   "body.sheet-open nav.bottom-nav{opacity:0}" (mp-dock-nav.css) — sie
   gewann IMMER, sobald die Aufmass-Ansicht aktiv war, unabhaengig von
   Breite oder Dialogzustand. Per CDP CSS.getMatchedStylesForNode auf
   390x844 mit body.sheet-open + den echten View-Tracker-Klassen belegt
   (kein Vermutungsfall). #mpSideRail bewusst NICHT geaendert (kein
   gemeldeter Befund dort, kein bestehender sheet-open-Ausblendmechanismus
   fuer sideRail, den man hier haette umgehen koennen) — nur nav.bottom-nav
   bekommt :not(.sheet-open), derselbe Trick wie bei #aufmassQuickDock und
   der mp-dock-nav.css-Selbstkollision von vorhin (L-2026-09-02-K). */
/* MP-20260902-011 ③: #mpSideRail aus dieser Regel ENTFERNT — Marcels
   neues Zielbild ersetzt die rechte Modulleiste im Aufmaß-Modus durch das
   Aufmaß-Schnelldock (Ausblendung in mp-aufmass-golden.css). Nur noch
   nav.bottom-nav bleibt hier geschützt. */
html body:has(#view-aufmass.view.active):not(.sheet-open) nav.bottom-nav {
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  z-index:4690 !important;
}
}

/* ================================================================
   MP-20260831-006 · NOTIZEN/CHAT = ANGEBOTE-AUSSENRAHMEN
   ================================================================ */
@media (min-width:1200px) {
  html body :is(#view-notizen,#view-baustellenchat).view.active > .view-container > .view-box {
    box-sizing:border-box !important;
    width:calc(100% - 420px) !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 0 420px !important;
    padding:24px var(--mp-side-rail-space,90px) 124px 24px !important;
  }
  html body :is(#view-notizen,#view-baustellenchat).view.active.is-list-rail-collapsed > .view-container > .view-box,
  html body :is(#view-notizen,#view-baustellenchat).view.active > .view-container > .view-box.is-list-rail-collapsed {
    width:calc(100% - 64px) !important;
    margin-left:64px !important;
  }
  /* Nachbesserung MP-20260901-004: der z-index-Versuch hier war nie
     wirksam — mp-list-workspaces-golden.css setzt denselben Selektor mit
     dem `html:not(#mpkk):not(#mpkk-2) body`-Praefix (zwei ID-Punkte mehr)
     und gewinnt dort immer. Entfernt statt stehengelassen, weil ein
     wirkungsloser z-index-Wert genau diese Klasse Bug erzeugt hat, wenn ein
     GESCHWISTER-Selektor (der Blur-Backdrop, s.u.) denselben Trick NICHT
     hatte und dadurch ALLEIN gewann → falsche Stapelreihenfolge, siehe
     SHARED_LEARNINGS L-2026-09-01-A. Tatsaechliche Stelle:
     mp-list-workspaces-golden.css, Suche nach `.mp-workspace-list-master`
     im `@media (min-width:1200px)`-Block fuer #view-notizen/#view-baustellenchat. */
}

/* Kanonische Dockgeometrie auch nach dem kritischen Inline-CSS. Sämtliche
   Breakpoints verwenden dieselbe kompakte, horizontal scrollbare Pille. */
html body nav.bottom-nav:not(.hidden-nav) {
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  top:auto !important;
  bottom:max(8px,env(safe-area-inset-bottom,0px)) !important;
  box-sizing:border-box !important;
  display:flex !important;
  width:max-content !important;
  min-width:0 !important;
  max-width:calc(100vw - 32px) !important;
  height:auto !important;
  flex-flow:row nowrap !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  transform:translateX(-50%) !important;
  transition:none !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  -webkit-overflow-scrolling:touch !important;
}
html body nav.bottom-nav:not(.hidden-nav)::-webkit-scrollbar {
  display:none !important;
  width:0 !important;
  height:0 !important;
}
@media (min-width:768px) and (max-width:1199px) {
  html body :is(#view-notizen,#view-baustellenchat).view.active::before { z-index:4640 !important; }
  html body :is(#view-notizen,#view-baustellenchat).view.active > .view-container > .view-box {
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:16px var(--mp-side-rail-space,90px) 124px var(--mp-tablet-list-inset,74px) !important;
  }
  html body :is(#view-notizen,#view-baustellenchat).view.active > .mp-workspace-list-master {
    z-index:4660 !important;
  }
}
html body :is(#view-notizen,#view-baustellenchat).view.active > .view-container > .view-box > * {
  box-sizing:border-box !important;
  max-width:100% !important;
}

@media (max-width:767px) {
  html:not(#mpkk):not(#mpkk-2) body .main-container > :is(
    #view-kunden,#view-aufmass,#view-kva,#view-projekte,#view-baustellenplanung,
    #view-rechnung,#view-baustellenchat,#view-briefe,#view-notizen,#view-material,
    #view-leistungen,#view-dateien,#view-stundenuebersicht,#view-meine-stunden,
    #view-workerstatus,#view-worker-activity,#view-worker-fotos,#view-settings,
    #view-profit-dashboard,#view-leads
  ).view.active .view-header.mp-module-view-header {
    min-height:92px !important;
    padding:16px 17px !important;
    gap:12px !important;
    border-radius:20px !important;
  }
  html body .view.active .view-header.mp-module-view-header > .mp-module-header-title,
  html body .view.active .view-header.mp-module-view-header > .mp-nz-view-title.mp-module-header-title {
    gap:12px !important;
  }
  html body .view.active .view-header.mp-module-view-header .mp-module-header-icon {
    flex-basis:46px !important;
    width:46px !important;
    min-width:46px !important;
    height:46px !important;
    min-height:46px !important;
  }
}

/* =========================================================
   MP-20260831-003 · ECHTES HANDY: BAUSTELLEN-KOPF/NAVIGATION
   Der vorherige Hardwall kombinierte display:flex mit width:100% pro
   Navigationseintrag. Auf Desktop-Simulationen konnte das durch alte
   Grid-Regeln zufaellig korrekt wirken; echte Mobile-Browser machten daraus
   jedoch ueberbreite/verformte Eintraege. Jede Kachel hat jetzt dieselbe
   feste Mobile-Breite und die Reihe scrollt ruhig horizontal.
   ========================================================= */
@media (max-width: 767px) {
  html body #view-projekte.mp-baustellen-golden {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav.mp-bs-group-nav {
    display: flex !important;
    width: 100% !important;
    min-height: 72px !important;
    padding: 6px !important;
    flex-flow: row nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    overscroll-behavior-inline: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav.mp-bs-group-nav::-webkit-scrollbar {
    display: none !important;
  }

  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav > .mp-bs-nav-item,
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav > .mp-bs-nav-item > summary {
    box-sizing: border-box !important;
    flex: 0 0 62px !important;
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding: 5px 2px !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    overflow: hidden !important;
    border-radius: 9px !important;
    scroll-snap-align: start !important;
  }

  /* MP-20260902-041 · Die Gruppen-Tabs (Ausfuehrung/Kosten/Dokumente/Mehr)
     liegen seit dem iOS-Tap-Umbau (MP-20260901-003) zwei Ebenen tief in
     einem eigenen <button class="mp-bs-nav-trigger">, nicht direkt in
     .mp-bs-nav-item wie bei "Uebersicht". Ohne diese Regel bleibt der
     Trigger bei seiner Basis-Zeilenrichtung (mp-baustellen-golden-v2.css)
     und quetscht Icon+Label+Chevron nebeneinander in die 62px-Kachel. */
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav > .mp-bs-nav-item > .mp-bs-nav-trigger {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
  }

  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav .mp-bs-nav-icon {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    max-width: 30px !important;
    max-height: 30px !important;
    flex: 0 0 30px !important;
  }

  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav .mp-bs-nav-icon svg {
    width: 17px !important;
    height: 17px !important;
  }

  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav .mp-bs-nav-label,
  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav > .mp-bs-nav-item > span:not(.mp-bs-nav-icon),
  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav > .mp-bs-nav-item > .mp-bs-nav-trigger > span:not(.mp-bs-nav-icon):not(.mp-bs-nav-chevron) {
    display: block !important;
    width: 100% !important;
    max-width: 58px !important;
    overflow: hidden !important;
    font-size: 10px !important;
    font-weight: 720 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  /* MP-20261004-007: Worker-Ansicht obere Reihe (#mpBsGroupNav) zentrieren mobil */
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"].mp-bs-group-nav {
    display: flex !important;
    flex-flow: row nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px 4px !important;
    overflow-x: visible !important;
    width: 100% !important;
  }
  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"] > .mp-bs-nav-item {
    box-sizing: border-box !important;
    flex: 0 0 72px !important;
    width: 72px !important;
    min-width: 72px !important;
    max-width: 82px !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding: 5px 3px !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    border-radius: 11px !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"] .mp-bs-nav-label,
  html body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"] > .mp-bs-nav-item > span:not(.mp-bs-nav-icon) {
    display: block !important;
    width: 100% !important;
    max-width: 70px !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    white-space: normal !important;
    word-break: break-word !important;
  }

  html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader[data-visible="1"] {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 32px minmax(0,1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 58px !important;
    max-height: 70px !important;
    padding: 10px 12px !important;
    align-items: center !important;
    gap: 9px !important;
    overflow: hidden !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader .mp-pw-ico {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader .mp-pw-name-row {
    display: flex !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 7px !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader .mp-pw-name {
    min-width: 0 !important;
    font-size: 14px !important;
    line-height: 1.15 !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader .mp-pw-status {
    flex: 0 0 auto !important;
    min-height: 20px !important;
    padding: 2px 7px !important;
    font-size: 9px !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader .mp-pw-sub {
    margin-top: 2px !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
  }
  html body #view-projekte.mp-baustellen-golden #mpProjKarte #projWorkspaceHeader :is(.mp-pw-metrics,.mp-bs-project-actions,.mp-pw-progress) {
    display: none !important;
  }
  html body #view-projekte.mp-baustellen-golden #projWorkspaceHeader :is(.mp-pw-title,.mp-pw-sub,#projWsName,#projWsAdresse) {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
}

/* Body-Klassen kommen direkt vom View-Tracker und sind die Safari-Fallbacks
   fuer die Aufmass-Docks, falls :has() waehrend eines Warmstarts nicht neu
   ausgewertet wird.
   MP-20260901-022 (mp022d): dieselbe :not(.sheet-open)-Ergaenzung wie bei
   der :has()-Primaerregel oben — dieser Fallback ist der eigentliche
   Bug-Trigger auf dem Handy gewesen (per CDP mit den echten
   View-Tracker-Body-Klassen + body.sheet-open matched, kein
   Vermutungsfall). Nur nav.bottom-nav geaendert, #mpSideRail unveraendert
   (kein gemeldeter Befund dort). */
/* MP-20260902-011 ③: die beiden #mpSideRail-Fallback-Selektoren sind
   ENTFERNT (Aufmaß-Leiste ersetzt die Modulleiste, siehe
   mp-aufmass-golden.css) — der Safari-/Warmstart-Fallback gilt nur noch
   für nav.bottom-nav. Zusätzlich Body-Klassen-Fallback für die
   AUSBLENDUNG der Modulleiste, damit Safari ohne :has()-Neuauswertung
   nicht doch beide Leisten zeigt. */
html body.mp-view-view-aufmass:not(.sheet-open) nav.bottom-nav,
html body.mp-view-aufmass:not(.sheet-open) nav.bottom-nav {
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  z-index:4690 !important;
}
html body.mp-view-view-aufmass #mpSideRail,
html body.mp-view-aufmass #mpSideRail,
html body.mp-view-view-aufmass #mpRailToggle,
html body.mp-view-aufmass #mpRailToggle {
  display:none !important;
}

/* ================================================================
   MP-20260831-007 · TABLET-/LISTEN-/DOCK-RECOVERY
   ================================================================ */

/* Interner und externer Listenpfeil sind dieselbe 42-px-Taste mit exakt
   demselben Symbolmass. Historische Modulregeln duerfen das SVG nicht mehr
   auf 19 bzw. 22 px auseinanderziehen. */
html body :is(
  .mp-workspace-rail-toggle,
  .mp-workspace-external-rail-toggle,
  .mp-aufmass-rail-toggle,
  .mp-aufmass-external-rail-toggle
) {
  box-sizing:border-box !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  padding:0 !important;
  place-items:center !important;
  border-radius:13px !important;
}
html body :is(
  .mp-workspace-rail-toggle,
  .mp-workspace-external-rail-toggle,
  .mp-aufmass-rail-toggle,
  .mp-aufmass-external-rail-toggle
) svg,
html body .mp-aufmass-rail-toggle-icon svg {
  display:block !important;
  width:21px !important;
  min-width:21px !important;
  max-width:21px !important;
  height:21px !important;
  min-height:21px !important;
  max-height:21px !important;
  stroke-width:2.25 !important;
}

/* Arbeitsleisten bleiben per Touch, Trackpad und Mausrad horizontal
   bedienbar; der technische Scrollbalken ist in keinem Modul sichtbar. */
html body :is(
  .mp-editor-section-nav,.mp-aufmass-section-nav,#mpBsGroupNav,
  .mp-hours-section-nav,.mp-my-hours-section-nav,.pdc-section-nav,
  .mp-planner-golden-nav,.mp-settings-topnav-scroll,.mp-settings-subnav-scroll,
  .mp-material-filter-rail,.mp-brief-preview-toolbar,#projTabsNav
) {
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
  overscroll-behavior-inline:contain !important;
  -webkit-overflow-scrolling:touch !important;
}
html body :is(
  .mp-editor-section-nav,.mp-aufmass-section-nav,#mpBsGroupNav,
  .mp-hours-section-nav,.mp-my-hours-section-nav,.pdc-section-nav,
  .mp-planner-golden-nav,.mp-settings-topnav-scroll,.mp-settings-subnav-scroll,
  .mp-material-filter-rail,.mp-brief-preview-toolbar,#projTabsNav
)::-webkit-scrollbar {
  display:none !important;
  width:0 !important;
  height:0 !important;
}

/* MP-20260901-004: Klicken-und-Ziehen (core/mp-list-workspaces-golden.js,
   MP_HORIZONTAL_WORKBARS) braucht einen Mauszeiger-Hinweis, sonst wirkt die
   Leiste ohne Balken wie unbedienbar. Nur auf Geraeten mit echter Maus. */
@media (hover:hover) and (pointer:fine) {
  html body :is(
    .mp-editor-section-nav,.mp-aufmass-section-nav,#mpBsGroupNav,
    .mp-hours-section-nav,.mp-my-hours-section-nav,.pdc-section-nav,
    .mp-planner-golden-nav,.mp-settings-topnav-scroll,.mp-settings-subnav-scroll,
    .mp-material-filter-rail,.mp-brief-preview-toolbar,#projTabsNav
  ) {
    cursor: grab;
  }
  html body :is(
    .mp-editor-section-nav,.mp-aufmass-section-nav,#mpBsGroupNav,
    .mp-hours-section-nav,.mp-my-hours-section-nav,.pdc-section-nav,
    .mp-planner-golden-nav,.mp-settings-topnav-scroll,.mp-settings-subnav-scroll,
    .mp-material-filter-rail,.mp-brief-preview-toolbar,#projTabsNav
  ).mp-workbar-dragging {
    cursor: grabbing;
  }
}
/* Waehrend des Ziehens keine Textauswahl in der Leiste (Beschriftungen der
   Bereichsreiter liegen sonst schnell markiert im Weg). Nicht an die
   hover:hover-Abfrage gebunden, da Pointer-Drag auch mit Stift/Trackpad-
   Touch vorkommt. */
html body :is(
  .mp-editor-section-nav,.mp-aufmass-section-nav,#mpBsGroupNav,
  .mp-hours-section-nav,.mp-my-hours-section-nav,.pdc-section-nav,
  .mp-planner-golden-nav,.mp-settings-topnav-scroll,.mp-settings-subnav-scroll,
  .mp-material-filter-rail,.mp-brief-preview-toolbar,#projTabsNav
).mp-workbar-dragging {
  -webkit-user-select: none !important;
  user-select: none !important;
}

/* Chat/Notizen reichen auf dem Desktop wie die Angebotsliste bis an den
   unteren Fensterrand. Die scrollende Innenliste behaelt Dock-Sicherheits-
   padding; dadurch liegt kein Datensatz hinter dem unteren Dock. */
@media (min-width:1200px) {
  html body :is(#view-notizen,#view-baustellenchat).view.active > .mp-workspace-list-master {
    inset:58px auto 0 0 !important;
    height:auto !important;
    max-height:none !important;
    border-radius:0 28px 0 0 !important;
  }
  html body :is(#view-notizen,#view-baustellenchat).view.active
    > .mp-workspace-list-master :is(.mp-nz-list,.mp-chat-list) {
    padding-bottom:112px !important;
  }
}

@media (min-width:768px) and (max-width:1199px) {
  /* Das iPad rendert sofort die finale kompakte Dockpille. Keine kurzzeitig
     viewportbreite Vorstufe, keine nachtraegliche Schrumpfanimation. */
  html body nav.bottom-nav:not(.hidden-nav) {
    position:fixed !important;
    left:50% !important;
    right:auto !important;
    top:auto !important;
    bottom:max(8px,env(safe-area-inset-bottom,0px)) !important;
    display:flex !important;
    width:max-content !important;
    min-width:0 !important;
    max-width:calc(100vw - 32px) !important;
    height:auto !important;
    flex-flow:row nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    transform:translateX(-50%) !important;
    transition:none !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
    contain:layout paint !important;
  }
  html body nav.bottom-nav:not(.hidden-nav)::-webkit-scrollbar { display:none !important;width:0 !important;height:0 !important; }
  html body nav.bottom-nav:not(.hidden-nav)::before { left:0 !important;right:0 !important;transition:none !important; }
}

/* MP-20260831-006 · gezielte Tablet-Verträge. Diese Regeln sind bewusst
   modulbezogen: kein weiterer pauschaler Hardwall über alle Workspaces. */
@media (min-width:768px) and (max-width:1199px) {
  /* Angebot/Rechnung: Inhalt bleibt auch bei geschlossenem Finder vollständig
     lesbar; Telefon, Kunde und Formularspalten enden vor der rechten Dockzone. */
  html body :is(#view-kva,#view-rechnung,#view-mail).view.active > .view-container > .view-box {
    box-sizing:border-box !important;
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:16px var(--mp-side-rail-space,90px) 124px var(--mp-tablet-list-inset,74px) !important;
    overflow-x:hidden !important;
  }
  html body :is(#view-kva,#view-rechnung,#view-mail).view.active > .mp-workspace-list-master {
    position:fixed !important;
    z-index:4660 !important;
    inset:58px auto calc(104px + env(safe-area-inset-bottom,0px)) 0 !important;
    display:flex !important;
    width:min(520px,calc(100vw - var(--mp-side-rail-space,90px))) !important;
    max-width:calc(100vw - var(--mp-side-rail-space,90px)) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    flex-direction:column !important;
    overflow:hidden !important;
    border-radius:0 26px 26px 0 !important;
  }
  html body :is(#view-kva,#view-rechnung).view.active.is-list-rail-collapsed > .mp-workspace-list-master {
    display:none !important;
  }
  html body :is(#view-kva,#view-rechnung).view.active > .mp-workspace-list-master > .card-body {
    display:flex !important;
    min-width:0 !important;
    min-height:0 !important;
    flex:1 1 auto !important;
    flex-direction:column !important;
    overflow:hidden !important;
  }
  html body :is(#view-kva,#view-rechnung).view.active > .mp-workspace-list-master :is(.mp-record-list,.mp-record-groups,[data-mp-record-list]) {
    min-width:0 !important;
    min-height:0 !important;
    max-height:none !important;
    flex:1 1 auto !important;
    padding-bottom:18px !important;
    overflow:auto !important;
    overscroll-behavior:contain !important;
  }
  html body :is(#view-kva,#view-rechnung) :is(.kva-editor,.rg-editor,.rg-editor-card,.card,.card-body,.form-grid,.form-group) {
    box-sizing:border-box !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  html body :is(#view-kva,#view-rechnung) :is(input,select,textarea) {
    min-width:0 !important;
    max-width:100% !important;
  }
  html body #view-kva.view.active .kva-editor {
    padding-bottom: clamp(80px, 12vh, 120px) !important;
  }

  /* Baustellen: beide KPI-Fenster werden auf Tablet untereinander aufgebaut.
     Dadurch kann „Stundenbudget“ niemals auf Einzelbuchstaben kollabieren. */
  html body #view-projekte.mp-baustellen-golden #projOverviewTop {
    grid-template-columns:minmax(0,1fr) !important;
    gap:14px !important;
  }
  html body #view-projekte.mp-baustellen-golden #projOverviewTop > :is(#projFinanceCard,#projBudgetCard) {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  html body #view-projekte.mp-baustellen-golden #projBudgetCard > .card-header {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    width:100% !important;
    min-width:0 !important;
    align-items:start !important;
    gap:8px 10px !important;
  }
  html body #view-projekte.mp-baustellen-golden #projBudgetCard > .card-header > div:first-child {
    grid-column:1 / -1 !important;
    width:100% !important;
    min-width:0 !important;
  }
  html body #view-projekte.mp-baustellen-golden #projBudgetCard > .card-header h2 {
    display:block !important;
    width:auto !important;
    min-width:max-content !important;
    max-width:100% !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
    white-space:nowrap !important;
    writing-mode:horizontal-tb !important;
  }
  html body #view-projekte.mp-baustellen-golden #projBudgetCard .proj-budget-statgrid {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  /* Materialkatalog: keine verschobene Arbeitsfläche, Aktionen und Stift
     bleiben vor dem Seitendock sichtbar und bedienbar. */
  html body #view-material.view.active > :is(.view-container,.view-box) {
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding-bottom:124px !important;
    overflow-x:hidden !important;
  }
  /* MP-20260926-053 (Lena Berger, Reproduktion): die 90px-Dockreserve lief
     vorher zusaetzlich auch auf .view-container (ueber das :is() oben) UND
     auf .view-box -- zusammen also DOPPELT (180px bei 820px Breite). Jetzt
     wie bei Kunden/Angebote: die Reserve sitzt nur noch auf .view-box. */
  html body #view-material.view.active > .view-container > .view-box {
    padding-right:var(--mp-side-rail-space,90px) !important;
  }
  html body #view-material :is(.mat-sticky-top,.mat-controls,#matList,.mat-list,.mat-grid,.mat-table-wrap) {
    box-sizing:border-box !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  html body #view-material :is(.mat-edit-btn,.mat-row-edit) {
    display:inline-grid !important;
    flex:0 0 40px !important;
    width:40px !important;
    min-width:40px !important;
    height:40px !important;
    place-items:center !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  /* Chat und Notizen enden oberhalb des Docks; die eigentliche Liste scrollt
     bis zu ihrem letzten Eintrag statt mitten im Viewport abzubrechen. */
  html body :is(#view-notizen,#view-baustellenchat).view.active > .mp-workspace-list-master {
    inset:58px auto calc(104px + env(safe-area-inset-bottom,0px)) 0 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
  html body :is(#view-notizen,#view-baustellenchat).view.active > .mp-workspace-list-master :is(.mp-nz-list,.mp-chat-list) {
    min-height:0 !important;
    max-height:none !important;
    flex:1 1 auto !important;
    padding-bottom:18px !important;
    overflow-y:auto !important;
  }
}

@media (max-width:767px) {
  html body #view-projekte.mp-baustellen-golden #projBudgetCard > .card-header h2 {
    overflow-wrap:normal !important;
    word-break:keep-all !important;
    white-space:nowrap !important;
    writing-mode:horizontal-tb !important;
  }
}

/* MP-20260831-006 · KANONISCHER TABLET-FINDER
   Portrait und Landscape benutzen dieselbe feste Fensterschale. Nur die
   verfuegbare Viewportbreite aendert sich. Die Datensatzliste selbst ist der
   einzige vertikale Scrollbereich; Kopf, Suche und Filter bleiben erreichbar.
   Der Backdrop reicht bis hinter das untere Dock, das mit z-index 4690 scharf
   und bedienbar darueber bleibt. */
@media (min-width:768px) and (max-width:1199px) {
  html body :is(
    #view-kva,#view-rechnung,#view-projekte,#view-kunden,
    #view-notizen,#view-baustellenchat
  ).mp-list-workspace.view.active::before {
    inset:58px var(--mp-side-rail-space,90px) 0 0 !important;
    z-index:4640 !important;
    background:rgba(15,23,42,.22) !important;
    -webkit-backdrop-filter:blur(4px) !important;
    backdrop-filter:blur(4px) !important;
  }

  html body :is(
    #view-kva,#view-rechnung,#view-projekte,#view-kunden,
    #view-notizen,#view-baustellenchat
  ).mp-list-workspace.view.active > .mp-workspace-list-master {
    position:fixed !important;
    z-index:4660 !important;
    inset:58px auto calc(104px + env(safe-area-inset-bottom,0px)) 0 !important;
    display:flex !important;
    box-sizing:border-box !important;
    width:min(520px,calc(100vw - var(--mp-side-rail-space,90px))) !important;
    max-width:calc(100vw - var(--mp-side-rail-space,90px)) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    flex-direction:column !important;
    overflow:hidden !important;
    overscroll-behavior:contain !important;
    touch-action:pan-y !important;
  }

  html body :is(
    #view-kva,#view-rechnung,#view-projekte,#view-kunden,
    #view-notizen,#view-baustellenchat
  ).mp-list-workspace.view.active.is-list-rail-collapsed > .mp-workspace-list-master {
    display:none !important;
  }

  html body :is(#view-kva,#view-rechnung,#view-aufmass).view.active > :is(.mp-workspace-list-master,.mp-aufmass-master) > .card-body,
  html body #view-kva.view.active .kva-list-wrapper,
  html body #view-rechnung.view.active .rechnung-list-wrapper,
  html body #view-aufmass.view.active .aufmass-list-wrapper {
    display:flex !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:none !important;
    flex-direction:column !important;
    overflow:hidden !important;
  }

  html body :is(
    #view-kva.view.active #kvaOffersGroupedList,
    #view-rechnung.view.active #rechnungGroupedList,
    #view-projekte.view.active #projektGroupedList,
    #view-kunden.view.active #kundenCardList,
    #view-notizen.view.active .mp-nz-list,
    #view-baustellenchat.view.active .mp-chat-list,
    #view-aufmass.view.active #aufmassSavedList
  ) {
    display:block !important;
    flex:1 1 0 !important;
    width:100% !important;
    height:0 !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    touch-action:pan-y !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }
  html body :is(
    #view-kva.view.active #kvaOffersGroupedList,
    #view-rechnung.view.active #rechnungGroupedList,
    #view-projekte.view.active #projektGroupedList,
    #view-kunden.view.active #kundenCardList,
    #view-notizen.view.active .mp-nz-list,
    #view-baustellenchat.view.active .mp-chat-list,
    #view-aufmass.view.active #aufmassSavedList
  )::-webkit-scrollbar {
    display:none !important;
    width:0 !important;
    height:0 !important;
  }

  /* MP-20260904-053 (K-403): Der Backdrop oben in diesem Block reicht seit
     MP-20260831-006 bewusst bis zur echten Geraeteunterkante (inset:...0)
     und liegt bei z-index:4640/4660 (siehe zentrale Z-Skala,
     mp-list-workspaces-golden.css Dateiende) UEBER der Dockleiste
     (nav.bottom-nav, Basis-z-index 1000 aus mp-dock-nav.css). Gemessen
     (768x1024 + 1024x768, Puppeteer + getComputedStyle, Screenshot-Beleg
     im Handoff): die Dock-Icons werden bei offenem Finder mitgedimmt und
     mitgeblurrt, UND `elementFromPoint` an der Dock-Koordinate trifft den
     Scrim statt den Button -- die Leiste ist in diesem Zustand nicht mehr
     antippbar. Kein "heller Streifen" wie auf dem Handy (der Backdrop
     selbst ist korrekt bis zum Rand gezogen), sondern dieselbe Ursache wie
     MP-20260904-048 in umgekehrter Ausrichtung: die Dockleiste wurde beim
     Ausdehnen des Backdrops nicht mit angehoben. Gleicher Loesungsweg wie
     dort (dort: body.mp-mobile-workspace-list-open nav.bottom-nav auf
     z-index:4700) und wie die bestehende Aufmass-Regel weiter oben in
     dieser Datei (Zeile ~1225, z-index:4690) -- hier fuer den
     Tablet-Rail-offen-Zustand alle sechs Module dieses Blocks. */
  html body:has(:is(#view-kva,#view-rechnung,#view-projekte,#view-kunden,#view-notizen,#view-baustellenchat).view.active:not(.is-list-rail-collapsed)) nav.bottom-nav {
    z-index:4700 !important;
  }
}

/* =========================================================
   K-515 · 06.09.2026 · MP-20260906-014 (Jonas Falk)
   WAAGERECHTES WISCHEN DARF DIE APP NICHT VERLASSEN
   ---------------------------------------------------------
   Belegt auf Staging v895 (echter Touch, 390x844, Protokolle
   `k515-ohnefix.json` / `k515-mitfix.json`):
   Beim Rueckwaerts-Blaettern im Wochenstreifen sprang die App nach 25-27
   Wischen ohne Zutun auf das Dashboard. Gemessen wurde dabei:
     - `history.back()` / `history.go()` werden NIE gerufen (0 Aufrufe,
       Monkey-Patch ueber den ganzen Lauf),
     - es feuert ein `popstate` mit dem VORIGEN Eintrag
       (`{"mp_mobile_view":"view-dashboard"}`), erst danach schaltet
       `applyHashView()` (core/mobile-flow-pro.js) die Ansicht um,
     - der Ausloeser-Wisch war jedes Mal einer, den KEIN waagerechter
       Scroller aufnehmen konnte (Finger lag auf dem Push-Hinweis ueber dem
       Streifen bzw. der Streifen war am Anschlag).
   Das ist die eingebaute Zurueck-Geste des Browsers (horizontales
   Overscroll am Wurzel-Scroller). Weil jeder Ansichtswechsel ein
   Verlaufseintrag ist, landet sie auf der vorigen Ansicht — meist dem
   Dashboard. `overscroll-behavior-x` NUR am Streifen reicht nicht
   (gemessen: Fehler nur verschoben, 26 -> 31), weil der Wisch den Streifen
   gar nicht trifft. Deshalb am Wurzel-Element.
   Gegenprobe mit dieser Regel: 36 Wische rueckwaerts, 0 popstate, Ansicht
   blieb durchgehend `view-baustellenplanung` — auch bei den drei Wischen,
   die auf dem Push-Hinweis landeten.
   Die System-Zurueck-Geste von Android/iOS und der Zurueck-Knopf bleiben
   unberuehrt: sie laufen nicht ueber das Overscroll des Dokuments.
   ========================================================= */
@media (max-width: 1024px), (any-pointer: coarse) {
  html {
    overscroll-behavior-x: contain;
  }
  body {
    overscroll-behavior-x: contain;
  }
}

/* MP-20261004-007: Worker-Ansicht obere Reihe (#mpBsGroupNav) Zentrierung für Desktop/Tablet */
html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"] {
  display: flex !important;
  flex-flow: row nowrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
}
html:not(#mpkk):not(#mpkk-2) body #view-projekte.mp-baustellen-golden #mpBsGroupNav[data-bs-nav-mode="worker"] > .mp-bs-nav-item {
  flex: 0 0 76px !important;
  width: 76px !important;
  min-width: 76px !important;
  max-width: 86px !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}

