/* ── Navigation ─────────────────────────────────────────────────── */

.site-nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.site-nav-primary {
  display: flex;
  align-items: center;
  gap: 1.8rem;
}

.site-nav-primary a {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  transition: color 0.15s;
}

.site-nav-primary a:hover,
.site-nav-primary a.active {
  color: var(--accent);
}

/* Dropdown */
.nav-dropdown {
  position: relative;
}

.nav-dropdown-toggle {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
}

.nav-dropdown-toggle::-webkit-details-marker { display: none; }

.nav-dropdown-label {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.55rem;
  border: 1px solid rgba(122, 42, 42, 0.7);
  border-radius: 999px;
  background: var(--accent, #7A2A2A);
  transition: background 0.15s, border-color 0.15s;
  color: #fff;
}

.nav-dropdown:hover .nav-dropdown-label,
.nav-dropdown[open] .nav-dropdown-label {
  background: #5e1e1e;
  border-color: rgba(122, 42, 42, 0.9);
}

.nav-hamburger {
  display: block;
  position: relative;
  order: 2;
}

.nav-hamburger-menu {
  right: 0;
  left: auto;
  transform-origin: top right;
  min-width: 180px;
}

.site-nav .site-nav-primary {
  display: none;
}

.nav-dropdown:not(.nav-hamburger) {
  order: 3;
}


.nav-home-icon {
  display: flex;
  align-items: center;
  color: #fff;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  flex-shrink: 0;
  order: 1;
  padding: 0.3rem 0.55rem;
  border: 1px solid rgba(122, 42, 42, 0.7);
  border-radius: 999px;
  background: var(--accent, #7A2A2A);
}

.nav-home-icon.nav-home-icon-active {
  opacity: 0.4;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .nav-home-icon:hover {
    background: #5e1e1e;
    border-color: rgba(122, 42, 42, 0.9);
  }
}

.nav-dropdown-icon,
.nav-home-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
}

.nav-dropdown-chevron {
  width: 0.8rem;
  height: 0.8rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.nav-dropdown[open] .nav-dropdown-chevron {
  transform: rotate(180deg);
}

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  min-width: 160px;
  background: #221610;
  border: 1px solid rgba(180, 60, 50, 0.25);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  padding: 0.4rem;
  z-index: 200;
  animation: dropdown-in 0.18s ease forwards;
  transform-origin: top right;
}

@keyframes dropdown-in {
  from { opacity: 0; transform: scale(0.95) translateY(-4px); }
  to   { opacity: 1; transform: scale(1)   translateY(0);     }
}

.nav-dropdown-item {
  display: block;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  font-size: 0.92rem;
  font-weight: 600;
  color: rgba(225, 180, 170, 0.9);
  text-decoration: none;
  transition: background 0.12s, color 0.12s;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

.nav-dropdown-item:hover {
  background: rgba(122, 42, 42, 0.5);
  color: rgba(255, 215, 210, 1);
}

.nav-dropdown-item.active {
  color: #e87878;
  background: rgba(122, 42, 42, 0.3);
}

.nav-dropdown-signout {
  color: rgba(225, 180, 170, 0.9);
}

.nav-dropdown-signout:hover {
  color: rgba(255, 215, 210, 1);
  background: rgba(122, 42, 42, 0.5);
}

.nav-dropdown-divider {
  height: 1px;
  background: rgba(180, 60, 50, 0.2);
  margin: 0.3rem 0.4rem;
}

.nav-signed-in-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent-dark);
  max-width: 12ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav-dropdown-identity {
  padding: 0.65rem 0.9rem 0.5rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  max-width: 220px;
  text-align: center;
  align-items: center;
}

.nav-dropdown-identity-link {
  display: block;
  text-decoration: none;
  text-align: center;
  border-radius: 8px;
  transition: background 100ms ease;
}

.nav-dropdown-identity-link:hover {
  background: rgba(122, 42, 42, 0.3);
}

.nav-dropdown-identity-name {
  font-weight: 700;
  font-size: 0.92rem;
  color: rgba(240, 200, 195, 0.95);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}

.nav-dropdown-role {
  font-size: 0.86rem;
  font-weight: 400;
  color: rgba(225, 180, 170, 0.45);
}

.nav-dropdown-role-sub {
  font-size: 0.78rem;
  font-weight: 400;
  color: rgba(225, 180, 170, 0.45);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mobile */
@media (max-width: 768px) {
  .nav-row .site-nav {
    flex-wrap: nowrap;
    flex: 0 0 auto;
    gap: 0.75rem;
    justify-content: flex-end;
    margin-left: auto;
  }

  .nav-home-icon {
    margin-right: auto;
  }

  .nav-dropdown-menu {
    right: -0.5rem;
  }
}


/* Desktop: enlarge hamburger, account, and home nav buttons */
@media (min-width: 769px) {
  .nav-dropdown-label {
    padding: 0.6rem 1.1rem;
  }

  .nav-home-icon {
    padding: 0.6rem 1.1rem;
  }

  .nav-dropdown-icon,
  .nav-home-icon svg {
    width: 2.3rem;
    height: 2.3rem;
  }

  .nav-dropdown-chevron {
    width: 1.6rem;
    height: 1.6rem;
  }
}

/* About section edit link and textarea */
.about-edit-link {
	float: right;
	margin-left: 0.5em;
	cursor: pointer;
	font-size: 1.1em;
	color: var(--accent-dark);
	opacity: 0.7;
	transition: opacity 0.15s;
}
.about-edit-link:hover {
	opacity: 1;
	text-decoration: underline;
}
.about-edit-form textarea {
	font-family: inherit;
	font-size: 1em;
	border-radius: 8px;
	border: 1px solid var(--line);
	padding: 0.7em;
	margin-bottom: 0.3em;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *
 *= require_tree .
 *= require_self
 */

:root {
	--bg: #0a0807;
	--paper: #fbf8f1;
	--ink: #ede8df;
	--muted: #a89a8e;
	--accent: #c4516a;
	--gold: #d6a552;
	--line: rgba(255, 255, 255, 0.09);
	--accent-hover: #d4617a;
	--accent-dark: #e08090;
	--shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	--ink-dark: #1f1a17;
	--muted-dark: #675f56;
	--surface: #160b0a;
	color-scheme: dark;
	accent-color: #c4516a;
}

* {
	box-sizing: border-box;
}

html {
	overflow-x: clip;
}

body {
	margin: 0;
	overflow-x: clip;
	font-family: Georgia, "Times New Roman", serif;
	background:
		radial-gradient(ellipse at top, #160c0a 0%, var(--bg) 55%);
	color: var(--ink);
	line-height: 1.5;
}

a {
	color: inherit;
	text-decoration: none;
}

input,
textarea,
select {
	width: 100%;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 16px;
	padding: 0.9rem 1rem;
	background: #160b0a;
	color: var(--ink);
	font: inherit;
	font-size: 1rem;
	color-scheme: dark;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
	filter: invert(0.8) sepia(1) saturate(3) hue-rotate(295deg);
	cursor: pointer;
	opacity: 0.8;
}

input[type="date"]::-webkit-datetime-edit-fields-wrapper,
input[type="time"]::-webkit-datetime-edit-fields-wrapper,
input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper {
	color: var(--ink);
}

input[type="date"]::-webkit-datetime-edit-text,
input[type="time"]::-webkit-datetime-edit-text {
	color: var(--muted);
}

input[type="date"]::-webkit-inner-spin-button,
input[type="time"]::-webkit-inner-spin-button {
	display: none;
}

textarea {
	resize: vertical;
}

.shell {
	width: min(1120px, calc(100% - 2rem));
	margin: 0 auto;
}

.shell-wide {
	width: min(1600px, calc(100% - 2rem));
	margin: 0 auto;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 10;
	backdrop-filter: blur(14px);
	background: rgba(10, 7, 6, 0.65);
	border-bottom: 1px solid rgba(196, 81, 106, 0.2);
}

/* ── Dark theme: auth-card uses global dark vars (no re-scope needed) ── */

.nav-row,
.site-nav,
.button-row,
.hero-actions,
.section-heading,
.table-actions,
.action-row {
	display: flex;
	align-items: center;
}

.action-row {
	justify-content: center;
}

.button-row form,
.action-row form {
	display: inline-flex;
	margin: 0;
}

.nav-row,
.section-heading {
	justify-content: space-between;
	gap: 1rem;
}

.dashboard-toolbar {
	display: flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 0.6rem 0.9rem;
	background: rgba(31, 26, 23, 0.03);
}

.dashboard-toolbar-group {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0 0.75rem;
}

.dashboard-toolbar-group:first-child {
	padding-left: 0;
}

.dashboard-toolbar-group:last-child {
	padding-right: 0;
}

.dashboard-toolbar-label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink);
	text-align: center;
}

.dashboard-toolbar-divider {
	width: 1px;
	align-self: stretch;
	background: var(--line);
	margin: 0 0.25rem;
	flex-shrink: 0;
}

.dashboard-toolbar-group .button-row {
	gap: 1.25rem;
}

.toolbar-link {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
	white-space: nowrap;
}

.toolbar-link:hover {
	text-decoration: underline;
	color: var(--accent-hover);
}

@media (max-width: 700px) {
	.dashboard-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 0.6rem;
		width: 100%;
	}

	.dashboard-toolbar-divider {
		width: auto;
		height: 1px;
		margin: 0;
	}

	.dashboard-toolbar-group {
		padding: 0;
	}
}


.nav-row {
	padding: 1rem 0;
}

.brand-mark {
	font-size: 1.35rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
}

.brand-mark-image {
	display: block;
	height: 8.29rem;
	width: auto;
}

.site-nav {
	gap: 1rem;
	flex-wrap: wrap;
}

.site-nav-primary,
.site-nav-secondary {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}


.site-nav-primary a,
.site-nav-secondary a,
.brand-mark {
	transition: color 140ms ease;
}

/* Highlight the active nav link in burgundy */
.site-nav-primary a.active,
.site-nav-secondary a.active {
	color: var(--accent) !important;
}

.site-nav-primary a,
.site-nav-secondary a,
.site-nav .nav-button,
.site-nav .nav-pill,
.site-nav .nav-pill-outline,
.site-nav .nav-button-subtle {
	font-size: 1.3rem;
	font-weight: 700;
}

.nav-pill,
.button-primary,
.button-secondary,
.nav-button,
.nav-pill-outline,
.nav-button-subtle {
	border-radius: 999px;
	padding: 0.8rem 1.2rem;
	font-weight: 600;
	border: 1px solid transparent;
	background: var(--accent);
	color: #fff9f3;
	transition: background-color 140ms ease, border-color 140ms ease;
}

.button-primary,
.nav-pill,
.nav-button,
.button-secondary,
.nav-pill-outline,
.nav-button-subtle {
	background: var(--accent);
	color: #fff9f3;
}

input.button-primary,
input.button-secondary,
input.button-compact {
	width: auto;
	font: inherit;
	font-weight: 600;
	line-height: normal;
}

button.button-primary,
button.button-secondary {
	border: none;
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	display: inline-block;
	line-height: normal;
}

.nav-button,
.link-button {
	border: 0;
	cursor: pointer;
	font: inherit;
}

.button-primary:hover,
.button-secondary:hover,
.nav-pill:hover,
.nav-button:hover,
.nav-pill-outline:hover,
.nav-button-subtle:hover {
	background: var(--accent-hover);
	color: #fff9f3;
}

.site-nav-primary a:hover,
.site-nav-secondary a:hover,
.brand-mark:hover {
	color: var(--accent);
}

.hero-panel,
.film-hero,
.split-layout,
.prose-grid,
.footer-grid,
.stats-grid,
.card-grid,
.stack-grid,
.form-grid {
	display: grid;
	gap: 1.5rem;
}

.hero-panel,
.film-hero {
	grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.9fr);
	align-items: stretch;
	padding: 4rem 0 2rem;
}

.hero-panel-slim {
	grid-template-columns: minmax(300px, 560px);
	justify-content: center;
	padding: 2rem 0 1.5rem;
}

.film-hero-full {
	grid-template-columns: 1fr;
	padding-top: 0.6rem;
}
.film-hero-full .eyebrow {
	margin-top: 0;
	margin-bottom: 0.4rem;
}
.film-hero-full h1 {
	margin-top: 0;
	margin-bottom: 0.25rem;
}
.film-hero-full .trailer-embed-wrap {
	margin-top: 0.4rem;
}

.trailer-embed-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 21 / 9;
	border-radius: 18px;
	overflow: hidden;
	background: #000;
	margin: 1rem 0 1rem;
}

.trailer-mobile {
	display: none;
	aspect-ratio: 16 / 9;
	margin: 1.5rem 0;
}

.trailer-embed {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.film-detail-layout {
	display: grid;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.hero-copy,
.spotlight-card,
.content-panel,
.feature-card,
.event-card,
.stat-card,
.spotlight-band {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 28px;
	box-shadow: var(--shadow);
}

.auth-card {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	box-shadow: var(--shadow);
}

.showing-card {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

.hero-copy {
	padding: 3rem;
	text-align: center;
}

.hero-copy h1,
.interior-hero h1,
.film-hero h1 {
	font-size: clamp(2.7rem, 5vw, 5rem);
}

.interior-hero .event-hero-title,
h1.event-hero-title {
	font-size: 1.75rem !important;
}

.hero-logo {
	display: block;
	width: min(420px, 100%);
	height: auto;
	margin: 0 auto 1rem;
	filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.18));
}

.hero-actions {
	justify-content: center;
}

.hero-text {
	font-size: 1.1rem;
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
}

.synopsis-toggle {
	margin-top: 0.4rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--accent-dark);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}

.film-detail-poster {
	display: block;
	width: min(320px, 100%);
	height: auto;
	border-radius: 16px;
	margin: 0.8rem 0 1.2rem;
	border: 1px solid rgba(31, 26, 23, 0.12);
	box-shadow: var(--shadow);
}

.event-show-poster {
	display: block;
	width: min(280px, 100%);
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 16px;
	margin: 0 auto 1.2rem;
	border: 1px solid rgba(31, 26, 23, 0.12);
	box-shadow: var(--shadow);
}

.event-hero-layout {
	display: grid;
	grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
	gap: 1.8rem;
	align-items: start;
}

.event-hero-title {
	font-size: 1.75rem;
	margin-top: 0;
	margin-bottom: 0.5rem;
}

.event-index-poster {
	display: block;
	width: min(160px, 100%);
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 12px;
	margin: 0 auto 0.9rem;
	border: 1px solid rgba(31, 26, 23, 0.12);
	background: rgba(31, 26, 23, 0.06);
}

.spotlight-card,
.content-panel,
.event-card,
.showing-card,
.auth-card,
.stat-card,
.feature-card {
	padding: 1.6rem;
}
.feature-card > .button-secondary,
.feature-card > .button-primary {
	display: block;
	width: fit-content;
	margin: 1rem auto 0;
	text-align: center;
}

.interior-hero,
.admin-shell {
	padding-top: 3rem;
}
.interior-hero.pub-pp-page {
	padding-top: 0.75rem;
}

.section-block {
	padding: 1.25rem 0 3.5rem;
}

.compact-block {
	padding-top: 0;
}

.about-hero {
	padding-top: 1rem;
	padding-bottom: 0.35rem;
}

.about-hero h1 {
	max-width: 18ch;
	margin-bottom: 0.65rem;
}

.about-lead {
	margin: 0;
	max-width: 70ch;
	font-size: 1.1rem;
	color: var(--ink);
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.about-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem;
}

.about-card {
	position: relative;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.3);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
	padding-top: 1rem;
}

.about-card h2 {
	margin-top: 0;
	margin-bottom: 0.75rem;
	font-size: clamp(1.45rem, 2.4vw, 2rem);
	color: var(--accent);
	text-align: center;
}

.about-card p {
	margin: 0 0 0.8rem;
}

.about-card p:last-child {
	margin-bottom: 0;
}

.about-card-wide {
	grid-column: 1 / -1;
}

.ad-preview-image {
	width: 50%;
	border-radius: 8px;
	margin-bottom: 1.25rem;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.parties-hero-image {
	width: 60%;
	border-radius: 8px;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* ── Rental / Parties page ── */
.about-cine-hero__img.rental-hero__img {
	object-position: center 35%;
}

.about-cine-hero__img.advert-hero__img {
	object-position: center 35%;
}

.advert-intro-body {
	max-width: 680px;
	margin: 1.25rem auto 0;
	line-height: 1.8;
	font-size: 1.05rem;
	text-align: left;
}

.advert-intro-body p { margin-bottom: 0.85rem; }
.advert-intro-body p:last-child { margin-bottom: 0; }

.advert-cta {
	text-align: center;
	padding-bottom: 3.5rem;
	padding-top: 1.5rem;
}

.rental-intro {
	padding-top: 1.75rem;
	padding-bottom: 0.25rem;
}

.rental-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.75rem;
	padding-top: 0.75rem;
	padding-bottom: 2rem;
}

.rental-card-panel {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.28);
	border-radius: 20px;
	padding: 1.75rem;
	box-shadow: 0 16px 40px rgba(0,0,0,0.35);
}

.rental-card-heading {
	font-size: 1.25rem;
	color: var(--accent);
	margin-top: 0;
	margin-bottom: 1rem;
}

.rental-card-body {
	line-height: 1.75;
}

.rental-card-body p { margin-bottom: 0.75rem; }
.rental-card-body p:last-child { margin-bottom: 0; }

.rental-contact {
	max-width: 660px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 0.5rem;
	padding-bottom: 3.5rem;
	text-align: center;
}

.rental-contact-body {
	line-height: 1.8;
}

.rental-contact-body p { margin-bottom: 0.75rem; }
.rental-contact-body p:last-child { margin-bottom: 0; }

.rental-inquiry-form {
	text-align: left;
	margin-top: 1.75rem;
}

.rental-inquiry-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}

.rental-inquiry-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: 1rem;
}

.rental-inquiry-field label {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--accent);
}

.rental-inquiry-field textarea {
	resize: vertical;
	min-height: 120px;
	border-radius: 12px;
}

.rental-inquiry-actions {
	margin-top: 0.5rem;
	display: flex;
	justify-content: center;
}

.rental-contact-alt {
	margin-top: 1.75rem;
	font-size: 0.9rem;
	color: var(--muted);
}

.rental-contact-alt a {
	color: var(--ink);
	font-weight: 600;
}

@media (max-width: 560px) {
	.rental-inquiry-row {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.rental-cards { grid-template-columns: 1fr; gap: 1.25rem; }
}

/* ── About page redesign ── */
.about-subnav-bar {
	padding-top: 0.5rem;
	padding-bottom: 0;
}

.about-nav-wrap {
	display: flex;
	align-items: center;
	margin-bottom: 1.5rem;
	border-bottom: 2px solid rgba(196, 81, 106, 0.2);
}

.about-nav-wrap .about-tab-nav {
	flex: 1;
	min-width: 0;
	margin-bottom: 0;
	border-bottom: none;
}


.about-nav-arrow {
	flex-shrink: 0;
	width: 26px;
	height: 34px;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--accent);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
}

.about-nav-arrow.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.about-nav-arrow svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 700px) {
	.about-nav-arrow { display: flex; }
}

.about-cine-header {
	background:
		radial-gradient(ellipse at 60% 0%, rgba(196, 81, 106, 0.18) 0%, transparent 60%),
		linear-gradient(to bottom, #1a0b0c, #0d0708);
	border-bottom: 1px solid rgba(196, 81, 106, 0.18);
	padding: 1.5rem 0 1.25rem;
	text-align: center;
}

.about-cine-header .about-section-heading {
	margin-bottom: 0;
	color: #fff9f3;
	font-size: clamp(2rem, 4vw, 3rem);
}

.about-cine-hero {
	position: relative;
	width: 100%;
	max-height: 420px;
	overflow: hidden;
}

.about-cine-hero__img {
	display: block;
	width: 100%;
	max-height: 420px;
	object-fit: cover;
	object-position: center 60%;
}

.about-cine-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(13,7,8,0.25) 0%, transparent 30%, rgba(13,7,8,0.55) 100%);
}

.about-section-eyebrow {
	text-align: center;
	margin-bottom: 0.3rem;
}

.about-section-heading {
	text-align: center;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	color: var(--accent);
	margin-top: 0.1rem;
	margin-bottom: 1.5rem;
}

.about-story {
	max-width: 740px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
}

.about-story__body {
	font-size: 1.05rem;
	line-height: 1.85;
	color: var(--ink);
}

.about-story__body p {
	margin-bottom: 1rem;
}

.about-find-us {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 3rem;
	padding-top: 0.25rem;
	padding-bottom: 4rem;
	align-items: start;
}

.about-find-us__info {
	padding-top: 0.25rem;
}

.about-find-us__text {
	line-height: 1.7;
	margin-bottom: 1.25rem;
}

.about-find-us__address {
	font-style: normal;
	font-size: 0.95rem;
	line-height: 1.8;
	color: rgba(237, 232, 223, 0.65);
	border-left: 2px solid rgba(196, 81, 106, 0.45);
	padding-left: 0.85rem;
	margin-bottom: 1.25rem;
}

.about-find-us__map-link {
	color: var(--accent);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.about-find-us__map-link:hover {
	text-decoration: underline;
}

.about-find-us__map {
	border-radius: 18px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border: 1px solid rgba(196, 81, 106, 0.2);
	box-shadow: 0 20px 50px rgba(0,0,0,0.45);
}

.about-find-us__map iframe {
	width: 100%;
	height: 100%;
	display: block;
	border: none;
}

@media (max-width: 760px) {
	.about-find-us {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

/* legacy about-classic-photo (used on sub-pages) */
.about-classic-photo {
	display: block;
	width: 100%;
	max-height: 420px;
	object-fit: cover;
	border-radius: 16px;
	margin-bottom: 1.2rem;
}

@media (min-width: 701px) {
	.about-classic-photo {
		width: auto;
		max-width: 460px;
		max-height: none;
		object-fit: unset;
		display: block;
		margin: 0 auto 1.2rem;
	}
}

.concessions-header {
	background:
		radial-gradient(ellipse at 60% 0%, rgba(196, 81, 106, 0.18) 0%, transparent 60%),
		linear-gradient(to bottom, #1a0b0c, #0d0708);
	border-bottom: 1px solid rgba(196, 81, 106, 0.18);
	padding: 1.5rem 0 1.25rem;
	text-align: center;
}

.concessions-header__title {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0.2rem 0 0;
	color: #fff9f3;
}

.concessions-gallery-section {
	padding-bottom: 1rem;
}
.concessions-admin-edit-row {
  display: none;
  margin-bottom: 0.75rem;
  text-align: left;
}
.is-editing .concessions-admin-edit-row {
  display: block;
}
.film-title-cell {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .film-title-cell { max-width: 110px; }
}

.concessions-gallery-wrap {
	position: relative;
	margin-top: 1.5rem;
}

.concessions-gallery-scroll {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	padding-bottom: 0.5rem;
}

.concessions-gallery-scroll::-webkit-scrollbar {
	height: 4px;
}

.concessions-gallery-scroll::-webkit-scrollbar-thumb {
	background: rgba(107, 28, 46, 0.3);
	border-radius: 2px;
}

.concessions-gallery-item {
	flex: 0 0 min(360px, 80vw);
	scroll-snap-align: start;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(196, 81, 106, 0.25);
	display: flex;
	background: #160b0a;
}

.concessions-gallery-img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	align-self: flex-start;
}

.concessions-scroll-hint {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0.5rem;
	width: 100px;
	background: linear-gradient(to right, transparent, var(--bg) 80%);
	border: none;
	padding: 0 0.5rem 0 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	transition: opacity 0.25s ease;
	pointer-events: auto;
}

.concessions-scroll-hint.is-at-end {
	opacity: 0;
	pointer-events: none;
}

.concessions-scroll-hint svg {
	width: 78px;
	height: 78px;
	stroke: rgba(196, 81, 106, 1);
	filter: drop-shadow(0 0 8px rgba(196, 81, 106, 0.5));
	flex-shrink: 0;
}

.concessions-scroll-hint-left {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0.5rem;
	width: 100px;
	background: linear-gradient(to left, transparent, var(--bg) 80%);
	border: none;
	padding: 0 0 0 0.5rem;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: flex-start;
	transition: opacity 0.25s ease;
	pointer-events: none;
	opacity: 0;
}

.concessions-scroll-hint-left.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.concessions-scroll-hint-left svg {
	width: 78px;
	height: 78px;
	stroke: rgba(196, 81, 106, 1);
	filter: drop-shadow(0 0 8px rgba(196, 81, 106, 0.5));
	flex-shrink: 0;
}

@media (hover: hover) and (pointer: fine) {
	.concessions-scroll-hint-left {
		display: flex;
	}
}

.about-policy-card {
	background:
		radial-gradient(circle at top right, rgba(196, 81, 106, 0.18), transparent 40%),
		#160b0a;
	border: 1px solid rgba(196, 81, 106, 0.3);
}

.about-location-card {
	background:
		radial-gradient(circle at top left, rgba(196, 81, 106, 0.15), transparent 42%),
		#160b0a;
	border: 1px solid rgba(196, 81, 106, 0.3);
}

.about-map-wrap {
	margin-top: 0.75rem;
	border-radius: 18px;
	overflow: hidden;
	border: 1px solid rgba(196, 81, 106, 0.25);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35);
}

.about-map-wrap iframe {
	display: block;
	width: 100%;
	height: 340px;
	border: 0;
}

/* ── About tab nav ── */
.about-grid > .about-tab-nav {
	grid-column: 1 / -1;
}

.about-tab-nav {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 2px solid rgba(196, 81, 106, 0.2);
	padding-bottom: 0;
}

.about-tab-nav a,
.about-tab-nav span {
	display: inline-block;
	padding: 0.45rem 1rem;
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--ink);
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	border-radius: 4px 4px 0 0;
	transition: color 0.15s, border-color 0.15s;
}

@media (hover: hover) and (pointer: fine) {
	.about-tab-nav a:hover {
		color: var(--accent);
		border-bottom-color: rgba(196, 81, 106, 0.5);
	}
}

.about-tab-nav span.active {
	color: var(--accent);
	border-bottom-color: var(--accent);
}

.about-tab-header {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: flex-end;
	border-bottom: 2px solid rgba(196, 81, 106, 0.2);
	margin-bottom: 0.75rem;
}

.about-tab-header .about-tab-nav {
	border-bottom: none;
	margin-bottom: 0;
}

.about-tab-back {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
	padding-bottom: 0.55rem;
	white-space: nowrap;
	transition: color 0.15s;
	justify-self: start;
}

@media (hover: hover) and (pointer: fine) {
	.about-tab-back:hover {
		color: var(--accent);
	}
}

@media (max-width: 700px) {
	.about-grid {
		padding-top: 0;
		gap: 0;
	}

	.about-tab-header {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		border-bottom: none;
		margin-bottom: 0;
	}

	.about-tab-back {
		order: 1;
		padding: 0.55rem 0;
		border-bottom: 1px solid rgba(31, 26, 23, 0.09);
		text-align: left;
	}

	.about-tab-header .about-tab-nav {
		order: 2;
		flex-wrap: nowrap;
		justify-content: center;
		gap: 0;
		border-bottom: 2px solid rgba(31, 26, 23, 0.1);
		margin-bottom: 0.5rem;
	}

	.about-tab-header .about-tab-nav a,
	.about-tab-header .about-tab-nav span {
		padding: 0.45rem 0.7rem;
		font-size: 0.82rem;
	}

	.about-tab-header > span:last-child {
		display: none;
	}

	.about-grid > .about-tab-nav,
	.about-nav-wrap .about-tab-nav,
	.about-subnav-bar .about-tab-nav {
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 0;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x;
	}
	.about-grid > .about-tab-nav::-webkit-scrollbar,
	.about-nav-wrap .about-tab-nav::-webkit-scrollbar,
	.about-subnav-bar .about-tab-nav::-webkit-scrollbar {
		display: none;
	}

	.about-grid > .about-tab-nav a,
	.about-grid > .about-tab-nav span,
	.about-nav-wrap .about-tab-nav a,
	.about-nav-wrap .about-tab-nav span,
	.about-subnav-bar .about-tab-nav a,
	.about-subnav-bar .about-tab-nav span {
		padding: 0.45rem 0.7rem;
		font-size: 0.82rem;
		white-space: nowrap;
		flex-shrink: 0;
	}
}

.eyebrow,
.card-tag {
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--accent);
}

/* ── About page inline editing ── */
.about-edit-bar {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 1rem;
	padding: 0.4rem 0 0.2rem;
}

.about-edit-link {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.32);
	background: none;
	border: none;
	padding: 0;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.15s;
}

.about-edit-link:hover { color: rgba(255,255,255,0.65); }

.about-edit-link--save {
	color: var(--accent);
	font-weight: 600;
}

.about-edit-link--save:hover { color: #d46a84; }

/* Field toggle */
.about-edit-field .about-edit-textarea { display: none; }
.about-edit-field .about-edit-toolbar  { display: none; }

.about-edit-field.is-editing .about-edit-display { display: none; }

.about-edit-field.is-editing .about-edit-toolbar {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-bottom: 0.4rem;
}

.about-fmt-btn {
	background: rgba(255,255,255,0.07);
	border: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 5px;
	color: var(--ink);
	cursor: pointer;
	font: inherit;
	font-size: 0.85rem;
	padding: 0.2rem 0.6rem;
	line-height: 1.4;
	transition: background 0.15s;
}

.about-fmt-btn:hover { background: rgba(196, 81, 106, 0.18); }

.about-fmt-hint {
	font-size: 0.7rem;
	color: rgba(237, 232, 223, 0.3);
	letter-spacing: 0.02em;
	margin-left: 0.25rem;
}

.about-edit-field.is-editing .about-edit-textarea {
	display: block;
	width: 100%;
	min-height: 120px;
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 8px;
	color: var(--ink);
	font: inherit;
	font-size: 0.95rem;
	line-height: 1.6;
	padding: 0.75rem;
	resize: vertical;
	box-sizing: border-box;
	outline: none;
}

.about-edit-field.is-editing .about-edit-textarea:focus {
	border-color: rgba(196, 81, 106, 0.7);
}

/* PDF upload section on advertising page */
.advert-pdf-edit { display: none; }
.is-editing .advert-pdf-edit { display: block; margin-top: 1.25rem; }

.advert-pdf-edit-label {
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(237,232,223,0.5);
	margin-bottom: 0.5rem;
}

.advert-pdf-input {
	display: block;
	color: var(--ink);
	font: inherit;
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
}

.advert-pdf-meta {
	font-size: 0.8rem;
	color: rgba(237,232,223,0.45);
	margin: 1.5rem 0 0;
}

.page-back-nav {
	display: block;
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.38);
	text-decoration: none;
	margin-bottom: 0.4rem;
}
.page-back-nav:hover {
	color: rgba(255,255,255,0.72);
}

.section-link,
.danger-link {
	color: var(--accent-dark);
	font-weight: 600;
}

.table-actions {
	gap: 0.45rem;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.table-actions .button_to {
	margin: 0;
}

.button-compact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
	font-weight: 600;
	font-family: inherit;
	line-height: 1.1;
	background: var(--accent);
	color: #fff9f3;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background-color 140ms ease, border-color 140ms ease;
}

.button-compact:hover {
	background: var(--accent-hover);
	color: #fff9f3;
}

.button-compact-danger {
	background: var(--accent);
}

.button-compact-danger:hover {
	background: var(--accent-hover);
}

.card-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
}

.film-card-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem;
	margin: 0.9rem 0 0.75rem;
}

.film-card-actions.single-action {
	grid-template-columns: 1fr;
}

.film-card-actions .button-primary,
.film-card-actions .button-secondary {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 0.62rem 0.9rem;
	font-size: 0.86rem;
}

.stack-grid {
	grid-template-columns: 1fr;
}

.two-columns,
.split-layout,
.prose-grid,
.footer-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wide-right {
	grid-template-columns: minmax(220px, 0.6fr) minmax(0, 1.4fr);
}

.schedule-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.schedule-item,
.showing-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.showing-select-button {
	width: 100%;
	border: 0;
	padding: 1.1rem 3.2rem 1.1rem 1.6rem;
	margin: 0;
	background: transparent;
	text-align: left;
	cursor: pointer;
	position: relative;
	color: var(--ink);
}

.showing-select-button::after {
	content: "›";
	position: absolute;
	right: 1.4rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.6rem;
	line-height: 1;
	color: var(--accent);
	opacity: 0.35;
	transition: opacity 140ms ease, right 140ms ease;
	font-style: normal;
}

.showing-select-button:hover::after {
	opacity: 0.85;
	right: 1.1rem;
}

.showing-select-button:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 6px;
	border-radius: 10px;
}

.showing-card {
	padding: 0;
	overflow: hidden;
	transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease, background-color 140ms ease;
}

.showing-card.is-active {
	border-color: rgba(196, 81, 106, 0.65);
	background: #1e0f0e;
	box-shadow: 0 20px 44px rgba(0, 0, 0, 0.65);
	transform: translateY(-2px);
}

.showing-card:not(.is-active) .seat-pill.now-booking {
	display: none;
}

.showing-purchase-panel {
	margin-top: 0;
	padding: 1.15rem 1.6rem 1.5rem;
	border-top: 1px solid rgba(196, 81, 106, 0.25);
	background: #160b0a;
	display: grid;
	gap: 1rem;
}

.showing-stack {
	gap: 1.15rem;
}

.showing-stack-heading {
	display: grid;
	gap: 0.35rem;
	padding: 0.2rem 0 0.1rem;
}

.showing-stack-heading h2 {
	margin: 0;
}

.showing-intro-card {
	display: flex;
	align-items: center;
	min-height: 6.4rem;
	padding: 1.1rem 1.5rem;
	border-radius: 24px;
	background: #1e0f0e;
	border: 1px solid rgba(196, 81, 106, 0.35);
	box-shadow: var(--shadow);
	color: #e0b0b8;
}

.showing-select-hint {
	margin: 0;
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	font-weight: 700;
}

.showing-header {
	align-items: center;
	min-height: 2.8rem;
}

.showing-header h3 {
	margin: 0;
	font-size: clamp(1.15rem, 2vw, 1.55rem);
	line-height: 1.2;
	font-family: "Times New Roman", Georgia, serif;
}

.showtime-info {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.showtime-date {
	font-family: system-ui, -apple-system, sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #a89a8e;
}

.showtime-time {
	font-family: "Times New Roman", Georgia, serif;
	font-size: clamp(1.15rem, 2vw, 1.5rem);
	font-weight: 700;
	color: var(--ink);
	line-height: 1.2;
}

.showing-card.is-active .showing-header h3,
.showing-card.is-active .showtime-time {
	color: #e8a0b0;
}

.sales-closed-showing {
	background: #110908;
	border-color: rgba(196, 81, 106, 0.18);
}

.sales-closed-showing .showtime-date,
.sales-closed-showing .showtime-time {
	opacity: 0.4;
}

.inline-showtime-wrap .available-showing {
	background: #160b0a;
	border-color: rgba(196, 81, 106, 0.35);
}

.inline-showtime-wrap .available-showing:not(.is-active):hover {
	background: #1e0f0e;
	box-shadow: inset 4px 0 0 #c4516a, var(--shadow);
	border-color: rgba(196, 81, 106, 0.6);
}

.inline-showtime-wrap .available-showing.is-active {
	background: #1e0f0e;
	border-color: rgba(196, 81, 106, 0.65);
	box-shadow: 0 20px 44px rgba(0, 0, 0, 0.6);
}

.inline-showtime-wrap .sold-out-showing {
	background: linear-gradient(180deg, #7f2b22, #6a2018);
	border-color: rgba(255, 255, 255, 0.12);
}

.inline-showtime-wrap .sold-out-showing .showing-header h3,
.inline-showtime-wrap .sold-out-showing .showtime-date,
.inline-showtime-wrap .sold-out-showing .showtime-time,
.inline-showtime-wrap .sold-out-showing .seat-pill.sold-out {
	color: #fff9f3;
}

.inline-showtime-wrap .sold-out-showing .showtime-date {
	opacity: 0.65;
}

.inline-showtime-wrap .sold-out-showing .showing-select-button {
	cursor: not-allowed;
}

.inline-showtime-wrap .sold-out-showing .showing-select-button::after {
	display: none;
}

.schedule-item {
	padding: 1rem 1.25rem;
	border-radius: 22px;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.28);
}

.schedule-title,
.meta-line.strong {
	color: var(--ink);
	font-weight: 600;
}

.schedule-meta {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	color: var(--muted);
}

.detail-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.detail-list dt {
	font-size: 0.85rem;
	color: var(--muted);
}

.detail-list dd {
	margin: 0.2rem 0 0;
	font-weight: 600;
}

.compact {
	gap: 0.75rem;
}

.seat-pill {
	padding: 0.55rem 0.9rem;
	border-radius: 999px;
	background: rgba(214, 165, 82, 0.18);
	color: var(--accent-dark);
	font-weight: 600;
}

.seat-pill.now-booking,
.seat-pill.free,
.seat-pill.cheap-night,
.seat-pill.sales-closed,
.seat-pill.cancelled {
	background: none;
	border-radius: 0;
	padding: 0;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-family: system-ui, -apple-system, sans-serif;
}

.seat-pill.now-booking {
	color: var(--accent);
}

.seat-pill.free {
	color: #2a6e3f;
}

.seat-pill.cheap-night {
	color: #a16207;
}

.seat-pill.sold-out,
.seat-pill.sales-closed,
.danger-link {
	color: #8a1d13;
}

.seat-pill.sales-closed {
	color: #8a1d13;
}

.seat-pill.cancelled {
	color: #8a1d13;
}

/* Brighter pill colours inside dark showing cards */
.showing-card .seat-pill.now-booking { color: #e080a8; }
.showing-card .seat-pill.free        { color: #4ecb78; }
.showing-card .seat-pill.cheap-night { color: #e8a830; }
.showing-card .seat-pill.cancelled,
.showing-card .seat-pill.sales-closed,
.showing-card .seat-pill.sold-out    { color: #f07878; }

/* Brighter pill colours in dark admin shell (account management table) */
.admin-shell .seat-pill.now-booking  { color: #e080a8; }
.admin-shell .seat-pill.cheap-night  { color: #e8a830; }
.admin-shell .seat-pill.sales-closed { color: #e87878; }
.admin-shell .seat-pill.free         { color: #4ecb78; }

.seat-pill.external {
	color: #8a1d13;
	background: rgba(138, 29, 19, 0.1);
}

/* Admin showing cancel button + badge */
.showing-cancel-row {
	display: flex;
	justify-content: flex-end;
	padding: 0.5rem 0 0.25rem;
}

.showing-cancel-btn {
	background: none;
	border: 1px solid rgba(196, 81, 106, 0.5);
	border-radius: 6px;
	color: var(--accent);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.3rem 0.75rem;
	cursor: pointer;
	transition: background 0.12s, border-color 0.12s;
	font-family: inherit;
}

.showing-cancel-btn:hover {
	background: rgba(196, 81, 106, 0.12);
	border-color: rgba(196, 81, 106, 0.8);
}

.showing-cancelled-badge {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #8a1d13;
}

.external-toggle-line {
	margin-bottom: 0.85rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--border, #e0e0e0);
}

.external-showing .showing-header {
	padding: 0.9rem 1rem;
}

.external-disclaimer {
	padding: 0.85rem 1rem 1rem;
	border: 1px solid rgba(196, 81, 106, 0.35);
	background: rgba(196, 81, 106, 0.08);
	border-radius: 0.5rem;
}

.external-disclaimer p {
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
	font-weight: bold;
	color: var(--accent-dark, #e08090);
	line-height: 1.5;
}

.external-disclaimer p:last-child {
	margin-bottom: 0;
}

.ticket-form,
.stacked-form {
	display: grid;
	gap: 1rem;
	min-width: 0; /* prevent seat map min-width from blowing out parent grid */
}

/* Spacing between name/email block and ticket quantity fields */
.ticket-quantities {
	margin-top: 0.75rem;
}

/* Section divider for "Choose Ticket Type(s)" heading */
.ticket-type-heading {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-weight: 700;
	font-size: 1.05rem;
	margin: 1rem 0 0;
	white-space: nowrap;
}

.ticket-quantities label {
	font-size: 0.82rem;
}

.ticket-label-name {
	display: block;
	font-weight: 700;
}

.ticket-label-price {
	display: block;
	font-size: 0.75rem;
	color: var(--accent-dark);
	font-weight: 600;
	opacity: 0.85;
	margin-top: 0.1rem;
}

.event-ticket-qty-wrap {
	text-align: center;
}

.event-ticket-price-label {
	font-weight: 700;
	font-size: 1rem;
	margin-bottom: 0.6rem;
	color: var(--ink);
}

.event-price-display {
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	margin: 0.25rem 0 0;
}

.event-ticket-qty-label {
	font-weight: 700;
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
	color: var(--ink);
}

.ticket-hst-note {
	font-size: 0.8em;
	font-weight: 500;
	opacity: 0.7;
}
.ticket-type-heading::before,
.ticket-type-heading::after {
	content: '';
	flex: 1;
	border-top: 1.5px solid rgba(31, 26, 23, 0.35);
}

/* Step 1: stack fields; min-width:0 stops seat map from blowing out parent grid */
[data-payment-confirmation-target="step1"] {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.two-up {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.three-up {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quantity-input-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.45rem;
	align-items: stretch;
}

.quantity-input-col {
	display: flex;
	flex-direction: column;
}

.quantity-input {
	text-align: center;
}

.qty-counter {
	display: inline-flex;
	align-items: stretch;
	border: 1.5px solid rgba(196, 81, 106, 0.5);
	border-radius: 999px;
	overflow: hidden;
	background: #160b0a;
}

.qty-btn {
	width: 2.5rem;
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 1;
	color: var(--accent-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.qty-btn:hover {
	background: rgba(214, 165, 82, 0.18);
}

.qty-counter .quantity-input {
	width: 2.75rem;
	text-align: center;
	border: 0;
	border-left: 1px solid var(--line);
	border-right: 1px solid var(--line);
	border-radius: 0;
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	padding: 0.45rem 0;
	background: #160b0a;
	-moz-appearance: textfield;
	appearance: textfield;
}

.qty-counter .quantity-input::-webkit-outer-spin-button,
.qty-counter .quantity-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

.ticket-quantities > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35rem;
}

.four-up {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.checkbox-line {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.checkbox-line input {
	width: auto;
}

.pricing-mode-row {
	display: grid;
	gap: 0.4rem;
	padding: 0.85rem 1rem;
	border-radius: 16px;
	background: #1e0f0e;
	border: 1px solid rgba(196, 81, 106, 0.3);
}

.pricing-mode-toggle {
	font-weight: 600;
}

.pricing-mode-row input[disabled] {
	opacity: 1;
	accent-color: var(--accent);
}

.pricing-mode-note {
	margin: 0;
	font-size: 0.95rem;
}

.pricing-fields {
	padding-top: 0.35rem;
}

.danger-line {
	color: #8a1d13;
}

.full-width {
	width: 100%;
	text-align: center;
}

.google-g {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	vertical-align: middle;
	margin-right: 6px;
}

.flash-wrap {
	padding-top: 1rem;
}

.flash-message,
.form-errors {
	border-radius: 18px;
	padding: 1rem 1.1rem;
}

.flash-message {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.4);
	color: var(--ink);
}

.flash-message.alert,
.form-errors {
	background: rgba(157, 61, 47, 0.1);
	border: 1px solid rgba(157, 61, 47, 0.24);
}

.auth-shell {
	display: grid;
	place-items: center;
	min-height: 70vh;
}

.auth-card {
	width: min(480px, 100%);
}

.stats-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 2rem 0;
}

.admin-table-wrap {
	margin-top: 1.25rem;
	overflow-x: auto;
	background: #160b0a;
	border-radius: 24px;
	border: 1px solid rgba(196, 81, 106, 0.3);
	box-shadow: var(--shadow);
}

/* Accounts page: scrollable fixed-height table */
.accounts-table-wrap {
	max-height: calc(100vh - 20rem);
	overflow-y: auto;
	margin-top: 0;
}

.accounts-table-wrap .admin-table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: #160b0a;
}

@media (max-width: 700px) {
	.accounts-table-wrap {
		max-height: none;
		overflow-y: visible;
	}

	.accounts-table-wrap .admin-table thead th {
		position: static;
	}
}

/* Transactions page: scrollable fixed-height table (desktop only) */
.tx-table-wrap {
	max-height: calc(100vh - 22rem);
	overflow-y: auto;
}

.tx-table-wrap .admin-table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: #160b0a;
}

/* Pagination nav */
.accounts-pagination {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	flex-wrap: wrap;
}

.pg-btn {
	display: inline-block;
	padding: 0.3rem 0.65rem;
	border-radius: 8px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
	background: rgba(196, 81, 106, 0.08);
	border: 1px solid rgba(196, 81, 106, 0.25);
	transition: background 0.15s, border-color 0.15s;
	line-height: 1.4;
}

.pg-btn:hover {
	background: rgba(196, 81, 106, 0.18);
	border-color: rgba(196, 81, 106, 0.5);
}

.pg-btn.pg-current {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

.pg-btn.pg-disabled {
	opacity: 0.35;
	pointer-events: none;
	cursor: default;
}

.pg-ellipsis {
	font-size: 0.82rem;
	color: var(--muted);
	padding: 0 0.2rem;
}

.admin-table-wrap.is-resizing {
	cursor: col-resize;
	user-select: none;
}

/* Column resize handle */
.col-resize-handle {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 6px;
	cursor: col-resize;
	z-index: 1;
}

.col-resize-handle:hover,
.admin-table-wrap.is-resizing .col-resize-handle {
	background: rgba(255, 255, 255, 0.35);
}

/* Toolbar above table */
.table-resize-toolbar {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem 0.4rem;
	position: relative;
	border-bottom: 1px solid rgba(31, 26, 23, 0.08);
	margin-bottom: 0.5rem;
}

.table-col-toggle-btn {
	font-size: 0.8rem;
}

.table-col-reset-btn {
	font-size: 0.8rem;
	opacity: 0.7;
}

.table-col-reset-btn:hover {
	opacity: 1;
}

/* Column visibility dropdown menu */
.table-col-btn-wrap {
	position: relative;
}

.table-col-menu {
	display: none;
	position: absolute;
	top: calc(100% + 2px);
	right: 0;
	background: var(--surface, #fff);
	border: 1px solid rgba(31, 26, 23, 0.12);
	border-radius: 0.6rem;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
	padding: 0.4rem 0;
	min-width: 200px;
	z-index: 200;
}

.table-col-menu.is-open {
	display: block;
}

.table-col-item {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.3rem 0.85rem;
	cursor: pointer;
	font-size: 0.875rem;
	white-space: nowrap;
}

.table-col-item:hover {
	background: rgba(31, 26, 23, 0.05);
}

.table-col-item input[type="checkbox"] {
	width: 14px;
	height: 14px;
	margin: 0;
	flex-shrink: 0;
	accent-color: #6c2a20;
	cursor: pointer;
}

.admin-table {
	width: 100%;
	border-collapse: collapse;
}

.admin-table th,
.admin-table td {
	padding: 0.55rem 0.9rem;
	border-bottom: 1px solid rgba(196, 81, 106, 0.12);
	text-align: left;
	vertical-align: middle;
}

.admin-table thead th {
	background: rgba(255, 249, 243, 0.05);
	color: var(--muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-bottom: 1px solid rgba(196, 81, 106, 0.25);
}

.admin-table tbody td {
	font-size: 0.98rem;
}

.admin-table th.col-checkbox,
.admin-table td.col-checkbox {
	width: 2.5rem;
	padding: 0.6rem 0.5rem;
	text-align: center;
	vertical-align: middle;
}

.admin-table th.col-checkbox input[type="checkbox"],
.admin-table td.col-checkbox input[type="checkbox"] {
	width: 15px;
	height: 15px;
	margin: 0;
	flex-shrink: 0;
	cursor: pointer;
	accent-color: var(--accent);
}

.admin-table th.col-detail,
.admin-table td.col-detail {
	width: 2.2rem;
	padding: 0.4rem 0.3rem;
	text-align: center;
	vertical-align: middle;
}

.detail-icon-btn {
	background: none;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 6px;
	color: var(--muted);
	cursor: pointer;
	padding: 0.25rem 0.3rem;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.detail-icon-btn:hover {
	color: var(--accent);
	border-color: var(--accent);
	background: rgba(196, 81, 106, 0.08);
}

/* ── Row detail popup ── */
.row-detail-dialog .seat-refund-dialog-inner {
	text-align: left;
	overflow-x: auto;
}
.row-detail-dialog .seat-refund-title,
.row-detail-dialog .seat-refund-subtitle {
	text-align: center;
}

.row-detail-dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.5rem 1rem;
	font-size: 0.88rem;
	margin: 0.75rem 0 1rem;
	min-width: 0;
}
.row-detail-dl dt {
	font-weight: 600;
	color: var(--muted);
	white-space: nowrap;
	padding-top: 0.1rem;
}
.row-detail-dl dd {
	margin: 0;
	line-height: 1.45;
	min-width: 0;
	overflow-wrap: break-word;
	word-break: break-all;
}
.row-detail-title {
	white-space: normal;
	overflow-wrap: break-word;
	word-break: break-word;
}
.row-detail-actions {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding-top: 1rem;
	border-top: 1px solid rgba(196, 81, 106, 0.2);
	margin-top: 0.5rem;
}
.rda-quick-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 7px;
}
.rda-tile-form { display: contents; }
.rda-tile {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 9px 12px;
	border-radius: 8px;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
	text-decoration: none;
	width: 100%;
	text-align: left;
	transition: filter 0.12s;
}
.rda-tile:hover:not(:disabled) { filter: brightness(1.2); }
.rda-tile:disabled { opacity: 0.4; cursor: default; }
.rda-tile-icon { width: 15px; height: 15px; flex-shrink: 0; }
.rda-tile-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.rda-tile-label { font-weight: 600; }
.rda-tile-desc { font-size: 0.72rem; font-weight: 400; opacity: 0.75; }
.rda-tile--neutral { background: rgba(237,232,223,0.07); color: var(--ink); border-color: rgba(237,232,223,0.14); }
.rda-tile--blue    { background: rgba(56,139,253,0.12);  color: var(--tx-blue);  border-color: rgba(56,139,253,0.28); }
.rda-tile--amber   { background: rgba(210,153,34,0.12);  color: var(--tx-amber); border-color: rgba(210,153,34,0.3); }
.rda-tile--red     { background: rgba(215,58,74,0.12);   color: var(--tx-red);   border-color: rgba(215,58,74,0.3); }
.row-detail-reason {
	font-size: 0.85rem;
	color: var(--muted);
	margin: 0.5rem 0 0;
	padding-top: 0.5rem;
	border-top: 1px solid rgba(196, 81, 106, 0.15);
}

.admin-table th.col-confirmation,
.admin-table td.col-confirmation {
	overflow-wrap: break-word;
	white-space: normal;
	font-size: 0.88rem;
	min-width: 9rem;
}

@media (max-width: 768px) {
	.admin-table th.col-confirmation,
	.admin-table td.col-confirmation {
		max-width: 8rem;
	}
}

.admin-table tbody tr.selected td {
	background: rgba(108, 42, 32, 0.07);
}

/* =========================================================================
   Smart-row table redesign (design handoff: SmartRowTable / MobileCardList)
   ========================================================================= */

/* New design tokens — warm dark theater palette */
:root {
	--tx-fg:           #ede8df;
	--tx-fg-mute:      #a89a8e;
	--tx-fg-faint:     #675f56;
	--tx-bg-row-hover: #1d1312;
	--tx-bg-row-sel:   #2d1b1b;
	--tx-border-soft:  rgba(255, 255, 255, 0.07);
	--tx-accent-soft:  rgba(196, 81, 106, 0.22);
	--tx-accent-fg:    #f5efe7;
	--tx-green:        #5fcc7c;
	--tx-blue:         #7ab3e6;
	--tx-amber:        #dab867;
	--tx-red:          #e36e6a;
	--tx-pink:         #e07fa0;
	--tx-purple:       #a07fd4;
	--tx-teal:         #3ec9c1;
}

/* ── Sort sub-label header ── */
.th-check { width: 36px; padding-right: 0; }
.th-view  { width: 44px; padding-left: 6px; padding-right: 4px; }

.th-stack {
	vertical-align: top;
	padding-top: 10px;
	padding-bottom: 10px;
}
.th-title {
	font-family: var(--font-serif, "Cormorant Garamond", Georgia, serif);
	font-weight: 600;
	font-size: 0.75rem;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--tx-fg-mute);
	margin-bottom: 5px;
}
.th-sublabels {
	display: flex;
	align-items: center;
	gap: 3px;
	flex-wrap: wrap;
}
.th-sep {
	color: var(--tx-fg-faint);
	font-size: 0.7rem;
}
.sort-label {
	background: transparent;
	border: 0;
	padding: 2px 4px;
	margin: 0;
	font-family: inherit;
	font-size: 0.69rem;
	color: var(--tx-fg-faint);
	cursor: pointer;
	border-radius: 2px;
	display: inline-flex;
	align-items: center;
	gap: 2px;
	transition: color 120ms ease, background 120ms ease;
	white-space: nowrap;
}
.sort-label.sort-primary { color: var(--tx-fg-mute); font-weight: 500; }
.sort-label:hover { color: var(--tx-fg); background: rgba(255,255,255,0.05); }
.sort-label.sort-active {
	color: var(--tx-accent-fg);
	background: var(--tx-accent-soft);
	border-radius: 3px;
}
.sort-arrow {
	font-size: 0.65rem;
	opacity: 0.6;
}
.sort-label.sort-active .sort-arrow { opacity: 1; }

/* ── Status token (dot + label, replaces pills in smart rows) ── */
.status-token {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.8rem;
	letter-spacing: 0.01em;
	white-space: nowrap;
}
.status-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	display: inline-block;
	flex-shrink: 0;
}
.status-token[data-color="green"]  { color: var(--tx-green); }
.status-token[data-color="blue"]   { color: var(--tx-blue); }
.status-token[data-color="amber"]  { color: var(--tx-amber); }
.status-token[data-color="red"]    { color: var(--tx-red); }
.status-token[data-color="pink"]   { color: var(--tx-pink); }
.status-token[data-color="purple"] { color: var(--tx-purple); }
.status-token[data-color="teal"]   { color: var(--tx-teal); }

/* ── Smart row table cells ── */
.tx-table-smart tbody td { padding: 13px 10px; }
.tx-table-smart tbody tr {
	transition: background 120ms ease;
}
.tx-table-smart tbody tr:hover { background: var(--tx-bg-row-hover); }

.tx-line-1, .tx-line-2 { display: flex; align-items: baseline; flex-wrap: nowrap; min-width: 0; gap: 6px; }
.tx-line-2 { margin-top: 4px; font-size: 0.75rem; color: var(--tx-fg-mute); }

/* td-show — Showing & Customer */
.td-show { min-width: 180px; }
.tx-film-title {
	font-family: var(--font-serif, "Cormorant Garamond", Georgia, serif);
	font-size: 1.06rem;
	font-weight: 500;
	color: var(--tx-fg);
	letter-spacing: 0.005em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 260px;
	display: inline-block;
}
.tx-film-link { color: inherit; text-decoration: none; }
.tx-film-link:hover { text-decoration: underline; color: var(--accent); }
.tx-showtime { font-size: 0.75rem; color: var(--tx-fg-mute); white-space: nowrap; }
.tx-cust { font-size: 0.75rem; color: var(--tx-fg); font-weight: 500; white-space: nowrap; }
.tx-email { font-size: 0.72rem; color: var(--tx-fg-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160px; }
.tx-sep { color: var(--tx-fg-faint); font-size: 0.75rem; }

/* td-order — Amount & Qty */
.td-order { min-width: 90px; white-space: nowrap; }
.tx-amount-lg {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--tx-fg);
}

/* td-status — Status & Validation */
.td-status { min-width: 110px; }
.td-status .tx-line-1 { display: flex; align-items: center; gap: 4px; }
.td-status .tx-line-2 { display: flex; align-items: center; gap: 4px; margin-top: 6px; }
.tx-cell-label { font-size: 0.68rem; color: var(--tx-fg-faint); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; flex-shrink: 0; }

/* td-ref — Confirmation & Sold date & Stripe ID */
.td-ref { min-width: 120px; }
.td-ref-line1 { font-size: 0.82rem; color: var(--tx-fg); }
.td-ref-line2 { font-size: 0.72rem; color: var(--tx-fg-faint); margin-top: 3px; }
.td-ref-line3 { font-size: 0.72rem; color: var(--tx-blue); display: block; margin-top: 2px; }
.tx-link { color: var(--tx-blue); text-decoration: none; }
.tx-link:hover { text-decoration: underline; }

/* ── Mobile sort toolbar (hidden on desktop) ── */
.tx-mobile-toolbar {
	display: none;
	align-items: center;
	gap: 10px;
	padding: 0.6rem 0 0.8rem;
}
.sort-row-label {
	font-style: italic;
	font-size: 0.82rem;
	color: var(--tx-fg-mute);
	white-space: nowrap;
}
.mobile-sort-wrap { position: relative; flex: 1; }
.mobile-sort {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	background: #1e1614;
	border: 1px solid rgba(255,255,255,0.12);
	color: var(--tx-fg);
	font-size: 0.82rem;
	padding: 6px 28px 6px 10px;
	border-radius: 3px;
	cursor: pointer;
}
.mobile-sort:focus { outline: none; border-color: var(--accent); }
.mobile-sort-chev {
	position: absolute;
	top: 50%;
	right: 9px;
	transform: translateY(-50%);
	color: var(--tx-fg-mute);
	pointer-events: none;
	font-size: 0.75rem;
}

/* ── Mobile card list (hidden on desktop) ── */
.tx-mobile-list {
	display: none;
	flex-direction: column;
	gap: 10px;
	padding-top: 4px;
}
.tx-card {
	background: #1c1412;
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: 4px;
	padding: 12px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tx-card-head {
	display: grid;
	grid-template-columns: 20px 1fr auto;
	gap: 10px;
	align-items: flex-start;
}
.tx-card-eye-spacer { width: 20px; height: 1px; }
.tx-card-title-block { min-width: 0; }
.tx-card-film {
	font-family: var(--font-serif, "Cormorant Garamond", Georgia, serif);
	font-size: 1rem;
	font-weight: 500;
	color: var(--tx-fg);
	line-height: 1.25;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
}
.tx-card-show { font-size: 0.72rem; color: var(--tx-fg-mute); margin-top: 3px; }
.tx-card-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.tx-card-amount { font-size: 1.06rem; font-weight: 600; color: var(--tx-fg); }
.tx-card-actions .icon-btn {
	width: 30px;
	height: 30px;
	border: 1px solid rgba(255,255,255,0.15);
	color: var(--tx-fg);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border-radius: 3px;
	cursor: pointer;
	transition: border-color 120ms, color 120ms, background 120ms;
}
.tx-card-actions .icon-btn:hover {
	background: rgba(196, 81, 106, 0.1);
	border-color: var(--accent);
	color: var(--accent);
}
.tx-card-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.tx-card-cell .label {
	font-family: var(--font-serif, "Cormorant Garamond", Georgia, serif);
	font-size: 0.66rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tx-fg-faint);
	margin-bottom: 3px;
}
.tx-card-cell .value { font-size: 0.82rem; color: var(--tx-fg); line-height: 1.3; }
.tx-card-cell .sub { font-size: 0.72rem; color: var(--tx-fg-mute); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tx-card-statuses {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	padding-top: 8px;
	border-top: 1px dashed rgba(255,255,255,0.07);
	font-size: 0.8rem;
}
.tx-card-sep { color: var(--tx-fg-faint); font-size: 0.75rem; }
.tx-card-status-group { display: inline-flex; align-items: center; gap: 4px; }
.tx-card-status-label { font-size: 0.68rem; color: var(--tx-fg-faint); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.tx-card-foot {
	display: flex;
	justify-content: space-between;
	font-size: 0.72rem;
	color: var(--tx-fg-mute);
}
.tx-card-confirmation { color: var(--tx-fg); }

/* ── Responsive: swap to cards below 768px ── */
@media (max-width: 768px) {
	/* Keep admin-table-wrap rendered (not display:none) so dialogs inside
	   it can still be opened via showModal() from the mobile card eye buttons */
	.tx-sort-scope .admin-table-wrap {
		position: absolute;
		left: -9999px;
		top: 0;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.tx-mobile-toolbar { display: flex; }
	.tx-mobile-list { display: flex; }
}

.admin-form,
.nested-section {
	display: grid;
	gap: 1.4rem;
}

.stacked-form label,
.admin-form label,
.nested-section > label,
.nested-section label:not(.checkbox-line):not(.radio-option):not(.kind-radio-option) {
	color: var(--accent);
}

/* Kind radio selector — side-by-side bold options */
.kind-selector-row {
	display: flex;
	gap: 0;
	align-items: center;
	padding: 0.3rem;
	margin: 0.75rem 0 0.5rem;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.25);
	border-radius: 999px;
	width: fit-content;
}

.kind-radio-option {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1.5rem;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	color: rgba(237, 232, 223, 0.45);
	transition: color 0.18s, background 0.18s;
	user-select: none;
}

.kind-radio-option:has(input[type="radio"]:checked) {
	background: var(--accent);
	color: #fff9f3;
}

.kind-radio-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

/* Event showing card — static options, no dropdown */
.event-options-static {
	margin-top: 0.85rem;
	display: grid;
	gap: 0.85rem;
}

/* Narrow price input for single event ticket price */
.event-price-input {
	max-width: 130px;
}



.tmdb-panel {
	display: grid;
	gap: 0.5rem;
	padding: 1.2rem;
	border-radius: 22px;
	border: 1px solid rgba(196, 81, 106, 0.3);
	background: #1e0f0e;
}

.tmdb-search-wrap {
	display: grid;
	gap: 0.6rem;
}

.tmdb-search-input-row {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.tmdb-search-input-row input {
	flex: 1;
}

/* Modal */
.tmdb-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(20, 14, 12, 0.55);
	z-index: 600;
	display: grid;
	place-items: center;
	padding: 1rem;
}

.tmdb-modal-backdrop.is-hidden {
	display: none;
}

.tmdb-modal {
	background: #160b0a;
	border-radius: 20px;
	max-width: 580px;
	width: 100%;
	max-height: 80vh;
	overflow-y: auto;
	padding: 1.25rem;
	display: grid;
	gap: 1rem;
}

.tmdb-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.tmdb-modal-title {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
}

.tmdb-modal-close {
	all: unset;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	color: var(--muted);
	flex-shrink: 0;
}

.tmdb-modal-close:hover {
	background: rgba(31, 26, 23, 0.08);
	color: var(--ink);
}

.tmdb-modal-results {
	display: grid;
	gap: 0.5rem;
}

.tmdb-no-results {
	color: var(--muted);
	font-size: 0.9rem;
	padding: 0.5rem 0;
}

.tmdb-result {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.55rem 0.65rem;
	border-radius: 14px;
	border: 1px solid rgba(196, 81, 106, 0.25);
	background: #1e0f0e;
	cursor: pointer;
	text-align: left;
	font: inherit;
	width: 100%;
}

.tmdb-result:hover {
	background: rgba(214, 165, 82, 0.1);
}

.tmdb-result-poster,
.tmdb-result-placeholder {
	width: 42px;
	height: 62px;
	border-radius: 8px;
	object-fit: cover;
	background: rgba(31, 26, 23, 0.08);
	flex-shrink: 0;
}

.tmdb-result-info {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.tmdb-result-title {
	font-weight: 600;
	font-size: 0.95rem;
}

.tmdb-result-year {
	font-size: 0.8rem;
	color: var(--muted);
}

/* Unfilled field highlight (after TMDB autofill) */
.tmdb-unfilled > label::after {
	content: " — needs input";
	color: var(--gold);
	font-size: 0.75rem;
	font-weight: 500;
}

.tmdb-unfilled input,
.tmdb-unfilled textarea,
.tmdb-unfilled select {
	border-color: var(--gold) !important;
	box-shadow: 0 0 0 3px rgba(214, 165, 82, 0.18) !important;
}

.tmdb-no-poster-notice {
	margin-top: 0.4rem;
	padding: 0.55rem 0.75rem;
	border-radius: 10px;
	background: rgba(214, 165, 82, 0.12);
	border: 1px solid rgba(214, 165, 82, 0.35);
	color: var(--ink);
	font-size: 0.82rem;
	line-height: 1.45;
}

.tmdb-rating-source {
	display: inline-block;
	margin-left: 0.45rem;
	padding: 0.1rem 0.45rem;
	border-radius: 6px;
	background: rgba(214, 165, 82, 0.15);
	border: 1px solid rgba(214, 165, 82, 0.4);
	color: var(--gold);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	vertical-align: middle;
}

.scanner-shell {
	display: block;
}

.scanner-panel,
.scanner-history,
.scanner-verify {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 20px;
	padding: 1rem;
}

.scanner-panel {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.scanner-history-section {
	margin-top: 0.5rem;
}

.scanner-history-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.scanner-history-header h2 {
	margin: 0;
}

.scanner-refresh-btn {
	font-size: 0.8rem;
}

.scan-history-scroll {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	padding-bottom: 0.5rem;
}

.scan-history-scroll::-webkit-scrollbar {
	height: 4px;
}

.scan-history-scroll::-webkit-scrollbar-thumb {
	background: rgba(155, 35, 53, 0.3);
	border-radius: 2px;
}

.scan-card {
	flex: 0 0 260px;
	background: rgba(255, 249, 243, 0.06);
	border: 1px solid rgba(255, 249, 243, 0.12);
	border-radius: 16px;
	padding: 1rem;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	color: var(--ink);
}

.scan-card-time {
	font-size: 0.78rem;
	color: var(--muted);
	margin: 0;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.scan-card-film {
	font-weight: 700;
	font-size: 0.95rem;
	margin: 0;
	line-height: 1.3;
	color: var(--accent);
}

.scan-card-details {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	flex: 1;
}

.scan-card-details > div {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.scan-card-details dt {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--muted);
}

.scan-card-details dd {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.35;
	color: var(--ink);
}

.scan-card-email {
	font-size: 0.78rem;
	color: var(--muted);
}

.scan-card-complete {
	color: #4ecb78;
	font-weight: 600;
}

.scan-card-partial {
	color: #f0c060;
	font-weight: 600;
}

.scan-card-pdf {
	align-self: flex-start;
	margin-top: auto;
	font-size: 0.8rem;
}

.scan-history-empty {
	text-align: center;
	padding: 1.5rem 0;
}

.scanner-video-wrap {
	margin: 0.3rem auto 0.9rem;
	border-radius: 14px;
	overflow: hidden;
	background: #120f0e;
	aspect-ratio: 4 / 3;
	max-width: 640px;
}

.scanner-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.scanner-status {
	margin-bottom: 0.8rem;
}

.scanner-customer-search {
	margin-top: 1.25rem;
	padding-top: 1.1rem;
	border-top: 1px solid rgba(196, 81, 106, 0.2);
	display: grid;
	gap: 0.55rem;
	text-align: left;
}

.scanner-search-row {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.scanner-search-row .scanner-input {
	flex: 1;
	min-width: 0;
}

.scanner-manual-entry {
	margin-top: 1.25rem;
	padding-top: 1.1rem;
	border-top: 1px solid rgba(196, 81, 106, 0.2);
	display: grid;
	gap: 0.55rem;
	text-align: left;
}

.scanner-manual-header {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}

.scanner-manual-label {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--muted);
}

.scanner-help-tip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 50%;
	background: rgba(31, 26, 23, 0.18);
	color: rgba(31, 26, 23, 0.7);
	font-size: 0.62rem;
	font-weight: 700;
	cursor: default;
	position: relative;
	user-select: none;
	line-height: 1;
	flex-shrink: 0;
}

.scanner-help-tip-text {
	display: none;
	position: absolute;
	bottom: calc(100% + 7px);
	left: 50%;
	transform: translateX(-50%);
	background: #2a2421;
	color: #fff;
	padding: 0.45rem 0.65rem;
	border-radius: 8px;
	font-size: 0.75rem;
	width: 220px;
	white-space: normal;
	z-index: 200;
	line-height: 1.45;
	font-weight: 400;
	letter-spacing: 0;
	text-align: center;
	pointer-events: none;
}

.scanner-help-tip:hover .scanner-help-tip-text,
.scanner-help-tip:focus .scanner-help-tip-text {
	display: block;
}

.scanner-manual-submit {
	justify-self: start;
}

.scanner-controls {
	margin-bottom: 0.65rem;
	justify-content: center;
	align-items: center;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0.5rem;
}

.scanner-controls .button-primary,
.scanner-controls .button-secondary {
	flex: 0 1 auto;
	min-width: 132px;
}

.scanner-controls button[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}

.scanner-input {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 2px solid rgba(196, 81, 106, 0.6);
	border-radius: 12px;
	font: inherit;
	background: #160b0a;
	color: var(--ink);
}

.scanner-table {
	min-width: 980px;
	width: max-content;
}

.scanner-table th,
.scanner-table td {
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.scanner-history-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.scan-result-card {
	margin-top: 0.95rem;
	border-radius: 12px;
	padding: 0.8rem;
	border: 1px solid rgba(255, 249, 243, 0.12);
	background: rgba(255, 249, 243, 0.05);
	min-height: 54px;
	color: var(--ink);
}

.scan-result-card:empty {
	display: none;
}

.scan-result-card p {
	margin: 0.2rem 0;
}

.scan-result-card.is-success,
.scanner-verify.is-valid {
	border-color: rgba(60, 180, 110, 0.45);
	background: rgba(30, 90, 55, 0.3);
	color: #7de8a8;
}

.scan-result-card.is-warning {
	border-color: rgba(210, 155, 30, 0.45);
	background: rgba(100, 70, 10, 0.3);
	color: #f0c060;
}

.scan-result-card.is-error,
.scanner-verify.is-invalid {
	border-color: rgba(200, 70, 60, 0.45);
	background: rgba(90, 20, 15, 0.35);
	color: #f09090;
}

.tmdb-result-title {
	font-weight: 600;
	color: var(--ink);
}

.poster-preview-wrap {
	margin-top: 0.6rem;
}

.poster-preview {
	width: 110px;
	height: 160px;
	border-radius: 12px;
	object-fit: cover;
	border: 1px solid rgba(31, 26, 23, 0.12);
	background: rgba(31, 26, 23, 0.06);
}

.is-hidden {
	display: none;
	border-radius: 12px;
	font: inherit;
	min-width: 0;
}

.admin-showing-card .showing-date-time-row input[type="date"],
.event-date-time-row input[type="date"] {
	width: 11.5rem;
	max-width: 100%;
}

.admin-showing-card .showing-date-time-row input[type="date"],
.admin-showing-card .showing-time-selects select,
.event-date-time-row input[type="date"],
.event-time-selects select {
	height: 3.05rem;
	padding-top: 0.45rem;
	padding-bottom: 0.45rem;
}

/* ── Flatpickr dark theme ── */
.flatpickr-calendar {
	border-radius: 16px !important;
	border: 1px solid rgba(196, 81, 106, 0.4) !important;
	box-shadow: var(--shadow) !important;
	font-size: 1.05rem !important;
	background: #160b0a !important;
	color: #ede8df !important;
}

.flatpickr-calendar.arrowTop::before {
	border-bottom-color: rgba(196, 81, 106, 0.4) !important;
}
.flatpickr-calendar.arrowTop::after {
	border-bottom-color: #160b0a !important;
}
.flatpickr-calendar.arrowBottom::before {
	border-top-color: rgba(196, 81, 106, 0.4) !important;
}
.flatpickr-calendar.arrowBottom::after {
	border-top-color: #160b0a !important;
}

.flatpickr-months {
	background: #1e1010 !important;
	border-radius: 16px 16px 0 0;
	padding: 0.25rem 0;
}

.flatpickr-months .flatpickr-month {
	background: #1e1010 !important;
	color: #ede8df !important;
	fill: #ede8df !important;
}

.flatpickr-current-month {
	font-size: 1.02rem;
	color: #ede8df !important;
	fill: #ede8df !important;
}

.flatpickr-current-month input.cur-year {
	background: transparent !important;
	color: #ede8df !important;
	font-weight: 700;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
	background: #1e1010 !important;
	color: #ede8df !important;
	font-weight: 700;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month input.cur-year:hover {
	background: rgba(196, 81, 106, 0.2) !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
	color: #c4516a !important;
	fill: #c4516a !important;
	padding: 8px 12px;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
	fill: #c4516a !important;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
	fill: #d4617a !important;
}

.flatpickr-weekdays {
	background: #1e1010 !important;
}

span.flatpickr-weekday {
	background: #1e1010 !important;
	color: #c4516a !important;
	font-weight: 700;
}

.flatpickr-days {
	border-left: none !important;
	border-right: none !important;
	background: #160b0a !important;
}

.dayContainer {
	border-left: none !important;
	background: #160b0a !important;
}

.flatpickr-day {
	border-radius: 10px;
	max-width: 42px;
	height: 38px;
	line-height: 38px;
	color: #ede8df !important;
	border-color: transparent !important;
	background: transparent !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
	color: rgba(237, 232, 223, 0.25) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
	background: #c4516a !important;
	border-color: #c4516a !important;
	color: #fff !important;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
	background: rgba(196, 81, 106, 0.25) !important;
	border-color: rgba(196, 81, 106, 0.4) !important;
	color: #ede8df !important;
}

.flatpickr-day.today {
	border-color: #c4516a !important;
	color: #c4516a !important;
	background: transparent !important;
}

.flatpickr-day.today:hover {
	background: rgba(196, 81, 106, 0.25) !important;
	color: #ede8df !important;
}

.flatpickr-time {
	background: #160b0a !important;
	border-top: 1px solid rgba(196, 81, 106, 0.25) !important;
}

.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
	background: transparent !important;
	color: #ede8df !important;
	border-radius: 8px;
}

.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
	background: rgba(196, 81, 106, 0.15) !important;
}

.flatpickr-time .numInputWrapper span.arrowUp::after {
	border-bottom-color: #c4516a !important;
}
.flatpickr-time .numInputWrapper span.arrowDown::after {
	border-top-color: #c4516a !important;
}

.admin-showing-card .showing-time-selects,
.event-time-selects {
	grid-template-columns: repeat(3, max-content);
	gap: 0.6rem;
}

.admin-showing-card .showing-time-selects select,
.event-time-selects select {
	width: auto;
	min-width: 5.2rem;
	padding-right: 1.8rem;
}

/* Card payment fields */
.card-fields {
	border: 1px solid rgba(31, 26, 23, 0.15);
	border-radius: 12px;
	padding: 1.25rem 1.25rem 0.5rem;
	margin: 0;
	background: linear-gradient(180deg, rgba(157, 61, 47, 0.04), rgba(157, 61, 47, 0.015));
}

.card-fields input {
	font-family: Arial, Helvetica, sans-serif;
	letter-spacing: 0.02em;
}

.card-fields legend,
.card-fields-legend {
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0 0.4rem;
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

.stripe-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 0.68rem;
	font-weight: 500;
	color: rgba(237, 232, 223, 0.45);
	letter-spacing: 0.02em;
}

.stripe-badge__icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	border-radius: 3px;
}

/* Stripe Card Element container */
.stripe-card-element {
	background: #160b0a !important;
	border: 1.5px solid rgba(196, 81, 106, 0.45) !important;
	border-radius: 6px;
	padding: 0.65rem 0.75rem;
	font-size: 1rem;
	outline: none !important;
	box-shadow: none !important;
}

.stripe-card-element.StripeElement--focus {
	border-color: #c4516a !important;
	box-shadow: 0 0 0 3px rgba(196, 81, 106, 0.2) !important;
}

.stripe-card-element.StripeElement--invalid {
	border-color: #c0392b !important;
}

.stripe-card-element.StripeElement--webkit-autofill {
	background: #160b0a !important;
	border-color: rgba(196, 81, 106, 0.45) !important;
	outline: none !important;
}

.card-element-error {
	color: #c0392b;
	font-size: 0.875rem;
	margin-top: 0.4rem;
	min-height: 1.25rem;
}

/* Apple Pay / Google Pay button section */
.payment-request-section {
	margin-bottom: 1rem;
}

/* Step 2 payment action row (Pay now + Change order) */
.checkout-action-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-top: 1rem;
}

.checkout-action-row .button-secondary {
	font-weight: 700;
}

.checkout-action-row input.button-primary {
	font-weight: 700;
}

/* Two-step checkout: order summary block shown at top of step 2 */
.checkout-order-summary {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 10px;
	padding: 0;
	margin-bottom: 1.5rem;
	overflow: hidden;
}

.checkout-order-summary-title {
	margin: 0;
	text-align: center;
	padding: 0.75rem 1.25rem;
	border-bottom: 1px solid rgba(196, 81, 106, 0.2);
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--ink);
}

.checkout-order-summary .payment-confirmation-list {
	margin: 0;
	gap: 0;
}

.checkout-order-summary .payment-confirmation-list > div {
	padding: 0.65rem 1.25rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.checkout-order-summary .payment-confirmation-list > div:last-child {
	border-bottom: none;
}

.checkout-order-summary .payment-confirmation-list dt {
	font-weight: 500;
	color: var(--muted);
	font-size: 0.875rem;
}

.checkout-order-summary .payment-confirmation-list dd {
	font-weight: 500;
	color: var(--ink);
}

.checkout-section-label-row {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--accent);
	background: rgba(196, 81, 106, 0.08);
	padding: 0.4rem 1.25rem;
	border-bottom: 1px solid rgba(196, 81, 106, 0.15);
}

.checkout-total-row {
	border-top: 2px solid rgba(31, 26, 23, 0.1) !important;
	border-bottom: none !important;
}

.checkout-total-row dt {
	font-weight: 700 !important;
	color: var(--ink) !important;
	font-size: 0.95rem !important;
}

.checkout-total-row dd {
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	color: var(--ink) !important;
}

.payment-request-divider {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.85rem;
	color: #888;
	font-size: 0.8rem;
}

.payment-request-divider::before,
.payment-request-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: rgba(31, 26, 23, 0.2);
}

/* Split card fields layout */
.card-field-row {
	margin-bottom: 0.6rem;
}

.card-field-label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
	color: var(--accent);
}

.card-field-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.6rem;
}

/* Card brand badge */
.card-brand-badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 0.1rem 0.4rem;
	border-radius: 4px;
	background: #1a1a1a;
	color: #fff;
}
.card-brand-badge[data-brand="visa"]       { background: #1a1f71; }
.card-brand-badge[data-brand="mastercard"] { background: #eb001b; }
.card-brand-badge[data-brand="amex"]       { background: #007bc1; }
.card-brand-badge[data-brand="discover"]   { background: #f76f20; }
.card-brand-badge[data-brand="diners"]     { background: #555; }
.card-brand-badge[data-brand="jcb"]        { background: #003087; }
.card-brand-badge[data-brand="unionpay"]   { background: #c0392b; }

/* Confirmation page */
.confirmation-panel {
	max-width: 560px;
	margin: 2rem auto;
}

.confirmation-success-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(122, 42, 42, 0.1);
	color: var(--accent, #7A2A2A);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	font-weight: 700;
	margin-bottom: 1rem;
	line-height: 1;
}

.confirmation-header {
	margin-bottom: 1.75rem;
}

.confirmation-header h1 {
	margin-bottom: 0.4rem;
}

.confirmation-code {
	display: inline-block;
	font-size: 0.83rem;
	color: var(--accent, #7A2A2A);
	background: rgba(122, 42, 42, 0.08);
	border: 1px solid rgba(122, 42, 42, 0.2);
	border-radius: 999px;
	padding: 0.25rem 0.85rem;
	letter-spacing: 0.02em;
}

.confirmation-details {
	margin: 0 0 1.5rem;
	border: 1px solid rgba(31, 26, 23, 0.12);
	border-radius: 10px;
	overflow: hidden;
}

.confirmation-details > div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 0.7rem 1rem;
	border-bottom: 1px solid rgba(31, 26, 23, 0.07);
}

.confirmation-details > div:last-child {
	border-bottom: none;
}

.confirmation-details dt {
	font-weight: 500;
	color: var(--ink-muted, #7a6f69);
	font-size: 0.875rem;
}

.confirmation-details dd {
	margin: 0;
	font-weight: 500;
	text-align: right;
	max-width: 65%;
}

.confirmation-section-label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--ink-muted, #7a6f69);
	background: rgba(31, 26, 23, 0.035);
	padding: 0.4rem 1rem;
	border-bottom: 1px solid rgba(31, 26, 23, 0.07);
}

.confirmation-total-row {
	border-top: 2px solid rgba(31, 26, 23, 0.1) !important;
	border-bottom: none !important;
}

.confirmation-total-row dt {
	font-weight: 700 !important;
	color: var(--ink) !important;
	font-size: 0.95rem !important;
}

.confirmation-total-row dd {
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	color: var(--ink) !important;
}

.confirmation-note {
	font-size: 0.875rem;
	color: var(--ink-muted, #7a6f69);
	margin-bottom: 1.5rem;
}

.confirmation-actions {
	display: flex;
	gap: 1rem;
}

.pdf-download-callout {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	background: rgba(155, 35, 53, 0.07);
	border: 1.5px solid rgba(155, 35, 53, 0.3);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.5rem;
}

.pdf-download-callout-body {
	flex: 1;
	min-width: 0;
}

.pdf-download-callout-title {
	font-weight: 600;
	margin: 0 0 0.3rem;
	font-size: 0.95rem;
}

.pdf-download-callout-sub {
	font-size: 0.82rem;
	color: var(--ink-muted, #7a6f69);
	margin: 0;
}

@media (max-width: 520px) {
	.pdf-download-callout {
		flex-direction: column;
		align-items: stretch;
	}

	.pdf-download-callout .button-primary {
		text-align: center;
	}
}

.showing-notes-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.5rem;
	align-items: center;
}

.showing-remove-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 999px;
	border: 1px solid rgba(196, 81, 106, 0.6);
	background: rgba(196, 81, 106, 0.15);
	color: var(--accent);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}

.showing-remove-button:hover {
	background: rgba(196, 81, 106, 0.3);
	color: var(--ink);
}

.ticket-total {
	display: block;
	text-align: center;
	font-family: system-ui, -apple-system, sans-serif;
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0.75rem auto 0.25rem;
	padding: 0.45rem 1.1rem;
	background: rgba(157, 61, 47, 0.08);
	border: 1px solid rgba(157, 61, 47, 0.22);
	border-radius: 999px;
	width: fit-content;
	color: var(--ink);
}

.payment-confirmation-modal {
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 18px;
	padding: 1.25rem;
	width: min(540px, calc(100% - 2rem));
	background: #160b0a;
	box-shadow: var(--shadow);
	color: var(--ink);
}

.payment-confirmation-modal::backdrop {
	background: rgba(31, 26, 23, 0.42);
}

.checkout-error-modal {
	max-width: min(640px, calc(100% - 2rem));
	border: 1px solid rgba(196, 81, 106, 0.45);
	border-radius: 18px;
	padding: 1.35rem 1.4rem 1.2rem;
	background: #160b0a;
	box-shadow: 0 26px 58px rgba(0, 0, 0, 0.55);
	color: var(--ink);
}

.checkout-error-overlay {
	position: fixed;
	inset: 0;
	z-index: 1100;
	background: rgba(20, 14, 12, 0.7);
	display: grid;
	place-items: center;
	padding: 1rem;
}

.checkout-error-overlay.is-hidden {
	display: none;
}

.checkout-error-modal h3 {
	margin: 0 0 0.45rem;
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
	color: var(--accent);
}

.checkout-error-modal p {
	margin: 0 0 0.65rem;
}

.checkout-error-modal ul {
	margin: 0 0 1rem;
	padding-left: 1.2rem;
	display: grid;
	gap: 0.4rem;
}


.payment-confirmation-list {
	display: grid;
	gap: 0.55rem;
	margin: 1rem 0 1.2rem;
}

.payment-confirmation-list > div {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	padding-bottom: 0.35rem;
	border-bottom: 1px solid rgba(31, 26, 23, 0.08);
}

.payment-confirmation-list dt,
.payment-confirmation-list dd {
	margin: 0;
}

.payment-confirmation-list dd {
	text-align: right;
}

.seat-selection-wrap {
	border: 1.5px solid rgba(196, 81, 106, 0.65);
	border-radius: 16px;
	padding: 1rem;
	background: #160b0a;
}

.admin-seat-map-details {
	border: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 16px;
	background: #1e0f0e;
}

.admin-showing-card {
	padding: 1.4rem 1.6rem;
}

.add-screening-btn {
	display: block;
	width: 100%;
	padding: 1rem;
	border: 2px dashed rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	background: transparent;
	color: rgba(196, 81, 106, 0.7);
	font-size: 0.9rem;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	transition: border-color 0.18s, color 0.18s, background 0.18s;
}

.add-screening-btn:hover {
	border-color: rgba(196, 81, 106, 0.75);
	color: var(--accent);
	background: rgba(196, 81, 106, 0.05);
}

.showing-card-header {
	display: flex;
	align-items: flex-end;
	gap: 0.75rem;
}

.showing-card-header .showing-date-time-row {
	flex: 1;
}

.showing-options-panel {
	margin-top: 0.85rem;
}

.showing-options-summary {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.3rem 0.75rem;
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--ink);
	border: 1px solid rgba(196, 81, 106, 0.6);
	border-radius: 6px;
	background: rgba(196, 81, 106, 0.14);
	cursor: pointer;
	list-style: none;
	user-select: none;
	letter-spacing: 0.02em;
}

.showing-options-summary::-webkit-details-marker {
	display: none;
}

.showing-options-summary:hover {
	background: rgba(196, 81, 106, 0.26);
	border-color: rgba(196, 81, 106, 0.85);
}

.showing-options-summary::after {
	content: "▼";
	font-size: 0.6em;
	margin-left: 0.25rem;
	color: var(--accent);
	transition: transform 0.15s ease;
	display: inline-block;
}

.showing-options-panel[open] > .showing-options-summary::after {
	transform: rotate(180deg);
}

.showing-options-panel > .showing-options-summary {
	margin-bottom: 0.85rem;
}

.options-modified-badge {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--accent);
	letter-spacing: 0.04em;
	margin-left: 0.3rem;
}


.free-movie-toggle-line {
	margin-bottom: 0.8rem;
}

.free-movie-quantity-row {
	display: grid;
	gap: 0.5rem;
	justify-items: center;
	text-align: center;
}

input.locked-field[readonly] {
	background-color: rgba(0, 0, 0, 0.04);
	cursor: default;
	color: var(--ink);
	opacity: 0.85;
}

.seat-timer {
	font-size: 0.82rem;
	color: var(--muted);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.03em;
	margin: 0.5rem 0;
	text-align: center;
	display: block;
}

/* Top timer always occupies its line so the seat map never shifts on first selection */
.seat-timer-top {
	margin: 0.15rem 0 0;
	min-height: 1.5em;
}

.seat-timer-top.is-hidden {
	display: block;
	visibility: hidden;
}

.seat-timer.timer-warning {
	color: #c0392b;
	font-weight: 700;
}

.guest-gate {
	text-align: center;
	padding: 1.5rem 1rem;
}

.guest-gate-icon {
	font-size: 2rem;
	margin: 0 0 0.4rem;
}

.guest-gate-title {
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
	color: var(--ink);
}

.guest-gate-body {
	font-size: 0.9rem;
	color: var(--muted);
	margin: 0 auto 1.25rem;
	line-height: 1.55;
	max-width: 36ch;
}

.guest-checkout-hint {
	font-size: 0.9rem;
	color: var(--muted);
	margin: 0 0 1.25rem;
	line-height: 1.55;
}

.guest-gate-actions {
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	flex-wrap: wrap;
}

.is-muted {
	opacity: 0.45;
	pointer-events: none;
}

.admin-seat-map-details > summary {
	cursor: pointer;
	padding: 0.85rem 1rem;
	font-weight: 700;
	color: var(--ink);
	list-style: none;
}

.admin-seat-map-details > summary::-webkit-details-marker {
	display: none;
}

.admin-seat-map-details > summary::before {
	content: "+";
	display: inline-block;
	width: 1rem;
	margin-right: 0.4rem;
}

.admin-seat-map-details[open] > summary::before {
	content: "−";
}

.admin-seat-map-details .seat-selection-wrap {
	border: 0;
	border-top: 1px solid rgba(31, 26, 23, 0.12);
	border-radius: 0 0 16px 16px;
	background: transparent;
}

.seat-selection-wrap h4 {
	margin: 0;
	font-size: 1.1rem;
}

.seat-map-header {
	text-align: center;
	margin-bottom: 0.5rem;
	padding: 0.6rem 0;
}

.admin-seat-locked-notice {
	text-align: center;
	margin: 0 0 0.6rem;
	font-size: 0.82rem;
	color: var(--muted);
}

.seat-scroll-hint {
	display: none;
}

/* Hide header and scroll hint when the seat map section is hidden */
.seat-map-header:has(+ .seat-scroll-hint + .seat-selection-wrap.is-hidden),
.seat-map-header:has(+ .seat-scroll-hint + .seat-selection-wrap.is-hidden) + .seat-scroll-hint {
	display: none;
}

.seat-map-header .eyebrow {
	margin-bottom: 0.2rem;
}

.seat-map-status {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ink);
	text-align: center;
}

.seat-map-status-footer {
	text-align: center;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--muted);
	margin: 0;
	min-height: 1.2em;
}

.seat-map-status-footer + .seat-timer {
	margin-top: 0.1rem;
	margin-bottom: 0.75rem;
}

.seat-selection-hint {
	margin: 0 0 0.15rem;
	padding: 0.55rem 0.85rem;
	background: #160b0a;
	border-left: 4px solid #e080a8;
	border-top: 1px solid rgba(196, 81, 106, 0.3);
	border-right: 1px solid rgba(196, 81, 106, 0.3);
	border-bottom: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 0 12px 12px 0;
	font-size: 0.82rem;
	color: #e080a8;
}

.hint-link {
	color: var(--ink);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.form-error-inline {
	margin: 0.5rem 0 0.75rem;
	padding: 0.55rem 0.8rem;
	border-radius: 12px;
	font-size: 0.9rem;
	font-weight: 600;
	color: #e080a8;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.4);
}

/* ── Purchase status colors ───────────────────────────────── */
.purchase-status--paid {
	color: #2a7a3b;
	font-weight: 600;
}
.purchase-status--payment_failed,
.purchase-status--canceled {
	color: #b91c1c;
	font-weight: 700;
}
.purchase-status--refunded {
	color: #6b7280;
	font-weight: 600;
}
.purchase-status--pending_payment {
	color: #b45309;
	font-weight: 600;
}

.screen-label {
	text-align: center;
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 1rem;
	padding: 0.5rem 1rem;
	border: none;
	border-top: 2px solid rgba(196, 81, 106, 0.55);
	border-radius: 0;
	background: linear-gradient(to bottom, rgba(196, 81, 106, 0.1), transparent);
}

.screen-label-rear {
	margin-top: 1rem;
	margin-bottom: 0;
	border-top: none;
	border-bottom: 2px solid rgba(196, 81, 106, 0.5);
	background: linear-gradient(to top, rgba(196, 81, 106, 0.08), transparent);
}

.seat-map {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr) minmax(0, 0.8fr);
	gap: 0.8rem;
}

.seat-section {
	display: grid;
	gap: 0.25rem;
}

.seat-section-label {
	margin: 0 0 0.2rem;
	font-size: 0.58rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
	color: rgba(196, 81, 106, 0.9);
	font-weight: 700;
}

.seat-row {
	display: grid;
	gap: 0.25rem;
	align-items: center;
}

.seat-row-label {
	font-size: 0.65rem;
	font-weight: 700;
	color: rgba(196, 81, 106, 0.85);
	text-align: right;
	padding-right: 1px;
}

.seat-section-left .seat-row,
.seat-section-right .seat-row {
	grid-template-columns: 1rem repeat(5, minmax(0, 1fr));
}

.seat-section-center .seat-row {
	grid-template-columns: 1rem repeat(10, minmax(0, 1fr));
}

.seat-button {
	border: 1.5px solid rgba(255, 255, 255, 0.22);
	border-radius: 5px;
	padding: 0.28rem 0;
	font-size: 0.65rem;
	line-height: 1;
	background: #2a1818;
	color: rgba(237, 232, 223, 0.82);
	cursor: pointer;
	transition: background 0.1s, border-color 0.1s;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.2);
}

@media (hover: hover) and (pointer: fine) {
	.seat-button:not(.unavailable):not(.selected):not(.admin-selected):hover {
		background: rgba(196, 81, 106, 0.18);
		border-color: rgba(196, 81, 106, 0.5);
		color: rgba(237, 232, 223, 0.9);
	}
}

.seat-button.selected {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

/* Overflow: faded normal seat (no longer blue) */
.seat-button.overflow {
	background: #231a1a;
	border-color: rgba(255, 255, 255, 0.14);
	color: rgba(237, 232, 223, 0.55);
}

.seat-button.overflow.selected {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

.seat-button.overflow.unavailable {
	background: #1a1212;
	border-color: rgba(255, 255, 255, 0.05);
	color: rgba(237, 232, 223, 0.18);
	cursor: not-allowed;
}

/* Extra legroom row (back center row M) — blue */
.seat-button.extra-legroom {
	background: #1a2030;
	border-color: rgba(85, 130, 175, 0.6);
	color: rgba(160, 190, 220, 0.88);
}

.seat-button.extra-legroom.selected {
	background: #3a5f8a;
	border-color: #4a7aaa;
	color: #fff;
}

.seat-button.extra-legroom.unavailable {
	background: #12181f;
	border-color: rgba(85, 108, 130, 0.15);
	color: rgba(160, 190, 220, 0.2);
	cursor: not-allowed;
}

/* Wheelchair seats */
.seat-button.wheelchair {
	background: #1a2a1a;
	border-color: rgba(80, 160, 100, 0.6);
	color: rgba(140, 210, 140, 0.9);
	font-size: 0.75rem;
}

.seat-button.wheelchair.selected {
	background: #2a6b3a;
	border-color: #3a8a4a;
	color: #fff;
}

.seat-button.wheelchair.unavailable {
	background: #121a12;
	border-color: rgba(60, 100, 60, 0.15);
	color: rgba(120, 180, 120, 0.22);
	cursor: not-allowed;
}

/* Companion seats — reserved for wheelchair patron companions */
.seat-button.companion {
	background: #1e1700;
	border: 1px solid rgba(200, 160, 40, 0.5);
	color: #b89020;
	cursor: pointer;
}
.seat-button.companion:hover {
	background: #2a2000;
	border-color: rgba(200, 160, 40, 0.8);
}
.seat-button.companion.selected,
.seat-button.companion.linked {
	background: #4a3800;
	border-color: #c8a020;
	color: #ffd040;
}
.seat-button.companion.unavailable {
	background: #161100;
	border-color: rgba(180, 140, 20, 0.15);
	color: rgba(180, 140, 20, 0.22);
	cursor: not-allowed;
}

.seat-row-spacer {
	visibility: hidden;
	pointer-events: none;
}

/* Invisible placeholder for removed seat positions — maintains column alignment */
.seat-button-spacer {
	display: inline-flex;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background: transparent;
	border: none;
	pointer-events: none;
}

.seat-button.seat-placeholder {
	visibility: hidden;
	pointer-events: none;
}

.overflow-notice,
.extra-legroom-notice {
	border-left: 4px solid rgba(85, 130, 175, 0.9);
	border-radius: 0 12px 12px 0;
	padding: 0.55rem 0.85rem;
	font-size: 0.82rem;
	color: #8eb8e0;
	border-top: 1px solid rgba(85, 130, 175, 0.25);
	border-right: 1px solid rgba(85, 130, 175, 0.25);
	border-bottom: 1px solid rgba(85, 130, 175, 0.25);
	margin-bottom: 0.6rem;
	background: rgba(26, 32, 48, 0.8);
}

.overflow-notice {
	color: rgba(237, 232, 223, 0.65);
	border-left-color: rgba(255, 255, 255, 0.2);
	border-top-color: rgba(255, 255, 255, 0.06);
	border-right-color: rgba(255, 255, 255, 0.06);
	border-bottom-color: rgba(255, 255, 255, 0.06);
	background: rgba(35, 26, 26, 0.6);
}

/* Seat toast — auto-dismissing "already reserved" hint */
.seat-toast {
	position: absolute;
	background: rgba(30, 16, 16, 0.92);
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 8px;
	padding: 0.35rem 0.7rem;
	font-size: 0.78rem;
	color: var(--accent);
	pointer-events: none;
	z-index: 200;
	white-space: nowrap;
	opacity: 1;
	transition: opacity 0.4s ease;
}

/* CaptiView section */
.captiview-section {
	margin: 0.75rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.captiview-toggle {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	background: rgba(100, 160, 220, 0.08);
	border: 1px solid rgba(100, 160, 220, 0.3);
	border-radius: 8px;
	padding: 0.55rem 0.85rem;
	font-size: 0.88rem;
	color: #8ec8e8;
	cursor: pointer;
	text-align: left;
	width: 100%;
	transition: background 0.15s, border-color 0.15s;
}

.captiview-toggle:hover {
	background: rgba(100, 160, 220, 0.14);
	border-color: rgba(100, 160, 220, 0.5);
}

.captiview-toggle--unavailable {
	background: rgba(255, 249, 243, 0.03);
	border-color: rgba(255, 249, 243, 0.08);
	color: var(--muted);
	cursor: pointer;
}

.captiview-toggle--unavailable:hover {
	background: rgba(255, 249, 243, 0.05);
}

.captiview-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	background: rgba(100, 160, 220, 0.2);
	border: 1px solid rgba(100, 160, 220, 0.4);
	border-radius: 4px;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	flex-shrink: 0;
	color: #8ec8e8;
}

.captiview-toggle--unavailable .captiview-icon {
	background: rgba(255, 249, 243, 0.05);
	border-color: rgba(255, 249, 243, 0.12);
	color: var(--muted);
}

.captiview-assigned-label {
	font-size: 0.8rem;
	color: #7dc8f0;
	margin: 0;
	padding-left: 0.25rem;
}

.seat-button.admin-selected {
	background: #2f5f91;
	border-color: #2f5f91;
	color: #fff;
}

.seat-button.unavailable {
	background: #1e1010;
	border-color: rgba(255, 255, 255, 0.06);
	color: rgba(237, 232, 223, 0.2);
	cursor: not-allowed;
}

/* Reporting-only seat states (assigned seating report view) */
.seat-button.purchased {
	background: #c4516a !important;
	border-color: #c4516a !important;
	color: #fff !important;
	cursor: default;
}
.seat-button.admin-reserved {
	background: #2a2020 !important;
	border-color: rgba(255, 255, 255, 0.16) !important;
	color: rgba(237, 232, 223, 0.42) !important;
	cursor: default;
}

.poster-thumb {
	width: 56px;
	height: 82px;
	border-radius: 8px;
	object-fit: cover;
	border: 1px solid rgba(31, 26, 23, 0.12);
	background: rgba(31, 26, 23, 0.06);
}

.poster-thumb-link {
	display: block;
	line-height: 0;
	border-radius: 8px;
	transition: opacity 0.15s ease, box-shadow 0.15s ease;
}

.poster-thumb-link:hover {
	opacity: 0.82;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.poster-cell {
	width: 68px;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.drag-handle-col {
	width: 28px;
	padding-right: 0;
}

.drag-handle {
	display: inline-block;
	cursor: grab;
	color: rgba(237, 232, 223, 0.6);
	font-size: 1.2rem;
	line-height: 1;
	padding: 0 4px;
	user-select: none;
}

.drag-handle:hover {
	color: rgba(237, 232, 223, 0.95);
}

.drag-ghost {
	opacity: 0.45;
	background: rgba(31, 26, 23, 0.06);
}

/* Dark-card ghost for the concessions category grid */
.cpa-grid .drag-ghost {
  background: rgba(196, 81, 106, 0.07) !important;
  border: 1px dashed rgba(196, 81, 106, 0.35) !important;
  border-top: 2px dashed rgba(196, 81, 106, 0.5) !important;
  opacity: 0.65;
}

.drag-chosen {
  opacity: 0.75;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  cursor: grabbing;
}

.sortable-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 0.5rem;
}

.sortable-save-btn {
	transition: opacity 0.15s ease;
}

.sortable-save-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.feature-poster {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 16px;
	margin-bottom: 0.9rem;
	border: 1px solid rgba(31, 26, 23, 0.12);
	background: rgba(31, 26, 23, 0.06);
}

.home-lower-panel {
	padding-top: 2rem;
	display: flex;
	justify-content: center;
}

.home-events-col {
	width: min(560px, 100%);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.home-promo-col {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* ---- Home page film / event horizontal scrolls ---- */
.home-greeting-bar {
	padding-top: 0.85rem;
	padding-bottom: 0;
	font-size: 0.9rem;
	color: var(--muted);
	text-align: center;
}

.home-greeting-bar p {
	margin: 0;
}

.home-greeting-bar a {
	font-weight: 600;
	color: var(--accent);
	text-decoration: none;
}

.home-greeting-bar a:hover {
	text-decoration: underline;
}

.home-scroll-section {
	padding-top: 1rem;
	padding-bottom: 1.25rem;
}

.home-scroll-wrap {
	position: relative;
}

.home-films-scroll,
.home-events-scroll {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	padding-bottom: 0.75rem;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	justify-content: safe center;
}

.home-films-scroll::-webkit-scrollbar,
.home-events-scroll::-webkit-scrollbar {
	height: 4px;
}

.home-films-scroll::-webkit-scrollbar-thumb,
.home-events-scroll::-webkit-scrollbar-thumb {
	background: rgba(107, 28, 46, 0.3);
	border-radius: 2px;
}

.home-scroll-hint {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 110px;
	background: linear-gradient(to right, transparent, var(--bg) 72%);
	border: none;
	padding: 0 0.5rem 0.75rem 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	transition: opacity 0.25s ease;
	pointer-events: auto;
}

.home-scroll-hint.is-at-end {
	opacity: 0;
	pointer-events: none;
}

.home-scroll-hint svg {
	width: 78px;
	height: 78px;
	stroke: rgba(196, 81, 106, 1);
	filter: drop-shadow(0 0 8px rgba(196, 81, 106, 0.5));
	flex-shrink: 0;
}

.home-scroll-hint-left {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 110px;
	background: linear-gradient(to left, transparent, var(--bg) 72%);
	border: none;
	padding: 0 0 0.75rem 0.5rem;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: flex-start;
	transition: opacity 0.25s ease;
	pointer-events: none;
	opacity: 0;
}

.home-scroll-hint-left.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.home-scroll-hint-left svg {
	width: 78px;
	height: 78px;
	stroke: rgba(196, 81, 106, 1);
	filter: drop-shadow(0 0 8px rgba(196, 81, 106, 0.5));
	flex-shrink: 0;
}

@media (hover: hover) and (pointer: fine) {
	.home-scroll-hint-left {
		display: flex;
	}
}

.home-film-card,
.home-event-scroll-card {
	flex: 0 0 260px;
	scroll-snap-align: start;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
}

.home-scroll-poster {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 320px;
	object-fit: contain;
	margin: 0 auto 0.75rem;
	border-radius: 12px;
}

.home-scroll-card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.home-scroll-card-title {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0.15rem 0 0;
}

.home-scroll-card-title a {
	text-decoration: none;
	color: inherit;
}

.home-scroll-card-title a:hover {
	text-decoration: underline;
}

.home-scroll-card-meta {
	font-size: 0.85rem;
	color: var(--muted);
	margin: 0.15rem 0 0;
}

.home-scroll-card-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.5rem;
	margin-top: 1rem;
}

.home-scroll-card-actions.single-action {
	grid-template-columns: 1fr;
}

.home-scroll-card-actions .button-primary,
.home-scroll-card-actions .button-secondary {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 0.62rem 0.75rem;
	font-size: 0.84rem;
}



.event-card .feature-poster {
	max-height: 340px;
	width: auto;
	max-width: 100%;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.social-follow-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.social-follow-card {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
	padding: 2rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.75rem;
}

.social-follow-icon {
	width: 44px;
	height: 44px;
}

.social-follow-card h3 {
	margin: 0;
	font-size: 1.2rem;
}

.social-handle {
	margin: 0;
	font-family: monospace;
	font-size: 0.9rem;
	color: var(--accent);
}

.spotlight-band {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.6fr);
	gap: 1.5rem;
	padding: 1.8rem;
}
.nav-button-subtle {
	font-size: 0.9rem;
}

.nav-divider {
  color: var(--line);
  padding: 0 0.25rem;
}

.nav-customer-name {
  font-weight: 600;
}

.nav-text-link {
  font-size: 0.9rem;
  color: var(--accent-dark);
  text-decoration: underline;
}

.signin-prompt {
	font-size: clamp(1rem, 1.5vw, 1.15rem);
  margin-bottom: 0.5rem;
}

.signin-prompt p {
	margin: 0;
	line-height: 1.45;
}

.signin-prompt a {
  font-weight: 600;
  color: var(--accent-dark);
  text-decoration: underline;
}

.auth-footer {
  text-align: center;
  font-size: 0.95rem;
  margin-top: 0.5rem;
}

.dashboard-welcome {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent-dark);
  margin-top: 0.25rem;
  margin-bottom: 1rem;
}

.showtime-note {
  background: rgba(139, 90, 43, 0.08);
  border-left: 3px solid var(--accent);
  color: var(--accent-dark);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.6rem 0.85rem;
  border-radius: 4px;
  margin-bottom: 1rem;
}

.showtime-note p {
  margin: 0 0 0.35rem;
}

.showtime-note-bullets {
  margin: 0;
  padding-left: 1.2rem;
}

.showtime-note-bullets li {
  margin-bottom: 0.2rem;
}

.showtime-note p + .showtime-note-bullets {
  margin-top: 0.35rem;
}

.showtime-note-nonrefundable {
  background: rgba(196, 81, 106, 0.1);
  border: 1px solid rgba(196, 81, 106, 0.35);
  border-radius: 4px;
  color: #e080a8;
  padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
  margin: 0;
}

.showing-options-row {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  margin-bottom: 0.5rem;
}

/* Groups Assigned Seating / Taxable / Refundable checkboxes into
   a neat column that aligns with the number inputs above it. */
.showing-checkboxes-group {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-top: 1.5rem;
}

/* Remove the old individual top-padding hacks — now handled by group */
.assigned-seating-toggle,
.taxable-toggle {
  padding-top: 0;
}

.capacity-override-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.capacity-override-wrap label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
}

.capacity-override-wrap input {
  width: 9rem;
}

.cutoff-minutes-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.cutoff-minutes-wrap label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
}

.cutoff-minutes-input-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.cutoff-minutes-input-row input {
  width: 5rem;
}

.input-unit {
  font-size: 0.85rem;
  color: var(--muted);
  white-space: nowrap;
}

.auth-oauth-divider {
	position: relative;
	text-align: center;
	margin: 0.9rem 0;
	color: var(--muted);
}

.auth-oauth-divider::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	border-top: 1px solid rgba(196, 81, 106, 0.25);
}

.auth-oauth-divider span {
	position: relative;
	padding: 0 0.5rem;
	background: #160b0a;
}

.auth-card a.button-secondary.full-width {
	display: flex;
	justify-content: center;
	align-items: center;
}

.auth-guest-button {
	margin-top: 0.45rem;
}

.auth-signup-callout {
	margin-top: 1.1rem;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--accent-dark);
}

.auth-signup-callout a {
	font-weight: 900;
	text-decoration-thickness: 2px;
}

.guest-checkout-modal {
	max-width: min(560px, calc(100% - 2rem));
}

.guest-checkout-list {
	margin: 0.8rem 0 1rem;
	padding-left: 1.1rem;
	color: var(--ink);
}

.guest-checkout-list li + li {
	margin-top: 0.45rem;
}

.report-filter-panel {
	margin-bottom: 1.5rem;
}

.report-filter-grid {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	align-items: end;
}

.report-filter-grid label {
	font-size: 0.8rem;
}

.report-filter-grid input,
.report-filter-grid select {
	font-size: 0.875rem;
	padding: 0.45rem 0.65rem;
}

.report-showtime-group {
	display: flex;
	gap: 0.4rem;
}

.report-showtime-group input {
	min-width: 0;
	flex: 1 1 0;
}

.report-filter-actions {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: flex-end;
	margin-top: 1rem;
}

.report-filter-actions .button-primary,
.report-filter-actions .button-secondary {
	display: inline-flex;
	justify-content: center;
	text-align: center;
}

.report-stats-grid {
	margin-top: 0;
	margin-bottom: 1.5rem;
}

.status-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 600;
	background: rgba(255, 255, 255, 0.07);
	color: var(--ink);
}

.status-succeeded,
.status-paid {
	background: rgba(51, 128, 77, 0.22);
	color: #4ecb78;
}

.status-requires_action,
.status-pending_payment {
	background: rgba(214, 165, 82, 0.18);
	color: #e8a830;
}

.status-failed,
.status-payment_failed,
.status-canceled {
	background: rgba(157, 61, 47, 0.2);
	color: #f07878;
}

.status-refunded {
	background: rgba(77, 96, 136, 0.2);
	color: #7090d0;
}

.status-partial-refund,
.status-partially-refunded {
	background: rgba(50, 90, 64, 0.2);
	color: #5a8f6a;
}

.status-free {
	background: rgba(99, 60, 180, 0.2);
	color: #a878e8;
}

.status-reservation_cancelled {
	background: rgba(157, 61, 47, 0.18);
	color: #f07878;
}

.status-non-refundable {
	background: rgba(157, 61, 47, 0.18);
	color: #f07878;
}

.status-scanned {
	background: rgba(30, 100, 50, 0.3);
	color: #4ecb78;
}

.status-manually-verified {
	background: #7c4d0f;
	color: #fff;
}

.status-auto-validated {
	background: rgba(30, 80, 120, 0.35);
	color: #7ec8f0;
}

.status-partial-refund,
.status-partially-refunded,
.status-partially_refunded {
	background: #fef9c3;
	color: #854d0e;
	border: 1px solid #fde047;
}

.status-partial-cancel {
	background: rgba(157, 61, 47, 0.2);
	color: #f07878;
	border: 1px solid rgba(240, 120, 120, 0.4);
}

.seat-refund-seat-label.is-admin-refunded {
	opacity: 0.45;
	cursor: default;
	text-decoration: line-through;
}

.seat-refund-partial-note {
	font-size: 0.82rem;
	color: #92400e;
	background: #fef3c7;
	border-left: 3px solid #f59e0b;
	padding: 0.35rem 0.6rem;
	margin-bottom: 0.75rem;
	border-radius: 3px;
}

/* ── Purchase card list (My Account) ── */
.purchase-card-list {
	display: grid;
	gap: 1.25rem;
	margin-top: 1rem;
}

.purchase-card {
	background: #1a0e0d;
	border: 1px solid rgba(196, 81, 106, 0.28);
	border-left: 4px solid var(--accent);
	border-radius: 14px;
	padding: 1.1rem 1.25rem 0.9rem;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}

.purchase-card-details {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.35rem 1rem;
	margin: 0 0 0.85rem;
}

.purchase-card-details > div {
	display: contents;
}

.purchase-card-details dt {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
	padding: 0.15rem 0;
}

.purchase-card-details dd {
	margin: 0;
	font-size: 0.95rem;
	color: var(--ink);
	padding: 0.15rem 0;
}

.purchase-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	align-items: center;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(196, 81, 106, 0.2);
}

/* ── Purchase pagination ── */
.purchase-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: center;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(196, 81, 106, 0.2);
}

.purchase-page-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: 0 0.6rem;
	border-radius: 999px;
	border: 1px solid rgba(196, 81, 106, 0.35);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ink);
	background: transparent;
	transition: background 120ms ease, color 120ms ease;
}

.purchase-page-link:hover {
	background: rgba(196, 81, 106, 0.15);
	color: var(--accent);
}

.purchase-page-link.is-current {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff9f3;
}

/* ── Scanner dashboard cards ── */
/* Walk-in quantity selector */
.qty-selector-grid { display: flex; flex-direction: column; gap: 0.6rem; }
.qty-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.4rem 0; border-bottom: 1px solid var(--line); }
.qty-row:last-child { border-bottom: none; }
.qty-label { font-weight: 600; margin: 0; }
.qty-price { font-size: 0.85rem; margin: 0; }
.qty-controls { display: flex; align-items: center; gap: 0.5rem; }
.qty-input { width: 3rem; text-align: center; font-size: 1rem; font-weight: 700; border: 1px solid var(--line); border-radius: 6px; padding: 0.2rem 0.4rem; background: transparent; color: var(--ink); }
.qty-total-row { margin-top: 0.75rem; font-size: 0.95rem; font-weight: 700; color: var(--accent); }

.walk-in-account-indicator { font-size: 0.78rem; font-weight: 600; }
.walk-in-account-found { color: #6dba7d; }
.walk-in-name-verified { border-color: #6dba7d !important; background: rgba(109, 186, 125, 0.07) !important; color: #6dba7d !important; -webkit-text-fill-color: #6dba7d !important; opacity: 1 !important; }

.walk-in-email-wrap { position: relative; }
.walk-in-suggestions { position: absolute; top: calc(100% + 2px); left: 0; right: 0; background: #1e100e; border: 1px solid rgba(196, 81, 106, 0.35); border-radius: 8px; overflow: hidden; z-index: 200; box-shadow: 0 6px 20px rgba(0,0,0,0.5); }
.walk-in-suggestion { display: flex; flex-direction: column; padding: 0.55rem 0.75rem; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,0.05); }
.walk-in-suggestion:last-child { border-bottom: none; }
.walk-in-suggestion:hover, .walk-in-suggestion:active { background: rgba(196, 81, 106, 0.12); }
.walk-in-suggestion-email { font-size: 0.85rem; font-weight: 600; color: var(--ink); }
.walk-in-suggestion-name { font-size: 0.75rem; color: var(--muted); margin-top: 0.1rem; }

.walk-in-summary-panel { border-color: rgba(196, 81, 106, 0.5); }
.walk-in-summary-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.35rem; }
.walk-in-summary-total { font-size: 2.2rem; font-weight: 800; margin: 0 0 0.4rem; color: var(--ink); }
.walk-in-summary-breakdown { font-size: 0.8rem; color: var(--muted); margin: 0; }
.walk-in-summary-tax { color: var(--muted); }

/* Walk-in index: film/event cards with expandable showtime dropdown */
.walk-in-film-details { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--surface, #1a0c0b); }
.walk-in-film-details[open] > .walk-in-film-summary { border-bottom: 1px solid var(--line); }
.walk-in-film-summary {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.walk-in-film-summary::-webkit-details-marker { display: none; }
.walk-in-film-summary:hover { background: rgba(255,255,255,0.03); }
.walk-in-poster-thumb { width: 2.75rem; height: 2.75rem; object-fit: cover; border-radius: 5px; flex-shrink: 0; }
.walk-in-poster-placeholder { width: 2.75rem; height: 2.75rem; border-radius: 5px; flex-shrink: 0; background: rgba(255,255,255,0.07); }
.walk-in-film-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.walk-in-chevron { font-size: 1.3rem; color: var(--muted); transition: transform 0.18s; flex-shrink: 0; transform: rotate(0deg); }
details[open] .walk-in-chevron { transform: rotate(90deg); }
.walk-in-showtime-list { display: flex; flex-direction: column; }
.walk-in-showtime-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
.walk-in-showtime-row:last-child { border-bottom: none; }

/* ── Walk-in validate dialog ── */
.wi-validate-dialog {
  border: 1px solid rgba(196, 81, 106, 0.4);
  border-radius: 12px;
  padding: 0;
  max-width: 400px;
  width: 90vw;
  box-shadow: var(--shadow);
  background: #160b0a;
  color: var(--ink);
  overflow: hidden;
}
.wi-validate-dialog::backdrop { background: rgba(31, 26, 23, 0.55); }
.wi-validate-header {
  background: rgba(196, 81, 106, 0.1);
  border-bottom: 1px solid rgba(196, 81, 106, 0.25);
  padding: 1.1rem 1.5rem;
  text-align: center;
}
.wi-validate-eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.35rem;
}
.wi-validate-film {
  font-weight: 700;
  font-size: 1.05rem;
  margin: 0 0 0.15rem;
}
.wi-validate-showtime {
  font-size: 0.82rem;
  color: var(--muted, #a09488);
  margin: 0;
}
.wi-validate-body { padding: 1.25rem 1.5rem 1.5rem; }
.wi-validate-guidance {
  font-size: 0.875rem;
  line-height: 1.55;
  margin: 0 0 1.25rem;
  text-align: center;
  color: var(--ink);
}
.wi-validate-btns {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.wi-validate-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(196, 81, 106, 0.3);
  background: rgba(196, 81, 106, 0.07);
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: background 140ms, border-color 140ms, color 140ms;
  font-family: inherit;
  line-height: normal;
}
.wi-validate-btn:hover {
  background: rgba(196, 81, 106, 0.15);
  border-color: rgba(196, 81, 106, 0.55);
}

/* Recommended button gets full accent fill */
.wi-validate-dialog[data-recommended="now"] .wi-validate-btn--now,
.wi-validate-dialog[data-recommended="later"] .wi-validate-btn--later {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff9f3;
}
.wi-validate-dialog[data-recommended="now"] .wi-validate-btn--now:hover,
.wi-validate-dialog[data-recommended="later"] .wi-validate-btn--later:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
}
.wi-validate-btn--cancel { color: var(--muted); border-color: transparent; background: transparent; font-weight: 400; font-size: 0.82rem; }
.wi-validate-btn--cancel:hover { background: rgba(255,255,255,0.05) !important; border-color: transparent !important; color: var(--ink) !important; }

/* Walk-in page action buttons: confirm (green) / cancel (red) */
.wi-action-btn {
  display: block; width: 100%; box-sizing: border-box;
  padding: 0.8rem 1.25rem; border-radius: 999px;
  font-family: inherit; font-size: 0.95rem; font-weight: 700;
  text-align: center; cursor: pointer; text-decoration: none;
  transition: background 140ms, border-color 140ms, color 140ms;
  line-height: normal;
}
.wi-action-btn--confirm {
  background: rgba(109, 186, 125, 0.1);
  border: 1px solid rgba(109, 186, 125, 0.45);
  color: #6dba7d;
}
.wi-action-btn--confirm:hover {
  background: rgba(109, 186, 125, 0.18);
  border-color: rgba(109, 186, 125, 0.7);
  color: #7dcf8e;
}
.wi-action-btn--confirm[disabled] {
  opacity: 0.38; cursor: not-allowed;
}
.wi-action-btn--cancel {
  background: rgba(196, 81, 106, 0.07);
  border: 1px solid rgba(196, 81, 106, 0.35);
  color: #c4516a;
}
.wi-action-btn--cancel:hover {
  background: rgba(196, 81, 106, 0.14);
  border-color: rgba(196, 81, 106, 0.6);
  color: #d4617a;
}

/* Walk-in form: divider between standard and complimentary ticket types */
.qty-walkin-divider { margin: 1rem 0 0.75rem; border: none; border-top: 1px solid var(--line); }

.scanner-dash-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 2rem 1.5rem;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 28px;
	box-shadow: var(--shadow);
	text-decoration: none;
	color: inherit;
	transition: box-shadow 140ms ease, transform 140ms ease;
	text-align: center;
}

.scanner-dash-card:hover {
	box-shadow: 0 4px 20px rgba(0,0,0,0.12);
	transform: translateY(-2px);
}

.scanner-dash-icon {
	width: 48px;
	height: 48px;
	stroke: var(--accent);
}

.scanner-dash-label {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ink);
}

.scanner-dash-sub {
	font-size: 0.85rem;
	color: var(--muted);
}

/* ── Dashboard film/event cards ── */
.dashboard-film-card .dashboard-card-inner {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.dashboard-film-card .drag-handle {
	font-size: 1.4rem;
	line-height: 1;
	color: rgba(237, 232, 223, 0.6);
	cursor: grab;
	flex-shrink: 0;
	padding-top: 0.1rem;
}

.dashboard-film-card .poster-thumb-link {
	flex-shrink: 0;
}

.dashboard-film-card .poster-thumb {
	width: 52px;
	height: 78px;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}

.dashboard-film-card .purchase-card-details {
	flex: 1;
	margin-bottom: 0;
}

.scheduled-banner {
	font-size: 0.78rem;
	font-weight: 600;
	color: #7c4a00;
	background: #fff3cd;
	border: 1px solid #f0c040;
	border-radius: 6px;
	padding: 0.3rem 0.65rem;
	margin-bottom: 0.65rem;
	display: inline-block;
}

/* ── Promotions / Blog ── */
.promotions-section {
	padding-top: 1.25rem;
	padding-bottom: 2rem;
}

.promotions-eyebrow {
	color: var(--accent);
	font-size: 1rem;
	font-weight: normal;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: center;
	margin-bottom: 1rem;
}

.home-scroll-section > .eyebrow {
	font-size: 1rem;
	text-align: center;
	margin-bottom: 1rem;
}

.promotions-scroll-wrap {
	position: relative;
}

.promotions-scroll {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	padding-bottom: 0.75rem;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	justify-content: safe center;
}

.promotions-scroll::-webkit-scrollbar {
	height: 4px;
}

.promotions-scroll::-webkit-scrollbar-thumb {
	background: rgba(107, 28, 46, 0.3);
	border-radius: 2px;
}

.promotions-scroll-hint {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 110px;
	background: linear-gradient(to right, transparent, var(--bg) 72%);
	border: none;
	padding: 0 0.5rem 0.75rem 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	transition: opacity 0.25s ease;
	pointer-events: auto;
}

.promotions-scroll-hint.is-at-end {
	opacity: 0;
	pointer-events: none;
}

.promotions-scroll-hint svg {
	width: 78px;
	height: 78px;
	stroke: rgba(196, 81, 106, 1);
	filter: drop-shadow(0 0 8px rgba(196, 81, 106, 0.5));
	flex-shrink: 0;
}

.promotion-card {
	flex: 0 0 320px;
	scroll-snap-align: start;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.promotion-card-link {
	text-decoration: none;
	color: inherit;
	display: block;
}

.promotion-card-link:hover .promotion-card-title {
	text-decoration: underline;
}

.promotion-card-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.promotion-card-body {
	padding: 0.75rem 1rem 0.25rem;
}

.promotion-card-date {
	font-size: 0.78rem;
	color: var(--muted);
	margin: 0 0 0.25rem;
}

.promotion-card-title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0;
	color: var(--ink);
}

.promotion-card-text {
	padding: 0.5rem 1rem;
	font-size: 0.88rem;
	color: var(--muted);
	flex: 1;
}

.promotion-card-text p {
	margin: 0;
}

.promotion-card > .section-link {
	padding: 0.5rem 1rem 0.85rem;
	display: inline-block;
	font-size: 0.88rem;
}

/* ── Concessions banner (home page) ── */
.home-cta-banners {
	margin-top: 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.concessions-banner {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 14px;
	padding: 1rem 1.25rem;
	margin: 0;
	text-decoration: none;
	color: var(--ink);
	transition: border-color 140ms ease, box-shadow 140ms ease;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}

.concessions-banner:hover {
	border-color: rgba(196, 81, 106, 0.65);
	box-shadow: inset 4px 0 0 #c4516a, 0 24px 60px rgba(0, 0, 0, 0.5);
}

.concessions-banner-icon {
	font-size: 1.85rem;
	line-height: 1;
	flex-shrink: 0;
}

.concessions-banner-text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	flex: 1;
}

.concessions-banner-label {
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--ink);
	letter-spacing: 0.01em;
}

.concessions-banner-sub {
	font-size: 0.84rem;
	color: var(--muted);
}

.concessions-banner-arrow {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: rgba(196, 81, 106, 0.6);
}

.concessions-banner-arrow svg {
	width: 100%;
	height: 100%;
}

/* Promotion show page */
.promotion-show-shell {
	max-width: 720px;
}

.promotion-show-header {
	text-align: center;
	padding-bottom: 1.5rem;
	margin-bottom: 0.25rem;
	border-bottom: 1px solid rgba(196, 81, 106, 0.15);
}

.promotion-show-header h1 {
	margin: 0.2rem 0 0;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.promotion-show-header .eyebrow {
	margin-bottom: 0.3rem;
}

.promotion-show-edit {
	display: inline-block;
	margin-top: 0.85rem;
}

.promotion-show-image-wrap {
	margin: 1.75rem 0 1.5rem;
	text-align: center;
}

.promotion-show-image {
	width: 100%;
	max-width: 560px;
	height: auto;
	border-radius: 12px;
	border: 1px solid rgba(196, 81, 106, 0.2);
	box-shadow: 0 8px 36px rgba(0, 0, 0, 0.45);
	display: block;
	margin: 0 auto;
}

.promotion-show-body {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--ink);
	overflow-wrap: break-word;
	word-break: break-word;
	min-width: 0;
}

.promotion-show-body p {
	margin-bottom: 1rem;
}

.promotion-show-back {
	margin-top: 2rem;
}

.promotion-show-body img,
.promotion-show-body video,
.promotion-show-body iframe,
.promotion-show-body figure {
	max-width: 100%;
	height: auto;
}

.promotion-show-body table {
	max-width: 100%;
	overflow-x: auto;
	display: block;
}

.promotion-show-body pre {
	max-width: 100%;
	overflow-x: auto;
	white-space: pre-wrap;
}

/* Admin promotion image preview */
.promotion-admin-preview {
	max-width: 240px;
	max-height: 200px;
	border-radius: 8px;
	border: 1px solid rgba(31, 26, 23, 0.12);
	display: block;
}

.promotion-trix-editor {
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 0 0 8px 8px;
	border-top: none;
	min-height: 220px;
	padding: 0.75rem;
	font-size: 1rem;
	background: #160b0a;
	color: var(--ink);
	width: 100%;
	box-sizing: border-box;
	overflow-wrap: break-word;
	word-break: break-word;
	white-space: pre-wrap;
	overflow-x: hidden;
}

/* ── Trix rich-text editor toolbar dark theme ── */
trix-toolbar {
	background: #1e1010;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-bottom: none;
	border-radius: 8px 8px 0 0;
	padding: 0.3rem 0.4rem;
}
trix-toolbar .trix-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
}
trix-toolbar .trix-button-group {
	border: 1px solid rgba(196, 81, 106, 0.25);
	border-radius: 5px;
	margin: 0;
}
trix-toolbar .trix-button-group:not(:first-child) {
	margin-left: 4px;
}
trix-toolbar .trix-button {
	background: transparent;
	border: none;
	color: rgba(237, 232, 223, 0.7);
	padding: 0.3rem 0.45rem;
	min-width: 2rem;
	min-height: 1.8rem;
	font-size: 0.8rem;
	cursor: pointer;
	transition: background 0.1s, color 0.1s;
	filter: invert(1) brightness(0.75);
}
trix-toolbar .trix-button:hover {
	background: rgba(196, 81, 106, 0.18);
	color: #ede8df;
	filter: invert(1) brightness(1);
}
trix-toolbar .trix-button.trix-active {
	background: rgba(196, 81, 106, 0.28);
	color: #ede8df;
	filter: invert(1) brightness(1);
}
trix-toolbar .trix-button--icon::before {
	opacity: 0.8;
}
trix-toolbar .trix-button--icon.trix-active::before {
	opacity: 1;
}
trix-toolbar .trix-dialog {
	background: #1e1010;
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 6px;
	color: var(--ink);
}
trix-toolbar .trix-dialog input[type=text],
trix-toolbar .trix-dialog input[type=url] {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.35);
	color: var(--ink);
	border-radius: 4px;
	padding: 0.3rem 0.5rem;
}

/* ── Film status badges ── */
.type-pill-online {
	background: rgba(80, 130, 200, 0.18);
	color: #7ab4e8;
}
.type-pill-inperson {
	background: rgba(196, 140, 40, 0.2);
	color: #d4a84b;
}
.type-pill-anonymous {
	background: rgba(255, 255, 255, 0.07);
	color: #a89a8e;
}

.film-status-active {
	background: rgba(51, 128, 77, 0.22);
	color: #4ecb78;
}
.film-status-archived {
	background: rgba(255, 255, 255, 0.08);
	color: #a89a8e;
}
.film-status-deleted {
	background: rgba(157, 61, 47, 0.2);
	color: #f07878;
}
.film-status-unknown {
	background: rgba(255, 255, 255, 0.05);
	color: #888;
}

/* ── Sortable column headers ── */
.admin-table thead th.sortable {
	cursor: pointer;
	user-select: none;
}
.admin-table thead th.sortable:hover {
	background: linear-gradient(180deg, #7a3228, #5e2518);
}
.admin-table thead th.sort-asc::after  { content: " ▲"; font-size: 0.65em; opacity: 0.75; }
.admin-table thead th.sort-desc::after { content: " ▼"; font-size: 0.65em; opacity: 0.75; }

/* ── Disabled button/link state ── */
.btn-disabled,
button:disabled,
button[disabled],
input[type="submit"]:disabled,
input[type="submit"][disabled] {
	opacity: 0.45;
	pointer-events: none;
	cursor: not-allowed;
}

/* ── Price Map grid ── */
.price-map-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.settings-subheading {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 1.5rem 0 0.75rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid rgba(31, 26, 23, 0.12);
  color: var(--ink);
}
.settings-subheading:first-of-type {
  margin-top: 0;
}
.price-map-day-range {
  font-size: 0.85rem;
  font-weight: 400;
}
@media (max-width: 600px) {
  .price-map-grid {
    grid-template-columns: 1fr;
  }
  .price-map-day-range {
    display: block;
    margin-top: 0.15rem;
  }
}

/* ── Price input with prefix/suffix ── */
.price-input-wrap {
  display: flex;
  align-items: center;
  border: 1px solid rgba(196, 81, 106, 0.35);
  border-radius: 8px;
  overflow: hidden;
  background: #160b0a;
}
.price-prefix,
.price-suffix {
  padding: 0.55rem 0.65rem;
  background: rgba(196, 81, 106, 0.1);
  color: var(--muted);
  font-size: 0.95rem;
  border-right: 1px solid rgba(196, 81, 106, 0.25);
  user-select: none;
}
.price-suffix {
  border-right: none;
  border-left: 1px solid rgba(196, 81, 106, 0.25);
}
.price-input {
  border: none !important;
  border-radius: 0 !important;
  flex: 1;
  min-width: 0;
  padding: 0.55rem 0.65rem;
}
.price-input:focus {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}

/* ── Bulk refund actions bar ── */
.report-actions-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  padding: 0.6rem 0.9rem;
  background: #160b0a;
  border: 1px solid rgba(196, 81, 106, 0.3);
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
}

.report-record-counts {
  font-size: 0.85rem;
  font-weight: 400;
}

@media (max-width: 700px) {
	.report-actions-bar {
		gap: 0.5rem;
		padding: 0.5rem 0.75rem;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.report-actions-bar > strong {
		display: none;
	}

	.report-actions-mobile-row {
		display: flex;
		justify-content: center;
		gap: 1rem;
	}

	.admin-pp-page .report-actions-mobile-row .button-secondary {
		font-size: 0.8rem;
		padding: 0.45rem 0.85rem;
	}

	.admin-pp-page .report-actions-mobile-row .button-secondary::before,
	.admin-pp-page .report-actions-mobile-row .button-secondary::after {
		display: none;
	}
}

/* ── act-btn: toolbar action tiles ── */
.act-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 7px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  white-space: nowrap;
  transition: filter 0.12s;
  line-height: 1.2;
}
.act-btn svg { width: 14px; height: 14px; flex-shrink: 0; }
.act-btn:hover:not(:disabled):not(.btn-disabled) { filter: brightness(1.2); }
.act-btn:disabled,
.act-btn.btn-disabled { opacity: 0.38; cursor: default; pointer-events: none; }
.act-btn--neutral { background: rgba(237,232,223,0.07); color: var(--ink);      border-color: rgba(237,232,223,0.14); }
.act-btn--amber   { background: rgba(210,153,34,0.12);  color: var(--tx-amber); border-color: rgba(210,153,34,0.3);  }
.act-btn--red     { background: rgba(215,58,74,0.12);   color: var(--tx-red);   border-color: rgba(215,58,74,0.3);   }

/* ── Quick Reports form layout ── */
.quick-report-form {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.quick-report-field {
  flex: 1;
  min-width: 200px;
  max-width: 380px;
}

.quick-report-generate {
  flex-shrink: 0;
  align-self: flex-end;
  margin-bottom: 1px;
}

/* ── Scan History report table ── */
.scan-history-report-table .scan-history-report-date {
  white-space: nowrap;
}

/* ── Film search autocomplete ── */
.film-search-results {
  position: absolute;
  z-index: 100;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  background: #160b0a;
  border: 1px solid rgba(196, 81, 106, 0.4);
  border-radius: 6px;
  box-shadow: var(--shadow);
  list-style: none;
  margin: 0;
  padding: 0.25rem 0;
  max-height: 280px;
  overflow-y: auto;
}

.film-search-result {
  padding: 0.55rem 1rem;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: var(--ink);
}

.film-search-result:hover {
  background: rgba(196, 81, 106, 0.14);
}

.film-search-badge {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 400;
  white-space: nowrap;
}

.film-search-no-results {
  padding: 0.6rem 1rem;
  color: var(--muted);
  font-size: 0.9rem;
  list-style: none;
}

/* ── Bulk refund dialog ── */
.bulk-refund-dialog {
  border: 1px solid rgba(196, 81, 106, 0.4);
  border-radius: 10px;
  box-shadow: var(--shadow);
  padding: 2rem;
  max-width: 680px;
  width: 100%;
  font-family: inherit;
  background: #160b0a;
  color: var(--ink);
}
.bulk-refund-dialog::backdrop {
  background: rgba(0,0,0,0.65);
}
.bulk-refund-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 1rem;
  border-bottom: 2px solid rgba(196, 81, 106, 0.3);
  padding-bottom: 0.5rem;
}
.bulk-refund-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  margin-bottom: 0.75rem;
}
.bulk-refund-table th, .bulk-refund-table td {
  text-align: left;
  padding: 0.4rem 0.6rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.bulk-refund-table th { color: var(--muted); font-weight: 500; }
.refund-ok  { color: #4ecb78; font-weight: 600; }
.refund-no  { color: #f07878; font-size: 0.8rem; }
.bulk-refund-count {
  font-size: 0.85rem;
  color: var(--ink);
  margin-bottom: 0.5rem;
}
.bulk-refund-warning {
  color: #f07878;
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
}
.bulk-skip-block {
  background: rgba(240, 120, 120, 0.1);
  border: 1px solid rgba(240, 120, 120, 0.35);
  border-radius: 8px;
  padding: 0.65rem 0.85rem;
  margin-bottom: 1rem;
}
.bulk-skip-label {
  font-size: 0.85rem;
  color: #f09090;
  margin: 0 0 0.4rem;
}
.bulk-skip-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
  color: var(--ink);
}
.bulk-refund-done {
  color: #4ecb78;
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}
.bulk-refund-override {
  margin: 0.75rem 0;
  font-size: 0.85rem;
  color: #555;
}
.bulk-refund-progress {
  margin: 1rem 0 0.5rem;
}
.bulk-refund-progress-track {
  height: 8px;
  background: #e4ddd8;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 0.4rem;
}
.bulk-refund-progress-fill {
  height: 100%;
  background: #6c2a20;
  border-radius: 999px;
  transition: width 0.3s ease;
}
.bulk-refund-progress-text {
  font-size: 0.82rem;
  color: #666;
}
.bulk-refund-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.25rem;
  justify-content: flex-end;
}

.status-reservation_cancelled {
	background: rgba(157, 61, 47, 0.2);
	color: #f09090;
}

.status-reserved {
	background: rgba(30, 100, 180, 0.2);
	color: #60a0e0;
}

.seats-popover {
	padding: 0.6rem 1rem;
	border-radius: 10px;
	border: 1px solid rgba(31, 26, 23, 0.12);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	font-size: 0.875rem;
	max-width: 320px;
	line-height: 1.5;
}

.muted {
	color: var(--muted);
}

.site-footer {
	padding: 2rem 0 2rem;
	border-top: 1px solid rgba(196, 81, 106, 0.3);
}

.footer-grid {
	grid-template-columns: 2fr 1.1fr 1.1fr;
	gap: 0 3rem;
	align-items: start;
}

.footer-brand h2 {
	margin: 0.25rem 0 0;
	font-size: 1.35rem;
}

.site-footer .eyebrow {
	margin: 0 0 0.5rem;
}

.site-footer p {
	margin: 0 0 0.3rem;
	font-size: 0.88rem;
	line-height: 1.55;
}

.site-footer p:last-child {
	margin-bottom: 0;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.footer-legal {
	margin-top: 1.5rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(237, 232, 223, 0.08);
	text-align: center;
}

.footer-legal-link {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(237, 232, 223, 0.3);
	text-decoration: none;
}

.footer-legal-link:hover {
	color: rgba(237, 232, 223, 0.6);
}

.site-footer a:hover {
	color: var(--accent);
	text-decoration: underline;
}

@media (max-width: 900px) {
	.hero-panel,
	.film-hero,
	.split-layout,
	.wide-right,
	.prose-grid,
	.footer-grid,
	.spotlight-band,
	.stats-grid,
	.home-lower-panel,
	.social-follow-grid,
	.two-up,
	.three-up,
	.four-up {
		grid-template-columns: 1fr;
	}

	.hero-panel {
		padding: 1.35rem 0 1rem;
	}

	.hero-copy {
		padding: 1.6rem 1.2rem;
	}

	.hero-logo {
		margin-bottom: 0.35rem;
	}

	.hero-copy .eyebrow {
		margin-bottom: 0.5rem;
	}

	.hero-actions {
		margin-top: 0.15rem;
		flex-direction: column;
		align-items: stretch;
		gap: 0.8rem;
	}

	.hero-actions .button-primary,
	.hero-actions .button-secondary {
		width: 100%;
		justify-content: center;
	}

	.synopsis-text.is-collapsed {
		display: -webkit-box;
		line-clamp: 4;
		-webkit-line-clamp: 4;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.film-card-actions {
		grid-template-columns: 1fr 1fr;
	}

	.about-grid {
		grid-template-columns: 1fr;
	}

	.ad-preview-image {
		width: 100%;
	}

	.parties-hero-image {
		width: 100%;
	}

	.showing-purchase-panel {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.seat-section-tabs {
		display: flex;
		gap: 0.5rem;
		justify-content: center;
		margin-bottom: 0.5rem;
	}

	.seat-swipe-hint {
		display: block; /* already shown globally; override kept for specificity */
	}

	.seat-section-tab {
		border: 1.5px solid rgba(110, 32, 45, 0.35);
		border-radius: 999px;
		padding: 0.4rem 1.1rem;
		font-size: 0.78rem;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		background: transparent;
		color: rgba(110, 32, 45, 0.6);
		cursor: pointer;
		transition: background 0.15s, color 0.15s, border-color 0.15s;
		font: inherit;
	}

	.seat-section-tab.is-active {
		background: var(--accent);
		border-color: var(--accent);
		color: #fff9f3;
	}

	.seat-selection-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-behavior: smooth;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 0.5rem;
		padding: 0.5rem;
		/* Inset shadows mark both edges — they stay fixed as content scrolls,
		   making it immediately obvious the map is horizontally scrollable */
		box-shadow:
			inset  3rem 0 2.5rem -2rem rgba(31, 26, 23, 0.14),
			inset -3rem 0 2.5rem -2rem rgba(31, 26, 23, 0.14);
	}

	.seat-section {
		scroll-snap-align: start;
	}

	.seat-scroll-hint {
		display: block;
		text-align: center;
		font-size: 1rem;
		font-weight: 700;
		color: var(--muted);
		letter-spacing: 0.04em;
		margin: 0.5rem 0 0.2rem;
	}

	.seat-selection-hint,
	.overflow-notice {
		text-align: center;
		width: fit-content;
		max-width: calc(100% - 1rem);
		margin-left: auto;
		margin-right: auto;
	}

	.seat-map {
		grid-template-columns: max-content max-content max-content;
		min-width: 680px;
		padding-bottom: 0.4rem;
		width: max-content;
	}

	.screen-label,
	.screen-label-rear {
		width: max(100%, 680px);
	}

	.film-detail-layout {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}

	.film-detail-poster {
		margin: 0.25rem auto 0.5rem;
	}

	.film-hero-full h1 {
		margin-bottom: 0.35rem;
	}

	.trailer-desktop {
		display: none;
	}

	.trailer-mobile {
		display: block;
	}

	.seat-section-center {
		min-width: 320px;
	}

	.seat-section-left,
	.seat-section-right {
		min-width: 150px;
	}

	.schedule-item,
	.showing-header,
	.section-heading,
	.button-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.action-row {
		align-items: center;
		flex-direction: column;
	}

	/* Step 2 payment action row: keep Pay now + Change order side-by-side */
	.checkout-action-row {
		align-items: center;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.75rem;
	}

	.nav-row {
		align-items: center;
		flex-direction: row;
		gap: 0.75rem;
		padding: 0.75rem 0;
		flex-wrap: wrap;
		justify-content: center;
	}

	.brand-mark {
		display: inline-block;
		font-size: 1.15rem;
		letter-spacing: 0.05em;
		flex-shrink: 0;
		font-weight: 700;
	}

	.brand-mark-image {
		height: 6.05rem;
	}

	.site-nav {
		display: flex;
		flex-wrap: wrap;
		gap: 0.35rem;
		width: auto;
		flex: 1;
		justify-content: center;
	}

	.site-nav-primary,
	.site-nav-secondary {
		align-items: center;
		flex-wrap: nowrap;
		gap: 0.55rem;
		max-width: 100%;
		overflow-x: auto;
		padding-bottom: 0.1rem;
		white-space: nowrap;
	}

	.site-nav-secondary {
		flex-basis: 100%;
		justify-content: flex-end;
	}

	.film-form-actions {
		align-items: center;
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0.45rem;
		justify-content: flex-start;
	}

	.film-form-actions .button-primary,
	.film-form-actions .button-secondary {
		padding: 0.52rem 0.82rem;
		font-size: 0.86rem;
		white-space: nowrap;
	}

	.admin-showing-card,
	.tmdb-panel {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.admin-showing-card .showing-date-time-row,
	.event-date-time-row {
		grid-template-columns: 1fr;
		row-gap: 0.9rem;
		column-gap: 0;
	}

	.admin-showing-card .showing-date-time-row input[type="date"],
	.event-date-time-row input[type="date"] {
		width: 100%;
	}

	.admin-showing-card .showing-time-selects,
	.event-time-selects {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		width: 100%;
	}

	.admin-showing-card .showing-time-selects select,
	.event-time-selects select {
		width: 100%;
		min-width: 0;
	}

	.admin-table {
		min-width: 640px;
		width: max-content;
	}

	.admin-table th:last-child,
	.admin-table td:last-child {
		min-width: 150px;
	}

	.admin-table .table-actions {
		flex-wrap: nowrap;
	}

	.site-nav-primary a,
	.site-nav-secondary a,
	.site-nav .nav-button,
	.site-nav .nav-pill,
	.site-nav .nav-pill-outline,
	.site-nav .nav-button-subtle {
		font-size: 1.1rem;
	}

	.site-nav form,
	.site-nav-primary form,
	.site-nav-secondary form {
		display: inline-flex;
		margin: 0;
	}

	.nav-pill,
	.nav-button,
	.nav-pill-outline,
	.nav-button-subtle {
		padding: 0.58rem 0.9rem;
	}

	.report-filter-grid {
		grid-template-columns: 1fr;
	}

	.report-filter-actions {
		justify-content: stretch;
		flex-direction: column;
		align-items: stretch;
	}

	.scanner-shell {
		display: block;
	}

	.scanner-panel {
		padding: 0.85rem;
	}

	.scanner-controls {
		align-items: center;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: center;
	}

	.button-row.scanner-controls {
		align-items: center;
		flex-direction: row;
		justify-content: center;
	}

	.scanner-controls .button-primary,
	.scanner-controls .button-secondary {
		flex: 0 1 auto;
		min-width: 132px;
	}

	.scanner-history .scanner-table th,
	.scanner-history .scanner-table td {
		padding: 0.65rem 0.7rem;
		font-size: 0.86rem;
	}

	.scanner-history-wrap {
		overflow-x: auto;
	}

	.scanner-controls .button-primary,
	.scanner-controls .button-secondary {
		flex: 0 1 auto;
		min-width: 132px;
	}
}

@media (max-width: 640px) {
	.site-footer {
		padding: 1.5rem 0 1.25rem;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 1rem 1.5rem;
	}

	.footer-brand {
		grid-column: 1 / -1;
		text-align: center;
		padding-bottom: 1rem;
		border-bottom: 1px solid rgba(196, 81, 106, 0.2);
	}

	.footer-brand h2 {
		font-size: 1.2rem;
	}

	.site-footer .eyebrow {
		font-size: 0.65rem;
	}
}

/* ── Purchase Modal Overlay ───────────────────────────────── */
.purchase-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	z-index: 1000;
	background: rgba(0, 0, 0, 0.5);
	align-items: center;
	justify-content: center;
}
.purchase-modal-overlay.is-open {
	display: flex;
}

.ticket-modal-content {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 12px;
	padding: 2em 2.5em;
	max-width: 90vw;
	max-height: 90vh;
	overflow: auto;
	position: relative;
	color: var(--ink);
	box-shadow: var(--shadow);
}
.ticket-modal-content h3 {
	margin: 0 0 0.75rem;
	color: var(--accent);
}
.modal-close {
	position: absolute;
	top: 1em;
	right: 1em;
	font-size: 1.5em;
	background: none;
	border: none;
	color: var(--muted);
	cursor: pointer;
	line-height: 1;
	padding: 0 0.25rem;
}
.modal-close:hover { color: var(--ink); }

/* ── Modal ─────────────────────────────────────────────────── */
dialog.modal-overlay {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	border: none;
	padding: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 1000;
}

dialog.modal-overlay[open] {
	display: flex;
	align-items: center;
	justify-content: center;
}

dialog.modal-overlay::backdrop {
	display: none;
}

.modal-box {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 0.75rem;
	padding: 2rem;
	max-width: 480px;
	width: 90%;
	box-shadow: var(--shadow);
	color: var(--ink);
}

.modal-box h2 {
	margin-top: 0;
	font-size: 1.2rem;
	color: var(--accent);
}

.modal-box ul {
	margin: 0.5rem 0 1rem;
	padding-left: 1.25rem;
}

.delete-choice-options {
	margin-bottom: 1rem;
}

.delete-choice-option {
	display: block;
	cursor: pointer;
	margin-bottom: 0.5rem;
	line-height: 1.5;
}

.delete-choice-option input[type="radio"] {
	margin-right: 0.4rem;
	vertical-align: middle;
}

.wide-card > .button-secondary,
.wide-card > .button-primary {
	display: block;
	width: fit-content;
	margin: 0 auto;
}

.button-danger {
	background: var(--accent);
	color: #fff9f3;
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 0.8rem 1.2rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 140ms ease;
}

.button-danger:hover {
	background: var(--accent-hover);
}

/* Turbo confirm dialog */
.turbo-confirm-dialog {
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 12px;
	padding: 2rem;
	max-width: 420px;
	width: 90vw;
	box-shadow: var(--shadow);
	background: #160b0a;
	color: var(--ink);
}
.turbo-confirm-dialog::backdrop {
	background: rgba(31, 26, 23, 0.45);
}
.turbo-confirm-message {
	margin: 0 0 1.5rem;
	font-size: 1rem;
	color: var(--ink);
	line-height: 1.5;
}
.turbo-confirm-actions {
	display: flex;
	gap: 0.75rem;
	justify-content: flex-end;
}

/* ── Seat-refund / seat-cancel dialog ─────────────────────── */
.seat-refund-dialog {
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 8px;
	padding: 0;
	max-width: 540px;
	width: 94vw;
	box-shadow: var(--shadow);
	background: #160b0a;
	overflow: hidden;
	color: var(--ink);
}
.seat-refund-dialog::backdrop {
	background: rgba(31, 26, 23, 0.5);
}
.seat-refund-dialog-inner {
	padding: 1.75rem 2rem 1.5rem;
	position: relative;
	box-sizing: border-box;
	width: 100%;
}
.seat-refund-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: none;
	border: none;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	color: var(--muted);
	padding: 0 0.25rem;
}
.seat-refund-close:hover { color: var(--ink); }
.seat-refund-title {
	margin: 0 0 0.35rem;
	font-size: 1.15rem;
}
.seat-refund-subtitle {
	margin: 0 0 0.75rem;
	font-size: 0.88rem;
	color: var(--muted);
}
.seat-refund-instructions {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: var(--ink);
	line-height: 1.5;
}
.seat-refund-companion-note {
	background: rgba(200, 160, 40, 0.12);
	border-left: 3px solid #c8a020;
	border-radius: 4px;
	padding: 0.5rem 0.75rem;
	margin: 0 0 1rem;
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--ink);
}
.seat-refund-override-notice {
	background: rgba(214, 165, 82, 0.15);
	border: 1px solid rgba(214, 165, 82, 0.45);
	border-radius: 4px;
	padding: 0.5rem 0.75rem;
	font-size: 0.85rem;
	color: #e8c070;
	margin-bottom: 0.75rem;
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
	box-sizing: border-box;
	width: 100%;
}
.seat-refund-select-all-row {
	margin-bottom: 0.6rem;
	font-size: 0.875rem;
}
.seat-refund-select-all-row label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	cursor: pointer;
}
.seat-refund-seats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 0.4rem;
	border: 1px solid rgba(196, 81, 106, 0.3);
	border-radius: 5px;
	padding: 0.6rem 0.75rem;
	margin-bottom: 0.9rem;
}
.seat-refund-seat-label {
	display: flex;
	align-items: flex-start;
	gap: 0.4rem;
	font-size: 0.88rem;
	cursor: pointer;
}
.seat-ticket-type {
	display: block;
	font-size: 0.75rem;
	color: var(--muted);
	font-weight: 400;
	margin-top: 1px;
}
.seat-refund-seat-label.is-scanned {
	opacity: 0.5;
	cursor: default;
}
.seat-refund-seat-label input[type="checkbox"],
.seat-refund-select-all-row input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0;
	cursor: pointer;
}
.seat-refund-summary {
	font-size: 0.88rem;
	color: var(--muted);
	min-height: 1.3em;
	margin: 0 0 1rem;
}
.seat-refund-summary--active {
	color: var(--accent);
	font-weight: 600;
}
.seat-refund-summary--empty {
	color: var(--muted);
	font-style: italic;
}
.seat-refund-actions {
	display: flex;
	gap: 0.6rem;
	justify-content: flex-end;
}

/* ── Type-picker sub-panel (shown inside seat-refund dialog) ── */
.seat-type-picker {
	display: none; /* hidden by default; overridden below when [hidden] is absent */
	flex-direction: column;
	gap: 0.75rem;
}
.seat-type-picker:not([hidden]) {
	display: flex;
}
.seat-type-picker-back {
	background: none;
	border: none;
	color: var(--muted);
	cursor: pointer;
	font-size: 0.85rem;
	padding: 0;
	text-align: left;
}
.seat-type-picker-back:hover { color: var(--ink); }
.seat-type-picker-title {
	font-size: 0.9rem;
	margin: 0;
}
.seat-type-picker-options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.seat-type-btn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.6rem 0.75rem;
	border: 1px solid rgba(196, 81, 106, 0.35);
	border-radius: 6px;
	background: rgba(196, 81, 106, 0.07);
	color: var(--ink);
	cursor: pointer;
	text-align: left;
	transition: background 0.12s, border-color 0.12s;
	width: 100%;
}
.seat-type-btn:hover:not(.is-disabled) {
	background: rgba(196, 81, 106, 0.16);
	border-color: var(--accent);
}
.seat-type-btn.is-disabled {
	opacity: 0.45;
	cursor: default;
}
.seat-type-btn-name {
	font-weight: 500;
	font-size: 0.9rem;
}
.seat-type-btn-meta {
	font-size: 0.8rem;
	color: var(--muted);
}

.col-actions {
	white-space: normal;
	min-width: 8rem;
	max-width: 14rem;
}

.admin-table th.col-show-ticket,
.admin-table td.col-show-ticket,
.admin-table th.col-actions {
	display: none;
}

/* td.col-actions must stay rendered (not display:none) because it contains
   <dialog> elements — display:none on any ancestor breaks showModal() */
.admin-table td.col-actions {
	width: 0;
	max-width: 0;
	min-width: 0;
	padding: 0;
	overflow: hidden;
	border-left: none;
	border-right: none;
}
/* Hide visible trigger elements (buttons, forms, reason text) while keeping
   the Stimulus controller divs and dialogs in a rendered context */
.admin-table td.col-actions > form,
.admin-table td.col-actions > span {
	display: none;
}
.admin-table td.col-actions > div > button.button-compact {
	display: none;
}

/* ── Seat Maps horizontal scroll ── */
.seat-maps-scroll {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	padding-bottom: 0.75rem;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
}

.seat-maps-scroll::-webkit-scrollbar {
	height: 4px;
}

.seat-maps-scroll::-webkit-scrollbar-thumb {
	background: rgba(107, 28, 46, 0.3);
	border-radius: 2px;
}

.seat-map-scroll-card {
	flex: 0 0 300px;
	scroll-snap-align: start;
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.28);
	border-left: 4px solid var(--accent);
	border-radius: 14px;
	padding: 1.1rem 1.25rem 0.9rem;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}

/* ── Tickets breakdown dialog table ── */
.tickets-breakdown-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	margin-top: 0.5rem;
}
.tickets-breakdown-table th {
	text-align: left;
	font-weight: 600;
	padding: 0.4rem 0.75rem 0.4rem 0;
	color: var(--muted);
	white-space: nowrap;
}
.tickets-breakdown-table td {
	text-align: right;
	padding: 0.4rem 0;
	font-variant-numeric: tabular-nums;
}
.tickets-breakdown-table tr.tickets-breakdown-divider th,
.tickets-breakdown-table tr.tickets-breakdown-divider td {
	border-top: 1px solid rgba(196, 81, 106, 0.2);
	padding-top: 0.65rem;
	margin-top: 0.25rem;
}

/* ── Admin section tab nav ── */
.admin-tab-nav {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 2px solid rgba(237, 232, 223, 0.1);
	padding-bottom: 0;
}

.admin-tab-nav a,
.admin-tab-nav span {
	display: inline-block;
	padding: 0.45rem 1rem;
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	color: rgba(237, 232, 223, 0.45);
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	border-radius: 4px 4px 0 0;
	transition: color 0.15s, border-color 0.15s;
}

@media (hover: hover) and (pointer: fine) {
	.admin-tab-nav a:hover {
		color: rgba(237, 232, 223, 0.85);
		border-bottom-color: rgba(237, 232, 223, 0.3);
	}
}

.admin-tab-nav span.active {
	color: #ede8df;
	border-bottom-color: rgba(237, 232, 223, 0.6);
}

/* ── Persistent admin toolbar (manager nav bar) ── */
.admin-persistent-nav {
	background: rgba(31, 26, 23, 0.025);
	border-bottom: 1px solid rgba(31, 26, 23, 0.09);
}

.admin-persistent-nav-inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0.55rem 0;
	gap: 1.25rem;
}

.admin-persistent-back {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
	margin-right: auto;
	transition: color 0.15s;
}

.admin-persistent-back:hover {
	color: var(--accent);
}

.admin-toolbar-mobile {
	display: none;
}

/* ── Scanner toolbar (scanner role) ── */
.scanner-toolbar-links {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-left: auto;
}

.scanner-toolbar-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.8rem;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--ink);
	border: 1px solid rgba(31, 26, 23, 0.15);
	border-radius: 8px;
	text-decoration: none;
	background: rgba(31, 26, 23, 0.04);
	transition: background 0.15s, color 0.15s;
}

.scanner-toolbar-link:hover {
	background: rgba(31, 26, 23, 0.09);
	color: var(--ink);
}

.scanner-toolbar-link.is-active {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

@media (max-width: 700px) {
	.admin-toolbar-desktop {
		display: none;
	}

	.admin-persistent-nav-inner {
		padding: 0.45rem 0;
		gap: 0.5rem;
	}

	.admin-persistent-back {
		margin-right: auto;
	}

	.scanner-toolbar-links {
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		touch-action: pan-x;
		scrollbar-width: none;
		flex-shrink: 1;
		min-width: 0;
		padding-bottom: 1px;
	}

	.scanner-toolbar-links::-webkit-scrollbar {
		display: none;
	}

	.scanner-toolbar-link {
		white-space: nowrap;
	}

	.admin-toolbar-mobile {
		display: flex;
		gap: 0.4rem;
		margin-left: auto;
	}

	.admin-toolbar-dropdown {
		position: relative;
	}

	.admin-toolbar-dropdown-summary {
		display: flex;
		align-items: center;
		gap: 0.2rem;
		list-style: none;
		padding: 0.25rem 0.5rem;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.03em;
		color: var(--ink);
		background: rgba(196, 81, 106, 0.1);
		border: 1px solid rgba(196, 81, 106, 0.3);
		border-radius: 8px;
		cursor: pointer;
		white-space: nowrap;
		user-select: none;
	}

	.admin-toolbar-dropdown-summary::-webkit-details-marker {
		display: none;
	}

	.admin-toolbar-dropdown[open] > .admin-toolbar-dropdown-summary {
		background: var(--accent);
		color: #fff;
		border-color: var(--accent);
	}

	.admin-toolbar-dropdown[open] > .admin-toolbar-dropdown-summary svg {
		stroke: #fff;
		transform: rotate(180deg);
	}

	.admin-toolbar-dropdown-menu {
		position: absolute;
		top: calc(100% + 0.35rem);
		left: 0;
		min-width: 10rem;
		background: #160b0a;
		border: 1px solid rgba(196, 81, 106, 0.35);
		border-radius: 10px;
		box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
		z-index: 100;
		padding: 0.3rem 0;
		overflow: hidden;
	}

	.admin-toolbar-dropdown-menu-right {
		left: auto;
		right: 0;
	}

	.admin-toolbar-dropdown-item {
		display: block;
		padding: 0.6rem 1rem;
		font-size: 0.88rem;
		font-weight: 600;
		color: rgba(225, 180, 170, 0.9);
		text-decoration: none;
	}

	.admin-toolbar-dropdown-item:hover {
		background: rgba(122, 42, 42, 0.5);
		color: rgba(255, 215, 210, 1);
	}

	body {
		overflow-x: clip;
	}

	.admin-shell:has(> .admin-tab-nav:first-child),
	.sd-shell:has(> .admin-tab-nav:first-child) {
		padding-top: 0;
	}

	.admin-tab-nav {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x;
		justify-content: flex-start;
		gap: 0;
		background: rgba(22, 11, 10, 0.85);
		border-radius: 8px;
		border-bottom: none;
		padding: 0.2rem;
		margin-bottom: 1rem;
	}

	.admin-tab-nav a,
	.admin-tab-nav span {
		flex-shrink: 0;
		padding: 0.4rem 0.75rem;
		font-size: 0.82rem;
		color: rgba(237, 232, 223, 0.5);
		border-bottom: none;
		border-radius: 6px;
	}

	.admin-tab-nav span.active {
		color: #ede8df;
		background: rgba(237, 232, 223, 0.1);
		border-bottom-color: transparent;
	}
}

/* ── Analytics page ── */
.analytics-stat-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.analytics-stat-tile {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.28);
	border-top: 3px solid var(--accent);
	border-radius: 10px;
	padding: 1rem 1.1rem;
	text-align: center;
}

.analytics-stat-tile .stat-label {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 0.35rem;
}

.analytics-stat-tile .stat-value {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--ink);
}

.analytics-highlight-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 2rem;
}

.analytics-highlight-tile {
	background: #160b0a;
	border: 1px solid rgba(196, 81, 106, 0.28);
	border-left: 4px solid var(--accent);
	border-radius: 10px;
	padding: 0.85rem 1.1rem;
}

.analytics-highlight-tile .hl-label {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 0.25rem;
}

.analytics-highlight-tile .hl-title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ink);
}

.analytics-highlight-tile .hl-value {
	font-size: 0.88rem;
	color: var(--muted);
	margin-top: 0.15rem;
}

.analytics-card-title {
	font-weight: 700;
	font-size: 1rem;
	color: var(--ink);
	margin-bottom: 0.75rem;
}

@media (max-width: 640px) {
	.analytics-stat-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.analytics-highlight-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Seat section jump tabs (mobile only) ── */

.seat-section-tabs {
	display: none; /* shown only on mobile via media query below */
}

/* ── Swipe hint — appears on reveal, fades and is removed from layout ── */

.seat-swipe-hint {
	display: block;
	text-align: center;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgba(180, 80, 70, 0.95);
	background: rgba(110, 32, 45, 0.1);
	border: 1.5px solid rgba(150, 60, 50, 0.35);
	border-radius: 999px;
	padding: 0.28rem 1.1rem;
	margin: 0.25rem auto 0.5rem;
	width: fit-content;
}

.seat-accessibility-label {
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #4a9fd4;
	text-align: center;
	margin-bottom: 3px;
	overflow: hidden;
}

/* ── Seat color legend ── */

.seat-legend {
	display: flex;
	gap: 0.9rem;
	justify-content: center;
	flex-wrap: wrap;
	font-size: 0.72rem;
	color: var(--ink);
	opacity: 0.8;
	margin-bottom: 0.4rem;
}

.legend-item {
	display: flex;
	align-items: center;
	gap: 0.3rem;
}

.legend-swatch {
	width: 13px;
	height: 13px;
	border-radius: 4px;
	display: inline-block;
	flex-shrink: 0;
}

.legend-available     { background: #2a1818; border: 1px solid rgba(255, 255, 255, 0.12); }
.legend-selected      { background: var(--accent); border: 1px solid var(--accent); }
.legend-overflow      { background: #231a1a; border: 1px solid rgba(255, 255, 255, 0.14); }
.legend-extra-legroom { background: #1a2030; border: 1px solid rgba(85, 130, 175, 0.35); }
.legend-wheelchair    { background: #1a2a1a; border: 1px solid rgba(80, 160, 100, 0.5); }
.legend-taken         { background: #1e1010; border: 1px solid rgba(255, 255, 255, 0.06); }

/* ── Seat map page (dedicated seat selection step) ── */

.seat-map-page {
	max-width: 720px;
	margin: 0 auto;
	display: grid;
	gap: 1.5rem;
}

.seat-map-page-heading {
	text-align: center;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}

.seat-map-page-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 0;
}

a.seat-map-back-btn {
	text-decoration: none;
	font-weight: 600;
}

/* ── Accounts context menu ── */
.accounts-name-cell {
	cursor: pointer;
	color: var(--ink);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: rgba(237, 232, 223, 0.4);
	text-underline-offset: 3px;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}
.accounts-name-cell:hover {
	color: #fff;
	text-decoration-color: rgba(237, 232, 223, 0.8);
}
.accounts-name-cell:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: 3px;
}

.accounts-ctx-menu {
	position: fixed;
	z-index: 9000;
	background: #1e1010;
	border: 1px solid rgba(196, 81, 106, 0.4);
	border-radius: 10px;
	box-shadow: var(--shadow);
	padding: 0.3rem;
	min-width: 200px;
	animation: dropdown-in 0.12s ease forwards;
}

.accounts-ctx-item {
	display: block;
	width: 100%;
	padding: 0.5rem 0.85rem;
	background: none;
	border: none;
	border-radius: 6px;
	font-size: 0.9rem;
	font-weight: 600;
	color: rgba(225, 180, 170, 0.9);
	text-align: left;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.1s, color 0.1s;
}
.accounts-ctx-item:hover {
	background: rgba(122, 42, 42, 0.5);
	color: rgba(255, 215, 210, 1);
}
.accounts-ctx-danger {
	color: #f07878;
}
.accounts-ctx-danger:hover {
	background: rgba(196, 81, 106, 0.25);
	color: #ffa0a0;
}
.accounts-ctx-divider {
	height: 1px;
	background: rgba(196, 81, 106, 0.2);
	margin: 0.25rem 0.5rem;
}

/* ════════════════════════════════════════════════════════════════════
   FILM STRIP BUTTONS  (.fs-*)
   Used on homepage CTA section. All new rules; nothing above modified.
   ════════════════════════════════════════════════════════════════════ */

.fs-btn {
  position: relative;
  display: block;
  text-decoration: none;
  background: #0d0708;
  border: 1px solid #1d1213;
  border-radius: 2px;
  overflow: hidden;
  cursor: pointer;
}

/* — Sprocket rails — */
.fs-rail {
  position: absolute;
  left: 0; right: 0;
  height: 22px;
  background: linear-gradient(180deg, #1a0d0f, #0d0708);
  display: flex;
  align-items: center;
  justify-content: space-around;
  z-index: 2;
}
.fs-rail--top { top: 0;    border-bottom: 1px solid #2a1a1c; }
.fs-rail--bot { bottom: 0; border-top:    1px solid #2a1a1c; }

.fs-sprocket {
  width: 18px;
  height: 11px;
  border-radius: 2px;
  background: #040203;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.8),
    0 0 0 1px #1a0d0f;
  flex-shrink: 0;
}

/* — Frame (celluloid content area) — */
.fs-frame {
  position: relative;
  padding: 44px 80px 44px 110px;
  background: repeating-linear-gradient(90deg,
    #100707 0 80px,
    #140909 80px 160px);
  transition: background 260ms ease;
}
.fs-btn:hover .fs-frame,
.fs-btn:focus-visible .fs-frame {
  background:
    linear-gradient(180deg, rgba(120, 30, 40, 0.15), transparent),
    repeating-linear-gradient(90deg,
      #120808 0 80px,
      #160a0b 80px 160px);
}
.fs-frame::before {
  content: "";
  position: absolute;
  inset: 22px 0;
  pointer-events: none;
  background: repeating-linear-gradient(90deg,
    transparent 0 240px,
    rgba(255, 230, 180, 0.05) 240px 241px);
}

/* — Icon disc — */
.fs-icon-wrap {
  position: absolute;
  left: 32px;
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #2a1518, #0d0506);
  border: 1px solid #4a2a2c;
  display: grid;
  place-items: center;
  transition: box-shadow 260ms;
}
.fs-btn:hover .fs-icon-wrap,
.fs-btn:focus-visible .fs-icon-wrap {
  box-shadow: 0 0 30px rgba(220, 90, 90, 0.3);
}
.fs-icon-wrap svg {
  stroke: #c79898;
  transition: stroke 260ms;
}
.fs-btn:hover .fs-icon-wrap svg,
.fs-btn:focus-visible .fs-icon-wrap svg {
  stroke: #f0c8c0;
}

/* — Title — */
.fs-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-style: italic;
  font-size: 24px;
  color: #f5e6d6;
  margin: 0;
  line-height: 1.2;
  letter-spacing: 0.005em;
}

/* — Subtitle — */
.fs-sub {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: #a07878;
  margin-top: 6px;
  text-transform: uppercase;
}

/* — Play indicator — */
.fs-play {
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translateY(-50%) translateX(0);
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  color: #d8a8a8;
  letter-spacing: 0.3em;
  transition: transform 280ms;
  pointer-events: none;
}
.fs-btn:hover .fs-play,
.fs-btn:focus-visible .fs-play {
  transform: translateY(-50%) translateX(4px);
}

/* — Focus ring — */
.fs-btn:focus-visible {
  outline: 2px solid #d8a8a8;
  outline-offset: 3px;
}

/* — Mobile — */
/* Hide ▸ PLAY on narrow viewports — at these widths the subtitle wraps
   and the absolute label overlaps the text. Also applies on touch. */
@media (max-width: 700px) {
  .fs-play { display: none; }
}
@media (hover: none) {
  .fs-play { display: none; }
}
@media (max-width: 600px) {
  /* Right padding drops to match left proportions now that PLAY is gone */
  .fs-frame { padding: 36px 28px 36px 90px; }
  .fs-title { font-size: 20px; }
  .fs-icon-wrap { width: 46px; height: 46px; left: 24px; }
}

/* — Reduced motion — */
@media (prefers-reduced-motion: reduce) {
  .fs-frame, .fs-icon-wrap, .fs-icon-wrap svg, .fs-play { transition: none; }
}

/* ════════════════════════════════════════════════════════════════════
   FILM STRIP SOCIAL CARDS  (.fs-soc*)
   Companion to .fs-btn; shares all design tokens.
   ════════════════════════════════════════════════════════════════════ */

.fs-socials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.fs-soc {
  position: relative;
  display: block;
  text-decoration: none;
  background: #0d0708;
  border: 1px solid #1d1213;
  border-radius: 2px;
  overflow: hidden;
  color: #f5e6d6;
  cursor: pointer;
}

/* — Sprocket rails (same token values as .fs-btn rails) — */
.fs-soc__rail {
  position: absolute;
  left: 0; right: 0;
  height: 22px;
  background: linear-gradient(180deg, #1a0d0f, #0d0708);
  display: flex;
  align-items: center;
  justify-content: space-around;
  z-index: 2;
}
.fs-soc__rail--top { top: 0;    border-bottom: 1px solid #2a1a1c; }
.fs-soc__rail--bot { bottom: 0; border-top:    1px solid #2a1a1c; }
.fs-soc__sprocket {
  width: 18px;
  height: 11px;
  border-radius: 2px;
  background: #040203;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.8), 0 0 0 1px #1a0d0f;
  flex-shrink: 0;
}

/* — Frame — */
.fs-soc__frame {
  position: relative;
  padding: 60px 40px;
  background: repeating-linear-gradient(90deg,
    #100707 0 80px,
    #140909 80px 160px);
  text-align: center;
  transition: background 260ms ease;
}
.fs-soc:hover .fs-soc__frame,
.fs-soc:focus-visible .fs-soc__frame {
  background:
    linear-gradient(180deg, rgba(120, 30, 40, 0.15), transparent),
    repeating-linear-gradient(90deg,
      #120808 0 80px,
      #160a0b 80px 160px);
}

/* — Icon disc — */
.fs-soc__disc {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  margin: 0 auto 18px;
  background: radial-gradient(circle at 35% 30%, #2a1518, #0d0506);
  border: 1px solid #4a2a2c;
  display: grid;
  place-items: center;
  transition: box-shadow 260ms;
}
.fs-soc:hover .fs-soc__disc,
.fs-soc:focus-visible .fs-soc__disc {
  box-shadow: 0 0 30px rgba(220, 90, 90, 0.3);
}

/* — Monogram — */
.fs-soc__monogram {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  color: #c79898;
  transition: color 260ms;
}
.fs-soc:hover .fs-soc__monogram,
.fs-soc:focus-visible .fs-soc__monogram { color: #f0c8c0; }

/* — Platform name — */
.fs-soc__name {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-style: italic;
  font-size: 28px;
  color: #f5e6d6;
  line-height: 1.1;
  margin: 0;
}

/* — Handle — */
.fs-soc__handle {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.25em;
  color: #a07878;
  margin-top: 8px;
  text-transform: uppercase;
}

/* — CTA pill — */
.fs-soc__cta {
  display: inline-block;
  margin-top: 22px;
  padding: 10px 24px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid #d8a8a8;
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: #d8a8a8;
  text-transform: uppercase;
  transition: color 260ms, box-shadow 260ms;
}
.fs-soc:hover .fs-soc__cta,
.fs-soc:focus-visible .fs-soc__cta {
  color: #fbe3d8;
  box-shadow: 0 0 24px rgba(220, 90, 90, 0.25);
}

/* — Focus ring — */
.fs-soc:focus-visible { outline: 2px solid #d8a8a8; outline-offset: 3px; }

/* — Mobile — */
@media (max-width: 640px) {
  .fs-socials { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 600px) {
  .fs-soc__frame { padding: 44px 28px; }
  .fs-soc__name  { font-size: 24px; }
}

/* — Reduced motion — */
@media (prefers-reduced-motion: reduce) {
  .fs-soc__frame, .fs-soc__disc, .fs-soc__monogram, .fs-soc__cta { transition: none; }
}

/* ════════════════════════════════════════════════════════════════════
   PERFORATED PILL NAV
   Reskins .nav-home-icon + .nav-dropdown-label as film-strip pills.
   Part of the same visual family as .fs-btn and .fs-soc.
   All rules append here; existing rules overridden by cascade order.
   ════════════════════════════════════════════════════════════════════ */

/* Tighten gap to match the 12px design spec */
.site-nav { gap: 12px; }

/* ── Shared pill base ── */
.nav-home-icon,
.nav-dropdown-label {
  height: 56px;
  background: linear-gradient(180deg, #3a141a, #2a0d10);
  border: 1px solid #4a1a22;
  border-radius: 28px;
  color: #d8a8a8;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0;
  flex-shrink: 0;
  transition:
    background 220ms ease,
    border-color 220ms ease,
    color 220ms ease,
    box-shadow 220ms ease;
}

/* Hamburger + account: default at hover brightness — no state change on open */
.nav-dropdown-label {
  background: linear-gradient(180deg, #6e2a35, #4a1a22);
  border-color: #6e2a35;
  color: #f0c8c0;
}

/* Icon-only (home + hamburger): 64px */
.nav-home-icon,
.nav-hamburger .nav-dropdown-label {
  width: 64px;
}

/* Account (person + chevron): 92px */
.nav-dropdown:not(.nav-hamburger) .nav-dropdown-label {
  width: 92px;
}

/* ── Film perforations via ::before (left) / ::after (right) ── */
.nav-home-icon::before,
.nav-home-icon::after,
.nav-dropdown-label::before,
.nav-dropdown-label::after {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  width: 4px;
  pointer-events: none;
  background-image: linear-gradient(
    180deg,
    rgba(0,0,0,0.5) 0px,  rgba(0,0,0,0.5) 3px,
    transparent     3px,   transparent     9px,
    rgba(0,0,0,0.5) 9px,  rgba(0,0,0,0.5) 12px,
    transparent     12px,  transparent     18px,
    rgba(0,0,0,0.5) 18px, rgba(0,0,0,0.5) 21px,
    transparent     21px,  transparent     27px,
    rgba(0,0,0,0.5) 27px, rgba(0,0,0,0.5) 30px
  );
  background-repeat: no-repeat;
  background-position: center;
  background-size: 4px 36px;
}
.nav-home-icon::before, .nav-dropdown-label::before { left:  6px; }
.nav-home-icon::after,  .nav-dropdown-label::after  { right: 6px; }

/* ── Hover ── */
/* Home: mid-brightness on hover (same as its non-home default) */
.nav-home-icon:hover {
  background: linear-gradient(180deg, #6e2a35, #4a1a22);
  border-color: #6e2a35;
  color: #f0c8c0;
}
/* Hamburger + account: full-blast rose on hover */
.nav-dropdown:hover .nav-dropdown-label {
  background: linear-gradient(180deg, #b2546a, #8e3a4f);
  border-color: #c46a82;
  color: #ffffff;
}
.nav-dropdown:hover .nav-dropdown-label::before,
.nav-dropdown:hover .nav-dropdown-label::after {
  background-image: linear-gradient(
    180deg,
    rgba(255,255,255,0.25) 0px,  rgba(255,255,255,0.25) 3px,
    transparent            3px,   transparent            9px,
    rgba(255,255,255,0.25) 9px,  rgba(255,255,255,0.25) 12px,
    transparent            12px,  transparent            18px,
    rgba(255,255,255,0.25) 18px, rgba(255,255,255,0.25) 21px,
    transparent            21px,  transparent            27px,
    rgba(255,255,255,0.25) 27px, rgba(255,255,255,0.25) 30px
  );
}

/* ── Focus ring ── */
.nav-home-icon:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #d8a8a8, 0 0 0 4px rgba(216,168,168,0.2);
}
.nav-dropdown-toggle:focus         { outline: none; }
.nav-dropdown-toggle:focus-visible .nav-dropdown-label {
  box-shadow: 0 0 0 2px #d8a8a8, 0 0 0 4px rgba(216,168,168,0.2);
}

/* ── Active: current page (home button only — dropdowns don't change on open) ── */
.nav-home-icon.nav-home-icon-active {
  background: linear-gradient(180deg, #b2546a, #8e3a4f);
  border-color: #c46a82;
  color: #ffffff;
  opacity: 1;        /* cancel the old 0.4 on nav-home-icon-active */
}

/* Perforations lighten on the bright rose active background */
.nav-home-icon.nav-home-icon-active::before,
.nav-home-icon.nav-home-icon-active::after {
  background-image: linear-gradient(
    180deg,
    rgba(255,255,255,0.25) 0px,  rgba(255,255,255,0.25) 3px,
    transparent            3px,   transparent            9px,
    rgba(255,255,255,0.25) 9px,  rgba(255,255,255,0.25) 12px,
    transparent            12px,  transparent            18px,
    rgba(255,255,255,0.25) 18px, rgba(255,255,255,0.25) 21px,
    transparent            21px,  transparent            27px,
    rgba(255,255,255,0.25) 27px, rgba(255,255,255,0.25) 30px
  );
}

/* ── Icon sizing (locked at 22px / 12px regardless of viewport) ── */
.nav-home-icon svg,
.nav-dropdown-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.nav-dropdown-chevron {
  width: 12px;
  height: 12px;
}

/* Override the min-width:769px block that enlarged padding + icons */
@media (min-width: 769px) {
  .nav-home-icon      { padding: 0; }
  .nav-dropdown-label { padding: 0; }
  .nav-dropdown-icon,
  .nav-home-icon svg  { width: 22px; height: 22px; }
  .nav-dropdown-chevron { width: 12px; height: 12px; }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .nav-home-icon,
  .nav-home-icon::before, .nav-home-icon::after,
  .nav-dropdown-label,
  .nav-dropdown-label::before, .nav-dropdown-label::after,
  .nav-dropdown-chevron { transition: none; }
}

/* ════════════════════════════════════════════════════════════════════
   HOME BUTTON STATE INVERSION + MOBILE GAP FIX
   ════════════════════════════════════════════════════════════════════ */

/* Mobile: scale pills down so they fit beside the logo */
@media (max-width: 768px) {
  .site-nav { gap: 5px; }

  .nav-home-icon,
  .nav-dropdown-label {
    height: 38px;
    border-radius: 19px;
  }

  .nav-home-icon,
  .nav-hamburger .nav-dropdown-label {
    width: 38px;
  }

  .nav-dropdown:not(.nav-hamburger) .nav-dropdown-label {
    width: 56px;
  }

  .nav-dropdown-icon,
  .nav-home-icon svg {
    width: 1rem;
    height: 1rem;
  }

  .nav-dropdown-chevron {
    width: 0.6rem;
    height: 0.6rem;
  }

  /* Tighten perforation insets for the shorter pill */
  .nav-home-icon::before,
  .nav-home-icon::after,
  .nav-dropdown-label::before,
  .nav-dropdown-label::after {
    top: 6px;
    bottom: 6px;
    background-size: 4px 22px;
  }
}

/* Home button DEFAULT (non-home pages) — mid-brightness, matches hamburger/account */
.nav-home-icon {
  background: linear-gradient(180deg, #6e2a35, #4a1a22);
  border-color: #6e2a35;
  color: #f0c8c0;
}

/* Home button ACTIVE (on the home page) — dark, recedes; not actionable */
.nav-home-icon.nav-home-icon-active {
  background: linear-gradient(180deg, #3a141a, #2a0d10);
  border-color: #4a1a22;
  color: #d8a8a8;
  pointer-events: none;
  opacity: 1;
}
/* Perforations go back to dark on the dim background */
.nav-home-icon.nav-home-icon-active::before,
.nav-home-icon.nav-home-icon-active::after {
  background-image: linear-gradient(
    180deg,
    rgba(0,0,0,0.5) 0px,  rgba(0,0,0,0.5) 3px,
    transparent     3px,   transparent     9px,
    rgba(0,0,0,0.5) 9px,  rgba(0,0,0,0.5) 12px,
    transparent     12px,  transparent     18px,
    rgba(0,0,0,0.5) 18px, rgba(0,0,0,0.5) 21px,
    transparent     21px,  transparent     27px,
    rgba(0,0,0,0.5) 27px, rgba(0,0,0,0.5) 30px
  );
}

/* ============================================================
   HOME PAGE CARD ACTIONS — Bright perforated pill buttons
   "Get Tickets" + "Trailer" inside .home-scroll-card-actions
   ============================================================ */
.home-scroll-card-actions .button-primary,
.home-scroll-card-actions .button-secondary {
  position: relative;
  overflow: hidden;
  border: 1px solid #c46a82;
  background: linear-gradient(180deg, #b2546a, #8e3a4f);
  color: #ffffff;
  transition: background 220ms ease, border-color 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.home-scroll-card-actions .button-primary:hover,
.home-scroll-card-actions .button-secondary:hover {
  background: linear-gradient(180deg, #c45e78, #a04560);
  border-color: #d8709a;
  color: #ffffff;
  box-shadow: 0 0 18px rgba(178, 84, 106, 0.45);
}

.home-scroll-card-actions .button-primary:focus-visible,
.home-scroll-card-actions .button-secondary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #d8a8a8, 0 0 0 4px rgba(216, 168, 168, 0.2);
}

/* Film perforations — left + right strips, light marks on bright background */
.home-scroll-card-actions .button-primary::before,
.home-scroll-card-actions .button-primary::after,
.home-scroll-card-actions .button-secondary::before,
.home-scroll-card-actions .button-secondary::after {
  content: "";
  position: absolute;
  top: 5px;
  bottom: 5px;
  width: 4px;
  pointer-events: none;
  background-image: linear-gradient(
    180deg,
    rgba(255,255,255,0.3) 0px,  rgba(255,255,255,0.3) 3px,
    transparent          3px,   transparent          9px,
    rgba(255,255,255,0.3) 9px,  rgba(255,255,255,0.3) 12px,
    transparent          12px,  transparent          18px,
    rgba(255,255,255,0.3) 18px, rgba(255,255,255,0.3) 21px,
    transparent          21px,  transparent          27px,
    rgba(255,255,255,0.3) 27px, rgba(255,255,255,0.3) 30px
  );
  background-repeat: no-repeat;
  background-position: center;
  background-size: 4px 28px;
}

.home-scroll-card-actions .button-primary::before,
.home-scroll-card-actions .button-secondary::before { left: 6px; }

.home-scroll-card-actions .button-primary::after,
.home-scroll-card-actions .button-secondary::after  { right: 6px; }

@media (prefers-reduced-motion: reduce) {
  .home-scroll-card-actions .button-primary,
  .home-scroll-card-actions .button-secondary,
  .home-scroll-card-actions .button-primary::before,
  .home-scroll-card-actions .button-primary::after,
  .home-scroll-card-actions .button-secondary::before,
  .home-scroll-card-actions .button-secondary::after {
    transition: none;
  }
}

/* ============================================================
   PERFORATED PILL BUTTONS — admin + public pages
   Applied via .admin-pp-page (admin) or .pub-pp-page (public)
   on the outer section of each opted-in page.
   ============================================================ */
.admin-pp-page .button-compact,
.admin-pp-page .button-primary,
.admin-pp-page .button-secondary,
.pub-pp-page .button-compact,
.pub-pp-page .button-primary,
.pub-pp-page .button-secondary {
  position: relative;
  overflow: hidden;
  border: 1px solid #c46a82;
  background: linear-gradient(180deg, #b2546a, #8e3a4f);
  color: #ffffff;
  transition: background 220ms ease, border-color 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.admin-pp-page .button-compact:hover,
.admin-pp-page .button-primary:hover,
.admin-pp-page .button-secondary:hover,
.pub-pp-page .button-compact:hover,
.pub-pp-page .button-primary:hover,
.pub-pp-page .button-secondary:hover {
  background: linear-gradient(180deg, #c45e78, #a04560);
  border-color: #d8709a;
  color: #ffffff;
  box-shadow: 0 0 14px rgba(178, 84, 106, 0.4);
}

.admin-pp-page .button-compact:focus-visible,
.admin-pp-page .button-primary:focus-visible,
.admin-pp-page .button-secondary:focus-visible,
.pub-pp-page .button-compact:focus-visible,
.pub-pp-page .button-primary:focus-visible,
.pub-pp-page .button-secondary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #d8a8a8, 0 0 0 4px rgba(216, 168, 168, 0.2);
}

.admin-pp-page .button-compact:disabled,
.admin-pp-page .button-compact[disabled] {
  background: linear-gradient(180deg, #5a2830, #3d1820);
  border-color: #7a3a48;
  color: rgba(255,255,255,0.4);
  cursor: not-allowed;
  box-shadow: none;
}

.admin-pp-page .button-compact::before,
.admin-pp-page .button-compact::after,
.admin-pp-page .button-primary::before,
.admin-pp-page .button-primary::after,
.admin-pp-page .button-secondary::before,
.admin-pp-page .button-secondary::after,
.pub-pp-page .button-compact::before,
.pub-pp-page .button-compact::after,
.pub-pp-page .button-primary::before,
.pub-pp-page .button-primary::after,
.pub-pp-page .button-secondary::before,
.pub-pp-page .button-secondary::after {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  width: 4px;
  pointer-events: none;
  background-image: linear-gradient(
    180deg,
    rgba(255,255,255,0.3) 0px,  rgba(255,255,255,0.3) 3px,
    transparent          3px,   transparent          9px,
    rgba(255,255,255,0.3) 9px,  rgba(255,255,255,0.3) 12px,
    transparent          12px,  transparent          18px,
    rgba(255,255,255,0.3) 18px, rgba(255,255,255,0.3) 21px,
    transparent          21px,  transparent          27px,
    rgba(255,255,255,0.3) 27px, rgba(255,255,255,0.3) 30px
  );
  background-repeat: no-repeat;
  background-position: center;
  background-size: 4px 22px;
}

.admin-pp-page .button-compact::before,
.admin-pp-page .button-primary::before,
.admin-pp-page .button-secondary::before,
.pub-pp-page .button-compact::before,
.pub-pp-page .button-primary::before,
.pub-pp-page .button-secondary::before { left: 5px; }

.admin-pp-page .button-compact::after,
.admin-pp-page .button-primary::after,
.admin-pp-page .button-secondary::after,
.pub-pp-page .button-compact::after,
.pub-pp-page .button-primary::after,
.pub-pp-page .button-secondary::after  { right: 5px; }

@media (prefers-reduced-motion: reduce) {
  .admin-pp-page .button-compact,
  .admin-pp-page .button-compact::before,
  .admin-pp-page .button-compact::after,
  .admin-pp-page .button-primary,
  .admin-pp-page .button-primary::before,
  .admin-pp-page .button-primary::after,
  .admin-pp-page .button-secondary,
  .admin-pp-page .button-secondary::before,
  .admin-pp-page .button-secondary::after,
  .pub-pp-page .button-compact,
  .pub-pp-page .button-compact::before,
  .pub-pp-page .button-compact::after,
  .pub-pp-page .button-primary,
  .pub-pp-page .button-primary::before,
  .pub-pp-page .button-primary::after,
  .pub-pp-page .button-secondary,
  .pub-pp-page .button-secondary::before,
  .pub-pp-page .button-secondary::after {
    transition: none;
  }
}

/* ============================================================
   FILM STRIP CAROUSEL (home page)
   Ported from design_handoff_movie_carousel. cct- prefix.
   ============================================================ */

@keyframes reelPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(196,106,130,0), 0 6px 20px rgba(0,0,0,0.5); }
  50%      { box-shadow: 0 0 0 8px rgba(196,106,130,0.14), 0 6px 20px rgba(0,0,0,0.5); }
}
@keyframes reelSpin {
  to { transform: rotate(360deg); }
}
@keyframes filmDrift {
  to { transform: translateX(-44px); }
}
@keyframes filmAdvanceFwd {
  from { opacity: 0; transform: translateX(60px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes filmAdvanceBwd {
  from { opacity: 0; transform: translateX(-60px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes frameFadeUp {
  from { opacity: 0; transform: translateY(14px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── Section wrapper ── */
.home-carousel-section {
  overflow: visible;
  padding-bottom: 1rem;
}

/* ── Outer wrappers ── */
.cct-wrapper--desktop {
  position: relative;
  padding: 0 100px;
}
.cct-wrapper--mobile {
  padding: 0 4px;
}

/* ── Strip ── */
.cct-strip {
  position: relative;
  background: #0d0708;
  border: 1px solid #1d1213;
  border-radius: 4px;
  overflow: hidden;
}
.cct-strip--mobile {
  min-height: 520px;
}

/* ── Sprocket rails ── */
.cct-rail {
  position: absolute;
  left: 0; right: 0;
  height: 26px;
  background: linear-gradient(180deg, #1a0d0f, #0d0708);
  display: flex;
  align-items: center;
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
}
.cct-rail--top { top: 0;    border-bottom: 1px solid #2a1a1c; }
.cct-rail--bot { bottom: 0; border-top:    1px solid #2a1a1c; }
.cct-rail-inner {
  display: flex;
  gap: 22px;
  padding-left: 12px;
  animation: filmDrift 22s linear infinite;
}
.cct-hole {
  flex: 0 0 22px;
  height: 12px;
  border-radius: 2px;
  background: #040203;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.8), 0 0 0 1px #1a0d0f;
}

/* ── Frame track ── */
.cct-track {
  padding: 44px 24px;
  min-height: 460px;
  background: repeating-linear-gradient(90deg, #100707 0 380px, #140909 380px 760px);
}
.cct-track--mobile {
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 40px 14px;
  min-height: 0;
  background: repeating-linear-gradient(90deg, #100707 0 200px, #140909 200px 400px);
}
.cct-track--mobile::-webkit-scrollbar { display: none; }
.cct-track--mobile .cct-frame {
  flex: 0 0 100%;
  scroll-snap-align: start;
  flex-shrink: 0;
}

/* ── Frame grid ── */
.cct-frames {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.cct-frames--1,
.cct-frames--2 {
  display: flex;
  justify-content: center;
  gap: 24px;
}
.cct-frames--1 .cct-frame,
.cct-frames--2 .cct-frame {
  flex: 0 0 calc((100% - 48px) / 3);
  min-width: 0;
}
/* slide transition is JS-driven (see film_carousel_controller.js _slide) */

/* ── Individual frame card ── */
.cct-frame {
  position: relative;
  background: linear-gradient(180deg, rgba(120,30,40,0.08), rgba(30,10,14,0.4));
  border: 1px solid rgba(255,230,180,0.06);
  border-radius: 3px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cct-watermark {
  position: absolute;
  top: 8px; right: 10px;
  z-index: 1;
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: rgba(208,160,160,0.35);
  pointer-events: none;
}

/* ── Poster link wrapper — owns the aspect ratio so the <img> never flashes natural size ── */
.cct-poster-link {
  display: block;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  border-radius: 4px;
  background: #0d0708;
}

/* ── Poster (real image) ── */
.cct-poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* ── Placeholder poster (aspect-ratio lives on .cct-poster-link wrapper above) ── */
.cct-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 4px;
  background: #1a0a0e;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 16px;
  box-shadow: inset 0 0 0 1px rgba(255,230,180,0.08);
}
.cct-ph-label {
  position: absolute;
  top: 12px; left: 12px;
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 8px;
  letter-spacing: 0.25em;
  color: rgba(255,230,180,0.45);
  text-transform: uppercase;
}
.cct-ph-title {
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 900;
  font-size: 28px;
  line-height: 0.95;
  color: #fff5e1;
  text-shadow: 0 2px 12px rgba(0,0,0,0.6);
  letter-spacing: -0.01em;
}

/* ── Tag chips ── */
.cct-chip {
  display: inline-block;
  padding: 5px 10px;
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 13px;
  letter-spacing: 0.3em;
  border-radius: 2px;
  text-transform: uppercase;
}
.cct-chip--cream {
  background: rgba(232,200,120,0.14);
  color: #e8c878;
  border: 1px solid rgba(232,200,120,0.4);
}
.cct-chip--rose {
  background: rgba(180,60,90,0.16);
  color: #e8a2b4;
  border: 1px solid rgba(180,60,90,0.4);
}

/* ── Card metadata ── */
.cct-meta { display: flex; flex-direction: column; gap: 4px; }
.cct-film-title {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 22px;
  color: #f5e6d6;
  line-height: 1.15;
  margin-top: 6px;
  /* Clamp to 2 lines so card heights stay consistent across frames */
  min-height: calc(22px * 1.15 * 2);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
.cct-film-date {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: #a07878;
  text-transform: uppercase;
}

/* ── CTA buttons ── */
.cct-btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.cct-btn {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 22px;
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid;
  transition: box-shadow 200ms, border-color 200ms, color 200ms;
}
.cct-btn--primary {
  background: linear-gradient(180deg, #b2546a, #8e3a4f);
  border-color: #c46a82;
  color: #fff;
}
.cct-btn--primary:hover {
  box-shadow: 0 0 16px rgba(178,84,106,0.4);
  color: #fff;
}
.cct-btn--secondary {
  background: transparent;
  border-color: #6e2a35;
  color: #e8a2b4;
}
.cct-btn--secondary:hover {
  border-color: #c46a82;
  color: #f0c8c0;
}

/* ── Edge fades (desktop only) ── */
.cct-fade {
  position: absolute;
  top: 26px; bottom: 26px;
  width: 60px;
  pointer-events: none;
  z-index: 2;
}
.cct-fade--l { left:  0; background: linear-gradient(90deg,  #0d0708, transparent); }
.cct-fade--r { right: 0; background: linear-gradient(270deg, #0d0708, transparent); }

/* ── Reel arrows ── */
.cct-arrow {
  position: relative;
  width: 76px; height: 76px;
  touch-action: manipulation; /* prevents double-tap zoom on mobile */
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #6e2a35, #3a141a 70%, #1a0708);
  border: 1px solid #c46a82;
  color: #fff5e1;
  cursor: pointer;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: reelPulse 2.6s ease-in-out infinite;
  transition: background 260ms ease, box-shadow 260ms ease;
}
.cct-arrow:hover {
  background: radial-gradient(circle at 30% 30%, #c46a82, #6e2a35 70%, #3a141a);
  box-shadow: 0 0 0 6px rgba(196,106,130,0.18), 0 0 40px rgba(196,106,130,0.45);
  animation: none;
}
.cct-arrow-ring {
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 1px dashed rgba(255,230,180,0.22);
  pointer-events: none;
}
.cct-arrow:hover .cct-arrow-ring {
  animation: reelSpin 6s linear infinite;
}
.cct-chevron {
  display: block;
  width: 32px; height: 32px;
}

/* Strip body: positions the arrows relative to the strip only (excludes footer),
   so top:50% stays centred on the strip regardless of footer height */
.cct-strip-body {
  position: relative;
}
.cct-strip-body .cct-arrow--left {
  position: absolute;
  left: 12px; top: 50%;
  transform: translateY(-50%);
  z-index: 5;
}
.cct-strip-body .cct-arrow--right {
  position: absolute;
  right: 12px; top: 50%;
  transform: translateY(-50%);
  z-index: 5;
}

/* ── Footer row ── */
.cct-footer {
  margin-top: 20px;
  padding: 0 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cct-reel {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.3em;
  color: #a07878;
  text-transform: uppercase;
}

/* ── Dot indicators ── */
.cct-dots-row {
  display: flex;
  gap: 6px;
  align-items: center;
}
.cct-dot {
  width: 8px; height: 8px;
  border-radius: 4px;
  background: rgba(196,106,130,0.25);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: width 280ms, background 280ms;
}
.cct-dot--active {
  width: 22px;
  background: #c46a82;
}

/* ── Mobile: arrows overlaid left/right inside the strip ── */
.cct-wrapper--mobile .cct-arrow { width: 56px; height: 56px; }
.cct-wrapper--mobile .cct-chevron { width: 24px; height: 24px; }

.cct-strip--mobile .cct-arrow--left,
.cct-strip--mobile .cct-arrow--right {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
}
.cct-strip--mobile .cct-arrow--left  { left: 10px;  opacity: 0.82; }
.cct-strip--mobile .cct-arrow--right { right: 10px; opacity: 0.82; }
.cct-strip--mobile .cct-arrow:hover,
.cct-strip--mobile .cct-arrow:active { opacity: 1; }

/* ── Mobile: footer (dots + hint) below the strip ── */
.cct-mobile-footer {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.cct-mobile-hint {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.3em;
  color: #a07878;
  text-transform: uppercase;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .cct-rail-inner,
  .cct-arrow,
  .cct-arrow:hover .cct-arrow-ring { animation: none; }
  .cct-btn, .cct-dot { transition: none; }
}

/* ════════════════════════════════════════════════════════
   CONCESSIONS PRICE LIST — customer-facing
   ════════════════════════════════════════════════════════ */
.concessions-price-section {
  padding: 3rem 0 3.5rem;
}
.concessions-price-section--tight {
  padding-top: 1.25rem;
}
.concessions-price-hst {
  font-size: 0.78rem;
  color: var(--muted);
  letter-spacing: 0.04em;
  margin: -0.5rem 0 0;
  font-style: italic;
}
.concessions-price-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 2rem 2.5rem;
  margin-top: 2rem;
}
.concessions-price-category {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(196, 81, 106, 0.25);
  border-top: 2px solid var(--accent);
  border-radius: 8px;
  padding: 1.3rem 1.4rem 1.5rem;
}
.concessions-price-cat-heading {
  font-family: Georgia, serif;
  font-size: 0.82rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(196, 81, 106, 0.18);
}
.concessions-price-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.concessions-price-row {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  font-family: Georgia, serif;
  font-size: 0.92rem;
  color: var(--ink);
  line-height: 1.4;
}
.concessions-price-row-name {
  white-space: nowrap;
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  flex-shrink: 0;
}
.concessions-price-row-size {
  font-size: 0.72rem;
  color: var(--muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.concessions-price-row-dots {
  flex: 1;
  border-bottom: 1px dotted rgba(237, 232, 223, 0.2);
  margin-bottom: 0.25em;
  min-width: 0.75rem;
}
.concessions-price-row-price {
  white-space: nowrap;
  font-weight: bold;
  color: var(--ink);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.concessions-price-info {
  font-size: 0.72rem;
  color: var(--accent);
  opacity: 0.7;
  font-style: normal;
  flex-shrink: 0;
}
.concessions-price-row.has-notes {
  position: relative;
  cursor: default;
}
.concessions-price-row.has-notes:hover .concessions-price-info {
  opacity: 1;
}
.concessions-price-row.has-notes::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 10px);
  left: 0;
  width: max-content;
  max-width: 260px;
  background: #1a0e0d;
  border: 1px solid rgba(196, 81, 106, 0.35);
  border-radius: 7px;
  padding: 0.6rem 0.85rem;
  font-size: 0.82rem;
  font-family: Georgia, serif;
  color: var(--ink);
  line-height: 1.55;
  white-space: pre-wrap;
  z-index: 20;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.concessions-price-row.has-notes:hover::after {
  opacity: 1;
  transform: translateY(0);
}

/* ════════════════════════════════════════════════════════
   CONCESSIONS PRICE LIST — admin dashboard
   Uses same dark palette as .purchase-card (#1a0e0d base)
   ════════════════════════════════════════════════════════ */
.cpa-section {
  margin-bottom: 0 !important;
}
.cpa-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}
.cpa-title {
  font-family: Georgia, serif;
  font-size: 1.4rem;
  font-weight: normal;
  margin: 0;
  color: var(--ink);
}

/* ── Category / Size chip management rows ── */
.cpa-manage-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.cpa-manage-label {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 0.45rem;
  white-space: nowrap;
  min-width: 5.5rem;
}
.cpa-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}
.cpa-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: rgba(196, 81, 106, 0.12);
  border: 1px solid rgba(196, 81, 106, 0.3);
  border-radius: 20px;
  padding: 0.25em 0.65em 0.25em 0.75em;
  font-size: 0.82rem;
  color: var(--ink);
  font-family: Georgia, serif;
}
.cpa-chip--system {
  background: rgba(168, 154, 142, 0.1);
  border-color: rgba(168, 154, 142, 0.25);
  color: var(--muted);
  font-style: italic;
}
.cpa-chip-delete {
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1;
  padding: 0 0.1em;
  transition: color 0.15s;
}
.cpa-chip-delete:hover { color: var(--accent); }
.cpa-inline-form {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.cpa-inline-input {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(196, 81, 106, 0.25);
  border-radius: 20px;
  color: var(--ink);
  font-size: 0.82rem;
  padding: 0.25em 0.75em;
  width: 9rem;
  outline: none;
}
.cpa-inline-input:focus {
  border-color: var(--accent);
  background: rgba(196, 81, 106, 0.08);
}
.cpa-inline-input::placeholder { color: var(--muted-dark); }
.cpa-inline-btn {
  appearance: none;
  background: rgba(196, 81, 106, 0.18);
  border: 1px solid rgba(196, 81, 106, 0.35);
  border-radius: 50%;
  color: var(--accent);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  width: 1.8rem;
  height: 1.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
  padding: 0;
}
.cpa-inline-btn:hover { background: rgba(196, 81, 106, 0.3); }

/* ── Item grid ── */
.cpa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}
.cpa-card {
  background: #1a0e0d;
  border: 1px solid rgba(196, 81, 106, 0.25);
  border-top: 2px solid rgba(196, 81, 106, 0.5);
  border-radius: 10px;
  padding: 1rem 1.1rem 1.1rem;
}
.cpa-card-heading {
  font-family: Georgia, serif;
  font-size: 0.8rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(196, 81, 106, 0.18);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.cpa-drag-handle {
  font-size: 1rem;
  color: var(--muted-dark);
  cursor: grab;
  padding: 0 0.1rem;
  line-height: 1;
  flex-shrink: 0;
  margin-right: 0.2rem;
}
.cpa-drag-handle:hover { color: var(--muted); }
.cpa-card-x,
.admin-pp-page .cpa-card-x {
  appearance: none;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin-left: auto;
  font-size: 0.72rem;
  line-height: 1;
  color: var(--muted-dark);
  cursor: pointer;
  transition: color 0.15s;
  flex-shrink: 0;
}
.cpa-card-x:hover,
.admin-pp-page .cpa-card-x:hover { color: var(--accent); }
.admin-pp-page .cpa-card-x::before,
.admin-pp-page .cpa-card-x::after { display: none; }
.cpa-card-x form { display: inline; margin: 0; }
/* ── Price item modal ── */
.cpa-modal {
  background: #1a0e0d;
  border: 1px solid rgba(196, 81, 106, 0.3);
  border-radius: 12px;
  padding: 0;
  width: min(520px, 92vw);
  max-height: 92dvh;
  overflow-y: auto;
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.65);
  color: var(--ink);
}
.cpa-modal::backdrop {
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(3px);
}
.cpa-modal-inner {
  padding: 1.75rem 2rem 2rem;
  position: relative;
}
.cpa-modal-title {
  font-family: Georgia, serif;
  font-size: 1.15rem;
  font-weight: normal;
  margin: 0 0 1.5rem;
  color: var(--ink);
  text-align: center;
  padding-right: 1.5rem;
}
.cpa-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  appearance: none;
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  font-size: 0.9rem;
  padding: 0.25rem 0.4rem;
  line-height: 1;
  transition: color 0.15s;
  border-radius: 4px;
}
.cpa-modal-close:hover { color: var(--ink); }
/* Suppress pill styles on the close button */
.cpa-modal-inner.admin-pp-page .cpa-modal-close::before,
.cpa-modal-inner.admin-pp-page .cpa-modal-close::after { display: none; }
.cpa-modal-inner.admin-pp-page .cpa-modal-close {
  background: none;
  box-shadow: none;
}

/* ── Concession editor modal (categories / sizes) ── */
.cpa-editor-modal {
  border: none;
  border-radius: 10px;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  width: min(460px, 92vw);
  max-height: 80vh;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(0,0,0,0.55);
}
.cpa-editor-modal[open] {
  display: flex;
  flex-direction: column;
}
.cpa-editor-modal::backdrop {
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(2px);
}
.cpa-editor-modal .cpa-modal-inner {
  display: flex;
  flex-direction: column;
  max-height: 80vh;
  overflow: hidden;
}
.cpa-editor-hint {
  font-size: 0.8rem;
  color: var(--muted-dark);
  margin: -0.25rem 0 0.75rem;
}
.cpa-editor-list {
  list-style: none;
  padding: 0;
  margin: 0;
  overflow-y: auto;
  flex: 1;
}
.cpa-editor-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(237, 232, 223, 0.08);
}
.cpa-editor-item:last-child { border-bottom: none; }
.cpa-editor-drag {
  font-size: 1.1rem;
  color: var(--muted-dark);
  cursor: grab;
  flex-shrink: 0;
}
.cpa-editor-input {
  flex: 1;
  background: transparent;
  border: 1px solid transparent;
  color: var(--ink);
  font-size: 0.9rem;
  padding: 0.25rem 0.4rem;
  border-radius: 5px;
  font-family: inherit;
}
.cpa-editor-input:hover { border-color: rgba(237, 232, 223, 0.2); }
.cpa-editor-input:focus {
  border-color: var(--accent);
  outline: none;
  background: rgba(255,255,255,0.04);
}
.cpa-editor-footer {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-top: 1rem;
  margin-top: 0.5rem;
  border-top: 1px solid rgba(237, 232, 223, 0.1);
  flex-shrink: 0;
}
.cpa-editor-status {
  flex: 1;
  font-size: 0.82rem;
  color: var(--accent);
}
.cpa-edit-btn {
  background: none;
  border: 1px solid rgba(237, 232, 223, 0.25);
  color: var(--muted-dark);
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 5px;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.4;
  transition: border-color 0.15s, color 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.cpa-edit-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.cpa-card-footer {
  margin-top: 0.75rem;
  padding-top: 0.6rem;
  border-top: 1px solid rgba(196, 81, 106, 0.1);
}
.cpa-card-add-link,
.admin-pp-page .cpa-card-add-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--muted);
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color 0.15s;
  appearance: none;
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}
.cpa-card-add-link:hover,
.admin-pp-page .cpa-card-add-link:hover { color: var(--accent); }
.admin-pp-page .cpa-card-add-link::before,
.admin-pp-page .cpa-card-add-link::after { display: none; }
.cpa-card-count {
  background: rgba(196, 81, 106, 0.18);
  border-radius: 10px;
  color: var(--muted);
  font-size: 0.7rem;
  padding: 0.1em 0.5em;
  letter-spacing: 0;
}
.cpa-table {
  width: 100%;
  border-collapse: collapse;
}
.cpa-row td {
  padding: 0.35rem 0.15rem;
  vertical-align: middle;
  border-bottom: 1px solid rgba(196, 81, 106, 0.08);
}
.cpa-row:last-child td { border-bottom: none; }
.cpa-row--hidden td { opacity: 0.45; }
.cpa-row-name {
  color: var(--ink);
  font-family: Georgia, serif;
  font-size: 0.88rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.cpa-notes-info {
  position: absolute;
  top: 0.35rem;
  right: 0.1rem;
  font-size: 0.72rem;
  color: var(--accent);
  opacity: 0.6;
}
.cpa-row-name.has-notes {
  position: relative;
  padding-right: 1.1rem;
  cursor: default;
}
.cpa-row-name.has-notes:hover .cpa-notes-info { opacity: 1; }
.cpa-row-name.has-notes::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  width: max-content;
  max-width: 240px;
  background: #1a0e0d;
  border: 1px solid rgba(196, 81, 106, 0.35);
  border-radius: 7px;
  padding: 0.5rem 0.75rem;
  font-size: 0.8rem;
  font-family: Georgia, serif;
  color: var(--ink);
  line-height: 1.55;
  white-space: pre-wrap;
  z-index: 20;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.cpa-row-name.has-notes:hover::after {
  opacity: 1;
  transform: translateY(0);
}
.cpa-size-tag {
  display: inline-block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(196, 81, 106, 0.14);
  color: var(--accent);
  border-radius: 3px;
  padding: 0.1em 0.4em;
}
.cpa-hidden-tag {
  display: inline-block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(168, 154, 142, 0.12);
  color: var(--muted);
  border-radius: 3px;
  padding: 0.1em 0.4em;
}
.cpa-row-price {
  white-space: nowrap;
  font-weight: bold;
  color: var(--ink);
  padding-left: 0.75rem !important;
  padding-right: 0.5rem !important;
  font-size: 0.9rem;
}
.cpa-row-actions {
  white-space: nowrap;
  text-align: right;
}
.cpa-row-actions .button-compact { margin-left: 0.25rem; }
.cpa-item-drag-cell {
  width: 1rem;
  padding-right: 0 !important;
  padding-left: 0 !important;
}
.cpa-item-drag {
  display: block;
  color: var(--muted-dark);
  cursor: grab;
  font-size: 0.9rem;
  line-height: 1;
  user-select: none;
}
.cpa-item-drag:hover { color: var(--muted); }
@keyframes cpa-saved-pulse {
  0%   { background: rgba(196, 81, 106, 0.0); }
  40%  { background: rgba(196, 81, 106, 0.12); }
  100% { background: rgba(196, 81, 106, 0.0); }
}
.cpa-saved-flash tr { animation: cpa-saved-pulse 0.6s ease-out; }

/* Text-only action links inside price-list rows — override pill styles */
.cpa-action-link,
.admin-pp-page .cpa-action-link {
  display: inline;
  appearance: none;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 0 0.6rem;
  font-size: 0.78rem;
  font-family: inherit;
  letter-spacing: 0.04em;
  cursor: pointer;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.cpa-action-link:hover,
.admin-pp-page .cpa-action-link:hover { color: var(--ink); }
.cpa-action-link--danger,
.admin-pp-page .cpa-action-link--danger { color: rgba(196, 81, 106, 0.6); }
.cpa-action-link--danger:hover,
.admin-pp-page .cpa-action-link--danger:hover { color: var(--accent); }
/* button_to wraps in a form (.button_to) — make it inline */
.cpa-row-actions .button_to { display: inline; margin: 0; }
.cpa-action-link::before,
.cpa-action-link::after,
.admin-pp-page .cpa-action-link::before,
.admin-pp-page .cpa-action-link::after { display: none; }
.cpa-empty {
  font-size: 0.82rem;
  color: var(--muted-dark);
  margin: 0.25rem 0 0;
  font-style: italic;
}
.concession-admin-divider {
  border: none;
  border-top: 1px solid rgba(196, 81, 106, 0.18);
  margin: 1.5rem 1rem;
}

@media (max-width: 640px) {
  .concessions-price-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .cpa-grid { grid-template-columns: 1fr; }
  .cpa-manage-label { min-width: auto; }
}

/* ══════════════════════════════════════════════════════════════════
   My Account page — acct-* namespace
   ══════════════════════════════════════════════════════════════════ */

/* ── Page layout ── */
.acct-page { padding: 2rem 0 4rem; }

/* ── Shared eyebrow label ── */
.acct-eyebrow {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  letter-spacing: 0.28em;
  color: var(--accent);
  font-weight: 600;
  text-transform: uppercase;
}

/* ── Greeting ── */
.acct-greeting {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.acct-hero-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(2.2rem, 5vw, 3.25rem);
  color: var(--ink);
  margin: 6px 0 0;
  line-height: 1.05;
  letter-spacing: 0.005em;
}
.acct-hero-sub {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  color: rgba(237, 232, 223, 0.62);
  margin: 8px 0 0;
}

/* ── Stat strip ── */
.acct-stat-strip {
  display: flex;
  background: #1a0a0e;
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.acct-stat {
  padding: 14px 20px;
  border-left: 1px solid rgba(196, 81, 106, 0.16);
  min-width: 90px;
  text-align: center;
}
.acct-stat:first-child { border-left: none; }
.acct-stat-label {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: rgba(237, 232, 223, 0.42);
  font-weight: 600;
  text-transform: uppercase;
}
.acct-stat-value {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 1.6rem;
  color: var(--ink);
  margin-top: 2px;
  letter-spacing: 0.005em;
}
.acct-stat-value--sm {
  font-family: Georgia, "Times New Roman", serif;
  font-style: normal;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* ── Panel (transactions card + settings card) ── */
.acct-panel {
  background: #1a0a0e;
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 2rem;
}

/* ── Panel header ── */
.acct-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 24px 24px 0;
  flex-wrap: wrap;
}
.acct-panel-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-style: italic;
  font-size: 2rem;
  font-weight: 500;
  color: var(--ink);
  margin: 4px 0 0;
  letter-spacing: 0.005em;
}

/* ── Search ── */
.acct-search-wrap { flex: 0 0 auto; width: min(100%, 320px); }
.acct-search-form { display: flex; gap: 8px; align-items: center; width: 100%; }
.acct-search-bar {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  height: 40px;
  background: rgba(196, 81, 106, 0.06);
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 10px;
}
.acct-search-icon { width: 15px; height: 15px; flex-shrink: 0; color: rgba(237, 232, 223, 0.42); }
.acct-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing: 0.01em;
  min-width: 0;
}
.acct-search-input::placeholder { color: rgba(237, 232, 223, 0.42); }
.acct-search-clear {
  color: rgba(237, 232, 223, 0.42);
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
  text-decoration: none;
}
.acct-search-clear:hover { color: var(--ink); }
.acct-search-submit {
  padding: 0 12px;
  height: 40px;
  background: rgba(196, 81, 106, 0.1);
  border: 1px solid rgba(196, 81, 106, 0.25);
  border-radius: 8px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s;
  flex-shrink: 0;
}
.acct-search-submit:hover { background: rgba(196, 81, 106, 0.18); }

/* ── Filter tabs ── */
.acct-tabs {
  display: flex;
  gap: 0;
  padding: 16px 24px 0;
  border-bottom: 1px solid rgba(196, 81, 106, 0.12);
  overflow-x: auto;
  scrollbar-width: none;
}
.acct-tabs::-webkit-scrollbar { display: none; }
.acct-tab {
  position: relative;
  padding: 10px 14px 12px;
  margin-bottom: -1px;
  color: rgba(237, 232, 223, 0.62);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  border-bottom: 2px solid transparent;
  transition: color 0.12s, border-color 0.12s;
}
.acct-tab:hover { color: var(--ink); }
.acct-tab--active {
  color: var(--ink);
  border-bottom-color: var(--accent);
}
.acct-tab-count {
  margin-left: 7px;
  font-size: 12px;
  opacity: 0.55;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.acct-tab--active .acct-tab-count { opacity: 0.8; }

/* ── Desktop column header ── */
.acct-col-header {
  display: grid;
  grid-template-columns: 140px 1fr 70px 100px 140px 160px 110px;
  gap: 18px;
  padding: 13px 20px 11px;
  background: rgba(196, 81, 106, 0.03);
  border-top: 1px solid rgba(196, 81, 106, 0.12);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  letter-spacing: 0.22em;
  color: rgba(237, 232, 223, 0.42);
  font-weight: 600;
  text-transform: uppercase;
}
.acct-col-header > div:last-child { text-align: right; }

/* ── Desktop transaction row ── */
.acct-item { position: relative; }
.acct-row {
  display: grid;
  grid-template-columns: 140px 1fr 70px 100px 140px 160px 110px;
  gap: 18px;
  padding: 18px 20px;
  border-top: 1px solid rgba(196, 81, 106, 0.1);
  align-items: center;
  transition: background 0.12s;
}
.acct-row:hover { background: rgba(196, 81, 106, 0.04); }
.acct-row-weekday {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent);
  font-weight: 600;
}
.acct-row-time {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.62);
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
.acct-row-film { min-width: 0; }
.acct-row-film-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size: 1.2rem;
  color: var(--ink);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.acct-row-film-sub {
  font-size: 12px;
  color: rgba(237, 232, 223, 0.42);
  margin-top: 3px;
}
.acct-row-qty,
.acct-row-total {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}
.acct-row-conf {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: rgba(237, 232, 223, 0.62);
  overflow: hidden;
  text-overflow: ellipsis;
}
.acct-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

/* ── Mobile card ── */
.acct-card {
  padding: 16px;
  border-top: 1px solid rgba(196, 81, 106, 0.1);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.acct-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.acct-card-when {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--accent);
  font-weight: 600;
}
.acct-card-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size: 1.35rem;
  color: var(--ink);
  line-height: 1.15;
}
.acct-card-time {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.62);
  margin-top: -4px;
}
.acct-perf {
  height: 1px;
  border-top: 1px dashed rgba(196, 81, 106, 0.32);
  margin: 2px 0;
}
.acct-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.acct-card-meta { display: flex; align-items: baseline; gap: 16px; }
.acct-meta-label {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 9px;
  letter-spacing: 0.18em;
  color: rgba(237, 232, 223, 0.42);
  font-weight: 500;
  text-transform: uppercase;
}
.acct-meta-val {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.acct-card-conf {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  color: rgba(237, 232, 223, 0.42);
  letter-spacing: 0.06em;
  text-align: right;
}
.acct-card-actions { display: flex; gap: 8px; }

/* ── Status pills ── */
.acct-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 11px;
  border-radius: 999px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  border: 1px solid;
}
.acct-pill--sm { padding: 3px 9px; font-size: 12px; }
.acct-pill-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.acct-pill--paid    { color: #79c690; background: rgba(121,198,144,0.13); border-color: rgba(121,198,144,0.33); }
.acct-pill--paid    .acct-pill-dot { background: #79c690; }
.acct-pill--reserved  { color: #7aa8e0; background: rgba(122,168,224,0.13); border-color: rgba(122,168,224,0.33); }
.acct-pill--reserved  .acct-pill-dot { background: #7aa8e0; }
.acct-pill--refunded  { color: #c9a3d9; background: rgba(201,163,217,0.13); border-color: rgba(201,163,217,0.33); }
.acct-pill--refunded  .acct-pill-dot { background: #c9a3d9; }
.acct-pill--cancelled { color: #a89180; background: rgba(168,145,128,0.13); border-color: rgba(168,145,128,0.33); }
.acct-pill--cancelled .acct-pill-dot { background: #a89180; }

/* ── Icon buttons (row actions) ── */
.acct-icon-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: rgba(237, 232, 223, 0.62);
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.acct-icon-btn:hover {
  background: rgba(196, 81, 106, 0.1);
  color: var(--ink);
  border-color: rgba(196, 81, 106, 0.32);
}
.acct-icon-btn--danger { color: rgba(213, 108, 108, 0.8); border-color: rgba(213, 108, 108, 0.2); }
.acct-icon-btn--danger:hover {
  background: rgba(213, 108, 108, 0.08);
  color: #d56c6c;
  border-color: rgba(213, 108, 108, 0.4);
}

/* ── Ticket-stub buttons ── */
.acct-ticket-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 9px 24px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  border: 1px solid;
  text-decoration: none;
  white-space: nowrap;
  transition: filter 0.12s;
  line-height: 1.2;
}
.acct-ticket-btn:active { transform: translateY(1px); }
.acct-ticket-btn::before,
.acct-ticket-btn::after {
  content: '';
  position: absolute;
  top: 8px;
  bottom: 8px;
  border-left: 1px dashed;
  pointer-events: none;
}
.acct-ticket-btn::before { left: 7px; }
.acct-ticket-btn::after  { right: 7px; }
.acct-ticket-btn--primary {
  background: var(--accent);
  color: #fff;
  border-color: transparent;
}
.acct-ticket-btn--primary::before,
.acct-ticket-btn--primary::after { border-color: rgba(255,255,255,0.45); }
.acct-ticket-btn--primary:hover { filter: brightness(1.12); }
.acct-ticket-btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: rgba(196, 81, 106, 0.32);
}
.acct-ticket-btn--ghost::before,
.acct-ticket-btn--ghost::after { border-color: rgba(196, 106, 127, 0.55); }
.acct-ticket-btn--ghost:hover { background: rgba(196, 81, 106, 0.08); }
.acct-ticket-btn--danger {
  background: transparent;
  color: #d56c6c;
  border-color: #d56c6c;
}
.acct-ticket-btn--danger::before,
.acct-ticket-btn--danger::after { border-color: rgba(213, 108, 108, 0.45); }
.acct-ticket-btn--danger:hover { background: rgba(213, 108, 108, 0.08); }
/* button_to renders a form wrapping a button; collapse the form */
.acct-danger-zone form { display: contents; }

/* ── Empty state ── */
.acct-empty { padding: 60px 20px; text-align: center; }
.acct-empty-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 1.4rem;
  color: rgba(237, 232, 223, 0.62);
}
.acct-empty-sub {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.42);
  margin-top: 6px;
}

/* ── Pagination ── */
.acct-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 20px;
  border-top: 1px solid rgba(196, 81, 106, 0.12);
  flex-wrap: wrap;
}
.acct-pagination-info {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  color: rgba(237, 232, 223, 0.62);
  letter-spacing: 0.02em;
}
.acct-pagination-info strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.acct-per-page-wrap { display: flex; align-items: center; gap: 8px; }
.acct-per-page-label { font-size: 12px; color: rgba(237, 232, 223, 0.42); letter-spacing: 0.04em; }
.acct-per-page-opt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid rgba(196, 81, 106, 0.16);
  color: rgba(237, 232, 223, 0.62);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  text-decoration: none;
  transition: all 0.12s;
}
.acct-per-page-opt:hover { background: rgba(196, 81, 106, 0.08); color: var(--ink); }
.acct-per-page-opt--active { background: rgba(196, 81, 106, 0.12); color: var(--ink); border-color: rgba(196, 81, 106, 0.32); }
.acct-pagination-nav { display: flex; align-items: center; gap: 6px; }
.acct-page-btn {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid rgba(196, 81, 106, 0.16);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.12s;
}
.acct-page-btn:hover { background: rgba(196, 81, 106, 0.08); }
.acct-page-btn--off { opacity: 0.35; cursor: default; }
.acct-page-indicator {
  padding: 0 14px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  color: rgba(237, 232, 223, 0.62);
  letter-spacing: 0.04em;
  background: rgba(196, 81, 106, 0.06);
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 8px;
  white-space: nowrap;
}
.acct-page-indicator strong { color: var(--ink); font-weight: 600; margin: 0 4px; font-variant-numeric: tabular-nums; }

/* ── Modal detail list ── */
.acct-modal-details { display: flex; flex-direction: column; gap: 6px; margin: 1rem 0; }
.acct-modal-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.9rem;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.acct-modal-mono {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
}

/* ── Settings card ── */
.acct-settings {
  background: #1a0a0e;
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 16px;
  overflow: hidden;
}
.acct-settings-header {
  padding: 28px 32px 0;
}
.acct-settings-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-style: italic;
  font-size: 2.25rem;
  font-weight: 500;
  color: var(--ink);
  margin: 4px 0 0;
  letter-spacing: 0.005em;
}
.acct-settings-layout {
  display: flex;
  gap: 28px;
  padding: 24px 32px 32px;
}

/* ── Settings side rail ── */
.acct-settings-rail {
  width: 200px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-top: 6px;
}
.acct-settings-nav-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  background: transparent;
  border: none;
  border-left: 2px solid transparent;
  color: rgba(237, 232, 223, 0.62);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  text-align: left;
  transition: all 0.12s;
  border-radius: 0 6px 6px 0;
}
.acct-settings-nav-btn:hover { color: var(--ink); background: rgba(196, 81, 106, 0.06); }
.acct-settings-nav-btn.is-active {
  color: var(--ink);
  font-weight: 600;
  background: rgba(196, 81, 106, 0.1);
  border-left-color: var(--accent);
}
.acct-rail-divider { height: 1px; background: rgba(196, 81, 106, 0.16); margin: 10px 14px; }
.acct-rail-since {
  padding: 8px 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  color: rgba(237, 232, 223, 0.42);
  letter-spacing: 0.04em;
  line-height: 1.6;
}
.acct-rail-since span { color: rgba(237, 232, 223, 0.62); font-size: 14px; }

/* ── Settings panels ── */
.acct-settings-panels { flex: 1; min-width: 0; }
.acct-panel-section-head { margin-bottom: 18px; }
.acct-panel-section-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-size: 1.375rem;
  color: var(--ink);
  letter-spacing: 0.005em;
}
.acct-panel-section-sub {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.42);
  margin-top: 3px;
  line-height: 1.5;
}
.acct-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.acct-field { display: flex; flex-direction: column; gap: 6px; }
.acct-label {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(237, 232, 223, 0.42);
  font-weight: 600;
  text-transform: uppercase;
}
.acct-input {
  width: 100%;
  background: var(--bg);
  border: 1px solid rgba(196, 81, 106, 0.16);
  border-radius: 10px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  padding: 11px 14px;
  outline: none;
  letter-spacing: 0.01em;
  transition: border-color 0.12s;
}
.acct-input:focus { border-color: var(--accent); }
.acct-input--muted { color: rgba(237, 232, 223, 0.42); cursor: not-allowed; }
.acct-hint { font-family: Georgia, "Times New Roman", serif; font-size: 12px; color: rgba(237, 232, 223, 0.42); font-style: italic; }
.acct-field-actions { display: flex; gap: 10px; }
.acct-setting-note {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.42);
  line-height: 1.6;
  margin-top: 1rem;
  padding: 14px;
  background: rgba(237, 232, 223, 0.03);
  border: 1px solid rgba(237, 232, 223, 0.07);
  border-radius: 8px;
}

/* ── Danger zone ── */
.acct-danger-zone {
  border-top: 1px solid rgba(196, 81, 106, 0.16);
  padding: 20px 32px;
  background: rgba(213, 108, 108, 0.04);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.acct-danger-eyebrow {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  letter-spacing: 0.28em;
  color: #d56c6c;
  font-weight: 600;
  text-transform: uppercase;
}
.acct-danger-desc {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  color: rgba(237, 232, 223, 0.62);
  margin-top: 4px;
}

/* ── Responsive overrides ─────────────────────────────────────── */
@media (max-width: 760px) {
  /* Greeting */
  .acct-greeting { flex-direction: column; align-items: flex-start; }
  .acct-stat-strip { display: none; }
  .acct-hero-title { font-size: 2.25rem; }
  /* Panel */
  .acct-panel-header { flex-direction: column; align-items: stretch; padding: 18px 18px 0; }
  .acct-search-wrap { width: 100%; }
  .acct-tabs { padding: 12px 18px 0; gap: 4px; border-bottom: none; }
  .acct-tab {
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(196, 81, 106, 0.2);
    border-bottom: 1px solid rgba(196, 81, 106, 0.2);
    margin-bottom: 10px;
    font-size: 13px;
    background: transparent;
  }
  .acct-tab--active { background: var(--accent); color: #fff; border-color: var(--accent); }
  /* Desktop table — hide on mobile */
  .acct-col-header { display: none; }
  .acct-row         { display: none; }
  /* Mobile cards — shown */
  .acct-card { display: flex; padding: 16px 18px; }
  .acct-card-actions { flex-direction: column; }
  .acct-ticket-btn { font-size: 13px; padding: 7px 20px; width: 100%; text-align: center; }
  /* Pagination */
  .acct-pagination { flex-direction: column; align-items: flex-start; padding: 16px 18px; }
  /* Settings */
  .acct-settings-header { padding: 20px 18px 0; }
  .acct-settings-title { font-size: 1.75rem; }
  .acct-settings-layout { flex-direction: column; gap: 0; padding: 18px; }
  .acct-settings-rail {
    width: auto;
    flex-direction: row;
    overflow-x: auto;
    padding: 0 0 14px;
    gap: 6px;
    scrollbar-width: none;
  }
  .acct-settings-rail::-webkit-scrollbar { display: none; }
  .acct-rail-divider, .acct-rail-since { display: none; }
  .acct-settings-nav-btn {
    flex-shrink: 0;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(196, 81, 106, 0.2);
    border-left: 1px solid rgba(196, 81, 106, 0.2);
    font-size: 13px;
    gap: 6px;
  }
  .acct-settings-nav-btn svg { display: none; }
  .acct-settings-nav-btn.is-active { background: var(--accent); color: #fff; border-color: var(--accent); }
  .acct-fields-grid { grid-template-columns: 1fr; }
  .acct-danger-zone { flex-direction: column; align-items: flex-start; padding: 16px 18px; }
}

@media (min-width: 761px) {
  /* Mobile cards — hidden on desktop */
  .acct-card { display: none; }
}

/* ── Show Details page (sd-*) ──────────────────────────────────────────── */

.sd-page {
  min-height: calc(100vh - 60px);
  background: #0a0606;
  color: #EDE0CD;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.sd-shell {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
  padding-top: 3rem;
}

.sd-container {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 48px 64px;
}

.sd-title {
  margin: 0 0 40px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 44px;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1;
  color: #EDE0CD;
}

/* Day blocks */
.sd-days {
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.sd-day-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 14px;
}

.sd-day-label {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9B8A78;
  white-space: nowrap;
}

.sd-day-label.sd-day-today {
  color: #B5476A;
}

.sd-day-date {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 12px;
  font-weight: 400;
  color: #9B8A78;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.sd-day-rule {
  flex: 1;
  height: 1px;
  background: rgba(237, 224, 205, 0.10);
}

/* Show rows */
.sd-shows {
  display: flex;
  flex-direction: column;
}

.sd-show-row {
  display: grid;
  grid-template-columns: 160px 1fr 170px 250px;
  align-items: center;
  column-gap: 24px;
  padding: 24px 4px 24px 24px;
  border-bottom: 1px solid rgba(237, 224, 205, 0.10);
  position: relative;
  font-family: "Cormorant Garamond", Georgia, serif;
  transition: opacity 0.2s;
}

.sd-show-row--first {
  border-top: 1px solid rgba(237, 224, 205, 0.10);
}

/* Status stripe — 3px left edge */
.sd-stripe {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #B5476A;
}

/* Time column */
.sd-col-time {
  min-width: 0;
}

.sd-time {
  font-size: 30px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  line-height: 1;
  color: #EDE0CD;
}

.sd-status-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  color: #B5476A;
}

.sd-status-dot {
  display: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #B5476A;
}

/* Film column */
.sd-col-film {
  min-width: 0;
}

.sd-film {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
  color: #EDE0CD;
}

/* Tickets column */
.sd-col-tickets {
  min-width: 0;
}

.sd-sold-cap {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.sd-sold {
  font-size: 28px;
  font-weight: 600;
  color: #EDE0CD;
}

.sd-cap {
  font-size: 18px;
  font-weight: 400;
  color: #9B8A78;
}

.sd-tier {
  margin-top: 8px;
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9B8A78;
}

/* Actions column */
.sd-col-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.sd-btn-ghost {
  background: transparent;
  color: #EDE0CD;
  border: 1px solid #B5476A;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 15px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 999px;
  cursor: pointer;
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
  line-height: 1;
}

.sd-btn-ghost:hover {
  background: rgba(181, 71, 106, 0.12);
}

.sd-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #B5476A;
  color: #fff;
  border: none;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 15px;
  font-weight: 600;
  padding: 11px 20px;
  border-radius: 999px;
  cursor: pointer;
  letter-spacing: 0.01em;
  white-space: nowrap;
  text-decoration: none;
  transition: filter 0.15s;
  line-height: 1;
}

.sd-btn-primary:hover {
  filter: brightness(1.1);
  color: #fff;
}

.sd-ga-label {
  font-family: "JetBrains Mono", "DM Mono", ui-monospace, monospace;
  font-size: 11px;
  color: #9B8A78;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Empty state */
.sd-empty {
  color: #9B8A78;
  font-size: 1rem;
  padding: 2rem 0;
}

/* Breakdown dialog */
.sd-breakdown-dialog {
  background: #150c0c;
  border: 1px solid rgba(181, 71, 106, 0.33);
  border-radius: 8px;
  color: #EDE0CD;
  font-family: "Cormorant Garamond", Georgia, serif;
  max-width: min(720px, calc(100vw - 48px));
  width: min(720px, calc(100vw - 48px));
  max-height: 90vh;
  overflow: auto;
  padding: 0;
}

.sd-breakdown-dialog::backdrop {
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.sd-bd-inner {
  padding: 32px 36px 36px;
  position: relative;
}

.sd-bd-close {
  position: absolute;
  top: 18px;
  right: 18px;
  background: transparent;
  border: none;
  color: #9B8A78;
  cursor: pointer;
  padding: 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s;
}

.sd-bd-close:hover {
  color: #EDE0CD;
}

.sd-bd-title {
  margin: 0;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
  color: #EDE0CD;
}

.sd-bd-subtitle {
  margin: 16px 0 0;
  font-size: 18px;
  line-height: 1.4;
  color: #EDE0CD;
  text-wrap: balance;
}

.sd-bd-dim {
  color: #9B8A78;
}

.sd-bd-group {
  margin-top: 24px;
}

.sd-bd-group--divider {
  border-top: 1px solid rgba(237, 224, 205, 0.10);
  margin-top: 4px;
  padding-top: 0;
}

.sd-bd-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  font-size: 20px;
}

.sd-bd-label {
  font-weight: 600;
  color: #EDE0CD;
}

.sd-bd-val {
  font-variant-numeric: tabular-nums;
  color: #EDE0CD;
}

.sd-bd-val--dim {
  color: #9B8A78;
}

/* ── Mobile (≤ 680px) ───────────────────────────────────────────────────── */

@media (max-width: 680px) {
  .sd-container {
    padding: 20px 20px 40px;
  }

  .sd-title {
    font-size: 32px;
    margin-bottom: 28px;
    padding: 12px 0 0;
  }

  .sd-days {
    gap: 28px;
  }

  .sd-day-label {
    font-size: 11px;
  }

  .sd-day-date {
    font-size: 10px;
  }

  /* Restack the 4-column grid into 3 visual rows */
  .sd-show-row {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "time time"
      "film film"
      "tickets actions";
    column-gap: 12px;
    padding: 18px 4px 18px 16px;
  }

  /* Row 1: time left, status right */
  .sd-col-time {
    grid-area: time;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
  }

  .sd-time {
    font-size: 26px;
  }

  .sd-status-tag {
    margin-top: 0;
    font-size: 10px;
  }

  .sd-status-dot {
    width: 6px;
    height: 6px;
  }

  /* Row 2: film */
  .sd-col-film {
    grid-area: film;
    margin-bottom: 14px;
  }

  .sd-film {
    font-size: 19px;
  }

  /* Row 3: tickets left, actions right */
  .sd-col-tickets {
    grid-area: tickets;
    align-self: center;
  }

  .sd-sold {
    font-size: 22px;
  }

  .sd-cap {
    font-size: 15px;
  }

  .sd-tier {
    font-size: 10px;
    letter-spacing: 0.12em;
    margin-top: 5px;
  }

  .sd-col-actions {
    grid-area: actions;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
  }

  .sd-btn-ghost {
    font-size: 14px;
    padding: 9px 14px;
    min-height: 40px;
  }

  .sd-btn-primary {
    font-size: 14px;
    padding: 10px 14px;
    gap: 6px;
    min-height: 40px;
  }

  .sd-btn-primary svg {
    width: 11px;
    height: 11px;
  }

  .sd-bd-inner {
    padding: 24px 20px 28px;
  }

  .sd-bd-title {
    font-size: 26px;
  }

  .sd-bd-subtitle {
    font-size: 16px;
  }

  .sd-bd-row {
    font-size: 17px;
    padding: 12px 0;
  }
}

/* ── Assigned Seating Report (.asr-) ─────────────────────────────────────── */

.asr-layout {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}

.asr-sidebar {
  width: 240px;
  flex-shrink: 0;
}

.asr-main {
  flex: 1;
  min-width: 0;
}

/* Film + showtime selector */
.asr-film-list {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.asr-film-group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.asr-film-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.3;
  margin: 0;
}

.asr-showtime-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.asr-showtime-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.4rem 0.65rem;
  border-radius: 5px;
  background: var(--surface-raised, #f5f1eb);
  border: 1px solid var(--line, #e0d8ce);
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  gap: 0.5rem;
}

.asr-showtime-btn:hover {
  background: var(--surface-hover, #ede8e0);
  border-color: var(--accent, #9d3d2f);
}

.asr-showtime-date {
  font-size: 0.78rem;
  color: var(--muted-text, #888);
  flex-shrink: 0;
}

.asr-showtime-time {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text);
}

/* Empty state */
.asr-empty-state {
  text-align: center;
  padding: 3.5rem 2rem;
  color: var(--text);
}

/* Map wrap */
.asr-map-wrap {
  padding: 1.5rem 1.75rem 1.25rem;
}

.asr-map-header {
  text-align: center;
  margin-bottom: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 2px solid #6c2a20;
}

.asr-map-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 0.2rem;
}

.asr-map-subtitle {
  font-size: 0.88rem;
  margin: 0;
}

/* Screen / stage pill */
.asr-screen-pill-wrap {
  text-align: center;
  margin: 0.6rem 0;
}

.asr-screen-pill {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6c2a20;
  border: 2px solid rgba(108, 42, 32, 0.35);
  border-radius: 999px;
  background: rgba(157, 61, 47, 0.1);
  padding: 3px 14px;
}

/* Seat grid */
.asr-sections-outer {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.25rem 0;
}

.asr-map-table {
  border-collapse: separate;
  margin: 0 auto;
}

.asr-section-td {
  padding: 0 10px;
  vertical-align: top;
}

.asr-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #888;
  text-align: center;
  margin: 0 0 5px;
}

.asr-section-inner {
  border-collapse: separate;
  margin: 0 auto;
}

.asr-row-lbl {
  font-size: 10px;
  font-weight: 700;
  color: #bbb;
  text-align: right;
  padding-right: 4px;
  width: 16px;
  vertical-align: middle;
}

.asr-spc {
  width: 29px;
}

/* Individual seat cells */
.asr-seat {
  width: 26px;
  height: 26px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
  line-height: 26px;
  user-select: none;
}

.asr-seat--purchased   { background: #6c2a20; color: #fff; }
.asr-seat--purchased:hover { background: #8a352a; }
.asr-seat--admin       { background: #888;    color: #fff; }
.asr-seat--wheelchair  { background: #2a5a2a; color: #aee8ae; }
.asr-seat--companion   { background: #fdf0b0; color: #7a5800; }
.asr-seat--extra-legroom { background: #dce8f5; color: #456; }
.asr-seat--empty       { background: #e0e0e0; color: #999; }

/* Legend */
.asr-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1rem;
  margin: 0.9rem 0 1.1rem;
  font-size: 0.78rem;
  color: var(--text);
}

.asr-legend-item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.asr-legend-swatch {
  display: inline-block;
  width: 13px;
  height: 13px;
  border-radius: 2px;
  flex-shrink: 0;
}

.asr-legend-cv {
  color: var(--muted-text, #888);
  font-style: italic;
}

/* Stats row */
.asr-stats-row {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line, #e0d8ce);
}

.asr-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
}

.asr-stat-val {
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1;
}

.asr-stat-val--purchased { color: #6c2a20; }
.asr-stat-val--admin     { color: #888; }

.asr-stat-lbl {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted-text, #888);
}

/* Hover tooltip */
.asr-tooltip {
  position: fixed;
  z-index: 9999;
  background: #1c1c1c;
  color: #f0f0f0;
  border-radius: 7px;
  padding: 0.65rem 0.9rem;
  font-size: 0.82rem;
  line-height: 1.55;
  pointer-events: none;
  max-width: 240px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.45);
}

.asr-tip-name  { font-weight: 700; font-size: 0.88rem; margin-bottom: 1px; }
.asr-tip-email { color: #bbb; font-size: 0.78rem; }
.asr-tip-type  { color: #ddd; font-size: 0.82rem; margin-top: 5px; }
.asr-tip-conf  { color: #aaa; font-size: 0.76rem; margin-top: 2px; }
.asr-tip-scan  { font-size: 0.76rem; margin-top: 5px; }

@media (max-width: 820px) {
  .asr-layout {
    flex-direction: column;
  }
  .asr-sidebar {
    width: 100%;
  }
  .asr-showtime-list {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .asr-stats-row {
    gap: 1.5rem;
  }
}
