/* ───────────────────────────────────────────────────────────────────────
   BNE.LIVE — 2026 Redesign
   Single SANS direction · dark-primary · Archivo editorial-industrial
   Source of truth: Claude Design handoff (BNE Live Redesign.html)
   ─────────────────────────────────────────────────────────────────────── */

:root {
  /* Palette — dark (default) */
  --bne-bg:         #0c0d10;
  --bne-bg-elev:    #131519;
  --bne-bg-card:    #181b21;
  --bne-fg:         #e8eaee;
  --bne-fg-dim:     rgba(232,234,238,0.55);
  --bne-fg-faint:   rgba(232,234,238,0.28);
  --bne-label:      rgba(232,234,238,0.60);
  --bne-line:       rgba(232,234,238,0.08);
  --bne-line-strong:rgba(232,234,238,0.16);

  /* Accent — muted slate/blue */
  --bne-accent:     oklch(68% 0.11 240);
  --bne-accent-ink: #ffffff;
  --bne-danger:     #e5484d;
  --bne-success:    #30a46c;

  /* Type stack — Archivo primary (editorial-industrial) */
  --bne-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --bne-body:    'Inter', 'Helvetica Neue', Arial, sans-serif;
  --bne-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Geometry */
  --bne-radius:      6px;
  --bne-radius-lg:   8px;
  --bne-radius-xl:   12px;
  --bne-shell-max:   1360px;
  --bne-gap:         32px;

  /* Motion */
  --bne-ease:        cubic-bezier(.2,.8,.2,1);
  --bne-fast:        140ms var(--bne-ease);
  --bne-med:         200ms var(--bne-ease);

  /* Poster */
  --bne-poster-radius: 6px;

  /* Chip background (tier badges, booking labels) */
  --bne-chip-bg: rgba(232,234,238,0.05);
}

.bne-buy-hold {
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 1px solid var(--bne-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
}

.bne-buy-hold[hidden] {
  display: none !important;
}

.bne-buy-hold-kicker {
  color: var(--bne-label);
  font-size: 11px;
  letter-spacing: 0.18em;
  margin-bottom: 6px;
}

.bne-buy-hold-copy {
  color: var(--bne-fg);
  font-size: 13px;
  line-height: 1.45;
}

.bne-buy-hold.is-warning {
  border-color: rgba(255, 180, 92, 0.45);
}

.bne-buy-hold.is-expired {
  border-color: rgba(255, 111, 111, 0.45);
}

body.bne-light .bne-buy-hold {
  background: rgba(24, 28, 37, 0.03);
}

/* ──────────────────────────────────────────────────────────────────
   TWEAKS PANEL — light/dark + accent + font swap.
   Activate via Shift+T or ?tweaks=1. Persists via localStorage.
   Pinned bottom-right, scoped to BNE design tokens only.
   ────────────────────────────────────────────────────────────────── */

/* Tweaks panel CSS lives in public/front/assets/css/bne-tweaks.css and
   is loaded by both the public + admin layouts. Kept out of this file
   so the same widget renders identically on every surface and so the
   admin shell can pull it in without the rest of the public CSS. */

/* ──────────────────────────────────────────────────────────────────
   MOBILE ADJUSTMENTS — final pass for narrow viewports
   ────────────────────────────────────────────────────────────────── */

@media (max-width: 760px) {
  /* Header: stack wordmark over the right group; smaller text */
  .header_inner { flex-wrap: wrap; gap: 12px; min-height: 56px; padding: 14px 0; }
  .bne-wordmark { font-size: 17px; }
  .bne-top-links { display: none; }
  .bne-signin { padding: 8px 14px; font-size: 12px; min-height: 36px; }

  /* Event detail: stack hero, kill sticky poster */
  .bne-event-shell { padding: 24px 20px 60px; }
  .bne-event-hero { grid-template-columns: 1fr !important; gap: 24px !important; }
  .bne-event-poster-col { position: static !important; max-width: 100% !important; }
  .bne-event-extras { grid-template-columns: 1fr; gap: 32px; padding-top: 32px; margin-top: 40px; }
  .bne-event-body { grid-template-columns: 1fr; gap: 14px; padding-top: 28px; margin-top: 36px; }
  .bne-event-title { font-size: clamp(28px, 8vw, 40px); }
  .bne-event-meta-row { grid-template-columns: 80px 1fr; gap: 12px; padding: 14px 0; }

  /* Buy / checkout: stack tier rows */
  .bne-buy-shell { padding: 24px 20px 48px; }
  .bne-buy-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  .tickets_price_list.bne-tier-row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px 0;
  }
  .bne-tier-price { text-align: left; align-items: flex-start; }
  .bne-buy-summary.checkout_sec { position: static !important; }

  /* Auth: full-width single column on mobile */
  .bne-auth, .bne-auth--register { grid-template-columns: 1fr !important; min-height: auto; }
  .bne-auth-editorial { padding: 28px 20px !important; gap: 28px; }
  .bne-auth-form-col, .bne-auth-form-col--wide { padding: 32px 20px !important; }
  .bne-auth-headline { font-size: clamp(28px, 8vw, 44px) !important; }
  .bne-auth-title { font-size: clamp(28px, 8vw, 36px) !important; margin-bottom: 24px; }

  /* Tickets page */
  .bne-tickets-shell { padding: 0 20px; }
  .bne-tickets { padding: 24px 0 56px; }
  .bne-tickets-h1 { font-size: clamp(36px, 10vw, 48px); }
  .bne-tickets-head { margin-bottom: 28px; gap: 12px; }
  .bne-tickets-headmeta { text-align: left; }
  .bne-tickets-grid { grid-template-columns: 1fr !important; }
  .bne-ticket-card { padding: 20px; }
  .bne-ticket-card-title { font-size: 22px; }

  /* Footer collapse */
  .bne-footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
  }
  .bne-footer-grid > div:first-child { grid-column: 1 / -1; }
  .bne-footer-bottom { flex-direction: column; gap: 6px; align-items: flex-start; }

  /* Profile / account / dashboard / host */
  .bne-profile-shell, .bne-dash-head, .bne-myevent-shell, .bne-hosted-shell {
    padding-left: 20px; padding-right: 20px;
  }
  .bne-profile-h1, .bne-myevent-h1, .bne-hosted-title { font-size: clamp(28px, 8vw, 40px) !important; }
  .bne-profile-grid { grid-template-columns: 1fr !important; gap: 20px; }
  .bne-stats-grid { grid-template-columns: 1fr !important; }
  .bne-hosted-cards { grid-template-columns: 1fr; }
  .bne-hosted-split { grid-template-columns: 1fr; }

  /* Tour */
  .bne-tour-shell { padding: 0 20px; }
  .bne-tour-row { grid-template-columns: 60px 1fr; gap: 16px; }
  .bne-tour-cta { grid-column: 1 / -1; margin-top: 8px; }

  /* Article pages */
  .bne-article-shell { padding: 0 20px; }
  .bne-article-h1 { font-size: clamp(32px, 9vw, 48px); }

  /* Seat-meta block */
  .bne-seat-meta { grid-template-columns: 1fr; gap: 14px; padding: 16px 0 24px; margin-bottom: 24px; }
}

@media (max-width: 540px) {
  /* Modals — full-screen on tiny phones */
  .modal-dialog { margin: 12px; }
  .bne-event-meta-row {
    grid-template-columns: 1fr; gap: 4px;
  }
  .bne-event-meta-row dt {
    margin-bottom: 4px;
  }
}

/* iOS safe-area awareness for sticky elements */
@supports (padding: env(safe-area-inset-bottom)) {
  .checkout_sec:not(.bne-buy-summary) {
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
  .bne-tweaks {
    bottom: max(16px, env(safe-area-inset-bottom));
  }
}

/* ── Light mode (via html.bne-light on html/body) ─────────────────────── */
html.bne-light {
  --bne-bg:         #f4f5f7;
  --bne-bg-elev:    #eaecef;
  --bne-bg-card:    #ffffff;
  --bne-fg:         #0c0d10;
  --bne-fg-dim:     rgba(12,13,16,0.55);
  --bne-fg-faint:   rgba(12,13,16,0.28);
  --bne-label:      rgba(12,13,16,0.48);
  --bne-line:       rgba(12,13,16,0.08);
  --bne-line-strong:rgba(12,13,16,0.18);
  --bne-chip-bg:    rgba(12,13,16,0.05);
}

/* ── Global reset + base voice ───────────────────────────────────── */
html, body {
  background: var(--bne-bg) !important;
  color: var(--bne-fg);
  font-family: var(--bne-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0;
}
body { min-height: 100vh; }

/* Kill the legacy radial gradient + ellipse */
body::before, body::after { display: none !important; }
.Ellipse { display: none !important; }

.main {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: 100vh;
}

a { color: var(--bne-fg); transition: opacity var(--bne-fast); }
a:hover { color: var(--bne-fg); opacity: .7; text-decoration: none; }

h1, h2, h3, h4, h5, h6,
.ux-title, .form_title {
  font-family: var(--bne-display);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg);
  margin: 0 0 12px;
}

.ux-title, h1 { font-size: 44px; line-height: 1.02; }
h2 { font-size: 32px; line-height: 1.08; }
h3 { font-size: 24px; line-height: 1.12; }
h4 { font-size: 18px; line-height: 1.2; }

p { color: var(--bne-fg); margin: 0 0 12px; }

::selection { background: var(--bne-accent); color: var(--bne-accent-ink); }

/* Mono accents for dates / meta */
.bne-mono, .event_list_time, .plan_price, .plan_price_fee,
.plan_sale_price {
  font-family: var(--bne-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 11px;
}

/* ── UX shell container ─────────────────────────────────────────── */
.ux-shell {
  background: transparent;
  padding: 48px 0 96px;
}
.ux-shell .container {
  max-width: var(--bne-shell-max);
  padding-left: 32px;
  padding-right: 32px;
}

@media (max-width: 640px) {
  .ux-shell { padding: 28px 0 64px; }
  .ux-shell .container { padding-left: 20px; padding-right: 20px; }
  .ux-title, h1 { font-size: 30px; }
}

/* ── HEADER — minimal: wordmark + avatar/sign-in ──────────────────── */
.header {
  background: var(--bne-bg);
  border-bottom: 1px solid var(--bne-line);
  position: sticky; top: 0; z-index: 100;
  padding: 0;
}
.header .container { max-width: var(--bne-shell-max); padding: 0 32px; }
.header_inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0;
  min-height: 64px;
}
.header_inner > .col-sm-6 {
  flex: 0 0 auto; max-width: none; width: auto;
  padding: 0;
}
.header_inner > .col-sm-6:last-child { margin-left: auto; }

.header_logo { display: none; } /* legacy image logo — replaced by wordmark */
.bne-wordmark {
  display: inline-block;
  font-family: var(--bne-display);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: 20px;
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  transition: opacity var(--bne-fast);
}
.bne-wordmark:hover { opacity: .75; color: var(--bne-fg) !important; }

.header_right_section { text-align: right; }
.header_right_section .dropdown { display: inline-block; }
.header_right_section .dropdown-toggle {
  background: transparent; border: none;
  font-family: var(--bne-body); font-size: 13px;
  color: var(--bne-fg); cursor: pointer;
  padding: 0; display: inline-flex; align-items: center; gap: 10px;
}
.header_right_section .dropdown-toggle::after { display: none; }
.header_right_section .dropdown-toggle span {
  font-weight: 500; letter-spacing: -0.005em;
}

.header_user_icon {
  width: 36px !important; height: 36px !important;
  border-radius: 50%;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  padding: 8px;
  filter: invert(1) brightness(1.1);
  opacity: .9;
  transition: opacity var(--bne-fast);
}
html.bne-light .header_user_icon { filter: none; opacity: .8; }
.header_user_icon:hover { opacity: 1; }

.bne-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bne-accent), var(--bne-fg-dim));
  color: var(--bne-accent-ink);
  font-family: var(--bne-display); font-weight: 700; font-size: 13px;
  letter-spacing: 0; text-transform: uppercase;
}

.bne-signin {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 18px;
  background: var(--bne-fg); color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg); border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 13px; font-weight: 500;
  text-decoration: none !important;
  min-height: 40px;
  transition: opacity var(--bne-fast);
}
.bne-signin:hover { opacity: .85; color: var(--bne-bg) !important; }

.dropdown-divider {
  height: 1px; background: var(--bne-line);
  margin: 6px 4px; border: none;
}

.dropdown-menu {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  padding: 6px; margin-top: 8px; min-width: 220px;
}
.dropdown-item {
  color: var(--bne-fg) !important;
  font-family: var(--bne-body); font-size: 13px;
  padding: 10px 12px; border-radius: 4px;
  transition: background var(--bne-fast);
}
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--bne-bg) !important;
  color: var(--bne-fg) !important;
}

/* ── FOOTER — minimal ─────────────────────────────────────────────── */
.footer, footer, .footer_sec {
  background: var(--bne-bg) !important;
  color: var(--bne-fg-dim);
  border-top: 1px solid var(--bne-line);
  padding: 32px 0 !important;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
}
.footer *, footer *, .footer_sec * {
  color: var(--bne-fg-dim) !important;
}
.footer a:hover, footer a:hover { color: var(--bne-fg) !important; opacity: 1; }

.bne-footer-row {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  flex-wrap: wrap; padding: 16px 0;
  max-width: var(--bne-shell-max); margin: 0 auto;
}
.bne-footer-brand { display: inline-flex; align-items: baseline; gap: 12px; }
.bne-footer-wordmark {
  font-family: var(--bne-display); font-weight: 800; letter-spacing: -0.03em;
  font-size: 14px; text-transform: none;
  color: var(--bne-fg) !important; text-decoration: none;
}
.bne-footer-tag {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.12em; color: var(--bne-fg-dim) !important;
}
.bne-footer-nav { display: flex; gap: 20px; flex-wrap: wrap; }
.bne-footer-nav a {
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none !important;
}
.bne-footer-nav a:hover { color: var(--bne-fg) !important; }
.bne-footer-copy { color: var(--bne-fg-dim) !important; }

/* ───────────────────────────────────────────────────────────────────
   HOMEPAGE v2 — BNE-only class namespace.
   These selectors do NOT appear in style.css so we sidestep the legacy
   `.grid_event_list .event_list_box { width: 23% }` cascade entirely.
   ─────────────────────────────────────────────────────────────────── */

.bne-visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.bne-home {
  background: var(--bne-bg);
  color: var(--bne-fg);
  padding: 40px 0 96px;
  min-height: calc(100vh - 64px);
}
.bne-home-shell {
  max-width: var(--bne-shell-max);
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-home-shell { padding: 0 20px; } }

.bne-home-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--bne-gap);
  width: 100%;
  margin: 0;
}
@media (max-width: 1100px) { .bne-home-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
@media (max-width: 760px)  { .bne-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 420px)  { .bne-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

a.bne-card,
a.bne-card:hover,
a.bne-card:focus {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  text-decoration: none;
  color: inherit;
}

.bne-card-inner {
  --bne-poster-hue: 220;
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 320px;
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
  border: 1px solid var(--bne-line);
  cursor: pointer;
  transition: transform var(--bne-med), border-color var(--bne-med), box-shadow var(--bne-med);
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 38%, 14%) 0%,
      hsl(var(--bne-poster-hue), 20%, 8%) 55%,
      var(--bne-bg) 100%);
}
a.bne-card:hover .bne-card-inner,
a.bne-card:focus-visible .bne-card-inner {
  transform: translateY(-2px);
  border-color: var(--bne-line-strong);
  box-shadow: 0 14px 40px rgba(0,0,0,0.35);
}

/* Sold-out treatment matches design's GridCard `opacity: 0.55` wrap. */
a.bne-card.is-sold-out { opacity: 0.55; }
a.bne-card.is-sold-out:hover .bne-card-inner { transform: none; }
a.bne-card.is-sold-out .bne-card-tag { color: var(--bne-fg-faint); }
/* "Few left" — pulse-tinted accent so the urgency reads. */
a.bne-card.is-few-left .bne-card-tag {
  color: #f59e0b; /* warning amber, distinct from accent slate */
}

.bne-card-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: saturate(.9) contrast(1.02);
}

.bne-card-inner::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.6) 78%, rgba(0,0,0,0.9) 100%),
    linear-gradient(165deg, hsla(var(--bne-poster-hue), 35%, 15%, 0.4) 0%, rgba(0,0,0,0) 65%);
}

.bne-card-frame {
  position: absolute; inset: 10px;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: calc(var(--bne-radius-lg) - 4px);
  z-index: 3;
  pointer-events: none;
}

.bne-card-top {
  position: absolute;
  top: 22px; left: 24px; right: 24px;
  z-index: 4;
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 12px;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.14em;
  color: rgba(255,255,255,0.7);
  line-height: 1.2;
}
.bne-card-date, .bne-card-city {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bne-card-city { text-align: right; }

.bne-card-bottom {
  position: absolute;
  left: 24px; right: 24px; bottom: 24px;
  z-index: 4;
  color: #ffffff;
}
.bne-card-tag {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.18em;
  color: var(--bne-accent);
  margin-bottom: 10px;
  text-transform: uppercase;
}
.bne-card-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 26px;
  line-height: 0.95;
  letter-spacing: -0.025em;
  margin: 0;
  color: #ffffff;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-card-subtitle {
  font-family: var(--bne-body);
  font-size: 13px;
  color: rgba(255,255,255,0.72);
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (min-width: 1280px) { .bne-card-title { font-size: 28px; } }
@media (max-width: 760px) {
  .bne-card-top { top: 16px; left: 18px; right: 18px; font-size: 10px; letter-spacing: 0.1em; }
  .bne-card-bottom { left: 18px; right: 18px; bottom: 18px; }
  .bne-card-title { font-size: 20px; }
  .bne-card-subtitle { font-size: 12px; }
  .bne-card-frame { inset: 8px; }
}

.bne-home-empty {
  grid-column: 1 / -1;
  padding: 80px 32px;
  text-align: center;
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-card);
}
.bne-home-empty-kicker {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.2em;
  color: var(--bne-fg-dim);
  margin-bottom: 12px;
}
.bne-home-empty p {
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  font-size: 14px;
  margin: 0;
}

.bne-home-pagination {
  margin-top: 56px;
  display: flex; justify-content: center;
}
.bne-home-pagination .pagination,
.bne-home-pagination ul.pagination {
  display: flex; gap: 4px;
  margin: 0; padding: 0;
  list-style: none;
}
.bne-home-pagination .page-item { margin: 0; }
.bne-home-pagination .page-link,
.bne-home-pagination span.page-link,
.bne-home-pagination a.page-link {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim);
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.08em;
  padding: 8px 14px;
  min-width: 40px; min-height: 38px;
  text-decoration: none;
  line-height: 1;
  box-shadow: none;
  transition: all var(--bne-fast);
  cursor: pointer;
  user-select: none;
}
.bne-home-pagination .page-link:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}
.bne-home-pagination .page-item.active .page-link {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
  cursor: default;
}
.bne-home-pagination .page-item.disabled .page-link {
  opacity: 0.35;
  color: var(--bne-fg-faint);
  cursor: not-allowed;
}

/* ── Legacy homepage classes (kept so old admin/previews still render) ─ */
.event_list_sec { padding-top: 40px; }
.event_list_sec .text-center.pb-4 { display: none; } /* hide legacy h1 */
.event_list_sec .container { max-width: var(--bne-shell-max); }

.grid_event_list,
.event_list_sec .grid_event_list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: var(--bne-gap) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-content: stretch !important;
  flex-wrap: unset !important;
}
@media (max-width: 1100px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px !important; }
}
@media (max-width: 760px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
}
@media (max-width: 420px) {
  .grid_event_list, .event_list_sec .grid_event_list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
}

/* ── POSTER CARD — editorial, typographic, photo-optional ──────────────
   Matches the Claude design handoff: tonal gradient hue derived per event
   id (set via inline --bne-poster-hue), inset frame, date top-left, city
   top-right, tag + title + subtitle bottom.  When an image is supplied it
   sits behind a vignette so the typography always reads. */

/* Override legacy style.css `.grid_event_list .event_list_box { width: 23%; padding: 15px; ... }`
   with higher-specificity + !important so the card stretches to fill the grid cell. */
.grid_event_list .event_list_box,
.grid_event_list > .event_list_box,
.event_list_box.bne-poster,
.event_list_box {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  color: inherit !important;
  width: 100% !important;
  max-width: none !important;
  position: relative;
}
.bne-poster,
.bne-poster:hover { text-decoration: none !important; color: inherit !important; }

.grid_event_list .event_list_box_inner,
.grid_event_list .bne-poster-inner,
.event_list_box_inner,
.bne-poster-inner {
  position: relative;
  width: 100% !important;
  aspect-ratio: 4 / 5;
  min-height: 320px;                  /* safety floor if aspect-ratio is unsupported */
  border-radius: var(--bne-poster-radius) !important;
  overflow: hidden;
  border: 1px solid var(--bne-line) !important;
  padding: 0 !important;
  cursor: pointer;
  transition: transform var(--bne-med), border-color var(--bne-med), box-shadow var(--bne-med);

  /* Tonal gradient by event id — mirrors the design's oklch(18% 0.04 {hue}) → bg gradient. */
  --bne-poster-hue: 220;
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 38%, 14%) 0%,
      hsl(var(--bne-poster-hue), 20%, 8%) 55%,
      var(--bne-bg) 100%) !important;
}
html.bne-light .bne-poster-inner {
  /* Base `.bne-poster-inner` ships with `background: ... !important`
     (the dark tonal gradient). Match that here so the light gradient
     actually wins in light mode — without !important the dark gradient
     leaked through and dark text rendered on a dark poster. */
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 36%, 92%) 0%,
      hsl(var(--bne-poster-hue), 18%, 96%) 55%,
      var(--bne-bg-card) 100%) !important;
}

.event_list_box_inner:hover,
.bne-poster:hover .bne-poster-inner {
  transform: translateY(-2px);
  border-color: var(--bne-line-strong);
  box-shadow: 0 14px 40px rgba(0,0,0,0.25);
}

/* Photo backdrop (optional) — sits at z=1, under the text overlays. */
.bne-poster-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: saturate(.9) contrast(1.02);
}
/* Vignette + darkening overlay so title/date always read. */
.bne-poster-inner::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.55) 78%, rgba(0,0,0,0.85) 100%),
    linear-gradient(165deg, hsl(var(--bne-poster-hue), 35%, 15%) 0%, rgba(0,0,0,0) 65%);
  pointer-events: none;
}
html.bne-light .bne-poster-inner::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 82%, rgba(0,0,0,0.55) 100%);
}

/* Inset frame — 1px line at 8px inset, per design. */
.bne-poster-frame {
  position: absolute; inset: 8px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: calc(var(--bne-poster-radius) - 2px);
  z-index: 3;
  pointer-events: none;
}
html.bne-light .bne-poster-frame { border-color: rgba(0,0,0,0.06); }

/* Top row — date + city in mono. */
.bne-poster-top {
  position: absolute; top: 18px; left: 20px; right: 20px;
  z-index: 4;
  display: flex; justify-content: space-between;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: rgba(255,255,255,0.65);
}
html.bne-light .bne-poster-top { color: rgba(0,0,0,0.55); }
.bne-poster-city { text-align: right; }

/* Bottom block — tag + title + subtitle. */
.bne-poster-bottom {
  position: absolute; left: 20px; right: 20px; bottom: 20px;
  z-index: 4;
  color: #fff;
}
html.bne-light .bne-poster-bottom { color: var(--bne-fg); }

.bne-poster-tag {
  font-family: var(--bne-mono);
  font-size: 9px; letter-spacing: 0.16em;
  color: var(--bne-accent);
  margin-bottom: 8px;
}
/* In light mode, the poster bg flips to a pale tonal gradient. The accent
   blue at oklch(68% 0.11 240) on that pale surface drops below AA; use a
   darker accent shade so "◆ ON SALE" stays legible on the poster card. */
html.bne-light .bne-poster-tag {
  color: oklch(48% 0.13 240);
}
.bne-poster-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 0.95;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-poster-subtitle {
  font-family: var(--bne-body);
  font-size: 12px;
  color: rgba(255,255,255,0.7);
  margin-top: 6px;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
html.bne-light .bne-poster-subtitle { color: var(--bne-fg-dim); }

/* Bigger title on wide screens. */
@media (min-width: 1200px) {
  .bne-poster-title { font-size: 28px; }
}

/* Legacy selector aliases — older templates may still use these classes. */
.event_list_img_list {
  position: absolute !important;
  inset: 0;
  width: 100% !important; height: 100% !important;
  max-width: none !important; max-height: none !important;
  object-fit: cover;
  border-radius: 0;
  z-index: 1;
}
.event_list_box_inner > img.bne-img-fallback-state,
.bne-poster-photo.bne-img-fallback-state { opacity: 0; }

/* Legacy attend-button (used inside event tiles and elsewhere). */
.attend_main { display: none; } /* no inline CTA on the new poster cards */
.attend_button {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff !important;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  border-radius: var(--bne-radius);
  min-height: 36px;
  transition: all var(--bne-fast);
}
.attend_button:hover { background: rgba(255,255,255,0.2); color: #fff !important; opacity: 1; }
.attend_button img { width: 10px; height: 10px; filter: invert(1); }

.bne-empty-state {
  grid-column: 1 / -1;
  padding: 96px 24px; text-align: center;
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-card);
}
.bne-empty-state-mono {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin-bottom: 8px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Pagination — override Bootstrap 4's blue chevrons */
.pagination,
ul.pagination {
  gap: 4px !important;
  margin-top: 48px !important;
  margin-bottom: 0 !important;
  justify-content: center !important;
  padding: 0 !important;
  list-style: none;
  display: flex !important;
}
.pagination .page-item,
ul.pagination li.page-item { margin: 0 !important; }
.pagination .page-link,
ul.pagination .page-link,
.pagination li span.page-link,
.pagination li a.page-link {
  background: transparent !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  border-radius: var(--bne-radius) !important;
  font-family: var(--bne-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  padding: 8px 14px !important;
  min-width: 40px;
  text-align: center;
  transition: all var(--bne-fast);
  box-shadow: none !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
  cursor: pointer !important;
  user-select: none;
}
.pagination .page-link:hover,
ul.pagination .page-link:hover {
  background: var(--bne-bg-elev) !important;
  color: var(--bne-fg) !important;
  border-color: var(--bne-line-strong) !important;
}
.pagination .page-item.active .page-link,
ul.pagination .page-item.active .page-link {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
  cursor: default !important;
}
.pagination .page-item.disabled .page-link,
ul.pagination .page-item.disabled .page-link {
  opacity: 0.35 !important;
  color: var(--bne-fg-faint) !important;
  cursor: not-allowed !important;
}
/* The "…" ellipsis separator from onEachSide() — non-interactive */
.pagination .page-item.disabled span.page-link[aria-disabled="true"],
.pagination li.disabled > span.page-link {
  cursor: default !important;
}
/* Chevron HTML entities inside page-link inherit color */
.pagination .page-link span,
.pagination .page-link[aria-hidden] { color: inherit !important; }

/* ── POSTER — 9:16 variant (hero / event detail) ──────────────────── */
.bne-poster--tall { width: 100%; }
.bne-poster-inner--tall {
  aspect-ratio: 9 / 16;
}
.bne-poster-inner--tall .bne-poster-top {
  font-size: 12px; letter-spacing: 0.14em;
  top: 24px; left: 28px; right: 28px;
}
.bne-poster-inner--tall .bne-poster-bottom {
  left: 28px; right: 28px; bottom: 28px;
}
.bne-poster-inner--tall .bne-poster-tag {
  font-size: 11px; letter-spacing: 0.18em; margin-bottom: 14px;
}
.bne-poster-inner--tall .bne-poster-title {
  font-size: clamp(28px, 9vw, 80px); line-height: 0.92;
  -webkit-line-clamp: 5;
}
.bne-poster-inner--tall .bne-poster-subtitle {
  font-size: 14px; margin-top: 10px;
}
.bne-poster-inner--tall .bne-poster-frame {
  inset: 12px;
}

/* ── EVENT DETAIL — editorial hero + body ─────────────────────────── */
.bne-event {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: calc(100vh - 64px);
}
.bne-event-shell {
  max-width: var(--bne-shell-max);
  margin: 0 auto;
  padding: 40px 32px 96px;
}
@media (max-width: 640px) { .bne-event-shell { padding: 24px 20px 64px; } }

.bne-event-crumb {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-label);
  margin-bottom: 28px;
  display: flex; align-items: center; gap: 10px;
}
.bne-event-back {
  background: transparent; border: none; padding: 0;
  font: inherit; letter-spacing: inherit; color: inherit !important;
  cursor: pointer; text-decoration: none !important;
}
.bne-event-back:hover { color: var(--bne-fg) !important; opacity: 1; }
.bne-event-crumb-sep { opacity: .5; }

.bne-event-hero {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 920px) {
  .bne-event-hero {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.bne-event-poster-col {
  position: sticky; top: 88px;
  display: flex; flex-direction: column; gap: 20px;
}
@media (max-width: 920px) {
  .bne-event-poster-col { position: static; max-width: 420px; }
}

.bne-event-share {
  display: flex; justify-content: flex-end; align-items: center;
  position: relative;
}
.bne-share-btn {
  background: transparent; border: none; cursor: pointer;
  padding: 0; color: var(--bne-fg-dim);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
}
.bne-share-btn:hover { color: var(--bne-fg); }

.bne-event-rail { min-width: 0; }
.bne-event-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(36px, 4.4vw, 64px);
  line-height: 1.0;
  letter-spacing: -0.025em;
  margin: 0 0 16px;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-event-support {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  margin-bottom: 40px;
}
.bne-event-support a {
  color: var(--bne-fg) !important;
  border-bottom: 1px solid var(--bne-line-strong);
  text-decoration: none !important;
  padding-bottom: 1px;
}
.bne-event-support a:hover { border-color: var(--bne-accent); opacity: 1; }

.bne-event-meta {
  margin: 0 0 32px;
  padding: 0;
  border-top: 1px solid var(--bne-line);
}
.bne-event-meta-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--bne-line);
  margin: 0;
}
.bne-event-meta-row dt {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  font-weight: 500;
  margin: 0;
  padding-top: 2px;
}
.bne-event-meta-row dd {
  margin: 0;
  display: flex; flex-direction: column; gap: 4px;
  font-family: var(--bne-body);
  color: var(--bne-fg);
}
.bne-event-meta-row dd strong {
  font-weight: 500;
  font-size: 15px;
  letter-spacing: -0.005em;
}
.bne-event-meta-row dd span {
  font-size: 13px;
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
}
.bne-event-meta-row dd p { margin: 0; color: var(--bne-fg-dim); font-size: 13px; }
.bne-event-inline-link {
  align-self: flex-start;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-accent) !important;
  text-decoration: none !important;
  margin-top: 4px;
}
.bne-event-inline-link:hover { opacity: .8; }

.bne-event-cta-row {
  display: flex; gap: 12px; margin-top: 8px;
  flex-wrap: wrap;
}
.bne-event-cta {
  flex: 1 1 auto;
  min-width: 200px;
  min-height: 56px !important;
  font-size: 15px !important;
}

.bne-event-seat-map {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid var(--bne-line);
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  gap: 40px;
  align-items: stretch;
}
.bne-seat-preview {
  min-height: 340px;
  background: var(--bne-bg);
  border: 1px solid var(--bne-line);
  position: relative;
  overflow: hidden;
}
.bne-seat-preview-canvas,
.bne-seat-preview-canvas > svg {
  width: 100%;
  height: 100%;
  min-height: 340px;
  display: block;
}
.bne-seat-preview .seat-section-frame {
  fill: rgba(232,234,238,0.025);
  stroke: rgba(232,234,238,0.10);
  stroke-width: 1;
}
.bne-seat-preview .seat-section-label,
.bne-seat-preview .seat-section-meta {
  fill: rgba(232,234,238,0.62);
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
}
.bne-seat-preview .seat-dot {
  stroke: rgba(0,0,0,0.45);
  stroke-width: 1;
}
.bne-seat-preview .seat-dot.is-blocked {
  opacity: 0.35;
}
.bne-seat-preview .stage-block {
  fill: rgba(232,234,238,0.08);
  stroke: rgba(232,234,238,0.18);
}
.bne-seat-preview .stage-label {
  fill: rgba(232,234,238,0.70);
  font-family: var(--bne-mono);
  font-size: 13px;
  letter-spacing: 0.16em;
}
.bne-seat-preview-count {
  position: absolute;
  left: 14px;
  bottom: 12px;
  padding: 5px 8px;
  background: rgba(12,13,16,0.76);
  border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim);
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
@media (max-width: 820px) {
  .bne-event-seat-map {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 32px;
    margin-top: 40px;
  }
}

.bne-event-body {
  margin-top: 72px;
  padding-top: 48px;
  border-top: 1px solid var(--bne-line);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 56px;
}
@media (max-width: 780px) {
  .bne-event-body {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 48px;
    padding-top: 32px;
  }
}
.bne-event-body-label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-event-body-copy {
  max-width: 680px;
  font-family: var(--bne-body);
  font-size: 16px; line-height: 1.65;
  color: var(--bne-fg);
  opacity: .9;
}
.bne-event-body-copy p:first-child {
  font-family: var(--bne-display);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.45;
  color: var(--bne-fg);
  opacity: 1;
  letter-spacing: -0.01em;
  margin: 0 0 24px;
  text-wrap: pretty;
}
.bne-event-body-copy p {
  margin: 0 0 14px;
  text-wrap: pretty;
}

/* CKEditor / TinyMCE / WYSIWYG output normalization — DB-stored rich text
   from organizers often has light-mode inline colors / fonts baked in.
   Strip them so the editorial body always reads on the dark theme. */
.bne-event-body-copy *,
.bne-event-body-copy span,
.bne-event-body-copy p,
.bne-event-body-copy li,
.bne-event-body-copy h1,
.bne-event-body-copy h2,
.bne-event-body-copy h3,
.bne-event-body-copy h4,
.bne-event-body-copy strong,
.bne-event-body-copy b,
.bne-event-body-copy em,
.bne-event-body-copy a {
  color: inherit !important;
  background: transparent !important;
  font-family: inherit;
}
.bne-event-body-copy a {
  color: var(--bne-accent) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--bne-line-strong);
}
.bne-event-body-copy ul, .bne-event-body-copy ol {
  margin: 0 0 14px; padding-left: 22px;
}
.bne-event-body-copy li { margin-bottom: 6px; }
.bne-event-body-copy h1, .bne-event-body-copy h2, .bne-event-body-copy h3 {
  font-family: var(--bne-display);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 28px 0 10px;
}
.bne-event-body-copy h1 { font-size: 22px; }
.bne-event-body-copy h2 { font-size: 19px; }
.bne-event-body-copy h3 { font-size: 16px; }
.bne-event-body-copy img { max-width: 100%; border-radius: var(--bne-radius); margin: 12px 0; }
.bne-event-body-copy blockquote {
  border-left: 3px solid var(--bne-accent);
  padding: 6px 14px;
  margin: 14px 0;
  font-style: italic;
  color: var(--bne-fg-dim);
}

/* ── Event-detail extras: Venue block + Also on related events ───── */
.bne-event-extras {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid var(--bne-line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media (max-width: 820px) {
  .bne-event-extras { grid-template-columns: 1fr; gap: 32px; }
}
.bne-event-extra-col { min-width: 0; }
.bne-event-extra-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--bne-fg);
  margin: 12px 0 4px;
}
.bne-event-extra-muted {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin: 0 0 18px;
}
.bne-event-map-placeholder {
  height: 200px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  background-image:
    linear-gradient(transparent 23px, rgba(232,234,238,0.04) 24px),
    linear-gradient(90deg, transparent 23px, rgba(232,234,238,0.04) 24px);
  background-size: 24px 24px;
}
.bne-event-facts {
  display: flex; gap: 32px; flex-wrap: wrap;
  margin-top: 20px;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-dim);
  text-transform: uppercase;
}

.bne-event-related-list {
  margin-top: 12px;
  border-top: 1px solid var(--bne-line);
}
a.bne-event-related-item {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--bne-line);
  text-decoration: none !important;
  color: var(--bne-fg) !important;
  transition: padding var(--bne-fast);
}
a.bne-event-related-item:hover { padding-left: 6px; }
a.bne-event-related-item:hover .bne-event-related-arrow { transform: translateX(4px); opacity: 1; }
.bne-event-related-date {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--bne-fg);
}
.bne-event-related-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bne-event-related-copy strong {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-event-related-copy span {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-event-related-arrow {
  font-family: var(--bne-mono);
  font-size: 18px;
  color: var(--bne-fg-faint);
  opacity: .6;
  transition: transform var(--bne-fast), opacity var(--bne-fast);
}
.bne-event-related-empty {
  padding: 28px 0;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-align: center;
}

/* ──────────────────────────────────────────────────────────────────
   YOUR TICKETS — 1:1 with the design's DeskTickets component.
   HELLO, NAME kicker + 64px Archivo title + counts · last sign in
   UPCOMING 2-col card grid (QR corner + dashed divider + CTA)
   PAST row list with big day number + venue + ATTENDED chip
   ────────────────────────────────────────────────────────────────── */

.bne-tickets {
  background: var(--bne-bg);
  color: var(--bne-fg);
  padding: 56px 0 96px;
  min-height: calc(100vh - 64px);
}
.bne-tickets-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 48px;
}
@media (max-width: 640px) { .bne-tickets-shell { padding: 0 20px; } .bne-tickets { padding: 28px 0 56px; } }

.bne-tickets-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 56px;
  gap: 24px; flex-wrap: wrap;
}
.bne-tickets-head .bne-admin-kicker {
  margin-bottom: 14px;
  color: var(--bne-fg-faint) !important;
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase;
}
.bne-tickets-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(44px, 5.2vw, 64px);
  letter-spacing: -0.025em;
  line-height: 1;
  color: var(--bne-fg);
  margin: 0;
}
.bne-tickets-headmeta {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-align: right;
}

.bne-tickets-banner {
  max-width: 1280px;
  margin: 24px auto 0;
  padding: 0 48px;
}
@media (max-width: 640px) { .bne-tickets-banner { padding: 0 20px; } }

/* UPCOMING grid */
.bne-tickets-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 24px;
}
@media (max-width: 780px) { .bne-tickets-grid { grid-template-columns: 1fr; } }

/* Ticket card */
.bne-ticket-card {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 28px;
  display: flex; flex-direction: column; gap: 18px;
  transition: border-color var(--bne-fast), transform var(--bne-fast);
}
.bne-ticket-card:hover {
  border-color: var(--bne-line-strong);
  transform: translateY(-1px);
}
.bne-ticket-card-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px;
}
.bne-ticket-card-copy { min-width: 0; flex: 1; }
.bne-ticket-card-meta {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: var(--bne-fg-dim);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.bne-ticket-card-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--bne-fg);
  margin: 0;
  text-wrap: balance;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-ticket-card-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.bne-ticket-card-qr {
  width: 64px; height: 64px; flex-shrink: 0;
  border: 1px solid var(--bne-line);
  border-radius: 6px;
  background: var(--bne-bg);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.bne-ticket-card-qr img {
  width: 100%; height: 100%; object-fit: contain;
  padding: 2px;
  background: #fff;
}
.bne-ticket-card-qr-stripe {
  width: 100%; height: 100%;
  background: var(--bne-bg);
  background-image: repeating-linear-gradient(45deg, var(--bne-fg) 0 2px, transparent 2px 5px);
  opacity: 0.85;
}

.bne-ticket-card-foot {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px dashed var(--bne-line);
}
.bne-ticket-card-foot-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: 12px 20px;
  min-width: 0; flex: 1;
}
.bne-ticket-card-foot-meta > div {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 13px; color: var(--bne-fg);
}
.bne-ticket-card-foot-meta span {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  font-weight: 400;
}
.bne-ticket-card-foot-meta strong {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
}
.bne-ticket-card-actions {
  display: flex; gap: 8px; flex-wrap: wrap;
  align-items: center;
}
.bne-ticket-card-actions .theme_btn,
.bne-ticket-card-actions .bne-auth-ghost {
  min-height: 38px !important;
  padding: 8px 14px !important;
  font-size: 12px !important;
  width: auto !important;
  white-space: nowrap;
}

/* PAST rows */
.bne-tickets-past {
  border-top: 1px solid var(--bne-line);
}
.bne-tickets-past-row {
  display: grid;
  grid-template-columns: 80px 1.5fr 1fr 110px auto;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--bne-line);
  align-items: center;
  opacity: 0.62;
}
@media (max-width: 820px) {
  .bne-tickets-past-row {
    grid-template-columns: 60px 1fr auto;
    gap: 14px;
  }
  .bne-tickets-past-row > :nth-child(3),
  .bne-tickets-past-row > :nth-child(4) { display: none; }
}

.bne-tickets-past-date {
  display: flex; flex-direction: column;
}
.bne-tickets-past-day {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-tickets-past-month {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--bne-fg-dim);
  margin-top: 4px;
}
.bne-tickets-past-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-tickets-past-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bne-tickets-past-status {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
.bne-tickets-past-receipt {
  padding: 6px 12px !important;
  min-height: 34px !important;
  font-size: 12px !important;
  width: auto !important;
}

/* ── Legacy event-detail classes (kept for any stray view usage) ──── */
.event_detail_sec { padding-top: 48px; padding-bottom: 96px; }
.event_detail_sec .container { max-width: var(--bne-shell-max); }
.event_detail_sec .row { --bs-gutter-x: 64px; gap: 0; }
.event_detail_left, .event_detail_right { padding: 0 16px; }
.event_detail_left_inner {
  position: sticky; top: 88px;
  /* Tonal fallback for when the hero image can't load — no jarring light admin box. */
  background: var(--bne-bg-elev);
  background-image: linear-gradient(165deg, rgba(125,155,220,0.22) 0%, rgba(232,234,238,0.02) 100%);
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
}
.event_list_img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;                 /* 4:5 reads better on web than 9:16 */
  object-fit: cover;
  border-radius: var(--bne-radius-lg);
  border: 1px solid var(--bne-line);
  background: transparent;
}
.event_list_img.bne-img-fallback-state { opacity: 0; }
.event_detail_left_inner .event_img_btm_txt,
.event_detail_left_inner .share_event_txt {
  padding: 0 16px;
}
.event_detail_left_inner .event_img_btm_txt { padding-top: 16px; }
.event_detail_left_inner .share_event_txt { padding-bottom: 16px; }

.event_img_btm_txt {
  display: flex; flex-direction: column; gap: 10px; margin-top: 20px;
}
.event_img_btm_txt .event_like_icon {
  font-size: 22px; cursor: pointer; color: var(--bne-fg-dim);
}

.share_event_txt {
  margin-top: 12px; text-align: left !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  display: flex; align-items: center; gap: 8px;
}
.share_event_txt img { width: 14px; height: 14px; filter: invert(.75); opacity: .8; }
html.bne-light .share_event_txt img { filter: invert(.4); }
.share_event_txt .btn-link { color: var(--bne-fg-dim) !important; padding: 0; font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.share_event_txt .btn-link:hover { color: var(--bne-fg) !important; opacity: 1; text-decoration: none; }

.event_detail_box_inner { padding: 0; }
.bne-eyebrow {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--bne-accent); margin-bottom: 16px;
}

.event_detail_box_inner h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(32px, 3.4vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 0 0 28px;
  color: var(--bne-fg);
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.host_txt, .event_schedule_txt, .event_location_txt {
  display: flex !important; gap: 14px;
  padding: 16px 0;
  border-top: 1px solid var(--bne-line);
  align-items: flex-start;
}
.host_txt img, .event_schedule_txt img, .event_location_txt img {
  width: 16px !important; height: 16px; opacity: .6; filter: invert(.8);
  margin-top: 2px; flex-shrink: 0;
}
html.bne-light .host_txt img, html.bne-light .event_schedule_txt img, html.bne-light .event_location_txt img { filter: none; opacity: .5; }
.event_right_txt { flex: 1; }
.event_right_txt span {
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--bne-fg-dim); display: block; margin-bottom: 4px;
}
.event_right_txt .event_date_txt span,
.event_right_txt > .event_date_txt > span {
  font-family: var(--bne-body); font-size: 15px; letter-spacing: -0.005em;
  text-transform: none; color: var(--bne-fg); font-weight: 500; margin: 0;
}
.event_right_txt a {
  color: var(--bne-accent); text-decoration: none;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
}
.event_right_txt a:hover { opacity: .8; color: var(--bne-accent); }
.event_right_txt p {
  font-size: 13px; color: var(--bne-fg-dim); margin: 2px 0;
}

.tickets_price_list_left {
  display: flex; gap: 14px; align-items: center;
  padding: 16px 0; border-top: 1px solid var(--bne-line);
}
.tickets_price_list_left img { width: 16px !important; opacity: .6; filter: invert(.8); }
html.bne-light .tickets_price_list_left img { filter: none; opacity: .5; }
.plan_sale_price { color: var(--bne-fg); font-family: var(--bne-display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; text-transform: none; }
.tickets_price_left_list_inner p {
  display: flex; align-items: baseline; gap: 6px;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--bne-fg-dim); margin: 0;
}
.plan_price { font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--bne-fg-dim); }

.event_btm_detail {
  margin-top: 32px;
  padding: 24px 0; border-top: 1px solid var(--bne-line);
}
.event_btm_detail_title {
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--bne-fg-dim); margin-bottom: 14px;
}
.event_details {
  font-family: var(--bne-body); font-size: 15px; line-height: 1.55;
  color: var(--bne-fg); opacity: .85;
}

/* CTA buttons (primary) */
.theme_btn, .buy_tickets_btn, .attend_button.theme_btn, .form_submit_btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--bne-body);
  font-size: 14px; font-weight: 500;
  letter-spacing: -0.005em;
  padding: 14px 24px;
  background: var(--bne-fg);
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  text-transform: none;
  min-height: 48px;
  transition: opacity var(--bne-fast), transform var(--bne-fast);
  cursor: pointer;
  box-shadow: none;
}
.theme_btn:hover, .buy_tickets_btn:hover, .form_submit_btn:hover {
  opacity: .85; color: var(--bne-bg) !important;
}
.theme_btn:disabled, .buy_tickets_btn:disabled, .form_submit_btn:disabled {
  opacity: .4; cursor: not-allowed;
}
.buy_tickets_btn { width: 100%; }

/* ── BUY TICKET — editorial checkout (DeskCheckout match) ─────────── */
.bne-buy {
  background: var(--bne-bg);
  color: var(--bne-fg);
  min-height: calc(100vh - 64px);
  padding: 0;
}
.buy_tickets_sec { padding: 0; background: transparent; }

.bne-buy-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 32px 96px;
}
@media (max-width: 640px) { .bne-buy-shell { padding: 24px 20px 48px; } }

.bne-buy-heading {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(36px, 4.4vw, 52px);
  letter-spacing: -0.03em;
  margin: 0 0 48px;
  color: var(--bne-fg);
}

.bne-buy-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
  gap: 56px;
  align-items: start;
}
@media (max-width: 960px) {
  .bne-buy-grid { grid-template-columns: 1fr; gap: 32px; }
}

.bne-buy-section { margin-bottom: 40px; }
.bne-buy-section:last-of-type { margin-bottom: 0; }
.bne-section-label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-label);
  margin-bottom: 14px;
  text-transform: uppercase;
}

/* Tier list — row per ticket tier */
.bne-tier-list { border-top: 1px solid var(--bne-line); }
.tickets_price_list.bne-tier-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "info qty"
    "price qty";
  gap: 8px 20px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--bne-line);
  background: transparent;
  border-radius: 0;
  margin: 0;
}
.tickets_price_list.bne-tier-row:hover { border-color: var(--bne-line); background: transparent; }
.bne-tier-info { grid-area: info; min-width: 0; }
.bne-tier-name {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  margin: 0;
}
.bne-tier-desc {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  line-height: 1.5;
}
.bne-tier-price {
  grid-area: price;
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg);
  text-align: left;
  white-space: nowrap;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  justify-content: flex-start;
}
.bne-tier-amount {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  white-space: nowrap;
  line-height: 1;
}
.bne-tier-dollar {
  font-family: var(--bne-body); color: var(--bne-fg);
  margin-right: 1px;
  flex: 0 0 auto;
  line-height: 1;
}
.plan_sale_price {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--bne-fg);
  text-transform: none;
  flex: 0 0 auto;
  line-height: 1;
}
.plan_price_fee.bne-tier-fee {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  margin: 0;
  line-height: 1;
  white-space: nowrap;
}
.bne-tier-qty { grid-area: qty; display: flex; align-items: center; justify-content: flex-end; }

.plan_add_btn.bne-tier-add {
  min-height: 36px;
  padding: 8px 20px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--bne-fast), border-color var(--bne-fast);
}
.plan_add_btn.bne-tier-add:hover {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg);
}

.plan_quantity_content { display: none; }
.bne-qty-stepper.plan_quantity_content {
  display: none; /* JS toggles on Add */
  align-items: center;
  gap: 10px;
}
.bne-qty-stepper[style*="block"] { display: flex !important; }
.plan_quntity_btns,
.bne-qty-stepper > div.plan_quntity_btns {
  display: inline-flex; align-items: center; gap: 10px;
  border: none; border-radius: 0;
}
.minus_btn, .plus_btn, .bne-qty-btn {
  width: 32px; height: 32px;
  background: transparent;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg) !important;
  font-family: var(--bne-mono);
  font-size: 14px;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 32px; padding: 0;
  transition: border-color var(--bne-fast);
}
.minus_btn:hover, .plus_btn:hover, .bne-qty-btn:hover { border-color: var(--bne-line-strong); }
.minus_btn:disabled, .plus_btn:disabled, .bne-qty-btn:disabled { opacity: .3; cursor: not-allowed; }
.qty_count, .bne-qty-count {
  width: 24px; text-align: center;
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg);
  border: none;
  background: transparent;
  padding: 0;
  align-self: center;
  display: inline-block;
}

/* Assigned seating CTA block */
.bne-seat-cta {
  display: flex; justify-content: space-between; align-items: center;
  gap: 20px;
  padding: 18px 20px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  flex-wrap: wrap;
  height: auto !important;
  min-width: 0 !important;
}
.bne-seat-cta-copy {
  min-width: 0 !important;
  flex: 1;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
}
.plan_add_btn.bne-seat-btn.bne-auth-ghost {
  min-height: 42px;
  height: auto !important;
  padding: 10px 18px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  flex-shrink: 0;
}
.plan_add_btn.bne-seat-btn:hover {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg);
}

/* Coupon row */
.tickets_price_coupon_list.bne-coupon-row {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 12px;
  align-items: flex-end;
}
.bne-coupon-row .bne-field { width: 100%; }
.coupon_field, .coupon_code {
  width: 100% !important;
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  font-family: var(--bne-body) !important;
  font-size: 14px !important;
  padding: 12px 14px !important;
  min-height: 48px;
  letter-spacing: 0 !important;
  text-transform: none !important;
  outline: none;
  box-sizing: border-box;
}
.coupon_field:focus, .coupon_code:focus {
  border-color: var(--bne-accent) !important;
  background: var(--bne-bg-card) !important;
}
.coupon_field::placeholder { color: var(--bne-fg-faint); }

/* Selected tickets mirror — shown below coupon as JS populates it */
.display_selected_tickets.bne-buy-selected { margin-top: 24px; }
.display_selected_tickets .tickets_price_list {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  padding: 14px 16px;
  margin-bottom: 8px;
}
.display_selected_tickets .tickets_price_list_inner {
  display: flex; justify-content: space-between; align-items: center;
}

/* Default .checkout_sec still used on seatChart as fixed bottom bar. */
.checkout_sec:not(.bne-buy-summary) {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
  background: var(--bne-bg-elev);
  border-top: 1px solid var(--bne-line-strong);
  padding: 16px 0;
  backdrop-filter: blur(20px);
}
.checkout_sec:not(.bne-buy-summary) .container { max-width: 1280px; }
.checkout_sec:not(.bne-buy-summary) .checkout_sec_inner {
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  flex-wrap: wrap;
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_left {
  display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim);
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_left p {
  display: inline; margin: 0;
}
.checkout_sec:not(.bne-buy-summary) .checkout_total {
  font-family: var(--bne-display); font-weight: 700; font-size: 22px;
  color: var(--bne-fg); letter-spacing: -0.02em;
  padding-right: 16px; border-right: 1px solid var(--bne-line);
}
.checkout_sec:not(.bne-buy-summary) .checkout_discount,
.checkout_sec:not(.bne-buy-summary) .checkout_total_price,
.checkout_sec:not(.bne-buy-summary) .checkout_ticket {
  color: var(--bne-fg); font-weight: 500;
}
.checkout_sec:not(.bne-buy-summary) .checkout_sec_right {
  width: auto; min-width: 200px;
}

/* ── Right-side sticky ORDER SUMMARY (was fixed bottom bar) ───────── */
.bne-buy-summary-col { position: relative; }
.bne-buy-summary.checkout_sec {
  position: sticky;
  top: 40px;
  left: auto; right: auto; bottom: auto;
  z-index: 1;
  padding: 28px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  backdrop-filter: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (max-width: 960px) {
  .bne-buy-summary.checkout_sec { position: static; margin-top: 0; }
}

.bne-buy-summary-hero {
  display: flex; gap: 14px; align-items: flex-start;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-buy-summary-poster {
  width: 72px; height: 90px; aspect-ratio: 4/5;
  border-radius: var(--bne-radius);
  overflow: hidden;
  border: 1px solid var(--bne-line);
  flex-shrink: 0;
  background: linear-gradient(165deg, hsl(var(--bne-poster-hue,220), 38%, 14%) 0%, hsl(var(--bne-poster-hue,220), 20%, 8%) 100%);
  position: relative;
}
.bne-buy-summary-poster img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.bne-buy-summary-info { min-width: 0; flex: 1; }
.bne-buy-summary-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--bne-fg);
  margin: 0 0 6px;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bne-buy-summary-meta {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  line-height: 1.5;
}

.bne-buy-summary-lines {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 0 !important;
  background: transparent !important;
  margin: 0 !important;
}
.bne-buy-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  gap: 16px;
  border: none !important;
}
.bne-buy-summary-row span { display: inline; border: none !important; padding: 0 !important; }
.bne-buy-summary-total {
  padding: 14px 0 0 !important;
  margin-top: 10px !important;
  border-top: 1px solid var(--bne-line) !important;
  font-family: var(--bne-display) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  letter-spacing: -0.02em;
  color: var(--bne-fg) !important;
}
.bne-buy-summary-count {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  font-weight: 400;
  margin-left: 4px;
}

/* Force JS-updated values into theme colors */
.bne-buy-summary .checkout_total,
.bne-buy-summary .checkout_discount,
.bne-buy-summary .checkout_total_price {
  color: var(--bne-fg) !important;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  padding: 0;
  border: none;
  background: transparent;
}

.bne-buy-place.checkout_sec_right.buy_tickets_btn.theme_btn {
  width: 100% !important;
  min-width: 0 !important;
  margin: 6px 0 0;
  height: 50px;
  min-height: 50px !important;
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 14px; font-weight: 500;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-buy-place.checkout_sec_right.buy_tickets_btn.theme_btn:hover { opacity: .88; }
.bne-buy-place:disabled { opacity: .4; cursor: not-allowed; }
.bne-buy-place .checkout_btn { color: inherit; font: inherit; letter-spacing: 0; text-transform: none; }

/* ── MY EVENTS (host event list) ──────────────────────────────────── */
.bne-myevent { padding: 40px 0 96px; }
.bne-myevent-shell {
  max-width: 1200px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-myevent-shell { padding: 0 20px; } }

.bne-myevent-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap;
  margin-bottom: 32px;
}
.bne-myevent-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 48px);
  letter-spacing: -0.03em;
  margin: 0;
}
.bne-myevent-cta {
  min-width: auto !important;
  padding: 12px 20px !important;
  min-height: 42px !important;
}

.bne-panel--table { padding: 0; overflow: hidden; }
.bne-panel--table .dataTables_wrapper { padding: 20px 20px 8px; }
.bne-panel--table .dataTables_filter input {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 8px 12px !important;
  font-family: var(--bne-body);
  font-size: 13px;
  min-height: 36px;
  margin-left: 8px;
}
.bne-panel--table .dataTables_length select {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 6px 10px !important;
  font-family: var(--bne-body);
}
.bne-panel--table .dataTables_info {
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em;
}
.bne-panel--table .dataTables_paginate .paginate_button {
  background: transparent !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-mono); font-size: 11px;
  border-radius: var(--bne-radius) !important;
  padding: 6px 12px !important;
  margin: 0 2px;
}
.bne-panel--table .dataTables_paginate .paginate_button.current {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
}
.bne-myevent-table img {
  width: 56px; height: 72px;
  object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}
.bne-myevent-table .action_btn a,
.bne-myevent-table .action_btn button {
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  padding: 6px 10px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.1em;
  text-decoration: none;
  cursor: pointer;
  margin-right: 6px;
  text-transform: uppercase;
  display: inline-block;
}
.bne-myevent-table .action_btn a:hover,
.bne-myevent-table .action_btn button:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}

.bne-danger-btn {
  background: var(--bne-danger) !important;
  border-color: var(--bne-danger) !important;
  color: #fff !important;
}
.bne-danger-btn:hover { opacity: .88; }

/* ── STATIC ARTICLE PAGES (about / privacy / refund / support) ───── */
.bne-article { padding: 40px 0 96px; }
.bne-article-shell {
  max-width: 820px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-article-shell { padding: 0 20px; } }

.bne-article-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 68px);
  letter-spacing: -0.025em;
  line-height: 0.98;
  margin: 8px 0 24px;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-article-lede {
  font-family: var(--bne-body);
  font-size: 18px;
  line-height: 1.55;
  color: var(--bne-fg-dim);
  max-width: 680px;
  margin-bottom: 48px;
}
.bne-article-body {
  font-family: var(--bne-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--bne-fg);
  opacity: .92;
  max-width: 720px;
}
.bne-article-body h2 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  margin: 40px 0 12px;
  color: var(--bne-fg);
  opacity: 1;
}
.bne-article-body p {
  margin: 0 0 16px;
  color: var(--bne-fg);
  opacity: .85;
}
.bne-article-body ul {
  padding-left: 20px;
  margin: 0 0 16px;
}
.bne-article-body li {
  margin-bottom: 6px;
  color: var(--bne-fg);
  opacity: .85;
}
.bne-article-body a {
  color: var(--bne-accent) !important;
  border-bottom: 1px solid var(--bne-line-strong);
  text-decoration: none !important;
}
.bne-article-body a:hover { border-color: var(--bne-accent); opacity: 1; }
.bne-article-body strong, .bne-article-body b { color: var(--bne-fg); opacity: 1; font-weight: 600; }

.bne-article-cta-row {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 40px;
}

/* Support grid */
.bne-support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}
@media (max-width: 640px) { .bne-support-grid { grid-template-columns: 1fr; } }
.bne-support-card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px;
}
.bne-support-card .bne-section-label { margin-bottom: 14px; }
.bne-support-card p, .bne-support-card li {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: 0 0 10px;
  line-height: 1.55;
}
.bne-support-card strong {
  display: inline-block;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  font-weight: 500;
  margin-bottom: 2px;
}
.bne-support-card ul { padding-left: 18px; margin: 0; }
.bne-support-card ul li { list-style: disc; }
.bne-support-card a {
  color: var(--bne-accent) !important;
  text-decoration: none !important;
}
.bne-support-card a:hover { opacity: .8; }
.bne-support-note {
  font-family: var(--bne-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  color: var(--bne-fg-faint) !important;
  text-transform: uppercase;
  margin-top: 14px !important;
}

/* ── TOUR DATES ──────────────────────────────────────────────────── */
.bne-tour { padding: 48px 0 96px; }
.bne-tour-shell {
  max-width: 960px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-tour-shell { padding: 0 20px; } }

.bne-tour-head {
  text-align: center;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--bne-line);
  margin-bottom: 24px;
}
.bne-tour-head .bne-eyebrow { color: var(--bne-accent); }
.bne-tour-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(48px, 6.5vw, 84px);
  letter-spacing: -0.025em;
  line-height: 0.96;
  margin: 8px 0 16px;
  color: var(--bne-fg);
}
.bne-tour-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  line-height: 1.55;
  max-width: 540px;
  margin: 0 auto;
}

.bne-tour-list { display: flex; flex-direction: column; }
.bne-tour-row {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--bne-line);
}
.bne-tour-row.is-past { opacity: .4; }
.bne-tour-row.is-past .bne-tour-city,
.bne-tour-row.is-past .bne-tour-venue { text-decoration: line-through; }

.bne-tour-date {
  display: flex; flex-direction: column;
  gap: 4px; align-items: flex-start;
}
.bne-tour-month {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.18em;
  color: var(--bne-fg-faint);
}
.bne-tour-day {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 40px;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--bne-fg);
}

.bne-tour-where { min-width: 0; }
.bne-tour-city {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
  margin-bottom: 4px;
}
.bne-tour-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
}

.bne-tour-btn {
  min-height: 42px !important;
  padding: 10px 20px !important;
  font-size: 13px;
}
.bne-tour-badge {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim);
  border: 1px solid var(--bne-line);
  padding: 8px 14px;
  border-radius: var(--bne-radius);
}
.bne-tour-badge--past {
  color: var(--bne-fg-faint);
  border-color: var(--bne-line);
}

@media (max-width: 540px) {
  .bne-tour-row {
    grid-template-columns: 64px 1fr;
    gap: 20px;
  }
  .bne-tour-cta {
    grid-column: 1 / -1;
    margin-top: 8px;
  }
  .bne-tour-day { font-size: 32px; }
  .bne-tour-city { font-size: 17px; }
}

/* ── EVENT EDITOR (add-event / edit-event) ────────────────────────── */
.bne-event-editor { padding: 40px 0 96px; }
.bne-event-editor-shell {
  max-width: 980px; margin: 0 auto; padding: 0 32px;
}
@media (max-width: 640px) { .bne-event-editor-shell { padding: 0 20px; } }

.bne-event-editor-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(36px, 4.4vw, 56px);
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 8px 0 12px;
  color: var(--bne-fg);
}
.bne-event-editor-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  margin: 0 0 36px;
  line-height: 1.55;
  max-width: 640px;
}
.bne-event-editor-hint {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin: 0 0 16px;
}

.bne-event-editor-section {
  padding: 32px 0;
  border-top: 1px solid var(--bne-line);
  display: flex; flex-direction: column; gap: 14px;
}
.bne-event-editor-section:first-of-type { border-top: none; padding-top: 8px; }
.bne-event-editor-section .bne-section-label { margin: 0 0 6px; }

.bne-field-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 620px) { .bne-field-grid--3 { grid-template-columns: 1fr; } }

/* Native date/time inputs — keep consistent dark theme */
input[type="date"].form_field_input,
input[type="time"].form_field_input,
input[type="number"].form_field_input,
input[type="tel"].form_field_input,
input[type="email"].form_field_input,
input[type="text"].form_field_input,
textarea.form_field_input {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body) !important;
  font-size: 14px !important;
  min-height: 48px;
  width: 100%;
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--bne-fast);
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
  filter: invert(.7);
  cursor: pointer;
}
input.form_field_input:focus,
textarea.form_field_input:focus {
  border-color: var(--bne-accent) !important;
  background: var(--bne-bg-card) !important;
}
input.form_field_input[readonly] {
  opacity: .7;
  cursor: not-allowed;
}

/* CKEditor container */
.bne-editor {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: 0 0 var(--bne-radius) var(--bne-radius);
  color: var(--bne-fg);
  min-height: 180px;
  max-height: 280px;
  overflow: auto;
  padding: 12px;
}
.bne-editor-toolbar {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-bottom: none;
  border-radius: var(--bne-radius) var(--bne-radius) 0 0;
}
.ck.ck-toolbar {
  background: transparent !important;
  border: none !important;
}
.ck.ck-toolbar .ck-button,
.ck.ck-toolbar .ck-dropdown__button {
  color: var(--bne-fg) !important;
  background: transparent !important;
}
.ck.ck-toolbar .ck-button:hover,
.ck.ck-toolbar .ck-dropdown__button:hover {
  background: var(--bne-bg-elev) !important;
}
.ck.ck-toolbar .ck-button.ck-on {
  background: var(--bne-accent) !important;
  color: var(--bne-accent-ink) !important;
}
.ck.ck-content { color: var(--bne-fg); font-family: var(--bne-body); font-size: 14px; }
.ck.ck-content p, .ck.ck-content li { color: var(--bne-fg); }
.ck-focused { border-color: var(--bne-accent) !important; box-shadow: none !important; outline: none !important; }

/* Editor action bar */
.bne-event-editor-actions {
  display: flex; justify-content: flex-end; gap: 10px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--bne-line);
  flex-wrap: wrap;
}

/* Ticket tier table (inside add-event / edit-event) */
.bne-tier-table {
  margin: 0;
  color: var(--bne-fg);
}
.bne-tier-table thead th {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-faint);
  font-weight: 500;
  border-bottom: 1px solid var(--bne-line-strong) !important;
  padding: 14px 12px;
  background: transparent;
}
.bne-tier-table tbody td {
  border-bottom: 1px solid var(--bne-line) !important;
  padding: 12px 12px;
  vertical-align: middle;
}
.bne-tier-table tbody tr { background: transparent !important; }
.bne-tier-table input.form_field,
.bne-tier-table textarea.form_field {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 8px 12px !important;
  font-family: var(--bne-body) !important;
  font-size: 13px !important;
  min-height: 38px;
  width: 100%;
}
.bne-tier-table input.form_field:focus,
.bne-tier-table textarea.form_field:focus {
  border-color: var(--bne-accent) !important;
}
.bne-tier-remove {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim) !important;
  background: transparent;
  font-size: 16px; line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color var(--bne-fast), color var(--bne-fast);
}
.bne-tier-remove:hover {
  border-color: var(--bne-danger);
  color: var(--bne-danger) !important;
}

.bne-event-editor-rowadd { margin: 14px 0 24px; }
.bne-event-editor-addline {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  font-size: 12px;
  min-height: 36px !important;
  height: 36px;
  width: auto !important;
  text-decoration: none !important;
}

/* Tabs */
.bne-tabs {
  display: flex; gap: 2px;
  border-bottom: 1px solid var(--bne-line);
  margin: 8px 0 32px;
}
.bne-tab {
  background: transparent;
  border: none;
  color: var(--bne-fg-dim);
  padding: 12px 16px;
  font-family: var(--bne-body);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color var(--bne-fast), border-color var(--bne-fast);
  margin-bottom: -1px;
}
.bne-tab:hover { color: var(--bne-fg); }
.bne-tab.is-active,
.bne-tab.active,
.bne-tab[aria-selected="true"] {
  color: var(--bne-fg);
  border-bottom-color: var(--bne-accent);
}

.bne-seat-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  padding: 20px 0 32px;
  border-bottom: 1px solid var(--bne-line);
  margin-bottom: 32px;
}
.bne-seat-meta > div {
  display: flex; flex-direction: column; gap: 6px;
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg);
}
.bne-seat-meta .bne-section-label {
  margin: 0;
}

.bne-buy-summary-footnote {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-align: center;
  line-height: 1.6;
  margin-top: 6px;
  text-transform: uppercase;
}
.display_selected_tickets .plan_price_title { color: var(--bne-accent); }

/* ── SEAT CHART ──────────────────────────────────────────────────── */
.seatChart_sec, .seatchart, .seat-chart-wrapper {
  padding: 48px 0 140px;
  background: var(--bne-bg);
  min-height: 80vh;
}
.seatChart_sec .container { max-width: var(--bne-shell-max); }
.seatChart_sec h1, .seatChart_sec h2 {
  font-family: var(--bne-display); font-weight: 700;
  letter-spacing: -0.025em;
}
.seat-row, .seat_row { display: flex; gap: 6px; justify-content: center; margin-bottom: 6px; flex-wrap: wrap; }
.seat, .seat_box, [class*="seat-"] {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  border-radius: 4px; min-width: 28px; height: 28px;
  font-family: var(--bne-mono); font-size: 10px;
  transition: all var(--bne-fast);
}
.seat.available, .seat_available, .available-seat { background: var(--bne-bg-elev); border-color: var(--bne-line-strong); cursor: pointer; }
.seat.available:hover, .seat_available:hover { background: var(--bne-accent); color: var(--bne-accent-ink); border-color: var(--bne-accent); }
.seat.selected, .seat_selected, .selected-seat { background: var(--bne-accent) !important; color: var(--bne-accent-ink) !important; border-color: var(--bne-accent) !important; }
.seat.booked, .seat.sold, .seat_sold, .booked-seat { opacity: .25; cursor: not-allowed; }
.stage, .stage-bar, .seat_stage {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  color: var(--bne-fg-dim);
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.2em;
  text-transform: uppercase; padding: 12px; border-radius: var(--bne-radius);
  text-align: center; margin-bottom: 32px;
}
.seat-legend, .legend {
  display: flex; gap: 20px; font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin: 24px 0;
  flex-wrap: wrap; justify-content: center;
}
.legend-item { display: inline-flex; align-items: center; gap: 6px; }

/* Seat chart btn-sm buttons (dynamically generated) */
.buy_tickets_sec .btn.btn-sm {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  border-radius: 4px;
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.04em;
  min-height: 32px; min-width: 32px;
  padding: 4px 8px;
  transition: all var(--bne-fast);
}
.buy_tickets_sec .btn.btn-sm.active {
  background: var(--bne-accent) !important;
  border-color: var(--bne-accent) !important;
  color: var(--bne-accent-ink) !important;
}
.buy_tickets_sec .btn.btn-sm:hover:not(:disabled) {
  border-color: var(--bne-accent); color: var(--bne-fg);
}
.buy_tickets_sec .btn.btn-sm:disabled {
  opacity: .25; cursor: not-allowed;
}
.sold_out {
  background: transparent; border: 1px solid var(--bne-line);
  color: var(--bne-fg-dim); font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 10px 16px; border-radius: var(--bne-radius);
  cursor: not-allowed;
}

.display_selected_seats {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 16px 20px; margin-top: 12px;
}

/* ── AUTH — two-column editorial split (login / register / forgot) ──
   Hides the main layout's header+footer wrapper so the auth page takes
   the full viewport, matching the design's full-bleed split. */

.bne-auth {
  position: fixed; inset: 0;
  display: grid;
  grid-template-columns: 1fr 480px;
  background: var(--bne-bg);
  color: var(--bne-fg);
  z-index: 10;
  overflow: auto;
}
.bne-auth--register { grid-template-columns: 1fr 1fr; }
.bne-auth--single {
  display: block; /* single-column, centered */
  padding: 0;
}

@media (max-width: 900px) {
  .bne-auth, .bne-auth--register {
    position: static;
    grid-template-columns: 1fr;
    min-height: calc(100vh - 64px);
  }
}

/* Hide the global header + footer + loader ornaments when on an auth page
   so the editorial split goes edge-to-edge as the design specifies. */
body.bne-auth-page { overflow: hidden; }
body.bne-auth-page .header,
body.bne-auth-page .footer,
body.bne-auth-page > .Ellipse,
body.bne-auth-page .main > .Ellipse { display: none !important; }
body.bne-auth-page .main { background: transparent; padding: 0; margin: 0; }
body.bne-auth-page #status { display: none; }

/* Left editorial panel.

   IMPORTANT: previously this used `justify-content: space-between` which
   re-distributed the wordmark / copy / footer children whenever the form
   column on the right changed height (Turnstile success badge appearing,
   web font swap landing). The visible symptom was the "Tickets, held for
   the people who actually show up." headline jumping ~70px mid-load.

   Switched to a top-anchored stack: each child sits at its natural
   position and a single `margin-top: auto` on the footer pins the
   "© BNE.LIVE" line to the bottom. The middle copy stays where it
   first painted no matter how the right column resizes. */
.bne-auth-editorial {
  padding: 48px 56px;
  background: var(--bne-bg-elev);
  border-right: 1px solid var(--bne-line);
  display: flex; flex-direction: column;
  min-height: 100%;
  gap: 48px;
}
.bne-auth-editorial > .bne-auth-foot {
  margin-top: auto;
}

/* Reserve space for the Cloudflare Turnstile widget so the form column
   doesn't grow ~65px when the success badge lands. Without this the
   "Sign in" button (and everything below) lurches mid-load and feels
   broken even though it's just the challenge resolving. */
.bne-auth-form .cf-turnstile {
  display: block;
  min-height: 65px;
}
.bne-auth-editorial--gradient {
  background:
    radial-gradient(120% 80% at 0% 0%, hsl(240, 32%, 18%) 0%, transparent 60%),
    linear-gradient(165deg, hsl(220, 38%, 14%) 0%, var(--bne-bg) 80%);
  border-right: 1px solid var(--bne-line);
}
@media (max-width: 900px) {
  .bne-auth-editorial { padding: 32px 24px; border-right: none; border-bottom: 1px solid var(--bne-line); }
}

.bne-auth-wordmark {
  font-family: var(--bne-display);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: 20px;
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  align-self: flex-start;
}
.bne-auth-wordmark--floating {
  position: fixed; top: 32px; left: 32px; z-index: 11;
}
@media (max-width: 640px) {
  .bne-auth-wordmark--floating { top: 20px; left: 20px; font-size: 17px; }
}

.bne-auth-editorial-main { max-width: 520px; }
.bne-auth-kicker {
  font-family: var(--bne-mono);
  font-size: 11px; letter-spacing: 0.16em;
  color: var(--bne-fg-faint);
  margin-bottom: 20px;
}
.bne-auth-kicker--accent { color: var(--bne-accent); }

.bne-auth-headline {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-auth-headline--xl { font-size: clamp(40px, 5vw, 68px); }
.bne-auth-accent { color: var(--bne-accent); }

.bne-auth-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--bne-fg-dim);
  margin: 24px 0 0;
  max-width: 420px;
}
.bne-auth-foot {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
}
.bne-auth-stats {
  display: flex; gap: 40px; flex-wrap: wrap;
}
.bne-auth-stats .n {
  font-family: var(--bne-display);
  font-weight: 700; font-size: 28px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-auth-stats .l {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  margin-top: 4px;
}

/* Right form column */
.bne-auth-form-col {
  padding: 72px 64px;
  display: flex; flex-direction: column; justify-content: center;
  max-width: 480px;
  width: 100%;
  align-self: center;
  justify-self: center;
}
.bne-auth-form-col--wide {
  padding: 64px 80px;
  max-width: 640px;
}
@media (max-width: 900px) {
  .bne-auth-form-col, .bne-auth-form-col--wide { padding: 40px 24px; }
}

.bne-auth-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(32px, 3.2vw, 44px);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  color: var(--bne-fg);
}
.bne-auth-intro {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: -16px 0 32px;
  line-height: 1.55;
}

.bne-auth-form {
  display: flex; flex-direction: column; gap: 14px;
}
.bne-field-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
@media (max-width: 520px) { .bne-field-grid { grid-template-columns: 1fr; gap: 0; } }

.bne-field { display: flex; flex-direction: column; gap: 6px; }
.bne-field label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-label);
  font-weight: 500;
  margin: 0;
}
.bne-field input[type="text"],
.bne-field input[type="email"],
.bne-field input[type="password"],
.bne-field input[type="tel"],
.bne-field input[type="number"] {
  width: 100%;
  padding: 12px 14px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--bne-fast);
  min-height: 48px;
}
.bne-field input::placeholder { color: var(--bne-fg-faint); opacity: 1; }
.bne-field input:focus {
  border-color: var(--bne-accent);
  background: var(--bne-bg-card);
}
.bne-field-hint {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  margin-top: 2px;
}

.bne-checkbox-row {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 6px 0 12px;
  cursor: pointer;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  line-height: 1.5;
}
.bne-checkbox-row input[type=checkbox] {
  width: 16px; height: 16px;
  accent-color: var(--bne-accent);
  margin-top: 2px;
  flex-shrink: 0;
}
.bne-checkbox-row a {
  color: var(--bne-accent);
  text-decoration: underline;
}

.bne-auth-submit,
button.bne-auth-submit {
  margin-top: 10px;
  width: 100%;
  height: 50px;
  min-height: 50px !important;
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-auth-submit:hover { opacity: .88; }
.bne-auth-submit:disabled { opacity: .35; cursor: not-allowed; }

.bne-auth-forgot-row {
  text-align: right;
  margin: -4px 0 8px;
}
.bne-auth-forgot {
  background: transparent; border: none;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-accent) !important;
  text-decoration: none !important;
  padding: 0;
  cursor: pointer;
}
.bne-auth-forgot:hover { opacity: .8; }

.bne-auth-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 14px 0 6px;
}
.bne-auth-divider::before,
.bne-auth-divider::after {
  content: ''; flex: 1; height: 1px;
  background: var(--bne-line);
}
.bne-auth-divider span {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
}

.bne-auth-ghost {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 46px;
  background: transparent;
  color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 13px;
  text-decoration: none !important;
  cursor: pointer;
  transition: border-color var(--bne-fast), background var(--bne-fast);
}
.bne-auth-ghost:hover {
  border-color: var(--bne-line-strong);
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
}

.bne-auth-foot-link {
  margin: 26px 0 0;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-align: left;
}
.bne-auth-foot-link a {
  color: var(--bne-fg) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--bne-line-strong);
  padding-bottom: 1px;
}
.bne-auth-foot-link a:hover { border-color: var(--bne-accent); opacity: 1; }

/* Single-column variant (forgot password, change password) */
.bne-auth-single-col {
  max-width: 440px;
  margin: 140px auto 80px;
  padding: 0 24px;
}
@media (max-width: 540px) { .bne-auth-single-col { margin-top: 110px; } }

/* Error state */
.bne-auth .error {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.08em;
  color: var(--bne-danger);
  margin-top: 6px;
}

/* Upload row inside auth form */
.bne-auth .bne-upload-row {
  padding: 14px;
  background: var(--bne-bg-elev);
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius);
  display: flex; flex-direction: column; gap: 10px;
  margin: 4px 0;
}
.bne-auth .bne-upload-row label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.14em;
  color: var(--bne-fg-faint);
  margin: 0;
}
.bne-auth .bne-upload-row input[type=file] {
  background: transparent;
  border: none;
  color: var(--bne-fg-dim);
  padding: 0;
  font-family: var(--bne-body);
  font-size: 13px;
}
.bne-auth .bne-upload-row input[type=file]::file-selector-button {
  background: transparent;
  color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong);
  border-radius: 4px;
  padding: 6px 12px;
  margin-right: 10px;
  cursor: pointer;
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}

/* ── EDIT PROFILE — sidebar sub-nav + avatar + 2-col form ─────────── */
.bne-profile { padding: 28px 0 96px; }
.bne-profile-shell {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-profile-shell { padding: 0 20px; } }

.bne-profile-alert { margin-bottom: 20px; }

.bne-profile-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(32px, 3.6vw, 44px);
  letter-spacing: -0.03em;
  margin: 0 0 36px;
  color: var(--bne-fg);
}

.bne-profile-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 820px) {
  .bne-profile-grid { grid-template-columns: 1fr; gap: 24px; }
}

.bne-profile-subnav {
  border-right: 1px solid var(--bne-line);
  padding-right: 20px;
  display: flex; flex-direction: column;
}
@media (max-width: 820px) {
  .bne-profile-subnav {
    border-right: none;
    border-bottom: 1px solid var(--bne-line);
    padding-right: 0; padding-bottom: 12px;
    flex-direction: row;
    overflow-x: auto;
    scrollbar-width: none;
    gap: 2px;
  }
  .bne-profile-subnav::-webkit-scrollbar { display: none; }
}

.bne-profile-subnav-item {
  display: block;
  padding: 10px 12px;
  margin-left: -12px;
  margin-bottom: 2px;
  border-radius: 4px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim) !important;
  text-decoration: none !important;
  border-left: 2px solid transparent;
  transition: background var(--bne-fast), color var(--bne-fast);
  white-space: nowrap;
}
.bne-profile-subnav-item:hover {
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
  opacity: 1;
}
.bne-profile-subnav-item.is-active {
  background: var(--bne-bg-elev);
  color: var(--bne-fg) !important;
  border-left-color: var(--bne-accent);
}
.bne-profile-subnav-divider {
  height: 1px;
  background: var(--bne-line);
  margin: 14px 0 8px;
}
.bne-profile-subnav-logout {
  color: var(--bne-fg-dim) !important;
}
@media (max-width: 820px) {
  .bne-profile-subnav-item { margin-left: 0; border-left: none; border-bottom: 2px solid transparent; }
  .bne-profile-subnav-item.is-active { border-bottom-color: var(--bne-accent); border-left: none; }
  .bne-profile-subnav-divider { display: none; }
}

.bne-profile-form { max-width: 560px; display: flex; flex-direction: column; gap: 14px; }

.bne-profile-avatar-row {
  display: flex; align-items: center; gap: 18px;
  margin-bottom: 14px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-profile-avatar-img,
.bne-profile-avatar-initials {
  width: 72px; height: 72px; border-radius: 99px;
  flex-shrink: 0;
}
.bne-profile-avatar-img {
  object-fit: cover;
  border: 1px solid var(--bne-line-strong);
}
.bne-profile-avatar-initials {
  background: linear-gradient(135deg, var(--bne-accent), var(--bne-fg-dim));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--bne-display);
  font-weight: 700;
  color: var(--bne-accent-ink);
  font-size: 26px;
}
.bne-profile-change-btn {
  display: inline-block;
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  padding: 8px 14px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-body);
  font-size: 12px;
  cursor: pointer;
  margin: 0;
  letter-spacing: 0;
  text-transform: none;
}
.bne-profile-change-btn:hover { background: var(--bne-bg-elev); }
.bne-profile-change-file {
  position: absolute; left: -9999px;
}
.bne-profile-avatar-hint {
  font-family: var(--bne-mono);
  font-size: 10px;
  color: var(--bne-fg-faint);
  letter-spacing: 0.08em;
  margin-top: 6px;
}

.bne-profile-actions {
  display: flex; gap: 10px; justify-content: flex-end;
  margin-top: 20px;
}
.bne-profile-discard,
.bne-hosted-cancel {
  width: auto; min-width: 120px;
  flex: 0 0 auto;
  text-decoration: none !important;
}
.bne-profile-save,
.bne-hosted-submit {
  width: auto !important;
  min-width: 160px;
}

/* ── REQUEST HOSTED — benefits cards + 2-col form + timeline ──────── */
.bne-hosted { padding: 28px 0 96px; }
.bne-hosted-shell {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) { .bne-hosted-shell { padding: 0 20px; } }

.bne-eyebrow--accent { color: var(--bne-accent); }

.bne-hosted-title {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 56px);
  letter-spacing: -0.025em;
  line-height: 0.98;
  margin: 0;
  color: var(--bne-fg);
  text-wrap: balance;
}
.bne-hosted-lede {
  font-family: var(--bne-body);
  font-size: 15px;
  color: var(--bne-fg-dim);
  line-height: 1.55;
  max-width: 600px;
  margin: 16px 0 32px;
}

.bne-hosted-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 36px;
}
@media (max-width: 720px) {
  .bne-hosted-cards { grid-template-columns: 1fr; }
}
.bne-hosted-card {
  padding: 22px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
}
.bne-hosted-card .label {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  margin-bottom: 10px;
}
.bne-hosted-card .n {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
}
.bne-hosted-card .d {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 6px;
}

.bne-hosted-split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 820px) {
  .bne-hosted-split { grid-template-columns: 1fr; gap: 32px; }
}

.bne-hosted-form { display: flex; flex-direction: column; gap: 14px; }
.bne-hosted-form textarea {
  width: 100%;
  padding: 11px 14px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  resize: vertical;
  min-height: 100px;
  transition: border-color var(--bne-fast);
}
.bne-hosted-form textarea:focus {
  border-color: var(--bne-accent);
  background: var(--bne-bg-card);
}
.bne-hosted-form textarea::placeholder { color: var(--bne-fg-faint); }

.bne-hosted-chipset {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
@media (max-width: 520px) {
  .bne-hosted-chipset { grid-template-columns: repeat(2, 1fr); }
}
.bne-hosted-chip {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  padding: 11px 0;
  background: transparent;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  cursor: pointer;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg);
  text-transform: none;
  letter-spacing: 0;
  transition: background var(--bne-fast), border-color var(--bne-fast);
}
.bne-hosted-chip:hover { border-color: var(--bne-line-strong); }
.bne-hosted-chip.is-active {
  background: var(--bne-bg-elev);
  border-color: var(--bne-line-strong);
}
.bne-hosted-chip input[type=radio] {
  position: absolute; opacity: 0; pointer-events: none;
}
.bne-hosted-chip span { position: relative; z-index: 1; }

.bne-hosted-actions {
  display: flex; gap: 10px; justify-content: flex-end;
  margin-top: 8px;
}

.bne-hosted-timeline {
  border-left: 1px solid var(--bne-line);
  padding-left: 32px;
}
@media (max-width: 820px) {
  .bne-hosted-timeline {
    border-left: none; border-top: 1px solid var(--bne-line);
    padding-left: 0; padding-top: 24px;
  }
}
.bne-hosted-timeline-list {
  list-style: none; padding: 0; margin: 0;
}
.bne-hosted-timeline-list li {
  display: flex; gap: 14px;
  padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-hosted-timeline-list li:last-of-type {
  border-bottom: none; margin-bottom: 6px;
}
.bne-hosted-timeline-list .n {
  font-family: var(--bne-mono);
  font-size: 10px; letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  width: 24px; flex-shrink: 0;
}
.bne-hosted-timeline-list strong {
  display: block;
  font-family: var(--bne-display);
  font-size: 15px; font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--bne-fg);
}
.bne-hosted-timeline-list span {
  display: block;
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 4px;
  line-height: 1.5;
}
.bne-hosted-help {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-faint);
  line-height: 1.55;
}
.bne-hosted-help a {
  color: var(--bne-accent) !important;
  text-decoration: none !important;
}

/* ── Legacy form styling (kept for other forms) ───────────────────── */
.register_form_sec { padding: 72px 0 96px; }
.register_form_sec .container { max-width: 480px; }
.register_form_sec .form_title, .register_form_sec h1 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 42px; letter-spacing: -0.03em;
  text-align: left !important;
  margin-bottom: 32px;
}
.register_form_sec .form_title::before,
.register_form_sec h1::before {
  content: 'BNE.LIVE';
  display: block;
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.25em; color: var(--bne-fg-dim);
  font-weight: 400; margin-bottom: 12px;
  text-transform: uppercase;
}

.register_form_inner { margin: 0 !important; }

.form_group, .input-group.form_group, .form-group {
  margin-bottom: 16px;
}
.input-group.form_group {
  display: flex; flex-wrap: nowrap; align-items: stretch;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  overflow: hidden;
  transition: border-color var(--bne-fast);
}
.input-group.form_group:focus-within { border-color: var(--bne-accent); }
.input-group-text {
  background: transparent;
  border: none; padding: 0 0 0 16px;
  display: flex; align-items: center;
}
.input-group-text img {
  width: 14px !important; opacity: .5; filter: invert(.8);
}
html.bne-light .input-group-text img { filter: none; }

.form_field, .form-control, .form_field.form-control {
  background: transparent !important;
  border: none !important;
  color: var(--bne-fg) !important;
  padding: 14px 16px !important;
  font-family: var(--bne-body); font-size: 14px;
  min-height: 52px;
  box-shadow: none !important;
}
.form_field::placeholder, .form-control::placeholder {
  color: var(--bne-fg-faint); font-weight: 400;
}
.form_field:focus { outline: none; box-shadow: none; }

/* Standalone form-control (non input-group) */
.form-control:not(.form_field) {
  background: var(--bne-bg-card) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body); font-size: 14px;
}
.form-control:not(.form_field):focus {
  border-color: var(--bne-accent) !important;
  box-shadow: 0 0 0 3px rgba(79,124,255,0.15) !important;
}
.col-form-label, label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  margin-bottom: 6px;
}

.forgot { color: var(--bne-fg-dim) !important; font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.forgot:hover { color: var(--bne-fg) !important; }

.register_form .input-group.form_group + p,
.register_form_sec p {
  color: var(--bne-fg-dim); font-size: 13px; text-align: center; margin-top: 20px;
}
.register_form_sec p a { color: var(--bne-fg); text-decoration: none; border-bottom: 1px solid var(--bne-line-strong); }

.bne-form-meta {
  display: flex; justify-content: flex-end;
  margin-bottom: 16px;
}
.bne-form-foot {
  text-align: center;
  font-size: 13px; color: var(--bne-fg-dim);
  margin-top: 20px;
}
.bne-form-foot a {
  color: var(--bne-fg); text-decoration: none;
  border-bottom: 1px solid var(--bne-line-strong);
  padding-bottom: 1px;
}
.bne-form-foot a:hover { border-color: var(--bne-fg); opacity: 1; }

.bne-form-intro {
  font-size: 14px; color: var(--bne-fg-dim);
  margin: -16px 0 28px; line-height: 1.55;
}

.bne-profile-head {
  display: flex; align-items: center; gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px; border-bottom: 1px solid var(--bne-line);
}
.bne-profile-img {
  width: 72px; height: 72px; border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--bne-line-strong);
  background: var(--bne-bg-elev);
}
.bne-profile-head h1 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 28px; letter-spacing: -0.02em; line-height: 1;
  margin: 0; color: var(--bne-fg);
}
.bne-field-note {
  font-size: 12px; color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  margin: -8px 0 16px;
}

.bne-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 540px) { .bne-two-col { grid-template-columns: 1fr; gap: 0; } }

.bne-upload-row {
  padding: 16px; background: var(--bne-bg-card);
  border: 1px dashed var(--bne-line-strong);
  border-radius: var(--bne-radius);
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 16px;
}
.bne-upload-row label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--bne-fg-dim);
  margin: 0;
}
.bne-upload-row input[type=file] {
  background: transparent !important;
  border: none !important;
  color: var(--bne-fg-dim) !important;
  padding: 0 !important;
  font-family: var(--bne-body); font-size: 13px;
}
.bne-upload-row input[type=file]::file-selector-button {
  background: var(--bne-bg-elev); color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong); border-radius: 4px;
  padding: 6px 12px; margin-right: 10px; cursor: pointer;
  font-family: var(--bne-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}

.error, .alert-danger, .form_error_alert {
  background: rgba(229,72,77,0.08);
  border: 1px solid rgba(229,72,77,0.3);
  color: var(--bne-danger) !important;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; padding: 10px 14px; margin-top: 8px;
}
.alert-success {
  background: rgba(48,164,108,0.08);
  border: 1px solid rgba(48,164,108,0.3);
  color: var(--bne-success) !important;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; padding: 10px 14px;
}

/* ── ACCOUNT / DASHBOARD / BOOKINGS ───────────────────────────────── */
.dashboard_sec, .booking_sec, .event_sec, .my_event_sec {
  padding: 48px 0 96px;
}
.dashboard_sec .container,
.booking_sec .container,
.event_sec .container {
  max-width: var(--bne-shell-max);
}

.dashboard_sec h1, .booking_sec h1, .my_event_sec h1, .event_sec h1 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: clamp(32px, 4vw, 52px); letter-spacing: -0.03em;
  margin-bottom: 32px;
}

.dashboard_box, .booking_box, .my_event_box,
.booking_list_box, .my_event_list_box, .dashboard_card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 20px; margin-bottom: 16px;
  transition: border-color var(--bne-fast);
}
.dashboard_box:hover, .booking_box:hover, .my_event_box:hover { border-color: var(--bne-line-strong); }

.dashboard_box h4, .booking_box h4, .my_event_box h4 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 18px; letter-spacing: -0.01em; color: var(--bne-fg);
}

.booking_list_box .event_list_img_list,
.my_event_list_box img {
  width: 100%; max-width: 120px;
  aspect-ratio: 4/5; object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}

/* Stats tiles (dashboard) */
.stats_tile, .dashboard_stat {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px;
}
.stats_tile .label, .dashboard_stat .label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--bne-fg-dim); margin-bottom: 10px;
}
.stats_tile .value, .dashboard_stat .value {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 36px; letter-spacing: -0.025em; color: var(--bne-fg);
}

.bne-dash-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 32px; gap: 16px; flex-wrap: wrap;
}
.bne-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px; margin-bottom: 24px;
}
@media (max-width: 960px) { .bne-stats-grid { grid-template-columns: repeat(2, 1fr); } }
.bne-stats-chart { grid-column: span 2; }
@media (max-width: 960px) { .bne-stats-chart { grid-column: 1 / -1; } }
.bne-tile-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 12px; flex-wrap: wrap;
}
.bne-date-range {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  font-family: var(--bne-mono); font-size: 11px; letter-spacing: 0.08em;
  padding: 8px 12px !important; min-height: 36px;
  max-width: 260px;
}

.bne-panel {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 24px; margin-bottom: 24px;
}
.bne-panel-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px; padding-bottom: 16px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-table-wrap { overflow-x: auto; }

.bne-tickets-list {
  display: flex; flex-direction: column; gap: 16px;
}
.bne-ticket-card {
  display: grid;
  grid-template-columns: 140px 1fr 200px;
  gap: 24px;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 20px;
  transition: border-color var(--bne-fast);
}
.bne-ticket-card:hover { border-color: var(--bne-line-strong); }
@media (max-width: 820px) {
  .bne-ticket-card { grid-template-columns: 100px 1fr; }
  .bne-ticket-qr { grid-column: 1 / -1; border-top: 1px solid var(--bne-line); padding-top: 16px; }
}
.bne-ticket-poster img {
  width: 100%; aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
}
.bne-ticket-body h2 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 22px; line-height: 1.08; letter-spacing: -0.02em;
  margin: 4px 0 14px;
}
.bne-ticket-meta-row {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  color: var(--bne-accent);
}
.bne-dot-sep { color: var(--bne-fg-faint) !important; }
.bne-ticket-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px 24px;
}
.bne-ticket-meta > div {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 14px; color: var(--bne-fg);
}
.bne-ticket-meta > div span {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 400;
}
.bne-ticket-meta strong { font-family: var(--bne-display); font-weight: 700; font-size: 16px; }

.bne-ticket-qr {
  display: flex; flex-direction: column; align-items: stretch; gap: 12px;
  border-left: 1px solid var(--bne-line); padding-left: 20px;
}
.bne-qr-wrap {
  background: #fff; border-radius: var(--bne-radius);
  padding: 10px; aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
}
.bne-qr-wrap img { width: 100%; height: 100%; object-fit: contain; }
.bne-ticket-id {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.12em; color: var(--bne-fg); text-align: center;
}
.bne-ticket-id span {
  display: block; font-size: 9px; color: var(--bne-fg-dim);
  letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 4px;
}
.bne-ticket-cta {
  display: flex; flex-direction: column; gap: 6px;
}
.bne-ticket-cta .theme_btn, .bne-ticket-cta .bne-ghost-btn {
  min-height: 40px; padding: 10px 14px; font-size: 12px;
}

/* Tables */
.table { color: var(--bne-fg); }
.table th {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  border-color: var(--bne-line-strong) !important;
  padding: 14px 12px;
}
.table td {
  border-color: var(--bne-line) !important;
  padding: 14px 12px;
  font-size: 14px;
}
.table-striped > tbody > tr:nth-of-type(odd) > * { background: transparent; color: var(--bne-fg); }

/* ── HOST / REQUEST HOSTED ─────────────────────────────────────── */
.host_sec, .request_hosted_sec {
  padding: 72px 0 96px;
}
.host_sec .container, .request_hosted_sec .container {
  max-width: 820px;
}
.host_sec h1, .request_hosted_sec h1 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: clamp(40px, 6vw, 80px); letter-spacing: -0.025em;
  line-height: 0.98; margin-bottom: 20px;
}
.host_sec .lead, .request_hosted_sec .lead,
.host_sec p.intro {
  font-family: var(--bne-body); font-size: 18px; line-height: 1.5;
  color: var(--bne-fg-dim); margin-bottom: 40px;
}

.host_feature, .request_step {
  display: flex; gap: 16px; padding: 20px 0;
  border-top: 1px solid var(--bne-line);
}
.host_feature_num, .request_step_num {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.2em; color: var(--bne-fg-dim);
  min-width: 48px;
}

/* Host onboarding wizard */
.bne-page-shell { padding: 48px 0 96px; }
.bne-page-shell .container { max-width: 720px; }
.bne-page-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: clamp(32px, 4.5vw, 56px); letter-spacing: -0.03em;
  line-height: 1; margin-bottom: 12px;
}
.bne-page-subtitle {
  color: var(--bne-fg-dim); font-size: 15px;
  line-height: 1.55; margin-bottom: 32px;
}
.bne-card {
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  padding: 32px;
}
.bne-card-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 24px; padding-bottom: 20px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-card-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 20px; letter-spacing: -0.015em; margin: 0;
}
.bne-step-pill {
  background: var(--bne-bg-elev);
  color: var(--bne-fg-dim);
  border: 1px solid var(--bne-line-strong);
  padding: 6px 12px;
  border-radius: var(--bne-radius);
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
}
.bne-step-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 18px; letter-spacing: -0.01em; margin: 0 0 8px;
}
.bne-step-copy {
  color: var(--bne-fg-dim); font-size: 13px; margin-bottom: 24px;
}
.bne-input-label {
  font-family: var(--bne-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bne-fg-dim); font-weight: 500;
  display: block; margin-bottom: 8px;
}
.form_field_input, .form-control.form_field_input {
  background: var(--bne-bg) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius) !important;
  color: var(--bne-fg) !important;
  padding: 12px 14px !important;
  font-family: var(--bne-body); font-size: 14px;
  min-height: 48px;
  width: 100%;
}
.form_field_input:focus {
  border-color: var(--bne-accent) !important;
  outline: none;
}
textarea.form_field_input { resize: vertical; min-height: 96px; }

.bne-checklist {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.bne-checklist label {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; font-family: var(--bne-body); font-size: 14px;
  background: var(--bne-bg); border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius); cursor: pointer;
  color: var(--bne-fg); text-transform: none; letter-spacing: 0;
  transition: border-color var(--bne-fast);
}
.bne-checklist label:hover { border-color: var(--bne-accent); }
.bne-checklist input[type=checkbox] {
  accent-color: var(--bne-accent);
  width: 16px; height: 16px;
}

.bne-muted-note {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
  font-size: 13px;
  border-radius: var(--bne-radius);
  padding: 14px 16px;
}

.bne-actions {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--bne-line);
  flex-wrap: wrap;
}
.bne-actions-right { display: flex; gap: 8px; flex-wrap: wrap; }
.bne-actions .btn {
  padding: 10px 18px; min-height: 42px; border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 13px; font-weight: 500;
  letter-spacing: 0;
}
.bne-actions .btn-outline-light, .bne-actions .btn-outline-info {
  background: transparent; color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong);
}
.bne-actions .btn-outline-light:hover, .bne-actions .btn-outline-info:hover {
  background: var(--bne-bg-elev); color: var(--bne-fg) !important;
}
.bne-actions .btn-primary {
  background: var(--bne-fg) !important; color: var(--bne-bg) !important;
  border: 1px solid var(--bne-fg);
}
.bne-actions .btn-primary:hover { opacity: .85; }
.bne-actions .btn-success {
  background: var(--bne-accent) !important; color: var(--bne-accent-ink) !important;
  border: 1px solid var(--bne-accent);
}
.bne-actions .btn:disabled { opacity: .35; cursor: not-allowed; }

/* Alert colors for host status banner */
.alert-info {
  background: rgba(125,155,220,0.08) !important;
  border: 1px solid rgba(125,155,220,0.3) !important;
  color: var(--bne-accent) !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; border-radius: var(--bne-radius);
  padding: 12px 16px;
}
.alert-warning {
  background: rgba(245,158,11,0.08) !important;
  border: 1px solid rgba(245,158,11,0.3) !important;
  color: #f59e0b !important;
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.08em; border-radius: var(--bne-radius);
  padding: 12px 16px;
}
.alert-secondary {
  background: var(--bne-bg-elev) !important;
  border: 1px solid var(--bne-line) !important;
  color: var(--bne-fg-dim) !important;
}

/* ── SUCCESS / CANCEL ─────────────────────────────────────────────── */
.success_sec, .cancel_sec {
  padding: 96px 0; text-align: center;
}
.success_sec h1, .cancel_sec h1 {
  font-family: var(--bne-display); font-weight: 700;
  font-size: clamp(40px, 6vw, 72px); letter-spacing: -0.025em;
  margin-bottom: 16px;
}
.success_sec p, .cancel_sec p {
  color: var(--bne-fg-dim); font-size: 16px; margin-bottom: 32px;
}
.bne-success-card {
  max-width: 560px; margin: 0 auto;
  padding: 56px 40px;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  text-align: center;
}
.bne-success-card .bne-eyebrow { margin-bottom: 20px; }
.bne-cta-row {
  display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center;
}
.bne-ghost-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 24px;
  background: transparent; color: var(--bne-fg) !important;
  border: 1px solid var(--bne-line-strong); border-radius: var(--bne-radius);
  font-family: var(--bne-body); font-size: 14px; font-weight: 500;
  min-height: 48px; text-decoration: none !important;
  transition: background var(--bne-fast);
}
.bne-ghost-btn:hover { background: var(--bne-bg-elev); color: var(--bne-fg) !important; opacity: 1; }
.bne-inline-link { color: var(--bne-accent) !important; border-bottom: 1px solid currentColor; text-decoration: none !important; }

/* ── MODALS (login/guest in event detail) ─────────────────────────── */
.modal-content {
  background: var(--bne-bg-card) !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius-lg) !important;
  color: var(--bne-fg);
}
.modal-header {
  border-bottom: 1px solid var(--bne-line) !important;
  padding: 20px 24px;
}
.modal-title {
  font-family: var(--bne-display); font-weight: 700;
  font-size: 20px; letter-spacing: -0.02em; color: var(--bne-fg);
}
.modal-body { padding: 24px; }
.btn-close { filter: invert(.9); opacity: .7; }
html.bne-light .btn-close { filter: none; }

.login-theme_btn {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
  font-weight: 500;
}
.guest-user { font-weight: 500; }

/* ── MISC (loader, status, etc.) ──────────────────────────────────── */
#loader.background-loader {
  background: rgba(12,13,16,0.85);
  backdrop-filter: blur(8px);
}
.loader-text {
  font-family: var(--bne-mono); font-size: 11px;
  letter-spacing: 0.24em; color: var(--bne-fg);
}

/* Focus ring */
:focus-visible {
  outline: 2px solid var(--bne-accent) !important;
  outline-offset: 2px;
  border-radius: 4px;
}

/* Accessibility — tap targets */
button, .btn, a.btn, input[type=submit], .theme_btn, .attend_button, .buy_tickets_btn, .page-link {
  min-height: 40px;
}

/* Hide legacy ornaments that conflict with the redesign */
.background-ellipse, .ellipse, .header::before, .header::after { display: none !important; }

/* Make sure sticky checkout doesn't get hidden behind page content */
body { padding-bottom: 0 !important; }
.buy_tickets_sec + .checkout_sec, .buy_tickets_sec ~ .checkout_sec {
  /* already fixed */
}

/* -------------------------------------------------------------------
   2026-04 Overhaul hardening
   Force one coherent UI system and neutralize remaining legacy bleed.
-------------------------------------------------------------------- */

/* Home posters: bigger, readable, and less dead-space on desktop */
.event_list_sec .container { max-width: 1480px; }
.grid_event_list .event_list_box_inner,
.grid_event_list .bne-poster-inner {
  min-height: clamp(360px, 38vw, 560px) !important;
}
.bne-poster-top,
.bne-poster-bottom { text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55); }
.bne-poster-tag { color: #9ec5ff; }

/* Ensure legacy card internals never shrink posters */
.grid_event_list .event_list_img_list,
.grid_event_list .event_list_img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

@media (max-width: 1200px) {
  .event_list_sec .container { max-width: var(--bne-shell-max); }
  .grid_event_list .event_list_box_inner,
  .grid_event_list .bne-poster-inner {
    min-height: clamp(320px, 42vw, 460px) !important;
  }
}
@media (max-width: 760px) {
  .grid_event_list .event_list_box_inner,
  .grid_event_list .bne-poster-inner {
    min-height: clamp(250px, 64vw, 370px) !important;
  }
  .bne-poster-title {
    font-size: clamp(18px, 7vw, 28px);
    line-height: 0.98;
  }
}
@media (max-width: 360px) {
  .ux-shell .container,
  .bne-event-shell,
  .bne-buy-shell { padding-left: 16px !important; padding-right: 16px !important; }
  .header .container { padding-left: 16px !important; padding-right: 16px !important; }
  .bne-wordmark { font-size: 18px; }
  .bne-signin { min-height: 38px; padding: 8px 14px; font-size: 12px; }
}

/* Checkout: never allow legacy fixed bar to overlay this redesigned summary */
.bne-buy-summary.checkout_sec {
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  z-index: 1 !important;
}
@media (min-width: 961px) {
  .bne-buy-summary.checkout_sec {
    position: sticky !important;
    top: 32px !important;
  }
}

/* Homepage Calendar Board */
.bne-calendar-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.8vw, 26px) !important;
}
.bne-calendar-card {
  width: 100% !important;
  display: block !important;
  text-decoration: none !important;
}
.bne-calendar-card-inner {
  position: relative;
  min-height: clamp(280px, 28vw, 420px) !important;
  border-radius: 14px !important;
  border: 1px solid rgba(232, 234, 238, 0.15) !important;
  overflow: hidden;
  background:
    radial-gradient(130% 100% at 0% 0%, rgba(255,255,255,0.1), rgba(255,255,255,0) 58%),
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue), 36%, 14%) 0%,
      hsl(var(--bne-poster-hue), 22%, 8%) 58%,
      #07090e 100%) !important;
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.32);
}
.bne-calendar-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.34;
  filter: saturate(1.05) contrast(1.02);
}
.bne-calendar-card-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,10,16,0.16), rgba(7,10,16,0.84) 74%, rgba(7,10,16,0.96) 100%);
  pointer-events: none;
}
.bne-calendar-date,
.bne-calendar-content {
  position: relative;
  z-index: 2;
}
.bne-calendar-date {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 76px;
  border-radius: 12px;
  border: 1px solid rgba(232, 234, 238, 0.24);
  background: rgba(9, 12, 20, 0.78);
  backdrop-filter: blur(6px);
  text-align: center;
  padding: 9px 8px;
}
.bne-calendar-month {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: #9ec5ff;
}
.bne-calendar-day {
  display: block;
  font-family: var(--bne-display);
  font-size: 32px;
  line-height: 1;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.03em;
  margin: 6px 0 4px;
}
.bne-calendar-weekday {
  display: block;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(232,234,238,0.74);
}
.bne-calendar-content {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
}
.bne-calendar-time {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #9ec5ff;
  margin-bottom: 8px;
}
.bne-calendar-title {
  margin: 0;
  font-family: var(--bne-display);
  font-size: clamp(24px, 2.2vw, 38px);
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: #fff;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: balance;
}
.bne-calendar-meta {
  margin-top: 8px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: rgba(232,234,238,0.8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bne-calendar-card:hover .bne-calendar-card-inner {
  transform: translateY(-3px);
  border-color: rgba(158, 197, 255, 0.42) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.42);
}

@media (max-width: 1100px) {
  .bne-calendar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .bne-calendar-card-inner { min-height: clamp(250px, 36vw, 360px) !important; }
}
@media (max-width: 760px) {
  .bne-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .bne-calendar-card-inner { min-height: clamp(220px, 58vw, 320px) !important; }
  .bne-calendar-date {
    width: 60px;
    border-radius: 10px;
    padding: 7px 6px;
  }
  .bne-calendar-day { font-size: 26px; }
  .bne-calendar-title { font-size: clamp(17px, 7vw, 30px); }
  .bne-calendar-meta { font-size: 11px; }
}
@media (max-width: 420px) {
  .bne-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .bne-calendar-card-inner { min-height: clamp(194px, 64vw, 286px) !important; }
  .bne-calendar-content { left: 12px; right: 12px; bottom: 12px; }
}

/* Header parity (desktop design canvas) */
.header_inner {
  min-height: 74px;
  padding: 16px 0;
}
.header_right_section {
  display: flex;
  align-items: center;
  gap: 18px;
}
.bne-top-links {
  display: inline-flex;
  align-items: center;
  gap: 18px;
}
.bne-top-links a {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  text-decoration: none;
}
.bne-top-links a:hover { color: var(--bne-fg); opacity: 1; }
.bne-signin-ghost {
  background: transparent;
  color: var(--bne-fg) !important;
}
@media (max-width: 760px) {
  .bne-top-links { display: none; }
  .header_right_section { gap: 10px; }
}

/* Footer parity (4-column desktop footer) */
.footer {
  padding: 44px 0 26px !important;
}
.bne-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 48px);
}
.bne-footer-wordmark {
  display: inline-block;
  margin-bottom: 12px;
  font-size: 22px;
}
.bne-footer-copy-block {
  margin: 0;
  max-width: 420px;
  font-family: var(--bne-body);
  font-size: 13px;
  line-height: 1.6;
  text-transform: none;
  letter-spacing: 0;
  color: var(--bne-fg-dim) !important;
}
.bne-footer-col-title {
  margin-bottom: 12px;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-footer-col .bne-footer-nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bne-footer-col .bne-footer-nav a {
  font-family: var(--bne-body);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}
.bne-footer-bottom {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--bne-line);
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
@media (max-width: 960px) {
  .bne-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .bne-footer-grid { grid-template-columns: 1fr; gap: 20px; }
  .footer { padding: 30px 0 22px !important; }
}

/* Improve visual rhythm in buy flow */
.bne-buy-heading {
  margin-bottom: 26px;
  font-size: clamp(34px, 5vw, 62px);
}
.bne-buy-grid {
  align-items: start;
  gap: clamp(24px, 4vw, 56px);
}
.bne-buy-left,
.bne-buy-summary-col,
.bne-buy-summary.checkout_sec {
  min-width: 0;
}
.bne-buy-section {
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  background: linear-gradient(140deg, rgba(255,255,255,0.03), rgba(255,255,255,0));
  padding: clamp(16px, 2.2vw, 24px);
}

/* Event detail text balance on mobile */
@media (max-width: 760px) {
  .bne-event-title { font-size: clamp(40px, 13vw, 58px) !important; }
  .bne-event-meta dd strong { font-size: 33px; }
}

/* ==========================================================================
   STRICT PARITY PASS (handoff closure)
   ========================================================================== */

.bne-card-photo { display: none !important; }

.bne-event-cta-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.bne-event-extras {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding-top: 44px;
  margin-top: 44px;
  border-top: 1px solid var(--bne-line);
}
.bne-event-extra-title {
  margin: 0;
  font-family: var(--bne-display);
  font-size: clamp(24px, 2.1vw, 30px);
  letter-spacing: -0.02em;
}
.bne-event-extra-muted {
  margin: 6px 0 18px;
  color: var(--bne-fg-dim);
  font-size: 13px;
}
.bne-event-map-placeholder {
  height: 200px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.1em;
}
.bne-event-facts {
  display: flex;
  gap: 22px;
  margin-top: 14px;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.08em;
}
.bne-event-related-list { border-top: 1px solid var(--bne-line); }
.bne-event-related-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--bne-line);
  color: inherit;
  text-decoration: none;
}
.bne-event-related-date {
  color: var(--bne-fg-faint);
  font: 10px/1.1 var(--bne-mono);
  letter-spacing: 0.1em;
}
.bne-event-related-copy strong {
  display: block;
  font: 600 15px/1.25 var(--bne-display);
  letter-spacing: -0.01em;
}
.bne-event-related-copy span {
  display: block;
  margin-top: 4px;
  color: var(--bne-fg-dim);
  font-size: 12px;
}
.bne-event-related-arrow { color: var(--bne-fg-faint); }
.bne-event-related-empty {
  padding: 12px 0;
  color: var(--bne-fg-dim);
  font-size: 13px;
}

.bne-buy-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.bne-buy-form-grid .bne-field { margin: 0; }
.bne-buy-form-grid .bne-field-span { grid-column: 1 / -1; }
.bne-payment-methods {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.bne-payment-chip {
  height: 44px;
  border-radius: var(--bne-radius);
  border: 1px solid var(--bne-line);
  background: transparent;
  color: var(--bne-label);
  font-size: 13px;
  cursor: pointer;
}
.bne-payment-chip.is-active {
  background: var(--bne-bg-elev);
  border-color: var(--bne-line-strong);
  color: var(--bne-fg);
}

.bne-auth-social-stack {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}
.bne-auth-social-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.bne-hosted-shell--parity .bne-hosted-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0 28px;
}
.bne-hosted-kpi {
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  padding: 18px;
}
.bne-hosted-kpi span {
  display: block;
  color: var(--bne-fg-faint);
  font: 10px/1.2 var(--bne-mono);
  letter-spacing: 0.12em;
}
.bne-hosted-kpi strong {
  display: block;
  margin-top: 8px;
  font: 700 28px/1 var(--bne-display);
  letter-spacing: -0.02em;
}
.bne-hosted-kpi p {
  margin: 8px 0 0;
  color: var(--bne-fg-dim);
  font-size: 12px;
}
.bne-hosted-split--parity {
  grid-template-columns: 1.4fr 1fr;
  align-items: start;
}

@media (max-width: 980px) {
  .bne-event-extras { grid-template-columns: 1fr; }
  .bne-payment-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bne-hosted-shell--parity .bne-hosted-kpis { grid-template-columns: 1fr; }
  .bne-hosted-split--parity { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .bne-buy-form-grid { grid-template-columns: 1fr; }
  .bne-event-related-item { grid-template-columns: 64px 1fr auto; }
}

/* ──────────────────────────────────────────────────────────────────
   LIGHT MODE POLISH — comprehensive overrides for surfaces that
   hardcode dark-mode assumptions (rgba whites, filter inverts,
   tonal gradient stops). Applied via `.bne-light` body class.
   Tokens (--bne-bg etc.) flip automatically in :root + html.bne-light.
   This block handles the non-tokenized leakage.
   ────────────────────────────────────────────────────────────────── */

/* ── Header / footer / nav links ─────────────────────────────────── */
body.bne-light a, body.bne-light a:hover { color: var(--bne-fg); }
body.bne-light .footer * { color: var(--bne-fg-dim) !important; }
body.bne-light .footer a:hover, body.bne-light footer a:hover { color: var(--bne-fg) !important; }
body.bne-light .bne-footer-wordmark { color: var(--bne-fg) !important; }

body.bne-light .header { background: var(--bne-bg); border-bottom-color: var(--bne-line); }
body.bne-light .dropdown-menu {
  background: #fff !important;
  border-color: var(--bne-line-strong) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
}
body.bne-light .dropdown-item { color: var(--bne-fg) !important; }
body.bne-light .dropdown-item:hover { background: var(--bne-bg) !important; }

/* ── Buttons / form controls ─────────────────────────────────────── */
body.bne-light .theme_btn,
body.bne-light .buy_tickets_btn,
body.bne-light .form_submit_btn {
  background: var(--bne-fg);
  color: #fff !important;
  border-color: var(--bne-fg);
}
body.bne-light .bne-auth-ghost { color: var(--bne-fg) !important; border-color: var(--bne-line-strong); }
body.bne-light .bne-auth-ghost:hover { background: var(--bne-bg-elev); }
body.bne-light .bne-ghost-btn { color: var(--bne-fg) !important; border-color: var(--bne-line-strong); }
body.bne-light .bne-ghost-btn:hover { background: var(--bne-bg-elev); }

body.bne-light input::placeholder,
body.bne-light textarea::placeholder { color: var(--bne-fg-faint); }

/* Native control flips — only invert on dark, neutral on light */
body.bne-light input[type="date"]::-webkit-calendar-picker-indicator,
body.bne-light input[type="time"]::-webkit-calendar-picker-indicator,
body.bne-light input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: none;
  opacity: .6;
}
body.bne-light .btn-close { filter: none; opacity: .55; }
body.bne-light .btn-close:hover { opacity: 1; }

/* File uploaders */
body.bne-light input[type="file"]::file-selector-button {
  background: #fff;
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}

/* ── Homepage poster cards — light tonal gradient ────────────────── */
body.bne-light .bne-card-inner {
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue, 220), 36%, 92%) 0%,
      hsl(var(--bne-poster-hue, 220), 18%, 96%) 55%,
      var(--bne-bg-card) 100%);
  border-color: var(--bne-line);
}
/* Lighter vignette so dark text reads on light cards */
body.bne-light .bne-card-inner::before {
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0.04) 0%,
      rgba(0,0,0,0) 30%,
      rgba(0,0,0,0) 50%,
      rgba(0,0,0,0.32) 80%,
      rgba(0,0,0,0.6) 100%),
    linear-gradient(165deg, hsla(var(--bne-poster-hue, 220), 35%, 70%, 0.25) 0%, rgba(0,0,0,0) 65%);
}
body.bne-light .bne-card-frame { border-color: rgba(0,0,0,0.08); }
/* Top date/city: cards still have dark fade overlay so light text reads when image present.
   When no image and on light card, switch to dark text. */
body.bne-light .bne-card:not(:has(.bne-card-photo)) .bne-card-top {
  color: rgba(0,0,0,0.6);
}
body.bne-light .bne-card:not(:has(.bne-card-photo)) .bne-card-bottom {
  color: var(--bne-fg);
}
body.bne-light .bne-card:not(:has(.bne-card-photo)) .bne-card-title {
  color: var(--bne-fg);
}
body.bne-light .bne-card:not(:has(.bne-card-photo)) .bne-card-subtitle {
  color: rgba(0,0,0,0.65);
}

/* ── Event detail poster (9:16) ──────────────────────────────────── */
body.bne-light .bne-poster-inner--tall {
  background:
    linear-gradient(165deg,
      hsl(var(--bne-poster-hue, 220), 36%, 90%) 0%,
      hsl(var(--bne-poster-hue, 220), 18%, 95%) 55%,
      var(--bne-bg-card) 100%);
}
body.bne-light .bne-poster-inner--tall::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 80%, rgba(0,0,0,0.65) 100%);
}

/* Map placeholder */
body.bne-light .bne-event-map-placeholder {
  background-image:
    linear-gradient(transparent 23px, rgba(12,13,16,0.06) 24px),
    linear-gradient(90deg, transparent 23px, rgba(12,13,16,0.06) 24px);
}

/* ── Auth pages (login / register / forgot) ─────────────────────── */
body.bne-light .bne-auth-editorial {
  background: #f4f5f7;
  background-image: none;
  border-right-color: var(--bne-line);
}
body.bne-light .bne-auth-editorial--gradient {
  background:
    radial-gradient(120% 80% at 0% 0%, hsl(220, 30%, 92%) 0%, transparent 60%),
    linear-gradient(165deg, hsl(220, 30%, 96%) 0%, var(--bne-bg) 80%);
}
body.bne-light .bne-auth-headline,
body.bne-light .bne-auth-title { color: var(--bne-fg); }
body.bne-light .bne-auth-foot,
body.bne-light .bne-auth-foot-link { color: var(--bne-fg-dim); }
body.bne-light .bne-auth-form .form-control {
  background: #fff !important;
  border-color: var(--bne-line-strong) !important;
  color: var(--bne-fg) !important;
}
body.bne-light .bne-auth-form .form-control:focus {
  background: #fff !important;
  border-color: var(--bne-accent) !important;
}
body.bne-light .bne-checkbox-row { color: var(--bne-fg-dim); }

/* ── Buy / checkout summary poster ──────────────────────────────── */
body.bne-light .bne-buy-summary-poster {
  background: linear-gradient(165deg,
    hsl(var(--bne-poster-hue, 220), 32%, 90%) 0%,
    hsl(var(--bne-poster-hue, 220), 18%, 96%) 100%);
}

/* ── Modals / forms in light ────────────────────────────────────── */
body.bne-light .modal-content {
  background: #fff !important;
  border-color: var(--bne-line-strong) !important;
}
body.bne-light .modal-header { border-color: var(--bne-line) !important; }
body.bne-light .modal-title { color: var(--bne-fg); }
body.bne-light .modal-body { color: var(--bne-fg); }

body.bne-light .form-control,
body.bne-light .form_field,
body.bne-light .form_field_input,
body.bne-light .coupon_field,
body.bne-light input[type="text"],
body.bne-light input[type="email"],
body.bne-light input[type="password"],
body.bne-light input[type="tel"],
body.bne-light input[type="number"],
body.bne-light input[type="date"],
body.bne-light input[type="time"],
body.bne-light textarea {
  background: #fff !important;
  border-color: var(--bne-line-strong) !important;
  color: var(--bne-fg) !important;
}

/* ── Tickets / booking page ─────────────────────────────────────── */
body.bne-light .bne-ticket-card,
body.bne-light .bne-ticket-card-qr {
  background: #fff;
  border-color: var(--bne-line);
}
body.bne-light .bne-ticket-card-qr-stripe {
  background: #fff;
  background-image: repeating-linear-gradient(45deg, var(--bne-fg) 0 2px, transparent 2px 5px);
  opacity: 0.6;
}

/* ── Tables (DataTables + .table) ───────────────────────────────── */
body.bne-light .table th,
body.bne-light table thead th { color: var(--bne-fg-faint); }
body.bne-light .table-hover tbody tr:hover {
  background: var(--bne-bg-elev) !important;
}

/* ── Alerts ─────────────────────────────────────────────────────── */
body.bne-light .alert-success {
  background: rgba(48,164,108,0.06) !important;
  border-color: rgba(48,164,108,0.25) !important;
}
body.bne-light .alert-danger {
  background: rgba(229,72,77,0.06) !important;
  border-color: rgba(229,72,77,0.25) !important;
}
body.bne-light .alert-info {
  background: rgba(125,155,220,0.08) !important;
  border-color: rgba(125,155,220,0.3) !important;
}
body.bne-light .alert-warning {
  background: rgba(245,158,11,0.06) !important;
  border-color: rgba(245,158,11,0.3) !important;
}

/* ── Tour / article / static pages ──────────────────────────────── */
body.bne-light .bne-article-body { opacity: .92; }
body.bne-light .bne-article-body p,
body.bne-light .bne-article-body li,
body.bne-light .bne-article-body strong { color: var(--bne-fg); opacity: 1; }

/* Tour past-event row dimming — looks right on both modes */

/* ── Account / profile / dashboard / host pages ─────────────────── */
body.bne-light .bne-profile-avatar-img { background: #fff; border-color: var(--bne-line-strong); }
body.bne-light .bne-card,
body.bne-light .stats_tile,
body.bne-light .bne-panel,
body.bne-light .bne-hosted-card {
  background: #fff;
  border-color: var(--bne-line);
}

/* ── Event wrappers + shells ────────────────────────────────────── */
body.bne-light .bne-event,
body.bne-light .bne-buy,
body.bne-light .bne-tickets,
body.bne-light .bne-home {
  background: var(--bne-bg);
  color: var(--bne-fg);
}
body.bne-light .bne-event-detail-left,
body.bne-light .event_detail_left_inner {
  background: var(--bne-bg-elev);
  background-image: linear-gradient(165deg, rgba(125,155,220,0.18) 0%, rgba(232,234,238,0.02) 100%);
}

/* ── Pagination + navigation chips ──────────────────────────────── */
body.bne-light .bne-home-pagination .page-link,
body.bne-light .pagination .page-link { color: var(--bne-fg-dim); }
body.bne-light .bne-home-pagination .page-item.active .page-link,
body.bne-light .pagination .page-item.active .page-link {
  background: var(--bne-fg); color: #fff; border-color: var(--bne-fg);
}

/* ── Loader ─────────────────────────────────────────────────────── */
body.bne-light #loader.background-loader { background: rgba(244,245,247,0.85); }

/* ── Tweaks panel stays dark by design (matches the tokenized panel
   in the Claude design which uses hardcoded #0c0d10). No override. ── */

/* ── BUYER-SIDE SEAT PICKER (mobile sheet + zoom + minimap + quickpick) ─
   Layered on top of the existing #eventSeatModal markup. The seat
   <svg id="seat-designer-canvas"> is wrapped in #sd-canvas-wrap which
   gets a CSS-transform applied by bne-seat-helpers.js. */

#eventSeatModal.bne-seat-sheet .modal-content {
  background: var(--bne-bg);
  color: var(--bne-fg);
  border: none;
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
}

#eventSeatModal.bne-seat-sheet {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  overflow: hidden;
}
#eventSeatModal.bne-seat-sheet.fade,
#eventSeatModal.bne-seat-sheet.show {
  opacity: 1 !important;
  transition: none !important;
}

#eventSeatModal.bne-seat-sheet .modal-dialog {
  width: 100vw;
  max-width: none;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  margin: 0;
  transform: none !important;
}

.bne-seat-sheet-header {
  background: var(--bne-bg);
  border-bottom: 1px solid var(--bne-line);
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 24px !important;
  padding-top: max(18px, env(safe-area-inset-top)) !important;
}
.bne-seat-sheet-title { flex: 1; }
.bne-seat-sheet-kicker {
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  margin-bottom: 6px;
}
.bne-seat-sheet-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--bne-fg);
}

.bne-seat-sheet-body {
  background: var(--bne-bg);
  position: relative;
  padding: 0 !important;
  flex: 1 1 auto;
  height: calc(100vh - 72px);
  height: calc(100dvh - 72px);
  min-height: 0;
  overflow: hidden;
}

.bne-seat-canvas-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  cursor: grab;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.04), transparent 60%),
    var(--bne-bg);
}
.bne-seat-canvas-wrap.is-panning { cursor: grabbing; }
.bne-seat-canvas-wrap > svg {
  display: block;
  will-change: transform;
  transition: transform 80ms ease-out;
  user-select: none;
}
.bne-seat-canvas-wrap.is-panning > svg { transition: none; }

/* Zoom buttons (top-left) */
.bne-seat-zoom-controls {
  position: absolute;
  top: 16px;
  left: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 1070;
}
.bne-seat-zoom-btn {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--bne-bg-elev, rgba(20,22,28,0.9));
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  font-family: var(--bne-mono);
  font-size: 18px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background 120ms ease, border-color 120ms ease;
}
.bne-seat-zoom-btn:hover {
  background: rgba(255,255,255,0.08);
  border-color: var(--bne-fg-faint);
}
.bne-seat-zoom-btn:active { transform: scale(0.96); }

/* 3×3 minimap (bottom-left) */
.bne-seat-minimap {
  position: absolute;
  bottom: 16px;
  left: 16px;
  width: 120px;
  height: 120px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 2px;
  padding: 4px;
  background: var(--bne-bg-elev, rgba(20,22,28,0.9));
  border: 1px solid var(--bne-line);
  border-radius: 8px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1070;
}
.bne-seat-minimap-tile {
  background: rgba(255,255,255,0.04);
  border: 1px solid transparent;
  border-radius: 3px;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.bne-seat-minimap-tile:hover {
  background: color-mix(in oklch, var(--bne-accent) 32%, transparent);
  border-color: var(--bne-accent);
}
.bne-seat-minimap-tile:active {
  background: var(--bne-accent);
}

/* Quick-pick (bottom-center) */
.bne-seat-quickpick {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  background: var(--bne-bg-elev, rgba(20,22,28,0.9));
  border: 1px solid var(--bne-line);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1070;
}
.bne-seat-quickpick-label {
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-seat-quickpick-actions {
  display: flex;
  gap: 6px;
}
.bne-seat-quickpick-btn {
  font-family: var(--bne-sans);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, transform 80ms ease;
}
.bne-seat-quickpick-btn:hover {
  background: rgba(255,255,255,0.06);
  border-color: var(--bne-fg-faint);
}
.bne-seat-quickpick-btn:active { transform: scale(0.96); }

/* Selection summary (right rail on desktop, bottom sheet on mobile) */
.bne-seat-summary-toggle {
  width: 50px;
  height: 50px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid white;
  background: var(--bne-accent);
  color: var(--bne-accent-ink);
  position: fixed;
  bottom: 16px;
  right: 16px;
  z-index: 9999;
}

@media (max-width: 768px) {
  .bne-seat-sheet .modal-dialog { margin: 0; }
  .bne-seat-sheet-body {
    height: calc(100vh - 64px);
    padding-bottom: env(safe-area-inset-bottom) !important;
  }
  .bne-seat-sheet-h1 { font-size: 18px; }
  .bne-seat-zoom-controls { top: 12px; left: 12px; }
  .bne-seat-zoom-btn { width: 36px; height: 36px; }
  .bne-seat-minimap {
    width: 92px;
    height: 92px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
  }
  .bne-seat-quickpick {
    bottom: max(12px, env(safe-area-inset-bottom));
    padding: 8px 12px;
    gap: 8px;
  }
  .bne-seat-quickpick-label { display: none; }
  .bne-seat-summary {
    width: 100% !important;
    height: 50vh !important;
    top: auto !important;
    bottom: 0 !important;
    border-top: 1px solid var(--bne-line);
    border-radius: 16px 16px 0 0;
    padding-bottom: env(safe-area-inset-bottom) !important;
  }
  .bne-seat-summary-toggle {
    bottom: max(72px, calc(env(safe-area-inset-bottom) + 60px));
    right: 12px;
  }
}

/* ── Event card poster image (uploaded event_images) ─────────────────
   When the event has an uploaded image, it fills the card behind the
   typographic overlay. A scrim keeps the title/date/city legible.
   When there's no image, the gradient poster does the work. */
.bne-card-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}
a.bne-card.has-poster .bne-card-inner::after {
  /* Scrim — keeps the title legible regardless of image content. */
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0.30) 0%,
      rgba(0,0,0,0.05) 30%,
      rgba(0,0,0,0.45) 70%,
      rgba(0,0,0,0.78) 100%);
  z-index: 1;
  pointer-events: none;
}
a.bne-card.has-poster .bne-card-frame,
a.bne-card.has-poster .bne-card-top,
a.bne-card.has-poster .bne-card-bottom { position: relative; z-index: 2; }
/* When a poster is present, neutralize the gradient so the image isn't
   tinted by the hue stops underneath. */
a.bne-card.has-poster .bne-card-inner { background: #0c0d10; }

html.bne-light a.bne-card.has-poster .bne-card-inner::after {
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0.20) 0%,
      rgba(0,0,0,0.02) 30%,
      rgba(0,0,0,0.40) 70%,
      rgba(0,0,0,0.78) 100%);
}

/* ── STATUS PAGE (cancel / generic confirmation) ────────────────────
   Centered editorial card for one-line confirmations like the
   checkout-cancelled view. Sharp corners, hairline border,
   accent-driven CTA. */
.bne-status-shell {
  max-width: 720px;
  margin: 0 auto;
  padding: 96px 24px 120px;
}
.bne-status-card {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  padding: 48px;
  text-align: left;
}
.bne-status-kicker {
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  margin-bottom: 20px;
}
.bne-status-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(36px, 5vw, 56px);
  letter-spacing: -0.03em;
  color: var(--bne-fg);
  line-height: 1;
  margin: 0 0 16px;
}
.bne-status-lede {
  font-size: 16px;
  color: var(--bne-fg-dim);
  margin: 0 0 32px;
  max-width: 48ch;
}
.bne-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.bne-status-btn {
  display: inline-flex;
  align-items: center;
  padding: 12px 20px;
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  background: transparent;
  color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong);
  text-decoration: none;
  transition: background var(--bne-fast), border-color var(--bne-fast);
}
.bne-status-btn:hover { background: rgba(255,255,255,0.04); }
.bne-status-btn--primary {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
}
.bne-status-btn--primary:hover { opacity: 0.88; background: var(--bne-fg); }

/* ── INLINE STATUS TOAST (success/error after AJAX submits) ─────── */
.bne-status-toast-shell {
  max-width: 720px;
  margin: 16px auto 0;
  padding: 0 24px;
}
.bne-status-toast {
  background: rgba(48,164,108,0.10);
  border: 1px solid rgba(48,164,108,0.30);
  color: var(--bne-ok, #30a46c);
  padding: 12px 16px;
  font-family: var(--bne-body);
  font-size: 14px;
  margin: 12px auto;
  max-width: 720px;
}
.bne-status-toast--ok {
  background: rgba(48,164,108,0.10);
  border-color: rgba(48,164,108,0.30);
  color: var(--bne-ok, #30a46c);
}
.bne-status-toast--err {
  background: rgba(229,72,77,0.10);
  border-color: rgba(229,72,77,0.30);
  color: var(--bne-danger, #e5484d);
}
.bne-status-toast--info {
  background: color-mix(in oklch, var(--bne-accent) 12%, transparent);
  border-color: color-mix(in oklch, var(--bne-accent) 32%, transparent);
  color: var(--bne-accent);
}
html.bne-light .bne-status-toast--ok {
  background: rgba(17,122,63,0.10);
  border-color: rgba(17,122,63,0.30);
  color: #117a3f;
}
html.bne-light .bne-status-toast--err {
  background: rgba(198,31,35,0.08);
  border-color: rgba(198,31,35,0.30);
  color: #c61f23;
}

/* ── HOST DASHBOARD ─────────────────────────────────────────────── */
.bne-dash-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 56px 32px 96px;
}
.bne-dash-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 36px;
  flex-wrap: wrap;
}
.bne-dash-kicker {
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  margin-bottom: 8px;
}
.bne-dash-h1 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 64px);
  letter-spacing: -0.03em;
  color: var(--bne-fg);
  line-height: 0.98;
  margin: 0;
}

.bne-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 36px;
}
@media (max-width: 960px) {
  .bne-stats-grid { grid-template-columns: 1fr; }
}
.bne-stat-tile {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  padding: 22px 24px;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bne-stat-tile--chart {
  grid-column: span 1;
  min-height: 240px;
}
@media (min-width: 960px) {
  .bne-stat-tile--chart { grid-column: span 1; }
}
.bne-stat-tile-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.bne-stat-label {
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-stat-value {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 38px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
  line-height: 1;
}
.bne-date-range {
  background: transparent;
  border: 1px solid var(--bne-line);
  color: var(--bne-fg);
  padding: 6px 10px;
  font-family: var(--bne-mono);
  font-size: 11px;
  min-width: 160px;
}

.bne-dash-panel {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  margin-bottom: 24px;
  overflow: hidden;
}
.bne-dash-panel-head {
  padding: 18px 24px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-dash-table-wrap { overflow-x: auto; }
.bne-dash-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--bne-body);
}
.bne-dash-table th {
  text-align: left;
  padding: 14px 24px;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  font-weight: 500;
  border-bottom: 1px solid var(--bne-line);
}
.bne-dash-table td {
  padding: 16px 24px;
  font-size: 14px;
  color: var(--bne-fg);
  border-bottom: 1px solid var(--bne-line);
}
.bne-dash-table tbody tr:last-child td { border-bottom: none; }
.bne-dash-table tbody tr:hover td { background: rgba(255,255,255,0.02); }
html.bne-light .bne-dash-table tbody tr:hover td { background: rgba(12,13,16,0.03); }

/* ── BNE INLINE MODAL (login / guest / quick-form modals on public pages)
   Drop-in replacement for Bootstrap's `.modal-content > .modal-{header,
   body,footer} > .form-group > .form-control` stack. The Bootstrap
   `.modal[-dialog]` wrapper is reused for the open/close JS — only the
   inner content is reskinned. Sharp corners, hairline borders, mono-
   uppercase labels, accent-driven submit. */
.bne-modal-content {
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  border: 1px solid var(--bne-line);
  border-radius: 0;
  box-shadow: 0 32px 80px rgba(0,0,0,0.55);
}
html.bne-light .bne-modal-content { box-shadow: 0 24px 60px rgba(12,13,16,0.18); }

.bne-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-modal-kicker {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-modal-h2 {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  color: var(--bne-fg);
  margin: 4px 0 0;
  line-height: 1.1;
}
.bne-modal-close {
  background: transparent; border: 0;
  font-size: 22px;
  color: var(--bne-fg-faint);
  line-height: 1;
  cursor: pointer;
  padding: 4px 6px;
}
.bne-modal-close:hover { color: var(--bne-fg); }

.bne-modal-body { padding: 24px; }
.bne-modal-form { display: flex; flex-direction: column; gap: 16px; }
.bne-modal-field { display: flex; flex-direction: column; gap: 6px; }
.bne-modal-field > label {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-modal-field > input,
.bne-modal-field > textarea {
  width: 100%;
  background: var(--bne-bg);
  color: var(--bne-fg);
  border: 1px solid var(--bne-line-strong);
  border-radius: 0;
  padding: 10px 12px;
  font-family: var(--bne-body);
  font-size: 14px;
}
.bne-modal-field > input:focus,
.bne-modal-field > textarea:focus {
  outline: none;
  border-color: var(--bne-accent);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--bne-accent) 22%, transparent);
}
.bne-modal-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 480px) { .bne-modal-grid-2 { grid-template-columns: 1fr; } }

.bne-modal-submit {
  width: 100%;
  padding: 12px 18px;
  background: var(--bne-fg);
  color: var(--bne-bg);
  border: 1px solid var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-modal-submit:hover { opacity: 0.88; }
.bne-modal-submit:disabled { opacity: 0.35; cursor: not-allowed; }

.bne-modal-foot {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--bne-line);
  text-align: center;
  font-size: 13px;
  color: var(--bne-fg-dim);
}
.bne-modal-foot a { color: var(--bne-fg); }
.bne-modal-foot button {
  background: transparent;
  border: 0;
  color: var(--bne-fg);
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
  font-size: inherit;
}

/* Inline error banner in modal (replaces .alert.alert-danger) */
.bne-modal-error {
  background: color-mix(in oklch, oklch(70% 0.16 25) 14%, transparent);
  border: 1px solid color-mix(in oklch, oklch(70% 0.16 25) 38%, transparent);
  color: oklch(82% 0.13 25);
  padding: 10px 14px;
  font-family: var(--bne-body);
  font-size: 13px;
}
html.bne-light .bne-modal-error {
  background: rgba(198,31,35,0.08);
  border-color: rgba(198,31,35,0.30);
  color: #c61f23;
}

/* ── SEAT-CHART STICKY CHECKOUT STRIP ────────────────────────────── */
.bne-seat-cart {
  position: sticky;
  bottom: 0;
  background: var(--bne-bg);
  border-top: 1px solid var(--bne-line-strong);
  z-index: 30;
}
.bne-seat-cart-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.bne-seat-cart-totals {
  display: flex;
  gap: 24px;
  flex: 1;
  flex-wrap: wrap;
}
.bne-seat-cart-line {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bne-seat-cart-label {
  font-family: var(--bne-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
}
.bne-seat-cart-value {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
}
.bne-seat-cart-line--total .bne-seat-cart-value {
  font-size: 22px;
  color: var(--bne-fg);
}
.bne-seat-cart-cta {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border: 1px solid var(--bne-fg);
  padding: 12px 22px;
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: opacity var(--bne-fast);
}
.bne-seat-cart-cta:hover:not(:disabled) { opacity: 0.88; }
.bne-seat-cart-cta:disabled { opacity: 0.35; cursor: not-allowed; }

@media (max-width: 760px) {
  .bne-seat-cart-inner { flex-direction: column; align-items: stretch; padding: 12px 16px; }
  .bne-seat-cart-cta { width: 100%; }
}

/* ─────────────────────────────────────────────────────────────────────
   BNE SEAT-PAINTER VISUAL LAYER (front — seatChart.blade.php)
   The buyer-side seat picker uses the same painter vocabulary as the
   admin-side editors: `btn btn-sm`, `active`, `active_selected`,
   inside a `.legacy-seat-strip` parent. This block restyles the
   tiles into editorial BNE shapes using the public-side tokens.
   ───────────────────────────────────────────────────────────────────── */

.bne-seatpaint-shell {
  padding: 24px 0;
  display: flex;
  justify-content: center;
  overflow: auto;
}
.bne-seatpaint-shell .legacy-seat-strip {
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: center;
}

.bne-seatpaint-shell .btn,
.bne-seatpaint-shell .legacy-seat-btn {
  background: var(--bne-bg-elev) !important;
  background-image: none !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: 0 !important;
  color: var(--bne-fg) !important;
  font-family: var(--bne-mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  padding: 0;
  width: 22px;
  height: 22px;
  min-width: 22px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--bne-fast), border-color var(--bne-fast), color var(--bne-fast);
  box-shadow: none !important;
  margin: 0;
}
.bne-seatpaint-shell .btn:not([disabled]):hover,
.bne-seatpaint-shell .legacy-seat-btn:not([disabled]):hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: var(--bne-fg-faint) !important;
}
.bne-seatpaint-shell .btn.active,
.bne-seatpaint-shell .legacy-seat-btn.active {
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  border-color: var(--bne-fg) !important;
}
.bne-seatpaint-shell .btn.active_selected,
.bne-seatpaint-shell .legacy-seat-btn.active_selected {
  background: var(--bne-accent) !important;
  color: var(--bne-accent-ink) !important;
  border-color: var(--bne-accent) !important;
}
.bne-seatpaint-shell .btn[disabled],
.bne-seatpaint-shell .legacy-seat-btn[disabled],
.bne-seatpaint-shell .legacy-seat-disabled-btn {
  background: transparent !important;
  border-color: var(--bne-line) !important;
  color: var(--bne-fg-faint) !important;
  cursor: not-allowed;
  opacity: 0.5;
}
.bne-seatpaint-shell .legacy-seat-label-btn,
.bne-seatpaint-shell .btn.fw-bold:not(.active):not(.active_selected),
.bne-seatpaint-shell span.btn {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--bne-fg-faint) !important;
  font-family: var(--bne-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  width: 28px;
  cursor: default;
}
.bne-seatpaint-shell .legacy-seat-label-btn-dark {
  background: var(--bne-fg) !important;
  border-color: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  font-family: var(--bne-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Tighten Bootstrap-ish spacing inside the painter. */
.bne-seatpaint-shell .d-flex { gap: 4px; }
.bne-seatpaint-shell .mb-1 { margin-bottom: 4px !important; }
.bne-seatpaint-shell .mb-2 { margin-bottom: 8px !important; }
.bne-seatpaint-shell .mb-3 { margin-bottom: 12px !important; }
.bne-seatpaint-shell .mx-1 { margin-left: 0 !important; margin-right: 0 !important; }
.bne-seatpaint-shell .col-md-3 {
  padding-left: 0 !important;
  padding-right: 0 !important;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
}

/* Light-mode flips the substrate; tile shapes stay the same. */
html.bne-light .bne-seatpaint-shell .btn,
html.bne-light .bne-seatpaint-shell .legacy-seat-btn { background: #fff !important; }
html.bne-light .bne-seatpaint-shell .btn:not([disabled]):hover,
html.bne-light .bne-seatpaint-shell .legacy-seat-btn:not([disabled]):hover {
  background: rgba(12,13,16,0.04) !important;
}

/* ── BNE Seat Picker (v2 — buyer side) ──────────────────────────────
   The renderer paints the SVG into [data-bne-seat-picker-canvas] and
   the summary list / total / checkout button live in the same
   [data-bne-seat-picker] root. Activated whenever the event has a
   published v2 layout (admin/seat-mapper/{event}). Falls back to the
   legacy seat-modal flow when no v2 layout exists. */
[data-bne-seat-picker] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 16px;
  align-items: stretch;
  width: 100%;
  height: 70vh;
  min-height: 480px;
}
@media (max-width: 900px) {
  [data-bne-seat-picker] {
    grid-template-columns: 1fr;
    height: auto;
  }
}

[data-bne-seat-picker-canvas] {
  background: var(--bne-bg);
  border: 1px solid var(--bne-line-strong);
  overflow: hidden;
  position: relative;
}
[data-bne-seat-picker-canvas] > svg {
  display: block;
  width: 100%;
  height: 100%;
}

[data-bne-seat-picker-summary],
.bne-seat-picker-rail {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  padding: 18px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
}

.bne-seat-picker-list-title {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bne-label);
  margin-bottom: 4px;
}

.bne-seat-picker-empty {
  color: var(--bne-fg-faint);
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  padding: 24px 0;
  text-align: center;
}

.bne-seat-picker-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
  row-gap: 3px;
  padding: 10px;
  border-top: 1px solid var(--bne-line);
  background: color-mix(in srgb, var(--bne-fg) 3%, transparent);
  min-height: 0;
}
.bne-seat-picker-row:first-of-type { border-top: none; }
.bne-seat-picker-line {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg);
  grid-column: 1 / 2;
  min-width: 0;
  background: transparent !important;
  border-radius: 0 !important;
  height: auto !important;
  line-height: 1.25 !important;
  overflow: hidden;
  padding: 0 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bne-seat-picker-line + .bne-seat-picker-line {
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
.bne-seat-picker-price {
  font-family: var(--bne-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
  grid-column: 2 / 3;
  grid-row: 1 / span 2;
  align-self: center;
  background: transparent !important;
  border-radius: 0 !important;
  height: auto !important;
  line-height: 1.2 !important;
  padding: 0 !important;
  white-space: nowrap;
}
.bne-seat-picker-remove {
  grid-column: 3 / 4;
  grid-row: 1 / span 2;
  align-self: center;
  background: transparent;
  border: 1px solid var(--bne-line-strong);
  color: var(--bne-fg-faint);
  width: 28px !important;
  height: 28px !important;
  padding: 0 !important;
  cursor: pointer;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1;
}
.bne-seat-picker-remove:hover { color: var(--bne-fg); border-color: var(--bne-fg-faint); }

.bne-seat-picker-error {
  padding: 24px;
  color: var(--bne-fg-dim);
  font-family: var(--bne-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-align: center;
}

/* ── v2 picker host inside the buy-ticket modal ───────────────────── */
.bne-seat-v2-host {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  background: var(--bne-bg);
  height: 100%;
  min-height: 0;
}
.bne-seat-v2-host > [data-bne-seat-picker-canvas] {
  background:
    linear-gradient(to right, color-mix(in srgb, var(--bne-line) 44%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--bne-line) 44%, transparent) 1px, transparent 1px),
    var(--bne-bg);
  background-size: 40px 40px;
  border-right: 1px solid var(--bne-line-strong);
  overflow: hidden;
  min-height: 0;
}
.bne-seat-picker-map-chrome {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  z-index: 3;
  display: grid;
  gap: 10px;
  pointer-events: none;
}
.bne-seat-picker-stage-chip {
  justify-self: center;
  min-width: min(320px, 64vw);
  padding: 8px 18px;
  border: 1px solid var(--bne-line);
  background: color-mix(in srgb, var(--bne-bg) 86%, transparent);
  color: var(--bne-fg-faint);
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-align: center;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.bne-seat-picker-map-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  justify-self: stretch;
  max-width: 620px;
  width: 100%;
  margin: 0 auto;
  padding: 10px 12px;
  border: 1px solid var(--bne-line);
  background: color-mix(in srgb, var(--bne-bg) 90%, transparent);
  color: var(--bne-fg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.bne-seat-picker-map-copy,
.bne-seat-picker-count {
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.bne-seat-picker-map-copy { color: var(--bne-fg-dim); }
.bne-seat-picker-count { color: var(--bne-fg); }
.bne-seat-picker-legend {
  display: flex;
  justify-content: center;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  pointer-events: auto;
  scrollbar-width: none;
}
.bne-seat-picker-legend::-webkit-scrollbar { display: none; }
.bne-seat-picker-legend-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--bne-line);
  background: color-mix(in srgb, var(--bne-bg) 88%, transparent);
  color: var(--bne-fg-dim);
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  white-space: nowrap;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.bne-seat-picker-legend-dot {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--bne-bg) 50%, transparent);
}
.bne-seat-v2-host > [data-bne-seat-picker-canvas] > svg {
  width: 100%;
  height: 100%;
  display: block;
  touch-action: manipulation;
}
.bne-seat-v2-host .seat-dot {
  cursor: pointer;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.16));
  stroke: color-mix(in srgb, var(--bne-bg) 78%, #000) !important;
  stroke-width: 2 !important;
}
.bne-seat-v2-host .seat-dot[data-selected="1"] {
  stroke: var(--bne-fg) !important;
  stroke-width: 5 !important;
}
.bne-seat-v2-host .seat-dot.is-blocked {
  fill: color-mix(in srgb, var(--bne-fg-faint) 42%, var(--bne-bg)) !important;
  opacity: 0.45;
  cursor: not-allowed;
}
.bne-seat-v2-host .seat-section-frame {
  fill: transparent;
  stroke: color-mix(in srgb, var(--bne-fg) 12%, transparent);
  stroke-width: 1;
  stroke-dasharray: 4 5;
}
.bne-seat-v2-host .seat-section-label {
  fill: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
}
.bne-seat-v2-host .stage-block {
  fill: color-mix(in srgb, var(--bne-fg) 8%, transparent);
  stroke: color-mix(in srgb, var(--bne-fg) 22%, transparent);
  stroke-width: 1;
}
.bne-seat-v2-host .stage-label {
  fill: var(--bne-fg-dim);
  font-family: var(--bne-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
}
.bne-seat-v2-host .seat-section-meta {
  display: none;
}
.bne-seat-v2-host .bne-seat-picker-rail {
  background: var(--bne-bg-elev);
  padding: 18px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding-bottom: 92px;
}
.bne-seat-v2-checkout {
  position: absolute;
  bottom: 16px;
  right: 336px;
  min-height: 48px;
  padding: 0 22px;
  background: var(--bne-fg);
  color: var(--bne-bg);
  border: 1px solid var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity var(--bne-fast);
}
.bne-seat-v2-checkout:disabled {
  display: none;
}
.bne-seat-v2-checkout:hover:not(:disabled) {
  opacity: 0.88;
}
@media (max-width: 900px) {
  .bne-seat-v2-host {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(340px, min(58dvh, 500px)) auto auto;
    align-content: start;
  }
  .bne-seat-v2-host > [data-bne-seat-picker-canvas] {
    border-right: none;
    border-bottom: 1px solid var(--bne-line-strong);
    background-size: 36px 36px;
    box-sizing: border-box;
    padding-top: 58px;
  }
  .bne-seat-v2-host > [data-bne-seat-picker-canvas] > svg {
    height: calc(100% - 58px);
  }
  .bne-seat-picker-map-chrome {
    top: 10px;
    left: 14px;
    right: 14px;
    display: block;
  }
  .bne-seat-picker-stage-chip {
    min-width: 0;
    width: min(260px, 74vw);
    min-height: 28px;
    margin-inline: auto;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    letter-spacing: 0.18em;
  }
  .bne-seat-picker-map-head {
    justify-self: center;
    width: auto;
    max-width: calc(100% - 24px);
    padding: 0;
    border: none;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .bne-seat-picker-map-copy {
    display: none;
  }
  .bne-seat-picker-map-head,
  .bne-seat-picker-legend {
    display: none;
  }
  .bne-seat-picker-count {
    min-height: 26px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--bne-line);
    background: color-mix(in srgb, var(--bne-bg) 88%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .bne-seat-picker-count,
  .bne-seat-picker-legend-pill {
    font-size: 9px;
  }
  .bne-seat-picker-legend-pill {
    min-height: 24px;
    max-width: calc(100vw - 52px);
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .bne-seat-v2-host .bne-seat-picker-rail {
    max-height: 32dvh;
    padding: 12px 16px;
    border-left: none;
    border-top: 1px solid var(--bne-line);
  }
  .bne-seat-v2-host.has-selection .bne-seat-picker-rail {
    min-height: 154px !important;
    max-height: 32dvh;
  }
  .bne-seat-v2-host .bne-seat-picker-empty {
    padding: 12px 0;
  }
  .bne-seat-v2-host .seat-section-label {
    font-size: 13px;
  }
  .bne-seat-picker-row {
    min-height: 52px;
  }
  .bne-seat-v2-checkout {
    position: static;
    margin: 0 16px max(14px, env(safe-area-inset-bottom));
    width: auto;
    height: 48px;
    text-align: center;
  }
}
@media (max-width: 420px) {
  .bne-seat-v2-host {
    grid-template-rows: minmax(320px, min(56dvh, 440px)) auto auto;
  }
}

/* ── Handoff-parity arena picker ────────────────────────────────── */
.bne-arena-modal .modal-header {
  display: none !important;
}
.bne-arena-modal .modal-dialog,
.bne-arena-modal .modal-content,
.bne-arena-modal .modal-body {
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 0 !important;
  border: 0;
  background: var(--bne-bg);
}
.bne-seat-v2-host.bne-arena-root {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  background: var(--bne-bg);
  color: var(--bne-fg);
  font-family: var(--bne-body);
}
.bne-seat-v2-host.bne-arena-root .bne-seat-compat-canvas {
  position: absolute !important;
  left: -9999px !important;
  top: 0 !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.bne-arena-picker {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--bne-bg);
  color: var(--bne-fg);
}
.bne-arena-root .bne-arena-picker,
.bne-arena-root .bne-arena-main,
.bne-arena-root .bne-arena-map-pane,
.bne-arena-root .bne-arena-section-map,
.bne-arena-root .bne-arena-section-row,
.bne-arena-root .bne-arena-section-card,
.bne-arena-root .bne-arena-section-list,
.bne-arena-root .bne-arena-section-list-row,
.bne-arena-root .bne-arena-section-sheet,
.bne-arena-root .bne-arena-seat-grid-wrap,
.bne-arena-root .bne-arena-seat-grid,
.bne-arena-root .bne-arena-sheet-stage {
  min-width: 0;
}
.bne-arena-root .bne-arena-section-map,
.bne-arena-root .bne-arena-section-row,
.bne-arena-root .bne-arena-section-list,
.bne-arena-root .bne-arena-section-list-row,
.bne-arena-root .bne-arena-seat-grid-wrap,
.bne-arena-root .bne-arena-seat-grid {
  height: auto;
}
.bne-arena-root .bne-arena-seat-count,
.bne-arena-root .bne-arena-seat-grid,
.bne-arena-root .bne-arena-seat-space,
.bne-arena-root .bne-seat-picker-list-title,
.bne-arena-root .bne-seat-picker-empty,
.bne-arena-root .bne-seat-picker-line,
.bne-arena-root .bne-seat-picker-price {
  min-width: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: none !important;
}
.bne-arena-root .bne-arena-seat-count,
.bne-arena-root .bne-seat-picker-list-title,
.bne-arena-root .bne-seat-picker-empty,
.bne-arena-root .bne-seat-picker-line,
.bne-arena-root .bne-seat-picker-price {
  width: auto !important;
  height: auto !important;
}
.bne-arena-root .bne-arena-seat-grid {
  font-family: inherit !important;
  font-size: inherit !important;
}
.bne-arena-root .bne-arena-seat-space {
  width: var(--seat-size) !important;
  height: var(--seat-size) !important;
}
.bne-arena-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 22px 42px 16px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-arena-back {
  width: 40px;
  height: 40px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: transparent;
  color: var(--bne-fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 18px;
}
.bne-arena-back:hover {
  border-color: var(--bne-line-strong);
  background: var(--bne-bg-elev);
}
.bne-arena-title {
  flex: 1;
  min-width: 0;
}
.bne-arena-kicker,
.bne-arena-seat-count,
.bne-arena-quick-label,
.bne-arena-card-meta,
.bne-arena-card-left,
.bne-arena-legend,
.bne-arena-list-tier,
.bne-arena-sheet-tier,
.bne-arena-switch-label,
.bne-arena-sheet-foot span,
.bne-arena-row-label {
  font-family: var(--bne-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.bne-arena-kicker {
  color: var(--bne-fg-faint);
  font-size: 10px;
}
.bne-arena-venue {
  color: var(--bne-fg);
  font-family: var(--bne-display);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bne-arena-seat-count {
  color: var(--bne-fg-dim);
  font-size: 10px;
  white-space: nowrap;
}
.bne-arena-main {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 30px;
  padding: 26px 48px 44px;
  overflow-y: auto;
}
.bne-arena-map-pane {
  min-width: 0;
}
.bne-arena-tabs {
  display: inline-flex;
  width: 100%;
  max-width: 420px;
  padding: 3px;
  margin-bottom: 18px;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
}
.bne-arena-tabs button {
  flex: 1;
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: var(--bne-fg-dim);
  font: 500 14px var(--bne-body);
  cursor: pointer;
}
.bne-arena-tabs button.is-active {
  border-color: var(--bne-line);
  background: var(--bne-bg);
  color: var(--bne-fg);
}
.bne-arena-quick {
  margin-bottom: 24px;
}
.bne-arena-quick-label {
  margin-bottom: 10px;
  color: var(--bne-label);
  font-size: 10px;
}
.bne-arena-quick-buttons {
  display: flex;
  gap: 10px;
}
.bne-arena-quick-buttons button {
  min-width: 116px;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  font: 600 14px var(--bne-body);
  cursor: pointer;
}
.bne-arena-quick-note {
  min-height: 18px;
  margin-top: 10px;
  color: var(--bne-fg-faint);
  font: 11px var(--bne-body);
  line-height: 1.4;
}
.bne-arena-quick-note.is-active {
  color: var(--bne-fg-dim);
}
.bne-arena-quick-note.is-warning {
  color: var(--bne-danger);
}
.bne-arena-stage,
.bne-arena-sheet-stage {
  height: 36px;
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev);
  color: var(--bne-fg-faint);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 600 10px var(--bne-mono);
  letter-spacing: 0.28em;
  text-transform: uppercase;
}
.bne-arena-stage {
  max-width: 640px;
  margin: 0 auto 22px;
}
.bne-arena-picker.is-stage-bottom .bne-arena-stage {
  margin: 22px auto 0;
}
.bne-arena-section-map {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bne-arena-section-row {
  display: grid;
  gap: 12px;
}
.bne-arena-section-card {
  position: relative;
  min-height: 118px;
  padding: 14px;
  border: 1px solid var(--tier-ink, var(--tier-color));
  border-radius: 4px;
  background: var(--bne-bg-elev);
  color: var(--bne-fg);
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--bne-fast), background var(--bne-fast), transform var(--bne-fast);
}
.bne-arena-section-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--tier-ink, var(--tier-color));
}
.bne-arena-section-card:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}
.bne-arena-section-card:not(:disabled):hover {
  background: color-mix(in srgb, var(--tier-ink, var(--tier-color)) 7%, var(--bne-bg-elev));
  transform: translateY(-1px);
}
.bne-arena-section-card:not(:disabled):focus-visible,
.bne-arena-quick-buttons button:focus-visible,
.bne-arena-tabs button:focus-visible,
.bne-arena-switcher button:focus-visible,
.bne-arena-sheet-head button:focus-visible,
.bne-arena-mobile-bar button:focus-visible,
.bne-arena-sheet-foot button:focus-visible {
  outline: 2px solid var(--tier-ink, var(--tier-color, var(--bne-fg)));
  outline-offset: 2px;
}
.bne-arena-picker.is-single-section .bne-arena-section-row {
  max-width: 420px;
  margin-inline: auto;
  width: 100%;
}
.bne-arena-picker.is-single-section .bne-arena-section-card {
  min-height: 150px;
  aspect-ratio: auto;
}
.bne-arena-card-meta {
  color: var(--bne-fg-dim);
  font-size: 10px;
}
.bne-arena-card-name {
  margin-top: 14px;
  font-family: var(--bne-display);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.bne-arena-card-left {
  margin-top: 6px;
  color: var(--bne-fg-faint);
  font-size: 10px;
}
.bne-arena-mini-map {
  display: grid;
  grid-template-columns: repeat(var(--mini-cols), 4px);
  justify-content: center;
  gap: 2px;
  margin-top: 12px;
  pointer-events: none;
}
.bne-arena-mini-map i {
  width: 4px;
  height: 4px;
  border-radius: 1px;
  background: transparent;
  border: 1px solid var(--bne-line);
}
.bne-arena-mini-map i.is-open {
  background: var(--tier-ink, var(--tier-color));
  border-color: var(--tier-ink, var(--tier-color));
}
.bne-arena-mini-map i.is-empty {
  opacity: 0;
}
.bne-arena-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--bne-line);
  color: var(--bne-fg-dim);
  font-size: 10px;
}
.bne-arena-legend div {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.bne-arena-legend span,
.bne-arena-list-tier span,
.bne-arena-sheet-tier span,
.bne-arena-switcher span {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  background: var(--tier-ink, var(--tier-color));
}
.bne-arena-section-list {
  display: grid;
  gap: 10px;
}
.bne-arena-list-tier {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-top: 10px;
  color: var(--bne-fg-dim);
  font-size: 11px;
}
.bne-arena-list-tier em {
  margin-left: auto;
  color: var(--bne-fg);
  font: 700 15px var(--bne-display);
  font-style: normal;
}
.bne-arena-section-list-row {
  width: 100%;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid var(--bne-line);
  background: transparent;
  color: var(--bne-fg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  cursor: pointer;
}
.bne-arena-section-list-row strong {
  display: block;
  font: 700 16px var(--bne-display);
}
.bne-arena-section-list-row em {
  display: block;
  margin-top: 4px;
  color: var(--bne-fg-dim);
  font: 10px var(--bne-mono);
  letter-spacing: 0.08em;
  font-style: normal;
  text-transform: uppercase;
}
.bne-arena-section-list-row b {
  color: var(--bne-fg-faint);
  font: 11px var(--bne-mono);
  letter-spacing: 0.08em;
}
.bne-arena-summary-dock {
  min-width: 0;
}
.bne-arena-summary {
  position: sticky;
  top: 0;
  display: flex !important;
  flex-direction: column;
  gap: 14px;
  height: auto !important;
  min-height: 238px !important;
  max-height: none;
  padding: 22px !important;
  border: 1px solid var(--bne-line-strong) !important;
  border-radius: var(--bne-radius);
  background: var(--bne-bg-elev) !important;
  color: var(--bne-fg) !important;
}
.bne-arena-summary .bne-seat-picker-list-title,
.bne-arena-summary .bne-seat-picker-empty,
.bne-arena-summary .bne-seat-picker-line,
.bne-arena-summary .bne-seat-picker-price {
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.bne-arena-summary .bne-seat-picker-list-title {
  margin-bottom: 8px !important;
}
.bne-arena-summary .bne-seat-picker-empty {
  padding: 32px 0 !important;
  color: var(--bne-fg-dim) !important;
  font-family: var(--bne-body) !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
}
.bne-arena-selected-list {
  max-height: 230px;
  overflow-y: auto;
  border-top: 1px solid var(--bne-line);
}
.bne-arena-totals {
  display: grid;
  gap: 8px;
}
.bne-arena-totals div {
  display: flex;
  justify-content: space-between;
  color: var(--bne-fg-dim);
  font-size: 13px;
}
.bne-arena-totals strong {
  color: var(--bne-fg);
}
.bne-arena-totals .is-total {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--bne-line);
  color: var(--bne-fg);
  font: 700 20px var(--bne-display);
}
.bne-arena-checkout {
  position: static !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px;
  margin-top: 16px;
  padding: 0 18px;
  border: 1px solid var(--bne-fg) !important;
  border-radius: var(--bne-radius);
  background: var(--bne-fg) !important;
  color: var(--bne-bg) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.bne-arena-checkout:disabled {
  border-color: var(--bne-line-strong) !important;
  background: transparent !important;
  color: var(--bne-fg-faint) !important;
  opacity: 1;
  cursor: not-allowed;
}
.bne-arena-mobile-bar,
.bne-arena-sheet-host {
  display: none;
}
.bne-arena-seat-grid {
  --seat-size: clamp(9px, calc((100vw - 122px) / var(--seat-cols)), 18px);
  display: grid;
  grid-template-columns: 28px repeat(var(--seat-cols), var(--seat-size));
  gap: 4px;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
}
.bne-arena-row-label {
  width: 28px;
  color: var(--bne-fg-faint);
  font-size: 8px;
  text-align: right;
}
.bne-arena-seat {
  width: var(--seat-size);
  height: var(--seat-size);
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--tier-ink, var(--tier-color));
  border-radius: 2px;
  background: transparent;
  cursor: pointer;
  color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: 700 clamp(7px, calc(var(--seat-size) * 0.42), 10px) / 1 var(--bne-body);
  letter-spacing: 0;
  text-indent: 0;
  position: relative;
}
.bne-arena-seat-space {
  width: var(--seat-size);
  height: var(--seat-size);
  min-width: 0;
  min-height: 0;
}
.bne-arena-seat.is-selected {
  background: #54afe8;
  border-color: #54afe8;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22), 0 0 0 1px rgba(84, 175, 232, 0.28);
  color: #ffffff;
}
.bne-arena-seat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--tier-ink, var(--tier-color));
  font-size: clamp(8px, calc(var(--seat-size) * 0.54), 12px);
  line-height: 1;
  font-family: var(--bne-body), "Helvetica Neue", Arial, sans-serif;
  background: transparent;
  border-radius: 0;
}
.bne-arena-seat.is-unavailable {
  background: rgba(132, 138, 148, 0.18);
  border-color: rgba(132, 138, 148, 0.45);
}
.bne-arena-seat.is-selected .bne-arena-seat-icon {
  color: rgba(255, 255, 255, 0.92);
}
.bne-arena-seat:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
@media (max-width: 900px) {
  .bne-arena-modal .modal-dialog,
  .bne-arena-modal .modal-content {
    border-radius: 0 !important;
  }
  .bne-arena-header {
    gap: 10px;
    padding: max(10px, env(safe-area-inset-top)) 14px 10px;
  }
  .bne-arena-back {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
  .bne-arena-venue {
    font-size: 15px;
  }
  .bne-arena-main {
    display: block;
    padding: 12px 14px 96px;
    overflow-y: auto;
  }
  .bne-arena-tabs {
    max-width: none;
    margin-bottom: 12px;
  }
  .bne-arena-tabs button {
    min-height: 36px;
    font-size: 13px;
  }
  .bne-arena-quick {
    margin-bottom: 14px;
  }
  .bne-arena-quick-buttons {
    gap: 8px;
  }
  .bne-arena-quick-buttons button {
    flex: 1;
    min-height: 40px;
    min-width: 0;
    padding: 0 8px;
    font-size: 13px;
  }
  .bne-arena-stage {
    max-width: none;
    height: 36px;
    margin-bottom: 14px;
  }
  .bne-arena-section-map {
    gap: 8px;
  }
  .bne-arena-section-row {
    gap: 8px;
  }
  .bne-arena-section-card {
    min-height: 80px;
    padding: 9px;
    aspect-ratio: auto;
  }
  .bne-arena-picker.is-single-section .bne-arena-section-card {
    min-height: 126px;
    aspect-ratio: auto;
  }
  .bne-arena-card-name {
    margin-top: 11px;
    font-size: 12px;
  }
  .bne-arena-card-meta,
  .bne-arena-card-left {
    font-size: 8px;
  }
  .bne-arena-card-left {
    margin-top: 4px;
  }
  .bne-arena-mini-map {
    display: none;
  }
  .bne-arena-summary-dock {
    display: none;
  }
  .bne-arena-legend {
    gap: 14px;
    margin-top: 18px;
    padding-bottom: 20px;
  }
.bne-arena-mobile-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 12;
    display: block;
    padding: 10px 16px max(12px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--bne-line);
    background: var(--bne-bg);
  }
  .bne-arena-mobile-bar button {
    width: 100%;
    height: 44px;
    padding: 0 18px;
    border: 1px solid var(--bne-fg);
    border-radius: var(--bne-radius);
    background: var(--bne-fg);
    color: var(--bne-bg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font: 600 14px var(--bne-body);
  }
  .bne-arena-mobile-bar button:disabled {
    border-color: var(--bne-line-strong);
    background: transparent;
    color: var(--bne-fg-faint);
  }
  .bne-arena-mobile-bar b {
    font: 10px var(--bne-mono);
    letter-spacing: 0.1em;
  }
  .bne-arena-sheet-host {
    display: block;
  }
  .bne-arena-sheet-scrim {
    position: absolute;
    inset: 0;
    z-index: 30;
    border: 0;
    background: rgba(0,0,0,0.55);
  }
  .bne-arena-section-sheet {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 31;
    height: min(86dvh, 700px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-top: 1px solid var(--bne-line-strong);
    border-radius: 20px 20px 0 0;
    background: var(--bne-bg);
    color: var(--bne-fg);
  }
  .bne-arena-section-sheet.is-compact-section {
    height: auto;
    max-height: min(72dvh, 560px);
  }
  .bne-arena-section-sheet.is-short-section {
    height: auto;
    max-height: min(74dvh, 620px);
  }
  .bne-arena-sheet-handle {
    width: 40px;
    height: 4px;
    margin: 9px auto 7px;
    border-radius: 99px;
    background: var(--bne-line-strong);
  }
  .bne-arena-sheet-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 0 16px 8px;
  }
  .bne-arena-sheet-head h2 {
    margin: 3px 0 0;
    color: var(--bne-fg);
    font: 800 20px var(--bne-display);
    line-height: 1.05;
  }
  .bne-arena-sheet-tier {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--bne-fg-dim);
    font-size: 10px;
  }
  .bne-arena-sheet-head button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--bne-line);
    border-radius: var(--bne-radius);
    background: transparent;
    color: var(--bne-fg);
  }
  .bne-arena-sheet-stage {
    height: 24px;
    margin: 0 16px 10px;
    font-size: 9px;
  }
  .bne-arena-sheet-stage.is-bottom {
    margin: 10px 16px 0;
  }
  .bne-arena-seat-grid-wrap {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0 16px;
    padding: 12px 10px;
    overflow: auto;
    border: 1px solid var(--bne-line-strong);
    border-radius: var(--bne-radius);
    background: var(--bne-bg-elev);
  }
  .bne-arena-section-sheet.is-compact-section .bne-arena-seat-grid-wrap {
    flex: 0 0 auto;
  }
  .bne-arena-section-sheet.is-short-section .bne-arena-seat-grid-wrap {
    flex: 0 0 auto;
    max-height: min(42dvh, 360px);
    padding: 16px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .bne-arena-section-sheet.is-short-section .bne-arena-seat-grid {
    --seat-size: clamp(16px, calc((100vw - 122px) / var(--seat-cols)), 24px);
    gap: 5px;
  }
  .bne-arena-section-sheet.is-short-section .bne-arena-row-label {
    font-size: 9px;
  }
.bne-arena-switch-label {
    flex: 0 0 auto;
    padding: 12px 16px 8px;
    color: var(--bne-label);
    font-size: 10px;
  }
  .bne-arena-switcher {
    flex: 0 0 auto;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 16px 10px;
  }
  .bne-arena-switcher button {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--bne-line-strong);
    border-radius: var(--bne-radius);
    background: var(--bne-bg-elev);
    color: var(--bne-fg);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: 13px var(--bne-body);
  }
  .bne-arena-sheet-foot {
    margin-top: auto;
    padding: 10px 16px max(12px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--bne-line);
    background: var(--bne-bg);
    display: flex;
    gap: 12px;
    align-items: center;
  }
  .bne-arena-sheet-foot div {
    flex: 1;
    min-width: 0;
  }
  .bne-arena-sheet-foot span {
    display: block;
    color: var(--bne-fg-faint);
    font-size: 9px;
  }
  .bne-arena-sheet-foot strong {
    display: block;
    margin-top: 3px;
    font: 700 16px var(--bne-display);
  }
  .bne-arena-sheet-foot button {
    min-width: 76px;
    height: 42px;
    border: 0;
    border-radius: var(--bne-radius);
    background: var(--bne-fg) !important;
    color: var(--bne-bg) !important;
    font: 600 13px var(--bne-body);
  }
}

/* ── Site-wide mobile hardening ────────────────────────────────────
   Keep the public flow content-first on phones: compact header,
   single-column event cards, event details before decorative posters,
   and checkout sections that cannot overlap. */
@media (max-width: 640px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .header .container {
    padding-left: 20px;
    padding-right: 20px;
  }
  .header_inner {
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 10px 0 !important;
  }
  .bne-wordmark {
    flex: 0 1 auto;
    min-width: 0;
    font-size: clamp(18px, 7vw, 25px) !important;
    white-space: nowrap;
  }
  .header_right_section {
    margin-left: auto;
    min-width: 0;
  }
  .header_right_section .dropdown {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .bne-signin {
    min-height: 40px;
    padding: 0 13px !important;
    font-size: 13px !important;
    white-space: nowrap;
  }
}

@media (max-width: 560px) {
  .bne-home {
    padding-top: 28px;
  }
  .bne-home-grid {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }
  .bne-card-inner {
    min-height: clamp(360px, 116vw, 460px);
  }
  .bne-card-title {
    font-size: clamp(30px, 9vw, 38px) !important;
  }
  .bne-card-top {
    font-size: 10px;
  }
}

@media (max-width: 760px) {
  .bne-event-shell {
    padding-top: 22px;
  }
  .bne-event-crumb {
    margin-bottom: 22px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
  }
  .bne-event-crumb::-webkit-scrollbar { display: none; }
  .bne-event-hero {
    display: flex !important;
    flex-direction: column;
  }
  .bne-event-rail {
    order: 1;
  }
  .bne-event-poster-col {
    order: 2;
    width: 100%;
  }
  .bne-event-title {
    font-size: clamp(38px, 12vw, 52px) !important;
    line-height: 0.96;
    margin-bottom: 12px;
  }
  .bne-event-support {
    margin-bottom: 24px;
  }
  .bne-event-meta-row {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }
  .bne-event-meta dd strong,
  .bne-event-meta-row dd strong {
    font-size: 18px !important;
  }
  .bne-event-cta {
    width: 100%;
    min-width: 0;
  }
  .bne-event-poster-col .bne-poster-inner--tall {
    aspect-ratio: 4 / 5;
    min-height: 360px;
  }
  .bne-event-poster-col .bne-poster-inner--tall .bne-poster-title {
    font-size: clamp(34px, 10vw, 46px);
  }
  .bne-event-share {
    justify-content: flex-start;
  }
}

@media (max-width: 980px) {
  .tickets_price_list.bne-tier-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "info info"
      "price qty" !important;
    gap: 10px 12px !important;
    align-items: end;
    padding: 16px 0;
  }
  .tickets_price_list.bne-tier-row .bne-tier-info {
    grid-area: info;
  }
  .tickets_price_list.bne-tier-row .bne-tier-price {
    grid-area: price;
    text-align: left;
    align-items: baseline;
    min-height: 36px;
  }
  .tickets_price_list.bne-tier-row .bne-tier-qty {
    grid-area: qty;
    justify-content: flex-end;
    align-self: end;
  }
  .tickets_price_list.bne-tier-row .plan_add_btn.bne-tier-add {
    min-width: 86px;
    min-height: 36px;
    padding: 8px 18px;
  }
}

@media (max-width: 640px) {
  .bne-buy-heading {
    font-size: clamp(38px, 12vw, 52px);
    line-height: 0.96;
    margin-bottom: 26px;
  }
  .bne-buy-section {
    margin-bottom: 24px;
    padding: 16px;
  }
  .tickets_price_list.bne-tier-row {
    gap: 8px 12px !important;
  }
  .tickets_price_list.bne-tier-row .bne-tier-desc { display: none; }
  .bne-seat-cta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
    align-items: start;
    height: auto !important;
  }
  .bne-seat-cta .bne-tier-name,
  .bne-seat-cta .bne-tier-desc {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block !important;
    height: auto !important;
    line-height: 1.3 !important;
    margin: 0;
    padding: 0 !important;
  }
  .bne-seat-cta .bne-tier-desc {
    margin-top: 5px;
  }
  .plan_add_btn.bne-seat-btn.bne-auth-ghost {
    width: 100%;
    min-height: 48px;
    height: 48px !important;
    padding: 0 16px !important;
  }
  .bne-payment-methods {
    grid-template-columns: 1fr 1fr;
  }
  .bne-field input[type="text"],
  .bne-field input[type="email"],
  .bne-field input[type="password"],
  .bne-field input[type="tel"],
  .bne-field input[type="number"] {
    min-height: 50px;
  }
}

/* ─────────────────────────────────────────────────────────────────────────────
   HOME FILTER CHIPS
   ───────────────────────────────────────────────────────────────────────── */

.bne-filter-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 0 4px;
  margin: 0 0 32px;
}
.bne-filter-bar::-webkit-scrollbar { display: none; }

.bne-filter-chip {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  flex-shrink: 0;
  border-radius: 100px;
  border: 1px solid var(--bne-line-strong);
  background: var(--bne-chip-bg);
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--bne-fast), color var(--bne-fast), border-color var(--bne-fast);
}
.bne-filter-chip:hover {
  background: var(--bne-bg-card);
  color: var(--bne-fg);
  border-color: var(--bne-line-strong);
}
.bne-filter-chip.is-active {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
}

/* ─────────────────────────────────────────────────────────────────────────────
   MOBILE STICKY CTA — event detail page
   ───────────────────────────────────────────────────────────────────────── */

.bne-mobile-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  pointer-events: none;
  transform: translateY(100%);
  transition: transform var(--bne-med);
}
.bne-mobile-cta.is-visible {
  transform: translateY(0);
  pointer-events: auto;
}
.bne-mobile-cta-grad {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  height: 64px;
  background: linear-gradient(to top, var(--bne-bg), transparent);
  pointer-events: none;
}
.bne-mobile-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 20px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  background: var(--bne-bg-elev);
  border-top: 1px solid var(--bne-line);
}
.bne-mobile-cta-price {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  white-space: nowrap;
  line-height: 1.3;
}
.bne-mobile-cta-price strong {
  display: block;
  font-family: var(--bne-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--bne-fg);
  letter-spacing: -0.025em;
  line-height: 1.1;
}
.bne-mobile-cta-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 28px;
  background: var(--bne-accent);
  color: var(--bne-accent-ink);
  font-family: var(--bne-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  border: none;
  border-radius: var(--bne-radius);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity var(--bne-fast);
}
.bne-mobile-cta-btn:hover { opacity: .85; color: var(--bne-accent-ink); }
.bne-mobile-cta-btn--sold {
  background: var(--bne-bg-card);
  color: var(--bne-fg-faint);
  cursor: not-allowed;
}

@media (max-width: 768px) {
  .bne-mobile-cta { display: block; }
  .bne-event { padding-bottom: 90px; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   TICKET STUB SUCCESS SCREEN
   ───────────────────────────────────────────────────────────────────────── */

.bne-stub-success-wrap {
  display: flex;
  justify-content: center;
  padding: 64px 20px 48px;
}
.bne-stub-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 440px;
  width: 100%;
}
.bne-stub-check {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--bne-success);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  flex-shrink: 0;
}
.bne-stub-success-kicker {
  font-family: var(--bne-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  margin-bottom: 8px;
}
.bne-stub-success-h2 {
  font-family: var(--bne-display);
  font-size: clamp(40px, 10vw, 64px);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg);
  line-height: 1;
  margin: 0 0 10px;
}
.bne-stub-success-sub {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: 0 0 36px;
}

/* Ticket stub card */
.bne-stub-card {
  width: 100%;
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
  border: 1px solid var(--bne-line);
  background: var(--bne-bg-card);
  margin-bottom: 28px;
  text-align: left;
}
.bne-stub-band {
  height: 8px;
  background: linear-gradient(
    135deg,
    oklch(55% 0.18 calc(var(--bne-poster-hue, 240) - 20)) 0%,
    oklch(65% 0.20 var(--bne-poster-hue, 240)) 50%,
    oklch(50% 0.15 calc(var(--bne-poster-hue, 240) + 40)) 100%
  );
}
.bne-stub-body {
  padding: 20px 20px 24px;
}
.bne-stub-event-name {
  font-family: var(--bne-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg);
  line-height: 1.1;
  margin-bottom: 6px;
}
.bne-stub-event-meta {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  letter-spacing: 0.04em;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 4px;
}
.bne-stub-venue {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin-bottom: 16px;
}

/* Perforation row */
.bne-stub-perf {
  display: flex;
  gap: 0;
  margin: 0 -20px 16px;
  padding: 0 4px;
  border-top: 1px dashed var(--bne-line-strong);
  position: relative;
  overflow: hidden;
}
.bne-stub-perf span {
  flex: 1;
  display: block;
  height: 10px;
  border-radius: 0 0 8px 8px;
  background: var(--bne-bg);
  border: 1px solid var(--bne-line);
  border-top: none;
  margin: 0 2px;
  transform: translateY(-50%);
}

/* Stub bits row */
.bne-stub-bits {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: 12px 8px;
  margin-bottom: 20px;
}
.bne-stub-bit span {
  display: block;
  font-family: var(--bne-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  margin-bottom: 3px;
}
.bne-stub-bit strong {
  display: block;
  font-family: var(--bne-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
}

/* QR area */
.bne-stub-qr {
  display: flex;
  justify-content: flex-end;
}
.bne-stub-qr img {
  width: 80px;
  height: 80px;
  border-radius: var(--bne-radius);
}
.bne-stub-qr-placeholder {
  width: 80px;
  height: 80px;
  border-radius: var(--bne-radius);
  border: 1px dashed var(--bne-line-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bne-fg-faint);
}

/* Actions below stub */
.bne-stub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

@media (max-width: 480px) {
  .bne-stub-success-wrap {
    padding: 40px 16px 32px;
  }
  .bne-stub-actions {
    flex-direction: column;
    width: 100%;
  }
  .bne-stub-actions .theme_btn,
  .bne-stub-actions .bne-auth-ghost {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   HOST SHELL — /host/* routes (Day 1 of host-panel build, 2026-05)
   Hosts see this; they NEVER see admin nav. Admins see /admin/*.
   ───────────────────────────────────────────────────────────────────────── */

body.bne-host-page {
  background: var(--bne-bg);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  margin: 0;
  min-height: 100vh;
}

/* Topbar — purpose-built for host. No public-site nav, no admin nav. */
.bne-host-topbar {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--bne-bg-elev);
  border-bottom: 1px solid var(--bne-line);
}
.bne-host-topbar-inner {
  max-width: 1360px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 14px 24px;
}

.bne-host-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  text-decoration: none;
  color: var(--bne-fg);
}
.bne-host-brand-mark {
  font-family: var(--bne-display);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.bne-host-brand-dot { color: var(--bne-fg-faint); }
.bne-host-brand-tag {
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--bne-fg-dim);
}

.bne-host-nav {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 12px;
}
.bne-host-nav-link {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 14px;
  border-radius: 6px;
  font-family: var(--bne-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--bne-fg-dim);
  text-decoration: none;
  transition: background var(--bne-fast), color var(--bne-fast);
}
.bne-host-nav-link:hover { background: var(--bne-bg-card); color: var(--bne-fg); }
.bne-host-nav-link.is-active {
  background: var(--bne-fg);
  color: var(--bne-bg);
}

.bne-host-meta {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.bne-host-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line-strong);
  color: var(--bne-fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bne-display);
  font-size: 12px;
  font-weight: 700;
}
.bne-host-meta-name {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
}
.bne-host-logout {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-faint);
  text-decoration: none;
  border-left: 1px solid var(--bne-line-strong);
  padding-left: 12px;
  margin-left: 4px;
  transition: color var(--bne-fast);
}
.bne-host-logout:hover { color: var(--bne-fg); }

.bne-host-main {
  padding: 32px 0 64px;
}
.bne-host-shell {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Page head */
.bne-host-pagehead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.bne-host-h1 {
  font-family: var(--bne-display);
  font-size: clamp(36px, 5vw, 48px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1;
  margin: 6px 0 8px;
}
.bne-host-sub {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: 0;
}
.bne-host-pagehead-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* KPI tiles */
.bne-host-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 32px;
}
.bne-host-kpi {
  padding: 20px 22px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-elev);
}
.bne-host-kpi-label {
  font-family: var(--bne-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  margin-bottom: 8px;
}
.bne-host-kpi-value {
  font-family: var(--bne-display);
  font-size: 36px;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1;
  color: var(--bne-fg);
}
.bne-host-kpi-foot {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  margin-top: 8px;
}

/* Two-col cards */
.bne-host-two-col {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 16px;
}
@media (max-width: 900px) {
  .bne-host-two-col { grid-template-columns: 1fr; }
}
.bne-host-card {
  padding: 24px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  background: var(--bne-bg-elev);
}
.bne-host-card-title {
  font-family: var(--bne-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.025em;
  margin: 0 0 6px;
  color: var(--bne-fg);
}
.bne-host-card-meta {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  margin-bottom: 16px;
}
.bne-host-card-empty {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  padding: 16px 0;
}
.bne-host-card-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
  flex-wrap: wrap;
}

/* Recent bookings table */
.bne-host-recent-table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 16px;
}
.bne-host-recent-table th {
  font-family: var(--bne-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-host-recent-table td {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg);
  padding: 10px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-host-recent-table .booking-id-mono {
  font-family: var(--bne-mono);
  font-size: 12px;
  color: var(--bne-fg-dim);
}

/* ─────────────────────────────────────────────────────────────────────────
   HOST PANEL — Day 2 surfaces (events list / attendees / profile)
   ───────────────────────────────────────────────────────────────────────── */

/* Filter row: search + chips */
.bne-host-filters {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.bne-host-search {
  flex: 1 1 280px;
  min-width: 240px;
  height: 40px;
  padding: 0 14px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 13px;
}
.bne-host-search:focus {
  outline: none;
  border-color: var(--bne-fg-dim);
}

.bne-host-chip-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.bne-host-chip {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 14px;
  border-radius: 100px;
  border: 1px solid var(--bne-line-strong);
  background: var(--bne-chip-bg);
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background var(--bne-fast), color var(--bne-fast), border-color var(--bne-fast);
}
.bne-host-chip:hover {
  background: var(--bne-bg-card);
  color: var(--bne-fg);
}
.bne-host-chip.is-active {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
}

/* Tables (host events, attendees) */
.bne-host-table-wrap {
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius-lg);
  overflow: hidden;
}
.bne-host-table {
  width: 100%;
  border-collapse: collapse;
}
.bne-host-table th {
  text-align: left;
  padding: 14px 16px;
  font-family: var(--bne-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  border-bottom: 1px solid var(--bne-line);
  background: var(--bne-bg-card);
}
.bne-host-table td {
  padding: 14px 16px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg);
  border-bottom: 1px solid var(--bne-line);
  vertical-align: middle;
}
.bne-host-table tbody tr:last-child td { border-bottom: 0; }
.bne-host-table-sub {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--bne-fg-dim);
}
.bne-host-table-actions-cell {
  display: flex;
  gap: 14px;
  white-space: nowrap;
  justify-content: flex-end;
}
.bne-host-table-link {
  font-family: var(--bne-body);
  font-size: 12px;
  color: var(--bne-fg-dim);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--bne-fast), border-color var(--bne-fast);
}
.bne-host-table-link:hover {
  color: var(--bne-fg);
  border-bottom-color: var(--bne-fg-dim);
}

/* State pill on event rows */
.bne-host-state-pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px;
  border-radius: 999px;
  font-family: var(--bne-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  border: 1px solid;
}
.bne-host-state-pill.is-active   { color: #15803d; border-color: rgba(34,197,94,0.4);  background: rgba(34,197,94,0.08); }
.bne-host-state-pill.is-past     { color: var(--bne-fg-dim); border-color: var(--bne-line-strong); background: transparent; }
.bne-host-state-pill.is-archived { color: #b91c1c; border-color: rgba(239,68,68,0.4);  background: rgba(239,68,68,0.06); }

/* Empty state */
.bne-host-empty {
  padding: 56px 24px;
  text-align: center;
}
.bne-host-empty p {
  font-family: var(--bne-body);
  font-size: 14px;
  color: var(--bne-fg-dim);
  margin: 8px 0 16px;
}

/* Pagination scoped to host shell — reuses .pagination from front CSS */
.bne-host-pagination {
  display: flex;
  justify-content: center;
  padding: 16px;
  border-top: 1px solid var(--bne-line);
}
.bne-host-pagination ul.pagination { gap: 4px; margin: 0; }

/* Quiet inline link */
.bne-host-link-quiet {
  color: var(--bne-fg-dim);
  text-decoration: none;
  font-family: var(--bne-body);
  font-size: 12px;
  border-bottom: 1px solid transparent;
  transition: color var(--bne-fast), border-color var(--bne-fast);
}
.bne-host-link-quiet:hover { color: var(--bne-fg); border-bottom-color: var(--bne-fg-dim); }

/* Detail list (booking detail / profile) */
.bne-host-detail-list {
  margin: 0;
  padding: 0;
}
.bne-host-detail-list > div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--bne-line);
}
.bne-host-detail-list > div:last-child { border-bottom: 0; }
.bne-host-detail-list dt {
  font-family: var(--bne-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
.bne-host-detail-list dd {
  margin: 0;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg);
}

/* Tonal variants for ghost buttons used in host attendee detail */
.bne-auth-ghost.is-warn   { color: #b45309; }
.bne-auth-ghost.is-warn:hover  { background: rgba(245, 158, 11, 0.10); border-color: rgba(245, 158, 11, 0.40); color: #92400e; }
.bne-auth-ghost.is-danger { color: #b91c1c; }
.bne-auth-ghost.is-danger:hover { background: rgba(239, 68, 68, 0.10); border-color: rgba(239, 68, 68, 0.40); color: #991b1b; }

/* ─────────────────────────────────────────────────────────────────────────
   HOST STATUS — application timeline (pending / rejected / not-applied)
   ───────────────────────────────────────────────────────────────────────── */
.bne-host-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.bne-host-timeline::before {
  content: '';
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 9px;
  width: 1px;
  background: var(--bne-line);
}
.bne-host-timeline li {
  position: relative;
  padding: 8px 0 16px 32px;
  min-height: 24px;
}
.bne-host-timeline li:last-child { padding-bottom: 0; }
.bne-host-timeline-dot {
  position: absolute;
  top: 14px;
  left: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  z-index: 1;
}
.bne-host-timeline li.is-done .bne-host-timeline-dot {
  background: #22c55e;
  border-color: #16a34a;
}
.bne-host-timeline li.is-current .bne-host-timeline-dot {
  background: #f59e0b;
  border-color: #d97706;
  box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18);
}
.bne-host-timeline li.is-rejected .bne-host-timeline-dot {
  background: #ef4444;
  border-color: #dc2626;
}
.bne-host-timeline-body strong {
  display: block;
  font-family: var(--bne-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--bne-fg);
}
.bne-host-timeline-meta {
  display: block;
  margin-top: 4px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  line-height: 1.5;
}
.bne-host-timeline-meta strong {
  display: inline;
  font-size: inherit;
  color: var(--bne-fg);
}

/* ─────────────────────────────────────────────────────────────────────────
   HOST ANALYTICS — sparkline chart, sell-through bar, status grid
   ───────────────────────────────────────────────────────────────────────── */
.bne-host-chart {
  width: 100%;
  height: 200px;
  display: block;
  margin: 8px 0 4px;
}
.bne-host-chart-line {
  fill: none;
  stroke: var(--bne-accent, oklch(68% 0.11 240));
  stroke-width: 2;
  stroke-linejoin: round;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.bne-host-chart-area {
  fill: var(--bne-accent, oklch(68% 0.11 240));
  fill-opacity: 0.10;
  stroke: none;
}
.bne-host-chart-axis {
  display: flex;
  justify-content: space-between;
  font-family: var(--bne-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
  padding: 0 2px;
}

/* Sell-through bar */
.bne-host-bar {
  display: inline-block;
  width: 80px;
  height: 6px;
  background: var(--bne-bg-card);
  border: 1px solid var(--bne-line);
  border-radius: 3px;
  overflow: hidden;
  vertical-align: middle;
  margin-right: 8px;
}
.bne-host-bar-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg,
    oklch(60% 0.16 145),
    oklch(70% 0.14 145));
}
.bne-host-bar-label {
  font-family: var(--bne-mono);
  font-size: 11px;
  color: var(--bne-fg-dim);
  vertical-align: middle;
}

/* Status breakdown tiles */
.bne-host-status-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.bne-host-status-tile {
  padding: 14px 16px;
  border: 1px solid var(--bne-line);
  border-radius: var(--bne-radius);
  background: var(--bne-bg-card);
}
.bne-host-status-tile-count {
  font-family: var(--bne-display);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg);
  margin: 8px 0 2px;
  line-height: 1;
}
.bne-host-status-tile-meta {
  font-family: var(--bne-body);
  font-size: 11px;
  color: var(--bne-fg-dim);
}

/* booking-status-badge color variants used by analytics + status tiles.
   admin already defines is-paid/is-pending/is-failed/is-checked-in;
   add the refunded/disputed/normal variants if missing. */
.booking-status-badge.is-refunded {
  background: rgba(148, 163, 184, 0.12);
  color: #475569;
  border: 1px solid rgba(148, 163, 184, 0.4);
}
.booking-status-badge.is-disputed {
  background: rgba(239, 68, 68, 0.10);
  color: #b91c1c;
  border: 1px solid rgba(239, 68, 68, 0.45);
}
.booking-status-badge.is-normal {
  background: var(--bne-bg-card);
  color: var(--bne-fg-dim);
  border: 1px solid var(--bne-line-strong);
}
.text-right { text-align: right; }

/* ─────────────────────────────────────────────────────────────────────────
   HOST PROMO MODAL — create/edit promo codes (Day 5)
   Self-contained modal, no Bootstrap dependency.
   ───────────────────────────────────────────────────────────────────────── */
.bne-promo-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.bne-promo-modal[hidden] { display: none; }
.bne-promo-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 13, 16, 0.62);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.bne-promo-modal-card {
  position: relative;
  width: 100%;
  max-width: 460px;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius-lg);
  box-shadow: 0 24px 64px rgba(12, 13, 16, 0.5);
  overflow: hidden;
}
.bne-promo-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--bne-line);
}
.bne-promo-modal-head h2 {
  font-family: var(--bne-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--bne-fg);
}
.bne-promo-modal-close {
  background: transparent;
  border: 0;
  color: var(--bne-fg-dim);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  transition: color var(--bne-fast);
}
.bne-promo-modal-close:hover { color: var(--bne-fg); }

.bne-promo-modal-body {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.bne-promo-field { display: block; }
.bne-promo-field-label {
  display: block;
  font-family: var(--bne-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bne-fg-faint);
  margin-bottom: 6px;
}
.bne-promo-field input[type="text"],
.bne-promo-field input[type="number"],
.bne-promo-field select {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  background: var(--bne-bg);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 14px;
}
.bne-promo-field input:focus,
.bne-promo-field select:focus {
  outline: none;
  border-color: var(--bne-fg-dim);
}
.bne-promo-field-hint {
  display: block;
  font-family: var(--bne-body);
  font-size: 11px;
  color: var(--bne-fg-faint);
  margin-top: 4px;
}
.bne-promo-field-row {
  display: flex;
  gap: 12px;
}
.bne-promo-field--check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
  cursor: pointer;
}
.bne-promo-field--check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}
.bne-promo-modal-error {
  background: rgba(239, 68, 68, 0.10);
  border: 1px solid rgba(239, 68, 68, 0.45);
  color: #b91c1c;
  border-radius: var(--bne-radius);
  padding: 10px 12px;
  font-family: var(--bne-body);
  font-size: 13px;
}
.bne-promo-modal-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--bne-line);
  margin-top: 8px;
  padding-top: 16px;
}

/* New lifecycle-state pill variant */
.bne-host-state-pill.is-pending-review {
  color: #b45309;
  border-color: rgba(245, 158, 11, 0.4);
  background: rgba(245, 158, 11, 0.08);
}

/* ─────────────────────────────────────────────────────────────────────────
   PUBLIC HOST PROFILE — /hosted/{name}
   ───────────────────────────────────────────────────────────────────────── */
.bne-host-public {
  padding: 64px 0 96px;
  background: var(--bne-bg);
  color: var(--bne-fg);
}
.bne-host-public-shell {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}
.bne-host-public-head {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  margin-bottom: 64px;
  flex-wrap: wrap;
}
.bne-host-public-avatar {
  width: 140px;
  height: 140px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--bne-bg-elev);
  border: 1px solid var(--bne-line-strong);
  display: flex;
  align-items: center;
  justify-content: center;
}
.bne-host-public-avatar img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.bne-host-public-avatar span {
  font-family: var(--bne-display);
  font-size: 56px;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--bne-fg-dim);
}
.bne-host-public-meta { flex: 1 1 320px; min-width: 0; }
.bne-host-public-h1 {
  font-family: var(--bne-display);
  font-size: clamp(40px, 6vw, 72px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 0.95;
  margin: 6px 0 16px;
}
.bne-host-public-bio {
  font-family: var(--bne-body);
  font-size: 16px;
  line-height: 1.55;
  color: var(--bne-fg-dim);
  max-width: 60ch;
  margin: 0 0 20px;
  white-space: pre-wrap;
}
.bne-host-public-socials {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bne-host-public-social-link {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border-radius: 100px;
  border: 1px solid var(--bne-line-strong);
  background: var(--bne-chip-bg);
  color: var(--bne-fg-dim);
  font-family: var(--bne-body);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--bne-fast), color var(--bne-fast), border-color var(--bne-fast);
}
.bne-host-public-social-link:hover {
  background: var(--bne-fg);
  color: var(--bne-bg);
  border-color: var(--bne-fg);
}
.bne-host-public-section { margin-bottom: 64px; }
.bne-host-public-h2 {
  font-family: var(--bne-display);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 700;
  letter-spacing: -0.025em;
  margin: 0 0 24px;
}

/* Past events — slim list, not card grid */
.bne-host-public-past {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--bne-line);
}
.bne-host-public-past li {
  border-bottom: 1px solid var(--bne-line);
}
.bne-host-public-past a {
  display: grid;
  grid-template-columns: 160px 1fr 1fr;
  gap: 16px;
  padding: 16px 0;
  text-decoration: none;
  color: var(--bne-fg);
  transition: background var(--bne-fast);
}
.bne-host-public-past a:hover {
  background: var(--bne-bg-elev);
}
.bne-host-public-past-date {
  font-family: var(--bne-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--bne-fg-faint);
  text-transform: uppercase;
}
.bne-host-public-past-name {
  font-family: var(--bne-display);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.015em;
}
.bne-host-public-past-loc {
  font-family: var(--bne-body);
  font-size: 13px;
  color: var(--bne-fg-dim);
}
@media (max-width: 720px) {
  .bne-host-public-past a {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 0;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   /host/profile — socials editor grid
   ───────────────────────────────────────────────────────────────────────── */
.bne-host-socials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.bne-host-socials-grid > label { display: block; }
.bne-host-socials-label {
  display: block;
  font-family: var(--bne-body);
  font-size: 11px;
  font-weight: 500;
  color: var(--bne-fg-faint);
  margin-bottom: 4px;
}
.bne-host-socials-grid input[type="url"] {
  width: 100%;
  height: 38px;
  padding: 0 10px;
  background: var(--bne-bg);
  border: 1px solid var(--bne-line-strong);
  border-radius: var(--bne-radius);
  color: var(--bne-fg);
  font-family: var(--bne-body);
  font-size: 13px;
}
