/**
 * protokolle.css — Modul-Styles Protokoll (Sitzungsliste + Punkteliste).
 *
 * Generische Listen-Patterns kommen aus _shared/functions/list-view/grid-css/. Dieses File
 * enthält nur Protokoll-spezifisches: Spaltenbreiten, Cell-Klassen,
 * Datum-Filter-Pattern, Modul-spezifische Hover-States.
 *
 * Naming:
 *  .pl-* = Protokolle-Liste (Sitzungs-Übersicht in index.php)
 *  .pp-* = Protokoll-Punkte  (Editor-Punkte-Liste in protokolle.php)
 */

/* ================================================================ */
/* Sitzungsliste — Page-Layout                                       */
/* ================================================================ */

/* ================================================================ */
/* Sitzungsliste — Datum-Filter                                      */
/* ================================================================ */

.pl-filter-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid var(--line, #e5e5e5);
  border-radius: 6px;
  background: var(--white, #fff);
}
.pl-filter-date:focus-within { border-color: var(--mid, #555); }
.pl-date-label {
  display: inline-flex;
  align-items: center;
  color: var(--mid, #555);
  font-size: var(--font-sm);
  cursor: pointer;
}
.pl-date-input {
  border: none;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: var(--font-sm);
  color: var(--ink, #111);
  width: 110px;
  padding: 0 2px;
}
.pl-date-input::-webkit-calendar-picker-indicator { opacity: 0.5; cursor: pointer; }
.pl-date-input::-webkit-calendar-picker-indicator:hover { opacity: 1; }
.pl-date-sep { color: var(--soft, #ae9586); font-size: var(--font-sm); }

/* ================================================================ */
/* Sitzungsliste — Grid: Spaltenbreiten                              */
/* ================================================================ */

.pl-grid {
  /* Reihenfolge analog Aufgaben-v2: Drag · Erledigt-Pille · Titel ·
     Datum · Zugehörig · Akteure · Unternehmen · W · D · M · Löschen.
     Icon-only-Spalten (Drag, W/D/M, Löschen) 44 px fix — passt zum
     Action-Cell-Standard und lässt Platz für Icon + Sort-Arrow
     (`is-sorted.is-asc::after`/`.is-desc::after`). Vorher waren Drag 24
     und W/D/M 36, da wurde der Header-Icon vom Sort-Pfeil weggedrängt.
     Datum 140 px (dd.mm.yyyy + Pen-Icon). Zugehörig 200 px (Kurzname). */
  display: grid;
  /* Breiten aus der CSS-Variable (col-resize-Baustein); Fallback = Defaults. */
  grid-template-columns: var(--pl-cols,
    44px 52px minmax(220px, 1.6fr) 160px 200px minmax(160px, 1fr) minmax(160px, 1fr) 44px 44px 44px 44px);
  align-items: stretch;
  gap: 0;
}

/* Padding/Center der schmalen Icon-Spalten (Drag/Erledigt/Flag/Löschen)
   kommt aus dem Shared `.idf-list-cell-action` (padding:0 + justify-content:
   center + overflow:visible) — das Sitzungs-Markup trägt die Klasse an allen
   vier Cells (+ `pl-grid idf-list-grid`, `pl-thead idf-list-thead`,
   `pl-rows idf-list-row`). Die früheren modul-lokalen `.pl-thead .pl-cell-*`-
   und `.pl-rows … .pl-cell-*`-Padding-Overrides sind damit redundant und
   entfernt (Issue #138). Inhalts-Cells erben die list-grid-Defaults
   (padding:12px, font-size:16px). */
.pl-rows .pl-row .pl-cell-titel {
  font-weight: 500;
  min-width: 0;
}
.pl-rows .pl-row .pl-cell-titel.is-empty {
  font-style: italic;
  color: var(--mid, #555);
  font-weight: 400;
}
.pl-rows .pl-row .pl-cell-datum { font-variant-numeric: tabular-nums; }
.pl-rows .pl-row .pl-cell-zugeh,
.pl-rows .pl-row .pl-cell-akteure,
.pl-rows .pl-row .pl-cell-untern {
  color: var(--mid, #555);
}
.pl-rows .pl-row .pl-cell-zugeh.is-set { color: var(--ink, #111); }

/* Drag-Handle, Erledigt-Pille und Lösch-Button kommen aus
   _shared/functions/list-view/grid-css/idf-list-grid.css (Klassen .idf-list-drag-handle,
   .idf-list-done-pill, .idf-list-delete-btn — seit list-grid v0.2.0).
   Hier nur die Row-Hover-Stufe „opacity 0.6", weil die am modul-
   spezifischen Row-Selector hängt. */
.pl-rows .pl-row:hover .idf-list-drag-handle,
.pl-rows .pl-row:hover .idf-list-done-pill,
.pl-rows .pl-row:hover .idf-list-delete-btn { opacity: 0.6; }

.pl-thead .pl-cell-drag i {
  color: var(--mid, #555);
  opacity: 0.7;
  font-size: 14px;
}
.pl-thead .pl-cell-drag.is-sorted i {
  color: var(--accent, #167ea0);
  opacity: 1;
}

/* Erledigt-Row gedimmt + Titel durchgestrichen */
.pl-rows .pl-row.is-erledigt { opacity: 0.55; }
.pl-rows .pl-row.is-erledigt .pl-cell-titel { text-decoration: line-through; }

/* === Inline-Edit-Pattern für Titel + Datum + Zugehörig (analog
   Punkte-Editor pp-*-Klassen + Aufgaben al-*-Klassen) ============== */
/* Group nimmt im Default nur natürliche Breite (Text + Pen) — analog
   Aufgaben. Damit ist der Pen-Hover-Trigger der Text+Pen-Bereich, nicht
   die ganze Cell. Seit #81. */
.pl-rows .pl-row .pl-cell-titel .pl-titel-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}
/* Im Edit-Modus expandiert die Group auf den verfügbaren Cell-Restraum,
   damit das Inline-Edit-Input die ganze Cell nutzen kann. Spezifischer
   als die Shared-Regel `.idf-inline-edit-host.is-editing`, weil unser
   Default-Selektor (4 Klassen) die Shared-Regel (2 Klassen) sonst
   überschreibt. Aufgaben löst das in eigenen Cell-Layout-Regeln; bei
   Protokollen ohne Stack reicht diese eine Override-Zeile. */
.pl-rows .pl-row .pl-cell-titel .pl-titel-group.is-editing {
  flex: 1 1 auto;
  width: 100%;
}
.pl-rows .pl-row .pl-cell-titel .pl-titel-text {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Pen-Button (Titel + Datum + Zugehörig) und Hover-Logik kommen seit
   #81 aus _shared/functions/inline-editing/idf-inline-edit.css. Markup trägt
   `idf-inline-edit-host` an `.pl-titel-group` / `.pl-cell-datum` /
   `.pl-cell-zugeh` und `idf-inline-edit-btn` am Pen — modul-spezifischer
   CSS-Block ist damit obsolet. */

/* Datum/Zugehörig-Cells: editierbar (cursor pointer, gap für Pen).
   Inhaltstext-Span und Edit-Modus-Padding bleiben hier scoped, weil das
   Modul-spezifische Pen-Layout im Default-Modus etwas mehr Luft braucht
   als die Shared-Defaults. */
.pl-rows .pl-row .pl-grid > div.pl-cell-datum:not(.is-editing),
.pl-rows .pl-row .pl-grid > div.pl-cell-zugeh:not(.is-editing) {
  cursor: pointer;
  gap: 6px;
}
.pl-rows .pl-row .pl-cell-datum .pl-cell-text,
.pl-rows .pl-row .pl-cell-zugeh .pl-cell-text {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pl-rows .pl-row .pl-grid > div.pl-cell-datum.is-editing,
.pl-rows .pl-row .pl-grid > div.pl-cell-zugeh.is-editing {
  padding: 4px 6px;
}
/* Combobox in der Zugehörig-Cell volle Breite. */
.pl-rows .pl-row .pl-grid > div.pl-cell-zugeh.is-editing > .combobox {
  width: 100%;
}

/* Save-Animation: kommt aus _shared/list-grid via `.idf-list-row.is-saving`.
   autoSaveSitzungField setzt is-saving während PATCH + lässt es kurz nach
   Save stehen. Keine Modul-eigene `.pl-row-saved`-Regel mehr nötig. */

/* === W/D/M-Flag-Pillen: Compact-Look kommt seit #174/T9 aus dem Shared
   `.idf-list-cell-action .idf-flag-check.is-compact` (idf-flag-check.css
   v1.6.0) — kein Cell-Override mehr. ================================= */

/* ================================================================ */
/* Sitzungsliste — Row-Verhalten (Hover, Save-State, Drag)           */
/* ================================================================ */

.pl-rows .pl-row {
  cursor: pointer;
  border-bottom: 1px solid var(--line, #e5e5e5);
  /* Hover-Visual kommt aus _shared/domain/eisenhower-theme/ (filter:
     brightness(0.92) auf .idf-eh-row:hover) — keinen eigenen
     :hover-Background setzen, sonst schluckt der die Eisenhower-
     Tönung beim Hover und Q4-Rows (weiß) bleiben unverändert. */
  transition: filter 80ms ease;
}

/* Drag-Handle: nur im sort-Modus sichtbar; Cursor wechselt auf grab. */
.pl-rows .pl-row .pl-cell-drag {
  color: var(--soft, #ae9586);
  cursor: grab;
}
.pl-rows .pl-row .pl-cell-drag:active { cursor: grabbing; }
.pl-rows .pl-row.is-dragging { opacity: 0.5; }

/* (`.pl-btn-delete`-Block entfernt, Issue #138/T6: totes CSS — das
   Sitzungs-Markup nutzt den Shared-Trash `.idf-list-delete-btn`
   (protokolle-list-row-render.js), nicht `.pl-btn-delete`.) */

/* Save-Animation (grüner Inset-Shadow links) — kommt von list-grid via
   .is-saving Klasse, nichts modul-eigenes nötig. */

/* ================================================================ */
/* Empty-State                                                       */
/* ================================================================ */

/* Kommt aus Shared blocks/empty-state (.idf-empty-state, H1/#198,
   $useEmptyState in index.php) - lokale .pl-empty-Kopie entfernt. */

/* ================================================================ */
/* Responsive — kompaktere Spalten unter 1100px                      */
/* ================================================================ */

@media (max-width: 1200px) {
  .pl-grid {
    /* Icon-only-Spalten bleiben 36 px (minimum für Icon + Sort-Arrow). */
    grid-template-columns:
      36px 44px minmax(180px, 1.6fr) 120px 170px minmax(130px, 1fr) minmax(130px, 1fr) 36px 36px 36px 36px;
  }
  /* col-resize im Schmal-Layout inaktiv (Modul-Grid gewinnt hier): Griffe weg,
     Scroll-Modus neutralisieren, damit nichts verrutscht/ueberlaeuft. */
  .idf-colresize-layer { display: none; }
  .idf-colresize-scroll .idf-list-thead,
  .idf-colresize-scroll .idf-list-rows { width: auto; min-width: 0; }
}

@media (max-width: 960px) {
  /* Engere Sicht: Akteure-Spalte ausblenden (Datum + Zugehörig
     + Unternehmen reichen für die Orientierung). */
  .pl-grid {
    grid-template-columns:
      36px 40px minmax(160px, 1.4fr) 110px 150px 0 minmax(120px, 1fr) 36px 36px 36px 36px;
  }
  .pl-cell-akteure { display: none !important; }
}

/* ================================================================ */
/* Punkte-Editor (protokolle.php) — Sitzungs-Header                  */
/* ================================================================ */

/* === Sitzungs-Header — nur noch Stammdaten-Felder.
   Der Sitzungs-Titel selbst sitzt im App-Header (über extraLeft des
   Shared-Bausteins, siehe protokolle.php). Hier nur die Felder-Zeile
   darunter. */
.pp-session-header {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 12px 24px 16px;
  background: var(--white, #fff);
  border-bottom: 1px solid var(--line, #e5e5e5);
  margin: 0 0 12px 0;
  position: sticky;
  top: 0;
  z-index: 5;
  /* Eigener Stacking-Context — verhindert, dass Mausevents im
     MultiSelect-Bereich (Akteure / Beteiligte Unternehmen) durch den
     Header auf die erste Punkte-Row darunter durchschlagen und dort
     Hover-States triggern (z.B. Trash-Icon sichtbar machen). Joerg-
     Smoke v0.8.1: ohne `isolation` hat das `:hover` der Liste durch
     den Header geleakt. */
  isolation: isolate;
}

/* Punkte-Liste in eigenen Stacking-Context — die Rows sollen nur
   `:hover` matchen, wenn der Cursor wirklich in der Liste ist, nicht
   wenn er im überlagernden Header-Bereich steht. */
.pp-rows {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

/* Breadcrumb im App-Header: kommt seit #194 aus dem Shared-Block
   blocks/app-breadcrumb ($useBreadcrumb, Klassen idf-breadcrumb-*). */

/* Stammdaten-Felder unter dem Breadcrumb. .idf-form (Shared) liefert
   die Form-Variante der Inputs/Comboboxen mit konsistentem Border,
   Höhe und Schrift — exakt das Aussehen aus dem Aufgaben-Modal.
   Hier nur das modul-eigene Grid-Layout. */
.pp-session-fields.idf-form {
  display: grid;
  grid-template-columns: 180px minmax(220px, 1fr) minmax(220px, 1fr) minmax(220px, 1fr);
  gap: 8px 14px;
  align-items: end;
}
/* Labels in Tabellenkopf-Schrift — uppercase 11 px, mid-grau,
   bold, kein Icon. Konsistent zur Spaltenkopf-Optik.
   Gilt sowohl für <label>-gewrappte Felder (Datum, Zugehörig) als auch
   für die <div class="pp-session-field">-Wrapper der MultiSelects
   (Akteure, Beteiligte Unternehmen — siehe v0.8.3). */
.pp-session-fields.idf-form > label > span,
.pp-session-fields.idf-form > .pp-session-field > span {
  font-size: var(--font-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--mid, #555);
}

/* MultiSelect-Wrapper bekommen das gleiche Stack-Layout (Label-Span
   oben, Mount-Div darunter) wie idf-forms-Labels — ohne dass sie als
   <label> gerendert werden müssten. */
.pp-session-fields.idf-form > .pp-session-field {
  display: grid;
  gap: var(--space-1, 4px);
}

@media (max-width: 1100px) {
  .pp-session-fields.idf-form {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .pp-session-fields.idf-form {
    grid-template-columns: 1fr;
  }
}

/* Punkte-Editor Erledigt-Toggle nutzt jetzt `.idf-list-toggle` aus
   _shared/list-grid (siehe protokolle.php:120) — Modul-eigene Regel
   ist mit dem v0.4.0-SSOT-Refactor weggefallen. */

/* ================================================================ */
/* Punkte-Editor — Grid: Spaltenbreiten                              */
/* ================================================================ */

.pp-grid {
  /* Reihenfolge: Drag · Erledigt · Aufgabe · Termin · Zuständig
     · Unternehmen · Projekt · Auftrag · W · D · P · A · Löschen.
     Aufgabe wächst mit dem Platz, Pillen sind 36 px fix.
     Spaltenbreiten 2026-05 (Joerg-Review): Termin 130 → 150 px (sonst
     wird dd.mm.yyyy + Pen abgeschnitten), Zuständig 170 → 200 px,
     Unternehmen 170 → 200 px (Kurzname + Pen brauchen Luft).
     Projekt/Auftrag je 180 px (Nummer · Titel + Pen). */
  display: grid;
  /* Breiten aus der CSS-Variable (col-resize-Baustein); Fallback = Defaults.
     Kein Grid-Breakpoint -> col-resize gilt in allen Breiten. */
  grid-template-columns: var(--pp-cols,
    44px 52px minmax(220px, 1fr) 170px 200px 200px 180px 180px 36px 36px 36px 36px 36px);
  align-items: stretch;
  gap: 0;
}

/* Header — Cell-Defaults aus list-grid; hier nur Pillen-Center und
   Drag-/Done-/Delete-Spalten. */
.pp-thead .pp-cell-drag,
.pp-thead .pp-cell-done-toggle,
.pp-thead .pp-cell-delete,
.pp-thead .pp-cell-flag { justify-content: center; padding: 0; }
.pp-thead .pp-cell-flag i { opacity: 0.7; }
.pp-thead .pp-cell-done-toggle i { opacity: 0.7; }

/* Compact-Flag-Pillen der Punkte-Liste: Look kommt seit #174/T9 aus dem
   Shared `.idf-list-cell-action .idf-flag-check.is-compact`
   (idf-flag-check.css v1.6.0) — kein Cell-Override mehr. */

/* Body-Cell-Defaults — analog Sitzungsliste/Aufgaben: nur Pillen-Cells
   bekommen Padding-Overrides, Inhalts-Cells (Aufgabe / Termin /
   Zuständig / Unternehmen) erben die _shared/list-grid-Defaults
   (padding: 12px, font-size: 16px, min-height: 52px, align-items:
   center). Sonst greift modul-eigenes 8px-Padding und 14-px-Schrift,
   was Joerg-Review als „zu klein" markiert hat. */
.pp-rows .pp-row .pp-grid > div.pp-cell-drag,
.pp-rows .pp-row .pp-grid > div.pp-cell-done-toggle,
.pp-rows .pp-row .pp-grid > div.pp-cell-delete,
.pp-rows .pp-row .pp-grid > div.pp-cell-flag {
  padding: 0 !important;
  justify-content: center;
}

/* === Aufgabe-Titel-Cell — Inline-Edit-Pattern analog Aufgaben ===== */
.pp-rows .pp-row .pp-grid > div.pp-cell-titel {
  font-weight: 500;
  gap: 8px;
  min-width: 0;
  justify-content: flex-start;
}
/* Stack-Wrapper um titel-group + Link-Annotation. Existiert immer
   (auch ohne Annotation), damit das Markup einheitlich bleibt. Ohne
   Annotation verhaelt sich der Stack visuell wie das alte titel-group. */
.pp-rows .pp-row .pp-cell-titel .pp-titel-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
}
.pp-rows .pp-row .pp-cell-titel .pp-titel-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}
/* Inline-Edit-Modus: Stack expandiert auf Cell-Restraum (Hauptachse =
   horizontal im Cell-flex-row), Group wird per `align-self: stretch` +
   `width: 100%` auf volle Stack-Breite gezogen. Analog Aufgaben v0.8.12 —
   Hintergrund: Stack ist `flex-direction: column` mit
   `align-items: flex-start`, dort regelt `flex` nur die VERTIKALE Höhe.
   Die horizontale Breite eines Stack-Childs (= Group) kommt aus
   `align-self`. `IDF.inlineEdit` setzt `is-editing` an Cell + Group
   (parentEditingTarget). */
.pp-rows .pp-row .pp-cell-titel.is-editing .pp-titel-stack {
  flex: 1 1 auto;
  max-width: 100%;
}
.pp-rows .pp-row .pp-cell-titel.is-editing .pp-titel-group {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
}
.pp-rows .pp-row .pp-cell-titel .pp-titel-text {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
/* Pen-Button am Titel: Styling + Hover-Reveal kommen aus dem Shared
   `.idf-inline-edit-btn` + `.idf-inline-edit-host:not(.is-editing):hover`
   (das Markup trägt beide Klassen + `idf-inline-edit-host` an `.pp-titel-group`).
   Der frühere modul-lokale Block ist entfernt — er war redundant UND hatte mit
   `.pp-row:hover … opacity:1` einen ZEILEN-scoped Hover-Anker, der den Pen
   beim Hovern irgendwo in der Zeile einblendete statt nur über dem Titel
   (genau der Anti-Pattern, den #81 abgelöst hat). Jetzt cell-scoped wie aufgaben. */
/* Inline-Edit-Input für den Titel — Skin via .idf-inline-edit-input
   (Shared), hier nur Layout. */
.pp-rows .pp-row .pp-cell-titel input.pp-titel-edit {
  flex: 1 1 auto;
  font-weight: 500;
}

/* === Hierarchie-Einrückung + Tree-Connector (1:1 aus aufgaben.css) === */
/* Cell muss overflow:visible haben, damit die Connector-Linien
   benachbarter Subs sich an den Cell-Padding-Bereichen überlappen
   und als durchgehende Linie ├ … ├ … └ erscheinen. Title-Ellipsis
   bleibt sicher, weil .pp-titel-text selbst clippt. */
.pp-rows .pp-row.pp-level-1 .pp-grid > div.pp-cell-titel,
.pp-rows .pp-row.pp-level-2 .pp-grid > div.pp-cell-titel {
  position: relative;
  overflow: visible;
}
/* Einrückung pro Ebene: 22 px (Aufgaben-Konvention seit v0.6.7). */
.pp-rows .pp-row.pp-level-1 .pp-grid > div.pp-cell-titel { padding-left: 22px; }
.pp-rows .pp-row.pp-level-2 .pp-grid > div.pp-cell-titel { padding-left: 44px; }

/* Connector-Span: 12 px breit, über volle Cell-Inhalt-Höhe.
   Vertikale Linie als ::before, horizontaler Strich als ::after. */
.pp-tree-connector {
  position: relative;
  align-self: stretch;
  flex: 0 0 12px;
  width: 12px;
  pointer-events: none;
}
.pp-tree-connector::before {
  content: '';
  position: absolute;
  left: 0;
  top: -13px;
  bottom: -13px;
  width: 0;
  border-left: 2px solid currentColor;
  opacity: 0.3;
}
.pp-rows .pp-row.is-last-sub .pp-tree-connector::before {
  bottom: 50%;
}
.pp-tree-connector::after {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 12px;
  height: 0;
  border-top: 2px solid currentColor;
  opacity: 0.3;
}

/* === Cell-Edit-Pattern für Termin / Zuständig / Unternehmen ========
   1:1 analog Sitzungsliste (.pl-cell-text/.pl-cell-edit-btn) und
   Aufgaben (.al-cell-text/.al-cell-edit-btn) — Pen-Icon fadet bei
   Cell-Hover ein, Cell ist klickbar (cursor: pointer + gap: 6px).
   Bei Truncation bei einer früheren Edit-Runde weggeschnitten,
   2026-05 wieder eingespielt. */
.pp-rows .pp-row .pp-grid > div.pp-cell-termin:not(.is-editing),
.pp-rows .pp-row .pp-grid > div.pp-cell-verant:not(.is-editing),
.pp-rows .pp-row .pp-grid > div.pp-cell-untern:not(.is-editing),
.pp-rows .pp-row .pp-grid > div.pp-cell-projekt:not(.is-editing),
.pp-rows .pp-row .pp-grid > div.pp-cell-auftrag:not(.is-editing) {
  cursor: pointer;
  gap: 6px;
}
.pp-rows .pp-row .pp-cell-termin .pp-cell-text,
.pp-rows .pp-row .pp-cell-verant .pp-cell-text,
.pp-rows .pp-row .pp-cell-untern .pp-cell-text,
.pp-rows .pp-row .pp-cell-projekt .pp-cell-text,
.pp-rows .pp-row .pp-cell-auftrag .pp-cell-text {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Termin-Spalte: tabular-nums für gerade Datums-Spalten. Schriftgröße
   erbt die 16-px-Default aus list-grid (NICHT auf 13 px setzen — war
   der „zu klein"-Bug aus dem Joerg-Review 2026-05). */
.pp-rows .pp-row .pp-cell-termin .pp-cell-text {
  font-variant-numeric: tabular-nums;
}
.pp-rows .pp-row .pp-cell-termin.is-overdue .pp-cell-text {
  /* Phantom --err aufgeloest -> var(--primary), render-identisch (bewusst
     Brand-Rot wie aufgaben-Overdue, nicht --red) - Audit L5/#201. */
  color: var(--primary, #c8134b);
  font-weight: 600;
}
.pp-rows .pp-row .pp-cell-termin.is-today .pp-cell-text {
  color: var(--orange, #e8710a);
  font-weight: 600;
}

/* ================================================================ */
/* Verknüpfte Aufgaben (M2M aufgaben_protokoll_sitzung)              */
/* protokolle-linked-aufgaben.js — Weg B, Gegenstück zur „↗ Protokoll */
/* …"-Sub-Line in der Aufgaben-Liste.                                 */
/* ================================================================ */
.pp-linked-aufgaben { margin: 24px 0 8px; }
.pp-linked-aufgaben-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: var(--font-md, 14px);
  font-weight: 600;
  color: var(--ink, #111);
}
.pp-linked-aufgaben-title i { color: var(--mid, #555); }
.pp-linked-aufgaben-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pp-la-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 1px solid var(--line, #e5e5e5);
  border-radius: 8px;
  background: var(--neutral-bg, #f0f1f3);
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.pp-la-item:hover,
.pp-la-item:focus-visible {
  background: var(--shade-04);
  border-color: var(--mid, #555);
  outline: none;
}
.pp-la-icon { flex: 0 0 auto; color: var(--mid, #555); }
.pp-la-titel {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--ink, #111);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pp-la-nr { color: var(--mid, #555); font-variant-numeric: tabular-nums; }
/* Geprueft L5/F6 (#201): bleibt bewusst lokal - der Shared-Standard
   .idf-pill-tag (13px/500, Radius 6px, Padding 3px 8px) waere zur
   12px-Kapsel (Radius 999px, Weight 400) nicht render-identisch. */
.pp-la-status {
  flex: 0 0 auto;
  font-size: var(--font-xs2);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--tint-neutral);
  color: var(--mid, #555);
}
.pp-la-status[data-status="in_bearbeitung"] { background: var(--tint-accent); color: var(--accent, #167ea0); }
.pp-la-status[data-status="zur_freigabe"]   { background: var(--tint-yellow); color: var(--yellow-text, #b58600); }
.pp-la-status[data-status="freigegeben"]    { background: var(--tint-orange); color: var(--orange, #e8710a); }
.pp-la-status[data-status="erledigt"]       { background: var(--tint-confirm); color: var(--confirm, #0c998e); }
.pp-la-status[data-status="zurueckgestellt"]{ background: var(--tint-neutral);      color: var(--mid, #555); }

/* Pen-Affordance (Default-Look + Hover-Logik) kommt aus
   _shared/functions/inline-editing/idf-inline-edit.css. Der frühere Modul-Block
   hat den Pen am `.pp-row:hover` eingeblendet (also bei Hover über
   die ganze Zeile in ALLEN editierbaren Cells gleichzeitig) und die
   Shared-Regel `.idf-inline-edit-host:not(.is-editing):hover` durch
   höhere Spezifität überschrieben. Mit der ersatzlosen Löschung des
   Blocks zieht die Shared-Affordance: Pen erscheint nur bei Hover
   über die Cell, in der er auch wirklich klickbar ist. */

/* Inline-Edit-Mode: Cell wird Container für Date-Input bzw. Combobox.
   Padding auf 4/6 px reduzieren, damit Input/Combobox bündig sitzt.
   Combobox-Wrap nimmt die volle Cell-Breite — sonst sitzt das Element
   nur dort wo der Cell-Text war (Joerg-Review 2026-05). */
.pp-rows .pp-row .pp-grid > div.pp-cell-termin.is-editing,
.pp-rows .pp-row .pp-grid > div.pp-cell-verant.is-editing,
.pp-rows .pp-row .pp-grid > div.pp-cell-untern.is-editing,
.pp-rows .pp-row .pp-grid > div.pp-cell-projekt.is-editing,
.pp-rows .pp-row .pp-grid > div.pp-cell-auftrag.is-editing {
  padding: 4px 6px;
}
/* Combobox in der Zuständig-/Unternehmen-/Projekt-/Auftrag-Cell volle Breite
   (analog pl-cell-zugeh). */
.pp-rows .pp-row .pp-grid > div.pp-cell-verant.is-editing > .combobox,
.pp-rows .pp-row .pp-grid > div.pp-cell-untern.is-editing > .combobox,
.pp-rows .pp-row .pp-grid > div.pp-cell-projekt.is-editing > .combobox,
.pp-rows .pp-row .pp-grid > div.pp-cell-auftrag.is-editing > .combobox {
  width: 100%;
}
