/* =============================================================================
   privatinso.com — gemeinsames Design-System (App-UI)
   Quelle: docs/design/privatinso Design Spec.md + Referenz-HTMLs.
   STRIKT PRÄSENTATIONAL. Akzent ausschließlich über --accent/-d/-l (White-Label).
   Fonts werden selbst gehostet (privatinso/fonts.css) — kein Drittland-Transfer.
   ========================================================================== */

:root{
  /* Tinte / Text (aubergine-getöntes Neutral) */
  --ink:#231a33;
  --ink-2:#4a4063;
  --ink-3:#6e6589;          /* WCAG-Untergrenze für kleinen Text */

  /* Flächen */
  --paper:#f7f4fc;
  --paper-2:#ffffff;
  --lilac:#ece4fb;
  --lilac-2:#f3edfd;
  --line:#e3dcf2;
  --line-2:#d3c9ea;

  /* Dunkle Sektionen */
  --dark:#1a1228;
  --dark-2:#241834;
  --dark-line:#3a2d52;

  /* Akzent — EINZIGE Markenfarbe (white-label-variabel) */
  --accent:#7c4ddd;
  --accent-d:#6438c9;
  --accent-l:#a585ee;
  --accent-soft:#f1ebfc;

  /* Semantisch — NUR für Status (Gläubiger-Ampel), sparsam */
  --green:#3f9d74;
  --amber:#cf9b3f;
  --red:#cd6157;
  --amber-wash:#fbf3e3;
  --amber-line:#ecd9ab;
  --green-wash:#e7f3ec;
  --red-wash:#f7e8e6;

  /* Schrift */
  --display:'Archivo', system-ui, sans-serif;
  --serif:'Newsreader', Georgia, serif;
  --body:'Hanken Grotesk', system-ui, sans-serif;

  /* Radius */
  --r:16px;
  --r-sm:10px;
  --r-lg:24px;

  /* Schatten — weich, lila-getönt */
  --shadow-card:0 30px 60px -28px rgba(45,28,80,.20), 0 4px 14px -6px rgba(45,28,80,.10);
  --shadow-btn:0 8px 24px -8px rgba(124,77,221,.55);
  --shadow-lift:0 18px 36px -20px rgba(45,28,80,.30);

  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------------------------------------------------------------- reset/base */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-d);text-decoration:underline;}

h1,h2,h3,h4,h5{font-family:var(--display);color:var(--ink);letter-spacing:-.02em;line-height:1.12;margin:0 0 .5rem;}
h1{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;}
h2{font-size:1.35rem;font-weight:700;}
h3{font-size:1.12rem;font-weight:700;}
h4{font-size:1rem;font-weight:600;}
p{margin:0 0 .7rem;}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;}
.accent{color:var(--accent);}

/* ------------------------------------------------------------- app-chrome */
.app-bar{
  background:rgba(247,244,252,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
}
.app-bar-row{
  max-width:1180px;margin:0 auto;padding:0 28px;
  height:64px;display:flex;align-items:center;gap:20px;
}
.brand{font-family:var(--display);font-weight:800;letter-spacing:.01em;font-size:18px;
  display:inline-flex;align-items:center;gap:10px;color:var(--ink);}
.brand:hover{color:var(--ink);text-decoration:none;}
.brand .mark{width:24px;height:24px;border-radius:7px;background:var(--accent);position:relative;flex:0 0 auto;}
.brand .mark::before{content:"";position:absolute;inset:6px 6px auto 6px;height:3px;border-radius:2px;
  background:#fff;box-shadow:0 5px 0 rgba(255,255,255,.65),0 10px 0 rgba(255,255,255,.4);}
.brand small{font-family:var(--body);font-weight:500;font-size:12px;color:var(--ink-3);letter-spacing:0;}
.app-bar .spacer{margin-left:auto;}
.app-user{display:inline-flex;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-3);}
.app-user .who{font-weight:500;color:var(--ink-2);}

main{max-width:1180px;margin:28px auto;padding:0 28px;}
.app-mandant main{max-width:860px;}
.app-anwalt main{max-width:1180px;}
.app-admin main{max-width:1400px;}

/* ------------------------------------------------------------------- nav */
.app-nav{
  background:var(--paper-2);border-bottom:1px solid var(--line);
}
.app-nav-row{max-width:1180px;margin:0 auto;padding:0 28px;display:flex;gap:8px;
  font-family:var(--display);font-weight:500;font-size:14px;}
.app-admin .app-nav-row{max-width:1400px;}
.app-nav a{color:var(--ink-3);padding:13px 14px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.app-nav a:hover{color:var(--accent);text-decoration:none;}
.app-nav a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600;}

/* ------------------------------------------------------------------ cards */
.card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);
  padding:1.2rem 1.4rem;margin-bottom:1.1rem;box-shadow:var(--shadow-card);
}
.card.flush{box-shadow:none;}
.card-hover{transition:transform .2s var(--ease),box-shadow .2s var(--ease);}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}

.lead{color:var(--ink-2);font-size:1.05rem;}
.muted{color:var(--ink-3);font-size:.85rem;}
.kicker{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;}

/* ----------------------------------------------------------------- badges */
.badge{display:inline-block;padding:.18rem .6rem;border-radius:100px;font-size:.72rem;
  font-family:var(--display);font-weight:600;background:var(--lilac);color:var(--accent-d);
  border:1px solid var(--line-2);letter-spacing:.01em;}
.badge.verified,.badge.ok{background:var(--green-wash);color:#2f6f50;border-color:#bfe0cd;}
.badge.warn{background:var(--amber-wash);color:#8a6414;border-color:var(--amber-line);}
.badge.none{background:var(--red-wash);color:#9c4138;border-color:#e6c4bf;}

/* ------------------------------------------------ aufklappbare Datenbasis */
.db-groups{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 .2rem;}
.db-group{border:1px solid var(--line-2);border-radius:100px;background:var(--paper);
  flex:0 0 auto;transition:border-radius .15s var(--ease);}
.db-group[open]{flex:1 1 100%;border-radius:var(--r);background:var(--paper-2);}
.db-group>summary{cursor:pointer;list-style:none;padding:.38rem .9rem;
  font-family:var(--display);font-weight:600;font-size:.82rem;color:var(--ink-2);
  display:flex;align-items:center;gap:.45rem;user-select:none;}
.db-group>summary::-webkit-details-marker{display:none;}
.db-group>summary::after{content:"▾";font-size:.7rem;color:var(--ink-3);transition:transform .15s var(--ease);}
.db-group[open]>summary::after{transform:rotate(180deg);}
.db-group>summary b{background:var(--lilac);color:var(--accent-d);border-radius:100px;
  padding:.02rem .5rem;font-size:.78rem;}
.db-list{margin:0;padding:.1rem 1rem .7rem 1.5rem;list-style:disc;
  display:grid;gap:.18rem;font-size:.86rem;color:var(--ink-2);}

/* chip "aus Dokument ✓" */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;
  font-size:.72rem;padding:.18rem .55rem;border-radius:100px;background:var(--accent-soft);
  color:var(--accent-d);border:1px solid var(--line-2);}

/* ---------------------------------------------------------------- buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:600;
  font-size:.92rem;border:none;border-radius:100px;padding:.7rem 1.3rem;cursor:pointer;
  background:var(--lilac);color:var(--accent-d);white-space:nowrap;
  transition:transform .15s var(--ease),box-shadow .25s var(--ease),background .2s,color .2s,border-color .2s;}
.btn:hover{text-decoration:none;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-btn);}
.btn-primary:hover{background:var(--accent-d);color:#fff;transform:translateY(-2px);
  box-shadow:0 14px 30px -8px rgba(124,77,221,.6);}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line-2);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn.is-disabled{opacity:.5;pointer-events:none;}
.btn-light{background:#fff;color:var(--ink);border:1px solid var(--line);}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);}
.btn-ok{background:var(--green);color:#fff;}
.btn-ok:hover{background:#357f5e;color:#fff;transform:translateY(-2px);}
.btn-sm{padding:.5rem .9rem;font-size:.84rem;}
.btn[disabled],.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.btn .arr{transition:transform .2s var(--ease);}
.btn:hover .arr{transform:translateX(3px);}

/* ------------------------------------------------------------- forms/inputs */
label{font-family:var(--display);font-weight:600;font-size:.78rem;color:var(--ink-3);
  letter-spacing:.02em;}
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=date],input[type=tel],select,textarea{
  width:100%;padding:.55rem .7rem;border:1.3px solid var(--line-2);border-radius:8px;
  background:var(--paper-2);font-family:var(--body);font-size:.95rem;color:var(--ink);
  transition:border-color .15s,box-shadow .15s;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);}
select{cursor:pointer;}

/* Lücken-Zustand: KI-Daten fehlen → amber */
.field-gap input,.field-gap select,.field-gap textarea,
input.gap,select.gap{border-color:var(--amber-line);background:var(--amber-wash);}
.field-gap label,.label-gap{color:#8a6414;}

/* ------------------------------------------------------------------ notes */
.note{background:var(--amber-wash);border:1px solid var(--amber-line);border-radius:var(--r-sm);
  padding:.8rem 1rem;color:#7a5a11;font-size:.9rem;}
.note.info{background:var(--lilac-2);border-color:var(--line-2);color:var(--ink-2);}

/* --------------------------------------------------------------- messages */
.messages{list-style:none;padding:0;margin:0 0 1rem;}
.messages li{padding:.7rem 1rem;border-radius:var(--r-sm);margin-bottom:.5rem;
  background:var(--lilac-2);border:1px solid var(--line-2);color:var(--ink-2);font-size:.92rem;}
.messages li.success{background:var(--green-wash);border-color:#bfe0cd;color:#2f6f50;}
.messages li.error{background:var(--red-wash);border-color:#e6c4bf;color:#9c4138;}
.messages li.warning{background:var(--amber-wash);border-color:var(--amber-line);color:#8a6414;}

/* ------------------------------------------------------------------ tables */
table{border-collapse:collapse;width:100%;background:var(--paper-2);}
th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:top;}
th{background:var(--lilac-2);font-family:var(--display);font-weight:600;font-size:.78rem;
  color:var(--ink-2);letter-spacing:.02em;text-transform:uppercase;}
tbody tr:hover{background:var(--lilac-2);}
code{background:var(--lilac-2);padding:.06rem .35rem;border-radius:5px;font-size:.82em;
  color:var(--accent-d);}

/* --------------------------------------------------------- journey / stepper */
.journey{list-style:none;margin:0;padding:0;}
.journey-step{display:flex;align-items:center;gap:.8rem;padding:.5rem 0;}
.journey-dot{flex:0 0 auto;width:1.7rem;height:1.7rem;border-radius:100px;display:inline-flex;
  align-items:center;justify-content:center;font-family:var(--display);font-size:.8rem;font-weight:700;
  background:var(--lilac);color:var(--accent-d);border:1px solid var(--line-2);}
.journey-step.done .journey-dot{background:var(--accent);color:#fff;border-color:var(--accent);}
.journey-step.current .journey-dot{background:var(--accent);color:#fff;border-color:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);}
.journey-step.current .journey-label{font-weight:600;}
.journey-step.upcoming{opacity:.5;}
.journey-label{font-size:.95rem;}
.journey-phase{margin-left:.4rem;}

/* ----------------------------------------------------- Gläubiger-Ampel (Status) */
.ampel{width:.9rem;height:.9rem;border-radius:100px;display:inline-block;flex:0 0 auto;}
.ampel-gruen{background:var(--green);}
.ampel-gelb{background:var(--amber);}
.ampel-rot{background:var(--red);}
.ampel-grau{background:#b7afc9;}
.glaeubiger-row{display:flex;align-items:center;gap:.8rem;padding:.65rem 0;border-bottom:1px solid var(--line);}
.glaeubiger-row:last-child{border-bottom:0;}

/* Aggregierter Ampel-Balken (X von Y zugestimmt) */
.ampel-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--lilac);margin:.4rem 0;}
.ampel-bar i{display:block;height:100%;}
.ampel-bar .seg-gruen{background:var(--green);}
.ampel-bar .seg-gelb{background:var(--amber);}
.ampel-bar .seg-rot{background:var(--red);}

/* ---------------------------------------- Live-Gläubigerliste (Signature) */
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(124,77,221,.5);}70%{box-shadow:0 0 0 8px rgba(124,77,221,0);}100%{box-shadow:0 0 0 0 rgba(124,77,221,0);}}
.ledger-head{display:flex;align-items:center;gap:7px;font-family:var(--display);font-size:.72rem;
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.4rem;}
.ledger-head .d{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite;}
.ledger-stat{display:flex;align-items:flex-end;gap:1.2rem;padding:.2rem 0 .8rem;
  border-bottom:1px solid var(--line);margin-bottom:.3rem;}
.ledger-stat .big{font-family:var(--display);font-weight:800;font-size:2.4rem;line-height:.95;letter-spacing:-.03em;color:var(--ink);}
.ledger-stat .lab{font-size:.78rem;color:var(--ink-3);margin-top:.2rem;}
.ledger-stat .sum{margin-left:auto;text-align:right;}
.ledger-stat .sum .big{font-size:1.6rem;color:var(--accent-d);}
.lc-row{display:flex;align-items:center;gap:.7rem;padding:.55rem .4rem;border-radius:10px;
  transition:background .6s ease;}
.lc-row.flash{background:var(--lilac);}
.lc-av{width:32px;height:32px;border-radius:9px;background:var(--lilac);color:var(--accent-d);
  font-family:var(--display);font-weight:700;font-size:.72rem;display:flex;align-items:center;
  justify-content:center;flex:0 0 auto;}
.lc-nm{flex:1;font-weight:500;font-size:.92rem;min-width:0;overflow-wrap:anywhere;}
.lc-nm small{display:block;color:var(--ink-3);font-size:.72rem;font-weight:400;}
.lc-amt{font-family:var(--display);font-weight:700;font-size:.92rem;white-space:nowrap;}
.lc-empty{color:var(--ink-3);font-size:.88rem;padding:.4rem;}

/* Upload: Inhalt links, Live-Liste rechts (stapelt mobil) */
.upload-grid{display:grid;grid-template-columns:1fr 340px;gap:1.4rem;align-items:start;}
@media (max-width:760px){.upload-grid{grid-template-columns:1fr;}}

/* Kategorie-Hinweisliste (Upload) */
.cat-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem;}
.cat-list li{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;}
.cat-list li .ci{width:26px;height:26px;border-radius:8px;background:var(--lilac);color:var(--accent-d);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:.8rem;
  font-family:var(--display);font-weight:700;}
.cat-list li b{color:var(--ink);}

/* Hochgeladene Dokumente (Upload-Liste): klickbar, löschbar, kein Überlauf */
.doc-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.doc-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem;}
.doc-list li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;min-width:0;}
.doc-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;}
.doc-list .doc-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);}
.doc-list .doc-name:hover{color:var(--accent);text-decoration:underline;}
.doc-meta .badge{max-width:100%;}
.doc-del{flex:0 0 auto;border:none;background:transparent;color:var(--ink-3);cursor:pointer;
  font-size:.85rem;line-height:1;padding:.25rem .35rem;border-radius:7px;transition:background .15s,color .15s;}
.doc-del:hover{background:var(--red-wash);color:#9c4138;}

/* Feldliste (Datenprüfung) */
.field-list{display:flex;flex-direction:column;gap:.9rem;}
.fl-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1rem;align-items:start;}
.fl-label{display:flex;flex-direction:column;gap:.25rem;}
.fl-label label{margin:0;}
.fl-label .chip{align-self:flex-start;}
@media (max-width:560px){.fl-row{grid-template-columns:1fr;gap:.35rem;}}
/* Datenprüfung: nur die zu prüfenden (nicht eindeutigen) Felder anzeigen */
.pruefung.needs-only .fl-row.clear{display:none;}
.pruefung .fl-row.has-source{cursor:pointer;border-radius:8px;padding:.3rem;margin:-.3rem;transition:background .15s var(--ease);}
.pruefung .fl-row.has-source:hover{background:var(--accent-soft);}
.pruefung .src-link{color:var(--accent);}
/* Beleg-Modal: Dokumentseite mit hervorgehobenem Wert */
.doc-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:rgba(20,16,40,.55);padding:18px;}
.doc-modal[hidden]{display:none;}
.doc-modal-inner{background:#fff;border-radius:14px;width:100%;max-width:900px;max-height:90vh;
  overflow:auto;padding:14px 16px;box-shadow:var(--shadow-lift);}
.doc-modal-stage{position:relative;margin-top:.6rem;}
.doc-modal-stage img{width:100%;display:block;border:1px solid var(--line-2);border-radius:6px;}
.doc-modal-stage .hl{position:absolute;display:none;background:rgba(124,77,221,.18);
  border:2px solid var(--accent);border-radius:3px;pointer-events:none;}

/* „Ihre Angaben" (pruefung_b): drei leichte Sektionen statt Karten-Wand */
.opt{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--body);font-weight:400;
  font-size:.93rem;color:var(--ink);letter-spacing:0;text-transform:none;cursor:pointer;}
.opt input{flex:0 0 auto;}
/* OCR-Rückfrage-Zeile: links Feld/Beleg/Wert, rechts die Auswahl */
.check-row .src-meta{font-size:.72rem;}
.check-row .val{font-size:.9rem;color:var(--ink-2);margin-top:.1rem;}
.check-choices{display:flex;flex-direction:column;gap:.4rem;}
.check-choices .corr{margin-left:1.45rem;max-width:340px;}
/* Fragebogen: leichte, durch Trennlinien gegliederte Fragen (keine Einzelkarten) */
.angaben-list{display:flex;flex-direction:column;}
.angabe{padding:.85rem 0;border-top:1px solid var(--line);}
.angabe:first-child{border-top:0;padding-top:.2rem;}
.angabe-q{font-family:var(--display);font-weight:600;color:var(--ink);}
.angabe-opts{display:flex;flex-direction:column;gap:.4rem;margin-top:.45rem;}
.angabe-opts.inline{flex-direction:row;flex-wrap:wrap;gap:.3rem 1.4rem;}
.angabe-opts input[type="number"]{max-width:10rem;}
.angabe-opts input[type="text"]{max-width:24rem;}
.angabe .defer{margin-top:.55rem;color:var(--ink-3);}
/* Offene Pflicht-Stammdaten */
.req{color:var(--red);font-weight:700;}
.form-field{margin:0 0 .75rem;}
.form-field>label{display:block;margin-bottom:.25rem;}
.form-field .form-error{display:block;margin-top:.2rem;}

/* Addon-/Hinweis-Callout (z.B. P-Konto) */
.addon{background:var(--lilac-2);border:1px solid var(--line-2);border-radius:var(--r);
  padding:1rem 1.2rem;margin-bottom:1.1rem;}
.addon.attention{background:var(--amber-wash);border-color:var(--amber-line);}

/* Step-Pills (mobiler Fortschritt) */
.steps-pill{display:flex;gap:.5rem;flex-wrap:wrap;}
.steps-pill .pill{font-family:var(--display);font-weight:600;font-size:.8rem;padding:.3rem .8rem;
  border-radius:100px;background:var(--lilac);color:var(--accent-d);border:1px solid var(--line-2);}
.steps-pill .pill.current{background:var(--accent);color:#fff;border-color:var(--accent);}
.steps-pill .pill a{color:inherit;}

/* Danger-Button (entfernen) */
.btn-danger{background:var(--red-wash);color:#9c4138;border:1px solid #e6c4bf;}
.btn-danger:hover{background:#f0d8d4;color:#82362e;}

/* Fortschritts-/Vollständigkeits-Balken (Anwalt-Dashboard) */
.progressbar{height:7px;border-radius:6px;background:var(--lilac);overflow:hidden;min-width:90px;}
.progressbar i{display:block;height:100%;background:var(--accent);border-radius:6px;}
.progressbar.full i{background:var(--green);}

/* Fehlertext (Formulare) */
.form-error{color:#9c4138;font-weight:600;font-size:.9rem;}
/* Status-Text in Akzent/Grün/Amber (sparsam) */
.t-ok{color:#2f6f50;font-weight:600;}

/* dichte Tabellen: Summen-/Unterzeilen */
.total-row td,.total-row th{font-family:var(--display);font-weight:700;background:var(--lilac-2);}
.subrow td{background:var(--lilac-2);}

/* Anwalt-Dokumentreview: PDF links, Felder rechts */
.review-grid{display:flex;gap:1.4rem;align-items:flex-start;}
.review-pdf{flex:1 1 52%;min-width:0;max-height:820px;overflow:auto;border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--lilac-2);padding:10px;}
.review-fields{flex:1 1 48%;min-width:0;}
.pdf-page{position:relative;margin:0 auto 12px;width:fit-content;box-shadow:0 2px 10px -3px rgba(45,28,80,.35);border-radius:4px;}
.pdf-page img{display:block;max-width:100%;height:auto;border-radius:4px;}
.pdf-page .hl{position:absolute;display:none;background:rgba(124,77,221,.18);border:2px solid var(--accent);
  border-radius:3px;pointer-events:none;}
.field-row.active td{background:var(--accent-soft);}
/* Wert-Spalte: vollständige Anzeige (umbrechend), Bearbeiten erst per Stift-Icon. */
.review-fields td.value-cell{min-width:150px;}
.value-wrap{display:flex;align-items:flex-start;gap:.4rem;}
.value-display{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.35;}
.value-wrap .value-input{flex:1 1 auto;width:100%;min-width:0;}
.value-edit{flex:0 0 auto;border:1px solid var(--line-2);background:transparent;border-radius:6px;
  cursor:pointer;padding:.05rem .4rem;color:var(--ink-3);line-height:1.4;}
.value-edit:hover{border-color:var(--accent);color:var(--accent);}
@media (max-width:920px){.review-grid{flex-direction:column;}.review-pdf{max-height:560px;width:100%;}}

/* großer Termin-/Hervorhebungstext */
.bigline{font-family:var(--display);font-weight:700;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);}

/* ----------------------------------------------------------------- layout */
.row{display:flex;gap:1rem;flex-wrap:wrap;}
.row.between{justify-content:space-between;align-items:center;}
.stack{display:flex;flex-direction:column;gap:1rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}

/* ------------------------------------------- Admin / Formular-Mapping (dicht) */
.split{display:grid;grid-template-columns:1fr 480px;gap:1.4rem;align-items:start;}
.sticky{position:sticky;top:1rem;}
.preview-wrap{position:relative;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;}
.preview-wrap img{width:100%;display:block;}
.box{position:absolute;border:1.5px solid var(--red);background:rgba(205,97,87,.10);font-size:9px;
  color:#9c4138;}
.box.mapped{border-color:var(--green);background:rgba(63,157,116,.12);color:#2f6f50;}
tr:target td,tr:target th{background:var(--amber-wash);}
/* dichtere Tabellen im Admin/Review-Kontext */
.app-anwalt th,.app-admin th{text-transform:none;letter-spacing:0;font-size:.8rem;}
.app-admin td,.app-admin th{padding:.45rem .6rem;}

/* ------------------------------------------------------- print / reduced-motion */
@media print{
  .app-bar,.app-nav,.btn,.no-print{display:none !important;}
  body{background:#fff;}
  .card{box-shadow:none;border-color:#ccc;}
  main{max-width:none;margin:0;padding:0;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ---------------------------------------------- Mandant-Detail: Kopf/Tabs */
.case-head{padding:1rem 1.25rem;margin-bottom:1rem;}
.case-head-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.case-id{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0;}
.case-avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--lilac);
  color:var(--accent-d);display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:600;font-size:.95rem;text-transform:uppercase;}
.case-actions{display:flex;gap:.5rem;flex-wrap:wrap;}

.phase-strip{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.9rem;
  padding-top:.8rem;border-top:1px solid var(--line);}
.phase{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-3);
  appearance:none;border:none;background:none;font-family:var(--body);cursor:pointer;
  text-decoration:none;padding:.15rem .25rem;border-radius:var(--r-sm);}
.phase:hover{color:var(--ink);background:var(--lilac-2);}
.phase-dot{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;font-size:.66rem;background:var(--line);color:var(--ink-2);}
.phase.done{color:var(--ink-2);}
.phase.done .phase-dot{background:var(--green-wash);color:#2f6f50;}
.phase.current{color:var(--accent-d);font-weight:600;}
.phase.current .phase-dot{background:var(--accent);color:#fff;}
.phase-sep{color:var(--line-2);}

/* Dokumente-Tab: collapsible Gruppe je Dokumenttyp */
.doc-group{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper-2);margin-bottom:.6rem;}
.doc-group>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;
  padding:.55rem .85rem;font-family:var(--display);font-weight:600;}
.doc-group>summary::-webkit-details-marker{display:none;}
.doc-group>summary::after{content:"▾";margin-left:auto;color:var(--ink-3);transition:transform .15s var(--ease);}
.doc-group[open]>summary::after{transform:rotate(180deg);}
.doc-group>summary b{background:var(--lilac);color:var(--accent-d);border-radius:100px;padding:0 .5rem;font-size:.8rem;}
.doc-group-body{padding:0 .85rem .6rem;}
.doc-group-body table{margin:0;}

/* Datenbasis: Forderungen je Cluster (Untergruppen-Köpfe) */
.cluster-sub + .cluster-sub{border-top:1px solid var(--line);}
.cluster-sub-head{padding:.45rem 1rem .1rem;font-family:var(--display);font-weight:600;font-size:.86rem;}

/* § 305-Antrag: Bündel-Formularliste */
.bundle-list{margin:0;padding-left:1.4rem;}
.bundle-list li{padding:.18rem 0;border-top:1px solid var(--line);}
.bundle-list li:first-child{border-top:none;}
.bundle-list .muted{font-size:.8rem;}

/* Übersicht: Offene-Punkte-Checkliste */
.op-list{margin:.4rem 0 0;padding-left:1.2rem;}
.op-list li{padding:.18rem 0;}
.op-link{appearance:none;border:none;background:none;font:inherit;color:var(--accent-d);
  cursor:pointer;padding:0;text-decoration:underline;}
.op-link:hover{color:var(--accent);}
.op-list a{color:var(--accent-d);}

.tabs{display:flex;gap:.15rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:1.2rem;}
.tab{appearance:none;background:none;border:none;cursor:pointer;font-family:var(--display);
  font-weight:600;font-size:.9rem;color:var(--ink-3);padding:.55rem .85rem;border-radius:var(--r-sm) var(--r-sm) 0 0;
  border-bottom:2px solid transparent;margin-bottom:-1px;}
.tab:hover{color:var(--ink);}
.tab.is-active{color:var(--accent-d);border-bottom-color:var(--accent);}
.tab b{background:var(--lilac);color:var(--accent-d);border-radius:100px;padding:0 .42rem;
  font-size:.72rem;font-weight:600;margin-left:.25rem;}
.tabpanel{display:none;}
.tabpanel.is-active{display:block;animation:tabin .18s var(--ease);}
@keyframes tabin{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:.2rem 0;}
.kpi{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .85rem;}
.kpi-label{display:block;font-size:.74rem;color:var(--ink-3);}
.kpi-value{display:block;font-family:var(--display);font-weight:600;font-size:1.35rem;color:var(--ink);}

.next-step{display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;margin-bottom:1rem;
  border-left:3px solid var(--accent);}
.next-step-label{font-size:.74rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;}
.next-step strong{font-family:var(--display);font-size:1rem;}
.hint-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem;}

/* ------------------------------------------------------------- responsive */
@media (max-width:920px){
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .kpis{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .app-bar-row,main,.app-nav-row{padding-left:18px;padding-right:18px;}
  main{margin:18px auto;}
  .brand small{display:none;}
  .case-actions{width:100%;}
}
