/* Preview-only skin. Live /noe-app.css is not changed. */
html {
  background: #0d0d14 !important;
}
body.noe-app-body {
  background: #0d0d14 !important;
  color: #f0f0ff !important;
  font-family: "DM Sans", sans-serif !important;
  padding-top: 0;
}

.vno-preview-banner {
  position: sticky;
  top: 0;
  z-index: 4000;
  background: #e91e8c;
  color: #fff;
  text-align: center;
  font: 800 10px/1 "DM Sans", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 7px 10px;
}

/* Brand */
.vno-brand { display: flex; align-items: center; gap: 8px; min-width: 0; }
.vno-brand-logo { width: 42.3px; height: 42.3px; object-fit: contain; flex-shrink: 0; }
.vno-brand-text { line-height: 1.1; min-width: 0; }
.vno-brand-web {
  display: block;
  white-space: nowrap;
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .02em !important;
  color: #f0f0ff !important;
  -webkit-text-fill-color: #f0f0ff !important;
}
.vno-brand-pa {
  display: block;
  margin-top: 4px;
  font: 700 10px/1 "DM Sans", sans-serif !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
  color: #e91e8c !important;
  -webkit-text-fill-color: #e91e8c !important;
}

.noe-app-header,
.noe-app-header.noe-home-header {
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 16px 6px !important;
  background: #0d0d14 !important;
}
.noe-app-header .noe-app-logo,
.noe-app-header .noe-app-brand-text,
.noe-home-header .noe-home-logo,
.noe-home-header .noe-home-brand-text { display: none !important; }

.noe-wallet-wrap { display: flex !important; margin-left: auto; }
.vno-acct {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  position: relative !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 999px !important;
  color: #f0f0ff !important;
  padding: 7px 12px 7px 8px !important;
  font: 700 10px/1 "DM Sans", sans-serif !important;
  cursor: pointer;
}
.vno-acct svg { stroke: #e91e8c; width: 16px; height: 16px; flex-shrink: 0; }
.vno-acct span { color: #f0f0ff; white-space: nowrap; }
.vno-acct .noe-wallet-badge {
  display: flex !important;
  position: absolute;
  top: -5px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 100px;
  background: #e91e8c !important;
  color: #fff !important;
  font: 800 9px/16px "DM Sans", sans-serif !important;
  text-align: center;
  pointer-events: none;
}
.noe-plan-dot { display: none !important; }

/* List controls: date pill, then search + venues */
.vno-list-controls,
.noe-app-controls.vno-list-controls {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
  padding: 0 16px 8px !important;
  background: #0d0d14 !important;
}
.vno-date-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  align-self: center;
  flex-shrink: 0;
  gap: 8px;
  background: #12121a !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  color: #f0f0ff !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  font: 700 12px/1 "DM Sans", sans-serif !important;
}
.vno-date-pill svg { width: 14px; height: 14px; stroke: #e91e8c !important; }
.vno-search-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
  min-width: 0;
  width: 100%;
}
.vno-search-row .noe-app-search-wrap {
  flex: 1 1 auto;
  min-width: 0;
  height: 40px !important;
  background: color-mix(in srgb, color-mix(in srgb, var(--vno-section, #e91e8c) 3%, #0e0e14) 76%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--vno-section, #e91e8c) 12%, rgba(255,255,255,.07)) !important;
  border-radius: 14px !important;
  overflow: visible;
  -webkit-clip-path: inset(0 round 14px);
  clip-path: inset(0 round 14px);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--vno-section, #e91e8c) 7%, transparent);
}
.vno-search-row .noe-app-search-wrap.is-plain {
  background: #12121a !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: none !important;
}
/* Muted "Search" beside icon — absolute so centered category is untouched */
.vno-search-hint {
  position: absolute;
  left: 34px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
  font: 600 clamp(8.5px, 2.4vw, 10.5px)/1 "DM Sans", sans-serif;
  letter-spacing: .03em;
  color: rgba(240, 240, 255, .34);
  white-space: nowrap;
  max-width: min(4.6rem, 28%);
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 1;
  transition: opacity .14s ease, max-width .2s ease, font-size .2s ease;
}
/* Day/Night + Venues: search shrinks — tip down the hint, don't fight category */
.vno-search-row--venues .vno-search-hint {
  font-size: clamp(8px, 2.1vw, 9.5px);
  max-width: min(3.4rem, 20%);
  letter-spacing: .02em;
  color: rgba(240, 240, 255, .28);
}
.vno-search-row .noe-app-search-wrap:focus-within .vno-search-hint,
.vno-search-row .noe-app-search-wrap.is-filled .vno-search-hint {
  opacity: 0;
  max-width: 0;
}
/* Too tight with Venues: drop hint, keep icon + centered category */
@media (max-width: 400px) {
  .vno-search-row--venues .vno-search-hint {
    opacity: 0;
    max-width: 0;
  }
}

.vno-search-section {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: calc(100% - 76px);
  margin: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 700 11px/1 "DM Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--vno-section, #e91e8c) 55%, #f0f0ff);
  opacity: .82;
  transition: opacity .14s ease;
}
/* Keep category geometrically centered even when Search hint is visible */
.vno-search-row:not(.vno-search-row--venues) .vno-search-section {
  max-width: calc(100% - 108px);
}
.vno-search-row--venues .vno-search-section {
  max-width: calc(100% - 84px);
}
.vno-search-row .noe-app-search-wrap:focus-within .vno-search-section,
.vno-search-row .noe-app-search-wrap.is-filled .vno-search-section {
  opacity: 0;
}
.vno-search-row .noe-app-search-wrap:not(:focus-within):not(.is-filled) input::placeholder {
  color: transparent !important;
}
.vno-search-row .noe-app-search-wrap input {
  height: 40px !important;
  font-size: 16px !important;
  min-width: 0 !important;
  touch-action: manipulation;
  -webkit-user-select: text;
  user-select: text;
}
.vno-search-row .noe-venues-pill,
#noe-venues-pill {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px;
  flex: 0 0 auto;
  height: 40px !important;
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  color: #f0f0ff !important;
  border-radius: 14px !important;
  padding: 0 12px !important;
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Date separators — mockup pill with fade lines */
.noe-date-sep,
.noe-app-main .noe-date-sep {
  display: flex !important;
  align-items: center !important;
  margin: 4px 0 10px !important;
  padding: 0 2px !important;
  background: none !important;
  border: 0 !important;
  min-height: 28px;
}
.noe-date-sep::before,
.noe-date-sep::after,
.noe-app-main .noe-date-sep::before,
.noe-app-main .noe-date-sep::after {
  content: "" !important;
  flex: 1 1 auto !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22)) !important;
}
.noe-date-sep::after,
.noe-app-main .noe-date-sep::after {
  background: linear-gradient(90deg, rgba(255,255,255,.22), transparent) !important;
}
.noe-date-sep-label,
.noe-app-main .noe-date-sep-label {
  flex: 0 0 auto !important;
  margin: 0 10px !important;
  font: 800 10px/1 "DM Sans", sans-serif !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  background: rgba(25,25,38,.85) !important;
  border: .5px solid rgba(255,255,255,.1) !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
  color: #f0f0ff !important;
  white-space: nowrap !important;
}

/* Event cards */
.noe-list-view { padding: 0 16px calc(88px + env(safe-area-inset-bottom)) !important; }
.vno-card,
.noe-app-main .vno-card.noe-list-entry,
.noe-app-main .noe-list-entry.vno-card {
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 18px !important;
  overflow: hidden;
  margin-bottom: 12px;
  box-shadow: none !important;
}
.vno-card-hit {
  display: grid !important;
  grid-template-columns: 112px 1fr;
  gap: 10px;
  height: 148px !important;
  max-height: 148px !important;
  overflow: hidden !important;
  cursor: pointer;
  align-items: stretch;
}
.vno-card-art {
  height: 148px !important;
  background: #12121a;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
}
.vno-card-skel .vno-card-hit { cursor: default; pointer-events: none; }
.vno-flyer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #12121a;
}
.vno-flyer-skel {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border-radius: 0 !important;
}
.vno-flyer-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .35s ease;
  touch-action: pan-x pan-y;
  -webkit-user-drag: none;
  pointer-events: none;
}
.vno-flyer-img.is-ready { opacity: 1; }
.vno-card-price {
  position: absolute;
  z-index: 2;
  left: 8px;
  bottom: 8px;
  background: #e91e8c;
  color: #fff;
  font: 800 10px/1 "DM Sans", sans-serif;
  padding: 5px 7px;
  border-radius: 999px;
}
.vno-card-meta {
  padding: 12px 12px 12px 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.vno-card-venue {
  display: flex;
  align-items: center;
  gap: 5px;
  color: rgba(240, 240, 255, .66) !important;
  font: 400 12px/1.15 "DM Sans", sans-serif !important;
  letter-spacing: .04em;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0;
}
.vno-card-venue svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: rgba(240, 240, 255, .66);
}
.vno-card-venue-logo,
.vno-card-venue-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
}
.vno-card-venue-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  font: 800 8px/1 "DM Sans", sans-serif;
  color: #fff;
}
.vno-card-venue span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.vno-card-title,
.noe-app-main .vno-card-title {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 26px !important;
  line-height: 1 !important;
  letter-spacing: .4px !important;
  font-weight: 400 !important;
  color: #f0f0ff !important;
  margin: 6px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  word-break: normal !important;
  min-width: 0;
}
.vno-card-when {
  color: rgba(240,240,255,.55);
  font-size: 12px;
  margin-bottom: auto;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0;
}
.vno-card-actions {
  display: flex;
  flex-wrap: nowrap !important;
  gap: 6px;
  margin-top: 10px;
  min-width: 0;
  overflow: hidden;
  justify-content: center;
}
.vno-chip {
  flex: 1;
  min-width: 0;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 8px 4px !important;
  font: 800 10px/1 "DM Sans", sans-serif !important;
  letter-spacing: .02em !important;
  text-align: center;
  white-space: nowrap;
  text-decoration: none !important;
  cursor: pointer;
}
.vno-chip-tour,
.vno-chip-tkt:only-child {
  flex: 0 0 auto;
  width: auto;
  min-width: 128px;
  max-width: 78%;
  padding: 8px 20px !important;
}
.vno-chip-gl { background: #e91e8c !important; color: #fff !important; }
.vno-chip-tb { background: rgba(255,255,255,.08) !important; color: #fff !important; }
.vno-chip.vno-chip-in-gl {
  background: rgba(59,130,246,.15) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(59,130,246,.45) !important;
}
.vno-chip.vno-chip-in-vip {
  background: rgba(233,30,140,.15) !important;
  color: #e91e8c !important;
  border: 1px solid rgba(233,30,140,.45) !important;
}
/* Apple Liquid Glass–style muted guestlist when closed (manual or auto cutoff) */
.vno-chip.is-gl-closed,
.vno-chip.is-gl-closed:hover {
  background: rgba(255,255,255,.06) !important;
  color: rgba(240,240,255,.48) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  cursor: pointer;
}
.vno-chip.is-gl-closed:active {
  opacity: .72;
}
.vno-card-jump {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 6px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(240,240,255,.52);
  font: 700 10px/1 "DM Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.vno-card-jump svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.vno-card-jump-chev {
  width: 11px !important;
  height: 11px !important;
  opacity: .7;
}
.vno-chip.is-add {
  background: rgba(59,130,246,.15) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(59,130,246,.45) !important;
}
.vno-chip.noe-hidden,
.nep2-btn.noe-hidden {
  display: none !important;
}
.vno-chip.noe-tcoupon-btn,
.vno-chip.noe-tcoupon-code,
.nep2-btn.noe-tcoupon-btn,
.nep2-btn.noe-tcoupon-code {
  background: rgba(59,130,246,.15) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(59,130,246,.45) !important;
  box-shadow: none !important;
}
.vno-chip.noe-tcoupon-btn:hover,
.nep2-btn.noe-tcoupon-btn:hover {
  background: rgba(59,130,246,.28) !important;
  color: #93c5fd !important;
  border-color: #3b82f6 !important;
}
.vno-chip.noe-tcoupon-code,
.nep2-btn.noe-tcoupon-code {
  background: rgba(59,130,246,.18) !important;
  border-color: rgba(59,130,246,.5) !important;
  color: #93c5fd !important;
  font-family: "Space Mono", ui-monospace, monospace !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
}

.noe-app-main .noe-loading {
  padding: 50px 20px !important;
  color: rgba(240,240,255,.45) !important;
  font-family: "DM Sans", sans-serif !important;
}
.noe-app-main .noe-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(255,255,255,.12);
  border-top-color: #e91e8c;
  border-radius: 50%;
  animation: noe-spin .7s linear infinite;
}


/* Home: beat #noe-app-main { padding-top: safe-area + 120px } from live CSS (list chrome). */
.noe-app-main.noe-home-active,
#noe-app-main.noe-home-active {
  padding-top: var(--vno-home-head, 56px) !important;
  padding-bottom: 0 !important;
  background: #0d0d14 !important;
}
.noe-app-main.noe-home-active .noe-calendar {
  min-height: 0 !important;
}
.vno-home,
.noe-home-page.vno-home {
  padding: 0 16px calc(80px + env(safe-area-inset-bottom)) !important;
}
.vno-hero-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 10px;
  margin: 0 -16px 14px;
  padding: 0 16px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
}
.vno-hero-track.is-one {
  overflow-x: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
}
.vno-hero-track.is-page-scroll {
  overflow-x: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
}
.vno-hero-track::-webkit-scrollbar { display: none; }
.vno-hero,
.vno-hero-skel {
  flex: 0 0 100%;
  scroll-snap-align: center;
  position: relative;
  height: 400px;
  border-radius: 22px;
  overflow: hidden;
  background: #111 center/cover no-repeat;
  touch-action: pan-x pan-y;
}
.vno-hero-skel { background: #16161e; }
.vno-hero .vno-flyer,
.vno-hero-skel .vno-flyer-skel,
.nep2-hero .vno-flyer {
  position: absolute;
  inset: 0;
}
.vno-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 28%, #0d0d14 94%);
}
.vno-hero-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  background: #e91e8c;
  color: #fff;
  font: 800 10px/1 "DM Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 999px;
}
.vno-hero-copy {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 1;
}
.vno-hero-copy h2 {
  font-family: "Bebas Neue", sans-serif;
  font-size: 50px;
  line-height: .86;
  letter-spacing: 1px;
  color: #fff;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.vno-hero-copy p {
  color: rgba(240,240,255,.55);
  font-size: 13px;
  margin: 8px 0 14px;
}
.vno-dots { display: flex; justify-content: center; gap: 8px; margin: -6px 0 14px; }
.vno-dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  cursor: pointer;
  appearance: none;
  position: relative;
}
.vno-dots button::before {
  content: "";
  position: absolute;
  inset: -10px;
}
.vno-dots button.on { background: #e91e8c; }
.vno-cta {
  display: block;
  width: 100%;
  background: #e91e8c !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 1.6px !important;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
}
.vno-pills {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-bottom: 22px;
}
.vno-pill {
  background: #16161e;
  border: 1px solid rgba(255,255,255,.08);
  color: #f0f0ff;
  border-radius: 14px;
  padding: 12px 8px;
  text-align: center;
  font: 800 11px/1.2 "DM Sans", sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
}
.vno-pill b {
  display: block;
  color: #e91e8c;
  font-size: 10px;
  margin-bottom: 4px;
  letter-spacing: .12em;
}
.vno-sec {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 8px 2px 10px;
}
.vno-sec h3 {
  font-family: "Bebas Neue", sans-serif;
  font-size: 22px;
  letter-spacing: 1px;
  margin: 0;
}
.vno-sec button,
.vno-sec a {
  background: none;
  border: 0;
  color: #e91e8c;
  font: 700 12px "DM Sans", sans-serif;
  cursor: pointer;
  text-decoration: none;
}
.vno-minis {
  display: flex;
  gap: 10px;
  overflow: auto;
  padding-bottom: 8px;
  scrollbar-width: none;
}
.vno-mini {
  flex: 0 0 148px;
  background: #16161e;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  cursor: pointer;
  text-align: left;
  color: inherit;
  padding: 0;
}
.vno-mini img,
.vno-mini .vno-flyer-img { width: 100%; height: 92px; object-fit: cover; display: block; }
.vno-mini .vno-flyer {
  position: relative;
  inset: auto;
  height: 92px;
}
.vno-mini-skel .vno-flyer-skel {
  position: relative !important;
  inset: auto !important;
  height: 92px !important;
}
.vno-mini strong, .vno-mini span { display: block; padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vno-mini strong { font-size: 13px; margin-top: 8px; }
.vno-mini span { color: rgba(240,240,255,.55); font-size: 11px; padding-bottom: 12px; }
.vno-reviews-block { margin-bottom: 18px; }
.vno-reviews-heading {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}
.vno-reviews-heading h3 { margin: 0; }
.vno-reviews-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: 700 11px/1 "DM Sans", sans-serif;
  color: rgba(240,240,255,.72);
  white-space: nowrap;
}
.vno-reviews-badge i {
  font-style: normal;
  color: #ffd36c;
}
.vno-reviews-badge em {
  font-style: normal;
  color: rgba(240,240,255,.45);
  font-weight: 600;
}
.vno-reviews {
  --vno-review-w: min(78vw, 280px);
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 0 12px;
  scrollbar-width: none;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: max(12px, calc((100% - var(--vno-review-w)) / 2));
  /* Side gutters so first/last cards can sit centered */
  padding-inline: max(12px, calc((100% - var(--vno-review-w)) / 2));
  /* Allow vertical page scroll through this rail — no dead zone */
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
}
.vno-reviews::-webkit-scrollbar { display: none; }
.vno-review {
  flex: 0 0 var(--vno-review-w);
  scroll-snap-align: center;
  scroll-snap-stop: always;
  background: linear-gradient(165deg, #1a1a24 0%, #12121a 100%);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 16px;
  padding: 12px;
  color: inherit;
  text-decoration: none;
  min-height: 168px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color .2s, transform .2s;
}
.vno-review.is-open { min-height: 0; }
.vno-review-hit {
  color: inherit;
  text-decoration: none;
  display: block;
  flex: 1;
  min-width: 0;
}
.vno-review-top {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
}
.vno-review-av,
.vno-review-av-img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.14);
}
.vno-review-av {
  display: grid;
  place-items: center;
  background: rgba(233,30,140,.18);
  color: #e91e8c;
  font: 800 13px/1 "DM Sans", sans-serif;
}
.vno-review-who {
  min-width: 0;
  flex: 1;
}
.vno-review-top b {
  display: block;
  font: 800 13px/1.1 "DM Sans", sans-serif;
  color: #f0f0ff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.vno-review-top i {
  display: block;
  font-style: normal;
  font-size: 11px;
  letter-spacing: .08em;
  color: #ffd36c;
  margin-top: 2px;
}
.vno-review-top em {
  display: block;
  font-style: normal;
  font-size: 10px;
  font-weight: 600;
  color: rgba(240,240,255,.4);
  margin-top: 2px;
}
.vno-review-g {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: #8ab4f8;
  font: 800 11px/1 "DM Sans", sans-serif;
  flex-shrink: 0;
}
.vno-review p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(240,240,255,.78);
}
.vno-review-more {
  align-self: flex-start;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  color: #e91e8c;
  font: 700 12px/1 "DM Sans", sans-serif;
  cursor: pointer;
  letter-spacing: .02em;
}
.vno-review-more:hover { color: #f472b6; }
.vno-review-skel {
  gap: 0;
  pointer-events: none;
}
.vno-reviews-empty {
  padding: 18px 14px;
  border-radius: 16px;
  background: #16161e;
  border: 1px solid rgba(255,255,255,.08);
  margin-bottom: 4px;
}
.vno-reviews-empty a {
  color: #e91e8c;
  font: 700 13px "DM Sans", sans-serif;
  text-decoration: none;
}
.vno-trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 10px 0 2px;
  padding: 12px 0 2px;
  border-top: 1px solid rgba(255,255,255,.07);
}
.vno-trust-item {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0 8px;
  text-align: center;
  min-width: 0;
  position: relative;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.vno-trust-item + .vno-trust-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 1px;
  background: rgba(255,255,255,.08);
}
.vno-trust-icon {
  width: 16px;
  height: 16px;
  margin: 0 auto 6px;
  border-radius: 0;
  display: grid;
  place-items: center;
  position: relative;
  overflow: visible;
  background: none;
  border: none;
  color: rgba(240,240,255,.38);
  box-shadow: none;
}
.vno-trust-icon::before { display: none; }
.vno-trust-icon svg {
  width: 15px;
  height: 15px;
  position: relative;
  z-index: 1;
}
.vno-trust-item b {
  display: block;
  font-family: "Bebas Neue", sans-serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 1px;
  color: #f0f0ff;
}
.vno-trust-item span {
  display: block;
  margin-top: 5px;
  font: 700 9px/1.25 "DM Sans", sans-serif;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(240,240,255,.55);
}
.vno-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 2px 2px 0;
  font: 500 10px/1.5 "DM Sans", sans-serif;
  color: rgba(240,240,255,.4);
}
.vno-legal a {
  color: rgba(240,240,255,.55);
  text-decoration: none;
}
.vno-legal a:hover { color: #e91e8c; }

/* Bottom nav — dark IG capsule; glass only on sliding selection pill */
.noe-app-bottom-nav-mobile {
  position: fixed !important;
  left: 12px !important;
  right: 12px !important;
  /* Nudge closer to bottom edge like IG — safe, still clears home indicator */
  bottom: calc(6px + env(safe-area-inset-bottom)) !important;
  height: 64px !important;
  width: auto !important;
  background: #12121a !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 999px !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.45) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  padding: 0 4px !important;
  z-index: 520 !important;
  overflow: visible !important;
  transform: translateZ(0) scale(1);
  transform-origin: center bottom;
  will-change: transform;
  transition:
    transform .32s cubic-bezier(.22, 1, .36, 1),
    left .28s cubic-bezier(.22, 1, .36, 1),
    right .28s cubic-bezier(.22, 1, .36, 1),
    bottom .28s cubic-bezier(.22, 1, .36, 1),
    height .28s cubic-bezier(.22, 1, .36, 1),
    box-shadow .28s ease;
}
/* Scroll-down compact — downsize in place (no full-bleed snap) */
.noe-app-bottom-nav-mobile.is-compact {
  left: 28px !important;
  right: 28px !important;
  bottom: calc(5px + env(safe-area-inset-bottom)) !important;
  height: 54px !important;
  border-radius: 999px !important;
  transform: translateZ(0) scale(0.94);
  box-shadow: 0 8px 22px rgba(0,0,0,.4) !important;
}
/* Legacy class — stay dark capsule, never full-bleed */
.noe-app-bottom-nav-mobile.is-docked {
  left: 12px !important;
  right: 12px !important;
  bottom: calc(6px + env(safe-area-inset-bottom)) !important;
  border-radius: 999px !important;
  height: 64px !important;
  padding-bottom: 0 !important;
  background: #12121a !important;
}

/* Sliding circular muted liquid-glass selection — category tint only */
.noe-nav-slide-pill {
  --noe-pill: 36px;
  position: absolute;
  z-index: 0;
  top: 7px;
  left: calc(
    4px
    + (var(--nav-i, 0) * ((100% - 8px) / 5))
    + ((((100% - 8px) / 5) - var(--noe-pill)) / 2)
  );
  width: var(--noe-pill);
  height: var(--noe-pill);
  border-radius: 50%;
  pointer-events: none;
  background:
    color-mix(in srgb, color-mix(in srgb, var(--nav-active-color, #e91e8c) 14%, #1a1a24) 78%, transparent);
  border: 1px solid color-mix(in srgb, var(--nav-active-color, #e91e8c) 20%, rgba(255,255,255,.06));
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--nav-active-color, #e91e8c) 12%, rgba(255,255,255,.14)),
    0 0 14px color-mix(in srgb, var(--nav-active-color, #e91e8c) 10%, transparent);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  backdrop-filter: blur(10px) saturate(140%);
  transform: scale(1);
  transform-origin: center center;
  transition:
    left .48s cubic-bezier(.34, 1.56, .52, 1),
    top .28s ease,
    width .28s ease,
    height .28s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}
.noe-app-bottom-nav-mobile.is-compact .noe-nav-slide-pill {
  --noe-pill: 30px;
  top: 5px;
}

.noe-app-bottom-nav-mobile .noe-app-nav-item {
  background: none !important;
  border: 0 !important;
  color: rgba(240,240,255,.45) !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  min-width: 0 !important;
  padding: 6px 2px !important;
  position: relative !important;
  z-index: 1 !important;
}
.noe-app-bottom-nav-mobile .noe-app-nav-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 36px !important;
  height: 28px !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 999px !important;
  filter: none !important;
}
.noe-app-bottom-nav-mobile .noe-app-nav-icon svg {
  width: 22px !important;
  height: 22px !important;
}
.noe-app-bottom-nav-mobile.is-compact .noe-app-nav-icon {
  width: 32px !important;
  height: 26px !important;
}
.noe-app-bottom-nav-mobile.is-compact .noe-app-nav-icon svg {
  width: 20px !important;
  height: 20px !important;
}
.noe-app-bottom-nav-mobile .noe-app-nav-item.active,
.noe-app-bottom-nav-mobile .noe-app-nav-item-home.active {
  color: var(--nav-active-color, #e91e8c) !important;
}
/* Selection glass lives on .noe-nav-slide-pill only — not on icons / bar */
.noe-app-bottom-nav-mobile .noe-app-nav-item.active .noe-app-nav-icon,
.noe-app-bottom-nav-mobile .noe-app-nav-item-home.active .noe-app-nav-icon {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  filter: none !important;
  padding: 0 !important;
}
.noe-app-bottom-nav-mobile .noe-app-nav-item.active::after,
.noe-app-bottom-nav-mobile .noe-app-nav-item-home.active::after {
  content: none !important;
  display: none !important;
}
.noe-app-bottom-nav-mobile .noe-app-nav-label {
  font: 800 9px/1 "DM Sans", sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
}
.noe-app-bottom-nav-mobile.is-compact .noe-app-nav-label {
  font-size: 8px !important;
  opacity: .9;
}

/* Event page */
#noe-event-panel {
  background: #0d0d14 !important;
  z-index: 560 !important;
}
/* Backup stack: event sits above venue so a row click opens, back returns to venue */
#noe-event-panel.open {
  z-index: 650 !important;
}
.nep2-topbar {
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  background: #0d0d14 !important;
}
.nep2-topbar-title {
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: rgba(240,240,255,.7) !important;
}
.nep2-back {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}
.nep2-hero {
  max-height: 240px !important;
  height: 240px !important;
  aspect-ratio: auto !important;
  position: relative;
}
.nep2-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, #0d0d14 96%);
  pointer-events: none;
}
.nep2-quicknav {
  display: flex !important;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  flex-wrap: wrap;
  gap: 6px;
  padding: 20px 12px 10px;
  background: linear-gradient(to top, #0d0d14 12%, transparent 100%);
  pointer-events: none;
}
.nep2-qn-btn {
  pointer-events: auto;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  font-family: "DM Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #f0f0ff !important;
  background: rgba(13,13,20,.78) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  cursor: pointer;
  white-space: nowrap;
}
.nep2-qn-btn svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  stroke: currentColor;
}
.nep2-qn-btn:active {
  background: rgba(233,30,140,.4) !important;
  border-color: rgba(233,30,140,.7) !important;
}
.nep2-org-bar { display: none !important; }
.nep2-title {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 48px !important;
  line-height: .88 !important;
  letter-spacing: 1px !important;
  font-weight: 400 !important;
  color: #fff !important;
}
.vno-facts {
  color: rgba(240,240,255,.55);
  font-size: 13px;
  margin: 10px 0 18px;
}
.nep2-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px !important;
}
.nep2-actions .vno-sess-card {
  grid-column: 1 / -1;
}
.nep2-actions:has(.nep2-btn-tour):not(:has(.nep2-btn-gl)):not(:has(.nep2-btn-vip)):not(:has(.nep2-btn-tkt:not(.nep2-btn-tour))) {
  justify-items: center;
}
.nep2-actions:has(.nep2-btn-tour):not(:has(.nep2-btn-gl)):not(:has(.nep2-btn-vip)):not(:has(.nep2-btn-tkt:not(.nep2-btn-tour))) .nep2-btn-tour {
  width: auto !important;
  min-width: 168px;
  max-width: 82%;
  grid-column: 1 / -1;
  padding-left: 28px !important;
  padding-right: 28px !important;
}
.nep2-actions:has(.nep2-btn-tkt):not(:has(.nep2-btn-tour)):not(:has(.nep2-btn-gl)):not(:has(.nep2-btn-vip)):not(:has(.noe-tcoupon-btn)):not(:has(.noe-tcoupon-code)) {
  justify-items: center;
}
.nep2-actions:has(.nep2-btn-tkt):not(:has(.nep2-btn-tour)):not(:has(.noe-tcoupon-btn)):not(:has(.noe-tcoupon-code)) .nep2-btn-tkt {
  width: auto !important;
  min-width: 160px;
  max-width: 82%;
  grid-column: 1 / -1;
  justify-self: center;
  padding-left: 28px !important;
  padding-right: 28px !important;
}
.nep2-btn {
  border-radius: 14px !important;
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 18px !important;
  letter-spacing: 1.2px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  padding: 11px 14px !important;
}
.nep2-btn svg { display: none; }
.nep2-btn-gl,
.nep2-btn-gl:hover {
  background: rgba(59,130,246,.15) !important;
  color: #60a5fa !important;
  border: 1px solid rgba(59,130,246,.45) !important;
  box-shadow: none !important;
}
.nep2-btn-gl.is-gl-closed,
.nep2-btn-gl.is-gl-closed:hover {
  background: rgba(255,255,255,.06) !important;
  color: rgba(240,240,255,.48) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  cursor: pointer;
}
.nep2-btn-gl.is-gl-closed:active {
  opacity: .72;
}
.nep2-btn-vip,
.nep2-btn-vip:hover {
  background: rgba(233,30,140,.15) !important;
  color: #e91e8c !important;
  border: 1px solid rgba(233,30,140,.45) !important;
  box-shadow: none !important;
}
.nep2-btn-tkt,
.nep2-btn-tkt:hover,
.nep2-btn-tour {
  background: #e91e8c !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
}
.noe-detail-section-title {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 1px !important;
  color: #f0f0ff !important;
}
.noe-story-btn {
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: #f0f0ff !important;
}

/* Live popup cards, preview theme */
#noe-popup-overlay,
#noe-vip-popup,
#noe-group-popup,
.vno-popup-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, .92) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  z-index: 99999 !important;
}
#noe-popup-box,
#noe-vip-box,
#noe-group-box,
.vno-popup-box {
  width: 100% !important;
  max-width: 420px !important;
  height: auto !important;
  max-height: 92vh !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 20px !important;
  background: #16161e !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.55) !important;
  padding: 28px 20px 22px !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  position: relative !important;
}
#noe-popup-close,
#noe-vip-close,
#noe-group-close,
.vno-popup-x {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.08) !important;
  border: 0 !important;
  color: #f0f0ff !important;
  display: grid !important;
  place-items: center !important;
  font-size: 14px !important;
  cursor: pointer;
  z-index: 2 !important;
}
.noe-popup-type-badge,
.noe-vip-badge,
#noe-group-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font: 800 10px/1 "DM Sans", sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 10px;
  background: rgba(233,30,140,.14);
  color: #e91e8c;
  border: 1px solid rgba(233,30,140,.28);
}
.noe-vip-badge {
  background: rgba(255,140,0,.14);
  color: #ff8c00;
  border-color: rgba(255,140,0,.28);
}
#noe-popup-box h2,
#noe-vip-box h2,
#noe-group-title,
.vno-popup-box .vno-sheet-title {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 32px !important;
  line-height: .92 !important;
  letter-spacing: .6px !important;
  font-weight: 400 !important;
  color: #fff !important;
  margin: 0 0 6px !important;
}
.vno-sheet-meta,
#noe-popup-event-meta,
#noe-group-meta {
  color: rgba(240,240,255,.55) !important;
  font-size: 13px !important;
  margin: 0 0 8px !important;
}
#noe-popup-submit,
#noe-vip-submit,
#noe-group-submit,
#noe-popup-closed-cta,
.vno-popup-box .vno-cta {
  display: block;
  width: 100%;
  background: #e91e8c !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 1.6px !important;
  font-weight: 400 !important;
  box-shadow: none !important;
  height: auto !important;
  margin-top: 10px;
  text-align: center;
  text-decoration: none !important;
}
.vno-benefit {
  background: #12121a;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 8px;
}
.noe-pf label,
#noe-popup-box label {
  font-family: "DM Sans", sans-serif !important;
  color: rgba(240,240,255,.55) !important;
}
.noe-pf input {
  background: #12121a !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 12px !important;
  color: #f0f0ff !important;
  font-size: 16px !important;
}

/* Calendar — live centered popup, preview theme */
.noe-app-dp-overlay {
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 800 !important;
  background: rgba(8,8,12,.72) !important;
  backdrop-filter: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 20px !important;
}
.noe-app-dp-overlay.open {
  display: flex !important;
}
.noe-app-dp-wrap {
  width: 100% !important;
  max-width: 360px !important;
  margin: auto !important;
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 20px !important;
  padding: 18px 16px 16px !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.55) !important;
}
.vno-dp-filters {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
  margin-bottom: 14px;
}
.vno-dp-filter {
  height: 32px;
  padding: 0 4px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--tab-color, #e91e8c) 35%, transparent);
  background: rgba(255,255,255,.05);
  color: var(--tab-color, #e91e8c);
  font: 800 8px/1 "DM Sans", sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
}
.vno-dp-filter.active {
  background: var(--tab-color, #e91e8c);
  border-color: var(--tab-color, #e91e8c);
  color: #fff;
}
.noe-app-dp-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 14px !important;
}
.noe-app-dp-month-label {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 1px !important;
  color: #fff !important;
}
.noe-app-dp-nav-btn {
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: rgba(255,255,255,.07) !important;
  border: none !important;
  color: #f0f0ff !important;
}
.noe-app-dp-nav-btn:hover {
  background: color-mix(in srgb, var(--dp-accent, #e91e8c) 25%, transparent) !important;
}
.noe-app-dp-dayname {
  font-family: "DM Sans", sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  color: rgba(240,240,255,.35) !important;
}
.noe-app-dp-cell {
  font-family: "DM Sans", sans-serif !important;
  font-size: 13px !important;
  color: #f0f0ff !important;
  border-radius: 8px !important;
}
.noe-app-dp-cell.past {
  color: rgba(240,240,255,.2) !important;
}
.noe-app-dp-cell.today {
  border-color: color-mix(in srgb, var(--dp-accent, #e91e8c) 55%, transparent) !important;
  color: var(--dp-accent, #e91e8c) !important;
  font-weight: 700 !important;
}
.noe-app-dp-cell.selected,
.noe-app-dp-today-btn {
  background: var(--dp-accent, #e91e8c) !important;
  border-color: var(--dp-accent, #e91e8c) !important;
  color: #fff !important;
}
.noe-app-dp-cell:not(.past):not(.empty):not(.selected):hover {
  background: color-mix(in srgb, var(--dp-accent, #e91e8c) 18%, transparent) !important;
}
.noe-app-dp-footer {
  border-top: 1px solid rgba(255,255,255,.07) !important;
}
.noe-app-dp-cur-label {
  font-family: "DM Sans", sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: rgba(240,240,255,.45) !important;
}
.noe-app-dp-today-btn {
  height: 32px !important;
  padding: 0 14px !important;
  border-radius: 8px !important;
  font: 700 12px/1 "DM Sans", sans-serif !important;
}
@media (min-width: 768px) {
  body.noe-app-body .vno-dp-overlay.noe-app-dp-overlay,
  body.noe-app-body .vno-dp-overlay.noe-app-dp-overlay.open {
    display: flex !important;
    inset: 0 !important;
    background: transparent !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 0 !important;
  }
  body.noe-app-body .vno-dp-overlay .noe-app-dp-wrap {
    width: 340px !important;
    max-width: 340px !important;
    margin: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    border-radius: 20px !important;
  }
}

/* Shared page fill — breakpoints below own overflow / chrome */
html, body.noe-app-body, #root {
  width: 100% !important;
  max-width: none !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  background: #0d0d14 !important;
}
#root {
  position: relative !important;
  box-shadow: none !important;
}

/* Phone portrait: keep the new full-bleed mobile chrome */
@media (max-width: 767px), (max-height: 539px) {
  html, body.noe-app-body {
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    display: block !important;
    padding: 0 !important;
  }
  #root {
    height: auto !important;
    overflow: visible !important;
  }
  .noe-desktop-topbar,
  .noe-app-sidebar { display: none !important; }
  .noe-app-topbar {
    display: block !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
  }
  .noe-app-desktop-scroll {
    display: block !important;
    position: static !important;
    margin: 0 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    overflow: visible !important;
    height: auto !important;
  }
  .noe-app-main,
  #noe-app-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .noe-app-main:not(.noe-home-active),
  #noe-app-main:not(.noe-home-active) {
    padding-top: calc(env(safe-area-inset-top) + 170px) !important;
    padding-bottom: calc(88px + env(safe-area-inset-bottom)) !important;
  }
  .noe-app-main.noe-home-active,
  #noe-app-main.noe-home-active {
    padding-top: var(--vno-home-head, 56px) !important;
    padding-bottom: 0 !important;
  }
  .noe-app-bottom-nav-mobile {
    display: grid !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
  }
  #noe-event-panel,
  #noe-event-panel.open,
  #noe-itn-page,
  #noe-itn-page.open,
  #vno-tables-page,
  #vno-tables-page.open,
  #noe-org-panel,
  #noe-org-panel.open,
  #noe-popup-overlay,
  #noe-vip-popup,
  #noe-group-popup,
  .vno-sheet,
  .noe-app-dp-overlay {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin-left: 0 !important;
  }
  .noe-app-dp-overlay,
  .noe-app-dp-overlay.open {
    background: rgba(8,8,12,.72) !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 20px !important;
  }
  .noe-app-dp-wrap {
    margin: auto !important;
  }
}

/* Desktop chrome leftovers */
.noe-desktop-topbar {
  background: #0d0d14 !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
.noe-desktop-topbar-logo .noe-desktop-topbar-brand,
.noe-app-brand-desktop { display: none !important; }
.noe-desktop-topbar-logo { gap: 10px !important; }
.noe-desktop-topbar .vno-brand { gap: 10px; }
.noe-desktop-topbar .vno-brand-logo { width: 56px !important; height: 56px !important; }
.noe-dtb-cats { display: none !important; }
.noe-dtb-cat.active {
  background: rgba(233,30,140,.14) !important;
  color: #e91e8c !important;
}
.noe-app-sidebar { background: #0d0d14 !important; border-right: 1px solid rgba(255,255,255,.08) !important; }
.noe-app-sidebar .noe-app-nav-item.active { color: #e91e8c !important; }
.noe-app-sidebar-label { color: rgba(240,240,255,.45) !important; letter-spacing: .12em; }

#noe-itn-page.open {
  background: #0d0d14 !important;
  z-index: 600 !important;
}
#noe-org-panel.open {
  background: #0d0d14 !important;
  z-index: 500 !important;
}
.nitp-back,
.noe-org-back {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}
.nitp-title,
.noe-org-name {
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}
.noe-panel-cta,
.noe-auth-tab.active {
  background: #e91e8c !important;
  border-color: #e91e8c !important;
  color: #fff !important;
}
.noe-panel-cta {
  font-family: "Bebas Neue", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 1.6px !important;
  border-radius: 14px !important;
}
.noe-venue-sheet-backdrop {
  background: rgba(8,8,12,.72) !important;
  backdrop-filter: none !important;
}
.noe-venue-sheet-inner {
  background: #12121a !important;
  border-radius: 22px 22px 0 0 !important;
}

/* My Account / itinerary — live flows, preview skin */
#noe-itn-page.vno-itn,
#vno-tables-page {
  background: #0d0d14 !important;
  z-index: 450 !important;
}
#noe-itn-page.vno-itn.open {
  z-index: 600 !important;
}
.noe-app-dp-overlay {
  z-index: 800 !important;
}
#vno-tables-page {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .38s cubic-bezier(.22,.8,.36,1);
  overscroll-behavior: contain;
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  pointer-events: none;
}
#vno-tables-page.open {
  transform: translateX(0);
  pointer-events: auto;
  z-index: 600 !important;
}
.vno-itn .nitp-topbar,
#vno-tables-page .nitp-topbar {
  background: #0d0d14 !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  height: 56px !important;
}
.nitp-topbar-gap {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}
.vno-itn .nitp-body,
#vno-tables-page .nitp-body {
  background: #0d0d14 !important;
}
.vno-itn .nitp-auth-tagline,
.vno-tbl-lead {
  color: rgba(240,240,255,.62) !important;
  font: 500 14px/1.5 "DM Sans", sans-serif !important;
  text-align: center;
  margin: 8px 0 20px;
}
.vno-itn .noe-auth-tabs {
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  padding: 4px !important;
}
.vno-itn .noe-auth-tab {
  border-radius: 11px !important;
  font: 800 12px/1 "DM Sans", sans-serif !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
  color: rgba(240,240,255,.55) !important;
}
.vno-itn .noe-pf label,
#vno-tables-page .noe-pf label,
.vno-tbl-label {
  color: rgba(240,240,255,.48) !important;
  font: 700 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.vno-itn .noe-pf input,
#vno-tables-page .noe-pf input,
#vno-tables-page select {
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  color: #f0f0ff !important;
  border-radius: 12px !important;
  font-family: "DM Sans", sans-serif !important;
  font-size: 16px !important;
}
.vno-itn .nitp-profile-card,
.vno-sess-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 16px !important;
  padding: 14px !important;
}
.vno-itn .nitp-profile-avatar,
.vno-sess-av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(233,30,140,.28) !important;
  color: #fff !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 800 14px/1 "DM Sans", sans-serif;
  flex-shrink: 0;
}
.vno-sess-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.vno-sess-copy strong,
.vno-itn .nitp-profile-name {
  color: #fff !important;
  font: 700 14px/1.2 "DM Sans", sans-serif !important;
}
.vno-sess-copy span,
.vno-itn .nitp-profile-email,
.vno-itn .nitp-profile-phone {
  color: rgba(240,240,255,.55) !important;
  font: 500 12px/1.3 "DM Sans", sans-serif !important;
}
.vno-itn .nitp-greeting {
  color: #f0f0ff !important;
  font: 600 16px/1.4 "DM Sans", sans-serif !important;
}
.vno-itn .nitp-tabs {
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
}
.vno-itn .nitp-tab {
  color: rgba(240,240,255,.5) !important;
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.vno-itn .nitp-tab.active {
  color: #fff !important;
  background: rgba(233,30,140,.16) !important;
}
.vno-itn .nitp-tab-badge,
.vno-itn .nitp-tab-badge-pink {
  background: #e91e8c !important;
  color: #fff !important;
}
.vno-itn .noe-itn-date-label {
  font: 800 11px/1 "DM Sans", sans-serif !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(240,240,255,.45) !important;
}
.vno-itn .noe-itn-item,
.vno-itn .nitp-booking-card {
  background: #16161e !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 16px !important;
}
.vno-itn .noe-itn-item-title,
.vno-itn .nitp-booking-title {
  color: #fff !important;
  font: 700 15px/1.3 "DM Sans", sans-serif !important;
}
.vno-itn .noe-itn-item-sub,
.vno-itn .noe-itn-item-time,
.vno-itn .nitp-booking-row {
  color: rgba(240,240,255,.5) !important;
}
.vno-itn .noe-itn-type-table {
  background: rgba(255,140,0,.14) !important;
  color: #ffb04a !important;
}
.vno-itn .noe-itn-type-gl {
  background: rgba(233,30,140,.14) !important;
  color: #e91e8c !important;
}
.vno-itn .nitp-footer,
#vno-tables-page .nitp-footer {
  background: #0d0d14 !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
  padding-bottom: calc(20px + env(safe-area-inset-bottom)) !important;
}
.vno-itn .nitp-legal,
.vno-itn .nitp-legal-copy,
.vno-itn .noe-itn-empty {
  color: rgba(240,240,255,.45) !important;
}
.vno-itn .nitp-legal-links a {
  color: #e91e8c !important;
}
.vno-itn .nitp-success h3,
#vno-tables-page .nitp-success h3 {
  font-family: "Bebas Neue", sans-serif !important;
  letter-spacing: 1px;
  font-size: 28px !important;
  color: #fff !important;
}
.vno-tour-sess { margin-bottom: 12px; width: 100%; }

/* VIP tables page */
.vno-tbl-body { padding: 16px 16px 28px; }
.vno-tbl-guest { display: grid; gap: 10px; margin-bottom: 16px; }
.vno-tbl-card {
  background: #16161e;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 14px;
  margin: 0 0 12px;
}
.vno-tbl-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font: 800 11px/1 "DM Sans", sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(240,240,255,.5);
}
.vno-tbl-remove {
  border: 0;
  background: none;
  color: #e91e8c;
  font: 700 12px/1 "DM Sans", sans-serif;
}
.vno-tbl-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  background: #101018;
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 10px;
}
.vno-tbl-switch button {
  border: 0;
  background: transparent;
  color: rgba(240,240,255,.5);
  border-radius: 10px;
  padding: 10px 8px;
  font: 800 12px/1 "DM Sans", sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.vno-tbl-switch button.on {
  background: #e91e8c;
  color: #fff;
}
.vno-tbl-pick {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin-bottom: 10px;
}
.vno-tbl-select-wrap { min-width: 0; display: grid; gap: 6px; }
.vno-tbl-select-wrap select {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  appearance: none;
}
.vno-tbl-cal {
  height: 44px;
  min-width: 118px;
  border: 1px solid rgba(255,255,255,.1);
  background: #16161e;
  color: #f0f0ff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
}
.vno-tbl-cal svg { width: 16px; height: 16px; color: #e91e8c; flex-shrink: 0; }
.vno-tbl-cal b { font: 700 11px/1 "DM Sans", sans-serif; white-space: nowrap; }
.vno-tbl-add {
  width: 100%;
  border: 1px dashed rgba(233,30,140,.45);
  background: rgba(233,30,140,.08);
  color: #e91e8c;
  border-radius: 14px;
  padding: 14px;
  font: 800 13px/1 "DM Sans", sans-serif;
  letter-spacing: .04em;
  margin: 4px 0 12px;
}

/* ══════════════════════════════════════════════════════════════
   Phone landscape — keep mobile chrome, compact so cards line up
   iPhone landscape is often 844×390 (width ≥768), so also use height.
══════════════════════════════════════════════════════════════ */
@media (max-height: 500px) and (orientation: landscape) {
  .vno-preview-banner { padding: 4px 10px; font-size: 9px; }
  .noe-app-header,
  .noe-app-header.noe-home-header {
    padding: 4px 12px 4px !important;
  }
  .vno-brand-logo { width: 32px !important; height: 32px !important; }
  .vno-acct span { display: none; }
  .vno-acct { padding: 6px !important; }
  .vno-list-controls,
  .noe-app-controls.vno-list-controls {
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 12px 6px !important;
  }
  .vno-date-pill { align-self: center; padding: 7px 10px !important; white-space: nowrap; }
  .vno-search-row { flex: 1; min-width: 0; }
  .noe-app-main.noe-home-active,
  .noe-app-main.noe-home-active#noe-app-main {
    padding-top: var(--vno-home-head, 48px) !important;
    padding-bottom: 0 !important;
  }
  .noe-app-main:not(.noe-home-active),
  #noe-app-main:not(.noe-home-active) {
    padding-top: calc(env(safe-area-inset-top) + 108px) !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .vno-hero,
  .vno-hero-skel { height: 220px; }
  .vno-hero-copy h2 { font-size: 34px; }
  .vno-card-hit {
    grid-template-columns: 96px 1fr !important;
    height: 120px !important;
    max-height: 120px !important;
  }
  .vno-card-art { height: 120px !important; }
  .vno-card-title { font-size: 20px !important; }
  .vno-card-meta { padding: 8px 10px 8px 0; }
  .vno-card-actions { margin-top: 6px; }
  .vno-chip { padding: 6px 4px !important; }
  .vno-chip-tour,
  .vno-chip-tkt:only-child { padding: 6px 16px !important; }
  .noe-app-bottom-nav-mobile {
    height: 56px !important;
    left: 10px !important;
    right: 10px !important;
    bottom: calc(4px + env(safe-area-inset-bottom)) !important;
    border-radius: 999px !important;
    background: #12121a !important;
  }
  .noe-app-bottom-nav-mobile.is-compact {
    left: 22px !important;
    right: 22px !important;
    bottom: calc(4px + env(safe-area-inset-bottom)) !important;
    height: 48px !important;
  }
  .noe-app-bottom-nav-mobile.is-docked {
    left: 10px !important;
    right: 10px !important;
    bottom: calc(4px + env(safe-area-inset-bottom)) !important;
    height: 56px !important;
    border-radius: 999px !important;
  }
  .nep2-hero { height: 160px !important; max-height: 160px !important; }
}

/* ══════════════════════════════════════════════════════════════
   Tablet + desktop — live chrome (topbar + sidebar), new theme
══════════════════════════════════════════════════════════════ */
@media (min-width: 768px) and (min-height: 540px) {
  html, body.noe-app-body {
    height: 100% !important;
    overflow: hidden !important;
    display: block !important;
    padding: 0 !important;
  }
  #root {
    height: 100vh !important;
    overflow: hidden !important;
  }

  .noe-app-topbar,
  .noe-app-bottom-nav-mobile { display: none !important; }

  .noe-desktop-topbar {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: auto !important;
    background: #0d0d14 !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: 200 !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  .noe-desktop-topbar .vno-preview-banner {
    position: static;
    z-index: auto;
  }
  .noe-desktop-topbar-row {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 72px;
    padding: 0 20px;
    width: 100%;
    box-sizing: border-box;
  }
  .noe-desktop-topbar-logo {
    display: flex !important;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
  }
  .noe-desktop-topbar .vno-brand { gap: 10px; }
  .noe-desktop-topbar .vno-brand-logo { width: 56px !important; height: 56px !important; }
  .noe-desktop-topbar .vno-brand-web {
    font-size: 13px !important;
    letter-spacing: .02em !important;
  }
  .noe-dtb-center {
    display: flex !important;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
  }
  /* Same as live: topbar pills duplicate the sidebar. Landscape phones
     already stay on mobile chrome (max-height 539 / min-height 540 gate). */
  .noe-dtb-cats {
    display: none !important;
  }
  .noe-desktop-topbar-search {
    flex: 1;
    position: relative;
    min-width: 160px;
    max-width: 420px;
  }
  .noe-desktop-topbar-search input {
    width: 100%;
    height: 40px !important;
    border-radius: 14px !important;
    background: #12121a !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    padding: 0 14px 0 38px;
    color: #f0f0ff !important;
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    outline: none;
  }
  .noe-desktop-topbar-search input:focus { border-color: rgba(233,30,140,.45) !important; }
  .noe-desktop-topbar-right { margin-left: auto; flex-shrink: 0; }
  .noe-wallet-btn-topbar.vno-acct,
  .noe-wallet-btn-topbar {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    position: relative !important;
    width: auto !important;
    height: auto !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 999px !important;
    color: #f0f0ff !important;
    -webkit-text-fill-color: #f0f0ff !important;
    padding: 7px 12px 7px 8px !important;
    font: 700 12px/1 "DM Sans", sans-serif !important;
  }
  .noe-wallet-btn-topbar svg { stroke: #e91e8c !important; width: 16px !important; height: 16px !important; }
  .noe-wallet-btn-topbar .noe-wallet-label { color: #f0f0ff !important; -webkit-text-fill-color: #f0f0ff !important; }
  .noe-venues-pill-topbar {
    height: 40px !important;
    background: #16161e !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #f0f0ff !important;
    border-radius: 14px !important;
  }

  .noe-app-desktop-scroll {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    position: fixed !important;
    top: 96px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    overflow-y: scroll !important;
    overflow-x: hidden !important;
    height: auto !important;
    margin: 0 !important;
  }
  .noe-app-desktop-wrap,
  .noe-app-sidebar {
    display: flex !important;
    flex-direction: column !important;
    width: 220px !important;
    flex-shrink: 0 !important;
    position: sticky !important;
    top: 0 !important;
    height: calc(100vh - 96px) !important;
    overflow-y: auto !important;
    padding: 18px 14px 20px !important;
    border-right: 1px solid rgba(255,255,255,.08) !important;
    background: #0d0d14 !important;
    z-index: 100 !important;
    gap: 0 !important;
  }
  .noe-app-sidebar .vno-brand { display: none !important; }
  .noe-app-sidebar .noe-app-date-btn {
    width: 100% !important;
    height: 40px !important;
    border-radius: 999px !important;
    justify-content: center !important;
    margin: 0 0 10px !important;
    background: #12121a !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #f0f0ff !important;
    font: 700 12px/1 "DM Sans", sans-serif !important;
    gap: 8px;
  }
  .noe-app-sidebar .noe-app-date-btn svg { stroke: #e91e8c; width: 14px; height: 14px; }
  .noe-app-sidebar .noe-venues-pill-sidebar {
    display: none !important;
  }
  .noe-app-sidebar .noe-app-day-nav {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 6px !important;
    padding: 8px 0 12px !important;
    margin: 0 0 8px !important;
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  .noe-app-sidebar .noe-app-day-center {
    min-width: 0;
    flex: 1;
    overflow: hidden;
  }
  .noe-app-sidebar .noe-app-day-label {
    font: 700 11px/1.2 "DM Sans", sans-serif !important;
    color: #f0f0ff !important;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
  }
  .noe-app-sidebar .noe-app-prev,
  .noe-app-sidebar .noe-app-next {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #f0f0ff !important;
  }
  .noe-app-day-reset {
    background: none !important;
    border: 0 !important;
    color: #e91e8c !important;
    font: 700 11px/1 "DM Sans", sans-serif !important;
    cursor: pointer;
  }
  .noe-app-sidebar-label {
    display: block !important;
    margin: 8px 0 8px 2px !important;
    padding-top: 0 !important;
    border: 0 !important;
    font: 800 10px/1 "DM Sans", sans-serif !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: rgba(240,240,255,.45) !important;
  }
  .noe-app-sidebar .noe-app-bottom-nav {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    background: transparent !important;
    border: 0 !important;
    width: 100% !important;
    height: auto !important;
    gap: 4px !important;
    padding: 0 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    grid-template-columns: none !important;
  }
  .noe-app-sidebar .noe-app-nav-item {
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 10px 12px !important;
    gap: 10px !important;
    border-radius: 12px !important;
    background: none !important;
    border: 0 !important;
    color: rgba(240,240,255,.62) !important;
    box-shadow: none !important;
  }
  .noe-app-sidebar .noe-app-nav-item:hover {
    background: rgba(255,255,255,.05) !important;
    color: #f0f0ff !important;
  }
  .noe-app-sidebar .noe-app-nav-item.active {
    background: color-mix(in srgb, var(--nav-active-color, #e91e8c) 14%, transparent) !important;
    color: var(--nav-active-color, #e91e8c) !important;
  }
  .noe-app-sidebar .noe-app-nav-item.active::before { display: none !important; }
  .noe-app-sidebar .noe-app-nav-icon {
    width: 20px !important;
    height: 20px !important;
    background: none !important;
    filter: none !important;
  }
  .noe-app-sidebar .noe-app-nav-icon svg { width: 18px !important; height: 18px !important; }
  .noe-app-sidebar .noe-app-nav-label {
    display: block !important;
    font: 700 13px/1 "DM Sans", sans-serif !important;
    letter-spacing: .02em !important;
    text-transform: none !important;
  }

  body.vno-is-home .noe-app-sidebar .noe-app-date-btn,
  body.vno-is-home .noe-app-sidebar .noe-app-day-nav,
  body.vno-is-home .noe-venues-pill-sidebar { display: none !important; }

  #noe-app-main,
  .noe-app-main,
  .noe-app-main.noe-home-active,
  #noe-app-main.noe-home-active {
    flex: 1 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 20px 28px 48px !important;
    background: #0d0d14 !important;
  }
  .vno-home,
  .noe-home-page.vno-home { padding: 0 0 40px !important; }
  .vno-reviews {
    --vno-review-w: min(34%, 360px);
    gap: 16px;
    /* Desktop: start flush left like Deals — no centering gutter */
    padding-inline: 0;
    scroll-padding-inline: 0;
  }
  .vno-review {
    min-height: 196px;
    padding: 16px;
    border-radius: 18px;
    scroll-snap-align: start;
  }
  .vno-review p { font-size: 13.5px; line-height: 1.55; }
  .vno-review-av,
  .vno-review-av-img { width: 42px; height: 42px; }
  .vno-review-top b { font-size: 14px; }
  .vno-hero,
  .vno-hero-skel {
    height: 380px;
    border-radius: 22px;
  }
  .vno-hero-copy h2 { font-size: 56px; }
  .noe-list-view { padding: 0 0 24px !important; }

  .vno-card,
  .noe-app-main .vno-card.noe-list-entry {
    margin-bottom: 14px;
  }
  .vno-card-hit {
    grid-template-columns: 168px 1fr !important;
    height: 168px !important;
    max-height: 168px !important;
    gap: 14px;
  }
  .vno-card-art { height: 168px !important; }
  .vno-card-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    grid-template-rows: auto auto auto 1fr;
    column-gap: 12px;
    padding: 14px 16px 14px 0;
    min-width: 0;
  }
  .vno-card-venue,
  .vno-card-title,
  .vno-card-when { grid-column: 1; min-width: 0; }
  .vno-card-title {
    font-size: 30px !important;
    white-space: normal !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .vno-card-actions {
    grid-column: 2;
    grid-row: 1 / -1;
    flex-direction: column;
    justify-content: center;
    align-self: center;
    align-items: stretch;
    margin-top: 0;
    gap: 8px;
    height: auto;
    overflow: visible;
  }
  .vno-card .vno-chip {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 12px !important;
    font-size: 11px !important;
  }

  #noe-event-panel,
  #noe-itn-page,
  #vno-tables-page,
  #noe-org-panel {
    top: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    right: 0 !important;
    width: min(440px, 100%) !important;
    border-left: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: -24px 0 60px rgba(0,0,0,.45);
  }
  body.noe-app-body .vno-dp-overlay.noe-app-dp-overlay,
  body.noe-app-body .vno-dp-overlay.noe-app-dp-overlay.open {
    display: flex !important;
    inset: 0 !important;
    background: transparent !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 0 !important;
  }
  body.noe-app-body .vno-dp-overlay .noe-app-dp-wrap {
    width: 340px !important;
    max-width: 340px !important;
    margin: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    left: 0 !important;
    top: 0 !important;
  }
}

@media (min-width: 1024px) and (min-height: 540px) {
  .noe-app-sidebar,
  .noe-app-desktop-wrap { width: 240px !important; }
  .vno-card-hit {
    grid-template-columns: 200px 1fr !important;
    height: 188px !important;
    max-height: 188px !important;
  }
  .vno-card-art { height: 188px !important; }
  .vno-card-title { font-size: 34px !important; }
  .vno-hero,
  .vno-hero-skel { height: 440px; }
}

@media (min-width: 768px) and (max-width: 1023px) and (min-height: 540px) {
  .noe-app-sidebar,
  .noe-app-desktop-wrap { width: 200px !important; padding: 14px 10px 16px !important; }
  .noe-app-sidebar .noe-app-nav-label { font-size: 12px !important; }
  .vno-card-meta { grid-template-columns: minmax(0, 1fr) 128px; }
  .vno-card-title { font-size: 26px !important; }
  #noe-app-main, .noe-app-main { padding: 16px 16px 40px !important; }
}

/* iOS: 16px inputs so focus does not zoom / jump the page */
.noe-overlay-panel .noe-pf input,
#noe-popup-box input,
#noe-vip-box input,
#noe-group-box input,
.vno-popup-box input,
.noe-desktop-topbar-search input {
  font-size: 16px !important;
  touch-action: manipulation;
}

