/* Zeiten & Urlaub (zeiten.js) – Farben aus den Variablen der Seite (--ink, --line, --red, --good …), Präfix zt- */
.zt-seite, .zt-blatt { --zt-gruen: var(--good, #1f7a3f); --zt-hell: #faf7f4; --zt-gelb: #fdf1c4; --zt-gelb-ink: #6f5300; }
/* Breite: Listen, Tabellen und Übersichten wachsen mit dem Fenster mit; nur reine Formulare haben eine Lesebreite */
.zt-form, .zt-heft { max-width: 1100px; }
.zt-laden { color: var(--muted); padding: 12px 0; }
.zt-fehler { color: var(--bad, #c62828); }
.zt-karte.zt-fehler { border-color: var(--bad, #c62828); background: #fff5f5; }
.zt-ok { color: var(--zt-gruen); font-weight: 600; }
.zt-minus { color: var(--bad, #c62828); }
.zt-plus { color: var(--zt-gruen); }
.zt-grau { color: var(--muted); }
.zt-druckkopf, .zt-unterschriften, .zt-drucktext { display: none; }

/* Reiter */
.zt-reiter { display: flex; gap: 2px; border-bottom: 1px solid var(--line); overflow-x: auto; margin: 0 0 16px; scrollbar-width: thin; }
.zt-reiter button { border: 0; background: none; padding: 10px 14px; font: inherit; font-weight: 700; color: var(--muted); border-bottom: 3px solid transparent; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.zt-reiter button.an { color: var(--ink); border-bottom-color: var(--red); }
.zt-reiter button:hover { color: var(--ink); }
.zt-zahl { background: var(--red); color: #fff; border-radius: 9px; padding: 0 6px; font-size: 12px; }

/* Grundbausteine */
.zt-karte { background: var(--card, #fff); border: 1px solid var(--line); border-radius: var(--r, 12px); padding: 16px; margin-bottom: 14px; }
.zt-karte h3 { margin: 0 0 10px; font-size: 17px; }
.zt-k-kopf { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.zt-h2 { font-size: 20px; margin: 6px 0 8px; } .zt-h2 small { font-weight: 400; color: var(--muted); font-size: 15px; }
.zt-h3 { font-size: 16px; margin: 20px 0 8px; }
.zt-leiste { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 4px 0 12px; }
.zt-person { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
.zt-person select, .zt-tagnav input[type=date], .zt-form input, .zt-form select, .zt-form textarea, .zt-heft textarea, .zt-vg-suche, .zt-karte input[type=text] {
  font: inherit; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); min-width: 0; }
.zt-person select { font-weight: 600; color: var(--ink); max-width: 260px; }
.zt-tagnav { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.zt-tagnav .btn { padding: 8px 14px; }
.zt-navtext { min-width: 120px; text-align: center; }
.zt-knopfreihe { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 4px 0 14px; }
.zt-leer { color: var(--muted); padding: 16px; text-align: center; background: var(--zt-hell); border: 1px dashed var(--line); border-radius: 12px; margin-bottom: 12px; }
.zt-badge { display: inline-block; border-radius: 20px; padding: 2px 10px; font-size: 12.5px; font-weight: 700; background: #efebe6; color: var(--ink); white-space: nowrap; }
.zt-b-feiertag { background: #e8e1f5; color: #4b3a78; }
.zt-b-urlaub { background: #dff1e5; color: #1f5f34; }
.zt-b-unbezahlt { background: #eef0e2; color: #5a5f22; }
.zt-b-krank, .zt-b-abwesend { background: #fde3e4; color: #9b1c23; }
.zt-b-schule, .zt-b-fortbildung { background: #e3ecf5; color: #2f557a; }
.zt-b-zu { background: #ece8e2; color: var(--ink); }
.zt-b-fza { background: #e6f0ea; color: #1f5f34; margin-left: 4px; }
.zt-muster tr.zt-jetzt td { font-weight: 700; background: #fbf8f3; }
.zt-soll label.zt-ab { width: 160px; }
.zt-buchung summary { cursor: pointer; display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.zt-buchung[open] summary { margin-bottom: 10px; }
.zt-b-ok { background: #dff1e5; color: #1f5f34; }
.zt-b-st-beantragt { background: var(--zt-gelb); color: var(--zt-gelb-ink); }
.zt-b-st-genehmigt { background: #dff1e5; color: #1f5f34; }
.zt-b-st-abgelehnt { background: #fde3e4; color: #9b1c23; }
.zt-b-st-storniert { background: #ece8e2; color: var(--muted); }
.zt-hinweis-gelb { background: var(--zt-gelb); color: var(--zt-gelb-ink); border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; font-weight: 600; }
.zt-link { font-size: inherit; }
.zt-klick { cursor: pointer; } .zt-klick:hover td { background: #f6f2ec; }

/* Tätigkeiten */
.zt-tt { display: inline-block; border-radius: 6px; padding: 1px 8px; font-size: 13px; font-weight: 700; white-space: nowrap; }
.zt-tt-montage { --tt: #fde3e4; --tt-ink: #a1222a; } .zt-tt-service { --tt: #fdebd9; --tt-ink: #9a4a0b; } .zt-tt-fahrt { --tt: #e3ecf5; --tt-ink: #2f557a; }
.zt-tt-werkstatt { --tt: #f1e6d4; --tt-ink: #6b5b3e; } .zt-tt-buero { --tt: #ebe8e4; --tt-ink: #3b3b3b; } .zt-tt-sonstiges { --tt: #fdf1c4; --tt-ink: #6f5300; }
.zt-tt { background: var(--tt, #eee); color: var(--tt-ink, #333); }
.zt-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 10px; }
.zt-chip { position: relative; display: inline-flex; cursor: pointer; }
.zt-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.zt-chip span { border: 2px solid var(--line); background: #fff; border-radius: 22px; padding: 8px 14px; font-weight: 700; font-size: 14.5px; color: var(--ink); min-height: 44px; display: inline-flex; align-items: center; }
.zt-chip input:checked + span { background: var(--tt, var(--ink)); color: var(--tt-ink, #fff); border-color: var(--tt-ink, var(--ink)); }
.zt-chip input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 1px; }
.zt-personen .zt-chip span { --tt: var(--ink); --tt-ink: #fff; }
.zt-personen .zt-chip input:checked + span { background: var(--ink); color: #fff; border-color: var(--ink); }
.zt-chip-b { border: 1px solid var(--line); background: #fff; border-radius: 20px; padding: 7px 12px; font: inherit; font-size: 14px; cursor: pointer; min-height: 40px; }
.zt-chip-b.an { background: var(--ink); color: #fff; border-color: var(--ink); }
.zt-l { display: block; font-size: 13px; font-weight: 700; color: var(--muted); margin: 10px 0 4px; text-transform: uppercase; letter-spacing: .04em; }
.zt-l small { text-transform: none; letter-spacing: 0; font-weight: 400; }

/* Stoppuhr */
.zt-uhr { border-width: 2px; }
.zt-uhr.laeuft { border-color: var(--zt-gruen); background: #f4fbf6; }
.zt-uhr.laeuft.pause { border-color: var(--orange); background: #fff8f0; }
.zt-uhr-kopf { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.zt-uhr-kopf b { font-size: 17px; }
.zt-gross { display: block; width: 100%; min-height: 68px; border: 0; border-radius: 14px; font: inherit; font-size: 21px; font-weight: 800; color: #fff; cursor: pointer; letter-spacing: .01em; box-shadow: 0 3px 0 rgba(0,0,0,.15); }
.zt-gross:active { transform: translateY(2px); box-shadow: 0 1px 0 rgba(0,0,0,.15); }
.zt-gross[disabled] { opacity: .6; cursor: default; }
.zt-los { background: var(--zt-gruen); }
.zt-stop { background: var(--red); }
.zt-uhr-wahl { margin-top: 12px; }
.zt-uhr-anzeige { display: grid; gap: 2px; margin: 0 0 12px; }
.zt-uhr-zeit { font-size: 44px; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1.05; letter-spacing: -.01em; }
.zt-uhr.pause .zt-uhr-zeit { color: var(--orange); }
.zt-uhr-anzeige small { color: var(--muted); font-size: 14px; }
.zt-uhr-knoepfe { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.zt-uhr-knoepfe .btn { min-height: 46px; flex: 1 1 auto; }
.zt-uhr-knoepfe .zt-klein { flex: 0 0 auto; color: var(--muted); }
.zt-uhr-fremd { background: #f4fbf6; border-color: var(--zt-gruen); }
.zt-inline { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; font-weight: 600; }
.zt-inline input { width: auto; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }

/* Tag */
.zt-taginfo { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; margin: 0 0 12px; color: var(--muted); }
.zt-taginfo b { color: var(--ink); }
.zt-vorschlaege { background: #fbf8f3; }
.zt-vs { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); flex-wrap: wrap; }
.zt-vs:first-of-type { border-top: 0; }
.zt-vs small { display: block; color: var(--muted); }
.zt-vs-schon { color: var(--zt-gruen); font-weight: 700; font-size: 14px; }
.zt-liste { display: grid; gap: 8px; margin-bottom: 12px; }
.zt-eintrag { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 12px; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.zt-e-zeit b { font-size: 17px; font-variant-numeric: tabular-nums; } .zt-e-zeit small { display: block; color: var(--muted); }
.zt-e-was { min-width: 0; } .zt-e-vg { font-weight: 600; overflow-wrap: anywhere; }
.zt-e-notiz { margin-top: 4px; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; }
.zt-e-q { display: block; color: var(--muted); margin-top: 3px; }
.zt-e-akt { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.zt-weg { color: var(--bad, #c62828); }
.zt-summe { text-align: right; padding: 4px 6px; color: var(--muted); } .zt-summe b { color: var(--ink); }

/* Woche */
.zt-woche .zt-k-kopf span { color: var(--muted); }
.zt-wtage { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.zt-wtag { border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 6px 4px; font: inherit; cursor: pointer; display: grid; gap: 4px; justify-items: center; color: var(--ink); min-width: 0; }
.zt-wtag span:first-child { font-size: 12px; color: var(--muted); white-space: nowrap; }
.zt-wtag b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.zt-wtag.we { background: var(--zt-hell); }
.zt-wtag.heute { border-color: var(--orange); }
.zt-wtag.an { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.zt-balken { position: relative; width: 22px; height: 54px; background: #f1ede8; border-radius: 5px; overflow: hidden; }
.zt-balken i { position: absolute; left: 0; right: 0; bottom: 0; background: var(--zt-gruen); border-radius: 5px 5px 0 0; }
.zt-balken em { position: absolute; left: -2px; right: -2px; height: 2px; background: var(--ink); }

/* Formulare */
.zt-form h3 small { font-weight: 400; color: var(--muted); }
.zt-reihe { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-bottom: 6px; }
.zt-reihe label { display: grid; gap: 4px; font-size: 13px; font-weight: 700; color: var(--muted); flex: 1 1 140px; }
.zt-reihe label input, .zt-reihe label select { width: 100%; }
.zt-block { display: grid; gap: 4px; font-size: 13px; font-weight: 700; color: var(--muted); margin: 10px 0; }
.zt-block small { font-weight: 400; }
.zt-block textarea, .zt-block input { width: 100%; font-weight: 400; }
.zt-check { display: flex; align-items: center; gap: 8px; font-weight: 600; margin: 6px 0; cursor: pointer; }
.zt-check input { width: 20px; height: 20px; flex: none; }
.zt-reihe label.zt-check { display: flex; flex: 0 1 auto; font-size: 15px; color: var(--ink); }
.zt-reihe label.zt-check input, .zt-form .zt-check input { width: 20px; padding: 0; }
.zt-checks { align-items: center; }
.zt-pausen { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.zt-pausen .zt-inline input { width: 80px; }
.zt-form-fuss { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: flex-end; margin-top: 12px; }
.zt-dauer { margin-right: auto; font-weight: 800; font-size: 17px; }
.zt-personen { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px 4px; display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.zt-personen legend { font-size: 13px; font-weight: 700; color: var(--muted); padding: 0 4px; }

/* Vorgang-Suche */
.zt-vg { position: relative; max-width: 560px; }
.zt-vg-suche { width: 100%; }
.zt-vg-gewaehlt { display: flex; align-items: center; gap: 8px; background: #f3efeb; border-radius: 10px; padding: 8px 10px; font-weight: 600; }
.zt-vg-gewaehlt span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.zt-vg-gewaehlt button { border: 0; background: #e2dbd2; border-radius: 50%; width: 30px; height: 30px; cursor: pointer; flex: none; }
.zt-vg-liste { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px rgba(0,0,0,.14); padding: 4px; max-height: 320px; overflow: auto; }
.zt-vg-liste button { display: grid; width: 100%; text-align: left; border: 0; background: none; border-radius: 8px; padding: 9px 10px; cursor: pointer; font: inherit; color: var(--ink); }
.zt-vg-liste button:hover, .zt-vg-liste button:focus { background: #f3efeb; }
.zt-vg-liste small { color: var(--muted); }
.zt-vg-leer { padding: 10px; color: var(--muted); }

/* Kacheln */
.zt-kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0 0 12px; }
.zt-kachel { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; display: grid; gap: 2px; align-content: start; }
.zt-kachel span { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.zt-kachel b { font-size: 24px; font-variant-numeric: tabular-nums; }
.zt-kachel small { color: var(--muted); font-size: 12.5px; }
.zt-k-rest { background: var(--ink); border-color: var(--ink); color: #fff; }
.zt-k-rest span, .zt-k-rest small { color: #ddd6cc; }
.zt-k-rest .zt-minus { color: #ff9a9f; }
.zt-umschalter { display: inline-flex; background: #f3efeb; border-radius: 10px; padding: 3px; gap: 2px; }
.zt-umschalter button { border: 0; background: none; border-radius: 8px; padding: 7px 14px; font: inherit; font-weight: 700; color: var(--muted); cursor: pointer; min-height: 38px; }
.zt-umschalter button.an { background: #fff; color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.14); }
.zt-abwzeile { color: var(--muted); margin: 0 0 10px; }

/* Tabellen */
.zt-tabelle-rahmen { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; margin-bottom: 12px; }
.zt-tabelle { width: 100%; border-collapse: collapse; font-size: 14px; }
.zt-tabelle th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 9px 10px; border-bottom: 1px solid var(--line); background: var(--zt-hell); white-space: nowrap; }
.zt-tabelle td { padding: 7px 10px; border-bottom: 1px solid #f0ece6; vertical-align: top; font-variant-numeric: tabular-nums; }
.zt-tabelle tfoot td { font-weight: 800; border-top: 2px solid var(--line); border-bottom: 0; }
.zt-tabelle tr.zt-we td { background: #faf8f5; color: var(--muted); }
.zt-tabelle tr.zt-ft td { background: #f6f3fb; }
.zt-tabelle tr.zt-grau td { color: var(--muted); }
.zt-monat tbody tr { cursor: pointer; } .zt-monat tbody tr:hover td { background: #f6f2ec; }
.zt-tabelle input { width: 100%; max-width: 160px; }
.zt-taetsumme { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 12px; }

/* Urlaub */
.zt-antrag { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.zt-antrag small { display: block; color: var(--muted); margin-top: 3px; }
.zt-offen { border-color: var(--zt-gelb-ink); background: #fffcf0; }
.zt-offen .zt-antrag { margin-top: 8px; }
.zt-st-abgelehnt, .zt-st-storniert { opacity: .75; }

/* Team, Einstellungen */
.zt-team td small { color: var(--muted); }
.zt-soll { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-bottom: 6px; }
.zt-soll label { display: grid; gap: 3px; font-size: 13px; font-weight: 700; color: var(--muted); width: 70px; }
.zt-soll input { width: 100%; text-align: center; }
.zt-urlaubseinst { margin-bottom: 4px; }
.zt-urlaubseinst input { padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.zt-papierkorb { margin: 16px 0; }
.zt-papierkorb summary { cursor: pointer; color: var(--muted); font-weight: 600; padding: 6px 0; }
.zt-pk-liste { list-style: none; padding: 0; margin: 6px 0; display: grid; gap: 6px; }
.zt-pk-liste li { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; flex-wrap: wrap; }
.zt-pk-liste small { display: block; color: var(--muted); }

/* Fahrzeug-Abgleich */
.zt-fz-start { margin: 8px 0 14px; }
.zt-fz { margin-top: 10px; }
.zt-fz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.zt-fz-grid h4 { margin: 4px 0 6px; }
.zt-fz-stopps { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: 14px; }
.zt-fz-stopps small { color: var(--muted); }
.zt-fz-vs { margin-top: 12px; background: var(--zt-gelb); border-radius: 10px; padding: 10px 14px; }
.zt-fz-vs .zt-vs { border-color: rgba(111,83,0,.2); }

/* Berichtsheft */
.zt-heft { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.zt-heft-kopf h2 { margin: 0 0 6px; font-size: 20px; }
.zt-heft-daten { display: flex; flex-wrap: wrap; gap: 4px 18px; margin-bottom: 8px; }
.zt-heft-tab td:first-child { width: 110px; white-space: nowrap; }
.zt-heft-tab td:last-child { width: 60px; }
.zt-heft textarea { width: 100%; resize: vertical; font-weight: 400; }
.zt-wochenliste { display: flex; flex-wrap: wrap; gap: 6px; }

/* Meldung */
.zt-toast { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 95; max-width: min(640px, calc(100% - 24px)); display: flex; align-items: center; gap: 12px;
  background: var(--ink); color: #fff; border-radius: 12px; padding: 12px 14px 12px 18px; box-shadow: 0 12px 30px rgba(0,0,0,.25); font-weight: 600; }
.zt-toast-fehler { background: var(--bad, #c62828); }
.zt-toast-warn { background: #8a5a00; }
.zt-toast-knopf { border: 0; background: #fff; color: var(--ink); border-radius: 8px; padding: 7px 12px; font: inherit; font-weight: 800; cursor: pointer; white-space: nowrap; }
.zt-toast-zu { border: 0; background: none; color: #fff; opacity: .7; cursor: pointer; font-size: 16px; padding: 4px; }

/* Handy */
@media (max-width: 860px) {
  body.gerust .zt-toast { bottom: calc(78px + env(safe-area-inset-bottom)); }
}
@media (max-width: 700px) {
  .zt-person select, .zt-tagnav input, .zt-form input, .zt-form select, .zt-form textarea, .zt-heft textarea, .zt-karte input[type=text], .zt-vg-suche { font-size: 16px; }   /* iPhone zoomt sonst */
  .zt-karte { padding: 14px 12px; }
  .zt > .page-title { display: none; }   /* der Kopf des Gerüsts zeigt „Zeiten & Urlaub“ schon – die Stoppuhr rückt nach oben */
  .zt-reiter { margin-top: -6px; }
  .zt-eintrag { grid-template-columns: minmax(0, 1fr) auto; }
  .zt-e-was { grid-column: 1 / -1; grid-row: 2; }
  .zt-e-akt { grid-column: 2; grid-row: 1; }
  .zt-reihe label { flex: 1 1 calc(50% - 7px); }
  .zt-reihe label:first-child { flex-basis: 100%; }
  .zt-uhr-zeit { font-size: 40px; }
  .zt-wtage { gap: 3px; }
  .zt-wtag { padding: 5px 1px; }
  .zt-wtag span:first-child { font-size: 10.5px; }
  .zt-wtag b { font-size: 11.5px; }
  .zt-fz-grid { grid-template-columns: 1fr; }
  .zt-kacheln { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zt-kachel b { font-size: 20px; }
  .zt-tagnav { width: 100%; } .zt-tagnav input[type=date] { flex: 1; }
  .zt-person { width: 100%; } .zt-person select { flex: 1; max-width: none; }
  .zt-form-fuss .btn { flex: 1 1 auto; min-height: 46px; }
  .zt-toast { flex-wrap: wrap; }
  .zt-leiste .zt-knopfreihe { margin: 0; }
  .zt-leiste .zt-knopfreihe .btn { padding: 8px 10px; font-size: 13.5px; }
  .zt-tabelle { font-size: 13px; }
  .zt-tabelle th, .zt-tabelle td { padding: 6px 6px; }
  .zt-monat th:nth-child(3), .zt-monat td:nth-child(3) { display: none; }   /* Pause – steht im Tag selbst */
  .zt-heft { padding: 12px; }
  .zt-heft-tab thead { display: none; }
  .zt-heft-tab, .zt-heft-tab tbody { display: block; }
  .zt-heft-tab tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
  .zt-heft-tab td { border: 0; padding: 0; width: auto !important; }
  .zt-heft-tab td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .zt-heft-tab td:first-child br { display: none; }
  .zt-heft-tab td:first-child small { margin-left: 6px; }
  .zt-jahr th:nth-child(10), .zt-jahr td:nth-child(10) { display: none; }
}
.zt-monat td:first-child, .zt-jahr td:first-child { white-space: nowrap; }

/* Drucken (Monatsübersicht, Stundenkonto, Berichtsheft) */
/* zeiten.js legt das Blatt in #druck (wie das übrige Portal: im Druck ist nur #druck sichtbar, @page ohne Rand → Rand im Blatt) */
@media print {
  #druck .zt-blatt { display: block; padding: 11mm 13mm; font: 9pt/1.35 system-ui, "Segoe UI", Arial, sans-serif; color: #222; }
  .zt-blatt > header { display: flex; gap: 6mm; align-items: center; border-bottom: 2pt solid #e63741; padding-bottom: 3mm; margin-bottom: 4mm; }
  .zt-blatt > header img { height: 13mm; } .zt-blatt > header h1 { font-size: 16pt; margin: 0; } .zt-blatt > header span { color: #666; font-size: 9pt; }
  .zt-blatt .zt-h2 { font-size: 12pt; margin: 0 0 3mm; }
  .zt-blatt .zt-h3 { font-size: 10.5pt; margin: 4mm 0 2mm; }
  .zt-blatt .zt-kacheln { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2mm; margin-bottom: 3mm; }
  .zt-blatt .zt-kachel { border: .6pt solid #aaa; border-radius: 2mm; padding: 1.5mm 2.5mm; background: #fff; color: #222; display: grid; }
  .zt-blatt .zt-kachel span { font-size: 6.5pt; text-transform: uppercase; letter-spacing: .04em; color: #666; } .zt-blatt .zt-kachel b { font-size: 11pt; } .zt-blatt .zt-kachel small { font-size: 7pt; color: #666; }
  .zt-blatt .zt-tabelle-rahmen { overflow: visible; border: 0; }
  .zt-blatt .zt-tabelle { width: 100%; border-collapse: collapse; font-size: 8pt; }
  .zt-blatt .zt-tabelle th { text-align: left; font-size: 7pt; text-transform: uppercase; color: #666; border-bottom: .8pt solid #999; padding: 1mm 1.5mm; }
  .zt-blatt .zt-tabelle td { padding: .8mm 1.5mm; border-bottom: .4pt solid #ddd; vertical-align: top; }
  .zt-blatt .zt-tabelle tfoot td { font-weight: 700; border-top: .8pt solid #999; }
  .zt-blatt .zt-tabelle tr.zt-we td, .zt-blatt .zt-tabelle tr.zt-grau td { color: #777; }
  .zt-blatt tr { break-inside: avoid; }
  .zt-blatt .zt-badge, .zt-blatt .zt-tt { background: none !important; color: #222 !important; padding: 0; font-weight: 600; font-size: 8pt; }
  .zt-blatt .zt-minus { color: #b00020; }
  .zt-blatt .zt-unterschriften { display: flex; gap: 14mm; margin-top: 16mm; break-inside: avoid; }
  .zt-blatt .zt-unterschriften div { flex: 1; border-top: .8pt solid #333; padding-top: 1.5mm; font-size: 8pt; color: #444; }
  .zt-blatt .zt-taetsumme { display: flex; flex-wrap: wrap; gap: 1mm 6mm; }
  .zt-blatt-heft .zt-heft-kopf h2 { font-size: 13pt; margin: 0 0 2mm; }
  .zt-blatt-heft .zt-heft-daten { display: flex; flex-wrap: wrap; gap: 1mm 8mm; margin-bottom: 3mm; }
  .zt-blatt-heft .zt-drucktext { display: block; white-space: pre-wrap; min-height: 10mm; }
  .zt-blatt-heft .zt-block { display: block; font-weight: 700; margin: 4mm 0 0; }
  .zt-blatt-heft .zt-block .zt-drucktext { font-weight: 400; border-bottom: .4pt solid #ddd; padding-bottom: 1mm; }
}

/* Lohngruppen und Freigabe (HERO-Punkt 4) */
.zt-lohn input { max-width: 150px; min-height: 40px; }
.zt-lohn td:first-child input { max-width: 260px; }
.zt-lohn .btn.small { min-height: 40px; }
.zt-frei { color: #1f5f34; font-weight: 700; }
.zt-toast-warn { background: #fff4e0; color: #6b4a07; border: 1px solid #f1d9a3; }
@media (max-width: 720px) { .zt-lohn input, .zt-lohn td:first-child input { max-width: none; font-size: 16px; } }
