# Phase 4G — Customer Portal (Mein Bereich) > Sechstes Päckchen aus Phase 4. Folgt auf 4E > (Profile/Settings). **Status**: ✅ abgeschlossen · **Aufwand**: ~½ Tag · **Risiko**: niedrig–mittel --- ## Scope **Liste / Detail / Helper**: - `resources/views/livewire/customer/invoices.blade.php` (194 Z.) - `resources/views/livewire/customer/tokens.blade.php` (212 Z.) - `resources/views/livewire/customer/bookings.blade.php` (52 Z.) - `resources/views/livewire/customer/company-switcher.blade.php` (91 Z., sitzt in der Sidebar) - `resources/views/livewire/customer/press-kits/index.blade.php` (119 Z.) - `resources/views/livewire/customer/press-kits/show.blade.php` (734 Z., großes Detail-Cockpit) NICHT in diesem Päckchen: - `customer/press-releases/*` — schon in 4A/4B/4C. - `customer/dashboard.blade.php` — schon in Phase 2. - `customer/profile.blade.php`, `customer/security.blade.php` — schon in 4E. - Admin-Bereich (Päckchen 4F). ## Ziel Alle Customer-Pages im Hub-Vokabular: - **Page-Header** „User Backend"-Pille + Eyebrow „Mein Bereich · …" + H1 + Subtitle. - **KPI/Summary-Reihe** wo Stats existieren (``). - **Tabellen, Listen, Forms** in `.panel` mit `.panel-head`. - **Flash-Boxen** (success/info/warn/error) auf Hub-Token. - **Hub-Badges** statt `flux:badge` (außer dort wo speziell begründet). - **Empty-States** als Hub-Icon-Box. - **Company-Switcher**: bleibt funktional, optisch Hub-Akzent. ## Was explizit NICHT angefasst wird - Volt-Logik in allen Dateien. - ``, `` usw. - Konfirm-/Edit-Modals in `press-kits/show.blade.php` (falls vorhanden). - Bestimmte Strings, die Tests assertieren: - **tokens**: „API-Tokens" (Heading), „API-Tokens werden erst freigeschaltet" (Hinweis). - **invoices**: „Hinweis zu Rechnungen", „Rechnungsadresse im Profil pflegen", „Öffnen". - **company-switcher**: „Firma öffnen", `route('me.press-kits.show', …)`. - **press-kits.show**: „Abrechnung", „Statistik" (Tab-Labels bzw. Section-Headings). ## Akzeptanzkriterien - [x] Plan - [x] `customer/invoices` - [x] `customer/tokens` - [x] `customer/bookings` (Coming-Soon-Stub) - [x] `customer/company-switcher` (Sidebar-Komponente) - [x] `customer/press-kits/index` - [x] `customer/press-kits/show` (Stammdaten/Kontakte/PMs/ Abrechnung/Statistik im Hub-Stil; Forms inline behalten) - [x] `CustomerPortalTest`, `CustomerCompanyContextTest`, `PanelConsolidationTest` grün (29 Tests, 131 Assertions). - [x] Volle Suite: 230 passed, 3 skipped, 1 pre-existing fail (`ApiDocumentationTest`, fehlende `docs/api/v1.yml`). - [x] Build (portal: 418 kB CSS, 44 kB JS) + Pint clean + PROGRESS.