:root {
  --dbgm-theme: #10355b;
  --dbgm-accent: #f4a261;
  --dbgm-bg: #f7f8fa;
  --dbgm-surface: #ffffff;
  --dbgm-text: #14202b;
  --dbgm-muted: #617283;
  --dbgm-border: rgba(16, 53, 91, 0.1);
  --dbgm-shadow: 0 10px 30px rgba(10, 28, 46, 0.08);
  --dbgm-radius: 20px;
  --dbgm-radius-sm: 14px;
  --dbgm-max: 960px;
}

.dbgm-shell,
.dbgm-shell * {
  box-sizing: border-box;
}

.dbgm-shell {
  color: var(--dbgm-text);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.dbgm-page {
  max-width: var(--dbgm-max);
  margin: 0 auto;
  padding: 0 16px 40px;
}

.dbgm-section {
  margin-top: 22px;
}

.dbgm-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.dbgm-section__title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.2;
  color: var(--dbgm-theme);
}

.dbgm-hero,
.dbgm-subhero {
  position: relative;
  overflow: hidden;
  border-radius: 0 0 28px 28px;
  margin: 0 -16px;
  padding: 28px 20px 24px;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,0.18), transparent 30%),
    linear-gradient(135deg, var(--dbgm-theme), color-mix(in srgb, var(--dbgm-theme) 75%, black));
  color: #fff;
}

.dbgm-hero--list {
  border-radius: 0 0 24px 24px;
}

.dbgm-hero__content,
.dbgm-subhero__body {
  max-width: 720px;
}

.dbgm-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.dbgm-hero--has-image::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, color-mix(in srgb, var(--dbgm-theme) 80%, transparent), rgba(0, 0, 0, 0.55));
}

.dbgm-hero--has-image .dbgm-hero__content {
  position: relative;
  z-index: 2;
}

.dbgm-eyebrow {
  margin: 0 0 8px;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}

.dbgm-hero__title,
.dbgm-subhero__title {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  line-height: 1.05;
}

.dbgm-hero__text,
.dbgm-subhero__text {
  margin: 12px 0 0;
  font-size: 1rem;
  line-height: 1.55;
  opacity: 0.95;
}

.dbgm-hero__description {
  margin-top: 16px;
  font-size: 0.98rem;
  line-height: 1.6;
  opacity: 0.95;
}

.dbgm-subhero__top {
  margin-bottom: 16px;
}

.dbgm-backlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

.dbgm-backlink:hover,
.dbgm-backlink:focus {
  text-decoration: underline;
}

.dbgm-grid {
  display: grid;
  gap: 14px;
}

.dbgm-grid--properties,
.dbgm-grid--entries,
.dbgm-grid--categories {
  grid-template-columns: 1fr;
}

.dbgm-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100%;
  border: 1px solid var(--dbgm-border);
  border-radius: var(--dbgm-radius);
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
  color: var(--dbgm-text);
  text-decoration: none;
  overflow: hidden;
}

.dbgm-card__body {
  padding: 18px 18px 14px;
}

.dbgm-card__footer {
  padding: 0 18px 18px;
}

.dbgm-card__meta {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dbgm-accent);
}

.dbgm-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(244, 162, 97, 0.12);
  font-size: 1.1rem;
}

.dbgm-card__title {
  margin: 10px 0 0;
  font-size: 1.15rem;
  line-height: 1.25;
  color: var(--dbgm-theme);
}

.dbgm-card__text,
.dbgm-card__subtext {
  margin: 10px 0 0;
  line-height: 1.5;
}

.dbgm-card__text {
  color: var(--dbgm-text);
}

.dbgm-card__subtext {
  color: var(--dbgm-muted);
  font-size: 0.95rem;
}

.dbgm-linkhint {
  color: var(--dbgm-theme);
  font-weight: 700;
}

.dbgm-card--category {
  gap: 8px;
}

.dbgm-card--category .dbgm-card__icon {
  margin: 18px 18px 0;
}

.dbgm-card--category .dbgm-card__title,
.dbgm-card--category .dbgm-card__text {
  display: block;
  padding: 0 18px;
}

.dbgm-card--category .dbgm-card__text {
  padding-bottom: 18px;
  color: var(--dbgm-muted);
}

.dbgm-quickactions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.dbgm-quickaction {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 92px;
  padding: 16px;
  border: 0;
  border-radius: var(--dbgm-radius-sm);
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
  color: var(--dbgm-text);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.dbgm-quickaction__icon {
  font-size: 1.2rem;
}

.dbgm-quickaction__label {
  font-weight: 700;
  line-height: 1.3;
}

.dbgm-quickaction--static {
  cursor: default;
}

.dbgm-wifi-box {
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: var(--dbgm-radius-sm);
  background: rgba(16, 53, 91, 0.05);
  color: var(--dbgm-text);
  line-height: 1.55;
}

.dbgm-chiplist {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.dbgm-chip {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--dbgm-border);
  color: var(--dbgm-theme);
  text-decoration: none;
  white-space: nowrap;
  font-weight: 600;
}

.dbgm-chip--active {
  background: var(--dbgm-theme);
  color: #fff;
  border-color: var(--dbgm-theme);
}

.dbgm-card--detail,
.dbgm-card--contact,
.dbgm-card--propertyhint {
  padding: 20px;
}

.dbgm-card--detail .dbgm-card__title,
.dbgm-card--contact .dbgm-card__title,
.dbgm-card--propertyhint .dbgm-card__title {
  margin: 0 0 14px;
}

.dbgm-richtext {
  line-height: 1.7;
}

.dbgm-richtext > :first-child {
  margin-top: 0;
}

.dbgm-richtext > :last-child {
  margin-bottom: 0;
}

.dbgm-action-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.dbgm-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--dbgm-theme);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.dbgm-button--secondary {
  background: rgba(16, 53, 91, 0.08);
  color: var(--dbgm-theme);
}

.dbgm-contact-list {
  display: grid;
  gap: 10px;
}

.dbgm-contact-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  color: var(--dbgm-text);
  text-decoration: none;
  line-height: 1.5;
}

.dbgm-contact-item__icon {
  width: 1.5rem;
  text-align: center;
  flex: 0 0 1.5rem;
}

.dbgm-empty {
  padding: 18px;
  border-radius: var(--dbgm-radius-sm);
  background: rgba(16, 53, 91, 0.05);
  color: var(--dbgm-muted);
}

@media (min-width: 640px) {
  .dbgm-page {
    padding-left: 24px;
    padding-right: 24px;
  }

  .dbgm-hero,
  .dbgm-subhero {
    margin-left: -24px;
    margin-right: -24px;
    padding: 36px 28px 30px;
  }

  .dbgm-grid--properties,
  .dbgm-grid--entries,
  .dbgm-grid--categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dbgm-quickactions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .dbgm-grid--properties {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dbgm-grid--categories {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dbgm-grid--entries {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dbgm-section {
    margin-top: 28px;
  }
}

@media (max-width: 480px) {
  .dbgm-page {
    padding-left: 12px;
    padding-right: 12px;
  }

  .dbgm-hero,
  .dbgm-subhero {
    margin-left: -12px;
    margin-right: -12px;
    padding: 22px 16px 18px;
    border-radius: 0 0 20px 20px;
  }

  .dbgm-hero__title,
  .dbgm-subhero__title {
    font-size: 1.6rem;
    line-height: 1.1;
  }

  .dbgm-quickactions {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .dbgm-quickaction {
    min-height: 78px;
    padding: 14px;
  }

  .dbgm-card__body {
    padding: 16px 16px 12px;
  }

  .dbgm-card__footer {
    padding: 0 16px 16px;
  }
}

.dbgm-card__text,
.dbgm-richtext {
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

body {
  padding-bottom: env(safe-area-inset-bottom);
}

.dbgm-page--category,
.dbgm-page--entry {
  touch-action: pan-y;
}

.dbgm-quickaction.is-copied {
  transform: scale(0.98);
  transition: transform 120ms ease;
}

/* Install-Button – wie andere Quick Actions, etwas dezenter */
.dbgm-quickaction--install {
  border: 1px dashed color-mix(in srgb, var(--dbgm-theme) 40%, transparent);
  background: color-mix(in srgb, var(--dbgm-theme) 4%, transparent);
}

/* Push-Toggle – steht unterhalb der QuickActions, volle Breite */
.dbgm-push-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 16px;
  margin-top: 12px;
  border: 1px solid color-mix(in srgb, var(--dbgm-theme) 30%, transparent);
  border-radius: var(--dbgm-radius-sm);
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
  color: var(--dbgm-text);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  flex-direction: row;
  min-height: auto;
}
.dbgm-push-toggle[data-subscribed="1"] {
  background: color-mix(in srgb, var(--dbgm-theme) 8%, transparent);
  border-color: color-mix(in srgb, var(--dbgm-theme) 50%, transparent);
}

/* iOS-Installationshinweis – kleines Sheet am unteren Rand */
.dbgm-ios-install-hint {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 1000;
  background: #fff;
  border-top: 1px solid #e0e0e0;
  border-radius: 16px 16px 0 0;
  padding: 20px 20px 36px;
  box-shadow: 0 -4px 24px rgba(0,0,0,.12);
  animation: dbgm-slide-up .25s ease;
}
@keyframes dbgm-slide-up {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
.dbgm-ios-install-hint__close {
  position: absolute;
  top: 12px; right: 16px;
  background: none; border: none;
  font-size: 18px; color: #888; cursor: pointer;
  padding: 4px 8px;
}
.dbgm-ios-install-hint__text {
  margin: 0 0 12px;
  font-size: 15px;
  color: #333;
}
.dbgm-ios-install-hint__steps {
  font-size: 15px;
  line-height: 2;
  color: #111;
  margin: 0;
}
.dbgm-ios-install-hint__share-icon {
  display: inline-block;
  width: 22px; height: 22px;
  line-height: 22px; text-align: center;
  background: #007aff; color: #fff;
  border-radius: 5px;
  font-size: 13px; font-style: normal;
  vertical-align: middle;
  margin: 0 2px;
}
.dbgm-ios-install-hint__arrow {
  position: absolute;
  bottom: -1px; left: 50%;
  transform: translateX(-50%);
  width: 40px; height: 4px;
  background: #ccc; border-radius: 2px;
}

.dbgm-page--category,
.dbgm-page--entry {
  touch-action: pan-y;
}

.dbgm-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-bottom: 1px solid var(--dbgm-border);
}

.dbgm-card__thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dbgm-gallery {
  display: grid;
  gap: 12px;
}

.dbgm-gallery__item {
  border-radius: var(--dbgm-radius);
  overflow: hidden;
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
}

.dbgm-gallery__image {
  width: 100%;
  height: auto;
  display: block;
}

.dbgm-weather {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px 20px;
  border-radius: var(--dbgm-radius);
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
}

.dbgm-weather__current {
  display: flex;
  align-items: center;
  gap: 14px;
}

.dbgm-weather__icon {
  font-size: 2.6rem;
  line-height: 1;
}

.dbgm-weather__main {
  display: flex;
  flex-direction: column;
}

.dbgm-weather__temp {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--dbgm-theme);
}

.dbgm-weather__label {
  color: var(--dbgm-muted);
  font-size: 0.95rem;
}

.dbgm-weather__forecast {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.dbgm-weather__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 56px;
  padding: 10px 6px;
  border-radius: var(--dbgm-radius-sm);
  background: rgba(16, 53, 91, 0.05);
  font-size: 0.85rem;
}

.dbgm-weather__day-label {
  color: var(--dbgm-muted);
  font-weight: 600;
}

.dbgm-weather__day-icon {
  font-size: 1.3rem;
}

.dbgm-weather__day-temps {
  display: flex;
  gap: 4px;
  color: var(--dbgm-text);
}

.dbgm-weather__day-temps span {
  color: var(--dbgm-muted);
}

.dbgm-weather__source {
  margin: 0;
  font-size: 0.8rem;
  color: var(--dbgm-muted);
}

.dbgm-update-banner {
  position: fixed;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1.25rem;
  border-radius: 2rem;
  background: var(--dbgm-theme);
  color: #fff;
  font-size: 14px;
  box-shadow: var(--dbgm-shadow);
  z-index: 9999;
}

.dbgm-update-banner button {
  border: none;
  border-radius: 1rem;
  padding: 4px 12px;
  background: #fff;
  color: var(--dbgm-theme);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}

.dbgm-menu-category__description {
  margin-bottom: 14px;
}

.dbgm-menu-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dbgm-menu-item {
  display: flex;
  gap: 14px;
  border: 1px solid var(--dbgm-border);
  border-radius: var(--dbgm-radius-sm);
  background: var(--dbgm-surface);
  box-shadow: var(--dbgm-shadow);
  padding: 14px 16px;
}

.dbgm-menu-item--highlight {
  border-color: var(--dbgm-accent);
  background: color-mix(in srgb, var(--dbgm-accent) 8%, var(--dbgm-surface));
}

.dbgm-menu-item__media {
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
  border-radius: var(--dbgm-radius-sm);
  overflow: hidden;
}

.dbgm-menu-item__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dbgm-menu-item__body {
  flex: 1;
  min-width: 0;
}

.dbgm-menu-item__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.dbgm-menu-item__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
  color: var(--dbgm-theme);
}

.dbgm-menu-item__badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--dbgm-accent);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.dbgm-menu-item__price {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--dbgm-theme);
  white-space: nowrap;
}

.dbgm-menu-item__description {
  margin-top: 6px;
  color: var(--dbgm-muted);
  font-size: 0.95rem;
}

.dbgm-menu-item__diet {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.dbgm-chip--diet {
  padding: 4px 10px;
  font-size: 0.8rem;
  font-weight: 600;
}

.dbgm-menu-item__note {
  margin: 6px 0 0;
  font-size: 0.8rem;
  color: var(--dbgm-muted);
}

.dbgm-menu-yumpu {
  position: relative;
  width: 100%;
  padding-top: 140%;
  border-radius: var(--dbgm-radius);
  overflow: hidden;
  box-shadow: var(--dbgm-shadow);
}

.dbgm-menu-yumpu__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (min-width: 640px) {
  .dbgm-menu-yumpu {
    padding-top: 75%;
  }
}

.dbgm-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 10px;
  padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
  margin-top: 8px;
  border-top: 1px solid var(--dbgm-border);
  font-size: 0.78rem;
  color: var(--dbgm-muted);
}

.dbgm-footer__link,
.dbgm-footer__cookie {
  color: var(--dbgm-muted);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.dbgm-footer__link:hover,
.dbgm-footer__cookie:hover {
  color: var(--dbgm-theme);
  text-decoration: underline;
}

.dbgm-footer__sep {
  user-select: none;
}
/* ── Minibar / Maxibar ──────────────────────────────────────────────────── */
.dbgm-minibar { padding: 16px; max-width: var(--dbgm-max); margin: 0 auto; }
.dbgm-minibar__header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 24px; gap: 12px; }
.dbgm-minibar__title { font-size: 1.5rem; font-weight: 700; margin: 0; }
.dbgm-minibar__category { margin-bottom: 24px; }
.dbgm-minibar__category-title { font-size: 1.1rem; font-weight: 700; margin-bottom: 12px; }
.dbgm-minibar__item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--dbgm-border); }
.dbgm-minibar__item-info { flex: 1; min-width: 0; }
.dbgm-minibar__item-title { font-weight: 600; display: block; }
.dbgm-minibar__item-desc { font-size: 0.82rem; color: var(--dbgm-muted); display: block; }
.dbgm-minibar__item-price { font-size: 0.9rem; color: var(--dbgm-theme); font-weight: 600; display: block; }
.dbgm-minibar__item-qty { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.dbgm-minibar__qty-input { width: 52px; text-align: center; border: 1px solid var(--dbgm-border); border-radius: 8px; padding: 6px 4px; font: inherit; min-height: 40px; }
.dbgm-minibar__item-check { display: flex; align-items: center; flex-shrink: 0; }
.dbgm-minibar__checkbox { width: 26px; height: 26px; cursor: pointer; accent-color: var(--dbgm-theme); }
.dbgm-minibar__footer { margin-top: 24px; display: flex; flex-direction: column; gap: 16px; }
.dbgm-minibar__notes-field { width: 100%; border: 1px solid var(--dbgm-border); border-radius: 8px; padding: 10px; font: inherit; resize: vertical; }

/* ── Upselling / Room Service ───────────────────────────────────────────── */
.dbgm-upselling { padding: 16px; max-width: var(--dbgm-max); margin: 0 auto; }
.dbgm-upselling__header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 24px; gap: 12px; }
.dbgm-upselling__header-info { display: flex; flex-direction: column; gap: 4px; }
.dbgm-upselling__title { font-size: 1.5rem; font-weight: 700; margin: 0; }
.dbgm-upselling__room-badge { margin: 0; font-size: 0.85rem; color: var(--dbgm-muted, #6b7280); display: flex; align-items: center; gap: 4px; }
.dbgm-upselling__back { color: var(--dbgm-muted); text-decoration: none; font-size: 0.9rem; }
.dbgm-upselling__back:hover { color: var(--dbgm-theme); }
.dbgm-upselling__cart-btn { display: flex; align-items: center; gap: 6px; background: var(--dbgm-theme); color: #fff; border: none; border-radius: 999px; padding: 10px 18px; font-size: 0.9rem; cursor: pointer; text-decoration: none; min-height: 44px; flex-shrink: 0; }
.dbgm-upselling__cart-icon { font-size: 1.1rem; line-height: 1; }
.dbgm-upselling__cart-count { background: var(--dbgm-accent); color: #fff; border-radius: 999px; padding: 2px 8px; font-size: 0.8rem; font-weight: 700; min-width: 20px; text-align: center; }
.dbgm-hidden { display: none !important; }

.dbgm-upselling__category { margin-bottom: 28px; }
.dbgm-upselling__category-title { font-size: 1.15rem; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; gap: 8px; }
.dbgm-upselling__category-desc { color: var(--dbgm-muted); font-size: 0.88rem; margin-bottom: 12px; }
.dbgm-upselling__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.dbgm-upselling__empty { color: var(--dbgm-muted); text-align: center; padding: 32px 0; }

.dbgm-upselling-item { background: var(--dbgm-surface, #fff); border: 1px solid var(--dbgm-border); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.dbgm-upselling-item--highlight { border-color: var(--dbgm-accent); box-shadow: 0 0 0 2px var(--dbgm-accent, #F4A261)22; }
.dbgm-upselling-item__image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.dbgm-upselling-item__body { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.dbgm-upselling-item__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.dbgm-upselling-item__title { font-size: 1rem; font-weight: 700; margin: 0; }
.dbgm-upselling-item__price { font-size: 1.05rem; font-weight: 700; color: var(--dbgm-theme); white-space: nowrap; }
.dbgm-upselling-item__unit { font-size: 0.78rem; font-weight: 400; color: var(--dbgm-muted); }
.dbgm-upselling-item__desc { font-size: 0.85rem; color: var(--dbgm-muted); margin: 0; }
.dbgm-upselling-item__actions { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.dbgm-upselling-item__slot { width: 100%; padding: 8px; border: 1px solid var(--dbgm-border); border-radius: 8px; font: inherit; background: var(--dbgm-bg, #f8f9fa); }
.dbgm-upselling-item__qty-row { display: flex; align-items: center; gap: 8px; }
.dbgm-upselling-item__qty { width: 56px; text-align: center; border: 1px solid var(--dbgm-border); border-radius: 8px; padding: 8px 4px; font: inherit; min-height: 44px; }
.dbgm-upselling-item__add { margin-top: 4px; width: 100%; }

.dbgm-qty-btn { width: 44px; height: 44px; border: 1px solid var(--dbgm-border); border-radius: 50%; background: var(--dbgm-bg, #f0f0f0); cursor: pointer; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dbgm-qty-btn:hover, .dbgm-qty-btn:active { background: var(--dbgm-theme); color: #fff; border-color: var(--dbgm-theme); }

/* Warenkorb */
.dbgm-upselling__cart-items { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.dbgm-upselling__cart-row { display: flex; align-items: center; gap: 12px; padding: 12px; background: var(--dbgm-surface, #fff); border: 1px solid var(--dbgm-border); border-radius: 10px; }
.dbgm-upselling__cart-info { flex: 1; min-width: 0; }
.dbgm-upselling__cart-name { font-weight: 600; display: block; }
.dbgm-upselling__cart-slot { font-size: 0.8rem; color: var(--dbgm-muted); }
.dbgm-upselling__cart-qty { display: flex; align-items: center; gap: 6px; }
.dbgm-qty-val { min-width: 24px; text-align: center; font-weight: 600; }
.dbgm-upselling__cart-price { font-weight: 700; white-space: nowrap; }
.dbgm-upselling__cart-remove { background: none; border: none; color: var(--dbgm-muted); cursor: pointer; font-size: 1rem; padding: 4px; border-radius: 50%; }
.dbgm-upselling__cart-remove:hover { color: #c00; background: #fee; }
.dbgm-upselling__cart-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 16px; border-top: 1px solid var(--dbgm-border); }
.dbgm-upselling__total { font-size: 1.1rem; }

/* Checkout */
.dbgm-upselling--checkout .dbgm-upselling__checkout-summary { background: var(--dbgm-surface, #f8f9fa); border-radius: 10px; padding: 16px; margin-bottom: 20px; }
.dbgm-upselling__summary-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 0.9rem; }
.dbgm-upselling__summary-total { border-top: 1px solid var(--dbgm-border); margin-top: 8px; padding-top: 8px; font-weight: 700; }
.dbgm-upselling__guest-info { background: var(--dbgm-surface); border-radius: 8px; padding: 12px; color: var(--dbgm-muted); font-size: 0.9rem; margin-bottom: 16px; }
.dbgm-form-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.dbgm-form-field label { font-size: 0.85rem; font-weight: 600; }
.dbgm-form-field input, .dbgm-form-field textarea { padding: 10px; border: 1px solid var(--dbgm-border); border-radius: 8px; font: inherit; background: var(--dbgm-bg, #fff); }

/* Bestätigung */
.dbgm-upselling--confirmation .dbgm-upselling__success { text-align: center; padding: 24px 0; }
.dbgm-upselling__success-icon { font-size: 3rem; color: #22c55e; margin-bottom: 12px; }
.dbgm-upselling__order-summary { background: var(--dbgm-surface, #f8f9fa); border-radius: 10px; padding: 16px; margin: 20px 0; text-align: left; }
.dbgm-upselling__order-item { display: flex; justify-content: space-between; padding: 4px 0; font-size: 0.9rem; }
.dbgm-upselling__order-total { border-top: 1px solid var(--dbgm-border); margin-top: 8px; padding-top: 8px; font-weight: 700; display: flex; justify-content: space-between; }
.dbgm-upselling__confirmation-note { font-size: 0.85rem; color: var(--dbgm-muted); }

/* Buttons */
.dbgm-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 8px; font: inherit; font-weight: 600; cursor: pointer; border: none; text-decoration: none; transition: opacity 0.15s; }
.dbgm-btn:hover { opacity: 0.85; }
.dbgm-btn--primary { background: var(--dbgm-theme); color: #fff; }
.dbgm-btn--secondary { background: var(--dbgm-border, #e5e7eb); color: var(--dbgm-text, #333); }
.dbgm-btn--full { width: 100%; }

/* Toast-Benachrichtigungen */
.dbgm-toast { position: fixed; bottom: calc(72px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%) translateY(20px); background: #1e293b; color: #fff; padding: 10px 20px; border-radius: 8px; font-size: 0.9rem; opacity: 0; transition: opacity 0.25s, transform 0.25s; pointer-events: none; z-index: 9999; white-space: nowrap; max-width: 90vw; }
.dbgm-toast--visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.dbgm-toast--error { background: #c00; }

/* Upselling Icon-Bilder */
.dbgm-upselling__category-icon--img img { width: 28px; height: 28px; object-fit: contain; vertical-align: middle; }
.dbgm-upselling-item__icon { font-size: 1.1em; margin-right: 4px; vertical-align: middle; }
.dbgm-upselling-item__icon--img img { width: 24px; height: 24px; object-fit: contain; vertical-align: middle; }

/* QR-Code Gate */
.dbgm-upselling-gate { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 60px 24px; gap: 16px; }
.dbgm-upselling-gate__icon { font-size: 4rem; }
.dbgm-upselling-gate__title { font-size: 1.5rem; font-weight: 700; margin: 0; }
.dbgm-upselling-gate__text { color: var(--dbgm-muted, #6b7280); max-width: 340px; line-height: 1.5; margin: 0; }
.dbgm-upselling-gate__hint { display: flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--dbgm-muted, #6b7280); border: 1px solid var(--dbgm-border, #e5e7eb); border-radius: 8px; padding: 10px 16px; margin-top: 8px; }

/* ===================================================================
   Online Check-in
   =================================================================== */

.dbgm-checkin { max-width: 680px; margin: 0 auto; padding-bottom: 40px; }
.dbgm-checkin *, .dbgm-checkin *::before, .dbgm-checkin *::after { box-sizing: border-box; }

/* Ungültiger Token */
.dbgm-checkin__invalid { text-align: center; padding: 60px 24px; }
.dbgm-checkin__invalid-icon { font-size: 3rem; margin-bottom: 16px; }
.dbgm-checkin__invalid h2 { font-size: 1.4rem; color: var(--dbgm-theme); margin: 0 0 10px; }
.dbgm-checkin__invalid p { color: var(--dbgm-muted); line-height: 1.6; margin: 0; }

/* Hero */
.dbgm-checkin__hero { background: var(--dbgm-theme); color: #fff; padding: 32px 20px 28px; text-align: center; }
.dbgm-checkin__hotel-name { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; margin: 0 0 8px; }
.dbgm-checkin__title { font-size: 1.8rem; font-weight: 700; margin: 0 0 14px; }
.dbgm-checkin__room-badge { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 100px; padding: 6px 16px; font-size: 0.88rem; font-weight: 500; }

/* Fehler-Banner */
.dbgm-checkin__errors { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 12px; padding: 14px 18px; margin: 14px 16px; color: #991b1b; font-size: 0.875rem; }
.dbgm-checkin__errors strong { display: block; margin-bottom: 6px; }
.dbgm-checkin__errors ul { margin: 0; padding-left: 18px; }
.dbgm-checkin__errors li { margin-bottom: 2px; }

/* Karten (Sektionen) */
.dbgm-checkin__card { background: #fff; margin: 14px 14px 0; border-radius: 16px; padding: 20px; box-shadow: 0 2px 14px rgba(10,28,46,0.07); }

/* Karten-Kopf mit Schritt-Badge */
.dbgm-checkin__card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--dbgm-border); }
.dbgm-checkin__card-header h2 { font-size: 1.05rem; font-weight: 700; color: var(--dbgm-theme); margin: 0; }
.dbgm-checkin__step { width: 28px; height: 28px; min-width: 28px; background: var(--dbgm-theme); color: #fff; border-radius: 50%; font-size: 0.82rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* Unterüberschriften */
.dbgm-checkin__subheading { font-size: 0.78rem; font-weight: 700; color: var(--dbgm-muted); text-transform: uppercase; letter-spacing: 0.08em; margin: 20px 0 12px; padding-top: 18px; border-top: 1px solid var(--dbgm-border); }
.dbgm-checkin__optional { font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 0.9em; }

/* Formularfelder */
.dbgm-checkin .dbgm-form-field { margin-bottom: 14px; gap: 5px; }
.dbgm-checkin .dbgm-form-field > label { font-size: 0.8rem; font-weight: 600; color: var(--dbgm-muted); }
.dbgm-checkin input[type="text"],
.dbgm-checkin input[type="email"],
.dbgm-checkin input[type="tel"],
.dbgm-checkin input[type="date"],
.dbgm-checkin input[type="time"],
.dbgm-checkin select,
.dbgm-checkin textarea {
  width: 100%; padding: 11px 13px; border: 1.5px solid var(--dbgm-border); border-radius: 10px;
  font: inherit; font-size: 0.95rem; color: var(--dbgm-text); background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s; -webkit-appearance: none; appearance: none;
}
.dbgm-checkin input:focus, .dbgm-checkin select:focus, .dbgm-checkin textarea:focus {
  outline: none; border-color: var(--dbgm-accent); box-shadow: 0 0 0 3px rgba(244,162,97,0.18);
}
.dbgm-checkin select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23617283' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;
}

/* 2-Spalten-Grid */
.dbgm-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dbgm-form-grid--street { grid-template-columns: 3fr 1fr; }
@media (max-width: 480px) {
  .dbgm-form-grid, .dbgm-form-grid--street { grid-template-columns: 1fr; gap: 0; }
}

/* Pill-Radio-Buttons */
.dbgm-form-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.dbgm-form-pill { display: inline-flex; cursor: pointer; }
.dbgm-form-pill input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.dbgm-form-pill span { display: inline-block; padding: 9px 20px; border: 1.5px solid var(--dbgm-border); border-radius: 100px; font-size: 0.9rem; font-weight: 500; color: var(--dbgm-muted); transition: all 0.15s; user-select: none; }
.dbgm-form-pill input:checked + span { background: var(--dbgm-theme); border-color: var(--dbgm-theme); color: #fff; }
.dbgm-form-pill:hover span { border-color: var(--dbgm-theme); color: var(--dbgm-theme); }
.dbgm-form-pill input:checked + span:hover { opacity: 0.9; }

/* Checkbox */
.dbgm-form-checkbox { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 0.875rem; line-height: 1.55; color: var(--dbgm-muted); }
.dbgm-form-checkbox input[type="checkbox"] { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; min-width: 20px; border: 1.5px solid var(--dbgm-border); border-radius: 5px; background: #fff; cursor: pointer; margin-top: 1px; transition: all 0.15s; }
.dbgm-form-checkbox input:checked { background: var(--dbgm-theme); border-color: var(--dbgm-theme); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9'%3E%3Cpath d='M1 4.5l3 3L10 1' stroke='white' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; }
.dbgm-form-checkbox a { color: var(--dbgm-theme); text-decoration: underline; }

/* Unterschrift-Pad */
.dbgm-signature-wrap { position: relative; border: 1.5px dashed var(--dbgm-border); border-radius: 12px; background: #f8f9fb; overflow: hidden; }
.dbgm-signature-canvas { display: block; width: 100%; height: 150px; cursor: crosshair; touch-action: none; }
.dbgm-signature-clear { position: absolute; top: 8px; right: 8px; background: rgba(255,255,255,0.9); border: 1px solid var(--dbgm-border); border-radius: 6px; padding: 4px 10px; font-size: 0.78rem; font-family: inherit; cursor: pointer; color: var(--dbgm-muted); transition: color 0.15s, border-color 0.15s; }
.dbgm-signature-clear:hover { color: #b91c1c; border-color: #fca5a5; }

/* Hinweis-Texte */
.dbgm-checkin__hint { font-size: 0.85rem; color: var(--dbgm-muted); margin: 0 0 14px; line-height: 1.5; }
.dbgm-checkin__hint--ok { color: #166534; }
.dbgm-checkin__field-error { color: #b91c1c; font-size: 0.85rem; margin: 0 0 10px; }

/* Begleitperson-Zeile */
.dbgm-companion-row { border: 1px solid var(--dbgm-border); border-radius: 12px; padding: 14px; margin-bottom: 10px; }
.dbgm-companion-row .dbgm-btn { margin-top: 4px; font-size: 0.85rem; padding: 7px 14px; }

/* Aktionsbereich (Absenden) */
.dbgm-checkin__actions { display: flex; flex-direction: column; gap: 10px; margin: 14px 14px 0; }
.dbgm-checkin__actions .dbgm-btn--primary { padding: 14px 24px; font-size: 1rem; border-radius: 12px; }
.dbgm-checkin__actions .dbgm-btn--secondary { border-radius: 12px; }

/* ---------------------------------------------------------------
   Chat-Widget (Frontend, fixed/floating)
--------------------------------------------------------------- */
.dbgm-chat {
    position: fixed;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    right: 1rem;
    width: 320px;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
    display: flex;
    flex-direction: column;
    z-index: 8000;
    overflow: hidden;
    max-height: 480px;
}

.dbgm-chat__header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .875rem 1rem;
    background: var(--dbgm-theme, #000);
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
}
.dbgm-chat__header-icon { font-size: 1.25rem; }
.dbgm-chat__header-info { flex: 1; }
.dbgm-chat__header-info strong { display: block; font-size: .9rem; }
.dbgm-chat__status { font-size: .7rem; opacity: .8; display: flex; align-items: center; gap: 4px; }
.dbgm-chat__status::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #6ee7b7; flex-shrink: 0; }
.dbgm-chat__status--away::before { background: #fcd34d; }
.dbgm-chat__status--offline { color: #ffb3b3; }
.dbgm-chat__status--offline::before { background: #ffb3b3; }
.dbgm-chat__toggle {
    background: none; border: none; color: #fff;
    cursor: pointer; font-size: .8rem; padding: 4px;
}
.dbgm-chat__unread-badge {
    display: none;
    min-width: 20px; height: 20px; padding: 0 5px;
    background: #e74c3c; color: #fff;
    border-radius: 10px; font-size: 11px; font-weight: 700;
    line-height: 20px; text-align: center;
    animation: dbgm-badge-pop .2s ease;
}
@keyframes dbgm-badge-pop {
    0%   { transform: scale(0.5); opacity: 0; }
    60%  { transform: scale(1.2); }
    100% { transform: scale(1);   opacity: 1; }
}

.dbgm-chat__body { display: flex; flex-direction: column; flex: 1; overflow: hidden; }

.dbgm-chat__messages {
    flex: 1; overflow-y: auto; padding: 1rem;
    display: flex; flex-direction: column; gap: .5rem;
    scroll-behavior: smooth;
}
.dbgm-chat__welcome { text-align: center; color: #888; font-size: .875rem; padding: 1rem 0; }
.dbgm-chat__welcome-hint { font-size: .75rem; color: #bbb; margin-top: .25rem; }

.dbgm-chat__message { display: flex; flex-direction: column; max-width: 82%; }
.dbgm-chat__message--guest { align-self: flex-end; align-items: flex-end; }
.dbgm-chat__message--hotel { align-self: flex-start; align-items: flex-start; }
.dbgm-chat__bubble {
    padding: .5rem .875rem; border-radius: 1rem;
    font-size: .875rem; line-height: 1.4; word-break: break-word;
}
.dbgm-chat__message--guest .dbgm-chat__bubble {
    background: var(--dbgm-theme, #000); color: #fff; border-bottom-right-radius: .25rem;
}
.dbgm-chat__message--hotel .dbgm-chat__bubble {
    background: #f0f0f0; color: #333; border-bottom-left-radius: .25rem;
}
.dbgm-chat__message--pending .dbgm-chat__bubble { opacity: .6; }
.dbgm-chat__time { font-size: .65rem; color: #bbb; margin-top: 2px; padding: 0 4px; }

.dbgm-chat__input-wrap {
    display: flex; gap: .5rem; padding: .75rem;
    border-top: 1px solid #f0f0f0; flex-shrink: 0;
}
.dbgm-chat__input {
    flex: 1; border: 1px solid #e0e0e0; border-radius: 1.5rem;
    padding: .5rem .875rem; font-size: .875rem;
    resize: none; outline: none; max-height: 120px; font-family: inherit;
}
.dbgm-chat__input:focus { border-color: var(--dbgm-theme, #000); }
.dbgm-chat__send {
    background: var(--dbgm-theme, #000); color: #fff;
    border: none; border-radius: 50%; width: 38px; height: 38px;
    cursor: pointer; font-size: .875rem; flex-shrink: 0; align-self: flex-end;
}
.dbgm-chat__send:disabled { opacity: .5; }

@media (max-width: 380px) {
    .dbgm-chat { width: calc(100vw - 2rem); right: 1rem; }
}

