/* Dialog "Neues Leistungsverzeichnis" (assets/lv-dialog.js).
 * Alle Klassen mit lvd- Praefix, damit Seitenregeln wie .modal, .leer
 * oder label{} nicht hineingreifen. Masse und Farben nach PROMPT.md, Abschnitt 8.
 * Inter wird nicht nachgeladen (keine Google-Schriften, DSGVO); fehlt sie
 * lokal, gilt die Seitenschrift IBM Plex Sans.
 */
.lvd-bg{
  --lvd-text:#18181B; --lvd-text2:#52525B; --lvd-text3:#71717A;
  --lvd-rand:#E4E4E7; --lvd-rand-input:#D4D4D8; --lvd-grau:#F4F4F5; --lvd-hell:#FAFAFA;
  --lvd-akzent:#EA580C; --lvd-akzent-dunkel:#C2410C; --lvd-akzent-text:#9A3412;
  --lvd-akzent-hell:#FFF7ED; --lvd-akzent-rand:#FBD9BC; --lvd-gefahr:#B42318;
  position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center;
  padding:20px; box-sizing:border-box; background:rgba(24,24,27,.55);
  font-family:Inter,'IBM Plex Sans',system-ui,sans-serif; color:var(--lvd-text);
}
.lvd-bg.lvd-offen{display:flex}
.lvd-bg *,.lvd-bg *::before,.lvd-bg *::after{box-sizing:border-box}
.lvd-bg button{font-family:inherit; cursor:pointer}
.lvd-bg :focus-visible{outline:2px solid var(--lvd-akzent); outline-offset:2px}
.lvd-bg [hidden]{display:none!important}

.lvd-dialog{
  position:relative; width:820px; max-width:100%; height:900px; max-height:calc(100vh - 40px);
  background:#fff; border-radius:20px; box-shadow:0 24px 64px rgba(0,0,0,.28);
  display:flex; flex-direction:column; overflow:hidden;
}

/* Kopf */
.lvd-kopf{flex:0 0 auto; display:flex; flex-direction:column; gap:20px; padding:26px 32px 20px; border-bottom:1px solid #ECECEE}
.lvd-kopf-zeile{display:flex; justify-content:space-between; align-items:flex-start; gap:16px}
.lvd-titel{margin:0; font-size:22px; font-weight:700; letter-spacing:-.01em; line-height:1.25}
.lvd-hinweis{margin:4px 0 0; font-size:14px; color:var(--lvd-text2)}
.lvd-schliessen{flex:0 0 44px; width:44px; height:44px; border:0; border-radius:10px; background:var(--lvd-grau); color:#3F3F46; display:flex; align-items:center; justify-content:center}
.lvd-schliessen:hover{background:#E4E4E7}

/* Schrittanzeige */
.lvd-schritte{display:flex; align-items:center; gap:12px}
.lvd-schritt{display:flex; align-items:center; gap:10px; min-height:44px; padding:0 4px; border:0; background:none; font-size:14px; font-weight:500; color:var(--lvd-text2)}
.lvd-schritt[aria-current="step"]{font-weight:600; color:var(--lvd-text)}
.lvd-punkt{width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; background:var(--lvd-grau); color:var(--lvd-text2)}
.lvd-schritt[aria-current="step"] .lvd-punkt{background:var(--lvd-akzent); color:#fff}
.lvd-schritt.lvd-erledigt .lvd-punkt{background:var(--lvd-akzent-hell); color:var(--lvd-akzent-dunkel); border:1.5px solid var(--lvd-akzent)}
.lvd-linie{flex:1; height:2px; min-width:24px; border-radius:2px; background:var(--lvd-rand)}
.lvd-linie.lvd-erledigt{background:var(--lvd-akzent)}

/* Inhalt */
.lvd-inhalt{flex:1 1 auto; min-height:0; overflow-y:auto; padding:24px 32px 28px}
.lvd-seite{display:flex; flex-direction:column; gap:24px}
.lvd-seite3{gap:14px}
.lvd-felder{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px}
.lvd-feld{display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:600; position:relative; min-width:0}
.lvd-feld-voll{grid-column:1 / -1}
.lvd-optional{font-weight:400; color:var(--lvd-text3)}
.lvd-pflicht{color:var(--lvd-akzent-dunkel)}
.lvd-eingabe{height:48px; width:100%; padding:0 14px; border:1px solid var(--lvd-rand-input); border-radius:10px; background:#fff; font-size:15px; font-weight:400; font-family:inherit; color:var(--lvd-text)}
.lvd-eingabe:focus{border-color:var(--lvd-akzent); outline:2px solid var(--lvd-akzent); outline-offset:2px}
.lvd-eingabe[aria-invalid="true"]{border-color:var(--lvd-gefahr)}
.lvd-fehler{margin:0; font-size:13px; font-weight:500; color:var(--lvd-gefahr)}
.lvd-meldung{padding:10px 14px; border-radius:10px; font-size:13px; line-height:1.45}
.lvd-meldung.err{background:#FEF3F2; border:1px solid #FECDCA; color:var(--lvd-gefahr)}
.lvd-meldung.info{background:var(--lvd-grau); border:1px solid var(--lvd-rand); color:#3F3F46}
.lvd-meldung.ok{background:#ECFDF5; border:1px solid #A7F3D0; color:#065F46}

/* Adressvorschlaege (Photon), unter dem Adressfeld */
.lvd-adresse{position:relative}
.lvd-vorschlaege{position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:6; padding:6px; background:#fff; border:1px solid var(--lvd-rand); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.14); font-weight:400}
.lvd-vorschlag{display:block; width:100%; padding:8px 10px; border:0; border-radius:6px; background:#fff; text-align:left; font-size:13px; color:var(--lvd-text)}
.lvd-vorschlag span{display:block; font-size:12px; color:var(--lvd-text2)}
.lvd-vorschlag:hover,.lvd-vorschlag.lvd-aktiv{background:var(--lvd-grau)}
.lvd-vorschlaege-fuss{padding:6px 10px 2px; font-size:11px; color:var(--lvd-text3)}

/* Kacheln */
.lvd-art{margin:0; padding:0; border:0; display:flex; flex-direction:column; gap:16px; min-width:0}
.lvd-art-kopf{padding:0; margin-bottom:4px; display:flex; flex-direction:column; gap:4px}
.lvd-art-titel{font-size:14px; font-weight:600}
.lvd-art-unter{font-size:13px; color:var(--lvd-text2)}
.lvd-art-gruppen{display:flex; flex-direction:column; gap:16px}
.lvd-gruppe{display:flex; flex-direction:column; gap:8px}
.lvd-gruppentitel{margin:0; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--lvd-text3)}
.lvd-kacheln{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px}
.lvd-kachel-huelle{position:relative; display:flex; min-width:0}
.lvd-kachel{flex:1; display:flex; align-items:flex-start; gap:10px; min-height:68px; padding:12px; border:1px solid var(--lvd-rand); border-radius:12px; background:#fff; text-align:left; color:var(--lvd-text); min-width:0}
.lvd-kachel:hover{border-color:#D4D4D8}
.lvd-kachel[aria-pressed="true"]{border:1.5px solid var(--lvd-akzent); background:var(--lvd-akzent-hell); box-shadow:0 0 0 3px rgba(234,88,12,.12)}
.lvd-kachel.lvd-mit-menue{padding-right:40px}
.lvd-ikon{flex:0 0 32px; width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:var(--lvd-grau); color:#3F3F46}
.lvd-kachel[aria-pressed="true"] .lvd-ikon{background:var(--lvd-akzent); color:#fff}
.lvd-kachel-text{display:flex; flex-direction:column; gap:2px; min-width:0}
.lvd-kachel-name{font-size:14px; font-weight:600; line-height:1.3}
.lvd-kachel-unter{font-size:12px; color:var(--lvd-text2); line-height:1.35}
.lvd-kachel-neu{align-items:center; border:1.5px dashed var(--lvd-rand-input); background:var(--lvd-hell)}
.lvd-kachel-neu .lvd-ikon{background:#fff; border:1px solid var(--lvd-rand); color:var(--lvd-akzent-dunkel)}
.lvd-punkte{position:absolute; top:6px; right:6px; width:32px; height:32px; border:0; border-radius:8px; background:transparent; color:var(--lvd-text2); display:flex; align-items:center; justify-content:center}
.lvd-punkte:hover{background:rgba(0,0,0,.05)}
.lvd-menue{position:absolute; top:42px; right:6px; z-index:5; width:168px; padding:6px; background:#fff; border:1px solid var(--lvd-rand); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.14); display:flex; flex-direction:column}
.lvd-menue button{height:36px; padding:0 10px; border:0; border-radius:6px; background:#fff; text-align:left; font-size:13px; font-weight:500; color:var(--lvd-text)}
.lvd-menue button:hover{background:var(--lvd-grau)}
.lvd-menue .lvd-loeschen{color:var(--lvd-gefahr)}

/* Ablagezonen */
.lvd-zone{display:flex; flex-direction:column; align-items:center; gap:10px; padding:36px 16px; border:1.5px dashed var(--lvd-rand-input); border-radius:12px; background:var(--lvd-hell); text-align:center}
.lvd-zone.lvd-drag{border-color:var(--lvd-akzent); background:var(--lvd-akzent-hell)}
.lvd-zone[aria-invalid="true"]{border-color:var(--lvd-gefahr)}
.lvd-zone-quer{flex-direction:row; align-items:center; gap:14px; padding:18px 20px; text-align:left}
.lvd-zone-ikon{flex:0 0 auto; width:48px; height:48px; border-radius:12px; background:#fff; border:1px solid var(--lvd-rand); color:var(--lvd-text2); display:flex; align-items:center; justify-content:center}
.lvd-zone-quer .lvd-zone-ikon{width:44px; height:44px}
.lvd-zone-text{margin:0; font-size:14px; font-weight:400; color:var(--lvd-text)}
.lvd-zone-hinweis{margin:0; font-size:13px; font-weight:400; color:var(--lvd-text2); line-height:1.45}
.lvd-waehlen{padding:0; border:0; background:none; font-size:14px; font-weight:600; color:var(--lvd-akzent-dunkel); text-decoration:underline}
.lvd-dateien{display:flex; flex-direction:column; gap:6px}
.lvd-datei{display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 6px 6px 12px; border:1px solid var(--lvd-rand); border-radius:10px; font-size:13px; font-weight:400}
.lvd-datei-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--lvd-text)}
.lvd-datei-groesse{color:var(--lvd-text2); white-space:nowrap}
.lvd-datei-weg{width:32px; height:32px; border:0; border-radius:8px; background:transparent; color:var(--lvd-text2); display:flex; align-items:center; justify-content:center}
.lvd-datei-weg:hover{background:var(--lvd-grau); color:var(--lvd-gefahr)}

.lvd-notiz{width:100%; padding:12px 14px; border:1px solid var(--lvd-rand-input); border-radius:10px; background:#fff; font-size:14px; font-weight:400; line-height:1.5; font-family:inherit; color:var(--lvd-text); resize:vertical}
.lvd-pillen{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.lvd-pillen-label{font-size:13px; font-weight:400; color:var(--lvd-text2); margin-right:4px}
.lvd-pille{height:32px; padding:0 12px; border:1px solid var(--lvd-rand); border-radius:999px; background:#fff; font-size:13px; font-weight:500; color:var(--lvd-text)}
.lvd-pille:hover{border-color:var(--lvd-akzent-rand); background:var(--lvd-akzent-hell)}

/* Schritt 3 */
.lvd-leiste{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; border-radius:12px; background:var(--lvd-grau)}
.lvd-leiste-text{font-size:13px; color:#3F3F46}
.lvd-leiste-text b{color:var(--lvd-text)}
.lvd-leiste-knoepfe{display:flex; gap:6px}
.lvd-klein{height:36px; padding:0 12px; border:1px solid var(--lvd-rand); border-radius:8px; background:#fff; font-size:13px; font-weight:500; color:var(--lvd-text)}
.lvd-klein:hover{border-color:var(--lvd-rand-input)}
.lvd-hinweisleiste{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; padding:10px 10px 10px 14px; border-radius:12px; background:var(--lvd-akzent-hell); border:1px solid var(--lvd-akzent-rand)}
.lvd-hinweisleiste .lvd-leiste-text b{color:var(--lvd-akzent-text)}
.lvd-klein-akzent{border-color:var(--lvd-akzent-rand); color:var(--lvd-akzent-text)}
.lvd-klein-primaer{padding:0 14px; border:0; background:var(--lvd-akzent-dunkel); color:#fff; font-weight:600}
.lvd-klein-primaer:hover{background:var(--lvd-akzent-text)}

.lvd-akk{border:1px solid var(--lvd-rand); border-radius:12px; overflow:hidden}
.lvd-akk-kopf{width:100%; min-height:52px; padding:0 16px; border:0; background:#fff; display:flex; align-items:center; gap:12px; text-align:left}
.lvd-pfeil{flex:0 0 16px; transition:transform .15s}
.lvd-akk-kopf[aria-expanded="true"] .lvd-pfeil{transform:rotate(90deg)}
.lvd-akk-titel{flex:1; font-size:14px; font-weight:600; color:var(--lvd-text)}
.lvd-zaehler{font-size:12px; font-weight:600; border-radius:999px; padding:4px 10px; color:var(--lvd-text2); background:var(--lvd-grau); border:1px solid var(--lvd-rand)}
.lvd-zaehler.lvd-mit-auswahl{color:var(--lvd-akzent-text); background:var(--lvd-akzent-hell); border-color:var(--lvd-akzent-rand)}
.lvd-akk-inhalt{padding:4px 14px 14px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
.lvd-lg{display:flex; align-items:center; gap:10px; min-height:46px; padding:8px 12px; border:1px solid var(--lvd-rand); border-radius:10px; background:#fff; text-align:left; min-width:0}
.lvd-lg[aria-pressed="true"]{border:1.5px solid var(--lvd-akzent); background:var(--lvd-akzent-hell)}
.lvd-haken{flex:0 0 20px; width:20px; height:20px; border-radius:6px; display:flex; align-items:center; justify-content:center; background:#fff; border:1.5px solid #A1A1AA; color:#fff}
.lvd-lg[aria-pressed="true"] .lvd-haken{background:var(--lvd-akzent); border:0}
.lvd-lg-nr{flex:0 0 26px; font-size:12px; font-weight:600; color:var(--lvd-text3)}
.lvd-lg-name{font-size:14px; font-weight:500; color:var(--lvd-text); line-height:1.3}
.lvd-schnitt{display:flex; flex-direction:column; gap:8px; padding:14px 16px; border-radius:12px; background:var(--lvd-akzent-hell); border:1px solid var(--lvd-akzent-rand)}
.lvd-schnitt-titel{font-size:14px; font-weight:600}
.lvd-schnitt-leer{margin:0; font-size:13px; color:var(--lvd-text2)}
.lvd-schnitt-zeile{display:flex; gap:12px; align-items:baseline; padding-top:8px; border-top:1px solid #FBE3CF; font-size:13px}
.lvd-schnitt-paar{flex:0 0 220px; font-weight:600; color:var(--lvd-text)}
.lvd-schnitt-text{color:#3F3F46}

/* Fuss */
.lvd-fuss{flex:0 0 auto; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 32px; border-top:1px solid #ECECEE; background:var(--lvd-hell)}
.lvd-fuss-text{font-size:13px; color:var(--lvd-text2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.lvd-fuss-knoepfe{display:flex; gap:10px; flex:0 0 auto}
.lvd-knopf{height:44px; padding:0 18px; border:1px solid var(--lvd-rand-input); border-radius:10px; background:#fff; font-size:14px; font-weight:500; color:var(--lvd-text)}
.lvd-knopf:hover{background:var(--lvd-hell)}
.lvd-primaer{padding:0 20px; border:0; background:var(--lvd-akzent-dunkel); font-weight:600; color:#fff}
.lvd-primaer:hover{background:var(--lvd-akzent-text)}
.lvd-primaer:disabled{opacity:.6; cursor:progress}

/* Unterfenster */
.lvd-unter-bg{position:absolute; inset:0; z-index:10; background:rgba(24,24,27,.45); display:flex; align-items:center; justify-content:center; padding:16px}
.lvd-unter{width:460px; max-width:100%; max-height:100%; overflow-y:auto; background:#fff; border-radius:16px; box-shadow:0 24px 64px rgba(0,0,0,.3); display:flex; flex-direction:column}
.lvd-unter-kopf{padding:22px 24px 6px; display:flex; flex-direction:column; gap:4px}
.lvd-unter-titel{margin:0; font-size:18px; font-weight:700}
.lvd-unter-unter{margin:0; font-size:13px; color:var(--lvd-text2)}
.lvd-unter-inhalt{padding:16px 24px; display:flex; flex-direction:column; gap:18px}
.lvd-unter-fuss{display:flex; justify-content:flex-end; gap:10px; padding:14px 24px 20px}
.lvd-ikonwahl{display:flex; flex-wrap:wrap; gap:8px}
.lvd-ikonknopf{width:44px; height:44px; border-radius:10px; border:1px solid var(--lvd-rand); background:#fff; color:#3F3F46; display:flex; align-items:center; justify-content:center}
.lvd-ikonknopf[aria-pressed="true"]{border:1.5px solid var(--lvd-akzent); background:var(--lvd-akzent-hell); color:var(--lvd-akzent-dunkel)}
.lvd-sichtbar{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
.lvd-sichtknopf{display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-height:56px; padding:10px 12px; border-radius:10px; border:1px solid var(--lvd-rand); background:#fff; text-align:left}
.lvd-sichtknopf[aria-pressed="true"]{border:1.5px solid var(--lvd-akzent); background:var(--lvd-akzent-hell)}
.lvd-sichtknopf b{font-size:14px; font-weight:600; color:var(--lvd-text)}
.lvd-sichtknopf span{font-size:12px; color:var(--lvd-text2)}
.lvd-frage{width:440px; padding:22px 24px 20px; gap:14px}
.lvd-frage-text{margin:0; font-size:14px; color:#3F3F46; line-height:1.5}
.lvd-frage .lvd-unter-fuss{padding:6px 0 0}
.lvd-fertig{width:400px; padding:28px 24px 22px; align-items:center; gap:12px; text-align:center}
.lvd-fertig-ikon{width:48px; height:48px; border-radius:50%; background:var(--lvd-akzent-hell); color:var(--lvd-akzent-dunkel); display:flex; align-items:center; justify-content:center}

@media (max-width:860px){
  .lvd-bg{padding:16px}
  .lvd-dialog{height:calc(100vh - 32px); max-height:none}
  .lvd-kopf{padding:20px 20px 16px}
  .lvd-inhalt{padding:20px}
  .lvd-fuss{padding:12px 20px}
  .lvd-kacheln{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .lvd-felder,.lvd-akk-inhalt,.lvd-kacheln{grid-template-columns:minmax(0,1fr)}
  .lvd-schritt-label{display:none}
  .lvd-fuss{flex-wrap:wrap}
  .lvd-fuss-text{flex:1 0 100%}
  .lvd-fuss-knoepfe{flex:1 0 100%; justify-content:flex-end}
  .lvd-schnitt-zeile{flex-direction:column; gap:2px}
  .lvd-schnitt-paar{flex:none}
}
@media (prefers-reduced-motion:reduce){ .lvd-pfeil{transition:none} }
