/*
 * EIT-Tools – Ergänzungen zum gemeinsamen Gestaltungssystem (eit.css, verwaltung.css)
 * Autor: Niklas Pauli
 * Version: 261017.1635
 *
 * Mobile First: Die Vorgaben gelten für das Handy, größere Bildschirme ergänzen.
 */

/* --- Kopf der öffentlichen Seiten: Logo mit Plattformname --- */
.kopf__logo--plattform { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.kopf__plattform { display: none; padding-left: 12px; border-left: 1px solid var(--linie); font-weight: 750; font-size: 1.05rem; line-height: 1.15; color: var(--eit-nacht); }
.kopf__plattform small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--text-weich); }
@media (min-width: 480px) { .kopf__plattform { display: block; } }

.knopfreihe--mitte { justify-content: center; }
.hinweis-marke { margin: .6em 0 0; font-size: .82rem; color: var(--text-weich); }

/* --- Ankreuzfelder: große Bedienfläche für Finger --- */
.haken-feld { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 8px 0; cursor: pointer; }
.haken-feld input[type="checkbox"] { flex: 0 0 auto; width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--eit-primaer-dunkel); cursor: pointer; }
.haken-feld span { min-width: 0; overflow-wrap: anywhere; }
.haken-feld small { display: block; font-size: .88rem; color: var(--text-weich); }
.haken-raster { display: grid; gap: 0 24px; }
@media (min-width: 620px) { .haken-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Angaben als Liste (Konto) --- */
.angaben { display: grid; gap: 0; margin: 0 0 28px; border-top: 1px solid var(--linie); }
.angaben > div { display: grid; gap: 2px; padding: 12px 0; border-bottom: 1px solid var(--linie); }
.angaben dt { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-weich); }
.angaben dd { margin: 0; overflow-wrap: anywhere; }
@media (min-width: 700px) { .angaben > div { grid-template-columns: 220px minmax(0, 1fr); align-items: baseline; } }

/* --- Portal: Knopf "Zeiterfassung" und Hamburger-Menü im Kopf --- */
.pt-rahmen { max-width: 1280px; margin-inline: auto; padding: 26px var(--rand) 64px; }

/* Knopf "Zeiterfassung": kompakt, nur Symbol auf dem Handy, Schrift ab 480 Pixel */
.vw-kopf__zeit { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; color: var(--weiss); font-size: .9rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.vw-kopf__zeit:hover { background: rgba(255, 255, 255, .14); color: var(--weiss); }
.vw-kopf__zeit[aria-current="page"] { background: rgba(255, 255, 255, .22); }
.vw-kopf__zeit .icon { flex: 0 0 auto; }
.vw-kopf__zeit span { display: none; }
@media (min-width: 480px) { .vw-kopf__zeit span { display: inline; } }

/* Hamburger: der Knopf ist ein <summary>, die Schublade ein Teil des <details>; so funktioniert er auch ohne Skript */
.vw-hamburger { position: static; }
.vw-hamburger__schalter { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255, 255, 255, .28); border-radius: 12px; background: none; cursor: pointer; list-style: none; }
.vw-hamburger__schalter::-webkit-details-marker { display: none; }
.vw-hamburger__schalter:hover { background: rgba(255, 255, 255, .14); }
.vw-hamburger__linien { display: grid; gap: 5px; width: 20px; }
.vw-hamburger__linien span { display: block; height: 2px; border-radius: 2px; background: var(--weiss); transition: transform .2s ease, opacity .2s ease; }
.vw-hamburger[open] .vw-hamburger__linien span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.vw-hamburger[open] .vw-hamburger__linien span:nth-child(2) { opacity: 0; }
.vw-hamburger[open] .vw-hamburger__linien span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Schublade: liegt über dem Inhalt, unter dem Kopf; auf breiten Bildschirmen in drei Spalten */
.vw-schublade { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; max-height: calc(100vh - 64px); max-height: calc(100dvh - 64px); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 10px var(--rand) calc(20px + env(safe-area-inset-bottom)); border-bottom: 1px solid var(--linie); background: var(--weiss); color: var(--text); box-shadow: 0 18px 30px rgba(11, 37, 54, .14); }
.vw-schublade__innen { display: grid; gap: 4px 28px; max-width: 1280px; margin-inline: auto; }
.vw-schublade section { min-width: 0; }
.vw-schublade .vw-menue__titel { margin-top: 12px; }
.vw-schublade ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.vw-schublade a { display: flex; align-items: center; min-height: 44px; padding: 8px 10px; border-radius: var(--radius-klein); color: var(--text); text-decoration: none; }
.vw-schublade a:hover { background: var(--eit-hell); color: var(--eit-primaer-dunkel); }
.vw-schublade a[aria-current="page"] { background: rgba(25, 142, 206, .13); color: var(--eit-primaer-dunkel); font-weight: 650; }
@media (min-width: 700px) { .vw-schublade__innen { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* --- Portal --- */
.vw-kopf__name { display: none; }
@media (min-width: 620px) { .vw-kopf__name { display: inline; } }
.vw-marke--gesperrt { color: var(--fehler); border-color: rgba(179, 38, 30, .35); background: #fdf1f0; }
.umbrechen { overflow-wrap: anywhere; }
.vw-tabelle-rahmen { margin-top: 18px; }

.werkzeugliste { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--linie); }
.werkzeugliste li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 48px; padding: 8px 0; border-bottom: 1px solid var(--linie); }
.werkzeugliste .icon { flex: 0 0 auto; color: var(--eit-primaer-dunkel); }
.werkzeugliste .vw-marke { margin-left: auto; }

/* --- Hinweis "Als App installieren" --- */
.app-hinweis { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 24px; padding: 16px 18px; border: 1px solid var(--linie); border-radius: var(--radius); background: var(--eit-hell); }
.app-hinweis[hidden] { display: none; }
.app-hinweis p { margin: .3em 0 .8em; }
.app-hinweis .knopfreihe { margin: 0; }

/* --- Geräte mit Aussparung (iPhone): Inhalte nicht unter Rand und Home-Balken --- */
@supports (padding: env(safe-area-inset-bottom)) {
    .vw-inhalt, .vw-anmeldung { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
    .vw-kopf__innen { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
}

/* --- Bausteine, die auch auf öffentlichen Seiten gebraucht werden (dort ist verwaltung.css nicht geladen) --- */
.vw-marke { display: inline-block; padding: .15em .7em; border-radius: 999px; font-size: .8rem; font-weight: 650; background: #eef2f5; color: var(--text-weich); }
.vw-marke--geaendert { background: rgba(25, 142, 206, .15); color: var(--eit-primaer-dunkel); }
.feld select {
    width: 100%; min-height: 50px; padding: 10px 14px; font: inherit; color: var(--text); background: var(--weiss);
    border: 1.5px solid var(--linie); border-radius: var(--radius-klein);
}
.feld select:focus { outline: none; border-color: var(--eit-primaer); box-shadow: 0 0 0 4px rgba(25, 142, 206, .18); }
.knopfreihe--rechts { justify-content: flex-start; }
@media (min-width: 700px) { .knopfreihe--rechts { justify-content: flex-end; } }

/* --- Baustellenwetter --- */
.wetter-auswahl, .wetter-zeit { margin-bottom: 8px; }
.wetter-auswahl .knopfreihe, .wetter-zeit .knopfreihe { margin: 0; }
@media (min-width: 700px) {
    .wetter-auswahl { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
}

.wetterkarte { margin: 0 0 12px; padding: 22px; border: 1px solid var(--linie); border-radius: var(--radius); background: var(--weiss); box-shadow: var(--schatten); }
.wetterkarte--frueher { border-color: rgba(18, 112, 168, .45); }
.wetterkarte__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; font-size: .95rem; color: var(--text-weich); }
.wetterkarte__haupt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin: 0 0 16px; }
.wetterkarte__temperatur { font-size: clamp(2.2rem, 9vw, 3.2rem); font-weight: 750; line-height: 1; color: var(--eit-nacht); }
.wetterkarte__wetter { font-size: 1.15rem; overflow-wrap: anywhere; }
.wetterkarte__werte { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--linie); }
.wetterkarte__werte > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--linie); }
.wetterkarte__werte > div:last-child { border-bottom: 0; padding-bottom: 0; }
.wetterkarte__werte dt { display: inline-flex; align-items: center; gap: 8px; color: var(--text-weich); }
.wetterkarte__werte dt .icon { color: var(--eit-primaer-dunkel); }
.wetterkarte__werte dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
@media (min-width: 620px) {
    .wetterkarte__werte { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
    .wetterkarte__werte > div:nth-last-child(2) { border-bottom: 0; padding-bottom: 0; }
}

/* Tabelle der Messwerte: auf dem Handy als Karten, ab Tablet als Tabelle */
.datentabelle-rahmen { margin-top: 12px; }
.datentabelle { width: 100%; border-collapse: collapse; }
.datentabelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.datentabelle tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--linie); }
.datentabelle th, .datentabelle td { display: block; padding: 0; text-align: left; font-weight: 400; overflow-wrap: anywhere; }
.datentabelle tbody th { grid-column: 1 / -1; font-weight: 700; }
.datentabelle td[data-titel]::before { content: attr(data-titel) ": "; color: var(--text-weich); }
@media (min-width: 760px) {
    .datentabelle thead { position: static; width: auto; height: auto; clip-path: none; }
    .datentabelle tr { display: table-row; }
    .datentabelle th, .datentabelle td { display: table-cell; padding: 10px 14px 10px 0; border-bottom: 1px solid var(--linie); vertical-align: top; }
    .datentabelle thead th { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-weich); }
    .datentabelle tbody th { font-weight: 650; white-space: nowrap; }
    .datentabelle td[data-titel]::before { content: none; }
    .datentabelle tbody tr:hover { background: var(--eit-hell); }
}

/* --- Verweis auf die Firmenwebsite eit-pauli.de --- */
.kopf__extern { display: inline-flex; align-items: center; gap: 6px; }
.aufruf-firma { display: grid; gap: 20px; padding: clamp(22px, 4vw, 40px); border: 1px solid var(--linie); border-left: 6px solid var(--eit-primaer); border-radius: var(--radius); background: var(--eit-hell); }
.aufruf-firma h2 { margin: 0 0 .4em; }
.aufruf-firma p { margin: 0; }
.aufruf-firma .knopfreihe { align-content: center; }
@media (min-width: 900px) { .aufruf-firma { grid-template-columns: minmax(0, 1.4fr) auto; align-items: center; } }
.vw-kopf__link--firma span { display: none; }
@media (min-width: 480px) { .vw-kopf__link--firma span { display: inline; } }
.kopf__navigation li a { white-space: nowrap; }

/* ---------- Projekte (Version 261010.2144) ---------- */
.projekt-nummer { display: inline-block; margin-right: 6px; padding: 1px 8px; border-radius: 999px; background: var(--eit-hell); color: var(--eit-primaer-dunkel); font-size: 0.85em; font-weight: 700; white-space: nowrap; }
.projekt-link { color: inherit; text-decoration: none; }
.projekt-link:hover { text-decoration: underline; }
.projekt-filter { margin: 16px 0 8px; max-width: 640px; }
.projekt-filter__zeile { display: flex; flex-wrap: wrap; gap: 8px; }
.projekt-filter__zeile input { flex: 1 1 200px; min-width: 0; }
.reiter { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 16px; }
.reiter a { padding: 8px 14px; border: 1px solid #d5dbe1; border-radius: 999px; background: #fff; color: inherit; text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.reiter a:hover { border-color: var(--eit-primaer); }
.reiter a[aria-current="page"] { background: var(--eit-primaer-dunkel); border-color: var(--eit-primaer-dunkel); color: #fff; }
.projekt-bloecke { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 16px 0 8px; }
.projekt-block { padding: 16px; border: 1px solid #d5dbe1; border-radius: 12px; background: #fff; min-width: 0; }
.projekt-block h2 { margin: 0 0 10px; font-size: 1.05rem; }
.projekt-block .angaben { margin: 0; }
.projekt-liste { margin: 0 0 10px; padding: 0; list-style: none; }
.projekt-liste li { padding: 6px 0; border-bottom: 1px solid #e6eaee; }
.projekt-liste li:last-child { border-bottom: 0; }
.feld-paar { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
.haken-raster--breit { grid-template-columns: 1fr; }
@media (min-width: 720px) {
    .projekt-bloecke { grid-template-columns: 1fr 1fr; }
    .feld-paar { grid-template-columns: 180px 1fr; }
    .haken-raster--breit { grid-template-columns: 1fr 1fr; }
}
/* Breite Tabellen bleiben im Rahmen: lange Wörter brechen um, notfalls rollt nur die Tabelle, nie die Seite. */
.vw-tabelle-rahmen { overflow-x: auto; }
.vw-tabelle th, .vw-tabelle td { overflow-wrap: anywhere; }
.vw-tabelle td .knopf { white-space: nowrap; }
.projekt-block .angaben > div { grid-template-columns: 1fr; gap: 2px; }

/* ---------- Startseite: Werkzeuge im Vordergrund (Version 261010.2153) ---------- */
.buehne__werkzeuge { display: grid; margin: 0; padding: 0; list-style: none; }
.buehne__werkzeuge li { border-bottom: 1px solid rgba(255, 255, 255, .13); }
.buehne__werkzeuge li:last-child { border-bottom: 0; }
.buehne__werkzeuge a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 6px; border-radius: 10px; color: var(--weiss, #fff); font-weight: 650; text-decoration: none; }
.buehne__werkzeuge a > span { flex: 1 1 auto; min-width: 0; }
.buehne__werkzeuge a:hover, .buehne__werkzeuge a:focus-visible { background: rgba(255, 255, 255, .12); }
.buehne__werkzeuge .buehne__pfeil { flex: none; opacity: .7; transition: transform .18s ease; }
.buehne__werkzeuge a:hover .buehne__pfeil { transform: translateX(4px); opacity: 1; }
.kacheln > li { display: flex; min-width: 0; }
.kachel--werkzeug { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 26px; color: inherit; text-decoration: none; }
.kachel--werkzeug h3 { font-size: 1.2rem; }
.kachel--werkzeug p { flex: 1 1 auto; margin-bottom: 18px; }
.kachel--werkzeug .hinweis-marke { flex: none; margin-bottom: 0; }
a.kachel--werkzeug:focus-visible { outline: 3px solid var(--eit-primaer); outline-offset: 3px; }
.karte__link { margin-top: 14px; }
.karte .hinweis-marke { margin-top: 14px; }
.portal-aufruf { margin-top: 28px; }
.portal-app { display: flex; gap: 10px; align-items: flex-start; max-width: 46em; margin: 22px auto 0; font-size: .95rem; color: var(--text-weich, #51606d); }
.portal-app .icon { flex: none; margin-top: 3px; color: var(--eit-primaer); }
.weitere-werkzeuge { padding-block: clamp(28px, 5vw, 48px); }
.weitere-werkzeuge h2 { margin: 0 0 16px; font-size: 1.25rem; }
.weitere-werkzeuge__liste { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.weitere-werkzeuge__liste a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 14px; border: 1px solid var(--linie, #d5dbe1); border-radius: 12px; background: var(--weiss, #fff); color: inherit; font-weight: 650; text-decoration: none; }
.weitere-werkzeuge__liste a:hover { border-color: var(--eit-primaer); }
.weitere-werkzeuge__liste .kachel__symbol { flex: none; width: 38px; height: 38px; margin: 0; }
@media (min-width: 620px) { .weitere-werkzeuge__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .weitere-werkzeuge__liste { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* Handy: Die Werkzeugliste soll ohne Scrollen erreichbar sein, daher knapper Kopf und keine Knöpfe darüber. */
@media (max-width: 699px) {
    .seite-start .buehne__innen { gap: 20px; padding-block: 26px 28px; }
    .seite-start .buehne__knoepfe { display: none; }
    .seite-start .buehne__einleitung strong { margin-top: .4em; }
    .seite-start .buehne__karte { padding: 16px 16px 14px; }
}

/* ---------- Firmen (Version 261010.2219) ---------- */
.projekt-block--breit { grid-column: 1 / -1; }
.firma-ort { margin-left: 6px; font-weight: 400; font-size: .9em; color: var(--text-weich, #51606d); }
.firma-kontakt a { display: block; }
.firma-zuordnen__titel { margin: 18px 0 8px; font-size: 1rem; }
.firma-zuordnen { display: grid; grid-template-columns: 1fr; gap: 0 14px; align-items: end; }
.firma-zuordnen .feld { min-width: 0; }
.firma-zuordnen__knopf { padding-bottom: 14px; }
.feld textarea { width: 100%; }
@media (min-width: 860px) { .firma-zuordnen { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) auto; } }
/* Spaltentitel nie mitten im Wort trennen; lange Wörter in den Zellen mit Trennstrich umbrechen. */
.vw-tabelle thead th { overflow-wrap: normal; }
.vw-tabelle tbody th, .vw-tabelle td { hyphens: auto; }
.firma-kontakt a { hyphens: none; }

/* ---------- Projektliste zweizeilig (Version 261011.1047) ----------
   Zeile 1: Projektnummer und Projektname. Zeile 2: Baustelle, Auftraggeber, Freigaben, Stand. */
.projekt-zeilen { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--linie, #d5dbe1); }
.projekt-zeilen > li { padding: 2px 0 12px; border-bottom: 1px solid var(--linie, #d5dbe1); }
.projekt-zeilen__titel { display: flex; align-items: flex-start; gap: 8px; min-height: 44px; padding: 9px 0 5px; color: inherit; text-decoration: none; }
.projekt-zeilen__titel .projekt-nummer { margin-top: 2px; }
.projekt-zeilen__titel .icon { margin-top: 6px; }
.projekt-zeilen__titel strong { flex: 1 1 auto; min-width: 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.projekt-zeilen__titel .projekt-nummer { flex: none; margin-right: 0; max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
.projekt-zeilen__titel .icon { flex: none; color: var(--eit-primaer-dunkel); transition: transform .18s ease; }
.projekt-zeilen__titel:hover strong { text-decoration: underline; }
.projekt-zeilen__titel:hover .icon { transform: translateX(4px); }
.projekt-zeilen__titel:focus-visible { outline: 3px solid var(--eit-primaer); outline-offset: 2px; border-radius: 8px; }
.projekt-zeilen__angaben { display: flex; flex-wrap: wrap; gap: 2px 22px; margin: 0; font-size: .92rem; color: var(--text-weich, #51606d); }
.projekt-zeilen__angaben > div { display: flex; gap: 6px; min-width: 0; align-items: baseline; }
.projekt-zeilen__angaben dt { flex: none; font-weight: 650; }
.projekt-zeilen__angaben dt::after { content: ":"; }
.projekt-zeilen__angaben dd { margin: 0; min-width: 0; overflow-wrap: anywhere; color: var(--text, #17242e); }
/* Im Portal bleibt verborgen, was das Merkmal "hidden" trägt – auch Knöpfe und Ankreuzfelder, deren Klasse eine
   eigene Darstellung setzt. Ohne diese Regel waren Knöpfe sichtbar, die nur mit Skript eine Funktion haben. */
.verwaltung [hidden] { display: none !important; }

/* ---------- Zeiterfassung (Version 261011.1108) ---------- */
.zt-klaerung { margin: 8px 0 20px; border: 2px solid #c0392b; background: #fffafa; }
.zt-fall { margin-top: 14px; padding: 14px; border: 1px solid var(--linie, #d5dbe1); border-radius: 12px; background: #fff; }
.zt-fall__kopf { margin: 0 0 4px; overflow-wrap: anywhere; }
.zt-fall__gruende { margin: 0 0 12px; padding-left: 1.1em; list-style: disc; color: var(--fehler); }
.zt-fall textarea { min-height: 70px; }
.zt-fall__weitere { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--linie, #d5dbe1); }
.zt-fall__weitere form { margin: 0; }
.zt-aufzeichnung { margin: 8px 0 20px; }
.zt-aufzeichnung--laeuft { border-color: #e0a800; border-width: 2px; background: #fffaf0; }
.zt-start { grid-template-columns: 1fr; align-items: end; gap: 12px 14px; }
.zt-start .feld { min-width: 0; }
.zt-start__knopf .knopf { width: 100%; }
.zt-wahlfrei { font-weight: 400; color: var(--text-weich, #51606d); }
.zt-laeuft { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 1.1rem; }
.zt-laeuft .icon { flex: none; color: #b26a00; }
.zt-klappe { margin-top: 4px; }
.zt-klappe summary { display: flex; align-items: center; min-height: 44px; color: var(--eit-primaer-dunkel); cursor: pointer; }
.zt-klappe--verwerfen { margin-top: 12px; padding-top: 6px; border-top: 1px solid var(--linie, #d5dbe1); }
.zt-klappe--verwerfen summary { color: var(--fehler); }
.zt-feld--zeit { max-width: 300px; }
.zt-konto { max-width: 560px; margin: 0 0 8px; }
.zt-monat { align-items: center; margin: 0 0 12px; }
.zt-monat__wahl { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.zt-monat__wahl input { min-height: 44px; padding: 6px 10px; font: inherit; border: 1.5px solid var(--linie, #d5dbe1); border-radius: var(--radius-klein, 10px); background: #fff; }
.zt-tage { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin: 0 0 8px; padding: 0; list-style: none; }
.zt-tag { display: grid; justify-items: center; gap: 1px; min-height: 58px; padding: 6px 2px; border: 1px solid var(--linie, #d5dbe1); border-bottom-width: 4px; border-radius: 10px; background: #fff; color: inherit; text-decoration: none; line-height: 1.15; }
.zt-tag:hover { border-color: var(--eit-primaer); }
.zt-tag__wochentag { font-size: .72rem; color: var(--text-weich, #51606d); }
.zt-tag__zahl { font-weight: 700; }
.zt-tag__stunden { font-size: .78rem; color: var(--text-weich, #51606d); }
.zt-tag--erfuellt { border-bottom-color: #2e8b57; }
.zt-tag--fehlt { border-bottom-color: #c0392b; }
.zt-tag--frei { border-bottom-color: #9aa3ab; background: #f4f6f8; }
.zt-tag--kommt { border-bottom-color: #e3e7eb; color: var(--text-weich, #51606d); }
.zt-tag--heute { outline: 2px solid var(--eit-primaer); outline-offset: 1px; }
.zt-tag[aria-current="date"] { background: rgba(25, 142, 206, .13); border-color: var(--eit-primaer-dunkel); }
.zt-legende { margin-bottom: 18px; }
.zt-punkt { display: inline-block; width: 12px; height: 12px; margin: 0 4px 0 10px; border-radius: 3px; vertical-align: -1px; }
.zt-punkt:first-child { margin-left: 0; }
.zt-punkt--erfuellt { background: #2e8b57; }
.zt-punkt--fehlt { background: #c0392b; }
.zt-punkt--frei { background: #9aa3ab; }
.zt-tagzeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.zt-tagzeile > span { min-width: 0; overflow-wrap: anywhere; }
.zt-zeiten { display: grid; grid-template-columns: 1fr; gap: 14px; }
.zt-zeit { white-space: nowrap; }
.zt-export { display: grid; gap: 14px; justify-items: start; margin-top: 18px; }
.zt-nachweis { width: 100%; max-width: 620px; }
.zt-nachweis .bt-neu__zeile input { flex: 1 1 200px; min-width: 0; }
@media (min-width: 560px) { .zt-zeiten { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 620px; } }
@media (min-width: 700px) {
    .zt-start { grid-template-columns: minmax(0, 1fr) auto; }
    .zt-start__knopf .knopf { width: auto; }
    .zt-tage { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); }
    .vw-tabelle th.zt-umbruch { white-space: normal; }
}
@media (min-width: 1100px) { .zt-statistik-filter { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; } .zt-statistik-filter .feld:nth-child(6) { grid-column: 1; } }

/* ---------- Bautagebuch (Version 261011.0947) ---------- */
.bt-neu { max-width: 760px; margin: 16px 0 8px; }
.bt-neu__zeile { display: flex; flex-wrap: wrap; gap: 8px; }
.bt-neu__zeile select { flex: 1 1 240px; min-width: 0; }
.bt-filter { grid-template-columns: 1fr; gap: 12px 14px; align-items: end; margin: 16px 0 8px; padding: 16px; border: 1px solid var(--linie, #d5dbe1); border-radius: 12px; background: var(--eit-hell); }
.bt-filter .feld { min-width: 0; }
.bt-filter__knoepfe { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 620px) { .bt-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bt-filter .feld:first-child, .bt-filter__knoepfe { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .bt-filter { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; } .bt-filter .feld:first-child, .bt-filter__knoepfe { grid-column: auto; } }
/* Zeiterfassung: Feld "Mehrere Projekte" über die ganze Breite und Liste der erfassten Projekte (Version 261017.1635) */
.bt-filter .feld.zt-suche { grid-column: 1 / -1; }
.zt-treffer { margin: 0 0 14px; }
.zt-treffer__titel, .zt-treffer__hinweis { margin: 0 0 6px; }
.zt-treffer__hinweis { color: var(--text-weich, #51606d); }
.zt-treffer__liste { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.zt-treffer__liste li { max-width: 100%; padding: 4px 10px; border: 1px solid var(--linie, #d5dbe1); border-radius: 999px; background: #fff; overflow-wrap: anywhere; }
.bt-auswahl__feld { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.bt-auswahl__feld input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--eit-primaer-dunkel); cursor: pointer; }
.bt-sammlung { display: grid; gap: 8px; justify-items: start; margin-top: 16px; }
.bt-seiten { margin-top: 18px; }
.bt-text { white-space: pre-line; }
.bt-summe { margin: 10px 0 0; font-weight: 650; }
.bt-loeschen summary { min-height: 44px; display: flex; align-items: center; color: var(--fehler); cursor: pointer; }
.bt-loeschen__knopf { border-color: rgba(179, 38, 30, .5); color: var(--fehler); }
.bt-loeschen__knopf:hover { border-color: var(--fehler); color: var(--fehler); background: #fdf1f0; }
.bt-warnung { color: var(--fehler); }
.bt-kopf { margin: 0; }
.bt-feld--datum, .bt-feld--uhrzeit { max-width: 240px; }
.bt-wetter-zeile { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; }
.bt-wetter-knopf { display: grid; gap: 4px; padding-bottom: 3px; }
.bt-wetter-knopf[hidden] { display: none; }
.bt-wetter-werte { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bt-zeilen { display: grid; gap: 12px; }
.bt-zeile { display: grid; grid-template-columns: 1fr; gap: 10px 14px; padding: 14px; border: 1px solid var(--linie, #d5dbe1); border-radius: 12px; background: #fbfdfe; }
.bt-zeile .feld { min-width: 0; }
.bt-zeile textarea { min-height: 76px; }
.bt-zeile__knopf { display: flex; align-items: flex-end; }
.bt-baustein { width: 100%; min-height: 44px; padding: 8px 12px; font: inherit; font-size: .92rem; color: var(--text-weich); background: var(--eit-hell); border: 1px solid var(--linie, #d5dbe1); border-radius: var(--radius-klein, 10px); }
.bt-formular textarea { min-height: 110px; }
.bt-formular .bt-zeile textarea { min-height: 76px; }
@media (min-width: 700px) {
    .bt-auswahl__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .bt-tabelle td.bt-links, .vw-tabelle td.bt-links { text-align: left; }
    /* Nummer und Datum bleiben in einer Zeile; den Platz gibt die Spalte Projekt ab. */
    .bt-tabelle tbody th, .bt-tabelle td[data-titel="Datum"] { white-space: nowrap; overflow-wrap: normal; hyphens: none; }
    .bt-wetter-werte { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .bt-zeile--mannstaerke { grid-template-columns: minmax(0, 2fr) 110px minmax(0, 1.2fr); }
    .bt-zeile--mannstaerke .feld:nth-child(4) { grid-column: 1 / 3; }
    .bt-zeile--taetigkeit { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
    .bt-zeile--taetigkeit .bt-zeile__knopf { grid-column: 1 / -1; }
}

/* ---------- Prüfungsmanagement (Version 261011.1922) ---------- */
.pm-bezug, .pm-beleg { display: block; margin-top: 2px; font-size: .86rem; font-weight: 400; color: var(--text-weich); }
.pm-zahl { white-space: nowrap; }
.pm-ergebnis { display: inline-block; padding: .2em .75em; border-radius: 999px; font-size: .85rem; font-weight: 650; background: #eef2f5; color: var(--text-weich); }
.pm-ergebnis--gesichtet_und_anerkannt { background: #e3f3ea; color: #17603c; }
.pm-ergebnis--gesichtet_mit_anmerkungen_anerkannt { background: #fdf2d8; color: #7a5200; }
.pm-ergebnis--gesichtet_und_nicht_anerkannt { background: #fbe6e4; color: var(--fehler); }
.pm-paar { display: grid; grid-template-columns: 1fr; gap: 14px 16px; }
.pm-paar .feld { min-width: 0; }
/* Auswahl mit großen Tippflächen: Prüfart, Ja/Nein, Ergebnis */
.pm-wahlreihe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pm-wahlreihe--breit { grid-template-columns: 1fr; }
.pm-wahl { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 14px; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); font-weight: 600; cursor: pointer; }
.pm-wahl input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--eit-primaer-dunkel); cursor: pointer; }
.pm-wahl:hover { border-color: var(--eit-primaer); }
.pm-wahl:has(input:checked) { border-color: var(--eit-primaer-dunkel); background: var(--eit-hell); }
.pm-wahl:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(25, 142, 206, .25); }
.pm-unterwahl { display: grid; gap: 8px; padding: 14px; border: 1px dashed var(--linie); border-radius: 12px; background: #fbfdfe; }
.pm-unterwahl__titel { margin: 0; font-weight: 650; }
/* Abfragen */
.pm-abfragen { display: grid; gap: 12px; }
.pm-abfrage { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--linie); border-radius: 12px; background: #fbfdfe; }
.pm-abfrage legend { float: left; width: 100%; padding: 0; font-weight: 650; line-height: 1.35; }
.pm-abfrage legend + * { clear: both; }
.pm-abfrage--fehler { border-color: var(--fehler); }
.pm-abfrage__antworten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: 340px; }
.pm-abfrage__position textarea, .pm-formular .pm-abfrage__position textarea { min-height: 64px; }
.pm-antwort { display: inline-block; min-width: 3.4em; padding: .15em .7em; border-radius: 999px; text-align: center; font-weight: 700; }
.pm-antwort--gut { background: #e3f3ea; color: #17603c; }
.pm-antwort--befund { background: #fbe6e4; color: var(--fehler); }
.pm-antwort--offen { background: #eef2f5; color: var(--text-weich); font-weight: 600; }
.pm-befund { margin-left: 6px; font-size: .85rem; font-weight: 650; color: var(--fehler); }
.pm-fehlt { color: var(--fehler); }
/* Beträge im Formular */
.pm-betraege { display: grid; gap: 12px; }
.pm-betrag { display: grid; grid-template-columns: 1fr; gap: 10px 14px; padding: 14px; border: 1px solid var(--linie); border-radius: 12px; background: #fbfdfe; }
.pm-betrag .feld { min-width: 0; }
.pm-betrag__titel { margin: 0; font-weight: 650; }
.pm-betrag--ergebnis { background: var(--eit-hell); }
.pm-betrag--haupt { border-color: var(--eit-primaer-dunkel); }
.pm-ausgabe { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; min-height: 28px; }
.pm-ausgabe span { color: var(--text-weich); font-size: .92rem; }
.pm-ausgabe strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pm-ausgabe strong::after { content: " €"; font-weight: 400; color: var(--text-weich); }
.pm-ausgabe--haupt strong { font-size: 1.1rem; }
.pm-formular input[inputmode="decimal"] { text-align: right; font-variant-numeric: tabular-nums; }
.pm-teil { display: grid; gap: 12px; padding-top: 14px; border-top: 1px solid var(--linie); }
.pm-teil__titel { margin: 6px 0 0; font-size: 1rem; }
.pm-abzug__ergebnis { margin: 0; font-size: .92rem; color: var(--text-weich); }
.pm-skript .pm-ohne-skript { display: none; }
/* Freitexte mit Formatierung */
.pm-text { border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); }
.pm-text:focus-within { border-color: var(--eit-primaer); box-shadow: 0 0 0 4px rgba(25, 142, 206, .18); }
.pm-text__leiste { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px; border-bottom: 1px solid var(--linie); background: var(--eit-hell); border-radius: var(--radius-klein) var(--radius-klein) 0 0; }
.pm-text__knopf { min-width: 44px; min-height: 44px; padding: 4px 12px; border: 1px solid var(--linie); border-radius: 8px; background: var(--weiss); color: var(--text); font: inherit; font-size: .92rem; cursor: pointer; }
.pm-text__knopf:hover { border-color: var(--eit-primaer); }
.pm-text__knopf--bold { font-weight: 800; }
.pm-text__knopf--italic { font-style: italic; }
.pm-text__flaeche { min-height: 110px; padding: 10px 14px; outline: none; overflow-wrap: anywhere; }
.pm-text__flaeche:empty::before { content: attr(data-platzhalter); color: #8a96a1; }
.pm-text__flaeche ul, .pm-text__flaeche ol, .pm-freitext ul, .pm-freitext ol { margin: .3em 0; padding-left: 1.4em; }
.pm-text__flaeche p, .pm-freitext p { margin: 0 0 .5em; }
.pm-freitext { overflow-wrap: anywhere; }
.pm-freitext > :last-child { margin-bottom: 0; }
/* Unterschrift */
.pm-zeichnen { display: grid; gap: 8px; justify-items: start; }
.pm-zeichnen__flaeche { width: 100%; max-width: 560px; height: auto; aspect-ratio: 10 / 3; border: 1.5px dashed #9aa7b2; border-radius: var(--radius-klein); background: var(--weiss); touch-action: none; cursor: crosshair; }
.pm-unterschrift-stand { display: grid; gap: 8px; justify-items: start; }
.pm-unterschrift-bild { display: block; max-width: min(100%, 320px); max-height: 110px; padding: 6px; border: 1px solid var(--linie); border-radius: 8px; background: var(--weiss); }
/* Ansicht */
.pm-geldtabelle td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.pm-zeile--summe th, .pm-zeile--summe td, .pm-zeile--summe span { font-weight: 700; }
.pm-summenliste li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; }
.pm-summenliste li span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (min-width: 560px) {
    .pm-wahlreihe { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pm-wahlreihe--breit { grid-template-columns: 1fr; }
}
@media (min-width: 700px) {
    .pm-paar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pm-betrag { grid-template-columns: minmax(0, 1.1fr) repeat(3, minmax(0, 1fr)); align-items: end; }
    .pm-betrag .pm-betrag__titel { align-self: center; }
    .pm-betrag > .pm-ausgabe { display: grid; gap: 2px; justify-items: end; text-align: right; padding-bottom: 12px; }
    .pm-betrag--ergebnis > .pm-ausgabe { padding-bottom: 0; }
    .pm-betrag:not(:has(.pm-betrag__titel)) { grid-template-columns: 1fr; }
    .pm-betrag:not(:has(.pm-betrag__titel)) > .pm-ausgabe { display: flex; }
    .pm-abzug--ab { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
    .pm-abzug--kv { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.4fr) minmax(0, 1fr); }
    .pm-abzug .pm-abzug__ergebnis, .pm-abzug .bt-zeile__knopf { grid-column: 1 / -1; }
    .pm-angaben--zwei { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
    .pm-geldtabelle td, .pm-geldtabelle thead th:not(:first-child) { text-align: right; }
    .pm-geldtabelle td:last-child { padding-right: 0; }
    .pm-abfragetabelle td:last-child { text-align: left; }
    .pm-abfragetabelle td[data-titel="Antwort"] { white-space: nowrap; }
}
/* Die Liste hat sieben Spalten: Auf dem Tablet bleibt sie bei Karten (zweispaltig), erst der breite Bildschirm zeigt die Tabelle. */
@media (min-width: 700px) and (max-width: 1239px) {
    .pm-tabelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .pm-tabelle tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 20px; padding: 14px 0; border-bottom: 1px solid var(--linie); }
    .pm-tabelle th, .pm-tabelle td { display: block; padding: 0; border-bottom: 0; text-align: left; }
    .pm-tabelle td:last-child { text-align: left; }
    .pm-tabelle tbody th { grid-column: 1 / -1; }
    .pm-tabelle td[data-titel]::before { content: attr(data-titel) ": "; color: var(--text-weich); }
    .pm-tabelle .pm-beleg { display: inline; margin-left: 6px; }
}
@media (min-width: 1240px) {
    .pm-tabelle td[data-titel="Geprüft brutto"] { text-align: right; }
    .pm-tabelle td[data-titel="Ergebnis"] { text-align: left; }
    .pm-tabelle .pm-ergebnis { border-radius: 10px; }
    /* Platz für den Projektnamen: Zusätze unter der Nummer dürfen umbrechen, kurze Spalten trennen keine Wörter,
       die Projektnummer steht über dem Namen. Sonst bricht der Name in sehr viele kurze Zeilen. */
    .pm-tabelle th, .pm-tabelle td { padding-left: 8px; padding-right: 8px; }
    .pm-tabelle th:first-child { padding-left: 0; }
    .pm-tabelle td:last-child { padding-right: 0; }
    .pm-tabelle tbody th { max-width: 150px; }
    .pm-tabelle thead th:nth-child(3) { width: 30%; }
    .pm-tabelle thead th:nth-child(7) { width: 116px; }
    .pm-tabelle .pm-bezug { white-space: normal; }
    .pm-tabelle td[data-titel="Prüfart"], .pm-tabelle td[data-titel="Ergebnis"] { overflow-wrap: normal; hyphens: none; }
    .pm-tabelle td[data-titel="Projekt"] .projekt-nummer { display: table; margin: 0 0 3px; }
}
@media (min-width: 1100px) {
    .pm-filter { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; }
    .pm-wahlreihe { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .pm-unterwahl .pm-wahlreihe { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .pm-wahlreihe--breit { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Mängelmanagement, Kundenlogo und Projektrollen (Version 261011.2023) ---------- */
.projekt-logo img, .projekt-logo__bild { display: block; max-width: 220px; max-height: 90px; width: auto; height: auto; padding: 8px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); }
.projekt-rollen li { display: grid; gap: 6px; padding: 10px 0; }
.projekt-rollen__wahl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.projekt-rollen__wahl select { min-height: 44px; min-width: 0; padding: 6px 10px; font: inherit; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); }
@media (min-width: 1100px) { .projekt-rollen li { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; } }

.mm-status { display: inline-block; padding: .15em .7em; border-radius: 999px; font-size: .82rem; font-weight: 650; white-space: nowrap; background: #eef2f5; color: var(--text-weich); }
.mm-status--offen { background: #fbe6e4; color: #a01f1f; }
.mm-status--in_bearbeitung { background: #fdf2d8; color: #7a5200; }
.mm-status--erledigt_gemeldet { background: rgba(25, 142, 206, .15); color: var(--eit-primaer-dunkel); }
.mm-status--erledigt_geprueft { background: #e3f3ea; color: #17603c; }
.mm-status--zurueckgestellt { background: #eceae9; color: #55514f; }
.mm-status--abgelehnt { background: #1d2327; color: #fff; }
.mm-prio { display: inline-block; padding: .15em .7em; border-radius: 999px; font-size: .82rem; font-weight: 650; white-space: nowrap; border: 1px solid var(--linie); color: var(--text-weich); }
.mm-prio--hoch { border-color: #d9a441; color: #7a5200; }
.mm-prio--kritisch { border-color: var(--fehler); color: var(--fehler); }
.mm-ueberfaellig { font-weight: 650; color: var(--fehler); }
.mm-intern { background: #fffaf0; border-color: #ead9ae; }

.mm-zahlen { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 4px; }
.mm-zahl { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 14px; border: 1.5px solid var(--linie); border-radius: 999px; color: var(--text); font-size: .92rem; text-decoration: none; background: var(--weiss); }
.mm-zahl strong { font-size: 1.05rem; }
.mm-zahl:hover { border-color: var(--eit-primaer); }
.mm-zahl--gewaehlt { border-color: var(--eit-primaer-dunkel); background: var(--eit-hell); font-weight: 650; }
.mm-zahl--ueberfaellig strong, .mm-zahl--offen strong { color: var(--fehler); }

.mm-liste { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--linie); }
.mm-eintrag { padding: 4px 0 12px; border-bottom: 1px solid var(--linie); }
.mm-eintrag__kopf { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 6px 0; color: var(--text); text-decoration: none; }
.mm-eintrag__kopf:hover .mm-eintrag__titel { color: var(--eit-primaer-dunkel); text-decoration: underline; text-underline-offset: 3px; }
.mm-eintrag__titel { min-width: 0; font-weight: 700; overflow-wrap: anywhere; }
.mm-nummer { flex: none; min-width: 3.1em; padding: .25em .5em; border-radius: 8px; background: var(--mm-farbe, var(--eit-grau)); color: #fff; font-weight: 700; font-size: .95rem; text-align: center; font-variant-numeric: tabular-nums; }
.mm-eintrag__angaben { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0; font-size: .92rem; color: var(--text-weich); }
.mm-eintrag__angaben > span { overflow-wrap: anywhere; }

.mm-kopf { margin: 6px 0 4px; }
.mm-kopf__titel { margin: 0 0 8px; font-size: 1.25rem; overflow-wrap: anywhere; }
.mm-kopf__marken { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; }

.mm-formular .feld__titel { font-size: .92rem; font-weight: 650; }
.mm-ort { display: grid; grid-template-columns: 1fr; gap: 14px 16px; }
.mm-ort .feld { min-width: 0; }
.mm-wahlreihe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mm-wahlreihe--status { grid-template-columns: 1fr; }
.mm-wahl { display: flex; align-items: center; gap: 10px; min-height: 48px; min-width: 0; padding: 8px 12px; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); font-weight: 600; cursor: pointer; }
.mm-wahl input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--eit-primaer-dunkel); cursor: pointer; }
.mm-wahl:has(input:checked) { border-color: var(--eit-primaer-dunkel); background: var(--eit-hell); }
.mm-wahl:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(25, 142, 206, .25); }
.mm-wahl--kritisch:has(input:checked) { border-color: var(--fehler); background: #fdf1f0; }
.mm-klappe { margin-top: 12px; }
.mm-klappe > summary { display: flex; align-items: center; min-height: 44px; font-weight: 650; color: var(--eit-primaer-dunkel); cursor: pointer; }
.mm-klappe > form { margin-top: 8px; }
.mm-bericht > summary, .mm-planverwaltung > summary { display: flex; align-items: center; min-height: 44px; font-weight: 650; color: var(--eit-primaer-dunkel); cursor: pointer; }

.mm-fotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 8px; padding: 0; list-style: none; }
.mm-foto { min-width: 0; }
.mm-foto a { display: block; border: 1px solid var(--linie); border-radius: var(--radius-klein); overflow: hidden; background: #f4f6f8; }
.mm-foto img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.mm-fotowahl { margin-top: 6px; }
.mm-fotowahl__bilder { display: flex; flex-wrap: wrap; gap: 6px; }
.mm-fotowahl__bilder img { width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--linie); border-radius: 8px; }

.mm-plan { margin: 10px 0; }
.mm-plan[hidden] { display: none; }
.mm-plan__werkzeug { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.mm-plan__werkzeug .knopf { min-width: 48px; justify-content: center; }
.mm-plan__rahmen { max-height: 72vh; overflow: auto; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: #f4f6f8; -webkit-overflow-scrolling: touch; }
.mm-plan__rahmen:focus-visible { outline: 3px solid rgba(25, 142, 206, .5); outline-offset: 2px; }
.mm-plan__blatt { position: relative; width: 100%; }
.mm-plan__blatt img { display: block; width: 100%; height: auto; }
.mm-plan[data-setzen] .mm-plan__blatt, .mm-plan--setzen .mm-plan__blatt { cursor: crosshair; }
.mm-marker { position: absolute; display: flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 5px; transform: translate(-50%, -50%); border: 2.5px solid #fff; border-radius: 999px; background: var(--mm-farbe, #c62828); color: #fff; font-size: .82rem; font-weight: 700; line-height: 1; text-decoration: none; box-shadow: 0 1px 4px rgba(0, 0, 0, .45); }
.mm-marker[hidden] { display: none; }
a.mm-marker:hover, a.mm-marker:focus-visible { z-index: 2; outline: 3px solid rgba(25, 142, 206, .7); outline-offset: 2px; }
/* Tippfläche der Marker: 44 Pixel, ohne dass der sichtbare Punkt den Plan verdeckt */
a.mm-marker::after { content: ""; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); border-radius: 999px; }
.mm-marker--neu { background: var(--eit-primaer-dunkel); pointer-events: none; }
.mm-plantabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.mm-plantabs a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 16px; border: 1.5px solid var(--linie); border-radius: 999px; color: var(--text); font-weight: 600; text-decoration: none; background: var(--weiss); }
.mm-plantabs a[aria-current="page"] { border-color: var(--eit-primaer-dunkel); background: var(--eit-hell); color: var(--eit-primaer-dunkel); }
.mm-plantabs small { font-weight: 400; color: var(--text-weich); }
.mm-planfilter { max-width: 520px; margin: 12px 0; }

.mm-verlauf { margin: 0 0 14px; padding: 0; list-style: none; }
.mm-verlauf__eintrag { padding: 8px 0 8px 12px; border-left: 3px solid var(--linie); }
.mm-verlauf__eintrag + .mm-verlauf__eintrag { margin-top: 6px; }
.mm-verlauf__eintrag--kommentar { border-left-color: var(--eit-primaer); }
.mm-verlauf__eintrag.mm-intern { padding-right: 10px; border-radius: 0 var(--radius-klein) var(--radius-klein) 0; border-left-color: #d9a441; }
.mm-verlauf__kopf { margin: 0; overflow-wrap: anywhere; }
.mm-verlauf__wer { display: block; font-size: .86rem; color: var(--text-weich); }
.mm-verlauf__eintrag .bt-text { margin: 4px 0 0; overflow-wrap: anywhere; }

@media (min-width: 560px) {
    .mm-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mm-wahlreihe { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .mm-wahlreihe--status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 700px) {
    .mm-ort { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mm-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mm-filter .feld:first-child, .mm-filter .bt-filter__knoepfe { grid-column: 1 / -1; }
    .mm-wahlreihe--status { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    .mm-fotos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .mm-filter { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .mm-filter .feld:first-child { grid-column: span 2; }
    .mm-filter .bt-filter__knoepfe { grid-column: auto; }
}

/* ---------- Vergabeempfehlung (Version 261011.2130) ---------- */
.verwaltung .feld__titel { margin: 0; font-size: .92rem; font-weight: 650; }
.ve-wahlreihe { grid-template-columns: 1fr; }
.ve-bieter > legend { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ve-bieter__stand { font-size: .88rem; font-weight: 400; color: var(--text-weich); }
.ve-raster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.ve-raster .feld { min-width: 0; }
.ve-fragen, .ve-punkte { display: grid; gap: 8px; }
.ve-frage { display: grid; gap: 4px 12px; padding: 8px 0; border-top: 1px solid var(--linie); }
.ve-frage[hidden] { display: none; }
.ve-frage__text small, .ve-punkte label small { display: block; font-weight: 400; color: var(--text-weich); }
.ve-frage__wahl { display: flex; flex-wrap: wrap; gap: 6px; }
.ve-antwort { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); font-weight: 600; cursor: pointer; }
.ve-antwort input { width: 20px; height: 20px; margin: 0; accent-color: var(--eit-primaer-dunkel); }
.ve-antwort:has(input:checked) { border-color: var(--eit-primaer-dunkel); background: var(--eit-hell); }
.ve-antwort:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(25, 142, 206, .25); }
.ve-punkte__raster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: end; }
.ve-punkte__raster .feld { min-width: 0; }
.ve-texte { display: grid; gap: 12px; margin-top: 8px; }
.ve-kriterien { display: grid; gap: 10px; }
.ve-kriterium { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 12px; padding: 10px 12px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--eit-hell); }
.ve-kriterium .feld { min-width: 0; }
.ve-kriterium__weg { min-height: 44px; padding: 0; align-self: end; }
.ve-tabelle .ve-empfohlen th, .ve-tabelle .ve-empfohlen td { background: #eef8f2; }
.ve-tabelle .ve-ausgeschlossen th, .ve-tabelle .ve-ausgeschlossen td { color: var(--text-weich); }
.ve-matrix th[scope="col"]:nth-child(n+3), .ve-matrix td:nth-child(n+3) { text-align: center; }
.ve-matrix td:nth-child(2) { white-space: nowrap; }
.ve-matrix tfoot th, .ve-matrix tfoot td { border-top: 2px solid var(--linie); background: var(--eit-hell); }
.ve-errechnet { text-decoration: none; color: var(--eit-primaer-dunkel); font-weight: 700; }
.ve-einzeln { border-top: 1px solid var(--linie); margin-top: 0; }
.ve-einzeln > summary { color: var(--text); }
.ve-einzeln .angaben { margin: 6px 0; }
@media (min-width: 620px) {
    .ve-wahlreihe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ve-frage { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .ve-punkte__raster { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ve-kriterium { grid-template-columns: minmax(0, 2fr) minmax(0, .8fr) minmax(0, 1.6fr) auto; align-items: end; }
}
@media (min-width: 1100px) {
    .ve-raster { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ve-filter { grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) auto; }
    .ve-filter .feld:first-child, .ve-filter .bt-filter__knoepfe { grid-column: auto; }
}

/* ---------- Abnahme (Version 261011.2146) ---------- */
.ab-nummer { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; }
.ab-punkte { display: grid; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
.ab-punkt { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); }
.ab-punkt__nummer { display: flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 5px; border-radius: 999px; background: var(--mm-farbe, #c62828); color: #fff; font-size: .82rem; font-weight: 700; }
.ab-punkt__text { min-width: 0; overflow-wrap: break-word; }
.ab-punkt__aktionen { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0 18px; }
.ab-punkt__text .firma-ort { display: block; }
/* Verknüpfung mit dem Mängelmanagement (Version 261013.1652) */
.ab-punkt__mangel { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; font-size: .92rem; color: var(--text-weich); }
.ab-uebernahme { margin: 0 0 14px; }
.ab-uebernahme .vw-hilfe { margin: 8px 0 0; }
.ab-maengelwahl { display: grid; gap: 4px; max-height: 60vh; overflow-y: auto; }
.mm-art { display: inline-block; padding: .15em .7em; border-radius: 999px; font-size: .82rem; font-weight: 650; white-space: nowrap; background: rgba(18, 112, 168, .12); color: var(--eit-primaer-dunkel); }
.ab-punkt__weg { min-height: 44px; }
.ab-foto__text { margin: 4px 0 0; font-size: .88rem; overflow-wrap: anywhere; }
.ab-foto__klappe { margin-top: 0; }
.ab-foto__klappe .formular { display: grid; gap: 8px; margin-bottom: 6px; }
.ab-neu { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: end; }
.ab-neu .feld { min-width: 0; }
.ab-einordnung { border-left: 4px solid var(--eit-primaer-dunkel); }
.ab-teilnehmer { display: grid; gap: 10px; }
.ab-teilnehmer__zeile { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 12px; padding: 10px 12px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--eit-hell); }
.ab-teilnehmer__zeile .feld { min-width: 0; }
.ab-ergebnis { grid-template-columns: 1fr; }
.ab-unterschrift { display: grid; gap: 10px; padding: 12px 0; border-top: 1px solid var(--linie); }
.ab-unterschrift:first-of-type { border-top: 0; padding-top: 0; }
.ab-unterschrift .pm-zeichnen__flaeche { max-width: 100%; touch-action: none; }
.ab-datei { margin-top: 0; }
.ab-unterschriften { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-bottom: 12px; }
.ab-unterschriften > div { min-width: 0; }
.ab-unterschriften p { margin: 0 0 4px; }
@media (min-width: 620px) {
    .ab-neu { grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr); }
    .ab-punkt { grid-template-columns: auto minmax(0, 1fr) auto; }
    .ab-punkt__aktionen { grid-column: auto; justify-content: flex-end; }
    .ab-teilnehmer__zeile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ab-unterschriften { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Besprechungsprotokoll (Version 261013.1744) ---------- */
.bp-anlegen { margin: 0 0 18px; }
.bp-teilnehmer { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--linie); }
.bp-teilnehmer li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px 14px; padding: 8px 0; border-bottom: 1px solid var(--linie); }
.bp-teilnehmer__wer { min-width: 0; overflow-wrap: anywhere; }
.bp-teilnehmer__wer .firma-ort { display: block; }
.bp-teilnehmer__da { font-size: .92rem; font-weight: 650; color: var(--text-weich); }
.bp-da--anwesend { color: #17603c; }
.bp-da--teilweise { color: #7a5200; }
.bp-punkte { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.bp-punkt { padding: 10px 12px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); }
.bp-punkt--unter { margin-left: 14px; }
.bp-punkt--neu .bp-punkt__text { font-weight: 700; }
.bp-punkt__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 4px; font-size: .92rem; color: var(--text-weich); }
.bp-punkt__nummer { font-weight: 700; font-size: 1rem; color: var(--text); font-variant-numeric: tabular-nums; }
.bp-punkt__text { margin: 0 0 6px; overflow-wrap: anywhere; }
.bp-punkt__angaben { display: flex; flex-wrap: wrap; gap: 2px 18px; margin: 0; font-size: .92rem; color: var(--text-weich); }
.bp-punkt__angaben s { opacity: .75; }
.bp-formular { max-width: none; }
.bp-zeilen { display: grid; gap: 10px; }
.bp-zeile { min-width: 0; margin: 0; padding: 10px 12px; border: 1px solid var(--linie); border-radius: var(--radius-klein); background: var(--eit-hell); }
.bp-zeile__felder, .bp-punktfelder { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px 14px; }
.bp-zeile__felder .feld, .bp-punktfelder .feld { min-width: 0; }
.bp-zeile__fuss { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 18px; }
.bp-zeile__knoepfe { display: flex; flex-wrap: wrap; gap: 0 18px; }
.bp-knopf { min-height: 44px; }
.bp-gewerke > summary { display: flex; align-items: center; min-height: 44px; font-weight: 700; cursor: pointer; }
.bp-gewerk { min-width: 0; margin: 0; padding: 4px 12px 8px; border: 1px solid var(--linie); border-radius: var(--radius-klein); }
.bp-gewerk legend { padding: 0 4px; font-weight: 650; }
.bp-gewerk__unter { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 14px; padding-left: 10px; }
.bp-eingabe { display: grid; gap: 10px; min-width: 0; padding: 12px; border: 1px solid var(--linie); border-left: 4px solid var(--eit-grau); border-radius: var(--radius-klein); background: var(--weiss); }
.bp-eingabe--neu { border-left-color: var(--eit-primaer-dunkel); }
.bp-eingabe--leer { background: var(--eit-hell); }
.bp-eingabe--unter { margin-left: 14px; }
.bp-eingabe--weg { opacity: .55; }
.bp-eingabe__titel { margin: 0; font-size: 1.05rem; }
.bp-eingabe__titel small { display: block; font-size: .88rem; font-weight: 400; color: var(--text-weich); }
.bp-verweise { display: flex; flex-wrap: wrap; gap: 0 18px; min-width: 0; margin: 0; padding: 0; border: 0; }
.bp-verweise legend { padding: 0; font-size: .92rem; font-weight: 650; }
.bp-frist--ueberfaellig { border-color: var(--fehler); color: var(--fehler); }
.bp-speichern { align-items: center; }
@media (min-width: 620px) {
    .bp-teilnehmer li { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .bp-zeile__felder, .bp-punktfelder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bp-gewerk__unter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
    .bp-zeile__felder { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bp-punktfelder { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .bp-gewerk__unter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Firmenlogo (Version 261013.1909) ---------- */
.firma-logo { display: inline-block; max-width: 72px; max-height: 32px; margin-right: 8px; vertical-align: middle; object-fit: contain; }
/* ---------- Reiter der Firmenverwaltung (Version 261013.1948) ---------- */
/* Bedienfläche mindestens 44 Pixel hoch (bisher 43). */
.reiter a { display: inline-flex; align-items: center; min-height: 44px; }
.reiter--klein a { font-weight: 500; }

/* ---------- Auswahl durch Eingabe (Version 261013.1957) ---------- */
/* Volle Breite, auch neben einem Knopf in einer Zeile (dort rückt der Knopf darunter, wenn es eng wird). */
.auswahl { position: relative; flex: 1 1 240px; width: 100%; min-width: 0; }
.auswahl__zeile { display: flex; gap: 6px; align-items: stretch; }
.auswahl__eingabe { flex: 1 1 auto; min-width: 0; width: 100%; }
.auswahl__leeren { flex: none; width: 44px; min-height: 44px; border: 1.5px solid var(--linie); border-radius: var(--radius-klein); background: var(--weiss); color: var(--text-weich); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.auswahl__leeren:hover, .auswahl__leeren:focus-visible { border-color: var(--eit-primaer-dunkel); color: var(--eit-primaer-dunkel); }
.auswahl__liste { position: absolute; z-index: 30; left: 0; right: 0; top: 100%; max-height: min(50vh, 340px); margin: 4px 0 0; padding: 4px; overflow-y: auto; list-style: none; border: 1.5px solid var(--eit-primaer-dunkel); border-radius: var(--radius-klein); background: var(--weiss); box-shadow: 0 8px 24px rgba(11, 37, 54, .18); }
.auswahl__liste[hidden] { display: none; }
.auswahl__eintrag { min-height: 44px; padding: 10px 12px; border-radius: 6px; overflow-wrap: anywhere; cursor: pointer; }
.auswahl__eintrag small { display: block; font-size: .85rem; color: var(--text-weich); }
.auswahl__eintrag:hover, .auswahl__eintrag[aria-selected="true"] { background: var(--eit-hell); outline: 2px solid var(--eit-primaer-dunkel); outline-offset: -2px; }
.auswahl__hinweis { display: block; min-height: 1.2em; margin-top: 2px; font-size: .88rem; color: var(--text-weich); }
.auswahl__hinweis:empty { display: none; }
/* Firmenformular: der Haken inaktiv gehört zur Art darüber (Version 261014.0705) */
.firma-inaktiv { padding-left: 36px; }
/* Marken (aktiv, inaktiv, auch Auftraggeber) nicht mitten im Wort trennen */
.vw-tabelle .vw-marke { hyphens: none; }
/* Firma löschen: zweite Rückfrage (Version 261014.0734) */
.firma-loeschen__angaben { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; margin: 0 0 16px; }
.firma-loeschen__angaben dt { font-weight: 650; }
.firma-loeschen__angaben dd { margin: 0; overflow-wrap: anywhere; }
.firma-loeschen .vw-aktionen form { margin: 0; }
/* Einstellungen (Version 261014.0759) */
.einstellungen-sprung { margin-bottom: 18px; }
.einstellungen-info { margin-bottom: 14px; padding: 12px 14px; border-radius: 10px; background: var(--eit-hell, #f3f8fc); overflow-wrap: anywhere; }
.einstellungen-info p { margin: 0 0 4px; }
.einstellungen-logo { margin: 6px 0; padding: 12px; border: 1px solid var(--linie, #d5dde4); border-radius: 10px; background: #fff; display: inline-block; max-width: 100%; }
.einstellungen-logo img { display: block; max-width: 100%; height: auto; max-height: 64px; }
.einstellungen-vorschau { display: block; margin-top: 6px; padding: 8px 10px; border-left: 3px solid var(--eit-primaer, #198ece); background: #f6f9fb; font-size: .85rem; color: #4a5866; overflow-wrap: anywhere; }
.einstellungen-vorschau span { font-weight: 650; }
.pflicht { color: var(--fehler); }
/* Logo im Portal-Kopf: Höhe fest, Breite nach dem Seitenverhältnis (590 × 158). */
.vw-kopf__marke img.vw-kopf__logo { display: block; width: auto; height: 36px; border-radius: 0; background: none; }
@media (min-width: 600px) { .vw-kopf__marke img.vw-kopf__logo { height: 44px; } }
