/* Projektstatistik (Auswertungen) — Kumuliert + Einzelaufstellung (02.10.2026).
   WICHTIG (Regel "sticky Zellen immer deckend"): Kopf-, Summen- und fixe Zellen haben bewusst nur
   DECKENDE Hintergründe (var(--surface)/--background/--surface-hover sind in beiden Themes opak),
   niemals rgba()/var(--primary-light) — sonst scheint der Inhalt beim Scrollen durch. */
.ps-wrap { padding-bottom: 24px; }
.ps-filter { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.ps-filter label { display: block; font-size: .72rem; color: var(--text-muted); margin-bottom: 3px; }
.ps-filter .form-control { min-width: 140px; }
.ps-kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px; }
.ps-kpi { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 8px 14px; min-width: 130px; }
.ps-kpi .l { font-size: .7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .03em; }
.ps-kpi .v { font-size: 1.05rem; font-weight: 700; }
.ps-scroll { overflow: auto; max-height: calc(100vh - 330px); border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }
.ps-table { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: .8rem; }
.ps-table th, .ps-table td { padding: 6px 10px; border-bottom: 1px solid var(--border); white-space: nowrap; background: var(--surface); }
.ps-table thead th { position: sticky; top: 0; z-index: 3; background: var(--background); color: var(--text-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .02em; cursor: pointer; user-select: none; }
.ps-table th.num, .ps-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.ps-table tbody tr { cursor: pointer; }
.ps-table tbody tr:hover td { background: var(--surface-hover); }
.ps-table tfoot td { position: sticky; bottom: 0; z-index: 2; background: var(--surface-hover); font-weight: 700; border-top: 2px solid var(--border); }
.ps-table td.ps-bez { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.ps-pos { color: #15803d; } .ps-neg { color: #b91c1c; }
:root[data-theme="dark"] .ps-pos { color: #34d399; }
:root[data-theme="dark"] .ps-neg { color: #f87171; }
.ps-banner-ok, .ps-banner-bad { border-radius: 8px; padding: 10px 14px; font-size: .85rem; margin: 10px 0; }
.ps-banner-ok  { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.ps-banner-bad { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
:root[data-theme="dark"] .ps-banner-ok  { background: #14301f; color: #86efac; border-color: #1f5a37; }
:root[data-theme="dark"] .ps-banner-bad { background: #3a1818; color: #fca5a5; border-color: #6b2a2a; }
.ps-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0 10px; }
.ps-chip { border: 1px solid var(--border); border-radius: 999px; padding: 3px 12px; font-size: .78rem; cursor: pointer; background: var(--surface); color: var(--text-main); }
.ps-chip.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.ps-modal-box { width: min(1300px, 96vw); max-height: 92vh; display: flex; flex-direction: column; background: var(--surface); border-radius: 12px; box-shadow: var(--shadow); }
.ps-modal-box .modal-body { overflow: auto; }
.ps-modal-box .ps-scroll { max-height: 55vh; }
.ps-typ { font-weight: 700; font-size: .72rem; border-radius: 4px; padding: 1px 6px; background: var(--surface-hover); color: var(--text-main); }
