feat(admin): Admin-Panel-Frontend (/admin)

- content/admin.md (appshell, noindex), renderAdmin in hosting-app.js:
  Kennzahlen-Kacheln (Kunden/Abos/Instanzen/MRR) + Kundentabelle
- Admin-Link im Konto-Header (nur wenn account.is_admin)
- Admin-Styles (Stat-Kacheln, Tabelle) in custom.css

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 00:04:31 +02:00
parent a061bfa18e
commit 4cd3e56f89
3 changed files with 72 additions and 2 deletions
+12
View File
@@ -853,3 +853,15 @@ nav [class*="font-bold"] {
}
.hosting-tab:hover { color: var(--rapport-text); }
.hosting-tab.active { color: var(--rapport-accent); border-bottom-color: var(--rapport-accent); }
/* Admin-Panel */
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 700px) { .admin-stats { grid-template-columns: repeat(2, 1fr); } }
.admin-stat { background: var(--rapport-surface2); border: 1px solid var(--rapport-border); border-radius: 12px; padding: 18px; text-align: center; }
.dark .admin-stat { background: #1a1714; border-color: #2d2926; }
.admin-stat-num { font-family: 'Playfair Display', serif; font-size: 30px; font-weight: 700; color: var(--rapport-text); line-height: 1; }
.admin-stat-label { font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rapport-text-3); margin-top: 8px; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th { text-align: left; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rapport-text-3); padding: 10px 12px; border-bottom: 1px solid var(--rapport-border); }
.admin-table td { padding: 12px; border-bottom: 1px solid var(--rapport-border); vertical-align: top; }
.admin-tag { display: inline-block; background: var(--rapport-accent); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 7px; border-radius: 5px; vertical-align: middle; }