/* ==========================================================================
   Theme: OPPTIMUS
   Eigenständiges, modernes Opptimus-Design. ALLE Regeln unter body.theme-opptimus
   gescoped, damit das Standard-Theme (themes/standard.css) unberührt bleibt.
   Basis-Tokens/Komponenten kommen aus site.css; hier kommt die durchgehende
   Hülle dazu: globale Topbar, aktive Nav-Zustände, Admin-Subnav, Confirm-Modal,
   Hero/Startseite und das Fein-Tuning der gemeinsamen Komponenten.
   ========================================================================== */

body.theme-opptimus {
  /* Lokale Opptimus-Designvariablen (überschreiben nichts Globales). */
  --opp-radius: 14px;
  --opp-radius-sm: 10px;
  --opp-radius-pill: 999px;
  --opp-trans: 160ms ease;
  --opp-topbar-h: 64px;
  --opp-shell: 1080px;
  --opp-gutter: max(16px, calc((100% - var(--opp-shell)) / 2));
  --opp-glass: linear-gradient(180deg, rgba(14, 16, 24, .92), rgba(11, 13, 20, .78));
  --opp-card: linear-gradient(160deg, rgba(23, 25, 36, .96), rgba(17, 19, 28, .96));
}

/* ----------------------------------------------------------------------------
   1. Globale Topbar (Logo + Nav + Hamburger) — Struktur wie Standard, eigener Look
   ---------------------------------------------------------------------------- */
body.theme-opptimus .site-topbar {
  position: sticky;
  top: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: var(--opp-topbar-h);
  padding: 0 clamp(16px, 3.5vw, 34px);
  border-bottom: 1px solid var(--line);
  background: var(--opp-glass);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.theme-opptimus .site-topbar__logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  color: var(--gold-2);
  text-decoration: none;
}

body.theme-opptimus .site-topbar__logo img {
  display: block;
  width: auto;
  height: 40px;
  max-width: 200px;
  object-fit: contain;
}

body.theme-opptimus .site-topbar__name {
  overflow: hidden;
  max-width: 46vw;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .015em;
  line-height: 1;
  color: var(--gold-2);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Topbar-Navigation: dezente Links mit Gold-Active-State (kein Pill-Rahmen). */
body.theme-opptimus .site-topbar .site-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
}

body.theme-opptimus .site-topbar .site-nav a {
  position: relative;
  border: 0;
  border-radius: var(--opp-radius-sm);
  background: transparent;
  padding: 9px 13px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none;
  transition: color var(--opp-trans), background var(--opp-trans);
}

body.theme-opptimus .site-topbar .site-nav a:hover {
  color: var(--text);
  background: rgba(255, 255, 255, .06);
}

body.theme-opptimus .site-topbar .site-nav a[aria-current="page"] {
  color: var(--gold-2);
  background: rgba(215, 182, 74, .12);
}

/* Profil-Link mit Avatar in der Topbar. */
body.theme-opptimus .site-topbar .site-nav a.nav-profil {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.theme-opptimus .site-topbar .site-nav a.nav-profil .user-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  font-size: 12px;
}

/* "Verwaltung" als hervorgehobener Akzent-Eintrag. */
body.theme-opptimus .site-topbar .site-nav a[href="/verwaltung"] {
  color: var(--gold);
  font-weight: 800;
}
body.theme-opptimus .site-topbar .site-nav a[href="/verwaltung"]:hover,
body.theme-opptimus .site-topbar .site-nav a[href="/verwaltung"][aria-current="page"] {
  color: var(--gold-2);
  background: rgba(215, 182, 74, .14);
}

/* Per-View-Nav (im Seitenkopf) ausblenden — die globale Topbar trägt die Navigation. */
body.theme-opptimus .site-header .site-nav {
  display: none;
}

/* Topbar auf Auth-Seiten (Login/Invite) ausblenden. */
body.theme-opptimus .site-topbar:has(+ .auth-shell) {
  display: none;
}

/* ----------------------------------------------------------------------------
   2. Hamburger / Mobile-Menü
   ---------------------------------------------------------------------------- */
body.theme-opptimus .hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: var(--opp-radius-sm);
  background: rgba(255, 255, 255, .04);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
body.theme-opptimus .hamburger span {
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: var(--text);
  transition: var(--opp-trans);
}

@media (max-width: 860px) {
  body.theme-opptimus .hamburger {
    display: flex;
  }
  body.theme-opptimus .site-topbar .site-nav {
    position: absolute;
    top: var(--opp-topbar-h);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    max-height: 0;
    overflow: hidden;
    padding: 0 clamp(16px, 3.5vw, 34px);
    border-bottom: 1px solid transparent;
    background: var(--opp-glass);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: max-height var(--opp-trans), padding var(--opp-trans);
  }
  body.theme-opptimus .site-topbar .site-nav.open {
    max-height: 80vh;
    padding: 10px clamp(16px, 3.5vw, 34px) 16px;
    border-bottom-color: var(--line);
    overflow-y: auto;
  }
  body.theme-opptimus .site-topbar .site-nav a {
    padding: 12px 14px;
    font-size: 15px;
  }
}

/* ----------------------------------------------------------------------------
   3. Per-View Seitenkopf ausblenden — die Marke lebt in der Topbar, der echte
      Seitentitel kommt aus der jeweiligen Inhaltsüberschrift (.tickets-head h2).
   ---------------------------------------------------------------------------- */
body.theme-opptimus .site-shell {
  padding-top: 26px;
}
body.theme-opptimus .site-header {
  display: none;
}
/* Erste Inhaltsüberschrift jeder Seite als schlanker Seitenkopf. */
body.theme-opptimus .tickets-head {
  margin-bottom: 8px;
}
body.theme-opptimus .tickets-head .eyebrow {
  margin-top: 0;
}

/* ----------------------------------------------------------------------------
   4. Confirm-Modal (für destruktive Aktionen, Parität zu Standard)
   ---------------------------------------------------------------------------- */
body.theme-opptimus .tenant-confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, .62);
  backdrop-filter: blur(4px);
}
body.theme-opptimus .tenant-confirm-backdrop.is-open {
  display: grid;
}
body.theme-opptimus .tenant-confirm-dialog {
  width: min(440px, 100%);
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 26px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .5);
}
body.theme-opptimus .tenant-confirm-dialog h2 {
  margin: 0 0 12px;
  font-size: 21px;
}
body.theme-opptimus .tenant-confirm-dialog p {
  margin: 0 0 22px;
  color: var(--muted);
  line-height: 1.6;
}
body.theme-opptimus .tenant-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* ----------------------------------------------------------------------------
   5. Startseite (Hero / Spielplan / Features / Footer) — Theme OPPTIMUS
   ---------------------------------------------------------------------------- */
body.theme-opptimus .opp-home {
  padding-top: 0;
}
body.theme-opptimus .opp-section {
  margin-top: clamp(40px, 7vw, 84px);
}
body.theme-opptimus .opp-section__head {
  max-width: 640px;
  margin: 0 auto clamp(20px, 3vw, 32px);
  text-align: center;
}
body.theme-opptimus .opp-section__head .eyebrow {
  margin: 0 0 8px;
}
body.theme-opptimus .opp-section__head h2 {
  margin: 0 0 10px;
}
body.theme-opptimus .opp-section__head h2 span {
  background: linear-gradient(120deg, var(--gold), var(--gold-2));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--gold-2);
}
body.theme-opptimus .opp-section__desc {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

/* --- Hero --- */
body.theme-opptimus .opp-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(460px, 72vh, 700px);
  margin-top: clamp(20px, 4vw, 40px);
  border: 1px solid var(--line);
  border-radius: 20px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 8%, rgba(240, 215, 122, .18), transparent 22rem),
    radial-gradient(circle at 12% 90%, rgba(33, 130, 190, .22), transparent 24rem),
    var(--opp-card);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .45);
}
/* Wallpaper prominent (gleiche Größe/cover-Logik wie Standard, eigener Look). */
body.theme-opptimus .opp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--opp-hero-bg, none);
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  pointer-events: none;
}
/* Scrim für Lesbarkeit der Hero-Texte über dem Wallpaper. */
body.theme-opptimus .opp-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 9, 14, .58), rgba(8, 9, 14, .42) 42%, rgba(8, 9, 14, .9));
  pointer-events: none;
}
body.theme-opptimus .opp-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(40px, 8vw, 88px) clamp(24px, 5vw, 56px);
  text-align: center;
}
body.theme-opptimus .opp-hero__badge {
  display: inline-block;
  margin: 0 0 18px;
  border: 1px solid rgba(215, 182, 74, .4);
  border-radius: var(--opp-radius-pill);
  padding: 7px 16px;
  color: var(--gold-2);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body.theme-opptimus .opp-hero__title {
  margin: 0 0 16px;
  font-size: clamp(36px, 7vw, 68px);
  line-height: 1.03;
  background: linear-gradient(120deg, var(--text) 30%, var(--gold-2));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
body.theme-opptimus .opp-hero__subtitle {
  max-width: 46rem;
  margin: 0 auto 30px;
  color: var(--muted);
  font-size: clamp(16px, 2.2vw, 19px);
  line-height: 1.6;
}
body.theme-opptimus .opp-hero__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-bottom: 38px;
}
body.theme-opptimus .opp-hero__stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(20px, 5vw, 54px);
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
body.theme-opptimus .opp-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.theme-opptimus .opp-stat__num {
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 800;
  color: var(--gold-2);
  line-height: 1;
}
body.theme-opptimus .opp-stat__label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* --- Buttons (Theme-eigen) --- */
body.theme-opptimus .opp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: var(--opp-radius-pill);
  padding: 13px 26px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .02em;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--opp-trans), filter var(--opp-trans), background var(--opp-trans), border-color var(--opp-trans);
}
body.theme-opptimus .opp-btn--primary {
  border: 1px solid transparent;
  background: linear-gradient(120deg, var(--gold), var(--gold-2));
  color: #1a1505;
}
body.theme-opptimus .opp-btn--primary:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}
body.theme-opptimus .opp-btn--ghost {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .04);
  color: var(--text);
}
body.theme-opptimus .opp-btn--ghost:hover {
  border-color: rgba(215, 182, 74, .5);
  color: var(--gold-2);
}

/* --- Spielplan --- */
body.theme-opptimus .opp-schedule__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
  gap: 18px;
}
body.theme-opptimus .opp-show {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 20px 172px 20px 24px;
  font: inherit;
  text-align: left;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color var(--opp-trans), transform var(--opp-trans), background var(--opp-trans);
  overflow: hidden;
}
body.theme-opptimus .opp-show:hover {
  border-color: rgba(215, 182, 74, .5);
  transform: translateY(-2px);
}
body.theme-opptimus .opp-show[aria-current="true"] {
  border-color: var(--gold);
  background:
    linear-gradient(160deg, rgba(215, 182, 74, .12), rgba(215, 182, 74, .04)),
    var(--opp-card);
}
body.theme-opptimus .opp-show.is-locked {
  border-color: rgba(150, 156, 174, .32);
  background:
    linear-gradient(160deg, rgba(150, 156, 174, .12), rgba(150, 156, 174, .04)),
    var(--opp-card);
}
body.theme-opptimus .opp-show.is-locked:hover {
  border-color: rgba(215, 182, 74, .42);
}
body.theme-opptimus .opp-show__locked-banner {
  position: absolute;
  left: -42px;
  top: 16px;
  z-index: 4;
  width: 190px;
  padding: 5px 0;
  transform: rotate(-22deg);
  background: rgba(80, 80, 90, .96);
  color: #fff;
  text-align: center;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .36), inset 0 0 0 1px rgba(255, 255, 255, .12);
  pointer-events: none;
}
body.theme-opptimus .opp-show__cover {
  flex: 0 0 auto;
  width: 66px;
  height: 94px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--panel-2);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
}
body.theme-opptimus .opp-show__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.theme-opptimus .opp-show__date {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 96px;
  padding: 12px 8px;
  border-radius: var(--opp-radius-sm);
  background: rgba(215, 182, 74, .12);
  text-align: center;
}
body.theme-opptimus .opp-show__day {
  font-size: 15px;
  font-weight: 800;
  color: var(--gold-2);
}
body.theme-opptimus .opp-show__time {
  font-size: 24px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.1;
}
body.theme-opptimus .opp-show__body {
  flex: 1 1 auto;
  min-width: 160px;
}
body.theme-opptimus .opp-show__body h3 {
  margin: 0 0 6px;
  font-size: 21px;
  line-height: 1.2;
  color: var(--text);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal;
}
body.theme-opptimus .opp-show__body p {
  margin: 0;
  color: #c7cbd9;
  font-size: 15px;
}
body.theme-opptimus .opp-show__cta {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  min-width: 116px;
  border: 1px solid rgba(215, 182, 74, .45);
  border-radius: var(--opp-radius-pill);
  padding: 11px 18px;
  color: var(--gold-2);
  font-size: 15px;
  font-weight: 800;
  text-align: center;
}
body.theme-opptimus .opp-show__cta.is-locked {
  border-color: rgba(150, 156, 174, .45);
  color: #d8dbe6;
  background: rgba(255, 255, 255, .04);
}
/* Top-Programm: Auto-Status der Vorführung (läuft / vorbei). */
body.theme-opptimus .opp-show.is-running { border-color: color-mix(in srgb, #27c964 40%, var(--border)); }
body.theme-opptimus .opp-show.is-over { opacity: .6; }
/* Rechte Pille (CTA-Position) als Status: läuft (grün) / vorbei (grau, nicht klickbar). */
body.theme-opptimus .opp-show__cta.is-running {
  border-color: color-mix(in srgb, #27c964 55%, transparent);
  color: #27c964;
  background: color-mix(in srgb, #27c964 12%, transparent);
}
body.theme-opptimus .opp-show__cta.is-over {
  border-color: rgba(150, 156, 174, .45);
  color: #d8dbe6;
  background: rgba(255, 255, 255, .04);
}
/* Spielplan: Cover-Thumbnail links im Termin. */
body.theme-opptimus .opp-sched-thumb {
  flex: 0 0 auto;
  width: 46px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--panel-2, rgba(255, 255, 255, .05));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .3);
}
body.theme-opptimus .opp-sched-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.theme-opptimus .opp-sched-thumb__ph { font-size: 22px; opacity: .5; }
body.theme-opptimus .opp-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}

/* --- Spielplan / Alle Termine --- */
body.theme-opptimus .opp-days {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}
body.theme-opptimus .opp-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 78px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--gold) 18%, var(--border));
  background: color-mix(in srgb, var(--gold) 4%, transparent);
  color: var(--text);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
body.theme-opptimus .opp-day:hover { border-color: color-mix(in srgb, var(--gold) 45%, var(--border)); }
body.theme-opptimus .opp-day.is-active {
  border-color: var(--gold);
  background: var(--gold-dim);
  color: var(--gold-light);
}
body.theme-opptimus .opp-day__name {
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.theme-opptimus .opp-day__num {
  font-family: 'Cinzel', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--gold-light);
}
body.theme-opptimus .opp-sched-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body.theme-opptimus .opp-sched-item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--gold) 14%, var(--border));
  background: color-mix(in srgb, var(--gold) 4%, transparent);
}
body.theme-opptimus .opp-sched-item.is-clickable {
  cursor: pointer;
  touch-action: manipulation;
}
body.theme-opptimus .opp-sched-item.is-clickable:hover {
  border-color: color-mix(in srgb, var(--gold) 42%, var(--border));
  background: color-mix(in srgb, var(--gold) 8%, transparent);
}
body.theme-opptimus .opp-sched-item.is-clickable:active {
  transform: translateY(1px);
}
body.theme-opptimus .opp-sched-time {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 92px;
  font-family: 'Cinzel', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--gold-light);
}
body.theme-opptimus .opp-sched-time small {
  font-family: inherit;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted, var(--gold-light));
  opacity: .8;
}
body.theme-opptimus .opp-sched-info { flex: 1 1 auto; min-width: 0; }
body.theme-opptimus .opp-sched-info h3 {
  margin: 0 0 2px;
  font-family: 'Cinzel', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
body.theme-opptimus .opp-sched-info p {
  margin: 0;
  font-size: 13px;
  color: var(--muted, var(--gold-light));
  opacity: .85;
}
body.theme-opptimus .opp-sched-book { flex: 0 0 auto; }
body.theme-opptimus .opp-sched-book:disabled { opacity: .45; cursor: not-allowed; }
/* Auto-Status der Vorführung: „läuft gerade" (grün, dezent pulsierend) / „vorbei" (gedimmt). */
body.theme-opptimus .opp-sched-status {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 8px;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  vertical-align: middle;
}
body.theme-opptimus .opp-sched-status.is-running {
  color: #27c964;
  background: color-mix(in srgb, #27c964 16%, transparent);
  border: 1px solid color-mix(in srgb, #27c964 40%, transparent);
  animation: oppSchedRunningPulse 2.2s ease-in-out infinite;
}
body.theme-opptimus .opp-sched-status.is-past {
  color: var(--muted, #888);
  background: rgba(255, 255, 255, .05);
  border: 1px solid var(--border);
}
body.theme-opptimus .opp-sched-item.is-past { opacity: .62; }
body.theme-opptimus .opp-sched-item.is-running {
  border-color: color-mix(in srgb, #27c964 38%, var(--border));
  background: color-mix(in srgb, #27c964 7%, transparent);
}
@keyframes oppSchedRunningPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .6; }
}
body.theme-opptimus .opp-sched-empty {
  text-align: center;
  padding: 36px 10px;
  color: var(--muted, var(--gold-light));
}
@media (max-width: 600px) {
  body.theme-opptimus .opp-sched-item { flex-wrap: wrap; gap: 10px; }
  body.theme-opptimus .opp-sched-time { min-width: 0; flex-direction: row; align-items: baseline; gap: 8px; font-size: 17px; }
  body.theme-opptimus .opp-sched-book { width: 100%; }
}

/* --- Features --- */
body.theme-opptimus .opp-features__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
body.theme-opptimus .opp-feature {
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 34px 30px;
  text-align: center;
}
body.theme-opptimus .opp-feature__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 66px;
  height: 66px;
  margin-bottom: 18px;
  border-radius: 18px;
  background: rgba(215, 182, 74, .12);
  color: var(--gold-2);
  font-size: 27px;
  font-weight: 800;
}
body.theme-opptimus .opp-feature h3 {
  margin: 0 0 10px;
  font-size: 21px;
}
body.theme-opptimus .opp-feature p {
  margin: 0;
  color: #c7cbd9;
  font-size: 15px;
  line-height: 1.65;
}

/* --- Footer (Startseite) --- */
body.theme-opptimus .opp-footer {
  margin-top: clamp(50px, 8vw, 96px);
  border-top: 1px solid var(--line);
  background: rgba(8, 9, 14, .6);
}
body.theme-opptimus .opp-footer__inner {
  width: min(1080px, calc(100% - 32px));
  margin: 0 auto;
  padding: clamp(34px, 5vw, 56px) 0 40px;
}
body.theme-opptimus .opp-footer__brand {
  max-width: 40rem;
  margin: 0 0 30px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
}
body.theme-opptimus .opp-footer__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 28px;
  margin-bottom: 30px;
}
body.theme-opptimus .opp-footer__col h4 {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gold-2);
}
body.theme-opptimus .opp-footer__col a {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
  transition: color var(--opp-trans);
}
body.theme-opptimus .opp-footer__col a:hover {
  color: var(--text);
}
body.theme-opptimus .opp-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}
body.theme-opptimus .opp-footer__bottom a {
  color: var(--muted);
  text-decoration: none;
}
body.theme-opptimus .opp-footer__bottom a:hover {
  color: var(--gold-2);
}

@media (max-width: 720px) {
  body.theme-opptimus .opp-show {
    flex-wrap: wrap;
    padding: 18px 20px;
  }
  body.theme-opptimus .opp-show__cta {
    position: static;
    transform: none;
    margin-left: auto;
  }
  body.theme-opptimus .opp-show__body {
    min-width: min(220px, 100%);
  }
}

/* ----------------------------------------------------------------------------
   6. Tickets/Buchung — Showtime-Karten + Sitzplan/Leinwand: Optik wie Standard
      Standard-CSS (themes/standard.css, /tickets-Block) re-gescoped auf
      body.theme-opptimus, damit /tickets UND der Inline-Sitzplan der Startseite
      identisch zur Standard-Optik aussehen. Standard-Tokens lokal aliasiert.
   ---------------------------------------------------------------------------- */
body.theme-opptimus {
  --gold-light: var(--gold-2);
  --gold-dim: rgba(215, 182, 74, .16);
  --border: var(--line);
  --card: var(--panel);
  --card-hover: var(--panel-2);
  --surface: var(--panel-2);
  --radius: 10px;
  --radius-lg: 14px;
  --shadow: 0 28px 80px rgba(0, 0, 0, .5);
  --trans: 160ms ease;
  --info: #8cc6f0;
  --success: #55d88a;
  --red: #ff8d96;
  --red-dim: rgba(230, 57, 70, .16);
}

body.theme-opptimus .showtime-list{
display:grid;
gap:16px;
max-width:1080px;
margin:20px auto 0;
padding:0;
}
body.theme-opptimus .showtime-card{
position:relative;
display:grid;
grid-template-columns:72px 150px minmax(0,1fr) auto auto;
gap:18px;
align-items:center;
overflow:hidden;
border:1px solid var(--border);
border-radius:var(--radius-lg);
background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--surface) 88%,transparent));
padding:18px;
box-shadow:0 18px 48px color-mix(in srgb,var(--bg) 64%,transparent);
transition:var(--trans);
}
body.theme-opptimus .showtime-card::before{
content:"";
position:absolute;
inset:0 auto 0 0;
width:3px;
background:var(--ticket-fill-color, var(--gold));
opacity:1;
}
body.theme-opptimus .showtime-card.is-green{ --ticket-fill-color:#55d88a; }
body.theme-opptimus .showtime-card.is-yellow{ --ticket-fill-color:#e6bc3a; }
body.theme-opptimus .showtime-card.is-orange{ --ticket-fill-color:#ff9f43; }
body.theme-opptimus .showtime-card.is-red{ --ticket-fill-color:#ff4f5e; }
body.theme-opptimus .showtime-card:not(.is-past):hover{
border-color:color-mix(in srgb,var(--gold) 35%,var(--border));
background:linear-gradient(145deg,var(--card-hover),var(--card));
transform:translateY(-2px);
}
body.theme-opptimus .showtime-card.is-past{
opacity:.5;
filter:saturate(.65);
}
body.theme-opptimus .showtime-cover{
width:72px;
height:104px;
overflow:hidden;
display:flex;
align-items:center;
justify-content:center;
border:1px solid color-mix(in srgb,var(--gold) 24%,transparent);
border-radius:12px;
background:linear-gradient(145deg,rgba(201,162,39,.18),rgba(255,255,255,.04));
color:var(--gold);
font-family:'Cinzel',serif;
font-size:28px;
font-weight:800;
box-shadow:0 14px 32px rgba(0,0,0,.34);
}
body.theme-opptimus .showtime-cover img{
width:100%;
height:100%;
display:block;
object-fit:cover;
}
body.theme-opptimus .showtime-date{
display:grid;
gap:5px;
border-right:1px solid var(--border);
padding:3px 20px 3px 4px;
}
body.theme-opptimus .showtime-date strong{
color:var(--muted);
font-size:12px;
font-weight:700;
letter-spacing:.1em;
text-transform:uppercase;
}
body.theme-opptimus .showtime-date span{
color:var(--gold);
font-family:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
font-size:42px;
line-height:.95;
letter-spacing:.03em;
}
body.theme-opptimus .showtime-main{
min-width:0;
}
body.theme-opptimus .showtime-main h3{
margin:0;
overflow:hidden;
color:var(--text);
font-family:'Cinzel',serif;
font-size:clamp(18px,2.4vw,26px);
font-weight:700;
line-height:1.15;
text-overflow:ellipsis;
white-space:nowrap;
}
body.theme-opptimus .showtime-meta{
display:flex;
flex-wrap:wrap;
gap:8px;
margin-top:12px;
}
body.theme-opptimus .showtime-meta span{
display:inline-flex;
align-items:center;
min-height:28px;
border:1px solid var(--border);
border-radius:999px;
background:color-mix(in srgb,var(--text) 5%,transparent);
color:var(--muted);
font-size:12px;
font-weight:700;
padding:5px 10px;
}
body.theme-opptimus .showtime-meta .ticket-show-type.is-3d{
border-color:rgba(80,170,255,.95);
background:#69b7ff;
color:#07111d;
box-shadow:0 0 0 1px rgba(80,170,255,.22), 0 8px 20px rgba(80,170,255,.22);
}
body.theme-opptimus .showtime-card.is-past .showtime-meta span{
background:color-mix(in srgb,var(--text) 3%,transparent);
}
body.theme-opptimus .ticket-fill-pill{
--fill-color:#55d88a;
display:inline-grid;
grid-template-columns:auto auto;
gap:4px 8px;
align-items:center;
min-width:112px;
padding:7px 9px;
border:1px solid var(--fill-color);
border-radius:14px;
background:rgba(0,0,0,.16);
color:var(--fill-color);
font-size:11px;
font-weight:950;
letter-spacing:.06em;
line-height:1;
text-transform:uppercase;
box-shadow:0 0 18px color-mix(in srgb,var(--fill-color) 16%,transparent);
}
body.theme-opptimus .ticket-fill-pill::before{
content:"";
width:7px;
height:7px;
border-radius:50%;
background:currentColor;
box-shadow:0 0 10px currentColor;
}
body.theme-opptimus .ticket-fill-pill.is-green{ --fill-color:#55d88a; }
body.theme-opptimus .ticket-fill-pill.is-yellow{ --fill-color:#e6bc3a; }
body.theme-opptimus .ticket-fill-pill.is-orange{ --fill-color:#ff9f43; }
body.theme-opptimus .ticket-fill-pill.is-red{ --fill-color:#ff4f5e; }
body.theme-opptimus .ticket-fill-count{
grid-column:2;
}
body.theme-opptimus .ticket-fill-pct{
grid-column:1 / -1;
font-size:10px;
opacity:.92;
}
body.theme-opptimus .ticket-fill-bar{
grid-column:1 / -1;
height:4px;
overflow:hidden;
border-radius:999px;
background:rgba(255,255,255,.09);
}
body.theme-opptimus .ticket-fill-bar i{
display:block;
width:var(--ticket-fill,0%);
height:100%;
border-radius:inherit;
background:currentColor;
}
body.theme-opptimus .showtime-action{
min-width:150px;
border:1px solid color-mix(in srgb,var(--gold) 58%,transparent);
border-radius:999px;
background:linear-gradient(135deg,var(--gold),var(--gold-light));
color:var(--bg);
cursor:pointer;
font:inherit;
font-size:13px;
font-weight:800;
letter-spacing:.08em;
padding:12px 18px;
text-transform:uppercase;
transition:var(--trans);
white-space:nowrap;
}
body.theme-opptimus .showtime-action:not(:disabled):hover{
box-shadow:0 8px 28px color-mix(in srgb,var(--gold) 32%,transparent);
transform:translateY(-1px);
}
body.theme-opptimus .showtime-action:disabled{
border-color:var(--border);
background:color-mix(in srgb,var(--text) 5%,transparent);
color:var(--muted);
cursor:not-allowed;
box-shadow:none;
opacity:.76;
}
body.theme-opptimus .seat-modal[hidden]{
display:none;
}
body.theme-opptimus .seat-modal{
position:fixed;
inset:0;
z-index:1000;
display:grid;
place-items:center;
padding:clamp(16px,3vw,32px);
background:color-mix(in srgb,var(--bg) 80%,transparent);
backdrop-filter:blur(10px);
}
body.theme-opptimus .seat-dialog{
position:relative;
width:min(980px,100%);
max-height:min(820px,calc(100vh - 40px));
overflow:auto;
border:1px solid color-mix(in srgb,var(--gold) 26%,var(--border));
border-radius:var(--radius-lg);
background:
radial-gradient(circle at 50% 34%,color-mix(in srgb,var(--gold) 12%,transparent),transparent 38%),
linear-gradient(180deg,color-mix(in srgb,var(--card) 96%,transparent),color-mix(in srgb,var(--surface) 90%,transparent));
box-shadow:var(--shadow);
padding:clamp(22px,4vw,42px);
}
body.theme-opptimus .seat-dialog::before{
content:"";
position:absolute;
inset:86px 32px 32px;
z-index:0;
border:1px solid color-mix(in srgb,var(--gold) 14%,transparent);
border-radius:24px;
background:
linear-gradient(180deg,color-mix(in srgb,var(--text) 4%,transparent),transparent 42%),
radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--gold) 9%,transparent),transparent 56%);
pointer-events:none;
}
body.theme-opptimus .seat-dialog > *{
position:relative;
z-index:1;
}
body.theme-opptimus .seat-dialog h2{
margin:0;
padding-right:44px;
font-family:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
font-size:clamp(42px,6vw,74px);
font-weight:400;
line-height:.95;
letter-spacing:.02em;
text-transform:uppercase;
}
body.theme-opptimus .seat-close{
position:absolute;
top:18px;
right:18px;
width:40px;
height:40px;
display:grid;
place-items:center;
border:1px solid var(--border);
border-radius:999px;
background:color-mix(in srgb,var(--text) 7%,transparent);
color:var(--text);
cursor:pointer;
font-size:28px;
line-height:1;
transition:var(--trans);
}
body.theme-opptimus .seat-close:hover{
border-color:color-mix(in srgb,var(--gold) 45%,var(--border));
color:var(--gold-light);
}
body.theme-opptimus .seat-modal-meta{
margin:12px 0 30px;
color:var(--gold);
font-size:12px;
font-weight:700;
letter-spacing:.12em;
text-transform:uppercase;
}
body.theme-opptimus .screen-preview{
position:relative;
width:100%;
height:100%;
border-radius:10px 10px 28px 28px;
overflow:hidden;
background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.015));
transform:perspective(760px) rotateX(-11deg);
transform-origin:bottom center;
box-shadow:0 24px 55px rgba(0,0,0,.46),0 0 0 1px rgba(201,162,39,.26),0 0 58px rgba(201,162,39,.14);
opacity:0;
transition:opacity .25s ease,background-image .25s ease;
}
body.theme-opptimus .screen-stage{position:relative;width:min(620px,76%);aspect-ratio:21/8;margin:0 auto 12px;}
body.theme-opptimus .screen-preview.has-cover{
opacity:1;
background-image:linear-gradient(180deg,rgba(5,5,10,.18),rgba(5,5,10,.58)),var(--screen-cover);
background-size:var(--screen-cover-size,130%) auto;
background-position:var(--screen-cover-x,50%) var(--screen-cover-y,50%);
}
body.theme-opptimus .screen-preview.has-trailer{opacity:1;background:#000;background-image:none!important;}
body.theme-opptimus .screen-preview iframe{position:absolute;left:0;top:50%;width:100%;height:148%;border:0;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .35s ease;background:#000;}
body.theme-opptimus .screen-preview.has-trailer.trailer-ready iframe{opacity:1;}
body.theme-opptimus .screen-curtain{position:absolute;left:-7%;right:-7%;top:-20%;bottom:-9%;z-index:8;overflow:hidden;pointer-events:none;opacity:1;border-radius:2px;background:linear-gradient(180deg,rgba(15,0,2,.96) 0 8%,rgba(74,5,9,.86) 9% 18%,rgba(20,0,3,.38) 19%,transparent 36%);box-shadow:0 18px 34px rgba(0,0,0,.46),inset 0 1px 0 rgba(255,220,160,.16);transition:opacity .18s ease;}
body.theme-opptimus .screen-curtain::before,body.theme-opptimus .screen-curtain::after{content:"";position:absolute;top:0;bottom:0;width:54%;background:repeating-linear-gradient(90deg,#2e0205 0 4px,#4f050c 7px,#7c0c16 11px,#b9272d 16px,#d9463f 20px,#8b1018 25px,#3a0307 30px),linear-gradient(180deg,rgba(255,230,175,.18),transparent 24%,rgba(0,0,0,.58));box-shadow:inset 0 0 42px rgba(0,0,0,.62),inset 0 16px 22px rgba(255,255,255,.09),0 0 20px rgba(0,0,0,.35);transition:transform 1.45s cubic-bezier(.72,.01,.2,1) .12s;}
body.theme-opptimus .screen-curtain::before{left:0;border-right:1px solid rgba(255,210,150,.22);}
body.theme-opptimus .screen-curtain::after{right:0;border-left:1px solid rgba(255,210,150,.22);}
/* curtain-open wird AUSSCHLIESSLICH vom Pi-konformen animation-Block weiter unten
   gesteuert (seatCurtainStoffdruckLeft/Right). Der frueher hier stehende
   translateX(-92%)-Block hat diese Animation ueberschrieben -> Vorhang lief nie. */
body.theme-opptimus .screen-stage.curtain-reset .screen-curtain,body.theme-opptimus .screen-stage.curtain-reset .screen-curtain::before,body.theme-opptimus .screen-stage.curtain-reset .screen-curtain::after{transition:none!important;}
body.theme-opptimus .screen-sound-hint{position:absolute;left:50%;top:50%;z-index:7;width:auto;min-width:156px;height:54px;padding:0 18px;display:none;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(255,255,255,.36);border-radius:999px;color:#fff;background:rgba(0,0,0,.68);box-shadow:0 10px 28px rgba(0,0,0,.45),0 0 0 1px rgba(201,162,39,.22);transform:translate(-50%,-50%);cursor:pointer;backdrop-filter:blur(8px);transition:opacity .22s ease,transform .22s ease;}
body.theme-opptimus .screen-sound-hint::before{content:"\1F507";font-size:24px;line-height:1;}
body.theme-opptimus .screen-sound-hint::after{content:attr(data-label);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
body.theme-opptimus .screen-stage.needs-sound .screen-sound-hint{display:flex;}
body.theme-opptimus .screen-stage.curtain-open.needs-sound .screen-sound-hint{opacity:.92;}
body.theme-opptimus .screen-stage.sound-hint-hidden .screen-sound-hint{display:none!important;}
body.theme-opptimus .screen-stage:not(.curtain-open) .screen-sound-hint{opacity:0;transform:translate(-50%,-50%) scale(.92);}
body.theme-opptimus .screen-preview::before{
content:"";
position:absolute;
inset:0;
z-index:2;
background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.18),transparent 42%),linear-gradient(90deg,rgba(0,0,0,.35),transparent 18%,transparent 82%,rgba(0,0,0,.35));
mix-blend-mode:screen;
pointer-events:none;
}
body.theme-opptimus .screen-preview::after{
content:"";
position:absolute;
inset:auto 0 0;
z-index:3;
height:34%;
background:linear-gradient(0deg,rgba(0,0,0,.62),transparent);
pointer-events:none;
}
body.theme-opptimus .screen-preview.has-trailer::before,
body.theme-opptimus .screen-preview.has-trailer::after{content:none;display:none;}
body.theme-opptimus .screen-line{
position:relative;
width:80%;
margin:0 auto 40px;
height:8px;
padding:0;
border:0;
border-radius:50%;
background:linear-gradient(90deg,transparent,var(--gold-light),transparent);
box-shadow:0 0 40px rgba(201,162,39,.4),0 0 80px rgba(201,162,39,.15);
color:transparent;
font-size:0;
font-weight:400;
line-height:1;
letter-spacing:.3em;
text-align:center;
text-transform:uppercase;
}
body.theme-opptimus .screen-line::before{
content:"";
position:absolute;
top:-30px;
left:10%;
right:10%;
height:30px;
background:linear-gradient(0deg,rgba(201,162,39,.06),transparent);
}
body.theme-opptimus .screen-line::after{
content:attr(data-label);
position:absolute;
top:16px;
left:50%;
transform:translateX(-50%);
color:var(--muted);
font-size:10px;
font-weight:400;
letter-spacing:.3em;
line-height:1;
}
body.theme-opptimus .seat-dialog .seat-grid{
width:max-content;
max-width:100%;
margin:0 auto;
gap:12px;
margin-top:0;
padding:18px 22px 20px;
border:1px solid color-mix(in srgb,var(--text) 8%,transparent);
border-radius:18px;
background:color-mix(in srgb,var(--bg) 28%,transparent);
box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 5%,transparent);
}
body.theme-opptimus .seat-dialog .seat-grid.free-layout{
display:grid;
grid-template-columns:repeat(var(--cols),minmax(40px,58px));
grid-template-rows:repeat(var(--rows),minmax(38px,52px));
width:min(100%, calc((var(--cols) * 58px) + ((var(--cols) - 1) * 10px) + 44px));
gap:10px;
aspect-ratio:var(--map-aspect);
align-items:stretch;
justify-content:center;
overflow:auto;
}
body.theme-opptimus .seat-dialog .seat-row{
justify-content:center;
}
body.theme-opptimus .seat-dialog .seat-row > span{
width:22px;
color:var(--muted);
font-size:11px;
font-weight:800;
letter-spacing:.08em;
text-align:center;
}
body.theme-opptimus .seat-dialog .seat-row > div{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:8px;
}
body.theme-opptimus .seat-btn{
position:relative;
width:54px;
height:46px;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
border:2px solid color-mix(in srgb,var(--text) 15%,transparent);
border-radius:12px 12px 6px 6px;
background:color-mix(in srgb,var(--text) 7%,transparent);
color:var(--text);
cursor:pointer;
font:inherit;
font-size:12px;
font-weight:800;
line-height:1;
transition:var(--trans);
}
body.theme-opptimus .seat-grid.free-layout .seat-btn{
width:auto;
height:auto;
min-width:0;
min-height:0;
}
body.theme-opptimus .seat-grid.free-layout .couch-group .seat-btn{
border:0;
border-radius:0;
background:transparent;
box-shadow:none;
}
body.theme-opptimus .seat-grid.free-layout .couch-group .seat-btn::after{
display:none;
}
body.theme-opptimus .seat-grid.free-layout .couch-group .seat-btn:not(:disabled):hover{
transform:none;
}
body.theme-opptimus .seat-grid.free-layout .folding-seat{
flex-direction:column;
gap:2px;
}
body.theme-opptimus .seat-grid.free-layout .folding-seat .seat-icon{
font-size:17px;
line-height:1;
}
body.theme-opptimus .seat-grid.free-layout .folding-seat .seat-num{
font-size:9px;
font-weight:800;
}
/* Sitz-Reihenfarben (wie Standard-Theme): Hintergrund/Rahmen aus der pro Reihe
   inline gesetzten --seat-color. Ohne diese Regel sehen im Opptimus-Theme ALLE
   Plaetze (auch Klappstuehle) gleich grau aus. Ausgewaehlt/Besetzt/Reserviert
   bleiben unberuehrt (kommen als is-selected/is-taken/is-held spaeter). */
body.theme-opptimus .seat-btn.custom-seat{
background:color-mix(in srgb,var(--seat-color) 18%,transparent);
border-color:color-mix(in srgb,var(--seat-color) 45%,transparent);
}
body.theme-opptimus .seat-btn.custom-seat:not(:disabled):hover{
background:color-mix(in srgb,var(--seat-color) 32%,transparent);
border-color:var(--seat-color);
}
body.theme-opptimus .seat-btn::after{
content:"";
position:absolute;
left:4px;
right:4px;
bottom:-3px;
height:3px;
border-radius:0 0 4px 4px;
background:inherit;
opacity:.5;
}
body.theme-opptimus .seat-btn:not(:disabled):hover{
border-color:var(--gold);
background:var(--gold-dim);
transform:translateY(-3px) scale(1.06);
box-shadow:0 8px 18px color-mix(in srgb,var(--gold) 26%,transparent);
}
body.theme-opptimus .seat-btn.is-selected{
border-color:var(--gold-light);
background:linear-gradient(135deg,var(--gold),var(--gold-light));
color:var(--bg);
transform:translateY(-3px) scale(1.06);
box-shadow:0 8px 22px color-mix(in srgb,var(--gold) 36%,transparent);
}
body.theme-opptimus .seat-btn.is-taken{
border-color:color-mix(in srgb,var(--text) 7%,transparent);
background:color-mix(in srgb,var(--text) 4%,transparent);
color:var(--muted);
cursor:not-allowed;
opacity:.46;
text-decoration:none;
}
body.theme-opptimus .seat-btn.is-held{
border-color:color-mix(in srgb,var(--gold) 72%,transparent);
background:var(--gold-dim);
color:var(--gold-light);
cursor:not-allowed;
opacity:.82;
box-shadow:0 0 18px color-mix(in srgb,var(--gold) 28%,transparent);
}
body.theme-opptimus .seat-btn.is-locked{
border-color:color-mix(in srgb,var(--text) 9%,transparent);
background:color-mix(in srgb,var(--text) 4%,transparent);
color:var(--muted);
cursor:not-allowed;
opacity:.42;
box-shadow:none;
}
body.theme-opptimus .seat-btn .seat-av{
width:32px;
height:32px;
border:2px solid color-mix(in srgb,var(--text) 48%,transparent);
border-radius:50%;
object-fit:cover;
}
body.theme-opptimus .seat-btn .seat-emoji{
width:32px;
height:32px;
display:flex;
align-items:center;
justify-content:center;
border:2px solid color-mix(in srgb,var(--text) 40%,transparent);
border-radius:50%;
background:color-mix(in srgb,var(--text) 10%,transparent);
font-size:18px;
line-height:1;
}
body.theme-opptimus .seat-btn .seat-hold-mark{
display:block;
font-size:18px;
line-height:1;
}
body.theme-opptimus .seat-btn .seat-hold-seat{
display:block;
margin-top:2px;
color:var(--gold-light);
font-size:9px;
font-weight:800;
line-height:1;
}
body.theme-opptimus .seat-actions{
display:flex;
align-items:center;
justify-content:space-between;
gap:18px;
margin-top:30px;
border-top:1px solid var(--border);
padding-top:20px;
}
body.theme-opptimus .seat-actions > div{
min-height:44px;
display:flex;
align-items:center;
border:1px solid var(--border);
border-radius:10px;
background:color-mix(in srgb,var(--text) 4%,transparent);
color:var(--muted);
font-size:13px;
font-weight:700;
padding:10px 14px;
}
body.theme-opptimus .seat-actions button{
border:0;
border-radius:999px;
background:linear-gradient(135deg,var(--gold),var(--gold-light));
color:var(--bg);
cursor:pointer;
font:inherit;
font-size:13px;
font-weight:800;
letter-spacing:.08em;
padding:13px 20px;
text-transform:uppercase;
transition:var(--trans);
}
body.theme-opptimus .seat-actions button:not(:disabled):hover{
box-shadow:0 8px 28px color-mix(in srgb,var(--gold) 32%,transparent);
transform:translateY(-1px);
}
body.theme-opptimus .seat-actions button:disabled{
cursor:not-allowed;
filter:grayscale(1);
opacity:.45;
}
body.theme-opptimus .seat-message{
min-height:24px;
margin-top:14px;
color:var(--gold-light);
font-size:13px;
font-weight:800;
}
body.theme-opptimus .seat-message a{
color:var(--gold-light);
text-decoration:underline;
text-underline-offset:3px;
}
/* ── Warenkorb (Mehrfach-Buchung) ─────────────────────────────────────── */
body.theme-opptimus .opp-cart{
margin:26px auto 0;
max-width:min(820px,100%);
border:1px solid color-mix(in srgb,var(--gold) 22%,var(--border));
border-radius:18px;
padding:22px 24px;
background:
radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--gold) 8%,transparent),transparent 60%),
var(--panel);
box-shadow:0 18px 44px color-mix(in srgb,var(--bg) 60%,transparent);
}
body.theme-opptimus .opp-cart__title{
margin:0 0 16px;
font-family:'Cinzel',serif;
font-size:18px;
font-weight:700;
letter-spacing:.04em;
color:var(--text);
}
body.theme-opptimus .opp-cart__items{
display:flex;
flex-direction:column;
gap:12px;
}
body.theme-opptimus .opp-cart .seats-empty{
padding:18px 0;
text-align:center;
color:var(--muted);
font-size:13px;
font-weight:700;
}
body.theme-opptimus .opp-cart .cart-group{
border:1px solid color-mix(in srgb,var(--gold) 18%,var(--border));
border-radius:12px;
padding:12px 14px;
background:color-mix(in srgb,var(--gold) 5%,transparent);
}
body.theme-opptimus .opp-cart .cart-grp-head{
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
flex-wrap:nowrap;
margin-bottom:8px;
}
body.theme-opptimus .opp-cart .cart-grp-info{
display:flex;
align-items:baseline;
gap:10px;
flex-wrap:wrap;
min-width:0;
flex:1 1 auto;
}
body.theme-opptimus .opp-cart .cart-grp-remove{
flex:0 0 auto;
width:26px;
height:26px;
display:inline-flex;
align-items:center;
justify-content:center;
border-radius:999px;
border:1px solid color-mix(in srgb,var(--gold) 30%,var(--border));
background:transparent;
color:var(--gold-light);
font-size:18px;
line-height:1;
cursor:pointer;
padding:0;
transition:background .15s ease,color .15s ease,border-color .15s ease;
}
body.theme-opptimus .opp-cart .cart-grp-remove:hover{
background:color-mix(in srgb,#e0484f 22%,transparent);
border-color:#e0484f;
color:#ffd9d0;
}
body.theme-opptimus .opp-cart .cart-grp-title{
font-family:'Cinzel',serif;
font-size:14px;
font-weight:700;
color:var(--text);
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
}
body.theme-opptimus .opp-cart .cart-grp-when{
font-size:11px;
color:var(--gold-light);
letter-spacing:.08em;
text-transform:uppercase;
white-space:nowrap;
}
body.theme-opptimus .opp-cart .cart-grp-seats{
display:flex;
gap:6px;
flex-wrap:wrap;
}
body.theme-opptimus .opp-cart .cart-seat-tag{
border:1px solid color-mix(in srgb,var(--gold) 40%,var(--border));
border-radius:999px;
background:var(--gold-dim);
color:var(--gold-light);
cursor:pointer;
font:inherit;
font-size:12px;
font-weight:800;
letter-spacing:.04em;
padding:5px 11px;
transition:var(--trans);
}
body.theme-opptimus .opp-cart .cart-seat-tag:hover{
border-color:var(--gold);
background:color-mix(in srgb,var(--gold) 24%,transparent);
color:var(--text);
}
body.theme-opptimus .opp-cart .cart-seat-tag span{opacity:.7;margin-left:2px;}
body.theme-opptimus .opp-cart__book{
display:block;
width:100%;
margin-top:18px;
border:0;
border-radius:999px;
background:linear-gradient(135deg,var(--gold),var(--gold-light));
color:var(--bg);
cursor:pointer;
font:inherit;
font-size:14px;
font-weight:800;
letter-spacing:.08em;
padding:15px 20px;
text-transform:uppercase;
transition:var(--trans);
}
body.theme-opptimus .opp-cart__book:not(:disabled):hover{
box-shadow:0 10px 30px color-mix(in srgb,var(--gold) 32%,transparent);
transform:translateY(-1px);
}
body.theme-opptimus .opp-cart__book:disabled{
cursor:not-allowed;
filter:grayscale(1);
opacity:.45;
}
/* Ticket-Modal nach Buchung */
body.theme-opptimus .bk-bd{
position:fixed;
inset:0;
z-index:1100;
display:none;
align-items:center;
justify-content:center;
padding:clamp(16px,3vw,32px);
background:color-mix(in srgb,var(--bg) 82%,transparent);
backdrop-filter:blur(10px);
}
body.theme-opptimus .bk-bd.open{display:flex;}
body.theme-opptimus .bk-modal{
position:relative;
width:min(860px,100%);
max-height:calc(100vh - 40px);
overflow:auto;
border:1px solid color-mix(in srgb,var(--gold) 30%,var(--border));
border-radius:var(--radius-lg);
background:
radial-gradient(circle at 50% 0,color-mix(in srgb,var(--gold) 12%,transparent),transparent 46%),
linear-gradient(180deg,color-mix(in srgb,var(--card) 96%,transparent),color-mix(in srgb,var(--surface) 92%,transparent));
box-shadow:var(--shadow);
padding:clamp(22px,4vw,34px);
}
body.theme-opptimus .bk-close{
position:absolute;
top:12px;
right:16px;
border:0;
background:none;
color:var(--muted);
font-size:30px;
line-height:1;
cursor:pointer;
transition:var(--trans);
}
body.theme-opptimus .bk-close:hover{color:var(--text);}
body.theme-opptimus .bk-head{text-align:center;margin-bottom:18px;}
body.theme-opptimus .bk-h-tag{
font-family:'Cinzel',serif;
font-size:20px;
font-weight:700;
color:var(--gold-light);
}
body.theme-opptimus .bk-h-sub{
margin-top:4px;
font-size:13px;
color:var(--muted);
}
body.theme-opptimus .bk-list{display:flex;flex-direction:column;gap:10px;}
body.theme-opptimus .bk-ticket-embed{display:flex;flex-direction:column;gap:14px;margin-top:18px;}
body.theme-opptimus .bk-ticket-frame{width:100%;min-height:300px;border:0;border-radius:12px;background:transparent;display:block;overflow:hidden;}
body.theme-opptimus .bk-seats-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--gold) 26%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--gold) 7%,transparent);}
body.theme-opptimus .bk-l{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
body.theme-opptimus .bk-tk-list{display:flex;flex-direction:column;gap:10px;margin-top:18px;max-height:60vh;overflow:auto;}
body.theme-opptimus .bk-tk-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid color-mix(in srgb,var(--gold) 20%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--gold) 5%,transparent);text-decoration:none;color:var(--text);transition:var(--trans);}
body.theme-opptimus .bk-tk-row:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);transform:translateY(-1px);}
body.theme-opptimus .bk-tk-seat{flex-shrink:0;width:52px;height:52px;border-radius:10px;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#050505;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:22px;font-weight:800;letter-spacing:.02em;}
body.theme-opptimus .bk-tk-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
body.theme-opptimus .bk-tk-film{font-family:'Cinzel',serif;font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body.theme-opptimus .bk-tk-hint{font-size:11px;color:var(--gold-light);font-weight:800;letter-spacing:.04em;}
body.theme-opptimus .bk-tk-arrow{flex-shrink:0;font-size:20px;color:var(--gold-light);font-weight:800;}
body.theme-opptimus .bk-row{
display:flex;
align-items:center;
gap:12px;
border:1px solid color-mix(in srgb,var(--gold) 18%,var(--border));
border-radius:12px;
padding:12px 14px;
background:color-mix(in srgb,var(--gold) 5%,transparent);
text-decoration:none;
color:var(--text);
transition:var(--trans);
}
body.theme-opptimus .bk-row:hover{
border-color:var(--gold);
background:color-mix(in srgb,var(--gold) 12%,transparent);
transform:translateY(-1px);
}
body.theme-opptimus .bk-row-main{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1;}
body.theme-opptimus .bk-row-title{font-family:'Cinzel',serif;font-size:14px;font-weight:700;color:var(--text);}
body.theme-opptimus .bk-row-when{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);}
body.theme-opptimus .bk-row-seats{display:flex;gap:6px;flex-wrap:wrap;}
body.theme-opptimus .bk-seat{
border:1px solid color-mix(in srgb,var(--gold) 40%,var(--border));
border-radius:999px;
background:var(--gold-dim);
color:var(--gold-light);
font-size:12px;
font-weight:800;
padding:3px 9px;
}
body.theme-opptimus .bk-row-arrow{color:var(--gold-light);font-size:18px;font-weight:800;}
body.theme-opptimus .bk-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
body.theme-opptimus .bk-btn{
border:1px solid color-mix(in srgb,var(--gold) 28%,var(--border));
border-radius:999px;
background:transparent;
color:var(--muted);
cursor:pointer;
font:inherit;
font-size:13px;
font-weight:800;
letter-spacing:.08em;
padding:12px 26px;
text-transform:uppercase;
transition:var(--trans);
}
body.theme-opptimus .bk-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--gold) 48%,var(--border));transform:translateY(-1px);}
body.theme-opptimus .bk-btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-light));border-color:var(--gold);color:var(--bg);}
body.theme-opptimus .bk-btn-primary:hover{box-shadow:0 8px 24px color-mix(in srgb,var(--gold) 30%,transparent);}
@media(max-width:680px){
body.theme-opptimus .bk-modal{width:100%;}
body.theme-opptimus .bk-ticket-frame{min-height:240px;}
body.theme-opptimus .bk-actions{justify-content:stretch;}
body.theme-opptimus .bk-btn{flex:1;}
}
body.theme-opptimus .seat.couch-seat{ width: 112px; border-radius: 18px 18px 8px 8px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; color:var(--text); }

body.theme-opptimus .couch-group{ display:flex; width:132px; height:56px; border:2px solid var(--seat-color); border-radius:18px 18px 8px 8px; overflow:hidden; background:color-mix(in srgb,var(--seat-color) 14%,transparent); box-shadow:0 6px 18px color-mix(in srgb,var(--seat-color) 18%,transparent); }

body.theme-opptimus .seat-grid.free-layout .seat{ width:auto; height:auto; min-width:0; min-height:0; }

body.theme-opptimus .seat-grid.free-layout .seat::after{ display:none; }

body.theme-opptimus .seat-grid.free-layout .couch-group{ width:auto; height:auto; min-width:0; min-height:0; }

body.theme-opptimus .seat-grid.free-layout .couch-group.v{ flex-direction:column; min-width:64px; }

body.theme-opptimus .couch-segment{ position:relative; flex:1; min-width:0; display:flex; align-items:center; justify-content:center; cursor:pointer; border-right:1px solid color-mix(in srgb,var(--seat-color) 45%,transparent); color:var(--text); font-size:10px; font-weight:800; transition:var(--trans); }

body.theme-opptimus .couch-segment:last-child{ border-right:none; }

body.theme-opptimus .couch-group.v .couch-segment{ border-right:none; border-bottom:1px solid color-mix(in srgb,var(--seat-color) 45%,transparent); }

body.theme-opptimus .couch-group.v .couch-segment:last-child{ border-bottom:none; }

body.theme-opptimus .couch-segment:hover{ background:color-mix(in srgb,var(--seat-color) 35%,transparent); }

body.theme-opptimus .couch-segment.selected{ background:var(--seat-color); color:#000; }

body.theme-opptimus .couch-segment.taken{ background:rgba(255,255,255,.04); color:rgba(255,255,255,.35); cursor:not-allowed; opacity:.55; }

/* Besetzt */
body.theme-opptimus .seat.taken{ background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.05); cursor: not-allowed; opacity: .4; }

body.theme-opptimus .seat.locked{ background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.08); cursor:not-allowed; opacity:.5; pointer-events:none; }

body.theme-opptimus .seat.held, body.theme-opptimus .couch-segment.held{ background:rgba(201,162,39,.12)!important; border-color:rgba(201,162,39,.72)!important; cursor:not-allowed!important; pointer-events:none; opacity:.78; box-shadow:0 0 0 1px rgba(201,162,39,.2),0 0 18px rgba(201,162,39,.28); }

body.theme-opptimus .seat.held::before, body.theme-opptimus .couch-segment.held::before{ content:'\23F3'; position:absolute; right:50%; top:50%; transform:translate(50%,-50%); width:30px; height:30px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:17px; line-height:1; background:rgba(10,10,18,.82); border:1px solid rgba(255,220,120,.65); box-shadow:0 0 0 2px rgba(201,162,39,.18),0 0 16px rgba(201,162,39,.42); z-index:3; }

body.theme-opptimus .seat.held .seat-num, body.theme-opptimus .seat.held .seat-icon, body.theme-opptimus .couch-segment.held{ color:rgba(255,255,255,.28)!important; }

body.theme-opptimus .seat.selected::before, body.theme-opptimus .couch-segment.selected::before{ content:'\23F3'; position:absolute; right:4px; top:4px; width:19px; height:19px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:12px; line-height:1; background:rgba(10,10,18,.78); border:1px solid rgba(255,240,170,.72); box-shadow:0 0 10px rgba(255,220,120,.38); z-index:4; }


/* --- Startseite: denselben Sitzplan INLINE unter dem Programm (statt Overlay) --- */
body.theme-opptimus .opp-seatplan .seat-modal:not([hidden]) {
  position: static;
  inset: auto;
  z-index: auto;
  display: block;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
}
body.theme-opptimus .opp-seatplan .seat-dialog {
  margin: 0 auto;
  max-height: none;
  overflow: visible;
}
body.theme-opptimus .opp-seatplan .seat-dialog::before { display: none; }
body.theme-opptimus .opp-seatplan .seat-dialog h2 { display: none; }
body.theme-opptimus .opp-seatplan .seat-close { display: none; }
body.theme-opptimus .opp-seatplan .seat-modal-meta {
  max-width: min(680px, 100%);
  margin: 0 auto 30px;
  text-align: center;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

/* --- Freie-Plätze-Pill in den Programmkarten der Startseite --- */
body.theme-opptimus .opp-show__free {
  display: inline-block;
  margin-top: 8px;
  border-radius: var(--opp-radius-pill);
  padding: 4px 12px;
  background: rgba(39, 201, 100, .14);
  color: #7ee2a6;
  font-size: 13px;
  font-weight: 800;
}
body.theme-opptimus .opp-show__free.is-low { background: rgba(255, 206, 99, .16); color: #ffce63; }
body.theme-opptimus .opp-show__free.is-full { background: rgba(230, 57, 70, .16); color: #ff8d96; }

/* ----------------------------------------------------------------------------
   7. Admin-/Unterseiten-Komponenten — Opptimus-Kohärenz (Karten an Home-Look)
      site.css liefert bereits Buttons/Status-Badges/Alerts; hier nur das
      Karten-Finish (Radius + Verlauf) für ein einheitliches Bild.
   ---------------------------------------------------------------------------- */
body.theme-opptimus .assign-card,
body.theme-opptimus .show-update-card,
body.theme-opptimus .show-prefill-card {
  border-radius: var(--opp-radius);
  background: var(--opp-card);
}
body.theme-opptimus .table-wrap {
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 4px 6px;
}
body.theme-opptimus .tickets-head h2 {
  letter-spacing: 0;
}
body.theme-opptimus .btn-primary {
  border-radius: var(--opp-radius-pill);
  padding: 10px 20px;
}
body.theme-opptimus .btn-soft,
body.theme-opptimus .btn-danger {
  border-radius: var(--opp-radius-pill);
}

/* ----------------------------------------------------------------------------
   8. /meine-tickets — Buchungskarten/Status/Sitz-Chips/Share: Optik wie Standard
      Standard-CSS (themes/standard.css) re-gescoped auf body.theme-opptimus.
   ---------------------------------------------------------------------------- */
body.theme-opptimus .booking-list{
display:grid;
gap:14px;
max-width:1080px;
margin:40px auto 0;
padding:0;
}
body.theme-opptimus .ticket-section{
max-width:1080px;
margin:24px auto 0;
}
body.theme-opptimus .ticket-section + .ticket-section{
margin-top:30px;
padding-top:24px;
border-top:1px solid color-mix(in srgb,var(--text) 10%,transparent);
}
body.theme-opptimus .ticket-section .booking-list{
margin-top:14px;
}
body.theme-opptimus .ticket-section-tools{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
margin:-2px 0 14px;
color:var(--muted);
font-size:12px;
flex-wrap:wrap;
}
body.theme-opptimus .ticket-pager{
display:flex;
align-items:center;
justify-content:center;
gap:8px;
margin:18px 0 34px;
flex-wrap:wrap;
}
body.theme-opptimus .ticket-pager a,
body.theme-opptimus .ticket-pager span{
min-width:34px;
height:34px;
display:inline-flex;
align-items:center;
justify-content:center;
padding:0 12px;
border:1px solid var(--border);
border-radius:999px;
color:var(--muted);
font-size:12px;
font-weight:900;
text-decoration:none;
}
body.theme-opptimus .ticket-pager a:hover,
body.theme-opptimus .ticket-pager .current{
border-color:rgba(201,162,39,.45);
background:rgba(201,162,39,.12);
color:var(--gold-light);
}
body.theme-opptimus .ticket-section summary{
cursor:pointer;
list-style:none;
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
color:var(--text);
font-family:'Cinzel',serif;
font-size:19px;
font-weight:700;
}
body.theme-opptimus .ticket-section summary::-webkit-details-marker{
display:none;
}
body.theme-opptimus .ticket-section summary span,
body.theme-opptimus .ticket-section-title span{
color:var(--muted);
font-family:Inter,sans-serif;
font-size:12px;
font-weight:900;
letter-spacing:.08em;
text-transform:uppercase;
}
body.theme-opptimus .ticket-section-title{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
margin:0;
color:var(--text);
font-family:'Cinzel',serif;
font-size:19px;
font-weight:700;
}
body.theme-opptimus .booking-card{
position:relative;
display:grid;
grid-template-columns:72px minmax(0,1fr) auto;
gap:24px;
align-items:center;
overflow:hidden;
border:1px solid var(--border);
border-radius:var(--radius);
background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--surface) 92%,transparent));
padding:20px 22px;
box-shadow:0 18px 48px color-mix(in srgb,var(--bg) 58%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 6%,transparent);
transition:var(--trans);
}
body.theme-opptimus .booking-card::before{
content:"";
position:absolute;
inset:0 auto 0 0;
width:4px;
background:linear-gradient(180deg,var(--gold),color-mix(in srgb,var(--gold) 12%,transparent));
opacity:.86;
}
body.theme-opptimus .booking-card:hover{
border-color:color-mix(in srgb,var(--gold) 35%,var(--border));
background:linear-gradient(145deg,var(--card-hover),var(--card));
transform:translateY(-2px);
}
body.theme-opptimus .my-ticket-cover{
width:72px;
height:104px;
overflow:hidden;
display:flex;
align-items:center;
justify-content:center;
border:1px solid color-mix(in srgb,var(--gold) 24%,transparent);
border-radius:12px;
background:linear-gradient(145deg,rgba(201,162,39,.18),rgba(255,255,255,.04));
color:var(--gold);
font-family:'Cinzel',serif;
font-size:28px;
font-weight:800;
box-shadow:0 14px 32px rgba(0,0,0,.34);
}
body.theme-opptimus .my-ticket-cover img{
width:100%;
height:100%;
display:block;
object-fit:cover;
}
body.theme-opptimus .booking-main{
min-width:0;
padding-left:6px;
}
body.theme-opptimus .booking-main h3{
margin:0 0 9px;
color:var(--text);
font-family:'Cinzel',serif;
font-size:clamp(18px,2.2vw,25px);
font-weight:700;
line-height:1.15;
}
body.theme-opptimus .booking-meta{
display:flex;
flex-wrap:wrap;
gap:7px 18px;
color:var(--muted);
font-size:13px;
line-height:1.45;
}
body.theme-opptimus .booking-meta + .booking-meta{
margin-top:10px;
border-top:1px solid var(--border);
padding-top:11px;
}
body.theme-opptimus .booking-meta span{
min-width:0;
}
body.theme-opptimus .booking-meta strong{
color:var(--text);
font-weight:800;
}
body.theme-opptimus .booking-meta .seat-strong,
body.theme-opptimus .seat-strong{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:34px;
min-height:24px;
border:1px solid color-mix(in srgb,var(--gold) 38%,transparent);
border-radius:999px;
background:var(--gold-dim);
color:var(--gold-light);
font-size:12px;
font-weight:900;
letter-spacing:.04em;
line-height:1;
padding:4px 9px;
}
body.theme-opptimus .booking-side{
display:flex;
flex-direction:column;
align-items:flex-end;
gap:14px;
}
body.theme-opptimus .booking-actions{
display:flex;
align-items:center;
justify-content:flex-end;
gap:9px;
flex-wrap:wrap;
}
body.theme-opptimus .booking-actions form{
margin:0;
}
body.theme-opptimus .status-badge{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:30px;
border:1px solid var(--border);
border-radius:999px;
background:color-mix(in srgb,var(--text) 5%,transparent);
color:var(--muted);
font-size:11px;
font-weight:800;
letter-spacing:.09em;
line-height:1;
padding:7px 12px;
text-transform:uppercase;
white-space:nowrap;
}
body.theme-opptimus .status-badge::before{
content:"";
width:7px;
height:7px;
margin-right:7px;
border-radius:50%;
background:currentColor;
box-shadow:0 0 14px currentColor;
}
body.theme-opptimus .status-badge.status-reserved{
border-color:color-mix(in srgb,#27c964 45%,transparent);
background:color-mix(in srgb,#27c964 14%,transparent);
color:color-mix(in srgb,#27c964 62%,var(--text));
}
body.theme-opptimus .status-badge.status-paid{
border-color:color-mix(in srgb,#27c964 45%,transparent);
background:color-mix(in srgb,#27c964 14%,transparent);
color:color-mix(in srgb,#27c964 62%,var(--text));
}
body.theme-opptimus .status-badge.status-checked_in{
border-color:rgba(230,57,70,.55);
background:rgba(230,57,70,.14);
color:#ff9aa3;
}
body.theme-opptimus .status-badge.status-cancelled{
border-color:color-mix(in srgb,var(--red) 45%,transparent);
background:var(--red-dim);
color:color-mix(in srgb,var(--red) 45%,var(--text));
opacity:.72;
}
body.theme-opptimus .status-badge.status-unknown,
body.theme-opptimus .status-badge.status-inactive,
body.theme-opptimus .status-badge.status-past,
body.theme-opptimus .status-badge.status-expired{
border-color:rgba(255,255,255,.16);
background:rgba(255,255,255,.06);
color:var(--muted);
opacity:.78;
}
body.theme-opptimus .status-badge.profile-role-user{
border-color:color-mix(in srgb,var(--info) 45%,transparent);
background:color-mix(in srgb,var(--info) 14%,transparent);
color:color-mix(in srgb,var(--info) 62%,var(--text));
}
body.theme-opptimus .status-badge.profile-role-scanner{
border-color:color-mix(in srgb,var(--success) 45%,transparent);
background:color-mix(in srgb,var(--success) 14%,transparent);
color:color-mix(in srgb,var(--success) 62%,var(--text));
}
body.theme-opptimus .status-badge.profile-role-admin{
border-color:color-mix(in srgb,var(--gold) 52%,transparent);
background:color-mix(in srgb,var(--gold) 15%,transparent);
color:var(--gold-light);
}
body.theme-opptimus .booking-card-grouped{
background:var(--card);
}
body.theme-opptimus .booking-card-grouped.checkin-none{
border-color:rgba(39,201,100,.26);
--my-ticket-accent:#55d88a;
}
body.theme-opptimus .booking-card-grouped.checkin-partial{
border-color:rgba(230,188,58,.34);
--my-ticket-accent:#e6bc3a;
}
body.theme-opptimus .booking-card-grouped.checkin-expired{
border-color:rgba(139,139,170,.32);
--my-ticket-accent:#8b8baa;
}
body.theme-opptimus .booking-card-grouped.checkin-all,
body.theme-opptimus .booking-card-grouped.checkin-cancelled{
border-color:rgba(230,57,70,.38);
--my-ticket-accent:#ef767a;
}
body.theme-opptimus .booking-card-grouped::before{
background:var(--my-ticket-accent, var(--gold)) !important;
opacity:.95 !important;
}
body.theme-opptimus .booking-card-grouped:hover{
background:var(--card-hover);
}
body.theme-opptimus .my-ticket-seats{
display:flex;
gap:6px;
flex-wrap:wrap;
align-items:center;
margin-top:13px;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap{
display:inline-flex;
align-items:stretch;
border-radius:50px;
overflow:hidden;
box-shadow:0 1px 0 rgba(0,0,0,.22);
}
body.theme-opptimus .my-ticket-seats .tk-seat,
body.theme-opptimus .my-ticket-seats .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-open{
display:inline-flex;
align-items:center;
border:1px solid rgba(201,162,39,.32);
background:rgba(201,162,39,.08);
color:var(--gold);
line-height:1;
}
body.theme-opptimus .my-ticket-seats .tk-seat{
min-width:42px;
justify-content:center;
padding:5px 12px;
border-right:none;
border-radius:50px 0 0 50px;
background:rgba(201,162,39,.14);
font-size:13px;
font-weight:900;
letter-spacing:.04em;
text-decoration:none;
}
body.theme-opptimus .my-ticket-seats .tk-seat-status{
padding:5px 9px;
border-left:1px dashed rgba(201,162,39,.4);
border-right:none;
color:var(--muted);
font-size:9px;
font-weight:900;
letter-spacing:.08em;
text-transform:uppercase;
white-space:nowrap;
}
body.theme-opptimus .my-ticket-seats .tk-seat-open{
justify-content:center;
min-width:34px;
padding:5px 9px;
border-left:1px dashed rgba(201,162,39,.4);
border-radius:0 50px 50px 0;
text-decoration:none;
}
body.theme-opptimus .my-ticket-seats .tk-seat:hover,
body.theme-opptimus .my-ticket-seats .tk-seat-open:hover{
background:rgba(201,162,39,.22);
color:#fff5d4;
}
body.theme-opptimus .my-ticket-seats .tk-seat-open svg{
display:block;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-valid .tk-seat-status{
color:#fff3a7;
border-color:rgba(201,162,39,.36);
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat-open{
border-color:rgba(230,57,70,.5);
color:#ff9aa3;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat{
background:rgba(230,57,70,.18);
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-used .tk-seat-open{
background:rgba(230,57,70,.08);
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat-open{
border-color:rgba(230,57,70,.36);
color:#ff9aa3;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat{
background:rgba(230,57,70,.12);
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-cancelled .tk-seat-open{
background:rgba(230,57,70,.06);
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-expired .tk-seat,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-expired .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-expired .tk-seat-open{
border-color:rgba(139,139,170,.42);
background:rgba(139,139,170,.08);
color:#c4c4d2;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap.is-expired .tk-seat{
background:rgba(139,139,170,.14);
}
body.theme-opptimus .site-shell{
width:min(1080px,calc(100% - 32px));
}
body.theme-opptimus .ticket-section,
body.theme-opptimus .booking-list{
width:100%;
max-width:none;
}
body.theme-opptimus .ticket-section .booking-list{
margin-top:12px;
}
body.theme-opptimus .booking-card-grouped{
grid-template-columns:86px minmax(0,1fr) auto;
gap:18px;
border-radius:10px;
padding:18px;
}
body.theme-opptimus .my-ticket-seats .tk-seat-wrap{
border:0;
border-radius:0;
background:transparent;
box-shadow:none;
overflow:visible;
padding:0;
}
body.theme-opptimus .my-ticket-seats .tk-seat,
body.theme-opptimus .my-ticket-seats .tk-seat-status,
body.theme-opptimus .my-ticket-seats .tk-seat-open{
box-shadow:none;
}
body.theme-opptimus .my-ticket-share-bd{
position:fixed;
inset:0;
z-index:3200;
display:flex;
align-items:center;
justify-content:center;
padding:18px;
background:rgba(0,0,0,.78);
backdrop-filter:blur(6px);
}
body.theme-opptimus .my-ticket-share-bd[hidden]{
display:none;
}
body.theme-opptimus .my-ticket-share-modal{
position:relative;
width:420px;
max-width:100%;
overflow:hidden;
border:1px solid rgba(201,162,39,.32);
border-radius:14px;
background:var(--card);
box-shadow:0 30px 60px -20px rgba(0,0,0,.75);
padding:24px 22px 20px;
}
body.theme-opptimus .my-ticket-share-modal::before{
content:'';
position:absolute;
left:0;
right:0;
top:0;
height:2px;
background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
body.theme-opptimus .my-ticket-share-close{
position:absolute;
top:10px;
right:12px;
border:0;
background:transparent;
color:var(--muted);
cursor:pointer;
font:inherit;
font-size:24px;
line-height:1;
padding:4px 8px;
}
body.theme-opptimus .my-ticket-share-close:hover{
color:#fff;
}
body.theme-opptimus .my-ticket-share-title{
margin-bottom:4px;
color:var(--text);
font-family:'Cinzel',serif;
font-size:16px;
}
body.theme-opptimus .my-ticket-share-sub{
margin-bottom:16px;
color:var(--muted);
font-size:12px;
line-height:1.5;
}
body.theme-opptimus .my-ticket-share-download{
display:flex;
align-items:center;
justify-content:center;
width:100%;
margin-bottom:12px;
border-radius:10px;
background:linear-gradient(135deg,var(--gold),var(--gold-light));
color:#090914;
font-size:12px;
font-weight:900;
letter-spacing:.08em;
padding:11px 14px;
text-decoration:none;
text-transform:uppercase;
}
body.theme-opptimus .my-ticket-share-url{
display:flex;
gap:6px;
margin-bottom:14px;
}
body.theme-opptimus .my-ticket-share-url input{
flex:1;
min-width:0;
border:1px solid var(--border);
border-radius:10px;
background:rgba(255,255,255,.04);
color:var(--text);
font-family:ui-monospace,'Cascadia Code',monospace;
font-size:12px;
outline:none;
padding:9px 12px;
}
body.theme-opptimus .my-ticket-share-copy{
border:1px solid rgba(201,162,39,.4);
border-radius:10px;
background:rgba(201,162,39,.15);
color:var(--gold);
cursor:pointer;
font:inherit;
font-size:11px;
font-weight:900;
letter-spacing:.06em;
padding:9px 14px;
text-transform:uppercase;
white-space:nowrap;
}
body.theme-opptimus .my-ticket-share-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
gap:8px;
}
body.theme-opptimus .my-ticket-share-tile{
display:flex;
align-items:center;
justify-content:center;
min-height:46px;
border:1px solid var(--border);
border-radius:12px;
background:rgba(255,255,255,.04);
color:var(--text);
cursor:pointer;
font:inherit;
font-size:12px;
font-weight:800;
text-decoration:none;
}
body.theme-opptimus .my-ticket-share-tile:hover{
border-color:rgba(201,162,39,.35);
background:rgba(201,162,39,.12);
color:var(--gold);
}

/* ----------------------------------------------------------------------------
   9. /verwaltung — Admin-Subnav (Pillen) + Sektions-Unterteilung wie Standard
   ---------------------------------------------------------------------------- */
body.theme-opptimus .site-admin-subnav{
position:sticky;
top:72px;
z-index:999;
display:flex;
justify-content:center;
align-items:center;
gap:8px;
padding:8px 16px 10px;
border-bottom:1px solid rgba(255,255,255,.08);
background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 94%,transparent),color-mix(in srgb,var(--bg) 82%,transparent));
backdrop-filter:blur(18px);
overflow-x:auto;
scrollbar-width:none;
}
body.theme-opptimus .site-admin-subnav::-webkit-scrollbar{
display:none;
}
body.theme-opptimus .site-admin-subnav a{
flex:0 0 auto;
display:inline-flex;
align-items:center;
justify-content:center;
width:144px;
box-sizing:border-box;
border:1px solid rgba(201,162,39,.24);
border-radius:999px;
background:rgba(255,255,255,.035);
padding:7px 14px;
color:var(--muted);
font-size:11px;
font-weight:800;
letter-spacing:.11em;
line-height:1;
text-align:center;
text-decoration:none;
text-transform:uppercase;
transition:var(--trans);
}
body.theme-opptimus .site-admin-subnav a:hover,
body.theme-opptimus .site-admin-subnav a[aria-current="page"]{
border-color:rgba(201,162,39,.48);
background:rgba(201,162,39,.16);
color:var(--gold-light);
}
body.theme-opptimus .site-admin-subnav { top: var(--opp-topbar-h); }
body.theme-opptimus[data-manage-section] .site-shell .manage-panel { display: none !important; }
body.theme-opptimus[data-manage-section="einstellungen"] .site-shell .manage-panel-einstellungen,
body.theme-opptimus[data-manage-section="vorfuehrungen"] .site-shell .manage-panel-vorfuehrungen,
body.theme-opptimus[data-manage-section="vorfuehrungen"] .site-shell .manage-panel-buchungen,
body.theme-opptimus[data-manage-section="buchungen"] .site-shell .manage-panel-buchungen,
body.theme-opptimus[data-manage-section="protokoll"] .site-shell .manage-panel-protokoll { display: block !important; }

/* ----------------------------------------------------------------------------
   10. Feinschliff: Topbar-Nav zentriert + Einstellungen-Panel-Abstände
   ---------------------------------------------------------------------------- */
/* Topbar als 3-Spalten-Grid: Logo links, Navigation mittig, Hamburger rechts. */
body.theme-opptimus .site-topbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}
body.theme-opptimus .site-topbar__logo {
  grid-column: 1;
  justify-self: start;
}
body.theme-opptimus .site-topbar .site-nav {
  grid-column: 2;
  justify-self: center;
  justify-content: center;
}
body.theme-opptimus .hamburger {
  grid-column: 3;
  justify-self: end;
}

/* Einstellungen-Panel: ruhige Abstände, Timestamp/Hinweistexte kleiner. */
body.theme-opptimus .manage-panel-einstellungen {
  display: grid;
  gap: 12px;
  align-items: start;
}
body.theme-opptimus .manage-panel-einstellungen h3 {
  margin: 0;
  font-size: 20px;
  line-height: 1.1;
}
body.theme-opptimus .manage-panel-einstellungen .muted-inline,
body.theme-opptimus .manage-panel-einstellungen > p {
  margin: 0;
  max-width: 760px;
  font-size: 13px;
  line-height: 1.5;
}
/* "Zuletzt geändert: …" als abgesetzter Absatz mit Abstand. */
body.theme-opptimus .manage-panel-einstellungen > .muted-inline:last-child {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  opacity: .8;
}

/* ----------------------------------------------------------------------------
   11. /verwaltung: doppelte Buchungs-Ansicht entfernen
       Das Inline-Ticketmanagement (.admin-ticket-inline) verwaltet Vorstellungen
       UND Buchungen vollständig. Die alte Buchungs-Tabelle/Empty-State (gleiche
       buchungen-Sektion) ist damit redundant -> ausblenden (Funktion bleibt im
       Inline-Manager erhalten). Höhere Spezifität + !important schlägt die
       Sektions-Sichtbarkeit aus Abschnitt 9.
   ---------------------------------------------------------------------------- */
body.theme-opptimus[data-manage-section] .site-shell .table-wrap.manage-panel-buchungen,
body.theme-opptimus[data-manage-section] .site-shell .empty-state.manage-panel-buchungen {
  display: none !important;
}

/* ----------------------------------------------------------------------------
   12. /verwaltung: redundante Altwidgets + Kopf-Link entfernen (nur Opptimus)
   ---------------------------------------------------------------------------- */
/* "Platz zuweisen"-Panel: redundant zum Inline-Ticketmanager (+Personen hinzufügen). */
body.theme-opptimus[data-manage-section] .site-shell #platz-zuweisen {
  display: none !important;
}
/* "Nutzer und Rollen ansehen"-Link aus dem Seitenkopf raus (Nutzer = Subnav-Pille). */
body.theme-opptimus[data-manage-section] .tickets-head p:has(a[href="/verwaltung/nutzer"]) {
  display: none !important;
}

/* ----------------------------------------------------------------------------
   13. Inline-Ticketmanager an Opptimus-Palette angleichen (nur Opptimus!)
       _admin_tickets_inline.php setzt im geteilten <style> lokale Variablen mit
       Standard-Farben (--gold #c9a227, --card #16162a …). Wir überschreiben NUR
       diese lokalen Variablen für theme-opptimus -> alle var()-basierten Stellen
       färben sich um. Der geteilte <style> + das Standard-Theme bleiben unberührt.
   ---------------------------------------------------------------------------- */
body.theme-opptimus .admin-ticket-inline {
  --bg: #090a10;
  --card: #151722;
  --border: rgba(255, 255, 255, .12);
  --gold: #d7b64a;
  --gold-light: #f0d77a;
  --text: #f5f5f7;
  --muted: #a4a8b8;
}
/* Gold-Tint-Hintergründe (hardcodiert auf Standard-Gold rgba(201,162,39,…))
   auf Opptimus-Gold rgba(215,182,74,…) ziehen, damit nichts „standardig" bleibt. */
body.theme-opptimus .admin-ticket-inline .filter-pill.active {
  background: rgba(215, 182, 74, .15);
  border-color: rgba(215, 182, 74, .42);
}
body.theme-opptimus .admin-ticket-inline .tk-card:hover,
body.theme-opptimus .admin-ticket-inline .tk-card-empty:hover {
  border-color: rgba(215, 182, 74, .3);
}
body.theme-opptimus .admin-ticket-inline .tk-sb {
  background: rgba(215, 182, 74, .14);
  border-color: rgba(215, 182, 74, .32);
}
body.theme-opptimus .admin-ticket-inline a.tk-sb:hover {
  background: rgba(215, 182, 74, .26);
}
body.theme-opptimus .admin-ticket-inline .tk-btn-view {
  border-color: rgba(215, 182, 74, .4);
}
body.theme-opptimus .admin-ticket-inline .tk-btn-view:hover {
  background: rgba(215, 182, 74, .12);
}
body.theme-opptimus .admin-ticket-inline .es-seat.is-mine {
  background: rgba(215, 182, 74, .4);
}

/* ----------------------------------------------------------------------------
   14. /verwaltung/nutzer — Standard-Optik (re-gescoped). Aktiv wenn die Nutzer-
       Subnav-Pille aria-current ist (gleicher :has-Mechanismus wie Standard).
   ---------------------------------------------------------------------------- */
body.theme-opptimus { --admin-users-width: 1420px; }
body.theme-standard .site-shell:has(.site-header .site-nav a[href="/verwaltung"][aria-current="page"]) .tickets-head p:has(a.btn-soft[href="/verwaltung/nutzer"]){
  display:none;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell{
  --admin-users-width:1420px;
  width:min(var(--admin-users-width),calc(100% - 24px));
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell .tickets-head{
  max-width:var(--admin-users-width);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .profile-alert{
  max-width:var(--admin-users-width);
  margin-top:16px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .table-wrap,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card{
  width:100%;
  max-width:var(--admin-users-width);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .table-wrap{
  margin-top:18px;
  border-radius:14px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card{
  margin-top:18px;
  border-radius:14px;
  padding:24px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .table-wrap .booking-table{
  min-width:1160px;
  font-size:12px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table th{
  padding:12px 10px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td{
  padding:11px 10px;
  max-width:none;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table tr.is-muted{
  opacity:.72;
  background:var(--red-dim);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td:nth-child(1){
  min-width:170px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td:nth-child(3){
  min-width:210px;
  overflow-wrap:anywhere;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td:nth-child(4),
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td:nth-child(7){
  min-width:170px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table td:nth-child(6){
  min-width:150px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table .assign-form{
  max-width:none;
  min-width:160px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table .assign-form select{
  min-width:150px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .booking-table .assign-form button{
  width:100%;
  border-radius:8px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .status-badge{
  border-radius:999px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .assign-form:has(input[name="email"][type="email"]){
  grid-template-columns:minmax(210px,1.25fr) minmax(190px,1.1fr) minmax(140px,.7fr) minmax(140px,.7fr) auto;
  align-items:end;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .assign-form:has(input[name="email"][type="email"]) button{
  grid-column:auto;
  justify-self:stretch;
  min-width:0;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .table-wrap{
  margin-top:18px;
  border-radius:12px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .booking-table{
  min-width:1180px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .booking-table td:last-child{
  min-width:160px;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .assign-card .booking-table .btn-soft{
  border-radius:8px;
  white-space:nowrap;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-universal-invite{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:center;
  margin:16px 0 18px;
  padding:14px;
  border:1px solid color-mix(in srgb,var(--gold) 28%,var(--border));
  border-radius:12px;
  background:color-mix(in srgb,var(--gold) 8%,transparent);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-universal-invite strong{
  display:block;
  margin-bottom:3px;
  color:var(--text);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-universal-invite .assign-form{
  margin:0;
  display:block;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-copy-link{
  min-width:190px;
  width:auto;
  white-space:nowrap;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) td .tenant-copy-link{
  margin:0 0 8px;
}
/* Nutzer-Ueberschrift PLAIN (kein Banner-Kasten, keine Goldlinie) — nur der
   Text bleibt, wie bei Vorfuehrungen/den anderen Admin-Bereichen. */
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell .tickets-head{
  border:0 !important;
  background:transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  padding:0 !important;
  margin:0 0 18px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell .tickets-head::before{
  display:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-user-list,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-user-cards,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-invite-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-audit-card{
  border:0 !important;
  border-radius:16px !important;
  background:linear-gradient(135deg,rgba(22,23,41,.72),rgba(12,13,24,.54)) !important;
  box-shadow:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-user-list{
  padding:16px !important;
  overflow:visible !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-user-cards{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  width:100% !important;
  max-width:var(--admin-users-width) !important;
  margin-top:18px !important;
  padding:16px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-card{
  display:grid !important;
  grid-template-columns:minmax(300px,1fr) minmax(300px,1fr) minmax(300px,1fr) minmax(300px,1fr) !important;
  gap:16px !important;
  align-items:center !important;
  padding:16px 18px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius:14px !important;
  background:rgba(17,18,31,.78) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-card.is-muted{
  opacity:.74 !important;
  background:rgba(230,57,70,.08) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-main,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-role,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-meta,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-actions{
  min-width:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-main{
  display:grid !important;
  gap:7px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-main strong{
  font-size:16px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-main > span:not(.status-badge){
  overflow-wrap:anywhere !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-role .assign-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  margin:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-role .assign-form button,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-actions .assign-form button{
  width:100% !important;
  min-width:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-meta{
  display:grid !important;
  gap:8px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-actions .assign-form{
  margin:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-cards,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-cards{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  margin-top:18px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-row,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-row{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:center !important;
  padding:16px 18px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius:14px !important;
  background:rgba(17,18,31,.78) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-row > div,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-row > div{
  display:grid !important;
  gap:7px !important;
  min-width:0 !important;
  overflow-wrap:anywhere !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-card-label{
  color:var(--muted) !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-card-actions .assign-form{
  margin:0 !important;
  display:grid !important;
  gap:8px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-card-actions button{
  width:100% !important;
  min-width:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-card{
  padding:24px 32px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-card h3,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-card h3{
  margin:0 0 8px !important;
  padding:0 !important;
  border:0 !important;
  font-size:24px !important;
  line-height:1.05 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list .booking-table,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list .booking-table,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list .booking-table{
  display:block !important;
  min-width:0 !important;
  width:100% !important;
  border:0 !important;
  background:transparent !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list thead,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list thead,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list thead{
  display:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list tbody,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list tbody,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list tbody{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list tr,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list tr,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list tr{
  display:grid !important;
  gap:12px !important;
  align-items:center !important;
  width:100% !important;
  padding:16px 18px !important;
  border:0 !important;
  border-radius:14px !important;
  background:rgba(17,18,31,.72) !important;
  box-shadow:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list tr{
  grid-template-columns:minmax(150px,1.1fr) minmax(120px,.9fr) minmax(190px,1.25fr) minmax(170px,1.05fr) minmax(110px,.72fr) minmax(145px,.9fr) minmax(150px,.9fr) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list tr{
  grid-template-columns:minmax(105px,.7fr) minmax(170px,1.15fr) minmax(140px,1fr) minmax(90px,.58fr) minmax(145px,.9fr) minmax(145px,.9fr) minmax(120px,.8fr) minmax(170px,.9fr) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list tr{
  grid-template-columns:minmax(150px,.9fr) minmax(150px,.9fr) minmax(135px,.75fr) minmax(150px,.9fr) minmax(240px,1.4fr) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td{
  display:block !important;
  min-width:0 !important;
  max-width:none !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow-wrap:anywhere !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list tr.is-muted{
  opacity:.74 !important;
  background:rgba(230,57,70,.08) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list .assign-form,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list .assign-form{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:8px !important;
  min-width:0 !important;
  margin:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list .assign-form button,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list .assign-form button,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list .tenant-copy-link{
  width:100% !important;
  min-width:0 !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list{
  margin-top:18px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list{
  margin-top:18px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) :is(
  .tenant-user-list,
  .tenant-invite-list,
  .tenant-audit-list
) :is(table, thead, tbody, tr, th, td){
  border:0 !important;
  border-top:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  box-shadow:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) :is(
  .tenant-user-list,
  .tenant-invite-list,
  .tenant-audit-list
) :is(th, td)::before,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) :is(
  .tenant-user-list,
  .tenant-invite-list,
  .tenant-audit-list
) :is(th, td)::after{
  display:none !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list tr,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list tr,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list tr{
  border:1px solid rgba(255,255,255,.10) !important;
  background:rgba(17,18,31,.78) !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td{
  display:flex !important;
  min-height:46px !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:6px !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td::before,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td::before,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td::before{
  display:block !important;
  color:var(--muted) !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(1)::before{content:"Name";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(2)::before{content:"Benutzer";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(3)::before{content:"E-Mail";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(4)::before{content:"Rolle";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(5)::before{content:"Status";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(6)::before{content:"Erstellt";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-list td:nth-child(7)::before{content:"Aktion";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(1)::before{content:"Status";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(2)::before{content:"E-Mail";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(3)::before{content:"Notiz";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(4)::before{content:"Rolle";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(5)::before{content:"Erstellt";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(6)::before{content:"Ablauf";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(7)::before{content:"Genutzt von";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-list td:nth-child(8)::before{content:"Aktion";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td:nth-child(1)::before{content:"Zeit";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td:nth-child(2)::before{content:"Admin";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td:nth-child(3)::before{content:"Aktion";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td:nth-child(4)::before{content:"Ziel";}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-list td:nth-child(5)::before{content:"Details";}
@media(max-width:760px){
  body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-universal-invite{
    grid-template-columns:1fr;
  }
  body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-copy-link,
  body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-universal-invite .assign-form button{
    width:100%;
    min-width:0;
  }

/* Pi-exact Standard surfaces: keep layout, remove decorative dark gradients. */
body.theme-standard .booking-card,
body.theme-standard[data-manage-section="buchungen"] .manage-ticket-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-row,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-row,
body.theme-standard #protokoll .admin-log-group{
  border:1px solid rgba(201,162,39,.2) !important;
  background:var(--card) !important;
  box-shadow:none !important;
}
body.theme-standard .booking-card:hover,
body.theme-standard[data-manage-section="buchungen"] .manage-ticket-card:hover,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-user-card:hover,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-invite-row:hover,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tenant-audit-row:hover,
body.theme-standard #protokoll .admin-log-group:hover{
  background:var(--card-hover) !important;
}

body.theme-standard:is([data-manage-section="buchungen"],[data-manage-section="einstellungen"],[data-manage-section="vorfuehrungen"],[data-manage-section="protokoll"]) .tickets-head h2,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tickets-head h2,
body.theme-opptimus:has(.site-admin-subnav a[href="/scan"][aria-current="page"]) .tickets-head h2{
  margin:0 !important;
  font-family:'Bebas Neue',Impact,'Arial Narrow',sans-serif !important;
  font-size:42px !important;
  line-height:1.05 !important;
  letter-spacing:.02em !important;
  color:#f0eff5 !important;
  text-transform:uppercase !important;
}
body.theme-standard:is([data-manage-section="buchungen"],[data-manage-section="einstellungen"],[data-manage-section="vorfuehrungen"],[data-manage-section="protokoll"]) .tickets-head p:not(.eyebrow),
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tickets-head p:not(.eyebrow),
body.theme-opptimus:has(.site-admin-subnav a[href="/scan"][aria-current="page"]) .tickets-head p:not(.eyebrow){
  max-width:none !important;
  margin:6px 0 0 !important;
  color:#7a7a9a !important;
  font-size:13px !important;
  line-height:1.7 !important;
}
}

/* ----------------------------------------------------------------------------
   15. /verwaltung/nutzer — Formular-Inputs konsistent (E-Mail/Notiz/Rolle/Ablauf)
   ---------------------------------------------------------------------------- */
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form input,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form select,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form textarea {
  background: rgba(0, 0, 0, .25);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  min-height: 42px;
  padding: 9px 12px;
  font: inherit;
  outline: none;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form input::placeholder {
  color: var(--muted);
  opacity: .7;
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form input:focus,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form select:focus,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form textarea:focus {
  border-color: var(--gold);
}
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .assign-form input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #14141f inset;
  -webkit-text-fill-color: var(--text);
  caret-color: var(--text);
}

/* ----------------------------------------------------------------------------
   16. /scan (Einlass/Scan) — Opptimus-Optik (Struktur wie Standard, neues Design)
   ---------------------------------------------------------------------------- */
body.theme-opptimus .scan-panel {
  width: min(720px, 100%);
  margin: 6px auto 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
/* Code-Eingabe */
body.theme-opptimus .scan-form {
  display: flex;
  gap: 10px;
}
body.theme-opptimus .scan-form input {
  flex: 1;
  min-width: 0;
  min-height: 52px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(0, 0, 0, .25);
  color: var(--text);
  padding: 12px 16px;
  font: inherit;
  font-size: 16px;
  letter-spacing: .04em;
  outline: none;
}
body.theme-opptimus .scan-form input:focus {
  border-color: var(--gold);
}
body.theme-opptimus .scan-form input::placeholder {
  color: var(--muted);
}
body.theme-opptimus .scan-form button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(120deg, var(--gold), var(--gold-2));
  color: #1a1505;
  font-weight: 800;
  letter-spacing: .04em;
  padding: 0 28px;
  cursor: pointer;
  font-size: 15px;
}
body.theme-opptimus .scan-form button:hover {
  filter: brightness(1.06);
}
/* Kamera */
body.theme-opptimus .scan-camera {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--opp-card);
  padding: 18px;
}
body.theme-opptimus .scan-camera-actions {
  display: flex;
  gap: 10px;
}
body.theme-opptimus .scan-camera-reader {
  width: 100%;
  max-width: 360px;
  border-radius: 12px;
  overflow: hidden;
}
body.theme-opptimus .scan-camera-reader video,
body.theme-opptimus .scan-camera-reader canvas {
  width: 100% !important;
  border-radius: 12px;
}
body.theme-opptimus .scan-camera-status {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}
/* Ergebnis */
body.theme-opptimus .scan-result {
  border: 1px solid var(--line);
  border-left: 4px solid var(--muted);
  border-radius: 14px;
  background: var(--opp-card);
  padding: 22px 24px;
}
body.theme-opptimus .scan-result.is-ok { border-left-color: #55d88a; }
body.theme-opptimus .scan-result.is-warn { border-left-color: var(--gold); }
body.theme-opptimus .scan-result.is-error { border-left-color: #ff6b74; }
body.theme-opptimus .scan-result-msg {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.3;
}
body.theme-opptimus .scan-result.is-ok .scan-result-msg { color: #8fe0a6; }
body.theme-opptimus .scan-result.is-warn .scan-result-msg { color: var(--gold-2); }
body.theme-opptimus .scan-result.is-error .scan-result-msg { color: #ff9aa3; }
/* Fakten */
body.theme-opptimus .scan-facts {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 18px;
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid var(--line);
}
body.theme-opptimus .scan-facts dt {
  align-self: start;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding-top: 3px;
}
body.theme-opptimus .scan-facts dd {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
}
/* Sitz-Chips */
body.theme-opptimus .scan-seat-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
body.theme-opptimus .scan-seat {
  display: inline-block;
  padding: 3px 11px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .04);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--muted);
}
body.theme-opptimus .scan-seat.is-current {
  border-color: var(--gold);
  background: rgba(215, 182, 74, .16);
  color: var(--gold-2);
}
body.theme-opptimus .scan-seat-checked_in,
body.theme-opptimus .scan-seat-used { color: #8fe0a6; border-color: rgba(120, 210, 150, .4); }
body.theme-opptimus .scan-seat-cancelled,
body.theme-opptimus .scan-seat-expired { color: #ff9aa3; border-color: rgba(230, 57, 70, .4); }
/* Check-in */
body.theme-opptimus .scan-checkin-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
body.theme-opptimus .scan-seat-hint {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
body.theme-opptimus .scan-checked-by {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text);
}

/* ----------------------------------------------------------------------------
   17. /profil — Opptimus-Optik (Avatar, Konto-/Passwort-Formulare, Push, Modal)
   ---------------------------------------------------------------------------- */
body.theme-opptimus .profile-card {
  max-width: 760px;
  margin: 0 auto 18px;
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 24px 26px;
}
/* Avatar-Karte */
body.theme-opptimus .profile-avatar-card {
  display: flex;
  align-items: center;
  gap: 24px;
}
body.theme-opptimus .profile-avatar-wrap { position: relative; flex: 0 0 auto; }
body.theme-opptimus .profile-avatar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(215, 182, 74, .4);
  background: rgba(215, 182, 74, .1);
  cursor: pointer;
}
body.theme-opptimus .profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.theme-opptimus .profile-initial { font-size: 38px; font-weight: 800; color: var(--gold-2); }
body.theme-opptimus .profile-avatar-overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: 6px;
  background: rgba(0, 0, 0, .62);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity var(--opp-trans);
}
body.theme-opptimus .profile-avatar:hover .profile-avatar-overlay { opacity: 1; }
body.theme-opptimus .profile-avatar-x {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #1a1a26;
  color: #ff9aa3;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}
body.theme-opptimus .profile-info { min-width: 0; }
body.theme-opptimus .profile-name { margin: 0 0 8px; font-size: 22px; font-weight: 800; }
body.theme-opptimus .profile-status-row { margin: 0 0 8px; }
body.theme-opptimus .profile-username { margin: 0 0 4px; color: var(--muted); font-size: 14px; }
body.theme-opptimus .profile-hint { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
/* Formular-Karten */
body.theme-opptimus .profile-form-card h3,
body.theme-opptimus .profile-push h3 { margin: 0 0 16px; font-size: 18px; }
body.theme-opptimus .profile-form { display: flex; flex-direction: column; gap: 14px; max-width: 440px; }
body.theme-opptimus .profile-form label { display: flex; flex-direction: column; gap: 6px; }
body.theme-opptimus .profile-form label span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
}
body.theme-opptimus .profile-form input {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(0, 0, 0, .25);
  color: var(--text);
  padding: 9px 12px;
  font: inherit;
  outline: none;
}
body.theme-opptimus .profile-form input:focus { border-color: var(--gold); }
body.theme-opptimus .profile-form input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #14141f inset;
  -webkit-text-fill-color: var(--text);
  caret-color: var(--text);
}
body.theme-opptimus .profile-form button { align-self: flex-start; margin-top: 4px; }
/* Push-Karte */
body.theme-opptimus .profile-push-qr {
  display: inline-block;
  margin: 6px 0 14px;
  padding: 12px;
  border-radius: 12px;
  background: #fff;
}
body.theme-opptimus .profile-push-qr svg { display: block; width: 160px; height: 160px; }
body.theme-opptimus .profile-app-install-text { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
body.theme-opptimus .profile-push-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 12px;
}
body.theme-opptimus .profile-push code {
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(0, 0, 0, .3);
  font-size: 12px;
  color: var(--gold-2);
}
/* Push-Präferenzen */
body.theme-opptimus .profile-prefs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
body.theme-opptimus .profile-prefs h4 { margin: 0; font-size: 15px; }
body.theme-opptimus .profile-pref {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .03);
  padding: 12px 14px;
  cursor: pointer;
}
body.theme-opptimus .profile-pref input { margin-top: 3px; accent-color: var(--gold); }
body.theme-opptimus .profile-pref span { display: flex; flex-direction: column; gap: 2px; }
body.theme-opptimus .profile-pref strong { font-size: 14px; }
body.theme-opptimus .profile-pref small { color: var(--muted); font-size: 12px; line-height: 1.45; }
/* Avatar-Entfernen-Modal */
body.theme-opptimus .profile-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, .62);
  backdrop-filter: blur(4px);
}
body.theme-opptimus .profile-modal-backdrop.is-open { display: grid; }
body.theme-opptimus .profile-modal {
  position: relative;
  width: min(420px, 100%);
  border: 1px solid var(--line);
  border-radius: var(--opp-radius);
  background: var(--opp-card);
  padding: 26px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .5);
}
body.theme-opptimus .profile-modal h3 { margin: 0 0 10px; font-size: 19px; }
body.theme-opptimus .profile-modal p { margin: 0 0 20px; color: var(--muted); line-height: 1.5; }
body.theme-opptimus .profile-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  border: none;
  background: none;
  color: var(--muted);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
body.theme-opptimus .profile-modal-actions { display: flex; justify-content: flex-end; gap: 10px; }

/* ----------------------------------------------------------------------------
   18. /ticket (Einzel-Ticket) — Standard-Optik re-gescoped (Panel, Poster, QR,
       Fakten, Barcode). --ticket-cover wird inline in ticket.php gesetzt.
   ---------------------------------------------------------------------------- */
body.theme-opptimus .ticket-page{
  align-items:center;
  max-width:none;
  padding-top:8px;
  padding-bottom:38px;
}
body.theme-opptimus .ticket-page .site-header{
  width:min(1120px,calc(100% - 40px));
}
body.theme-opptimus .ticket-page-head{
  width:min(760px,calc(100% - 32px));
  margin:0 auto 10px;
  padding:0;
  max-width:min(760px,calc(100% - 32px));
  text-align:center;
}
body.theme-opptimus .ticket-brand{
  margin:0;
  color:var(--gold);
  font-family:Cinzel,Georgia,serif;
  font-size:18px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.1;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-page-head h2{
  margin:6px 0 0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding:6px 14px;
  border:1px solid rgba(201,162,39,.45);
  border-radius:999px;
  background:rgba(201,162,39,.12);
  color:var(--gold-light);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-status::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:currentColor;
  box-shadow:0 0 8px currentColor;
}
body.theme-opptimus .ticket-status.is-valid{
  border-color:rgba(39,201,100,.45);
  background:rgba(39,201,100,.12);
  color:#8ff0b2;
}
body.theme-opptimus .ticket-status.is-expired{
  border-color:rgba(139,139,170,.45);
  background:rgba(139,139,170,.1);
  color:#c4c4d2;
}
body.theme-opptimus .ticket-status.is-used,
body.theme-opptimus .ticket-status.is-cancelled{
  border-color:rgba(230,57,70,.5);
  background:rgba(230,57,70,.14);
  color:#ff9aa3;
}
body.theme-opptimus .ticket-scan-banner{
  width:min(760px,calc(100% - 32px));
  margin:0 auto 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:14px 20px;
  border-radius:14px;
  text-align:center;
  font-size:13px;
  line-height:1.45;
}
body.theme-opptimus .ticket-scan-banner strong{
  color:inherit;
  font-size:15px;
  font-weight:900;
  letter-spacing:.02em;
}
body.theme-opptimus .ticket-scan-banner span{
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:700;
}
body.theme-opptimus .ticket-scan-banner .ticket-scan-by{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
body.theme-opptimus .ticket-scan-banner .ticket-scan-by img,
body.theme-opptimus .ticket-scan-banner .ticket-scan-by b{
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:999px;
}
body.theme-opptimus .ticket-scan-banner .ticket-scan-by img{
  object-fit:cover;
  display:block;
}
body.theme-opptimus .ticket-scan-banner .ticket-scan-by b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#08080e;
  font-size:11px;
  font-weight:900;
}
body.theme-opptimus .ticket-scan-banner.is-ok{
  border:1px solid rgba(39,201,100,.55);
  background:rgba(39,201,100,.15);
  color:#a8f0c2;
}
body.theme-opptimus .ticket-scan-banner.is-used{
  border:1px solid rgba(230,57,70,.55);
  background:rgba(230,57,70,.14);
  color:#ffb0b8;
}
body.theme-opptimus .ticket-scan-banner.is-expired{
  border:1px solid rgba(139,139,170,.45);
  background:rgba(139,139,170,.1);
  color:#c4c4d2;
}
body.theme-opptimus .ticket-scan-action{
  margin:0 auto 10px;
  text-align:center;
}
body.theme-opptimus .ticket-scan-action .scan-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 24px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#08080e;
  font-size:13px;
  font-weight:900;
  letter-spacing:.03em;
  text-decoration:none;
  box-shadow:0 14px 32px rgba(201,162,39,.2);
}
body.theme-opptimus .ticket-seat-switcher{
  width:min(760px,calc(100% - 32px));
  margin:0 auto 8px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:8px;
}
body.theme-opptimus .ticket-seat-switcher span{
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-seat-switcher a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  min-height:32px;
  padding:0 12px;
  border:1px solid rgba(201,162,39,.32);
  border-radius:999px;
  background:rgba(201,162,39,.1);
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-decoration:none;
}
body.theme-opptimus .ticket-seat-switcher a[aria-current="page"]{
  border-color:transparent;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#08080e;
  box-shadow:0 0 18px rgba(201,162,39,.32);
}
body.theme-opptimus .ticket-seat-switcher a.is-used{
  border-color:rgba(230,57,70,.5);
  background:rgba(230,57,70,.14);
  color:#ff9aa3;
}
body.theme-opptimus .ticket-seat-switcher a.is-valid{
  border-color:rgba(39,201,100,.42);
  background:rgba(39,201,100,.1);
  color:#8ff0b2;
}
body.theme-opptimus .ticket-seat-switcher a.is-expired{
  border-color:rgba(139,139,170,.45);
  background:rgba(139,139,170,.1);
  color:#c4c4d2;
}
body.theme-opptimus .ticket-seat-switcher a.is-used[aria-current="page"]{
  border-color:rgba(230,57,70,.78) !important;
  background:rgba(230,57,70,.92) !important;
  color:#fff !important;
  box-shadow:0 0 18px rgba(230,57,70,.32) !important;
}
body.theme-opptimus .ticket-seat-switcher a.is-valid[aria-current="page"]{
  border-color:transparent;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#08080e;
}
body.theme-opptimus .ticket-seat-switcher a.is-expired[aria-current="page"]{
  border-color:rgba(139,139,170,.62) !important;
  background:rgba(139,139,170,.22) !important;
  color:#f0f0f6 !important;
}
body.theme-opptimus .ticket-page .ticket-panel{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:min(760px,calc(100% - 32px));
  min-height:310px;
  margin:0 auto 18px;
  display:grid;
  grid-template-columns:148px minmax(0,1fr) 170px;
  gap:0;
  padding:0;
  border:1px solid rgba(201,162,39,.45);
  border-radius:14px;
  background:linear-gradient(135deg,#12112e,#0d0d24 55%,#080816);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.7),0 0 0 1px rgba(201,162,39,.05) inset;
}
body.theme-opptimus .ticket-page .ticket-panel::before{
  content:"";
  position:absolute;
  z-index:3;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:.72;
}
body.theme-opptimus .ticket-bg{
  position:absolute;
  inset:0;
  z-index:0;
  background-image:var(--ticket-cover);
  background-size:var(--ticket-cover-bg-size,130%) auto;
  background-position:var(--ticket-cover-x,50%) var(--ticket-cover-y,50%);
  background-repeat:no-repeat;
  opacity:.12;
  pointer-events:none;
}
body.theme-opptimus .ticket-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(8,8,14,.62),rgba(8,8,14,.2) 50%,rgba(8,8,14,.72));
}
body.theme-opptimus .ticket-poster{
  position:relative;
  z-index:1;
  display:flex;
  min-width:0;
  overflow:hidden;
}
body.theme-opptimus .ticket-poster img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
body.theme-opptimus .ticket-poster-empty{
  align-items:center;
  justify-content:center;
  background:#111123;
  color:rgba(255,255,255,.22);
  font-family:"Bebas Neue",Impact,"Arial Narrow",sans-serif;
  font-size:76px;
}
body.theme-opptimus .ticket-page .ticket-info{
  position:relative;
  z-index:1;
  min-width:0;
  padding:22px 24px;
}
body.theme-opptimus .ticket-cinema{
  margin:0;
  color:var(--gold);
  font-family:Cinzel,Georgia,serif;
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-cinema-sub{
  margin:3px 0 0;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-page .ticket-info h2{
  margin:10px 0 0;
  color:#fff;
  font-family:"Bebas Neue",Impact,"Arial Narrow",sans-serif;
  font-size:clamp(36px,4.8vw,48px);
  font-weight:400;
  letter-spacing:.02em;
  line-height:.98;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
body.theme-opptimus .ticket-page .ticket-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px 14px;
  margin:16px 0 0;
}
body.theme-opptimus .ticket-page .ticket-facts div{
  min-width:0;
}
body.theme-opptimus .ticket-page .ticket-facts dt{
  color:var(--muted);
  font-size:8px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-page .ticket-facts dd{
  margin:3px 0 0;
  color:#fff;
  font-family:Cinzel,Georgia,serif;
  font-size:15px;
  font-weight:800;
  line-height:1.2;
}
body.theme-opptimus .ticket-page .ticket-seat-note{
  margin:12px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
body.theme-opptimus .ticket-barcode{
  margin-top:16px;
  padding:6px 8px 3px;
  border-radius:4px;
  background:#fff;
  display:flex;
  flex-direction:column;
}
body.theme-opptimus .ticket-barcode svg{
  display:block;
  width:100%;
  height:40px;
}
body.theme-opptimus .ticket-barcode-num{
  margin-top:2px;
  color:#111;
  font-family:"Courier New",monospace;
  font-size:9px;
  letter-spacing:.18em;
  text-align:center;
}
body.theme-opptimus .ticket-page .ticket-qr-wrap{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  padding:24px 14px;
  border-left:2px dashed rgba(201,162,39,.5);
  background:rgba(5,5,18,.65);
  text-align:center;
}
body.theme-opptimus .ticket-page .ticket-qr-wrap::before,
body.theme-opptimus .ticket-page .ticket-qr-wrap::after{
  content:"";
  position:absolute;
  left:-11px;
  width:20px;
  height:20px;
  border:1px solid rgba(201,162,39,.32);
  border-radius:50%;
  background:#0d0d24;
}
body.theme-opptimus .ticket-page .ticket-qr-wrap::before{top:-11px}
body.theme-opptimus .ticket-page .ticket-qr-wrap::after{bottom:-11px}
body.theme-opptimus .ticket-page .ticket-qr{
  width:128px;
  height:128px;
  margin:0;
  padding:6px;
  border-radius:6px;
  background:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.4);
}
body.theme-opptimus .ticket-page .ticket-qr svg,
body.theme-opptimus .ticket-page .ticket-qr img{
  width:100%;
  height:100%;
  display:block;
}
body.theme-opptimus .ticket-page .ticket-qr-hint{
  max-width:140px;
  margin:10px auto 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
body.theme-opptimus .ticket-page .ticket-seatbig{
  margin-top:14px;
  font-family:Cinzel,Georgia,serif;
}
body.theme-opptimus .ticket-page .ticket-seatbig-label{
  color:var(--muted);
  font-size:9px;
  letter-spacing:.22em;
  text-transform:uppercase;
}
body.theme-opptimus .ticket-page .ticket-seatbig-val{
  margin-top:4px;
  color:var(--gold);
  font-size:34px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1;
}
body.theme-opptimus .ticket-page .ticket-seatbig-val.is-used{
  color:#ff5f6d;
  text-shadow:0 0 18px rgba(230,57,70,.26);
}
body.theme-opptimus .ticket-stub-code{
  position:absolute;
  top:18px;
  right:6px;
  color:rgba(255,255,255,.45);
  font-family:"Courier New",monospace;
  font-size:9px;
  letter-spacing:.14em;
  writing-mode:vertical-rl;
}
body.theme-opptimus .ticket-page .ticket-cancelled-hint{
  max-width:130px;
  margin:auto;
  color:#ffb0b8;
  font-weight:800;
}
body.theme-opptimus .ticket-page .ticket-back{
  display:flex;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
  margin:6px auto 42px;
}
body.theme-opptimus .ticket-page .ticket-print-btn{
  margin-left:0;
}
@media(max-width:760px){
  body.theme-opptimus .ticket-page .site-header,
  body.theme-opptimus .ticket-page .ticket-panel,
  body.theme-opptimus .ticket-page-head,
  body.theme-opptimus .ticket-seat-switcher{
    width:calc(100% - 28px);
  }
  body.theme-opptimus .ticket-page .ticket-panel{
    grid-template-columns:1fr;
  }
  body.theme-opptimus .ticket-poster{
    display:none;
  }
  body.theme-opptimus .ticket-page .ticket-info{
    padding:20px;
  }
  body.theme-opptimus .ticket-page .ticket-facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.theme-opptimus .ticket-page .ticket-qr-wrap{
    border-left:0;
    border-top:2px dashed rgba(201,162,39,.5);
    padding:18px 14px 24px;
  }
  body.theme-opptimus .ticket-page .ticket-qr-wrap::before{
    left:50%;
    top:-11px;
    transform:translateX(-50%);
  }
  body.theme-opptimus .ticket-page .ticket-qr-wrap::after,
  body.theme-opptimus .ticket-stub-code{
    display:none;
  }
}
@media print{
  body.theme-opptimus .site-topbar,
  body.theme-opptimus .site-header,
  body.theme-opptimus .ticket-page-head,
  body.theme-opptimus .ticket-scan-action,
  body.theme-opptimus .ticket-seat-switcher,
  body.theme-opptimus .ticket-back{
    display:none !important;
  }
  body.theme-opptimus .ticket-page{
    padding:0 !important;
  }
  body.theme-opptimus .ticket-page .ticket-panel{
    width:680px;
    max-width:100%;
    margin:0 auto;
    box-shadow:none;
    break-inside:avoid;
  }
}

/* ----------------------------------------------------------------------------
   17b. /profil-Layout exakt wie Standard: Karten als 2-Spalten-Grid (h3/Avatar
        links, Inhalt voll breit rechts), Formulare voll breit, Push zentriert.
   ---------------------------------------------------------------------------- */
/* Nur die Avatar-Karte ist 2-spaltig (Avatar links, Info rechts). */
body.theme-opptimus .profile-avatar-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}
/* Konto-/Passwort-Karten einspaltig: Überschrift oben, Formular voll breit. */
body.theme-opptimus .profile-form-card {
  display: block !important;
}
body.theme-opptimus .profile-form {
  max-width: none;
}
/* Push-Benachrichtigungen komplett zentriert (wie Standard).
   WICHTIG: site.css setzt .profile-card{display:flex} -> die Push-Karte MUSS
   explizit display:block sein, sonst sind alle Inhalte Flex-Items und
   text-align:center wirkt nicht (genau der Bug). */
body.theme-opptimus .profile-push {
  display: block !important;
  text-align: center !important;
}
body.theme-opptimus .profile-push > * {
  text-align: center !important;
}
body.theme-opptimus .profile-push-qr {
  margin-left: auto !important;
  margin-right: auto !important;
}
body.theme-opptimus .profile-push-actions,
body.theme-opptimus .profile-store-actions,
body.theme-opptimus .profile-push-os .profile-push-actions {
  display: block !important;
  text-align: center !important;
}
body.theme-opptimus .profile-push-actions .btn-soft,
body.theme-opptimus .profile-store-actions .btn-soft {
  display: inline-flex !important;
  width: auto !important;
  max-width: none !important;
  margin: 5px !important;
  vertical-align: middle;
}
/* Prefs: Überschrift/Hinweis zentriert, Karten links lesbar, Speichern zentriert. */
body.theme-opptimus .profile-prefs > h4,
body.theme-opptimus .profile-prefs > .profile-hint {
  text-align: center !important;
}
body.theme-opptimus .profile-pref {
  text-align: left !important;
}
body.theme-opptimus .profile-prefs > button {
  align-self: center;
}
body.theme-opptimus .profile-push-os {
  text-align: center;
}
/* Präferenz-Toggles bleiben links lesbar. */
body.theme-opptimus .profile-prefs {
  text-align: left;
}
/* Benutzername als Gold-Pille (wie Standard). */
body.theme-opptimus .profile-username {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin-top: 4px;
  border: 1px solid rgba(215, 182, 74, .28);
  border-radius: 999px;
  background: var(--gold-dim);
  padding: 3px 10px;
  color: var(--gold-2);
  font-size: 11px;
  letter-spacing: .06em;
}
@media (max-width: 680px) {
  body.theme-opptimus .profile-card:not(.profile-push) {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  body.theme-opptimus .profile-form { width: 100%; }
}

/* ----------------------------------------------------------------------------
   17c. Avatar-Karten-Fix: verstecktes Upload-Formular darf KEINE Grid-Zelle
        belegen (sonst rutscht der Avatar). + Push-Überschrift explizit zentriert.
   ---------------------------------------------------------------------------- */
body.theme-opptimus #profileAvatarForm {
  display: none !important;
}
body.theme-opptimus .profile-push > h3,
body.theme-opptimus .profile-push > .profile-hint,
body.theme-opptimus .profile-app-install-text {
  text-align: center !important;
}

/* Seat-screen curtain: Pi-style foreground curtain, shared by Standard/Opptimus. */
body.theme-opptimus .screen-stage{--curtain-fold:14px;--curtain-wave:11px;--curtain-shine:.24;}
body.theme-opptimus .screen-preview iframe{left:50%;top:50%;width:106%;height:154%;transform:translate(-50%,-50%);pointer-events:none;}
body.theme-opptimus .screen-curtain{inset:-12px -20px -5px;border-radius:16px 16px 32px 32px;background:linear-gradient(180deg,rgba(15,0,2,.34),transparent 28%,rgba(0,0,0,.3));box-shadow:0 22px 42px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,220,160,.14);perspective:900px;transform:none;transform-origin:bottom center;transition:opacity .18s ease;}
body.theme-opptimus .screen-curtain::before,
body.theme-opptimus .screen-curtain::after{top:0;bottom:0;width:52.5%;background:radial-gradient(ellipse at 52% 22%,rgba(255,255,255,var(--curtain-shine)),transparent 18%),radial-gradient(ellipse at 50% 78%,rgba(0,0,0,.36),transparent 36%),repeating-linear-gradient(90deg,#260105 0 calc(var(--curtain-fold) * .16),#52050d calc(var(--curtain-fold) * .24) calc(var(--curtain-fold) * .46),#84131c calc(var(--curtain-fold) * .58) calc(var(--curtain-fold) * .74),#d33b32 calc(var(--curtain-fold) * .86) var(--curtain-fold),#5a0610 calc(var(--curtain-fold) * 1.12) calc(var(--curtain-fold) * 1.36),#240107 calc(var(--curtain-fold) * 1.52) calc(var(--curtain-fold) * 1.84)),repeating-radial-gradient(ellipse at 50% 12%,rgba(255,255,255,.1) 0 2px,transparent 4px var(--curtain-wave)),linear-gradient(180deg,rgba(255,230,175,.14),transparent 24%,rgba(0,0,0,.56));box-shadow:inset 0 0 38px rgba(0,0,0,.62),inset 0 16px 22px rgba(255,255,255,.08),0 0 18px rgba(0,0,0,.3);transform-style:preserve-3d;transition:none;}
body.theme-opptimus .screen-curtain::before{left:0;border-right:1px solid rgba(255,210,150,.14);border-radius:16px 0 0 32px;}
body.theme-opptimus .screen-curtain::after{right:0;border-left:1px solid rgba(255,210,150,.14);border-radius:0 16px 32px 0;}
body.theme-opptimus .screen-stage.curtain-open .screen-curtain{opacity:0;transition:opacity .35s ease 5.7s;}
body.theme-opptimus .screen-stage.curtain-open .screen-curtain::before{animation:seatCurtainStoffdruckLeft 6.4s ease-in-out forwards;}
body.theme-opptimus .screen-stage.curtain-open .screen-curtain::after{animation:seatCurtainStoffdruckRight 6.4s ease-in-out forwards;}
body.theme-opptimus .screen-stage.curtain-reset .screen-curtain,
body.theme-opptimus .screen-stage.curtain-reset .screen-curtain::before,
body.theme-opptimus .screen-stage.curtain-reset .screen-curtain::after{transition:none!important;animation:none!important;transform:none!important;}
body.theme-opptimus .screen-sound-hint{display:none!important;}
@keyframes seatCurtainStoffdruckLeft{18%{transform:translateX(3%) scaleX(1.05);}62%{transform:translateX(-43%) scaleX(.82);}to{transform:translateX(-101%) scaleX(.58);}}
@keyframes seatCurtainStoffdruckRight{18%{transform:translateX(-3%) scaleX(1.05);}62%{transform:translateX(43%) scaleX(.82);}to{transform:translateX(101%) scaleX(.58);}}
body.theme-opptimus .profile-trailer-card .profile-prefs{margin-top:14px;}
body.theme-opptimus .profile-trailer-card .profile-pref input{accent-color:var(--gold);}
@media(max-width:680px){
  body.theme-opptimus .screen-stage{width:min(92vw,620px);}
  body.theme-opptimus .screen-curtain{inset:-10px -14px -4px;}
  body.theme-opptimus .screen-preview iframe{width:112%;height:162%;}
}

/* ============================================================================
 * PI-MOBILE-PARITAET OPPTIMUS — meine-tickets / profil (Smartphone)
 * Spiegelt die Standard-Theme-Mobilfixes fuer das Opptimus-Theme.
 * ========================================================================== */
@media (max-width: 760px){
  /* Ticketkarten einspaltig stapeln statt 3-Spalten-Overlap (wie /meine-tickets Standard) */
  body.theme-opptimus .booking-card,
  body.theme-opptimus .booking-card-grouped{
    display:grid !important; grid-template-columns:minmax(0,1fr) !important;
    gap:12px !important; align-items:start !important; padding:16px !important; overflow:visible !important;
  }
  body.theme-opptimus .booking-card .my-ticket-cover{ width:64px !important; height:92px !important; justify-self:start !important; }
  body.theme-opptimus .booking-card .booking-main{ padding-left:0 !important; min-width:0 !important; }
  body.theme-opptimus .booking-card .booking-side{
    flex-direction:row !important; flex-wrap:wrap !important; align-items:center !important;
    justify-content:flex-start !important; width:100% !important; gap:10px !important;
  }
  body.theme-opptimus .booking-card .booking-actions{
    width:100% !important; flex-wrap:wrap !important; justify-content:flex-start !important; gap:8px !important;
  }
  body.theme-opptimus .booking-card .booking-actions .btn-link,
  body.theme-opptimus .booking-card .booking-actions .btn-danger,
  body.theme-opptimus .booking-card .booking-actions form{ flex:1 1 140px !important; }
  body.theme-opptimus .booking-card .booking-actions form button{ width:100% !important; }

  /* Profil: Avatar-Karte einspaltig+mittig, Rollen-Pille ("Mitglied") mittig, X sichtbar */
  body.theme-opptimus .profile-card:not(.profile-push),
  body.theme-opptimus .profile-avatar-card{
    grid-template-columns:1fr !important; justify-items:center !important; text-align:center !important;
    overflow:visible !important;
  }
  body.theme-opptimus .profile-avatar-wrap{ overflow:visible !important; }
  body.theme-opptimus .profile-avatar-x{ display:flex !important; z-index:5 !important; }
  body.theme-opptimus .profile-status-row{ justify-content:center !important; }
}

/* ============================================================================
 * OPPTIMUS-FIXES: meine-tickets Schrift + Avatar-Loesch-X
 * ========================================================================== */
/* Schrift der "Letzte Vorfuehrungen"-Sektion an das Opptimus-Theme angleichen
 * (Theme-Karten .opp-show__body h3 erben Inter; hier war Cinzel-serif vom Standard). */
body.theme-opptimus .ticket-section-title,
body.theme-opptimus .booking-main h3,
body.theme-opptimus .showtime-main h3{
  font-family:inherit !important;
}

/* Avatar-Loesch-X sichtbar machen (wie Standard-Theme): kein Clipping + klarer roter Kreis. */
body.theme-opptimus .profile-card,
body.theme-opptimus .profile-avatar-card,
body.theme-opptimus .profile-avatar-wrap{
  overflow:visible !important;
}
body.theme-opptimus .profile-avatar-x{
  display:flex !important; align-items:center !important; justify-content:center !important;
  position:absolute !important; top:-6px !important; right:-6px !important;
  width:30px !important; height:30px !important; padding:0 !important;
  border-radius:50% !important; z-index:6 !important;
  border:1.5px solid #ff8d96 !important; background:#1a1a26 !important;
  color:#ff8d96 !important; font-size:20px !important; line-height:1 !important; cursor:pointer;
}
body.theme-opptimus .profile-avatar-x:hover{ color:#fff !important; background:#e63946 !important; border-color:#e63946 !important; }

/* Rollen-Pillen einheitlich: Admin ROT, Scanner BLAU, Mitglied GRAU. */
body.theme-opptimus .status-badge.profile-role-admin{ border-color:rgba(230,57,70,.5)!important; background:rgba(230,57,70,.15)!important; color:#ff8d96!important; }
body.theme-opptimus .status-badge.profile-role-scanner{ border-color:rgba(96,165,250,.5)!important; background:rgba(96,165,250,.15)!important; color:#cfe8ff!important; }
body.theme-opptimus .status-badge.profile-role-user{ border-color:rgba(255,255,255,.22)!important; background:rgba(255,255,255,.07)!important; color:var(--muted)!important; }


/* === Verwaltungs-Header: Nutzer + Einlass gold wie Vorfuehrungen (data-admin-page, robust) === */
body[data-admin-page="nutzer"] .site-shell .tickets-head,
body[data-admin-page="einlass"] .site-shell .tickets-head{
  position:relative !important;overflow:hidden !important;
  border:1px solid color-mix(in srgb,var(--gold) 22%,transparent) !important;
  border-radius:20px !important;
  background:var(--card) !important;
  box-shadow:none !important;
}
body[data-admin-page="nutzer"] .site-shell .tickets-head::after,
body[data-admin-page="einlass"] .site-shell .tickets-head::after{background:none !important;box-shadow:none !important;}
body[data-admin-page="nutzer"] .site-shell .tickets-head::before,
body[data-admin-page="einlass"] .site-shell .tickets-head::before{
  content:"" !important;position:absolute !important;left:0 !important;right:0 !important;top:0 !important;height:2px !important;
  background:linear-gradient(90deg,transparent,var(--gold),transparent) !important;
}

/* Einlass/Scan im Opptimus-Theme: normaler Textkopf, keine Banner-Karte. */
body.theme-opptimus[data-admin-page="einlass"] .site-shell .tickets-head{
  position:static !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  padding:0 !important;
}
body.theme-opptimus[data-admin-page="einlass"] .site-shell .tickets-head::before,
body.theme-opptimus[data-admin-page="einlass"] .site-shell .tickets-head::after{
  content:none !important;
  display:none !important;
}


/* ============================================================
   Codex 2026-06-12: Nutzerverwaltung (/verwaltung/nutzer) fuers
   OPPTIMUS-Theme. Die tu-* Komponenten waren NUR im Standard-Theme
   gestylt -> im opptimus-Theme roh/kaputt (riesige Avatare, ungestylte
   Inputs/Buttons). 1:1 aus standard.css portiert, auf .theme-opptimus
   umgeschrieben (gleiche --gold/--bg/--card-Variablen).
   ============================================================ */

body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card{
  width:100%;
  max-width:var(--admin-users-width);
  margin:0 auto 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:24px;
  border:1px solid var(--border,rgba(255,255,255,.08));
  border-radius:14px;
  background:var(--surface,#10101c);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card strong{
  display:block;
  color:var(--text);
  font-size:16px;
  font-weight:900;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-form{
  flex:0 0 auto;
  margin:0;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-button{
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#090914;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  padding:12px 22px;
  text-transform:uppercase;
  white-space:nowrap;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-button:disabled{
  opacity:1;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-section-title{
  max-width:var(--admin-users-width);
  margin:30px auto 14px;
  color:var(--muted);
  font-family:"Cinzel",serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:.1em;
  line-height:1.1;
  text-transform:uppercase;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-mainadmin,
body.theme-opptimus[data-admin-page="nutzer"] .tu-panel{
  width:100%;
  max-width:var(--admin-users-width);
  margin-left:auto;
  margin-right:auto;
  border:1px solid var(--border,rgba(255,255,255,.08));
  border-radius:12px;
  background:var(--surface,#10101c);
  box-shadow:none;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-mainadmin{
  display:flex;
  align-items:center;
  gap:16px;
  padding:22px 24px;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-panel{
  padding:24px;
  margin-bottom:30px;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-av{
  width:42px;
  height:42px;
  border:1px solid rgba(201,162,39,.35);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex:0 0 42px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#000;
  font-size:16px;
  font-weight:900;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-av img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-ma-info{
  min-width:0;
  flex:1 1 auto;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-ma-name{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  color:var(--text);
  font-size:16px;
  font-weight:800;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-badge{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  border:1px solid rgba(201,162,39,.5);
  border-radius:999px;
  color:var(--gold);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  line-height:1;
  padding:3px 9px;
  text-transform:uppercase;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-ma-sub{
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-ma-note{
  flex:0 0 260px;
  color:var(--gold);
  font-size:11px;
  line-height:1.5;
  text-align:right;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row{
  display:grid;
  grid-template-columns:54px minmax(105px,1fr) minmax(105px,1fr) minmax(145px,1.28fr) 116px 150px 356px;
  gap:8px;
  align-items:center;
  padding:10px 0;
  border-top:1px solid rgba(255,255,255,.06);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row.tu-head{
  padding-top:0;
  padding-bottom:10px;
  border-top:0;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row.is-muted{
  opacity:.7;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-input-wrap{
  min-width:0;
  display:grid;
  gap:5px;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-input,
body.theme-opptimus[data-admin-page="nutzer"] .tu-row select{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  height:38px;
  margin:0;
  border:1px solid var(--border,rgba(255,255,255,.14));
  border-radius:8px;
  background:rgba(255,255,255,.04);
  color:var(--text);
  font:inherit;
  font-size:13px;
  outline:none;
  padding:9px 12px;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-input[readonly],
body.theme-opptimus[data-admin-page="nutzer"] .tu-input:disabled{
  opacity:1;
  -webkit-text-fill-color:var(--text);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-input:disabled{
  color:var(--muted);
  -webkit-text-fill-color:var(--muted);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row select,
body.theme-opptimus[data-manage-section] select,
body.theme-opptimus[data-admin-page] select{
  appearance:none !important;
  -webkit-appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23b9b3c8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 10px center !important;
  background-size:15px !important;
  padding-right:32px !important;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row select:focus{
  border-color:rgba(201,162,39,.55);
  background-color:rgba(201,162,39,.05);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-row select option{
  background:#16162a;
  color:#f0eff5;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:nowrap;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions button{
  margin:0;
  border-radius:999px;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1;
  padding:11px 14px;
  text-transform:uppercase;
  white-space:nowrap;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions button[value="set_role"]{
  border:1px solid rgba(201,162,39,.38);
  background:rgba(201,162,39,.12);
  color:var(--gold);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions button[value="set_disabled"]{
  border:1px solid rgba(201,162,39,.38);
  background:rgba(201,162,39,.12);
  color:var(--gold);
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions .tu-delete-disabled{
  border:1px solid rgba(230,57,70,.42);
  background:rgba(230,57,70,.10);
  color:#ff9aa3;
  cursor:default;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions .tu-delete-button{
  border:1px solid rgba(230,57,70,.42);
  background:rgba(230,57,70,.10);
  color:#ff9aa3;
}
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions .tu-delete-disabled:disabled{ opacity:1; }
body.theme-opptimus[data-admin-page="nutzer"] .tu-note{
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
body.theme-opptimus[data-admin-page="nutzer"] .site-shell .tickets-head,
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card,
body.theme-opptimus[data-admin-page="nutzer"] .tu-section-title,
body.theme-opptimus[data-admin-page="nutzer"] .tu-mainadmin,
body.theme-opptimus[data-admin-page="nutzer"] .tu-panel,
body.theme-opptimus[data-admin-page="nutzer"] .site-shell > .tenant-invite-card,
body.theme-opptimus[data-admin-page="nutzer"] .site-shell > .tenant-audit-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell .tickets-head,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tu-sync-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tu-section-title,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tu-mainadmin,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .tu-panel,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-invite-card,
body.theme-opptimus:has(.site-admin-subnav a[href="/verwaltung/nutzer"][aria-current="page"]) .site-shell > .tenant-audit-card{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
}
@media(max-width:1120px){
body.theme-opptimus[data-admin-page="nutzer"] .tu-row{
    grid-template-columns:54px minmax(130px,1fr) minmax(130px,1fr);
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-row.tu-head{
    display:none;
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-actions{
    grid-column:1 / -1;
    flex-wrap:wrap;
  }
}
@media(max-width:760px){
body.theme-opptimus[data-admin-page="nutzer"] .site-shell .tickets-head,
  body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card,
  body.theme-opptimus[data-admin-page="nutzer"] .tu-mainadmin,
  body.theme-opptimus[data-admin-page="nutzer"] .tu-panel{
    padding:18px !important;
    border-radius:14px !important;
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-card,
  body.theme-opptimus[data-admin-page="nutzer"] .tu-mainadmin{
    flex-direction:column;
    align-items:flex-start;
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-sync-button{
    width:100%;
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-ma-note{
    flex:auto;
    width:100%;
    text-align:left;
  }
body.theme-opptimus[data-admin-page="nutzer"] .tu-row{
    grid-template-columns:1fr;
    gap:8px;
  }
}

/* === Filmabstimmung-Verwaltung (/verwaltung/abstimmung): Banner-Karte wie Nutzer === */
body[data-admin-page="abstimmung"] .site-shell .tickets-head{
  position:relative !important;overflow:hidden !important;
  border:1px solid color-mix(in srgb,var(--gold) 22%,transparent) !important;
  border-radius:20px !important;background:var(--card) !important;box-shadow:none !important;
}
body[data-admin-page="abstimmung"] .site-shell .tickets-head::after{background:none !important;box-shadow:none !important;}
body[data-admin-page="abstimmung"] .site-shell .tickets-head::before{
  content:"" !important;position:absolute !important;left:0 !important;right:0 !important;top:0 !important;height:2px !important;
  background:linear-gradient(90deg,transparent,var(--gold),transparent) !important;
}

/* Filmabstimmung im Opptimus-Theme: normaler Textkopf, keine Banner-Karte (wie Einlass). */
body.theme-opptimus[data-admin-page="abstimmung"] .site-shell .tickets-head{
  position:static !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  padding:0 !important;
}
body.theme-opptimus[data-admin-page="abstimmung"] .site-shell .tickets-head::before,
body.theme-opptimus[data-admin-page="abstimmung"] .site-shell .tickets-head::after{
  content:none !important;
  display:none !important;
}
/* Filmabstimmung-Karten (Voting-Box + Form-Panels) an die Opptimus-Admin-Karten
   (Einstellungen = .assign-card mit var(--opp-card)) farblich angleichen. */
body.theme-opptimus[data-admin-page="abstimmung"] #fvPi .poll-card,
body.theme-opptimus[data-admin-page="abstimmung"] #fvPi .panel{
  background:var(--opp-card) !important;
  border-radius:var(--opp-radius) !important;
}
