/* ═══════════════════════════════════════════════════════════════════════════
   Pulse PMO — App Styles · Bitfeder Design System (Tokens aus Claude Design)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Tokens ──────────────────────────────────────────────────────────────── */
:root {
  --bf-teal:#32C8C5; --bf-teal-dark:#28A8A5; --bf-teal-light:#7ECFCD; --bf-teal-soft:#E0F7F6;
  --bf-navy:#111B30; --bf-navy-deep:#0C1220; --bf-navy-2:#1A2740; --bf-navy-3:#24334F;
  --n-0:#FFFFFF; --n-50:#F5F7FA; --n-100:#EEF1F5; --n-200:#E1E6ED; --n-300:#C9D1DC; --n-400:#A3AEBF; --n-500:#75829A; --n-600:#55627A; --n-700:#3B475E; --n-800:#26314A; --n-900:#111B30;
  --c-success:#10B981; --c-warning:#F59E0B; --c-error:#EF4444; --c-info:#06B6D4; --c-forwarded:#6F42C1;
  --c-success-soft:#D1FAE5; --c-warning-soft:#FEF3C7; --c-error-soft:#FEE2E2; --c-info-soft:#CFFAFE; --c-forwarded-soft:#EDE4FA; --c-neutral-soft:#EEF1F5;
  --c-success-ink:#047857; --c-warning-ink:#B45309; --c-error-ink:#B91C1C; --c-info-ink:#0E7490; --c-forwarded-ink:#5B32A3; --c-neutral-ink:#55627A;
  --hg-1:#EF4444; --hg-2:#F97316; --hg-3:#F59E0B; --hg-4:#84CC16; --hg-5:#10B981;
  --chart-1:#32C8C5; --chart-2:#111B30; --chart-3:#F59E0B; --chart-4:#10B981; --chart-5:#06B6D4; --chart-6:#EF4444; --chart-7:#6F42C1; --chart-8:#A3AEBF;
  --primary:var(--bf-teal); --primary-hover:var(--bf-teal-dark); --primary-contrast:var(--bf-navy); --primary-soft:var(--bf-teal-soft);
  --secondary:var(--bf-navy);
  --bg-app:var(--n-50); --surface:var(--n-0); --surface-2:var(--n-50); --surface-3:var(--n-100);
  --appbar-bg:var(--bf-navy); --appbar-fg:#FFFFFF; --appbar-fg-muted:#A3AEBF;
  --drawer-bg:var(--n-0); --drawer-fg:var(--bf-navy); --drawer-fg-muted:var(--n-600); --drawer-active-bg:var(--bf-teal-soft); --drawer-active-fg:#1F8C8A;
  --text-1:var(--n-900); --text-2:var(--n-600); --text-3:var(--n-500); --text-inverse:#FFFFFF;
  --link:#1F8C8A; --link-hover:var(--bf-teal-dark);
  --border:var(--n-200); --border-strong:var(--n-300); --divider:var(--n-100);
  --focus-ring:0 0 0 3px rgba(50,200,197,.45);
  --table-header-bg:var(--n-50); --table-row-hover:#F0FAFA; --table-row-selected:var(--bf-teal-soft);
  --gantt-today:#FEF3C7; --gantt-weekend:var(--n-100); --gantt-bar:var(--bf-teal); --gantt-bar-progress:#1F8C8A; --gantt-phase:var(--bf-navy); --gantt-milestone:var(--c-warning);
  --scrim:rgba(17,27,48,.55);
  --font-sans:"Inter",Helvetica,Arial,sans-serif; --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --fs-h1:32px; --fs-h2:24px; --fs-h3:20px; --fs-h4:16px; --fs-h5:14px; --fs-body:14px; --fs-body-sm:13px; --fs-caption:12px; --fs-overline:11px; --fs-kpi:28px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px;
  --r-xs:4px; --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-pill:999px;
  --appbar-h:56px; --drawer-w:260px; --drawer-rail-w:64px; --content-pad:24px;
  --row-h-dense:36px; --row-h:44px; --control-h-sm:28px; --control-h:36px; --control-h-lg:44px;
  --gantt-row-h:28px; --gantt-bar-h:16px; --gantt-label-w:260px;
  --chip-h-sm:20px; --chip-h:24px;
  --sh-1:0 1px 2px rgba(17,27,48,.06),0 1px 3px rgba(17,27,48,.08);
  --sh-2:0 2px 6px rgba(17,27,48,.08),0 1px 2px rgba(17,27,48,.06);
  --sh-3:0 8px 24px rgba(17,27,48,.12),0 2px 6px rgba(17,27,48,.08);
  --sh-4:0 20px 50px rgba(17,27,48,.25);
  --dur-fast:120ms; --dur:180ms; --ease:cubic-bezier(.2,0,0,1);
}
[data-theme="dark"] {
  --primary-hover:var(--bf-teal-light); --primary-soft:rgba(50,200,197,.16); --secondary:var(--bf-teal-light);
  --bg-app:var(--bf-navy-deep); --surface:var(--bf-navy); --surface-2:var(--bf-navy-2); --surface-3:var(--bf-navy-3);
  --appbar-bg:var(--bf-navy-deep);
  --drawer-bg:var(--bf-navy); --drawer-fg:#FFFFFF; --drawer-fg-muted:#A3AEBF; --drawer-active-bg:rgba(50,200,197,.16); --drawer-active-fg:var(--bf-teal);
  --text-1:#F5F7FA; --text-2:#C9D1DC; --text-3:#A3AEBF; --text-inverse:var(--bf-navy);
  --link:var(--bf-teal); --link-hover:var(--bf-teal-light);
  --border:#2A3A58; --border-strong:#3B4D70; --divider:#1F2C46;
  --table-header-bg:var(--bf-navy-2); --table-row-hover:#182742; --table-row-selected:rgba(50,200,197,.14);
  --c-success-soft:rgba(16,185,129,.18); --c-warning-soft:rgba(245,158,11,.2); --c-error-soft:rgba(239,68,68,.2); --c-info-soft:rgba(6,182,212,.2); --c-forwarded-soft:rgba(111,66,193,.25); --c-neutral-soft:rgba(163,174,191,.16);
  --c-success-ink:#6EE7B7; --c-warning-ink:#FCD34D; --c-error-ink:#FCA5A5; --c-info-ink:#67E8F9; --c-forwarded-ink:#C4B5FD; --c-neutral-ink:#C9D1DC;
  --gantt-today:rgba(245,158,11,.18); --gantt-weekend:rgba(255,255,255,.04); --gantt-bar-progress:var(--bf-teal-light); --gantt-phase:var(--bf-teal-light);
  --scrim:rgba(0,0,0,.6);
  --sh-1:0 1px 2px rgba(0,0,0,.4); --sh-2:0 2px 6px rgba(0,0,0,.45); --sh-3:0 8px 24px rgba(0,0,0,.5); --sh-4:0 20px 50px rgba(0,0,0,.6);
}

/* ── Base ────────────────────────────────────────────────────────────────── */
html, body { margin:0; height:100%; font-family:var(--font-sans); font-size:var(--fs-body); line-height:1.5; color:var(--text-1); background:var(--bg-app); -webkit-font-smoothing:antialiased; }
*, *::before, *::after { box-sizing:border-box; }
a { color:var(--link); text-decoration:none; }
a:hover { color:var(--link-hover); text-decoration:underline; }
.tnum { font-variant-numeric:tabular-nums lining-nums; }
.mono { font-family:var(--font-mono); }
.muted { color:var(--text-2); }
.muted-3 { color:var(--text-3); }
.text-right { text-align:right; }
.text-center { text-align:center; }
.fw-500 { font-weight:500; } .fw-600 { font-weight:600; } .fw-700 { font-weight:700; }
.fs-12 { font-size:12px; } .fs-13 { font-size:13px; } .fs-11 { font-size:11px; }
.ink-success { color:var(--c-success-ink); } .ink-error { color:var(--c-error-ink); } .ink-warning { color:var(--c-warning-ink); } .ink-info { color:var(--c-info-ink); }
.nowrap { white-space:nowrap; }
.ellipsis { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pp-code { font-family:var(--font-mono); color:var(--link); font-weight:600; font-size:12px; }
.pp-eyebrow { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-3); }
.pp-kv { display:grid; grid-template-columns:140px 1fr; gap:8px; padding:7px 0; border-bottom:1px solid var(--divider); font-size:13px; }
.pp-kv > span:first-child { color:var(--text-3); }
.pp-kv > span:last-child { font-weight:500; min-width:0; }
.pp-grid { display:grid; gap:12px; }
.pp-grid-2 { grid-template-columns:repeat(2, minmax(0,1fr)); }
.pp-grid-3 { grid-template-columns:repeat(3, minmax(0,1fr)); }
.pp-grid-4 { grid-template-columns:repeat(4, minmax(0,1fr)); }
.pp-grid-5 { grid-template-columns:repeat(5, minmax(0,1fr)); }
.pp-grid-6 { grid-template-columns:repeat(6, minmax(0,1fr)); }
.pp-grid-12 { grid-template-columns:repeat(12, minmax(0,1fr)); }
.pp-span-2 { grid-column:span 2; } .pp-span-3 { grid-column:span 3; } .pp-span-4 { grid-column:span 4; } .pp-span-6 { grid-column:span 6; } .pp-span-8 { grid-column:span 8; } .pp-span-12 { grid-column:span 12; }
.pp-stack { display:flex; flex-direction:column; gap:12px; }
.pp-row { display:flex; align-items:center; gap:8px; }
.pp-two-col { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:12px; align-items:start; }
.pp-side-col { display:grid; grid-template-columns:360px minmax(0,1fr); gap:12px; align-items:start; }
@media (max-width:1279px) { .pp-grid-6 { grid-template-columns:repeat(3,minmax(0,1fr)); } .pp-grid-5,.pp-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); } .pp-two-col,.pp-side-col { grid-template-columns:1fr; } .pp-grid-12 > * { grid-column:span 12 !important; } }
.mb-12 { margin-bottom:12px; } .mb-16 { margin-bottom:16px; } .mb-20 { margin-bottom:20px; } .mt-12 { margin-top:12px; } .mt-8 { margin-top:8px; }

/* ── MudBlazor Overrides ──────────────────────────────────────────────────── */
.mud-appbar { background:var(--appbar-bg) !important; box-shadow:none !important; height:var(--appbar-h); }
.mud-appbar .mud-toolbar { min-height:var(--appbar-h); height:var(--appbar-h); padding:0 12px 0 8px; gap:4px; }
.mud-drawer { background:var(--drawer-bg) !important; border-right:1px solid var(--border) !important; }
.mud-main-content { background:var(--bg-app); }
.pp-content { padding:var(--content-pad); max-width:1600px; min-height:calc(100vh - var(--appbar-h)); }
.mud-button-root { font-family:var(--font-sans); font-weight:600; text-transform:none; letter-spacing:0; border-radius:var(--r-sm); }
.mud-button { height:var(--control-h); padding:0 14px; font-size:14px; }
.mud-button-filled.mud-button-filled-size-small, .mud-button-outlined.mud-button-outlined-size-small, .mud-button-text.mud-button-text-size-small { height:var(--control-h-sm); padding:0 10px; font-size:13px; }
.mud-button-filled.mud-button-filled-size-large { height:var(--control-h-lg); padding:0 18px; font-size:15px; }
.mud-button-filled.mud-button-filled-primary { color:var(--bf-navy) !important; }
.mud-button-filled.mud-button-filled-primary:hover { background:var(--primary-hover) !important; box-shadow:var(--sh-1); }
.mud-button-outlined.mud-button-outlined-primary, .mud-button-text.mud-button-text-primary { color:var(--link) !important; }
.mud-button-outlined.mud-button-outlined-default { border-color:var(--border-strong); color:var(--text-2); }
.mud-button-root:active { transform:translateY(1px); }
.mud-button-root:focus-visible { box-shadow:var(--focus-ring); }
.mud-button-root .mud-button-icon-start { margin-right:6px; }
.mud-icon-button { border-radius:var(--r-sm); }
.mud-icon-button.mud-icon-button-size-small { width:28px; height:28px; padding:4px; }
.mud-paper { background:var(--surface); color:var(--text-1); }
.mud-dialog { border-radius:var(--r-lg); box-shadow:var(--sh-4); border:1px solid var(--border); }
.mud-dialog .mud-dialog-title { font-size:16px; font-weight:600; padding:14px 20px; border-bottom:1px solid var(--divider); display:flex; align-items:center; gap:10px; }
.mud-dialog .mud-dialog-content { padding:20px; font-size:14px; }
.mud-dialog .mud-dialog-actions { padding:12px 20px; border-top:1px solid var(--divider); background:var(--surface-2); gap:8px; }
.mud-overlay-scrim { background:var(--scrim) !important; }
.mud-input-control { margin-top:0; }
.mud-input.mud-input-outlined .mud-input-outlined-border { border-color:var(--border-strong); border-radius:var(--r-sm); }
.mud-input.mud-input-outlined:hover .mud-input-outlined-border { border-color:var(--n-400); }
.mud-input-control-input-container .mud-input-label-outlined { font-size:13px; }
.mud-input-slot { font-size:14px; }
.mud-input-control.mud-input-control-margin-dense .mud-input-slot { padding-top:8px; padding-bottom:8px; }
.mud-select.mud-input-control-margin-dense .mud-input { height:var(--control-h); }
.pp-filter .mud-input-control { min-width:150px; }
.pp-filter .mud-input.mud-input-outlined { height:var(--control-h-sm); font-size:13px; }
.pp-filter .mud-input-slot { padding:4px 8px !important; font-size:13px; height:var(--control-h-sm); }
.pp-filter .mud-input-adornment { margin-top:0; }
.mud-table { border-radius:0; box-shadow:none; }
.mud-alert { border-radius:var(--r-sm); font-size:13px; }
.mud-alert.mud-alert-text-warning { background:var(--c-warning-soft); color:var(--c-warning-ink); }
.mud-alert.mud-alert-text-error { background:var(--c-error-soft); color:var(--c-error-ink); }
.mud-alert.mud-alert-text-info { background:var(--c-info-soft); color:var(--c-info-ink); }
.mud-alert.mud-alert-text-success { background:var(--c-success-soft); color:var(--c-success-ink); }
.mud-alert-message { padding:8px 0; }
.mud-tabs .mud-tab { text-transform:none; font-weight:600; font-size:13px; min-height:40px; padding:0 14px; letter-spacing:0; }
.mud-tabs .mud-tab-slider { background:var(--primary); height:2px; }
.mud-tabs .mud-tab.mud-tab-active { color:var(--link); }
.mud-breadcrumbs { padding:0; font-size:12px; }
.mud-breadcrumbs .mud-breadcrumb-item { color:var(--text-3); }
.mud-breadcrumbs .mud-breadcrumb-item a { color:var(--text-3); }
.mud-breadcrumbs .mud-breadcrumb-item a:hover { color:var(--link); }
.mud-breadcrumbs .mud-breadcrumb-separator { color:var(--n-400); padding:0 4px; }
.mud-menu-list .mud-list-item { font-size:13px; min-height:36px; }
.mud-popover { border-radius:var(--r-md); box-shadow:var(--sh-3); border:1px solid var(--border); }
.mud-snackbar { border-radius:var(--r-md); font-size:13px; }
.mud-progress-linear { border-radius:3px; }
.mud-switch-base { }
.mud-checkbox .mud-button-root { padding:4px; }
.mud-chip { font-weight:600; text-transform:none; }
.mud-tooltip { font-size:12px; border-radius:var(--r-xs); background:var(--bf-navy); }
.mud-navmenu .mud-nav-link { height:36px; min-height:36px; border-radius:var(--r-sm); margin:0 10px 2px; padding:0 10px 0 12px; font-size:13.5px; font-weight:500; color:var(--drawer-fg); }
.mud-navmenu .mud-nav-link .mud-nav-link-icon { color:var(--drawer-fg-muted); margin-right:10px; font-size:20px; width:20px; height:20px; }
.mud-navmenu .mud-nav-link:hover { background:var(--surface-3); }
.mud-navmenu .mud-nav-link.active { background:var(--drawer-active-bg); color:var(--drawer-active-fg); font-weight:600; }
.mud-navmenu .mud-nav-link.active .mud-nav-link-icon { color:var(--drawer-active-fg); }
.mud-navmenu .mud-nav-link .mud-nav-link-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mud-drawer-mini.mud-drawer--closed .mud-navmenu .mud-nav-link { justify-content:center; padding:0; margin:0 8px 2px; }
.mud-drawer-mini.mud-drawer--closed .mud-navmenu .mud-nav-link .mud-nav-link-icon { margin-right:0; }
.mud-drawer-mini.mud-drawer--closed .mud-navmenu .mud-nav-link .mud-nav-link-text, .mud-drawer-mini.mud-drawer--closed .pp-nav-header, .mud-drawer-mini.mud-drawer--closed .pp-nav-badge, .mud-drawer-mini.mud-drawer--closed .pp-nav-footer-text, .mud-drawer-mini.mud-drawer--closed .pp-ctx-text, .mud-drawer-mini.mud-drawer--closed .mud-nav-group .mud-nav-group-content, .mud-drawer-mini.mud-drawer--closed .mud-nav-group .mud-nav-link-expand-icon { display:none; }
.mud-drawer-mini.mud-drawer--closed .pp-nav-header-line { display:block; }
.mud-drawer-content { display:flex; flex-direction:column; height:100%; }

/* ── Shell: AppBar ───────────────────────────────────────────────────────── */
.pp-brand { display:flex; align-items:center; gap:8px; margin:0 8px 0 4px; color:#fff; white-space:nowrap; text-decoration:none; }
.pp-brand:hover { text-decoration:none; color:#fff; }
.pp-brand-mark { width:28px; height:28px; border-radius:7px; background:var(--bf-teal); display:inline-flex; align-items:center; justify-content:center; color:var(--bf-navy); }
.pp-brand-mark .mud-icon-root { font-size:18px; width:18px; height:18px; }
.pp-brand-name { font-size:17px; font-weight:800; letter-spacing:-.02em; }
.pp-brand-name span { color:var(--bf-teal); }
.pp-tenant-btn { display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 10px 0 8px; border-radius:var(--r-sm); border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#fff; cursor:pointer; font:inherit; font-size:13px; font-weight:600; white-space:nowrap; }
.pp-tenant-btn:hover { background:rgba(255,255,255,.12); }
.pp-tenant-code { width:22px; height:22px; border-radius:5px; background:var(--bf-teal); color:var(--bf-navy); display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; }
.pp-tenant-code--muted { background:var(--n-300); }
.pp-env { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:2px 5px; border-radius:3px; }
.pp-env--prod { background:rgba(16,185,129,.25); color:#6EE7B7; }
.pp-env--test, .pp-env--dev { background:rgba(245,158,11,.3); color:#FCD34D; }
.pp-search { flex:1; display:flex; justify-content:center; min-width:0; }
.pp-search-box { display:flex; align-items:center; gap:8px; width:min(440px,100%); height:36px; padding:0 10px; border-radius:var(--r-sm); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); color:var(--appbar-fg-muted); font-size:13px; }
.pp-search-box input { flex:1; background:transparent; border:none; outline:none; color:#fff; font:inherit; font-size:13px; min-width:0; }
.pp-search-box input::placeholder { color:var(--appbar-fg-muted); }
.pp-search-box kbd { font-family:inherit; font-size:10px; padding:1px 5px; border:1px solid rgba(255,255,255,.2); border-radius:3px; color:var(--appbar-fg-muted); }
.pp-search-results { position:absolute; top:44px; left:0; right:0; background:var(--surface); color:var(--text-1); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-3); padding:6px; z-index:60; max-height:420px; overflow:auto; }
.pp-search-item { display:flex; align-items:center; gap:10px; width:100%; padding:8px 10px; border:none; background:transparent; color:var(--text-1); font:inherit; font-size:13px; text-align:left; cursor:pointer; border-radius:var(--r-sm); }
.pp-search-item:hover { background:var(--surface-3); }
.pp-search-item .pp-code { min-width:100px; }
.pp-quick-add { display:inline-flex; align-items:center; gap:4px; height:32px; padding:0 10px 0 8px; margin-right:6px; border-radius:var(--r-sm); border:none; background:var(--bf-teal); color:var(--bf-navy); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.pp-quick-add:hover { background:var(--bf-teal-dark); }
.pp-appbar-btn { color:#fff !important; }
.pp-lang-btn { height:32px; padding:0 8px; border-radius:var(--r-sm); border:none; background:transparent; color:#fff; font:inherit; font-size:12px; font-weight:700; letter-spacing:.04em; cursor:pointer; display:inline-flex; align-items:center; gap:2px; }
.pp-lang-btn:hover { background:rgba(255,255,255,.1); }
.pp-avatar-btn { margin-left:6px; width:32px; height:32px; border-radius:16px; border:2px solid rgba(255,255,255,.2); background:var(--bf-navy-3); color:#fff; font-size:12px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.pp-user-menu-head { padding:8px 14px 10px; border-bottom:1px solid var(--divider); font-size:13px; }
.pp-user-menu-head .muted { font-size:12px; }

/* ── Shell: Drawer ───────────────────────────────────────────────────────── */
.pp-nav { display:flex; flex-direction:column; height:100%; color:var(--drawer-fg); }
.pp-nav-scroll { flex:1; overflow-y:auto; padding:8px 0; }
.pp-nav-header { font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); padding:14px 22px 4px; }
.pp-nav-header-line { display:none; height:1px; background:var(--divider); margin:8px 12px; }
.pp-nav-badge { font-size:11px; font-weight:700; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--surface-3); color:var(--text-2); display:inline-flex; align-items:center; justify-content:center; margin-left:auto; }
.pp-nav-badge--error { background:var(--c-error); color:#fff; }
.pp-nav-footer { padding:10px 14px; border-top:1px solid var(--divider); font-size:11px; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-ctx { padding:12px 12px 10px; border-bottom:1px solid var(--divider); background:var(--surface-2); }
.pp-ctx-label { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); display:flex; align-items:center; justify-content:space-between; }
.pp-ctx-row { display:flex; align-items:center; gap:8px; margin-top:6px; }
.pp-ctx-code { width:28px; height:28px; border-radius:6px; background:var(--bf-navy); color:#fff; font-size:10px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.pp-ctx-text { min-width:0; }
.pp-ctx-name { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-ctx-sub { font-size:11px; color:var(--text-3); font-family:var(--font-mono); }
.mud-drawer-mini.mud-drawer--closed .pp-ctx { padding:10px 8px; } .mud-drawer-mini.mud-drawer--closed .pp-ctx-label { display:none; } .mud-drawer-mini.mud-drawer--closed .pp-ctx-row { justify-content:center; margin-top:0; }
.mud-navmenu .mud-nav-group .mud-nav-link { }
.mud-navmenu .mud-nav-group > .mud-nav-link-button { height:36px; border-radius:var(--r-sm); margin:0 10px 2px; font-size:13.5px; font-weight:500; }
.mud-navmenu .mud-nav-group .mud-nav-group-content .mud-nav-link { padding-left:34px; }

/* ── Notification Panel ──────────────────────────────────────────────────── */
.pp-notif { width:380px; max-height:520px; display:flex; flex-direction:column; overflow:hidden; background:var(--surface); color:var(--text-1); }
.pp-notif-head { display:flex; align-items:center; padding:10px 8px 10px 16px; border-bottom:1px solid var(--divider); font-weight:600; font-size:14px; }
.pp-notif-head > span { flex:1; }
.pp-notif-body { overflow-y:auto; flex:1; }
.pp-notif-section { font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); padding:10px 16px 4px; display:flex; justify-content:space-between; }
.pp-notif-item { display:flex; gap:10px; width:100%; padding:8px 16px; border:none; border-left:3px solid transparent; background:transparent; text-align:left; font:inherit; cursor:pointer; color:var(--text-1); }
.pp-notif-item:hover { background:var(--surface-3); }
.pp-notif-item--unread { border-left-color:var(--primary); background:var(--surface-2); }
.pp-notif-item .pp-notif-title { display:block; font-size:13px; line-height:1.35; }
.pp-notif-item--unread .pp-notif-title { font-weight:600; }
.pp-notif-item .pp-notif-meta { display:block; font-size:11.5px; color:var(--text-3); margin-top:2px; }
.pp-notif-foot { display:flex; justify-content:space-between; padding:8px 12px; border-top:1px solid var(--divider); background:var(--surface-2); }
.pp-notif-empty { padding:28px 16px; text-align:center; color:var(--text-3); font-size:13px; }

/* ── Page Header ─────────────────────────────────────────────────────────── */
.pp-page-header { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.pp-page-header-row { display:flex; align-items:center; gap:12px; min-height:36px; }
.pp-page-title { margin:0; font-size:var(--fs-h3); font-weight:600; line-height:1.2; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-page-icon { color:var(--text-3); }
.pp-page-meta { display:flex; align-items:center; gap:6px; }
.pp-page-actions { margin-left:auto; display:flex; align-items:center; gap:8px; flex-shrink:0; }
.pp-page-subtitle { font-size:13px; color:var(--text-2); }

/* ── Cards ───────────────────────────────────────────────────────────────── */
.pp-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-1); display:flex; flex-direction:column; min-width:0; }
.pp-card-header { display:flex; align-items:center; gap:8px; min-height:44px; padding:0 12px 0 16px; border-bottom:1px solid var(--divider); }
.pp-card-header .mud-icon-root { color:var(--text-3); font-size:18px; width:18px; height:18px; }
.pp-card-title { margin:0; font-size:var(--fs-h4); font-weight:600; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-card-count { font-size:12px; color:var(--text-3); font-weight:500; }
.pp-card-actions { margin-left:auto; display:flex; gap:4px; align-items:center; }
.pp-card-body { padding:16px; min-width:0; flex:1; }
.pp-card--flush .pp-card-body { padding:0; }
.pp-card-body--compact { padding:12px; }

/* ── Stat Card ───────────────────────────────────────────────────────────── */
.pp-stat { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:16px 18px; display:flex; gap:14px; align-items:flex-start; box-shadow:var(--sh-1); min-width:0; }
.pp-stat--compact { padding:12px 14px; }
.pp-stat--clickable { cursor:pointer; } .pp-stat--clickable:hover { box-shadow:var(--sh-2); border-color:var(--primary); }
.pp-stat-icon { width:36px; height:36px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pp-stat-icon .mud-icon-root { font-size:20px; width:20px; height:20px; }
.pp-stat-icon--primary { background:var(--primary-soft); color:var(--link); }
.pp-stat-icon--success { background:var(--c-success-soft); color:var(--c-success-ink); }
.pp-stat-icon--warning { background:var(--c-warning-soft); color:var(--c-warning-ink); }
.pp-stat-icon--error { background:var(--c-error-soft); color:var(--c-error-ink); }
.pp-stat-icon--info { background:var(--c-info-soft); color:var(--c-info-ink); }
.pp-stat-icon--neutral { background:var(--c-neutral-soft); color:var(--c-neutral-ink); }
.pp-stat-body { min-width:0; flex:1; }
.pp-stat-label { font-size:12px; color:var(--text-2); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-stat-value-row { display:flex; align-items:baseline; gap:6px; margin-top:2px; }
.pp-stat-value { font-size:var(--fs-kpi); font-weight:700; letter-spacing:-.02em; line-height:1.1; color:var(--text-1); }
.pp-stat--compact .pp-stat-value { font-size:22px; }
.pp-stat-unit { font-size:13px; color:var(--text-3); font-weight:500; }
.pp-stat-foot { font-size:12px; margin-top:4px; display:flex; gap:8px; }
.pp-stat-delta { font-weight:600; }
.pp-stat-delta--up { color:var(--c-success-ink); } .pp-stat-delta--down { color:var(--c-error-ink); } .pp-stat-delta--neutral { color:var(--text-3); }
.pp-stat-hint { color:var(--text-3); }

/* ── Chips ───────────────────────────────────────────────────────────────── */
.pp-chip { display:inline-flex; align-items:center; gap:4px; height:var(--chip-h-sm); padding:0 7px; border-radius:var(--r-xs); font-size:11px; font-weight:600; line-height:1; white-space:nowrap; border:1px solid transparent; }
.pp-chip--md { height:var(--chip-h); padding:0 10px; font-size:12px; }
.pp-chip .mud-icon-root { font-size:13px; width:13px; height:13px; }
.pp-chip--md .mud-icon-root { font-size:15px; width:15px; height:15px; }
.pp-chip--neutral { background:var(--c-neutral-soft); color:var(--c-neutral-ink); }
.pp-chip--info { background:var(--c-info-soft); color:var(--c-info-ink); }
.pp-chip--success { background:var(--c-success-soft); color:var(--c-success-ink); }
.pp-chip--warning { background:var(--c-warning-soft); color:var(--c-warning-ink); }
.pp-chip--error { background:var(--c-error-soft); color:var(--c-error-ink); }
.pp-chip--primary { background:var(--primary-soft); color:var(--link); }
.pp-chip--forwarded { background:var(--c-forwarded-soft); color:var(--c-forwarded-ink); }
.pp-chip--outlined { background:transparent; border-color:currentColor; }
.pp-chip--clickable { cursor:pointer; }

/* ── Health / Härtegrad / Progress / Avatare ─────────────────────────────── */
.pp-health { display:inline-flex; align-items:center; gap:4px; }
.pp-health .mud-icon-root { font-size:18px; width:18px; height:18px; }
.pp-health--sm .mud-icon-root { font-size:15px; width:15px; height:15px; }
.pp-health-flag .mud-icon-root { font-size:15px; width:15px; height:15px; }
.pp-health-green { color:var(--c-success); } .pp-health-yellow { color:var(--c-warning); } .pp-health-red { color:var(--c-error); } .pp-health-unknown { color:var(--n-400); }
.pp-health-label { font-size:13px; font-weight:500; color:var(--text-1); }
.pp-hg { width:18px; height:18px; border-radius:4px; color:#fff; font-size:11px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.pp-hg--lg { width:56px; height:56px; border-radius:var(--r-md); font-size:28px; font-weight:800; }
.pp-hg-1 { background:var(--hg-1); } .pp-hg-2 { background:var(--hg-2); } .pp-hg-3 { background:var(--hg-3); } .pp-hg-4 { background:var(--hg-4); } .pp-hg-5 { background:var(--hg-5); }
.pp-hg-ramp { display:flex; gap:3px; margin-top:12px; } .pp-hg-ramp span { flex:1; height:6px; border-radius:3px; background:var(--surface-3); }
.pp-progress { display:inline-flex; align-items:center; gap:8px; width:100%; }
.pp-progress-track { flex:1; height:6px; background:var(--surface-3); border-radius:3px; overflow:hidden; min-width:40px; }
.pp-progress-bar { height:100%; border-radius:3px; }
.pp-progress-bar--success { background:var(--c-success); } .pp-progress-bar--info { background:var(--c-info); } .pp-progress-bar--primary { background:var(--primary); } .pp-progress-bar--neutral { background:var(--n-400); } .pp-progress-bar--warning { background:var(--c-warning); } .pp-progress-bar--error { background:var(--c-error); }
.pp-progress-value { font-size:12px; font-weight:600; min-width:38px; text-align:right; }
.pp-avatars { display:inline-flex; align-items:center; padding-left:4px; }
.pp-avatar { width:22px; height:22px; border-radius:11px; background:var(--bf-navy-3); color:#fff; font-size:9.5px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; margin-left:-4px; border:2px solid var(--surface); flex-shrink:0; }
.pp-avatar--md { width:26px; height:26px; font-size:10px; margin-left:0; }
.pp-avatar--lg { width:72px; height:72px; border-radius:36px; font-size:24px; background:var(--bf-navy); margin-left:0; border:none; }
.pp-avatar--muted { background:var(--n-300); }
.pp-avatars-more { font-size:11px; color:var(--text-3); margin-left:4px; }

/* ── Filter Toolbar ──────────────────────────────────────────────────────── */
.pp-filter { display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--divider); background:var(--surface); flex-wrap:wrap; }
.pp-filter > .mud-icon-root { color:var(--text-3); font-size:18px; width:18px; height:18px; }
.pp-filter-right { margin-left:auto; display:flex; align-items:center; gap:8px; }
.pp-filter-count { font-size:12px; color:var(--text-3); }
.pp-search-field { display:inline-flex; align-items:center; gap:6px; height:var(--control-h-sm); padding:0 8px; border:1px solid var(--border-strong); border-radius:var(--r-sm); background:var(--surface); font-size:13px; color:var(--text-2); }
.pp-search-field input { border:none; outline:none; background:transparent; font:inherit; font-size:13px; color:var(--text-1); width:160px; }
.pp-search-field:focus-within { border-color:var(--primary); box-shadow:var(--focus-ring); }
.pp-search-field .mud-icon-root { font-size:16px; width:16px; height:16px; color:var(--text-3); }
.pp-select { height:var(--control-h-sm); padding:0 26px 0 8px; border:1px solid var(--border-strong); border-radius:var(--r-sm); background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%2375829A'><path d='M7 10l5 5 5-5z'/></svg>") no-repeat right 4px center; font:inherit; font-size:13px; color:var(--text-1); appearance:none; cursor:pointer; max-width:260px; }
.pp-select:focus { outline:none; border-color:var(--primary); box-shadow:var(--focus-ring); }
.pp-select--md { height:var(--control-h); font-size:14px; }
.pp-select--cell { border-color:transparent; background-color:transparent; height:26px; font-size:12.5px; padding-left:4px; }
.pp-select--cell:hover { border-color:var(--border); }
.pp-input { height:var(--control-h-sm); padding:0 8px; border:1px solid var(--border-strong); border-radius:var(--r-sm); background:var(--surface); font:inherit; font-size:13px; color:var(--text-1); }
.pp-input:focus { outline:none; border-color:var(--primary); box-shadow:var(--focus-ring); }
.pp-input--md { height:var(--control-h); font-size:14px; }
.pp-input--cell { border-color:transparent; background:transparent; height:26px; font-size:12.5px; padding:0 6px; }
.pp-input--cell:hover { border-color:var(--border); }
.pp-input--right { text-align:right; }
.pp-segment { display:inline-flex; border:1px solid var(--border); border-radius:var(--r-sm); overflow:hidden; }
.pp-segment button { height:26px; padding:0 10px; border:none; background:transparent; color:var(--text-2); font:inherit; font-size:12px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; }
.pp-segment button.active { background:var(--primary-soft); color:var(--link); }
.pp-segment button .mud-icon-root { font-size:15px; width:15px; height:15px; }
.pp-quick-filter { height:26px; padding:0 10px; border-radius:13px; border:1px solid var(--border); background:transparent; color:var(--text-2); font:inherit; font-size:12px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.pp-quick-filter.active { border-color:var(--primary); background:var(--primary-soft); color:var(--link); }
.pp-quick-filter .pp-count { opacity:.7; }
.pp-vdivider { width:1px; height:18px; background:var(--border); margin:0 4px; }

/* ── Data Table ──────────────────────────────────────────────────────────── */
.pp-table-wrap { overflow:auto; min-width:0; }
.pp-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
.pp-table th { position:sticky; top:0; background:var(--table-header-bg); font-size:11.5px; font-weight:600; color:var(--text-2); text-transform:uppercase; letter-spacing:.04em; padding:0 12px; height:36px; border-bottom:1px solid var(--border); white-space:nowrap; z-index:1; text-align:left; }
.pp-table th.sortable { cursor:pointer; user-select:none; }
.pp-table th.sortable .mud-icon-root { font-size:14px; width:14px; height:14px; vertical-align:middle; color:var(--n-400); }
.pp-table th.sortable.sorted .mud-icon-root { color:var(--link); }
.pp-table td { padding:0 12px; height:var(--row-h-dense); border-bottom:1px solid var(--divider); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:360px; }
.pp-table td.wrap { white-space:normal; }
.pp-table tbody tr:hover td { background:var(--table-row-hover); }
.pp-table tbody tr.clickable { cursor:pointer; }
.pp-table tbody tr.selected td { background:var(--table-row-selected); }
.pp-table tbody tr.dirty td { background:var(--c-warning-soft); }
.pp-table tbody tr.group td { background:var(--surface-2); font-weight:600; }
.pp-table tbody tr.total td { background:var(--bf-navy); color:#fff; font-weight:700; border-bottom:none; }
.pp-table th.r, .pp-table td.r { text-align:right; font-variant-numeric:tabular-nums; }
.pp-table th.c, .pp-table td.c { text-align:center; }
.pp-table td.muted { color:var(--text-2); }
.pp-table tfoot td { height:var(--row-h-dense); font-weight:600; border-top:1px solid var(--border); background:var(--surface-2); position:sticky; bottom:0; }
.pp-table td.actions { text-align:right; width:1%; }
.pp-table td.actions .mud-icon-button { visibility:hidden; }
.pp-table tr:hover td.actions .mud-icon-button, .pp-table td.actions .mud-icon-button:focus { visibility:visible; }
.pp-table--comfortable td { height:var(--row-h); }
.pp-table--cells td { padding:4px 8px; }
.pp-table-empty { padding:32px; text-align:center; color:var(--text-3); font-size:13px; }
.pp-table .pp-indent-1 { padding-left:34px; } .pp-table .pp-indent-2 { padding-left:56px; }
.pp-drag { color:var(--n-400); cursor:grab; }
.pp-dirty-dot { width:6px; height:6px; border-radius:3px; background:var(--c-warning); display:inline-block; margin-left:4px; }

/* ── Empty state / Skeleton ──────────────────────────────────────────────── */
.pp-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 16px; color:var(--text-3); gap:6px; }
.pp-empty .mud-icon-root { font-size:36px; width:36px; height:36px; color:var(--n-300); }
.pp-empty-title { font-size:14px; font-weight:600; color:var(--text-2); }
.pp-empty-hint { font-size:12px; }
.pp-empty--compact { padding:16px 8px; } .pp-empty--compact .mud-icon-root { font-size:22px; width:22px; height:22px; } .pp-empty--compact .pp-empty-title { font-size:12px; font-weight:500; }
.pp-loading { display:flex; align-items:center; justify-content:center; padding:40px; color:var(--text-3); gap:10px; font-size:13px; }
.pp-skel { background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 37%,var(--surface-3) 63%); background-size:400% 100%; animation:pp-shimmer 1.4s ease infinite; border-radius:4px; height:12px; }
@keyframes pp-shimmer { 0% { background-position:100% 50%; } 100% { background-position:0 50%; } }

/* ── Gantt ───────────────────────────────────────────────────────────────── */
.pp-gantt { display:flex; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; background:var(--surface); font-size:13px; }
.pp-gantt-labels { flex-shrink:0; border-right:1px solid var(--border); background:var(--surface); z-index:2; box-shadow:2px 0 4px rgba(17,27,48,.04); }
.pp-gantt-labels-head { border-bottom:1px solid var(--border); background:var(--table-header-bg); display:flex; align-items:flex-end; padding:0 12px 6px; font-size:11.5px; font-weight:600; color:var(--text-2); text-transform:uppercase; letter-spacing:.04em; }
.pp-gantt-label { height:var(--gantt-row-h); display:flex; align-items:center; gap:4px; padding:0 8px; border-bottom:1px solid var(--divider); cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-gantt-label:hover { background:var(--table-row-hover); }
.pp-gantt-label--phase { font-weight:600; }
.pp-gantt-label--milestone { color:var(--text-2); }
.pp-gantt-label .mud-icon-root { font-size:14px; width:14px; height:14px; flex-shrink:0; }
.pp-gantt-label .pp-gantt-toggle { display:inline-flex; width:16px; cursor:pointer; }
.pp-gantt-label .pp-gantt-toggle .mud-icon-root { font-size:16px; width:16px; height:16px; color:var(--text-3); }
.pp-gantt-label span.name { overflow:hidden; text-overflow:ellipsis; }
.pp-gantt-scroll { flex:1; overflow-x:auto; overflow-y:hidden; position:relative; }
.pp-gantt-canvas { position:relative; }
.pp-gantt-head { position:relative; background:var(--table-header-bg); border-bottom:1px solid var(--border); }
.pp-gantt-cell { position:absolute; top:0; height:22px; font-size:11px; color:var(--text-2); border-right:1px solid var(--divider); border-bottom:1px solid var(--divider); display:flex; align-items:center; padding-left:6px; white-space:nowrap; overflow:hidden; font-weight:600; }
.pp-gantt-cell--week { top:22px; font-weight:500; color:var(--text-3); }
.pp-gantt-cell--day { top:44px; height:16px; padding-left:0; justify-content:center; font-weight:500; color:var(--text-3); border-bottom:none; }
.pp-gantt-cell--weekend { color:var(--n-400); }
.pp-gantt-weekend { position:absolute; background:var(--gantt-weekend); }
.pp-gantt-monthline { position:absolute; width:1px; background:var(--divider); }
.pp-gantt-today { position:absolute; z-index:1; background:var(--c-warning); }
.pp-gantt-today--day { background:var(--gantt-today); }
.pp-gantt-row { position:absolute; left:0; right:0; height:var(--gantt-row-h); border-bottom:1px solid var(--divider); }
.pp-gantt-bar { position:absolute; top:6px; height:var(--gantt-bar-h); background:var(--gantt-bar); border-radius:4px; overflow:hidden; z-index:2; cursor:pointer; }
.pp-gantt-bar--phase { top:10px; height:8px; background:var(--gantt-phase); border-radius:2px; opacity:.85; }
.pp-gantt-bar-progress { position:absolute; inset:0; background:var(--gantt-bar-progress); }
.pp-gantt-bar-label { position:absolute; left:6px; top:0; line-height:var(--gantt-bar-h); font-size:10.5px; font-weight:600; color:#fff; }
.pp-gantt-milestone { position:absolute; top:7px; width:14px; height:14px; background:var(--gantt-milestone); transform:rotate(45deg); border-radius:2px; z-index:2; cursor:pointer; }
.pp-gantt-milestone--done { background:var(--c-success); }
.pp-gantt-empty { padding:24px; color:var(--text-3); text-align:center; font-size:13px; }

/* ── Kanban ──────────────────────────────────────────────────────────────── */
.pp-kanban { display:flex; flex-direction:column; min-height:0; }
.pp-kanban-lane { margin-bottom:12px; }
.pp-kanban-lane-head { display:flex; align-items:center; gap:6px; padding:4px 0 8px; cursor:pointer; font-size:13px; font-weight:600; }
.pp-kanban-lane-head .mud-icon-root { font-size:16px; width:16px; height:16px; color:var(--text-3); }
.pp-kanban-lane-head .pp-count { font-size:11px; font-weight:600; padding:1px 6px; border-radius:9px; background:var(--surface-3); color:var(--text-3); }
.pp-kanban-cols { display:grid; grid-template-columns:repeat(6, minmax(190px,1fr)); gap:10px; }
.pp-kanban-cols--7 { grid-template-columns:repeat(7, minmax(180px,1fr)); }
.pp-kanban-col { background:var(--surface-2); border:1px dashed transparent; border-radius:var(--r-md); padding:8px; min-height:96px; display:flex; flex-direction:column; gap:8px; transition:background var(--dur-fast); }
.pp-kanban-col.mud-drop-zone-can-drop, .pp-kanban-col.pp-over { background:var(--primary-soft); border-color:var(--primary); }
.pp-kanban-col-head { display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:0 2px; }
.pp-kanban-col-head .dot { width:8px; height:8px; border-radius:4px; }
.pp-kanban-col-head .title { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-kanban-col-head .cnt { color:var(--text-3); font-weight:600; }
.pp-kanban-col-head--neutral { color:var(--c-neutral-ink); } .pp-kanban-col-head--info { color:var(--c-info-ink); } .pp-kanban-col-head--forwarded { color:var(--c-forwarded-ink); } .pp-kanban-col-head--success { color:var(--c-success-ink); } .pp-kanban-col-head--warning { color:var(--c-warning-ink); } .pp-kanban-col-head--error { color:var(--c-error-ink); }
.dot--neutral { background:var(--n-400); } .dot--info { background:var(--c-info); } .dot--forwarded { background:var(--c-forwarded); } .dot--success { background:var(--c-success); } .dot--warning { background:var(--c-warning); } .dot--error { background:var(--c-error); } .dot--primary { background:var(--primary); }
.pp-kcard { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--n-300); border-radius:var(--r-sm); padding:8px 10px; box-shadow:var(--sh-1); cursor:grab; display:flex; flex-direction:column; gap:6px; font-size:13px; transition:box-shadow var(--dur-fast); }
.pp-kcard:hover { box-shadow:var(--sh-2); }
.pp-kcard--p1 { border-left-color:var(--c-error); } .pp-kcard--p2 { border-left-color:var(--c-warning); } .pp-kcard--p3 { border-left-color:var(--c-info); } .pp-kcard--forwarded { border-left-color:var(--c-forwarded); }
.pp-kcard--selected { border-color:var(--primary); }
.pp-kcard-top { display:flex; align-items:center; gap:6px; }
.pp-kcard-icons { margin-left:auto; display:inline-flex; gap:4px; color:var(--text-3); font-size:11px; align-items:center; }
.pp-kcard-icons .mud-icon-root { font-size:14px; width:14px; height:14px; }
.pp-kcard-title { font-weight:500; line-height:1.35; }
.pp-kcard-sub { display:flex; align-items:center; gap:6px; }
.pp-kcard-sub .track { flex:1; height:4px; background:var(--surface-3); border-radius:2px; overflow:hidden; } .pp-kcard-sub .track span { display:block; height:100%; background:var(--primary); }
.pp-kcard-foot { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pp-kcard-foot .right { margin-left:auto; display:inline-flex; align-items:center; gap:6px; }
.pp-kcard-due { font-size:11px; color:var(--text-3); display:inline-flex; align-items:center; gap:2px; }
.pp-kcard-due .mud-icon-root { font-size:13px; width:13px; height:13px; }
.pp-kcard-due--overdue { color:var(--c-error-ink); font-weight:600; } .pp-kcard-due--today { color:var(--c-warning-ink); font-weight:600; }
.pp-kanban-quickadd { display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid var(--divider); background:var(--surface-2); }
.pp-kanban-quickadd > .mud-icon-root { color:var(--text-3); }
.pp-kanban-quickadd .pp-input { flex:1; }
.mud-drop-item-dragging { opacity:.4; }

/* ── Dashboard / Charts ──────────────────────────────────────────────────── */
.pp-legend { display:flex; flex-direction:column; gap:5px; font-size:12px; }
.pp-legend span.row { display:flex; align-items:center; gap:6px; }
.pp-legend .sw { width:8px; height:8px; border-radius:2px; }
.pp-legend .lbl { color:var(--text-2); flex:1; }
.pp-bars { display:flex; flex-direction:column; gap:8px; }
.pp-bars .row { display:grid; grid-template-columns:110px 1fr 70px; gap:8px; align-items:center; font-size:12px; }
.pp-bars .lbl { color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-bars .track { height:8px; background:var(--surface-3); border-radius:4px; overflow:hidden; } .pp-bars .track span { display:block; height:100%; }
.pp-bars .val { text-align:right; font-weight:600; }
.pp-hgbars { display:flex; align-items:flex-end; gap:10px; height:96px; padding:0 4px; }
.pp-hgbars .col { flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; height:100%; justify-content:flex-end; }
.pp-hgbars .bar { width:100%; border-radius:3px; }
.pp-hgbars .lbl { font-size:11px; color:var(--text-3); }
.pp-list-row { display:grid; grid-template-columns:110px 1fr auto auto; gap:12px; align-items:center; padding:10px 16px; border-bottom:1px solid var(--divider); font-size:13px; cursor:pointer; }
.pp-list-row:hover { background:var(--table-row-hover); }
.pp-tp-chip { display:inline-flex; align-items:center; gap:4px; font-size:12px; padding:3px 8px 3px 5px; border:1px solid var(--border); border-radius:var(--r-xs); }
.pp-timeline { display:grid; grid-template-columns:10px 1fr; gap:10px; margin-bottom:12px; font-size:12px; }
.pp-timeline .dot { width:10px; height:10px; border-radius:5px; background:var(--n-300); margin-top:4px; }
.pp-timeline .dot--current { background:var(--primary); }
.pp-timeline .dot--success { background:var(--c-success); }
.pp-report-card { display:flex; gap:12px; align-items:flex-start; text-align:left; padding:14px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-1); cursor:pointer; font:inherit; color:var(--text-1); min-width:0; width:100%; }
.pp-report-card:hover { border-color:var(--primary); box-shadow:var(--sh-2); text-decoration:none; color:var(--text-1); }
.pp-report-card .ic { width:36px; height:36px; border-radius:var(--r-md); background:var(--primary-soft); color:var(--link); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pp-report-card .t { display:block; font-weight:600; font-size:14px; }
.pp-report-card .d { display:block; font-size:12px; color:var(--text-2); margin-top:2px; line-height:1.4; }
.pp-report-card .arrow { color:var(--n-400); margin-left:auto; } .pp-report-card:hover .arrow { color:var(--link); }
.pp-featured { background:var(--bf-navy); color:#fff; border-radius:var(--r-md); padding:18px; display:flex; flex-direction:column; gap:8px; cursor:pointer; position:relative; overflow:hidden; }
.pp-featured::after { content:""; position:absolute; right:-30px; top:-30px; width:140px; height:140px; border-radius:70px; background:rgba(50,200,197,.18); }
.pp-featured .eyebrow { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--bf-teal); }
.pp-featured .title { font-size:18px; font-weight:700; }
.pp-featured .desc { font-size:12px; color:#C9D1DC; line-height:1.45; }
.pp-cat-head { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.pp-cat-head::after { content:""; flex:1; height:1px; background:var(--divider); }
.pp-flow { display:flex; align-items:stretch; }
.pp-flow button { flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; padding:12px 8px; border:none; border-right:1px solid var(--divider); border-bottom:3px solid transparent; background:transparent; font:inherit; cursor:pointer; color:var(--text-1); }
.pp-flow button:last-child { border-right:none; }
.pp-flow button.active { border-bottom-color:var(--primary); background:var(--primary-soft); }
.pp-flow button .n { font-size:22px; font-weight:700; }
.pp-stepper { display:flex; align-items:center; margin-bottom:20px; }
.pp-stepper .step { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:72px; }
.pp-stepper .step .circle { width:26px; height:26px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:var(--surface-3); color:var(--text-3); font-size:12px; font-weight:700; }
.pp-stepper .step .circle .mud-icon-root { font-size:16px; width:16px; height:16px; }
.pp-stepper .step.done .circle { background:var(--c-success); color:#fff; }
.pp-stepper .step.current .circle { background:var(--primary); color:var(--primary-contrast); }
.pp-stepper .step .lbl { font-size:11px; color:var(--text-3); }
.pp-stepper .step.current .lbl { color:var(--text-1); font-weight:600; }
.pp-stepper .line { flex:1; height:2px; background:var(--surface-3); margin-bottom:18px; }
.pp-stepper .line.done { background:var(--c-success); }
.pp-inbox-item { display:flex; gap:10px; width:100%; text-align:left; padding:12px 14px; border:none; border-bottom:1px solid var(--divider); border-left:3px solid transparent; background:transparent; font:inherit; cursor:pointer; color:var(--text-1); }
.pp-inbox-item:hover { background:var(--table-row-hover); }
.pp-inbox-item.active { border-left-color:var(--primary); background:var(--table-row-selected); }
.pp-inbox-item > .mud-icon-root { color:var(--text-3); margin-top:2px; font-size:20px; width:20px; height:20px; flex-shrink:0; }
.pp-inbox-body { min-width:0; flex:1; }
.pp-inbox-meta { display:flex; gap:6px; align-items:center; font-size:11px; color:var(--text-3); }
.pp-inbox-title { display:block; font-weight:600; font-size:13px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-inbox-sub { display:flex; gap:6px; align-items:center; font-size:12px; color:var(--text-2); margin-top:3px; }
.pp-tile { padding:12px; background:var(--surface-2); border-radius:var(--r-sm); }
.pp-tile .k { font-size:11px; color:var(--text-3); } .pp-tile .v { font-weight:700; font-size:16px; }
.pp-matrix { display:grid; grid-template-columns:18px repeat(5,1fr); gap:3px; font-size:10px; }
.pp-matrix .ylabel { writing-mode:vertical-rl; transform:rotate(180deg); text-align:center; color:var(--text-3); font-size:9px; }
.pp-matrix button { height:46px; border:2px solid transparent; border-radius:4px; font:inherit; font-weight:700; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; }
.pp-matrix button.empty { opacity:.55; }
.pp-matrix button.sel { border-color:var(--text-1); }
.pp-matrix button small { font-size:9px; font-weight:500; opacity:.85; }
.pp-matrix .xlabel { text-align:center; color:var(--text-3); font-size:9px; padding-top:2px; }
.pp-dropzone { border:2px dashed var(--border-strong); border-radius:var(--r-md); padding:24px; text-align:center; color:var(--text-2); background:var(--surface-2); cursor:pointer; }
.pp-dropzone .mud-icon-root { font-size:32px; width:32px; height:32px; color:var(--n-400); }
.pp-dropzone--error { border-color:var(--c-error); }
.pp-dropzone .t { font-weight:600; margin-top:6px; } .pp-dropzone .d { font-size:12px; color:var(--text-3); }
.pp-log { font-family:var(--font-mono); font-size:12px; background:var(--bf-navy-deep); color:#C9D1DC; padding:8px 0; max-height:560px; overflow:auto; }
.pp-log .line { display:grid; grid-template-columns:110px 40px 300px 1fr; gap:12px; padding:3px 14px; border-left:3px solid transparent; }
.pp-log .line--err { background:rgba(239,68,68,.12); border-left-color:var(--c-error); } .pp-log .line--wrn { border-left-color:var(--c-warning); }
.pp-log .ts { color:#75829A; } .pp-log .src { color:#A3AEBF; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .pp-log .msg { color:#F5F7FA; white-space:pre-wrap; }
.pp-log .lvl--ERR { color:#FCA5A5; } .pp-log .lvl--WRN { color:#FCD34D; } .pp-log .lvl--INF { color:#67E8F9; } .pp-log .lvl--DBG { color:#75829A; }
.pp-module-tile { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--border); border-radius:var(--r-md); }
.pp-module-tile .t { font-weight:600; font-size:13px; } .pp-module-tile .k { font-size:11px; color:var(--text-3); font-family:var(--font-mono); }
.pp-hist { display:flex; gap:10px; font-size:12px; margin-bottom:8px; } .pp-hist .dot { width:8px; height:8px; border-radius:4px; background:var(--n-300); margin-top:5px; flex-shrink:0; } .pp-hist .dot--ok { background:var(--c-success); }
.pp-health-btn { flex:1; height:30px; border-radius:var(--r-sm); border:1px solid var(--border); background:transparent; font:inherit; font-size:12px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:4px; color:var(--text-1); }
.pp-health-btn.active--green { border-color:var(--c-success); background:var(--c-success-soft); }
.pp-health-btn.active--yellow { border-color:var(--c-warning); background:var(--c-warning-soft); }
.pp-health-btn.active--red { border-color:var(--c-error); background:var(--c-error-soft); }
.pp-week-cell { padding:4px; border-bottom:1px solid var(--divider); border-right:1px solid var(--divider); font-size:12.5px; text-align:center; height:44px; cursor:pointer; }
.pp-week-cell.today { background:var(--gantt-today); }
.pp-week-cell.sel { background:var(--primary-soft); outline:2px solid var(--primary); outline-offset:-2px; }
.pp-week-cell .plan { font-size:11px; color:var(--text-3); } .pp-week-cell .ist { font-weight:700; }
ul.pp-bullets { margin:0; padding-left:18px; font-size:13px; line-height:1.6; }

/* ── Login ───────────────────────────────────────────────────────────────── */
.pp-login { display:flex; min-height:100vh; background:radial-gradient(circle at 20% 30%, rgba(50,200,197,.22), transparent 45%), linear-gradient(135deg,#111B30 0%,#0C1220 60%,#0f172a 100%); font-family:var(--font-sans); }
.pp-login-left { flex:1; display:none; flex-direction:column; justify-content:center; padding:64px 72px; color:#fff; min-width:0; }
@media (min-width:992px) { .pp-login-left { display:flex; } }
.pp-login-brand { display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.pp-login-brand .mark { width:56px; height:56px; border-radius:14px; background:var(--bf-teal); display:inline-flex; align-items:center; justify-content:center; box-shadow:0 12px 30px rgba(50,200,197,.35); color:var(--bf-navy); }
.pp-login-brand .mark .mud-icon-root { font-size:32px; width:32px; height:32px; }
.pp-login-brand .name { font-size:40px; font-weight:800; letter-spacing:-.025em; } .pp-login-brand .name span { color:var(--bf-teal); }
.pp-login-claim { font-size:22px; font-weight:500; color:#C9D1DC; margin-bottom:36px; letter-spacing:-.01em; }
.pp-login-feature { display:flex; gap:14px; align-items:flex-start; margin-bottom:16px; }
.pp-login-feature .ic { width:36px; height:36px; border-radius:9px; background:rgba(50,200,197,.14); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--bf-teal); }
.pp-login-feature .t { font-weight:600; font-size:15px; } .pp-login-feature .d { font-size:13px; color:#A3AEBF; }
.pp-login-right { width:100%; max-width:480px; margin:0 auto; display:flex; align-items:center; justify-content:center; padding:32px; flex-shrink:0; }
@media (min-width:992px) { .pp-login-right { margin:0; width:480px; } }
.pp-login-card { width:420px; max-width:100%; background:#fff; border-radius:var(--r-xl); box-shadow:var(--sh-4); overflow:hidden; color:var(--n-900); }
.pp-login-card-head { padding:28px 32px 20px; background:linear-gradient(135deg,var(--bf-teal) 0%,var(--bf-teal-dark) 100%); color:var(--bf-navy); }
.pp-login-card-head .t { font-size:22px; font-weight:700; letter-spacing:-.01em; } .pp-login-card-head .d { font-size:13px; opacity:.8; margin-top:2px; }
.pp-login-card-body { padding:28px; display:flex; flex-direction:column; gap:16px; }
.pp-login-card-foot { padding:10px 28px; border-top:1px solid var(--n-100); font-size:11px; color:var(--n-500); display:flex; justify-content:space-between; }
.pp-login-demo { font-size:12px; color:var(--n-600); background:var(--n-50); border:1px solid var(--n-200); border-radius:var(--r-sm); padding:8px 10px; }
.pp-login-demo b { color:var(--n-900); }
.pp-login-demo button { border:none; background:transparent; color:var(--link); font:inherit; font-size:12px; cursor:pointer; padding:0 4px; text-decoration:underline; }

/* ── Error page ──────────────────────────────────────────────────────────── */
.pp-errorpage { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:60vh; text-align:center; gap:12px; }
.pp-errorpage .code { font-size:64px; font-weight:800; color:var(--n-300); letter-spacing:-.04em; line-height:1; }

/* Scrollbar */
::-webkit-scrollbar { width:8px; height:8px; } ::-webkit-scrollbar-track { background:transparent; } ::-webkit-scrollbar-thumb { background:rgba(117,130,154,.35); border-radius:4px; } ::-webkit-scrollbar-thumb:hover { background:rgba(117,130,154,.55); }

/* ── Sunburst „Applikationslandschaft“ (Design-System components/data/Sunburst) ── */
:root { --status-implemented:.95; --status-inprogress:.60; --status-planned:.30; --status-dimmed:.25; --status-unrelated:.15; --hover-lift:.15; --gap:var(--surface); --tooltip-bg:var(--bf-navy); --tooltip-text:#FFFFFF; --tooltip-link:#7ECFCD; }
[data-theme="dark"] { --status-planned:.35; --tooltip-bg:var(--bf-navy-2); --tooltip-text:#F5F7FA; }
@media (prefers-reduced-motion:reduce) { :root { --dur:0ms; --dur-fast:0ms; } }
.pp-sb { position:relative; user-select:none; font-family:var(--font-sans); }
.pp-sb svg { display:block; overflow:visible; touch-action:none; }
.pp-sb svg.is-zoomed { cursor:grab; } .pp-sb svg.is-dragging { cursor:grabbing; }
.pp-sb [data-zoom] { transition:transform var(--dur) var(--ease); }
.pp-sb svg.is-dragging [data-zoom] { transition:none; }
.pp-sb path.seg { opacity:var(--o,.95); cursor:pointer; outline:none; stroke:none; stroke-width:.5; transition:opacity var(--dur-fast) var(--ease); }
.pp-sb path.seg:hover { opacity:min(1, calc(var(--o,.95) + var(--hover-lift))); stroke:var(--gap); }
.pp-sb path.seg:focus-visible { stroke:var(--primary); stroke-width:1.8; stroke-opacity:.45; opacity:min(1, calc(var(--o,.95) + var(--hover-lift))); }
.pp-sb--print path.seg { cursor:default; }
.pp-sb--print path.seg:hover { opacity:var(--o,.95); stroke:none; }
.pp-sb text { font-family:var(--font-sans); }
.pp-sb-dlabel, .pp-sb-leader { transition:opacity var(--dur) var(--ease); }
.pp-sb-leader { cursor:pointer; }
.pp-sb-leader:hover path { stroke:var(--text-2); } .pp-sb-leader:hover text { fill:var(--text-1); font-weight:600; }
.pp-sb-center--action { cursor:pointer; }
.pp-sb-tip { position:absolute; transform:translate(-50%, calc(-100% - 10px)); background:var(--tooltip-bg); color:var(--tooltip-text); border-radius:var(--r-md); padding:8px 10px; font-size:12px; line-height:1.4; box-shadow:var(--sh-3); white-space:nowrap; pointer-events:none; z-index:10; }
.pp-sb-tip-link { color:var(--tooltip-link); margin-top:2px; }
.pp-sb-ctl { display:flex; justify-content:center; align-items:center; gap:2px; margin-top:6px; }
.pp-sb-ctl button { width:22px; height:22px; border-radius:var(--r-sm); border:1px solid var(--border); background:var(--surface); color:var(--text-2); font:inherit; font-size:13px; cursor:pointer; display:grid; place-items:center; padding:0; }
.pp-sb-ctl button:hover { background:var(--surface-3); }
.pp-sb-ctl span { font-size:11px; color:var(--text-3); margin-left:6px; min-width:34px; }
.pp-sb--loading { display:grid; place-items:center; }
.pp-sb-skel { border-radius:50%; border-style:solid; border-color:var(--surface-3); box-sizing:border-box; background:transparent; animation:pp-sb-pulse 1.4s ease infinite; }
@keyframes pp-sb-pulse { 0%,100% { opacity:1; } 50% { opacity:.55; } }
.pp-sb-legend { display:flex; gap:14px; flex-wrap:wrap; font-size:11px; color:var(--text-3); }
.pp-sb-legend span { display:inline-flex; align-items:center; gap:5px; }
.pp-sb-legend .sw { width:10px; height:10px; border-radius:2px; background:var(--text-2); }
.pp-sb-legend .mark { width:10px; height:3px; border-radius:2px; background:var(--primary); }
.pp-sb-legendlist { display:grid; gap:8px 16px; font-size:11px; color:var(--text-2); }
.pp-sb-legendlist-dom { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:500; color:var(--text-1); margin-bottom:3px; }
.pp-sb-legendlist-dom .sw { width:8px; height:8px; border-radius:2px; }
.pp-sb-legendlist-row { display:grid; grid-template-columns:18px 1fr auto; gap:4px; padding:1px 0; }
.pp-status-badge { display:inline-flex; align-items:center; gap:6px; font-size:12px; }
.pp-status-badge .dot { width:8px; height:8px; border-radius:2px; }
.pp-domain-chip { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 10px; border-radius:13px; border:1px solid var(--border); background:transparent; color:var(--text-2); font:inherit; font-size:12px; font-weight:600; cursor:pointer; white-space:nowrap; }
.pp-domain-chip .dot { width:8px; height:8px; border-radius:4px; }
.pp-domain-chip:hover { background:var(--surface-3); }
.pp-domain-chip.active { border-color:var(--primary); background:var(--primary-soft); color:var(--link); }

/* Druck: nur Inhalt, Sunburst-Report als eigene Seite */
@media print {
  .mud-appbar, .mud-drawer, .pp-page-header, .pp-sb-ctl, .mud-snackbar { display:none !important; }
  .mud-main-content { padding:0 !important; margin:0 !important; }
  .pp-print-page { break-inside:avoid; }
  .pp-card, .pp-table-wrap { box-shadow:none !important; border-color:#C9D1DC !important; }
}
