/* ============================================================================
   STYLE: Glass — ECHTER Glasmorphismus für die EF-Web-DOM (Portal + NVE + HUB).
   Signatur (15.06.2026 geschärft, damit Glass sich klar von Klassik abhebt):
   lebendiger, kräftiger radialer Verlaufs-Hintergrund aus Theme-Farben auf body,
   stark transluzente Panels (~38–40% Deckung) mit hohem Frost (blur 24px +
   saturate 1.9) → der Hintergrund scheint sichtbar durch; leuchtende Glaskante
   (heller Innen-Rand oben/links via --fg) + weicher Außen-Glow → schwebende,
   plastische Glasflächen mit großen Radien (24–26px) und Hover-Anhebung.
   Aktiv NUR bei <html data-style="glass">. KEINE festen Farben — alles über
   Theme-Variablen (nve/hub: --bg/--bg-card/--accent/... · Portal: --card/--text/...).
   Übersetzt die TMS-Glass-Signatur auf das Web-DOM-Vokabular (andere Selektoren).
   ============================================================================ */

/* ---------------------------------------------------------------------------
   GEMEINSAM: NVE + HUB (styles.css-Vokabular, Variablen --bg-card/--fg/--accent…)
   --------------------------------------------------------------------------- */

/* Lebendiger Verlaufs-Hintergrund, damit das Glas spürbar „durchscheint".
   Mehrere radiale Akzent-/Hub-Lichter aus Theme-Farben — kräftiger als die
   Klassik-Kulisse, aber nicht grell. NUR auf body (main bleibt transparent →
   kein Doppelverlauf). Der Frost-Effekt der Panels lebt von diesem Hintergrund. */
html[data-style="glass"] body{
  background:
    radial-gradient(1200px 820px at 8% -10%, color-mix(in srgb, var(--accent) 42%, transparent), transparent 58%),
    radial-gradient(1100px 760px at 102% 4%, color-mix(in srgb, var(--accent-hover) 36%, transparent), transparent 56%),
    radial-gradient(900px 700px at 96% 100%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 60%),
    radial-gradient(820px 620px at -6% 92%, color-mix(in srgb, var(--accent-hover) 24%, transparent), transparent 62%),
    var(--bg);
  background-attachment: fixed;
}
/* Portal nutzt --nve/--hub als die zwei „Marken"-Lichter → noch lebendiger,
   da die beiden Bereichsfarben gegeneinander leuchten. */
html[data-style="glass"] body:has(.grid > .card){
  background:
    radial-gradient(1200px 820px at 8% -10%, color-mix(in srgb, var(--nve) 40%, transparent), transparent 58%),
    radial-gradient(1100px 760px at 102% 4%, color-mix(in srgb, var(--hub) 38%, transparent), transparent 56%),
    radial-gradient(900px 720px at 92% 104%, color-mix(in srgb, var(--nve) 24%, transparent), transparent 60%),
    radial-gradient(820px 640px at -6% 96%, color-mix(in srgb, var(--hub) 26%, transparent), transparent 62%),
    var(--bg);
  background-attachment: fixed;
}

/* Frosted-Signatur: Blur + Sättigung auf alle Glas-Flächen */
html[data-style="glass"] .topbar,
html[data-style="glass"] .card,
html[data-style="glass"] .stat-card,
html[data-style="glass"] .menu-card,
html[data-style="glass"] .scan-result,
html[data-style="glass"] .scan-item,
html[data-style="glass"] .timeline-item,
html[data-style="glass"] .alert{
  -webkit-backdrop-filter: blur(24px) saturate(1.9);
  backdrop-filter: blur(24px) saturate(1.9);
}

/* ---- Topbar (Glas-Leiste, klebt oben) ---- */
html[data-style="glass"] .topbar{
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  box-shadow: 0 6px 24px rgba(0,0,0,.12);
}
html[data-style="glass"] .topbar .home{
  background: color-mix(in srgb, var(--fg) 7%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  border-radius: 12px;
}
html[data-style="glass"] .topbar .home:hover{
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
}

/* ---- Karten / Stat-Karten / Glas-Container ----
   Deutlich transluzenter (mehr transparent-Anteil) → der lebendige Body-Verlauf
   scheint klar durch. Leuchtende Glaskante: feiner heller Innen-Rand oben + 1px
   heller Border + weicher Außen-Glow → plastische, schwebende Glasflächen. */
html[data-style="glass"] .card,
html[data-style="glass"] .stat-card{
  background: color-mix(in srgb, var(--bg-card) 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  border-radius: 24px;
  box-shadow:
    0 14px 44px rgba(0,0,0,.22),
    0 2px 10px rgba(0,0,0,.12),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 22%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--fg) 12%, transparent);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
html[data-style="glass"] .card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 20px 56px rgba(0,0,0,.28),
    0 2px 10px rgba(0,0,0,.12),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 26%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--fg) 14%, transparent);
}
html[data-style="glass"] .stat-card .value{ color: var(--fg); }

/* ---- Menü-Karten (Glas-Kacheln) ---- */
html[data-style="glass"] .menu-card{
  background: color-mix(in srgb, var(--bg-card) 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  border-radius: 24px;
  box-shadow:
    0 14px 40px rgba(0,0,0,.20),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 22%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--fg) 12%, transparent);
  transition: background .15s, transform .15s, box-shadow .15s;
}
html[data-style="glass"] .menu-card:hover{
  background: color-mix(in srgb, var(--bg-card-hover) 52%, transparent);
  transform: translateY(-3px);
  box-shadow:
    0 22px 54px rgba(0,0,0,.26),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 28%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--fg) 14%, transparent);
}
/* Primary als getöntes Glas (statt fast deckender Akzentfläche) → konsistent mit
   den Geschwister-Glaskacheln; nur Akzent-Tönung + Akzent-Rand markieren „primary".
   Text bleibt --fg (auf transluzentem Glas in JEDEM Theme lesbar). */
html[data-style="glass"] .menu-card.primary{
  background: color-mix(in srgb, var(--accent) 30%, color-mix(in srgb, var(--bg-card) 40%, transparent));
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  box-shadow:
    0 14px 40px color-mix(in srgb, var(--accent) 22%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 22%, transparent);
}
html[data-style="glass"] .menu-card.primary,
html[data-style="glass"] .menu-card.primary .menu-title{ color: var(--fg); }
html[data-style="glass"] .menu-card.primary .menu-sub{ color: var(--fg-muted); }
html[data-style="glass"] .menu-card.primary:hover{
  background: color-mix(in srgb, var(--accent-hover) 38%, color-mix(in srgb, var(--bg-card-hover) 45%, transparent));
}

/* ---- Buttons (leicht glasig) ---- */
html[data-style="glass"] .btn{
  border-radius: 12px;
  -webkit-backdrop-filter: blur(8px) saturate(1.3);
  backdrop-filter: blur(8px) saturate(1.3);
  background: color-mix(in srgb, var(--accent) 82%, transparent);
  box-shadow:
    0 4px 16px color-mix(in srgb, var(--accent) 28%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 22%, transparent);
}
html[data-style="glass"] .btn:hover{
  background: color-mix(in srgb, var(--accent-hover) 88%, transparent);
}
html[data-style="glass"] .btn-secondary{
  background: color-mix(in srgb, var(--fg) 8%, transparent);
  color: var(--fg);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 12%, transparent);
}
html[data-style="glass"] .btn-secondary:hover{
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  border-color: color-mix(in srgb, var(--accent) 40%, transparent);
}
html[data-style="glass"] .btn-danger{
  background: color-mix(in srgb, var(--error) 84%, transparent);
  box-shadow:
    0 4px 16px color-mix(in srgb, var(--error) 30%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 18%, transparent);
}

/* ---- Formularfelder (glasig, weiche Radien) ---- */
html[data-style="glass"] input,
html[data-style="glass"] select,
html[data-style="glass"] textarea{
  background: color-mix(in srgb, var(--bg-card) 45%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 14%, transparent);
  border-radius: 12px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
html[data-style="glass"] input:focus,
html[data-style="glass"] select:focus,
html[data-style="glass"] textarea:focus{
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
}

/* ---- Chips ---- */
html[data-style="glass"] .chip{
  background: color-mix(in srgb, var(--fg) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 14%, transparent);
  border-radius: 999px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
html[data-style="glass"] .chip.standort{
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  /* Chip trägt im HUB den Tour-CODE (Datenwert) → Lesbarkeit vor Akzent-Sättigung:
     mehr --fg beimischen, damit der Code nicht als Akzent-auf-Akzent-Tönung
     verschwimmt (vorher 78% Akzent = zu blass auf der eigenen Akzent-Fläche). */
  color: color-mix(in srgb, var(--accent) 45%, var(--fg));
  font-weight: 700;
}

/* ---- Alerts (glasig getönt) ---- */
html[data-style="glass"] .alert{
  background: color-mix(in srgb, var(--error) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--error) 50%, transparent);
  border-radius: 14px;
}
html[data-style="glass"] .alert.success{
  background: color-mix(in srgb, var(--success) 14%, transparent);
  border-color: color-mix(in srgb, var(--success) 50%, transparent);
}
html[data-style="glass"] .alert.info{
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  border-color: color-mix(in srgb, var(--accent) 50%, transparent);
}

/* ---- Tabellen (Glas-Container, Kopf abgehoben) ---- */
html[data-style="glass"] .table-wrap{
  border: 1px solid color-mix(in srgb, var(--fg) 14%, transparent);
  border-radius: 18px;
  overflow: hidden;
  background: color-mix(in srgb, var(--bg-card) 22%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    0 10px 34px rgba(0,0,0,.16),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 16%, transparent);
}
html[data-style="glass"] th{
  background: color-mix(in srgb, var(--bg-card) 70%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
html[data-style="glass"] td{
  border-bottom: 1px solid color-mix(in srgb, var(--fg) 9%, transparent);
}
html[data-style="glass"] tr:hover td{
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

/* ---- Recent-Scans / Timeline (Glas-Listen) ---- */
html[data-style="glass"] .scan-item,
html[data-style="glass"] .timeline-item{
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  border-radius: 18px;
  box-shadow:
    0 10px 30px rgba(0,0,0,.16),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 18%, transparent);
}
html[data-style="glass"] .scan-result{
  background: color-mix(in srgb, var(--bg-card) 38%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
  border-radius: 18px;
  box-shadow:
    0 10px 30px rgba(0,0,0,.16),
    inset 0 1px 0 color-mix(in srgb, var(--fg) 18%, transparent);
}
html[data-style="glass"] .timeline::before{
  background: color-mix(in srgb, var(--fg) 16%, transparent);
}
html[data-style="glass"] .timeline-item::before{
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bg) 70%, transparent);
}

/* ---------------------------------------------------------------------------
   NUR PORTAL: index.html (Variablen --card/--card-h/--text/--muted/--nve/--hub…)
   --------------------------------------------------------------------------- */

/* Verlaufs-Hintergrund: NICHT erneut auf <main> legen.
   Der Glas-Verlauf sitzt bereits auf body (über die --accent/--accent-hover-Aliase,
   die aufs Portal auflösen). Ein zweiter Verlauf auf <main> ließ die Portal-Startseite
   sichtbar HELLER wirken als die Unterseiten (gemeldet). <main> bleibt daher transparent
   → Portal und Unterseiten teilen denselben einen Body-Verlauf. */
html[data-style="glass"] main{
  background: transparent;
}

/* ---- Portal-Topbar ---- */
html[data-style="glass"] .topbar{
  background: color-mix(in srgb, var(--card, var(--bg-card)) 55%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--text, var(--fg)) 12%, transparent);
}
html[data-style="glass"] .brand .dot{ color: var(--nve); }
html[data-style="glass"] .theme-sel,
html[data-style="glass"] .fb-btn{
  background: color-mix(in srgb, var(--card) 55%, transparent);
  border: 1px solid color-mix(in srgb, var(--text) 14%, transparent);
  border-radius: 11px;
  -webkit-backdrop-filter: blur(8px) saturate(1.3);
  backdrop-filter: blur(8px) saturate(1.3);
}
html[data-style="glass"] .fb-btn:hover{
  border-color: color-mix(in srgb, var(--nve) 50%, transparent);
  background: color-mix(in srgb, var(--card-h) 65%, transparent);
}

/* ---- Portal-Bereichskarten (.grid > .card.nve / .card.hub) ---- */
html[data-style="glass"] .grid > .card{
  background: color-mix(in srgb, var(--card) 38%, transparent);
  border: 1px solid color-mix(in srgb, var(--text) 16%, transparent);
  border-radius: 26px;
  -webkit-backdrop-filter: blur(26px) saturate(1.9);
  backdrop-filter: blur(26px) saturate(1.9);
  box-shadow:
    0 18px 52px rgba(0,0,0,.24),
    0 2px 10px rgba(0,0,0,.12),
    inset 0 1px 0 color-mix(in srgb, var(--text) 22%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--text) 12%, transparent);
}
html[data-style="glass"] .grid > .card:hover{
  background: color-mix(in srgb, var(--card-h) 48%, transparent);
  transform: translateY(-4px);
  box-shadow:
    0 26px 64px rgba(0,0,0,.30),
    0 2px 10px rgba(0,0,0,.12),
    inset 0 1px 0 color-mix(in srgb, var(--text) 28%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--text) 14%, transparent);
}
html[data-style="glass"] .card.nve:hover{ border-color: color-mix(in srgb, var(--nve) 55%, transparent); }
html[data-style="glass"] .card.hub:hover{ border-color: color-mix(in srgb, var(--hub) 55%, transparent); }
html[data-style="glass"] .card.nve .ic{ background: color-mix(in srgb, var(--nve) 16%, transparent); }
html[data-style="glass"] .card.hub .ic{ background: color-mix(in srgb, var(--hub) 16%, transparent); }
html[data-style="glass"] .card.nve .go{ color: var(--nve); }
html[data-style="glass"] .card.hub .go{ color: var(--hub); }

/* ---- Login-Gate & Feedback-Modal (Glas-Boxen) ---- */
html[data-style="glass"] .gate-box,
html[data-style="glass"] .fb-modal{
  background: color-mix(in srgb, var(--card) 56%, transparent);
  border: 1px solid color-mix(in srgb, var(--text) 18%, transparent);
  border-radius: 24px;
  -webkit-backdrop-filter: blur(34px) saturate(2);
  backdrop-filter: blur(34px) saturate(2);
  box-shadow:
    0 30px 80px rgba(0,0,0,.50),
    inset 0 1px 0 color-mix(in srgb, var(--text) 24%, transparent),
    inset 1px 0 0 color-mix(in srgb, var(--text) 12%, transparent);
}
html[data-style="glass"] .gate-box input,
html[data-style="glass"] .fb-modal input,
html[data-style="glass"] .fb-modal textarea{
  background: color-mix(in srgb, var(--bg, var(--card)) 45%, transparent);
  border: 1px solid color-mix(in srgb, var(--text) 14%, transparent);
  border-radius: 12px;
}
html[data-style="glass"] .gate-box input:focus,
html[data-style="glass"] .fb-modal input:focus,
html[data-style="glass"] .fb-modal textarea:focus{
  border-color: color-mix(in srgb, var(--nve) 55%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nve) 18%, transparent);
}
html[data-style="glass"] .gate-box button,
html[data-style="glass"] .fb-send{
  border-radius: 12px;
  box-shadow:
    0 4px 16px color-mix(in srgb, var(--nve) 30%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 20%, transparent);
}

/* ---------------------------------------------------------------------------
   RESPONSIVE: mobile-first sauber, keine überlaufenden Breiten
   --------------------------------------------------------------------------- */
@media (max-width: 640px){
  html[data-style="glass"] .card,
  html[data-style="glass"] .stat-card,
  html[data-style="glass"] .menu-card,
  html[data-style="glass"] .grid > .card{
    border-radius: 18px;
  }
  html[data-style="glass"] .gate-box,
  html[data-style="glass"] .fb-modal{
    border-radius: 18px;
    max-width: 100%;
  }
  /* schwächerer Blur auf kleinen Geräten = flüssiger */
  html[data-style="glass"] .card,
  html[data-style="glass"] .stat-card,
  html[data-style="glass"] .menu-card,
  html[data-style="glass"] .grid > .card{
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
  }
}

/* ===== STRUKTUR: schwebende Glas-Leiste + Toolbar-Pille ===== */
/* Markante Kopf-Architektur (bleibt OBEN, klar abgesetzt von Sidebar-Styles):
   die Kopfleiste löst sich vom Rand und schwebt als freistehende Glas-Leiste;
   die in-content .toolbar wird zur schwebenden Glas-Pille. Farben nur über Theme-
   Variablen, Transluzenz via color-mix(... transparent). Portal nutzt --card/--text,
   NVE/HUB nutzen --bg-card/--fg — beide werden mit Fallback abgedeckt. */

/* --- Schwebende Glas-Leiste (.topbar als direktes Body-Kind, bleibt oben) --- */
html[data-style="glass"] .topbar{
  position: sticky;
  top: 12px;
  z-index: 40;
  margin: 12px 14px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--fg, var(--text)) 16%, transparent);
  background: color-mix(in srgb, var(--bg-card, var(--card)) 40%, transparent);
  -webkit-backdrop-filter: blur(24px) saturate(190%);
  backdrop-filter: blur(24px) saturate(190%);
  box-shadow:
    0 16px 48px rgba(0,0,0,.26),
    0 0 0 1px color-mix(in srgb, var(--fg, var(--text)) 4%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--fg, var(--text)) 22%, transparent);
}

/* heller Rand-Reflex an der Oberkante der schwebenden Leiste */
html[data-style="glass"] .topbar{
  background-image: linear-gradient(
    to bottom,
    color-mix(in srgb, #fff 8%, transparent),
    transparent 42%
  );
}

/* .brand leicht leuchtend, damit die Leiste markant bleibt */
html[data-style="glass"] .topbar .brand{
  text-shadow: 0 0 14px color-mix(in srgb, var(--accent, var(--nve)) 45%, transparent);
}

/* --- Schwebende Glas-Pille: .toolbar im Dashboard-Content --- */
html[data-style="glass"] .toolbar{
  margin: 4px 0 18px;
  padding: 12px 16px;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--fg, var(--text)) 16%, transparent);
  background: color-mix(in srgb, var(--bg-card, var(--card)) 40%, transparent);
  -webkit-backdrop-filter: blur(24px) saturate(190%);
  backdrop-filter: blur(24px) saturate(190%);
  box-shadow:
    0 14px 40px rgba(0,0,0,.22),
    inset 0 1px 0 color-mix(in srgb, var(--fg, var(--text)) 22%, transparent);
}

/* Buttons in der Pille noch etwas glasiger + rund (gewinnt über Basis-.btn) */
html[data-style="glass"] .toolbar .btn{
  border-radius: 999px;
  -webkit-backdrop-filter: blur(10px) saturate(1.3);
  backdrop-filter: blur(10px) saturate(1.3);
}
html[data-style="glass"] .toolbar .btn.btn-secondary{
  background: color-mix(in srgb, var(--fg, var(--text)) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--fg, var(--text)) 18%, transparent);
}

/* --- MOBILE: enger absetzen, leichterer Blur (flüssiger) --- */
@media (max-width: 640px){
  html[data-style="glass"] .topbar{
    top: 8px;
    margin: 8px;
    border-radius: 14px;
    -webkit-backdrop-filter: blur(10px) saturate(135%);
    backdrop-filter: blur(10px) saturate(135%);
  }
  html[data-style="glass"] .toolbar{
    border-radius: 16px;
    padding: 10px 12px;
    -webkit-backdrop-filter: blur(10px) saturate(135%);
    backdrop-filter: blur(10px) saturate(135%);
  }
}

/* ============================================================================
   GLASS — KONSEQUENTE DURCHGÄNGIGKEIT (alle Unterseiten, v.a. HUB-Dashboard)
   ----------------------------------------------------------------------------
   Problem: HUB/dashboard.html setzt seine Spezial-Komponenten über einen
   inline <style>-Block (steht im Dokument NACH dem <link> auf diese Datei) und
   teils über inline style="…"-Attribute. Beide gewinnen bei gleicher
   Spezifität über externes CSS → ohne !important bleibt der HUB „solide".
   Deshalb hier gezielt !important auf die optischen Glas-Props (background,
   border, border-radius, box-shadow, backdrop-filter, color). Werte stets über
   Theme-Variablen + color-mix(... transparent). Original/11 Themes bleiben gültig.
   ============================================================================ */

/* ---- Reusable Glas-Token (nur intern, via var() referenziert) ---------------
   Wir definieren KEINE Farben fest, sondern leiten alles aus den vorhandenen
   Theme-Variablen ab. Diese Custom-Props existieren nur im glass-Scope. */
html[data-style="glass"]{
  --g-blur: blur(24px) saturate(1.9);
  --g-blur-soft: blur(16px) saturate(1.6);
  --g-pane:   color-mix(in srgb, var(--bg-card, var(--card)) 38%, transparent);
  --g-pane-2: color-mix(in srgb, var(--bg-card, var(--card)) 28%, transparent);
  --g-pane-hi:color-mix(in srgb, var(--bg-card-hover, var(--card-h)) 42%, transparent);
  --g-edge:   color-mix(in srgb, var(--fg, var(--text)) 16%, transparent);
  --g-edge-2: color-mix(in srgb, var(--fg, var(--text)) 22%, transparent);
  --g-glow:   0 14px 44px rgba(0,0,0,.24);
  --g-glow-lg:0 22px 60px rgba(0,0,0,.32);
  /* leuchtende Glaskante: heller Innen-Rand oben + links (Theme-treu via --fg) */
  --g-sheen:  inset 0 1px 0 color-mix(in srgb, var(--fg, var(--text)) 22%, transparent),
              inset 1px 0 0 color-mix(in srgb, var(--fg, var(--text)) 12%, transparent);
}

/* ---------------------------------------------------------------------------
   1) GETEILTE KLASSEN — Ergänzungen über die Baseline-Glas-Regeln hinaus.
   (Diese sind im selben externen Stylesheet → kein !important nötig, da später
    deklariert als die Basis-styles.css über die <link>-Reihenfolge.)
   --------------------------------------------------------------------------- */

/* einheitlicher Frosted-Effekt auch auf die HUB/NVE-Zusatzflächen */
html[data-style="glass"] .toolbar,
html[data-style="glass"] .table-wrap,
html[data-style="glass"] .empty-state{
  -webkit-backdrop-filter: var(--g-blur);
  backdrop-filter: var(--g-blur);
}

/* Stat-Karten: Wert-/Label-Hierarchie, dezenter Akzent-Schimmer */
html[data-style="glass"] .stat-card .label{ color: var(--fg-muted, var(--muted)); }
html[data-style="glass"] .stat-card .sub{ color: var(--fg-muted, var(--muted)); }
html[data-style="glass"] .stat-card::after{
  content:""; position:absolute; inset:0 0 auto 0; height:2px;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--accent) 55%, transparent), transparent 70%);
  border-radius: 20px 20px 0 0; pointer-events:none;
}
html[data-style="glass"] .stat-card{ position:relative; overflow:hidden; }

/* .row / .btn-group Abstände bleiben; Buttons in Gruppen ebenfalls glasig rund */
html[data-style="glass"] .btn-group .btn{ border-radius: 12px; }

/* Status-Punkt subtil leuchtend */
html[data-style="glass"] .status.online{ text-shadow: 0 0 10px color-mix(in srgb, var(--success) 60%, transparent); }
html[data-style="glass"] .status.offline{ text-shadow: 0 0 10px color-mix(in srgb, var(--error) 60%, transparent); }

/* Loader-Ring im Akzentglas */
html[data-style="glass"] .loader{ border-color: var(--g-edge); border-top-color: var(--accent); }

/* Toolbar-Filter/-Actions: saubere Glas-Pillen-Innenstruktur */
html[data-style="glass"] .tb-filters > div label,
html[data-style="glass"] .toolbar label{ color: var(--fg-muted, var(--muted)); }

/* Tabellen-Innenleben verfeinern (zebra-frei, nur Glas-Trennlinien) */
html[data-style="glass"] table{ border-collapse: separate; border-spacing: 0; }
html[data-style="glass"] th{ color: var(--fg-muted, var(--muted)); }
html[data-style="glass"] table.tight th,
html[data-style="glass"] table.tight td{ border-bottom: 1px solid color-mix(in srgb, var(--fg, var(--text)) 8%, transparent); }
html[data-style="glass"] tr:last-child td{ border-bottom: none; }

/* Empty-State als zarte Glasfläche */
html[data-style="glass"] td.empty-state,
html[data-style="glass"] .empty-state{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 22%, transparent);
  color: var(--fg-muted, var(--muted));
}

/* ---------------------------------------------------------------------------
   2) HUB-DASHBOARD-EIGENER <style>-BLOCK + inline-Attribute  →  !important
   Reihenfolge im Dokument: <link style-glass>  davor,  <style>…</style> danach.
   Daher überschreibt der Seiten-<style> ohne !important. Wir erzwingen Glas.
   --------------------------------------------------------------------------- */

/* --- Topbar-Buttons mit inline style="background:var(--bg-card)…" (Protokoll/Abmelden) --- */
html[data-style="glass"] .topbar button[onclick]{
  background: color-mix(in srgb, var(--fg, var(--text)) 8%, transparent) !important;
  border: 1px solid var(--g-edge-2) !important;
  border-radius: 12px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
  box-shadow: var(--g-sheen) !important;
  color: var(--fg, var(--text)) !important;
}
html[data-style="glass"] .topbar button[onclick]:hover{
  background: color-mix(in srgb, var(--accent) 16%, transparent) !important;
  border-color: color-mix(in srgb, var(--accent) 45%, transparent) !important;
}

/* --- Karten-Sticky-Tabellenkopf (thead th{background:var(--bg-card)}) --- */
html[data-style="glass"] thead th{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 78%, transparent) !important;
  -webkit-backdrop-filter: blur(12px) saturate(1.4) !important;
  backdrop-filter: blur(12px) saturate(1.4) !important;
  border-bottom: 1px solid var(--g-edge) !important;
}

/* --- #map: weicher Glasrahmen statt harter Kante --- */
html[data-style="glass"] #map{
  border-radius: 18px !important;
  border: 1px solid var(--g-edge) !important;
  box-shadow: var(--g-glow), var(--g-sheen) !important;
}

/* --- Finanz-Banner (.fin-banner / .good / .bad) — feste rgba()-Töne ersetzen --- */
html[data-style="glass"] .fin-banner{
  border-radius: 16px !important;
  -webkit-backdrop-filter: var(--g-blur) !important;
  backdrop-filter: var(--g-blur) !important;
  box-shadow: var(--g-glow), var(--g-sheen) !important;
}
html[data-style="glass"] .fin-banner.good{
  background: color-mix(in srgb, var(--success) 16%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--success) 55%, transparent) !important;
  color: var(--success) !important;
}
html[data-style="glass"] .fin-banner.bad{
  background: color-mix(in srgb, var(--error) 16%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--error) 55%, transparent) !important;
  color: var(--error) !important;
}

/* --- Karten-Kennzahl-Umschalter (.map-metric / .active) --- */
html[data-style="glass"] .map-toggle{ -webkit-backdrop-filter: var(--g-blur-soft); backdrop-filter: var(--g-blur-soft); }
html[data-style="glass"] .map-metric{
  background: color-mix(in srgb, var(--bg-card-hover, var(--card-h)) 45%, transparent) !important;
  color: var(--fg-muted, var(--muted)) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 999px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
}
html[data-style="glass"] .map-metric:hover{
  border-color: color-mix(in srgb, var(--accent) 40%, transparent) !important;
}
html[data-style="glass"] .map-metric.active{
  background: color-mix(in srgb, var(--accent) 78%, transparent) !important;
  color: var(--accent-fg, #fff) !important;
  border-color: color-mix(in srgb, var(--accent) 60%, transparent) !important;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--accent) 30%, transparent), var(--g-sheen) !important;
}

/* --- Legenden-Punkt (.legend-dot) bleibt farbig, nur weicher Glow --- */
html[data-style="glass"] .legend-dot{ box-shadow: 0 0 6px rgba(0,0,0,.25); }

/* --- Insights: Highlight-Kacheln (.ins-hl) + Spalten-Köpfe --- */
html[data-style="glass"] .ins-hl{
  background: var(--g-pane-hi) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 16px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
  box-shadow: 0 6px 22px rgba(0,0,0,.12), var(--g-sheen) !important;
}
html[data-style="glass"] .ins-hl .lbl{ color: var(--fg-muted, var(--muted)); }
html[data-style="glass"] .ins-hl .val{ color: var(--fg, var(--text)); }
html[data-style="glass"] .ins-cols h3{ color: var(--fg-muted, var(--muted)); }
html[data-style="glass"] .ins-comment{ color: var(--fg-muted, var(--muted)); }

/* --- Depot-Drilldown-Liste: anklickbare Zeilen (.depot-link) --- */
html[data-style="glass"] .depot-link{ cursor:pointer; transition: background .12s; }
html[data-style="glass"] .depot-link:hover td{
  background: color-mix(in srgb, var(--accent) 10%, transparent) !important;
  color: var(--accent) !important;
}
html[data-style="glass"] .dp-go{ opacity:.5; }

/* --- Depot-Detail-Overlay & Panel (rechts einschwebend) --- */
html[data-style="glass"] .depot-ov{
  background: rgba(0,0,0,.45) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  backdrop-filter: blur(4px) !important;
}
html[data-style="glass"] .depot-panel{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 56%, transparent) !important;
  border-left: 1px solid var(--g-edge-2) !important;
  -webkit-backdrop-filter: blur(40px) saturate(2) !important;
  backdrop-filter: blur(40px) saturate(2) !important;
  box-shadow: -22px 0 70px rgba(0,0,0,.48), inset 1px 0 0 color-mix(in srgb, var(--fg, var(--text)) 18%, transparent) !important;
}
html[data-style="glass"] .dp-title{ color: var(--fg, var(--text)) !important; }
html[data-style="glass"] .dp-share{ color: var(--fg-muted, var(--muted)) !important; }
html[data-style="glass"] .dp-close{
  background: color-mix(in srgb, var(--fg, var(--text)) 7%, transparent) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 10px !important;
  color: var(--fg-muted, var(--muted)) !important;
}
html[data-style="glass"] .dp-close:hover{
  background: color-mix(in srgb, var(--error) 18%, transparent) !important;
  color: var(--error) !important;
}

/* Depot-KPI-Kacheln (.dp-kpis > div) */
html[data-style="glass"] .dp-kpis > div{
  background: var(--g-pane-hi) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 12px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
  color: var(--fg-muted, var(--muted)) !important;
}
html[data-style="glass"] .dp-kpis b{ color: var(--fg, var(--text)) !important; }

/* Segment-Schalter (.dp-seg button / .active) */
html[data-style="glass"] .dp-seg .lbl{ color: var(--fg-muted, var(--muted)) !important; }
html[data-style="glass"] .dp-seg button{
  background: color-mix(in srgb, var(--bg-card-hover, var(--card-h)) 45%, transparent) !important;
  color: var(--fg-muted, var(--muted)) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 999px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
}
html[data-style="glass"] .dp-seg button.active{
  background: color-mix(in srgb, var(--accent) 78%, transparent) !important;
  color: var(--accent-fg, #fff) !important;
  border-color: color-mix(in srgb, var(--accent) 60%, transparent) !important;
  box-shadow: 0 3px 14px color-mix(in srgb, var(--accent) 28%, transparent) !important;
}

/* Depot-Chart-Box (.dp-chart) + Legende */
html[data-style="glass"] .dp-chart{
  background: var(--g-pane-2) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 16px !important;
  -webkit-backdrop-filter: var(--g-blur-soft) !important;
  backdrop-filter: var(--g-blur-soft) !important;
  box-shadow: var(--g-sheen) !important;
}
html[data-style="glass"] .dp-legend{ color: var(--fg-muted, var(--muted)) !important; }
html[data-style="glass"] .dp-section h4{ color: var(--fg-muted, var(--muted)) !important; }

/* --- Eingabefelder im HUB-Inline-<style> (.num-input/.oel-input/.date-input/.colli-input) --- */
html[data-style="glass"] .num-input,
html[data-style="glass"] .oel-input,
html[data-style="glass"] .colli-input,
html[data-style="glass"] .date-input{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 42%, transparent) !important;
  border: 1px solid var(--g-edge) !important;
  border-radius: 10px !important;
  color: var(--fg, var(--text)) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  backdrop-filter: blur(6px) !important;
}
html[data-style="glass"] .num-input:focus,
html[data-style="glass"] .oel-input:focus,
html[data-style="glass"] .colli-input:focus,
html[data-style="glass"] .date-input:focus{
  border-color: color-mix(in srgb, var(--accent) 60%, transparent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent) !important;
}

/* --- pos/neg-Zahlen (in Glas-Tabellen) leuchten leicht für Kontrast --- */
html[data-style="glass"] .pos{ color: var(--success) !important; text-shadow: 0 0 8px color-mix(in srgb, var(--success) 35%, transparent); }
html[data-style="glass"] .neg{ color: var(--error) !important; text-shadow: 0 0 8px color-mix(in srgb, var(--error) 35%, transparent); }
html[data-style="glass"] .mini{ color: var(--fg-muted, var(--muted)); }

/* --- Scroll-Container (.scroll-360): Glasfläche unter dem sticky-Kopf --- */
html[data-style="glass"] .scroll-360{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 18%, transparent);
  border-radius: 14px;
}

/* --- Protokoll-Overlay (inline gebaut via JS) --- */
html[data-style="glass"] #pk-body{ color: var(--fg, var(--text)); }

/* ---------------------------------------------------------------------------
   3) NVE-SEITEN: tracking.html / dashboard.html nutzen .card/.chip/.table-wrap
   (bereits oben verglast). Zusätzlich die inline farbigen Chips abrunden,
   damit sie sich in die Glas-Sprache einfügen (Farbe bleibt für Semantik).
   --------------------------------------------------------------------------- */
html[data-style="glass"] .container details{
  background: var(--g-pane-2);
  border: 1px solid var(--g-edge);
  border-radius: 14px;
  padding: 4px 14px;
  -webkit-backdrop-filter: var(--g-blur-soft);
  backdrop-filter: var(--g-blur-soft);
}
html[data-style="glass"] .container details summary{ color: var(--fg-muted, var(--muted)); }

/* NVE-Dashboard: #map ist hier ebenfalls eine inline-gestylte Box → verglasen */
/* (durch #map-Regel oben bereits abgedeckt) */

/* ---------------------------------------------------------------------------
   4) MOBILE ≤640px: HUB-Spezialflächen ebenfalls mit leichterem Blur (flüssig)
   --------------------------------------------------------------------------- */
@media (max-width: 640px){
  html[data-style="glass"]{
    --g-blur: blur(11px) saturate(1.3);
    --g-blur-soft: blur(8px) saturate(1.25);
  }
  html[data-style="glass"] .depot-panel{
    border-radius: 0 !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
    backdrop-filter: blur(18px) saturate(1.4) !important;
  }
  html[data-style="glass"] .ins-hl,
  html[data-style="glass"] .dp-kpis > div,
  html[data-style="glass"] .dp-chart{
    border-radius: 12px !important;
  }
  html[data-style="glass"] thead th{
    -webkit-backdrop-filter: blur(9px) saturate(1.3) !important;
    backdrop-filter: blur(9px) saturate(1.3) !important;
  }
}

/* ===== LAYOUT-IDENTITÄT ===== */
/* visionOS/macOS-Feeling: schwebende, transluzente Panels mit viel Luft & Tiefe.
   Reine ANORDNUNG/BREITE/DICHTE — Optik (Glas/Blur/Glow) ist oben definiert.
   Struktur bleibt: schwebende Glas-Topbar oben, KEINE Sidebar. #map/.dp-chart/SVG
   bleiben volle Breite & einspaltig. Panels schweben über Gaps (echte Lücken,
   KEINE überlappende Verdeckung). Alle Regeln strikt html[data-style="glass"]. */

/* --- App-Breite & vertikaler Rhythmus: luftig, zentriert ---
   NVE/HUB: .container ist die App-Spalte → schmaler, mehr Atemraum.
   Großzügige Lücken zwischen den schwebenden Karten-Sektionen geben Tiefe. */
html[data-style="glass"] .container{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 4vw, 34px);
  padding-right: clamp(16px, 4vw, 34px);
}
/* HUB-Dashboard setzt inline .container{max-width:1200px} → hier sanft auf App-Maß */
html[data-style="glass"] .container{ max-width: 1100px !important; }

/* Karten-Sektionen weit auseinander stapeln → jede Karte wirkt als eigenes Panel */
html[data-style="glass"] .container > .card{
  margin-bottom: clamp(22px, 3.4vw, 40px);
  padding: clamp(18px, 2.4vw, 28px);
}
html[data-style="glass"] .container > .card:last-of-type{ margin-bottom: 0; }

/* Portal-„main": Inhalt mittig, mehr Luft oben/unten */
html[data-style="glass"] main{ padding: clamp(34px, 6vw, 72px) 18px; }

/* --- Stat-Tiles: schwebende Glas-Kacheln, auto-fit, deutliche Gaps ---
   Jede Kachel ein eigenständiges schwebendes Element (überschreibt 2-/4-Spalten). */
html[data-style="glass"] .stat-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: clamp(14px, 1.8vw, 22px);
  margin-bottom: clamp(22px, 3.4vw, 40px);
}
html[data-style="glass"] .stat-card{
  padding: clamp(16px, 1.8vw, 22px) clamp(16px, 1.8vw, 22px);
}

/* --- Menü-Kacheln (NVE-Startseite): große, schwebende Glas-Kacheln --- */
html[data-style="glass"] .menu-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: clamp(16px, 2vw, 26px);
}
html[data-style="glass"] .menu-card{
  min-height: 168px;
  padding: clamp(22px, 2.6vw, 32px) clamp(18px, 2vw, 24px);
}

/* --- Portal-Startseite: zwei große, schwebende Glas-Karten --- */
html[data-style="glass"] .grid{
  max-width: 860px;
  gap: clamp(20px, 2.6vw, 34px);
}
html[data-style="glass"] .grid > .card{
  padding: clamp(26px, 3vw, 38px) clamp(22px, 2.4vw, 30px);
}

/* --- Toolbar als schwebende Pille mit Luft darunter (Optik schon oben) --- */
html[data-style="glass"] .toolbar{ margin-bottom: clamp(20px, 3vw, 34px); }

/* --- SICHER: Map / Chart / SVG bleiben einspaltig & volle Breite ---
   Niemals mehrspaltig; mehr Höhe für „App"-Tiefe, weiche Glas-Kante (oben gesetzt). */
html[data-style="glass"] #map{
  width: 100%;
  height: 460px;
}
html[data-style="glass"] .dp-chart,
html[data-style="glass"] .dp-chart svg{
  width: 100%;
}

/* --- Ruhiges 2-Spalten-Raster NUR für die schmalen HUB-Insights-Textspalten ---
   (Top-Absender / Top-Empfänger) — Map/Chart bleiben unberührt. Mehr Gap = Tiefe. */
html[data-style="glass"] .ins-cols{ gap: clamp(18px, 2.4vw, 30px); }
html[data-style="glass"] .ins-grid{ gap: clamp(12px, 1.6vw, 18px); }

/* --- Depot-Panel etwas breiter (App-artiges schwebendes Detail-Fenster) --- */
html[data-style="glass"] .depot-panel{
  width: 600px;
  max-width: 96vw;
}

/* --- MOBILE ≤640px: Dichte runter, Lücken kleiner, alles einspaltig & sauber --- */
@media (max-width: 640px){
  html[data-style="glass"] .container{
    padding-left: 14px;
    padding-right: 14px;
    max-width: 100% !important;
  }
  html[data-style="glass"] .container > .card{ margin-bottom: 18px; }
  html[data-style="glass"] .stat-grid{
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
  }
  html[data-style="glass"] .menu-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
  html[data-style="glass"] .menu-card{ min-height: 132px; }
  html[data-style="glass"] .grid{ grid-template-columns: 1fr; }
  html[data-style="glass"] #map{ height: 360px; }
}

/* ============================================================================
   QA-FIX-LAYER (15.06.2026) — Text-/Render-Lesbarkeit auf Glas.
   Behebt gemeldete Anzeige-Fehler, OHNE die visionOS/macOS-Glas-Identität zu
   ändern (Blur/Glow/schwebende Panels bleiben). Strikt html[data-style="glass"].
   ============================================================================ */

/* --- 1) GRID/FLEX-OVERFLOW: Items müssen schrumpfen dürfen ------------------
   Auto-fit-Raster & Flex-Köpfe dürfen NICHT von breiten Inhalten (lange
   Depot-/Absendernamen, Tabellen, Zahlen) gesprengt werden. min-width:0 erlaubt
   das Schrumpfen; lange Wörter brechen statt zu überlaufen. */
html[data-style="glass"] .stat-grid > *,
html[data-style="glass"] .menu-grid > *,
html[data-style="glass"] .grid > *,
html[data-style="glass"] .ins-grid > *,
html[data-style="glass"] .ins-cols > *,
html[data-style="glass"] .dp-kpis > *{
  min-width: 0;
}
/* Werte/Texte in den schwebenden Kacheln umbrechen statt überlaufen */
html[data-style="glass"] .stat-card .value,
html[data-style="glass"] .stat-card .label,
html[data-style="glass"] .ins-hl .val,
html[data-style="glass"] .ins-hl .lbl,
html[data-style="glass"] .dp-kpis > div,
html[data-style="glass"] .dp-title{
  overflow-wrap: anywhere;
  word-break: break-word;
}
/* Tabellen-Datenzellen: NUR lange Relations-/Namens-Zellen (A → B) dürfen
   umbrechen. NICHT pauschal auf alle td — sonst kollabiert bei breiten Tabellen
   (12-spaltige Ladelisten, width:100%) die Spalten-Mindestbreite und die ganze
   Tabelle quetscht sich mehrzeilig zusammen statt horizontal zu scrollen
   (.table-wrap hat overflow-x:auto → wie im Klassik-Style). */
html[data-style="glass"] td.mini{
  overflow-wrap: anywhere;
  word-break: break-word;
}
/* Tabellen-Container scrollt horizontal bei sehr breiten Tabellen (kein Clipping
   durch overflow:hidden des verglasten .table-wrap) */
html[data-style="glass"] .table-wrap{
  overflow-x: auto;
}

/* --- 2) text-transform/letter-spacing NUR auf Labels, NIE auf Datenwerten ---
   Sicherstellen, dass Datenwerte (Werte, Tabelleninhalt, Namen, Chips, NVE)
   normal gesetzt sind — Tour-Codes/Namen dürfen nicht versal/gesperrt werden. */
html[data-style="glass"] .stat-card .value,
html[data-style="glass"] .ins-hl .val,
html[data-style="glass"] .dp-kpis b,
html[data-style="glass"] td,
html[data-style="glass"] .chip,
html[data-style="glass"] .timeline-item .standort{
  text-transform: none;
  letter-spacing: normal;
}

/* --- 3) KONTRAST AUF GLAS (kritisch in hellen Themes) -----------------------
   Auf transluzentem Glas über farbigem Verlauf können dünne/leise Texte
   verschwimmen. Datenwerte bekommen volle Vordergrundfarbe + etwas Gewicht;
   die Glas-Panes werden auf hellen Themes (hell/beige) deckender, damit der
   Text nicht in den Verlauf abtaucht. */
html[data-style="glass"] .stat-card .value,
html[data-style="glass"] .ins-hl .val,
html[data-style="glass"] .dp-kpis b,
html[data-style="glass"] td{
  color: var(--fg, var(--text));
}
html[data-style="glass"] .stat-card .value,
html[data-style="glass"] .ins-hl .val{
  font-weight: 700;
}

/* Helle Themes: Panes deutlich deckender (Text steht ruhiger), Topbar/Toolbar
   ebenfalls. Erkannt über die hellen data-theme-Werte (hell, beige). */
html[data-style="glass"][data-theme="hell"] .card,
html[data-style="glass"][data-theme="beige"] .card,
html[data-style="glass"][data-theme="hell"] .stat-card,
html[data-style="glass"][data-theme="beige"] .stat-card,
html[data-style="glass"][data-theme="hell"] .menu-card,
html[data-style="glass"][data-theme="beige"] .menu-card,
html[data-style="glass"][data-theme="hell"] .grid > .card,
html[data-style="glass"][data-theme="beige"] .grid > .card,
html[data-style="glass"][data-theme="hell"] .scan-item,
html[data-style="glass"][data-theme="beige"] .scan-item,
html[data-style="glass"][data-theme="hell"] .timeline-item,
html[data-style="glass"][data-theme="beige"] .timeline-item,
html[data-style="glass"][data-theme="hell"] .toolbar,
html[data-style="glass"][data-theme="beige"] .toolbar{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 82%, transparent);
}
html[data-style="glass"][data-theme="hell"] .topbar,
html[data-style="glass"][data-theme="beige"] .topbar{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 80%, transparent);
}
/* Detail-Panel & Scan-Ergebnis auf hellen Themes deckender (Text bleibt ruhig,
   trotz der jetzt kräftigeren transluzenten Glas-Defaults). */
html[data-style="glass"][data-theme="hell"] .depot-panel,
html[data-style="glass"][data-theme="beige"] .depot-panel{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 80%, transparent) !important;
}
html[data-style="glass"][data-theme="hell"] .scan-item,
html[data-style="glass"][data-theme="beige"] .scan-item,
html[data-style="glass"][data-theme="hell"] .scan-result,
html[data-style="glass"][data-theme="beige"] .scan-result,
html[data-style="glass"][data-theme="hell"] .timeline-item,
html[data-style="glass"][data-theme="beige"] .timeline-item{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 82%, transparent);
}
/* Verglaste Tabellen-Container auf hellen Themes deckender, damit Zeilen-Text
   nicht über den Verlauf schwimmt. */
html[data-style="glass"][data-theme="hell"] .table-wrap,
html[data-style="glass"][data-theme="beige"] .table-wrap{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 62%, transparent);
}
html[data-style="glass"][data-theme="hell"] thead th,
html[data-style="glass"][data-theme="beige"] thead th,
html[data-style="glass"][data-theme="hell"] th,
html[data-style="glass"][data-theme="beige"] th{
  background: color-mix(in srgb, var(--bg-card, var(--card)) 90%, transparent) !important;
}
/* Auf hellen Themes Brand-Glow zurücknehmen (Halo um dunklen Text statt Leuchten) */
html[data-style="glass"][data-theme="hell"] .topbar .brand,
html[data-style="glass"][data-theme="beige"] .topbar .brand{
  text-shadow: none;
}

/* --- 4) FESTE HÖHEN / BLUR-CONTAINER dürfen Text nicht clippen ---------------
   Karten/Kacheln mit fixer Mindesthöhe: Inhalt darf wachsen (kein Abschneiden). */
html[data-style="glass"] .menu-card{
  height: auto;
  overflow: visible;
}
/* stat-card hat overflow:hidden (für den ::after-Akzentstrich) — Text selbst
   sitzt im normalen Fluss; sicherstellen, dass keine fixe Höhe clippt. */
html[data-style="glass"] .stat-card{ height: auto; }
/* Depot-Panel scrollt intern, fixe Breite, aber Inhalt darf umbrechen */
html[data-style="glass"] .depot-panel{ overflow-wrap: anywhere; }
