/* ═══ Tutorial (js/app/tour.js): Startseite und Fast Scan ═══
   Alles außer dem gezeigten Bereich ist abgedunkelt (Ausschnitt mit großem Schatten),
   eine Sprechblase daneben erklärt ihn. */
.gg-tour { position: fixed; inset: 0; z-index: 100000; animation: ggTourIn .24s ease both; }
.gg-tour.gg-tour-out { animation: ggTourOut .22s ease forwards; pointer-events: none; }
@keyframes ggTourIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ggTourOut { from { opacity: 1; } to { opacity: 0; } }
.gg-tour-block { position: absolute; inset: 0; }
.gg-tour-hole {
  position: fixed; border-radius: 18px; pointer-events: none;
  box-shadow: 0 0 0 9999px rgba(var(--a-05030e,5,3,14),0.68), 0 0 0 2px rgba(var(--a-d8b4fe,216,180,254),0.9), 0 0 26px 4px rgba(var(--a-a855f7,168,85,247),0.45);
  transition: left .32s cubic-bezier(.4,0,.2,1), top .32s cubic-bezier(.4,0,.2,1), width .32s cubic-bezier(.4,0,.2,1), height .32s cubic-bezier(.4,0,.2,1), opacity .2s ease;
}
/* Nichts zu zeigen (Element gerade nicht sichtbar): nur abdunkeln */
.gg-tour-nohole .gg-tour-hole { left: 50% !important; top: 50% !important; width: 0 !important; height: 0 !important; opacity: 0; box-shadow: 0 0 0 9999px rgba(var(--a-05030e,5,3,14),0.68); }
.gg-tour-tip {
  position: fixed; left: 12px; top: 12px; box-sizing: border-box; padding: 14px 16px 12px; border-radius: 22px;
  color: #fff; text-align: left;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  background: linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0) 40%), rgb(var(--a-1c1332,28,19,50));
  border: 1px solid rgba(255,255,255,0.14); border-top-color: rgba(255,255,255,0.30);
  box-shadow: 0 18px 44px -12px rgba(0,0,0,0.7);
  transition: left .32s cubic-bezier(.4,0,.2,1), top .32s cubic-bezier(.4,0,.2,1);
}
.gg-tour-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gg-tour-step { font-size: 12px; font-weight: 700; color: rgba(var(--a-e9d5ff,233,213,255),0.75); font-variant-numeric: tabular-nums; }
.gg-tour-skip { border: 0; background: none; padding: 4px 2px; margin: 0; font: inherit; font-size: 13px; font-weight: 600; color: rgba(245,245,247,0.6); cursor: pointer; }
.gg-tour-skip:hover { color: #fff; }
.gg-tour-title { margin: 6px 0 4px; padding: 0; font-size: 16px; font-weight: 800; line-height: 1.3; letter-spacing: -0.01em; color: #fff; }
.gg-tour-desc { margin: 0; font-size: 14px; line-height: 1.45; color: rgba(245,245,247,0.82); }
.gg-tour-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.gg-tour-dots { display: flex; gap: 6px; }
.gg-tour-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,0.25); transition: background .2s, width .2s; }
.gg-tour-dots i.on { width: 18px; border-radius: 4px; background: rgb(var(--a-d8b4fe,216,180,254)); }
.gg-tour-next {
  border: 1px solid rgba(255,255,255,0.18); border-top-color: rgba(255,255,255,0.36); border-radius: 100px;
  padding: 8px 18px; margin: 0; font: inherit; font-size: 14px; font-weight: 700; color: #fff; cursor: pointer; white-space: nowrap;
  background: linear-gradient(135deg, rgb(var(--a-a855f7,168,85,247)), rgb(var(--a-c026d3,192,38,211)));
}
.gg-tour-next:active { transform: scale(.97); }
.gg-tour-next:focus-visible, .gg-tour-skip:focus-visible { outline: 2px solid rgba(var(--a-d8b4fe,216,180,254),0.9); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .gg-tour-hole, .gg-tour-tip { transition: none; }
}
