:root{--blau: #17456b;--blau-dunkel: #0f314e;--orange: #e8790c;--text: #1b2530;--text-schwach: #5a6772;--flaeche: #f2f4f6;--karte: #ffffff;--rand: #d4dae0;--fehler: #b3261e;--ok: #1a7f37;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--flaeche);color:var(--text);font-size:16px;line-height:1.45}#root{min-height:100dvh}h1,h2,h3{margin:0 0 12px;line-height:1.25}h1{font-size:22px}h2{font-size:18px}p{margin:0 0 10px}.karte{background:var(--karte);border:1px solid var(--rand);border-radius:var(--radius);padding:16px;margin-bottom:12px}button{font:inherit;cursor:pointer}a.knopf{text-decoration:none}.knopf{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;border:none;border-radius:var(--radius);background:var(--blau);color:#fff;font-size:16px;font-weight:600}.knopf:active{background:var(--blau-dunkel)}.knopf:disabled{opacity:.5;cursor:default}.knopf-sekundaer{background:#fff;color:var(--blau);border:2px solid var(--blau)}.knopf-sekundaer:active{background:var(--flaeche)}.knopf-gefahr{background:#fff;color:var(--fehler);border:2px solid var(--fehler)}.knopf-breit{width:100%}label.feld{display:block;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--text-schwach)}label.feld input,label.feld select,label.feld textarea{display:block;width:100%;margin-top:4px;min-height:48px;padding:10px 12px;font:inherit;color:var(--text);background:#fff;border:1px solid var(--rand);border-radius:var(--radius)}label.feld textarea{min-height:80px;resize:vertical}label.feld input:focus,label.feld select:focus,label.feld textarea:focus{outline:2px solid var(--blau);outline-offset:1px}.formular-zeile{display:grid;grid-template-columns:1fr;gap:0 12px}@media(min-width:640px){.formular-zeile{grid-template-columns:1fr 1fr}.formular-zeile-3{grid-template-columns:2fr 1fr 2fr}}.hinweis-fehler{background:#fdecea;border:1px solid var(--fehler);color:var(--fehler);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}.hinweis-ok{background:#e8f5ec;border:1px solid var(--ok);color:var(--ok);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}.status{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.status-begehung{background:#e7edf3;color:#33526d}.status-angebot{background:#fdf1e0;color:#8a5a10}.status-freigegeben{background:#e4f0fb;color:#1c5d99}.status-in-arbeit{background:#fdeadd;color:#a44d05}.status-fertig{background:#e8f5ec;color:#1a7f37}.status-abgerechnet{background:#ececec;color:#555}.kopfleiste{background:var(--blau);color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.kopfleiste .betrieb{font-weight:700;font-size:17px}.kopfleiste button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:8px;min-height:40px;padding:6px 14px;font-size:14px}.navigation{display:flex;background:#fff;border-bottom:1px solid var(--rand)}.navigation a{flex:1;text-align:center;padding:14px 8px;min-height:48px;text-decoration:none;color:var(--text-schwach);font-weight:600;border-bottom:3px solid transparent}.navigation a.aktiv{color:var(--blau);border-bottom-color:var(--orange)}.inhalt{max-width:860px;margin:0 auto;padding:16px 16px 48px}.eintrag{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--karte);border:1px solid var(--rand);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;min-height:56px;color:var(--text)}.eintrag:active{background:var(--flaeche)}.eintrag .titel{font-weight:700}.eintrag .unterzeile{color:var(--text-schwach);font-size:14px;margin-top:2px}.leer-hinweis{text-align:center;color:var(--text-schwach);padding:40px 16px}.anmelde-seite{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--flaeche)}.anmelde-karte{width:100%;max-width:420px}.logo-zeile{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:20px}.logo-zeile img{width:44px;height:44px}.logo-zeile span{font-size:26px;font-weight:800;color:var(--blau)}.kopf-mit-knopf{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kopf-mit-knopf h1{margin:0}.abschnitt-kopf{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:16px;min-height:56px;font-size:17px;color:var(--text);text-align:left}.abschnitt-kopf .titel{font-weight:700}.stamm-form{background:var(--flaeche);border-radius:var(--radius);padding:14px;margin-bottom:12px}.stamm-zeile{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--rand);padding:12px 4px;min-height:48px;font-size:15px;color:var(--text)}.stamm-zeile:active{background:var(--flaeche)}.stamm-zeile span:last-child{color:var(--text-schwach);white-space:nowrap}.einheit-chip{display:inline-flex;align-items:center;gap:6px;background:var(--flaeche);border:1px solid var(--rand);border-radius:999px;padding:8px 6px 8px 14px;font-weight:600}.einheit-chip button{background:none;border:none;color:var(--fehler);font-size:18px;padding:0 8px}.vorlage-zeile{display:grid;grid-template-columns:110px 1fr 90px 80px 36px;gap:6px;margin-bottom:6px}.vorlage-zeile input,.vorlage-zeile select{min-height:44px;padding:6px 8px;font:inherit;border:1px solid var(--rand);border-radius:8px;background:#fff;width:100%}.vorlage-zeile button{background:none;border:none;color:var(--fehler);font-size:20px}@media(max-width:640px){.vorlage-zeile{grid-template-columns:90px 1fr 70px 60px 30px}}.knopf-zeile{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.kalk-zeile{display:grid;grid-template-columns:1fr 110px 110px 110px 36px;gap:10px;align-items:center;border-bottom:1px solid var(--rand);padding:10px 0}.kalk-zeile label{font-size:12px;color:var(--text-schwach);font-weight:600}.kalk-zeile label input{display:block;width:100%;min-height:44px;padding:6px 8px;font:inherit;color:var(--text);border:1px solid var(--rand);border-radius:8px;margin-top:2px}.kalk-zeile input.ohne-preis{border-color:var(--fehler);background:#fdecea}.kalk-bezeichnung .titel{font-weight:700;font-size:15px}.kalk-bezeichnung .unterzeile{color:var(--text-schwach);font-size:13px}.kalk-summe{text-align:right;font-weight:700;white-space:nowrap}.kalk-loeschen{background:none;border:none;color:var(--fehler);font-size:22px;padding:4px}@media(max-width:700px){.kalk-zeile{grid-template-columns:1fr 1fr 36px}.kalk-bezeichnung{grid-column:1 / -1}.kalk-summe{grid-column:1 / 2;text-align:left;align-self:end;padding-bottom:12px}}.summen-zeile{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--rand)}.summen-brutto{font-weight:800;font-size:18px;border-bottom:none;border-top:2px solid var(--text)}.druck-blatt{background:#fff;border:1px solid var(--rand);border-radius:var(--radius);padding:32px;max-width:800px;margin:0 auto;font-size:14px}.brief-kopfzeile{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;border-bottom:2px solid var(--akzent, var(--blau));padding-bottom:14px}.brief-firma{line-height:1.5}.brief-firma strong{font-size:16px}.brief-logo{max-height:72px;max-width:240px;object-fit:contain}.brief-fusszeile{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:36px;padding-top:10px;border-top:2px solid var(--akzent, var(--blau));font-size:10.5px;color:var(--text-schwach);line-height:1.5}.druck-unterschrift{margin-top:28px}.druck-unterschrift img{max-height:60px;display:block;margin:6px 0}.logo-bereich{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.logo-vorschau{max-height:72px;max-width:220px;object-fit:contain;border:1px solid var(--rand);border-radius:8px;padding:6px;background:#fff}.logo-platzhalter{width:140px;height:60px;border:1px dashed var(--rand);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-schwach);font-size:13px}.druck-anschrift{margin-bottom:28px;line-height:1.5}.druck-absenderzeile{font-size:10px;color:var(--text-schwach);border-bottom:1px solid var(--rand);padding-bottom:4px;margin-bottom:10px}.druck-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.druck-meta h2{margin:0}.druck-tabelle{width:100%;border-collapse:collapse;margin:16px 0}.druck-tabelle th,.druck-tabelle td{border-bottom:1px solid var(--rand);padding:8px 6px;text-align:left;vertical-align:top}.druck-tabelle th{border-bottom:2px solid var(--text);font-size:13px}.druck-tabelle .rechts{text-align:right;white-space:nowrap}.druck-summen{margin-left:auto;max-width:320px}.druck-summen>div{display:flex;justify-content:space-between;padding:5px 0}.druck-brutto{font-weight:800;border-top:2px solid var(--text);font-size:16px}.druck-fuss{margin-top:28px;font-size:12px;color:var(--text-schwach)}.druck-fotoanhang{margin-top:28px}.druck-fotoanhang h3{margin-bottom:14px}.druck-foto-raster{display:grid;grid-template-columns:1fr 1fr;gap:14px}.druck-foto-raster figure{margin:0;break-inside:avoid;page-break-inside:avoid}.druck-foto-raster img{width:100%;max-height:320px;object-fit:contain;border:1px solid var(--rand);border-radius:6px;background:#fff}.druck-foto-raster figcaption{font-size:12px;color:var(--text-schwach);margin-top:4px}@media print{.kopfleiste,.navigation,.kein-druck{display:none!important}body{background:#fff}.inhalt{max-width:none;padding:0}.druck-blatt{border:none;border-radius:0;padding:0;max-width:none}.druck-tabelle tr,.druck-summen,.druck-unterschrift,.brief-fusszeile,.tag-block{break-inside:avoid;page-break-inside:avoid}.druck-fotoanhang{break-before:page;page-break-before:always}}.foto-raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}.foto-kachel img{width:100%;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--rand);display:block}.foto-platzhalter{height:120px;border-radius:8px;border:1px dashed var(--rand);display:flex;align-items:center;justify-content:center;color:var(--text-schwach);font-size:13px}.foto-kachel input{width:100%;margin-top:6px;padding:10px;min-height:44px;font-size:15px;border:1px solid var(--rand);border-radius:6px}.foto-loeschen{margin-top:6px;width:100%;background:none;border:none;color:var(--fehler);font-size:13px;padding:6px;text-decoration:underline}.suchfeld{width:100%;min-height:48px;padding:10px 14px;font:inherit;border:1px solid var(--rand);border-radius:var(--radius);margin-bottom:14px;background:#fff}.unterschrift-pad{width:100%;height:200px;background:#fff;border:2px dashed var(--rand);border-radius:var(--radius);touch-action:none;display:block}
