/* Vermessung – Grenzpunktsuche · Optik wie Kundenkompass/BeKo (Grün #407846, Blau #163e73, Gelb #ffed00) */
:root{
  --bg:#f5f6f2;--card:#fff;--border:#e6e8e1;--border-l:#eef0ea;
  --grn:#407846;--grn-l:#4f9357;--grn-bg:#e8f2e6;
  --amb:#e76f51;--amb-bg:#fdeee8;--blu:#163e73;--blu-bg:#e5ebf4;
  --red:#c1121f;--red-bg:#fde8ea;--pur:#6d3fa0;--pur-bg:#efe7f8;
  --tea:#2a9d8f;--tea-bg:#dcf3ef;--ora:#c98a0b;--ora-bg:#fdf4dd;--gelb:#ffed00;
  --gry:#6c757d;--gry-bg:#f0f0ec;--ich:#1e88e5;
  --txt:#1b1d2a;--txt2:#555a70;--txt3:#8b8fa3;
  --sh:0 1px 2px rgba(16,24,40,.04),0 4px 14px rgba(16,24,40,.05);--r:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{font-family:'Outfit',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--txt);min-height:100vh;font-size:15px;line-height:1.4}
a{color:var(--blu)}
button,input,select,textarea{font:inherit;color:inherit}
code{background:var(--gry-bg);padding:1px 5px;border-radius:5px;font-size:.9em}
.i{width:18px;height:18px;flex:none;vertical-align:-3px}
.i.big{width:40px;height:40px;color:var(--txt3)}
.klein{font-size:12.5px;color:var(--txt3)}
.muted{color:var(--txt2)}
.rot{color:var(--red)}

/* Kopf */
.kopf{background:radial-gradient(700px 220px at 92% -40%,rgba(255,237,0,.25),transparent 70%),linear-gradient(180deg,#fff 0%,#eef5ec 100%);border-bottom:1px solid #e3eadf;padding:10px 24px;position:sticky;top:0;z-index:1200}
.kopf .bar{display:flex;align-items:center;gap:18px;max-width:1400px;margin:0 auto}
.kopf .logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--txt);flex:none}
.kopf .logo img{height:40px;width:auto;display:block}
.kopf .logo .tt{border-left:1px solid #d9e2d4;padding-left:10px;font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.1}
.kopf .logo small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--blu);opacity:.75}
.testband{background:var(--gelb);color:#5a5200;font-weight:800;font-size:11px;letter-spacing:.1em;padding:3px 8px;border-radius:6px}
.tn{display:flex;gap:2px}
.tn a{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:10px;color:var(--txt2);font-weight:500;font-size:14.5px;text-decoration:none;white-space:nowrap}
.tn a:hover{background:rgba(64,120,70,.08)}
.tn a.on{background:var(--grn);color:#fff;box-shadow:0 6px 14px rgba(64,120,70,.25)}
.kopf .rt{margin-left:auto;display:flex;align-items:center;gap:8px}
.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;background:var(--blu);color:#fff;text-decoration:none}

/* Inhalt */
.inhalt{max-width:1180px;margin:0 auto;padding:22px 24px 40px}
.inhalt.breit{max-width:1400px}
h1{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h2{font-size:17px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.nr{font-size:13px;font-weight:700;color:var(--txt3)}.nr a{color:var(--txt3)}
.kopfzeile{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.kopfzeile .aktionen{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:18px;margin-bottom:16px}
.card.flach{padding:0;overflow:hidden}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.split{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.leer{text-align:center;padding:26px 10px;color:var(--txt3)}
.leer p{margin-top:6px}

/* Knöpfe */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--txt);font-weight:600;text-decoration:none;cursor:pointer;min-height:44px;white-space:nowrap}
.btn:hover{border-color:#cfd6c9}
.btn.gruen{background:var(--grn);border-color:var(--grn);color:#fff}
.btn.blau{background:var(--blu);border-color:var(--blu);color:#fff}
.btn.rot{background:#fff;border-color:#f3c3c8;color:var(--red)}
.btn.klein{min-height:34px;padding:6px 11px;font-size:13.5px;border-radius:10px}
.btn.gross{min-height:58px;font-size:17px;padding:12px 18px;border-radius:14px}
.btn:disabled{opacity:.5;cursor:default}
.btn.voll{width:100%}

/* Formulare */
label.f{display:block;margin-bottom:12px}
label.f>span{display:block;font-size:12.5px;font-weight:600;color:var(--txt2);margin-bottom:4px}
.inp,input[type=text],input[type=search],input[type=tel],input[type=email],input[type=number],input[type=date],input[type=time],input[type=month],select,textarea{width:100%;padding:10px 12px;border:1px solid #d9ddd3;border-radius:11px;background:#fff;min-height:44px;font-size:16px}
textarea{min-height:60px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(64,120,70,.35);border-color:var(--grn)}
.zeile{display:flex;gap:10px}.zeile>*{flex:1}
.hinweis{background:var(--ora-bg);border:1px solid #f1dfae;color:#6b4e00;padding:10px 14px;border-radius:12px;margin-bottom:14px;font-size:14px}
.hinweis.gruen{background:var(--grn-bg);border-color:#cfe3cb;color:#244d29}
.hinweis.rot{background:var(--red-bg);border-color:#f3c3c8;color:#7a0d15}
.kundebox{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--grn-bg);border:1px solid #cfe3cb;border-radius:12px;padding:12px 14px;margin-bottom:12px}

/* Etiketten */
.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--gry-bg);color:var(--gry)}
.badge.grn{background:var(--grn-bg);color:var(--grn)}.badge.blu{background:var(--blu-bg);color:var(--blu)}
.badge.red{background:var(--red-bg);color:var(--red)}.badge.ora{background:var(--ora-bg);color:var(--ora)}
h1 .badge{font-size:13px}

/* Listen */
.vliste{display:flex;flex-direction:column}
.vz{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-l);text-decoration:none;color:var(--txt)}
.vz:last-child{border-bottom:0}
.vz:hover{background:#fafbf8}
.vz-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none}
.vz-ic.grn{background:var(--grn-bg);color:var(--grn)}
.vz-m{flex:1;min-width:0;display:flex;flex-direction:column}
.vz-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vz-s{font-size:13.5px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.kachel{background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--txt);box-shadow:var(--sh)}
.kachel b{display:block;font-size:24px;font-weight:800}
.kachel span{font-size:13px;color:var(--txt2)}
.kachel.on{outline:2px solid var(--grn)}
.filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.filter input[type=search]{flex:1;min-width:200px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:14px;cursor:pointer;text-decoration:none;color:var(--txt);min-height:38px;user-select:none}
.chip.on{background:var(--grn);border-color:var(--grn);color:#fff}
.treffer{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.12);z-index:1300;max-height:60vh;overflow:auto}
.treffer button{display:block;width:100%;text-align:left;padding:10px 14px;border:0;background:none;border-bottom:1px solid var(--border-l);cursor:pointer}
.treffer button.akt,.treffer button:hover{background:var(--grn-bg)}
.treffer small{display:block;color:var(--txt2)}

/* Tabellen */
.tab{width:100%;border-collapse:collapse;font-size:14px}
.tab th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--txt3);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--border)}
.tab td{padding:8px 10px;border-bottom:1px solid var(--border-l);vertical-align:top}
.tab td.r,.tab th.r{text-align:right}
.tabwrap{overflow-x:auto}
.ptab tr.aus td{color:var(--txt3)}
.ptab input[type=checkbox]{width:22px;height:22px;accent-color:var(--grn)}
.pst{font-weight:700;font-size:13px}
.pst.gefunden{color:var(--grn)}.pst.nicht_gefunden{color:var(--red)}.pst.beschaedigt{color:var(--ora)}.pst.offen{color:var(--txt3)}
.statusleiste{display:flex;gap:6px;flex-wrap:wrap}
.statusleiste button{padding:7px 11px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:13.5px;cursor:pointer;min-height:38px}
.statusleiste button.on{background:var(--grn);color:#fff;border-color:var(--grn);font-weight:700}
.imp{padding:8px 0;border-bottom:1px solid var(--border-l)}
.dateien{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.df{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;text-decoration:none;color:var(--txt);display:flex;flex-direction:column}
.df .vs{height:90px;background:#f2f3ef center/cover no-repeat}
.df .nm{padding:6px 8px;font-size:12px;line-height:1.3}
.df .nm b{display:block;font-weight:600}
.upl{border:2px dashed #cfd6c9;border-radius:14px;padding:14px;text-align:center;color:var(--txt2);margin:12px 0}
.upl .zeile{justify-content:center;align-items:center;flex-wrap:wrap;margin-top:8px}
.upl .zeile>*{flex:none}
.linkbox{display:flex;gap:8px;align-items:center;background:var(--grn-bg);border:1px solid #cfe3cb;border-radius:12px;padding:10px;margin:10px 0;word-break:break-all;font-size:13.5px}
.bildmodal{position:fixed;inset:0;background:rgba(10,12,20,.88);z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;cursor:zoom-out}
.bildmodal img{max-width:100%;max-height:calc(100vh - 70px);border-radius:6px}
.bildmodal .bm-name{color:#ddd;margin-top:10px;font-size:14px}
.dlg{border:0;border-radius:18px;padding:20px;width:min(520px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.3);margin:auto}
.dlg.breit{width:min(760px,96vw)}
.dlg::backdrop{background:rgba(10,12,20,.55)}
.sigcanvas{width:100%;height:200px;border:2px dashed #9aa7c0;border-radius:12px;background:#fff;touch-action:none;display:block}

/* Karte PC + Punkt-Marker */
.karte-pc{height:520px;background:#dde3d8}
.kartenleiste{display:flex;gap:14px;flex-wrap:wrap;padding:8px 14px;align-items:center}
.kartenleiste i.pm{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:2px solid #fff;box-shadow:0 0 0 1px #999}
.pm.such,.pmk.such{background:#ffed00}.pm.aus{background:#8b8fa3}.pm.gef,.pmk.gef{background:#2e8b3a}.pm.ng,.pmk.ng{background:#c1121f}.pmk.be{background:#e08a00}
.pmk{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:#1b1d2a;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.45)}
.pmk.gef,.pmk.ng,.pmk.be{color:#fff}
.pmk.ziel{outline:4px solid #1e88e5;outline-offset:2px;transform:scale(1.15)}
.pmk.klein{width:28px;height:28px;font-size:12px;border-width:2px;flex:none}
.leaflet-container{font-family:inherit}

/* ============ Feld-App (Tablet) ============ */
body.feld{overflow:hidden;background:#0f1a14;height:100vh;height:100dvh}
body.feld .inhalt{max-width:none;padding:0;height:100%}
#app{display:flex;flex-direction:column;height:100vh;height:100dvh}
.fk{display:flex;align-items:center;gap:10px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));background:linear-gradient(180deg,#fff,#eef5ec);border-bottom:1px solid #dfe7da;flex:none;z-index:1100}
.fk-logo img{height:36px;display:block}
.fk-btn{width:48px;height:48px;border-radius:14px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;flex:none;cursor:pointer}
.fk-btn .i{width:24px;height:24px}
.fk-titel{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.fk-titel b{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-titel span{font-size:13px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:#fff;border-radius:999px;padding:7px 12px;font-size:13.5px;font-weight:600;white-space:nowrap;min-height:40px;cursor:pointer}
.fk-chip.pc{text-decoration:none;color:var(--blu)}
.fk-chip.pc .i{width:18px;height:18px}
.fk-chip i{width:12px;height:12px;border-radius:50%;background:var(--txt3);flex:none}
.fk-chip.gruen i{background:#2e8b3a;box-shadow:0 0 0 4px rgba(46,139,58,.18)}.fk-chip.gelb i{background:#e0b000;box-shadow:0 0 0 4px rgba(224,176,0,.2)}.fk-chip.rot i{background:var(--red);box-shadow:0 0 0 4px rgba(193,18,31,.15)}
.fv{flex:1;min-height:0;position:relative;background:var(--bg)}
#v-liste{overflow:auto;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.fl-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.fl{display:flex;flex-direction:column;gap:10px}
.fl-a{display:flex;align-items:center;gap:14px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--sh);cursor:pointer;width:100%}
.fl-nr{font-weight:800;color:var(--blu);font-size:14px;flex:none}
.fl-m{flex:1;min-width:0;display:flex;flex-direction:column}
.fl-m b{font-size:17px}
.fl-r{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
#v-auftrag{display:flex;flex-direction:column}
#fkarte{flex:1;min-height:200px;background:#2b3a30}
.fk-werkzeug{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;gap:10px;z-index:1000}
.rund{width:52px;height:52px;border-radius:50%;border:0;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.3);display:grid;place-items:center;font-weight:800;font-size:17px;cursor:pointer}
.rund .i{width:24px;height:24px}
.rund.on{background:var(--ich);color:#fff}
.sheet{flex:none;background:#fff;border-top:1px solid var(--border);padding:10px 12px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(0,0,0,.12);z-index:1000}
.sh-zeile{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.sh-fort{flex:1;text-align:center;font-weight:700;color:var(--txt2);min-width:90px}
#btn-zeit.laeuft{background:var(--ora-bg);border-color:#f1dfae;color:#6b4e00}
#btn-offline.ok{background:var(--grn-bg);border-color:#cfe3cb;color:var(--grn)}
.ziel{display:flex;gap:8px;align-items:stretch}
.ziel-nav{width:56px;border-radius:14px;border:1px solid var(--border);background:#fff;font-size:30px;font-weight:700;cursor:pointer;flex:none;color:var(--blu)}
.ziel-m{flex:1;min-width:0;border:1px solid var(--border-l);background:#fafbf8;border-radius:14px;padding:8px 12px;font-size:16px;line-height:1.35}
#btn-suchen{flex:none;min-width:150px}
.punktliste{position:absolute;right:0;top:0;bottom:0;width:min(360px,92vw);background:#fff;z-index:1050;overflow:auto;box-shadow:-8px 0 24px rgba(0,0,0,.2)}
.pl-kopf{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff}
.pl-z{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--border-l);background:#fff;text-align:left;cursor:pointer;min-height:56px}
.pl-z.on{background:var(--blu-bg)}
.pl-m{flex:1;display:flex;flex-direction:column;font-weight:600}
.pl-d{font-weight:700;color:var(--blu)}

/* Suchmodus */
.suche-v{flex:1;min-height:0;display:flex;flex-direction:column;background:#0f1a14;color:#fff}
.su-kopf{display:flex;gap:12px;align-items:center;padding:10px 12px;background:#16241b}
.su-kopf .fk-btn{color:var(--txt)}
.su-kopf b{display:block;font-size:19px}
.su-kopf span{font-size:13.5px;color:#b9c7bd}
.su-mitte{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:24px;padding:10px;flex-wrap:wrap}
.su-werte{text-align:center;min-width:240px}
.su-dist{font-size:clamp(54px,11vw,110px);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.su-dist.fast{color:#ffed00}
.su-dist.nah{color:#4cd964}
.su-richt{font-size:20px;margin-top:10px;color:#dfe8e1}
.su-richt b{color:#fff}
.su-acc{display:inline-block;margin-top:12px;padding:5px 12px;border-radius:999px;font-weight:700;font-size:14px;background:#333}
.su-acc.gruen{background:#1f6b2a}.su-acc.gelb{background:#8a6d00}.su-acc.rot{background:#8a1018}
.su-knoepfe{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:#16241b}
.su-knoepfe .btn{border:0;color:#fff;flex-direction:column;gap:4px;min-height:74px}
.su-knoepfe .btn .i{width:28px;height:28px}
.su-knoepfe .gef{background:#2e8b3a}.su-knoepfe .ng{background:#a11220}.su-knoepfe .be{background:#b56f00}.su-knoepfe .foto{background:#2d4a3a}
.gpstab td{padding:6px 8px}.gpstab td:first-child{width:42%}
.fk-chip.wer{color:var(--blu)}.fk-chip.wer .i{width:18px;height:18px}.fk-chip.wer.rot{color:var(--red);border-color:#f3c3c8}
.wer-v{position:fixed;inset:0;background:rgba(15,26,20,.92);z-index:3500;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
.wer-box{background:#fff;border-radius:22px;padding:24px;width:min(640px,100%);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.wer-namen{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:16px}
.wer-namen button{border:1px solid var(--border);background:#fafbf8;border-radius:16px;padding:16px 10px;min-height:76px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}
.wer-namen button b{font-size:18px}.wer-namen button span{font-size:13px;color:var(--txt3)}
.wer-namen button.on{border-color:var(--grn);background:var(--grn-bg)}
.wer-namen button.pause{border-style:dashed;background:#fff}
.wer-name{font-size:22px;font-weight:800;margin-top:14px}
.pin-punkte{display:flex;gap:18px;justify-content:center;margin:16px 0 6px}
.pin-punkte i{width:20px;height:20px;border-radius:50%;border:2px solid var(--blu)}
.pin-punkte i.voll{background:var(--blu)}
.pin-punkte.wackeln{animation:wackeln .4s}
@keyframes wackeln{0%,100%{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:330px;margin:6px auto 0}
.pinpad button{min-height:68px;border-radius:16px;border:1px solid var(--border);background:#fafbf8;font-size:28px;font-weight:700;cursor:pointer}
.pinpad button.klein{font-size:16px;color:var(--txt2)}
.pinpad button:active{background:var(--grn-bg)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(150px + env(safe-area-inset-bottom));background:#1b1d2a;color:#fff;padding:12px 18px;border-radius:14px;font-size:15px;z-index:4000;max-width:90vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.3)}

/* Mobil / Tablet hochkant */
@media (max-width:900px){
  .kopf{padding:8px 14px}
  .kopf .logo img{height:32px}
  .tn{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--border);padding:6px 6px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;z-index:1200;box-shadow:0 -4px 16px rgba(0,0,0,.05)}
  .tn a{flex-direction:column;gap:2px;font-size:11.5px;padding:6px 8px;flex:1;max-width:110px;text-align:center}
  .tn a .i{width:22px;height:22px}
  .tn a.on{box-shadow:none}
  .inhalt{padding:16px 14px 100px}
  .split,.grid2{grid-template-columns:1fr}
  .karte-pc{height:420px}
  h1{font-size:21px}
  .su-knoepfe{grid-template-columns:repeat(2,1fr)}
  .fk-chip span{max-width:120px;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:620px){
  .fk-logo{display:none}
  .fk-chip.pc span{display:none}
  .ziel{flex-wrap:wrap}
  #btn-suchen{width:100%}
  .sh-zeile .btn span{display:none}
}
@media print{.kopf,.tn,.no-print{display:none!important}body{background:#fff}.card{box-shadow:none}}
