:root{--bg:#f3f5f8;--card:#fff;--text:#1c2633;--muted:#677284;--line:#dde3ea;--brand:#16324f;--brand-ink:#fff;--brand-soft:#cfe0f5;--brand-hover:rgba(255,255,255,.14);--primary:#1f5fbf;--primary-ink:#fff;--ok:#1e8a4c;--okbg:#e6f4ec;--warn:#b36b00;--warnbg:#fff3df;--err:#c0392b;--errbg:#fdecea;--chip:#eef2f7}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--primary)}
header.top{background:var(--brand);color:var(--brand-ink)}
header.top .in{max-width:1600px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
header.top .logo{font-weight:700;font-size:17px;margin-right:auto}
header.top nav{display:flex;gap:4px;flex-wrap:wrap}
header.top nav a{color:var(--brand-soft);text-decoration:none;padding:6px 12px;border-radius:6px}
header.top nav a.on,header.top nav a:hover{background:var(--brand-hover);color:var(--brand-ink)}
header.top nav{align-items:center}
.dropdown{position:relative}
.dropdown summary{list-style:none;cursor:pointer;color:var(--brand-soft);padding:6px 12px;border-radius:6px;user-select:none}
.dropdown summary::-webkit-details-marker{display:none}
.dropdown summary .pfeil{font-size:11px;opacity:.8}
.dropdown summary:hover,.dropdown.on summary,.dropdown[open] summary{background:var(--brand-hover);color:var(--brand-ink)}
.dropdown .submenu{position:absolute;left:0;top:calc(100% + 6px);min-width:200px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:6px;z-index:50;display:grid}
header.top .dropdown .submenu a{color:var(--text);padding:9px 12px;border-radius:6px}
header.top .dropdown .submenu a:hover{background:var(--chip);color:var(--text)}
header.top .dropdown .submenu a.on{background:#e5eefc;color:var(--primary);font-weight:600}
.subnav{background:#fff;border-bottom:1px solid var(--line)}
.subnav .in{max-width:1600px;margin:0 auto;padding:0 16px;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.subnav-titel{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-right:10px}
.subnav a{padding:11px 14px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;font-weight:600}
.subnav a:hover{color:var(--text)}
.subnav a.on{color:var(--primary);border-bottom-color:var(--primary)}
header.top .user{font-size:13px;color:var(--brand-soft);display:flex;gap:8px;align-items:center}
header.top .user button{background:transparent;border:1px solid var(--brand-soft);color:var(--brand-ink);border-radius:6px;padding:4px 10px;cursor:pointer}
header.top .logo img{max-height:38px;max-width:220px;display:block}
.login-kopf{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.login-kopf h1{margin:0}
.login-kopf img{max-height:56px;max-width:55%;object-fit:contain}
main{max-width:1600px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:24px;margin:4px 0 18px}
h2{font-size:17px;margin:0 0 12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:18px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}
.grid2 .card{margin-bottom:0}
.grid2 .card.adminform{margin-bottom:18px}
.muted{color:var(--muted)}
.small{font-size:13px}
.form{display:grid;gap:10px;margin-bottom:14px}
label{display:grid;gap:4px;font-size:13px;color:var(--muted);font-weight:600}
input[type=text],input[type=password],input[type=date],input[type=search],input[type=tel],input[type=email],input[type=number],input[type=url],select,textarea{font:inherit;color:var(--text);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}
textarea{min-height:70px;resize:vertical}
::placeholder{color:#a3abb6;opacity:1}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{font:inherit;display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);cursor:pointer;text-decoration:none;font-weight:600}
.btn:hover{border-color:#b7c2cf}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.danger{color:var(--err)}
.btn.small{padding:4px 10px;font-size:13px}
form.inline{display:inline}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
tr.inaktiv td{color:#a3abb6}
table.tuermliste tr:nth-child(even) td{background:#f7f9fb}
table.tuermliste tr:hover td{background:#eef4fb}
table.tuermliste td{vertical-align:middle}
.table-wrap{overflow-x:auto}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px}
.checks label{display:flex;gap:8px;align-items:flex-start;font-weight:400;color:var(--text);font-size:14px}
.checks.wide{grid-template-columns:1fr}
.tag{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--chip);color:var(--muted);vertical-align:middle}
.tag.defekt{background:var(--errbg);color:var(--err)}
.tag.schaden{background:var(--err);color:#fff}
.tag.zusatz{background:var(--warnbg);color:var(--warn)}
.tag.ok{background:var(--okbg);color:var(--ok)}
.tag.late{background:var(--err);color:#fff}
.tag.me{background:#e5eefc;color:var(--primary)}
.tag.rev{background:#6b3fa0;color:#fff}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:var(--okbg);color:var(--ok);font-weight:600}
.flash.err{background:var(--errbg);color:var(--err)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.tile{display:block;background:#fff;border:1px solid var(--line);border-left:5px solid var(--ok);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--text)}
.tile.offen{border-left-color:var(--warn)}
.tile.late{border-left-color:var(--err)}
.tile:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}
.tile .nr{font-size:20px;font-weight:700}
.tile .tags{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}
table.turmtab td{vertical-align:middle;padding:10px 8px}
table.turmtab tr.zeile{cursor:pointer}
table.turmtab tr.zeile:nth-child(even) td{background:#f7f9fb}
table.turmtab tr.zeile:hover td{background:#eef4fb}
table.turmtab tr.zeile td:first-child{border-left:6px solid var(--ok)}
table.turmtab tr.st-offen td:first-child{border-left-color:var(--warn)}
table.turmtab tr.st-late td:first-child{border-left-color:var(--err)}
table.turmtab tr.st-rev td:first-child{border-left-color:#6b3fa0}
table.turmtab tr.st-rev td{background:#f6f0fc}
table.turmtab tr.st-rev:nth-child(even) td{background:#f1e8fa}
table.turmtab .nr{font-weight:700;font-size:16px;white-space:nowrap}
table.turmtab .tags{display:flex;gap:4px;flex-wrap:wrap}
table.turmtab th.sortierbar{cursor:pointer;user-select:none;white-space:nowrap}
table.turmtab th.sortierbar:hover{color:var(--text)}
table.turmtab th.sortierbar::after{content:" ↕";opacity:.35}
table.turmtab th.auf::after{content:" ▲";opacity:1;color:var(--primary)}
table.turmtab th.ab::after{content:" ▼";opacity:1;color:var(--primary)}
.bilder{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tb-bild{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.tb-bild .btn{padding:3px 8px;font-size:12px}
.mark-dialog{width:min(1100px,96vw);max-height:94vh;border:0;border-radius:12px;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.35)}.mark-dialog::backdrop{background:rgba(10,20,30,.6)}
.mark-kopf{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mark-dialog .mark-flaeche canvas{max-height:64vh;width:auto;max-width:100%;margin:0 auto}
.bilder img{width:96px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block;background:#fff}
.bilder a:hover img{border-color:var(--primary)}
.bilder.bearbeiten{margin-top:4px}
.bildwahl{display:flex;flex-direction:column;gap:4px;font-weight:400;color:var(--text)}
.bildwahl img{width:110px;height:82px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.material{margin-top:6px;font-size:13px;background:#eef4fb;border-radius:6px;padding:6px 9px}
.materialliste{background:#eef4fb;border-radius:8px;padding:10px 12px;margin:10px 0 4px}
.materialliste summary{cursor:pointer}
.materialliste table{margin-top:6px}
.materialliste td{border-bottom-color:#d5e2f2;padding:5px 6px}
.fotos{display:grid;gap:6px}
.foto-btn{position:relative;overflow:hidden;font-weight:600;display:inline-flex;align-items:center;gap:8px;margin:0 8px 8px 0;color:var(--text)}
.foto-btn .ico{font-size:1.15em;line-height:1}
.foto-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.handy-kasten{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px;border:1px dashed var(--line);border-radius:10px;background:var(--card);margin-bottom:8px}
.handy-qr{width:170px;height:170px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted)}.handy-qr svg{width:170px;height:170px}
.handy-text{display:flex;flex-direction:column;gap:6px;flex:1 1 220px;align-items:flex-start}
@media (hover:none) and (pointer:coarse){.handy-btn{display:none !important}}
.vorschaubild{position:relative;display:inline-block}
.vorschaubild img{width:96px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}
.vorschaubild button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--err);color:#fff;font-weight:700;line-height:20px;cursor:pointer;padding:0}
.vorschaubild .vb-mark,.vorab-bild .vb-mark{position:static;width:auto;height:auto;border-radius:6px;background:var(--card,#fff);color:var(--text);border:1px solid var(--line);font-weight:600;font-size:12px;line-height:1.3;padding:3px 8px;margin-top:4px;display:block}
.vorab-bild{display:inline-flex;flex-direction:column;gap:2px;margin:0 8px 6px 0;vertical-align:top}.vorab-bild img{width:96px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}
.vorab-bild .vb-zurueck{font-size:12px}
table.rechtetab th,table.rechtetab td{padding:6px 10px}table.rechtetab .mitte{text-align:center;white-space:nowrap}table.rechtetab tbody tr:hover td{background:var(--chip)}table.rechtetab input[type=checkbox]{width:18px;height:18px}
table.druckwahl td,table.druckwahl th{padding:6px 8px;vertical-align:middle}table.druckwahl tr.zw td{background:var(--chip);padding-top:8px}table.druckwahl input[type=text]{margin:0}
.ta-edit{flex-basis:100%;width:100%;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg,#f6f8fb)}
.ta-weg{cursor:pointer}.ta-weg:has(input:checked) img{opacity:.35;outline:2px solid var(--err)}
.vorschau:empty{display:none}
.tag.gruppe{background:#e6f0ee;color:#1d6b5f;text-transform:none;letter-spacing:0}
.gruppenwahl{display:flex;gap:8px;flex-wrap:wrap}
.gruppen-btn{display:inline-flex !important;flex-direction:row !important;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text) !important;font-weight:600 !important;cursor:pointer}
.gruppen-btn:has(input:checked){background:#1d6b5f;border-color:#1d6b5f;color:#fff !important}
.gruppen-btn:has(input:checked) .muted{color:#dfeeea !important}
.gruppen-btn.auftritt-wahl{display:block !important}
.tag.gruppe{background:#e8eefc;color:#1f3f8f;border-color:#c6d4f5}
.gruppen-kunde{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.bp-vorschau{position:relative;width:min(260px,100%);aspect-ratio:210/297;border:1px solid var(--line);box-shadow:0 2px 8px rgba(0,0,0,.08);background:#fff}
.bp-vorschau img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.bp-vorschau .bp-frei{position:absolute;left:10.5%;right:8.6%;top:calc(var(--bp-oben) / 297 * 100%);bottom:calc(var(--bp-unten) / 297 * 100%);background:rgba(31,95,191,.18);border:1px dashed #1f5fbf}
.einheiten-box{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.einheiten-liste{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.einheit-eigen{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 4px 2px 10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,#fff);color:var(--primary)}
.einheit-eigen small{color:var(--muted);font-weight:400;padding-right:6px}
.einheit-eigen button{border:0;background:none;cursor:pointer;color:inherit;font-size:11px;padding:2px 5px;border-radius:999px}
.einheit-eigen button:hover{background:var(--err);color:#fff}
.gruppe-neu{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 12px}
table.gruppentab tr.gruppe-edit td{background:#f4f7fb;padding:10px 14px}
table.gruppentab td{vertical-align:middle}
.gruppen-kunde h3{margin:0 0 6px}
.gruppe-eintrag{margin:6px 0}
.gruppe-eintrag>summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 0}
.gruppe-eintrag>summary::-webkit-details-marker{display:none}
.gruppe-eintrag[open]{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px}
.gruppenform{margin:6px 0 10px}
.gruppenform label{max-width:420px}
.turmwahl{display:flex;flex-wrap:wrap;gap:6px}
.turmwahl .gruppen-btn{max-width:none;font-weight:500 !important}
.turmchip{align-items:flex-start !important}
.turmchip input{margin-top:3px}
.turmort{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.turmchip.halle{border-color:var(--ok) !important;background:var(--okbg) !important}
.turmchip.halle .turmort{color:var(--ok);font-weight:600}
fieldset.geltung{margin:14px 0 0;padding:0;border:0;display:flex;gap:10px;flex-wrap:wrap}
fieldset.geltung legend{font-weight:600;font-size:.9rem;margin-bottom:6px;padding:0}
.geltung-wahl{flex:1 1 260px;display:flex !important;flex-direction:row !important;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;font-weight:400 !important}
.geltung-wahl:has(input:checked){border-color:var(--primary,#1d6b5f);background:#f1f7f6}
.geltung-wahl input{width:auto;margin-top:3px}
select.ap-einfuegen{width:auto;max-width:100%;font-weight:600}
.kontaktzeile.neu-eingefuegt{outline:3px solid #f2c94c;transition:outline-color 1s}
.hinweis-gruppe{background:#e8eefc;border:1px solid #c6d4f5;color:#1f3f8f;border-radius:10px;padding:8px 12px;margin:0 0 12px}
.tag.rolle-partner{background:#fdf0e1;color:#9a5a00}
.tag.rolle-kunde{background:#f1e8fa;color:#6b3fa0}
.tag.rolle-leitstelle{background:#fde8e8;color:#9b1c1c}
.tag.ereignis-stromausfall{background:#fff3cd;color:#8a6100}
.tag.ereignis-einbruch{background:var(--okbg);color:var(--ok)}
.tag.ereignis-sabotage{background:#f6e3f0;color:#8e2f6f}
.tag.ereignis-technik{background:#e5eefc;color:var(--primary)}
.tag.aus{opacity:.5;text-decoration:line-through}
table.objekttab td{vertical-align:middle;padding:10px 8px}
table.objekttab tr:nth-child(even) td{background:#f7f9fb}
.zuweisung{display:flex;gap:6px;flex-wrap:wrap}
.zuweisung select{flex:1 1 0;width:auto;min-width:150px;padding:6px 8px}
@media (min-width:900px){.zuweisung{flex-wrap:nowrap}}
.alarmkarte.aus{opacity:.75}
.alarmgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px}
@media (max-width:900px){.alarmgrid{grid-template-columns:1fr}}
.alarmgrid h3,.card h3{font-size:14px;margin:0 0 8px}
.anweisung{background:#fff8e6;border-radius:8px;padding:10px 12px;font-size:14px}
.reihenfolge{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:12px;align-items:center;justify-content:center;flex:0 0 auto}
table.kontakttab td{vertical-align:middle}
.kontaktzeile{display:grid;grid-template-columns:28px minmax(270px,2fr) 1.2fr 1fr 1fr 1.3fr 1.3fr auto;gap:6px;align-items:center;margin-bottom:6px}
.kontaktzeile input{padding:7px 8px;font-size:14px}
.kontaktzeile.massnahme{background:#f4f7fb;border-radius:8px;padding:6px 6px 6px 0;grid-template-rows:auto auto}
.kontaktzeile.massnahme .reihenfolge{grid-row:1 / span 2}
.kontaktzeile.massnahme .massnahme-tag{grid-column:2 / -1}
.kontaktzeile.massnahme.ohne-titel{grid-template-rows:auto}
.kontaktzeile.massnahme.ohne-titel .reihenfolge{grid-row:auto}
.kontaktzeile .feld-fest{background:#eef1f5;font-weight:700;cursor:not-allowed;color:var(--text)}
.kontaktzeile .feld-fest:focus{outline:none;box-shadow:none}
.kontaktzeile .feld-ap{background:#f6f8fa;cursor:default}
.kontaktzeile .feld-ap:focus{outline:none;box-shadow:none}
.kontaktzeile.kz-frei{outline:2px solid var(--err);outline-offset:2px;border-radius:6px}

.kontaktzeile.typ-taeter{background:#fff4e5}
.kontaktzeile.typ-sicherheit{background:#e9f2fb}
.kontaktzeile.typ-polizei{background:#eaf0fb}
.massnahme-tag{font-weight:700;font-size:13px;display:inline-block}
.angebottab td{vertical-align:middle}
.angebottab input,.angebottab select{padding:7px 8px}
.kalkulation{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:12px}
.kalkulation div{background:var(--chip);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column}
.kalkulation span{font-size:12px;color:var(--muted)}
.kalkulation strong{font-size:17px}
.polizei-kosten{margin-top:12px;background:#fff8e6;border:1px solid #f3dca6;border-radius:8px;padding:10px 14px;font-size:14px}
.polizei-kosten .w-einwilligung{font-size:14px}
tr.massnahme-zeile td{background:#f4f7fb}
.kontakt-btns{display:flex;gap:3px}
.kz-breit{grid-column:span 3}
.kz-turmtel{grid-column:span 2;padding:0 4px}
@media (max-width:1000px){.kz-turmtel,.kz-breit,.kontaktzeile .feld-fest{grid-column:2 / -1}.kontaktzeile .reihenfolge{grid-row:span 3;align-self:start}.kontaktzeile.massnahme .reihenfolge{grid-row:1 / span 4}.kontaktzeile.massnahme.ohne-titel .reihenfolge{grid-row:1 / span 3}.kontaktzeile{grid-template-columns:28px 1fr 1fr;padding:8px;border:1px solid var(--line);border-radius:8px}.kontakt-btns{grid-column:1/-1;justify-content:flex-end}}
.zp-werkzeuge{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:12px 0}
.zeitplan{user-select:none;touch-action:none;overflow-x:auto}
.zp-kopf,.zp-zeile{display:grid;grid-template-columns:34px minmax(640px,1fr) 100px;gap:8px;align-items:center}
.zp-zeile{margin-bottom:4px}
.zp-stunden{position:relative;height:18px;font-size:11px;color:var(--muted)}
.zp-stunden span{position:absolute;transform:translateX(-50%)}
.zp-tag{font-weight:700;font-size:13px}
:root{--scharf:#005b8c} /* Verkehrsblau RAL 5017 */
.zp-raster{display:grid;grid-template-columns:repeat(96,1fr);height:30px;border:1px solid #c9d1da;border-radius:4px;overflow:hidden;cursor:crosshair;background:#fff}
.zp-raster i{border-right:1px solid #f1f3f6;display:block}
.zp-raster i:nth-child(4n){border-right-color:#c9d1da}
.zp-raster i.an{background:var(--scharf);border-right-color:#0a6aa0}
.zp-raster i.an:nth-child(4n){border-right-color:#003f63}
.zp-text{grid-column:2/4;font-size:12px;color:var(--muted);margin:-2px 0 4px}
.zp-mini-tag{display:grid;grid-template-columns:24px 1fr;column-gap:6px;align-items:center;margin-bottom:3px}
.zp-mini-tag span{font-size:12px;font-weight:700}
.zp-mini-tag small{grid-column:2;font-size:11px;color:var(--muted);margin-bottom:2px}
.zp-mini-row{display:grid;grid-template-columns:repeat(96,1fr);height:12px;background:#fff;border:1px solid #c9d1da;border-radius:3px;overflow:hidden}
.zp-mini-row i.an{background:var(--scharf)}
.zp-diff .zpd-kopf{display:grid;grid-template-columns:34px 1fr;gap:8px;margin-left:0}
.zp-diff .zpd-kopf .zp-stunden{margin-left:46px}
.zpd-tag{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:start;padding:6px 0;border-bottom:1px solid var(--line)}
.zpd-tag.geaendert{background:#faf6ff}
.zpd-zeilen{display:grid;gap:3px}
.zpd-zeile{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:4px}
.zpd-zeile small{font-size:11px;color:var(--muted)}
.zpd-row{height:14px}
.zpd-row i.plus{background:var(--scharf);box-shadow:inset 0 -4px 0 #f0a500}
.zpd-row i.minus{background:repeating-linear-gradient(45deg,#fff 0 2px,#d9534f 2px 4px)}
.zpd-text{grid-column:2;font-size:12px;padding-left:46px}
.plus-txt{color:#8a5a00;font-weight:600}
.minus-txt{color:var(--err);font-weight:600}
.zp-legende i.plus{box-shadow:inset 0 -4px 0 #f0a500}
.zp-legende i.minus{background:repeating-linear-gradient(45deg,#fff 0 2px,#d9534f 2px 4px);border-color:#d9534f}
table.feiertage td{padding:6px}
table.feiertage tr.we td{color:var(--muted)}
tr.diff-zeile td{background:#fffbea}
tr.entfernt td{text-decoration:line-through;color:var(--muted)}
tr.entfernt td:last-child{text-decoration:none}
.entfernt-txt{opacity:.7;text-decoration:line-through}
.zp-legende{display:flex;gap:14px;font-size:13px;color:var(--text);margin-bottom:6px;flex-wrap:wrap}
.zp-legende span{display:inline-flex;align-items:center;gap:6px}
.zp-legende i{display:inline-block;width:16px;height:12px;border:1px solid #c9d1da;border-radius:2px;background:#fff}
.zp-legende i.an{background:var(--scharf);border-color:var(--scharf)}
.farbwahl{display:flex;gap:6px;align-items:center}
.farbwahl input[type=color]{width:46px;height:40px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}
.farbwahl input[type=text]{width:100px;font-family:monospace}
.pfadfeld{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.pfadfeld input{flex:1 1 140px}
.logo-vorschau{border:1px dashed var(--line);border-radius:10px;padding:14px;background:repeating-conic-gradient(#f3f5f8 0 25%,#fff 0 50%) 0 0/16px 16px;text-align:center}
.logo-vorschau img{max-height:90px;max-width:100%}
.design-vorschau{--dv1:#16324f;--dv1ink:#fff;--dv2:#1f5fbf;--dv2ink:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}
.dv-kopf{background:var(--dv1);color:var(--dv1ink);padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.dv-logo img{max-height:32px;max-width:160px;display:block}
.dv-logo span{font-weight:700}
.dv-nav{display:flex;gap:12px;font-size:13px;opacity:.9}
.dv-inhalt{padding:14px;display:grid;gap:8px}
.dv-titel{font-weight:700;font-size:17px}
.dv-zeile{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;font-size:14px}
.dv-btn{background:var(--dv2);color:var(--dv2ink);border-radius:6px;padding:5px 10px;font-size:13px;font-weight:600}
.dv-link{color:var(--dv2);text-decoration:underline;font-size:14px}
.schritte{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.schritte button{flex:1 1 180px;font:inherit;font-weight:600;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);cursor:pointer;text-align:left}
.schritte button span{display:inline-flex;width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center;background:var(--chip);color:var(--muted);font-size:13px}
.schritte button.on{border-color:var(--primary);color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent)}
.schritte button.on span{background:var(--primary);color:var(--primary-ink)}
.schritte button.fertig span{background:var(--ok);color:#fff}
.schritt-fuss{display:flex;gap:10px;align-items:center;flex-wrap:wrap;position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);z-index:5}
.w3w-feld{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.w3w-feld input{border:0 !important;border-radius:0}
.w3w-slash{color:#e11f26;font-weight:800;padding:0 4px 0 10px;font-size:16px}
.w3w-link{color:#e11f26;font-weight:600}
.w3w-vorschlag{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.objektdaten{display:grid;gap:4px}
.technikblock{margin-top:14px;padding:12px 14px;border-radius:10px;background:#fffaf0;border:1px solid #f3e2bd}
.technikblock h3{margin:0 0 6px}
.ob-feld{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:4px 6px;border-radius:6px}
.ob-feld > span{color:var(--muted);font-size:13px;font-weight:600}
.ob-feld.geaendert{background:#fffbea}
.ob-feld .vorher{color:var(--err);text-decoration:line-through}
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-bottom:12px}
fieldset.apbox{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0 0 12px}
fieldset.apbox legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.apkopf,.apzeile{display:grid;grid-template-columns:1.3fr 1.4fr 1fr 1fr 1.4fr 96px;gap:6px;align-items:center}
.apkopf{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}
.apzeile{margin-bottom:6px}
.apzeile input{padding:7px 8px;font-size:14px}
.apzeile.weg input{opacity:.45;text-decoration:line-through}
.ap-aktion{text-align:right}
.ap-loeschen{display:inline-flex !important;flex-direction:row !important;gap:4px;align-items:center;font-weight:400 !important;color:var(--err) !important}
@media (max-width:900px){.apkopf{display:none}.apzeile{grid-template-columns:1fr 1fr;padding:8px;border:1px solid var(--line);border-radius:8px}.ap-aktion{grid-column:1/-1}}
.formgrid fieldset{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0;display:grid;gap:10px;align-content:start}
.formgrid legend{font-weight:700;font-size:13px;padding:0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
table.orgtab td{vertical-align:top}
.einladung{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.einladung input{flex:1 1 260px;font-size:12px;padding:6px 8px}
.einladung div.small{flex-basis:100%}
.einladung .btn{flex:0 0 auto}
.schadenkarte{border-left:5px solid var(--err)}
.tag.rolle-admin{background:#16324f;color:#fff}
.tag.rolle-innendienst{background:#e5eefc;color:var(--primary)}
.tag.rolle-techniker{background:#e6f0ee;color:#1d6b5f}
header.top .user a{text-decoration:none}
header.top .user a:hover{text-decoration:underline}
.tag.st-offen{background:var(--warn);color:#fff}
.tag.st-bestellt{background:var(--primary);color:#fff}
.tag.st-geliefert{background:var(--ok);color:#fff}
table.bestelltab td{vertical-align:middle;padding:10px 8px}
table.bestelltab tr.bs-offen td{background:var(--warnbg)}
table.bestelltab tr.bs-offen td:first-child{box-shadow:inset 5px 0 0 var(--warn)}
table.bestelltab tr.bs-bestellt td:first-child{box-shadow:inset 5px 0 0 var(--primary)}
table.bestelltab tr.bs-geliefert td{color:var(--muted)}
table.bestelltab tr.bs-geliefert td:first-child{box-shadow:inset 5px 0 0 var(--ok)}
table.bestelltab details summary{cursor:pointer;color:var(--primary)}
table.bestelltab tr.bs-aktiv td{outline:0;background:#e5eefc}
table.bestelltab tr.bs-edit td{background:#f4f7fb;padding:14px 14px 16px;border-bottom:2px solid var(--primary);box-shadow:inset 5px 0 0 var(--primary)}
table.bestelltab tr.bs-edit td>form{position:sticky;left:14px;max-width:min(1540px,calc(100vw - 64px))}
table.bestelltab th.sortierbar{cursor:pointer;user-select:none;white-space:nowrap}
/* Bearbeiten-Formular direkt unter der bearbeiteten Zeile (wie Bestellliste), siehe unter_zeile() */
tr.wird-bearbeitet>td{background:#e5eefc !important}
section.klappbar h2.klapp-kopf{cursor:pointer;user-select:none}
section.klappbar h2.klapp-kopf::before{content:"▾";display:inline-block;width:1.1em;color:var(--muted)}
section.klappbar.zu h2.klapp-kopf::before{content:"▸"}
section.klappbar h2.klapp-kopf:hover{color:var(--primary)}
/* Wartungen (siteID 37/22): Zeile anklicken klappt die Aufgaben darunter auf */
tr.w-zeile{cursor:pointer}
tr.w-zeile:hover>td{background:#f2f6fc}
tr.w-zeile.w-auf-offen>td{background:#e5eefc}
a.w-klapp{text-decoration:none;color:inherit}
a.w-klapp .w-pfeil{display:inline-block;width:1em;color:var(--muted)}
tr.w-auf>td{background:#f7f9fc;padding:12px 14px 14px}
.w-fertig{background:var(--okbg,#e6f4ec);color:var(--ok);border-radius:8px;padding:8px 12px;margin-bottom:8px}
.w-abschluss-info{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.w-weitere-info{margin-top:8px}
details.w-bearbeiten{margin:0 0 10px}
/* Handy: Wartungslisten als Karten untereinander statt breiter Tabelle */
@media (max-width:700px){
  table.w-tab,table.w-tab>tbody,table.w-tab>tbody>tr,table.w-tab>tbody>tr>td{display:block;width:auto}
  table.w-tab>tbody>tr:first-child{display:none}
  table.w-tab>tbody>tr.w-auf[hidden]{display:none}
  table.w-tab>tbody>tr.w-zeile{border-top:1px solid var(--line);padding:8px 0}
  table.w-tab>tbody>tr.w-zeile>td{border:0;padding:2px 10px;min-width:0 !important;text-align:left !important}
  table.w-tab>tbody>tr.w-auf>td{padding:10px 10px 12px}
  table.w-tab .done-form{flex-wrap:wrap}
  table.w-tab .done-form input{flex:1 1 100%}
}
details.w-bearbeiten>summary{list-style:none;display:inline-block}
details.w-bearbeiten>summary::-webkit-details-marker{display:none}
tr.w-auf ul.tasks{margin:6px 0 0}
/* Umrüstungen (siteID 59) */
.um-feldtitel{font-weight:600;font-size:13px}
.um-tgrid{display:flex;flex-wrap:wrap;gap:6px}
.um-tgrid .gruppen-btn{padding:4px 8px;min-width:0}
.um-punkt{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;background:#b8c0cc}
.um-punkt.an{background:var(--ok)}.um-punkt.aus{background:var(--err)}
.um-ok{color:var(--ok);font-weight:700}
.um-nr{font-weight:400}
.flash-unten{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:300;width:min(560px,calc(100vw - 32px));display:grid;gap:6px;cursor:pointer;transition:opacity .35s}
.flash-unten .flash{margin:0;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.flash-unten.weg{opacity:0}
/* Lange Listen: Seitenaufteilung und Suche über alle Einträge (seiten_teil, suche_feld) */
.seiten-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
.suche-form{display:inline-flex;align-items:center;gap:6px;margin:0}
.suche-form input[type=search]{max-width:260px}
/* Zwei-Faktor-Anmeldung */
.zf-qr svg{width:200px;height:200px;background:#fff;padding:8px;border:1px solid var(--line);border-radius:8px}
.zf-geheim{font-size:1.05em;letter-spacing:.06em;word-break:break-all}
.zf-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.zf-codes code{font-size:1.05em;padding:6px 8px;background:var(--chip,#eef1f4);border-radius:6px;text-align:center}
@media (prefers-reduced-motion:reduce){.flash-unten{transition:none}}
.um-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ok);color:#fff;padding:8px 16px;border-radius:8px;z-index:200;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.2)}
.um-toast.fehler{background:var(--err)}
table.um-tab th.um-hoch{vertical-align:bottom;text-align:left;padding:8px 6px;width:1%}
table.um-tab th.um-hoch>span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;display:inline-block;max-height:170px;overflow:hidden;text-overflow:ellipsis}
table.um-tab th.um-th-turm{vertical-align:bottom}
table.um-tab{width:auto}
.table-wrap.um-wrap{overflow:visible}
table.um-tab>tbody>tr:first-child>th{position:sticky;top:0;z-index:2;background:var(--card,#fff);box-shadow:0 1px 0 var(--line)}
table.um-tab td.um-turmzelle,table.um-tab td.um-alles,table.um-tab td[data-label]:not(.um-notiz){white-space:nowrap}
table.um-tab td[data-label]:not(.um-notiz){text-align:center}
table.um-tab .um-wer{display:none}
table.um-tab .um-notiz{min-width:220px}
table.um-tab td{vertical-align:top}
table.um-tab tr.um-fertig>td{background:color-mix(in srgb,var(--ok) 6%,#fff)}
.btn.um-zurueck{padding:1px 6px;margin-left:4px}
.um-notiz{min-width:160px}
.um-notiz details summary{cursor:pointer;color:var(--primary)}
.um-turm-block{margin:0 0 10px}
ul.um-liste{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
ul.um-liste li{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;flex-wrap:wrap}
details.um-bearbeiten>summary{list-style:none;display:inline-block}
details.um-bearbeiten>summary::-webkit-details-marker{display:none}
@media (max-width:700px){
  table.um-tab,table.um-tab>tbody,table.um-tab>tbody>tr,table.um-tab>tbody>tr>td{display:block;width:auto}
  table.um-tab>tbody>tr:first-child{display:none}
  table.um-tab>tbody>tr{border-top:1px solid var(--line);padding:8px 0}
  table.um-tab>tbody>tr>td{border:0;padding:3px 10px}
  table.um-tab>tbody>tr>td.um-alles:empty{display:none}
  table.um-tab .um-wer{display:inline}
  table.um-tab td[data-label]:not(.um-notiz){text-align:left}
  table.um-tab>tbody>tr>td[data-label]{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
  table.um-tab>tbody>tr>td[data-label]::before{content:attr(data-label);font-weight:600;font-size:13px}
}
/* Tickets (siteID 58) */
.tk-infos{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 12px}
.tk-verlauf{display:grid;gap:10px;margin:0 0 12px}
.tk-msg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;max-width:860px}
.tk-msg.tk-intern{background:#f4f8fd}
.tk-msg.tk-empf{background:#f4faf6;margin-left:clamp(0px,6vw,60px)}
.tk-kopf{margin-bottom:4px}
.tk-text{overflow-wrap:anywhere}
.tk-hinweis{border:1px solid color-mix(in srgb,var(--ton) 40%,#fff);background:color-mix(in srgb,var(--ton) 8%,#fff);border-radius:8px;padding:8px 12px;margin:0 0 10px;max-width:860px}
form.tk-antwort{max-width:860px;margin-top:6px}
tr.tk-neu>td{font-weight:600}
@media (max-width:700px){
  table.tk-tab,table.tk-tab>tbody,table.tk-tab>tbody>tr,table.tk-tab>tbody>tr>td{display:block;width:auto}
  table.tk-tab>tbody>tr:first-child{display:none}
  table.tk-tab>tbody>tr{border-top:1px solid var(--line);padding:8px 0}
  table.tk-tab>tbody>tr>td{border:0;padding:2px 10px}
  table.tk-tab>tbody>tr[hidden]{display:none}
}
.w-auf-kopf{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin-bottom:6px}
section.klappbar.zu > :not(:first-child){display:none !important}
section.klappbar.zu > :first-child{margin-bottom:0 !important}
tr.unter-edit>td{background:#f4f7fb !important;padding:14px 14px 16px;border-bottom:2px solid var(--primary);box-shadow:inset 5px 0 0 var(--primary)}
/* Belegung der Türme (siteID 34) */
.beleg-legende{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-right:auto}.beleg-legende span{display:inline-flex;gap:6px;align-items:center}.beleg-legende i{width:16px;height:12px;border-radius:3px;display:inline-block}
.bl-frei,.bz-spur{background-color:#3fb66b}.bl-bereit,.bb-bereit{background:#f2c230}.bl-vermietet,.bb-vermietet{background:#d9443a}
.tag.bt-bereit{background:#fff3c4;color:#7a5c00}.tag.bt-vermietet{background:var(--errbg);color:var(--err)}
.beleg-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.beleg{font-size:13px}.bz{display:flex;border-bottom:1px solid #fff}.bz:last-child{border-bottom:0}
.bz-name{flex:0 0 230px;position:sticky;left:0;z-index:2;background:#fff;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line);line-height:1.25}
.bz-bv{display:block;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis}
.bz-spur{flex:1;position:relative;height:36px;background-image:linear-gradient(to right,rgba(255,255,255,.55) 1px,transparent 1px);background-size:calc(100% / var(--wochen)) 100%}
.bz-spur.klickbar{cursor:copy}
.bz-kopf .bz-name{background:#f7f9fb}.bz-skala{background:#f7f9fb;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);background-size:calc(100% / var(--wochen)) 100%;height:40px;color:var(--muted)}
.bs-monat,.bs-kw{position:absolute;white-space:nowrap;overflow:hidden;padding:0 4px;box-sizing:border-box}.bs-monat{top:2px;font-weight:700;color:var(--text);border-left:2px solid #b7c2cf}.bs-kw{bottom:2px;font-size:11px}
.bb{position:absolute;top:3px;bottom:3px;border-radius:4px;min-width:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}a.bb:hover{outline:2px solid var(--primary);z-index:1}
.bz-heute{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#16324f;pointer-events:none;z-index:1}
@media (max-width:600px){.bz-name{flex-basis:110px}.bz-name .muted{display:none}}
.card.unter-zeile{background:transparent;border:0;border-radius:0;padding:0;margin:0;position:sticky;left:14px}
.card.unter-zeile:not(tr *){background:#f4f7fb;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:10px;padding:14px 16px;margin:6px 0 12px;position:static}
fieldset.nur-lesen{border:0;padding:0;margin:0;min-width:0;display:grid;gap:12px;background:none}
fieldset.nur-lesen input,fieldset.nur-lesen select,fieldset.nur-lesen textarea{background:var(--chip,#eef1f4);color:var(--text,inherit);cursor:not-allowed}
.angebottab tr.pos-alt td{background:#f7f7fb}
.angebottab tr.pos-fehler td{background:var(--errbg)}.angebottab tr.pos-fehler input[name="pos_rabatt[]"]{border-color:var(--err)}
.angebottab tr.pos-text td{background:#fffdf3}
.angebottab tr.pos-text textarea{min-height:0;resize:none;overflow:hidden;font-weight:600;font-style:italic;border-color:transparent;background:transparent;padding:6px 8px}
.angebottab tr.pos-text textarea:hover,.angebottab tr.pos-text textarea:focus{border-color:var(--line);background:#fff}
td.pos-knoepfe{white-space:nowrap;text-align:right}
td.pos-knoepfe button{font:inherit;font-size:12px;line-height:1;width:26px;height:26px;padding:0;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;color:var(--muted);margin-left:2px}
td.pos-knoepfe button:hover{color:var(--text);border-color:var(--muted)}
td.pos-knoepfe .pos-weg:hover{color:#fff;background:var(--err);border-color:var(--err)}
#positionen td{padding-top:6px;padding-bottom:6px}
#positionen select{width:100%}
.an-kopf{justify-content:space-between;align-items:center;margin-bottom:10px}
.an-anfrage{display:grid;gap:8px;margin-top:6px;padding:10px 14px;border-radius:10px;background:#f4f7fb;border:1px solid var(--line)}
.an-anfrage span{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.an-anfrage summary{cursor:pointer}
.angebot-form>.card{margin-bottom:16px}
.an-leiste{position:sticky;bottom:0;z-index:20;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 16px;margin:0 0 16px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}
.an-leiste-rechts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.angebottab .pos-freitext{white-space:pre-line;font-style:italic;color:var(--text)}
tfoot tr.alt-zeile td{color:var(--muted)}
.tag.alt{background:#ede9fe;color:#5b21b6;text-transform:none;letter-spacing:0}
.kalkulation .alt span,.kalkulation .alt strong{color:var(--muted)}
.artikel-neu{background:#f4f7fb;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:10px;padding:12px 14px;margin:10px 0 0}
.rabatt-hinweis{background:var(--okbg);color:#14532d;border:1px solid #b7e0c6;border-left:5px solid var(--ok);border-radius:10px;padding:10px 14px;margin:12px 0}
.kalkulation .rabatt,.kalkulation .rabatt strong{color:var(--ok)}
fieldset.rabatt-feld{border:1px solid var(--line);border-radius:10px;padding:10px 14px 12px;margin:14px 0 0}
fieldset.rabatt-feld legend{font-weight:600;font-size:14px;padding:0 4px}
tfoot tr.rabatt-zeile td{color:var(--ok);font-weight:600}
.formraster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;align-items:end}
.formraster>label{align-content:end}
.formraster .sp2{grid-column:span 2}.formraster .sp3{grid-column:span 3}.formraster .sp4{grid-column:1 / -1}
@media (max-width:700px){.formraster{grid-template-columns:1fr 1fr}.formraster .sp2,.formraster .sp3,.formraster .sp4{grid-column:1 / -1}}
table.bestelltab th.sortierbar:hover{color:var(--text)}
table.bestelltab th.sortierbar::after{content:" ↕";opacity:.35}
table.bestelltab th.auf::after{content:" ▲";opacity:1;color:var(--primary)}
table.bestelltab th.ab::after{content:" ▼";opacity:1;color:var(--primary)}
.verlauf{padding:4px 0;border-bottom:1px dashed var(--line);min-width:180px}
table.schadentab td{vertical-align:middle}
table.schadentab .bilder{margin-top:0}
table.schadentab .bilder img{width:64px;height:48px}
table.schadentab tr.am-rev td{background:#f1e8fa}
table.schadentab tr.am-rev td:first-child{box-shadow:inset 5px 0 0 #6b3fa0}
.legende{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.legende span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-bottom:16px}
.card > .row:first-child > :not(:first-child):last-child{margin-left:auto}
.card > .row:first-child > span.row{justify-content:flex-end}
.toolbar input[type=search]{max-width:260px}
.toolbar label{display:flex;flex-direction:row;align-items:center;gap:6px;font-weight:400;color:var(--text)}
ul.tasks{list-style:none;margin:0;padding:0}
ul.tasks li{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}
ul.tasks li:last-child{border-bottom:0}
ul.tasks .main{flex:1 1 260px}
ul.tasks .done-form{display:flex;gap:6px;flex:1 1 280px;justify-content:flex-end}
ul.tasks .done-form input{max-width:240px}
ul.tasks li.erledigt .titel{text-decoration:line-through;color:var(--muted)}
.auftrag-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:6px}
.progress{height:6px;background:var(--chip);border-radius:99px;overflow:hidden;margin:6px 0 4px}
.progress span{display:block;height:100%;background:var(--ok)}
.login{max-width:380px;margin:60px auto}
.seiteninhalt{font-size:16px;line-height:1.65}
article.seiteninhalt{padding:28px 32px}
.seiteninhalt h2{font-size:26px;margin:0 0 14px}
.seiteninhalt h3{font-size:19px;margin:22px 0 8px}
.seiteninhalt p{margin:0 0 12px}
.seiteninhalt img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}
.seiteninhalt blockquote{margin:14px 0;padding:10px 16px;border-left:4px solid var(--primary);background:var(--chip);border-radius:0 8px 8px 0}
.seiteninhalt table{margin:10px 0}
.seiteninhalt hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.editor{min-height:420px;border:1px solid var(--line);border-radius:8px;padding:16px 18px;background:#fff;outline:none}
.editor:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
.editor-leiste{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:8px;position:sticky;top:0;background:var(--card);padding:6px 0;z-index:3}
.editor-leiste .trenner{width:1px;height:22px;background:var(--line);margin:0 4px}
.webmenue{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:8px}
.webmenue a{padding:6px 12px;border-radius:6px;text-decoration:none;color:var(--muted);font-weight:600}
.webmenue a.on,.webmenue a:hover{background:var(--chip);color:var(--text)}
.webmenue a.btn{color:var(--text)}
footer.seitenfuss{border-top:1px solid var(--line);background:#fff;margin-top:20px}
footer.seitenfuss .in{max-width:1600px;margin:0 auto;padding:16px;display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
footer.seitenfuss a{color:var(--muted)}
@media (max-width:600px){article.seiteninhalt{padding:18px}}
/* Öffentliche Partner-Webseite */
body.web{background:#fff}
.w-in{max-width:1240px;margin:0 auto;padding:0 20px}
.w-smleiste{background:var(--w-nacht,#10202f);color:var(--w-ink,#fff);--w-sm-grund:var(--w-nacht,#10202f)}
.w-smleiste .w-in{display:flex;align-items:center;min-height:34px;padding-top:3px;padding-bottom:3px}
.w-smicons{display:flex;gap:4px;flex-wrap:wrap;margin-right:auto}
.w-smicons a{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:inherit;opacity:.85;transition:opacity .15s ease,background .15s ease}
.w-smicons a:hover,.w-smicons a:focus-visible{opacity:1;background:color-mix(in srgb,currentColor 16%,transparent)}
.w-smicons a:focus-visible{outline:2px solid currentColor;outline-offset:1px}
.w-vorschau{background:#fff3cd;color:#7a5a00;font-size:13px;text-align:center;padding:6px 16px}
.w-vorschau a{color:inherit;font-weight:700}
.w-top{background:var(--brand);color:var(--brand-ink);font-size:13px}
.w-top .w-in{display:flex;justify-content:space-between;align-items:center;gap:8px 18px;flex-wrap:wrap;min-height:36px;padding-top:4px;padding-bottom:4px}
.w-social{display:flex;gap:4px 14px;flex-wrap:wrap}
.w-social a{font-weight:600;letter-spacing:.01em}
.w-top a{color:var(--brand-ink);text-decoration:none;opacity:.92}
.w-top a:hover{opacity:1;text-decoration:underline}
.w-kontakt{display:flex;gap:6px 20px;flex-wrap:wrap;margin-left:auto;font-weight:600}
.w-kopf{background:#fff;border-bottom:1px solid #e7ebf0;box-shadow:0 2px 14px rgba(16,30,54,.06);position:sticky;top:0;z-index:40}
.w-kopf .w-in{display:flex;align-items:center;gap:22px;min-height:84px;flex-wrap:wrap}
.w-logo{display:flex;align-items:center;text-decoration:none;color:#1c2633;font-weight:800;font-size:21px;letter-spacing:-.01em;padding:10px 0}
.w-logo img{max-height:56px;max-width:230px;display:block}
.w-nav{display:flex;gap:2px;margin-left:auto;align-items:stretch}
.w-punkt{position:relative;display:flex}
.w-punkt>a{display:flex;align-items:center;gap:4px;padding:0 14px;min-height:84px;color:#1c2633;text-decoration:none;font-weight:600;font-size:15px;border-bottom:3px solid transparent}
.w-punkt>a small{font-size:10px;opacity:.6}
.w-punkt:hover>a,.w-punkt.on>a{border-bottom-color:var(--primary);color:#000}
.w-sub{display:none;position:absolute;top:100%;left:0;min-width:230px;background:#fff;border:1px solid #e7ebf0;border-top:3px solid var(--primary);border-radius:0 0 10px 10px;box-shadow:0 14px 30px rgba(16,30,54,.12);padding:8px;z-index:50}
.w-punkt:hover .w-sub,.w-punkt:focus-within .w-sub{display:grid}
.w-sub a{padding:9px 12px;border-radius:6px;color:#1c2633;text-decoration:none;font-weight:500}
.w-sub a:hover,.w-sub a.on{background:#f1f4f8}
.w-cta{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:var(--primary-ink);border:1px solid var(--primary);border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.w-cta:hover{filter:brightness(.95)}
.w-cta.klein{padding:8px 14px;font-size:14px}
.w-cta.gross{padding:10px 18px}
.w-cta.hell{background:#fff;border-color:#fff;color:var(--brand)}
.w-cta.rahmen{background:transparent;color:var(--brand-ink);border-color:color-mix(in srgb,var(--brand-ink) 60%,transparent);box-shadow:none}
.w-burger-btn{display:none;margin-left:auto;cursor:pointer;font-weight:700;padding:8px 14px;border:1px solid #dde3ea;border-radius:8px;color:#1c2633}
.w-hero{background:var(--brand);color:var(--brand-ink);border-bottom:4px solid var(--primary)}
.w-hero .w-in{padding-top:26px;padding-bottom:28px}
.w-hero h1{font-size:clamp(24px,3vw,34px);line-height:1.15;margin:0;max-width:900px;letter-spacing:-.01em}
.w-kicker{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;opacity:.75;margin-bottom:6px}
.w-lead{font-size:16px;max-width:680px;margin:8px 0 0;opacity:.9}
.w-hero-knoepfe{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
main.w-inhalt{max-width:1240px;padding:44px 20px 70px}
article.seiteninhalt.w-text{max-width:860px;padding:0}
.w-text h2{font-size:30px;margin:34px 0 14px;letter-spacing:-.01em}
.w-text h2:first-child{margin-top:0}
.w-text h3{position:relative;padding-left:14px}
.w-text h3::before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;border-radius:2px;background:var(--primary)}
.w-text ul{padding-left:0;list-style:none}
.w-text ul li{position:relative;padding-left:28px;margin:6px 0}
.w-text ul li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--primary) 14%,#fff);color:var(--primary);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:3px}
.w-text a{color:var(--primary)}
.w-cta-band{margin-top:48px;background:#f3f6fa;border-radius:16px;padding:26px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.w-cta-band strong{font-size:20px;display:block}
.w-zweispaltig{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:32px;align-items:start}
.w-formular{gap:14px}
.w-feldgruppe{border:0;padding:0;margin:0 0 6px}
.w-feldgruppe legend{font-weight:700;font-size:16px;margin-bottom:10px;color:#1c2633}
.w-kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.w-kachel{display:flex !important;flex-direction:row !important;align-items:center;gap:10px;border:1px solid #d5dce5;border-radius:8px;padding:14px;cursor:pointer;color:#1c2633 !important;font-size:14px !important}
.w-kachel:has(input:checked){border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:color-mix(in srgb,var(--primary) 7%,#fff)}
.w-einwilligung{display:flex !important;flex-direction:row !important;gap:10px;align-items:flex-start;font-weight:400 !important;color:#1c2633 !important}
.w-einwilligung input{margin-top:3px}
.w-kontaktbox{background:var(--brand);color:var(--brand-ink);border-radius:16px;padding:24px;position:sticky;top:110px}
.w-kontaktbox h3{margin:0 0 6px;font-size:20px}
.w-kontaktbox p{margin:0 0 12px;opacity:.9}
.w-kontaktzeile{display:flex;align-items:center;gap:12px;color:var(--brand-ink);text-decoration:none;font-weight:700;font-size:17px;padding:10px 0;border-top:1px solid color-mix(in srgb,var(--brand-ink) 20%,transparent)}
.w-kontaktzeile span{width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--brand-ink) 14%,transparent);display:flex;align-items:center;justify-content:center}
.w-danke{background:var(--okbg);border-radius:16px;padding:28px}
.w-danke h2{margin-top:0;color:var(--ok)}
body.web .card.login{margin:0 auto}
.w-fuss{background:color-mix(in srgb,var(--brand) 45%,#0b1118);color:#c9d1db;margin-top:0}
.w-spalten{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:28px;padding-top:48px;padding-bottom:40px}
.w-fuss h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin:4px 0 14px}
.w-fuss a{display:block;color:#c9d1db;text-decoration:none;padding:4px 0}
.w-fuss a:hover{color:#fff}
.w-fuss a.w-cta{display:inline-flex;color:var(--primary-ink);margin-top:6px}
.w-fname{color:#fff;font-size:18px}
.w-fuss p{line-height:1.6}
.w-unten{border-top:1px solid rgba(255,255,255,.1);font-size:13px}
.w-unten .w-in{padding-top:16px;padding-bottom:16px}
@media (max-width:980px){
  .w-burger-btn{display:block}
  .w-nav{display:none;order:5;width:100%;flex-direction:column;margin:0 0 12px}
  #w-burger:checked~.w-nav{display:flex}
  .w-punkt{flex-direction:column}
  .w-punkt>a{min-height:0;padding:12px 4px;border-bottom:1px solid #eef1f5}
  .w-sub{display:grid;position:static;box-shadow:none;border:0;padding:0 0 0 16px}
  .w-kopf .w-in{min-height:70px}
  .w-kopf .w-cta{order:4}
  .w-zweispaltig{grid-template-columns:1fr}
  .w-kontaktbox{position:static}
  .w-spalten{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .w-kontakt{margin-left:0}
  .w-kopf .w-cta{width:100%;justify-content:center}
  .w-spalten{grid-template-columns:1fr}
  .w-hero .w-in{padding-top:20px;padding-bottom:22px}
}
.kamerabilder{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.kamerabild{margin:0}
fieldset.kamerapfade{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:4px 0 0;display:grid;gap:10px}
fieldset.kamerapfade legend{font-size:13px;font-weight:700;padding:0 6px}
fieldset.kamerapfade input{font-family:ui-monospace,Consolas,monospace;font-size:13px}
.kamerabild img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block;background:#000}
.kamerabild a:hover img{border-color:var(--primary)}
.kamerabild.leer div{aspect-ratio:16/9;border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:#f7f9fb}
.kamerabild figcaption{font-size:13px;color:var(--muted);margin-top:4px}
.waende{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.wand{width:130px;display:grid;gap:4px;align-content:start}
.wand-bild{position:relative;aspect-ratio:9/16;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.wand-vc,.wand-pa{position:absolute;inset:0}
.wand-vc img{width:100%;height:100%;object-fit:cover;display:block}
.wand-leer{display:flex;height:100%;align-items:center;justify-content:center;text-align:center;background:#16324f;color:#fff;font-size:12px;font-weight:700;padding:6px}
.wand-leer small{font-weight:400;opacity:.8}
.wand-pa{background:#9aa1a9}
.wand-logo{position:absolute;left:10%;width:80%;top:11%;height:22%;object-fit:contain}
.wand-logo-text{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;text-align:center}
.wand-tuer{position:absolute;left:12%;right:12%;top:40%;bottom:4%;border:2px solid rgba(255,255,255,.85);border-bottom:0;border-radius:3px 3px 0 0;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.wand-tuer::after{content:"";position:absolute;right:8%;top:50%;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.9)}
.wand-name{font-weight:700;font-size:13px}
fieldset.anw-zeit{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0;display:grid;gap:6px;flex:1 1 280px}
fieldset.anw-zeit legend{font-size:13px;font-weight:700;padding:0 6px}
.wand-wahl{display:flex !important;flex-direction:row !important;gap:6px;align-items:center;font-weight:400 !important;color:var(--text) !important}
.wand .wand-pa{display:none}
.wand:has(input[value=partner]:checked) .wand-pa,.wand.wand-partner .wand-pa{display:block}
.wand:has(input[value=partner]:checked) .wand-vc,.wand.wand-partner .wand-vc{display:none}
.site-id{position:fixed;top:0;right:0;z-index:9999;background:#ffd400;color:#000;font:700 12px/1.4 ui-monospace,Consolas,monospace;padding:2px 8px;border-bottom-left-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.3);pointer-events:none}
.pg-liste{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pg{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px}
.pg small{font-weight:400;opacity:.8}
.pg-ok{background:var(--okbg);color:var(--ok)}.pg-err{background:var(--err);color:#fff}.pg-unb{background:var(--chip);color:var(--muted)}
.pg-aus{background:transparent;color:#a3abb6;border:1px dashed var(--line);text-decoration:line-through}
@media (max-width:600px){h1{font-size:21px}ul.tasks .done-form{justify-content:stretch}ul.tasks .done-form input{max-width:none}}
/* ===== Layout „Wegweiser“ (seit 05.11.2026): Seitenleiste in Verkehrsblau bzw. Partnerfarbe, DIN-Schrift für Titel, Menü und Zahlen.
   Zurück zum alten Layout: Git-Zweig „layout-alt“ bzw. Update-Knopf „Zurück auf vorherige Version“. ===== */
:root{--bg:#edf0f3;--card:#fff;--text:#15212d;--muted:#5b6876;--line:#d8dee5;--line-stark:#c3ccd6;--chip:#eef2f6;
  --brand:#005b8c;--brand-ink:#fff;--brand-soft:rgba(255,255,255,.84);--brand-hover:rgba(255,255,255,.12);--primary:#005b8c;--primary-ink:#fff;
  --ok:#17803f;--okbg:#e5f3ea;--warn:#a35f00;--warnbg:#fff2dc;--err:#b8291d;--errbg:#fcebe9;
  --din:Bahnschrift,"DIN Alternate","DIN 2014","D-DIN","DIN Next",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --schatten:0 1px 2px rgba(21,33,45,.05),0 3px 10px rgba(21,33,45,.05);--rail:252px}
body.ly{font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;caret-color:var(--primary)}
body.ly ::selection{background:color-mix(in srgb,var(--primary) 22%,#fff);color:var(--text)}
body.ly{scrollbar-color:#b9c3ce transparent}
body.ly a{text-underline-offset:2px}
body.ly h1,body.ly h2,body.ly h3,body.ly th,body.ly .tile .nr,body.ly .kalkulation strong,body.ly .btn,body.ly .tag{font-family:var(--din)}
body.ly h1{font-size:27px;font-weight:600;letter-spacing:-.005em;line-height:1.2;margin:2px 0 22px;text-wrap:balance}
body.ly h2{font-size:18px;font-weight:600;line-height:1.3;margin:0 0 14px}
body.ly h3{font-weight:600}
body.ly td,body.ly .tile,body.ly .kalkulation{font-variant-numeric:tabular-nums}
/* Rahmen: Seitenleiste + Arbeitsfläche */
.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--brand);color:var(--brand-ink);display:flex;flex-direction:column;gap:14px;padding:16px 12px 14px;
  scrollbar-color:color-mix(in srgb,var(--brand-ink) 30%,transparent) transparent;scrollbar-width:thin}
.rail-logo{display:flex;align-items:center;justify-content:center;min-height:62px;background:#fff;border-radius:8px;padding:10px 12px;text-decoration:none;
  box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px color-mix(in srgb,var(--brand) 70%,#fff)}
.rail-logo img{max-height:44px;max-width:100%;display:block;object-fit:contain}
.rail-logo span{font-family:var(--din);font-weight:700;font-size:19px;letter-spacing:.01em;color:#15212d;text-align:center;line-height:1.15}
.rail-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.rail-link,.rail-gruppe>summary{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border-radius:6px;color:var(--brand-soft);text-decoration:none;
  font-family:var(--din);font-size:15px;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.rail-link:hover,.rail-gruppe>summary:hover{background:var(--brand-hover);color:var(--brand-ink)}
.rail-link:focus-visible,.rail-gruppe>summary:focus-visible,.rail-konto:focus-visible{outline:2px solid var(--brand-ink);outline-offset:-2px}
/* Signatur: aktive Seite als weißes Schild mit feinem Schilderrand */
.rail-link.on{background:var(--brand-ink);color:var(--brand);font-weight:700;box-shadow:inset 0 0 0 3px var(--brand-ink),inset 0 0 0 4px var(--brand)}
.rail-link .zahl,.rail-gruppe>summary .zahl{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--brand-ink) 18%,transparent);color:var(--brand-ink);font-size:12px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.rail-link.on .zahl{background:var(--brand);color:var(--brand-ink)}
.rail-gruppe>summary{list-style:none;user-select:none}
.rail-gruppe>summary::-webkit-details-marker{display:none}
.rail-gruppe>summary::after{content:"";width:7px;height:7px;flex:0 0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.7;transition:transform .2s ease;margin-left:6px}
.rail-gruppe:not(:has(.zahl))>summary::after{margin-left:auto}
.rail-gruppe[open]>summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.rail-gruppe.on>summary{color:var(--brand-ink);font-weight:700}
.rail-abstand{height:22px}
.anl{max-width:900px}.anl h3{display:flex;align-items:center;gap:10px;margin:26px 0 6px;font-family:var(--din, inherit)}.anl ul{margin:4px 0 10px;padding-left:20px}.anl li{margin:3px 0}
.anl-nr{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:15px;flex:0 0 auto}
.anl-bild{margin:10px 0 14px}.anl-bild img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.anl-bild figcaption{font-size:12.5px;color:var(--muted);margin-top:4px}
.anl-schmal img{max-width:200px}.anl-domain{margin:10px 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.anl-domain summary{cursor:pointer}.anl-tab th,.anl-tab td{vertical-align:top;padding:6px 8px;text-align:left}.anl-tab td:first-child{font-weight:600;white-space:nowrap}.anl-mittel img{max-width:480px}.anl-wahl.anl-wahl2{grid-template-columns:repeat(2,1fr)}.anl-zwei{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.anl-zwei>div{flex:1 1 320px}
.anl-wahl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0}.anl-wahl>div{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff}.anl-wahl strong{display:block;margin-bottom:4px}.anl-wahl span{font-size:13.5px}
.anl-tipp{background:var(--warnbg,#fff6e0);border-radius:8px;padding:8px 12px;font-size:13.5px}.anl-inhalt{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:10px 16px}
@media (max-width:760px){.anl-wahl,.anl-wahl.anl-wahl2{grid-template-columns:1fr}}
.rail-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px 14px;padding-left:8px;border-left:1px solid color-mix(in srgb,var(--brand-ink) 26%,transparent)}
.rail-sub .rail-link{font-size:14px;min-height:34px;padding:7px 10px}
.rail-fuss{border-top:1px solid color-mix(in srgb,var(--brand-ink) 22%,transparent);padding-top:12px;display:grid;gap:8px}
.rail-konto{display:grid;gap:1px;padding:8px 10px;border-radius:6px;color:var(--brand-ink);text-decoration:none}
.rail-konto:hover,.rail-konto.on{background:var(--brand-hover)}
.rail-konto strong{font-family:var(--din);font-size:15px;font-weight:600}
.rail-konto small{font-size:12px;color:var(--brand-soft);line-height:1.35}
.rail-ab{width:100%;background:transparent !important;border-color:color-mix(in srgb,var(--brand-ink) 40%,transparent) !important;color:var(--brand-ink) !important}
.rail-ab:hover{background:var(--brand-hover) !important}
.rail-ansicht label{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--brand-ink);opacity:.9;margin:0}
.rail-ansicht select{width:100%;font-size:13px;padding:6px 8px;border-radius:8px;background:color-mix(in srgb,var(--brand-ink) 12%,transparent);color:var(--brand-ink);border:1px solid color-mix(in srgb,var(--brand-ink) 35%,transparent)}
.rail-ansicht select option,.rail-ansicht select optgroup{color:#1c2633;background:#fff}
.ansicht-band{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#efe7f8;color:#4a2a78;border:1px solid #d9c8ef;border-radius:10px;padding:10px 14px;margin-bottom:14px}
.shell-main{min-width:0;display:flex;flex-direction:column}
@media (min-width:961px){body.ly.testband .rail{height:calc(100vh - 27px)}}
body.ly .shell-main main{width:100%;max-width:1520px;margin:0;padding:28px 32px 64px;flex:1}
.topbar{display:none}
/* Dashboard (siteID 20 „Als Dashboard anzeigen“): ganze Seite ohne Menü, gleiche Form und Farben */
body.ly.dashboard .shell{grid-template-columns:1fr;grid-template-rows:1fr}
body.ly.dashboard .rail,body.ly.dashboard .topbar,body.ly.dashboard .rail-schleier{display:none !important}
body.ly.dashboard .shell-main main{max-width:none;padding:22px 28px 40px}
.dash-kopf{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:14px}
.dash-kopf h1{margin:0}
.dash-kopf>:last-child{margin-left:auto}
.rail-schleier{position:fixed;inset:0;background:rgba(12,22,32,.45);z-index:60}
@media (max-width:960px){
  .shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;background:var(--brand);color:var(--brand-ink);padding:8px 14px;min-height:56px;box-shadow:0 1px 6px rgba(12,22,32,.18)}
  .topbar .rail-auf{background:transparent;color:var(--brand-ink);border-color:color-mix(in srgb,var(--brand-ink) 45%,transparent)}
  .topbar-logo{display:flex;align-items:center;margin-left:auto;text-decoration:none;color:var(--brand-ink);font-family:var(--din);font-weight:700;font-size:17px}
  .topbar-logo img{max-height:34px;max-width:170px;background:#fff;border-radius:6px;padding:3px 6px}
  .rail{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:70;transform:translateX(-102%);transition:transform .26s cubic-bezier(.2,.8,.2,1);box-shadow:4px 0 24px rgba(12,22,32,.25)}
  body.rail-offen .rail{transform:none}
  body.rail-offen{overflow:hidden}
  body.ly .shell-main main{padding:18px 14px 56px}
  body.ly .site-id{top:auto;bottom:0;border-radius:6px 0 0 0}
}
@media (prefers-reduced-motion:reduce){.rail,.rail-link,.rail-gruppe>summary::after{transition:none}}
/* Anmelden, Registrierung, Einladung: weißes Schild auf der Hausfarbe */
body.ly.ohne-rail{background:var(--brand)}
body.ly.ohne-rail main.ohne-nav{max-width:1100px;margin:0 auto;padding:48px 16px 64px}
body.ly.ohne-rail main.ohne-nav>.card{box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 5px color-mix(in srgb,var(--brand) 55%,#fff),0 18px 48px rgba(0,0,0,.25);border:0;padding:28px}
body.ly.ohne-rail .login{margin:6vh auto 0}
body.ly.ohne-rail .flash{max-width:560px;margin:0 auto 14px}
body.ly.ohne-rail main.ohne-nav>h1{color:var(--brand-ink)}
body.ly.ohne-rail main.ohne-nav>p,body.ly.ohne-rail main.ohne-nav>.muted{color:var(--brand-soft)}
/* Bausteine */
body.ly .card{border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin-bottom:20px;box-shadow:var(--schatten)}
body.ly .grid2{gap:20px}
body.ly label{color:var(--muted);font-weight:600}
body.ly input[type=text],body.ly input[type=password],body.ly input[type=date],body.ly input[type=datetime-local],body.ly input[type=time],body.ly input[type=search],body.ly input[type=tel],body.ly input[type=email],body.ly input[type=number],body.ly input[type=url],body.ly select,body.ly textarea{
  border-color:var(--line-stark);border-radius:8px;padding:9px 11px;transition:border-color .15s ease,box-shadow .15s ease}
body.ly input:hover:not(:focus):not([readonly]):not(:disabled),body.ly select:hover:not(:focus),body.ly textarea:hover:not(:focus):not([readonly]){border-color:#9fabb8}
body.ly input:focus,body.ly select:focus,body.ly textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
body.ly input[type=checkbox],body.ly input[type=radio]{accent-color:var(--primary)}
body.ly .btn{font-weight:600;letter-spacing:.01em;padding:8px 14px;border-color:var(--line-stark);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
body.ly .btn:hover{background:#f3f6f9;border-color:#9fabb8}
body.ly .btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);box-shadow:0 1px 2px rgba(21,33,45,.12)}
body.ly .btn.primary:hover{background:color-mix(in srgb,var(--primary) 86%,#000);border-color:color-mix(in srgb,var(--primary) 86%,#000)}
body.ly .btn.ok:hover{background:color-mix(in srgb,var(--ok) 86%,#000)}
body.ly .btn.danger:hover{background:var(--errbg);border-color:color-mix(in srgb,var(--err) 45%,#fff)}
body.ly .btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
body.ly .btn:disabled,body.ly .btn[disabled]{opacity:.5;cursor:not-allowed}
body.ly .btn.small{padding:4px 10px}
body.ly table{font-size:14px}
body.ly th{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--muted);padding:9px 8px;border-bottom:1px solid var(--line-stark);white-space:nowrap}
body.ly td{padding:10px 8px;border-bottom-color:var(--line)}
body.ly tbody tr:last-child td{border-bottom-color:transparent}
body.ly .tag{font-size:11px;letter-spacing:.05em;padding:2px 8px}
body.ly td .tag{white-space:nowrap}
body.ly .flash{border:1px solid color-mix(in srgb,var(--ok) 30%,#fff);border-radius:8px;padding:11px 14px}
body.ly .flash.err{border-color:color-mix(in srgb,var(--err) 30%,#fff)}
/* Kennzahl-Kacheln (Eingang): Zahl in DIN, Zustand über Farbe und Fläche statt Seitenstreifen */
body.ly .tiles{gap:14px}
.schadentab td.sa-aktionen{text-align:right;white-space:nowrap}
.schadentab td.sa-aktionen .btn+.btn{margin-left:6px}
a.sa-aufgabe .tag{margin-left:4px}
#schaden-detail .techwahl select{max-width:320px}
/* Eingang: neue Meldung – Kachel und zugehöriger Kasten blinken, bis die Kachel angeklickt wurde */
@keyframes kachel-neu{0%,100%{box-shadow:var(--schatten,none);border-color:var(--line)}50%{box-shadow:0 0 0 3px rgba(192,57,43,.35),0 0 16px rgba(192,57,43,.35);border-color:var(--err)}}
body.ly .tile.neu,.eingang-raster .e-kasten.neu>.card{animation:kachel-neu 1.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){body.ly .tile.neu,.eingang-raster .e-kasten.neu>.card{animation:none;outline:3px solid var(--err);outline-offset:-1px}}
.ue-punkt{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle}
.ue-legende{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:8px}
table.ue-tab{width:100%;table-layout:auto}
table.ue-tab td{vertical-align:top;overflow-wrap:anywhere}
table.ue-tab td.ue-st{width:18px;padding-right:0}
table.ue-tab td.ue-st .ue-punkt{margin-top:4px}
table.ue-tab td.ue-knopf{text-align:right}
table.ue-tab td.ue-knopf .btn{white-space:normal}
/* Eingang (siteID 20): Kästen im Kachelraster – links unter Spalte 1–3, rechts unter Spalte 5–7 (ab 7 Spalten) */
.eingang-raster{margin-bottom:18px}
.eingang-raster>.e-kasten,.eingang-raster>.e-spalte{grid-column:1/-1;min-width:0;align-self:start}
.eingang-raster .e-spalte{display:flex;flex-direction:column;gap:14px}
.eingang-raster .e-kasten>.card,.eingang-raster .e-kasten>section,.eingang-raster .e-kasten>div{margin:0}
@media (min-width:1500px){
  .eingang-raster{grid-template-columns:repeat(7,minmax(0,1fr))}
  .eingang-raster>.e-links{grid-column:1/span 3}
  .eingang-raster>.e-rechts{grid-column:5/span 3}
  .eingang-raster>.e-voll{grid-column:1/-1}
}
body.ly .tile{border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:var(--schatten);transition:border-color .15s ease,box-shadow .15s ease}
body.ly .tile:hover{border-color:var(--line-stark);box-shadow:0 4px 16px rgba(21,33,45,.09)}
body.ly .tile .nr{font-size:30px;font-weight:600;line-height:1.1;color:var(--ok)}
body.ly .tile.offen .nr{color:var(--warn)}
body.ly .tile.late{background:var(--errbg);border-color:color-mix(in srgb,var(--err) 28%,#fff)}
body.ly .tile.late .nr{color:var(--err)}
body.ly .subnav{display:none}
body.ly footer.seitenfuss{background:transparent;margin-top:0}
/* Hinweiskästen mit Zustand (inline --ton): getönter Rahmen und Grund statt farbigem Seitenstreifen */
body.ly .card[style*="--ton"]{border-color:color-mix(in srgb,var(--ton) 40%,var(--line));background:color-mix(in srgb,var(--ton) 6%,var(--card))}
body.ly .card[style*="--ton"] .card{background:var(--card)}
body.ly .schadenkarte{border:1px solid color-mix(in srgb,var(--err) 40%,var(--line));background:color-mix(in srgb,var(--err) 5%,var(--card))}
body.ly .card.unter-zeile:not(tr *),body.ly .artikel-neu{border:1px solid color-mix(in srgb,var(--primary) 40%,var(--line));background:color-mix(in srgb,var(--primary) 6%,var(--card))}
body.ly .rabatt-hinweis{border:1px solid color-mix(in srgb,var(--ok) 40%,var(--line))}
body.ly .hs-haftung{border:1px solid color-mix(in srgb,#c98a00 45%,var(--line));background:#fffaf0}
/* Erscheinungsbild-Vorschau (siteID 15) im Aufbau mit Seitenleiste */
body.ly .design-vorschau{display:grid;grid-template-columns:minmax(120px,38%) 1fr}
body.ly .dv-kopf{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:10px}
body.ly .dv-logo{background:#fff;border-radius:6px;padding:8px;text-align:center;color:#15212d;font-family:var(--din)}
body.ly .dv-logo img{margin:0 auto;max-width:100%}
body.ly .dv-nav{flex-direction:column;gap:3px;opacity:1;font-family:var(--din)}
body.ly .dv-nav b,body.ly .dv-nav span{padding:5px 8px;border-radius:4px}
body.ly .dv-nav b{background:var(--dv1ink);color:var(--dv1);box-shadow:inset 0 0 0 2px var(--dv1ink),inset 0 0 0 3px var(--dv1)}
body.ly .dv-titel{font-family:var(--din);font-weight:600}
/* ===== Partner-Webseite „Blick durch die Kamera“ (seit 05.11.2026): Farben aus dem Partner (Farbe 1 = Hausfarbe, Farbe 2 = Akzent) ===== */
body.web{--w-nacht:color-mix(in srgb,var(--brand) 34%,#070b10);--w-nacht2:color-mix(in srgb,var(--brand) 22%,#0b1118);--w-ink:#fff;--w-ink2:rgba(255,255,255,.8);--w-fink:#fff;--w-text:#16202b;--w-grau:#55616e;--w-linie:#e1e6ec;--w-flaeche:#f4f6f9;
  font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--w-text);-webkit-font-smoothing:antialiased}
body.web ::selection{background:color-mix(in srgb,var(--primary) 25%,#fff)}
body.web h1,body.web h2,body.web h3,body.web h4,body.web .w-cta,body.web .w-nav,body.web .w-logo span,body.web .w-fakten strong,body.web .w-osd,body.web .w-chip,body.web legend{font-family:var(--din)}
body.web .w-in{max-width:1240px;padding-left:24px;padding-right:24px}
/* Kopf */
body.web .w-kopf{background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--w-linie);box-shadow:none}
body.web .w-kopf .w-in{min-height:76px;gap:18px;flex-wrap:nowrap}
body.web .w-logo{font-size:20px;font-weight:700;color:var(--w-text);padding:8px 0;flex:0 0 auto}
body.web .w-logo img{max-height:50px;max-width:210px}
body.web .w-nav{gap:0;margin-left:auto}
body.web .w-punkt>a{min-height:76px;padding:0 13px;font-size:15px;font-weight:500;letter-spacing:.01em;color:#2a3541;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}
body.web .w-punkt:hover>a,body.web .w-punkt.on>a{color:var(--w-text);border-bottom-color:var(--primary)}
body.web .w-punkt-login>a{color:var(--w-grau)}
body.web .w-sub{border:1px solid var(--w-linie);border-radius:0 0 10px 10px;box-shadow:0 18px 40px rgba(10,20,30,.12)}
body.web .w-kopf-tel{font-family:var(--din);font-weight:600;color:var(--w-text);text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:14px;border-left:1px solid var(--w-linie)}
body.web .w-kopf-tel:hover{color:var(--primary)}
body.web .w-cta{border-radius:8px;padding:10px 18px;font-weight:600;letter-spacing:.01em;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease;filter:none}
body.web .w-cta:hover{background:color-mix(in srgb,var(--primary) 85%,#000);border-color:color-mix(in srgb,var(--primary) 85%,#000);box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 30%,transparent)}
body.web .w-cta:active{transform:translateY(1px)}
body.web .w-cta:focus-visible,body.web a:focus-visible,body.web .w-chip input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px}
body.web .w-cta.gross{padding:13px 22px;font-size:16px}
body.web .w-cta.hell{background:#fff;border-color:#fff;color:var(--w-text)}
body.web .w-cta.hell:hover{background:#f0f3f6;border-color:#f0f3f6;color:var(--w-text);box-shadow:0 6px 18px rgba(0,0,0,.25)}
body.web .w-cta.rahmen{background:transparent;color:var(--w-text);border-color:#c3ccd6;box-shadow:none}
body.web .w-cta.rahmen:hover{background:#fff;border-color:var(--w-text);box-shadow:none}
/* Titelbereich (Unterseiten) */
body.web .w-hero{background:var(--w-nacht);color:var(--w-ink);border-bottom:0;position:relative;overflow:hidden}
body.web .w-hero .w-in{padding-top:56px;padding-bottom:58px}
body.web .w-hero h1{font-size:clamp(30px,4vw,48px);font-weight:600;line-height:1.08;letter-spacing:-.015em;max-width:20ch;text-wrap:balance}
body.web .w-lead{font-size:18px;line-height:1.55;max-width:58ch;margin:16px 0 0;color:var(--w-ink2);opacity:1}
body.web .w-kicker{display:none}
/* Titelbereich der Startseite: Aussage + Anfrage-Start links, Kamerabild rechts */
body.web .w-hero-start .w-in{padding-top:64px;padding-bottom:72px}
.w-hero-raster{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center}
body.web .w-hero-start h1{font-size:clamp(34px,4.6vw,60px);max-width:14ch}
.w-schnell{margin-top:30px;background:#fff;color:var(--w-text);border-radius:12px;padding:20px 22px 16px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.w-schnell fieldset{border:0;margin:0;padding:0}
.w-schnell legend{font-size:15px;font-weight:600;margin-bottom:10px;padding:0}
.w-chips{display:flex;flex-wrap:wrap;gap:6px}
.w-chip{display:inline-flex;cursor:pointer}
.w-chip input{position:absolute;opacity:0;pointer-events:none}
.w-chip span{display:block;padding:7px 12px;border:1px solid #cdd5de;border-radius:8px;font-size:14px;font-weight:500;color:#2a3541;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.w-chip:hover span{border-color:#9aa6b3}
.w-chip input:checked+span{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.w-schnell-felder{display:grid;grid-template-columns:1.3fr 1fr;gap:10px 12px;align-items:end;margin-top:14px}
.w-schnell-felder .w-cta{grid-column:1 / -1;justify-content:center}
.w-schnell-felder label{font-size:13px;color:var(--w-grau);font-weight:600;gap:4px}
.w-schnell-felder .w-cta{height:48px;padding-top:0;padding-bottom:0}
.w-schnell-hinweis{margin:10px 0 0;font-size:13px;color:var(--w-grau)}
.w-schnell-hinweis a{color:var(--w-text);font-weight:600}
body.web input[type=text],body.web input[type=email],body.web input[type=tel],body.web input[type=date],body.web input[type=password],body.web select,body.web textarea{border:1px solid #c6cfd8;border-radius:8px;padding:10px 12px;font-size:15px;transition:border-color .15s ease,box-shadow .15s ease}
body.web input:focus,body.web select:focus,body.web textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
body.web input[type=checkbox],body.web input[type=radio]{accent-color:var(--primary)}
/* Kamerabild mit Einblendungen */
.w-kamerabild{position:relative;margin:0;aspect-ratio:16/11;border-radius:6px;overflow:hidden;background:var(--w-nacht2);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 30px 70px rgba(0,0,0,.45)}
.w-kb-flaeche{position:absolute;inset:0}
.w-kb-flaeche img,.w-kb-flaeche svg{width:100%;height:100%;object-fit:cover;display:block}
.w-kb-flaeche::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 22%,transparent 75%,rgba(0,0,0,.45));pointer-events:none}
.w-turm{background:linear-gradient(180deg,color-mix(in srgb,var(--w-nacht) 40%,#04070a) 0%,color-mix(in srgb,var(--w-nacht) 55%,#0d151d) 78%)}
.w-turm .t-fern{fill:none;stroke:rgba(255,255,255,.2);stroke-width:2}
.w-turm .t-fern rect{fill:rgba(255,255,255,.12);stroke:none}
.w-turm .t-zaun{fill:none;stroke:rgba(255,255,255,.28);stroke-width:2}
.w-turm .t-kegel path{fill:color-mix(in srgb,var(--primary) 55%,#fff);opacity:.1}
.w-turm .t-turm{stroke:#e9eef3;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;fill:color-mix(in srgb,var(--brand) 55%,#1a232d)}
.w-turm .t-mast{fill:#dfe5eb;stroke:none}
.w-turm .t-solar{fill:color-mix(in srgb,var(--primary) 45%,#0e1823)}
.w-turm .t-fein{fill:none;stroke:rgba(233,238,243,.55);stroke-width:1.5}
.w-turm .t-balken{stroke-width:5}
.w-turm .t-kamera rect{fill:#f4f7fa;stroke:none}
.w-turm .t-leuchte{fill:#ff5a4e;stroke:none}
.w-turm .t-boden{fill:rgba(0,0,0,.28)}
.w-osd{position:absolute;z-index:2;font-size:12px;font-weight:600;letter-spacing:.12em;color:rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.6);display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.w-osd-ol{top:18px;left:20px}.w-osd-or{top:18px;right:20px}.w-osd-ul{bottom:18px;left:20px}.w-osd-ur{bottom:18px;right:20px;color:rgba(255,255,255,.7)}
.w-rec{width:9px;height:9px;border-radius:50%;background:#ff4b3e;box-shadow:0 0 0 3px rgba(255,75,62,.25);animation:w-rec 2s ease-in-out infinite}
.w-punkt-ok{width:9px;height:9px;border-radius:50%;background:#35d07f}
@keyframes w-rec{0%,100%{opacity:1}50%{opacity:.25}}
.w-ecke{position:absolute;z-index:2;width:22px;height:22px;border:2px solid rgba(255,255,255,.75)}
.w-ecke.e1{top:10px;left:10px;border-right:0;border-bottom:0}.w-ecke.e2{top:10px;right:10px;border-left:0;border-bottom:0}
.w-ecke.e3{bottom:10px;left:10px;border-right:0;border-top:0}.w-ecke.e4{bottom:10px;right:10px;border-left:0;border-top:0}
.w-kb-text{position:absolute;left:-9999px}
@media (prefers-reduced-motion:reduce){.w-rec{animation:none}}
/* Startseite: volle Breite */
body.web main.w-inhalt.w-start{max-width:none;padding:0}
.w-fakten{background:#fff;border-bottom:1px solid var(--w-linie)}
.w-fakten-raster{display:grid;grid-template-columns:repeat(3,1fr)}
.w-fakten-raster>div{padding:40px 32px 38px 0;margin-right:32px;border-right:1px solid var(--w-linie)}
.w-fakten-raster>div:last-child{border-right:0;margin-right:0}
.w-fakten strong{display:block;font-size:26px;font-weight:600;line-height:1.15;color:var(--w-text)}
.w-fakten p{margin:8px 0 0;color:var(--w-grau);max-width:34ch}
.w-abschnitt{padding:88px 0}
.w-abschnitt h2,.w-portal h2,.w-kontaktband h2{text-wrap:balance;font-size:clamp(26px,3vw,38px);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 18px}
.w-ueber-raster{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.w-ueber .w-text{font-size:17px}
.w-ueber .w-text>*:first-child{margin-top:0}
.w-ablauf{background:var(--w-flaeche)}
.w-schritte{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;counter-reset:schritt}
.w-schritte li{counter-increment:schritt;position:relative;padding-top:62px}
.w-schritte li::before{content:counter(schritt);position:absolute;top:0;left:0;width:42px;height:42px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-family:var(--din);font-weight:700;font-size:19px;display:flex;align-items:center;justify-content:center}
.w-schritte li::after{content:"";position:absolute;top:21px;left:58px;right:-16px;height:1px;background:#c9d2dc}
.w-schritte li:last-child::after{display:none}
.w-schritte strong{font-family:var(--din);font-size:20px;font-weight:600}
.w-schritte p{margin:6px 0 0;color:var(--w-grau)}
.w-einsatz-liste{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--w-linie)}
.w-einsatz-liste a{display:grid;grid-template-columns:minmax(180px,.9fr) 2fr 40px;gap:24px;align-items:center;padding:24px 4px;border-bottom:1px solid var(--w-linie);text-decoration:none;color:var(--w-text);transition:background-color .2s ease,padding .2s ease}
.w-einsatz-liste strong{font-family:var(--din);font-size:22px;font-weight:600}
.w-einsatz-liste span{color:var(--w-grau)}
.w-einsatz-liste i{font-style:normal;font-size:22px;color:var(--primary);justify-self:end;transition:transform .2s ease}
.w-einsatz-liste a:hover{background:var(--w-flaeche);padding-left:16px;padding-right:16px}
.w-einsatz-liste a:hover i{transform:translateX(4px)}
.w-portal{background:var(--w-flaeche);border-top:1px solid var(--w-linie)}
body.web .w-portal-raster{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:64px;padding-bottom:64px}
.w-portal p{margin:0;color:var(--w-grau);max-width:62ch}
.w-kontaktband{background:var(--w-nacht);color:var(--w-ink)}
body.web .w-kontakt-raster{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;padding-top:80px;padding-bottom:80px}
.w-kontaktband p{margin:0;color:var(--w-ink2);max-width:52ch}
.w-kontakt-wege{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.w-kontakt-wege a{color:var(--w-ink)}
.w-gross-link{font-family:var(--din);font-size:clamp(26px,3vw,36px);font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums}
.w-gross-link:hover{text-decoration:underline;text-underline-offset:4px}
/* Unterseiten */
body.web main.w-inhalt{padding:64px 24px 88px}
body.web article.seiteninhalt.w-text{max-width:72ch;font-size:17px;line-height:1.7}
body.web .w-text h2{font-size:30px;font-weight:600;margin:44px 0 14px}
body.web .w-text h3{font-size:21px;font-weight:600;margin:32px 0 8px;padding-left:0}
body.web .w-text h3::before{display:none}
body.web .w-text ul li::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--primary);top:.62em;margin:0;left:6px}
body.web .w-text ul li{padding-left:26px}
body.web .w-text img{max-width:100%;height:auto;border-radius:8px}
body.web .w-cta-band{margin-top:64px;background:var(--w-flaeche);border:1px solid var(--w-linie);border-radius:12px;padding:32px 36px}
body.web .w-cta-band strong{font-family:var(--din);font-size:24px;font-weight:600}
body.web .w-cta-band span{color:var(--w-grau)}
/* Anfrage und Kundenlogin */
body.web .w-zweispaltig{gap:56px}
body.web .w-feldgruppe legend{font-size:18px;font-weight:600}
body.web .w-kachel{border-color:#cdd5de;border-radius:8px;transition:border-color .15s ease,background-color .15s ease}
body.web .w-kachel:hover{border-color:#9aa6b3}
body.web .w-kontaktbox{background:var(--w-nacht);color:var(--w-ink);border-radius:12px;padding:28px;top:100px}
body.web .w-kontaktbox h3{font-size:22px;font-weight:600}
body.web .w-kontaktzeile{font-family:var(--din);font-weight:600;color:var(--w-ink);border-top-color:color-mix(in srgb,var(--w-ink) 20%,transparent)}
body.web .w-danke{border-radius:12px}
body.web .card.login{max-width:440px;border:1px solid var(--w-linie);border-radius:12px;box-shadow:0 20px 50px rgba(10,20,30,.1);padding:30px}
body.web .login-kopf h1{font-size:26px}
/* Fuß */
body.web .w-fuss{background:var(--w-nacht2);color:color-mix(in srgb,var(--w-fink) 72%,transparent)}
body.web .w-spalten{padding-top:64px;padding-bottom:48px;gap:40px}
body.web .w-fuss h4{font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--w-fink)}
body.web .w-fname{color:var(--w-fink)}
body.web .w-fuss a{color:color-mix(in srgb,var(--w-fink) 72%,transparent)}
body.web .w-fuss a:hover{color:var(--w-fink)}
body.web .w-fuss a.w-cta{display:inline-flex;color:var(--primary-ink);margin-top:12px}
body.web .w-fname{font-family:var(--din);font-size:20px;font-weight:600}
body.web .w-fuss .w-social{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:12px}
body.web .w-fuss .w-social a{display:inline;padding:0;font-weight:600}
body.web .w-unten{color:color-mix(in srgb,var(--w-fink) 50%,transparent);border-top-color:color-mix(in srgb,var(--w-fink) 12%,transparent)}
@media (max-width:1100px){body.web .w-kopf-tel{display:none}}
@media (max-width:980px){
  body.web .w-kopf .w-in{flex-wrap:wrap;min-height:64px}
  body.web .w-nav{margin:0 0 14px}
  body.web .w-punkt>a{min-height:0;padding:13px 4px;border-bottom:1px solid var(--w-linie)}
  .w-hero-raster{grid-template-columns:1fr;gap:36px}
  body.web .w-hero-start .w-in{padding-top:40px;padding-bottom:48px}
  .w-fakten-raster{grid-template-columns:1fr}
  .w-fakten-raster>div{padding:26px 0;margin:0;border-right:0;border-bottom:1px solid var(--w-linie)}
  .w-fakten-raster>div:last-child{border-bottom:0}
  .w-abschnitt{padding:60px 0}
  .w-ueber-raster{grid-template-columns:1fr;gap:12px}
  .w-schritte{grid-template-columns:1fr;gap:28px}
  .w-schritte li{padding:4px 0 0 62px}
  .w-schritte li::after{display:none}
  .w-einsatz-liste a{grid-template-columns:1fr 32px;gap:4px 16px}
  .w-einsatz-liste span{grid-column:1;grid-row:2}
  .w-einsatz-liste i{grid-row:1 / span 2;grid-column:2}
  body.web .w-portal-raster,body.web .w-kontakt-raster{flex-direction:column;align-items:flex-start;grid-template-columns:1fr;padding-top:48px;padding-bottom:48px}
}
@media (max-width:560px){
  body.web .w-in{padding-left:18px;padding-right:18px}
  .w-schnell{padding:18px 16px 14px}
  .w-schnell-felder{grid-template-columns:1fr}
  .w-schnell-felder .w-cta{width:100%;justify-content:center}
  body.web main.w-inhalt{padding:44px 18px 64px}
  body.web .w-cta-band{padding:24px}
  .w-osd{font-size:10px;letter-spacing:.08em}
}
/* Fehlalarm melden (siteID 48) und Fehlalarme (siteID 49) */
.fa-auswahl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.fa-wahl{all:unset;box-sizing:border-box;cursor:pointer;display:block;border:2px solid var(--line);border-radius:10px;padding:6px;background:#fff}
.fa-wahl img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;display:block;background:#000}
.fa-wahl span{display:block;font-size:13px;color:var(--muted);margin-top:4px}
.fa-wahl:hover{border-color:var(--primary)}
.fa-wahl:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.fa-wahl.on{border-color:var(--primary);background:#e5eefc}
.fa-wahl.on span{color:var(--primary);font-weight:600}
.fa-werkzeuge{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:10px}
.fa-werkzeuge .fa-gruppe{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fa-werkzeuge .fa-gruppe>span{font-size:13px;color:var(--muted)}
.fa-farbe{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.fa-farbe.on{box-shadow:0 0 0 3px var(--primary)}
.fa-werkzeuge .btn.on{border-color:var(--primary);color:var(--primary);background:#e5eefc}
.fa-flaeche{background:#0d131a;border-radius:10px;padding:6px;line-height:0}
.fa-flaeche canvas{width:100%;height:auto;display:block;border-radius:6px;touch-action:none;cursor:crosshair}
.fa-meldung .fa-zeile{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}
.fa-meldung .fa-bild img{width:100%;border-radius:8px;border:1px solid var(--line);display:block;background:#000}
.fa-daten{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:10px 0}
.fa-daten dt{color:var(--muted);font-size:13px}
.fa-daten dd{margin:0}
.fa-mini{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:4px;border:1px solid var(--line);display:block;background:#000}
@media (max-width:860px){.fa-meldung .fa-zeile{grid-template-columns:1fr}}
