/* npos · ERP-Modul EDI im Arbeitsbereich.

   Die beiden eingebetteten Fassungen bringen ihr eigenes vollstaendiges
   Aussehen mit — Farben, Raster, Schrift. Hier steht deshalb nur, was sie
   umgibt: Reiterleiste, Notizzeile und die Buehne, auf der sie liegen. In die
   Fassungen selbst greift nichts hinein; sie sitzen in einem iframe und sind
   gegen das Aussehen des Hubs ohnehin abgeschirmt.

   Die FOCA-Farbwelt (aus Delphi/FocaTypes.pas) steht als eigene Marken auf
   .np-bereich, nicht auf :root. Sie gilt damit genau in diesem Kasten und
   strahlt nicht in den Hub aus. Die Hub-Marken (--rand, --mittelgrau, --rot)
   stammen aus index.html und werden hier nur gelesen. */

.np-bereich{
  --np-navy:#0E2A47;        /* Kopfleiste */
  --np-navy-tief:#081A2E;   /* Linie unter der Kopfleiste */
  --np-teal:#1F7A6E;        /* aktive Marke, Notizzeile */
  --np-amber:#C7861D;       /* aktiver Reiter, Fokus */
  --np-rot:#B4391F;         /* Fehler im Ladehinweis */
  --np-linie:#E3E1D9;       /* Trennlinien */
  --np-flaeche:#EEF1F5;     /* Grund der Buehne, bis das Kind zeichnet */
  display:flex;flex-direction:column;gap:0;
}

/* ---------- Reiterleiste ---------- */

.np-leiste{display:flex;align-items:center;gap:4px;flex-wrap:wrap;
  background:var(--np-navy);border-radius:10px 10px 0 0;padding:0 14px;
  border-bottom:2px solid var(--np-amber)}

.np-marke{font-size:12.5px;font-weight:750;letter-spacing:.3px;color:#fff;
  margin-right:14px;padding:11px 0;cursor:help}
.np-marke b{color:var(--np-amber)}

.np-reiter{background:none;border:0;color:#cfe0f0;padding:9px 15px;cursor:pointer;
  font-size:13.5px;border-radius:6px 6px 0 0;border-bottom:3px solid transparent;
  font-family:inherit}
.np-reiter:hover{color:#fff}
.np-reiter.on{color:#fff;background:var(--np-navy-tief);
  border-bottom-color:var(--np-amber);font-weight:600}
.np-reiter:focus-visible{outline:2px solid var(--np-amber);outline-offset:-2px}

/* ---------- Notizzeile ----------
   Eine Zeile ueber der Buehne, je Reiter eine. Sie traegt, was der Anwender
   wissen muss, bevor er hineinschaut — beim Leitstand vor allem, dass der
   zugehoerige Dienst zur Betriebsstufe gehoert und hier noch nicht mitlaeuft.
   Ohne diesen Satz liest sich „nicht erreichbar" wie ein Defekt. */

.np-notiz{display:none;align-items:baseline;gap:10px;
  padding:9px 14px;font-size:12.5px;line-height:1.5;color:#33414f;
  background:#F2F6F5;border:1px solid var(--np-linie);border-top:0}
.np-notiz.on{display:flex}
.np-notiz b{font-weight:650;color:var(--np-navy)}

.np-notiz-marke{flex:none;font-size:10.5px;font-weight:750;letter-spacing:.06em;
  text-transform:uppercase;color:#fff;background:var(--np-teal);
  border-radius:10px;padding:2px 9px}
.np-notiz-text{flex:1;min-width:0}

/* ---------- Buehne ----------
   Feste Hoehe statt mitwachsend: der Inhalt eines iframe teilt seine Hoehe
   nicht mit, und ein aufklappender Bereich wuerde die Seite bei jedem
   Reiterwechsel springen lassen. Die Demo bildet einen ganzen ERP-Schreibtisch
   mit mehreren Fenstern ab und braucht dafuer etwas mehr Raum als die
   MSO-Buehne; 80vh laesst Kopf- und Fusszeile des Hubs stehen. */

.np-buehne{position:relative;height:80vh;min-height:560px;
  border:1px solid var(--rand);border-top:0;border-radius:0 0 10px 10px;
  overflow:hidden;background:var(--np-flaeche)}

.np-rahmen{width:100%;height:100%;border:0;display:none;background:var(--np-flaeche)}
.np-rahmen.on{display:block}

.np-laedt{position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  text-align:center;padding:24px;font-size:13.5px;color:var(--mittelgrau);
  background:var(--np-flaeche);z-index:2}
.np-laedt.on{display:flex}
.np-laedt.fehler{color:var(--np-rot)}

@media (max-width:820px){
  .np-marke{width:100%;margin-right:0;padding-bottom:0}
  .np-notiz{flex-direction:column;align-items:flex-start;gap:6px}
  .np-buehne{height:72vh;min-height:460px}
}

/* Der zugeklappte Nachsatz einer Bereichsnotiz. Er trägt den technischen
   Grund, den nicht jeder beim ersten Blick braucht. */
.np-notiz-mehr{margin-top:6px}
.np-notiz-mehr summary{cursor:pointer;font-weight:600;color:var(--goldd);
  font-size:12px;list-style:none}
.np-notiz-mehr summary::-webkit-details-marker{display:none}
.np-notiz-mehr summary::before{content:"▸ ";font-size:10px}
.np-notiz-mehr[open] summary::before{content:"▾ "}
.np-notiz-mehr[open] summary{margin-bottom:5px}
.np-notiz-mehr code{font-family:var(--mono);font-size:11.5px;
  background:rgba(27,37,49,.06);padding:1px 4px;border-radius:3px}

/* ---------- Unterlagen-Reiter ----------
   Eine Hub-Flaeche, kein eingebettetes Dokument: zwei Karten mit Uebernahme-
   Knopf. Sichtbar nur, wenn der Reiter gewaehlt ist — dieselbe Mechanik wie
   die Rahmen daneben. */
.np-unterlagen{display:none;padding:22px;overflow:auto;height:100%}
.np-unterlagen.on{display:block}
.np-u-laedt{color:var(--mittelgrau);font-size:13px;padding:18px 2px}
.np-u-reihe{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.np-u-karte{background:#fff;border:1px solid var(--rand);border-radius:10px;padding:16px 18px;
  display:flex;flex-direction:column;gap:7px}
.np-u-titel{font-weight:700;font-size:14.5px}
.np-u-text{font-size:12.5px;color:var(--mittelgrau);line-height:1.5;flex:1}
.np-u-meta{font-size:11.5px;color:var(--mittelgrau);font-family:var(--mono)}
.np-u-tun{margin-top:4px}
.np-u-fertig{font-size:12.5px;color:var(--gruen);font-weight:600}
.np-u-fuss{font-size:12px;color:var(--mittelgrau);margin-top:14px;max-width:70ch}


/* ---------- Belegspiegel (Feld-Nachweis) ----------
   Die Befunde stehen auf einer Miniatur des Belegs — die Raumordnung des
   Dokuments ist die schnellste Beschriftung. Stufenvokabular: gefuellter
   Punkt = belegt, Ring = formal geprueft, Gold = nur gelesen, Rot =
   Widerspruch (dann traegt der ganze Chip die Warnfarbe). */

.np-nk-urteil{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  border-radius:8px;padding:9px 14px;margin:2px 0 10px;border:1px solid transparent}
.np-nk-urteil .np-nk-wort{font-weight:800;font-size:14.5px}
.np-nk-urteil .np-nk-zaehler{font-size:12px;opacity:.85}
.np-nk-urteil.a-gruen{background:var(--gruenf);border-color:var(--gruenrand);color:var(--gruen)}
.np-nk-urteil.a-gelb{background:var(--goldf);border-color:var(--goldrand);color:#7A5A17}
.np-nk-urteil.a-rot{background:var(--rotf);border-color:var(--rot);color:#A11616}

.np-nk-spiegel{display:flex;justify-content:center;padding:2px 0 4px}
.np-nk-blatt{position:relative;width:min(480px,100%);background:#fff;
  border:1px solid var(--hairline);border-radius:3px;
  box-shadow:0 1px 3px rgba(27,37,49,.10),0 6px 18px rgba(27,37,49,.06);
  padding:14px 16px 12px;display:flex;flex-direction:column;gap:10px}
/* Eselsohr — das Blatt liest sich als Blatt, nicht als Kasten. */
.np-nk-blatt::after{content:"";position:absolute;top:0;right:0;width:0;height:0;
  border-style:solid;border-width:0 14px 14px 0;
  border-color:transparent var(--creme) transparent transparent;
  filter:drop-shadow(-1px 1px 1px rgba(27,37,49,.08))}

.np-nk-titelzeile{display:flex;justify-content:center;min-height:4px}
.np-nk-kopfzeile{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.np-nk-rechts{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.np-nk-mitte{display:flex;flex-direction:column;gap:8px}
.np-nk-linien{display:flex;flex-direction:column;gap:7px;padding:2px 2px 0}
.np-nk-linien i{display:block;height:0;border-top:1px solid var(--rand);opacity:.75}
.np-nk-linien i:nth-child(2){margin-right:14%}
.np-nk-linien i:nth-child(3){margin-right:38%}
.np-nk-fusszeile{display:flex;justify-content:flex-end}

.np-nk-chip{display:inline-flex;align-items:baseline;gap:7px;max-width:100%;
  border:1px solid var(--rand);border-radius:6px;background:#fff;
  padding:4px 10px;font-size:12.5px;line-height:1.35;cursor:help}
.np-nk-chip b{font-weight:700;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;max-width:24ch}
.np-nk-chip small{font-size:10px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--mittelgrau);white-space:nowrap}
.np-nk-chip.np-nk-titel{border-style:dashed;background:transparent}

.np-nk-punkt{width:9px;height:9px;border-radius:50%;flex-shrink:0;
  align-self:center;display:inline-block}
.s-belegt .np-nk-punkt{background:var(--gruen)}
.s-formal_geprueft .np-nk-punkt{background:transparent;
  box-shadow:inset 0 0 0 2px var(--gruen)}
.s-nur_gelesen .np-nk-punkt{background:var(--gold)}
.s-widerspruch .np-nk-punkt{background:var(--rot)}
/* Der Widerspruch traegt als einziger die Farbe auf dem GANZEN Chip — er ist
   der Grund, aus dem jemand hinschauen muss. */
.np-nk-chip.s-widerspruch{border-color:var(--rot);background:var(--rotf)}
.np-nk-chip.s-widerspruch b{color:#A11616}
.np-nk-chip.s-nur_gelesen{border-color:var(--goldrand);background:var(--goldf)}

.np-nk-befunde{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.np-nk-befund{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;
  line-height:1.5;border-radius:6px;padding:8px 11px}
.np-nk-befund .np-nk-punkt{margin-top:5px}
.np-nk-befund.s-widerspruch{background:var(--rotf);border:1px solid var(--rot)}
.np-nk-befund.s-nur_gelesen{background:var(--goldf);border:1px solid var(--goldrand)}
.np-nk-zitat{display:block;font-family:var(--mono);font-size:11px;
  color:var(--mittelgrau);margin-top:2px;word-break:break-word}

.np-nk-legende{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;
  font-size:10.5px;color:var(--mittelgrau)}
.np-nk-legende span{display:inline-flex;align-items:center;gap:5px}

/* ---------- Abarbeitung: Gesamtbalken in Stueck + Kreislauf ---------- */
.np-ab-fertig{background:var(--gruenf);border:1px solid var(--gruenrand);color:var(--gruen);
  border-radius:8px;padding:10px 14px;font-weight:700;font-size:14px;margin-bottom:14px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.np-ab-balkenfeld{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.np-ab-zeilenkopf{display:flex;align-items:baseline;gap:10px;font-size:13px;margin-bottom:5px}
.np-ab-zeilenkopf span{color:var(--mittelgrau);font-size:12px;font-variant-numeric:tabular-nums}
.np-ab-balken{display:flex;gap:2px;height:34px;border-radius:8px;overflow:hidden}
.np-ab-seg{appearance:none;border:0;font-family:inherit;font-size:12.5px;font-weight:700;
  color:#fff;cursor:pointer;min-width:34px;padding:0 8px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;transition:filter .12s}
.np-ab-seg:hover{filter:brightness(1.08)}
.np-ab-seg.aktiv{outline:2px solid var(--blau);outline-offset:-2px}
.np-ab-seg.s-rot{background:var(--rot)}
.np-ab-seg.s-gelb{background:var(--gold);color:#fff}
.np-ab-seg.s-gruen{background:var(--gruen)}
.np-ab-listenkopf{font-size:12.5px;color:var(--mittelgrau);margin:0 0 8px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.np-ab-liste{display:flex;flex-direction:column;gap:7px}
.np-ab-fall{appearance:none;font-family:inherit;text-align:left;display:flex;
  align-items:center;gap:11px;background:#fff;border:1px solid var(--rand);
  border-left-width:4px;border-radius:8px;padding:10px 14px;cursor:pointer;font-size:13px}
.np-ab-fall:hover{box-shadow:0 3px 10px rgba(10,31,68,.08)}
.np-ab-fall.s-rot{border-left-color:var(--rot)}
.np-ab-fall.s-gelb{border-left-color:var(--gold)}
.np-ab-fall.s-gruen{border-left-color:var(--gruen)}
.np-ab-fall-name{font-weight:700;white-space:nowrap}
.np-ab-fall-name small{display:block;font-weight:400;font-size:10.5px;color:var(--mittelgrau)}
.np-ab-fall-text{flex:1;color:var(--mittelgrau);font-size:12.5px;min-width:0}
.np-ab-fall-pfeil{color:var(--silber);font-size:18px}
.np-ab-einzel{display:flex;flex-direction:column;gap:12px;max-width:640px}
.np-ab-weg{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.np-ab-vermerk{font-size:12px;font-weight:700;color:var(--gruen);background:var(--gruenf);
  border:1px solid var(--gruenrand);border-radius:999px;padding:3px 11px}
.np-ab-tun{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* Nachbesserungen der Sichtpruefung (22.08.): keine Leerflaechen, lesbare
   Karten, Volumen sichtbar. */
.np-buehne.dom{height:auto;min-height:120px}
/* Der Beispielfall steht ueber der Buehne, beim Knopf, der ihn ausloest —
   und die Berechnet-Karte bleibt lesbar schmal statt seitenbreit. */
.np-beispiel{padding:10px 0 4px}
.np-beispiel:empty{display:none}
.np-beispiel .wz-bk{max-width:760px}

/* ---------- Belegleser ---------- */
.np-bl{display:flex;flex-direction:column;gap:14px;max-width:1100px}
.np-bl-kopf{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--rand,#ddd);border-radius:8px;background:var(--feld,#fff)}
.np-bl-satz{font-size:13px;color:var(--mittelgrau,#555);line-height:1.45}
.np-bl-zeile{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px}
.np-bl-zeile label{display:inline-flex;align-items:center;gap:6px}
.np-bl-zeile input[type=date]{font:inherit;padding:3px 6px;border:1px solid var(--rand,#ccc);border-radius:6px;background:var(--feld,#fff)}
.np-bl-zeile select{font:inherit;padding:4px 8px;border:1px solid var(--rand,#ccc);border-radius:6px;background:var(--feld,#fff);max-width:360px}
.np-bl-oder{opacity:.6}
.np-bl-status{font-size:13px;min-height:18px}
.np-bl-laeuft{color:#6b4400}
.np-bl-fehler{color:#8a1c1c}
.np-bl-fertig{color:#125a26;font-weight:600}
.np-bl-ergebnis{display:flex;flex-direction:column;gap:10px}
.np-bl-titel{font-size:15px;font-weight:600}
.np-bl-review{color:#8a1c1c;font-weight:600}
.np-bl-ok{color:#125a26;font-weight:600}
.np-bl-unsicher{font-size:11px;color:#8a1c1c;border:1px solid #d9a3a3;border-radius:10px;padding:0 6px;margin-left:6px}
.np-bl-meta{font-size:12px;color:var(--mittelgrau,#666)}
.np-bl-kopffelder{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 18px;font-size:13px;padding:10px 12px;border:1px solid var(--rand,#e3e3e3);border-radius:8px}
.np-bl-kopffelder>div,.np-bl-paare>div{display:grid;grid-template-columns:170px 1fr;gap:8px;padding:2px 0;border-bottom:1px dotted var(--rand,#eee)}
.np-bl-k{color:var(--mittelgrau,#666)}
.np-bl-block{border:1px solid var(--rand,#e3e3e3);border-radius:8px;padding:6px 12px;font-size:13px}
.np-bl-block>summary{cursor:pointer;font-weight:600;padding:4px 0}
.np-bl-paare{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2px 18px;padding:6px 0}
.np-bl-tabwrap{overflow:auto;max-height:60vh}
.np-bl-tab{border-collapse:collapse;font-size:12.5px;width:100%}
.np-bl-tab th,.np-bl-tab td{border:1px solid var(--rand,#ddd);padding:3px 6px;vertical-align:top;text-align:left;white-space:pre-wrap}
.np-bl-tab th{background:rgba(0,0,0,.04)}
.np-bl-tab td.r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.np-bl-volltext,.np-bl-json{white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;max-height:50vh;overflow:auto;background:rgba(0,0,0,.03);padding:8px;border-radius:6px;margin:6px 0}
.np-bl-json-tun{display:flex;justify-content:flex-end;padding-top:4px}
.np-bl-liste{margin:4px 0 4px 18px;padding:0}
.np-bl-verlaufliste{display:flex;flex-direction:column;gap:2px;padding:4px 0}
.np-bl-verlaufzeile{display:grid;grid-template-columns:20px 1fr auto;gap:10px;text-align:left;font:inherit;font-size:12.5px;padding:4px 6px;border:0;border-radius:6px;background:transparent;cursor:pointer;color:inherit}
.np-bl-verlaufzeile:hover{background:rgba(0,0,0,.05)}


/* ---- Massenblatt -> Excel (Reiter 📊 Massenblatt, 17.09.2026) --------- */
/* Aufbau: eine Bedienleiste oben (Datei, Uebertragen, fruehere Laeufe), darunter
   der Ueberblick in Kacheln, dann die Tabelle in voller Breite, zuletzt die
   Details. Nichts steht neben der Tabelle — sie braucht die Breite. */
.np-mb{display:block}
.np-mb-leiste{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;background:var(--karte,#fff);
  border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:12px 16px}
.np-mb-schritt{display:flex;align-items:center;gap:10px;min-width:0}
.np-mb-nr{flex:none;width:22px;height:22px;border-radius:50%;background:var(--goldf,#F7EDDA);color:var(--goldd,#9E6F1D);
  font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.np-mb-verlauf-wahl{margin-left:auto}
.np-mb-verlauf-wahl select{font-size:12.5px;padding:7px 10px;border-radius:8px;border:1px solid var(--hairline,#D8D2C6);
  background:#fff;color:var(--blau,#0A1F44);max-width:420px}
.np-mb-leiste-hinweis{margin:8px 2px 14px}
.np-mb-h{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--goldd,#9E6F1D);font-weight:700;margin:0 0 8px}
.np-mb-h .np-mb-grau{text-transform:none;letter-spacing:0;font-weight:500}
.np-mb-grau{color:var(--mittelgrau,#6B7280);font-size:12.5px}
.np-mb-datei{font-family:var(--mono,ui-monospace,monospace);font-size:12px;color:var(--blau,#0A1F44);word-break:break-all;max-width:460px}
.np-mb-leerlauf{background:var(--karte,#fff);border:1px dashed var(--rand,#E7E0D4);border-radius:10px;padding:18px 20px;
  font-size:13.5px;line-height:1.55;color:var(--mittelgrau,#6B7280);max-width:760px}
.np-mb-ueberblick{background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:14px 16px;margin-bottom:16px}
.np-mb-titel{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.np-mb-bv{font-size:17px;font-weight:700;color:var(--blau,#0A1F44);line-height:1.3}
.np-mb-kacheln{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.np-mb-kachel{background:var(--creme,#FAF8F3);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:11px 13px}
.np-mb-kachel.gut{background:var(--gruenf,#EAF3E6);border-color:var(--gruenrand,#9DC49A)}
.np-mb-kachel.warn{background:var(--goldf,#F7EDDA);border-color:var(--goldrand,#DDBB74)}
.np-mb-kw{font-family:var(--mono,ui-monospace,monospace);font-size:24px;font-weight:700;line-height:1.05;color:var(--blau,#0A1F44);font-variant-numeric:tabular-nums}
.np-mb-kachel.gut .np-mb-kw{color:var(--gruen,#2F6B38)}
.np-mb-kachel.warn .np-mb-kw{color:#7A5A17}
.np-mb-von{font-size:13px;font-weight:600;color:var(--mittelgrau,#6B7280)}
.np-mb-kl{font-size:11px;color:var(--mittelgrau,#6B7280);text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-top:5px;line-height:1.35}
.np-mb-tabelle{margin-bottom:16px}
.np-mb-details{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
@media(max-width:900px){.np-mb-details{grid-template-columns:1fr}}
.np-mb-details > div{background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:14px 16px}
.np-mb-hinweis{font-size:12.5px;color:var(--mittelgrau,#6B7280);line-height:1.5;margin:0 0 10px}
.np-mb-leer{color:var(--mittelgrau,#6B7280);font-size:13px;line-height:1.55}
.np-mb-knoepfe{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:2px}
.np-mb-datei-hinweis{font-size:11.5px;line-height:1.4;max-width:320px;word-break:break-word}
.np-mb-knoepfe .btn{text-decoration:none}
.np-mb-knoepfe .np-mb-hinweis{margin:0}
.np-mb-laeuft{display:flex;align-items:center;gap:10px;color:var(--mittelgrau,#6B7280);font-size:13px;padding:14px 4px}
.np-mb-spin{width:12px;height:12px;border-radius:50%;border:2px solid #E4D9BF;border-top-color:var(--gold,#C08A2F);animation:npmbsp .8s linear infinite}
@keyframes npmbsp{to{transform:rotate(360deg)}}
.np-mb-proben{margin:0;padding-left:18px;font-size:13px;line-height:1.5}
.np-mb-proben li{margin-bottom:5px}
.np-mb-proben .ok{color:var(--gruen,#2F6B38);font-weight:700}
.np-mb-proben .warn{color:#A11616;font-weight:700}
.np-mb-lesung{border-collapse:collapse;font-size:12.5px;width:100%}
.np-mb-lesung td{padding:4px 8px;border-bottom:1px solid var(--rand,#E7E0D4);vertical-align:top}
.np-mb-lesung td:first-child{color:var(--mittelgrau,#6B7280);white-space:nowrap;width:30%}
.np-mb-lesung ul{margin:0;padding-left:16px}

/* Die Vorschau: Spaltenbuchstaben, Zeilennummern, Gitter — die Tabelle so,
   wie Excel sie oeffnen wird. Zahlen rechts, Teilzeilen eingerueckt und
   kursiv, gesamt-Zeilen fett, Abschnittszeilen getoent. */
.np-xl-wrap{overflow:auto;max-height:70vh;border:1px solid var(--hairline,#D8D2C6);border-radius:6px;background:#fff}
.np-xl{border-collapse:collapse;font-size:12.5px;min-width:900px}
.np-xl th,.np-xl td{border:1px solid #DCE0E6;padding:3px 7px;vertical-align:top;white-space:nowrap}
.np-xl th{background:#F1F3F6;color:#5B6470;font-weight:600;font-size:11.5px;text-align:center;position:sticky;top:0;z-index:2}
.np-xl th.ecke{width:34px}
.np-xl td.n{background:#F1F3F6;color:#5B6470;font-size:11px;text-align:right;position:sticky;left:0;z-index:1;width:34px}
.np-xl td.num{text-align:right;font-variant-numeric:tabular-nums}
.np-xl td.th{background:#E7E0D4;font-weight:700}
.np-xl tr.sek td{background:#F7EDDA}
.np-xl tr.ges td{font-weight:700}
.np-xl td.teil{padding-left:26px;font-style:italic;color:#555}
.np-xl td.titel{font-weight:700;font-size:14px}
.np-xl td.fett{font-weight:700}
.np-xl td.kursiv{font-style:italic;color:#555}
.np-xl td.probe{white-space:normal;min-width:260px;max-width:420px}
.np-xl td:nth-child(3){min-width:200px;white-space:normal}
.np-xl .ok{color:var(--gruen,#2F6B38);font-weight:700}
.np-xl .warn{color:#A11616;font-weight:700}

/* Das Fenster des Ueberblicks — Aufbau wie „Groß ansehen“ im Leitstand:
   abgedunkelter Grund, weisse Karte, Kopfzeile mit Titel und Schliessen,
   scrollbarer Rumpf. Die Tabelle darf hier so hoch werden, wie sie ist. */
.np-mb-overlay{position:fixed;inset:0;background:rgba(27,37,49,.62);z-index:900;display:none;
  align-items:center;justify-content:center;padding:18px}
.np-mb-overlay.on{display:flex}
body.np-mb-offen{overflow:hidden}
.np-mb-fenster{background:var(--creme,#FAF8F3);border-radius:12px;width:min(1480px,97vw);max-height:95vh;
  display:flex;flex-direction:column;box-shadow:0 18px 60px rgba(0,0,0,.35);overflow:hidden}
.np-mb-fkopf{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:14px 20px;border-bottom:1px solid var(--rand,#E7E0D4);background:#fff}
.np-mb-fetikett{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--goldd,#9E6F1D);font-weight:700}
.np-mb-ftitel{font-size:18px;font-weight:700;color:var(--blau,#0A1F44);line-height:1.3;margin-top:2px}
.np-mb-fknoepfe{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.np-mb-fknoepfe .btn{text-decoration:none}
.np-mb-fbody{flex:1;overflow:auto;padding:16px 20px 22px}
.np-mb-fbody .np-xl-wrap{max-height:none}
.np-mb-kurz{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:14px 16px}
.np-mb-kurz .np-mb-knoepfe{margin-top:0}
.np-mb-kurz .btn{text-decoration:none}

/* ======================================================================
   CAD-Zeichnungsanalyse (seit 18.09.2026) — Reiter „📐 Zeichnung“
   Nutzt die Fenster- und Kachelformen des Massenblatts (np-mb-*); eigen
   sind die Beschreibung in Prosa, die Herkunftsspalte der Texte und die
   Fortschrittszeile mit Protokoll.
   ====================================================================== */
.np-za-beschreibung{max-width:900px;font-size:14px;line-height:1.6;color:var(--tinte,#1B2531)}
.np-za-beschreibung h2{font-size:15px;margin:18px 0 6px;color:var(--blau,#0A1F44)}
.np-za-beschreibung h3{font-size:14px;margin:14px 0 4px}
.np-za-beschreibung p{margin:0 0 8px}
.np-za-beschreibung ul,.np-za-beschreibung ol{margin:0 0 8px 22px;padding:0}
.np-za-beschreibung table{border-collapse:collapse;margin:6px 0 12px;font-size:13px}
.np-za-beschreibung th,.np-za-beschreibung td{border:1px solid var(--rand,#E7E0D4);padding:4px 8px;text-align:left;vertical-align:top}
.np-za-beschreibung th{background:var(--creme,#FAF8F3)}
.np-za-block{margin:14px 0;background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:10px 14px}
.np-za-block > summary{cursor:pointer;font-weight:700;color:var(--blau,#0A1F44);font-size:13.5px}
.np-za-block table{border-collapse:collapse;width:100%;font-size:12.5px;margin-top:8px}
.np-za-block th,.np-za-block td{border-bottom:1px solid var(--rand,#E7E0D4);padding:4px 8px;text-align:left;vertical-align:top}
.np-za-block th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mittelgrau,#6B7280)}
.np-za-block td.r{text-align:right;font-variant-numeric:tabular-nums}
.np-za-block ul{margin:8px 0 0 20px;padding:0;font-size:13px;line-height:1.5}
.np-za-quelle-bild{color:#7A5A17;font-weight:600}
.np-za-quelle-beide{color:var(--gruen,#2F6B38)}
.np-za-offen li{margin-bottom:4px}
.np-za-urteil{font-size:13px;line-height:1.5;color:var(--tinte,#1B2531);margin:10px 0 0}
.np-za-fortschritt{display:flex;align-items:center;gap:10px;background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:12px 16px;font-size:13px}
.np-za-fortschritt .np-mb-spin{flex:none}
.np-za-protokoll{font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;line-height:1.45;white-space:pre-wrap;max-height:360px;overflow:auto;background:var(--creme,#FAF8F3);border-radius:8px;padding:10px 12px;margin-top:8px}
.np-za-hinweis{font-size:12.5px;color:var(--mittelgrau,#6B7280);margin:6px 2px 0}
.np-za-frage{background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:14px 16px;font-size:13px}
.np-za-frage p{margin:6px 0 10px}
.np-za-frage-zahl{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 6px}
.np-za-frage-zahl .gross{font-size:22px;font-weight:600;color:var(--tinte,#1B2531)}
.np-za-frage-grenze{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 4px}
.np-za-frage-grenze label{font-weight:600}
.np-za-frage-grenze input[type=number]{width:110px;margin:0 4px 0 8px;padding:5px 8px;border:1px solid var(--rand,#E7E0D4);border-radius:6px;font:inherit}
.np-za-frage .np-mb-knoepfe{margin-top:12px}

/* ---------- Planblatt (27.09.2026): Plaene in die Excel-Vorlage des Kunden ----------
   Nutzt Leiste, Fenster, Kacheln und Excel-Vorschau des Massenblatts (np-mb-*);
   eigen sind nur die Planliste in der Leiste und die Markierungen der Vorschau. */
.np-pb-plaene{display:flex;flex-wrap:wrap;gap:6px;margin:8px 2px 0;max-width:100%}
.np-pb-plan{display:inline-flex;align-items:center;gap:6px;background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);
  border-radius:999px;padding:3px 8px 3px 11px;font-size:12px;font-family:var(--mono,ui-monospace,monospace);color:var(--blau,#0A1F44)}
.np-pb-plan button{border:0;background:transparent;color:var(--mittelgrau,#6B7280);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}
.np-pb-plan button:hover{color:#A11616}
.np-pb-plan.laedt{opacity:.6}
.np-xl td.unsicher{background:var(--goldf,#F7EDDA);cursor:help}
.np-xl td.formel{color:var(--mittelgrau,#6B7280);font-style:italic}
.np-xl td.leer{color:#C4C9D1}
.np-xl tr.fehler td{background:#FBECEC}
.np-pb-status{border-collapse:collapse;font-size:12.5px;width:100%}
.np-pb-status th,.np-pb-status td{padding:5px 8px;border-bottom:1px solid var(--rand,#E7E0D4);vertical-align:top;text-align:left}
.np-pb-status th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mittelgrau,#6B7280);font-weight:600}
.np-pb-status td.num{text-align:right;font-variant-numeric:tabular-nums}
.np-pb-status tr.fehler td{color:#A11616}
.np-pb-details details{background:var(--karte,#fff);border:1px solid var(--rand,#E7E0D4);border-radius:10px;padding:10px 14px;margin-bottom:10px}
.np-pb-details summary{cursor:pointer;font-weight:600;font-size:13px}
.np-pb-details summary .np-mb-grau{font-weight:500;margin-left:6px}
.np-pb-weg{font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;white-space:pre-wrap;margin:6px 0 0;color:var(--blau,#0A1F44)}
