:root{
 --bg:#f3f6f1;--panel:#fff;--panel-soft:#f8faf7;--ink:#183126;--muted:#6b7c70;--line:#dce6dc;
 --green:#244d36;--green2:#3d7656;--green3:#eaf3e8;--cream:#f8f6ee;--warn:#a76611;--danger:#a13b35;--blue:#3a648e;
 --shadow:0 12px 38px rgba(33,70,48,.09);--radius:20px;--radius-sm:13px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 85% 10%,#dcead7 0,transparent 32%),linear-gradient(145deg,#edf4eb,#f8faf7)}
.loginCard{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:0 25px 80px #244d3620}.loginLogo{width:64px;height:64px;border-radius:20px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:30px}.login h1{font-size:27px;margin:18px 0 5px}.muted{color:var(--muted)}.small{font-size:12px}.login .hint{margin-top:18px;background:var(--green3);border-radius:14px;padding:12px 14px;font-size:12px;color:#45624f}
.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:750;color:#597064}.field input,.field select,.field textarea{border:1px solid #ccd9ce;border-radius:12px;background:#fff;padding:11px 12px;outline:none;color:var(--ink);width:100%}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7da18a;box-shadow:0 0 0 3px #7da18a20}.loginForm{display:grid;gap:14px;margin-top:22px}
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 14px;border-radius:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{background:#f8faf7}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.soft{background:var(--green3);border-color:transparent;color:#2e5c40}.btn.danger{background:#fff3f2;color:var(--danger);border-color:#f0d0cc}.btn.small{padding:7px 10px;font-size:12px}.btn.icon{padding:9px 11px}.btn:disabled{opacity:.45;cursor:not-allowed}
.shell{min-height:100vh;display:grid;grid-template-columns:282px 1fr}.sidebar{height:100vh;position:sticky;top:0;background:linear-gradient(180deg,#244d36,#315f45);color:#fff;padding:18px 14px;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 16px}.brandMark{width:48px;height:48px;border:1px solid #ffffff24;background:#ffffff12;border-radius:16px;display:grid;place-items:center;font-size:24px}.brand strong{display:block;font-size:15px;line-height:1.2}.brand small{color:#cce0d0}.navGroup{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#bcd0c0;margin:18px 10px 6px}.nav button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 11px;border:0;background:transparent;color:#e9f3eb;border-radius:11px;text-align:left;margin:2px 0}.nav button:hover,.nav button.active{background:#ffffff15}.nav .ico{width:23px;text-align:center;font-size:15px}.nav .count{margin-left:auto;background:#ffffff15;padding:2px 7px;border-radius:999px;font-size:10px}.sideFoot{margin-top:18px;padding:12px;border:1px solid #ffffff1d;background:#ffffff0c;border-radius:14px;font-size:11px;color:#d2e1d5}.appMeta{margin-top:10px;padding-top:10px;border-top:1px solid #ffffff1d;line-height:1.55;color:#dce9df}.versionBadge{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.loginMeta{margin-top:16px;text-align:center;font-size:11px;color:var(--muted);line-height:1.6}.mainFoot{padding:4px 26px 18px;text-align:center;font-size:10px;color:var(--muted)}
.main{min-width:0}.topbar{height:76px;position:sticky;top:0;z-index:30;background:rgba(243,246,241,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px}.topTitle{display:flex;gap:10px;align-items:center}.topTitle h2{margin:0;font-size:19px}.topTitle .sub{font-size:11px;color:var(--muted)}.mobileMenu{display:none}.topActions{display:flex;align-items:center;gap:8px}.userChip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px 6px 7px;display:flex;align-items:center;gap:8px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--green3);display:grid;place-items:center;font-weight:800;color:var(--green)}.userChip strong{font-size:12px}.userChip small{font-size:10px;color:var(--muted);display:block}
.content{padding:24px;max-width:1580px;margin:0 auto}.view{display:none}.view.active{display:block}.hero{background:linear-gradient(125deg,#2c5b40,#244d36);border-radius:26px;color:#fff;padding:27px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-70px;top:-100px;width:300px;height:300px;border-radius:50%;background:#ffffff0c}.hero .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#cce0d0}.hero h1{font-size:28px;margin:8px 0 7px}.hero p{margin:0;max-width:820px;color:#d8e8dc}.grid{display:grid;gap:15px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.mt{margin-top:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow)}.metric .label{font-size:11px;color:var(--muted)}.metric .value{font-size:29px;font-weight:800;margin:4px 0}.metric .hint{font-size:11px;color:var(--muted)}.metric.red{border-left:4px solid var(--danger)}.metric.yellow{border-left:4px solid #d29a43}.metric.green{border-left:4px solid #5d9b6c}.sectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.sectionHead h3{margin:0;font-size:21px}.sectionHead p{margin:4px 0 0;font-size:12px;color:var(--muted)}.buttonRow{display:flex;gap:8px;flex-wrap:wrap}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.search{min-width:260px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.tableWrap{overflow:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:12px;text-align:left;vertical-align:top}.table th{background:#f7f9f6;color:#66786b;font-size:10px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fbfcfa}.right{text-align:right!important}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;background:var(--green3);color:#376247;font-size:10px;font-weight:800}.badge.warn{background:#fff2dd;color:#8d5c12}.badge.red{background:#fde9e7;color:#8e3b36}.badge.blue{background:#e9f1f8;color:#3f6687}.badge.gray{background:#eef0ee;color:#667066}.empty{text-align:center;padding:34px;color:var(--muted)}
.quickGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.quickCard{border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;text-align:left;min-width:0;max-width:100%;overflow:hidden}.quickCard b{display:block;margin-bottom:3px;white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:auto;line-height:1.27}.quickCard small{display:block;color:var(--muted);white-space:normal;overflow-wrap:anywhere;line-height:1.3}.metricButton{appearance:none;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;min-width:0;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.metricButton:hover{transform:translateY(-1px);border-color:#b9cdbd;box-shadow:0 14px 38px rgba(33,70,48,.13)}.metricButton:focus-visible{outline:3px solid #7da18a55;outline-offset:2px}.metricButton .label,.metricButton .value,.metricButton .hint{white-space:normal;overflow-wrap:anywhere}.metricButton .detailCue{display:inline-flex;margin-top:8px;font-size:10px;font-weight:800;color:var(--green);background:var(--green3);border-radius:999px;padding:4px 7px}.dashboardDetailList{display:grid;gap:8px}.dashboardDetailRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 12px}.dashboardDetailRow .main{min-width:0}.dashboardDetailRow .title{font-weight:800;overflow-wrap:anywhere}.dashboardDetailRow .meta{margin-top:3px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.dashboardDetailSection{margin-top:16px}.dashboardDetailSection:first-child{margin-top:0}.dashboardDetailSection h4{display:flex;align-items:center;gap:7px;margin:0 0 8px}.traffic{display:grid;gap:9px}.trafficRow{display:grid;grid-template-columns:10px 70px 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.trafficRow:last-child{border-bottom:0}.dot{width:10px;height:10px;border-radius:50%}.dot.red{background:#bd4d45}.dot.yellow{background:#d8a04a}.dot.green{background:#67a173}.progress{height:9px;background:#edf1ed;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green2);border-radius:999px}.restoreProgressIntro{font-size:13px;color:var(--muted)}.restoreProgressTrack{height:14px;background:#e8eee9;border-radius:999px;overflow:hidden}.restoreProgressBar{height:100%;background:var(--green2);border-radius:999px;transition:width .2s ease;position:relative}.restoreProgressBar.indeterminate{width:72%!important;animation:restorePulse 1.15s ease-in-out infinite alternate}.restoreProgressMeta{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:12px}.restoreSteps{display:grid;gap:10px}.restoreStep{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.restoreStep>span{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#eef2ee;color:var(--muted);font-weight:850}.restoreStep small{display:block;color:var(--muted);margin-top:2px}.restoreStep.active{border-color:#a7bea9;background:#f5faf5}.restoreStep.active>span{background:var(--green);color:#fff}.restoreStep.done{border-color:#b9d4bd;background:#f1f8f2}.restoreStep.done>span{background:var(--green2);color:#fff}.restoreStep.error{border-color:#e7b1ad;background:#fff4f3}.restoreStep.error>span{background:#bd4d45;color:#fff}.successBox{background:#edf7ef;color:#245c31;padding:11px;border-radius:12px;font-size:12px;margin-top:10px}@keyframes restorePulse{from{transform:translateX(-22%);opacity:.62}to{transform:translateX(22%);opacity:1}}
.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field.full{grid-column:1/-1}.checkLine{display:flex;align-items:center;gap:8px;padding-top:22px}.checkLine input{width:auto}.modalBack{display:none;position:fixed;z-index:100;inset:0;background:#17312670;backdrop-filter:blur(5px);padding:18px;overflow:auto}.modalBack.show{display:grid;place-items:center}.modal{width:min(900px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 100px #0004}.modal.wide{width:min(1200px,100%)}.modalHead{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--line);padding:17px 19px;display:flex;justify-content:space-between;align-items:center}.modalHead h3{margin:0}.modalBody{padding:19px}.modalFoot{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:14px 19px;display:flex;justify-content:flex-end;gap:8px}.permGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permItem{border:1px solid var(--line);border-radius:12px;padding:10px}.permItem b{font-size:12px;display:block;margin-bottom:6px}.permItem select{width:100%;border:1px solid var(--line);border-radius:9px;padding:7px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:15px}.tab{border:0;background:transparent;padding:10px 12px;font-weight:750;color:var(--muted)}.tab.active{color:var(--green);border-bottom:2px solid var(--green)}.sortHead{appearance:none;border:0;background:transparent;padding:0;font:inherit;font-weight:800;color:inherit;cursor:pointer;text-align:left}.sortHead:hover{color:var(--green)}.portalCard{border:1px solid var(--line);border-radius:16px;padding:15px;background:#fff}.kpiSmall{font-size:22px;font-weight:850;line-height:1.18;margin-top:6px}.kpiLine{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.kpiLine:last-child{border-bottom:0}.toast{position:fixed;z-index:200;right:18px;bottom:18px;background:#183126;color:#fff;padding:12px 15px;border-radius:12px;box-shadow:0 12px 35px #0003;transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:translateY(0);opacity:1}.errorBox{background:#fdeceb;color:#8b3834;padding:11px;border-radius:12px;font-size:12px;margin-top:10px}
@media(max-width:1200px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.quickGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;width:282px;left:-292px;transition:.2s}.sidebar.open{left:0;box-shadow:25px 0 60px #0005}.mobileMenu{display:inline-flex}.content{padding:15px}.topbar{padding:0 14px}.g2,.g3,.g4,.formGrid,.permGrid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.search{min-width:0;width:100%}.quickGrid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.userChip .uText{display:none}}
@media(max-width:520px){.quickGrid{grid-template-columns:1fr 1fr}.hero{padding:21px}.hero h1{font-size:23px}.topTitle .sub{display:none}.content{padding:11px}.sectionHead{flex-direction:column}.buttonRow{width:100%}.buttonRow .btn{flex:1}.trafficRow{grid-template-columns:10px 60px 1fr}.trafficRow .btn{display:none}}

.mapCanvas{position:relative;min-height:620px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(90deg,#e7efe2 1px,transparent 1px),linear-gradient(#e7efe2 1px,transparent 1px),#f8faf6;background-size:32px 32px;overflow:hidden}.plot{position:absolute;border:2px solid #5f956b;background:#e5f2e5;border-radius:10px;padding:6px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;text-align:center;min-width:54px;min-height:42px;box-shadow:0 5px 14px #21472f18}.plot.red{border-color:#b94d45;background:#fde8e5}.plot.yellow{border-color:#ce9740;background:#fff1da}.plot.gray{border-color:#939d95;background:#eef0ee}.plot:hover{transform:translateY(-1px);z-index:2}.notificationBtn{position:relative}.notificationCount{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#a13b35;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:800}.fileList{display:grid;gap:8px;margin-top:10px}.fileRow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:#fafcf9}.fileRow a{color:var(--green);font-weight:700;text-decoration:none}.infoBox{background:#eef5ec;border:1px solid #d5e5d2;border-radius:13px;padding:12px}.dangerBox{background:#fff1ef;border:1px solid #f0d0cc;border-radius:13px;padding:12px;color:#843d37}.fieldRuleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:360px;overflow:auto}.fieldRuleGrid .permItem{background:#fafcf9}.portalActions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.portalActions button{min-height:78px}.timeline{display:grid;gap:8px}.timelineRow{border-left:4px solid #75a17f;padding:7px 0 7px 12px}.timelineRow.inspection-green{border-left-color:#4e9b62}.timelineRow.inspection-yellow{border-left-color:#d6a23f}.timelineRow.inspection-red{border-left-color:#c65249}.timelineRow.inspection-orange{border-left-color:#dd7d32}.timelineRow b{font-size:12px}.timelineRow small{display:block;color:var(--muted);margin-top:3px}.qrBox{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px}.systemLinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.systemLink{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:15px;padding:15px;background:#fff}.systemLink b{display:block;margin-bottom:4px}.systemLink small{color:var(--muted)}

.mapCanvas.mapReal{min-height:0;background:#eef3eb;background-size:cover}.mapCanvas.mapReal img.mapPlan{display:block;width:100%;height:100%;object-fit:fill;position:absolute;inset:0;user-select:none;pointer-events:none}.mapSvg{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible}.mapShape{vector-effect:non-scaling-stroke;stroke:#4f8a5f;stroke-width:.45;fill:rgba(109,166,119,.34);cursor:pointer}.mapShape.red{stroke:#a8443e;fill:rgba(194,76,67,.30)}.mapShape.yellow{stroke:#b97d27;fill:rgba(222,166,76,.34)}.mapShape.gray{stroke:#828b83;fill:rgba(150,157,151,.28)}.mapShape.selected{stroke:#183126;stroke-width:.8;fill:rgba(36,77,54,.26)}.mapLabel{position:absolute;z-index:4;transform:translate(-50%,-50%);border:1px solid #ffffffcc;background:#ffffffeb;color:#173126;border-radius:8px;padding:4px 7px;font-weight:850;font-size:10px;box-shadow:0 3px 10px #17312622;min-width:42px}.mapLabel:hover,.mapLabel.selected{background:#183126;color:#fff}.mapEditorCard{display:grid;grid-template-columns:minmax(220px,1.1fr) 2fr;gap:14px;align-items:end}.mapEditorActions{display:flex;gap:8px;flex-wrap:wrap}.mapHint{margin-top:10px;padding:10px 12px;border-radius:12px;background:#eef5ec;color:#42614d;font-size:12px}.mapHint.active{background:#fff4dc;color:#765112}.mapUnassigned{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.mapPoint{fill:#fff;stroke:#183126;stroke-width:.5;vector-effect:non-scaling-stroke;pointer-events:none}.mapDraft{fill:rgba(36,77,54,.12);stroke:#183126;stroke-width:.5;stroke-dasharray:1.6 1;vector-effect:non-scaling-stroke;pointer-events:none}.mapCanvas.editing{cursor:crosshair}.mapPlanInfo{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mapStage{overflow:auto;border-radius:22px}.mapCanvas{touch-action:manipulation}

@media(max-width:900px){.portalActions,.systemLinks{grid-template-columns:1fr 1fr}.mapCanvas{min-height:480px}.mapCanvas.mapReal{min-height:0}.mapEditorCard{grid-template-columns:1fr}}

/* V6: amtliche Luftbildkarte / Parzellen-Geoposition */
.geoPickerWrap{grid-column:1/-1;border:1px solid var(--line);border-radius:18px;padding:14px;background:var(--panel-soft)}
.geoPickerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.geoPickerHead b{display:block}.geoPickerHead .muted{max-width:760px}
.geoPickerMap,.aerialMap{height:480px;border:1px solid #cfdacf;border-radius:16px;overflow:hidden;background:#e7ece7;z-index:1}.aerialMap{height:680px}
.geoPickerTools{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.geoMapStatus{padding:9px 11px;border-radius:11px;background:#eef5ec;color:#45624f;font-size:12px}.geoMapStatus.warn{background:#fff4dc;color:#765112}.geoMapStatus.ok{background:#e7f3e8;color:#2d6542}
.geoCoord{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.geoLegend{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.geoLegend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.geoLegend .dot.g{background:#67a173}.geoLegend .dot.y{background:#d8a04a}.geoLegend .dot.r{background:#bd4d45}.geoLegend .dot.x{background:#8a938b}
.leaflet-container{font:inherit;color:var(--ink)}.leaflet-control-layers{border-radius:12px!important;box-shadow:0 5px 20px #17312622!important}.leaflet-popup-content-wrapper{border-radius:13px}.leaflet-popup-content{margin:11px 13px}.kgvParcelMarker{background:transparent;border:0}.kgvParcelBubble{min-width:34px;height:34px;border-radius:999px;background:#244d36;color:#fff;border:2px solid #fff;box-shadow:0 3px 12px #0004;display:flex;align-items:center;justify-content:center;gap:5px;font-weight:850;font-size:10px;padding:0 8px;white-space:nowrap}.kgvParcelBubble .reason{font-size:9px;font-weight:800;opacity:.96;border-left:1px solid #ffffff88;padding-left:5px}.kgvParcelBubble.yellow{background:#ba7b22}.kgvParcelBubble.red{background:#a8443e}.kgvParcelBubble.gray{background:#727c74}
.geoMapFallback{border:1px dashed #c8d5c9;border-radius:16px;padding:20px;background:#f8faf7;color:var(--muted)}
@media(max-width:700px){.geoPickerMap{height:390px}.aerialMap{height:520px}.geoPickerWrap{padding:10px}.leaflet-control-layers{max-width:210px;font-size:12px}}


/* V7: Sortierbare Listen */
.sortTools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sortTools label{font-size:11px;font-weight:800;color:var(--muted)}.sortTools select{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 11px;color:var(--ink)}.sortHead{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:0;display:inline-flex;align-items:center;gap:5px;cursor:pointer}.sortHead:hover{color:var(--green)}.sortHead.active{color:var(--green)}.sortArrow{font-size:12px;line-height:1}.sortSummary{font-size:11px;color:var(--muted);white-space:nowrap}@media(max-width:760px){.toolbar{align-items:stretch;flex-direction:column}.toolbar>.search{width:100%;min-width:0}.sortTools{width:100%}.sortTools select{flex:1;min-width:0}.sortSummary{display:none}}


/* V7.3 */
.bulkBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid #cfe0d2;background:#f2f8f1;border-radius:13px}.bulkBar .spacer{flex:1}.bulkCheck{width:17px;height:17px;accent-color:var(--green)}
.globalSearchBox{display:grid;grid-template-columns:1fr auto;gap:9px}.globalResults{display:grid;gap:8px;margin-top:14px}.globalResult{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.globalResult:hover{background:#fbfcfa}.globalResult .meta{font-size:11px;color:var(--muted);margin-top:3px}.globalResult .kind{min-width:92px;text-align:center}
.healthGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.healthCard{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.healthCard b{display:block;font-size:19px}.healthCard small{color:var(--muted)}
.fileMeta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.fileUploadMeta{display:grid;grid-template-columns:160px 150px 1fr auto;gap:8px;align-items:end;margin-top:12px}.fileUploadMeta .field{min-width:0}.fileActions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.fileRow .fileActions a{font-weight:700}
.calendarHead{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0 6px}.calendarHead div{text-align:center;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendarCell{min-height:115px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px}.calendarCell.out{opacity:.45}.calendarCell.today{border-color:#76a184;box-shadow:inset 0 0 0 1px #76a184}.calendarCell .dayNo{font-size:11px;font-weight:800;margin-bottom:5px}.calendarItem{display:block;border-radius:8px;background:var(--green3);padding:5px 6px;margin:4px 0;font-size:10px;line-height:1.27;overflow:hidden;text-overflow:ellipsis}.calendarItem.warn{background:#fff1d9}.calendarItem.red{background:#fde9e7}
.systemStatus{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.systemLog{max-height:330px;overflow:auto}.loginEventOk{color:#376247}.loginEventFail{color:var(--danger)}.delegationActive{border-left:4px solid #6e9e78}.delegationExpired{opacity:.65}
.mailAttachments{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fafcf9}.mailAttachment{display:flex;gap:8px;align-items:center;padding:5px 2px}.mailAttachment input{width:auto}
.v72Notice{border:1px solid #d4e4d2;background:#eef6ec;border-radius:13px;padding:12px}.twofaWarn{border-color:#e6c789;background:#fff5df}
@media(max-width:900px){.healthGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fileUploadMeta{grid-template-columns:1fr 1fr}.fileUploadMeta .desc{grid-column:1/-1}.calendarCell{min-height:90px}.globalSearchBox{grid-template-columns:1fr}.bulkBar .spacer{display:none}}
@media(max-width:560px){.healthGrid{grid-template-columns:1fr}.fileUploadMeta{grid-template-columns:1fr}.calendarGrid{gap:3px}.calendarCell{padding:5px;min-height:78px}.calendarItem{font-size:9px;padding:3px}.calendarHead{gap:3px}}


/* V7.3: Begehungs-Assistent & zentrales Dokumentenarchiv */
.inspectionCatalog{display:grid;gap:12px}.inspectionGroup{border:1px solid var(--line);border-radius:15px;background:#fbfcfa;padding:12px}.inspectionGroup h4{margin:0 0 9px;font-size:13px;color:var(--green)}.issueGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.issueCheck{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;min-height:48px}.issueCheck input{margin-top:3px}.issueCheck span{font-size:12px;line-height:1.35}.mailNotifyCard{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#f8fbf7;border-radius:14px;padding:12px 14px;cursor:pointer;transition:.18s ease}.mailNotifyCard:hover{border-color:#b8cfbd;background:#f3f8f2}.mailNotifyText{display:flex;flex-direction:column;gap:2px;min-width:0}.mailNotifyText b{font-size:12px}.mailNotifyText span{font-size:11px;line-height:1.35;color:var(--muted)}.mailToggle{position:relative;display:inline-flex;flex:0 0 auto;width:44px;height:24px}.mailToggle input{position:absolute;opacity:0;pointer-events:none}.mailToggleTrack{position:absolute;inset:0;border-radius:999px;background:#dfe7df;border:1px solid #cad6cc;transition:.2s ease}.mailToggleTrack:after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:.2s ease}.mailToggle input:checked+.mailToggleTrack{background:var(--green);border-color:var(--green)}.mailToggle input:checked+.mailToggleTrack:after{transform:translateX(20px)}.mailToggle input:focus-visible+.mailToggleTrack{outline:3px solid #cfe0d2;outline-offset:2px}@media(max-width:560px){.mailNotifyCard{align-items:flex-start}.mailToggle{margin-top:2px}}.docFilters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr));gap:8px;align-items:end}.docMeta{line-height:1.4}.docName{font-weight:800;color:var(--ink)}.protocolPreview{white-space:pre-wrap;min-height:260px}.archiveCount{font-weight:800}.archiveTable td{vertical-align:top}.archiveDesc{max-width:360px;white-space:normal}.dueQuick{display:flex;gap:6px;flex-wrap:wrap}.dueQuick .btn{padding:7px 9px}.inspectionHint{border-left:4px solid #d29a43;background:#fff8e9;padding:10px 12px;border-radius:10px;font-size:11px;color:#705326}
@media(max-width:900px){.issueGrid{grid-template-columns:1fr}.docFilters{grid-template-columns:1fr 1fr}.docFilters .wideMobile{grid-column:1/-1}}@media(max-width:560px){.docFilters{grid-template-columns:1fr}}

@media(max-width:380px){.quickGrid{grid-template-columns:1fr}.dashboardDetailRow{grid-template-columns:1fr}.dashboardDetailRow .btn{width:100%}}

.invoiceSetup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoiceItems{display:grid;gap:8px}.invoiceItem{display:grid;grid-template-columns:minmax(220px,2.2fr) 90px 82px 110px 110px minmax(130px,1fr) auto;gap:7px;align-items:end;border:1px solid var(--line);padding:9px;border-radius:13px;background:#fbfcfa}.invoiceItem .field label{font-size:10px}.invoiceTotal{font-size:24px;font-weight:850;text-align:right}.invoiceMeterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoiceMeter{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.invoiceMeter .row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.invoicePreviewFrame{width:100%;height:460px;border:1px solid var(--line);border-radius:14px;background:#fff}.lockedNotice{border:1px solid #bad4bf;background:#edf7ed;border-radius:12px;padding:10px 12px;color:#315f40}.invoiceItem input{min-width:0}@media(max-width:1100px){.invoiceItem{grid-template-columns:1fr 1fr 1fr}.invoiceItem .desc,.invoiceItem .period{grid-column:1/-1}}@media(max-width:700px){.invoiceSetup,.invoiceMeterGrid{grid-template-columns:1fr}.invoiceItem{grid-template-columns:1fr 1fr}.invoiceItem .desc,.invoiceItem .period{grid-column:1/-1}.invoicePreviewFrame{height:360px}}


/* V7.7.2 Cloud-Archiv & Sammelimport */
.cloudHero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.cloudProvider{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cloudDrop{border:2px dashed #b8cdbd;border-radius:18px;padding:24px;background:#f8fbf7;text-align:center}.cloudDrop.drag{border-color:var(--green);background:#eef6ec}.cloudProgress{height:10px;border-radius:999px;background:#e4ece5;overflow:hidden}.cloudProgress>span{display:block;height:100%;width:0;background:var(--green);transition:width .15s}.archiveStatGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.archiveStat{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.archiveStat b{display:block;font-size:24px}.reviewPath{max-width:520px;white-space:normal;word-break:break-word}.confidence{font-weight:800}.confidence.high{color:#2d6c49}.confidence.mid{color:#a46b18}.confidence.low{color:#9f3f38}.cloudHelp{padding:13px 15px;border-radius:13px;background:#eef5ec;border:1px solid #d5e3d6;line-height:1.5}.cloudSettings details{margin-top:10px}.cloudSettings textarea{min-height:120px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cloudTabs{display:flex;gap:8px;flex-wrap:wrap}.cloudTabs .btn.active{background:var(--green);color:#fff}.archiveProviderBadge{text-transform:uppercase;font-size:10px;letter-spacing:.04em}
@media(max-width:900px){.cloudHero{grid-template-columns:1fr}.archiveStatGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.reviewPath{max-width:280px}}

/* V7.8.0 – Dokumentvorschau & Bildergalerie */
.fileRow.previewCard{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:12px}.filePreview{grid-column:1/-1;margin-top:10px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#f3f7f2;min-height:120px}.filePreviewImageBtn{display:block;width:100%;border:0;padding:0;background:#eef4ec;cursor:pointer}.filePreviewImage{display:block;width:100%;height:220px;object-fit:contain;background:#eef4ec}.filePreviewPdf{display:block;width:100%;height:260px;border:0;background:#fff}.filePreviewPlaceholder{min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:20px;color:var(--muted);text-align:center}.filePreviewPlaceholder .icon{font-size:38px}.filePreviewHint{font-size:10px;color:var(--muted);padding:7px 10px;border-top:1px solid var(--line);background:#fff}.galleryModal .modal{width:min(1180px,96vw);max-width:none}.galleryStage{position:relative;display:flex;align-items:center;justify-content:center;min-height:68vh;background:#111;border-radius:14px;overflow:hidden}.galleryStage img{max-width:100%;max-height:72vh;object-fit:contain}.galleryNav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:999px;border:1px solid #ffffff66;background:#0009;color:#fff;font-size:28px;display:grid;place-items:center;cursor:pointer;z-index:2}.galleryNav.prev{left:14px}.galleryNav.next{right:14px}.galleryCounter{position:absolute;right:12px;bottom:10px;background:#000a;color:#fff;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.galleryMeta{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}.galleryThumbs{display:flex;gap:7px;overflow:auto;padding:8px 0}.galleryThumb{border:2px solid transparent;border-radius:9px;padding:0;background:#eef4ec;cursor:pointer;flex:0 0 78px;height:58px;overflow:hidden}.galleryThumb.active{border-color:var(--green)}.galleryThumb img{width:100%;height:100%;object-fit:cover}.filePreviewOpen{position:absolute;right:8px;top:8px}.filePreviewWrap{position:relative}
@media(max-width:700px){.fileRow.previewCard{grid-template-columns:1fr}.fileRow.previewCard .fileActions{justify-content:flex-start}.filePreviewImage{height:180px}.filePreviewPdf{height:220px}.galleryStage{min-height:58vh}.galleryNav{width:40px;height:40px}.galleryNav.prev{left:7px}.galleryNav.next{right:7px}}
/* V7.8.0 – Vorschauansicht im zentralen Dokumentenarchiv */
.archiveViewSwitch{display:flex;gap:8px;flex-wrap:wrap}.archivePreviewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.archivePreviewCard{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);min-width:0}.archivePreviewVisual{height:230px;background:#eef4ec;border-bottom:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.archivePreviewVisual img{width:100%;height:100%;object-fit:contain;background:#eef4ec;cursor:pointer}.archivePreviewVisual iframe{width:100%;height:100%;border:0;background:#fff}.archivePreviewVisual .archiveIcon{font-size:54px}.archivePreviewBody{padding:12px}.archivePreviewName{font-weight:800;line-height:1.3;overflow-wrap:anywhere}.archivePreviewMeta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:7px}.archivePreviewDesc{font-size:11px;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.archivePreviewActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.archiveGallerySection{margin-bottom:16px}.archiveGalleryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}.archiveGalleryTile{position:relative;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#eef4ec;aspect-ratio:4/3;padding:0;cursor:pointer}.archiveGalleryTile img{width:100%;height:100%;object-fit:cover;display:block}.archiveGalleryTile span{position:absolute;left:6px;right:6px;bottom:6px;background:#0009;color:#fff;border-radius:8px;padding:4px 6px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archivePreviewLimit{margin:10px 0;font-size:11px;color:var(--muted)}.docPreviewModal .modal{width:min(1180px,96vw);max-width:none}.docPreviewStage{min-height:70vh;background:#f5f7f4;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}.docPreviewStage iframe{width:100%;height:72vh;border:0;background:#fff}.docPreviewStage img{max-width:100%;max-height:72vh;object-fit:contain}.portalDocPreviewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.portalDocPreviewGrid .archivePreviewVisual{height:180px}@media(max-width:700px){.archivePreviewGrid{grid-template-columns:1fr}.archiveGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.archivePreviewVisual{height:210px}.docPreviewStage iframe{height:65vh}}

.inspectionParticipants{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.inspectionParticipant{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff}.signaturePad{border:1px dashed #819589;border-radius:12px;background:#fff;touch-action:none;width:100%;height:130px;display:block}.signatureState{font-size:12px;margin-top:6px}.signatureState.ok{color:#25603f;font-weight:800}.inspectionPhotoActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inspectionPhotoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px}.inspectionPhotoCard{border:1px solid var(--line);border-radius:12px;padding:7px;background:#fff;position:relative}.inspectionPhotoCard img{width:100%;height:105px;object-fit:cover;border-radius:8px;display:block}.inspectionPhotoCard .small{margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspectionPhotoRemove{position:absolute;right:10px;top:10px;width:28px;height:28px;border-radius:999px;border:0;background:#fff;color:#9b2f2a;font-weight:900;box-shadow:0 2px 8px #0002;cursor:pointer}.issuePhotoBtn{margin-left:auto;white-space:nowrap;padding:5px 8px!important;font-size:12px!important}.issuePhotoBadge{display:inline-flex;min-width:20px;height:20px;padding:0 6px;align-items:center;justify-content:center;border-radius:999px;background:#e6f0e9;color:#17462f;font-size:11px;font-weight:800;margin-left:5px}.inspectionPhotoCard .photoLink{font-size:11px;font-weight:800;color:#285b40;margin-top:4px}

.pollOption{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px;background:#fff;cursor:pointer}.pollOption input{margin-top:3px}.pollResultRow{display:grid;grid-template-columns:minmax(130px,1fr) 2fr auto;gap:10px;align-items:center;margin-top:8px}.pollBar{height:10px;border-radius:999px;background:#e8eee9;overflow:hidden}.pollBar>span{display:block;height:100%;background:#4e7f61;border-radius:999px}.portalTopBlock{margin-bottom:14px}

.portalInspectionThumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:7px}.portalInspectionThumb{padding:0;border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden;cursor:pointer;text-align:left;color:inherit}.portalInspectionThumb img{display:block;width:100%;height:86px;object-fit:cover;background:#eef3ef}.portalInspectionThumb span{display:block;padding:5px 7px;font-size:11px;font-weight:800}.portalInspectionGallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.portalInspectionPhoto{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;color:inherit;text-decoration:none}.portalInspectionPhoto img{display:block;width:100%;height:180px;object-fit:cover;background:#eef3ef}.portalInspectionPhoto>div{padding:10px}.portalInspectionPhoto[data-focus-photo="1"]{outline:3px solid #6fa17d;outline-offset:2px}@media(max-width:720px){.portalInspectionThumbs{grid-template-columns:repeat(2,minmax(0,1fr))}.portalInspectionGallery{grid-template-columns:1fr}.portalInspectionPhoto img{height:220px}}

/* V1.54: Wasserzähler-Wechsel-/Prüfzyklus zentral konfigurierbar */
.timeline{position:relative;display:grid;gap:0;margin-top:10px;padding:2px 0}
.timeline:before{content:"";position:absolute;left:127px;top:14px;bottom:14px;width:2px;background:#dbe7d9;border-radius:2px}
.timelineRow{position:relative;display:grid;grid-template-columns:108px minmax(0,1fr);gap:34px;align-items:start;padding:0 0 14px 0;border-left:0}
.timelineRow:before{content:"";position:absolute;left:121px;top:15px;width:14px;height:14px;border-radius:50%;background:#6fa17a;border:3px solid #f7faf5;box-shadow:0 0 0 2px #dbe7d9;z-index:2}
.timelineRow.inspection-green:before{background:#4e9b62}.timelineRow.inspection-yellow:before{background:#d6a23f}.timelineRow.inspection-red:before{background:#c65249}.timelineRow.inspection-orange:before{background:#dd7d32}
.timelineDate{padding-top:8px;text-align:right;color:var(--muted);font-size:12px;line-height:1.25;font-weight:700;white-space:nowrap}
.timelineDate span{display:block;font-size:10px;font-weight:600;opacity:.82;margin-top:2px}
.timelineCard{min-width:0;border:1px solid var(--line);border-radius:15px;background:#fff;padding:12px 14px;box-shadow:0 5px 16px rgba(32,72,47,.045)}
.timelineCardHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.timelineBadges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.timelineType{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:99px;background:#eef5ec;color:#2e5a3c;font-size:10px;font-weight:800;letter-spacing:.02em}
.timelineTitle{font-size:13px;font-weight:800;color:var(--ink);line-height:1.35}.timelineDetail{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.timelineMeta{margin-top:6px;color:var(--muted);font-size:10px}.timelineEmpty{border:1px dashed var(--line);border-radius:14px;padding:16px;background:#fafcf9;color:var(--muted);font-size:12px;text-align:center}
.timelineRow b{font-size:inherit}.timelineRow small{display:initial;margin:0;color:inherit}
@media(max-width:700px){.timeline:before{left:7px}.timelineRow{grid-template-columns:1fr;gap:5px;padding-left:25px}.timelineRow:before{left:1px;top:9px}.timelineDate{text-align:left;padding-top:0;white-space:normal}.timelineDate span{display:inline;margin-left:6px}.timelineCard{padding:11px 12px}.timelineCardHead{align-items:flex-start}}

/* V1.58: Tabellen auf kleinen Displays als lesbare Karten darstellen. */
@media(max-width:700px){
  .table.mobileCards thead{display:none}.table.mobileCards,.table.mobileCards tbody,.table.mobileCards tr,.table.mobileCards td{display:block;width:100%}
  .table.mobileCards tr{border:1px solid var(--line);border-radius:14px;margin:0 0 10px;padding:8px 10px;background:#fff}
  .table.mobileCards td{border:0!important;padding:6px 4px;text-align:left!important;display:grid;grid-template-columns:minmax(105px,36%) 1fr;gap:8px;align-items:start}
  .table.mobileCards td:before{content:attr(data-label);font-size:11px;font-weight:800;color:var(--muted)}
  .table.mobileCards td.right{justify-content:stretch}.table.mobileCards td.right .buttonRow{justify-content:flex-start}
}


/* V1.80 – iPhone / Mobile: echte Touch-, Safe-Area- und Einspalten-Optimierung. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
.mobileScrim{display:none}
@media(max-width:860px){
  body{overflow-x:hidden;-webkit-tap-highlight-color:transparent}
  .shell{min-height:100dvh;display:block}
  .main{width:100%;min-height:100dvh}
  .sidebar{position:fixed;z-index:60;inset:0 auto 0 0;left:0;width:min(86vw,330px);height:100dvh;transform:translateX(-105%);transition:transform .22s ease;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .sidebar.open{left:0;transform:translateX(0);box-shadow:25px 0 60px #0005}
  .mobileScrim{display:block;position:fixed;z-index:55;inset:0;background:#0d261a70;opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(2px)}
  .mobileScrim.show{opacity:1;pointer-events:auto}
  html.navOpen,html.navOpen body{overflow:hidden;overscroll-behavior:none}
  .nav button{min-height:48px;padding:12px 11px;font-size:14px}.nav .ico{font-size:18px;width:27px}.navGroup{margin-top:22px}
  .topbar{height:auto;min-height:64px;padding-top:env(safe-area-inset-top);padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:7px}
  .topTitle{min-width:0;flex:1;gap:7px}.topTitle>div{min-width:0}.topTitle h2{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw}.topTitle .sub{display:none}
  .topActions{gap:5px;flex:0 0 auto}.versionBadge{display:none}.topActions .btn.icon,.mobileMenu{width:44px;height:44px;min-width:44px;padding:0;border-radius:13px}.userChip{min-width:44px;min-height:44px;padding:5px;border-radius:13px}.userChip>span:last-child{display:none}.avatar{width:32px;height:32px}
  #quickBtn{position:fixed;z-index:50;right:max(15px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));min-height:50px;padding:0 18px;border-radius:999px;background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 12px 30px rgba(24,49,38,.3)}
  #quickBtn:hover{background:var(--green)}
  .content{padding:13px max(11px,env(safe-area-inset-right)) calc(86px + env(safe-area-inset-bottom)) max(11px,env(safe-area-inset-left))}
  .mainFoot{padding:6px 14px calc(82px + env(safe-area-inset-bottom))}
  .hero{padding:20px 17px;border-radius:19px}.hero h1{font-size:23px;line-height:1.15}.hero p{font-size:13px;line-height:1.5}
  .card{border-radius:16px;padding:14px}.sectionHead{gap:9px}.sectionHead h3{font-size:18px}.sectionHead p{line-height:1.4}
  .btn{min-height:44px;touch-action:manipulation}.btn.small{min-height:40px;padding:8px 10px}.buttonRow{gap:7px}
  .field input,.field select,.field textarea,.search,.sortTools select{font-size:16px;min-height:46px}.field textarea{min-height:110px}.checkLine{padding-top:8px;min-height:44px}.checkLine input,.bulkCheck,input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px}
  .tabs{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;white-space:nowrap}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;min-height:44px;padding:11px 13px}
  .toolbar{gap:9px}.sortTools{gap:7px}.sortTools select{width:100%}
  .bulkBar{align-items:stretch}.bulkBar>.btn,.bulkBar>select{min-height:44px}
  .fileRow{align-items:flex-start;flex-direction:column}.fileRow .fileActions{width:100%}.fileRow .fileActions .btn,.fileRow .fileActions a.btn{flex:1 1 auto}
  .toast{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(78px + env(safe-area-inset-bottom));text-align:center}
  .mapStage,.tableWrap,.docPreviewStage{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .mapCanvas{touch-action:pan-x pan-y pinch-zoom}.geoPickerMap{height:min(54dvh,470px)}.aerialMap{height:min(62dvh,540px)}
  .invoiceTotal{text-align:left}.invoicePreviewFrame{height:54dvh}
}
@media(max-width:700px){
  .modalBack{padding:0;align-items:flex-end;justify-content:stretch;overflow:hidden}.modalBack.show{display:flex}
  .modal,.modal.wide,.docPreviewModal .modal{width:100%;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top));border-radius:22px 22px 0 0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .modalHead{padding:13px 14px}.modalHead h3{font-size:17px;line-height:1.25}.modalBody{padding:14px}.modalFoot{padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:7px;flex-wrap:wrap}.modalFoot .btn{flex:1 1 calc(50% - 7px)}
  .formGrid,.permGrid{gap:10px}.field.full{grid-column:auto}
  .tableWrap.mobileCardsWrap{overflow:visible;border:0;background:transparent}.table.mobileCards tr{box-shadow:0 4px 14px rgba(33,70,48,.04)}.table.mobileCards td{grid-template-columns:minmax(88px,34%) minmax(0,1fr);padding:7px 3px;overflow-wrap:anywhere}.table.mobileCards td:before{line-height:1.3}.table.mobileCards td .buttonRow{width:100%;justify-content:flex-start!important}.table.mobileCards td .buttonRow .btn{flex:1 1 auto}
  .dashboardDetailRow{grid-template-columns:1fr}.dashboardDetailRow .btn{width:100%}
  .portalActions,.systemLinks{grid-template-columns:1fr}.portalActions button{min-height:58px}
  .invoiceItem{grid-template-columns:1fr}.invoiceItem .desc,.invoiceItem .period{grid-column:auto}.invoiceItem>.field,.invoiceItem>.btn{min-width:0}
  .invoiceMeter .row{grid-template-columns:1fr}.invoicePreviewFrame{height:50dvh}
  .docPreviewStage{min-height:52dvh}.docPreviewStage iframe,.docPreviewStage img{height:56dvh;max-height:56dvh}
  .archiveGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .galleryStage{min-height:64dvh}
}
@media(max-width:430px){
  .topTitle h2{max-width:38vw;font-size:15px}.topActions{gap:3px}.topActions .btn.icon,.mobileMenu,.userChip{width:42px;min-width:42px;height:42px;min-height:42px}
  .quickGrid{grid-template-columns:1fr}.metric .value{font-size:25px}.sectionHead{flex-direction:column;align-items:stretch}.sectionHead>.buttonRow{width:100%}
  .buttonRow .btn{flex:1 1 100%}.modalFoot .btn{flex:1 1 100%}
  .table.mobileCards td{grid-template-columns:1fr;gap:2px}.table.mobileCards td:before{margin-bottom:2px}
  .archiveGalleryGrid{grid-template-columns:1fr 1fr}.archivePreviewVisual{height:190px}
  .login{padding:14px max(12px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.loginCard{padding:22px 18px;border-radius:22px}.login h1{font-size:24px}
}
@media(hover:none) and (pointer:coarse){
  .btn:hover,.nav button:hover,.metricButton:hover{transform:none}.btn,.nav button,.quickCard,.metricButton,.tab{-webkit-tap-highlight-color:transparent}
}


/* V1.80 – kompakte mobile Listen: deutlich weniger Scrollen auf dem iPhone. */
@media(max-width:700px){
  .table.mobileCards tbody{display:grid!important;gap:8px}
  .table.mobileCards tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:0;padding:10px 11px;margin:0;background:#fff;border:1px solid var(--line);border-radius:15px;position:relative}
  .table.mobileCards tr[data-mobile-title]:before{content:attr(data-mobile-title);grid-column:1/-1;font-size:16px;font-weight:850;line-height:1.2;color:var(--ink);padding:0 38px 7px 0;margin-bottom:2px;border-bottom:1px solid #edf1ed}
  .table.mobileCards td{display:block!important;width:auto!important;min-width:0;border:0!important;padding:5px 0!important;text-align:left!important;overflow-wrap:anywhere}
  .table.mobileCards td:before{display:block;content:attr(data-label);font-size:9.5px;line-height:1.2;font-weight:800;color:var(--muted);margin:0 0 2px;text-transform:none;letter-spacing:0}
  .table.mobileCards td.mobileEmpty{display:none!important}
  .table.mobileCards td.mobileSelectCell{position:absolute;right:11px;top:9px;width:26px!important;height:26px;padding:0!important;display:grid!important;place-items:center;z-index:2}
  .table.mobileCards td.mobileSelectCell:before{display:none}
  .table.mobileCards td.mobileSelectCell .bulkCheck{width:22px;height:22px;min-width:22px;min-height:22px;margin:0}
  .table.mobileCards td.mobileActionCell{grid-column:1/-1;padding-top:7px!important;margin-top:3px;border-top:1px solid #edf1ed!important}
  .table.mobileCards td.mobileActionCell:before{margin-bottom:5px}
  .table.mobileCards td.mobileActionCell .buttonRow{display:flex!important;width:100%;gap:6px;flex-wrap:wrap;justify-content:flex-start!important}
  .table.mobileCards td.mobileActionCell .btn{min-height:38px!important;padding:7px 10px!important;font-size:12px!important;line-height:1.15;flex:1 1 auto!important}
  .table.mobileCards .badge{padding:4px 7px;font-size:10px}
  .table.mobileCards[data-mobile-module="members"] td[data-label="Vorname"],
  .table.mobileCards[data-mobile-module="members"] td[data-label="Nachname"],
  .table.mobileCards[data-mobile-module="parcels"] td[data-label="Garten"]{display:none!important}
  .table.mobileCards[data-mobile-module="members"] td[data-label="Status"],
  .table.mobileCards[data-mobile-module="parcels"] td[data-label="Status"]{align-self:start}
  .table.mobileCards[data-mobile-module="parcels"] td[data-label="Hauptpächter"],
  .table.mobileCards[data-mobile-module="parcels"] td[data-label="Mitpächter / Ehegatte"]{padding-top:6px!important}
}
@media(max-width:430px){
  .table.mobileCards td{grid-template-columns:none!important;gap:0!important}
  .table.mobileCards tr{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:10px;padding:9px 10px}
  .table.mobileCards tr[data-mobile-title]:before{font-size:15px;padding-bottom:6px}
  .table.mobileCards td.mobileActionCell{grid-column:1/-1}
  .table.mobileCards td.mobileActionCell .btn{min-height:36px!important;padding:6px 8px!important;font-size:11.5px!important;flex:1 1 auto!important}
}


.mobileDocScanEntry{border:1px solid #cfe0d2;background:linear-gradient(135deg,#f3f9f4,#fff);border-radius:15px;padding:13px 14px;margin-top:12px}.mobileDocScanEntry b{display:block;margin-bottom:3px}.mobileDocScanEntry .btn{margin-top:9px}.recordFileQuickActions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 10px}.recordFileQuickBtn{min-height:48px;font-size:14px;font-weight:800}.recordFileQuickActions .recordFileQuickBtn{flex:1 1 210px;justify-content:center}@media(max-width:600px){.recordFileQuickActions{display:grid;grid-template-columns:1fr;position:sticky;top:0;z-index:4;background:#fff;padding:8px 0 10px;margin:8px 0 10px}.recordFileQuickBtn{width:100%;min-height:52px;font-size:15px}}@media(max-width:600px){.mobilePrimaryAction{flex:1 1 100%!important;min-height:48px;font-weight:800}}
.docScannerBack{position:fixed;inset:0;z-index:9999;background:#0d1511f5;display:none;flex-direction:column;color:#fff}.docScannerBack.show{display:flex}.docScannerHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#111d17;border-bottom:1px solid #ffffff22}.docScannerHead b{font-size:15px}.docScannerStage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000}.docScannerVideo{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;background:#000}.docScannerGuide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:min(76vh,76%);aspect-ratio:210/297;border:2px solid #fff;border-radius:12px;box-shadow:0 0 0 200vmax #0005;pointer-events:none}.docScannerGuide:before,.docScannerGuide:after{content:"";position:absolute;width:28px;height:28px;border-color:#86d49b}.docScannerGuide:before{left:-3px;top:-3px;border-left:4px solid #86d49b;border-top:4px solid #86d49b;border-radius:8px 0 0 0}.docScannerGuide:after{right:-3px;bottom:-3px;border-right:4px solid #86d49b;border-bottom:4px solid #86d49b;border-radius:0 0 8px 0}.docScannerBottom{background:#111d17;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #ffffff22}.docScannerActions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.docScannerCapture{width:66px;height:66px;border-radius:50%;border:5px solid #fff;background:#5d9b6c;box-shadow:0 0 0 2px #5d9b6c;cursor:pointer}.docScannerThumbs{display:flex;gap:7px;overflow:auto;margin-bottom:9px;min-height:0}.docScannerThumb{position:relative;flex:0 0 58px;height:78px;border-radius:8px;overflow:hidden;border:1px solid #ffffff44;background:#25342b}.docScannerThumb img{width:100%;height:100%;object-fit:cover}.docScannerThumb button{position:absolute;right:2px;top:2px;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#000b;color:#fff;font-weight:900}.docScannerCount{font-size:12px;color:#cfe0d2;text-align:center;margin-bottom:7px}@media(max-width:600px){.docScannerGuide{height:min(70vh,72%)}.mobileDocScanEntry .btn{width:100%}}
