/* Ekaterinburg only. The event artwork and catalog remain admin-managed. */
html.rave-disco-document {
  color-scheme: dark;
  background: #090807;
}

html.rave-disco-document body {
  background: #090807;
}

.rave-disco-theme,
.rave-disco-theme.app-tab-info {
  --bg: #090807;
  --surface: #17120e;
  --ink: #f6e6cb;
  --muted: #c9b49c;
  --soft: #261a12;
  --line: rgba(247, 108, 16, .4);
  --pink: #f36b10;
  --red: #f36b10;
  --red-dark: #11100e;
  --red-hot: #ff7b17;
  --blue: #f6e6cb;
  --violet: #f36b10;
  --lemon: #f6e6cb;
  --green: #f36b10;
  --display-font: Georgia, "Times New Roman", serif;
  position: relative;
  isolation: isolate;
  color: var(--ink);
  background:
    radial-gradient(ellipse 120% 38% at 100% -2%, rgba(207, 58, 0, .32), transparent 65%),
    radial-gradient(ellipse 92% 26% at -18% 68%, rgba(139, 33, 0, .16), transparent 70%),
    repeating-linear-gradient(100deg, transparent 0 29px, rgba(255, 100, 13, .022) 30px 31px),
    #090807;
}

.rave-disco-theme::before,
.rave-disco-theme::after { display: none; }

.rave-disco-theme .page { position: relative; z-index: 1; }
.rave-disco-theme .event-feed,
.rave-disco-theme .orders,
.rave-disco-theme .album-list { gap: 24px; }

.rave-disco-theme .event-preview,
.rave-disco-theme .empty-state,
.rave-disco-theme .order-card,
.rave-disco-theme .menu-card,
.rave-disco-theme .legal-card,
.rave-disco-theme .qr-modal-card {
  overflow: hidden;
  border: 1px solid rgba(255, 116, 24, .5);
  border-radius: 2px;
  background: linear-gradient(145deg, #1d1712, #0e0d0b 64%);
  box-shadow: 0 0 0 5px #090807, 0 0 0 6px rgba(255, 116, 24, .38), 0 16px 35px rgba(0, 0, 0, .48);
}

.rave-disco-theme .event-preview {
  gap: 15px;
  padding: 9px 9px 21px;
  margin-top: 7px;
}

/* No label on top of the poster: the artwork already contains its title. */
.rave-disco-theme .event-preview::before,
.rave-disco-theme .event-preview::after { display: none; }

.rave-disco-theme .event-poster-button,
.rave-disco-theme .detail-poster,
.rave-disco-theme .album-card button {
  overflow: hidden;
  border: 1px solid #e45d0b;
  border-radius: 1px;
  background: #050505;
  box-shadow: 0 0 0 4px #080706, 0 0 0 5px #a83c09;
}

.rave-disco-theme .event-poster-button::after,
.rave-disco-theme .detail-poster::after,
.rave-disco-theme .album-card button::after { display: none; }

.rave-disco-theme .event-poster-button img,
.rave-disco-theme .detail-poster img {
  border-radius: 0;
  filter: contrast(1.06) saturate(1.04);
}

.rave-disco-theme .rave-wordmark,
.rave-disco-theme .event-preview-copy h2,
.rave-disco-theme .event-detail h1,
.rave-disco-theme .page-title,
.rave-disco-theme .checkout-card h2,
.rave-disco-theme .order-card h2,
.rave-disco-theme .empty-state h2,
.rave-disco-theme .info-hero h1,
.rave-disco-theme .qr-modal-head h2,
.rave-disco-theme .album-card span {
  color: #f36b10;
  font-family: var(--display-font);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: .95;
  text-transform: uppercase;
  text-shadow: 2px 3px 0 #080706;
}

.rave-disco-theme .event-preview-copy h2,
.rave-disco-theme .event-detail h1,
.rave-disco-theme .page-title { font-size: clamp(30px, 8vw, 45px); }

.rave-disco-theme .event-preview-copy::before,
.rave-disco-theme .event-detail::before {
  content: "RAVE  /  EKATERINBURG";
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 8px 0 11px;
  padding: 5px 0;
  border-top: 1px solid #e85c0d;
  border-bottom: 1px solid #e85c0d;
  color: #f6e6cb;
  background: transparent;
  font-family: Georgia, serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.2;
  transform: none;
}

.rave-disco-theme .event-chip-row {
  grid-template-columns: .8fr 1.35fr .85fr .68fr;
  gap: 5px;
}

.rave-disco-theme .event-chip,
.rave-disco-theme .event-chip:nth-child(even),
.rave-disco-theme .event-chip-blue,
.rave-disco-theme .event-chip-pink,
.rave-disco-theme .event-chip-venue,
.rave-disco-theme .event-chip.event-chip-venue {
  min-width: 0;
  min-height: 53px;
  padding: 6px 3px;
  overflow: hidden;
  border: 1px solid #a64a15;
  border-radius: 1px;
  color: #f6e6cb;
  background: #201710 !important;
  box-shadow: inset 0 0 0 2px #100d0a;
  transform: none;
}

.rave-disco-theme .event-chip:first-child { background: #e9600d !important; }
.rave-disco-theme .event-chip strong,
.rave-disco-theme .event-chip small,
.rave-disco-theme .event-chip-venue strong,
.rave-disco-theme .event-chip-venue small {
  max-width: 100%;
  color: #f6e6cb !important;
  font-family: Georgia, serif;
  text-shadow: none;
}
.rave-disco-theme .event-chip:first-child strong,
.rave-disco-theme .event-chip:first-child small { color: #110c09 !important; }
.rave-disco-theme .event-chip-date small {
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: -.04em;
  line-height: 1;
  white-space: nowrap;
}

.rave-disco-theme .event-preview-copy p,
.rave-disco-theme .event-detail .lead,
.rave-disco-theme .empty-state p,
.rave-disco-theme .checkout-card p,
.rave-disco-theme .legal-card p,
.rave-disco-theme .detail-text p,
.rave-disco-theme .event-description,
.rave-disco-theme .event-meta {
  color: #d9c5a9;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.48;
}

.rave-disco-theme .lineup { gap: 7px; }
.rave-disco-theme .lineup span,
.rave-disco-theme .lineup span:nth-child(odd),
.rave-disco-theme .lineup span:nth-child(even) {
  min-height: 36px;
  padding: 8px 11px;
  border: 1px solid #b34c0e;
  border-radius: 1px;
  color: #f4dbc0;
  background: #25160d;
  box-shadow: inset 0 0 0 2px #0a0908;
  font-family: Georgia, serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.1;
  transform: none;
}

.rave-disco-theme .event-badge,
.rave-disco-theme .checkout-event-badge {
  min-height: 34px;
  padding-inline: 10px;
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #f6e6cb;
  background: #20120b;
  box-shadow: none;
  text-shadow: none;
  transform: none;
  animation: none;
}

.rave-disco-theme .event-badge-below-poster {
  position: relative;
  inset: auto;
  justify-self: start;
  width: fit-content;
  max-width: calc(100% - 6px);
  margin: -1px 3px 0;
  white-space: normal;
  line-height: 1.15;
}

.rave-disco-theme .primary,
.rave-disco-theme .secondary {
  min-height: 56px;
  border: 1px solid #ff9a37;
  border-radius: 1px;
  color: #120b06;
  background: linear-gradient(180deg, #ff8620, #dc5108);
  box-shadow: inset 0 0 0 2px #6d2506, 4px 4px 0 #0a0807;
  font-family: Georgia, serif;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: .03em;
  line-height: 1.15;
  text-transform: uppercase;
  text-shadow: none;
}
.rave-disco-theme .secondary {
  color: #f6e6cb;
  background: #24160e;
}
.rave-disco-theme .primary:disabled,
.rave-disco-theme .secondary:disabled {
  border-color: #74685d;
  color: #cfbba3;
  background: #4c3e33;
  box-shadow: none;
  opacity: 1;
}

.rave-disco-theme .status-pill,
.rave-disco-theme .ticket-qr,
.rave-disco-theme .tier-summary,
.rave-disco-theme .ticket-tier-option,
.rave-disco-theme .checkout-price-card,
.rave-disco-theme .ticket-quantity-summary,
.rave-disco-theme .ticket-quantity-control {
  border: 1px solid #8f4822;
  border-radius: 1px;
  color: #f6e6cb;
  background: #201710;
  box-shadow: inset 0 0 0 2px #110e0b;
}
.rave-disco-theme .ticket-tier-option.active,
.rave-disco-theme .checkout-price-card {
  border-color: #f36b10;
  background: #49200e;
}
.rave-disco-theme .ticket-tier-option small,
.rave-disco-theme .ticket-tier-option:not(.active) small,
.rave-disco-theme .promo-feedback,
.rave-disco-theme .qr-modal-card small { color: #cbb69b; }

.rave-disco-theme .phone-field,
.rave-disco-theme input,
.rave-disco-theme select {
  border: 1px solid #a24e1b;
  border-radius: 1px;
  color: #f6e6cb;
  background: #211a14;
  box-shadow: none;
}
.rave-disco-theme input::placeholder { color: #b9a48c; }
.rave-disco-theme .phone-field:focus-within,
.rave-disco-theme input:focus,
.rave-disco-theme select:focus { outline: 2px solid #f36b10; outline-offset: 1px; }

/* Explicit scroll is essential on a Telegram-height checkout sheet. */
.rave-disco-theme .checkout-card {
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc(100dvh - max(12px, var(--safe-top)));
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #f36b10;
  border-bottom: 0;
  border-radius: 2px 2px 0 0;
  color: #f6e6cb;
  background: #17120e;
  box-shadow: 0 -5px 0 #090807, 0 -6px 0 #f36b10;
}
.rave-disco-theme .checkout-title { border-bottom: 1px solid #a14d1c; }
.rave-disco-theme .checkout-title span { color: #f36b10; }
.rave-disco-theme .checkout-title button,
.rave-disco-theme .qr-close-button,
.rave-disco-theme .ticket-quantity-control button {
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #f6e6cb;
  background: #2b1b11;
  box-shadow: none;
}
.rave-disco-theme .checkout-card .phone-field span {
  border-right: 1px solid #f36b10;
  color: #f6e6cb;
  background: #38200f;
}

.rave-disco-theme .nirvana-seat-picker,
.rave-disco-theme .nirvana-plan,
.rave-disco-theme .seat-picker,
.rave-disco-theme .seat-map {
  border: 1px solid #a4511b;
  border-radius: 1px;
  background: #251d17;
}
.rave-disco-theme .nirvana-price-legend button {
  border: 1px solid #a4511b;
  border-radius: 1px;
  color: #f6e6cb;
  background: #211710;
  box-shadow: none;
}
.rave-disco-theme .nirvana-price-legend button.active { background: #b84b0c; }
.rave-disco-theme .nirvana-table { border: 1px solid #d3601c; border-radius: 1px; background: #261910; }
.rave-disco-theme .nirvana-table.vip .nirvana-table-seat::before { background: #f36b10; }
.rave-disco-theme .nirvana-table.super_vip .nirvana-table-seat::before { background: #ffd2a4; }
.rave-disco-theme .nirvana-table-seat.selected::before { background: #f6e6cb; box-shadow: 0 0 0 2px #f36b10; }

.rave-disco-theme .bottom-nav {
  width: min(560px, calc(100% - 18px));
  gap: 4px;
  padding: 5px;
  border: 1px solid #c7550d;
  border-radius: 1px;
  background: #15100d;
  box-shadow: 0 0 0 4px #090807, 0 0 0 5px #78300a, 0 8px 25px #0009;
  backdrop-filter: none;
}
.rave-disco-theme .bottom-nav button {
  border-radius: 1px;
  color: #dbc6aa;
  font-family: Georgia, serif;
  font-weight: 800;
  text-transform: uppercase;
}
.rave-disco-theme .bottom-nav button.active {
  color: #100b08;
  background: #ef6710;
  box-shadow: inset 0 0 0 1px #ff9a37;
}
.rave-disco-theme .nav-icon,
.rave-disco-theme .bottom-nav button:nth-child(2) .nav-icon,
.rave-disco-theme .bottom-nav button:nth-child(3) .nav-icon,
.rave-disco-theme .bottom-nav button.active .nav-icon {
  border: 1px solid currentColor;
  border-radius: 1px;
  color: inherit;
  background: transparent;
}

.rave-disco-theme .info-hero {
  overflow: hidden;
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #f6e6cb;
  background: radial-gradient(circle at 95% 0%, #6b280a, transparent 48%), #1b130e;
  box-shadow: 5px 5px 0 #070606;
}
.rave-disco-theme .info-hero::before,
.rave-disco-theme .info-hero::after { display: none; }
.rave-disco-theme .info-hero span {
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #f6e6cb;
  background: #261910;
}
.rave-disco-theme .info-hero h1 { font-size: clamp(29px, 8vw, 38px); }
.rave-disco-theme .info-row,
.rave-disco-theme .info-page .info-row,
.rave-disco-theme .legal-step,
.rave-disco-theme .app-tab-info .legal-step {
  border: 1px solid #8f4822;
  border-radius: 1px;
  color: #f6e6cb;
  background: #211710;
  box-shadow: 3px 3px 0 #080706;
}
.rave-disco-theme .info-icon,
.rave-disco-theme .info-page .info-icon,
.rave-disco-theme .legal-step span,
.rave-disco-theme .app-tab-info .legal-step span {
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #0d0907;
  background: #f36b10;
  box-shadow: none;
}
.rave-disco-theme .sheet-backdrop,
.rave-disco-theme .qr-modal-backdrop { background: rgba(0, 0, 0, .86); }
.rave-disco-theme .qr-thumb-button,
.rave-disco-theme .qr-modal-image { border: 4px solid #f36b10; border-radius: 1px; background: #fff; }
.rave-disco-theme .skeleton { border: 1px solid #f36b10; border-radius: 1px; background: #211710; animation: none; }

html.rave-disco-document #toast {
  border: 1px solid #f36b10;
  border-radius: 1px;
  color: #f6e6cb;
  background: #211710;
  box-shadow: 3px 3px 0 #070605;
}

@media (max-width: 390px) {
  .rave-disco-theme .page { padding-inline: 12px; }
  .rave-disco-theme .event-chip-row { gap: 3px; }
  .rave-disco-theme .event-chip strong { font-size: 12px; }
  .rave-disco-theme .event-chip:first-child strong { font-size: 18px; }
  .rave-disco-theme .bottom-nav { width: calc(100% - 12px); }
}
