/* Stella Mascot — geteiltes CSS fuer alle Sloppy-Sites.
   Loads: <link rel="stylesheet" href="https://sloppyuniverse.com/mascots/stella/stella.css">
   Default-Stil: duotone (klar als Mascot lesbar, brand-konform).
*/

:root {
  --stella-amber: #A47913;       /* Brand-Amber fuer Borders/Akzente */
  --stella-amber-dark: #6b4d0c;  /* satt-dunkel fuer Text auf hellem BG */
  --stella-amber-soft: #f3e3a6;
  --stella-bubble-bg: #fff8e8;
  --stella-bubble-border: #d9a93b;
  --stella-bubble-text: #2d2000;
  --stella-tag-text: #1f2937;
  --stella-tag-bg: rgba(0,0,0,.06);
  /* Tint-Aliase fuer subtile Akzente (Hover, Trenner, Dark-BG).
     Diese duerfen NICHT hardcoded werden, sonst sieht jedes Modul
     im Hover/Dark-Mode amber aus. */
  --stella-tint-soft:   rgba(164, 121, 19, 0.08);   /* Dark-Mode-BG */
  --stella-tint-mid:    rgba(217, 169, 59, 0.18);   /* Hover-BG */
  --stella-tint-border: rgba(217, 169, 59, 0.30);   /* Trenner-Border */
  --stella-glow:        #fde68a;                    /* Text auf Dark-BG */
}

/* Modul-spezifische Brand-Adoption.
   Per <body data-app="pay|scan|fix|rent"> matcht die jeweilige App
   und ueberschreibt die Stella-CSS-Variablen mit der Brand-Palette
   des Moduls. Stella-Block/Card/Bubble/Helper/Tour erben dann den
   Modul-Look, statt ueberall amber-gold zu sein.
*/
body[data-app="scan"] {
  /* SloppyScan: Indigo */
  --stella-amber:        #2E3CC6;
  --stella-amber-dark:   #1e2a8c;
  --stella-amber-soft:   #d8e0ff;
  --stella-bubble-bg:    #f1f4ff;
  --stella-bubble-border: #6b7be0;
  --stella-bubble-text:  #1a1f3d;
  --stella-tint-soft:    rgba(46, 60, 198, 0.08);
  --stella-tint-mid:     rgba(107, 123, 224, 0.18);
  --stella-tint-border:  rgba(107, 123, 224, 0.30);
  --stella-glow:         #c5cdff;
}
body[data-app="fix"] {
  /* SloppyFix: Forest-Green */
  --stella-amber:        #4a5a3a;
  --stella-amber-dark:   #2f3a23;
  --stella-amber-soft:   #d8e0c8;
  --stella-bubble-bg:    #f4f7ec;
  --stella-bubble-border: #95a76d;
  --stella-bubble-text:  #1f2718;
  --stella-tint-soft:    rgba(74, 90, 58, 0.08);
  --stella-tint-mid:     rgba(149, 167, 109, 0.20);
  --stella-tint-border:  rgba(149, 167, 109, 0.32);
  --stella-glow:         #cfe0a8;
}
body[data-app="rent"] {
  /* SloppyRent: Terra-Cotta */
  --stella-amber:        #A57C60;
  --stella-amber-dark:   #6e4f3c;
  --stella-amber-soft:   #ecd5c2;
  --stella-bubble-bg:    #f9f0e8;
  --stella-bubble-border: #c89773;
  --stella-bubble-text:  #2a1d12;
  --stella-tint-soft:    rgba(165, 124, 96, 0.08);
  --stella-tint-mid:     rgba(200, 151, 115, 0.18);
  --stella-tint-border:  rgba(200, 151, 115, 0.30);
  --stella-glow:         #e6c8b3;
}
body[data-app="plan"] {
  /* SloppyPlan: Purple */
  --stella-amber:        #824f9a;
  --stella-amber-dark:   #5a356b;
  --stella-amber-soft:   #e7d3f0;
  --stella-bubble-bg:    #f4ebf8;
  --stella-bubble-border: #A878C0;
  --stella-bubble-text:  #2a1834;
  --stella-tint-soft:    rgba(130, 79, 154, 0.08);
  --stella-tint-mid:     rgba(168, 120, 192, 0.20);
  --stella-tint-border:  rgba(168, 120, 192, 0.32);
  --stella-glow:         #ddc1e8;
}
/* Pay (data-app="pay") + Universe = Default-Amber, kein Override noetig. */

/* Avatar — Default 96 px, runder Rand mit Brand-Akzent.
   Default-Stil "wash" (subtle warm) fuer den grossen Avatar,
   "original" fuer den kleinen sm-Avatar (User-Auswahl).
*/
.stella-avatar {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: var(--stella-amber-soft) url('https://sloppyuniverse.com/mascots/stella/stella-avatar-wash.jpg') center/cover;
  border: 3px solid var(--stella-amber);
  box-shadow: 0 2px 6px rgba(0,0,0,.10);
  flex: 0 0 auto;
  display: inline-block;
}
.stella-avatar.stella-avatar-sm {
  width: 56px; height: 56px;
  background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-original.jpg');
  border-width: 2px;
}
/* Override-Klassen — wenn Du explizit eine andere Stilisierung willst */
.stella-avatar.stella-avatar-warmsoft  { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-warmsoft.jpg'); }
.stella-avatar.stella-avatar-bw        { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-bw.jpg'); }
.stella-avatar.stella-avatar-duotone   { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-duotone.jpg'); }
.stella-avatar.stella-avatar-posterize { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-posterize.jpg'); }
.stella-avatar.stella-avatar-original  { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-original.jpg'); }
.stella-avatar.stella-avatar-sm.stella-avatar-warmsoft  { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-warmsoft.jpg'); }
.stella-avatar.stella-avatar-sm.stella-avatar-bw        { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-bw.jpg'); }
.stella-avatar.stella-avatar-sm.stella-avatar-wash      { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-wash.jpg'); }
.stella-avatar.stella-avatar-sm.stella-avatar-duotone   { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-duotone.jpg'); }
.stella-avatar.stella-avatar-sm.stella-avatar-posterize { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-posterize.jpg'); }

/* Sprechblase — Avatar links, Text rechts */
.stella-block {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 18px;
  background: var(--stella-bubble-bg);
  border: 1px solid var(--stella-bubble-border);
  border-left-width: 4px;
  border-radius: 12px;
  margin: 0 0 18px;
  position: relative;
}
.stella-block .stella-bubble {
  flex: 1;
  position: relative;
}
.stella-block .stella-name,
.stella-card  .stella-name {
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .02em;
  color: var(--stella-amber-dark);
  margin: 0 0 5px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.stella-block .stella-tag,
.stella-card  .stella-tag {
  font-size: .7rem;
  font-weight: 600;
  color: var(--stella-tag-text);
  background: var(--stella-tag-bg);
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.stella-block .stella-text,
.stella-card  .stella-text {
  color: var(--stella-bubble-text);
  font-size: .95rem;
  line-height: 1.5;
}
.stella-block .stella-text :first-child { margin-top: 0; }
.stella-block .stella-text :last-child  { margin-bottom: 0; }

/* Card-Variante: kompakter, mit grossem Foto links */
.stella-card {
  display: flex;
  gap: 18px;
  align-items: stretch;
  padding: 0;
  background: var(--stella-bubble-bg);
  border: 1px solid var(--stella-bubble-border);
  border-radius: 14px;
  overflow: hidden;
  margin: 0 0 18px;
}
.stella-card .stella-card-img {
  width: 220px;
  min-height: 200px;
  flex: 0 0 auto;
  /* center top: zeigt den Kopf statt der Brust beim Cover-Crop */
  background: var(--stella-amber-soft) url('https://sloppyuniverse.com/mascots/stella/stella-card-wash.jpg') center top/cover;
}
.stella-card.stella-card-warmsoft  .stella-card-img { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-card-warmsoft.jpg'); }
.stella-card.stella-card-bw        .stella-card-img { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-card-bw.jpg'); }
.stella-card.stella-card-duotone   .stella-card-img { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-card-duotone.jpg'); }
.stella-card.stella-card-original  .stella-card-img { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-card-original.jpg'); }
.stella-card.stella-card-posterize .stella-card-img { background-image: url('https://sloppyuniverse.com/mascots/stella/stella-card-posterize.jpg'); }

/* Hero — fuer Landing/grossere Auftritte als <img>. Default = posterize. */
img.stella-hero,
.stella-hero img {
  width: 100%;
  max-width: 480px;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 18px rgba(0,0,0,.12);
}
.stella-card .stella-card-body {
  flex: 1;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Anekdote — kursiv, leicht ausgegraut, hängt unter dem Haupt-Text */
.stella-anecdote-row {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--stella-tint-border);
  font-size: .85rem;
  color: var(--stella-amber-dark);
  font-style: italic;
  line-height: 1.45;
}
.stella-anecdote-row::before {
  content: "Stella sagt noch: ";
  font-style: normal;
  font-weight: 600;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--stella-amber-dark);
  display: block;
  margin-bottom: 3px;
  opacity: .8;
}
[data-bs-theme="dark"] .stella-anecdote-row,
[data-theme="dark"] .stella-anecdote-row {
  color: var(--stella-glow);
  border-top-color: var(--stella-tint-border);
}
[data-bs-theme="dark"] .stella-anecdote-row::before,
[data-theme="dark"] .stella-anecdote-row::before {
  color: var(--stella-glow);
}

/* Footer-Disclaimer */
.stella-disclaimer {
  font-size: .8rem;
  color: #4b5563;
  text-align: center;
  margin: 1.2rem auto 0;
  max-width: 720px;
  line-height: 1.5;
}
.stella-disclaimer strong { color: var(--stella-amber-dark); }
.stella-disclaimer a      { color: #1f2937; text-decoration: underline; }

/* Dark-Mode — schaltet auf den EXPLIZITEN Theme-Toggle der App
   ([data-bs-theme="dark"] ODER [data-theme="dark"]), nicht auf
   das OS-Setting. Sonst bekommt eine Light-Page bei Dark-OS-User
   helle Stella-Schrift auf cremefarbenem Hintergrund — unlesbar.
*/
[data-bs-theme="dark"] .stella-block,
[data-bs-theme="dark"] .stella-card,
[data-theme="dark"] .stella-block,
[data-theme="dark"] .stella-card {
  background: var(--stella-tint-soft);
  border-color: var(--stella-tint-border);
  color: var(--stella-glow);
}
[data-bs-theme="dark"] .stella-block .stella-name,
[data-bs-theme="dark"] .stella-card  .stella-name,
[data-theme="dark"] .stella-block .stella-name,
[data-theme="dark"] .stella-card  .stella-name { color: var(--stella-glow); }

[data-bs-theme="dark"] .stella-block .stella-text,
[data-bs-theme="dark"] .stella-card  .stella-text,
[data-theme="dark"] .stella-block .stella-text,
[data-theme="dark"] .stella-card  .stella-text { color: var(--stella-glow); }

[data-bs-theme="dark"] .stella-block .stella-tag,
[data-bs-theme="dark"] .stella-card  .stella-tag,
[data-theme="dark"] .stella-block .stella-tag,
[data-theme="dark"] .stella-card  .stella-tag {
  color: #e5e7eb;
  background: rgba(255, 255, 255, 0.10);
}
[data-bs-theme="dark"] .stella-disclaimer,
[data-theme="dark"] .stella-disclaimer { color: #cbd5e1; }
[data-bs-theme="dark"] .stella-disclaimer strong,
[data-theme="dark"] .stella-disclaimer strong { color: var(--stella-glow); }

/* Mobile: Card stackt. Bild quadratisch + center-Position 25% statt
   "center top", damit das Portrait nicht waagrecht durch den Kopf
   geschnitten wird. */
@media (max-width: 640px) {
  .stella-card { flex-direction: column; }
  .stella-card .stella-card-img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 11;
    background-position: center 22%;
  }
  .stella-block { flex-direction: column; align-items: stretch; }
  .stella-block .stella-avatar { align-self: flex-start; }
}

/* ──────────────────────────────────────────────────────────────
   Stella-Helper — Floating-Button + Panel + Tour-Engine
   Aktiviert durch <script src=".../stella-helper.js" defer>
   ────────────────────────────────────────────────────────────── */

.stella-helper-btn {
  position: fixed;
  right: 18px; bottom: 18px;
  z-index: 9000;
  width: 54px; height: 54px;
  border-radius: 50%;
  border: 2px solid var(--stella-amber);
  background: var(--stella-bubble-bg);
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
  cursor: pointer;
  padding: 0;
  display: flex; align-items: center; justify-content: center;
  transition: transform .15s ease, box-shadow .15s ease;
}
.stella-helper-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.22);
}
.stella-helper-btn:focus-visible {
  outline: 3px solid var(--stella-amber);
  outline-offset: 2px;
}
.stella-helper-btn-avatar {
  position: absolute; inset: 3px;
  border-radius: 50%;
  /* Bubble-spezifisches Foto — andere Stilisierung als der Rest der
     Stella-Vorkommen (FAQ-Card, stella-block, Page-Help). Nur die
     Floating-Bubble unten rechts nutzt dieses Crop. */
  background: url('https://sloppyuniverse.com/mascots/stella/stella-bubble.jpg?v=2026-05-08') center top/cover;
}
.stella-helper-btn-q {
  position: absolute;
  right: -4px; bottom: -4px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--stella-amber);
  color: #fff;
  font-weight: 800; font-size: .85rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
}

.stella-helper-panel {
  position: fixed;
  right: 18px; bottom: 84px;
  /* Top-Cap, damit das Panel niemals den Maintenance-Banner ueberlappt
     (Banner ist fixed top:0 mit ~38 px Hoehe). dvh nimmt die mobile
     Address-Bar mit, sonst rutscht das Panel auf iOS unter den Bezel. */
  max-height: calc(100vh - 100px);
  max-height: calc(100dvh - 100px);
  z-index: 9001;
  width: 300px;
  max-width: calc(100vw - 36px);
  background: #fff;
  border: 1px solid var(--stella-bubble-border);
  /* Modul-Akzent als dicker Border-Top (Brand-Streifen). */
  border-top: 4px solid var(--stella-amber);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0,0,0,.20);
  opacity: 0;
  transform: translateY(8px) scale(.96);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
  /* WICHTIG: overflow muss als getrennte Achsen stehen — frueher gab
     es ein nachgelagertes "overflow: hidden", das den oben gesetzten
     overflow-y:auto kaputt gemacht hat (Shorthand setzt beide Achsen).
     Ergebnis: Panel scrollte bei zu hohem Inhalt nicht. */
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,.18) transparent;
}
.stella-helper-panel::-webkit-scrollbar { width: 6px; }
.stella-helper-panel::-webkit-scrollbar-track { background: transparent; }
.stella-helper-panel::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.18); border-radius: 3px;
}
.stella-helper-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.stella-helper-panel-head {
  display: flex; flex-direction: column;
  gap: 10px; align-items: stretch;
  padding: 14px 14px 12px;
  border-bottom: 1px solid var(--stella-tint-border);
  /* Modul-getoenter Background fuer den Head — sichtbarer als das
     subtile Pastell des Panel-BG, damit Brand-Adoption auf den ersten
     Blick klar ist. */
  background: var(--stella-amber-soft);
  position: relative;
}
.stella-helper-panel-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid var(--stella-amber);
  background: url('https://sloppyuniverse.com/mascots/stella/stella-avatar-sm-original.jpg') center/cover;
  flex: 0 0 auto;
}
/* Im Panel-Head ein groesseres Landscape-Foto. Tour-Bubble +
   First-Hint-Bar nutzen weiterhin das 40px-runde Avatar.
   Aspekt 5:3, fuellt die volle Panel-Breite oben.
*/
.stella-helper-panel-head .stella-helper-panel-avatar {
  width: 80%; height: auto;
  aspect-ratio: 4 / 3;
  border-radius: 12px;
  border-width: 0;
  background-image: url('https://sloppyuniverse.com/mascots/stella/stella-popup.jpg?v=2026-05-08');
  /* Face-Zoom: 150 % Vergroesserung, Position auf das obere Drittel
     (Kopf + Brille) ausgerichtet. Sonst war der Hintergrund zu
     dominant und das Gesicht zu klein. */
  background-position: center 28%;
  background-size: 150%;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  margin: 0 auto;
}
.stella-helper-panel-name {
  font-weight: 700;
  font-size: .92rem;
  color: var(--stella-amber-dark);
  display: flex; align-items: center; gap: 8px;
}
.stella-helper-panel-tag {
  font-size: .65rem;
  font-weight: 600;
  background: var(--stella-tag-bg);
  color: var(--stella-tag-text);
  padding: 2px 7px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.stella-helper-panel-greeting {
  font-size: .82rem;
  color: var(--stella-bubble-text);
  margin-top: 2px;
}
.stella-helper-panel-close {
  position: absolute;
  top: 6px; right: 8px;
  width: 28px; height: 28px;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--stella-amber-dark);
  font-size: 1.4rem; line-height: 1;
  cursor: pointer;
}
.stella-helper-panel-close:hover { background: rgba(0,0,0,.06); }

.stella-helper-panel-list {
  list-style: none;
  margin: 0; padding: 8px 0;
}
.stella-helper-panel-list li { margin: 0; }
.stella-helper-panel-list a,
.stella-helper-panel-list button {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 10px 18px;
  color: var(--stella-bubble-text);
  font-size: .92rem;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}
.stella-helper-panel-list a:hover,
.stella-helper-panel-list button:hover {
  background: var(--stella-tint-mid);
}
.stella-helper-panel-list small { color: var(--stella-amber-dark); opacity: .75; }
.stella-helper-panel-foot {
  font-size: .72rem;
  color: var(--stella-amber-dark);
  text-align: center;
  padding: 8px 14px 12px;
  opacity: .75;
}

.stella-helper-panel-pagehelp {
  padding: 12px 16px 10px;
  border-bottom: 1px solid var(--stella-tint-border);
  max-height: 50vh;
  overflow-y: auto;
}
.stella-helper-pagehelp-title {
  font-weight: 700;
  color: var(--stella-amber-dark);
  font-size: .92rem;
  margin-bottom: 6px;
}
.stella-helper-pagehelp-body {
  font-size: .88rem;
  color: var(--stella-bubble-text);
  line-height: 1.5;
}
.stella-helper-pagehelp-body p:first-child { margin-top: 0; }
.stella-helper-pagehelp-body p:last-child  { margin-bottom: 0; }
.stella-helper-pagehelp-body ul { padding-left: 18px; margin: 6px 0; }
.stella-helper-pagehelp-body li { margin: 3px 0; }
.stella-helper-pagehelp-body code {
  background: rgba(0,0,0,.06);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: .82rem;
}
[data-bs-theme="dark"] .stella-helper-pagehelp-back,
[data-bs-theme="dark"] .stella-helper-pagehelp-title,
[data-bs-theme="dark"] .stella-helper-pagehelp-body,
[data-theme="dark"] .stella-helper-pagehelp-back,
[data-theme="dark"] .stella-helper-pagehelp-title,
[data-theme="dark"] .stella-helper-pagehelp-body { color: var(--stella-glow); }
[data-bs-theme="dark"] .stella-helper-pagehelp-body code,
[data-theme="dark"] .stella-helper-pagehelp-body code {
  background: rgba(255,255,255,.10);
  color: var(--stella-glow);
}

/* ── Tour-Highlight + Bubble ───────────────────────────────── */
.stella-tour-highlight {
  position: absolute;
  z-index: 9100;
  border: 3px solid var(--stella-amber);
  border-radius: 8px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, .42);
  pointer-events: none;
  transition: all .25s ease;
}
.stella-tour-bubble {
  position: absolute;
  z-index: 9101;
  width: 360px;
  max-width: calc(100vw - 24px);
  background: var(--stella-bubble-bg);
  border: 1px solid var(--stella-bubble-border);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0,0,0,.30);
  padding: 14px 16px;
}
.stella-tour-bubble-center {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.stella-tour-bubble-head {
  display: flex; gap: 12px; align-items: flex-start;
  margin-bottom: 8px;
}
.stella-tour-bubble-title {
  font-weight: 700;
  color: var(--stella-bubble-text);
  font-size: .95rem;
  margin-top: 2px;
}
.stella-tour-bubble-text {
  color: var(--stella-bubble-text);
  font-size: .9rem;
  line-height: 1.5;
  margin-bottom: 12px;
}
.stella-tour-bubble-foot {
  display: flex; gap: 8px; justify-content: flex-end;
  flex-wrap: wrap;
}
.stella-tour-bubble-foot button {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--stella-bubble-border);
  background: #fff;
  color: var(--stella-amber-dark);
  font-size: .85rem; font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.stella-tour-bubble-foot .stella-tour-next {
  background: var(--stella-amber);
  border-color: var(--stella-amber);
  color: #fff;
}
.stella-tour-bubble-foot button:hover { filter: brightness(1.05); }
.stella-tour-bubble-foot .stella-tour-skip {
  margin-right: auto;
  background: transparent;
  border-color: transparent;
  color: var(--stella-amber-dark);
  opacity: .75;
}

/* ── First-Hint-Bar (dezent, oben/mittig, kein Modal) ──────── */
.stella-first-hint {
  position: fixed;
  left: 50%;
  top: 14px;
  transform: translate(-50%, -120%);
  z-index: 8800;
  display: flex; align-items: center; gap: 12px;
  background: var(--stella-bubble-bg);
  border: 1px solid var(--stella-bubble-border);
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.15);
  max-width: calc(100vw - 24px);
  transition: transform .25s ease;
}
.stella-first-hint.is-open { transform: translate(-50%, 0); }
.stella-first-hint-text {
  font-size: .88rem;
  color: var(--stella-bubble-text);
}
.stella-first-hint-text strong { color: var(--stella-amber-dark); }
.stella-first-hint-yes,
.stella-first-hint-later {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--stella-bubble-border);
  background: #fff;
  color: var(--stella-amber-dark);
  font-size: .82rem; font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.stella-first-hint-yes {
  background: var(--stella-amber);
  border-color: var(--stella-amber);
  color: #fff;
}
.stella-first-hint-x {
  background: transparent;
  border: 0;
  color: var(--stella-amber-dark);
  font-size: 1.2rem; line-height: 1;
  width: 24px; height: 24px; padding: 0;
  cursor: pointer;
}

/* Dark-Mode-Overrides fuer Helper-Komponenten */
[data-bs-theme="dark"] .stella-helper-btn,
[data-bs-theme="dark"] .stella-helper-panel,
[data-bs-theme="dark"] .stella-tour-bubble,
[data-bs-theme="dark"] .stella-first-hint,
[data-theme="dark"] .stella-helper-btn,
[data-theme="dark"] .stella-helper-panel,
[data-theme="dark"] .stella-tour-bubble,
[data-theme="dark"] .stella-first-hint {
  background: #2a2118;
  border-color: var(--stella-tint-border);
  color: var(--stella-glow);
}
[data-bs-theme="dark"] .stella-helper-panel-name,
[data-bs-theme="dark"] .stella-helper-panel-greeting,
[data-bs-theme="dark"] .stella-helper-panel-list a,
[data-bs-theme="dark"] .stella-helper-panel-list button,
[data-bs-theme="dark"] .stella-helper-panel-list small,
[data-bs-theme="dark"] .stella-helper-panel-foot,
[data-bs-theme="dark"] .stella-helper-panel-close,
[data-bs-theme="dark"] .stella-tour-bubble-title,
[data-bs-theme="dark"] .stella-tour-bubble-text,
[data-bs-theme="dark"] .stella-first-hint-text,
[data-bs-theme="dark"] .stella-first-hint-text strong,
[data-bs-theme="dark"] .stella-first-hint-x,
[data-theme="dark"] .stella-helper-panel-name,
[data-theme="dark"] .stella-helper-panel-greeting,
[data-theme="dark"] .stella-helper-panel-list a,
[data-theme="dark"] .stella-helper-panel-list button,
[data-theme="dark"] .stella-helper-panel-list small,
[data-theme="dark"] .stella-helper-panel-foot,
[data-theme="dark"] .stella-helper-panel-close,
[data-theme="dark"] .stella-tour-bubble-title,
[data-theme="dark"] .stella-tour-bubble-text,
[data-theme="dark"] .stella-first-hint-text,
[data-theme="dark"] .stella-first-hint-text strong,
[data-theme="dark"] .stella-first-hint-x { color: var(--stella-glow); }

[data-bs-theme="dark"] .stella-helper-panel-tag,
[data-theme="dark"] .stella-helper-panel-tag {
  color: #e5e7eb;
  background: rgba(255,255,255,.10);
}
/* Im Dark-Mode darf der Panel-Head NICHT die helle --stella-amber-soft
   behalten — sonst kollidiert helle Glow-Schrift mit hellem BG. Stattdessen
   ein dunkler Modul-Tint (transparent ueber dem dunklen Panel-BG). */
[data-bs-theme="dark"] .stella-helper-panel-head,
[data-theme="dark"] .stella-helper-panel-head {
  background: var(--stella-tint-mid);
}
[data-bs-theme="dark"] .stella-helper-panel-list a:hover,
[data-bs-theme="dark"] .stella-helper-panel-list button:hover,
[data-theme="dark"] .stella-helper-panel-list a:hover,
[data-theme="dark"] .stella-helper-panel-list button:hover {
  background: var(--stella-tint-mid);
}
[data-bs-theme="dark"] .stella-tour-bubble-foot button,
[data-bs-theme="dark"] .stella-first-hint-later,
[data-theme="dark"] .stella-tour-bubble-foot button,
[data-theme="dark"] .stella-first-hint-later {
  background: #1c1611;
  color: var(--stella-glow);
}
[data-bs-theme="dark"] .stella-tour-bubble-foot .stella-tour-next,
[data-bs-theme="dark"] .stella-first-hint-yes,
[data-theme="dark"] .stella-tour-bubble-foot .stella-tour-next,
[data-theme="dark"] .stella-first-hint-yes {
  background: var(--stella-amber);
  color: #1c1611;
}

/* Mobile-Tweaks fuer Helper */
@media (max-width: 640px) {
  .stella-helper-btn { right: 12px; bottom: 12px; width: 50px; height: 50px; }
  .stella-helper-panel { right: 12px; bottom: 72px; width: calc(100vw - 24px); }
  .stella-tour-bubble { width: calc(100vw - 24px); }
}
