/* ════════════════════════════════════════════════════════════
   DIE GIMPEL M.C. — Design System V3
   "Outfit Neo-Dark" — Präzise nach Benutzer-Vorlage
   Mit Outfit-Typografie, weißem Datumsrahmen, Neon-Grün & Gimpel-Pink
   ════════════════════════════════════════════════════════════ */

/* ── Design Tokens (Adobe XD Spec) ─────────────────────────── */
body.theme-v3 {
  color-scheme: dark;

  /* Typografie strictly Outfit */
  --font-head:        'Outfit', sans-serif !important;
  --font-body:        'Outfit', sans-serif !important;

  /* Adobe XD Color Palette */
  --xd-bg:            #261f21; /* rgb(38, 31, 33) */
  --xd-card-bg:       #261f21;
  --xd-green:         #0ef883; /* rgb(14, 248, 131) */
  --xd-red:           #f80e68; /* rgb(248, 14, 104) */
  --xd-white:         #fffcfc; /* rgb(255, 252, 252) */
  --xd-text-dark:     #261f21; /* rgb(38, 31, 33) */
  --xd-border:        rgba(255, 252, 252, 0.35);
  --xd-border-strong: #fffcfc;
  --xd-divider:       rgba(255, 252, 252, 0.4);

  /* Legacy aliases mapped to XD */
  --v3-bg:            var(--xd-bg);
  --v3-card-bg:       var(--xd-card-bg);
  --v3-card-border:   var(--xd-border);
  --v3-divider:       var(--xd-divider);
  --v3-text-main:     var(--xd-white);
  --v3-text-muted:    rgba(255, 252, 252, 0.75);
  --v3-text-subtle:   rgba(255, 252, 252, 0.5);
  --v3-pink:          var(--xd-red);
  --v3-pink-hover:    #ff267b;
  --v3-green:         var(--xd-green);
  --v3-green-hover:   #25fa93;
  --v3-white:         var(--xd-white);

  /* Card Radii: strictly 4px as in XD spec */
  --v3-radius-sm:     4px;
  --v3-radius-md:     4px;
  --v3-radius-lg:     4px;
  --v3-radius-full:   4px;

  /* Overrides for classic base */
  --color-bg:         var(--xd-bg);
  --color-bg-alt:     var(--xd-card-bg);
  --color-bg-card:    var(--xd-card-bg);
  --color-text:       var(--xd-white);
  --color-text-muted: var(--v3-text-muted);
  --color-border:     var(--xd-border);
  --color-pink:       var(--xd-red);
  --color-pink-hover: var(--v3-pink-hover);
}

/* ── Base Reset & Strict Global Rules ────────────────────────── */
body.theme-v3 {
  background-color: var(--xd-bg) !important;
  background-image: none !important;
  color: var(--xd-white) !important;
  font-family: 'Outfit', sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

/* ════════════════════════════════════════════════════════════
   ADOBE XD DESIGN SYSTEM: TYPOGRAFIE & HIERARCHIE
   ════════════════════════════════════════════════════════════ */
/* Klasse 1: Seiten- oder Hauptabschnitt */
body.theme-v3 .xd-h1,
body.theme-v3 .page-title,
body.theme-v3 h1 {
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(26px, 7vw, 36px) !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  color: var(--xd-white) !important;
  letter-spacing: -0.01em;
  margin: 0 0 1rem 0;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Klasse 2: Kapitel / Terminkachel Titel */
body.theme-v3 .xd-h2,
body.theme-v3 .card-title,
body.theme-v3 .event-name,
body.theme-v3 h2 {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
  margin: 0 0 0.5rem 0;
}

/* Klasse 3: Zwischenüberschrift */
body.theme-v3 .xd-h3,
body.theme-v3 .section-subtitle,
body.theme-v3 h3,
body.theme-v3 h4 {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
  margin: 0 0 0.5rem 0;
}

/* Copytexte und Erklärungen */
body.theme-v3 .xd-body,
body.theme-v3 p,
body.theme-v3 .meta-line,
body.theme-v3 .event-meta span,
body.theme-v3 .detail-item,
body.theme-v3 label,
body.theme-v3 input,
body.theme-v3 select,
body.theme-v3 textarea {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
}

/* Kategorie-Label (Unterstrichener Text wie 'Typoelemente', 'Buttons' etc.) */
body.theme-v3 .xd-category,
body.theme-v3 .category-label,
body.theme-v3 .filter-heading,
body.theme-v3 .month-divider-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
  display: inline-block;
  border-bottom: 2px solid var(--xd-white) !important;
  padding-bottom: 3px;
  margin-bottom: 1.25rem;
  text-transform: none !important;
}

/* ════════════════════════════════════════════════════════════
   ADOBE XD DESIGN SYSTEM: BUTTONS HIERARCHIE
   ════════════════════════════════════════════════════════════ */
/* Basis für alle Buttons: 47px Höhe, 4px Radius, Outfit 17px Black */
body.theme-v3 button,
body.theme-v3 .btn,
body.theme-v3 .btn-primary,
body.theme-v3 .btn-secondary,
body.theme-v3 .btn-danger,
body.theme-v3 .xd-btn {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  min-height: 47px;
  border-radius: 4px !important;
  padding: 0 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  cursor: pointer;
  transition: all 0.15s ease;
  box-sizing: border-box;
}

/* 1. STÄRKSTE STUFE: GEFÜLLTE FLÄCHE (Solid) */
/* Grün Solid: Bestätigen, Positiv, Bestätigt, Geprüft */
body.theme-v3 .xd-btn-solid-green,
body.theme-v3 .btn-solid-green {
  background: var(--xd-green) !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
}
/* Rot Solid: Absagen, Negativ, Achtung, Gefahr */
body.theme-v3 .xd-btn-solid-red,
body.theme-v3 .btn-solid-red {
  background: var(--xd-red) !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}
/* Weiß Solid: Neutral, weitere Infos, Hinweis */
body.theme-v3 .xd-btn-solid-white,
body.theme-v3 .btn-solid-white {
  background: var(--xd-white) !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-text-dark) !important;
}

/* 2. MITTLERE STUFE: KONTURBUTTON (3px Kontur) */
/* Weiß Kontur */
body.theme-v3 .xd-btn-outline-white,
body.theme-v3 .btn-outline-white,
body.theme-v3 .btn-secondary {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}
/* Grün Kontur */
body.theme-v3 .xd-btn-outline-green,
body.theme-v3 .btn-outline-green {
  background: transparent !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-white) !important;
}
/* Rot Kontur */
body.theme-v3 .xd-btn-outline-red,
body.theme-v3 .btn-outline-red {
  background: transparent !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}

/* 3. SUBTILSTE STUFE: TEXTBUTTON MIT UNTERSTRICH */
body.theme-v3 .xd-btn-text,
body.theme-v3 .btn-text,
body.theme-v3 .event-link,
body.theme-v3 .btn-link {
  background: transparent !important;
  border: none !important;
  min-height: auto !important;
  padding: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  color: var(--xd-white) !important;
  text-decoration: underline !important;
  cursor: pointer;
  box-shadow: none !important;
}

/* ════════════════════════════════════════════════════════════
   ADOBE XD DESIGN SYSTEM: PILLS & BADGES
   ════════════════════════════════════════════════════════════ */
/* Standard: 22px Höhe, 4px Radius, Outfit 15px Black */
body.theme-v3 .xd-pill,
body.theme-v3 .status-pill,
body.theme-v3 .event-type-badge,
body.theme-v3 .rsvp-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 22px !important;
  padding: 0 10px !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
/* Solid Pills */
body.theme-v3 .pill-solid-white,
body.theme-v3 .pill-anfrage {
  background: var(--xd-white) !important;
  border: 1px solid var(--xd-white) !important;
  color: var(--xd-text-dark) !important;
}
body.theme-v3 .pill-solid-green,
body.theme-v3 .pill-bestaetigt,
body.theme-v3 .rsvp-yes {
  background: var(--xd-green) !important;
  border: 1px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
}
body.theme-v3 .pill-solid-red,
body.theme-v3 .pill-probe,
body.theme-v3 .rsvp-no {
  background: var(--xd-red) !important;
  border: 1px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}
/* Outline Pills */
body.theme-v3 .pill-outline-white,
body.theme-v3 .rsvp-pending {
  background: transparent !important;
  border: 2px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .pill-outline-green {
  background: transparent !important;
  border: 2px solid var(--xd-green) !important;
  color: var(--xd-green) !important;
}
body.theme-v3 .pill-outline-red {
  background: transparent !important;
  border: 2px solid var(--xd-red) !important;
  color: var(--xd-red) !important;
}

/* ════════════════════════════════════════════════════════════
   NAVBAR (V3 Neo-Dark)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .navbar {
  background: var(--xd-bg) !important;
  border-bottom: 1px solid var(--xd-border) !important;
  box-shadow: none !important;
  height: 64px;
  padding: 0 1.25rem;
}

body.theme-v3 .nav-brand {
  transform: none !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 900 !important;
  font-size: 22px !important;
  color: var(--xd-white) !important;
  text-transform: none;
  gap: 0.75rem;
}
body.theme-v3 .nav-brand span {
  color: var(--xd-white) !important;
  text-shadow: none !important;
  font-weight: 900 !important;
}
body.theme-v3 .nav-brand span::after {
  content: " M.C.";
  color: var(--xd-red);
}
body.theme-v3 .nav-brand:hover {
  transform: none !important;
}
body.theme-v3 .nav-logo {
  width: 34px;
  height: 34px;
  filter: none !important;
}

body.theme-v3 .nav-links {
  gap: 0.75rem;
  align-items: center;
}

body.theme-v3 .nav-link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  letter-spacing: 0;
  text-transform: none;
  color: var(--xd-white) !important;
  padding: 0.4rem 0.65rem;
  border-radius: 4px;
  transition: all 0.15s ease;
}
body.theme-v3 .nav-link:hover,
body.theme-v3 .nav-link.active {
  color: var(--xd-white) !important;
  background: rgba(255, 252, 252, 0.1);
  text-decoration: underline;
}

body.theme-v3 .nav-user {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  color: var(--xd-white);
  background: transparent;
  border: 2px solid var(--xd-white);
  padding: 0.35rem 0.85rem;
  border-radius: 4px;
}

body.theme-v3 .btn-logout {
  font-family: var(--font-head);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--v3-text-muted);
  border: 1px solid var(--v3-card-border);
  background: transparent;
  border-radius: var(--v3-radius-sm);
  padding: 0.35rem 0.85rem;
  transition: all 0.15s ease;
}
body.theme-v3 .btn-logout:hover {
  color: var(--v3-pink);
  border-color: var(--v3-pink);
  background: rgba(235, 53, 119, 0.1);
}

/* Theme Switcher in V3 */
body.theme-v3 .theme-switch-btn {
  background: #27272a;
  border: 1px solid var(--v3-card-border);
  color: #ffffff;
  font-family: var(--font-head);
  font-weight: 700;
}
body.theme-v3 .theme-switch-btn:hover {
  border-color: var(--v3-pink);
  color: var(--v3-pink);
  background: rgba(235, 53, 119, 0.15);
}

/* Mobile Menu */
body.theme-v3 .mobile-menu {
  background: #141416 !important;
  color: #ffffff !important;
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
  flex-direction: column !important;
  padding: 1.5rem 1.5rem 5rem 1.5rem !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  box-sizing: border-box !important;
}
body.theme-v3 .mobile-menu.open {
  display: flex !important;
  transform: translateX(0) !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.theme-v3 .mobile-menu > * {
  flex-shrink: 0 !important;
}
body.theme-v3 .mobile-menu-close {
  align-self: flex-end !important;
  background: transparent !important;
  border: none !important;
  color: #ffffff !important;
  cursor: pointer !important;
  margin-bottom: 1rem !important;
  padding: 0.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.theme-v3 .mobile-menu-close .xd-icon,
body.theme-v3 .mobile-menu-close .svg-icon {
  width: 24px !important;
  height: 24px !important;
  stroke: var(--v3-pink) !important;
  color: var(--v3-pink) !important;
}
body.theme-v3 .mobile-nav-link {
  font-family: var(--font-head);
  font-size: 1.25rem;
  font-weight: 700;
  color: #ffffff !important;
  border-bottom: 1px solid var(--v3-card-border);
  padding: 0.85rem 0;
  text-decoration: none;
  transition: color 0.15s ease;
}
body.theme-v3 .mobile-nav-link:hover {
  color: var(--v3-pink) !important;
}
body.theme-v3 .mobile-user {
  margin-top: 1.5rem !important;
  padding: 0.75rem 0 !important;
  color: rgba(255, 255, 255, 0.7) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
}
body.theme-v3 .mobile-logout {
  margin-top: 0.5rem !important;
  margin-bottom: 2rem !important;
}

/* ════════════════════════════════════════════════════════════
   MAIN CONTENT & HEADERS
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .page-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  margin-bottom: 1.5rem !important;
  width: 100% !important;
}
@media (min-width: 600px) {
  body.theme-v3 .page-header {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
}
body.theme-v3 .page-header-actions {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
@media (min-width: 600px) {
  body.theme-v3 .page-header-actions {
    width: auto !important;
  }
}
body.theme-v3 .page-header-actions .btn-primary,
body.theme-v3 .page-header-actions .btn-secondary,
body.theme-v3 .page-header .btn-primary,
body.theme-v3 .page-header .btn-secondary {
  flex: 1 1 0% !important;
  width: auto !important;
  max-width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 14px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

body.theme-v3 .page-title {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: clamp(1.8rem, 5vw, 2.3rem);
  letter-spacing: -0.025em;
  text-transform: none;
  color: #ffffff;
  line-height: 1.2;
}

body.theme-v3 .back-link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-decoration: underline !important;
}
body.theme-v3 .back-link:hover {
  color: var(--xd-white) !important;
}

/* ════════════════════════════════════════════════════════════
   FILTER TABS (V3 Segmented Pills — Responsive)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .filter-tabs {
  display: flex !important;
  width: 100% !important;
  background: var(--xd-bg) !important;
  border: 1px solid var(--xd-border) !important;
  padding: 4px !important;
  border-radius: 4px !important;
  margin-bottom: 1.5rem !important;
  gap: 4px !important;
  box-sizing: border-box !important;
}

body.theme-v3 .filter-tab {
  flex: 1 !important;
  background: transparent !important;
  color: var(--xd-white) !important;
  opacity: 0.6;
  border: none !important;
  border-radius: 4px !important;
  padding: 8px 6px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(13px, 3.8vw, 16px) !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-align: center !important;
  box-shadow: none !important;
  cursor: pointer;
  white-space: nowrap !important;
  transition: all 0.15s ease;
}

body.theme-v3 .filter-tab:hover {
  opacity: 1;
}

body.theme-v3 .filter-tab.active {
  background: var(--xd-white) !important;
  color: var(--xd-text-dark) !important;
  opacity: 1 !important;
}

/* ── Non-Admin Filter Pill: Offene Abstimmungen ─────────────── */
body.theme-v3 .unvoted-filter-wrap {
  margin-top: -0.75rem !important;
  margin-bottom: 1.5rem !important;
  width: 100% !important;
}

body.theme-v3 .unvoted-filter-pill {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 10px 14px !important;
  background: rgba(255, 252, 252, 0.05) !important;
  border: 1px dashed var(--xd-border) !important;
  border-radius: 4px !important;
  color: var(--xd-white) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  font-family: 'Outfit', sans-serif !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

body.theme-v3 .unvoted-filter-pill:hover {
  background: rgba(255, 252, 252, 0.1) !important;
  border-color: rgba(255, 252, 252, 0.6) !important;
}

body.theme-v3 .unvoted-filter-pill.active {
  background: rgba(14, 248, 131, 0.12) !important;
  border: 1px solid var(--xd-green) !important;
  box-shadow: 0 0 14px rgba(14, 248, 131, 0.25) !important;
}

body.theme-v3 .unvoted-pill-left {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex: 1 !important;
  min-width: 0 !important;
}

body.theme-v3 .unvoted-pill-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: var(--xd-red) !important;
  flex-shrink: 0 !important;
}

body.theme-v3 .unvoted-pill-dot.pulse {
  animation: pulse-dot 1.8s infinite ease-in-out !important;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(1.35); }
}

body.theme-v3 .unvoted-filter-pill.active .unvoted-pill-dot {
  background: var(--xd-green) !important;
}

body.theme-v3 .unvoted-pill-text {
  font-size: clamp(13px, 3.4vw, 15px) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  color: var(--xd-white) !important;
  line-height: 1.25 !important;
}

body.theme-v3 .unvoted-pill-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 22px !important;
  height: 22px !important;
  padding: 0 7px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  border-radius: 11px !important;
  background: var(--xd-red) !important;
  color: #fff !important;
  flex-shrink: 0 !important;
  margin-left: 10px !important;
}

body.theme-v3 .unvoted-filter-pill.active .unvoted-pill-count {
  background: var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
}

body.theme-v3 .unvoted-pill-count.zero {
  background: rgba(255, 252, 252, 0.2) !important;
  color: rgba(255, 252, 252, 0.6) !important;
}

/* ════════════════════════════════════════════════════════════
   MONTH DIVIDERS (Adobe XD Kategorie-Stil mit Unterstrich)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .month-divider {
  display: block !important;
  margin: 2.25rem 0 1rem 0 !important;
}
body.theme-v3 .month-divider-line {
  display: none !important;
}
body.theme-v3 .month-divider-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
  display: inline-block !important;
  border-bottom: 2px solid var(--xd-white) !important;
  padding-bottom: 3px;
  margin-bottom: 0.5rem;
  letter-spacing: 0 !important;
  text-transform: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* ════════════════════════════════════════════════════════════
   EVENT CARD (Adobe XD Artboard 1 — 100% EXAKTE NACHBILDUNG)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .events-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  margin-top: 1rem;
}

body.theme-v3 .event-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 20px 20px 0 20px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: border-color 0.2s ease !important;
  transform: none !important;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  overflow: hidden;
  margin-bottom: 8px;
}

body.theme-v3 .event-card:hover {
  border-color: rgba(255, 252, 252, 0.6) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* 15px Bottom status bar indicator (Flush mit Kartenrand, 4px Radius unten) */
body.theme-v3 .event-card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15px;
  background: var(--xd-white);
  border-radius: 0 0 4px 4px;
}
body.theme-v3 .event-card.my-rsvp-yes::after {
  background: var(--xd-green) !important;
}
body.theme-v3 .event-card.my-rsvp-no::after {
  background: var(--xd-red) !important;
}
body.theme-v3 .event-card.my-rsvp-pending::after {
  background: var(--xd-white) !important;
}

/* Card Header */
body.theme-v3 .event-card-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 0;
}

/* ── Event Date Column & Sub-Weekday (Dezent unterhalb der Datumskachel) ── */
body.theme-v3 .event-date-col {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  gap: 3px !important;
  width: 60px !important;
}
@media (min-width: 600px) {
  body.theme-v3 .event-date-col {
    width: 74px !important;
  }
}

body.theme-v3 .event-date-weekday {
  font-family: 'Outfit', sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  color: rgba(255, 255, 255, 0.65) !important;
  text-align: center !important;
  line-height: 1 !important;
  margin-top: 2px !important;
}

/* ── The White Framed Date Box (Responsive: 60px mobile, 74px desktop) ──────── */
body.theme-v3 .event-date-badge {
  background: transparent !important;
  border: 2px solid var(--xd-white) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  width: 60px !important;
  min-width: 60px !important;
  height: 60px !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
@media (min-width: 600px) {
  body.theme-v3 .event-date-badge {
    width: 74px !important;
    min-width: 74px !important;
    height: 74px !important;
  }
}

body.theme-v3 .date-weekday,
body.theme-v3 .date-year-mini {
  display: none !important;
}

body.theme-v3 .date-day {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 900 !important;
  font-size: 26px !important;
  line-height: 1 !important;
  color: var(--xd-white) !important;
  letter-spacing: 0 !important;
}
@media (min-width: 600px) {
  body.theme-v3 .date-day {
    font-size: 36px !important;
  }
}
body.theme-v3 .date-day::after {
  content: ".";
}

body.theme-v3 .date-month {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: var(--xd-white) !important;
  text-transform: uppercase;
  margin-top: 1px;
}
@media (min-width: 600px) {
  body.theme-v3 .date-month {
    font-size: 22px !important;
    margin-top: 2px;
  }
}

/* Title & Info Column */
body.theme-v3 .event-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Status Pill above Title (Anfrage / Bestätigt! / Probe) */
body.theme-v3 .event-type-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 22px !important;
  padding: 0 10px !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  margin-bottom: 6px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
body.theme-v3 .event-type-badge.type-rehearsal,
body.theme-v3 .pill-probe {
  background: var(--xd-red) !important;
  border: 1px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .pill-bestaetigt {
  background: var(--xd-green) !important;
  border: 1px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
}
body.theme-v3 .pill-anfrage,
body.theme-v3 .badge-anfrage {
  background: var(--xd-white) !important;
  border: 1px solid var(--xd-white) !important;
  color: var(--xd-text-dark) !important;
}

/* Event Name: Klasse 2 (Outfit Black 22px, line-height 28px) */
body.theme-v3 .event-name {
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(17px, 4.8vw, 22px) !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  color: var(--xd-white) !important;
  margin: 0 0 4px 0 !important;
  text-transform: none !important;
  display: block !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
  hyphens: auto !important;
  width: 100% !important;
}

/* Meta Section (Clock & Pin mit 17px Light) */
body.theme-v3 .event-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
  width: 100%;
}

body.theme-v3 .meta-line {
  font-family: 'Outfit', sans-serif !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 20px !important;
  color: var(--xd-white) !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

body.theme-v3 .meta-line .svg-icon,
body.theme-v3 .meta-line .xd-icon {
  width: 18px !important;
  height: 18px !important;
  color: var(--xd-white) !important;
  stroke: var(--xd-white) !important;
  flex-shrink: 0 !important;
  margin-top: 1px !important;
}

body.theme-v3 .event-card-header .rsvp-badge {
  display: none !important;
}

/* ── Counters & Details Row ────────────────────────────────── */
body.theme-v3 .event-card-counters,
body.theme-v3 .event-card-footer {
  border-top: none !important;
  padding: 6px 0 2px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  width: 100% !important;
}

body.theme-v3 .rsvp-count {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 !important;
  background: transparent !important;
}

body.theme-v3 .rsvp-count.yes {
  color: var(--xd-green) !important;
}
body.theme-v3 .rsvp-count.yes .svg-icon,
body.theme-v3 .rsvp-count.yes .xd-icon {
  color: var(--xd-green) !important;
  fill: var(--xd-green) !important;
  stroke: none !important;
  width: 20px;
  height: 20px;
}

body.theme-v3 .rsvp-count.no {
  color: var(--xd-red) !important;
}
body.theme-v3 .rsvp-count.no .svg-icon,
body.theme-v3 .rsvp-count.no .xd-icon {
  color: var(--xd-red) !important;
  stroke: var(--xd-red) !important;
  fill: var(--xd-red) !important;
  width: 18px;
  height: 18px;
}

body.theme-v3 .rsvp-count.pending {
  color: var(--xd-white) !important;
}
body.theme-v3 .rsvp-count.pending .svg-icon,
body.theme-v3 .rsvp-count.pending .xd-icon {
  color: var(--xd-white) !important;
  fill: var(--xd-white) !important;
  stroke: none !important;
  width: 16px;
  height: 20px;
}

/* Details Textbutton mit Unterstrich */
body.theme-v3 .event-link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  color: var(--xd-white) !important;
  text-decoration: underline !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin-left: auto !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer;
}
body.theme-v3 .event-link .svg-icon,
body.theme-v3 .event-link .xd-icon {
  display: none !important;
}

/* ── Action Buttons ("Bin dabei" / "Bin nicht dabei") ──────── */
body.theme-v3 .quick-rsvp-group {
  display: flex !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 6px 0 4px 0 !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

body.theme-v3 .btn-quick {
  flex: 1 !important;
  height: 47px !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(13px, 3.8vw, 17px) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  box-sizing: border-box !important;
  transition: all 0.15s ease !important;
  padding: 0 8px !important;
  white-space: nowrap !important;
  letter-spacing: -0.02em !important;
}

/* Status 1: Nicht ausgewählt / Offen */
body.theme-v3 .btn-quick.active-yes {
  background: transparent !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .btn-quick.active-no {
  background: transparent !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}

/* Status 2: "Bin dabei" IST AUSGEWÄHLT */
body.theme-v3 .event-card.my-rsvp-yes .btn-quick.active-yes.selected {
  background: var(--xd-green) !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
  font-weight: 900 !important;
}
body.theme-v3 .event-card.my-rsvp-yes .btn-quick.active-no {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}

/* Status 3: "Bin nicht dabei" IST AUSGEWÄHLT */
body.theme-v3 .event-card.my-rsvp-no .btn-quick.active-no.selected {
  background: var(--xd-red) !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
  font-weight: 900 !important;
}
body.theme-v3 .event-card.my-rsvp-no .btn-quick.active-yes {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}

/* ── Roles Bar (Guitar, Drums, Mic, Mixer) ────────────── */
body.theme-v3 .event-card-roles-compact {
  border-top: 1px solid var(--xd-divider) !important;
  margin: 4px -20px 0 -20px !important;
  padding: 10px 20px 24px 20px !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-around !important;
}

body.theme-v3 .role-compact-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* ── Fontello Icon Font for Specialists ── */
@font-face {
  font-family: 'gimpel_icons';
  src: url('/font/gimpel_icons.eot?2396016');
  src: url('/font/gimpel_icons.eot?2396016#iefix') format('embedded-opentype'),
       url('/font/gimpel_icons.woff2?2396016') format('woff2'),
       url('/font/gimpel_icons.woff?2396016') format('woff'),
       url('/font/gimpel_icons.ttf?2396016') format('truetype'),
       url('/font/gimpel_icons.svg?2396016#gimpel_icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-gimpel-"]:before, [class*=" icon-gimpel-"]:before,
[class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "gimpel_icons" !important;
  font-style: normal !important;
  font-weight: normal !important;
  speak: never;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-gimpel-chorleiter:before, .icon-chorleiter:before { content: '\e805'; }
.icon-gimpel-drums:before, .icon-drums:before, .icon-drums_neu:before { content: '\e806'; }
.icon-gimpel-gitarre:before, .icon-gitarre:before { content: '\e807'; }
.icon-gimpel-keyboard:before, .icon-keyboard:before { content: '\e808'; }
.icon-gimpel-technik:before, .icon-technik:before { content: '\e80c'; }
.icon-gimpel-trash:before, .icon-trash-empty:before { content: '\e802'; }

/* White instrument icon (first child) */
body.theme-v3 .role-compact-item > .xd-icon:first-child,
body.theme-v3 .role-compact-item > [class^="icon-gimpel-"],
body.theme-v3 .role-compact-item > [class*=" icon-gimpel-"],
body.theme-v3 .role-compact-item > [class^="icon-"],
body.theme-v3 .role-compact-item > [class*=" icon-"] {
  width: 22px !important;
  height: 22px !important;
  font-size: 20px !important;
  color: var(--xd-white) !important;
  fill: var(--xd-white) !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* Status Icon (second child) */
body.theme-v3 .role-compact-item > .xd-icon:last-child {
  flex-shrink: 0 !important;
}

/* Status: Green check, Red cross, or White question mark */
body.theme-v3 .role-compact-item.role-yes .xd-icon-check {
  color: var(--xd-green) !important;
  fill: var(--xd-green) !important;
  stroke: none !important;
  width: 17px !important;
  height: 17px !important;
}
body.theme-v3 .role-compact-item.role-no .xd-icon-cross {
  color: var(--xd-red) !important;
  stroke: var(--xd-red) !important;
  fill: var(--xd-red) !important;
  width: 15px !important;
  height: 15px !important;
}
body.theme-v3 .role-compact-item.role-pending .xd-icon-help {
  color: var(--xd-white) !important;
  fill: var(--xd-white) !important;
  stroke: var(--xd-white) !important;
  stroke-width: 1px !important;
  stroke-linejoin: round !important;
  width: 13px !important;
  height: 17px !important;
  opacity: 1 !important;
}

/* ════════════════════════════════════════════════════════════
   GLOBAL BUTTON OVERRIDES IN V3
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .btn-primary,
body.theme-v3 .btn-approve {
  background: var(--xd-green) !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  min-height: 47px !important;
}

body.theme-v3 .btn-danger {
  background: var(--xd-red) !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  min-height: 47px !important;
}

body.theme-v3 .btn-secondary {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  min-height: 47px !important;
}

/* ════════════════════════════════════════════════════════════
   EVENT DETAIL VIEW (Outfit, 4px Radius, Weißraum)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .event-detail-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  margin-top: 1.5rem;
}

body.theme-v3 .event-detail-header {
  background: var(--xd-card-bg) !important;
  border-bottom: 1px solid var(--xd-divider) !important;
  padding: 2rem 1.5rem !important;
}

body.theme-v3 .event-detail-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 900 !important;
  font-size: 36px !important;
  line-height: 45px !important;
  color: var(--xd-white) !important;
}

body.theme-v3 .event-detail-meta {
  background: var(--xd-card-bg);
  padding: 1.5rem;
  border-bottom: 1px solid var(--xd-divider);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.theme-v3 .meta-item {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
body.theme-v3 .meta-icon {
  color: var(--xd-white) !important;
}

body.theme-v3 .rsvp-section {
  background: var(--xd-card-bg) !important;
  border-bottom: 1px solid var(--xd-divider) !important;
  padding: 1.75rem 1.5rem !important;
}
body.theme-v3 .rsvp-section h2 {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  border-bottom: 2px solid var(--xd-white) !important;
  display: inline-block;
  padding-bottom: 3px;
  margin-bottom: 1.25rem;
}

body.theme-v3 .rsvp-buttons {
  display: flex !important;
  gap: 12px !important;
  width: 100% !important;
}

body.theme-v3 .btn-rsvp {
  flex: 1 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  padding: 0 1.5rem;
  min-height: 47px !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
}

/* Detail RSVP: Unselected */
body.theme-v3 #btn-yes,
body.theme-v3 .btn-rsvp-yes {
  background: transparent !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-white) !important;
}
body.theme-v3 #btn-no,
body.theme-v3 .btn-rsvp-no {
  background: transparent !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}

/* Detail RSVP: Selected Yes */
body.theme-v3 #btn-yes.active-yes,
body.theme-v3 .btn-rsvp-yes.selected {
  background: var(--xd-green) !important;
  border: 3px solid var(--xd-green) !important;
  color: var(--xd-text-dark) !important;
}
body.theme-v3 .rsvp-buttons:has(#btn-yes.active-yes) #btn-no,
body.theme-v3 .btn-rsvp-yes.selected ~ .btn-rsvp-no {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}

/* Detail RSVP: Selected No */
body.theme-v3 #btn-no.active-no,
body.theme-v3 .btn-rsvp-no.selected {
  background: var(--xd-red) !important;
  border: 3px solid var(--xd-red) !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .rsvp-buttons:has(#btn-no.active-no) #btn-yes {
  background: transparent !important;
  border: 3px solid var(--xd-white) !important;
  color: var(--xd-white) !important;
}

/* ════════════════════════════════════════════════════════════
   FORMS & INPUTS (4px Radius, Outfit Typo)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .form-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 2rem 1.5rem;
}

body.theme-v3 .form-group label,
body.theme-v3 .form-group-checkbox label,
body.theme-v3 .form-checkbox-inline label,
body.theme-v3 label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin-bottom: 0.5rem;
}

body.theme-v3 .form-group input,
body.theme-v3 .form-group textarea,
body.theme-v3 .form-group select {
  background: var(--xd-bg) !important;
  color: var(--xd-white) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  padding: 0.8rem 1rem;
}

body.theme-v3 .form-group input:focus,
body.theme-v3 .form-group textarea:focus,
body.theme-v3 .form-group select:focus {
  border-color: var(--xd-white) !important;
  outline: none;
  box-shadow: 0 0 0 2px rgba(255, 252, 252, 0.25) !important;
}

/* ════════════════════════════════════════════════════════════
   AUTH VIEWS (Login / Register)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .auth-container {
  background: var(--xd-bg) !important;
}
body.theme-v3 .auth-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  padding: 2.5rem 1.75rem !important;
}
body.theme-v3 .auth-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  line-height: 45px !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .auth-title .accent {
  color: var(--xd-red) !important;
}
body.theme-v3 .auth-subtitle {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
}

body.theme-v3 .auth-forgot-link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--xd-red) !important;
  text-decoration: none !important;
  transition: opacity 0.15s ease !important;
}
body.theme-v3 .auth-forgot-link:hover {
  text-decoration: underline !important;
  opacity: 0.85;
}

/* ════════════════════════════════════════════════════════════
   SONGS POOL
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .song-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1rem;
}
body.theme-v3 .song-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 900 !important;
  font-size: 22px !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .song-artist {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
}

/* ════════════════════════════════════════════════════════════
   INFO TILES & GENERAL CARDS (Adobe XD Kachelrahmen)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .info-tile-card,
body.theme-v3 .practice-card,
body.theme-v3 .archive-event-card,
body.theme-v3 .archive-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-left: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  padding: 16px 14px !important;
  margin-bottom: 1rem !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  overflow: hidden !important;
  cursor: pointer;
  transition: border-color 0.15s ease !important;
}
body.theme-v3 .archive-card:hover {
  border-color: rgba(255, 252, 252, 0.6) !important;
  transform: none !important;
  box-shadow: none !important;
}

body.theme-v3 .archive-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

body.theme-v3 .archive-card-header {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  min-width: 0 !important;
  width: 100% !important;
}

body.theme-v3 .archive-header-info {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

body.theme-v3 .archive-gig-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: clamp(16px, 4.4vw, 20px) !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  color: var(--xd-white) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

body.theme-v3 .archive-gig-meta {
  font-family: 'Outfit', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 14px !important;
}

body.theme-v3 .archive-gig-desc {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

body.theme-v3 .archive-card-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

body.theme-v3 .archive-box {
  background: rgba(255, 252, 252, 0.04) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 12px !important;
}

body.theme-v3 .archive-box-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  color: var(--xd-white) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin-bottom: 8px !important;
}

body.theme-v3 .archive-setlist-preview-list {
  padding-left: 0 !important;
  list-style: none !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

body.theme-v3 .archive-setlist-preview-list li {
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
  line-height: 1.3 !important;
}

body.theme-v3 .archive-setlist-preview-list .setlist-num {
  font-weight: 900 !important;
  color: var(--xd-white) !important;
  margin-right: 4px !important;
}

body.theme-v3 .archive-singers-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}

body.theme-v3 .singer-chip {
  background: transparent !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 3px 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--xd-white) !important;
}

body.theme-v3 .archive-card-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  border-top: 1px solid var(--xd-divider) !important;
  padding-top: 12px !important;
  margin-top: 2px !important;
}

body.theme-v3 .archive-link {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  color: var(--xd-white) !important;
  text-decoration: underline !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.theme-v3 .archive-card-footer .btn-secondary {
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  border: 2px solid var(--xd-white) !important;
}

body.theme-v3 .info-tile-title,
body.theme-v3 .practice-track-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
}

body.theme-v3 .info-tile-content,
body.theme-v3 .practice-track-desc {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
}

/* ════════════════════════════════════════════════════════════
   SECTIONS & SECTION HEADINGS (Adobe XD Klasse 2)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .section {
  margin-bottom: 2.5rem !important;
}
body.theme-v3 .section-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 0 1.25rem 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

/* ════════════════════════════════════════════════════════════
   BOOKING CARDS (Adobe XD Kachel — Admin Buchungsanfragen)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .booking-card {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  padding: 24px 20px !important;
  margin-bottom: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  position: relative !important;
  overflow: visible !important;
  transform: none !important;
}
body.theme-v3 .booking-card::after {
  display: none !important;
}
body.theme-v3 .booking-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}
body.theme-v3 .booking-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
  margin: 0 0 10px 0 !important;
}
body.theme-v3 .booking-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.theme-v3 .booking-meta-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .booking-meta-row a {
  color: var(--xd-white) !important;
  text-decoration: underline;
}
body.theme-v3 .booking-message {
  background: rgba(0, 0, 0, 0.2) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 16px 20px !important;
  margin: 0 !important;
}
body.theme-v3 .booking-message p {
  margin: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
  color: var(--xd-white) !important;
  white-space: pre-wrap !important;
}
body.theme-v3 .contract-upload-container {
  border-top: 1px solid var(--xd-divider) !important;
  padding-top: 18px !important;
  margin-top: 4px !important;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body.theme-v3 .contract-upload-label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 21px !important;
  color: var(--xd-white) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 !important;
}
body.theme-v3 .contract-upload-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  align-items: stretch !important;
}
@media (min-width: 520px) {
  body.theme-v3 .contract-upload-row {
    flex-direction: row !important;
  }
}
body.theme-v3 .contract-file-input {
  min-height: 47px !important;
  height: 47px !important;
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  color: var(--xd-white) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  padding: 8px 12px !important;
  box-sizing: border-box !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  cursor: pointer;
}
body.theme-v3 .contract-file-input::file-selector-button {
  background: var(--xd-white);
  color: var(--xd-text-dark);
  border: none;
  border-radius: 2px;
  padding: 6px 14px;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 14px;
  margin-right: 12px;
  cursor: pointer;
  height: 29px;
  vertical-align: middle;
}
body.theme-v3 .contract-send-btn {
  min-height: 47px !important;
  height: 47px !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  width: 100% !important;
  flex: 0 0 auto !important;
}
@media (min-width: 520px) {
  body.theme-v3 .contract-send-btn {
    width: auto !important;
  }
}
body.theme-v3 .contract-error {
  color: var(--xd-red) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  margin-top: 4px;
}
body.theme-v3 .booking-actions {
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  margin-top: 6px !important;
}
body.theme-v3 .booking-actions button,
body.theme-v3 .booking-actions .xd-btn {
  min-height: 47px !important;
  height: 47px !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  padding: 0 20px !important;
  flex: 1 1 140px !important;
  box-sizing: border-box !important;
}
body.theme-v3 .booking-card-compact {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}
body.theme-v3 .booking-card-compact-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .booking-card-compact-meta {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: rgba(255, 252, 252, 0.7) !important;
}

/* ════════════════════════════════════════════════════════════
   SINGER MANAGEMENT CARDS (Adobe XD Kachel — Admin Sänger)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .singers-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}
body.theme-v3 .singer-row {
  background: var(--xd-card-bg) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  padding: 24px 20px !important;
  margin-bottom: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  align-items: stretch !important;
  transform: none !important;
}
body.theme-v3 .singer-row::after {
  display: none !important;
}
body.theme-v3 .singer-row.pending {
  border-color: var(--xd-red) !important;
  background: var(--xd-card-bg) !important;
}
body.theme-v3 .singer-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}
body.theme-v3 .singer-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.theme-v3 .singer-name {
  font-family: 'Outfit', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 28px !important;
  color: var(--xd-white) !important;
}
body.theme-v3 .singer-email {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 20px !important;
  color: rgba(255, 252, 252, 0.7) !important;
}
body.theme-v3 .singer-badges {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
body.theme-v3 .singer-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
body.theme-v3 .singer-actions button,
body.theme-v3 .singer-actions .xd-btn {
  min-height: 47px !important;
  height: 47px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  border-radius: 4px !important;
  padding: 0 20px !important;
  flex: 1 1 140px !important;
  box-sizing: border-box !important;
}
body.theme-v3 .singer-self-label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: rgba(255, 252, 252, 0.6) !important;
}
body.theme-v3 .singer-roles {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px 20px !important;
  padding: 16px 0 0 0 !important;
  margin-top: 4px !important;
  border-top: 1px solid var(--xd-divider) !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  background: transparent !important;
  width: 100% !important;
}
body.theme-v3 .singer-role-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  margin: 0 !important;
  user-select: none !important;
}
body.theme-v3 .singer-role-item input[type="checkbox"] {
  appearance: auto;
  accent-color: var(--xd-green);
  width: 18px !important;
  height: 18px !important;
  cursor: pointer;
  margin: 0 !important;
}
body.theme-v3 .singer-role-item span {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--xd-white) !important;
}

/* ════════════════════════════════════════════════════════════
   MOBILE CONTAINER & WHITESPACE (99.99% Smartphone)
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .main-content {
  padding: 24px 16px 80px 16px !important;
  max-width: 600px;
  margin: 0 auto;
  box-sizing: border-box !important;
}
@media (min-width: 768px) {
  body.theme-v3 .main-content {
    padding: 36px 24px 100px 24px !important;
    max-width: 780px;
  }
}
@media (max-width: 480px) {
  /* Main padding */
  body.theme-v3 .main-content {
    padding: 16px 12px 60px 12px !important;
  }

  /* Events list & card spacing */
  body.theme-v3 .events-list {
    gap: 16px !important;
  }
  body.theme-v3 .event-card {
    padding: 16px 14px 0 14px !important;
    gap: 12px !important;
  }
  body.theme-v3 .event-card-header {
    gap: 12px !important;
  }

  /* Date badge: compact and sleek (60x60px) */
  body.theme-v3 .event-date-badge {
    width: 60px !important;
    min-width: 60px !important;
    height: 60px !important;
    border-width: 2px !important;
  }
  body.theme-v3 .date-day {
    font-size: 26px !important;
  }
  body.theme-v3 .date-month {
    font-size: 15px !important;
    margin-top: 1px !important;
  }

  /* Event Name sizing on mobile */
  body.theme-v3 .event-name {
    font-size: clamp(16px, 4.6vw, 19px) !important;
    line-height: 1.25 !important;
  }

  /* Meta line font size & icon */
  body.theme-v3 .meta-line {
    font-size: 14.5px !important;
    line-height: 1.3 !important;
    gap: 7px !important;
  }
  body.theme-v3 .meta-line .svg-icon,
  body.theme-v3 .meta-line .xd-icon {
    width: 16px !important;
    height: 16px !important;
    margin-top: 2px !important;
    align-self: flex-start !important;
  }

  /* Quick RSVP Buttons: never wrap into 2 lines */
  body.theme-v3 .btn-quick {
    font-size: clamp(12px, 3.5vw, 14.5px) !important;
    padding: 0 4px !important;
    white-space: nowrap !important;
    letter-spacing: -0.02em !important;
    height: 44px !important;
    min-height: 44px !important;
  }

  /* Counters row */
  body.theme-v3 .event-card-counters,
  body.theme-v3 .event-card-footer {
    gap: 12px !important;
    padding: 4px 0 2px 0 !important;
  }
  body.theme-v3 .rsvp-count {
    font-size: 19px !important;
    gap: 6px !important;
  }
  body.theme-v3 .rsvp-count .svg-icon,
  body.theme-v3 .rsvp-count .xd-icon {
    width: 16px !important;
    height: 16px !important;
  }
  body.theme-v3 .event-link {
    font-size: 15px !important;
  }

  /* Roles Bar bottom margins matching 14px card padding */
  body.theme-v3 .event-card-roles-compact {
    margin: 4px -14px 0 -14px !important;
    padding: 8px 14px 20px 14px !important;
  }
  body.theme-v3 .event-card::after {
    height: 12px !important;
  }

  /* Booking & Singer cards on mobile */
  body.theme-v3 .booking-card,
  body.theme-v3 .singer-row {
    padding: 18px 14px !important;
    margin-bottom: 16px !important;
    gap: 14px !important;
  }
  body.theme-v3 .booking-title,
  body.theme-v3 .singer-name {
    font-size: 20px !important;
    line-height: 25px !important;
  }
  body.theme-v3 .booking-meta-row,
  body.theme-v3 .booking-message p {
    font-size: 15px !important;
  }
  body.theme-v3 .singer-roles {
    gap: 8px 14px !important;
  }
  body.theme-v3 .singer-actions {
    display: flex !important;
    gap: 10px !important;
  }
  body.theme-v3 .singer-actions button,
  body.theme-v3 .singer-actions .xd-btn,
  body.theme-v3 .booking-actions button,
  body.theme-v3 .booking-actions .xd-btn {
    flex: 1 1 120px !important;
    padding: 0 10px !important;
    font-size: 15px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
}

/* ════════════════════════════════════════════════════════════
   THEME SWITCHER PILLS (Header)
   ════════════════════════════════════════════════════════════ */
.theme-switcher-pills {
  display: inline-flex;
  align-items: center;
  background: #1e1719;
  border: 1px solid rgba(255, 252, 252, 0.25);
  border-radius: 4px;
  padding: 3px;
  gap: 2px;
}
.theme-pill {
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  font-weight: 800;
  padding: 0.35rem 0.75rem;
  border-radius: 4px;
  border: none;
  background: transparent;
  color: #a1a1aa;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.theme-pill:hover {
  color: #ffffff;
}
.theme-pill.active {
  background: #f80e68 !important;
  color: #ffffff !important;
}

/* ════════════════════════════════════════════════════════════
   THEME V3 - SETLIST STYLES & REORDERING
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .setlist-section {
  /* Gleiche Abstände wie "Funktionen" und "Deine Antwort" */
  background: var(--xd-card-bg) !important;
  padding: 1.75rem 1.5rem !important;
  margin: 0 !important;
  border-top: none !important;
  border-bottom: 1px solid var(--xd-divider) !important;
}

body.theme-v3 .setlist-section h2 {
  font-family: 'Outfit', sans-serif !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 21px !important;
  letter-spacing: normal !important;
  color: var(--xd-white) !important;
  border-bottom: 2px solid var(--xd-white) !important;
  display: inline-block !important;
  padding-bottom: 3px !important;
  margin: 0 0 1.25rem 0 !important;
}

body.theme-v3 .setlist-empty,
body.theme-v3 .setlist-no-songs {
  font-family: 'Outfit', sans-serif !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 15px !important;
  margin: 0 0 1rem 0 !important;
}

body.theme-v3 .setlist-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 1.5rem 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

body.theme-v3 .setlist-list li.setlist-item {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  transition: all 0.15s ease !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

body.theme-v3 .setlist-list li.setlist-item[draggable="true"] {
  cursor: grab !important;
}

body.theme-v3 .setlist-list li.setlist-item[draggable="true"]:active {
  cursor: grabbing !important;
}

body.theme-v3 .setlist-list li.setlist-item.dragging,
body.theme-v3 .setlist-list li.setlist-item.touch-dragging {
  opacity: 0.45 !important;
  border-style: dashed !important;
  background: rgba(235, 53, 119, 0.08) !important;
}

body.theme-v3 .setlist-list li.setlist-item.drag-over {
  border-color: var(--xd-red) !important;
  border-width: 2px !important;
  background: rgba(235, 53, 119, 0.15) !important;
  transform: scale(1.01) !important;
}

body.theme-v3 .setlist-item-content {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
}

body.theme-v3 .setlist-drag-handle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.4) !important;
  cursor: grab !important;
  touch-action: none !important;
  border-radius: 4px !important;
  transition: color 0.15s ease !important;
}

body.theme-v3 .setlist-drag-handle:active {
  cursor: grabbing !important;
  color: var(--xd-red) !important;
}

body.theme-v3 .setlist-index {
  font-family: 'Anton', sans-serif !important;
  font-size: 18px !important;
  color: var(--xd-red) !important;
  min-width: 26px !important;
  text-align: right !important;
  line-height: 1 !important;
}

body.theme-v3 .setlist-song-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  color: var(--xd-white) !important;
  flex: 1 1 auto !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.theme-v3 .setlist-order-btns {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-shrink: 0 !important;
}

body.theme-v3 .btn-setlist-order {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 6px !important;
  color: var(--xd-white) !important;
  font-size: 13px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  -webkit-tap-highlight-color: transparent !important;
}

body.theme-v3 .btn-setlist-order:hover:not(:disabled),
body.theme-v3 .btn-setlist-order:active:not(:disabled) {
  background: rgba(235, 53, 119, 0.25) !important;
  border-color: var(--xd-red) !important;
  color: #ffffff !important;
  transform: scale(1.05) !important;
}

body.theme-v3 .btn-setlist-order:disabled {
  opacity: 0.2 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

body.theme-v3 .btn-delete-setsong {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  background: rgba(235, 53, 119, 0.08) !important;
  border: 1px solid rgba(235, 53, 119, 0.3) !important;
  border-radius: 6px !important;
  color: var(--xd-red) !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  flex-shrink: 0 !important;
  -webkit-tap-highlight-color: transparent !important;
}

body.theme-v3 .btn-delete-setsong:hover,
body.theme-v3 .btn-delete-setsong:active {
  background: var(--xd-red) !important;
  border-color: var(--xd-red) !important;
  color: #ffffff !important;
  transform: scale(1.05) !important;
}

body.theme-v3 .btn-delete-setsong svg {
  width: 18px !important;
  height: 18px !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

body.theme-v3 .setlist-add-form {
  margin-top: 1rem !important;
  padding-top: 1rem !important;
  border-top: 1px dashed var(--xd-border) !important;
}

body.theme-v3 .setlist-add-form .form-group-inline {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}

body.theme-v3 .setlist-add-form select {
  flex: 1 !important;
  background: var(--xd-bg) !important;
  color: var(--xd-white) !important;
  border: 1px solid var(--xd-border) !important;
  border-radius: 4px !important;
  padding: 0.6rem 0.8rem !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  height: 42px !important;
}

body.theme-v3 .setlist-add-form button {
  height: 42px !important;
  padding: 0 1rem !important;
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  body.theme-v3 .setlist-item-content {
    gap: 6px !important;
  }
  body.theme-v3 .setlist-song-title {
    font-size: 14px !important;
  }
  body.theme-v3 .setlist-drag-handle {
    width: 26px !important;
    min-width: 26px !important;
  }
  body.theme-v3 .btn-setlist-order,
  body.theme-v3 .btn-delete-setsong {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
  }
}



body.theme-v3 .setlist-list li.setlist-item.just-moved {
  border-color: var(--xd-red) !important;
  background: rgba(235, 53, 119, 0.12) !important;
}

/* ════════════════════════════════════════════════════════════
   THEME V3 - PUSH-BENACHRICHTIGUNGEN
   ════════════════════════════════════════════════════════════ */
body.theme-v3 .nav-link-bell {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.35rem !important;
}
body.theme-v3 .nav-link-bell svg { display: block; }

body.theme-v3 .push-page { max-width: 760px; margin: 0 auto; }

body.theme-v3 .push-card {
  background: rgba(255, 252, 252, 0.04);
  border: 1px solid var(--xd-border);
  border-radius: 6px;
  padding: 1.5rem;
  margin-bottom: 1.25rem;
}

body.theme-v3 .push-card-title {
  font-family: 'Anton', sans-serif !important;
  font-weight: 400 !important;
  font-size: 22px !important;
  letter-spacing: 2px !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  color: var(--xd-white) !important;
  margin: 0 0 1rem 0 !important;
}

body.theme-v3 .push-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--xd-white);
  margin-bottom: 0.75rem;
}
body.theme-v3 .push-dot {
  width: 12px; height: 12px; border-radius: 50%;
  background: rgba(255, 252, 252, 0.4);
  flex-shrink: 0;
}
body.theme-v3 .push-status-on .push-dot { background: var(--xd-green); box-shadow: 0 0 10px var(--xd-green); }
body.theme-v3 .push-status-warn .push-dot { background: var(--xd-red); box-shadow: 0 0 10px var(--xd-red); }

body.theme-v3 .push-text {
  font-family: 'Outfit', sans-serif !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.45 !important;
  color: var(--xd-white) !important;
  margin: 0 0 1rem 0 !important;
}
body.theme-v3 .push-text-small { font-size: 14px !important; opacity: 0.75; }

body.theme-v3 .push-list {
  margin: 0 0 1rem 1.1rem;
  padding: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--xd-white);
}
body.theme-v3 .push-list li { margin-bottom: 0.4rem; }

body.theme-v3 .push-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Kategorien als Schalter */
body.theme-v3 .push-prefs { display: flex; flex-direction: column; gap: 2px; }
body.theme-v3 .push-pref {
  display: flex !important;
  align-items: center;
  gap: 14px;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(255, 252, 252, 0.12);
  cursor: pointer;
  margin: 0 !important;
}
body.theme-v3 .push-pref:last-child { border-bottom: none; }
body.theme-v3 .push-pref input { position: absolute; opacity: 0; pointer-events: none; }
body.theme-v3 .push-switch {
  position: relative;
  width: 46px; height: 26px;
  border-radius: 13px;
  background: rgba(255, 252, 252, 0.18);
  border: 1px solid var(--xd-border);
  flex-shrink: 0;
  transition: background 0.15s ease;
}
body.theme-v3 .push-switch::after {
  content: '';
  position: absolute; top: 2px; left: 2px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--xd-white);
  transition: transform 0.15s ease;
}
body.theme-v3 .push-pref input:checked + .push-switch { background: var(--xd-green); border-color: var(--xd-green); }
body.theme-v3 .push-pref input:checked + .push-switch::after { transform: translateX(20px); background: var(--xd-text-dark); }
body.theme-v3 .push-pref input:focus-visible + .push-switch { outline: 2px solid var(--xd-white); outline-offset: 2px; }
body.theme-v3 .push-pref-label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--xd-white) !important;
  line-height: 1.3 !important;
}

/* Anleitungen */
body.theme-v3 .push-guide {
  border: 1px solid var(--xd-border);
  border-radius: 6px;
  margin-bottom: 0.75rem;
  overflow: hidden;
}
body.theme-v3 .push-guide summary {
  cursor: pointer;
  list-style: none;
  padding: 0.9rem 1rem;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--xd-white);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
body.theme-v3 .push-guide summary::-webkit-details-marker { display: none; }
body.theme-v3 .push-guide summary::after { content: '+'; font-size: 22px; font-weight: 400; color: var(--xd-red); }
body.theme-v3 .push-guide[open] summary::after { content: '–'; }
body.theme-v3 .push-guide[open] summary { border-bottom: 1px solid rgba(255, 252, 252, 0.12); }
body.theme-v3 .push-guide ol {
  margin: 0;
  padding: 1rem 1rem 0.5rem 2.2rem;
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--xd-white);
}
body.theme-v3 .push-guide ol li { margin-bottom: 0.6rem; }
body.theme-v3 .push-guide ol li::marker { color: var(--xd-red); font-weight: 800; }
body.theme-v3 .push-note {
  margin: 0 1rem 1rem 1rem;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--xd-red);
  background: rgba(248, 14, 104, 0.08);
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  color: var(--xd-white);
}
body.theme-v3 .push-code {
  font-family: ui-monospace, Menlo, monospace;
  font-size: 14px;
  background: rgba(255, 252, 252, 0.1);
  padding: 1px 6px;
  border-radius: 3px;
  white-space: nowrap;
}
body.theme-v3 .push-inline-icon { vertical-align: -3px; color: var(--xd-red); }

/* Hinweis-Banner auf der Terminseite */
body.theme-v3 .push-banner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid var(--xd-red);
  background: rgba(248, 14, 104, 0.1);
  border-radius: 6px;
  padding: 0.6rem 0.6rem 0.6rem 1rem;
  margin-bottom: 1rem;
}
body.theme-v3 .push-banner-link {
  flex: 1;
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--xd-white) !important;
  text-decoration: none;
  line-height: 1.3;
}
body.theme-v3 .push-banner-close {
  background: transparent;
  border: none;
  color: var(--xd-white);
  opacity: 0.6;
  font-size: 16px;
  width: 36px; height: 36px;
  cursor: pointer;
  flex-shrink: 0;
}
body.theme-v3 .push-banner-close:hover { opacity: 1; }

@media (max-width: 767px) {
  body.theme-v3 .push-card { padding: 1.25rem; }
  body.theme-v3 .push-actions .push-btn { width: 100% !important; padding: 1.2rem 1.5rem !important; }
}

/* Admin: Push-Übersicht in der Sängerliste */
body.theme-v3 .push-admin-pill { font-size: 11px !important; white-space: nowrap; }
body.theme-v3 .push-admin-off { opacity: 0.5; }
body.theme-v3 .push-admin-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: -0.25rem 0 1.25rem 0;
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  font-weight: 300;
  color: var(--xd-white);
}
body.theme-v3 .push-admin-summary-bar {
  width: 140px; height: 8px;
  border-radius: 4px;
  background: rgba(255, 252, 252, 0.15);
  overflow: hidden;
}
body.theme-v3 .push-admin-summary-bar span {
  display: block; height: 100%;
  background: var(--xd-green);
}

/* ════════════════════════════════════════════════════════════
   THEME V3 - DIALOG "UNTERLAGEN SENDEN"
   ════════════════════════════════════════════════════════════ */
.docs-modal-overlay {
  position: fixed; inset: 0;
  z-index: 2000;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.docs-modal {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--xd-bg, #261f21);
  border: 1px solid var(--xd-border, rgba(255,252,252,0.35));
  border-radius: 8px;
  padding: 1.75rem 1.5rem 1.5rem;
  color: var(--xd-white, #fffcfc);
}
.docs-modal-close {
  position: absolute; top: 0.6rem; right: 0.6rem;
  width: 40px; height: 40px;
  background: transparent; border: none;
  color: var(--xd-white, #fffcfc);
  font-size: 18px; cursor: pointer; opacity: 0.7;
}
.docs-modal-close:hover { opacity: 1; }
.docs-modal-title {
  font-family: 'Anton', sans-serif !important;
  font-weight: 400 !important;
  font-size: 26px !important;
  letter-spacing: 2px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  margin: 0 0 1.25rem 0 !important;
  color: var(--xd-white, #fffcfc) !important;
}
.docs-modal .form-group { margin-bottom: 1rem; }
.docs-modal label { display: block; margin-bottom: 0.4rem; }
.docs-modal small { opacity: 0.6; font-size: 0.85em; }
.docs-modal input[type="text"],
.docs-modal input[type="email"],
.docs-modal textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255, 252, 252, 0.06) !important;
  color: var(--xd-white, #fffcfc) !important;
  border: 1px solid var(--xd-border, rgba(255,252,252,0.35)) !important;
  border-radius: 4px !important;
  padding: 0.75rem 0.9rem !important;
  font-size: 16px !important; /* kein iOS-Auto-Zoom */
  font-family: 'Outfit', sans-serif !important;
}
.docs-modal textarea { resize: vertical; min-height: 80px; }
.docs-choice {
  display: flex; flex-direction: column; gap: 0.25rem;
  margin: 0.25rem 0 1rem 0;
  padding: 0.5rem 0.9rem;
  border: 1px solid var(--xd-border, rgba(255,252,252,0.35));
  border-radius: 4px;
}
.docs-modal .docs-check {
  display: flex !important; align-items: center; gap: 12px;
  padding: 0.5rem 0; margin: 0; cursor: pointer;
}
.docs-check input { width: 20px; height: 20px; accent-color: var(--xd-green, #0ef883); flex-shrink: 0; }
.docs-hint {
  font-family: 'Outfit', sans-serif;
  font-size: 13px; font-weight: 300; line-height: 1.45;
  opacity: 0.7; margin: 0 0 1.25rem 0;
}
.docs-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
@media (max-width: 767px) {
  .docs-modal-overlay { align-items: flex-end; padding: 0; }
  .docs-modal {
    max-width: none;
    border-radius: 12px 12px 0 0;
    max-height: 92vh; max-height: 92dvh;
    padding: 1.5rem;
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }
  .docs-actions button { width: 100%; padding: 1.2rem 1.5rem; }
}

/* Dezenter Vermerk zu versendeten Unterlagen in der Sängerliste */
body.theme-v3 .singer-docs-note {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  line-height: 16px !important;
  margin-top: 2px;
}
body.theme-v3 .singer-docs-sent {
  color: rgba(14, 248, 131, 0.85) !important;
}
body.theme-v3 .singer-docs-none {
  color: rgba(255, 252, 252, 0.38) !important;
}
