/* =========================================================================
   AOP-Coding-Assistent v2 — Auswertungs-Workspace additions
   Baut auf colors_and_type.css + aop.css + styles.css (Variant D) auf.
   Neue Komponenten: Prüfziel-Segment, Nordstern-Aufschlüsselung,
   Code-Zeilen + Abrechnungskette, Setting-Vergleich, Lücken-Punch-List,
   KI-Block, Analyse-Zustand. Akzent + Status erben aus dem Bestandssystem.
   ========================================================================= */

/* ---- Prüfziel als Segmented Control ------------------------------------ */
.seg-goal { gap: 6px; }
.seg-goal .ap-seg-item {
  flex: 1 1 auto; text-align: center; padding: 8px 10px; font-size: 12px;
  border: 1px solid var(--border); background: var(--bg-2); color: var(--fg-2);
  border-radius: var(--radius-md);
}
.seg-goal .ap-seg-item:hover { border-color: var(--border-strong); color: var(--fg-1); }
.seg-goal .ap-seg-item.is-on { background: var(--mi-ink); color: #fff; border-color: var(--mi-ink); font-weight: 600; }
.seg-hint { margin: 8px 0 0; font-size: 12px; color: var(--fg-3); line-height: 1.45; }

/* ---- Schnell-Kodierung aus Stichwort (beim Prüfziel) -------------------- */
.quick-term-row { display: flex; gap: 8px; align-items: stretch; }
.quick-term-row .ap-input { flex: 1 1 auto; min-width: 0; }
.quick-term-row .ap-btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 900px) {
  .quick-term-row { flex-wrap: wrap; }
  .quick-term-row .ap-btn { flex: 1 1 100%; }
}

/* Auswahl-Panel: Vorschläge als anhakbare Textliste */
.quick-results { margin-top: 10px; border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--bg-2); padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.quick-results-head { font-size: 12.5px; font-weight: 600; color: var(--fg-1); }
.quick-empty { margin: 0; font-size: 12.5px; color: var(--fg-2); }
.quick-group { display: flex; flex-direction: column; gap: 6px; }
.quick-group-title { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fg-3); }
/* Bei vielen Treffern scrollt die Liste statt das Panel ins Unendliche zu strecken. */
.quick-group-list { display: flex; flex-direction: column; gap: 6px; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; }
.quick-item { display: flex; align-items: baseline; gap: 8px; font-size: 13px; color: var(--fg-1); cursor: pointer; }
.quick-item input { accent-color: var(--mi-ink); flex: 0 0 auto; transform: translateY(1px); }
.quick-code { font-family: var(--font-mono, ui-monospace, monospace); font-weight: 700; white-space: nowrap; }
.quick-text { min-width: 0; overflow-wrap: anywhere; }
.quick-derived { font-style: normal; font-size: 11px; color: var(--st-wn-fg); white-space: nowrap; }
.quick-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.quick-actions .ap-btn--primary { flex: 0 1 auto; }

/* ---- Feedback zur App --------------------------------------------------- */
.feedback-field { margin-top: 10px; }
.feedback-row { display: flex; gap: 8px; align-items: stretch; }
.feedback-row .ap-input { flex: 1 1 auto; min-width: 0; }
.feedback-row .ap-btn { flex: 0 0 auto; }
.feedback-status { display: block; min-height: 14px; margin-top: 4px; font-size: 11.5px; color: var(--st-ok-fg); }
.feedback-status.is-error { color: var(--st-wn-fg); }

/* ---- Eingang: Beispiel-/Demo-Markierung -------------------------------- */
.is-demo-note { font-size: 11px; color: var(--fg-3); }

/* ---- Empty-State Punkteliste ------------------------------------------- */
.empty-points { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px;
  text-align: left; max-width: 420px; }
.empty-points li { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; color: var(--fg-2); line-height: 1.4; }
.empty-points li::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--mi-ink-30);
  flex: 0 0 auto; margin-top: 6px; }

/* ---- Summary-Head (Nordstern + Verdikt) -------------------------------- */
.d-summaryhead { display: flex; flex-direction: column; gap: 9px; flex: 0 0 auto; }
.headline-card.is-focus { box-shadow: 0 0 0 2px var(--aop-accent), var(--shadow-2); }
.d-tile.is-focus { box-shadow: 0 0 0 2px var(--aop-accent), var(--shadow-1); }

/* Kompaktere Kennzahlen, damit Tabs + Inhalt darunter mehr Höhe bekommen */
.d-summaryhead .headline-readouts { margin-bottom: 0; gap: 8px; }
.d-summaryhead .headline-card { padding: 9px 13px; gap: 3px; }
.d-summaryhead .headline-card .hr-value { font-size: 17px; }
.d-summaryhead .d-verdict { gap: 10px; }
.d-summaryhead .d-tile { padding: 0 0 9px; }
.d-summaryhead .d-tile .cap { height: 3px; }
.d-summaryhead .d-tile .inner { padding: 8px 13px 0; gap: 4px; }
.d-summaryhead .d-tile .val { font-size: 17px; }

/* Kennzahlen ausblendbar: Schalter rechts im Auswertungs-Kopf */
.d-h-right { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.sumhead-toggle { background: none; border: 1px solid var(--border-strong); border-radius: var(--radius-pill);
  padding: 3px 10px; font-family: var(--font-sans); font-size: 11.5px; font-weight: 600; color: var(--fg-2);
  cursor: pointer; white-space: nowrap; }
.sumhead-toggle:hover { color: var(--fg-1); border-color: var(--fg-3); background: var(--bg-3); }

/* Vergütung-Aufschlüsselung im Readout */
.hr-toggle { align-self: flex-start; margin-top: 4px; background: none; border: 0; padding: 0;
  font-family: var(--font-sans); font-size: 12px; font-weight: 600; color: var(--aop-accent);
  cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.hr-break { margin-top: 8px; display: grid; gap: 8px; }
.hr-splitbar { height: 8px; border-radius: 999px; background: var(--bg-3); overflow: hidden; display: flex; }
.hr-splitbar > i { display: block; height: 100%; }
.hr-splitbar > i.extra { background: var(--st-ok-fg); }
.hr-splitbar > i.budget { background: var(--mi-ink-50); }
.hr-splitlegend { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11.5px; color: var(--fg-2); }
.hr-splitlegend span { display: inline-flex; align-items: center; gap: 6px; }
.hr-splitlegend i { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.hr-splitlegend i.extra { background: var(--st-ok-fg); }
.hr-splitlegend i.budget { background: var(--mi-ink-50); }
.hr-rlv { font-size: 11.5px; color: var(--fg-3); }
.hr-rlv strong { color: var(--fg-2); font-weight: 600; }

/* ---- generische Sektions-Struktur -------------------------------------- */
.report-section { display: none; }
.report-section.is-active { display: block; }
.report-section.is-focus > .report-section-h .lbl::after {
  content: "Fokus"; margin-left: 10px; font-size: 9px; font-weight: 700; letter-spacing: 0.08em;
  color: var(--aop-accent); border: 1px solid var(--aop-accent); border-radius: var(--radius-pill);
  padding: 2px 7px; vertical-align: middle; }
.report-section-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.report-section-h .lbl { font-size: 12px; font-weight: 700; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-1); white-space: nowrap; }
.report-section-h .sub { font-size: 11.5px; color: var(--fg-3); }
.section-stack { display: flex; flex-direction: column; gap: 12px; }

.verify-note { font-size: 11.5px; color: var(--fg-3); display: inline-flex; align-items: center; gap: 6px; }
.verify-note::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--mi-ink-30); }

/* ---- Fazit ------------------------------------------------------------- */
.d-fazit-lead { font-size: 17px; }
.fazit-foot { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }

/* ---- E-Mail an den Operateur ------------------------------------------ */
.email-box { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2);
  margin-top: 12px; overflow: hidden; }
.email-head { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 14px; border-bottom: 1px solid var(--border); background: var(--bg-1, transparent); }
.email-k { display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.03em;
  text-transform: uppercase; color: var(--fg-1); }
.email-sub { display: block; font-size: 11.5px; color: var(--fg-3); margin-top: 2px; }
.email-text { margin: 0; padding: 12px 14px; font-family: var(--font-mono, monospace); font-size: 12px;
  line-height: 1.55; color: var(--fg-1); white-space: pre-wrap; word-break: break-word;
  max-height: 360px; overflow: auto; background: transparent; }
.email-foot { padding: 8px 14px; border-top: 1px solid var(--border); font-size: 11px; color: var(--fg-3); }

/* ---- Codes-Panel ------------------------------------------------------- */
.code-group + .code-group { margin-top: 16px; }
.code-grouphead { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.code-grouphead .gh { font-size: 11px; font-weight: 700; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-2); }
.code-grouphead .ghc { font-family: var(--font-mono); font-size: 11px; color: var(--fg-3); }

.code-row { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2);
  overflow: hidden; box-shadow: var(--shadow-1); }
.code-row + .code-row { margin-top: 8px; }
.code-row-head { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center;
  padding: 12px 14px; }
.code-row.has-chain .code-row-head { cursor: pointer; }
.code-cd { display: flex; align-items: baseline; gap: 8px; }
.code-cd .cd { font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--fg-1);
  font-variant-numeric: tabular-nums; }
.code-cd .side { font-family: var(--font-mono); font-size: 10px; font-weight: 600; color: var(--fg-3);
  border: 1px solid var(--border-strong); border-radius: var(--radius-xs); padding: 1px 5px; }
.code-cd .stem { font-size: 9.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--st-wn-fg); }
.code-tx { min-width: 0; }
.code-tx .tt { font-size: 13px; font-weight: 600; color: var(--fg-1); line-height: 1.3; }
.code-tx .ev { font-size: 11.5px; color: var(--fg-3); line-height: 1.4; margin-top: 3px; font-style: italic; }
.code-meta { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.conf-chip { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: var(--radius-pill); border: 1px solid transparent; }
.conf-chip.hoch    { color: var(--st-ok-fg); background: var(--st-ok-bg); border-color: var(--st-ok-bd); }
.conf-chip.mittel  { color: var(--st-wn-fg); background: var(--st-wn-bg); border-color: var(--st-wn-bd); }
.conf-chip.niedrig { color: var(--st-gp-fg); background: var(--st-gp-bg); border-color: var(--st-gp-bd); }
.chain-toggle { width: 26px; height: 26px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  background: var(--bg-2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--fg-2); }
.chain-toggle svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round; transition: transform var(--dur-base) var(--ease-standard); }
.code-row.is-open .chain-toggle svg { transform: rotate(180deg); }

.code-row-note { padding: 0 14px 12px; }
.code-row-note .cm { font-size: 12px; color: var(--fg-2); line-height: 1.5; }
.code-row-note .miss { font-size: 11.5px; color: var(--st-gp-fg); margin-top: 4px; }

/* Strukturierter OPS-Kommentar als Tabelle (Katalogtreffer, EBM, Vergütung) */
.code-row-note .cm-tbl { width: 100%; border-collapse: collapse; margin-top: 6px; font-size: 11.5px; }
.code-row-note .cm-tbl th { text-align: left; vertical-align: top; white-space: nowrap; width: 1%;
  padding: 6px 12px 6px 0; color: var(--fg-3); font-weight: 700; font-size: 10px;
  letter-spacing: 0.04em; text-transform: uppercase; border-top: 1px solid var(--border); }
.code-row-note .cm-tbl td { vertical-align: top; padding: 6px 0; color: var(--fg-2); line-height: 1.5;
  border-top: 1px solid var(--border); }
.code-row-note .cm-tbl tr:first-child th, .code-row-note .cm-tbl tr:first-child td { border-top: 0; }
.code-row-note .cm-file { font-family: var(--font-mono); font-size: 11px; color: var(--fg-2); margin-bottom: 4px; }
.code-row-note .cm-codes { display: flex; flex-wrap: wrap; gap: 4px; margin: 2px 0; }
.code-row-note .cm-chip { font-family: var(--font-mono); font-size: 10.5px; color: var(--fg-1);
  background: var(--bg-3); border: 1px solid var(--border); border-radius: var(--radius-xs); padding: 1px 5px; }
.code-row-note .cm-ex { margin-top: 5px; font-size: 11.5px; color: var(--fg-2); line-height: 1.4; }
.code-row-note .cm-ex span { color: var(--fg-3); font-weight: 600; }
.code-row-note .cm-txt { line-height: 1.5; }
.code-row-note .cm-txt + .cm-txt { margin-top: 4px; }
.code-row-note .cm-eur { color: var(--st-ok-fg); font-variant-numeric: tabular-nums; }

/* Klickbarer OPS-Titel → Liste der Schlüsselnummern (Endstellen nach dem Punkt) */
.code-tx .tt.ops-title { display: inline-flex; align-items: center; gap: 5px; padding: 0; margin: 0;
  background: none; border: 0; font: inherit; color: var(--fg-1); text-align: left; cursor: pointer; }
.code-tx .tt.ops-title:hover { color: var(--accent, var(--fg-1)); text-decoration: underline; text-underline-offset: 2px; }
.ops-title-caret { font-size: 10px; color: var(--fg-3); transition: transform var(--dur-base) var(--ease-standard); }
.code-tx .tt.ops-title[aria-expanded="true"] .ops-title-caret { transform: rotate(180deg); }

.ops-variants { border-top: 1px dashed var(--border); background: var(--bg-3); padding: 10px 14px 12px; }
.ops-variants.is-hidden { display: none; }
.ops-variants-h { font-size: 10.5px; font-weight: 700; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--fg-3); margin-bottom: 8px; }
.ops-var-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px;
  max-height: 280px; overflow-y: auto; overscroll-behavior: contain; }
.ops-var-pick { width: 100%; display: grid; grid-template-columns: 34px auto 1fr; align-items: baseline; gap: 10px;
  padding: 5px 8px; border: 1px solid transparent; border-radius: var(--radius-sm); background: none;
  font: inherit; text-align: left; cursor: pointer; color: var(--fg-2); }
.ops-var-pick:hover { background: var(--bg-2); border-color: var(--border); }
.ops-var.is-current .ops-var-pick { background: var(--st-ok-bg); border-color: var(--st-ok-bd); }
.ops-var-pick .ovd-dot { font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: var(--fg-3); }
.ops-var-pick .ovc { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--fg-1); }
.ops-var-pick .ovd { font-size: 12px; color: var(--fg-2); line-height: 1.35; }
.ops-var-pick .ovcur { font-size: 9px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--st-ok-fg); align-self: center; }
.ops-var-pick .gr-match { font-size: 10px; color: var(--fg-3); white-space: nowrap; }
/* Region-Treffer (Bericht nennt z. B. „Klavikula") hervorheben + nach oben sortiert. */
.ops-var.is-match .ops-var-pick { background: var(--st-wn-bg); border-color: var(--st-wn-bd); }
.ops-var.is-match .ops-var-pick .ovd { color: var(--fg-1); }
.ops-var-pick .ovmatch { font-weight: 700; color: var(--st-wn-fg); white-space: nowrap; }
.ops-variants-h .ovh-warn { color: var(--st-wn-fg); font-weight: 700; }

/* Klickbarer Diagnose-Titel → mögliche OPS + DRGs */
.code-tx .tt.icd-title { display: inline-flex; align-items: center; gap: 5px; padding: 0; margin: 0;
  background: none; border: 0; font: inherit; color: var(--fg-1); text-align: left; cursor: pointer; }
.code-tx .tt.icd-title:hover { color: var(--accent, var(--fg-1)); text-decoration: underline; text-underline-offset: 2px; }
.code-tx .tt.icd-title[aria-expanded="true"] .ops-title-caret { transform: rotate(180deg); }
.icd-related { border-top: 1px dashed var(--border); background: var(--bg-3); padding: 10px 14px 12px; }
.icd-related.is-hidden { display: none; }
.icd-related-h { font-size: 10.5px; font-weight: 700; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--fg-3); margin-bottom: 8px; line-height: 1.4; }
.icd-related .gr-grp { margin-top: 8px; }
.icd-related .gr-h { font-size: 11.5px; font-weight: 700; color: var(--fg-2); margin-bottom: 4px; }
.icd-related .gr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.icd-related .gr-list > li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font-size: 12px; padding: 2px 0; }
.icd-related .gr-cd { font-family: var(--font-mono); font-weight: 600; color: var(--fg-1); }
.icd-related .gr-tx { color: var(--fg-2); }
.icd-related .gr-none { font-size: 12px; color: var(--fg-3); font-style: italic; }
.icd-related .ops-var-pick { grid-template-columns: auto 1fr auto; }

/* Abrechnungskette (ausklappbar) */
.chain { display: none; border-top: 1px solid var(--border); background: var(--bg-3); padding: 12px 14px 14px; }
.code-row.is-open .chain { display: block; }
.chain-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.chain-h .ch-t { font-size: 11px; font-weight: 700; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-2); }
.chain-h .ch-cat { font-size: 11px; color: var(--fg-3); }
.chain-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.chain-table th, .chain-table td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.chain-table th { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fg-3); }
.chain-table td.num, .chain-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.chain-table .gop { font-family: var(--font-mono); font-weight: 600; color: var(--fg-1); }
.chain-table .cap-tag { font-family: var(--font-mono); font-size: 10px; color: var(--fg-3); }
.chain-table .euro { font-variant-numeric: tabular-nums; font-weight: 600; }
.chain-table .prov-dot { color: var(--st-wn-fg); font-size: 14px; line-height: 0; }
.chain-table tr.is-budget td { color: var(--fg-2); }
.chain-table tfoot td { border-bottom: 0; border-top: 1.5px solid var(--border-strong); font-weight: 700; padding-top: 9px; }
.chain-foot-note { font-size: 11px; color: var(--fg-3); margin-top: 8px; line-height: 1.45; display: flex; gap: 7px; align-items: flex-start; }
.chain-foot-note .pin { color: var(--st-wn-fg); font-weight: 700; }

/* ---- Vergütung-Tab ----------------------------------------------------- */
.bill-total { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: end;
  padding: 16px 18px; border: 1px solid var(--border); border-left: 4px solid var(--aop-accent);
  border-radius: var(--radius-md); background: var(--bg-2); margin-bottom: 12px; }
.bill-total .bt-lab { font-size: 11px; font-weight: 600; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-2); }
.bill-total .bt-val { font-size: 32px; font-weight: 700; letter-spacing: -0.02em; line-height: 1;
  font-variant-numeric: tabular-nums; margin-top: 4px; }
.bill-total .bt-sub { font-size: 12px; color: var(--fg-3); margin-top: 6px; }
.bill-total .bt-setting { text-align: right; font-size: 12px; color: var(--fg-2); max-width: 200px; }
.bill-total .bt-setting strong { display: block; font-size: 13px; color: var(--fg-1); }

.bill-split { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.split-card { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 12px 14px; background: var(--bg-2); }
.split-card .sc-lab { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600;
  letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--fg-2); }
.split-card .sc-lab i { width: 9px; height: 9px; border-radius: 2px; }
.split-card.extra .sc-lab i { background: var(--st-ok-fg); }
.split-card.budget .sc-lab i { background: var(--mi-ink-50); }
.split-card .sc-val { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: 5px; letter-spacing: -0.01em; }
.split-card .sc-nt { font-size: 11.5px; color: var(--fg-3); margin-top: 3px; line-height: 1.4; }

/* ---- Setting-Vergleich ------------------------------------------------- */
.setting-rule { font-size: 12.5px; color: var(--fg-1); background: var(--bg-3); border-radius: var(--radius-md);
  padding: 11px 14px; line-height: 1.5; display: flex; gap: 9px; align-items: flex-start; margin-bottom: 12px; }
.setting-rule::before { content: ""; width: 4px; align-self: stretch; border-radius: 999px;
  background: var(--aop-accent); flex: 0 0 4px; }
.setting-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.setting-cell { position: relative; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--bg-2); padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.setting-cell.is-rec { border-color: var(--st-ok-bd); box-shadow: inset 0 0 0 1px var(--st-ok-bd); }
.setting-cell .sc-cap { height: 3px; border-radius: 999px; margin: -14px -14px 4px; }
.setting-cell.s-ok   .sc-cap { background: var(--st-ok-fg); }
.setting-cell.s-warn .sc-cap { background: var(--st-wn-fg); }
.setting-cell.s-gap  .sc-cap { background: var(--st-gp-fg); }
.setting-cell .nm { font-size: 13px; font-weight: 700; }
.setting-cell .sub { font-size: 11px; color: var(--fg-3); }
.setting-cell .val { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.setting-cell.s-ok .val { color: var(--st-ok-fg); }
.setting-cell.s-warn .val { color: var(--st-wn-fg); }
.setting-cell.s-gap .val { color: var(--st-gp-fg); }
.setting-cell .nt { font-size: 11.5px; color: var(--fg-2); line-height: 1.45; }
.setting-cell .rec-tag { position: absolute; top: 10px; right: 10px; font-size: 9px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--st-ok-fg); background: var(--st-ok-bg);
  border: 1px solid var(--st-ok-bd); border-radius: var(--radius-pill); padding: 2px 7px; }

/* ---- Lücken & To-dos (Punch-List) -------------------------------------- */
.todo-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.todo-progress { flex: 1 1 auto; height: 8px; border-radius: 999px; background: var(--bg-3); overflow: hidden; }
.todo-progress > i { display: block; height: 100%; background: var(--st-ok-fg);
  transition: width var(--dur-slow) var(--ease-out); }
.todo-progress-lab { font-size: 12px; font-weight: 600; color: var(--fg-2); white-space: nowrap; }

.gap-card { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2);
  border-left: 4px solid var(--border-strong); padding: 14px 16px; display: flex; flex-direction: column; gap: 9px;
  transition: opacity var(--dur-base), border-color var(--dur-base); }
.gap-card.r-high { border-left-color: var(--st-gp-fg); }
.gap-card.r-med  { border-left-color: var(--mi-ink-50); }
.gap-card.r-low  { border-left-color: var(--mi-ink-30); }
.gap-card.is-done { opacity: 0.6; border-left-color: var(--st-ok-fg); }
.gap-card-top { display: flex; align-items: flex-start; gap: 10px; }
.gap-risk { font-size: 9.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  padding: 3px 8px; border-radius: var(--radius-pill); white-space: nowrap; flex: 0 0 auto; margin-top: 1px; }
.gap-card.r-high .gap-risk { color: var(--st-gp-fg); background: var(--st-gp-bg); border: 1px solid var(--st-gp-bd); }
.gap-card.r-med  .gap-risk { color: #fff; background: var(--mi-ink-50); }
.gap-card.r-low  .gap-risk { color: var(--fg-2); background: var(--bg-3); border: 1px solid var(--border); }
.gap-title { font-size: 14px; font-weight: 700; line-height: 1.3; flex: 1 1 auto; }
.gap-card.is-done .gap-title { text-decoration: line-through; text-decoration-color: var(--mi-ink-30); }
.gap-why { font-size: 12.5px; color: var(--fg-2); line-height: 1.5; }
.gap-question { font-size: 13px; color: var(--fg-1); line-height: 1.5; background: var(--bg-3);
  border-radius: var(--radius-md); padding: 10px 12px; position: relative; }
.gap-question .qlab { display: block; font-size: 9.5px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--fg-3); margin-bottom: 4px; }
.gap-affects { display: flex; flex-wrap: wrap; gap: 5px; }
.gap-affects .af { font-family: var(--font-mono); font-size: 10px; color: var(--fg-3);
  border: 1px solid var(--border); border-radius: var(--radius-xs); padding: 1px 6px; }
.gap-flag { font-size: 9.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  border-radius: var(--radius-xs); padding: 2px 7px; white-space: nowrap; }
.gap-flag.is-req { color: var(--st-gp-fg); background: var(--st-gp-bg); border: 1px solid var(--st-gp-bd); }
.gap-flag.is-rev { color: #fff; background: var(--mi-ink-50); }
.gap-sentence { font-size: 13px; color: var(--fg-1); line-height: 1.5; background: var(--bg-3);
  border-left: 3px solid var(--mi-ink-30); border-radius: var(--radius-md); padding: 10px 12px; }
.gap-sentence .qlab { display: block; font-size: 9.5px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--fg-3); margin-bottom: 4px; }
.gap-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.gap-btn { font-family: var(--font-sans); font-size: 12px; font-weight: 600; cursor: pointer;
  padding: 7px 12px; border-radius: var(--radius-md); border: 1px solid var(--border-strong);
  background: var(--bg-2); color: var(--fg-1); display: inline-flex; align-items: center; gap: 6px; }
.gap-btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gap-btn.is-primary { background: var(--mi-ink); color: #fff; border-color: var(--mi-ink); }
.gap-btn.done-toggle.is-active { background: var(--st-ok-bg); border-color: var(--st-ok-bd); color: var(--st-ok-fg); }

.all-clear { text-align: center; padding: 26px; border: 1px dashed var(--st-ok-bd); border-radius: var(--radius-md);
  background: var(--st-ok-bg); color: var(--st-ok-fg); }
.all-clear .ac-t { font-size: 16px; font-weight: 700; }
.all-clear .ac-s { font-size: 12.5px; margin-top: 4px; color: var(--st-ok-fg); opacity: 0.85; }

/* ---- KI-Block ---------------------------------------------------------- */
.ki-block { border: 1px solid var(--aop-accent); border-radius: var(--radius-md); background: var(--bg-2);
  overflow: hidden; margin-top: 14px; }
.ki-head { display: flex; align-items: center; gap: 9px; padding: 11px 14px; background: var(--st-gp-bg);
  border-bottom: 1px solid var(--st-gp-bd); }
.ki-head .kt { font-size: 12px; font-weight: 700; color: var(--st-gp-fg); }
.ki-head .ks { font-size: 11px; color: var(--fg-2); margin-left: auto; }
.ki-body { padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.ki-item { display: flex; flex-direction: column; gap: 3px; }
.ki-item .kio { display: flex; align-items: baseline; gap: 9px; }
.ki-item .kio .c { font-family: var(--font-mono); font-size: 12px; font-weight: 600; }
.ki-item .kio .k { font-size: 9.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--aop-accent); }
.ki-item .kx { font-size: 12px; color: var(--fg-2); line-height: 1.45; }
.ki-item .kn { font-size: 11px; color: var(--fg-3); }

/* ---- Bericht-Tab ------------------------------------------------------- */
.draft-box { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2);
  overflow: hidden; }
.draft-bar { display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-bottom: 1px solid var(--border);
  background: var(--bg-3); }
.draft-bar .db-t { font-size: 11px; font-weight: 700; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-2); }
.draft-bar .db-sp { flex: 1 1 auto; }
.draft-text { font-family: var(--font-mono); font-size: 12px; line-height: 1.6; color: var(--fg-1);
  white-space: pre-wrap; padding: 14px; margin: 0; max-height: none; }
.draft-text mark { background: var(--st-wn-bg); color: var(--st-wn-fg); border-radius: 2px; padding: 0 2px; font-weight: 600; }

.reco-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.reco-item { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 11px 13px; background: var(--bg-2); }
.reco-item .rl { font-size: 10px; font-weight: 700; letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase; color: var(--fg-3); }
.reco-item .rv { font-size: 13px; font-weight: 600; margin-top: 3px; line-height: 1.35; }
.reco-item .rv.mono { font-family: var(--font-mono); font-size: 12px; }
.reco-todos { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.reco-todos li { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; color: var(--fg-1); line-height: 1.45; }
.reco-todos .rn { font-family: var(--font-mono); font-size: 11px; color: var(--aop-accent); font-weight: 600; flex: 0 0 auto; margin-top: 1px; }

/* ---- Analyse-Zustand (Shimmer) ----------------------------------------- */
.analyzing { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  height: 100%; color: var(--fg-3); text-align: center; }
.analyzing .spin { width: 34px; height: 34px; border: 3px solid var(--border); border-top-color: var(--aop-accent);
  border-radius: 999px; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.analyzing .at { font-size: 14px; font-weight: 600; color: var(--fg-2); }
.analyzing .as { font-size: 12px; }
.analyzing .steps { margin-top: 6px; display: flex; flex-direction: column; gap: 5px; font-size: 12px; }
.analyzing .steps .stp { display: flex; align-items: center; gap: 8px; color: var(--fg-3); opacity: 0.4; transition: opacity var(--dur-base); }
.analyzing .steps .stp.on { opacity: 1; color: var(--fg-1); }
.analyzing .steps .stp .dot { width: 6px; height: 6px; border-radius: 999px; background: var(--st-ok-fg); }

/* vorläufig-Banner */
.prelim-banner { font-size: 12.5px; color: var(--st-wn-fg); background: var(--st-wn-bg); border: 1px solid var(--st-wn-bd);
  border-radius: var(--radius-md); padding: 10px 13px; line-height: 1.45; margin-bottom: 12px; display: flex; gap: 8px; align-items: flex-start; }
.prelim-banner strong { color: var(--st-wn-fg); }

/* tab count badge */
.tab-count { font-family: var(--font-mono); font-size: 10px; background: var(--st-gp-bg); color: var(--st-gp-fg);
  border-radius: 999px; padding: 1px 6px; margin-left: 2px; }
.tab-count.zero { background: var(--st-ok-bg); color: var(--st-ok-fg); }

/* =========================================================================
   Tweaks-Panel (vanilla) + Navigations-/Dichtevarianten
   ========================================================================= */
.twk { position: fixed; right: 16px; bottom: 16px; z-index: 2147483646; width: 264px;
  max-height: calc(100vh - 32px); display: flex; flex-direction: column;
  background: rgba(255,255,255,0.86); -webkit-backdrop-filter: blur(20px) saturate(150%);
  backdrop-filter: blur(20px) saturate(150%); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-3); color: var(--fg-1);
  font-family: var(--font-sans); overflow: hidden; }
.twk-hd { display: flex; align-items: center; justify-content: space-between; padding: 11px 10px 11px 15px; cursor: move; user-select: none; border-bottom: 1px solid var(--border); }
.twk-hd b { font-size: 13px; font-weight: 700; letter-spacing: -0.01em; }
.twk-x { appearance: none; border: 0; background: transparent; color: var(--fg-3); width: 24px; height: 24px; border-radius: var(--radius-sm); cursor: pointer; font-size: 13px; }
.twk-x:hover { background: var(--bg-3); color: var(--fg-1); }
.twk-body { padding: 14px 15px 16px; display: flex; flex-direction: column; gap: 9px; overflow-y: auto; }
.twk-sec { font-size: 10px; font-weight: 700; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--fg-3); margin-top: 4px; }
.twk-sec:first-child { margin-top: 0; }
.twk-swatches { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.twk-sw { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2); cursor: pointer; font: inherit; font-size: 11.5px; color: var(--fg-2); }
.twk-sw i { width: 14px; height: 14px; border-radius: 999px; flex: 0 0 auto; box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08); }
.twk-sw.is-on { border-color: var(--fg-1); color: var(--fg-1); font-weight: 600; box-shadow: inset 0 0 0 1px var(--fg-1); }
.twk-seg { display: flex; gap: 5px; }
.twk-seg button { flex: 1 1 auto; padding: 7px 8px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2); cursor: pointer; font: inherit; font-size: 11.5px; color: var(--fg-2); }
.twk-seg button.is-on { background: var(--mi-ink); color: #fff; border-color: var(--mi-ink); font-weight: 600; }
.twk-hint { font-size: 11px; color: var(--fg-3); line-height: 1.4; }

/* Navigationsstil „Abschnitte": gesamte Auswertung als durchgehender Scroll */
.nav-sections #sectionTabs { display: none; }
.nav-sections .report-section { display: block; padding: 18px 0; border-top: 1px solid var(--border); }
.nav-sections .report-section:first-child { border-top: 0; padding-top: 4px; }

/* Dichte „Kompakt": engere Abstände für High-Volume-Coding */
.density-compact .d-left { gap: 14px; padding: 20px 24px; }
.density-compact .d-right { gap: 10px; padding: 18px 28px; }
.density-compact .d-summaryhead { gap: 8px; }
.density-compact .headline-card { padding: 8px 12px; }
.density-compact .d-tile .inner { padding: 7px 12px 0; }
.density-compact .d-check { padding: 7px 12px; }
.density-compact .gap-card { padding: 11px 13px; gap: 7px; }
.density-compact .code-row-head { padding: 9px 12px; }
.density-compact .report-output { font-size: 0.96em; }

/* engt die Detail-Spalte etwas ein, summary-head bleibt oben */
.d-right { gap: 14px; }
@media (max-width: 900px) {
  .bill-split, .setting-grid, .reco-grid { grid-template-columns: 1fr; }
  .chain-table { font-size: 11px; }
}

/* ---- §14 Audit-Trail ---------------------------------------------------- */
.trail-block { border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 12px 14px; background: var(--bg-2); display: flex; flex-direction: column; gap: 6px; }
.trail-block.a-ok { border-left: 3px solid var(--st-ok-fg, #1a7f4b); }
.trail-block.a-warn { border-left: 3px solid var(--st-wn-fg, #b8860b); }
.trail-block.a-gap { border-left: 3px solid var(--st-gp-fg, #c0392b); }
.trail-block .tb-h { font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--fg-3); }
.trail-block .tb-row { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.trail-block .tb-li { font-size: 12.5px; color: var(--fg-2); line-height: 1.5; }
.trail-block .tb-block { color: var(--st-gp-fg, #c0392b); font-weight: 600; }
.trail-block .tb-req { color: var(--st-wn-fg, #b8860b); }
.trail-block .tb-exp { font-size: 12px; color: var(--fg-3); line-height: 1.5; }
.trail-codes { display: flex; flex-direction: column; gap: 8px; }
.trail-code { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 10px 12px;
  background: var(--bg-1, #fff); display: flex; flex-direction: column; gap: 5px; }
.trail-code .tc-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.trail-code .tc-h .cd { font-family: var(--font-mono); font-weight: 700; font-size: 14px; }
.trail-code .tc-tp { font-size: 9.5px; font-weight: 700; letter-spacing: 0.05em; color: var(--fg-3);
  border: 1px solid var(--border); border-radius: var(--radius-xs); padding: 1px 6px; }
.trail-code .tc-score { font-size: 11px; color: var(--fg-2); font-weight: 600; }
.trail-code .tc-src { font-size: 11px; color: var(--fg-3); margin-left: auto; }
.trail-code .tc-lb { font-size: 13px; color: var(--fg-1); }
.trail-code .tc-ev { font-size: 12px; color: var(--fg-2); }
.trail-code .tc-ev.warn { color: var(--st-gp-fg, #c0392b); }
.trail-code .tc-flags { display: flex; flex-wrap: wrap; gap: 5px; }
.tc-flags .tr-ok, .tc-flags .tr-warn, .tc-flags .tr-err { font-size: 10px; font-weight: 600;
  border-radius: var(--radius-xs); padding: 1px 7px; }
.tc-flags .tr-ok { color: var(--st-ok-fg, #1a7f4b); background: var(--st-ok-bg, #e7f5ee); }
.tc-flags .tr-warn { color: var(--st-wn-fg, #b8860b); background: var(--st-wn-bg, #fdf5e3); }
.tc-flags .tr-err { color: var(--st-gp-fg, #c0392b); background: var(--st-gp-bg, #fbeae8); }
.sb-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.sb-chip { font-size: 10px; font-family: var(--font-mono); border-radius: var(--radius-xs); padding: 1px 6px; }
.sb-chip.pos { color: var(--st-ok-fg, #1a7f4b); background: var(--st-ok-bg, #e7f5ee); }
.sb-chip.neg { color: var(--st-gp-fg, #c0392b); background: var(--st-gp-bg, #fbeae8); }

/* ---- Idealer OP-Bericht ------------------------------------------------- */
.ideal-box { border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.ideal-bar { display: flex; align-items: center; gap: 10px; padding: 8px 12px;
  background: var(--bg-2); border-bottom: 1px solid var(--border); }
.ideal-bar .ib-t { font-size: 12px; font-weight: 700; }
.ideal-bar .db-sp { flex: 1 1 auto; }
.ideal-text { font-family: var(--font-mono); font-size: 12.5px; line-height: 1.6; white-space: pre-wrap;
  padding: 14px; margin: 0; color: var(--fg-1); }
.ideal-text mark { background: var(--st-wn-bg, #fdf5e3); color: var(--st-wn-fg, #b8860b);
  border-radius: 3px; padding: 0 3px; font-weight: 600; }
.ideal-note { font-size: 12px; color: var(--fg-2); line-height: 1.5; padding: 2px 2px 0; }
.ideal-legend { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; color: var(--fg-3); padding: 4px 2px; }
.ideal-legend mark { background: var(--st-wn-bg, #fdf5e3); color: var(--st-wn-fg, #b8860b); border-radius: 3px; padding: 0 3px; }

/* ---- §11 Lücken-Anreicherung ------------------------------------------- */

/* ---- DRG-Grouper (nicht zertifiziert) ---------------------------------- */
.grouper-wrap { display: flex; flex-direction: column; gap: 8px; }
.grouper-panel { display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--border);
  border-radius: var(--radius-md); padding: 12px 14px; background: var(--bg-2); }
.grouper-panel.is-collapsed { display: none; }
.gr-disc { font-size: 11.5px; color: var(--st-wn-fg, #b8860b); background: var(--st-wn-bg, #fdf5e3);
  border-radius: var(--radius-xs); padding: 6px 9px; line-height: 1.5; }
.gr-grp { display: flex; flex-direction: column; gap: 5px; }
.gr-grp .gr-h { font-size: 10px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fg-3); }
.gr-flag { font-size: 11px; font-weight: 600; border-radius: var(--radius-xs); padding: 3px 8px; align-self: flex-start; }
.gr-flag.is-warn { color: var(--st-wn-fg, #b8860b); background: var(--st-wn-bg, #fdf5e3); }
.gr-flag.is-muted { color: var(--fg-3); background: var(--bg-3); }
.gr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.gr-list li { display: flex; align-items: baseline; gap: 8px; font-size: 12.5px; }
.gr-list .gr-cd { font-family: var(--font-mono); font-weight: 700; white-space: nowrap; }
.gr-list .gr-tx { color: var(--fg-2); flex: 1 1 auto; }
.gr-list .gr-val { font-family: var(--font-mono); font-size: 11px; color: var(--fg-1); white-space: nowrap; }
.gr-list .gr-val.muted { color: var(--fg-3); }
.gr-list .gr-match { font-size: 10.5px; color: var(--fg-3); white-space: nowrap; border: 1px solid var(--line, #d8d8d8); border-radius: 999px; padding: 0 7px; line-height: 1.6; }
.gr-none, .gr-empty { font-size: 12px; color: var(--fg-3); }

/* DRG-Höhergruppierung (Trigger + nötige Dokumentation) */
.drg-upgrade { border-top: 1px dashed var(--border); padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.drg-upgrade .gr-h { font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fg-2); }
.drg-upgrade .gr-sub { font-size: 12px; color: var(--fg-3); line-height: 1.45; }
#drgUpgradeBtn { align-self: flex-start; }
.drg-summary { font-size: 12.5px; color: var(--fg-2); line-height: 1.5; background: var(--bg-3); border-radius: var(--radius-sm); padding: 8px 10px; }
.drg-trig { border: 1px solid var(--border); border-left: 3px solid var(--border-strong); border-radius: var(--radius-sm);
  padding: 9px 11px; display: flex; flex-direction: column; gap: 5px; background: var(--bg-2); }
.drg-trig.st-ok { border-left-color: var(--st-ok-fg, #3F7A4A); }
.drg-trig.st-warn { border-left-color: var(--st-wn-fg, #A07D1F); }
.drg-trig.st-open { border-left-color: var(--border-strong); }
.dt-h { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.dt-t { font-size: 13px; font-weight: 700; color: var(--fg-1); }
.dt-type { font-size: 10px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--fg-3); background: var(--bg-3); border-radius: 99px; padding: 1px 8px; }
.dt-st { font-size: 9.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fg-2); margin-left: auto; }
.dt-r { font-size: 12px; color: var(--fg-2); line-height: 1.45; }
.dt-q { font-size: 12.5px; color: var(--fg-1); line-height: 1.5; }
.dt-doc, .dt-eff { font-size: 12px; color: var(--fg-2); line-height: 1.45; }
.dt-doc strong, .dt-eff strong { color: var(--fg-1); }

/* ---- Footer: Disclaimer & DSGVO ---------------------------------------- */
.ap-footer { border-top: 1px solid var(--border); padding: 8px 22px; margin-top: 4px;
  display: flex; flex-direction: column; gap: 4px; background: var(--bg-2); }
.ap-footer-note { font-size: 11px; color: var(--fg-3); line-height: 1.4; max-width: 980px; }
.ap-footer-details { font-size: 12.5px; color: var(--fg-2); max-width: 980px; }
.ap-footer-details > summary { cursor: pointer; font-weight: 600; color: var(--fg-1); font-size: 12px;
  padding: 4px 0; list-style: revert; }
.ap-footer-body { padding: 6px 0 2px; display: flex; flex-direction: column; gap: 6px; }
.ap-footer-body h4 { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--fg-3); margin: 6px 0 0; }
.ap-footer-body p { font-size: 12px; line-height: 1.6; color: var(--fg-2); margin: 0; }
.ap-footer-body a, .ap-footer-link { color: var(--aop-accent-deep, #00748c); text-decoration: underline; }
.ap-footer-link { font-size: 11.5px; font-weight: 600; align-self: flex-start; }

/* ---- Idealer OP-Bericht: Aktionen/Ergebnis im Bericht-Tab --------------- */
.ideal-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 8px; }
.ideal-result { display: flex; flex-direction: column; gap: 8px; }
.ideal-result:empty { display: none; }

/* ---- Lernknopf an Code-Zeilen ------------------------------------------ */
.code-row-actions { display: flex; gap: 8px; padding-top: 4px; }
.learn-rule-v2.is-done { color: var(--st-ok-fg, #1a7f4b); border-color: var(--st-ok-fg, #1a7f4b); }

/* ---- Erlös-Simulation & Kodier-QS (Tab "Simulation") --------------------- */
.sim-list { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 10px; }
.sim-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg-2);
  border: 1px solid var(--border); border-radius: var(--radius-md); cursor: pointer; }
.sim-row:hover { border-color: var(--border-strong); }
.sim-row input { flex: 0 0 auto; accent-color: var(--aop-accent, #2f6f4f); width: 16px; height: 16px; }
.sim-row .sim-cd { font-family: var(--font-mono); font-weight: 700; font-size: 13px; white-space: nowrap; }
.sim-row .sim-tx { flex: 1 1 auto; min-width: 0; font-size: 12.5px; color: var(--fg-2);
  overflow-wrap: anywhere; }
.sim-row .sim-tag { font-size: 9.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  border: 1px solid var(--st-wn-bd); color: var(--st-wn-fg); background: var(--st-wn-bg);
  border-radius: var(--radius-pill); padding: 2px 7px; white-space: nowrap; }
.sim-row .sim-tag.warn { border-color: var(--st-gp-bd); color: var(--st-gp-fg); background: var(--st-gp-bg); }
.sim-row:has(.sim-toggle:not(:checked)) { opacity: 0.55; }
.sim-grp-h { margin: 10px 0 0; font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--fg-3); }
.sim-list .sim-grp-h:first-child { margin-top: 0; }
.sim-row.is-locked { cursor: default; }
.sim-row.is-locked input { cursor: not-allowed; }
.sim-row.sim-num { cursor: default; }
.sim-row.sim-num input[type="number"] { flex: 0 0 88px; width: 88px; height: auto; padding: 5px 8px;
  font: inherit; font-size: 13px; color: inherit; background: var(--bg-2);
  border: 1px solid var(--border-strong); border-radius: var(--radius-md); }
.sim-delta { margin: 8px 0 4px; font-size: 13px; padding: 9px 12px; border-radius: var(--radius-md);
  border: 1px solid var(--border); border-left: 4px solid var(--border-strong); background: var(--bg-2); }
.sim-delta.is-up { border-left-color: var(--st-ok-fg); }
.sim-delta.is-down { border-left-color: var(--st-gp-fg); }
.qs-items { margin: 4px 0 0; padding-left: 18px; font-size: 11.5px; color: var(--fg-3); line-height: 1.45; }
.qs-items li { margin: 2px 0; }

/* ---- Responsiv: iPad (Landscape) – schmalere Eingabespalte ---------------- */
@media (min-width: 901px) and (max-width: 1180px) {
  .d-body { grid-template-columns: minmax(290px, 34%) 1fr; }
  .d-left { padding: 20px 18px; }
  .d-right { padding: 16px 20px; }
}

/* ---- Responsiv: iPhone/iPad (Portrait) – eine Spalte, kein Überlauf ------- */
@media (max-width: 900px) {
  html, body { overflow-x: hidden; }
  /* 1fr = minmax(auto, 1fr): ohne min-width:0 zwingt die min-content-Breite
     der Tab-Leiste (~950px) die ganze Spalte über den Viewport hinaus. */
  .d-body > .d-left, .d-body > .d-right { min-width: 0; }
  .d-left { padding: 16px 14px; }
  .d-right { padding: 14px 14px 28px; }
  /* Tabs als horizontale Scrollleiste statt Umbruch/Überlauf */
  .ap-tabs { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; max-width: 100%; }
  .ap-tabs::-webkit-scrollbar { display: none; }
  .ap-tabs .ap-tab { white-space: nowrap; flex: 0 0 auto; }
  /* Abschnitts-Tabs (Fazit/Codes/...) als deutlich sichtbare Chips statt
     grauer Textzeile: gefüllter aktiver Tab, Rahmen um die inaktiven. */
  .section-tabs { gap: 8px; border-bottom: 0; padding: 2px 2px 10px; }
  .section-tabs .ap-tab { border: 1px solid var(--border-strong); border-radius: var(--radius-pill);
    padding: 9px 14px; background: var(--bg-2); color: var(--fg-2); font-weight: 600; font-size: 13px; }
  .section-tabs .ap-tab.active { background: var(--mi-ink); color: #fff; border-color: var(--mi-ink); }
  .section-tabs .ap-tab.active::after { display: none; }
  .section-tabs .ap-tab .tab-count { color: inherit; opacity: 0.75; }
  /* Alles Lange umbrechen statt rechts aus dem Bildschirm zu laufen */
  .report-output, .report-section { max-width: 100%; min-width: 0; }
  .report-output * { overflow-wrap: anywhere; word-break: normal; }
  .draft-text, pre { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 100%; }
  /* Lücken-Karten: Risiko-/Pflicht-Chips dürfen in die nächste Zeile */
  .gap-card-top { flex-wrap: wrap; }
  /* Tabellen: innerhalb des Rahmens scrollen, Zellen dürfen umbrechen */
  .table-wrap { max-width: 100%; }
  .table-wrap table { min-width: 520px; }
  .table-wrap th, .table-wrap td { white-space: normal; }
}
@media (max-width: 700px) {
  .d-formgrid, .a-formgrid, .d-checklist, .summary-grid, .reference-grid,
  .twk-swatches, .a-checklist { grid-template-columns: 1fr; }
  .bill-total { grid-template-columns: 1fr; }
  .bill-total .bt-setting { text-align: left; }
  .code-row-head { grid-template-columns: auto 1fr; }
  .code-row-head .code-meta { grid-column: 1 / -1; justify-content: flex-start; }
  .d-h .ttl, .d-h .ttl.big { font-size: 20px; }
  .headline-card, .setting-cell, .split-card { padding: 10px 12px; }
  .d-actions { flex-wrap: wrap; }
  .ap-bar { flex-wrap: wrap; row-gap: 6px; }
  .ap-textarea { min-height: 180px; }
}

/* =========================================================================
   Operabilität — Instrument-UI-Regeln: klare Primäraktion, große Ziele,
   sichtbarer Systemstatus, Undo, Tastatur/AT, Bewegung mit Zweck,
   Nutzerkontrolle über Dichte/Bewegung/Kontrast.
   ========================================================================= */

/* Tastatur sichtbar machen: einheitlicher, kräftiger Fokusring */
:focus-visible { outline: 2px solid var(--aop-accent); outline-offset: 2px;
  border-radius: var(--radius-sm, 4px); }
.ap-textarea:focus-visible, .ap-input:focus-visible, .ap-select:focus-visible { outline-offset: 0; }

/* Skip-Link: erster Tab-Stopp, sichtbar nur bei Fokus */
.skip-link { position: absolute; left: 12px; top: -48px; z-index: 100;
  background: var(--mi-ink); color: var(--mi-cream); font-family: var(--font-sans);
  font-size: 13px; font-weight: 600; padding: 9px 14px; border-radius: var(--radius-md);
  text-decoration: none; transition: top 0.15s ease; }
.skip-link:focus-visible { top: 12px; }

/* Primäraktion: ein offensichtlicher nächster Schritt. Tastaturkürzel sichtbar. */
.ap-btn--primary { min-height: 46px; font-weight: 600; }
.ap-btn--primary .btn-kbd { font-family: var(--font-mono); font-size: 10.5px; font-weight: 500;
  color: var(--mi-cream); opacity: 0.6; border: 1px solid currentColor; border-radius: 4px;
  padding: 1px 5px; margin-left: 2px; }
@media (max-width: 700px), (pointer: coarse) { .ap-btn--primary .btn-kbd { display: none; } }

/* Beschäftigt-Zustand der Analyse: Spinner + deaktiviert, Status bleibt sichtbar */
.ap-btn.is-busy { pointer-events: none; opacity: 0.75; }
.ap-btn.is-busy svg { display: none; }
.ap-btn.is-busy::before { content: ""; width: 15px; height: 15px; flex: 0 0 auto;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 999px;
  animation: spin 0.8s linear infinite; }

/* Toast mit Aktions-Knopf (Rückgängig) */
.copy-toast { display: flex; align-items: center; gap: 12px; max-width: min(92vw, 560px); }
.copy-toast .toast-action { background: none; border: 1px solid var(--mi-cream);
  color: var(--mi-cream); font-family: var(--font-sans); font-size: 12.5px; font-weight: 700;
  border-radius: var(--radius-pill); padding: 4px 12px; cursor: pointer; white-space: nowrap; min-height: 30px; }
.copy-toast .toast-action:hover { background: var(--mi-cream); color: var(--mi-ink); }

/* Darstellung-Menü (Dichte / Bewegung / Kontrast) */
.display-menu { position: relative; }
.display-menu > summary { list-style: none; }
.display-menu > summary::-webkit-details-marker { display: none; }
.display-menu[open] > summary { background: var(--bg-3); }
.display-pop { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
  background: var(--bg-2); border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  box-shadow: var(--shadow-3); padding: 12px 14px; width: 252px;
  display: flex; flex-direction: column; gap: 8px; }
.display-pop .dp-h { font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--fg-3); }
.display-pop .dp-row { display: flex; align-items: center; gap: 9px; font-size: 13px;
  color: var(--fg-1); cursor: pointer; min-height: 30px; }
.display-pop .dp-row input { width: 16px; height: 16px; accent-color: var(--aop-accent); flex: 0 0 auto; }
.display-pop .dp-note { font-size: 11px; color: var(--fg-3); line-height: 1.45;
  border-top: 1px solid var(--border); padding-top: 8px; }

/* Bewegung mit Zweck: Systemeinstellung respektieren … */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto !important; }
  .ap-btn.is-busy::before, .analyzing .spin { animation-duration: 0.8s !important; animation-iteration-count: infinite !important; }
}
/* … und per Schalter erzwingbar (Spinner als einzige Ausnahme: er IST der Status) */
body.reduce-motion *, body.reduce-motion *::before, body.reduce-motion *::after {
  animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important; }
body.reduce-motion .ap-btn.is-busy::before,
body.reduce-motion .analyzing .spin { animation-duration: 0.8s !important; animation-iteration-count: infinite !important; }

/* Hoher Kontrast: kräftigere Linien und Texte, ohne Layoutänderung */
body.high-contrast { --border: var(--mi-ink-50); --border-strong: var(--mi-ink-70);
  --fg-3: var(--mi-ink-70); --fg-2: var(--mi-ink-90); }
body.high-contrast .ap-tag, body.high-contrast .sim-tag, body.high-contrast .conf-chip { font-weight: 700; }
@media (prefers-contrast: more) {
  body { --border: var(--mi-ink-50); --border-strong: var(--mi-ink-70);
    --fg-3: var(--mi-ink-70); --fg-2: var(--mi-ink-90); }
}

/* Große Ziele auf Touch-Geräten: 44-px-Mindesthöhe für alle Bedienelemente */
@media (pointer: coarse) {
  .ap-btn, .icon-button, .ap-tab, .ap-seg-item, .check-tile, .sim-row,
  .ap-input, .ap-select, .quick-term-row .ap-btn, .sumhead-toggle, .toast-action { min-height: 44px; }
  .icon-button { width: 44px; }
  .ap-tab { padding-top: 10px; padding-bottom: 10px; }
  .sim-row .sim-toggle, .check-tile input[type="checkbox"] { width: 22px; height: 22px; }
  .hr-toggle { min-height: 32px; }
}

/* Prüfpunkte: kompakter 11-Punkte-Dokumentations-Check als Chip-Zeile */
.doc-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.doc-chips .sim-grp-h { flex-basis: 100%; margin: 0 0 2px; }
.doc-chip { font-size: 10.5px; font-weight: 600; padding: 3px 9px; border-radius: var(--radius-pill);
  border: 1px solid transparent; cursor: default; }
.doc-chip.is-ok  { color: var(--st-ok-fg); background: var(--st-ok-bg); border-color: var(--st-ok-bd); }
.doc-chip.is-gap { color: var(--st-gp-fg); background: var(--st-gp-bg); border-color: var(--st-gp-bd); }

/* =========================================================================
   Eingabe-Modi (voller Bericht vs. Schnell-Kodierung), Prioritäten-Dashboard,
   sichtbare Evidenz, einfache/Experten-Ansicht, mobiler Sticky-CTA
   ========================================================================= */

/* Eingabemodus-Karten */
.mode-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mode-card { text-align: left; display: flex; flex-direction: column; gap: 4px;
  padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--bg-2); cursor: pointer; min-height: 44px; }
.mode-card .mc-t { font-family: var(--font-sans); font-weight: 700; font-size: 14px; }
.mode-card .mc-s { font-size: 11.5px; color: var(--fg-3); line-height: 1.4; }
.mode-card.is-on { border-color: var(--aop-accent); background: var(--bg-3);
  box-shadow: inset 0 0 0 1px var(--aop-accent); }
.mode-pane { display: contents; }
.mode-pane.is-hidden { display: none; }

/* Prioritäten-Dashboard (Fazit) */
.prio-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.ps-tile { border: 1px solid var(--border); border-left-width: 4px; border-radius: var(--radius-md);
  background: var(--bg-2); padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ps-tile.is-ok   { border-left-color: var(--st-ok-fg); }
.ps-tile.is-warn { border-left-color: var(--st-wn-fg); }
.ps-tile.is-gap  { border-left-color: var(--st-gp-fg); }
.ps-lab { font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fg-3); }
.ps-val { font-family: var(--font-sans); font-size: 15px; font-weight: 700; line-height: 1.15; }
.ps-tile.is-ok .ps-val { color: var(--st-ok-fg); }
.ps-tile.is-warn .ps-val { color: var(--st-wn-fg); }
.ps-tile.is-gap .ps-val { color: var(--st-gp-fg); }
.ps-sub { font-size: 10.5px; color: var(--fg-3); line-height: 1.35; }

.punch-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pl-card { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-2);
  padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.pl-card.is-gap { border-left: 4px solid var(--st-gp-fg); }
.pl-card.is-warn { border-left: 4px solid var(--st-wn-fg); }
.pl-card.is-ok { border-left: 4px solid var(--st-ok-fg); }
.pl-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pl-t { font-family: var(--font-sans); font-weight: 700; font-size: 13px; }
.pl-n { font-family: var(--font-mono); font-size: 11px; color: var(--fg-3); }
.pl-list { margin: 0; padding-left: 16px; display: flex; flex-direction: column; gap: 4px;
  font-size: 12px; line-height: 1.45; }
.pl-list .cd { font-family: var(--font-mono); font-weight: 600; }
.pl-miss { color: var(--st-wn-fg); font-style: normal; font-size: 11px; }
.pl-more { color: var(--fg-3); list-style: none; }
.pl-empty { font-size: 11.5px; color: var(--fg-3); }
.pl-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.pl-jump { align-self: flex-start; margin-top: auto; }

/* Evidenz sichtbar: fehlender Beleg + Konfidenz-Begründung */
.code-row-head .ev.ev-none { color: var(--st-gp-fg); }
.conf-why { font-size: 11.5px; color: var(--fg-2); margin-top: 4px; padding: 6px 8px;
  background: var(--bg-3); border-radius: var(--radius-sm, 6px); line-height: 1.45; }

/* Einfache Ansicht (Default): Experten-Funktionen ausblenden */
body.view-simple .expert-only { display: none !important; }

/* Mobiler Sticky-CTA + Touchziele (WCAG 2.2 Target Size) */
.mobile-cta { display: none; }
@media (max-width: 700px) {
  .mobile-cta { display: flex; position: fixed; left: 14px; right: 14px; bottom: 14px;
    z-index: 60; min-height: 48px; justify-content: center; box-shadow: var(--shadow-2, 0 8px 24px rgba(0,0,0,0.35)); }
  body { padding-bottom: 76px; }
  .mode-cards { grid-template-columns: 1fr; }
  .prio-strip { grid-template-columns: 1fr 1fr; }
  .punch-list { grid-template-columns: 1fr; }
  .ap-tab, .gap-btn, .icon-button, .mode-card, .ap-seg-item, .hr-toggle, .pl-jump,
  .chain-toggle, .done-toggle, .copy-q, .copy-doc { min-height: 44px; }
  .doc-chip, .conf-chip { padding: 9px 12px; }
  /* Tabellen nie horizontal quetschen: im Rahmen scrollen, Karten bevorzugen */
  .chain { overflow-x: auto; }
  .chain-table { min-width: 420px; }
  .report-output table { display: block; overflow-x: auto; }
}

/* Kodier-Notiz im Codes-Tab — identisch mit der Export-/Kopierfassung */
.coding-note { border: 1px solid var(--border); border-left: 4px solid var(--aop-accent);
  border-radius: var(--radius-md); background: var(--bg-2); padding: 10px 14px;
  display: flex; flex-direction: column; gap: 6px; }
.coding-note .cn-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.coding-note .cn-t { font-family: var(--font-sans); font-weight: 700; font-size: 13px; }
.coding-note .cn-sub { font-size: 11px; color: var(--fg-3); flex: 1; }
.coding-note .cn-text { margin: 0; font-family: var(--font-mono); font-size: 12px;
  line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--fg-1, inherit); }
