/* SanTech Plattform: Farben kommen aus firma.json (primaer, akzent, hervor), hier nur Aufbau */
:root{
  --bg:#f4f2ee; --flaeche:#ffffff; --text:#1c2430; --gedaempft:#667085; --linie:#e1ddd5;
  --link:var(--primaer); --feld:#ffffff; --schatten:0 1px 3px rgba(20,30,50,.08);
  --fehler:#b3261e; --ok:#2e7d4f; --hinweis:#8a6100;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0e141c; --flaeche:#17212d; --text:#e8ecf1; --gedaempft:#9aa7b8; --linie:#263445;
    --link:#9cc0f0; --feld:#101923; --schatten:none; --fehler:#ff8a80; --ok:#7bd49c; --hinweis:#f2c261}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 "Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--link)}
h1{font-size:1.6rem;line-height:1.2;margin:.2em 0 .3em;color:var(--text)}
h2{font-size:1.1rem;margin:0 0 .6em;display:flex;align-items:center;gap:.5em}
h3{font-size:1rem;margin:1em 0 .4em;color:var(--gedaempft)}
p{margin:.4em 0 .8em}
.klein,small{font-size:.85rem;color:var(--gedaempft)}
.leer{color:var(--gedaempft);margin:.3em 0}
.icon{width:20px;height:20px;flex:none}
.icon.gross{width:30px;height:30px}
.huelle{display:flex;min-height:100vh}

/* Seitenleiste */
.seite{position:fixed;inset:0 auto 0 0;width:260px;background:var(--primaer);color:#fff;display:flex;flex-direction:column;z-index:30;overflow-y:auto;
  padding-bottom:env(safe-area-inset-bottom)}
.marke-kopf{display:block;background:#fff;margin:16px;border-radius:14px;padding:10px;text-align:center}
.marke-kopf img{max-height:96px;max-width:100%}
.seite nav{display:flex;flex-direction:column;gap:2px;padding:0 10px;flex:1}
.seite nav a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:11px 12px;border-radius:10px;min-height:44px}
.seite nav a:hover{background:rgba(255,255,255,.1)}
.seite nav a.aktiv{background:var(--hervor);color:var(--auf-hervor);font-weight:600}
.seite nav em{margin-left:auto;font-style:normal;font-size:.72rem;background:rgba(255,255,255,.2);padding:1px 8px;border-radius:99px}
.seite nav a.aktiv em{background:rgba(0,0,0,.15)}
.gruppe{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);padding:14px 12px 4px}
.nutzerfuss{padding:12px 10px 16px;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;gap:4px}
.nutzer{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:8px 12px;border-radius:10px}
.nutzer small{display:block;color:rgba(255,255,255,.7)}
.nutzer:hover,.leise:hover{background:rgba(255,255,255,.1)}
.leise{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:#fff;padding:10px 12px;border-radius:10px;font:inherit;cursor:pointer;min-height:44px}

/* Kopfleiste */
.spalte{margin-left:260px;flex:1;min-width:0;display:flex;flex-direction:column}
.leiste{position:sticky;top:0;z-index:20;background:var(--flaeche);border-bottom:1px solid var(--linie);display:flex;align-items:center;gap:12px;
  padding:10px 24px;padding-top:calc(10px + env(safe-area-inset-top))}
.menueknopf{display:none;background:none;border:0;color:var(--text);padding:8px;margin:-8px;cursor:pointer;border-radius:8px}
.leiste-logo{display:none;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-weight:700}
.leiste-logo img{height:36px;background:#fff;border-radius:8px;padding:2px}
.leiste-suche{display:flex;flex:1;max-width:460px;margin-left:auto}
.leiste-suche input{flex:1;min-width:0;border:1px solid var(--linie);background:var(--feld);color:var(--text);border-radius:10px 0 0 10px;padding:9px 12px;font:inherit}
.leiste-suche button{border:1px solid var(--linie);border-left:0;background:var(--feld);color:var(--text);border-radius:0 10px 10px 0;padding:0 12px;cursor:pointer}
main{padding:24px;max-width:1100px;width:100%}
.abdunkeln{display:none}

/* Karten, Listen */
.karte{background:var(--flaeche);border:1px solid var(--linie);border-radius:14px;padding:18px 20px;margin:0 0 18px;box-shadow:var(--schatten)}
.karte.schmal,.schmal{max-width:560px}
.mitte{text-align:center;margin-left:auto;margin-right:auto}
.seitenkopf{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.liste,.termine{list-style:none;margin:0;padding:0}
.liste li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--linie)}
.liste li:first-child{border-top:0}
.liste li a{text-decoration:none;color:var(--text);display:block;flex:1;min-width:0}
.liste li a .klein{display:block}
.liste li.erledigt{opacity:.55}
.termin{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--linie)}
.termin:first-child{border-top:0}
.uhr{font-weight:700;font-size:1.05rem;min-width:3.4em;color:var(--link)}
.termin-text{flex:1;min-width:0}
.termin-text a{color:var(--text);text-decoration:none}
.termin-text .klein{display:block}
.gruppen-titel{margin:26px 0 10px;font-size:1rem;color:var(--gedaempft);text-transform:uppercase;letter-spacing:.06em}
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.kachel{display:flex;flex-direction:column;gap:6px;background:var(--flaeche);border:1px solid var(--linie);border-radius:14px;padding:18px;text-decoration:none;color:var(--text);
  box-shadow:var(--schatten);min-height:128px;border-top:4px solid var(--akzent)}
.kachel:hover{border-top-color:var(--hervor);transform:translateY(-1px)}
.kachel .icon{color:var(--link)}
.kachel span{font-size:.88rem;color:var(--gedaempft)}
.kachel em{font-style:normal;font-size:.75rem;color:var(--hinweis);margin-top:auto}
.kachel.bald{opacity:.8}
.begruessung{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:nowrap;margin-bottom:14px}
.begruessung>div:first-child{min-width:0}
.datumzeile{font-size:1.05rem;font-weight:700;color:var(--text);margin:.1em 0 0;font-variant-numeric:tabular-nums}
.wetter{display:flex;flex-direction:column;gap:1px;background:var(--flaeche);border:1px solid var(--linie);border-radius:12px;padding:7px 12px;margin-left:auto;text-align:right;
  align-items:flex-end;max-width:100%}
.wetter-kopf{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gedaempft)}
.wetter-haupt{display:flex;align-items:center;gap:8px}
.wetter-haupt .icon{color:var(--hervor);width:24px;height:24px}
.wetter .grad{font-size:1.25rem;line-height:1.1}
.wetter-text{font-size:.82rem;font-weight:600}
.wetter-zeile{font-size:.72rem;color:var(--gedaempft);line-height:1.35}
.wetter-messwerte strong{color:var(--text)}
.wetter-rat{font-size:.72rem;color:var(--hinweis);font-weight:600}
.suchfeld{display:flex;align-items:center;gap:10px;background:var(--flaeche);border:1px solid var(--linie);border-radius:14px;padding:8px 8px 8px 14px;margin-bottom:18px;box-shadow:var(--schatten)}
.suchfeld input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:1.05rem;padding:8px 0;outline:0}
.daten dl{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:6px 16px;margin:0;align-items:center}
.daten dt{color:var(--gedaempft);font-size:.9rem}
.daten dd{margin:0}
.objekt{font-weight:600;font-size:1.1rem;margin:0 0 .2em}
.frage-box{border:2px solid var(--fehler);border-radius:12px;padding:12px 16px;margin:12px 0;background:color-mix(in srgb,var(--fehler) 8%,transparent)}
.frage-box p{margin:0}
.startpasswort{font:700 1.5rem/1.4 ui-monospace,Consolas,monospace;letter-spacing:.05em;background:var(--bg);border:2px dashed var(--akzent);border-radius:10px;padding:14px;text-align:center;user-select:all}
.tabelle{width:100%;border-collapse:collapse;font-size:.88rem}
.tabelle th,.tabelle td{text-align:left;padding:8px 10px;border-top:1px solid var(--linie);vertical-align:top}
.tabelle th{color:var(--gedaempft);font-weight:600;border-top:0}

/* Kompakte Karten (Dashboard: Heute, Zuletzt bearbeitet) */
.kompakt{padding:12px 16px;margin-bottom:12px}
.kompakt h2{font-size:.95rem;margin-bottom:.3em}
.kompakt h3{font-size:.85rem;margin:.6em 0 .2em}
.kompakt .termin{padding:7px 0;gap:10px;font-size:.92rem}
.kompakt .uhr{font-size:.95rem;min-width:3em}
.kompakt .liste li{padding:7px 0;font-size:.92rem}
.kompakt .klein{font-size:.8rem}
.kompakt .marke{font-size:.7rem;padding:1px 8px}
.kompakt .klein-knopf{min-height:32px;padding:4px 10px;font-size:.82rem}
.kompakt .leer{font-size:.92rem}
.uhrzeit{color:var(--text);font-variant-numeric:tabular-nums}

/* Terminübersicht */
.alle-link{margin-left:auto;font-size:.8rem;font-weight:400}
.termin-werkzeuge{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.termin-werkzeuge .sprung{display:flex;gap:6px;margin:0 4px}
.termin-werkzeuge .sprung input{width:auto;min-height:44px}
.gewaehlt-knopf{background:var(--primaer);color:#fff;border-color:var(--primaer);font-weight:700}
@media (prefers-color-scheme:dark){.gewaehlt-knopf{background:var(--akzent);border-color:var(--akzent)}}
.neuer-termin summary{cursor:pointer;list-style:none}
.neuer-termin summary h2{margin:0}
.neuer-termin summary::-webkit-details-marker{display:none}
.woche{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:start}
.tag{background:var(--flaeche);border:1px solid var(--linie);border-radius:12px;padding:10px;min-width:0}
.tag.heute{border:2px solid var(--hervor)}
.tag-kopf{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:.95rem;margin:0 0 8px}
.tkarte{border:1px solid var(--linie);border-left:5px solid var(--ok);border-radius:10px;padding:8px 10px;margin:0 0 8px;background:var(--bg);font-size:.88rem}
.tkarte.abgesagt{border-left-color:var(--fehler)}
.tkarte.abgesagt .tzeit,.tkarte.abgesagt .tart,.tkarte.abgesagt .tlink{color:var(--fehler);text-decoration:line-through}
.tkarte-kopf{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tkarte .tzeit{font-variant-numeric:tabular-nums}
.tkarte .tlink{display:block;color:var(--text);text-decoration:none;font-weight:600;margin:3px 0 1px}
.taktionen{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.taktionen form{margin:0}
.taktionen .klein-knopf{min-height:34px;padding:4px 10px;font-size:.8rem}
.taktionen button.absagen{color:var(--fehler);border-color:var(--fehler)}
.tagesliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.tagesliste .tkarte{margin:0}
@media (max-width:1500px){.woche{grid-template-columns:1fr;gap:8px}.tag{padding:12px}.woche .tkarte{max-width:560px}
  .tag.leer-tag{display:flex;align-items:center;gap:14px;padding:8px 14px}.tag.leer-tag .tag-kopf{margin:0}.tag.leer-tag .leer{margin:0;font-size:.88rem}}

/* Auftrag: Schnellaktionen, Termine abhaken, Notizen, Verlauf */
.schnellaktionen{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 18px}
.gross-knopf{justify-content:flex-start;text-align:left;min-height:60px;padding:10px 16px}
.gross-knopf .icon{width:26px;height:26px}
.gross-knopf span{display:flex;flex-direction:column;line-height:1.25;font-weight:700;min-width:0}
.gross-knopf small{font-weight:400;font-size:.8rem;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.absage-form{margin:0}
.absage-form button.absagen{color:var(--fehler);border-color:var(--fehler)}
.termin-punkt{width:12px;height:12px;border-radius:50%;flex:none;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.termin.abgesagt .termin-punkt{background:var(--fehler);box-shadow:0 0 0 3px color-mix(in srgb,var(--fehler) 25%,transparent)}
.termin.abgesagt .uhr,.termin.abgesagt .termin-text strong,.termin.abgesagt .termin-text a{color:var(--fehler);text-decoration:line-through}
.termin.abgesagt .termin-text .klein,.termin.abgesagt .termin-text .marke{text-decoration:none}
.abgesagt-marke{background:var(--fehler);color:#fff;border-color:var(--fehler);margin-left:4px}
.notizform textarea{min-height:70px}
.nur-leser{position:absolute;left:-9999px}
.notiztext{margin:0 0 2px;white-space:pre-wrap}
.verlauf summary{cursor:pointer;list-style:none}
.verlauf summary h2{margin:0}
.verlauf summary::-webkit-details-marker{display:none}
.verlauf[open] summary{margin-bottom:8px}

/* Datenauskunft und Drucken */
.auskunft{background:var(--flaeche);border:1px solid var(--linie);border-radius:14px;padding:24px 28px;max-width:820px}
.auskunft-kopf{display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--primaer);padding-bottom:12px;margin-bottom:14px;font-size:.9rem}
.auskunft-kopf img{height:70px;background:#fff;border-radius:8px}
.auskunft h2{font-size:1.2rem}
.auskunft h3{color:var(--text);border-bottom:1px solid var(--linie);padding-bottom:3px;margin-top:1.3em}
.auskunft-liste{display:grid;grid-template-columns:180px 1fr;gap:4px 14px;margin:0}
.auskunft-liste dt{color:var(--gedaempft)}
.auskunft-liste dd{margin:0}
.auskunft-block{border-left:3px solid var(--akzent);padding:4px 0 4px 12px;margin:10px 0;font-size:.95rem}
.hinweisfarbe{border-color:var(--hinweis)}
@media print{
  .seite,.leiste,.verbessern,.nicht-drucken,.meldung{display:none!important}
  .spalte{margin-left:0}
  body{background:#fff;color:#000}
  main{padding:0;max-width:none}
  .auskunft{border:0;padding:0;background:#fff;color:#000}
}

/* Telefonanfrage */
.anruf-raster{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.hilfe{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px}
.hilfe .karte{margin:0}
.hilfe summary{cursor:pointer;list-style:none}
.hilfe summary h2{margin:0}
.hilfe summary::-webkit-details-marker{display:none}
.hilfe summary h2::after{content:'▾';margin-left:auto;color:var(--gedaempft)}
.hilfe details[open] summary h2::after{content:'▴'}
.hilfe .warnung{border-color:var(--hinweis)}
.fragen{margin:.3em 0 0;padding-left:1.3em;font-size:.92rem}
.fragen li{margin:.35em 0}
.antwort{border-top:1px solid var(--linie);padding:8px 0 2px;font-size:.92rem}
.antwort p{margin:.2em 0 .4em;color:var(--gedaempft)}
.telefonknopf{width:100%;margin:0 0 14px;min-height:52px;font-weight:700;border-color:var(--hervor);border-width:2px}
.klebrig{position:sticky;bottom:0;background:var(--bg);padding:10px 0;z-index:5}
@media (max-width:1100px){.anruf-raster{grid-template-columns:1fr}.hilfe{position:static;order:-1}}

/* Formulare und Knöpfe */
.formular{display:flex;flex-direction:column;gap:14px}
.formular.inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px dashed var(--linie)}
.formular.inline .breit{grid-column:1/-1}
.feld{display:flex;flex-direction:column;gap:4px}
.feld>span{font-size:.88rem;font-weight:600}
input,select,textarea{font:inherit;color:var(--text);background:var(--feld);border:1px solid var(--linie);border-radius:10px;padding:11px 12px;width:100%;min-height:46px}
input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--hervor) 55%,transparent);border-color:var(--hervor)}
fieldset{border:1px solid var(--linie);border-radius:12px;padding:12px 16px 16px;margin:0;display:flex;flex-direction:column;gap:12px}
legend{font-weight:700;padding:0 6px;color:var(--link)}
.zweispaltig{display:grid;grid-template-columns:1fr 1fr;gap:12px}
button,.knopf{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--linie);background:var(--flaeche);color:var(--text);
  padding:10px 16px;border-radius:10px;cursor:pointer;text-decoration:none;min-height:44px;line-height:1.2}
button:hover,.knopf:hover{border-color:var(--akzent)}
.haupt{background:var(--hervor);color:var(--auf-hervor);border-color:var(--hervor);font-weight:700}
.haupt:hover{filter:brightness(.95);border-color:var(--hervor)}
.gefahr{background:var(--fehler);color:#fff;border-color:var(--fehler);font-weight:700}
.breit{width:100%}
.klein-knopf{min-height:36px;padding:6px 12px;font-size:.88rem}
.knopfzeile{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gefahr-link{color:var(--fehler);font-size:.9rem;white-space:nowrap}
.filter{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.filter input{flex:1;min-width:200px}
.filter select{width:auto;min-width:160px}
.haken{display:flex;gap:10px;align-items:center;width:100%;font-weight:600}
.haken input{width:22px;height:22px;min-height:0}
.statusleiste{display:flex;flex-wrap:wrap;gap:8px}
.statusleiste button.gewaehlt{background:var(--primaer);color:#fff;border-color:var(--primaer);font-weight:700}
@media (prefers-color-scheme:dark){.statusleiste button.gewaehlt{background:var(--akzent);border-color:var(--akzent)}}

/* Hinweise und Marken */
.meldung{padding:12px 16px;border-radius:10px;margin:0 0 16px;border:1px solid var(--linie);background:var(--flaeche)}
.toasts{position:fixed;top:64px;right:16px;z-index:60;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 32px));pointer-events:none}
.toasts .meldung{margin:0;pointer-events:auto;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.18);transition:opacity .4s}
.toasts .meldung.weg{opacity:0}
.meldungen-inline .meldung{margin-bottom:12px}
.meldung.ok{border-color:var(--ok);color:var(--ok)}
.meldung.fehler{border-color:var(--fehler);color:var(--fehler)}
.meldung.hinweis{border-color:var(--hinweis);color:var(--hinweis)}
.marke{display:inline-block;font-size:.76rem;font-weight:600;padding:2px 10px;border-radius:99px;background:var(--bg);border:1px solid var(--linie);white-space:nowrap;color:var(--text)}
.status-neu{border-color:var(--akzent)}
.status-in_arbeit{background:color-mix(in srgb,var(--hervor) 25%,transparent);border-color:var(--hervor)}
.status-bericht_offen{background:color-mix(in srgb,var(--link) 18%,transparent);border-color:var(--link)}
.status-abgeschlossen{background:color-mix(in srgb,var(--ok) 20%,transparent);border-color:var(--ok)}
.status-gesperrt{border-color:var(--fehler);color:var(--fehler)}
.dringlich-akut{background:var(--fehler);color:#fff;border-color:var(--fehler)}
.dringlich-heute{background:color-mix(in srgb,var(--hervor) 35%,transparent);border-color:var(--hervor)}
.dringlich-woche{border-color:var(--akzent)}
.dringlich-keine_eile{color:var(--gedaempft)}
.listenmarken{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.liste li a.telefon-link{display:inline-flex;color:var(--text)}

/* Verbesserungsknopf */
.verbessern{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:15;display:flex;align-items:center;gap:8px;background:var(--primaer);color:#fff;
  text-decoration:none;padding:12px 16px;border-radius:99px;box-shadow:0 4px 14px rgba(0,0,0,.25);font-size:.9rem}
.verbessern:hover{background:var(--akzent)}

/* Anmeldung und schlichte Seiten */
.schlicht{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:14px}
.schlicht-karte{background:var(--flaeche);border:1px solid var(--linie);border-radius:18px;padding:26px 24px;width:100%;max-width:420px;box-shadow:var(--schatten)}
.schlicht-logo{display:block;margin:0 auto 12px;max-height:150px;background:#fff;border-radius:14px;padding:8px}
.schlicht-karte h1{text-align:center}
.schlicht-karte .klein{text-align:center}
.schlicht-fuss{font-size:.8rem;color:var(--gedaempft)}

/* Handy */
@media (max-width:900px){
  .seite{transform:translateX(-100%);transition:transform .2s;visibility:hidden}
  .seite.offen{transform:none;visibility:visible;box-shadow:0 0 30px rgba(0,0,0,.4)}
  .termin{flex-wrap:wrap;gap:6px 14px}
  .termin-text{flex:1 1 calc(100% - 5em)}
  .termin>.knopf{flex:1 1 100%}
  .spalte{margin-left:0}
  .menueknopf,.leiste-logo{display:flex}
  .leiste{padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top))}
  .leiste-suche{display:none}
  .leiste-logo{margin-right:auto}
  main{padding:16px 14px 90px}
  .abdunkeln.offen{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:25}
  .zweispaltig{grid-template-columns:1fr}
  .daten dl{grid-template-columns:1fr;gap:0}
  .daten dt{margin-top:8px}
  .verbessern span{display:none}
  .verbessern{padding:14px}
  .liste li{flex-wrap:wrap}
  .begruessung{flex-wrap:wrap}
}
@media (max-width:520px){.wetter{width:100%;margin-left:0;align-items:flex-start;text-align:left}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Brotkrumen und Zurück-Knopf */
.krumen{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;font-size:.9rem}
.krumen .zurueck{display:inline-flex;align-items:center;min-height:36px;padding:4px 14px;border:1px solid var(--linie);border-radius:99px;background:var(--karte,var(--bg));color:var(--text);text-decoration:none;font-weight:600}
.krumen .zurueck:hover{border-color:var(--akzent)}
.krumen ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0}
.krumen li{display:flex;align-items:center;gap:4px;min-width:0}
.krumen li+li::before{content:"›";color:var(--gedaempft);padding:0 2px}
.krumen a{color:var(--gedaempft);text-decoration:none}
.krumen a:hover{text-decoration:underline}
.krumen strong{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
.zaehler{display:inline-block;min-width:1.6em;padding:0 8px;margin-left:6px;border-radius:99px;background:var(--bg);border:1px solid var(--linie);font-size:.8rem;font-weight:600;text-align:center;vertical-align:middle}
details.karte>summary{cursor:pointer;list-style:none}
details.karte>summary h2{display:inline}
details.karte[open]>summary{margin-bottom:8px}

/* Kundenformular */
.typwahl{display:flex;gap:10px;flex-wrap:wrap;border:0;padding:0;margin:0 0 14px}
.typwahl legend{font-weight:600;margin-bottom:6px;padding:0}
.typ-knopf{flex:1;min-width:130px;cursor:pointer}
.typ-knopf input{position:absolute;opacity:0;pointer-events:none}
.typ-knopf span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:8px 14px;border:2px solid var(--linie);border-radius:12px;font-weight:600;text-align:center;background:var(--karte,var(--bg))}
.typ-knopf input:checked+span{border-color:var(--primaer);background:var(--primaer);color:#fff}
.typ-knopf input:focus-visible+span{outline:3px solid var(--hervor);outline-offset:2px}
.kontaktzeile{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;padding:12px 0;border-top:1px solid var(--linie)}
.kontaktzeile:first-child{border-top:0}
.kontaktzeile .gefahr-link{align-self:center}

/* Kundensuche im Auftragsformular */
.kundensuche{position:relative;margin:4px 0 6px}
.kundensuche .treffer{list-style:none;margin:4px 0 0;padding:4px;border:1px solid var(--linie);border-radius:12px;background:var(--karte,var(--bg));box-shadow:0 6px 18px rgba(0,0,0,.12);position:absolute;left:0;right:0;z-index:20}
.kundensuche .treffer li{padding:0}
.kundensuche .treffer li.klein{padding:10px 12px}
.kundensuche .treffer button{display:block;width:100%;text-align:left;border:0;background:none;color:var(--text);padding:10px 12px;border-radius:8px;min-height:44px;font:inherit;cursor:pointer}
.kundensuche .treffer button:hover,.kundensuche .treffer button:focus-visible{background:var(--bg)}
.kundensuche .gewaehlt{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--linie);border-radius:12px;margin:0}
.kundensuche .gewaehlt button{border:0;background:none;color:var(--akzent);text-decoration:underline;cursor:pointer;font:inherit}
[hidden]{display:none!important}

/* Geräte und Fahrzeuge */
.kennzahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 14px}
.kennzahl{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--linie);border-radius:12px;background:var(--karte,var(--bg));text-decoration:none;color:var(--text)}
.kennzahl strong{font-size:1.5rem;line-height:1.1}
.kennzahl span{font-size:.82rem;color:var(--gedaempft)}
.kennzahl.gewaehlt,.kennzahl:hover{border-color:var(--primaer)}
.filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.filter input[type=search]{flex:1;min-width:200px}
.haken{display:inline-flex;align-items:center;gap:8px;min-height:36px;cursor:pointer}
.geraet-wahl{display:flex;padding:6px 0;border-top:1px solid var(--linie)}
.standort-lager{border-color:var(--ok);color:var(--ok)}
.standort-fahrzeug{border-color:var(--akzent)}
.standort-auftrag{background:color-mix(in srgb,var(--hervor) 35%,transparent);border-color:var(--hervor)}
.standort-defekt,.ampel-rot{background:var(--fehler);color:#fff;border-color:var(--fehler)}
.standort-extern,.ampel-gelb{background:color-mix(in srgb,var(--hervor) 35%,transparent);border-color:var(--hervor)}
.ampel-gruen{border-color:var(--ok);color:var(--ok)}
.grosser-standort{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:1.05rem}
.umbuchen{margin-top:10px}
details.aufbauen{margin-top:12px}
details.aufbauen>summary{display:inline-flex;cursor:pointer;list-style:none}
details.aufbauen[open]>summary{margin-bottom:8px}
.haken input[type=checkbox]{width:20px;height:20px;min-height:0;flex:none;padding:0}

/* Eingang */
.reiter{margin:0 0 14px}
.reiter .filter{margin:0;flex:1;min-width:200px}
.beleg-text{white-space:pre-wrap;word-break:break-word;font:inherit;font-size:.92rem;background:var(--bg);border:1px solid var(--linie);border-radius:10px;padding:12px;max-height:420px;overflow:auto;margin:8px 0 0}
.beleg-bild{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--linie);margin:8px 0}

/* Dringlichkeit als Knöpfe */
.dringend-wahl .typ-knopf{min-width:110px}
.dringend-wahl .dring-akut input:checked+span{background:var(--fehler);border-color:var(--fehler)}
.dringend-wahl .dring-heute input:checked+span{background:var(--hervor);border-color:var(--hervor);color:var(--auf-hervor)}
#bekannt{margin:6px 0 10px}
#bekannt p{margin:4px 0}

/* Pflichtfelder: rot, wenn sie nach einem Speicherversuch fehlen */
form.versucht input:invalid, form.versucht select:invalid, form.versucht textarea:invalid{
  border-color:var(--fehler);background:color-mix(in srgb,var(--fehler) 8%,var(--feld));box-shadow:0 0 0 3px color-mix(in srgb,var(--fehler) 22%,transparent)}
form.versucht .feld:has(:invalid)>span{color:var(--fehler)}
form.versucht .feld:has(:invalid)::after{content:"Bitte ausfüllen";color:var(--fehler);font-size:.82rem;font-weight:600}
form.versucht .typwahl:has(input:invalid) legend{color:var(--fehler)}
form.versucht .typwahl:has(input:invalid) .typ-knopf span{border-color:var(--fehler)}
.kundensuche.fehlt input{border-color:var(--fehler);background:color-mix(in srgb,var(--fehler) 8%,var(--feld));box-shadow:0 0 0 3px color-mix(in srgb,var(--fehler) 22%,transparent)}
.kundensuche.fehlt::after{content:"Bitte einen Kunden auswählen";color:var(--fehler);font-size:.82rem;font-weight:600}

/* Telefonanfrage: fehlende Angaben */
.feld.fehlt input,.feld.fehlt select,.feld.fehlt textarea{border-color:var(--fehler);background:color-mix(in srgb,var(--fehler) 8%,var(--feld));box-shadow:0 0 0 3px color-mix(in srgb,var(--fehler) 22%,transparent)}
.feld.fehlt>span{color:var(--fehler)}
.feld.fehlt::after{content:attr(data-hinweis);color:var(--fehler);font-size:.82rem;font-weight:600}

/* Benutzerliste */
.benutzerkarte{margin-bottom:12px}
.benutzerkopf{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.benutzerkopf .klein{display:block}
.geraeteliste-benutzer{margin-top:12px;border-top:1px solid var(--linie);padding-top:10px}
.geraeteliste-benutzer>summary{cursor:pointer;font-weight:600}
.rollenhinweis{border:1px solid var(--linie);border-radius:12px;padding:12px 14px;font-size:.9rem;background:var(--karte,var(--bg));margin:4px 0 8px}
.geraeteliste-benutzer .liste .klein{display:block}
.liste li>div>.klein{display:block}

/* Konto */
.schritte{margin:10px 0;padding-left:1.3rem}
.schritte li{margin:6px 0}
.abo-link{margin-top:10px;border-top:1px solid var(--linie);padding-top:10px}
.abo-link>summary{cursor:pointer;font-weight:600}
.pw-pruefung{list-style:none;margin:0;padding:0;font-size:.9rem}
.pw-pruefung li{padding:2px 0 2px 1.6em;position:relative;color:var(--gedaempft)}
.pw-pruefung li::before{content:"○";position:absolute;left:0}
.pw-pruefung li.ok{color:var(--ok)}
.pw-pruefung li.ok::before{content:"✓"}

/* Unterschrift am Handy */
.belehrung-text{max-height:260px;overflow:auto;border:1px solid var(--linie);border-radius:10px;padding:10px 12px;font-size:.92rem;background:var(--bg)}
.belehrung-text h3{margin:10px 0 4px;font-size:.95rem}
.punkt-haken{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--linie);cursor:pointer}
.punkt-haken input{width:26px;height:26px;min-height:0;flex:none;margin-top:2px}
.signatur-feld{margin:10px 0}
#signatur{display:block;width:100%;height:auto;aspect-ratio:700/260;background:#fff;border:2px dashed var(--akzent);border-radius:12px;touch-action:none;cursor:crosshair}
#signatur.fehlt-feld{border-color:var(--fehler);box-shadow:0 0 0 3px color-mix(in srgb,var(--fehler) 22%,transparent)}
#signatur-fehler{color:var(--fehler);font-weight:600}
