/* ============================================================
   BYELINE – DESIGN SYSTEM
   Helles, urbanes Theme: weisser Hintergrund, Wellen-Grafik
   und Wasserspritzer, Aqua/Blau-Akzente.
   ============================================================ */
:root{
  --bg:#f7fafc;
  --bg-soft:#eef5f8;
  --card:#ffffff;
  --card-2:#e8f2f6;
  --line:rgba(15,55,70,.10);
  --txt:#0b1f28;
  --txt-dim:#3d5a68;
  --txt-faint:#7a93a0;
  --aqua:#0e7490;
  --aqua-bright:#06b6d4;
  --blue:#1d4ed8;
  --violet:#0f766e;
  --lime:#4d7c0f;
  --lime-bright:#65a30d;
  --amber:#d97706;
  --red:#dc2626;
  --twint:#01b0a8;
  --grad:linear-gradient(135deg,#06b6d4 0%,#0e7490 55%,#155e75 100%);
  --grad-soft:linear-gradient(135deg,rgba(6,182,212,.10),rgba(14,116,144,.07));
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 16px 40px rgba(15,55,70,.08);
  --shadow-sm:0 4px 16px rgba(15,55,70,.05);
  --font-head:'Space Grotesk','Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --on-accent:#ffffff;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:clip;
  max-width:100%;
}
body{
  background:var(--bg);
  color:var(--txt);
  font-family:var(--font-body);
  min-height:100vh;
  line-height:1.55;
  overflow-x:clip;
  max-width:100%;
}
h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.02em;line-height:1.15}
button{font-family:var(--font-body);cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--txt);
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:.8rem 1rem;width:100%;outline:none;
  transition:border-color .2s;
}
input:focus,select:focus,textarea:focus{border-color:var(--aqua-bright)}
::placeholder{color:var(--txt-faint)}
.view{display:none;min-height:100vh}
.view.active{display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 1.25rem}
.wrap-narrow{max-width:520px;margin:0 auto;padding:0 1.25rem}

/* ============================================================
   HINTERGRUND: WELLE & WASSERSPRITZER
   Fix hinter allen Ansichten. Zwei animierte Wellen am unteren
   Rand plus verstreute Wassertropfen und Spritzer-Punkte.
   ============================================================ */
.bg-deco{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:#fff;width:100%;max-width:100vw}
/* Spritzer: viele kleine Wasserpunkte, verstreut über die Fläche */
.bg-deco::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 6% 12%,  rgba(34,211,238,.22) 0 5px, transparent 6px),
    radial-gradient(circle at 11% 26%, rgba(59,130,246,.16) 0 3px, transparent 4px),
    radial-gradient(circle at 19% 9%,  rgba(34,211,238,.14) 0 8px, transparent 9px),
    radial-gradient(circle at 27% 21%, rgba(14,165,233,.18) 0 4px, transparent 5px),
    radial-gradient(circle at 36% 7%,  rgba(34,211,238,.20) 0 3px, transparent 4px),
    radial-gradient(circle at 45% 16%, rgba(59,130,246,.12) 0 6px, transparent 7px),
    radial-gradient(circle at 55% 8%,  rgba(34,211,238,.16) 0 4px, transparent 5px),
    radial-gradient(circle at 64% 19%, rgba(14,165,233,.14) 0 3px, transparent 4px),
    radial-gradient(circle at 73% 6%,  rgba(34,211,238,.22) 0 6px, transparent 7px),
    radial-gradient(circle at 82% 15%, rgba(59,130,246,.16) 0 4px, transparent 5px),
    radial-gradient(circle at 91% 9%,  rgba(34,211,238,.18) 0 7px, transparent 8px),
    radial-gradient(circle at 96% 24%, rgba(14,165,233,.14) 0 4px, transparent 5px),
    radial-gradient(circle at 9% 44%,  rgba(34,211,238,.12) 0 5px, transparent 6px),
    radial-gradient(circle at 24% 38%, rgba(59,130,246,.10) 0 3px, transparent 4px),
    radial-gradient(circle at 41% 33%, rgba(34,211,238,.10) 0 6px, transparent 7px),
    radial-gradient(circle at 58% 41%, rgba(14,165,233,.10) 0 4px, transparent 5px),
    radial-gradient(circle at 76% 35%, rgba(34,211,238,.12) 0 5px, transparent 6px),
    radial-gradient(circle at 89% 43%, rgba(59,130,246,.10) 0 3px, transparent 4px),
    radial-gradient(circle at 15% 58%, rgba(34,211,238,.10) 0 4px, transparent 5px),
    radial-gradient(circle at 47% 55%, rgba(14,165,233,.08) 0 5px, transparent 6px),
    radial-gradient(circle at 69% 57%, rgba(34,211,238,.10) 0 3px, transparent 4px),
    radial-gradient(circle at 93% 60%, rgba(59,130,246,.08) 0 6px, transparent 7px);
  animation:splashpulse 7s ease-in-out infinite;
}
@keyframes splashpulse{
  0%,100%{opacity:.7}
  50%{opacity:1}
}
/* Sanftes Aqua-Leuchten – driftet leicht */
.bg-deco::after{
  content:"";position:absolute;inset:-10%;
  background:
    radial-gradient(700px 420px at 88% -6%,rgba(34,211,238,.18),transparent 60%),
    radial-gradient(600px 400px at -8% 22%,rgba(59,130,246,.14),transparent 60%),
    radial-gradient(480px 320px at 50% 40%,rgba(14,165,233,.07),transparent 65%);
  animation:glowdrift 18s ease-in-out infinite alternate;
}
@keyframes glowdrift{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(-4%,3%) scale(1.06)}
}
/* Fallende/schwebende Wassertropfen */
.bg-deco .drop{
  position:absolute;display:block;
  border-radius:52% 52% 52% 4%;
  transform:rotate(-45deg);
  background:linear-gradient(135deg,rgba(34,211,238,.48),rgba(59,130,246,.28));
  animation:dropfloat 6.5s ease-in-out infinite;
  box-shadow:0 0 12px rgba(34,211,238,.25);
}
@keyframes dropfloat{
  0%,100%{transform:rotate(-45deg) translate(0,0) scale(1);opacity:.85}
  40%{transform:rotate(-45deg) translate(12px,-22px) scale(1.08);opacity:.5}
  70%{transform:rotate(-45deg) translate(-6px,-10px) scale(.95);opacity:.7}
}
.bg-deco .drop:nth-child(1){top:9%;left:4%;width:16px;height:16px;animation-delay:0s}
.bg-deco .drop:nth-child(2){top:18%;left:14%;width:10px;height:10px;animation-delay:1.2s;animation-duration:5.5s}
.bg-deco .drop:nth-child(3){top:6%;left:30%;width:13px;height:13px;animation-delay:2.4s}
.bg-deco .drop:nth-child(4){top:22%;left:44%;width:9px;height:9px;animation-delay:.7s;animation-duration:7s}
.bg-deco .drop:nth-child(5){top:8%;left:58%;width:15px;height:15px;animation-delay:3.1s}
.bg-deco .drop:nth-child(6){top:24%;left:70%;width:11px;height:11px;animation-delay:1.8s;animation-duration:5s}
.bg-deco .drop:nth-child(7){top:7%;left:84%;width:14px;height:14px;animation-delay:.4s}
.bg-deco .drop:nth-child(8){top:26%;left:93%;width:9px;height:9px;animation-delay:2.9s;animation-duration:6s}
.bg-deco .drop:nth-child(9){top:40%;left:8%;width:11px;height:11px;animation-delay:1.5s;animation-duration:6.5s}
.bg-deco .drop:nth-child(10){top:47%;left:36%;width:8px;height:8px;animation-delay:3.6s}
.bg-deco .drop:nth-child(11){top:42%;left:63%;width:12px;height:12px;animation-delay:.9s;animation-duration:5.5s}
.bg-deco .drop:nth-child(12){top:50%;left:88%;width:10px;height:10px;animation-delay:2.2s}
/* Aufsteigende Blasen */
.bg-deco .bubble{
  position:absolute;display:block;border-radius:50%;
  border:1.5px solid rgba(34,211,238,.35);
  background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),rgba(34,211,238,.12) 55%,rgba(59,130,246,.08));
  animation:bubblerise 11s linear infinite;
  opacity:0;
}
@keyframes bubblerise{
  0%{transform:translateY(20px) scale(.6);opacity:0}
  12%{opacity:.7}
  80%{opacity:.45}
  100%{transform:translateY(-110vh) scale(1.15);opacity:0}
}
.bg-deco .bubble:nth-child(13){left:8%;bottom:2%;width:14px;height:14px;animation-delay:0s;animation-duration:10s}
.bg-deco .bubble:nth-child(14){left:22%;bottom:0;width:9px;height:9px;animation-delay:2.2s;animation-duration:13s}
.bg-deco .bubble:nth-child(15){left:38%;bottom:4%;width:18px;height:18px;animation-delay:4.5s;animation-duration:12s}
.bg-deco .bubble:nth-child(16){left:52%;bottom:1%;width:11px;height:11px;animation-delay:1.1s;animation-duration:9s}
.bg-deco .bubble:nth-child(17){left:66%;bottom:3%;width:15px;height:15px;animation-delay:3.4s;animation-duration:14s}
.bg-deco .bubble:nth-child(18){left:78%;bottom:0;width:8px;height:8px;animation-delay:5.8s;animation-duration:11s}
.bg-deco .bubble:nth-child(19){left:88%;bottom:5%;width:12px;height:12px;animation-delay:.8s;animation-duration:10.5s}
.bg-deco .bubble:nth-child(20){left:44%;bottom:2%;width:7px;height:7px;animation-delay:6.5s;animation-duration:8.5s}
/* Wellen am unteren Rand (drei Ebenen, gegenläufig; 2× tilebar, Naht C1-stetig) */
.bg-deco .wave{
  position:absolute;bottom:0;left:-1px;
  width:calc(200% + 2px);height:clamp(140px,24vh,300px);
}
.bg-deco .wave-fill--far{fill:rgba(59,130,246,.14)}
.bg-deco .wave-fill--back{fill:rgba(34,211,238,.24)}
.bg-deco .wave-fill--front{fill:rgba(14,165,233,.32)}
.bg-deco .wave-far{opacity:.45;height:clamp(160px,28vh,340px);animation:wavemove 28s linear infinite reverse}
.bg-deco .wave-back{opacity:.55;animation:wavemove 16s linear infinite}
.bg-deco .wave-front{opacity:.9;animation:wavemove 10s linear infinite}
@keyframes wavemove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){
  .bg-deco .wave,.bg-deco .drop,.bg-deco .bubble,
  .bg-deco::before,.bg-deco::after{animation:none}
  .mail-unread-banner,.mail-unread-banner-ico,.mail-item.unread,
  .mail-neu-pill,.mail-folder-badge.has-unread,.atab.has-new .cnt,.atab .cnt.cnt-neu{
    animation:none !important;
  }
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.95rem 1.7rem;border-radius:999px;font-weight:700;font-size:1rem;
  transition:transform .15s,box-shadow .15s,opacity .15s;user-select:none;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--grad);color:var(--on-accent,#fff);box-shadow:0 8px 24px rgba(14,116,144,.22)}
.btn-primary:hover{box-shadow:0 12px 32px rgba(14,116,144,.32)}
.btn-ghost{border:1px solid var(--line);color:var(--txt);background:rgba(255,255,255,.7)}
.btn-ghost:hover{border-color:var(--aqua-bright);color:var(--aqua)}
.btn-danger{background:rgba(220,38,38,.08);color:var(--red);border:1px solid rgba(220,38,38,.25)}
.btn-lime{background:var(--lime-bright);color:#1d2b04}
.btn-drive-cta{
  position:relative;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 0 0 0 rgba(132,204,22,.55),0 10px 28px rgba(101,163,13,.35);
  animation:driveCtaPulse 1.8s ease-in-out infinite;
  z-index:1;
}
.btn-drive-cta:hover{
  box-shadow:0 0 0 6px rgba(132,204,22,.28),0 14px 36px rgba(101,163,13,.45);
}
@keyframes driveCtaPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(132,204,22,.55),0 10px 28px rgba(101,163,13,.35)}
  50%{transform:scale(1.045);box-shadow:0 0 0 12px rgba(132,204,22,0),0 14px 36px rgba(101,163,13,.5)}
}
@media (prefers-reduced-motion: reduce){
  .btn-drive-cta{animation:none}
}
.btn-amber{background:#fbbf24;color:#3d2c02}
.btn-twint{background:var(--twint);color:#fff}
.btn-block{width:100%}
.btn-sm{padding:.55rem 1.05rem;font-size:.87rem;min-height:40px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
@media (pointer: coarse){
  .btn{min-height:44px}
  .btn-sm{min-height:44px;padding:.65rem 1.1rem}
  .chip{min-height:44px;padding:.65rem 1.15rem}
  #view-gast .chip{min-height:40px;padding:.5rem 1.05rem}
  .atab{min-height:44px;padding:.65rem 1.15rem}
}

/* ---- Chips / Badges ---- */
.badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.3rem .75rem;border-radius:999px;
}
.badge-aqua{background:rgba(8,145,178,.10);color:var(--aqua);border:1px solid rgba(8,145,178,.3)}
.badge-blue{background:rgba(37,99,235,.12);color:var(--blue);border:1px solid rgba(37,99,235,.35)}
.tenant-row.off-season{
  background:rgba(37,99,235,.14);
  border-color:rgba(37,99,235,.45);
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.18);
}
.tenant-row.off-season > div:first-child b,
.tenant-row.off-season small{color:inherit}
.g-offseason{
  text-align:center;padding:2.75rem 1.25rem 2.25rem;margin:1rem 0 1.5rem;
  border-radius:18px;background:linear-gradient(160deg,rgba(37,99,235,.10),rgba(8,145,178,.06));
  border:1px solid rgba(37,99,235,.22);
}
.g-offseason .emo{font-size:2.4rem;display:block;margin-bottom:.75rem}
.g-offseason h2{font-family:var(--font-head);font-size:1.35rem;margin:0 0 .55rem;color:var(--blue)}
.g-offseason p{margin:0;color:var(--txt-dim);line-height:1.5;font-size:.95rem}
.badge-lime{background:rgba(101,163,13,.10);color:var(--lime);border:1px solid rgba(101,163,13,.3)}
.badge-amber{background:rgba(217,119,6,.10);color:var(--amber);border:1px solid rgba(217,119,6,.3)}
.badge-red{background:rgba(220,38,38,.08);color:var(--red);border:1px solid rgba(220,38,38,.25)}
.badge-violet{background:rgba(124,58,237,.10);color:var(--violet);border:1px solid rgba(124,58,237,.3)}

/* ---- Cards ---- */
.card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);
}
.glass{background:rgba(255,255,255,.78);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}

/* ============================================================
   LANDING PAGE
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:60;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.nav.open{z-index:70}
.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:.65rem 0;gap:.75rem;position:relative}
.logo{
  display:flex;align-items:center;gap:.55rem;
  font-family:Inter,var(--font-body),system-ui,sans-serif;
  font-weight:700;font-size:1.28rem;letter-spacing:-.03em;
  flex-shrink:0;color:#0f172a;line-height:1;
}
.logo-img{
  display:block;height:1.85rem;width:auto;
  max-width:min(188px,46vw);
  object-fit:contain;background:transparent;
}
.logo-img--lg{height:2.15rem;max-width:min(220px,70vw)}
.logo-suffix{
  font-weight:700;font-size:1.05rem;letter-spacing:-.03em;
  color:#939496;line-height:1;white-space:nowrap;
}
#view-drive-agb .logo-suffix{color:#c2410c}
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;border-radius:12px;
  border:1px solid var(--line);background:var(--card);flex-shrink:0;
}
.nav-toggle span{display:block;height:2px;background:var(--txt);border-radius:2px;transition:transform .2s,opacity .2s}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.logo-mark{
  width:38px;height:38px;border-radius:12px;background:var(--grad);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  box-shadow:0 6px 18px rgba(34,211,238,.4);
}
.nav-links{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.nav-interest{
  font-weight:800;
  box-shadow:0 8px 22px rgba(132,204,22,.32);
  border:1px solid rgba(132,204,22,.45);
}
.nav-links a{color:var(--txt-dim);text-decoration:none;font-weight:600;font-size:.92rem;padding:.5rem .85rem;border-radius:10px;transition:color .2s}
.nav-links a:hover{color:var(--txt)}
.lang-switch{
  display:inline-flex;border:1px solid var(--line);border-radius:999px;
  overflow:hidden;background:var(--bg-soft);flex-shrink:0;
}
.lang-btn{
  padding:.45rem .6rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;
  min-width:36px;min-height:36px;color:var(--txt-dim);transition:background .15s,color .15s;
}
.lang-btn.on{background:var(--aqua);color:var(--on-accent,#fff)}
.gast-header-actions{display:flex;align-items:center;flex-shrink:0}
.gast-header-top > div:first-child{min-width:0;flex:1 1 auto;overflow:hidden;padding-right:.35rem}
.gast-badi-name{min-width:0}
.gast-badi-name .tenant-logo-wrap{flex-shrink:0}
.gast-header-actions .lang-switch{flex-shrink:0}
@media (pointer: coarse){
  .lang-btn{min-width:40px;min-height:40px;padding:.5rem .65rem}
}
@media(max-width:760px){
  .nav-toggle{display:flex}
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:.45rem;
    padding:1rem 1.25rem 1.25rem;background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    box-shadow:0 12px 30px rgba(8,60,90,.10);
  }
  .nav.open .nav-links{display:flex}
  .nav-links a.hide-m{display:block;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--bg-soft)}
  .nav-links .btn{width:100%;justify-content:center;min-height:44px}
  .lang-switch{width:100%;justify-content:center}
  .lang-btn{flex:1}
}

.hero{padding:5.5rem 0 4rem;text-align:center;position:relative}
.hero h1{
  font-size:clamp(2.4rem,6vw,4.4rem);font-weight:700;margin:1.3rem auto .3rem;max-width:850px;
}
.hero h1 .grad-txt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--txt-dim);font-size:clamp(1.05rem,2vw,1.3rem);max-width:640px;margin:1.2rem auto 2.2rem}
.hero-cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
.hero-stats{display:flex;gap:2.5rem;justify-content:center;margin-top:3.5rem;flex-wrap:wrap}
.hero-stat{text-align:center}
.hero-stat b{font-family:var(--font-head);font-size:1.9rem;display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stat span{color:var(--txt-faint);font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}

.section{padding:4.5rem 0}
.section-head{text-align:center;max-width:640px;margin:0 auto 3rem}
.section-head h2{font-size:clamp(1.7rem,4vw,2.6rem);margin-bottom:.8rem}
.section-head p{color:var(--txt-dim);font-size:1.05rem}

.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.2rem}
.step{position:relative;padding:1.8rem 1.5rem}
.step-num{
  font-family:var(--font-head);font-weight:700;font-size:.85rem;color:var(--aqua);
  border:1px solid rgba(8,145,178,.35);border-radius:999px;
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;
}
.step .emo{font-size:2.1rem;display:block;margin-bottom:.7rem}
.step h3{font-size:1.12rem;margin-bottom:.45rem}
.step p{color:var(--txt-dim);font-size:.93rem}

.drive-promo{
  max-width:820px;margin:0 auto;padding:clamp(1.6rem,4vw,2.6rem);
  border-radius:28px;border:1px solid rgba(34,211,238,.35);
  background:
    radial-gradient(ellipse 80% 70% at 10% 0%, rgba(163,230,53,.14), transparent 55%),
    radial-gradient(ellipse 70% 60% at 100% 20%, rgba(34,211,238,.12), transparent 50%),
    rgba(255,255,255,.78);
  box-shadow:var(--shadow);
}
.drive-promo h2{
  font-size:clamp(1.55rem,3.5vw,2.35rem);margin:.85rem 0 .75rem;max-width:18ch;
}
.drive-promo-lead{
  color:var(--txt-dim);font-size:1.05rem;line-height:1.55;max-width:52ch;margin:0 0 1.25rem;
}
.drive-promo-points{
  list-style:none;display:grid;gap:.7rem;margin:0;padding:0;
}
.drive-promo-points li{
  display:flex;gap:.65rem;align-items:flex-start;
  color:var(--txt-dim);font-size:.95rem;line-height:1.4;
}
.drive-promo-points li::before{
  content:"✓";color:var(--lime);font-weight:800;flex:0 0 auto;margin-top:.05rem;
}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.2rem}
.feature{display:flex;gap:1rem;padding:1.5rem;align-items:flex-start}
.feature .ico{
  flex:0 0 48px;height:48px;border-radius:14px;background:var(--grad-soft);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:1.4rem;
}
.feature h3{font-size:1.05rem;margin-bottom:.3rem}
.feature p{color:var(--txt-dim);font-size:.9rem}

.pricing-card{
  max-width:440px;margin:0 auto;text-align:center;position:relative;overflow:hidden;
  border:1px solid rgba(34,211,238,.45);box-shadow:var(--shadow);
}
.pricing-card::before{
  content:"";position:absolute;inset:-2px;z-index:-1;
  background:var(--grad);opacity:.05;
}
.price-tag{font-family:var(--font-head);font-size:4rem;font-weight:700;line-height:1;margin:.8rem 0 .2rem}
.price-tag small{font-size:1.2rem;color:var(--txt-dim);font-weight:500}
.pricing-list{list-style:none;text-align:left;margin:1.6rem 0;display:grid;gap:.65rem}
.pricing-list li{display:flex;gap:.6rem;align-items:flex-start;color:var(--txt-dim);font-size:.95rem}
.pricing-list li::before{content:"✓";color:var(--lime);font-weight:800;flex:0 0 auto}

.qr-demo{
  display:flex;flex-wrap:wrap;gap:2.5rem;align-items:center;justify-content:center;
}
.qr-frame{
  background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow);
  display:inline-block;
}
.qr-frame canvas{display:block;border-radius:8px}
.qr-caption{color:var(--txt-faint);font-size:.85rem;text-align:center;margin-top:.9rem;font-weight:600}

.footer{border-top:1px solid var(--line);padding:2.5rem 0;color:var(--txt-faint);font-size:.88rem;text-align:center;background:rgba(255,255,255,.7)}
.footer .roles{display:flex;gap:1rem;justify-content:center;margin-bottom:1.2rem;flex-wrap:wrap}
.footer .legal-links{display:flex;gap:1.2rem;justify-content:center;margin-bottom:1rem;flex-wrap:wrap}
.footer .legal-links a{color:var(--txt-dim);text-decoration:none;font-size:.85rem}
.footer .legal-links a:hover{color:var(--aqua);text-decoration:underline}
.legal-links-bar{padding:.85rem 1rem;text-align:center;border-top:1px solid var(--line);background:rgba(255,255,255,.5)}
.legal-links-bar--admin{margin-top:0;border-top:1px solid var(--line)}
.legal-links-bar--dark{background:rgba(0,0,0,.25);border-top-color:rgba(255,255,255,.12)}
.legal-links-bar--dark .legal-links a{color:rgba(255,255,255,.65)}
.legal-links-bar--dark .legal-links a:hover{color:#fff}
.legal-links--compact{display:flex;flex-wrap:wrap;gap:.85rem;margin:0;justify-content:center}
.legal-links--compact a{font-size:.75rem;color:var(--txt-faint)}
.compliance-doc{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:1rem}
.footer-brand{display:flex;justify-content:center;margin-bottom:1rem}
.footer-payments{display:flex;flex-direction:column;align-items:center;gap:.55rem;margin:0 0 1.35rem}
.footer-payments-label{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--txt-faint)}
.footer-pay-logos{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap}
.footer-pay-logos li{margin:0;padding:0;line-height:0}
.footer-pay-logos img{
  display:block;
  height:36px;
  width:auto;
  border-radius:6px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
}
.company-logo{
  height:42px;
  width:auto;
  max-width:min(280px,78vw);
  object-fit:contain;
  display:block;
}
.company-logo--on-dark{filter:brightness(0) invert(1)}
.legal-company-header .company-logo{height:52px;max-width:220px}
.company-logo--sm{height:34px;max-width:180px}
.legal-company-header{
  display:flex;
  align-items:center;
  gap:1.25rem;
  flex-wrap:wrap;
  margin:.5rem 0 1.25rem;
}
.legal-company-header .legal-company-text{flex:1;min-width:min(100%,220px)}

.legal-doc{max-width:720px;margin:0 auto;padding:2rem 1rem 4rem}
.legal-doc h1{font-family:var(--font-head);font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:.5rem}
.legal-doc h2{font-family:var(--font-head);font-size:1.15rem;margin:2rem 0 .75rem;color:var(--txt)}
.legal-doc p,.legal-doc li{color:var(--txt-dim);line-height:1.65;margin-bottom:.75rem}
.legal-doc ul{margin:.5rem 0 1rem 1.2rem}
.legal-doc a{color:var(--blue)}
.legal-meta{color:var(--txt-faint);font-size:.88rem;margin-bottom:1.5rem}

/* ============================================================
   GAST-ANSICHT (Handy) – Venue Stage
   ============================================================ */
.phone-shell{max-width:520px;margin:0 auto;min-height:100vh;position:relative;padding-bottom:120px}
#view-gast .phone-shell{background:transparent}
.gast-header{
  position:relative;z-index:2;
  padding:max(.55rem, env(safe-area-inset-top, 0px)) max(1.2rem, env(safe-area-inset-right, 0px)) .85rem max(1.2rem, env(safe-area-inset-left, 0px));
  border-bottom:none;background:transparent;
}
.gast-hero{position:relative;isolation:isolate}
.gast-hero-glow{
  position:absolute;inset:-55% -30% -35% -30%;
  pointer-events:none;z-index:0;opacity:.95;
  background:
    radial-gradient(ellipse 70% 55% at 15% 20%, color-mix(in srgb, var(--aqua-bright) 30%, transparent), transparent 70%),
    radial-gradient(ellipse 55% 45% at 90% 10%, color-mix(in srgb, var(--aqua) 18%, transparent), transparent 65%);
  animation:gastHeroDrift 18s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes gastHeroDrift{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(3%,2%,0) scale(1.06)}
}
.gast-hero-meta{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:.45rem;margin-bottom:.4rem;
}
.gast-badi-row{
  position:relative;z-index:1;
  display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;
}
.gast-badi-name{
  font-family:var(--font-display, var(--font-head));
  font-weight:800;font-size:clamp(2.25rem, 9.5vw, 3.35rem);
  display:flex;align-items:flex-start;gap:.65rem;letter-spacing:-.05em;line-height:.94;
  min-width:0;flex:1 1 auto;
}
.gast-badi-name h1{
  margin:0;font:inherit;letter-spacing:inherit;line-height:inherit;
  color:var(--txt);text-wrap:balance;max-width:14ch;
}
.gast-account-btn{
  flex-shrink:0;align-self:center;
  border:1.5px solid var(--line);
  background:color-mix(in srgb, var(--card, #fff) 92%, transparent);
  color:var(--txt);
  border-radius:999px;
  padding:.62rem 1.15rem;
  min-height:44px;
  font-size:.9rem;font-weight:750;letter-spacing:.01em;
  line-height:1.2;cursor:pointer;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:color .15s, border-color .15s, background .15s, transform .12s;
}
.gast-account-btn:hover{
  color:var(--txt);
  border-color:color-mix(in srgb, var(--aqua) 55%, var(--line));
  background:color-mix(in srgb, var(--aqua) 10%, var(--card, #fff));
}
.gast-account-btn:active{transform:scale(.97)}
.gast-account-btn.is-logged{
  color:var(--aqua);
  border-color:color-mix(in srgb, var(--aqua) 50%, var(--line));
  background:color-mix(in srgb, var(--aqua) 12%, var(--card, #fff));
}
.gast-online-dot,.gast-badi-name .dot,.gast-compact-dot{
  width:9px;height:9px;border-radius:50%;flex-shrink:0;
  background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:none;
}
.gast-online-dot.is-closed,.gast-compact-dot.is-closed{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.18)}
.gast-online-dot.is-paused,.gast-compact-dot.is-paused{background:#d97706;box-shadow:0 0 0 3px rgba(217,119,6,.18)}
.gast-badi-name .tenant-logo-wrap:not(.has-logo){display:none}
.gast-badi-name .tenant-logo-wrap.has-logo{
  width:clamp(2.5rem, 8vw, 3.4rem);height:clamp(2.5rem, 8vw, 3.4rem);
  border-radius:16px;overflow:hidden;flex-shrink:0;
}
.gast-status{
  margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.gast-status.is-open,.gast-compact-status.is-open{color:#16a34a}
.gast-status.is-closed,.gast-compact-status.is-closed{color:#dc2626}
.gast-status.is-paused,.gast-compact-status.is-paused{color:#d97706}

/* Sticky: kompakter Name + Kategorie-Chips */
.gast-sticky-chrome{
  position:sticky;top:0;z-index:50;
  background:var(--gast-chips-bg, rgba(247,249,251,.9));
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid transparent;
  transition:border-color .2s, box-shadow .2s;
}
body.gast-scrolled .gast-sticky-chrome{
  padding-top:env(safe-area-inset-top, 0px);
  border-bottom-color:color-mix(in srgb, var(--txt) 7%, transparent);
  box-shadow:0 8px 24px color-mix(in srgb, var(--txt) 5%, transparent);
}
.gast-compact-bar{
  display:flex;align-items:center;gap:.45rem;
  max-height:0;opacity:0;overflow:hidden;
  padding:0 1.15rem;
  transition:max-height .32s cubic-bezier(.22,1,.36,1), opacity .22s, padding .32s;
}
body.gast-scrolled .gast-compact-bar{
  max-height:2.75rem;opacity:1;
  padding:.4rem 1.15rem .1rem;
}
.gast-compact-name{
  flex:1;min-width:0;
  font-family:var(--font-display, var(--font-head));font-weight:700;font-size:1.05rem;
  letter-spacing:-.03em;color:var(--txt);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.gast-compact-status{
  flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.gast-footer{
  display:flex;flex-direction:column;align-items:center;gap:.55rem;
  padding:1.75rem 1rem 5.75rem;color:var(--txt-faint);text-align:center;
}
.gast-legal-links{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.15rem .9rem;
}
.gast-legal-links a{
  font-size:.75rem;font-weight:600;color:var(--txt-faint);text-decoration:none;
}
.gast-legal-links a:hover{color:var(--aqua);text-decoration:underline}
.g-account-lead{
  margin:-.2rem 0 1rem;font-size:.86rem;color:var(--txt-dim);line-height:1.4;
}
.g-account-tabs{
  display:flex;gap:.35rem;margin-bottom:.9rem;
}
.g-account-tab{
  flex:1;border:1px solid var(--line);background:transparent;color:var(--txt-dim);
  border-radius:10px;padding:.55rem .4rem;font-size:.82rem;font-weight:650;cursor:pointer;
}
.g-account-tab.sel{
  border-color:var(--aqua);color:var(--txt);background:rgba(14,116,144,.08);
}
.g-account-field{margin-bottom:.7rem;text-align:left}
.g-account-field label{
  display:block;font-size:.72rem;font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;color:var(--txt-faint);margin-bottom:.28rem;
}
.g-account-field input{
  width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;
  padding:.7rem .8rem;font-size:1rem;background:var(--card, #fff);color:var(--txt);
}
.g-account-hint{
  margin:.15rem 0 .85rem;font-size:.75rem;color:var(--txt-faint);text-align:left;
}
.g-account-email{
  margin:0 0 .85rem;font-size:.88rem;color:var(--txt-dim);word-break:break-all;
}
.g-account-saved{
  display:flex;flex-direction:column;align-items:center;gap:.15rem;
  padding:.95rem .75rem;margin-bottom:1rem;border-radius:14px;
  background:rgba(14,116,144,.07);border:1px solid rgba(14,116,144,.12);
}
.g-account-saved-val{
  font-family:var(--font-head);font-size:1.85rem;font-weight:750;color:var(--txt);
  letter-spacing:-.02em;line-height:1.1;
}
.g-account-saved-lbl{
  font-size:.78rem;font-weight:600;color:var(--txt-dim);text-align:center;
}
.g-account-orders{
  display:flex;flex-direction:column;gap:.65rem;max-height:42vh;overflow:auto;
  text-align:left;-webkit-overflow-scrolling:touch;
}
.g-account-order{
  padding:.75rem .8rem;border:1px solid var(--line);border-radius:12px;
  background:var(--card, transparent);
}
.g-account-order-top{
  display:flex;justify-content:space-between;gap:.5rem;align-items:baseline;
  margin-bottom:.25rem;
}
.g-account-order-venue{
  font-weight:700;font-size:.92rem;color:var(--txt);
}
.g-account-order-wait{
  flex-shrink:0;font-size:.75rem;font-weight:700;color:var(--aqua);
}
.g-account-order-meta{
  font-size:.75rem;color:var(--txt-faint);margin-bottom:.35rem;
}
.g-account-order-items{
  font-size:.82rem;color:var(--txt-dim);line-height:1.35;
}
.g-account-empty{
  margin:0;padding:.6rem 0;font-size:.86rem;color:var(--txt-faint);text-align:center;
}
.g-stamp-card{
  margin:0 0 1rem;padding:.9rem .85rem;border-radius:14px;
  border:1px solid color-mix(in srgb, var(--aqua) 22%, var(--line));
  background:color-mix(in srgb, var(--aqua) 7%, var(--card, #fff));
  text-align:left;
}
.g-stamp-head{
  display:flex;flex-direction:column;align-items:center;gap:.1rem;margin-bottom:.45rem;
}
.g-stamp-pts{
  font-family:var(--font-head);font-size:1.75rem;font-weight:750;color:var(--txt);
  letter-spacing:-.02em;line-height:1.1;
}
.g-stamp-pts-lbl{font-size:.78rem;font-weight:600;color:var(--txt-dim)}
.g-stamp-hint{margin:0 0 .7rem;font-size:.75rem;color:var(--txt-faint);text-align:center}
.g-stamp-rewards{display:flex;flex-direction:column;gap:.45rem}
.g-stamp-reward{
  display:flex;align-items:center;justify-content:space-between;gap:.55rem;
  width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;
  padding:.65rem .75rem;background:var(--card, #fff);color:var(--txt);
  cursor:pointer;transition:opacity .15s, border-color .15s, background .15s;
}
.g-stamp-reward:disabled,
.g-stamp-reward.is-locked{
  opacity:.42;cursor:not-allowed;filter:grayscale(.25);
}
.g-stamp-reward.is-ready{
  border-color:color-mix(in srgb, var(--aqua) 55%, var(--line));
  background:color-mix(in srgb, var(--aqua) 8%, var(--card, #fff));
}
.g-stamp-reward.is-selected{
  border-color:var(--aqua);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--aqua) 40%, transparent);
}
.g-stamp-reward-main{display:flex;flex-direction:column;gap:.12rem;min-width:0}
.g-stamp-reward-title{font-size:.9rem;font-weight:700;color:var(--txt)}
.g-stamp-reward-meta{font-size:.72rem;font-weight:600;color:var(--txt-faint)}
.g-stamp-reward-cta{flex-shrink:0;font-size:.72rem;font-weight:750;color:var(--aqua)}
.g-stamp-selected{
  margin:.65rem 0 0;font-size:.8rem;font-weight:650;color:var(--aqua);text-align:center;
}
.guest-stamp-reward-row{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.7rem .8rem;margin-bottom:.45rem;border:1px solid var(--line);border-radius:12px;
  background:var(--card, transparent);
}
.gast-powered-text{
  margin:0;font-size:.72rem;font-weight:500;letter-spacing:.01em;color:var(--txt-faint);
  display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:center;
}
.gast-powered-text strong{
  font-family:var(--font-head);font-weight:700;color:#640ff9;letter-spacing:-.01em;
}
.gast-powered-logo{
  display:inline-block;height:.95rem;width:auto;vertical-align:middle;
  background:transparent;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.gast-sub{display:none}
@media (prefers-reduced-motion: reduce){
  .gast-hero-glow{animation:none}
  .gast-compact-bar{transition:none}
}
.g-counter-bar{
  position:sticky;top:0;z-index:45;
  background:rgba(14,116,144,.08);
  border-bottom:1px solid var(--line);
  padding:.55rem .875rem;
}
.g-counter-bar-inner{
  max-width:520px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  font-size:.82rem;font-weight:600;color:var(--txt-dim);
}
.counter-order-card{border-color:rgba(14,116,144,.2);background:rgba(14,116,144,.05)}

/* Bestellungen: Schnellaktionen einklappbar */
.orders-tools-details{
  margin-bottom:.75rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  overflow:hidden;
}
.orders-tools-details > summary{
  cursor:pointer;
  user-select:none;
  list-style:none;
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  padding:.55rem .75rem;
  font-weight:700;
  font-size:.88rem;
  color:var(--txt);
}
.orders-tools-details > summary::-webkit-details-marker{display:none}
.orders-tools-details > summary::before{
  content:'▸';
  color:var(--txt-faint);
  font-size:.75rem;
  line-height:1;
}
.orders-tools-details[open] > summary::before{content:'▾'}
.orders-tools-details[open] > summary{
  border-bottom:1px solid var(--line);
}
.orders-tools-summary-label{flex:0 0 auto}
.orders-tools-summary-hint{
  flex:1 1 auto;
  min-width:0;
  font-size:.75rem;
  font-weight:700;
  color:var(--amber, #b45309);
}
.orders-tools-details[open] .orders-tools-summary-hint{display:none !important}
.orders-tools-details .orders-actions{
  margin-bottom:0;
  padding:.45rem .55rem .55rem;
}

/* Bestellungen: kompakte Aktionszeile – 2 Spalten → 2 Reihen
   (Kassenschublade | Suche, dann Drucker/Gast ohne Handy) */
.orders-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.4rem;
  margin-bottom:.75rem;
}
.orders-tool{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:space-between;
  gap:.35rem;
  min-width:0;
  padding:.45rem .6rem;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:none;
}
.orders-tool-body{flex:1;min-width:0;width:100%}
.orders-tool h3,
.orders-tool-body > strong{
  display:block;
  font-size:.78rem;
  font-weight:700;
  margin:0 0 .1rem;
  line-height:1.2;
}
.orders-tool p{
  margin:0;
  color:var(--txt-dim);
  font-size:.68rem;
  line-height:1.3;
  font-weight:600;
}
.orders-tool .btn{
  align-self:flex-start;margin-top:auto;
  padding:.35rem .7rem;font-size:.75rem;min-height:0;line-height:1.2;
}
.orders-tool-btns{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto}
.orders-actions .order-search-bar{width:100%;margin-top:.05rem;gap:.3rem}
.orders-actions .order-search-bar input{
  font-size:.8rem;padding:.35rem .55rem;min-height:32px
}
.orders-actions .feedback-mood-badge{font-size:1.1rem;padding:0;align-self:center}
.orders-actions .feedback-quick-card{
  flex-direction:row;align-items:center;gap:.5rem
}
.orders-actions .cash-banner{
  padding:.45rem .6rem;
  flex-direction:column;align-items:flex-start
}
.orders-actions .cash-banner strong{margin-bottom:.1rem;font-size:.78rem}
@media (max-width:560px){
  .orders-actions{grid-template-columns:1fr;gap:.35rem}
}

/* News-Banner */
.news-strip{
  display:flex;flex-direction:column;gap:.45rem;
  padding:.75rem 1.1rem .1rem;scrollbar-width:none;
}
.news-strip:empty,.news-strip[hidden]{display:none}
.g-open-orders{padding:1rem 1.1rem .35rem}
.g-open-orders-banner{
  border-radius:16px;padding:1rem 1.1rem 1.05rem;
  background:#fff;border:none;
  box-shadow:0 6px 22px rgba(15,40,60,.06);
}
.g-open-orders-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.8rem;flex-wrap:wrap}
.g-open-orders-twint{
  font-size:.72rem;font-weight:800;padding:.28rem .6rem;border-radius:8px;
  background:rgba(1,176,168,.18);color:#01b0a8;letter-spacing:.03em;
}
.g-open-orders-title{font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--txt)}
.g-open-order-card{
  display:flex;align-items:center;justify-content:space-between;gap:.85rem;
  width:100%;text-align:left;padding:1rem 1.05rem;margin-bottom:.5rem;border-radius:14px;
  background:#fff;border:none;box-shadow:0 4px 16px rgba(15,40,60,.05);cursor:pointer;
  font:inherit;color:inherit;transition:transform .15s, box-shadow .2s;
}
.g-open-order-card:last-child{margin-bottom:0}
.g-open-order-card:active{transform:scale(.985)}
.g-open-order-card.ready{
  border:1px solid rgba(77,124,15,.35);
  background:rgba(101,163,13,.08);
  box-shadow:none;
}
@keyframes g-open-pulse{
  0%,100%{opacity:1}
  50%{opacity:.92}
}
.g-open-order-main{min-width:0;flex:1}
.g-open-order-num{
  display:block;font-family:var(--font-head);font-size:1.75rem;font-weight:800;
  color:var(--aqua);line-height:1.05;letter-spacing:.02em;
}
.g-open-order-card.ready .g-open-order-num{color:var(--lime);font-size:2rem}
.g-open-order-status{
  display:block;font-size:.95rem;font-weight:700;color:var(--txt-dim);margin-top:.4rem;
}
.g-open-order-card.ready .g-open-order-status{color:#4d7c0f;font-size:1.05rem}
.g-open-order-cta{
  flex-shrink:0;font-size:.84rem;font-weight:800;color:var(--aqua);white-space:nowrap;
}
.g-open-order-card.ready .g-open-order-cta{color:var(--lime)}
.g-st-back{margin:0 auto 1rem;display:inline-flex}
.news-strip::-webkit-scrollbar{display:none}
.news-card{
  display:flex;align-items:flex-start;gap:.7rem;width:100%;text-align:left;
  padding:.65rem 0;background:transparent;border:none;border-radius:0;
  border-bottom:1px solid color-mix(in srgb, var(--txt) 8%, transparent);
  box-shadow:none;cursor:pointer;font:inherit;color:inherit;
  transition:opacity .15s;
}
.news-card:active{opacity:.75}
.news-card .nc-tag{
  flex:0 0 auto;align-self:center;
  font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--aqua);padding:.3rem .55rem;border-radius:8px;margin:0;
}
.news-card .nc-body{min-width:0;flex:1}
.news-card .nc-title{
  font-weight:600;font-size:.9rem;margin:0;letter-spacing:-.01em;line-height:1.3;color:var(--txt);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-card .nc-text{
  display:none;color:var(--txt-dim);font-size:.82rem;line-height:1.45;margin-top:.4rem;
}
.news-card.open .nc-title{white-space:normal}
.news-card.open .nc-text{display:block}
.news-card .nc-chevron{
  color:var(--txt-faint);font-size:1.25rem;line-height:1;flex-shrink:0;align-self:center;
  transition:transform .2s;
}
.news-card.open .nc-chevron{transform:rotate(90deg)}

/* Kategorien: Jump-Chips */
.cat-chips{
  display:flex;gap:.4rem;overflow-x:auto;padding:.45rem 1.15rem .55rem;scrollbar-width:none;
  background:transparent;border-bottom:none;
}
.cat-chips::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;padding:.42rem .9rem;border-radius:999px;font-weight:700;font-size:.84rem;
  border:none;color:var(--txt-dim);background:transparent;
  transition:background .2s,color .2s,box-shadow .2s,transform .15s;white-space:nowrap;
  box-shadow:none;
}
.chip:active{transform:scale(.97)}
.chip.on{
  background:var(--grad);color:var(--on-accent,#fff);border-color:transparent;
  box-shadow:0 6px 16px color-mix(in srgb, var(--aqua) 28%, transparent);
}

/* Typografische Speisekarte */
.menu-list{padding:.15rem 1.15rem 1.5rem;display:flex;flex-direction:column;gap:0;margin-top:0}
.menu-section{
  padding:0;
  scroll-margin-top:calc(var(--gast-sticky-h, 64px) + 8px);
}
.menu-section-list{display:flex;flex-direction:column;gap:0}
.menu-cat-title{
  font-family:var(--font-display, var(--font-head));font-weight:800;
  font-size:clamp(1.7rem, 7vw, 2.35rem);margin:1.65rem 0 .35rem;
  display:block;letter-spacing:-.045em;line-height:1;text-transform:none;color:var(--txt);
}
.menu-section:first-child .menu-cat-title{margin-top:.85rem}
.menu-cat-title::before{display:none !important}
.menu-item{
  display:flex;flex-direction:row;align-items:flex-start;gap:.7rem;
  background:transparent;border:none;border-radius:0;padding:1.05rem 0;
  border-bottom:1px solid color-mix(in srgb, var(--txt) 8%, transparent);
  box-shadow:none;
  transition:background .15s, transform .15s;
}
.menu-item:active{transform:scale(.992);background:color-mix(in srgb, var(--aqua) 4%, transparent)}
.menu-item.unavailable{opacity:.42;pointer-events:none}
.menu-item.in-cart{background:color-mix(in srgb, var(--aqua) 5%, transparent);margin:0 -.35rem;padding-left:.35rem;padding-right:.35rem;border-radius:12px}
.mi-media,.mi-emoji{
  flex:0 0 auto;width:auto;height:auto;border-radius:0;background:transparent;border:none;
  display:flex;align-items:flex-start;justify-content:center;overflow:visible;align-self:flex-start;
  font-size:1.35rem;line-height:1.2;padding-top:.12rem;
}
.menu-item.has-photo .mi-media{
  flex:0 0 56px;width:56px;height:56px;border-radius:14px;overflow:hidden;
  background:var(--bg-soft);padding:0;
}
.mi-media img{width:100%;height:100%;object-fit:cover;display:block}
.mi-media--emoji{background:transparent;box-shadow:none}
.mi-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:.02rem 0}
.mi-name{
  font-family:var(--font-head);font-weight:700;font-size:1.08rem;
  letter-spacing:-.025em;line-height:1.25;color:var(--txt);
}
.mi-desc{
  color:var(--txt-dim);font-size:.84rem;margin:.28rem 0 0;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.mi-price{
  font-family:var(--font-display, var(--font-head));font-weight:700;color:var(--aqua);
  font-size:1.02rem;letter-spacing:-.02em;margin-top:.4rem;
}
.mi-add{flex:0 0 auto;display:flex;align-items:center;gap:.3rem;align-self:center}
.qty-btn{
  width:42px;height:42px;border-radius:50%;background:color-mix(in srgb, var(--card) 80%, #fff);
  border:1.5px solid color-mix(in srgb, var(--txt) 10%, transparent);
  font-size:1.3rem;font-weight:600;display:flex;align-items:center;justify-content:center;color:var(--txt);
  transition:transform .15s, background .15s, box-shadow .15s;flex-shrink:0;
}
.qty-btn:active{transform:scale(.9)}
.qty-btn.plus{
  background:var(--grad);color:var(--on-accent,#fff);border-color:transparent;
  box-shadow:0 8px 18px color-mix(in srgb, var(--aqua) 28%, transparent);
}
.qty-num{min-width:16px;text-align:center;font-weight:700;font-family:var(--font-head);font-size:.95rem}

.cart-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:70;padding:.85rem 1.1rem calc(.85rem + env(safe-area-inset-bottom));
  pointer-events:none;
}
.cart-bar-inner{
  max-width:470px;margin:0 auto;background:var(--grad);border-radius:999px;color:var(--on-accent,#fff);
  display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem;
  font-weight:700;box-shadow:0 14px 36px color-mix(in srgb, var(--aqua) 35%, transparent);cursor:pointer;
  transform:translateY(140%);transition:transform .32s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.cart-bar-inner.show{transform:translateY(0);pointer-events:auto}
.cart-bar-inner .cb-left{display:inline-flex;align-items:center;gap:.55rem;min-width:0}
.cart-bar-inner .cb-label{font-weight:700}
.cart-bar-inner .cb-count{
  background:#0b1f28;color:#fff;border-radius:999px;min-width:30px;height:30px;
  display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;margin-right:0;
}
.cart-bar-inner .cb-total{font-family:var(--font-head);font-weight:700;font-size:1.05rem;white-space:nowrap}

/* ---- Bottom Sheets ---- */
.sheet-backdrop{
  position:fixed;inset:0;background:rgba(8,50,70,.38);backdrop-filter:blur(4px);z-index:80;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.sheet-backdrop.open{opacity:1;pointer-events:auto}
.sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:90;max-width:520px;margin:0 auto;
  background:var(--card);border:1px solid var(--line);border-bottom:none;
  border-radius:26px 26px 0 0;padding:1.4rem 1.4rem calc(1.6rem + env(safe-area-inset-bottom));
  transform:translateY(105%);transition:transform .35s cubic-bezier(.34,1.2,.64,1);
  max-height:88vh;overflow-y:auto;box-shadow:0 -14px 50px rgba(8,60,90,.18);
}
.sheet.open{transform:translateY(0)}
.sheet-grab{width:44px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 1.2rem}
.sheet h3{font-size:1.3rem;margin-bottom:1rem}
.cart-line{display:flex;align-items:center;gap:.85rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.cart-line:last-of-type{border-bottom:none}
.cart-note-row{padding:0 0 .6rem 2.35rem;border-bottom:1px solid var(--line);margin-top:-.35rem}
.cart-note-row:last-of-type,.cart-note-editor:last-of-type{border-bottom:none}
.cart-line:has(+ .cart-note-row),.cart-line:has(+ .cart-note-editor){border-bottom:none}
.cart-note-btn{
  font-size:.78rem;font-weight:600;color:var(--txt-dim);
  background:var(--card-2);border:1px dashed var(--line);border-radius:99px;
  padding:.3rem .75rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cart-note-btn.has-note{color:var(--aqua);border-color:var(--aqua);border-style:solid}
.cart-note-editor{
  display:flex;gap:.5rem;align-items:center;
  padding:0 0 .6rem 2.35rem;border-bottom:1px solid var(--line);margin-top:-.35rem;
}
.cart-note-editor input{
  flex:1;min-width:0;background:var(--card-2);border:1px solid var(--aqua);
  border-radius:10px;padding:.45rem .65rem;font-size:.85rem;color:var(--txt);
}
.cl-emoji{font-size:1.5rem}
.cl-name{flex:1;font-weight:600;font-size:.95rem}
.cl-price{font-family:var(--font-head);font-weight:700;font-size:.92rem;color:var(--txt-dim)}
.cart-total{
  display:flex;justify-content:space-between;align-items:center;margin:1.2rem 0;
  font-family:var(--font-head);font-weight:700;font-size:1.25rem;
}
.pay-options{display:grid;gap:.8rem;margin:1.2rem 0}
.pay-opt{
  display:flex;align-items:center;gap:1rem;padding:1.05rem 1.2rem;border-radius:var(--radius-sm);
  border:2px solid var(--line);background:var(--bg-soft);transition:all .2s;text-align:left;width:100%;
}
.pay-opt.sel{border-color:var(--aqua-bright);background:rgba(34,211,238,.08)}
.pay-opt .po-ico{
  flex:0 0 46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.78rem;letter-spacing:.02em;
}
.po-ico.twint{background:var(--twint);color:#fff}
.po-ico.kasse{background:var(--card-2);border:1px solid var(--line);font-size:1.3rem}
.pay-opt b{display:block;font-size:.98rem}
.pay-opt span{color:var(--txt-faint);font-size:.8rem}
.mail-row{display:flex;align-items:center;gap:.7rem;margin:.9rem 0 .4rem}
.switch{
  position:relative;width:48px;height:28px;flex:0 0 auto;border-radius:999px;
  background:var(--card-2);border:1px solid var(--line);transition:background .2s;cursor:pointer;
}
.switch::after{
  content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:var(--txt-faint);transition:all .2s;
}
.switch.on{background:var(--aqua-bright)}
.switch.on::after{left:23px;background:#fff}
.p-push-toggle{
  display:flex;align-items:center;gap:.45rem;
  padding:.25rem .55rem;
  border-radius:999px;border:1px solid var(--line);
  background:rgba(255,255,255,.04);
}
.p-push-label{font-size:.78rem;font-weight:700;color:var(--txt-dim);letter-spacing:.02em}
.p-push-status{font-size:.72rem;color:var(--txt-faint);max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-push-toggle .switch{width:40px;height:24px}
.p-push-toggle .switch::after{width:16px;height:16px;top:3px;left:3px}
.p-push-toggle .switch.on::after{left:19px}
.mail-row label{font-size:.9rem;color:var(--txt-dim);font-weight:600}
#gMailWrap{margin-bottom:.9rem;display:none}
#gMailWrap.show{display:block}

/* ---- TWINT Simulation ---- */
.twint-sim{text-align:center;padding:.5rem 0 1rem}
.twint-logo{
  width:84px;height:84px;margin:0 auto 1.1rem;border-radius:24px;background:var(--twint);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;
  font-family:var(--font-head);font-size:1.05rem;box-shadow:0 10px 30px rgba(1,176,168,.4);
}
.twint-spinner{
  width:46px;height:46px;border-radius:50%;border:4px solid rgba(8,145,178,.18);border-top-color:var(--aqua);
  margin:1.3rem auto;animation:spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- Bestell-Status ---- */
.status-screen{padding:2rem 1.4rem 3rem;text-align:center}
.order-num-big{
  font-family:var(--font-head);font-weight:700;font-size:clamp(3.6rem,17vw,5.4rem);line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin:.6rem 0 .3rem;letter-spacing:-.02em;
}
.status-steps{display:grid;gap:0;margin:2.2rem auto;max-width:340px;text-align:left}
.st-step{display:flex;gap:1rem;align-items:flex-start;position:relative;padding-bottom:1.6rem}
.st-step:last-child{padding-bottom:0}
.st-step::before{
  content:"";position:absolute;left:17px;top:36px;bottom:0;width:2px;background:var(--line);
}
.st-step:last-child::before{display:none}
.st-dot{
  flex:0 0 36px;height:36px;border-radius:50%;border:2px solid var(--line);background:var(--card);
  display:flex;align-items:center;justify-content:center;font-size:1rem;z-index:1;
}
.st-step.done .st-dot{background:var(--grad);border-color:transparent;color:#04121d;font-weight:800}
.st-step.now .st-dot{border-color:var(--aqua-bright);color:var(--aqua);animation:pulse 1.6s infinite}
.st-step b{display:block;font-size:.98rem}
.st-step span{color:var(--txt-faint);font-size:.82rem}
.st-step.dim{opacity:.4}
.wait-pill{
  display:inline-flex;align-items:center;gap:.6rem;background:var(--card-2);border:1px solid var(--line);
  border-radius:999px;padding:.7rem 1.4rem;font-weight:700;font-family:var(--font-head);margin-top:.6rem;
}
.wait-pill .wp-time{color:var(--aqua);font-size:1.15rem}

/* ---- Abhol-Alarm Overlay ---- */
.alarm-overlay{
  position:fixed;inset:0;z-index:200;display:none;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:2rem;
  background:radial-gradient(circle at 50% 35%,rgba(132,204,22,.30),rgba(255,255,255,.97) 65%);
  backdrop-filter:blur(10px);
}
.alarm-overlay.show{display:flex;animation:alarmflash .6s ease infinite alternate}
@keyframes alarmflash{from{background-color:rgba(255,255,255,.97)}to{background-color:rgba(220,242,190,.97)}}
.alarm-bell{font-size:5rem;animation:ring .5s ease infinite;display:block;margin-bottom:1rem}
@keyframes ring{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}
.alarm-overlay h2{font-size:2rem;margin-bottom:.4rem}
.alarm-overlay .order-num-big{font-size:clamp(4rem,20vw,6rem)}
.alarm-overlay p{color:var(--txt-dim);margin-bottom:2rem}

/* ---- Pflicht-Hinweis nach Bestellung ---- */
.pickup-alert-overlay{
  position:fixed;inset:0;z-index:195;display:none;align-items:center;justify-content:center;
  padding:1.25rem;background:rgba(15,45,61,.55);backdrop-filter:blur(8px);
}
.pickup-alert-overlay.show{display:flex}
.pickup-alert-card{
  width:100%;max-width:400px;background:#fff;border-radius:20px;padding:1.75rem 1.5rem;
  text-align:center;box-shadow:0 20px 60px rgba(15,45,61,.22);border:2px solid var(--amber,#f59e0b);
}
.pickup-alert-icon{font-size:3rem;display:block;margin-bottom:.6rem}
.pickup-alert-card h2{font-size:1.35rem;margin-bottom:1rem;color:var(--txt)}
.pickup-alert-card p{color:var(--txt);font-size:1rem;line-height:1.55;margin-bottom:1rem;text-align:left}
.pickup-alert-note{color:var(--txt-dim)!important;font-size:.92rem!important;font-style:italic;margin-bottom:.85rem!important}
.pickup-alert-sub{color:var(--txt-dim)!important;font-size:.88rem!important;margin-bottom:1.4rem!important}

/* ============================================================
   LOGIN
   ============================================================ */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem}
.login-card{width:100%;max-width:420px;padding:2.4rem 2rem}
.login-card .logo{justify-content:center;margin-bottom:1.6rem}
.login-card h2{text-align:center;font-size:1.5rem;margin-bottom:.4rem}
.login-card .sub{text-align:center;color:var(--txt-dim);font-size:.92rem;margin-bottom:1.8rem}
.form-group{margin-bottom:1.1rem}
.form-group label{display:block;font-size:.82rem;font-weight:700;color:var(--txt-dim);margin-bottom:.4rem;letter-spacing:.03em;text-transform:uppercase}
.login-hint{
  margin-top:1.4rem;padding:.9rem 1.1rem;border-radius:var(--radius-sm);
  background:rgba(8,145,178,.05);border:1px dashed rgba(8,145,178,.3);
  font-size:.82rem;color:var(--txt-dim);line-height:1.6;
}
.login-hint code{color:var(--aqua);font-weight:700;font-family:var(--font-head)}
.login-error{color:var(--red);font-size:.86rem;font-weight:600;margin-bottom:1rem;display:none;text-align:center}
.login-error.show{display:block}
.login-forgot{color:var(--aqua);font-weight:600;font-size:.88rem;text-decoration:none}
.login-forgot:hover{text-decoration:underline}
.login-mode-toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.65rem;
}
.login-mode-btn{
  padding:.65rem .75rem;border-radius:12px;border:1px solid var(--line);
  background:var(--bg-soft);color:var(--txt-dim);font-weight:700;font-size:.88rem;
  transition:background .15s,border-color .15s,color .15s;
}
.login-mode-btn.on{background:var(--grad);border-color:transparent;color:#04121d;box-shadow:0 6px 18px rgba(34,211,238,.25)}
.login-mode-hint{
  text-align:center;color:var(--txt-dim);font-size:.84rem;margin:0 0 1.25rem;line-height:1.45;
}
.staff-pin-info{
  margin-bottom:1rem;padding:.85rem 1rem;border-radius:12px;
  background:rgba(8,145,178,.06);border:1px solid rgba(8,145,178,.22);
  font-size:.88rem;line-height:1.55;color:var(--txt-dim);
}
.staff-pin-info code{color:var(--aqua);font-weight:700}
.staff-shift-code{
  padding:.85rem 1rem;border-radius:12px;text-align:center;
  background:rgba(132,204,22,.08);border:1px solid rgba(132,204,22,.35);
}

/* ============================================================
   REGISTRIERUNG & ABO-CHECKOUT
   ============================================================ */
.reg-screen{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1.25rem 4rem}
.reg-card{width:100%;max-width:560px;padding:2.2rem 2rem}
.reg-progress{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:2rem}
.reg-progress .rp{flex:1;display:flex;flex-direction:column;align-items:center;gap:.45rem;color:var(--txt-faint);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:center}
.reg-progress .rp .rp-dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--font-head);background:var(--card)}
.reg-progress .rp.on{color:var(--aqua)}
.reg-progress .rp.on .rp-dot{border-color:var(--aqua-bright);color:var(--aqua)}
.reg-progress .rp.done .rp-dot{background:var(--grad);border-color:transparent;color:#04121d}
.reg-panel{display:none}
.reg-panel.on{display:block}
.plan-box{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--grad-soft);border:1px solid rgba(34,211,238,.35);border-radius:var(--radius-sm);padding:1rem 1.2rem;margin-bottom:1.4rem}
.plan-box b{font-family:var(--font-head);font-size:1.1rem;display:block}
.plan-box small{color:var(--txt-dim);font-size:.8rem}
.plan-box .pb-price{font-family:var(--font-head);font-weight:700;font-size:1.3rem;color:var(--aqua);white-space:nowrap}
.card-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.reg-success{text-align:center;padding:1rem 0}
.reg-success .rs-ico{width:84px;height:84px;margin:0 auto 1.2rem;border-radius:50%;background:rgba(132,204,22,.14);border:2px solid rgba(132,204,22,.5);display:flex;align-items:center;justify-content:center;font-size:2.4rem}
.reg-success .rs-details{text-align:left;margin:1.4rem 0;display:grid;gap:.5rem;font-size:.92rem;color:var(--txt-dim)}
.reg-success .rs-details b{color:var(--txt)}
.reg-error{color:var(--red);font-size:.86rem;font-weight:600;margin:.4rem 0 .8rem;display:none}
.reg-error.show{display:block}

/* ============================================================
   ADMIN DASHBOARD
   ============================================================ */
.admin-shell{
  min-height:100vh;display:flex;flex-direction:column;
  width:100%;max-width:100%;overflow-x:hidden;
}
.admin-shell > *{min-width:0;max-width:100%}
.admin-top{
  position:sticky;top:0;z-index:60;border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.85);backdrop-filter:blur(16px);
  width:100%;max-width:100%;
}
.admin-top-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:.65rem 0;gap:.75rem;flex-wrap:wrap;min-width:0;width:100%}
.admin-logo{min-width:0;flex:1 1 auto;max-width:100%;flex-shrink:1}
.admin-logo.logo{flex-shrink:1}
.admin-logo #aBadiName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.admin-top-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:1;flex-wrap:wrap;min-width:0;max-width:100%}
.admin-tabs{
  display:flex;gap:.35rem;overflow-x:auto;padding:.7rem 1.25rem;scrollbar-width:none;
  border-bottom:1px solid var(--line);position:sticky;top:var(--admin-top-h,64px);z-index:55;
  background:rgba(255,255,255,.85);backdrop-filter:blur(16px);
  -webkit-overflow-scrolling:touch;
  min-width:0;width:100%;max-width:100%;box-sizing:border-box;
  align-items:center;
}
.admin-tabs::-webkit-scrollbar{display:none}
.panel-intro{margin-bottom:1rem}
.panel-intro h3{margin:0 0 .35rem;font-size:1.1rem;font-family:var(--font-head)}
.panel-intro p{margin:0;color:var(--txt-dim);font-size:.9rem;line-height:1.4}
.atab{
  flex:0 0 auto;padding:.55rem 1.1rem;border-radius:999px;font-weight:700;font-size:.88rem;
  color:var(--txt-dim);border:1px solid transparent;white-space:nowrap;transition:all .2s;
  display:flex;align-items:center;gap:.45rem;
}
.atab.on{background:var(--card);border-color:var(--line);color:var(--txt);box-shadow:var(--shadow-sm)}
.admin-demo-locked .atab:not([data-panel="orders"]){
  opacity:.42;pointer-events:none;cursor:not-allowed;filter:grayscale(.35);
}
.admin-demo-locked .admin-top-actions .chat-support-btn{opacity:.42;pointer-events:none;cursor:not-allowed}
.demo-lock-banner{
  margin:.75rem auto 0;max-width:var(--wrap,1100px);padding:.7rem 1rem;
  border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.04);
  color:var(--txt-dim);font-size:.9rem;font-weight:600;line-height:1.35;
}
.atab .cnt{
  background:var(--aqua-bright);color:#04121d;font-size:.7rem;font-weight:800;border-radius:999px;
  min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
}
.admin-body{flex:1;padding:1.6rem 0 4rem;min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.apanel{display:none;min-width:0;max-width:100%}
.apanel.on{display:block}
.card-actions{display:flex;gap:.6rem;flex-wrap:wrap;width:100%;max-width:100%;min-width:0}
.card-actions .btn{min-width:0}

.order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.1rem}
.new-order-alert{
  margin-bottom:1.1rem;border-radius:16px;padding:1px;
  background:linear-gradient(135deg,#0891b2,#84cc16);
  animation:newAlertIn .45s ease,newAlertPulse 2s ease-in-out infinite;
  box-shadow:0 8px 32px rgba(8,145,178,.25);
}
.noa-inner{
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  background:var(--card);border-radius:15px;padding:1rem 1.25rem;
}
.noa-ico{font-size:1.8rem;animation:bellRing 1s ease-in-out infinite}
.noa-text{flex:1;min-width:160px}
.noa-text b{display:block;font-family:var(--font-head);font-size:1.05rem;color:var(--txt);margin-bottom:.15rem}
.noa-text span{font-size:.9rem;color:var(--txt-dim)}
.order-card{padding:1.25rem;display:flex;flex-direction:column;gap:.8rem;position:relative;transition:transform .25s ease,box-shadow .25s ease}
.order-card-new{
  border-color:rgba(8,145,178,.75)!important;
  box-shadow:0 0 0 2px rgba(8,145,178,.35),0 12px 40px rgba(8,145,178,.2)!important;
  animation:orderPopIn .5s ease,orderGlow 2s ease-in-out infinite;
  transform:scale(1.02);
}
.oc-new-pill{
  position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,#0891b2,#059669);color:#fff;
  font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:.35rem .85rem;border-radius:999px;white-space:nowrap;
  box-shadow:0 4px 16px rgba(8,145,178,.35);animation:orderPopIn .4s ease;
}
.atab.has-new{color:var(--aqua)!important;border-color:rgba(8,145,178,.4)!important}
.atab.has-new .cnt{animation:cntPulse 1.2s ease-in-out infinite;background:#f59e0b;color:#1a1200}
.atab .cnt.cnt-neu{background:#f59e0b;color:#1a1200;animation:cntPulse 1.5s ease-in-out infinite}
@keyframes newAlertIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes newAlertPulse{0%,100%{box-shadow:0 8px 32px rgba(8,145,178,.25)}50%{box-shadow:0 8px 40px rgba(132,204,22,.35)}}
@keyframes bellRing{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-6deg)}}
@keyframes orderPopIn{from{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1.02) translateY(0)}}
@keyframes orderGlow{0%,100%{box-shadow:0 0 0 2px rgba(8,145,178,.35),0 12px 40px rgba(8,145,178,.2)}50%{box-shadow:0 0 0 3px rgba(132,204,22,.5),0 16px 48px rgba(132,204,22,.25)}}
@keyframes cntPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.order-card.st-neu{border-color:rgba(8,145,178,.45)}
.order-card.st-zubereitung{border-color:rgba(217,119,6,.45)}
.order-card.st-bereit{border-color:rgba(132,204,22,.6);box-shadow:0 0 24px rgba(132,204,22,.18)}
.order-card.st-nicht_abgeholt{border-color:rgba(239,68,68,.35);opacity:.92}
/* Küche hat die Bestellung fertig gemeldet – für Betreiber/Mitarbeiter hervorheben */
.order-card-kitchendone{border-color:rgba(132,204,22,.7)!important;box-shadow:0 0 0 2px rgba(132,204,22,.35),0 0 22px rgba(132,204,22,.22)}
.oc-head{display:flex;justify-content:space-between;align-items:center}
.oc-num{font-family:var(--font-head);font-weight:700;font-size:1.5rem}
.oc-dayseq{font-size:.72em;font-weight:600;color:var(--txt-dim);letter-spacing:.02em}
.oc-meta{color:var(--txt-faint);font-size:.8rem;display:flex;gap:.8rem;flex-wrap:wrap}
.oc-items{display:grid;gap:.3rem;font-size:.9rem;color:var(--txt-dim)}
.oc-items li{list-style:none;display:flex;justify-content:space-between;gap:.6rem}
.oc-items .qx{color:var(--aqua);font-weight:800;font-family:var(--font-head)}
.oi-note{
  font-size:.78rem;font-weight:600;color:#d97706;
  background:rgba(217,119,6,.1);border:1px dashed rgba(217,119,6,.45);
  border-radius:8px;padding:.1rem .45rem;margin-top:.15rem;display:inline-block;
}
.oc-total{display:flex;justify-content:space-between;font-weight:800;font-family:var(--font-head);border-top:1px solid var(--line);padding-top:.6rem}
.oc-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.oc-actions .btn{flex:1 1 calc(50% - .3rem);min-width:0}
.empty-state{
  text-align:center;color:var(--txt-faint);padding:4rem 1rem;
}
.empty-state .emo{font-size:3rem;display:block;margin-bottom:.8rem}

.mrow{
  display:flex;gap:.8rem;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:.85rem 1rem;margin-bottom:.7rem;flex-wrap:wrap;box-shadow:var(--shadow-sm);
}
.mrow .mr-name{flex:1 1 160px;font-weight:700;min-width:0}
.mrow .mr-fields{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap}
.mrow .mr-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.mrow .mr-name small{display:block;color:var(--txt-faint);font-weight:500;font-size:.76rem}
.mrow input.mr-price{width:92px;padding:.5rem .7rem;text-align:right}
.mrow input.mr-prep{width:74px;padding:.5rem .7rem;text-align:right}
.mrow select.mr-cat{
  min-width:140px;max-width:200px;padding:.5rem .65rem;font-size:.85rem;
  border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--txt);
}
.menu-cat-hint-card{margin-bottom:1rem}
.mini-lbl{font-size:.68rem;color:var(--txt-faint);font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.2rem}

.addform{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;align-items:end;margin-top:1rem}
.addform .full{grid-column:1/-1}
.menu-i18n-details{
  border:1px solid var(--line);border-radius:10px;padding:.65rem .85rem;background:var(--bg);
}
.menu-i18n-details > summary{
  cursor:pointer;font-weight:700;font-size:.88rem;color:var(--txt-dim);list-style:none;
}
.menu-i18n-details > summary::-webkit-details-marker{display:none}
.menu-i18n-details > summary::before{content:'▸ ';color:var(--txt-faint)}
.menu-i18n-details[open] > summary::before{content:'▾ '}
.menu-i18n-details[open] > summary{margin-bottom:.7rem}
.menu-i18n-grid{display:grid;gap:.7rem}
.menu-i18n-grid .form-group{margin:0}

.news-admin-row{
  display:flex;gap:1rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:1rem 1.1rem;margin-bottom:.7rem;box-shadow:var(--shadow-sm);
}
.news-admin-row .nr-body{flex:1}
.news-admin-row b{display:block;margin-bottom:.15rem}
.news-admin-row p{color:var(--txt-dim);font-size:.88rem}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:1.1rem;margin-bottom:1.6rem}
.stat-card{text-align:center;padding:1.6rem 1.2rem}
.stat-card b{font-family:var(--font-head);font-size:2.2rem;display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat-card span{color:var(--txt-faint);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.stat-card-twint b{background:linear-gradient(135deg,#01b0a8,#059669);-webkit-background-clip:text;background-clip:text}
.stat-card-card b{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;background-clip:text}
.stat-card-cash b{background:linear-gradient(135deg,#d97706,#fbbf24);-webkit-background-clip:text;background-clip:text}
.stat-card-noshow b{background:linear-gradient(135deg,#dc2626,#f59e0b);-webkit-background-clip:text;background-clip:text}
.stat-card-helper b{background:linear-gradient(135deg,#0284c7,#0ea5e9);-webkit-background-clip:text;background-clip:text}
.stat-card-helper-payout b{background:linear-gradient(135deg,#b45309,#ea580c);-webkit-background-clip:text;background-clip:text}

/* ---- Tenant-Logo ---- */
.tenant-logo-wrap{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  position:relative;vertical-align:middle;
}
.tenant-logo-wrap:not(.has-logo) .tenant-logo{display:none!important}
.tenant-logo-wrap.has-logo .tenant-logo-fallback,
.tenant-logo-wrap.has-logo #aLogoFallback,
.tenant-logo-wrap.has-logo #gBadiLogoFallback,
.tenant-logo-wrap.has-logo #tvLogoFallback{display:none!important;visibility:hidden!important}
.tenant-logo-wrap.has-logo.logo-mark{
  width:auto!important;height:auto!important;min-width:0;padding:0;
  background:transparent!important;box-shadow:none!important;border-radius:0;
}
.tenant-logo{
  width:auto;height:40px;max-width:min(180px,42vw);
  border-radius:0;object-fit:contain;background:transparent;display:block;
}
.admin-logo .tenant-logo-wrap.has-logo .admin-logo-img{
  height:clamp(36px,5vw,52px);max-width:min(200px,38vw);
}
.gast-badi-name .tenant-logo-wrap.has-logo .tenant-logo{
  height:clamp(38px,10vw,48px);max-width:min(190px,44vw);
}
.tv-logo-wrap.has-logo{margin-right:.5rem}
.tv-logo-wrap.has-logo .tv-logo{
  height:clamp(44px,7vh,72px);max-width:min(240px,34vw);
}
.logo-upload-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.logo-upload-prev{
  width:auto;height:auto;max-width:200px;max-height:120px;
  border-radius:0;object-fit:contain;background:transparent;border:none;display:none;
}
.logo-upload-prev.show{display:block}
.cover-upload-checker{width:min(100%,280px)}
.cover-upload-prev{
  width:100%;aspect-ratio:16/9;max-width:280px;max-height:none;
  border-radius:10px;object-fit:cover;background:transparent;border:none;display:none;
}
.cover-upload-prev.show{display:block}
.logo-upload-actions{display:flex;flex-direction:column;gap:.45rem}
.staff-geo-map{
  width:100%;height:220px;border-radius:12px;border:1px solid var(--line);
  margin-bottom:.25rem;display:none;z-index:1;
}
.variant-select{
  width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);
  background:var(--card);color:var(--txt);font-size:.95rem;
}
.variant-chip{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.38rem .72rem;border-radius:999px;border:1.5px solid var(--line);
  background:var(--bg-soft);color:var(--txt);font-size:.78rem;font-weight:700;
  cursor:pointer;transition:border-color .15s,background .15s,color .15s;
  white-space:nowrap;
}
.variant-chip:hover{border-color:var(--aqua);color:var(--aqua)}
.variant-chip.on,.variant-chip:active{
  border-color:var(--aqua);background:var(--aqua-dim);color:var(--aqua);
}
.mi-variants{
  display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.45rem 0 .15rem;
}
.mi-variants-lbl{
  font-size:.68rem;font-weight:800;color:var(--txt-faint);
  text-transform:uppercase;letter-spacing:.04em;margin-right:.15rem;
}
.mi-variant-hint{font-size:.72rem;color:var(--txt-faint);margin:.35rem 0 0}
.menu-item.has-inline-variants .mi-meta{align-items:flex-end}
.mr-variants{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:.35rem}
.mr-variants-lbl{font-size:.7rem;font-weight:800;color:var(--txt-faint);margin-right:.2rem}
.variant-tag{
  display:inline-block;padding:.2rem .5rem;border-radius:6px;
  background:var(--aqua-dim);color:var(--aqua);font-size:.72rem;font-weight:700;
}
.allergen-bar{padding:.15rem 1.1rem .35rem}
.allergen-info-btn{
  font-weight:500;font-size:.76rem;border:none;padding:.25rem 0;
  color:var(--txt-faint);background:transparent;text-decoration:underline;
  text-underline-offset:.15em;width:auto;display:inline;
}
.allergen-info-btn:hover{color:var(--aqua)}
.allergen-badges{display:inline-flex;flex-wrap:wrap;gap:.25rem;align-items:center}
.allergen-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:6px;
  background:rgba(255,180,60,.18);color:#c47a00;font-size:.68rem;font-weight:800;
  border:1px solid rgba(255,180,60,.35);
}
.mi-allergens{margin-top:.25rem}
.allergen-disclaimer{
  color:var(--txt-dim);font-size:.84rem;line-height:1.45;margin:-.25rem 0 1rem;
}
.allergen-custom-note{
  color:var(--txt);font-size:.86rem;line-height:1.45;margin:-.5rem 0 1rem;
  padding:.65rem .75rem;border-radius:10px;background:var(--bg-soft);border:1px solid var(--line);
}
.allergen-section-title{
  font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  color:var(--txt-faint);margin:1rem 0 .55rem;
}
.allergen-legend{display:grid;gap:.35rem;margin-bottom:.25rem}
.allergen-legend-row{display:flex;align-items:flex-start;gap:.55rem;font-size:.84rem;line-height:1.35}
.allergen-menu-list{display:grid;gap:.15rem;max-height:38vh;overflow:auto;padding-right:.15rem}
.allergen-cat{
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  color:var(--txt-faint);margin-top:.65rem;padding-top:.35rem;
}
.allergen-cat:first-child{margin-top:0;padding-top:0}
.allergen-menu-row{
  display:flex;align-items:center;justify-content:space-between;gap:.65rem;
  padding:.35rem 0;border-bottom:1px solid var(--line);
}
.allergen-menu-name{font-size:.88rem;font-weight:600;flex:1;min-width:0}
.allergen-empty{color:var(--txt-faint);font-size:.88rem;text-align:center;padding:.75rem 0}
.allergen-settings-card{margin-bottom:1.2rem}
.allergen-check-grid{
  display:grid;gap:.45rem;max-height:50vh;overflow:auto;margin-bottom:1rem;padding-right:.2rem;
}
.allergen-check{
  display:flex;align-items:flex-start;gap:.55rem;padding:.55rem .65rem;
  border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);cursor:pointer;
  font-size:.86rem;line-height:1.35;
}
.allergen-check input{margin-top:.2rem;accent-color:var(--aqua)}
.allergen-check:has(input:checked){border-color:rgba(255,180,60,.45);background:rgba(255,180,60,.08)}
.variant-picker{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem}
.a2fa-setup-grid{
  display:grid;grid-template-columns:minmax(200px,220px) 1fr;gap:1.25rem;align-items:start;
}
@media(max-width:640px){.a2fa-setup-grid{grid-template-columns:1fr}}
.a2fa-qr-box{
  text-align:center;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);
}
.a2fa-qr-box canvas{
  display:block;margin:0 auto;border-radius:8px;background:#fff;padding:6px;
}
.a2fa-qr-hint{font-size:.78rem;color:var(--txt-dim);margin:.65rem 0 0;line-height:1.4}
.a2fa-steps-list{
  margin:0;padding-left:1.15rem;font-size:.86rem;color:var(--txt-dim);line-height:1.55;
}
.a2fa-steps-list li{margin-bottom:.35rem}
.a2fa-manual{margin-top:.75rem;font-size:.84rem}
.a2fa-manual summary{cursor:pointer;font-weight:700;color:var(--txt-dim)}
.a2fa-secret-code{
  display:block;margin-top:.5rem;padding:.55rem .65rem;border-radius:8px;
  background:var(--bg-soft);word-break:break-all;font-size:.8rem;
}
.a2fa-error{color:#ff6b6b;font-size:.88rem;margin:.35rem 0 .65rem;font-weight:700;line-height:1.4}
.a2fa-status{
  display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border-radius:14px;
  margin-bottom:1rem;border:2px solid var(--line);background:var(--bg-soft);
}
.a2fa-status-on{border-color:rgba(132,204,22,.45);background:rgba(132,204,22,.08)}
.a2fa-status-off{border-color:rgba(148,163,184,.35)}
.a2fa-status-icon{font-size:1.35rem;line-height:1;flex-shrink:0;margin-top:.1rem}
.a2fa-status-text{display:grid;gap:.25rem;font-size:.86rem;line-height:1.45}
.a2fa-status-text strong{font-size:.92rem;color:var(--txt)}
.a2fa-status-text span{color:var(--txt-dim)}
.a2fa-how{margin:0 0 1rem;border:1px solid var(--line);border-radius:12px;padding:.65rem .85rem;background:var(--bg-soft)}
.a2fa-how summary{cursor:pointer;font-weight:800;font-size:.88rem;color:var(--txt-dim)}
.a2fa-how-list{margin:.55rem 0 0;padding-left:1.15rem;font-size:.84rem;color:var(--txt-dim);line-height:1.5}
.a2fa-how-list li{margin-bottom:.4rem}
.login-2fa-hint{
  color:var(--txt-dim);font-size:.82rem;line-height:1.45;margin:.45rem 0 0;
}
.login-remember-device{
  display:flex;align-items:flex-start;gap:.55rem;margin-top:.75rem;
  font-size:.82rem;color:var(--txt-dim);line-height:1.4;cursor:pointer;
}
.login-remember-device input{margin-top:.15rem;accent-color:var(--aqua);flex-shrink:0}
.logo-upload-checker{
  display:inline-flex;align-items:center;justify-content:center;padding:.5rem;
  border-radius:12px;border:1px solid var(--line);
  background:
    linear-gradient(45deg,var(--bg-soft) 25%,transparent 25%,transparent 75%,var(--bg-soft) 75%),
    linear-gradient(45deg,var(--bg-soft) 25%,transparent 25%,transparent 75%,var(--bg-soft) 75%);
  background-size:12px 12px;background-position:0 0,6px 6px;
  background-color:var(--card);
}

/* ---- Nerd-Statistiken ---- */
.stat-nerd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:.85rem;margin-bottom:1.1rem}
.stat-nerd-kpi{text-align:center;padding:1rem .75rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px}
.stat-nerd-kpi b{font-family:var(--font-head);font-size:1.35rem;display:block;color:var(--aqua)}
.stat-nerd-kpi span{font-size:.72rem;font-weight:700;color:var(--txt-faint);text-transform:uppercase;letter-spacing:.04em}
.stat-nerd-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;margin-bottom:1rem}
.stat-nerd-card h4{font-size:.95rem;margin:0 0 1rem;color:var(--txt-dim)}
.stat-nerd-foot{margin:.75rem 0 0;font-size:.78rem;color:var(--txt-faint);font-weight:600}
.stat-hour-chart,.stat-day-chart{display:flex;align-items:flex-end;gap:3px;height:100px;padding-top:.25rem}
.stat-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.stat-bar-fill{width:100%;min-height:2px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--aqua),#0891b2);transition:height .3s}
.stat-bar-fill.rev{background:linear-gradient(180deg,var(--lime),#059669)}
.stat-bar-lbl{font-size:.58rem;font-weight:700;color:var(--txt-faint);white-space:nowrap}
.stat-cat-list,.stat-pay-mix{display:grid;gap:.55rem}
.stat-cat-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center;font-size:.85rem;font-weight:600}
.stat-cat-track{grid-column:1/-1;height:8px;background:var(--bg-soft);border-radius:999px;overflow:hidden}
.stat-cat-fill{height:100%;border-radius:999px;background:var(--grad)}

.stat-pay-card{margin-bottom:1.4rem}
.stat-pay-bars{display:grid;gap:1rem}
.stat-pay-row{display:grid;grid-template-columns:88px 1fr auto;gap:.75rem;align-items:center}
.stat-pay-lbl{font-weight:700;font-size:.88rem;white-space:nowrap}
.stat-pay-track{height:14px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);overflow:hidden}
.stat-pay-fill{height:100%;border-radius:999px;transition:width .4s ease}
.stat-pay-fill.twint{background:linear-gradient(90deg,#01b0a8,#059669)}
.stat-pay-fill.card{background:linear-gradient(90deg,#2563eb,#7c3aed)}
.stat-pay-fill.cash{background:linear-gradient(90deg,#d97706,#fbbf24)}
.stat-pay-val{font-family:var(--font-head);font-weight:700;font-size:.92rem;white-space:nowrap;color:var(--txt-dim)}
.stat-pay-note{color:var(--txt-faint);font-size:.78rem;margin-top:1rem}
.stat-history-note{color:var(--txt-faint);font-size:.82rem;margin:0 0 1rem;line-height:1.45}
.stat-period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.1rem;margin-bottom:.4rem}
.stat-period-card{padding:1.25rem 1.3rem;display:flex;flex-direction:column;gap:.65rem}
.sp-order-highlight{text-align:center;padding:.35rem 0 .15rem}
.sp-order-num{font-family:var(--font-head);font-size:2.2rem;font-weight:700;color:var(--aqua);display:block;line-height:1}
.sp-order-lbl{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--txt-faint)}
.sp-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.sp-head b{font-family:var(--font-head);font-size:1.05rem}
.sp-head small{color:var(--txt-faint);font-size:.75rem;font-weight:600}
.sp-total{font-family:var(--font-head);font-weight:700;font-size:1.75rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.sp-split{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;font-size:.85rem;color:var(--txt-dim)}
.sp-split em{font-style:normal;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--txt-faint);display:block;margin-bottom:.15rem}
.sp-split strong{font-family:var(--font-head);font-weight:700;color:var(--txt);font-size:.95rem}
.sp-split small{display:block;font-size:.72rem;font-weight:600;color:var(--txt-faint);margin-top:.2rem}
.sp-noshow{display:flex;align-items:baseline;gap:.4rem;font-size:.78rem;font-weight:700;color:#d97706}
.sp-noshow strong{font-family:var(--font-head);font-weight:700;font-size:.9rem}
.sp-noshow small{font-size:.72rem;font-weight:600;color:var(--txt-faint)}
.sp-helper{display:flex;align-items:baseline;gap:.4rem;font-size:.78rem;font-weight:700;color:#0284c7}
.sp-helper strong{font-family:var(--font-head);font-weight:700;font-size:.9rem}
.sp-helper small{font-size:.72rem;font-weight:600;color:var(--txt-faint)}
.sp-meta{color:var(--txt-faint);font-size:.78rem;font-weight:600;border-top:1px solid var(--line);padding-top:.55rem;margin-top:auto}
.sp-yoy{font-size:.78rem;font-weight:700;color:var(--txt-dim)}
.sp-yoy.up{color:#059669}
.sp-yoy.down{color:#b45309}
.sp-yoy.muted{color:var(--txt-faint);font-weight:600}

.chef-score-card{margin-top:1.2rem;padding:1.25rem 1.35rem}
.chef-score-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.chef-score-ring{
  flex:0 0 auto;min-width:88px;padding:.65rem .85rem;border-radius:14px;text-align:center;
  background:var(--bg-soft);border:1px solid var(--line);
}
.chef-score-ring b{display:block;font-family:var(--font-head);font-size:1.85rem;line-height:1.1;color:var(--aqua)}
.chef-score-ring span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--txt-dim)}
.chef-score--weak b{color:#b45309}
.chef-score--ok b{color:#0ea5e9}
.chef-score--strong b{color:#059669}
.chef-score--top b{color:#16a34a}
.chef-compare{display:grid;gap:.4rem;margin-bottom:.9rem}
.chef-compare-row{display:flex;justify-content:space-between;gap:.75rem;font-size:.88rem;font-weight:600;color:var(--txt-dim)}
.chef-compare-row strong{color:var(--txt);font-weight:800}
.chef-metrics{display:grid;gap:.65rem;margin-bottom:.85rem}
.chef-metric{padding:.7rem .85rem;border-radius:12px;background:var(--bg-soft);border:1px solid var(--line)}
.chef-metric > span{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--txt-faint);margin-bottom:.25rem}
.chef-metric > div{font-size:.92rem;font-weight:600;line-height:1.4}
.chef-muted{color:var(--txt-faint);font-weight:600}
.chef-labor-row{border-top:1px solid var(--line);padding-top:.85rem}
.chef-labor-inputs{display:flex;gap:.5rem;align-items:center;margin-top:.35rem}
.chef-labor-inputs input{flex:1;min-width:0}
.chef-labor-hint{margin:.45rem 0 0;font-size:.8rem;color:var(--txt-faint);font-weight:600}

.tip-block{margin:1rem 0 .5rem;padding-top:.85rem;border-top:1px solid var(--line)}
.tip-label{font-size:.82rem;font-weight:800;color:var(--txt-dim);margin:0 0 .55rem;text-transform:uppercase;letter-spacing:.04em}
.tip-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
.tip-btn{
  padding:.55rem .65rem;border-radius:10px;border:1.5px solid var(--line);background:var(--bg-soft);
  color:var(--txt);font-size:.82rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s;
}
.tip-btn:hover{border-color:var(--aqua);color:var(--aqua)}
.tip-btn.sel{border-color:var(--aqua);background:var(--aqua-dim);color:var(--aqua)}
.tip-custom-row{margin-top:.55rem}
.tip-custom-input{
  width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);
  background:var(--card);color:var(--txt);font-size:.95rem;font-family:inherit;
}
.checkout-totals{display:grid;gap:.35rem;margin-top:.5rem}
.cart-total-sub{font-size:.9rem;color:var(--txt-dim)}
.cart-total-sub span:last-child{font-weight:700;color:var(--txt)}

.feedback-box{text-align:center;padding:1rem .5rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);margin-bottom:1rem}
.feedback-title{font-family:var(--font-head);font-size:1.15rem;margin:0 0 .25rem;color:var(--txt)}
.feedback-sub{color:var(--txt-dim);font-size:.85rem;margin:0 0 .85rem;line-height:1.4}
.feedback-stars{display:flex;justify-content:center;gap:.35rem;margin-bottom:.65rem}
.feedback-star{
  font-size:1.65rem;line-height:1;padding:.35rem .45rem;border:none;background:transparent;cursor:pointer;
  filter:grayscale(.35);transition:transform .12s,filter .12s;
}
.feedback-star:hover,.feedback-star:focus{transform:scale(1.12);filter:none}
.feedback-skip{margin-top:.15rem}
.feedback-thanks{color:var(--lime);font-weight:700;font-size:.95rem;margin:0 0 1rem}
.feedback-overlay{
  position:fixed;inset:0;z-index:210;display:none;align-items:center;justify-content:center;
  padding:1.25rem;background:rgba(15,45,61,.55);backdrop-filter:blur(8px);
}
.feedback-overlay.show{display:flex}
.feedback-overlay-card{
  width:100%;max-width:400px;background:#fff;border-radius:20px;padding:1.5rem 1.25rem;
  box-shadow:0 20px 60px rgba(15,45,61,.22);animation:feedbackPop .25s ease;
}
.feedback-overlay .feedback-box{border:none;background:transparent;margin-bottom:0;padding:0}
@keyframes feedbackPop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.feedback-mood-badge{font-size:2rem;line-height:1;padding:.35rem .5rem}
.feedback-quick-card{border-color:rgba(132,204,22,.35)}

.closing-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}
.closing-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
.closing-date{padding:.55rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--txt);font-size:.9rem;font-family:inherit}
.closing-report{border-top:1px solid var(--line);padding-top:1rem}
.closing-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-bottom:1rem;font-size:.9rem;color:var(--txt-dim)}
.closing-meta strong{font-family:var(--font-head);font-size:1.05rem;color:var(--txt)}
.closing-meta-right{font-size:.82rem;color:var(--txt-faint);align-self:flex-end}
.closing-section-title{font-size:.95rem;margin:1.1rem 0 .55rem;color:var(--txt-dim)}
.closing-table{width:100%;border-collapse:collapse;font-size:.85rem}
.closing-table th,.closing-table td{padding:.45rem .55rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.closing-table th{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--txt-faint)}
.closing-num{font-family:var(--font-head);font-weight:700;white-space:nowrap}
.closing-sub{font-size:.78rem;color:var(--txt-faint);white-space:nowrap}
.closing-summary tbody tr:last-child td{font-weight:800;border-top:2px solid var(--line)}
.closing-detail-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.closing-footnote{color:var(--txt-faint);font-size:.78rem;margin:1rem 0 0;line-height:1.45}

@media print{
  body *{visibility:hidden}
  #sClosingCard,#sClosingCard *{visibility:visible}
  #sClosingCard{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:none;background:#fff;color:#000}
  .closing-actions{display:none!important}
  .closing-table th,.closing-table td{border-color:#ccc;color:#000}
  .closing-meta,.closing-footnote{color:#444}
}

.abo-status{
  display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;
  border:1px solid rgba(132,204,22,.4);
  min-width:0;max-width:100%;overflow:hidden;
}
.abo-status .as-ico{
  width:64px;height:64px;border-radius:18px;background:rgba(132,204,22,.12);
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex:0 0 auto;
}
.abo-status .as-body{flex:1;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.abo-status h3{margin-bottom:.2rem;overflow-wrap:anywhere}
.abo-status p{color:var(--txt-dim);font-size:.9rem;overflow-wrap:anywhere;word-break:break-word}
.abo-loyalty{
  margin-top:.85rem;padding:.75rem .9rem;border-radius:12px;
  border:1px solid rgba(56,189,248,.28);background:rgba(56,189,248,.07);
  max-width:100%;
}
.abo-loyalty-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
}
.abo-loyalty-label{font-size:.88rem;font-weight:600;color:var(--txt)}
.abo-loyalty-head strong{
  font-size:1.35rem;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--txt);
}
.abo-loyalty-hint{margin:.35rem 0 0;font-size:.82rem;color:var(--txt-dim);line-height:1.4}
.abo-loyalty-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.65rem}
.abo-loyalty-pending{
  margin-top:.55rem;font-size:.84rem;line-height:1.4;color:var(--txt);
  padding:.45rem .55rem;border-radius:8px;background:rgba(132,204,22,.12);
  border:1px solid rgba(132,204,22,.28);
}
.abo-loyalty--paused{border-color:rgba(148,163,184,.35);background:rgba(148,163,184,.08)}
.abo-loyalty--paused .abo-loyalty-actions{opacity:.7}
.abo-invoice-box{margin-top:.9rem;display:flex;flex-direction:column;gap:.65rem;width:100%;max-width:100%}
.abo-invoice{
  border:1px solid rgba(245,158,11,.35);
  background:rgba(245,158,11,.06);
  border-radius:12px;padding:.85rem 1rem;
}
.abo-invoice--ok{
  border-color:rgba(132,204,22,.35);
  background:rgba(132,204,22,.06);
}
.abo-invoice-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.55rem}
.abo-invoice-head h4{margin:0;font-size:1rem}
.abo-invoice-table{border-collapse:collapse;width:100%;font-size:.9rem;margin:.15rem 0 .55rem}
.abo-invoice-table th{
  text-align:left;font-weight:500;color:var(--txt-dim);
  padding:.2rem .75rem .2rem 0;white-space:nowrap;vertical-align:top;
}
.abo-invoice-table td{padding:.2rem 0;vertical-align:top}
.abo-invoice-pay{margin-top:.35rem}
.abo-invoice-pay strong{font-size:.88rem}
.abo-invoice-pay-text{
  margin:.35rem 0 0;padding:.65rem .75rem;border-radius:8px;
  background:var(--bg-soft);border:1px solid var(--line);
  font-family:inherit;font-size:.88rem;line-height:1.45;white-space:pre-wrap;
  color:var(--txt);overflow-wrap:anywhere;
}
.abo-invoice-note{margin:.55rem 0 0;font-size:.82rem;color:var(--txt-dim)}
.abo-invoice-history{margin-top:.15rem;font-size:.88rem;color:var(--txt-dim)}
.abo-invoice-history summary{cursor:pointer;user-select:none}
.abo-invoice-paid-list{margin:.45rem 0 0;padding-left:1.1rem}
.abo-invoice-paid-list li{margin:.2rem 0}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.2rem;margin-top:1.4rem}

/* Abo & Einstellungen – Unter-Nav + Gruppen */
.settings-subnav{
  display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;
  position:sticky;top:calc(var(--admin-top-h,64px) + var(--admin-tabs-h,52px));
  z-index:50;margin:1.15rem 0 1.35rem;padding:.55rem 0;
  background:linear-gradient(180deg,var(--bg) 70%,transparent);
  -webkit-overflow-scrolling:touch;
}
.settings-subnav::-webkit-scrollbar{display:none}
.settings-subnav-btn{
  flex:0 0 auto;padding:.45rem .9rem;border-radius:999px;font-weight:700;font-size:.82rem;
  color:var(--txt-dim);border:1px solid var(--line);background:var(--card);cursor:pointer;
  white-space:nowrap;transition:border-color .15s,background .15s,color .15s;
}
.settings-subnav-btn:hover{border-color:var(--lime-dim);color:var(--txt)}
.settings-subnav-btn.on{
  border-color:rgba(132,204,22,.55);background:rgba(132,204,22,.12);color:var(--txt);
}
.settings-sec{
  margin:0 0 2rem;
  scroll-margin-top:calc(var(--admin-top-h,64px) + var(--admin-tabs-h,52px) + 64px);
}
.settings-sec-head{margin:0 0 .85rem}
.settings-sec-head h2{margin:0;font-size:1.2rem;font-family:var(--font-head)}
.settings-sec-head p{margin:.35rem 0 0;color:var(--txt-dim);font-size:.9rem;line-height:1.4;max-width:42rem}
.settings-sec-body{display:flex;flex-direction:column;gap:1rem}
.settings-help{
  margin:.15rem 0 .75rem;border:1px solid var(--line);border-radius:10px;
  padding:.45rem .7rem;background:var(--bg-soft);
}
.settings-help > summary{
  cursor:pointer;user-select:none;font-weight:700;font-size:.82rem;color:var(--txt-dim);
  list-style:none;
}
.settings-help > summary::-webkit-details-marker{display:none}
.settings-help > summary::before{content:'▸ ';font-size:.75rem}
.settings-help[open] > summary::before{content:'▾ '}
.settings-help > summary + *{margin-top:.45rem}
.settings-help p,
.settings-help li{margin:0 0 .4rem;font-size:.84rem;color:var(--txt-dim);line-height:1.45}
.settings-help p:last-child,
.settings-help li:last-child{margin-bottom:0}
.settings-help ol,
.settings-help ul{margin:0;padding-left:1.15rem}
.settings-feat-head{
  display:flex;gap:1rem;align-items:flex-start;margin-bottom:.75rem;min-width:0;max-width:100%;
}
.settings-feat-head .px-ico,
.settings-feat-head .lbl-ico{
  width:48px;height:48px;border-radius:14px;background:rgba(8,145,178,.10);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;flex:0 0 auto;
}
.settings-feat-head .px-title,
.settings-feat-head .lbl-title-block{flex:1;min-width:0}
.settings-feat-head h3{
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  font-size:1.02rem;margin:0;overflow-wrap:anywhere;
}
.settings-feat-head h3 .badge{white-space:normal;line-height:1.25;max-width:100%}
.settings-card-title{font-size:1.02rem;margin:0 0 .75rem}
.abo-status .as-body > #aboInfoTxt{margin:0}
.abo-status .settings-help{margin-top:.55rem}
.abo-extras{display:flex;flex-direction:column;gap:.65rem;margin-top:.75rem;width:100%}
.abo-loyalty{margin-top:0}
.abo-invoice-box{margin-top:0}
.abo-offseason{margin-top:0!important}
.settings-sec-body.settings-grid{display:grid;margin-top:0}
.settings-sec-body > .card,
.settings-sec-body .twint-toggle-card,
.settings-sec-body .payrexx-card,
.settings-sec-body .label-printer-card,
.settings-sec-body .receipt-preview-card{margin-top:0!important;margin-bottom:0!important}
.settings-sec-save{
  display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap;
  position:sticky;bottom:0;z-index:20;
  margin-top:1rem;padding:.85rem 1rem;border:1px dashed var(--line);border-radius:14px;
  background:var(--card-2);
  box-shadow:0 -8px 20px rgba(255,255,255,.85);
}
.settings-danger-card{border-color:rgba(220,38,38,.28)}
.alarm-tone-grid{display:flex;flex-direction:column;gap:.5rem}
.alarm-tone-opt{
  display:flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .75rem;
  border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);
  cursor:pointer;text-align:left;transition:border-color .15s,background .15s;
}
.alarm-tone-opt:hover{border-color:var(--lime-dim)}
.alarm-tone-opt.on{border-color:var(--lime);background:rgba(180,220,100,.12)}
.alarm-tone-opt .ato-icon{font-size:1.35rem;flex-shrink:0}
.alarm-tone-opt .ato-name{flex:1;font-size:.9rem;font-weight:500}
.alarm-tone-opt .ato-preview{
  flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--bg);color:var(--lime);font-size:.75rem;
  border:1px solid var(--border);cursor:pointer;padding:0;
}
.alarm-tone-opt .ato-preview:hover{background:var(--lime);color:#1a1a1a}

/* ---- Payrexx-Zugang ---- */
.alarm-tone-opt .ato-preview:hover{background:var(--lime);color:#1a1a1a}

/* Etikettendrucker */
.label-printer-card{margin-top:1.4rem;border:1px solid rgba(217,119,6,.35);min-width:0;max-width:100%;overflow:hidden}
.label-printer-card .lbl-head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:.75rem;min-width:0;max-width:100%}
.label-printer-card .lbl-ico{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.35rem;background:rgba(217,119,6,.15);flex-shrink:0
}
.label-printer-card .lbl-title-block{flex:1;min-width:0;max-width:100%}
.label-printer-card .lbl-title-block h3{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-size:1.02rem;margin:0;overflow-wrap:anywhere}
.label-printer-card .lbl-title-block h3 .badge{white-space:normal;line-height:1.25;max-width:100%}
.label-printer-card .lbl-title-block p{display:none}
.lbl-enable-row{display:flex;align-items:center;gap:.6rem;font-size:.92rem;font-weight:500;cursor:pointer;margin-bottom:.5rem}
.lbl-enable-row input[type="checkbox"]{width:auto;flex:0 0 auto;accent-color:var(--aqua)}
.lbl-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:.85rem}
.lbl-tpl-opt{
  display:flex;flex-direction:column;border:1px solid var(--line);
  border-radius:.75rem;cursor:pointer;transition:border-color .15s,background .15s;overflow:hidden
}
.lbl-tpl-opt:hover{border-color:var(--amber-dim)}
.lbl-tpl-opt.on{border-color:var(--amber);background:rgba(217,119,6,.08);box-shadow:0 0 0 1px rgba(217,119,6,.25)}
.lbl-tpl-thumb{
  height:148px;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;
  background:linear-gradient(180deg,#f8fafc 0%,#eef2f6 100%);border-bottom:1px solid var(--line)
}
.lbl-tpl-thumb-frame{
  width:220px;height:300px;border:0;transform:scale(.48);transform-origin:top center;margin-top:.35rem;
  pointer-events:none;background:#fff;box-shadow:0 4px 16px rgba(15,45,61,.12)
}
.lbl-tpl-row{display:flex;align-items:center;gap:.65rem;padding:.7rem .8rem}
.lbl-tpl-icon{font-size:1.2rem;flex-shrink:0}
.lbl-tpl-info{flex:1;min-width:0}
.lbl-tpl-name{display:block;font-size:.88rem;font-weight:600}
.lbl-tpl-desc{display:block;font-size:.76rem;color:var(--txt-dim);margin-top:.1rem;line-height:1.35}
.lbl-tpl-preview{
  flex-shrink:0;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);
  cursor:pointer;font-size:.74rem;font-weight:600;color:var(--txt-dim)
}
.lbl-tpl-preview:hover{background:var(--amber);color:#1a1a1a;border-color:var(--amber)}
.lbl-info-grid{display:grid;gap:.45rem;font-size:.88rem;color:var(--txt-dim)}
.lbl-info-grid b{color:var(--txt)}
.lbl-connect-help,
.lbl-http-chrome-hint{
  margin-top:.85rem;padding:.85rem 1rem;border-radius:12px;
  background:rgba(14,116,144,.08);border:1px solid rgba(14,116,144,.22);
  font-size:.84rem;line-height:1.45;color:var(--txt-dim)
}
.lbl-connect-help p,
.lbl-http-chrome-hint p{margin:0 0 .55rem}
.lbl-connect-help ol{margin:.35rem 0 .65rem;padding-left:1.2rem}
.lbl-connect-help li{margin:.2rem 0}
.lbl-connect-help-alt{margin-top:.65rem !important;padding-top:.65rem;border-top:1px solid rgba(14,116,144,.15)}
.lbl-http-chrome-hint{background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.28)}
.lbl-connect-help .btn-link,
.lbl-http-chrome-hint .btn-link{
  background:none;border:none;padding:0;color:var(--accent);cursor:pointer;
  font:inherit;text-decoration:underline
}

/* Quittungs-Vorschau */
.receipt-preview-card{margin-top:1.4rem;border:1px solid rgba(8,145,178,.3)}
.receipt-preview-head{display:flex;gap:1rem;align-items:center;margin-bottom:.65rem}
.receipt-preview-ico{
  width:2.8rem;height:2.8rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;background:rgba(8,145,178,.12);flex-shrink:0
}
.receipt-tpl-preview{
  height:220px;overflow:hidden;border:1px solid var(--line);border-radius:.75rem;
  background:#f0f4f8;display:flex;justify-content:center
}
.receipt-tpl-thumb-frame{
  width:560px;height:720px;border:0;transform:scale(.36);transform-origin:top center;margin-top:.5rem;
  pointer-events:none;background:#fff;box-shadow:0 8px 28px rgba(15,45,61,.1)
}

/* Vorlagen-Grossansicht */
.tpl-preview-overlay{
  position:fixed;inset:0;z-index:220;display:none;align-items:center;justify-content:center;
  padding:1rem;background:rgba(15,45,61,.62);backdrop-filter:blur(8px)
}
.tpl-preview-overlay.show{display:flex}
.tpl-preview-modal{
  width:100%;max-width:720px;max-height:92vh;background:var(--bg-2);border:1px solid var(--line);
  border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden
}
.tpl-preview-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.15rem;border-bottom:1px solid var(--line)
}
.tpl-preview-head h3{margin:0;font-size:1.05rem}
.tpl-preview-close{
  width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--line);background:var(--bg);
  color:var(--txt-dim);cursor:pointer;font-size:1rem;line-height:1
}
.tpl-preview-close:hover{background:var(--red);color:#fff;border-color:var(--red)}
.tpl-preview-body{
  flex:1;overflow:auto;padding:1.25rem;background:#e8eef2;display:flex;justify-content:center;align-items:flex-start
}
.tpl-preview-body--label .tpl-preview-iframe{
  width:58mm;min-height:120mm;border:0;background:#fff;box-shadow:0 8px 32px rgba(15,45,61,.15)
}
.tpl-preview-body--receipt .tpl-preview-iframe,
.tpl-preview-body--default .tpl-preview-iframe{
  width:100%;max-width:560px;min-height:70vh;border:0;background:#fff;border-radius:12px;
  box-shadow:0 8px 32px rgba(15,45,61,.12)
}
.tpl-preview-foot{padding:.85rem 1.15rem;border-top:1px solid var(--line);display:flex;justify-content:flex-end}
.order-search-bar{
  display:flex;gap:.55rem;align-items:stretch;flex-wrap:wrap
}
.order-search-bar input{
  flex:1 1 180px;min-width:0;font-family:var(--font-head);font-weight:600;
  letter-spacing:.02em;font-size:1.05rem
}
.order-search-bar .btn{flex:0 0 auto;align-self:stretch}
.order-search-hint{
  margin:.55rem 0 0;font-size:.86rem;color:var(--amber)
}
.order-search-hint.is-error{color:var(--red)}
.order-lookup-modal{max-width:520px}
.order-lookup-body{
  flex:1;overflow:auto;padding:1.15rem 1.2rem;background:var(--bg);
  display:flex;flex-direction:column;gap:.85rem
}
.order-lookup-foot{
  justify-content:flex-end;flex-wrap:wrap;gap:.5rem
}
.order-lookup-meta{
  display:flex;flex-wrap:wrap;gap:.4rem .55rem;align-items:center;
  font-size:.88rem;color:var(--txt-dim)
}
.order-lookup-items{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem
}
.order-lookup-items li{
  display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;
  padding:.55rem .7rem;background:var(--bg-soft);border:1px solid var(--line);
  border-radius:12px;font-size:.95rem
}
.order-lookup-items .qx{font-weight:700;color:var(--aqua);margin-right:.25rem}
.order-lookup-total{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--font-head);font-weight:700;font-size:1.1rem;
  padding-top:.35rem;border-top:1px solid var(--line)
}
.order-lookup-note{
  font-size:.88rem;color:var(--txt-dim);padding:.55rem .7rem;
  background:rgba(217,119,6,.08);border-radius:10px;border:1px solid rgba(217,119,6,.18)
}
.order-lookup-pick{
  display:flex;flex-direction:column;gap:.5rem
}
.order-lookup-pick-btn{
  display:flex;justify-content:space-between;align-items:center;gap:.75rem;
  width:100%;text-align:left;padding:.85rem 1rem;border-radius:14px;
  border:1px solid var(--line);background:var(--card);cursor:pointer;
  transition:border-color .15s,background .15s
}
.order-lookup-pick-btn:hover{
  border-color:var(--aqua-bright);background:rgba(6,182,212,.06)
}
.order-lookup-pick-btn .olp-num{
  font-family:var(--font-head);font-weight:700;font-size:1.05rem
}
.order-lookup-pick-btn .olp-sub{
  font-size:.82rem;color:var(--txt-dim)
}
.invoice-preview-subject{
  font-size:.82rem;font-weight:700;color:var(--txt-dim);margin-bottom:.65rem;
  padding:.55rem .75rem;background:var(--bg-soft);border:1px solid var(--line);border-radius:10px
}
.invoice-preview-subject--modal{margin:0 1.15rem .75rem}
.invoice-preview-iframe{
  width:100%;min-height:280px;border:1px solid var(--line);border-radius:12px;background:#fff;
  box-shadow:0 6px 22px rgba(8,60,90,.08)
}
.hw-preview-iframe{min-height:min(78vh,920px)}

/* Marketing-Vorlagen (Plattform-Admin) */
.mat-tpl-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));
  gap:1.1rem;
}
.mat-tpl-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--card);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:var(--shadow-sm);
  transition:box-shadow .2s,border-color .2s;
}
.mat-tpl-card:hover{
  border-color:rgba(99,102,241,.35);
  box-shadow:var(--shadow);
}
.mat-tpl-preview-wrap{
  background:linear-gradient(165deg,#eef0ff,#f8fafc);
  border-bottom:1px solid var(--line);
  padding:.65rem;
}
.mat-tpl-preview{
  width:100%;
  height:200px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  display:block;
}
.mat-tpl-body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;flex:1;gap:.65rem}
.mat-tpl-head{display:flex;align-items:flex-start;gap:.75rem}
.mat-tpl-icon{font-size:1.6rem;line-height:1;flex-shrink:0}
.mat-tpl-head h3{margin:0;font-size:1rem;line-height:1.25}
.mat-tpl-format{
  display:inline-block;margin-top:.25rem;font-size:.72rem;font-weight:700;
  color:var(--aqua);text-transform:uppercase;letter-spacing:.04em;
}
.mat-tpl-desc{margin:0;font-size:.88rem;color:var(--txt-dim);line-height:1.45;flex:1}
.mat-tpl-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}

/* Fastline – Getränke-only Bestellungen */
.badge-fastline{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-weight:800}
.order-lane-title{font-size:1.05rem;margin:0 0 .75rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.order-lane-sub{font-size:.78rem;font-weight:600;color:var(--txt-dim);text-transform:none;letter-spacing:0}
.order-grid-fastline .order-card-fastline{border-color:rgba(14,165,233,.55);box-shadow:0 0 0 1px rgba(14,165,233,.25),var(--shadow-sm)}
.order-card-fastline .oc-num{color:#0284c7}
.g-fastline-hint{
  margin:.85rem 0 0;padding:.75rem .9rem;border-radius:12px;font-size:.88rem;font-weight:600;line-height:1.4;
  background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(2,132,199,.08));
  border:1px solid rgba(14,165,233,.35);color:var(--txt);
}
.k-fastline-wrap{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px dashed rgba(14,165,233,.35)}
.k-section-title{font-size:1rem;font-weight:800;margin:0 0 .75rem;color:var(--txt-dim)}
.k-section-fastline{color:#0284c7}
.k-card-fastline{border-color:rgba(14,165,233,.55)!important;background:linear-gradient(180deg,rgba(14,165,233,.08),var(--card))}
.k-fastline-badge{
  display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;
  background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;
}
.k-empty-fastline{opacity:.75;font-size:.92rem}
.k-summary-wrap{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:2px dashed rgba(217,119,6,.4)}
.k-summary-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem .75rem;flex-wrap:wrap;margin-bottom:.75rem}
.k-summary-head .k-section-title{margin:0;flex:1 1 auto}
.k-summary-toggle{flex-shrink:0}
.k-summary-count{
  font-size:.8rem;font-weight:800;color:#d97706;align-items:center;
  background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.35);
  padding:.25rem .65rem;border-radius:999px;
}
.k-summary-wrap.k-summary-collapsed{padding-bottom:.35rem}
.k-summary-wrap.k-summary-collapsed .k-summary-head{margin-bottom:.35rem}
.k-section-summary{color:#d97706}
.k-summary-list{display:flex;flex-wrap:wrap;gap:.6rem}
.k-summary-item{
  display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;
  padding:.55rem .9rem;border-radius:14px;border:2px solid rgba(217,119,6,.45);
  background:linear-gradient(180deg,rgba(217,119,6,.1),var(--card));
}
.k-summary-qty{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:#d97706}
.k-summary-name{font-weight:700;font-size:1.05rem}
.k-summary-sub{font-size:.75rem;font-weight:700;color:var(--txt-dim);background:rgba(217,119,6,.14);padding:.15rem .5rem;border-radius:999px}

/* Betreiber-App (PWA) */
.app-install-status{margin-bottom:1rem}
.app-install-guide{margin-top:1rem;border:1px solid var(--line);border-radius:.65rem;padding:.75rem .9rem;background:rgba(0,0,0,.15)}
.app-install-guide summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--txt)}
.app-install-list{margin:.75rem 0 0 1.1rem;padding:0;color:var(--txt-dim);font-size:.86rem;line-height:1.55}
.app-install-list li{margin-bottom:.45rem}

.payrexx-card{margin-top:1.4rem;border:1px solid rgba(8,145,178,.35);min-width:0;max-width:100%;overflow:hidden}
.twint-toggle-card{margin-top:1.4rem;border:1px solid rgba(34,197,94,.35);min-width:0;max-width:100%;overflow:hidden}
.payrexx-card .px-head,
.twint-toggle-card .px-head,
.settings-sec .px-head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:.75rem;min-width:0;max-width:100%}
.payrexx-card .px-ico,
.twint-toggle-card .px-ico,
.settings-sec .px-ico{
  width:48px;height:48px;border-radius:14px;background:rgba(8,145,178,.10);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;flex:0 0 auto;
}
.payrexx-card .px-title,
.twint-toggle-card .px-title,
.settings-sec .px-title{flex:1;min-width:0;max-width:100%}
.payrexx-card .px-title h3,
.twint-toggle-card .px-title h3,
.settings-sec .px-title h3{
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  font-size:1.02rem;margin:0;overflow-wrap:anywhere;
}
.payrexx-card .px-title h3 .badge,
.twint-toggle-card .px-title h3 .badge,
.settings-sec .px-title h3 .badge{white-space:normal;text-align:left;line-height:1.25;max-width:100%}
.payrexx-card .px-title p,
.twint-toggle-card .px-title p,
.settings-sec .px-title p{display:none}
.px-steps{margin:0 0 1.2rem;padding-left:1.3rem;display:grid;gap:.5rem;color:var(--txt-dim);font-size:.9rem;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.px-steps b{color:var(--txt)}
.px-steps a{color:var(--aqua);font-weight:700}
.px-steps code{color:var(--aqua);font-weight:700;font-family:var(--font-head)}
.px-info-grid{display:grid;gap:.5rem;font-size:.92rem;color:var(--txt-dim)}
.px-info-grid b{color:var(--txt)}

/* ---- QR-Plakate (Admin) ---- */
.qr-admin-head{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}
.qr-admin-head > div:first-child{flex:1;min-width:0}
.qr-admin-qronly{text-align:center;flex:0 0 auto}
.qr-admin-qronly canvas{border:1px solid var(--line);border-radius:16px;background:#fff;display:block;box-shadow:var(--shadow-sm)}
.qr-poster-formats{display:flex;flex-direction:column;gap:2rem}
.qr-poster-section-head{margin-bottom:1rem}
.qr-poster-section-head h4{font-family:var(--font-head);font-size:1.05rem;margin:0 0 .25rem;color:var(--txt)}
.qr-poster-section-head p{margin:0;color:var(--txt-dim);font-size:.86rem;line-height:1.45}
.qr-poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:1.25rem}
.qr-poster-card{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;position:relative}
.qr-poster-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.qr-poster-format-tag{
  position:absolute;top:.55rem;left:.55rem;z-index:2;
  font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:rgba(10,42,56,.88);color:#fff;padding:.28rem .5rem;border-radius:6px;
  pointer-events:none;backdrop-filter:blur(4px)
}
.qr-poster-preview{width:100%;height:auto;display:block;background:linear-gradient(160deg,#0a2a38 0%,#134556 100%);padding:.35rem}
.qr-poster-info{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.qr-poster-info b{font-family:var(--font-head);font-size:.98rem}
.qr-poster-info p{color:var(--txt-dim);font-size:.82rem;flex:1;margin-bottom:.5rem;line-height:1.45}
.drive-flyer-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem}
.drive-flyer-actions .btn{flex:1 1 auto;min-width:calc(50% - .3rem)}
@media(max-width:640px){
  .qr-admin-head{flex-direction:column}
  .qr-admin-qronly{align-self:center}
}

/* ---- Potenzielle Kunden ---- */
.prospect-cats{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.9rem}
.prospect-cat{
  border:1px solid var(--line);background:var(--bg-soft);color:var(--txt);
  border-radius:var(--radius-sm);padding:.45rem .75rem;font:inherit;cursor:pointer;
}
.prospect-cat.on{border-color:rgba(8,145,178,.55);background:rgba(8,145,178,.1);font-weight:600}
.prospect-cat-cnt{opacity:.7;font-size:.82em;margin-left:.2rem}
.prospect-filters{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:flex-end;margin-bottom:.85rem}
.prospect-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--txt-dim)}
.prospect-filter select,.prospect-filter input{min-width:10rem}
.prospect-check-all{flex-direction:row;align-items:center;gap:.45rem;padding-bottom:.35rem}
.prospect-filter-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-left:auto}
.prospect-bulk{
  display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;
  margin-bottom:.85rem;padding:.7rem .9rem;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--bg-soft);
}
.prospect-bulk-date{align-items:center;gap:.35rem}
.prospect-meta{color:var(--txt-faint);font-size:.85rem;margin:0 0 .75rem}
.prospect-empty{color:var(--txt-dim);padding:1rem 0}
#pProspectRows.is-loading{opacity:.55;pointer-events:none;transition:opacity .15s ease}
.prospect-row{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:.85rem}
.prospect-row.is-selected{border-color:rgba(8,145,178,.45);background:rgba(8,145,178,.04)}
.prospect-check{padding-top:.2rem}
.prospect-body{flex:1;min-width:0}
.prospect-title-row{display:flex;flex-wrap:wrap;gap:.4rem .65rem;align-items:center;margin-bottom:.25rem}
.prospect-status{
  font-size:.78rem;padding:.15rem .45rem;border-radius:999px;border:1px solid var(--line);
  background:var(--bg);color:var(--txt-dim);
}
.prospect-status.st-open{border-color:rgba(100,116,139,.35)}
.prospect-status.st-contacted{border-color:rgba(8,145,178,.4);color:#0e7490}
.prospect-status.st-follow_up{border-color:rgba(217,119,6,.45);color:#b45309}
.prospect-status.st-interested{border-color:rgba(22,163,74,.45);color:#15803d}
.prospect-status.st-rejected{border-color:rgba(220,38,38,.35);color:#b91c1c}
.prospect-status.st-won{border-color:rgba(101,163,13,.5);color:#4d7c0f}
.prospect-follow{margin-left:.35rem;font-weight:600}
.prospect-canton{
  font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--txt-faint);
  border:1px solid var(--line);border-radius:6px;padding:.1rem .35rem;
}
.prospect-line{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.88rem;margin-top:.2rem}
.prospect-line .dim,.prospect-line.dim{color:var(--txt-faint)}
.prospect-actions{display:flex;flex-direction:column;gap:.4rem;min-width:9.5rem}
.prospect-form textarea{width:100%;resize:vertical;font:inherit}
@media (max-width:720px){
  .prospect-actions{width:100%;flex-direction:row;flex-wrap:wrap}
  .prospect-actions .btn{flex:1 1 calc(50% - .25rem)}
  .prospect-filter-actions{margin-left:0;width:100%}
}

/* ---- Plattform-Admin ---- */
.lead-row,.tenant-row,.inbox-row{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:1rem;padding:1.1rem 1.3rem}
.lead-row .lr-body,.tenant-row>div:first-child{flex:1;min-width:0}
.lead-row .lr-actions{display:flex;gap:.5rem;flex-wrap:wrap;flex:1 1 100%;justify-content:flex-end}
.lead-row .lr-actions .btn{flex:1 1 auto;min-width:min(100%,200px)}
.inbox-row.unread{border-color:rgba(8,145,178,.45);background:rgba(8,145,178,.04)}
.inbox-row p{margin:.35rem 0}

/* ---- Platform-Mail ---- */
/* ---- Platform-Mail (Outlook-ähnliche Bedienung) ---- */
.mail-toolbar-actions{display:flex;gap:.45rem;flex-wrap:wrap}
.mail-resend-details{
  margin:0 0 .65rem;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft);
  font-size:.86rem;
}
.mail-resend-details > summary{
  cursor:pointer;
  list-style:none;
  padding:.55rem .85rem;
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  font-weight:700;
  color:var(--txt);
}
.mail-resend-details > summary::-webkit-details-marker{display:none}
.mail-resend-details > summary::before{
  content:"▸";
  color:var(--txt-faint);
  font-size:.75rem;
}
.mail-resend-details[open] > summary::before{content:"▾"}
.mail-resend-details > summary span{
  font-weight:500;
  color:var(--txt-faint);
  font-size:.8rem;
}
.mail-resend-details-body{
  padding:0 .85rem .75rem;
  border-top:1px solid var(--line);
}
.mail-resend-details-body p{
  margin:.65rem 0 .55rem;
  color:var(--txt-dim);
  font-size:.84rem;
}

.mail-app{
  --mail-pane-bg:var(--card);
  --mail-pane-soft:var(--bg-soft);
  --mail-sel:rgba(8,145,178,.14);
  --mail-sel-edge:#0891b2;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--mail-pane-bg);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:min(72vh,780px);
}
.mail-cmdbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem .65rem;
  padding:.45rem .55rem;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--bg-soft),var(--card));
}
.mail-cmdbar-group{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.3rem;
  padding-right:.55rem;
  border-right:1px solid var(--line);
}
.mail-cmdbar-group:last-of-type{border-right:0}
.mail-cmdbar-meta{
  margin-left:auto;
  font-size:.78rem;
  color:var(--txt-faint);
  padding:.2rem .35rem;
}
.mail-cmdbar-account{font-weight:600;color:var(--txt-dim)}
.mail-cmd{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  border:1px solid transparent;
  background:transparent;
  color:var(--txt);
  font:inherit;
  font-size:.82rem;
  font-weight:600;
  padding:.4rem .65rem;
  border-radius:6px;
  cursor:pointer;
  line-height:1.2;
}
.mail-cmd:hover:not(:disabled){
  background:rgba(8,145,178,.1);
  border-color:rgba(8,145,178,.22);
}
.mail-cmd:disabled{opacity:.38;cursor:default}
.mail-cmd-primary{
  background:rgba(8,145,178,.14);
  border-color:rgba(8,145,178,.35);
  color:#0a4a5c;
}
.mail-cmd-primary:hover:not(:disabled){
  background:rgba(8,145,178,.22);
}
.mail-cmd-danger:hover:not(:disabled){
  background:rgba(220,38,38,.1);
  border-color:rgba(220,38,38,.28);
  color:var(--red);
}
.mail-cmd-ico{font-size:.95rem;line-height:1}

.mail-sync-status{
  margin:0;
  padding:.55rem .85rem;
  border-bottom:1px solid var(--line);
  background:var(--bg-soft);
  font-size:.82rem;
  color:var(--txt-dim);
}
.mail-sync-ok{margin-bottom:.35rem}
.mail-sync-folders{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.45;margin:.35rem 0}
.mail-sync-err{color:var(--red);margin-top:.2rem}
.mail-sync-err ul{margin:.25rem 0 0 1.1rem;padding:0}
.mail-sync-err-inline{color:var(--red)}

.mail-unread-banner{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin:0;padding:.5rem .85rem;
  border-bottom:1px solid rgba(245,158,11,.35);
  background:rgba(245,158,11,.12);
}
.mail-unread-banner[hidden]{display:none !important}
.mail-unread-banner-ico{font-size:1.05rem}
.mail-unread-banner b{font-size:.9rem;color:var(--txt)}
.mail-unread-banner span{font-size:.8rem;color:var(--txt-dim)}

.mail-layout{
  display:grid;
  grid-template-columns:minmax(150px,190px) minmax(240px,1.05fr) minmax(280px,1.55fr);
  flex:1 1 auto;
  min-height:480px;
  align-items:stretch;
}
.mail-folders,
.mail-list-pane,
.mail-reader{
  min-height:0;
  background:var(--mail-pane-bg);
}
.mail-folders{
  border-right:1px solid var(--line);
  padding:.4rem .3rem;
  overflow:auto;
  background:var(--mail-pane-soft);
}
.mail-folder{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.4rem;
  text-align:left;
  border:0;
  background:transparent;
  color:var(--txt);
  padding:.42rem .55rem;
  border-radius:6px;
  cursor:pointer;
  font:inherit;
}
.mail-folder:hover{background:rgba(8,145,178,.08)}
.mail-folder.on{
  background:var(--mail-sel);
  box-shadow:inset 3px 0 0 var(--mail-sel-edge);
  font-weight:700;
}
.mail-folder-ico{
  width:1.15rem;
  text-align:center;
  flex:0 0 auto;
  opacity:.85;
  font-size:.92rem;
}
.mail-folder-name{
  flex:1 1 auto;
  font-size:.84rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mail-folder-badge{
  min-width:1.2rem;height:1.2rem;padding:0 .32rem;
  border-radius:999px;background:#64748b;color:#fff;
  font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;
}
.mail-folder-badge.has-unread{
  background:#c2410c;color:#fff;
}
.mail-folder.has-unread .mail-folder-name{font-weight:700}

.mail-list-pane{
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  min-width:0;
}
.mail-list-head{
  flex:0 0 auto;
  padding:.45rem .5rem;
  border-bottom:1px solid var(--line);
  background:var(--mail-pane-soft);
}
.mail-list-head input{
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--card);
  padding:.42rem .65rem;
  font-size:.86rem;
}
.mail-list-head input:focus{
  outline:none;
  border-color:rgba(8,145,178,.55);
  box-shadow:0 0 0 2px rgba(8,145,178,.15);
}
.mail-list{
  flex:1 1 auto;
  overflow:auto;
  outline:none;
}
.mail-item{
  width:100%;
  display:block;
  text-align:left;
  border:0;
  border-bottom:1px solid rgba(8,90,120,.08);
  background:transparent;
  color:var(--txt);
  padding:.55rem .7rem .55rem .85rem;
  cursor:pointer;
  font:inherit;
  position:relative;
}
.mail-item:hover{background:rgba(8,145,178,.06)}
.mail-item.on{
  background:var(--mail-sel);
  box-shadow:inset 3px 0 0 var(--mail-sel-edge);
}
.mail-item.unread .mail-item-from,
.mail-item.unread .mail-item-sub{font-weight:800;color:var(--txt)}
.mail-item.unread::before{
  content:"";
  position:absolute;
  left:.28rem;top:50%;
  width:6px;height:6px;
  margin-top:-3px;
  border-radius:50%;
  background:#0891b2;
}
.mail-item-top{
  display:flex;justify-content:space-between;gap:.5rem;
  font-size:.8rem;margin-bottom:.12rem;align-items:baseline;
}
.mail-item-from{
  font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;
}
.mail-item-top span{color:var(--txt-faint);white-space:nowrap;font-size:.74rem;flex:0 0 auto}
.mail-item-sub{
  font-size:.84rem;margin-bottom:.1rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mail-item-snip{
  font-size:.76rem;color:var(--txt-dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mail-neu-pill{display:none}
.mail-att-dot{margin-left:.25rem;opacity:.75}

.mail-reader{
  padding:0;
  background:var(--card);
  overflow:auto;
  outline:none;
}
.mail-reader-head{
  padding:.85rem 1.05rem .7rem;
  border-bottom:1px solid var(--line);
  background:var(--bg-soft);
  position:sticky;
  top:0;
  z-index:1;
}
.mail-reader-head h3{
  font-size:1.12rem;
  margin:0 0 .55rem;
  font-family:var(--font-head);
  letter-spacing:-.01em;
  line-height:1.25;
}
.mail-meta{font-size:.82rem;color:var(--txt-dim);margin:.1rem 0}
.mail-meta b{color:var(--txt);font-weight:700;min-width:3.2rem;display:inline-block}
.mail-actions,.mail-move,.mail-atts{display:flex;flex-wrap:wrap;gap:.4rem;margin:.65rem 0 0}
.mail-move select{min-width:150px;flex:1;font-size:.84rem}
.mail-body-text{
  white-space:pre-wrap;font-family:inherit;font-size:.93rem;line-height:1.55;
  padding:1rem 1.05rem 1.4rem;margin:0;
}
.mail-body-html{
  font-size:.93rem;line-height:1.55;overflow-wrap:anywhere;color:var(--txt);
  padding:1rem 1.05rem 1.4rem;
}
.mail-body-html img{max-width:min(100%,320px);height:auto}
.mail-body-html table{border-collapse:collapse;max-width:100%}
.mail-body-html a{color:var(--aqua)}
.mail-body-html blockquote{
  margin:.4em 0 .4em 0;
  padding:.1em 0 .1em .9em;
  border-left:3px solid #b7c9d4;
  color:var(--txt-dim);
}
.mail-body-html blockquote blockquote{border-left-color:#89a8b8}
.mail-body-html blockquote blockquote blockquote{border-left-color:#6a8fa3}
.mail-body-loading{margin:.5rem 0;color:var(--txt-faint);font-size:.88rem}
.mail-empty{
  padding:2rem 1.1rem;
  color:var(--txt-faint);
  font-size:.9rem;
  text-align:center;
}
.mail-kbd-hint{
  margin:0;
  padding:.4rem .75rem;
  border-top:1px solid var(--line);
  background:var(--bg-soft);
  color:var(--txt-faint);
  font-size:.72rem;
  line-height:1.45;
}
.mail-kbd-hint kbd,
.mail-compose-hint kbd{
  display:inline-block;
  padding:.05rem .28rem;
  border:1px solid var(--line);
  border-bottom-width:2px;
  border-radius:4px;
  background:var(--card);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.68rem;
  color:var(--txt-dim);
}

/* Compose: grosses, komfortables Schreibfenster */
.mail-compose-overlay{padding:clamp(.75rem,2vw,1.75rem);align-items:stretch;justify-content:center}
.mail-compose-modal{
  width:min(96vw,920px);
  max-width:920px;
  height:min(92vh,820px);
  max-height:92vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:0 22px 64px rgba(8,40,60,.28);
}
.mail-compose-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:.85rem 1.1rem;
  border-bottom:1px solid var(--line);
  background:var(--bg-soft);
  flex:0 0 auto;
}
.mail-compose-head-text h3{
  margin:0 0 .25rem;
  font-size:clamp(1.15rem,2.2vw,1.4rem);
  font-family:var(--font-head);
}
.mail-compose-from{
  margin:0;
  font-size:.88rem;
  color:var(--txt-dim);
}
.mail-compose-from strong{color:var(--txt);font-weight:700}
.mail-compose-body{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:0;
  background:var(--card);
  overflow:hidden;
}
.mail-compose-fields{
  flex:0 0 auto;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.mail-compose-row{
  display:grid;
  grid-template-columns:4.5rem minmax(0,1fr) auto;
  align-items:center;
  gap:.55rem;
  padding:.55rem 1.25rem;
  border-bottom:1px solid rgba(8,90,120,.08);
}
.mail-compose-row:last-child{border-bottom:0}
.mail-compose-row label{
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--txt-faint);
  margin:0;
}
.mail-compose-row input{
  border:0;
  background:transparent;
  border-radius:0;
  padding:.45rem 0;
  font-size:1rem;
}
.mail-compose-row input:focus{
  border-color:transparent;
  outline:none;
  box-shadow:none;
}
.mail-compose-cc-btn{
  justify-self:end;
  padding:.3rem .55rem;
  border-radius:6px;
  border:1px solid var(--line);
  background:var(--bg-soft);
  color:var(--txt-dim);
  font-size:.78rem;
  font-weight:700;
}
.mail-compose-cc-btn:hover,
.mail-compose-cc-btn.on{
  border-color:var(--aqua);
  color:var(--aqua);
  background:rgba(8,145,178,.08);
}
.mail-compose-cc-row{grid-template-columns:4.5rem minmax(0,1fr)}
.mail-compose-cc-row[hidden]{display:none !important}
.mail-compose-text{
  flex:1 1 auto;
  min-height:220px;
  width:100%;
  resize:none;
  border:0;
  border-radius:0;
  background:var(--card);
  padding:1.15rem 1.35rem;
  font-size:1.02rem;
  line-height:1.6;
}
.mail-compose-text:focus{
  border-color:transparent;
  outline:none;
  box-shadow:inset 0 0 0 2px rgba(34,211,238,.25);
}
.mail-compose-attach{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem .85rem;
  padding:.85rem 1.35rem;
  border-top:1px solid var(--line);
  background:var(--bg-soft);
}
.mail-compose-attach input[type="file"]{
  position:absolute;
  width:1px;height:1px;
  opacity:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
}
.mail-compose-attach-btn{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.45rem .8rem;
  border-radius:6px;
  border:1px dashed rgba(8,145,178,.45);
  background:var(--card);
  color:var(--aqua);
  font-size:.84rem;
  font-weight:700;
  cursor:pointer;
  margin:0;
  text-transform:none;
  letter-spacing:0;
}
.mail-compose-attach-btn:hover{
  border-style:solid;
  background:rgba(8,145,178,.08);
}
.mail-compose-files{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  flex:1;
  min-width:12rem;
  color:var(--txt-dim);
  font-size:.85rem;
}
.mail-compose-file-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .7rem;
  border-radius:999px;
  background:var(--card);
  border:1px solid var(--line);
  color:var(--txt);
  max-width:100%;
}
.mail-compose-file-chip.is-warn{
  border-color:rgba(220,38,38,.35);
  color:var(--red);
  background:rgba(220,38,38,.06);
}
.mail-compose-foot{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:.95rem 1.35rem;
  border-top:1px solid var(--line);
  background:var(--card);
}
.mail-compose-hint{
  margin:0;
  font-size:.8rem;
  color:var(--txt-faint);
}
.mail-compose-actions{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-left:auto;
}
.mail-compose-actions .btn-primary{
  min-width:8.5rem;
  padding:.85rem 1.4rem;
  font-weight:700;
}
@media (max-width:720px){
  .mail-compose-modal{height:min(96vh,960px);border-radius:16px}
  .mail-compose-row{grid-template-columns:3.4rem minmax(0,1fr) auto;padding:.5rem 1rem}
  .mail-compose-text{padding:1rem;min-height:180px}
  .mail-compose-head,.mail-compose-attach,.mail-compose-foot{padding-left:1rem;padding-right:1rem}
  .mail-compose-foot{flex-direction:column;align-items:stretch}
  .mail-compose-actions{width:100%}
  .mail-compose-actions .btn{flex:1}
}

@media (max-width:980px){
  .mail-app{min-height:0}
  .mail-layout{grid-template-columns:1fr;min-height:0}
  .mail-folders{
    display:flex;gap:.3rem;overflow:auto;min-height:0;padding:.35rem;
    border-right:0;border-bottom:1px solid var(--line);
  }
  .mail-folder{width:auto;flex:0 0 auto;white-space:nowrap}
  .mail-folder.on{box-shadow:inset 0 -3px 0 var(--mail-sel-edge)}
  .mail-list-pane{border-right:0;border-bottom:1px solid var(--line)}
  .mail-list{max-height:260px}
  .mail-reader{min-height:300px}
  .mail-kbd-hint{display:none}
}

/* ---- Speise-Fotos ---- */
.mi-emoji img,.mr-thumb img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.mr-thumb{width:52px;height:52px;border-radius:12px;background:var(--grad-soft);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex:0 0 auto;overflow:hidden}
.photo-preview{width:74px;height:74px;border-radius:12px;object-fit:cover;border:1px solid var(--line);display:none}
.photo-preview.show{display:block}

/* ============================================================
   TV BILDSCHIRM
   ============================================================ */
html.tv-mode,
html.tv-mode body{
  overflow:hidden;
  height:100%;
  background:var(--tv-view-bg, #071525);
}
html.tv-mode .bg-deco{display:none}
html.tv-mode #view-tv.active{
  display:flex;
  position:fixed;
  inset:0;
  z-index:200;
  width:100vw;
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
  background:var(--tv-view-bg, #071525);
}
/* Theme-Hintergrund: sichtbar + bewegt sich (Screensaver-Abwehr) */
.tv-keepalive-canvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  z-index:0;
}
/* Verstecktes Video aus Canvas-Stream – hält «Media aktiv» auf Smart-TVs */
.tv-keepalive-video{
  position:fixed;
  width:2px;
  height:2px;
  bottom:0;
  right:0;
  opacity:0.01;
  pointer-events:none;
  z-index:1;
}
html.tv-mode #view-tv.active .tv-shell,
html.tv-mode #view-tv.active .tv-login,
html.tv-mode #view-tv.active .tv-fs-prompt,
html.tv-mode #view-tv.active .tv-not-configured{
  position:relative;
  z-index:2;
}
.tv-shell-hidden{display:none!important}
.tv-login{
  display:none;
  position:fixed;
  inset:0;
  z-index:450;
  background:var(--tv-overlay, rgba(7,21,37,.96));
  align-items:center;
  justify-content:center;
  padding:1.5rem;
}
.tv-login.show{display:flex}
.tv-login-inner{
  width:min(100%,420px);
  text-align:center;
  padding:2rem 1.75rem 1.75rem;
  border-radius:24px;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.tv-login-brand{font-size:2.6rem;margin-bottom:.5rem}
.tv-login-inner h2{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.55rem;
  margin:0 0 .5rem;
}
.tv-login-inner > p{
  color:var(--txt-dim);
  font-size:.92rem;
  line-height:1.45;
  margin:0 0 1.25rem;
}
.tv-pin-dots{
  display:flex;
  justify-content:center;
  gap:.35rem;
  margin-bottom:.85rem;
  font-size:1.15rem;
  color:var(--aqua);
  letter-spacing:.05em;
}
.tv-pin-dots span.filled{color:var(--lime)}
.tv-pin-input{
  width:100%;
  text-align:center;
  font-size:1.6rem;
  letter-spacing:.45em;
  font-family:var(--font-head);
  font-weight:700;
  margin-bottom:1rem;
  padding:.7rem .5rem;
}
.tv-numpad{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.55rem;
  margin-bottom:1rem;
}
.tv-numpad button{
  appearance:none;
  border:1px solid var(--line);
  background:var(--bg-soft, rgba(255,255,255,.04));
  color:var(--txt);
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.35rem;
  border-radius:14px;
  padding:.85rem 0;
  cursor:pointer;
}
.tv-numpad button:active{transform:scale(.97);opacity:.85}
.tv-numpad-muted{color:var(--txt-dim)!important;font-size:1.1rem!important}
.tv-code-display{
  font-family:var(--font-head);
  font-weight:800;
  font-size:2.2rem;
  letter-spacing:.35em;
  text-align:center;
  padding:1rem;
  border-radius:16px;
  background:var(--bg-soft, rgba(255,255,255,.04));
  border:1px solid var(--line);
  color:var(--aqua);
}
html:fullscreen,
html:-webkit-full-screen{
  background:var(--bg);
}
html:fullscreen body,
html:-webkit-full-screen body{
  background:var(--bg);
}
html.tv-mode:fullscreen,
html.tv-mode:-webkit-full-screen,
html.tv-mode:fullscreen body,
html.tv-mode:-webkit-full-screen body{
  background:var(--tv-view-bg, #071525);
}
.tv-shell{
  flex:1;
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  padding:clamp(1rem,2.5vh,2rem) clamp(1rem,4vw,4rem);
  box-sizing:border-box;
  background:transparent;
}
.tv-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(1rem,2.5vh,2rem);flex-wrap:wrap;gap:1rem;flex-shrink:0}
.tv-head h1{font-size:clamp(1.6rem,3.5vw,2.6rem)}
.tv-head-actions{display:flex;align-items:center;gap:.75rem}
.tv-fs-btn{
  font-size:1.35rem;
  line-height:1;
  padding:.45rem .65rem;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--card);
}
.tv-fs-prompt{
  display:none;
  position:fixed;
  inset:0;
  z-index:400;
  background:var(--tv-overlay-soft, rgba(7,21,37,.88));
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.tv-fs-prompt.show{display:flex}
.tv-fs-prompt-inner{
  text-align:center;
  padding:2rem 2.5rem;
  border-radius:24px;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  max-width:min(90vw,420px);
}
.tv-fs-prompt-inner span{font-size:3rem;display:block;margin-bottom:.75rem}
.tv-fs-prompt-inner p{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.35rem;
  margin-bottom:.35rem;
}
.tv-fs-prompt-inner small{color:var(--txt-dim);font-size:.88rem}
.tv-not-configured{
  display:none;
  position:fixed;
  inset:0;
  z-index:500;
  background:var(--tv-overlay, rgba(7,21,37,.94));
  align-items:center;
  justify-content:center;
}
.tv-not-configured.show{display:flex}
.tv-not-configured-inner{
  text-align:center;
  padding:2.2rem 2.5rem;
  border-radius:24px;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  max-width:min(90vw,480px);
}
.tv-not-configured-inner span{font-size:3rem;display:block;margin-bottom:.75rem}
.tv-not-configured-inner p{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.3rem;
  margin-bottom:.5rem;
}
.tv-not-configured-inner small{color:var(--txt-dim);font-size:.9rem;line-height:1.5;display:block}
.tv-not-configured-inner code{background:rgba(255,255,255,.08);padding:.1em .4em;border-radius:6px}
.tv-clock{font-family:var(--font-head);font-weight:700;font-size:clamp(1.4rem,3vw,2.2rem);color:var(--aqua)}
.tv-cols{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,2.5rem);min-height:0}
@media(max-width:700px){.tv-cols{grid-template-columns:1fr}}
.tv-col{border-radius:28px;padding:clamp(1.2rem,3vw,2.2rem);display:flex;flex-direction:column;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.tv-col.prep{background:rgba(217,119,6,.14);border:2px solid rgba(217,119,6,.35)}
.tv-col.ready{background:rgba(132,204,22,.16);border:2px solid rgba(132,204,22,.5)}
.tv-col-title{
  font-family:var(--font-head);font-weight:700;font-size:clamp(1.2rem,2.5vw,1.8rem);
  display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem;
}
.tv-col.prep .tv-col-title{color:var(--amber)}
.tv-col.ready .tv-col-title{color:var(--lime)}
.tv-nums{display:flex;flex-wrap:wrap;gap:1rem;align-content:flex-start}
.tv-num{
  font-family:var(--font-head);font-weight:700;font-size:clamp(2.2rem,6vw,4.2rem);line-height:1;
  padding:.5em .55em;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.tv-col.ready .tv-num{
  background:var(--lime-bright);color:#1d2b04;border-color:transparent;
  animation:tvpop .5s cubic-bezier(.34,1.5,.64,1),tvglow 1.6s ease infinite alternate;
}
@keyframes tvpop{from{transform:scale(.5)}to{transform:scale(1)}}
@keyframes tvglow{from{box-shadow:0 0 12px rgba(132,204,22,.4)}to{box-shadow:0 0 42px rgba(132,204,22,.75)}}
.tv-num-wrap{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.tv-table{font-size:clamp(.75rem,1.6vw,1rem);color:rgba(255,255,255,.82);font-weight:600}
.tv-empty{color:var(--txt-faint);font-size:1rem;font-weight:600}
.tv-footer{margin-top:auto;padding-top:clamp(.75rem,2vh,2rem);text-align:center;color:var(--txt-faint);font-weight:600;font-size:.95rem;flex-shrink:0}

/* ---- Bestellstopp (Pausenmodus / Öffnungszeiten) ---- */
.g-pause-banner{
  margin:1rem 0 .25rem;padding:1rem 1.15rem;border-radius:var(--radius);
  background:rgba(217,119,6,.1);border:2px solid rgba(217,119,6,.4);
  color:var(--txt);font-size:.92rem;font-weight:600;line-height:1.5;text-align:left;
}
.g-pause-banner strong{display:block;margin-bottom:.3rem;font-family:var(--font-head);color:#d97706}
.g-pause-banner .g-pause-msg{display:block;margin-top:.35rem;color:var(--txt-dim);font-weight:600}

/* Geschlossen/Pause: Speisekarte stark unlesbar, bis Popup geschlossen */
#view-gast.gast-menu-blurred .gast-header,
#view-gast.gast-menu-blurred #gMenuView,
#view-gast.gast-menu-blurred #gCartBar{
  filter:blur(18px) saturate(.85) brightness(.92);
  pointer-events:none;
  user-select:none;
  -webkit-user-select:none;
}
#view-gast.gast-menu-blurred #gCartBarInner{visibility:hidden}
.g-closed-overlay{
  position:fixed;inset:0;z-index:1250;display:none;align-items:center;justify-content:center;
  padding:1.25rem;background:rgba(6,22,32,.42);
}
.g-closed-overlay.show{display:flex}
.g-closed-overlay-card{
  width:100%;max-width:22rem;background:var(--card,#122636);border:1px solid var(--line);
  border-radius:1.15rem;padding:1.45rem 1.25rem 1.2rem;text-align:center;
  box-shadow:0 20px 48px rgba(0,0,0,.38);animation:gClosedIn .28s ease;
}
.g-closed-overlay-ico{font-size:2.1rem;line-height:1;margin-bottom:.55rem}
.g-closed-overlay-card h3{
  font-family:var(--font-head);font-size:1.2rem;margin:0 0 .55rem;color:var(--txt);line-height:1.25;
}
.g-closed-overlay-card > p{color:var(--txt-dim);font-size:.95rem;line-height:1.5;margin:0 0 .65rem}
.g-closed-overlay-next{color:var(--txt)!important;font-weight:700;font-size:1rem!important;margin:.15rem 0 1rem!important}
.g-closed-overlay-msg{
  margin:.15rem 0 1rem!important;padding:.7rem .85rem;border-radius:.75rem;
  background:rgba(217,119,6,.1);border:1px solid rgba(217,119,6,.28);
  color:var(--txt)!important;font-size:.9rem!important;font-weight:600;text-align:left;
}
.g-closed-overlay-card .btn{margin-top:.35rem}
@keyframes gClosedIn{
  from{opacity:0;transform:translateY(.8rem) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .g-closed-overlay-card{animation:none}
}
.oh-row{display:flex;align-items:center;gap:.55rem;margin-bottom:.45rem}
.oh-day{flex:0 0 92px;font-weight:700;font-size:.88rem}
.oh-row input[type="time"]{
  width:auto;flex:0 1 130px;min-width:0;
  padding:.35rem .5rem;border-radius:8px;border:1px solid var(--line);
  background:var(--card);color:var(--txt);font-family:inherit;font-size:.88rem;
}
.oh-row input[type="time"]:disabled{opacity:.4}
.oh-sep{color:var(--txt-faint)}
.oh-closed{display:flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--txt-dim);cursor:pointer}
.oh-closed input[type="checkbox"]{width:auto;flex:0 0 auto;accent-color:var(--aqua)}

/* ---- Abhol-Hinweis (bleibt sichtbar während Wartezeit) ---- */
.pickup-hint{
  margin:1rem 0 .25rem;padding:.95rem 1.1rem;border-radius:var(--radius);
  background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.35);
  color:var(--txt);font-size:.88rem;font-weight:600;line-height:1.45;text-align:left;
}
.pickup-hint strong{display:block;margin-bottom:.35rem;font-family:var(--font-head);color:var(--aqua)}
.pickup-hint small{display:block;margin-top:.45rem;color:var(--txt-dim);font-weight:600;font-size:.78rem;line-height:1.4}
.pickup-hint-btn{margin-top:.65rem;width:100%}
.pickup-hint-btn + .pickup-hint-btn{margin-top:.45rem}
.pickup-hint.ok{background:rgba(132,204,22,.08);border-color:rgba(132,204,22,.4)}
.pickup-hint.ok strong{color:var(--lime)}

/* ---- Toast ---- */
.toast{
  position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,140%);z-index:300;
  background:#0a2a38;border:1px solid rgba(255,255,255,.1);color:#fff;
  padding:.85rem 1.5rem;border-radius:16px;font-weight:700;font-size:.92rem;
  box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.34,1.4,.64,1);
  max-width:min(520px, calc(100vw - 2.5rem));text-align:center;
  line-height:1.35;white-space:pre-wrap;
}
.toast.show{transform:translate(-50%,0)}
.toast.toast-error{background:#7f1d1d;border-color:rgba(254,202,202,.35);border-radius:14px}
body.view-gast .toast.show{bottom:calc(100px + env(safe-area-inset-bottom))}

/* ---- App-Update (Betreiber) ---- */
.app-update-banner{
  position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));
  transform:translate(-50%,140%);z-index:320;
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center;
  max-width:min(540px, calc(100vw - 1.5rem));
  padding:.7rem .85rem .7rem 1rem;border-radius:16px;
  background:#0a2a38;border:1px solid rgba(56,189,248,.35);color:#fff;
  box-shadow:0 12px 32px rgba(2,20,28,.35);
  font-weight:700;font-size:.9rem;line-height:1.3;
  transition:transform .35s cubic-bezier(.34,1.4,.64,1);
  pointer-events:none;
}
.app-update-banner[hidden]{display:none !important}
.app-update-banner.show{transform:translate(-50%,0);pointer-events:auto}
.app-update-banner .app-update-msg{flex:1 1 auto;min-width:10rem;text-align:left}
.app-update-banner .btn{flex:0 0 auto;white-space:nowrap}
/* Abhol-TV / Kiosk: Update-Banner nie – sonst hängt «aktualisiere gleich» sichtbar */
html.tv-mode #appUpdateBanner,
html.tv-mode .app-update-banner,
html.pay-display-mode #appUpdateBanner,
html.pay-display-mode .app-update-banner,
html.kitchen-mode #appUpdateBanner,
html.kitchen-mode .app-update-banner{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* ---- Diverse ---- */
.back-link{
  display:inline-flex;align-items:center;gap:.4rem;color:var(--txt-faint);font-weight:700;
  font-size:.85rem;text-decoration:none;padding:.4rem 0;
}
.back-link:hover{color:var(--aqua)}
hr.sep{border:none;border-top:1px solid var(--line);margin:1.4rem 0}

/* ============================================================
   RESPONSIVE – alle Geräte
   ============================================================ */
@media (max-width: 768px){
  .wrap{padding:0 1rem;max-width:100%;box-sizing:border-box}
  .hero{padding:3.5rem 0 3rem}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%}
  .section{padding:3rem 0}
  .card-row{grid-template-columns:1fr}
  .plan-box{flex-direction:column;align-items:flex-start}
  .login-card,.reg-card{padding:1.8rem 1.25rem}
  .reg-screen{padding:2rem 1rem 3rem}
  .admin-abo-badge{display:none}
  .admin-top-inner{flex-direction:column;align-items:stretch;gap:.55rem}
  .admin-logo{width:100%;max-width:100%;font-size:1rem!important}
  .admin-top-actions{width:100%;justify-content:stretch;gap:.4rem}
  .admin-top-actions .btn{flex:1 1 0;justify-content:center;padding-left:.65rem;padding-right:.65rem;min-width:0}
  .admin-tabs{flex-wrap:wrap;overflow-x:visible;padding:.55rem 1rem;row-gap:.35rem}
  .atab{flex:1 1 calc(50% - .2rem);justify-content:center;text-align:center;white-space:normal;line-height:1.25;min-width:0}
  .oc-actions .btn{flex:1 1 100%}
  .abo-status{flex-direction:column;align-items:stretch;gap:.85rem;padding:1.15rem}
  .abo-status .as-ico{width:48px;height:48px;font-size:1.45rem;border-radius:14px}
  .abo-status > .card-actions,
  .abo-status > div:last-child{width:100%;flex-direction:column}
  .abo-status > .card-actions .btn,
  .abo-status > div:last-child .btn{width:100%;flex:none}
  .settings-subnav{top:calc(var(--admin-top-h,64px) + var(--admin-tabs-h,88px));margin:1rem -0.15rem 1.15rem;padding:.45rem .15rem}
  .settings-sec{scroll-margin-top:calc(var(--admin-top-h,64px) + var(--admin-tabs-h,88px) + 58px)}
  .settings-sec-save{justify-content:stretch}
  .settings-sec-save .btn{width:100%}
  .card-actions{flex-direction:column}
  .card-actions .btn{width:100%;flex:none}
  .payrexx-card .px-head,
  .twint-toggle-card .px-head,
  .settings-sec .px-head{flex-direction:column;gap:.65rem}
  .payrexx-card .px-title h3,
  .twint-toggle-card .px-title h3,
  .settings-sec .px-title h3{align-items:flex-start;gap:.35rem}
  .label-printer-card .lbl-head{flex-direction:column;gap:.65rem}
  .label-printer-card .lbl-title-block h3{align-items:flex-start;gap:.35rem}
  .lead-row .lr-actions{justify-content:stretch}
  .lead-row .lr-actions .btn{flex:1 1 100%;width:100%}
  .tenant-row .btn,.inbox-row .btn{min-height:44px}
  .tenant-row > div:last-child{width:100%}
  .tenant-row > div:last-child .btn{flex:1 1 calc(50% - .25rem);justify-content:center}
  #view-gast .menu-item{flex-wrap:nowrap}
  #view-gast .mi-add{margin-left:0}
  .tv-fs-btn{min-width:44px;min-height:44px}
}
@media (max-width: 640px){
  .mrow{display:grid;grid-template-columns:auto 1fr;gap:.65rem .8rem;align-items:start}
  .mrow .mr-thumb{grid-row:span 2}
  .mrow .mr-name{grid-column:2}
  .mrow .mr-fields{grid-column:1/-1;display:flex;gap:.65rem;flex-wrap:wrap;width:100%}
  .mrow .mr-fields > span{flex:1 1 calc(33% - .5rem);min-width:90px}
  .mrow .mr-actions{grid-column:1/-1;width:100%}
  .mrow .mr-actions .btn{flex:1 1 calc(50% - .25rem);justify-content:center}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .news-admin-row{flex-direction:column}
  .news-admin-row .btn{align-self:flex-start}
}
@media (max-width: 400px){
  .logo{font-size:1.12rem}
  .hero-stats{gap:1.5rem}
  .mrow .mr-fields > span{flex:1 1 calc(50% - .35rem)}
  .mrow .mr-actions .btn{flex:1 1 100%}
  .oc-actions .btn{font-size:.85rem;padding-left:.75rem;padding-right:.75rem}
}

/* ---- Mobile: kompaktere Proportionen, kein seitliches Überlaufen ---- */
@media (max-width: 480px){
  html{font-size:15px}
  .wrap,.wrap-narrow{padding:0 .875rem}
  .hero{padding:2.25rem 0 1.75rem}
  .hero h1{font-size:clamp(1.75rem,7.2vw,2.35rem);margin-top:.9rem}
  .hero p.lead{font-size:clamp(.95rem,3.8vw,1.08rem);margin:1rem auto 1.5rem}
  .hero-cta{gap:.65rem}
  .hero-stats{gap:.85rem 1.25rem;margin-top:2rem}
  .hero-stat b{font-size:1.45rem}
  .hero-stat span{font-size:.75rem}
  .section{padding:2.25rem 0}
  .section-head{margin-bottom:2rem}
  .section-head h2{font-size:clamp(1.45rem,5.5vw,1.85rem)}
  .section-head p{font-size:.92rem}
  .drive-promo{padding:1.35rem 1.1rem;border-radius:22px}
  .drive-promo-lead{font-size:.95rem}
  .btn{padding:.78rem 1.2rem;font-size:.92rem}
  .btn-sm{padding:.52rem .85rem;font-size:.82rem}
  .price-tag{font-size:clamp(2.4rem,11vw,3.2rem)}
  .pricing-card{padding:1.25rem 1rem}
  .step{padding:1.25rem 1rem}
  .feature{padding:1.15rem;gap:.75rem}
  .qr-demo{gap:1.25rem}
  .qr-frame{padding:12px;border-radius:18px}

  .phone-shell{padding-bottom:calc(96px + env(safe-area-inset-bottom));max-width:100%;overflow-x:clip}
  .gast-header{padding:max(.5rem, env(safe-area-inset-top, 0px)) .95rem .7rem}
  .gast-header-actions{gap:.35rem}
  .gast-header-actions .lang-btn{min-width:34px;min-height:34px;padding:.35rem .45rem;font-size:.68rem}
  .gast-badi-name{font-size:clamp(2.05rem, 9.5vw, 2.9rem)}
  .gast-account-btn{padding:.58rem 1.05rem;font-size:.86rem;min-height:42px}
  .news-strip,.cat-chips,.g-open-orders,.allergen-bar,.menu-list,.gast-compact-bar{padding-left:.95rem;padding-right:.95rem}
  body.gast-scrolled .gast-compact-bar{padding-left:.95rem;padding-right:.95rem}
  .menu-item{padding:.95rem 0;gap:.65rem}
  .menu-item.has-photo .mi-media{flex-basis:52px;width:52px;height:52px;border-radius:12px}
  .mi-media--emoji{font-size:1.25rem}
  .mi-name{font-size:1.02rem}
  .menu-cat-title{font-size:clamp(1.55rem, 7.5vw, 2.1rem)}
  .qty-btn{width:40px;height:40px}
  .cart-bar{padding:.75rem .875rem calc(.75rem + env(safe-area-inset-bottom))}
  .cart-bar-inner{padding:.85rem 1.1rem}
  .sheet{padding:1.1rem .95rem calc(1.2rem + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;max-height:92vh}
  .sheet h3{font-size:1.12rem}
  .status-screen{padding:1.35rem .875rem 2rem}
  .order-num-big{font-size:clamp(2.6rem,13vw,3.6rem)}
  .status-steps{margin:1.5rem auto}
  .alarm-overlay .order-num-big{font-size:clamp(3rem,15vw,4.2rem)}

  .admin-top-inner{min-height:52px;padding:.4rem 0;gap:.4rem}
  .admin-top-actions{gap:.3rem}
  .admin-top-actions .btn{font-size:.74rem;padding:.45rem .5rem;min-height:38px}
  .admin-tabs{padding:.5rem .875rem;gap:.3rem}
  .atab{padding:.48rem .55rem;font-size:.74rem;flex:1 1 calc(50% - .15rem)}
  .admin-body{padding:.9rem 0 2.75rem}
  .card{padding:1.05rem;border-radius:16px;min-width:0;max-width:100%}
  .px-steps{padding-left:1.1rem;font-size:.86rem}
  .order-card{padding:1rem}
  .noa-inner{padding:.85rem .95rem;gap:.75rem}
  .noa-text{min-width:0}

  .login-card,.reg-card{padding:1.45rem 1rem}
  .login-card h2{font-size:1.3rem}
  .reg-screen{padding:1.5rem .875rem 2.5rem}

  .lbl-tpl-thumb{height:118px}
  .lbl-tpl-thumb-frame{transform:scale(.42);margin-top:.2rem}
  .receipt-tpl-preview{height:168px}
  .receipt-tpl-thumb-frame{transform:scale(.28);margin-top:.35rem}
  .tpl-preview-overlay{padding:.65rem}
  .tpl-preview-body{padding:.85rem}
  .tpl-preview-body--receipt .tpl-preview-iframe,
  .tpl-preview-body--default .tpl-preview-iframe{min-height:58vh}

  .bg-deco .wave{height:clamp(96px,16vh,160px)}
}

@media (max-width: 360px){
  html{font-size:14px}
  .wrap,.wrap-narrow{padding:0 .75rem}
  .admin-top-actions .btn{font-size:.7rem;padding:.4rem .42rem}
  .atab{padding:.42rem .45rem;font-size:.7rem;flex:1 1 100%}
  .hero h1{font-size:1.65rem}
  .cart-bar-inner .cb-label{font-size:.88rem}
}

/* ---- Abhol-Zeitfenster & Nochmal bestellen ---- */
.pickup-slot-block{margin:0 0 1rem}
.pickup-slot-label{font-size:.88rem;color:var(--txt-dim);margin:0 0 .55rem;font-weight:600}
.pickup-slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem}
.pickup-slot-grid--2{grid-template-columns:repeat(2,1fr)}
.pickup-slot-btn{
  appearance:none;border:1px solid var(--line);background:var(--bg-soft,rgba(255,255,255,.04));
  color:var(--txt);border-radius:12px;padding:.65rem .25rem;font-size:.82rem;font-weight:700;
  font-family:var(--font-head);cursor:pointer;
}
.pickup-slot-btn.sel{border-color:var(--aqua);background:rgba(34,211,238,.12);color:var(--aqua)}
.pickup-time-row{
  display:flex;align-items:center;gap:.75rem;margin:.7rem 0 .35rem;flex-wrap:wrap
}
.pickup-time-row label{font-size:.85rem;color:var(--txt-dim);font-weight:600}
.pickup-time-input{
  font:inherit;font-size:1.05rem;font-weight:700;padding:.55rem .75rem;
  border-radius:12px;border:1px solid var(--line);background:var(--card,var(--bg));color:var(--txt);
  min-width:7.5rem
}
.pickup-slot-hint{
  margin:.45rem 0 0;font-size:.78rem;line-height:1.4;color:var(--txt-dim)
}
.table-number-block{margin:0 0 1rem}
.table-number-block label{
  display:block;font-size:.88rem;color:var(--txt-dim);margin:0 0 .45rem;font-weight:600;
}
.table-number-input{
  width:100%;font-size:1.35rem;font-family:var(--font-head);font-weight:700;
  text-align:center;letter-spacing:.08em;padding:.65rem .75rem;border-radius:14px;
  border:1px solid var(--line);background:var(--card);
}
.table-number-hint{
  font-size:.82rem;color:var(--txt-dim);margin:.55rem 0 0;line-height:1.45;
}
.g-reorder-wrap{padding:0;margin-top:1rem}
.g-install-wrap{padding:0;margin-top:.75rem}
.g-install-card{padding:1rem 1.1rem;border-radius:var(--radius);text-align:center}
.g-install-sub{color:var(--txt-dim);font-size:.85rem;margin:0 0 .85rem;line-height:1.45}
.g-install-done{color:var(--lime);font-size:.88rem;font-weight:600;margin:.25rem 0 0;line-height:1.45}
.g-install-guide{margin-top:.85rem;border:1px solid var(--line);border-radius:.65rem;padding:.65rem .85rem;background:rgba(0,0,0,.12);text-align:left}
.g-install-guide summary{cursor:pointer;font-weight:600;font-size:.86rem;color:var(--txt)}
.g-install-overlay{position:fixed;inset:0;z-index:1200;display:none;align-items:flex-end;justify-content:center;padding:1.2rem;background:rgba(6,20,30,.55);backdrop-filter:blur(4px)}
.g-install-overlay.show{display:flex}
.g-install-overlay-card{width:100%;max-width:22rem;background:var(--card,#122636);border:1px solid var(--line);border-radius:1.1rem;padding:1.35rem 1.2rem 1.2rem;text-align:center;box-shadow:0 16px 40px rgba(0,0,0,.35);animation:gInstallUp .28s ease}
.g-install-overlay-ico{font-size:2rem;line-height:1;margin-bottom:.55rem}
.g-install-overlay-card h3{font-family:var(--font-head);font-size:1.15rem;margin:0 0 .55rem}
.g-install-overlay-card p{color:var(--txt-dim);font-size:.92rem;line-height:1.45;margin:0 0 1.1rem}
@keyframes gInstallUp{from{transform:translateY(1.2rem);opacity:0}to{transform:translateY(0);opacity:1}}

/* ---- Drive Intro Popup (Landing) ---- */
.drive-intro-overlay{
  position:fixed;inset:0;z-index:1400;display:none;align-items:center;justify-content:center;
  padding:1.25rem;background:rgba(6,28,40,.62);backdrop-filter:blur(6px);
}
.drive-intro-overlay.show{display:flex}
.drive-intro-card{
  width:100%;max-width:24rem;background:var(--card,#fff);border:1px solid var(--line);
  border-radius:1.25rem;padding:1.6rem 1.35rem 1.35rem;text-align:center;
  box-shadow:0 24px 64px rgba(8,60,90,.28);animation:driveIntroIn .32s ease;
}
.drive-intro-ico{font-size:2.4rem;line-height:1;margin-bottom:.55rem}
.drive-intro-card .badge{margin-bottom:.75rem}
.drive-intro-card h2{
  font-family:var(--font-head);font-size:clamp(1.2rem,3.6vw,1.45rem);
  margin:0 0 .65rem;color:var(--txt);line-height:1.25;
}
.drive-intro-card > p{color:var(--txt-dim);font-size:.95rem;line-height:1.5;margin:0 0 1.25rem}
.drive-intro-actions{display:flex;flex-direction:column;gap:.65rem}
@keyframes driveIntroIn{
  from{opacity:0;transform:translateY(1rem) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .drive-intro-card{animation:none}
}
body.drive-intro-open{overflow:hidden}

/* ---- Küchen-Monitor ---- */
html.kitchen-mode,html.kitchen-mode body{overflow:hidden;height:100%;background:var(--bg)}
html.kitchen-mode .bg-deco{display:none}
html.kitchen-mode #view-kitchen.active{
  display:flex;position:fixed;inset:0;z-index:200;width:100vw;height:100dvh;overflow:hidden;background:var(--bg)
}
.k-shell-hidden{display:none!important}
.k-shell{flex:1;width:100%;min-height:100%;display:flex;flex-direction:column;padding:1rem 1.25rem;box-sizing:border-box;overflow:auto}
.k-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;flex-shrink:0}
.k-head h1{font-size:clamp(1.3rem,3vw,2rem);margin:0}
.k-head-actions{display:flex;align-items:center;gap:.6rem}
.k-flow-hint{
  margin:0 0 1rem;padding:.55rem .75rem;border-radius:10px;
  background:rgba(217,119,6,.1);border:1px solid rgba(217,119,6,.28);
  color:var(--txt-dim);font-size:.82rem;line-height:1.35;flex-shrink:0
}
.k-card-note{
  margin:.55rem 0 0;font-size:.75rem;line-height:1.3;color:var(--txt-dim)
}
.k-order-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;align-content:start}
.k-empty{grid-column:1/-1;text-align:center;color:var(--txt-faint);padding:3rem 1rem;font-size:1.1rem}
.k-card{
  border-radius:20px;padding:1.1rem 1.2rem;border:2px solid var(--line);
  background:var(--card);display:flex;flex-direction:column;gap:.75rem
}
.k-card.st-neu{border-color:rgba(59,130,246,.45)}
.k-card.st-zubereitung{border-color:rgba(217,119,6,.5);background:rgba(217,119,6,.06)}
.k-card.st-bereit{border-color:rgba(132,204,22,.55);background:rgba(132,204,22,.08)}
/* Küche hat diese Bestellung als fertig gemeldet – deutlich grün markieren */
.k-card-kitchendone{
  border-color:rgba(132,204,22,.7)!important;
  background:linear-gradient(180deg,rgba(132,204,22,.24),rgba(132,204,22,.08))!important;
}
.k-card-kitchendone .k-st{color:#4d7c0f;font-weight:800}
.k-action-undo{opacity:.85}
/* Quittierte Bestellung: deutlich grün und rund halb so gross */
.k-card.k-card-done{
  align-self:start;
  padding:.55rem .75rem;gap:.35rem;border-radius:14px;
  border-color:rgba(132,204,22,.75)!important;
  background:linear-gradient(180deg,rgba(132,204,22,.28),rgba(132,204,22,.1))!important;
}
.k-card-done .k-num{font-size:1rem}
.k-card-done .k-st{font-size:.7rem}
.k-card-done .k-items{font-size:.8rem;line-height:1.35}
.k-card-done .k-item-note{font-size:.72rem;padding:.1rem .4rem}
.k-card-done .k-table,.k-card-done .k-fastline-badge{font-size:.65rem;padding:.12rem .45rem}
.k-card-done .k-ready-at{font-size:.7rem}
.k-card-done .k-action{min-height:2.2rem;font-size:.82rem!important;padding:.4rem .8rem}
.k-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.k-table{font-size:.82rem;font-weight:700;color:var(--aqua);background:rgba(8,145,178,.12);padding:.2rem .55rem;border-radius:999px}
.k-paid-badge{font-size:.72rem;font-weight:800;color:#4d7c0f;background:rgba(132,204,22,.18);border:1px solid rgba(132,204,22,.45);padding:.2rem .55rem;border-radius:999px}
.k-card-done .k-paid-badge{font-size:.62rem;padding:.12rem .45rem}
.k-num{font-family:var(--font-head);font-weight:800;font-size:1.8rem}
.k-st{font-size:.8rem;font-weight:700;color:var(--txt-dim)}
.k-ready-at{font-size:.85rem;font-weight:700;color:var(--aqua);margin-left:auto}
.k-ready-at.late{color:#ef4444}
.k-items{list-style:none;margin:0;padding:0;font-size:1.05rem;line-height:1.55}
.k-items li b{margin-right:.25rem}
.k-item-note{
  font-size:.9rem;font-weight:600;color:#d97706;
  background:rgba(217,119,6,.1);border:1px dashed rgba(217,119,6,.45);
  border-radius:8px;padding:.15rem .5rem;margin:.15rem 0 .3rem;display:inline-block;
}
.k-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}
.k-action{flex:1 1 auto;min-height:3rem;font-size:1rem!important}

/* ── Bilderhighlights (Gast / Admin / TV) ── */
#gStatusView{position:relative}
.g-hl-fab{
  position:fixed;right:1rem;bottom:calc(1.35rem + env(safe-area-inset-bottom,0px));z-index:75;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  width:4.35rem;height:4.35rem;border-radius:50%;
  border:none;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--lime-bright,var(--lime)),var(--lime));
  color:#14240a;box-shadow:0 10px 28px color-mix(in srgb, var(--lime) 45%, transparent);
  animation:gHlFabBob 2.6s ease-in-out infinite;
}
.g-hl-fab.show{display:flex}
.g-hl-fab-emoji{position:relative;z-index:1;font-size:2.05rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}
.g-hl-fab-pulse{
  position:absolute;inset:0;border-radius:50%;
  border:2px solid color-mix(in srgb, var(--lime-bright,var(--lime)) 80%, #fff);
  animation:gHlFabPulse 1.8s ease-out infinite;
  pointer-events:none;
}
@keyframes gHlFabBob{
  0%,100%{transform:translate(0,0) scale(1)}
  40%{transform:translate(0,-5px) scale(1.04)}
  70%{transform:translate(0,2px) scale(.98)}
}
@keyframes gHlFabPulse{
  0%{transform:scale(1);opacity:.85}
  70%{transform:scale(1.55);opacity:0}
  100%{transform:scale(1.55);opacity:0}
}

/* Guest bottom sheet */
.g-hl-root{
  position:fixed;inset:0;z-index:85;pointer-events:none;
  visibility:hidden;
}
.g-hl-root.show{visibility:visible;pointer-events:auto}
.g-hl-backdrop{
  position:absolute;inset:0;
  background:color-mix(in srgb, var(--txt) 38%, transparent);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;transition:opacity .32s ease;
}
.g-hl-root.show .g-hl-backdrop{opacity:1}
.g-hl-sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  max-width:540px;margin:0 auto;
  max-height:min(92vh,820px);
  display:flex;flex-direction:column;
  background:
    radial-gradient(120% 80% at 10% -10%, color-mix(in srgb, var(--aqua) 16%, transparent), transparent 55%),
    radial-gradient(90% 70% at 95% 0%, color-mix(in srgb, var(--lime) 14%, transparent), transparent 50%),
    var(--card);
  border:1px solid var(--line);border-bottom:none;
  border-radius:28px 28px 0 0;
  padding:1rem 1.15rem calc(1.35rem + env(safe-area-inset-bottom,0px));
  box-shadow:0 -18px 60px color-mix(in srgb, var(--txt) 18%, transparent);
  transform:translateY(108%);
  transition:transform .42s cubic-bezier(.22,1.15,.36,1);
  overflow:hidden;
}
.g-hl-root.show .g-hl-sheet{transform:translateY(0)}
.g-hl-sheet .sheet-grab{margin-bottom:.85rem;background:color-mix(in srgb, var(--txt) 18%, transparent)}
.g-hl-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;
  margin-bottom:.45rem;flex-shrink:0;
}
.g-hl-kicker{
  margin:0 0 .15rem;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--aqua);opacity:.9;
}
.g-hl-title{
  font-family:var(--font-head);font-size:clamp(1.25rem,4.5vw,1.55rem);
  margin:0;letter-spacing:-.03em;line-height:1.15;
}
.g-hl-close{
  width:2.35rem;height:2.35rem;border-radius:50%;flex-shrink:0;
  border:1px solid var(--line);background:var(--card-2);color:var(--txt);
  font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  transition:transform .15s,background .15s;
}
.g-hl-close:active{transform:scale(.94)}
.g-hl-status{
  display:inline-flex;align-items:center;gap:.35rem;align-self:flex-start;
  margin:0 0 .65rem;padding:.35rem .7rem;border-radius:999px;
  background:var(--card-2);border:1px solid var(--line);
  font-size:.78rem;color:var(--txt-dim);line-height:1.3;flex-shrink:0;
}
.g-hl-status .wp-time{color:var(--lime);font-weight:800}
.g-hl-lead{color:var(--txt-dim);font-size:.9rem;margin:0 0 .9rem;line-height:1.45;flex-shrink:0}
.g-hl-actions{
  display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;
  margin-bottom:.9rem;flex-shrink:0;
}
.g-hl-shoot{box-shadow:0 8px 22px color-mix(in srgb, var(--lime) 35%, transparent)}
.g-hl-sort{
  display:flex;gap:.3rem;margin-left:auto;padding:.2rem;
  background:var(--card-2);border:1px solid var(--line);border-radius:999px;
}
.g-hl-sort-btn{
  border:0;background:transparent;color:var(--txt-dim);
  border-radius:999px;padding:.4rem .75rem;font-size:.78rem;cursor:pointer;font-weight:700;
  transition:background .2s,color .2s,transform .15s;
}
.g-hl-sort-btn.on{
  background:color-mix(in srgb, var(--lime) 22%, var(--card));
  color:var(--txt);box-shadow:0 1px 0 var(--line);
}
.g-hl-empty{
  color:var(--txt-faint);font-size:.9rem;margin:.4rem 0 1rem;
  padding:1.4rem 1rem;text-align:center;border-radius:var(--radius-sm);
  border:1px dashed var(--line);background:color-mix(in srgb, var(--card-2) 70%, transparent);
  animation:gHlFadeUp .45s ease both;
}
.g-hl-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:.35rem;min-height:0;flex:1;
}
.g-hl-card{
  margin:0;opacity:0;transform:translateY(16px) scale(.96);
  animation:gHlCardIn .48s cubic-bezier(.22,1.1,.36,1) forwards;
  animation-delay:calc(var(--i, 0) * 55ms);
}
.g-hl-like{
  position:relative;display:block;width:100%;padding:0;border:0;
  border-radius:16px;overflow:hidden;cursor:pointer;
  background:var(--card-2);aspect-ratio:1;
  box-shadow:0 8px 20px color-mix(in srgb, var(--txt) 8%, transparent);
  transition:transform .2s,box-shadow .2s;
}
.g-hl-like:active{transform:scale(.97)}
.g-hl-like img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.g-hl-like:hover img{transform:scale(1.06)}
.g-hl-heart{
  position:absolute;left:.45rem;bottom:.45rem;
  background:color-mix(in srgb, var(--txt) 55%, transparent);color:#fff;
  border-radius:999px;padding:.22rem .55rem;font-size:.78rem;font-weight:700;
  backdrop-filter:blur(4px);transition:transform .25s,background .2s;
}
.g-hl-like.liked .g-hl-heart{background:rgba(239,68,68,.88)}
.g-hl-like.pop .g-hl-heart{animation:gHlHeartPop .55s cubic-bezier(.22,1.4,.36,1)}
.g-hl-burst{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;font-size:2.4rem;opacity:0;
}
.g-hl-like.pop .g-hl-burst{animation:gHlBurst .55s ease forwards}
.g-hl-mine-tag{
  position:absolute;top:.4rem;left:.4rem;
  background:linear-gradient(135deg,var(--lime-bright,var(--lime)),var(--lime));
  color:#14240a;font-size:.68rem;font-weight:800;padding:.18rem .5rem;border-radius:999px;
  box-shadow:0 4px 12px color-mix(in srgb, var(--lime) 40%, transparent);
}
.g-hl-mine{
  margin:0 0 .9rem;padding:.75rem;border-radius:16px;flex-shrink:0;
  background:color-mix(in srgb, var(--lime) 10%, var(--card));
  border:1px solid color-mix(in srgb, var(--lime) 35%, var(--line));
  animation:gHlFadeUp .4s ease both;
}
.g-hl-mine-inner{display:flex;gap:.75rem;align-items:center}
.g-hl-mine-inner img{
  width:72px;height:72px;object-fit:cover;border-radius:12px;
  box-shadow:0 6px 16px color-mix(in srgb, var(--txt) 12%, transparent);
}
.g-hl-mine-inner p{margin:.2rem 0 .45rem;color:var(--txt-dim);font-size:.85rem}
.g-hl-privacy{
  display:none;position:absolute;inset:0;z-index:5;
  background:color-mix(in srgb, var(--txt) 45%, transparent);
  align-items:flex-end;justify-content:center;padding:0;
}
.g-hl-privacy.show{display:flex;animation:gHlFadeUp .25s ease}
.g-hl-privacy-card{
  width:100%;max-width:540px;max-height:85vh;overflow:auto;
  background:var(--card);border-radius:24px 24px 0 0;
  padding:1.35rem 1.2rem calc(1.4rem + env(safe-area-inset-bottom,0px));
  border:1px solid var(--line);border-bottom:none;
  box-shadow:0 -12px 40px color-mix(in srgb, var(--txt) 16%, transparent);
  animation:gHlSheetIn .4s cubic-bezier(.22,1.15,.36,1);
}
.g-hl-privacy-card h3{font-family:var(--font-head);margin:0 0 .75rem}
.g-hl-privacy-card p{font-size:.84rem;color:var(--txt-dim);line-height:1.5;margin:0 0 .75rem}
@keyframes gHlCardIn{
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes gHlFadeUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes gHlSheetIn{
  from{transform:translateY(40px)}
  to{transform:translateY(0)}
}
@keyframes gHlHeartPop{
  0%{transform:scale(1)}
  35%{transform:scale(1.35)}
  100%{transform:scale(1)}
}
@keyframes gHlBurst{
  0%{opacity:0;transform:scale(.4)}
  35%{opacity:1;transform:scale(1.15)}
  100%{opacity:0;transform:scale(1.6) translateY(-12px)}
}

/* Admin highlights */
.a-hl-hero{
  position:relative;overflow:hidden;margin-bottom:1.35rem;
  border-radius:var(--radius);padding:1.15rem 1.2rem;
}
.a-hl-hero-glow{
  position:absolute;inset:-40% -20% auto auto;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--lime) 28%, transparent), transparent 70%);
  animation:aHlGlow 6s ease-in-out infinite alternate;pointer-events:none;
}
.a-hl-hero-inner{position:relative;display:flex;gap:1rem;align-items:flex-start}
.a-hl-hero-ico{
  width:3rem;height:3rem;border-radius:14px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:1.45rem;
  background:color-mix(in srgb, var(--lime) 16%, var(--card-2));
  border:1px solid color-mix(in srgb, var(--lime) 30%, var(--line));
}
.a-hl-hero h3{font-size:1.15rem;margin:0 0 .35rem}
.a-hl-hero p{color:var(--txt-dim);font-size:.88rem;margin:0;line-height:1.45}
.a-hl-status{color:var(--txt-faint)!important;font-size:.82rem!important;margin:.75rem 0 0!important}
.a-hl-section{margin-bottom:1.5rem}
.a-hl-section-title{
  display:flex;align-items:center;gap:.75rem;
  font-size:1rem;margin:0 0 .75rem;
}
.a-hl-section-title span:first-child{flex-shrink:0}
.a-hl-section-line{
  flex:1;height:1px;
  background:linear-gradient(90deg, var(--line), transparent);
}
.a-hl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.a-hl-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:0 0 .7rem;
  box-shadow:var(--shadow-sm);
  opacity:0;transform:translateY(14px);
  animation:gHlCardIn .45s cubic-bezier(.22,1.1,.36,1) forwards;
  animation-delay:calc(var(--i, 0) * 45ms);
  transition:transform .2s,box-shadow .2s;
}
.a-hl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.a-hl-img{
  display:block;aspect-ratio:1;background:var(--card-2);overflow:hidden;
  border-radius:16px 16px 0 0;
}
.a-hl-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.a-hl-card:hover .a-hl-img img{transform:scale(1.05)}
.a-hl-meta{display:flex;flex-wrap:wrap;gap:.35rem;padding:.55rem .65rem 0;font-size:.78rem;color:var(--txt-dim)}
.a-hl-btns{
  display:flex;flex-wrap:wrap;gap:.35rem;
  padding:.55rem .65rem 0;
}
.a-hl-btns .btn{
  flex:1 1 5.5rem;
  justify-content:center;text-align:center;
  padding-left:.55rem;padding-right:.55rem;
  font-size:.82rem;
}
.a-hl-empty{
  color:var(--txt-faint);font-size:.88rem;margin:0;
  padding:1.2rem;text-align:center;border-radius:14px;
  border:1px dashed var(--line);background:var(--card-2);
}
@keyframes aHlGlow{
  from{transform:translate(0,0) scale(1);opacity:.7}
  to{transform:translate(-18%,12%) scale(1.15);opacity:1}
}

/* TV Nachtschaltung – schwarz mit «Geschlossen» */
.tv-blackout{
  display:none;position:absolute;inset:0;z-index:50;
  align-items:center;justify-content:center;
  background:#000;color:#f2f2f2;
  pointer-events:none;
}
.tv-blackout.show{display:flex}
.tv-blackout-label{
  margin:0;font-size:clamp(1.6rem,4.5vw,2.8rem);font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;opacity:.82;
}

/* TV highlights – urban */
.tv-shell{position:relative}
.tv-hl-scene{
  display:none;position:absolute;inset:0;z-index:30;
  align-items:center;justify-content:center;flex-direction:column;
  background:color-mix(in srgb, var(--txt) 88%, #000);
  overflow:hidden;
}
.tv-hl-scene.show{display:flex;animation:tvHlSceneIn .55s ease}
.tv-hl-bg{position:absolute;inset:0;pointer-events:none}
.tv-hl-orb{
  position:absolute;border-radius:50%;filter:blur(2px);
  opacity:.55;
}
.tv-hl-orb-a{
  width:min(55vw,640px);height:min(55vw,640px);top:-12%;left:-8%;
  background:radial-gradient(circle, color-mix(in srgb, var(--aqua) 45%, transparent), transparent 70%);
  animation:tvHlOrbA 10s ease-in-out infinite alternate;
}
.tv-hl-orb-b{
  width:min(48vw,560px);height:min(48vw,560px);bottom:-16%;right:-10%;
  background:radial-gradient(circle, color-mix(in srgb, var(--lime) 40%, transparent), transparent 70%);
  animation:tvHlOrbB 12s ease-in-out infinite alternate;
}
.tv-hl-gridlines{
  position:absolute;inset:0;opacity:.18;
  background-image:
    linear-gradient(color-mix(in srgb, #fff 18%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, #fff 18%, transparent) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 45%, #000 15%, transparent 75%);
  animation:tvHlGrid 22s linear infinite;
}
.tv-hl-intro{
  position:relative;z-index:2;
  font-family:var(--font-head);font-size:clamp(1.7rem,4.4vw,3.2rem);font-weight:800;
  color:#fff;text-align:center;padding:0 1.5rem;max-width:92%;
  letter-spacing:-.03em;text-shadow:0 8px 40px rgba(0,0,0,.45);
  opacity:0;transform:translateY(48px) scale(.94);
}
.tv-hl-intro.fly{animation:tvHlIntroIn 1s cubic-bezier(.22,1.15,.36,1) forwards}
.tv-hl-intro.out{animation:tvHlIntroOut .45s ease forwards}
.tv-hl-stage{
  position:relative;z-index:2;display:none;
  width:min(90vw,1200px);height:min(86vh,900px);
  flex-direction:column;align-items:center;justify-content:center;gap:1rem;
}
.tv-hl-scene.show-photo .tv-hl-intro{display:none}
.tv-hl-scene.show-photo .tv-hl-stage{display:flex}
.tv-hl-rank{
  font-family:var(--font-head);font-weight:800;font-size:clamp(1.1rem,2.4vw,1.6rem);
  letter-spacing:.18em;color:var(--lime-bright,var(--lime));
  text-transform:uppercase;opacity:0;transform:translateY(12px);
}
.tv-hl-rank.in{animation:tvHlRankIn .55s cubic-bezier(.22,1.2,.36,1) forwards}
.tv-hl-frame{
  width:100%;height:100%;max-height:calc(86vh - 5rem);
  border:3px solid color-mix(in srgb, #fff 82%, transparent);
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--lime) 55%, transparent),
    0 0 80px color-mix(in srgb, var(--aqua) 28%, transparent),
    0 28px 80px rgba(0,0,0,.5);
  border-radius:18px;background:#0b1220;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  position:relative;
}
/* Blurred fill behind portrait/landscape mismatch – no black bars */
.tv-hl-blur{
  position:absolute;inset:-12%;z-index:0;pointer-events:none;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:blur(28px) saturate(1.1) brightness(.72);
  transform:scale(1.12);
  opacity:0;transition:opacity .35s ease;
}
.tv-hl-blur.on{opacity:1}
.tv-hl-frame::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(120deg, transparent 40%, color-mix(in srgb, #fff 14%, transparent) 50%, transparent 60%);
  transform:translateX(-120%);
}
.tv-hl-frame.shine::before{animation:tvHlShine 1.1s ease}
.tv-hl-frame img{
  position:relative;z-index:1;
  max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  opacity:0;transform:scale(1.06);
}
/* Eine Animation: Einblenden + leichter Zoom (kein zweites animation, das opacity überschreibt) */
.tv-hl-frame img.in{
  animation:tvHlPhotoShow 5.2s cubic-bezier(.22,1,.36,1) forwards;
}
.tv-hl-frame.pulse{animation:tvHlFramePulse .75s cubic-bezier(.22,1.2,.36,1)}
.tv-hl-likes{
  font-family:var(--font-head);font-weight:700;font-size:clamp(.95rem,2vw,1.25rem);
  color:#fff;opacity:0;transform:translateY(10px);
  text-shadow:0 4px 18px rgba(0,0,0,.4);
}
.tv-hl-likes.in{animation:tvHlRankIn .55s .12s cubic-bezier(.22,1.2,.36,1) forwards}
@keyframes tvHlSceneIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes tvHlIntroIn{
  0%{opacity:0;transform:translateY(56px) scale(.92) skewX(-2deg)}
  55%{opacity:1;transform:translateY(-6px) scale(1.03) skewX(0)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes tvHlIntroOut{
  to{opacity:0;transform:translateY(-24px) scale(1.04)}
}
@keyframes tvHlPhotoShow{
  0%{opacity:0;transform:scale(1.1) translateY(16px)}
  14%{opacity:1;transform:scale(1.03) translateY(0)}
  100%{opacity:1;transform:scale(1.1) translateY(0)}
}
@keyframes tvHlFramePulse{
  0%{transform:scale(.97)}
  45%{transform:scale(1.015)}
  100%{transform:scale(1)}
}
@keyframes tvHlRankIn{
  to{opacity:1;transform:translateY(0)}
}
@keyframes tvHlShine{
  to{transform:translateX(120%)}
}
@keyframes tvHlOrbA{
  from{transform:translate(0,0) scale(1)}
  to{transform:translate(8%,6%) scale(1.12)}
}
@keyframes tvHlOrbB{
  from{transform:translate(0,0) scale(1)}
  to{transform:translate(-6%,-8%) scale(1.1)}
}
@keyframes tvHlGrid{
  from{transform:translateY(0)}
  to{transform:translateY(-64px)}
}

@media (prefers-reduced-motion: reduce){
  .g-hl-fab,.g-hl-fab-pulse,.g-hl-card,.a-hl-card,.a-hl-hero-glow,
  .tv-hl-orb-a,.tv-hl-orb-b,.tv-hl-gridlines,.tv-hl-frame img.in{
    animation:none !important;
  }
  .g-hl-sheet,.g-hl-backdrop{transition:none}
  .g-hl-card,.a-hl-card{opacity:1;transform:none}
  .tv-hl-frame img,.tv-hl-frame img.in{
    opacity:1 !important;transform:none !important;
  }
}

/* ---- Chatsupport ---- */
.chat-support-btn{position:relative;gap:.4rem}
.chat-badge-red,.cnt.chat-badge-red{
  background:#dc2626!important;color:#fff!important;
  animation:cntPulse 1.4s ease-in-out infinite;
}
.chat-sheet{
  max-width:560px;max-height:92vh;display:flex;flex-direction:column;
  overflow:hidden;padding-bottom:calc(1rem + env(safe-area-inset-bottom));
}
.chat-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem;flex:0 0 auto}
.chat-sheet-head h3{margin:0;font-size:1.25rem}
.chat-emergency{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  flex:0 0 auto;margin:0 0 .65rem;padding:.65rem .85rem;
  border-radius:14px;border:1px solid rgba(185,28,28,.28);
  background:rgba(220,38,38,.07);color:inherit;text-decoration:none;
}
.chat-emergency:hover,.chat-emergency:focus-visible{
  background:rgba(220,38,38,.12);border-color:rgba(185,28,28,.42);outline:none;
}
.chat-emergency-label{
  font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#b91c1c;
}
.chat-emergency-num{font-size:1.05rem;font-weight:800;letter-spacing:.02em;color:#991b1b;white-space:nowrap}
.chat-sheet-hint{color:var(--txt-dim);font-size:.86rem;margin:0 0 .85rem;line-height:1.45;flex:0 0 auto}
.chat-news-panel,.chat-thread-panel{min-width:0}
.chat-news-panel h4,.chat-thread-panel h4{
  margin:0 0 .55rem;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--txt-faint);
}
.chat-news-panel{max-height:34%;overflow:auto;margin-bottom:.85rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}
.chat-thread-panel{flex:1;min-height:0;display:flex;flex-direction:column}
.chat-news-item{
  background:var(--card-2);border:1px solid var(--line);border-radius:14px;
  padding:.75rem .9rem;margin-bottom:.55rem;
}
.chat-news-item.unread{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.04)}
.chat-news-item b{display:block;margin:.2rem 0 .35rem;font-size:.95rem}
.chat-news-item p{margin:0;color:var(--txt-dim);font-size:.88rem;line-height:1.45;white-space:pre-wrap}
.chat-news-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center}
.chat-news-tag{font-size:.7rem;font-weight:800;color:#b91c1c;letter-spacing:.03em;text-transform:uppercase}
.chat-news-head time,.chat-news-empty,.chat-empty{font-size:.82rem;color:var(--txt-faint)}
.chat-messages{
  flex:1;min-height:180px;max-height:none;overflow-y:auto;
  display:flex;flex-direction:column;gap:.55rem;
  padding:.35rem 0 .7rem;-webkit-overflow-scrolling:touch;
}
.chat-bubble{max-width:88%;padding:.65rem .85rem;border-radius:16px;font-size:.92rem;line-height:1.45}
.chat-bubble.mine{align-self:flex-end;background:rgba(8,145,178,.14);border:1px solid rgba(8,145,178,.25)}
.chat-bubble.theirs{align-self:flex-start;background:var(--card-2);border:1px solid var(--line)}
.chat-bubble-meta{
  display:flex;align-items:center;justify-content:space-between;gap:.45rem;
  font-size:.72rem;color:var(--txt-faint);margin-bottom:.25rem;font-weight:600;
}
.chat-bubble-del{
  flex:0 0 auto;border:0;background:transparent;color:var(--txt-faint);
  font-size:1rem;line-height:1;padding:.05rem .2rem;border-radius:6px;cursor:pointer;
}
.chat-bubble-del:hover{color:#b91c1c;background:rgba(185,28,28,.08)}
.chat-bubble-body{white-space:pre-wrap;word-break:break-word}
.chat-compose{display:flex;gap:.55rem;align-items:flex-end;margin-top:auto}
.chat-compose textarea{
  flex:1;min-width:0;resize:none;min-height:44px;max-height:120px;
  border-radius:14px;border:1px solid var(--line);background:var(--card-2);
  padding:.65rem .8rem;font:inherit;color:var(--txt);
}
.chat-compose .btn{flex:0 0 auto}
.chat-compose-actions{display:flex;flex-direction:column;gap:.35rem;flex:0 0 auto}
.chat-compose-actions .btn{width:100%}

.g-diag-box{margin-top:1.25rem;text-align:center}
.g-diag-hint{color:var(--txt-faint);font-size:.78rem;margin:.45rem 0 0;line-height:1.4}
.g-diag-code{
  margin:.65rem 0 0;font-weight:700;font-size:1.05rem;letter-spacing:.04em;
  color:var(--txt);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

.p-health-errors{
  border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;
  text-align:left;
}
.p-health-errors.has-errors{color:var(--red)}
.p-health-errors:hover{text-decoration:underline}
.p-errors-filters-row{
  display:flex;flex-wrap:wrap;gap:.65rem .85rem;align-items:flex-end;
}
.p-errors-field{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--txt-dim)}
.p-errors-field select,.p-errors-field input{
  min-width:140px;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--line);
  background:var(--card-2);color:var(--txt);font:inherit;
}
.p-errors-field-grow{flex:1;min-width:180px}
.p-errors-tenant-hint{margin:.65rem 0 0;font-size:.88rem;color:var(--txt-dim)}
.p-err-row{margin-bottom:.65rem;padding:.9rem 1rem}
.p-err-top{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.35rem}
.p-err-when{margin-left:auto;font-size:.8rem;color:var(--txt-faint)}
.p-err-code{
  font-size:.8rem;padding:.15rem .4rem;border-radius:6px;background:rgba(8,145,178,.1);
}
.p-err-msg{display:block;font-size:.95rem;margin:.15rem 0;word-break:break-word}
.p-err-meta{color:var(--txt-dim);font-size:.85rem;margin:.25rem 0 0}
.p-err-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}

.drive-diag-box{margin:1rem 0 .5rem;text-align:center}
.drive-diag-hint{font-size:.78rem;margin:.4rem 0 0}
.drive-diag-code{
  margin:.55rem 0 0;font-weight:700;letter-spacing:.04em;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

.pchat-layout{display:flex;flex-direction:column;gap:1.1rem}
.pchat-broadcast .form-group{margin-bottom:.75rem}
.pchat-news-list{max-height:220px;overflow:auto}
.pchat-main{
  display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);
  gap:1rem;align-items:stretch;min-height:420px;
}
.pchat-threads{padding:.55rem;overflow:auto;max-height:560px}
.chat-thread{
  display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:12px;
  background:transparent;padding:.7rem .75rem;margin-bottom:.35rem;cursor:pointer;color:inherit;
}
.chat-thread:hover{background:var(--card-2)}
.chat-thread.on{background:rgba(8,145,178,.1);border-color:rgba(8,145,178,.3)}
.chat-thread.unread{border-color:rgba(220,38,38,.25)}
.chat-thread-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}
.chat-thread-top b{font-size:.92rem}
.chat-thread-unread{background:#dc2626!important;color:#fff!important}
.chat-thread-sub{font-size:.78rem;color:var(--txt-faint);margin:.15rem 0}
.chat-thread-preview{font-size:.82rem;color:var(--txt-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pchat-conversation{display:flex;flex-direction:column;min-height:420px;max-height:560px;padding:1rem}
.pchat-conv-head{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  margin-bottom:.65rem;padding-bottom:.55rem;border-bottom:1px solid var(--line);
}
.pchat-conv-head h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pchat-conversation .chat-messages{flex:1;min-height:0}

@media (max-width:860px){
  .pchat-main{grid-template-columns:1fr;min-height:0}
  .pchat-threads{max-height:200px}
  .pchat-conversation{min-height:360px;max-height:none}
}

/* ---- ByeLine Kasse (Bar / Terminal / Schublade) ---- */
body.cash-register-open{overflow:hidden}
.cash-reg-overlay{
  position:fixed;inset:0;z-index:12000;
  display:flex;align-items:center;justify-content:center;
  padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
}
.cash-reg-overlay[hidden]{display:none !important}
.cash-reg-backdrop{
  position:absolute;inset:0;border:none;padding:0;margin:0;
  background:rgba(10,20,30,.62);backdrop-filter:blur(6px);
}
.cash-reg-panel{
  position:relative;z-index:1;
  width:min(720px,100%);
  max-height:min(94dvh,920px);
  overflow:auto;
  background:var(--card,#fff);
  color:var(--txt,#1c1410);
  border-radius:22px;
  box-shadow:0 28px 80px rgba(0,0,0,.35);
  display:flex;flex-direction:column;
}
.cash-reg-panel.cash-reg-panel--wide{
  width:min(960px,100%);
  max-height:min(96dvh,980px);
}
.cash-reg-x-spacer{width:2rem;flex-shrink:0}
.cash-reg-receipt-q{
  font-size:1.15rem !important;
  font-weight:750;
  color:var(--txt,#1c1410) !important;
  text-align:center;
  margin:.35rem 0 1.1rem !important;
}
.cash-reg-field label small{
  font-weight:600;color:var(--txt-faint,#999);margin-left:.35rem;
}
.cash-reg-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.15rem 1.25rem .85rem;
  border-bottom:1px solid var(--line,rgba(0,0,0,.08));
}
.cash-reg-kicker{
  margin:0 0 .2rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--aqua,#0891b2);
}
.cash-reg-head h2{margin:0;font-size:clamp(1.25rem,3.5vw,1.55rem);letter-spacing:-.02em}
.cash-reg-x{
  border:none;background:transparent;font-size:1.8rem;line-height:1;
  color:var(--txt-dim,#666);cursor:pointer;padding:.1rem .35rem;border-radius:10px;
}
.cash-reg-x:hover{background:rgba(0,0,0,.06)}
.cash-reg-body{padding:1.1rem 1.25rem 1.25rem;flex:1}
.cash-reg-foot{
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end;
  padding:.9rem 1.25rem 1.15rem;
  border-top:1px solid var(--line,rgba(0,0,0,.08));
  background:rgba(0,0,0,.02);
}
.cash-reg-due{
  display:flex;flex-direction:column;gap:.15rem;
  padding:1rem 1.1rem;margin-bottom:1rem;
  border-radius:16px;
  background:linear-gradient(135deg,rgba(8,145,178,.12),rgba(132,204,22,.1));
  border:1px solid rgba(8,145,178,.2);
}
.cash-reg-due.compact{flex-direction:row;align-items:baseline;justify-content:space-between}
.cash-reg-due span{font-size:.85rem;font-weight:650;color:var(--txt-dim,#666)}
.cash-reg-due strong{font-size:clamp(1.8rem,6vw,2.4rem);letter-spacing:-.03em;font-family:var(--font-head),system-ui,sans-serif}
.cash-reg-due small{color:var(--txt-faint,#999);font-weight:600}
.cash-reg-methods{display:grid;gap:.75rem}
.cash-reg-method{
  display:flex;align-items:center;gap:.9rem;width:100%;
  text-align:left;padding:1rem 1.05rem;border-radius:16px;cursor:pointer;
  border:2px solid var(--line,rgba(0,0,0,.1));background:var(--card,#fff);color:inherit;
  transition:border-color .15s,transform .15s,box-shadow .15s;
}
.cash-reg-method:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.cash-reg-method.cash:hover:not(:disabled),.cash-reg-method.cash:focus-visible{border-color:#d97706}
.cash-reg-method.card:hover:not(:disabled),.cash-reg-method.card:focus-visible{border-color:#0891b2}
.cash-reg-method:disabled{opacity:.45;cursor:not-allowed}
.cash-reg-method-ico{font-size:1.6rem}
.cash-reg-method b{display:block;font-size:1.05rem}
.cash-reg-method small{display:block;color:var(--txt-dim,#666);margin-top:.15rem;line-height:1.35}
.cash-reg-warn{
  margin:0 0 1rem;padding:.75rem .9rem;border-radius:12px;
  background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.35);
  font-size:.9rem;line-height:1.4;
}
.cash-reg-hint{margin:0 0 .85rem;font-size:.88rem;color:var(--txt-dim,#666);line-height:1.4}
.cash-reg-terms{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.55rem;
  max-height:min(58dvh,480px);overflow:auto;padding-right:.15rem;
}
.cash-reg-term{
  text-align:left;padding:.75rem .8rem;border-radius:12px;cursor:pointer;
  border:2px solid var(--line,rgba(0,0,0,.1));background:#fff;color:inherit;
}
.cash-reg-term.on{border-color:#0891b2;background:rgba(8,145,178,.08)}
.cash-reg-term b{display:block;font-size:.92rem}
.cash-reg-term small{display:block;margin-top:.2rem;font-size:.75rem;color:var(--txt-dim,#666);line-height:1.3}
.cash-reg-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}
.cash-reg-field label{font-size:.8rem;font-weight:700;color:var(--txt-dim,#666)}
.cash-reg-field input{
  font-size:1.55rem;font-weight:800;letter-spacing:-.02em;
  padding:.85rem 1rem;border-radius:14px;border:2px solid var(--line,#ddd);
  font-family:inherit;
}
.cash-reg-field input:focus{outline:none;border-color:#0891b2;box-shadow:0 0 0 3px rgba(8,145,178,.18)}
.cash-reg-chips{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.7rem}
.cash-reg-chips-lbl{font-size:.75rem;font-weight:800;color:var(--txt-faint,#999);margin-right:.15rem;text-transform:uppercase;letter-spacing:.04em}
.cash-reg-chip{
  position:relative;
  border:none;border-radius:999px;padding:.55rem .9rem;cursor:pointer;
  font:inherit;font-weight:800;font-size:.95rem;
  background:linear-gradient(135deg,#fbbf24,#d97706);color:#fff;
}
.cash-reg-chip.ghost{background:transparent;color:var(--txt,#222);border:2px solid var(--line,#ddd)}
.cash-reg-chip.has-count{padding-right:1.55rem}
.cash-reg-chip-count{
  position:absolute;top:-.35rem;right:-.2rem;
  min-width:1.35rem;height:1.35rem;padding:0 .28rem;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;font-size:.72rem;font-weight:800;line-height:1;
  background:#0f172a;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.cash-reg-chip.ghost .cash-reg-chip-count{
  background:var(--aqua,#0d9488);color:#fff;
}
.cash-reg-change{
  display:flex;flex-direction:column;gap:.1rem;
  margin-top:.85rem;padding:1rem 1.1rem;border-radius:16px;
  border:2px solid var(--line,#ddd);background:rgba(0,0,0,.02);
}
.cash-reg-change.ok{border-color:#16a34a;background:rgba(22,163,74,.08)}
.cash-reg-change.wait{border-color:rgba(217,119,6,.45);background:rgba(217,119,6,.06)}
.cash-reg-change span{font-size:.85rem;font-weight:650;color:var(--txt-dim,#666)}
.cash-reg-change strong{font-size:clamp(1.6rem,5vw,2.1rem);letter-spacing:-.03em}
.cash-reg-change small{color:var(--txt-dim,#666);font-weight:600}
.cash-banner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.cash-banner.is-warn{border-color:rgba(217,119,6,.45);background:rgba(217,119,6,.08)}
.cash-banner.is-ok{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.06)}
.cash-banner.is-closed{border-color:rgba(100,116,139,.35);background:rgba(100,116,139,.08)}
.cash-admin-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;
}
.cash-admin-block{
  padding:.9rem 1rem;border-radius:14px;border:1px solid var(--line,rgba(0,0,0,.08));
  background:rgba(0,0,0,.015);
}
.cash-admin-block h4{margin:0 0 .65rem;font-size:.95rem}
.cash-admin-big{margin:0;font-size:1.55rem;font-weight:800;letter-spacing:-.02em}
.cash-admin-sub{margin:.25rem 0 .55rem;font-size:.82rem;color:var(--txt-dim,#666)}
.cash-admin-kpis{list-style:none;margin:0 0 .75rem;padding:0}
.cash-admin-kpis li{
  display:flex;justify-content:space-between;gap:.5rem;
  padding:.35rem 0;border-bottom:1px solid var(--line,rgba(0,0,0,.06));
  font-size:.9rem;
}
.cash-admin-kpis li b{font-weight:800}
@media (max-width:560px){
  .cash-reg-panel{border-radius:16px;max-height:96dvh}
  .cash-reg-foot{flex-direction:column-reverse}
  .cash-reg-foot .btn{width:100%}
}

/* Drive Food-Pool Galerie */
.food-photo-gallery-modal{max-width:720px}
.food-photo-gallery-body{
  display:flex;flex-direction:column;align-items:stretch;gap:.85rem;
  background:var(--bg-2);padding:1rem 1.15rem 1.25rem
}
.food-photo-gallery-hint{
  margin:0;font-size:.88rem;color:var(--txt-dim);line-height:1.4
}
.food-photo-gallery-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:.65rem;max-height:55vh;overflow:auto;padding:.1rem
}
.food-photo-gallery-tile{
  appearance:none;border:2px solid var(--line);border-radius:12px;padding:0;
  background:var(--bg);cursor:pointer;overflow:hidden;aspect-ratio:1;
  transition:border-color .15s ease, transform .15s ease
}
.food-photo-gallery-tile:hover{border-color:var(--accent,#0d9488);transform:translateY(-1px)}
.food-photo-gallery-tile.is-selected{border-color:var(--accent,#0d9488);box-shadow:0 0 0 2px rgba(13,148,136,.25)}
.food-photo-gallery-tile img{width:100%;height:100%;object-fit:cover;display:block}
.food-photo-gallery-empty{
  grid-column:1/-1;padding:1.5rem 1rem;text-align:center;
  color:var(--txt-dim);font-size:.92rem
}
@media (max-width:560px){
  .food-photo-gallery-grid{grid-template-columns:repeat(3,1fr);max-height:50vh}
}

/* ============================================================
   Kunden-Tablet – Kassenpreisanzeige (#pay-display)
   ============================================================ */
html.pay-display-mode,
html.pay-display-mode body{
  overflow:hidden;
  height:100%;
  background:#0b1c24;
}
html.pay-display-mode .bg-deco{display:none}
html.pay-display-mode #view-pay-display.active{
  display:flex;
  position:fixed;
  inset:0;
  z-index:200;
  width:100vw;
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, color-mix(in srgb, var(--accent, #0d9488) 28%, transparent), transparent 70%),
    linear-gradient(165deg, #0b1c24 0%, #07141a 100%);
}
.pd-shell-hidden{display:none !important}
.pd-shell{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:clamp(.6rem, 1.5vh, 1.1rem);
  padding:max(1rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));
  width:100%;
  min-height:0;
  color:#f4f7f8;
  text-align:center;
}
.pd-brand{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:clamp(1rem, 2.5vw, 1.75rem);
  flex-shrink:0;
  padding:.35rem 0 .15rem;
  max-width:100%;
}
.pd-brand h1{
  margin:0;
  font-size:clamp(3.2rem, 9vw, 6.5rem);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.05;
  text-align:left;
  color:#f4f7f8;
  min-width:0;
  overflow-wrap:anywhere;
}
.pd-logo-wrap{
  width:clamp(120px, 18vw, 200px);
  height:clamp(120px, 18vw, 200px);
  border-radius:28px;
  overflow:hidden;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.12);
}
.pd-logo{
  width:100%;
  height:100%;
  object-fit:contain;
}
.pd-logo-fallback{display:none}
.pd-panel{
  display:none;
  flex-direction:column;
  align-items:center;
  gap:.75rem;
  width:100%;
  min-height:0;
  flex:1;
}
.pd-panel.show{display:flex}
.pd-panel.pd-checkout{
  align-items:stretch;
  justify-content:stretch;
  gap:clamp(.5rem, 1.2vh, .9rem);
}
.pd-order-num{
  flex-shrink:0;
  margin:0 auto;
  padding:.35rem 1.1rem;
  font-size:clamp(2.6rem, 7vw, 4.4rem);
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
  color:#f4f7f8;
  background:color-mix(in srgb, var(--accent, #0d9488) 28%, transparent);
  border:2px solid color-mix(in srgb, var(--accent, #0d9488) 55%, transparent);
  border-radius:16px;
}
.pd-paid-order-num{
  margin-bottom:.35rem;
}
.pd-split{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(1rem, 2vw, 1.75rem);
  width:100%;
}
.pd-checkout.pd-has-qr .pd-split{
  grid-template-columns:1fr 1fr;
}
.pd-left{
  display:flex;
  flex-direction:column;
  min-height:0;
  min-width:0;
  text-align:left;
  gap:.75rem;
}
.pd-items{
  list-style:none;
  margin:0;
  padding:0;
  flex:1;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  -webkit-overflow-scrolling:touch;
}
.pd-item{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:.65rem 1rem;
  align-items:baseline;
  padding:.55rem .2rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  font-size:clamp(1.15rem, 2.6vw, 1.65rem);
  font-weight:600;
  line-height:1.25;
  color:#f4f7f8;
}
.pd-item-qty{
  font-variant-numeric:tabular-nums;
  font-weight:800;
  color:var(--accent, #0d9488);
  min-width:2.2ch;
}
.pd-item-name{
  min-width:0;
  overflow-wrap:anywhere;
}
.pd-item-price{
  font-variant-numeric:tabular-nums;
  font-weight:700;
  white-space:nowrap;
  color:rgba(255,255,255,.8);
}
.pd-total-block{
  flex-shrink:0;
  padding-top:.35rem;
  border-top:2px solid rgba(255,255,255,.18);
  text-align:left;
}
.pd-label{
  margin:0 0 .2rem;
  font-size:clamp(1rem, 2.5vw, 1.25rem);
  color:rgba(255,255,255,.65);
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.pd-amount{
  margin:0;
  font-size:clamp(2.4rem, 7vw, 4.4rem);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1;
  font-variant-numeric:tabular-nums;
  color:#f4f7f8;
}
.pd-right{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:0;
  min-width:0;
  gap:.75rem;
}
.pd-right.pd-right-empty{display:none}
.pd-checkout.pd-has-qr .pd-right.pd-right-empty{
  display:flex;
}
.pd-idle-hint{
  margin:auto 0;
  font-size:clamp(4.6rem, 12vw, 6.4rem);
  color:rgba(255,255,255,.55);
  font-weight:500;
}
.pd-qr-wrap{
  padding:clamp(.85rem, 2vw, 1.25rem);
  background:#fff;
  border-radius:20px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
}
.pd-qr-wrap canvas{
  display:block;
  width:min(100%, 36vmin, 360px);
  height:auto;
  max-height:min(48vh, 360px);
}
.pd-qr-hint{
  margin:0;
  font-size:clamp(.95rem, 2.2vw, 1.2rem);
  color:rgba(255,255,255,.7);
  font-weight:600;
  max-width:18ch;
  line-height:1.3;
}
.pd-thanks{
  margin:auto 0;
  font-size:clamp(1.8rem, 5vw, 3rem);
  font-weight:700;
  line-height:1.25;
  max-width:16ch;
  color:#f4f7f8;
}
.pd-error{
  display:none;
  position:fixed;inset:0;z-index:210;
  align-items:center;justify-content:center;
  padding:2rem;
  background:#0b1c24;
  color:#f4f7f8;
  text-align:center;
}
.pd-error.show{display:flex}
.pd-error-inner{max-width:420px}
.pd-error-inner span{font-size:2.4rem;display:block;margin-bottom:.6rem}
.pd-error-inner p{margin:0 0 .6rem;font-size:1.2rem;font-weight:700}
.pd-error-inner small{color:rgba(255,255,255,.6);line-height:1.45;display:block}

/* Cart ohne QR: volle Breite für die Liste */
.pd-checkout:not(.pd-has-qr) .pd-split{
  grid-template-columns:1fr;
  max-width:min(920px, 100%);
  margin:0 auto;
}
.pd-checkout:not(.pd-has-qr) .pd-right{display:none}

@media (max-width: 700px){
  .pd-brand{
    flex-direction:column;
    gap:.5rem;
  }
  .pd-brand h1{
    font-size:clamp(3.2rem, 12vw, 5.5rem);
    text-align:center;
  }
  .pd-logo-wrap{
    width:clamp(96px, 22vw, 160px);
    height:clamp(96px, 22vw, 160px);
  }
  .pd-checkout.pd-has-qr .pd-split{
    grid-template-columns:1fr;
  }
  .pd-right{
    min-height:auto;
  }
}

/* ─── Kleine Helfer ─────────────────────────────────────────── */
.g-helper-banner{
  margin:.75rem 1rem 0;
  padding:.85rem 1rem;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(14,165,233,.12), rgba(52,211,153,.14));
  border:1px solid rgba(14,165,233,.35);
  color:var(--txt);
  font-size:.9rem;
  line-height:1.4;
}
.g-helper-banner strong{
  display:block;
  margin-bottom:.25rem;
  font-family:var(--font-head);
  color:#0284c7;
}
.helper-delivery-block{
  margin:0 0 1rem;
  padding:.85rem 1rem;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--surface-2, rgba(0,0,0,.03));
}
.g-helper-here{
  position:fixed;
  inset:0;
  z-index:80;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:2rem 1.25rem;
  background:#16a34a;
  color:#fff;
  text-align:center;
}
.g-helper-here-kicker{
  margin:0;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.9;
}
.g-helper-here-num{
  font-family:var(--font-head);
  font-size:clamp(4.5rem, 22vw, 8rem);
  font-weight:800;
  line-height:1;
  letter-spacing:.02em;
}
.g-helper-here-code-box{
  margin:.35rem 0 .15rem;
  padding:.85rem 1.4rem 1rem;
  border-radius:18px;
  background:rgba(255,255,255,.18);
  border:2px solid rgba(255,255,255,.45);
  min-width:min(18rem, 86vw);
}
.g-helper-here-code-lbl{
  margin:0 0 .35rem;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.92;
}
.g-helper-here-code{
  font-family:var(--font-head);
  font-size:clamp(2.8rem, 14vw, 4.5rem);
  font-weight:800;
  letter-spacing:.28em;
  line-height:1;
}
.g-helper-here-hint{
  margin:0;
  max-width:22rem;
  font-size:1.05rem;
  font-weight:600;
  line-height:1.45;
  opacity:.95;
}
.status-screen.helper-here-active > *:not(#gHelperHereOverlay){
  visibility:hidden;
}

/* Druckvorschau ohne Popup (Einwilligung / Belege / Report) */
.hc-print-overlay{
  position:fixed;
  inset:0;
  z-index:12000;
  background:rgba(15,23,42,.55);
  display:flex;
  align-items:stretch;
  justify-content:center;
  padding:clamp(.5rem, 2vw, 1.25rem);
}
.hc-print-panel{
  flex:1;
  max-width:920px;
  background:#f8fafc;
  border-radius:14px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 24px 60px rgba(15,23,42,.28);
}
.hc-print-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  padding:.7rem .9rem;
  background:#0f172a;
  color:#f8fafc;
}
.hc-print-title{
  font-size:.95rem;
  font-weight:650;
  min-width:0;
}
.hc-print-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.hc-print-frame{
  flex:1;
  width:100%;
  min-height:min(78vh, 820px);
  border:0;
  background:#fff;
}
html.hc-print-open, html.hc-print-open body{overflow:hidden}

.hc-compliance-banner{
  margin:0 0 1rem;
  padding:.85rem 1rem;
  border-radius:12px;
  border:1px solid rgba(234,88,12,.35);
  background:linear-gradient(135deg, rgba(255,247,237,.95), rgba(254,243,199,.55));
  font-size:.88rem;
  line-height:1.4;
}
.hc-compliance-banner strong{display:block;margin-bottom:.25rem;color:#9a3412}
.hc-compliance-banner p{margin:0;color:var(--txt)}
.helper-runner-card{
  border:1px solid var(--line);
  border-radius:12px;
  padding:.75rem .85rem;
  margin:.55rem 0;
  background:var(--surface-2, rgba(0,0,0,.02));
  font-size:.88rem;
}
.helper-runner-card .hr-actions{
  display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem;
}
.helper-runner-card .helper-work-time{
  display:inline-block;
  margin:.15rem 0 .05rem;
  color:var(--txt);
  font-weight:700;
  font-size:.82rem;
}
.helper-payouts-details{
  margin:1rem 0 0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.55rem .75rem .7rem;
  background:var(--surface-2, rgba(0,0,0,.02));
}
.helper-payouts-details > summary{
  cursor:pointer;
  font-weight:600;
  font-size:.92rem;
  list-style:none;
}
.helper-payouts-details > summary::-webkit-details-marker{display:none}
.helper-payouts-details > summary::before{content:'▸ ';color:var(--txt-faint)}
.helper-payouts-details[open] > summary::before{content:'▾ '}
.helper-payouts-details[open] > summary{margin-bottom:.15rem}
.helper-payout-row{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:.55rem;
  padding:.65rem 0;
  border-top:1px solid var(--line);
  font-size:.86rem;
}
.helper-payout-row:first-child{border-top:0}
.helper-payout-meta{color:var(--txt-dim);font-size:.8rem;line-height:1.35}
.helper-payout-actions{display:flex;flex-wrap:wrap;gap:.35rem;flex:0 0 auto}

/* Admin: Helfer-Zonen */
.helper-zone-map{
  width:100%;
  height:420px;
  min-height:320px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#0b1220;
  z-index:1;
  position:relative;
}
.helper-zone-map .leaflet-container{
  width:100%;
  height:100%;
  border-radius:14px;
  font:inherit;
}
.helper-zone-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin:.75rem 0 .35rem;
}
.helper-zone-row{
  border-bottom:1px solid var(--line);
}
.helper-zone-row.on{
  background:rgba(14,165,233,.08);
}
.helper-zone-row.is-badi{
  background:rgba(234,88,12,.08);
}
.helper-zone-row.is-badi.on{
  background:rgba(234,88,12,.14);
}
.helper-zone-pick{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  padding:.65rem .2rem;
  cursor:pointer;
  color:inherit;
  font:inherit;
}
.helper-zone-swatch{
  width:1rem;
  height:1rem;
  border-radius:4px;
  margin-top:.2rem;
  flex:0 0 auto;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);
}

