/* css/partnerportal.css
 * Externes Partnerportal (Auftrag "Kooperationspartner-Portal", 30.09.2026).
 * Baut auf den Design-Tokens aus css/styles.css auf (Farben, Radien,
 * Abstaende, .button-Klassen) - bewusst deutlich reduzierte, responsive
 * Oberflaeche ohne das feste Mindestbreiten-Geruest der internen Seiten.
 */
.pp-body { margin: 0; background: var(--color-background, #F3F4F6); color: var(--color-text, #1F2328); font-family: var(--font-system, system-ui, "Segoe UI", Arial, sans-serif); font-size: 15px; line-height: 1.5; min-width: 0; }
.pp-body a { color: var(--color-primary, #2F4592); }
.pp-body a.button-primary, .pp-body a.button-primary:hover { color: #fff; }
.pp-body a.button-secondary { color: var(--color-text); }
.pp-body [hidden] { display: none !important; }
.pp-body svg { width: 1em; height: 1em; vertical-align: -0.12em; }

/* Kopf + Navigation */
.pp-kopf { background: var(--color-surface, #fff); border-bottom: 1px solid var(--color-border, #D7D9DD); box-shadow: var(--shadow-small); position: sticky; top: 0; z-index: 10; }
.pp-kopf-innen { max-width: 1180px; margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pp-marke { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit !important; }
.pp-logo { height: 36px; width: auto; }
.pp-marke-text { display: flex; flex-direction: column; line-height: 1.2; }
.pp-marke-text strong { color: var(--color-primary, #2F4592); font-size: 16px; }
.pp-marke-text span { color: var(--color-text-muted, #5B6270); font-size: 13px; }
.pp-kopf-benutzer { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.pp-kopf-name { text-decoration: none; color: var(--color-text) !important; }
.pp-nav { max-width: 1180px; margin: 0 auto; padding: 0 16px; display: flex; gap: 4px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pp-nav a { padding: 9px 14px; text-decoration: none; color: var(--color-text-muted, #5B6270) !important; border-bottom: 3px solid transparent; white-space: nowrap; font-weight: 500; }
.pp-nav a:hover { color: var(--color-primary) !important; }
.pp-nav a.pp-nav-aktiv { color: var(--color-primary) !important; border-bottom-color: var(--color-primary); }
.pp-inline { display: inline; margin: 0; }
.pp-link-button { background: none; border: 0; color: var(--color-primary); cursor: pointer; font: inherit; padding: 0; }

/* Inhalt */
.pp-inhalt { max-width: 1180px; margin: 0 auto; padding: 20px 16px 40px; box-sizing: border-box; }
.pp-fuss { text-align: center; color: var(--color-text-muted); font-size: 13px; padding: 16px; }
.pp-titel { font-size: 24px; margin: 4px 0 6px; color: var(--color-text); font-weight: 650; }
.pp-untertitel, .pp-oberzeile { margin: 0; color: var(--color-text-muted); }
.pp-oberzeile { font-size: 13px; }
.pp-seitenkopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.pp-zurueck { display: inline-flex; gap: 6px; align-items: center; margin-bottom: 10px; text-decoration: none; font-size: 14px; }
.pp-muted { color: var(--color-text-muted, #5B6270); }
.pp-hinweis { color: var(--color-text-muted); font-size: 13.5px; margin: 6px 0 10px; }
.pp-mono { font-family: ui-monospace, Consolas, monospace; font-size: 13.5px; }
.pp-gross { font-size: 18px; font-weight: 600; }

/* Karten */
.pp-karte { background: var(--color-surface, #fff); border: 1px solid var(--color-border); border-radius: var(--radius-medium, 8px); padding: 18px 20px; margin-bottom: 16px; box-shadow: var(--shadow-small); box-sizing: border-box; min-width: 0; }
.pp-karte--schmal { max-width: 480px; margin: 40px auto; }
.pp-karte--achtung { border-left: 4px solid var(--color-warning, #B8860B); }
.pp-karte--hinweis { max-width: 640px; margin: 30px auto; }
.pp-abschnitt { font-size: 17px; margin: 0 0 10px; }
.pp-unterabschnitt { font-size: 15px; margin: 12px 0 6px; }
.pp-abschnitt-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.pp-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.pp-raster > .pp-karte { margin-bottom: 0; }
.pp-detail-raster { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; align-items: start; }

/* Kacheln */
.pp-kacheln { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.pp-kachel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: 14px 16px; text-decoration: none; color: var(--color-text) !important; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--shadow-small); }
.pp-kachel:hover { border-color: var(--color-primary); }
.pp-kachel-zahl { font-size: 28px; font-weight: 700; color: var(--color-primary); }
.pp-kachel--achtung .pp-kachel-zahl { color: var(--color-warning-dark, #6B4E00); }

/* Status */
.pp-status { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; background: var(--color-info-subtle, #E8EEFB); color: var(--color-primary-dark, #22346E); }
.pp-status--verfuegbar { background: #EEF0F3; color: #3F4652; }
.pp-status--inarbeit { background: var(--color-info-subtle, #E8EEFB); color: var(--color-primary-dark, #22346E); }
.pp-status--geparkt { background: var(--color-park-subtle, #E3F0FC); color: var(--color-park, #1565C0); }
.pp-status--eskaliert { background: var(--color-danger-subtle, #FDECEC); color: var(--color-danger-dark, #8B1E22); }
.pp-status--geschlossen { background: #E7F4EA; color: var(--color-success-dark, #155A26); }
.pp-status--rueckfrage { background: var(--color-warning-subtle, #FFF6DC); color: var(--color-warning-dark, #6B4E00); }

/* Meldungen */
.pp-meldung { padding: 10px 14px; border-radius: var(--radius-small); margin: 0 0 14px; border: 1px solid; }
.pp-meldung--ok { background: #E7F4EA; border-color: #B7DFC1; color: var(--color-success-dark, #155A26); }
.pp-meldung--fehler { background: var(--color-danger-subtle); border-color: #F2B8BB; color: var(--color-danger-dark); }
.pp-meldung--info { background: var(--color-info-subtle); border-color: #C7D3F2; color: var(--color-primary-dark); }
.pp-feldfehler { display: block; color: var(--color-danger-dark); font-size: 13px; margin-top: 3px; }

/* Formulare */
.pp-formular { display: flex; flex-direction: column; gap: 10px; }
.pp-formular > button, .pp-formular > .button { align-self: flex-start; }
.pp-formular--kompakt { margin-top: 10px; gap: 8px; }
.pp-formular--raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 16px; margin-top: 10px; }
.pp-feld--voll { grid-column: 1 / -1; }
.pp-feld { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pp-feld > span:first-child { font-size: 13.5px; font-weight: 600; color: var(--color-text); }
.pp-feld-reihe { display: flex; gap: 12px; flex-wrap: wrap; }
.pp-feld-reihe > .pp-feld { flex: 1 1 180px; }
.pp-eingabe { font: inherit; padding: 8px 10px; border: 1px solid var(--color-border-strong, #B9BCC2); border-radius: var(--radius-small); background: #fff; color: var(--color-text); width: 100%; box-sizing: border-box; min-height: 38px; }
.pp-eingabe:focus { outline: 2px solid var(--color-primary); outline-offset: 1px; }
.pp-eingabe--schmal { max-width: 200px; }
.pp-eingabe--menge { width: 90px; }
.pp-eingabe--klein { width: 160px; min-height: 32px; padding: 4px 8px; }
textarea.pp-eingabe { resize: vertical; }
.pp-optionen { display: flex; flex-direction: column; gap: 4px; }
.pp-option { display: flex; gap: 8px; align-items: flex-start; font-weight: normal; cursor: pointer; }
.pp-option input { margin-top: 3px; }
.pp-rechte { border: 1px solid var(--color-border); border-radius: var(--radius-small); padding: 10px 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 4px 16px; }
.pp-rechte legend { font-weight: 600; padding: 0 4px; }
/* 01.10.2026: Benutzerrechte als Toggle-Karten (gemeinsame Komponente .tc-rechte-* aus styles.css). */
.pp-rechte-toggles { display: flex; flex-direction: column; gap: var(--spacing-sm, 8px); min-width: 0; }
.pp-rechte-titel { font-weight: 600; margin: 6px 0 0; }
.pp-rechte-toggles .tc-rechte-gruppen--spalten > .tc-rechte-gruppe { margin-bottom: var(--spacing-sm, 8px); }
.pp-aktionen { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.pp-button-gross { padding: 10px 18px; font-size: 15px; }
.pp-button-gefahr { color: var(--color-danger-dark) !important; }
.pp-body .button { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.pp-auswahlliste { max-height: 320px; overflow-y: auto; border: 1px solid var(--color-border); border-radius: var(--radius-small); padding: 8px 12px; margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }

/* Filter */
.pp-filter { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.pp-filter-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.pp-chip { padding: 5px 12px; border-radius: 999px; border: 1px solid var(--color-border-strong); background: var(--color-surface); text-decoration: none; color: var(--color-text) !important; font-size: 13.5px; }
.pp-chip--aktiv { background: var(--color-primary); border-color: var(--color-primary); color: #fff !important; }
.pp-filter-suche { display: flex; gap: 8px; flex-wrap: wrap; }
.pp-filter-suche .pp-eingabe { flex: 1 1 220px; width: auto; }

/* Tabellen */
.pp-tabelle-rahmen { overflow-x: auto; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-medium); margin-bottom: 10px; }
.pp-karte .pp-tabelle-rahmen { border: 0; }
.pp-tabelle { width: 100%; border-collapse: collapse; font-size: 14px; }
.pp-tabelle th { text-align: left; padding: 9px 12px; background: #F7F8FA; border-bottom: 1px solid var(--color-border); font-size: 13px; color: var(--color-text-muted); white-space: nowrap; }
.pp-tabelle td { padding: 9px 12px; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.pp-tabelle tr:last-child td { border-bottom: 0; }
.pp-zellen-aktionen { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-sperrformular { display: inline-flex; gap: 6px; align-items: center; }
.pp-liste-einfach { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }

/* Detail */
.pp-felder { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-feldzeile { display: grid; grid-template-columns: minmax(120px, 35%) 1fr; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid #EEF0F3; }
.pp-feldzeile dt { font-weight: 600; color: var(--color-text-muted); font-size: 13.5px; }
.pp-feldzeile dd { margin: 0; }
.pp-inhalt-html { overflow-wrap: anywhere; }
.pp-inhalt-html img { max-width: 100%; height: auto; }
.pp-inhalt-html table { border-collapse: collapse; }
.pp-inhalt-html td, .pp-inhalt-html th { border: 1px solid var(--color-border); padding: 4px 8px; }
.pp-status-block { display: flex; gap: 6px; flex-wrap: wrap; }
.pp-profil { display: flex; gap: 12px; align-items: flex-start; }
.pp-dateiliste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
/* 02.10.2026: intern "Hervorheben" = Ja auch im Portal hervorgehoben (wie intern .tc-zusatzdaten-datei--hervorgehoben). */
.pp-dateiliste li.pp-datei--hervorgehoben { background-color: var(--color-info-subtle, #E8EEFB); border-left: 4px solid var(--color-primary, #1F3A8A); border-radius: var(--radius-small, 6px); padding: 8px 10px; font-weight: 600; }
.pp-dateiliste li.pp-datei--hervorgehoben .pp-muted { font-weight: 400; }

/* Gespraechsverlauf */
.pp-verlauf { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pp-verlauf-eintrag { border-radius: var(--radius-medium); padding: 10px 14px; border: 1px solid var(--color-border); background: #F7F8FA; max-width: 88%; }
.pp-verlauf-eintrag--partner { margin-left: auto; background: var(--color-info-subtle, #E8EEFB); border-color: #C7D3F2; }
.pp-verlauf-typ--rueckfrage { border-left: 4px solid var(--color-warning, #B8860B); background: var(--color-warning-subtle, #FFF6DC); }
.pp-verlauf-kopf { font-size: 12.5px; color: var(--color-text-muted); margin-bottom: 4px; }
.pp-verlauf-text { overflow-wrap: anywhere; }
.pp-antwort { border-top: 1px solid var(--color-border); padding-top: 12px; }

/* Organisation */
.pp-ap { border-bottom: 1px solid #EEF0F3; padding: 8px 0; }
.pp-bearbeiten { margin-top: 6px; }
.pp-bearbeiten > summary, .pp-einrichtung > summary { cursor: pointer; color: var(--color-primary); font-size: 14px; }
.pp-einrichtung { border: 1px solid var(--color-border); border-radius: var(--radius-small); padding: 10px 14px; margin-bottom: 8px; }
.pp-einrichtung > summary { color: var(--color-text); }
.pp-einrichtung-inhalt { margin-top: 8px; }

@media (max-width: 820px) {
  .pp-detail-raster { grid-template-columns: 1fr; }
  .pp-titel { font-size: 21px; }
  .pp-verlauf-eintrag { max-width: 100%; }
  /* Tabellen als Karten (mobil nutzbar, Auftrag Abschnitt 38) */
  .pp-tabelle thead { display: none; }
  .pp-tabelle, .pp-tabelle tbody, .pp-tabelle tr, .pp-tabelle td { display: block; width: 100%; box-sizing: border-box; }
  .pp-tabelle tr { border-bottom: 1px solid var(--color-border); padding: 8px 0; }
  .pp-tabelle td { border: 0; padding: 3px 12px; }
  .pp-tabelle td[data-label]::before { content: attr(data-label) ": "; font-weight: 600; color: var(--color-text-muted); font-size: 12.5px; }
  .pp-feldzeile { grid-template-columns: 1fr; gap: 2px; }
  .pp-kopf { position: static; }
}

/* ---- Version 1.1: Bestellsummen, Bestaetigung, Dialog ---- */
.pp-tabelle--bestellung tfoot th { text-align: right; font-weight: 600; }
.pp-summenzeile td, .pp-summenzeile th { border-top: 2px solid var(--color-border, #D7D9DD); font-weight: 700; white-space: nowrap; }
.pp-bestaetigung { border-left: 4px solid var(--color-primary, #2F4A9E); }
.pp-dialog { border: 1px solid var(--color-border); border-radius: var(--radius-medium, 8px); padding: 20px 22px; max-width: 560px; width: calc(100% - 32px); box-shadow: 0 12px 40px rgba(0, 0, 0, .25); color: var(--color-text); }
.pp-dialog::backdrop { background: rgba(20, 24, 32, .45); }
.pp-geraete-summe { font-weight: 600; margin: 8px 0 0; }
@media (max-width: 720px) {
  .pp-tabelle--bestellung tfoot th { text-align: left; }
}

/* ---- Version 1.1: Startseite (Funktionskacheln + Aktuelle Meldungen) ---- */
.pp-start--mit-meldungen { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.pp-start-haupt { min-width: 0; }
.pp-funktionen { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin-bottom: 16px; }
.pp-funktion { display: flex; gap: 12px; align-items: flex-start; background: var(--color-surface, #fff); border: 1px solid var(--color-border); border-radius: var(--radius-medium, 8px); padding: 14px 16px; box-shadow: var(--shadow-small); text-decoration: none; color: var(--color-text) !important; min-height: 92px; box-sizing: border-box; transition: border-color .15s, box-shadow .15s; }
.pp-funktion:hover, .pp-funktion:focus-visible { border-color: var(--color-primary); box-shadow: var(--shadow-medium, 0 4px 14px rgba(0,0,0,.08)); }
.pp-funktion-symbol { flex: 0 0 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--color-info-subtle, #E8EEFB); color: var(--color-primary, #2F4A9E); }
.pp-funktion-symbol svg { width: 22px; height: 22px; }
.pp-funktion-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pp-funktion-titel { font-weight: 650; font-size: 15.5px; }
.pp-funktion-beschreibung { color: var(--color-text-muted); font-size: 13.5px; }
.pp-funktion-zusatz { font-size: 13px; margin-top: 2px; overflow-wrap: anywhere; }
.pp-start-meldungen { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 120px; }
.pp-start-meldungen .pp-abschnitt { margin-bottom: 0; }
.pp-notiz { border-radius: 4px 4px 4px 14px; padding: 14px 16px 12px; box-shadow: 0 2px 6px rgba(0, 0, 0, .12); border: 1px solid rgba(0, 0, 0, .08); overflow-wrap: anywhere; }
.pp-notiz-titel { font-size: 15px; margin: 0 0 6px; color: inherit; }
.pp-notiz-text { font-size: 14px; line-height: 1.45; }
.pp-notiz-datum { margin: 8px 0 0; font-size: 12px; opacity: .8; }
@media (max-width: 980px) {
  .pp-start--mit-meldungen { grid-template-columns: minmax(0, 1fr); }
  .pp-start-meldungen { position: static; }
}

/* ---- 01.10.2026: Sitzungsanzeige, Bestellgruppen, Datenuebermittlung ---- */
.pp-kopf-sitzung { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--color-text-muted); white-space: nowrap; }
.pp-kopf-sitzung svg { width: 14px; height: 14px; }
.pp-kopf-sitzung .tc-sitzung-restzeit--knapp { color: var(--color-danger-dark, #8B1E22); font-weight: 600; }
.pp-bestellgruppe-kopf th { background: var(--color-background, #F3F4F6); text-align: left; font-size: 14.5px; padding-top: 10px; }
.pp-bestellgruppe-kopf svg { width: 16px; height: 16px; vertical-align: -3px; }
.pp-optionen--reihe { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.pp-option--karte { border: 1px solid var(--color-border-strong, #B9BCC2); border-radius: var(--radius-small); padding: 8px 12px; background: #fff; }
.pp-option--karte:has(input:checked) { border-color: var(--color-primary); background: var(--color-info-subtle, #E8EEFB); }
@media (max-width: 720px) { .pp-kopf-sitzung { font-size: 12px; } }

/* 01.10.2026 (Hover): das globale a:hover aus styles.css hinterlegt Links
   dunkelblau und setzt nur die Linkfarbe selbst auf weiss - Kindelemente mit
   eigener Farbe (Kachelzahlen, Funktionstexte, Symbole) blieben dunkel.
   Im Portal deshalb Schrift inkl. aller Kindelemente beim Hover weiss. */
.pp-body a:hover, .pp-body a:hover * { color: #fff; }
/* Kacheln setzen ihre Grundschrift mit !important - beim Hover ebenfalls weiss. */
/* 02.10.2026: Kacheln haben einen eigenen Hover-Effekt (siehe Ende der Datei) statt weiss auf dunkelblau. */
/* Ausnahmen: Logo-Link und Reiter-Navigation behalten ihre eigene Hover-
   Darstellung (kein dunkler Hintergrund, Unterstreichung bleibt). */
.pp-body a.pp-marke:hover { background-color: transparent; border-radius: 0; }
.pp-body a.pp-marke:hover * { color: inherit; }
.pp-body a.pp-marke:hover .pp-marke-text strong { color: var(--color-primary, #2F4592); }
.pp-nav a:hover { background-color: transparent; border-radius: 0; border-bottom: 3px solid var(--color-border-strong, #C9CED6); }
.pp-nav a.pp-nav-aktiv:hover { border-bottom-color: var(--color-primary); }

/* 01.10.2026 (Punkte 8-13): Startseite neu strukturiert. Gemeinsame
   Warnfarbe fuer offene Rueckfragen (Kennzahl + Bereich "Rueckfragen an Sie"),
   orange statt rot, passend zum bestehenden Warnton. */
.pp-body { --pp-rueckfrage-rand: #E08600; --pp-rueckfrage-flaeche: #FFF2DF; --pp-rueckfrage-text: #8A4700; }
.pp-start-kopf { margin-bottom: 14px; }
.pp-start-kopf .pp-oberzeile { font-size: 15px; }
.pp-titel--organisation { font-size: 30px; line-height: 1.15; margin: 2px 0 4px; color: var(--color-primary, #2F4592); }
.pp-start-partnernummer { margin: 0; font-size: 17px; color: var(--color-text-muted); }
.pp-start-partnernummer strong { color: var(--color-text); font-size: 19px; letter-spacing: .02em; }
.pp-start-haupt .pp-funktionen { margin-top: 0; }
.pp-kennzahlen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pp-kennzahlen .pp-kachel { padding: 12px 14px; }
.pp-kennzahlen .pp-kachel-zahl { font-size: 24px; }
.pp-kachel--gross { grid-column: 1 / -1; }
.pp-kachel--gross .pp-kachel-zahl { font-size: 32px; }
.pp-kachel--rueckfrage-offen { background: var(--pp-rueckfrage-flaeche); border: 2px solid var(--pp-rueckfrage-rand); }
.pp-kachel--rueckfrage-offen .pp-kachel-zahl, .pp-kachel--rueckfrage-offen span { color: var(--pp-rueckfrage-text); font-weight: 700; }
.pp-karte--rueckfragen-offen { background: var(--pp-rueckfrage-flaeche); border: 2px solid var(--pp-rueckfrage-rand); border-left-width: 6px; }
.pp-karte--rueckfragen-offen .pp-abschnitt { color: var(--pp-rueckfrage-text); }
@media (max-width: 820px) { .pp-titel--organisation { font-size: 24px; } }
/* Dateisammler Datenpflege Upload (01.10.2026, Punkt 6) */
.pp-dateisammler { list-style: none; margin: 8px 0 0; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.pp-dateisammler li { display: flex; align-items: center; gap: 10px; padding: 7px 12px; border-bottom: 1px solid var(--color-border); }
.pp-dateisammler li:last-child { border-bottom: 0; }
.pp-dateisammler-name { flex: 1 1 auto; overflow-wrap: anywhere; font-weight: 500; }
.pp-dateisammler-entfernen { border: 1px solid var(--color-border); background: var(--color-background); border-radius: var(--radius-small); padding: 3px 10px; cursor: pointer; font: inherit; font-size: 13px; color: var(--color-text); }
.pp-dateisammler-entfernen:hover { border-color: var(--color-danger, #B42318); color: var(--color-danger, #B42318); }
.pp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pp-datei-download { margin-left: 4px; text-decoration: none; }
/* Retoure/Gewaehrleistung: Positionen (01.10.2026, Punkte 14-18) */
.pp-position { border-bottom: 1px solid var(--color-border); padding: 4px 0; }
.pp-position:last-child { border-bottom: 0; }
.pp-position-details { padding: 4px 0 8px 26px; gap: 10px; }
.pp-dynliste { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.pp-dynzeile { border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: 10px 12px; background: var(--color-background); align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.pp-dynzeile .pp-feld { flex: 1 1 180px; margin-bottom: 0; }
.pp-feld--schmal { flex: 0 0 110px !important; }
.pp-dynzeile-entfernen { border: 1px solid var(--color-border); background: var(--color-surface); border-radius: var(--radius-small); padding: 6px 12px; cursor: pointer; font: inherit; font-size: 13px; color: var(--color-text); align-self: flex-end; }
.pp-dynzeile-entfernen:hover { border-color: var(--color-danger, #B42318); color: var(--color-danger, #B42318); }

/* 02.10.2026: Dateibereich - vorhandene Dateien und Upload klar getrennt.
   Upload als abgesetzter Kasten (gestrichelter Rand = Ablageflaeche fuer Drag & Drop). */
.pp-dateien-vorhanden .pp-unterabschnitt { margin-top: 0; }
.pp-upload-bereich { margin-top: 18px; padding: 12px 14px 14px; border: 2px dashed var(--color-border-strong, #B8C0CC); border-radius: var(--radius-medium, 8px); background: #F7F8FA; }
.pp-upload-bereich .pp-unterabschnitt { margin-top: 0; }
.pp-upload-bereich .pp-hinweis { margin-top: 0; }
.pp-upload-bereich .pp-formular--kompakt { margin-top: 6px; }

/* 02.10.2026: Gelesen/Ungelesen + Updates (gelesen je Partner, includes/tc_pp_gelesen.php).
   Ungelesene Vorgaenge fett + kraeftiger Punkt "Neu"/"Update"; gut erkennbar auch ohne Farbe. */
.pp-zeile--ungelesen td { font-weight: 700; }
.pp-zeile--ungelesen td:first-child { box-shadow: inset 4px 0 0 var(--color-primary, #1F3A8A); }
.pp-zeile--ungelesen .pp-muted { font-weight: 400; }
.pp-update-badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; background: var(--color-primary, #1F3A8A); color: #fff; vertical-align: middle; }
.pp-update-badge--neu { background: var(--color-success, #1E7B45); }
.pp-update-punkt { width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.pp-update-text { font-size: 13px; font-weight: 600; color: var(--color-primary-dark, #22346E); }
.pp-chip--updates { border-color: var(--color-primary); font-weight: 700; }
.pp-chip-zahl { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: var(--color-primary, #1F3A8A); color: #fff; font-size: 12px; font-weight: 700; text-align: center; }
.pp-chip--aktiv .pp-chip-zahl { background: #fff; color: var(--color-primary, #1F3A8A); }
.pp-karte--updates { border-left: 4px solid var(--color-primary, #1F3A8A); }
.pp-updates-aktion { margin-top: 10px; display: flex; justify-content: flex-end; }
.pp-update-hinweis .pp-update-liste { margin: 6px 0 0; padding-left: 20px; }

/* 02.10.2026: Startseite - alle Kacheln gleich gross (gleiche Zeilenhoehe je
   Raster, auch ueber Zeilen hinweg) und moderner Hover: Kachel hebt sich an,
   weicher Schatten, Akzentleiste oben, Symbol fuellt sich. Dunkle Schrift auf
   heller Flaeche bleibt beim Hover erhalten (gute Lesbarkeit). */
.pp-funktionen { grid-auto-rows: 1fr; }
.pp-funktion { height: 100%; }
.pp-kennzahlen { grid-auto-rows: 1fr; }
.pp-kennzahlen .pp-kachel { height: 100%; box-sizing: border-box; justify-content: center; }
.pp-funktion, .pp-kachel {
	position: relative; overflow: hidden;
	transition: transform .22s cubic-bezier(.2, .8, .2, 1), box-shadow .22s ease, border-color .22s ease, background-color .22s ease;
}
.pp-funktion::before, .pp-kachel::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px;
	background: linear-gradient(90deg, var(--color-primary, #2F4A9E), #5B8DEF);
	transform: scaleX(0); transform-origin: left; transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}
.pp-body a.pp-funktion:hover, .pp-body a.pp-funktion:focus-visible,
.pp-body a.pp-kachel:hover, .pp-body a.pp-kachel:focus-visible {
	transform: translateY(-4px);
	background-color: var(--color-surface, #fff);
	border-color: var(--color-primary, #2F4A9E);
	border-radius: var(--radius-medium, 8px);
	box-shadow: 0 12px 28px rgba(31, 58, 138, .16), 0 2px 6px rgba(31, 58, 138, .08);
	color: var(--color-text) !important;
}
.pp-body a.pp-funktion:hover::before, .pp-body a.pp-funktion:focus-visible::before,
.pp-body a.pp-kachel:hover::before, .pp-body a.pp-kachel:focus-visible::before { transform: scaleX(1); }
.pp-body a.pp-funktion:hover *, .pp-body a.pp-funktion:focus-visible * { color: inherit; }
.pp-body a.pp-funktion:hover .pp-funktion-titel { color: var(--color-primary-dark, #22346E); }
.pp-body a.pp-funktion:hover .pp-funktion-beschreibung, .pp-body a.pp-funktion:hover .pp-muted { color: var(--color-text-muted); }
.pp-funktion-symbol { transition: transform .22s cubic-bezier(.2, .8, .2, 1), background-color .22s ease, color .22s ease; }
.pp-body a.pp-funktion:hover .pp-funktion-symbol, .pp-body a.pp-funktion:focus-visible .pp-funktion-symbol {
	background: var(--color-primary, #2F4A9E); color: #fff; transform: scale(1.08) rotate(-4deg);
}
.pp-body a.pp-funktion:hover .pp-funktion-symbol *, .pp-body a.pp-funktion:focus-visible .pp-funktion-symbol * { color: #fff; }
.pp-body a.pp-kachel:hover *, .pp-body a.pp-kachel:focus-visible * { color: inherit; }
.pp-body a.pp-kachel:hover .pp-kachel-zahl { color: var(--color-primary, #2F4A9E); }
.pp-body a.pp-kachel--rueckfrage-offen:hover { background: var(--pp-rueckfrage-flaeche); border-color: var(--pp-rueckfrage-rand); }
.pp-body a.pp-kachel--rueckfrage-offen:hover .pp-kachel-zahl, .pp-body a.pp-kachel--rueckfrage-offen:hover span { color: var(--pp-rueckfrage-text); }
.pp-kachel--rueckfrage-offen::before { background: var(--pp-rueckfrage-rand); }
@media (prefers-reduced-motion: reduce) {
	.pp-funktion, .pp-kachel, .pp-funktion::before, .pp-kachel::before, .pp-funktion-symbol { transition: none; }
	.pp-body a.pp-funktion:hover, .pp-body a.pp-kachel:hover, .pp-body a.pp-funktion:hover .pp-funktion-symbol { transform: none; }
}

/* 02.10.2026: Vorgangsliste - Sortierung (Spaltenkopf + Auswahl) und Anzahl je Seite. */
.pp-filter-ansicht { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.pp-filter-auswahl { display: flex; flex-direction: column; gap: 3px; font-size: 13px; color: var(--color-text-muted); }
.pp-filter-auswahl .pp-eingabe { width: auto; min-width: 150px; }
.pp-richtung-knopf { white-space: nowrap; min-height: 0; height: auto; padding: 6px 12px; line-height: 1.3; align-self: flex-end; }
.pp-tabelle th a.pp-sortlink { display: inline-flex; align-items: center; gap: 4px; color: var(--color-text-muted) !important; text-decoration: none; }
.pp-body .pp-tabelle th a.pp-sortlink:hover, .pp-body .pp-tabelle th a.pp-sortlink:focus-visible { background: transparent; color: var(--color-primary-dark, #22346E) !important; text-decoration: underline; }
.pp-body .pp-tabelle th a.pp-sortlink:hover * { color: inherit; }
.pp-tabelle th a.pp-sortlink--aktiv { color: var(--color-primary-dark, #22346E) !important; font-weight: 700; }
.pp-sortpfeil { font-size: 11px; opacity: .55; }
.pp-sortlink--aktiv .pp-sortpfeil { opacity: 1; }

/* 02.10.2026: offene Rueckfragen in der Vorgangsliste wie Updates kenntlich -
   Anzahl am Filter "Rückfrage offen" + Zeile in Rueckfrage-Farbe (orange Leiste, warme Flaeche). */
.pp-chip--rueckfrage { border-color: var(--pp-rueckfrage-rand); font-weight: 700; }
.pp-chip-zahl--rueckfrage { background: var(--pp-rueckfrage-rand); color: #fff; }
.pp-chip--aktiv .pp-chip-zahl--rueckfrage { background: #fff; color: var(--pp-rueckfrage-text); }
.pp-zeile--rueckfrage td { background: var(--pp-rueckfrage-flaeche); font-weight: 700; }
.pp-zeile--rueckfrage td:first-child { box-shadow: inset 4px 0 0 var(--pp-rueckfrage-rand); }
.pp-zeile--rueckfrage .pp-muted { font-weight: 400; }
.pp-zeile--rueckfrage .pp-status--rueckfrage { background: var(--pp-rueckfrage-rand); color: #fff; }

/* 05.10.2026: Startseite - Funktionskacheln in thematischen Gruppen
   (gleiches Schema wie die internen Uebersichten, css/kacheln.css). */
.pp-funktionsgruppen { display: flex; flex-direction: column; gap: 18px; margin-bottom: 16px; }
.pp-funktionsgruppe-titel { margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--color-border); font-size: 17px; font-weight: 700; color: var(--color-text); }
.pp-funktionsgruppen .pp-funktionen { margin-bottom: 0; }
