feat(struktur): weniger Klicks, Org-Detail als eine Seite, Kontingent in der Übersicht

Drei Vereinfachungen auf Nutzerwunsch.

1. Das Org-Detail hat keine Unterreiter mehr. Verbrauch & Kontingent,
   Nutzer, Lizenzen und Einstellungen stehen untereinander auf einer
   Seite (Verbrauch optisch zuerst, per CSS-Order ohne Block-Verschiebung),
   die bisherigen Reiter sind Sprungmarken, die nur scrollen. Alle
   Bereiche laden sofort, der Org-Kopf zeigt den Kontingent-Stand als
   Kurzinfo.
2. Die Organisations-Tabelle bekommt eine Kontingent-Spalte mit
   Verbraucht/Verfügbar und Mini-Balken (gelb ab 50, rot ab 80 Prozent),
   Datenquelle ist die vorhandene Overview-API. Ganze Zeile klickbar.
3. Der globale Hauptreiter "Lizenzen" entfällt, er zeigte nur die
   Ablauf-Liste, die bereits auf dem Dashboard steht. Die Einträge dort
   öffnen jetzt direkt die jeweilige Organisation, die Kachel "Aktive
   Lizenzen" führt zur Organisations-Verwaltung. loadExpiringLicenses
   bleibt als abgesicherter No-op für Alt-Aufrufer erhalten.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-07-25 14:21:57 +00:00
Ursprung 7751657444
Commit a639579366
3 geänderte Dateien mit 115 neuen und 62 gelöschten Zeilen

Datei anzeigen

@@ -1401,3 +1401,37 @@ details.adv-section .adv-hint { grid-column: 1 / -1; font-size: 12px; color: var
.card-link:hover, .card-link:focus-visible { border-color: var(--accent); }
.card-link .card-link-chevron { color: var(--text-muted); transition: color 0.15s ease, transform 0.15s ease; }
.card-link:hover .card-link-chevron { color: var(--accent); transform: translateX(2px); }
/* === Org-Detail als durchgehende Seite (statt Unterreitern) === */
.detail-panel.active { display: flex; flex-direction: column; }
#orgDetailTabs { order: 1; position: sticky; top: 61px; background: var(--bg-primary); z-index: 50; }
.org-block { margin-top: 26px; scroll-margin-top: 120px; }
#sub-tokens { order: 2; }
#sub-users { order: 3; }
#sub-org-licenses { order: 4; }
#sub-settings { order: 5; }
.org-block-title {
font-size: 16px;
margin-bottom: 12px;
padding-bottom: 6px;
border-bottom: 1px solid var(--border);
color: var(--text-primary);
}
/* === Kontingent-Spalte in der Org-Tabelle === */
.org-row { cursor: pointer; }
.mini-bar {
width: 90px;
height: 5px;
border-radius: 3px;
background: var(--bg-tertiary);
overflow: hidden;
margin-top: 3px;
}
.mini-bar-fill { height: 100%; background: var(--success); border-radius: 3px; }
.mini-bar-fill.warning { background: var(--warning); }
.mini-bar-fill.critical { background: var(--danger); }
/* === Klickbare Eintraege in der Ablauf-Liste === */
.expiring-item-link { cursor: pointer; border-radius: var(--radius); transition: background 0.15s ease; }
.expiring-item-link:hover, .expiring-item-link:focus-visible { background: var(--bg-hover); }