:root {
  --paper: #fff7e8;
  --ink: #293052;
  --accent: #a5194c;
  --logo-green: #39672a;
  --logo-orange: #cf6301;
  --logo-yellow: #f3ba16;
  --logo-orange-text: #b74f00;
  --logo-yellow-text: #966300;
  --description-blue: #173f73;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;
  --font-display: "Arial Narrow", "Helvetica Neue", "Microsoft YaHei", sans-serif;
  --size-small: 1rem;
  --size-body: 1.25rem;
  --size-title: 1.5rem;
  --size-display: clamp(2.75rem, 7vw, 5rem);
}

* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: 1.55;
}
button,
input,
select,
textarea {
  font-family: var(--font-body);
  font-size: var(--size-body);
}
input { border-color: var(--ink); background: transparent; color: var(--ink); }
input::placeholder { color: var(--ink); opacity: .45; }
input[type="checkbox"] {
  appearance: none;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
}
input[type="checkbox"]:checked {
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: inset 0 0 0 3px var(--paper);
}

.site-header,
main,
footer { max-width: 1240px; margin-inline: auto; }
.backend-page .site-header,
.backend-page main,
.backend-page footer { width: 100%; max-width: none; }
.site-header {
  min-height: 86px;
  padding: 16px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--ink);
}
.brand { display: block; color: inherit; text-decoration: none; }
.brand-logo { display: block; width: clamp(190px, 20vw, 230px); height: auto; }
main { padding-inline: 32px; }
.hero { position: relative; padding: 82px 0 48px; border-bottom: 1px solid var(--ink); }
.eyebrow,
.section-number {
  color: var(--accent);
  font-size: var(--size-small);
  font-weight: 700;
  letter-spacing: .2em;
}
.eyebrow span { display: inline; }
.eyebrow span + span::before { content: " · "; }
.hero h1,
.event-info h2,
.booking-card h2,
.status-card h1,
.admin-title h1 {
  font-family: var(--font-display);
  font-size: var(--size-title);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.04em;
}
.hero h1 { max-width: 1000px; margin: 24px 0 14px; color: var(--logo-orange); }
.hero h1 { font-size: var(--size-display); }
.hero h1 em { color: var(--logo-yellow-text); font-style: italic; }
.hero-zh {
  margin: 0;
  color: var(--logo-green);
  font-family: var(--font-display);
  font-size: var(--size-title);
  font-weight: 600;
  letter-spacing: .14em;
}
.event-line {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 42px;
  font-family: var(--font-display);
  font-size: var(--size-body);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .08em;
  color: var(--logo-orange-text);
}
.venue { position: static; margin: 28px 0 0; color: var(--logo-orange-text); }
.venue span { display: block; margin-top: 5px; }
.event-copy span { display: block; margin-top: 1em; }
.venue i { color: var(--logo-orange-text); font-style: normal; }

.booking-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; padding: 48px 0 96px; }
.event-info h2,
.booking-card h2 { margin: 16px 0 22px; }
.booking-card h2 span { display: block; margin-top: 6px; color: var(--accent); }
.event-info > .section-number + p { margin-top: 24px; }
.event-info > p:not(.section-number) { max-width: 480px; opacity: .68; }
.event-info > p.event-copy,
.event-info > p.event-copy span,
.event-info > p.event-copy strong { color: var(--description-blue); }
.event-info > p.event-copy { opacity: 1; }
.event-info dl { margin: 40px 0 36px; border-top: 1px solid var(--ink); }
.event-info dl div { display: grid; grid-template-columns: 123px minmax(0, 1fr); align-items: start; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--ink); }
.event-info dt,
.event-info dd span,
.price-compare small,
.price-compare span,
.booking-card legend,
.field > span,
.total > span,
.date-meta strong,
.date-meta small,
.remaining,
.age-check,
.pay-button small,
.form-note,
footer,
.ticket-main > small,
.ticket-main > p,
.ticket-main dt,
.ticket-main dd,
.qr small,
.capacity-grid small,
.capacity-grid span,
table,
th,
td small,
.pill,
.actions a,
.actions button,
.scan-details small,
.flash {
  font-size: var(--size-small);
}
.event-info dt { opacity: .65; letter-spacing: .16em; white-space: nowrap; word-break: keep-all; }
.event-info dt,
.event-info dd { align-self: start; padding-top: 0; line-height: 1.25; }
.event-info dd { margin: 0; font-weight: 600; white-space: nowrap; }
.event-info dd span { opacity: .65; }
.price-compare { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--ink); }
.price-compare > div { padding: 22px; }
.price-compare > div + div { border-left: 1px solid var(--ink); }
.price-compare .price-mode { cursor: pointer; }
.price-compare .price-mode:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.price-compare small,
.price-compare strong,
.price-compare span { display: block; }
.price-compare small { opacity: .65; letter-spacing: .16em; }
.price-compare strong {
  margin-top: 8px;
  font-family: var(--font-display);
  font-size: var(--size-title);
  line-height: 1;
}
.price-compare .price-active strong { color: var(--accent); }
.price-compare span { opacity: .65; }
.price-compare .price-inactive { opacity: .5; }
.price-compare .mode-disabled { cursor: not-allowed; opacity: .35; }
.price-compare .mode-disabled strong { text-decoration: line-through; text-decoration-thickness: 1px; }

.booking-card { align-self: start; padding: 40px; border: 1px solid var(--ink); background: var(--paper); }
.booking-card fieldset { margin: 28px 0 24px; padding: 0; border: 0; }
.booking-card legend,
.field > span,
.total > span { display: block; margin-bottom: 8px; opacity: .65; font-weight: 700; letter-spacing: .13em; }
.field > span.required-label,
.booking-card legend.required-label { color: rgba(41,48,82,.65); opacity: 1; }
.required-mark { color: var(--accent); font-style: normal; }
.date-options { display: grid; gap: 8px; }
.date-option {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 10px 12px;
  border: 1px solid var(--ink);
  cursor: pointer;
}
.date-option:has(input:checked),
.date-option.is-selected {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--paper);
  box-shadow: none;
}
.date-option:has(input:checked) .date-day,
.date-option.is-selected .date-day { color: var(--paper); }
.date-option:has(input:checked) .date-meta small,
.date-option.is-selected .date-meta small { opacity: .8; }
.date-option:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }
.date-option input { position: absolute; opacity: 0; }
.date-day { color: var(--accent); font-family: var(--font-display); font-size: var(--size-body); font-weight: 700; white-space: nowrap; }
.date-meta strong,
.date-meta small { display: block; }
.date-meta small,
.remaining { opacity: .65; }
.remaining { text-align: right; line-height: 1.35; }
.remaining small { display: block; font-size: var(--size-small); }
.date-option.sold { opacity: .4; cursor: not-allowed; }
.availability-note {
  display: flex;
  grid-column: 1 / -1;
  align-items: baseline;
  justify-self: start;
  gap: .35em;
  margin-top: -2px;
  font-size: var(--size-small);
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  opacity: 1;
}
.availability-note small { display: inline; font-size: var(--size-small); }
.low-stock { color: var(--logo-orange-text); }
.sold-label { color: var(--accent); }
.date-option.is-selected .low-stock { color: var(--paper); }
.sales-closed { margin: 16px 0 0; padding: 13px 15px; border: 1px solid var(--accent); color: var(--accent); font-weight: 700; }
.sales-closed span { display: block; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; margin-bottom: 18px; }
.field { display: block; margin-bottom: 18px; }
.form-row .field,
.form-row .total { display: grid; grid-template-rows: auto 46px; align-content: start; margin-bottom: 0; }
.field input,
.field select,
.filters input,
.filters select {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 8px 2px;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--size-body);
}
.field input:focus,
.field select:focus { border-color: var(--accent); }
.form-row .field select,
.total strong { height: 46px; min-height: 46px; margin: 0; padding: 8px 2px; line-height: 30px; }
.total strong { display: block; border-bottom: 1px solid var(--ink); font-family: var(--font-display); font-size: var(--size-body); }
.promo-row { display: grid; grid-template-columns: minmax(0, 1fr) 104px; gap: 12px; align-items: end; margin-bottom: 18px; }
.promo-row .field { margin: 0; }
.promo-button {
  min-height: 46px;
  padding: 5px 10px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: var(--size-small);
  font-weight: 700;
  line-height: 1.15;
}
.promo-button:hover { border-color: var(--accent); background: var(--accent); color: var(--paper); }
.promo-button:disabled { opacity: .5; cursor: wait; }
.promo-message { margin: -10px 0 18px; font-size: var(--size-small); line-height: 1.35; }
.promo-message:empty { display: none; }
.promo-message.success { color: var(--accent); }
.promo-message.error { color: var(--accent); }
.age-check { display: flex; gap: 12px; align-items: flex-start; margin: 6px 0 22px; line-height: 1.55; }
.age-check input { width: 18px; height: 18px; flex: 0 0 auto; align-self: flex-start; margin-top: 3px; accent-color: var(--accent); }
.age-check > span { display: block; min-width: 0; }
.age-check span span { display: block; margin-top: 4px; }
.pay-button {
  width: 100%;
  min-height: 52px;
  padding: 14px 18px;
  border: 0;
  background: var(--ink);
  color: var(--paper);
  cursor: pointer;
  font-family: var(--font-body);
}
.pay-button:hover { background: var(--accent); }
.pay-button:disabled { opacity: .5; cursor: wait; }
.pay-button span,
.pay-button small { display: block; }
.pay-button span { font-size: var(--size-body); font-weight: 700; }
.pay-button > span > span { margin-top: 2px; }
.pay-button small { margin-top: 3px; opacity: .75; letter-spacing: .12em; }
.form-note { margin: 0; text-align: center; opacity: .65; }
.honeypot { position: absolute; left: -10000px; }
.notice { display: flex; align-items: flex-start; gap: 24px; padding: 40px 0 68px; border-top: 1px solid var(--ink); }
.notice strong { align-self: flex-start; color: var(--accent); font-family: var(--font-display); font-size: var(--size-title); line-height: 1.25; }
.notice p { align-self: flex-start; max-width: 720px; margin: 0; opacity: .7; }
.notice p span { display: inline-block; margin-top: 6px; }

footer { padding: 26px 32px; border-top: 1px solid var(--ink); opacity: .65; letter-spacing: .08em; }
footer a { color: inherit; }
.site-footer { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(320px, 1.5fr) auto; align-items: start; gap: 18px 32px; }
.footer-links { display: grid; justify-items: end; gap: 6px 18px; }
.footer-links-row { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 18px; }
.footer-links a { white-space: nowrap; }
.footer-responsibility { white-space: nowrap; text-align: right; }
.footer-email { letter-spacing: .04em; }
.mobile-break { display: none; }
.info-page { max-width: 980px; padding-top: 60px; padding-bottom: 90px; }
.info-card { padding: 48px; border: 1px solid var(--ink); }
.info-card h1 { margin: 16px 0 24px; font-family: var(--font-display); font-size: var(--size-display); font-weight: 600; line-height: .98; letter-spacing: -.04em; }
.info-card h1 span,
.info-card h2 span,
.info-card p span { display: block; margin-top: 7px; }
.info-card h1 span { color: var(--logo-green); font-size: var(--size-title); letter-spacing: .04em; }
.info-card section { margin-top: 32px; padding-top: 28px; border-top: 1px solid rgba(41,48,82,.45); }
.info-card h2 { margin: 0 0 14px; font-family: var(--font-display); font-size: var(--size-title); line-height: 1.15; }
.info-card h2 span { color: var(--accent); }
.info-card p { margin: 0 0 16px; }
.info-card p:last-child { margin-bottom: 0; }
.info-card a { color: var(--ink); text-underline-offset: 4px; }
.info-intro { color: var(--description-blue); }
.info-updated { margin-top: 34px !important; font-size: var(--size-small); opacity: .65; }
.info-card > .text-button { margin-top: 20px; }
.refund-dates { margin: 0 0 20px; padding: 0; list-style: none; border: 1px solid var(--ink); }
.refund-dates li { display: grid; grid-template-columns: 170px 1fr; gap: 16px; padding: 14px 16px; }
.refund-dates li + li { border-top: 1px solid var(--ink); }
.refund-dates strong { font-family: var(--font-display); }
.refund-dates span { opacity: .7; }
.contact-details dl { margin: 0; }
.contact-details dl div { display: grid; grid-template-columns: 190px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid rgba(41,48,82,.45); }
.contact-details dt { opacity: .65; }
.contact-details dd { margin: 0; font-weight: 600; }
.center-page { min-height: calc(100vh - 160px); display: grid; place-items: center; padding-top: 60px; padding-bottom: 80px; }
.status-card { width: min(680px, 100%); padding: 48px; border: 1px solid var(--ink); background: var(--paper); text-align: center; }
.status-card h1 { margin: 16px 0; }
.status-card h1 span { display: block; margin-top: 6px; color: var(--accent); }
.confirmation-event-title { margin: 24px 0 20px; color: var(--logo-orange); font-family: var(--font-display); font-size: var(--size-display); font-weight: 600; line-height: .98; letter-spacing: -.04em; }
.confirmation-event-title em { color: var(--logo-yellow-text); font-style: italic; }
.confirmation-event-title span { display: block; margin-top: 14px; color: var(--logo-green); font-size: var(--size-title); font-weight: 600; line-height: 1.55; letter-spacing: .14em; }
.confirmation-age-notice { margin: 24px 0 0; font-size: var(--size-small); line-height: 1.55; }
.confirmation-age-notice span { display: block; margin-top: 5px; }
.status-card > p:not(.section-number) { opacity: .68; }
.status-symbol { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 20px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-family: var(--font-display); font-size: var(--size-body); font-weight: 700; }
.status-symbol.success { background: var(--accent); color: var(--paper); }
.status-symbol.pending { color: var(--accent); }
.text-button,
.header-link { display: inline-block; padding: 8px 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--ink); cursor: pointer; font-family: var(--font-body); font-size: var(--size-small); font-weight: 700; letter-spacing: .08em; text-decoration: none; }
.status-card .text-button { margin-top: 24px; }
.ticket { display: grid; grid-template-columns: 1fr 180px; margin: 32px 0 10px; border: 1px solid var(--ink); text-align: left; }
.ticket-main { padding: 28px; }
.ticket-main > small { color: var(--accent); letter-spacing: .12em; }
.ticket-main h2 { margin: 10px 0 2px; font-family: var(--font-display); font-size: var(--size-body); }
.ticket-main > p { margin: 0; opacity: .65; }
.ticket-main dl { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }
.ticket-main dt { opacity: .65; letter-spacing: .14em; }
.ticket-main dd { margin: 2px 0 0; font-weight: 700; }
.reference { font-family: var(--font-display); font-size: var(--size-body); font-weight: 700; letter-spacing: .08em; }
.qr { display: grid; place-items: center; align-content: center; padding: 18px; border-left: 1px dashed var(--ink); text-align: center; }
.qr img { width: 135px; height: auto; }
.qr small { margin-top: 8px; opacity: .65; }
.ticket-downloads { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 18px 0 8px; }
.ticket-download-button { display: grid; place-items: center; min-height: 52px; padding: 10px 14px; border: 1px solid var(--ink); color: var(--ink); font-size: var(--size-small); font-weight: 700; line-height: 1.35; text-decoration: none; }
.ticket-download-button:hover,
.ticket-download-button:focus-visible { background: var(--ink); color: var(--paper); }

.hi-tea-page { padding-top: 48px; padding-bottom: 96px; }
.hi-tea-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 7%; align-items: center; padding-bottom: 54px; border-bottom: 1px solid var(--ink); }
.hi-tea-art img { display: block; width: 100%; height: auto; border: 1px solid var(--ink); }
.hi-tea-intro h1 { margin: 18px 0 10px; color: var(--logo-green); font-family: var(--font-display); font-size: var(--size-display); font-weight: 600; line-height: .98; letter-spacing: -.04em; }
.hi-tea-intro h1 span { display: block; margin-top: 10px; color: var(--logo-orange-text); font-size: var(--size-display); letter-spacing: .04em; }
.hi-tea-english-title { margin: 18px 0 26px; color: var(--ink); font-family: var(--font-display); font-size: var(--size-display); font-weight: 600; line-height: 1.1; }
.hi-tea-english-title em { color: var(--logo-yellow-text); font-style: italic; }
.hi-tea-intro dl { margin: 30px 0 0; border-top: 1px solid var(--ink); }
.hi-tea-intro dl div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; padding: 13px 0; border-bottom: 1px solid rgba(41,48,82,.45); }
.hi-tea-intro dt { opacity: .65; font-size: var(--size-small); letter-spacing: .04em; white-space: nowrap; }
.hi-tea-intro dd { margin: 0; font-weight: 700; }
.hi-tea-address { display: block; margin-top: 3px; font-size: var(--size-small); font-weight: 400; line-height: 1.45; }
.hi-tea-low-stock { color: var(--logo-orange-text); font-size: var(--size-small); font-weight: 700; }
.hi-tea-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(430px, .78fr); gap: 7%; padding-top: 54px; }
.hi-tea-story { min-width: 0; }
.hi-tea-copy { padding-top: 26px; border-top: 1px solid rgba(41,48,82,.4); }
.hi-tea-copy + .hi-tea-copy { margin-top: 34px; }
.hi-tea-copy h2 { margin: 0 0 18px; color: var(--accent); font-family: var(--font-display); font-size: var(--size-title); line-height: 1.15; }
.hi-tea-copy p { margin: 0 0 18px; }
.hi-tea-copy-zh { color: var(--description-blue); }
.hi-tea-booking-card { position: sticky; top: 24px; }
.hi-tea-ticket-summary { display: flex; justify-content: space-between; gap: 18px; margin: 28px 0 24px; padding: 16px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font-size: var(--size-small); }
.hi-tea-ticket-summary strong { white-space: nowrap; }
.hi-tea-confirmation-title { font-size: var(--size-title); line-height: 1.15; }
.hi-tea-confirmation-title span { letter-spacing: .04em; }

.admin-login { max-width: 430px; }
.admin-login h1,
.admin-title h1 { font-size: var(--size-display); }
.admin-login h1 { color: var(--logo-orange); }
.admin-login h1 em { color: var(--logo-yellow-text); font-style: italic; }
.admin-login .hero-zh { margin: 0; }
.admin-title h1 span,
.promo-admin-heading h2 span { display: block; margin-top: 7px; color: var(--logo-green); font-size: var(--size-title); letter-spacing: .04em; }
.admin-login form { margin-top: 30px; text-align: left; }
.admin-main { padding-top: 54px; padding-bottom: 80px; }
.booking-dashboard { width: 100%; max-width: none; }
.admin-title { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin-bottom: 32px; }
.admin-title h1 { margin: 6px 0 0; }
.admin-event-caption { margin: 10px 0 0; color: var(--logo-orange-text); font-size: var(--size-small); font-weight: 700; }
.backend-page .site-header { gap: 14px; }
.backend-page .site-header .brand-logo { width: 180px; }
.admin-header-controls { display: grid; flex: 1 1 auto; min-width: 0; gap: 8px; }
.admin-event-switcher { width: min(50vw, 720px); max-width: 100%; min-width: 0; margin: 0; }
.admin-event-switcher label > span { display: block; margin-bottom: 3px; color: var(--accent); font-size: var(--size-small); font-weight: 700; }
.admin-event-switcher select { width: 100%; min-height: 38px; padding: 5px 9px; border: 1px solid var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); font-size: var(--size-small); font-weight: 700; }
.admin-nav { display: flex; align-items: center; justify-content: flex-start; gap: 12px; }
.admin-nav a,
.admin-nav button {
  display: block;
  -webkit-appearance: none;
  appearance: none;
  padding: 7px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: var(--size-small);
  font-weight: 700;
  line-height: 1.55;
  text-decoration: none;
  white-space: nowrap;
}
.admin-nav a:hover,
.admin-nav button:hover,
.admin-nav .active { border-bottom-color: var(--accent); color: var(--accent); }
.admin-nav form { display: block; margin: 0; }
.backend-page .site-footer { width: 100%; max-width: 100%; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); }
.backend-page .site-footer .footer-links { justify-items: end; }
.capacity-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-bottom: 24px; border: 1px solid var(--ink); }
.capacity-grid > a { display: block; padding: 20px; color: var(--ink); text-decoration: none; }
.capacity-grid > a:hover { background: rgba(207,99,1,.08); }
.capacity-grid > a + a { border-left: 1px solid var(--ink); }
.capacity-grid small,
.capacity-grid strong,
.capacity-grid span { display: block; }
.capacity-grid small,
.capacity-grid span { opacity: .65; }
.capacity-grid strong { margin: 6px 0; font-family: var(--font-display); font-size: var(--size-title); }
.capacity-grid strong i { font-style: normal; font-size: var(--size-small); }
.backend-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 28px; }
.backend-shortcuts a { display: block; padding: 18px 20px; border: 1px solid var(--ink); color: var(--ink); text-decoration: none; }
.backend-shortcuts a:hover { border-color: var(--accent); background: var(--accent); color: var(--paper); }
.backend-shortcuts strong,
.backend-shortcuts span { display: block; }
.backend-shortcuts strong { font-family: var(--font-display); font-size: var(--size-body); }
.backend-shortcuts span { margin-top: 3px; font-size: var(--size-small); opacity: .7; }
.promo-admin { margin-bottom: 28px; padding: 24px; border: 1px solid var(--ink); }
.promo-admin-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 20px; }
.promo-admin-heading h2 { margin: 5px 0 0; font-family: var(--font-display); font-size: var(--size-title); line-height: 1; }
.promo-admin-heading > p { max-width: 520px; margin: 0; opacity: .65; font-size: var(--size-small); }
.backend-page .event-sales-heading { display: block; }
.backend-page .event-sales-heading > p { margin-top: 12px; }
.promo-create,
.promo-item { display: grid; grid-template-columns: 1.15fr 1fr 1fr .7fr auto; gap: 10px; align-items: end; }
.event-settings-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.event-settings-form label { display: block; }
.event-settings-form label > span,
.sales-state > span { display: block; margin-bottom: 5px; opacity: .65; font-size: var(--size-small); font-weight: 700; }
.event-settings-form input { width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); font-size: var(--size-small); }
.event-settings-form > button { grid-column: 1 / -1; min-height: 42px; padding: 7px 16px; border: 0; background: var(--ink); color: var(--paper); cursor: pointer; font-size: var(--size-small); font-weight: 700; }
.sales-state { min-height: 42px; padding: 5px 9px; border: 1px solid var(--ink); }
.sales-state strong { display: block; font-size: var(--size-small); }
.capacity-settings { grid-column: 1 / -1; }
.capacity-settings > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.capacity-settings > div > label { display: grid; grid-template-columns: 1fr 100px; align-items: center; gap: 8px 12px; }
.capacity-settings label small { grid-column: 1 / -1; margin: 0; opacity: .65; }
.walkin-open-settings { grid-column: 1 / -1; }
.walkin-open-settings > div { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.walkin-open-settings > div > label { display: flex; align-items: center; gap: 8px; }
.event-settings-form .walkin-open-settings input[type="checkbox"] { width: 18px; min-height: 18px; margin: 0; padding: 0; }
.walkin-open-settings small { display: block; margin-top: 8px; font-size: var(--size-small); opacity: .65; }
.event-structure-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.event-structure-card,
.event-vendor-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 16px; border: 1px solid var(--ink); }
.event-structure-heading { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(41,48,82,.35); }
.event-structure-heading strong { font-family: var(--font-display); font-size: var(--size-body); }
.event-structure-heading small { opacity: .6; font-size: var(--size-small); }
.event-structure-card label > span,
.event-vendor-card label > span { display: block; margin-bottom: 4px; opacity: .7; font-size: var(--size-small); font-weight: 700; }
.event-structure-card input,
.event-structure-card select,
.event-vendor-card input { width: 100%; min-height: 40px; padding: 6px 8px; border: 1px solid var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); font-size: var(--size-small); }
.event-structure-card .event-check,
.event-vendor-card .event-check { display: flex; align-items: center; gap: 8px; }
.event-structure-card .event-check input,
.event-vendor-card .event-check input { width: 18px; min-height: 18px; margin: 0; padding: 0; }
.public-page-event-list { display: grid; gap: 18px; }
.public-page-event-card { border: 1px solid rgba(41,48,82,.4); background: var(--paper); }
.public-page-event-card > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; border-bottom: 1px solid rgba(41,48,82,.3); }
.public-page-event-card > header strong,
.public-page-event-card > header small { display: block; }
.public-page-event-card > header strong { font-family: var(--font-display); font-size: var(--size-title); }
.public-page-event-card > header small,
.public-page-snapshot-list small,
.public-page-draft { font-size: var(--size-small); opacity: .65; }
.public-page-snapshot-list { display: grid; }
.public-page-snapshot-list > div { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 18px; border-top: 1px solid rgba(41,48,82,.18); }
.public-page-snapshot-list > div:first-child { border-top: 0; }
.public-page-snapshot-list span strong,
.public-page-snapshot-list span small { display: block; }
.public-page-snapshot-list a { flex: 0 0 auto; font-size: var(--size-small); font-weight: 700; }
.public-page-snapshot-list > p { margin: 0; padding: 18px; opacity: .65; }
.event-structure-card .event-check span,
.event-vendor-card .event-check span { margin: 0; }
.event-structure-card button,
.event-vendor-card button { min-height: 40px; padding: 7px 12px; border: 0; background: var(--ink); color: var(--paper); cursor: pointer; font-size: var(--size-small); font-weight: 700; }
.event-vendor-category { margin: 22px 0 10px; font-family: var(--font-display); font-size: var(--size-title); }
.event-vendor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.event-vendor-card { grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, .8fr)) auto auto; align-items: end; }
.event-vendor-card button { min-width: 92px; }
.multi-event-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-bottom: 28px; border: 1px solid var(--ink); }
.multi-event-summary.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.multi-event-summary > div { min-width: 0; padding: 16px; }
.multi-event-summary > div + div { border-left: 1px solid var(--ink); }
.multi-event-summary small,
.multi-event-summary strong,
.multi-event-summary span { display: block; }
.multi-event-summary small,
.multi-event-summary span { font-size: var(--size-small); opacity: .7; }
.multi-event-summary strong { margin-top: 4px; font-family: var(--font-display); font-size: var(--size-title); }
.multi-event-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.multi-event-session-card h3 span { display: block; margin-top: 4px; color: var(--logo-green); }
.multi-event-session-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 18px 0 0; }
.multi-event-session-card dl div { padding: 10px; border-top: 1px solid rgba(41,48,82,.35); }
.multi-event-session-card dt { opacity: .65; font-size: var(--size-small); }
.multi-event-session-card dd { margin: 3px 0 0; font-family: var(--font-display); font-size: var(--size-title); font-weight: 700; }
.promo-create { padding-bottom: 18px; border-bottom: 1px solid var(--ink); }
.promo-create label,
.promo-item label { display: block; }
.promo-create label > span,
.promo-item label > span { display: block; margin-bottom: 5px; opacity: .65; font-size: var(--size-small); font-weight: 700; }
.promo-create input,
.promo-create select,
.promo-item input,
.promo-item select { width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); font-size: var(--size-small); }
.promo-create button,
.promo-item button { min-height: 42px; padding: 7px 16px; border: 0; background: var(--ink); color: var(--paper); cursor: pointer; font-size: var(--size-small); font-weight: 700; }
.promo-list { display: grid; }
.promo-item { grid-template-columns: 1fr .85fr 1.25fr .55fr .65fr auto; padding: 16px 0; border-bottom: 1px solid rgba(41,48,82,.35); }
.promo-item:last-child { padding-bottom: 0; border-bottom: 0; }
.promo-item.inactive { opacity: .55; }
.promo-status { align-self: center; font-size: var(--size-small); line-height: 1.25; }
.promo-status span,
.promo-status strong { display: block; }
.promo-status span { opacity: .65; }
.promo-actions { display: flex; gap: 7px; }
.promo-item button.secondary { border: 1px solid var(--ink); background: transparent; color: var(--ink); }
.promo-create > button { grid-column: 1 / -1; }
.promo-item > .promo-status { grid-column: 1 / 3; }
.promo-item > .promo-actions { grid-column: 5 / -1; justify-content: flex-end; }
.promo-date-options { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border: 1px solid rgba(41,48,82,.45); }
.promo-date-options legend { padding: 0 5px; opacity: .65; font-size: var(--size-small); font-weight: 700; }
.promo-date-options > div { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.promo-date-options > div > label { display: flex; align-items: center; gap: 7px; }
.promo-create .promo-date-options > div > label > span,
.promo-item .promo-date-options > div > label > span { display: inline; margin: 0; opacity: 1; font-size: var(--size-small); font-weight: 600; }
.promo-create .promo-date-options input[type="checkbox"],
.promo-item .promo-date-options input[type="checkbox"] { width: 18px; min-height: 18px; margin: 0; padding: 0; }
.promo-date-options small { display: block; margin-top: 7px; opacity: .65; font-size: var(--size-small); }
.promo-empty { margin: 18px 0 0; opacity: .65; font-size: var(--size-small); }
.promo-list .promo-code-item,
.promo-list .promo-code-item:last-child { padding: 0 16px 16px; border: 1px solid rgba(41,48,82,.55); }
.promo-list .promo-code-item + .promo-code-item { margin-top: 16px; }
.promo-card-heading { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; margin: 0 -16px 4px; padding: 12px 16px; border-bottom: 1px solid rgba(41,48,82,.55); background: rgba(41,48,82,.06); }
.promo-card-heading span,
.promo-card-heading small { font-size: var(--size-small); font-weight: 700; }
.promo-card-heading span { opacity: .65; }
.promo-card-heading strong { font-family: var(--font-display); font-size: var(--size-body); color: var(--accent); }
.promo-card-heading small { margin-left: auto; }
.promo-code-item > .promo-actions { grid-column: 1 / -1; align-items: center; margin-top: 2px; padding-top: 12px; border-top: 1px solid rgba(41,48,82,.35); }
.promo-action-owner { margin-right: auto; font-size: var(--size-small); }
.all-bookings { margin-top: 34px; }
.list-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.list-heading p { margin: 0; }
.list-heading > span { font-size: var(--size-small); opacity: .65; }
.filters { display: grid; grid-template-columns: 1fr 150px 2fr auto; gap: 10px; margin-bottom: 20px; }
.backend-page .paid-filters { grid-template-columns: 150px 180px 180px minmax(0, 1fr) auto; }
.filters input,
.filters select { min-height: 42px; padding-inline: 9px; border: 1px solid var(--ink); background: var(--paper); font-size: var(--size-small); }
.filters button { min-height: 42px; padding-inline: 20px; border: 0; background: var(--ink); color: var(--paper); }
.table-wrap { overflow: auto; border: 1px solid var(--ink); background: var(--paper); }
table { width: 100%; min-width: 1100px; border-collapse: collapse; }
.booking-list-wrap { overflow-x: hidden; }
.booking-list-table { min-width: 0; table-layout: fixed; }
.booking-list-table th:nth-child(1) { width: 14%; }
.booking-list-table th:nth-child(2) { width: 20%; }
.booking-list-table th:nth-child(3) { width: 11%; }
.booking-list-table th:nth-child(4) { width: 7%; }
.booking-list-table th:nth-child(5) { width: 17%; }
.booking-list-table th:nth-child(6) { width: 16%; }
.booking-list-table th:nth-child(7) { width: 15%; }
.booking-list-table th,
.booking-list-table td { overflow-wrap: anywhere; }
th { padding: 12px; border-bottom: 1px solid var(--ink); opacity: .65; letter-spacing: .1em; text-align: left; }
td { padding: 14px 12px; border-bottom: 1px solid var(--ink); vertical-align: top; }
td strong,
td small { display: block; }
td small { margin-top: 3px; opacity: .65; }
.pill { display: inline-block; padding: 3px 7px; border: 1px solid var(--ink); border-radius: 20px; text-transform: uppercase; letter-spacing: .08em; }
.pill.paid,
.checked,
.already { color: var(--accent); }
.error-text,
.danger { color: var(--accent); }
.actions { display: flex; flex-wrap: wrap; gap: 8px; }
.actions a,
.actions button { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--ink); cursor: pointer; font-family: var(--font-body); font-weight: 700; text-decoration: none; }
.empty { padding: 44px; opacity: .65; text-align: center; }
.scan-card { max-width: 520px; }
.scan-card.checkin-success { border: 3px solid var(--logo-green); box-shadow: inset 0 9px 0 var(--logo-green); }
.scan-card.checkin-success .section-number { color: var(--logo-green); }
.scan-card .status-symbol.success { border-color: var(--logo-green); background: var(--logo-green); color: var(--paper); }
.scan-card.partial-repeat { border: 3px solid var(--logo-orange-text); box-shadow: inset 0 9px 0 var(--logo-orange-text); }
.scan-card.partial-repeat .section-number { color: var(--logo-orange-text); }
.status-symbol.partial-repeat { border-color: var(--logo-orange-text); background: var(--logo-orange-text); color: var(--paper); }
.scan-card.repeat-scan { border: 3px solid var(--accent); box-shadow: inset 0 9px 0 var(--accent); }
.scan-card.repeat-scan .section-number { color: var(--accent); }
.status-symbol.repeat { border-color: var(--accent); background: var(--accent); color: var(--paper); }
.scan-details { display: grid; grid-template-columns: 1fr 1fr; margin: 30px 0; border: 1px solid var(--ink); text-align: left; }
.scan-details p { margin: 0; padding: 13px; font-weight: 700; }
.scan-details p:nth-child(odd) { border-right: 1px solid var(--ink); }
.scan-details p:nth-child(-n + 2) { border-bottom: 1px solid var(--ink); }
.scan-details small { display: block; opacity: .65; letter-spacing: .13em; }
.ticket-state { margin: 24px 0; padding: 18px; border: 1px solid var(--ink); }
.ticket-state strong,
.ticket-state span,
.ticket-state small { display: block; }
.ticket-state strong { font-family: var(--font-display); font-size: var(--size-body); }
.ticket-state span,
.ticket-state small { margin-top: 3px; font-size: var(--size-small); opacity: .7; }
.ticket-state.complete { border-color: var(--logo-green); color: var(--logo-green); }
.ticket-state.checkin-success { border: 3px solid var(--logo-green); background: var(--logo-green); color: var(--paper); }
.ticket-state.checkin-success span,
.ticket-state.checkin-success small { opacity: 1; }
.ticket-state.partial-checked { border: 3px solid var(--logo-orange-text); background: var(--logo-orange-text); color: var(--paper); }
.ticket-state.partial-checked span,
.ticket-state.partial-checked small { opacity: 1; }
.ticket-state.already-checked { border: 3px solid var(--accent); background: var(--accent); color: var(--paper); }
.ticket-state.already-checked span,
.ticket-state.already-checked small { opacity: 1; }
.ticket-state.invalid { border-color: var(--accent); color: var(--accent); }
.partial-note { margin: -10px 0 22px; color: var(--logo-orange-text); font-size: var(--size-small); font-weight: 700; }
.checkin-form { text-align: left; }
.checkin-form .field { margin-bottom: 20px; }
.undo-form { margin-top: 20px; }
.undo-form summary { list-style: none; }
.undo-form summary::-webkit-details-marker { display: none; }
.undo-confirm-form { margin-top: 16px; padding: 18px; border: 1px solid var(--accent); text-align: left; }
.undo-confirm-form > p { margin: 0 0 16px; font-size: var(--size-small); line-height: 1.55; }
.undo-confirm-form > p span { display: block; margin-top: 3px; }
.undo-confirm-form .field { margin-bottom: 16px; }
.undo-confirm-form .pay-button { background: var(--accent); }
.next-scan { display: block; text-decoration: none; }

.date-tabs { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 22px; border: 1px solid var(--ink); }
.date-tabs a { min-width: 0; padding: 15px 17px; color: var(--ink); text-decoration: none; }
.date-tabs a + a { border-left: 1px solid var(--ink); }
.date-tabs span,
.date-tabs strong { display: block; }
.date-tabs span { overflow: hidden; font-size: var(--size-small); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.date-tabs strong { margin-top: 3px; font-family: var(--font-display); font-size: var(--size-body); }
.date-tabs a:hover,
.date-tabs a.active { background: var(--accent); color: var(--paper); }
.checkin-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 34px; border: 1px solid var(--ink); }
.checkin-summary > div { padding: 20px; }
.checkin-summary > div + div { border-left: 1px solid var(--ink); }
.checkin-summary small,
.checkin-summary strong { display: block; }
.checkin-summary small { font-size: var(--size-small); opacity: .65; }
.checkin-summary strong { margin-top: 4px; font-family: var(--font-display); font-size: var(--size-title); }
.checkin-summary > div:nth-child(3) strong { color: var(--logo-green); }
.checkin-summary > div:nth-child(4) strong { color: var(--logo-orange-text); }
.checkin-summary ul { margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(41,48,82,.35); list-style: none; }
.checkin-summary li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; font-size: var(--size-small); line-height: 1.35; }
.checkin-summary li + li { margin-top: 7px; }
.checkin-summary li span { min-width: 0; overflow-wrap: anywhere; opacity: .65; }
.checkin-summary li b { font-family: var(--font-body); font-size: var(--size-small); }
.paid-list { display: grid; gap: 12px; }
.paid-booking-card { display: grid; grid-template-columns: minmax(220px,1.35fr) minmax(300px,1.5fr) minmax(210px,.9fr) 150px; gap: 22px; align-items: center; padding: 20px; border: 1px solid var(--ink); }
.paid-booking-card.fully-checked-in { border-color: rgba(41,48,82,.35); background: rgba(41,48,82,.08); }
.paid-booking-card.fully-checked-in > :not(.paid-actions) { opacity: .52; }
.paid-booking-card.fully-checked-in .checkin-progress.complete { color: var(--ink); }
.paid-guest small { color: var(--accent); font-size: var(--size-small); font-weight: 700; letter-spacing: .06em; }
.paid-guest h2 { margin: 3px 0; font-family: var(--font-display); font-size: var(--size-body); }
.paid-guest p { margin: 0; font-size: var(--size-small); opacity: .68; }
.paid-booking-card dl { display: grid; grid-template-columns: 1.8fr .65fr .8fr; gap: 14px; margin: 0; }
.paid-booking-card dt { font-size: var(--size-small); opacity: .62; }
.paid-booking-card dd { margin: 2px 0 0; font-size: var(--size-small); font-weight: 700; }
.checkin-progress small,
.checkin-progress strong,
.checkin-progress span { display: block; }
.checkin-progress small,
.checkin-progress span { font-size: var(--size-small); opacity: .68; }
.checkin-progress strong { font-family: var(--font-display); font-size: var(--size-title); line-height: 1.1; }
.checkin-progress.partial { color: var(--logo-orange-text); }
.checkin-progress.complete { color: var(--logo-green); }
.checkin-history { margin-top: 12px; padding-top: 10px; border-top: 1px solid currentColor; color: var(--ink); text-align: left; }
.checkin-history > small { display: block; margin: 0 0 6px; font-size: var(--size-small); font-weight: 700; opacity: .72; }
.checkin-history ul { margin: 0; padding: 0; list-style: none; }
.checkin-history li { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; font-size: var(--size-small); line-height: 1.35; }
.checkin-history li + li { margin-top: 5px; }
.checkin-history li strong { display: block; font-family: var(--font-body); font-size: var(--size-small); line-height: 1.35; white-space: nowrap; }
.checkin-history time { overflow-wrap: anywhere; text-align: right; }
.ticket-state.checkin-success .checkin-history,
.ticket-state.partial-checked .checkin-history,
.ticket-state.already-checked .checkin-history { border-color: var(--paper); color: var(--paper); }
.paid-actions { display: grid; gap: 7px; }
.paid-actions a,
.paid-actions button,
.paid-admin-action summary { display: block; width: 100%; min-height: 40px; padding: 8px; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-size: var(--size-small); font-weight: 700; text-align: center; text-decoration: none; }
.paid-actions .primary-action { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.paid-actions button.primary-action:disabled,
.paid-actions button.primary-action:disabled:hover { border-color: rgba(41,48,82,.3); background: rgba(41,48,82,.16); color: rgba(41,48,82,.55); cursor: not-allowed; }
.paid-actions a:hover,
.paid-actions button:hover,
.paid-admin-action summary:hover { border-color: var(--accent); background: var(--accent); color: var(--paper); }
.paid-admin-action { position: relative; }
.paid-admin-action summary { list-style: none; }
.paid-admin-action summary::-webkit-details-marker { display: none; }
.paid-admin-action form { position: absolute; z-index: 5; right: 0; width: min(380px, calc(100vw - 48px)); margin-top: 7px; padding: 16px; border: 1px solid var(--accent); background: var(--paper); box-shadow: 0 12px 30px rgba(41,48,82,.22); }
.paid-admin-action form p { margin: 0 0 12px; font-size: var(--size-small); line-height: 1.55; }
.paid-admin-action form p span { display: block; margin-top: 3px; }
.paid-admin-action form label { display: grid; gap: 6px; margin-bottom: 12px; font-size: var(--size-small); font-weight: 700; text-align: left; }
.paid-admin-action form input { min-height: 42px; }
.paid-admin-action.refund-action summary,
.paid-admin-action.refund-action button { border-color: var(--accent); color: var(--accent); }
.paid-admin-action.refund-action button:hover { color: var(--paper); }

.scanner-page { padding-top: 44px; }
.scanner-card { max-width: 560px; }
.scanner-card h1 { font-size: var(--size-display); }
.qr-reader { overflow: hidden; margin: 26px 0 18px; border: 1px solid var(--ink); background: rgba(41,48,82,.04); }
.qr-reader:empty { display: none; }
.qr-reader video { display: block; width: 100% !important; }
.qr-reader img { max-width: 100%; }
.scanner-card h1 span { color: var(--logo-green); }
.scanner-start span span { margin-top: 2px; }
.scanner-stop { margin: 6px auto 0 !important; }
.scanner-divider { position: relative; margin: 25px 0; border-top: 1px solid var(--ink); text-align: center; }
.scanner-divider span { position: relative; top: -14px; padding: 0 12px; background: var(--paper); font-size: var(--size-small); font-weight: 700; }
.file-scan-button { display: block; width: 100%; padding: 13px 16px; border: 1px solid var(--ink); cursor: pointer; font-size: var(--size-small); font-weight: 700; text-align: center; }
.file-scan-button:hover { border-color: var(--accent); color: var(--accent); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.manual-ticket { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; margin-top: 24px; text-align: left; }
.manual-ticket .field { margin: 0; }
.manual-ticket button { min-height: 46px; padding: 8px 14px; border: 0; background: var(--ink); color: var(--paper); font-size: var(--size-small); font-weight: 700; }
.scanner-message { min-height: 24px; margin: 16px 0 0 !important; font-size: var(--size-small); font-weight: 700; }
.scanner-message.success { color: var(--logo-green); }
.scanner-message.error { color: var(--accent); }
.backend-page .report-page { width: 100%; max-width: none; }
.backend-page .report-updated { margin: 0; font-size: var(--size-small); opacity: .65; }
.backend-page .report-title-actions { display: grid; justify-items: end; gap: 8px; text-align: right; }
.backend-page .report-print-button { margin: 0; }
.backend-page .report-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 28px; }
.backend-page .report-day-card,
.backend-page .report-chart-section,
.backend-page .report-section,
.backend-page .report-overall { padding: 22px; border: 1px solid var(--ink); }
.backend-page .report-day-card h2,
.backend-page .report-chart-section h2,
.backend-page .report-section h2,
.backend-page .report-overall h2 { margin: 0; font-family: var(--font-display); font-size: var(--size-title); line-height: 1.15; }
.backend-page .report-chart-section { margin-bottom: 28px; }
.backend-page .report-chart-section .report-section-heading { margin-bottom: 14px; }
.backend-page .report-chart-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 18px; padding: 0; list-style: none; font-size: var(--size-small); font-weight: 700; }
.backend-page .report-chart-legend li,
.backend-page .report-pie-legend li { display: flex; align-items: flex-start; gap: 8px; }
.backend-page .report-chart-swatch { width: .85rem; height: .85rem; flex: 0 0 .85rem; border: 1px solid rgba(41,48,82,.25); }
.backend-page .report-chart-legend .report-chart-swatch,
.backend-page .report-pie-legend .report-chart-swatch { margin-top: 4px; }
.backend-page .report-indicator-label { min-width: 0; line-height: 1.25; }
.backend-page .report-indicator-label > span { display: inline; }
.backend-page .report-indicator-label > span + span::before { content: " / "; }
.backend-page .report-indicator-label > span + span { opacity: .72; }
.backend-page .report-indicator-label > small { display: inline; opacity: .65; }
.backend-page .report-indicator-label > small::before { content: " · "; }
.backend-page .report-overall-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.backend-page .report-single-session-overview { grid-template-columns: minmax(0, 1fr); }
.backend-page .report-chart-card,
.backend-page .report-daily-chart-card { min-width: 0; padding: 18px; border: 1px solid rgba(41,48,82,.4); }
.backend-page .report-chart-card h3,
.backend-page .report-daily-chart-card > h3 { margin: 0; font-family: var(--font-display); font-size: var(--size-body); line-height: 1.2; }
.backend-page .report-chart-card > p { margin: 5px 0 18px; font-size: var(--size-small); opacity: .65; }
.backend-page .report-stacked-chart { display: grid; gap: 12px; }
.backend-page .report-stacked-row { display: grid; grid-template-columns: minmax(9rem, .85fr) minmax(10rem, 2fr) auto; gap: 10px; align-items: center; font-size: var(--size-small); }
.backend-page .report-stacked-row > strong { min-width: 0; line-height: 1.25; }
.backend-page .report-stacked-row > b { white-space: nowrap; }
.backend-page .report-stack-track { display: flex; width: 100%; height: 1.2rem; overflow: hidden; background: rgba(41,48,82,.09); }
.backend-page .report-stack-segment { display: block; height: 100%; }
.backend-page .report-daily-chart-grid { display: grid; gap: 14px; }
.backend-page .report-daily-chart-card > h3 { margin-bottom: 16px; color: var(--accent); }
.backend-page .report-pie-pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); align-items: start; gap: 18px; }
.backend-page .report-single-session-pies { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.backend-page .report-pie-chart { display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; align-items: start; gap: 12px 18px; min-width: 0; }
.backend-page .report-daily-chart-grid .report-pie-chart { align-items: start; }
.backend-page .report-pie-chart h4 { grid-column: 1 / -1; min-height: 2.4em; margin: 0; font-family: var(--font-display); font-size: var(--size-body); line-height: 1.2; }
.backend-page .report-donut { position: relative; align-self: start; justify-self: start; width: clamp(8.5rem, 13vw, 11rem); aspect-ratio: 1; border-radius: 50%; }
.backend-page .report-donut::after { position: absolute; inset: 25%; content: ""; border-radius: 50%; background: var(--paper); }
.backend-page .report-donut > strong { position: absolute; z-index: 1; inset: 25%; display: grid; place-items: center; padding: 0; font-family: var(--font-display); font-size: var(--size-small); line-height: 1.1; text-align: center; }
.backend-page .report-pie-legend { display: grid; align-content: start; align-self: start; gap: 8px; min-width: 0; margin: 0; padding: 0; list-style: none; font-size: var(--size-small); }
.backend-page .report-pie-legend li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: 8px; }
.backend-page .report-pie-legend .report-chart-swatch { align-self: start; }
.backend-page .report-pie-legend .report-indicator-label { grid-column: 2; min-width: 0; white-space: normal; overflow-wrap: break-word; word-break: normal; }
.backend-page .report-pie-value { grid-column: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; min-width: 0; line-height: 1.25; }
.backend-page .report-pie-value small { font-size: var(--size-small); opacity: .65; }
.backend-page .report-pie-legend b { white-space: nowrap; text-align: left; font-size: var(--size-small); }
.backend-page .report-pie-compact .report-pie-legend li { grid-template-columns: auto minmax(0, 1fr) max-content; align-items: baseline; }
.backend-page .report-pie-compact .report-pie-legend .report-indicator-label { grid-column: 2; white-space: nowrap; }
.backend-page .report-pie-compact .report-pie-value { grid-column: 3; display: block; white-space: nowrap; }
.backend-page .report-pie-legend .report-chart-empty { display: block; opacity: .65; }
.backend-page .report-cost-mix-pies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.backend-page .report-cost-mix-pies .report-pie-chart { grid-template-columns: 11rem minmax(0, 1fr); gap: 12px; }
.backend-page .report-cost-mix-pies .report-donut { width: 11rem; }
.backend-page .report-velocity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.backend-page .report-traffic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.backend-page .report-insight-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.backend-page .report-demographics-card { grid-column: 1 / -1; margin-top: 14px; }
.backend-page .report-demographics-card > strong { display: block; margin: 18px 0 0; color: var(--logo-orange-text); font-family: var(--font-display); font-size: var(--size-title); }
.backend-page .report-demographics-card > p { margin-bottom: 0; }
.backend-page .report-demographics-overall { max-width: 46rem; margin-top: 18px; }
.backend-page .report-demographics-daily { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(41,48,82,.3); }
.backend-page .report-demographics-daily .report-pie-chart { grid-template-columns: 7.5rem minmax(0, 1fr); gap: 10px 14px; align-items: start; }
.backend-page .report-demographics-daily .report-donut { width: 7.5rem; }
.backend-page .report-fun-fact-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.backend-page .report-fun-fact-grid > div { min-width: 0; padding: 12px; border-top: 1px solid rgba(41,48,82,.35); background: rgba(41,48,82,.035); }
.backend-page .report-fun-fact-grid small,
.backend-page .report-fun-fact-grid strong,
.backend-page .report-fun-fact-grid span { display: block; }
.backend-page .report-fun-fact-grid small,
.backend-page .report-fun-fact-grid span { font-size: var(--size-small); line-height: 1.3; }
.backend-page .report-fun-fact-grid small { opacity: .68; }
.backend-page .report-fun-fact-grid strong { margin-top: 5px; font-family: var(--font-display); font-size: var(--size-title); line-height: 1.1; }
.backend-page .report-fun-fact-grid span { margin-top: 4px; opacity: .72; }
.backend-page .report-insight-list-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.backend-page .report-insight-list-card { min-width: 0; padding: 18px; border: 1px solid rgba(41,48,82,.4); }
.backend-page .report-insight-list-card h3 { margin: 0 0 12px; font-family: var(--font-display); font-size: var(--size-body); line-height: 1.2; }
.backend-page .report-insight-list-card ul { margin: 0; padding: 0; list-style: none; }
.backend-page .report-insight-list-card li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 9px 0; border-top: 1px solid rgba(41,48,82,.2); font-size: var(--size-small); line-height: 1.3; }
.backend-page .report-insight-list-card li > strong { min-width: 0; overflow-wrap: anywhere; }
.backend-page .report-insight-list-card li > span { text-align: right; opacity: .7; }
.backend-page .report-cost-ranking-grid,
.backend-page .report-food-drink-daily-grid { margin-top: 14px; }
.backend-page .report-whole-event-cost-grid { grid-template-columns: minmax(0, 1fr); }
.backend-page .report-cost-analysis-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.backend-page .report-cost-analysis-row .report-chart-card { min-width: 0; }
.backend-page .report-setup-chart-grid { margin: 14px 0; }
.backend-page .report-per-pax-card { margin-bottom: 14px; }
.backend-page .report-per-pax-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.backend-page .report-per-pax-grid > div { min-width: 0; padding: 12px; border-top: 1px solid rgba(41,48,82,.35); background: rgba(41,48,82,.035); }
.backend-page .report-per-pax-grid small,
.backend-page .report-per-pax-grid strong,
.backend-page .report-per-pax-grid em { display: block; }
.backend-page .report-per-pax-grid small { font-size: var(--size-small); line-height: 1.3; opacity: .68; }
.backend-page .report-per-pax-grid strong { margin-top: 5px; font-family: var(--font-display); font-size: var(--size-body); line-height: 1.1; }
.backend-page .report-per-pax-grid em { margin-top: 5px; font-size: var(--size-small); font-style: normal; opacity: .7; }
.backend-page .report-per-pax-grid .report-subsidy { border-top-color: var(--logo-orange-text); }
.backend-page .report-per-pax-grid .report-subsidy strong { color: var(--logo-orange-text); }
.backend-page .report-per-pax-daily { grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0 0 18px; }
.backend-page .report-food-drink-daily-grid .report-pie-chart { grid-template-columns: 8.5rem minmax(0, 1fr); align-items: start; }
.backend-page .report-food-drink-daily-grid .report-donut { justify-self: start; width: 8.5rem; }
.backend-page .report-additional { color: var(--logo-orange-text); }
.backend-page .report-velocity-summary { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; font-size: var(--size-small); }
.backend-page .report-velocity-summary span { text-align: right; opacity: .7; }
.backend-page .report-velocity-summary b { color: var(--accent); }
.backend-page .report-velocity-chart,
.backend-page .report-ranked-chart,
.backend-page .report-value-bars { display: grid; gap: 10px; }
.backend-page .report-velocity-row,
.backend-page .report-ranked-row,
.backend-page .report-value-row { display: grid; grid-template-columns: 9.5rem minmax(8rem, 1fr) max-content; align-items: center; gap: 9px; font-size: var(--size-small); }
.backend-page .report-velocity-row > strong,
.backend-page .report-ranked-row > strong,
.backend-page .report-value-row > strong { min-width: 0; overflow-wrap: break-word; word-break: normal; line-height: 1.25; }
.backend-page .report-bar-label > span { display: block; }
.backend-page .report-bar-label > span + span { margin-top: 1px; opacity: .72; }
.backend-page .report-velocity-row > b,
.backend-page .report-value-row > b { white-space: nowrap; }
.backend-page .report-velocity-row > b small { font-size: var(--size-small); opacity: .55; }
.backend-page .report-velocity-track,
.backend-page .report-rank-track,
.backend-page .report-value-track { position: relative; height: 1rem; overflow: hidden; background: rgba(41,48,82,.09); }
.backend-page .report-velocity-fill,
.backend-page .report-rank-track span,
.backend-page .report-value-track span { display: block; height: 100%; background: var(--ink); }
.backend-page .report-capacity-marker { position: absolute; z-index: 1; top: 0; bottom: 0; width: 2px; background: var(--accent); }
.backend-page .report-ranked-row p { margin: 0; text-align: right; font-size: var(--size-small); line-height: 1.25; }
.backend-page .report-ranked-row p em { color: var(--logo-orange-text); font-style: normal; font-weight: 700; }
@media (min-width: 441px) {
  .backend-page .report-stacked-chart { grid-template-columns: minmax(9rem, .85fr) minmax(10rem, 2fr) max-content; column-gap: 10px; align-items: center; }
  .backend-page .report-stacked-row { display: contents; }
  .backend-page .report-velocity-chart,
  .backend-page .report-ranked-chart,
  .backend-page .report-value-bars { grid-template-columns: 11rem minmax(8rem, 1fr) max-content; column-gap: 9px; align-items: center; }
  .backend-page .report-velocity-row,
  .backend-page .report-ranked-row,
  .backend-page .report-value-row { display: contents; }
  .backend-page .report-ranked-chart > .report-chart-empty { grid-column: 1 / -1; }
}
.backend-page .report-chart-empty { margin: 0; font-size: var(--size-small); opacity: .65; }
.backend-page .report-daily-operations-grid { display: grid; gap: 14px; }
.backend-page .report-daily-operation-card { min-width: 0; padding: 18px; border: 1px solid rgba(41,48,82,.4); }
.backend-page .report-daily-operation-card > h3 { margin: 0 0 16px; color: var(--accent); font-family: var(--font-display); font-size: var(--size-body); line-height: 1.2; }
.backend-page .report-operation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.backend-page .report-operation-grid > section { min-width: 0; padding-top: 12px; border-top: 1px solid rgba(41,48,82,.35); }
.backend-page .report-operation-grid h4 { margin: 0 0 12px; font-family: var(--font-display); font-size: var(--size-body); }
.backend-page .report-operation-note { margin: -7px 0 10px; font-size: var(--size-small); opacity: .65; }
.backend-page .report-column-scroll { width: 100%; overflow: visible; padding-bottom: 0; }
.backend-page .report-column-chart { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: 4px; min-width: 0; }
.backend-page .report-column-item { display: grid; grid-template-rows: auto 6.25rem auto; gap: 3px; min-width: 0; text-align: center; font-size: var(--size-small); }
.backend-page .report-column-item > div { display: flex; align-items: end; background: rgba(41,48,82,.07); }
.backend-page .report-column-item > div span { display: block; width: 100%; min-height: 1px; background: var(--logo-green); }
.backend-page .report-column-item small { font-size: var(--size-small); line-height: 1.15; white-space: nowrap; }
.backend-page .report-financial-result { display: flex; justify-content: space-between; gap: 12px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid rgba(41,48,82,.35); font-size: var(--size-small); }
.backend-page .report-financial-result .positive { color: var(--logo-green); }
.backend-page .report-financial-result .negative { color: var(--accent); }
.backend-page .report-day-card > small { display: block; margin-top: 5px; font-size: var(--size-small); opacity: .65; }
.backend-page .report-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; margin: 18px 0 0; }
.backend-page .report-metrics div { padding: 10px 0; border-top: 1px solid rgba(41,48,82,.35); }
.backend-page .report-metrics dt { font-size: var(--size-small); opacity: .65; }
.backend-page .report-metrics dd { margin: 3px 0 0; font-family: var(--font-display); font-size: var(--size-title); font-weight: 600; }
.backend-page .report-metrics dd small { display: block; margin-top: 3px; font-family: var(--font-body); font-size: var(--size-small); font-weight: 600; opacity: .65; }
.backend-page .report-checked dd,
.backend-page .report-checked strong { color: var(--logo-green); }
.backend-page .report-unchecked dd,
.backend-page .report-unchecked strong { color: var(--logo-orange-text); }
.backend-page .report-promo-breakdown { margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--ink); }
.backend-page .report-promo-breakdown > strong { display: block; margin-bottom: 8px; font-size: var(--size-small); }
.backend-page .report-promo-breakdown ul { margin: 0; padding: 0; list-style: none; }
.backend-page .report-promo-breakdown li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; font-size: var(--size-small); }
.backend-page .report-promo-breakdown li + li { margin-top: 6px; }
.backend-page .report-promo-breakdown li span { min-width: 0; overflow-wrap: anywhere; opacity: .7; }
.backend-page .report-test-note { margin: 14px 0 0; padding-top: 12px; border-top: 1px dashed rgba(41,48,82,.45); font-size: var(--size-small); opacity: .65; }
.backend-page .report-section { margin-bottom: 28px; }
.backend-page .report-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 18px; }
.backend-page .report-section-heading p { max-width: 620px; margin: 0; font-size: var(--size-small); opacity: .65; }
.backend-page .report-cost-list { display: grid; gap: 12px; }
.backend-page .report-cost-card { border-top: 1px solid var(--ink); padding-top: 14px; }
.backend-page .report-cost-card > header { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
.backend-page .report-cost-card > header h3 { margin: 0; font-family: var(--font-display); font-size: var(--size-body); }
.backend-page .report-cost-card > header strong { font-size: var(--size-small); }
.backend-page .report-setup-summary { margin: 14px 0; }
.backend-page .report-cost-days { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.backend-page .report-cost-days > div { padding: 12px; background: rgba(41,48,82,.045); }
.backend-page .report-cost-days small,
.backend-page .report-cost-days strong,
.backend-page .report-cost-days span,
.backend-page .report-cost-days em { display: block; }
.backend-page .report-cost-days small,
.backend-page .report-cost-days span,
.backend-page .report-cost-days em { font-size: var(--size-small); }
.backend-page .report-cost-days small,
.backend-page .report-cost-days span { opacity: .65; }
.backend-page .report-cost-days strong { margin-top: 3px; font-size: var(--size-body); }
.backend-page .report-cost-days em { margin-top: 5px; font-style: normal; opacity: .65; }
.backend-page .report-cost-days em.report-additional { color: var(--logo-orange-text); opacity: 1; }
.backend-page .report-cost-card > header .report-additional { color: var(--logo-orange-text); }
.backend-page .report-cost-days em.report-reduction,
.backend-page .report-cost-card > header .report-reduction,
.backend-page .report-reduction dt,
.backend-page .report-reduction dd,
.backend-page .report-reduction small,
.backend-page .report-reduction strong { color: var(--logo-green); opacity: 1; }
.backend-page .report-other-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--ink); background: var(--ink); }
.backend-page .report-other-list.report-cost-overview { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.backend-page .report-other-list.report-single-list { grid-template-columns: 1fr; }
.backend-page .report-other-list.report-expense-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.backend-page .report-other-list div { padding: 16px; background: var(--paper); }
.backend-page .report-other-list dt { font-size: var(--size-small); opacity: .65; }
.backend-page .report-other-list dd { margin: 6px 0 0; font-family: var(--font-display); font-size: var(--size-title); font-weight: 600; }
.backend-page .report-expense-planning { display: block; margin-top: 3px; font-size: var(--size-small); opacity: .65; }
.backend-page .report-overall { margin-bottom: 28px; background: var(--ink); color: var(--paper); }
.backend-page .report-overall-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.backend-page .report-overall-grid div { padding-top: 12px; border-top: 1px solid rgba(255,247,232,.45); }
.backend-page .report-overall-grid small,
.backend-page .report-overall-grid strong { display: block; }
.backend-page .report-overall-grid small { font-size: var(--size-small); opacity: .72; }
.backend-page .report-overall-grid strong { margin-top: 5px; font-family: var(--font-display); font-size: var(--size-title); }
.backend-page .report-result.negative { color: var(--logo-yellow); }
.backend-page .report-result.positive { color: var(--logo-green); }
.flash-wrap { position: fixed; z-index: 20; top: 95px; right: 20px; }
.flash { padding: 11px 16px; background: var(--ink); color: var(--paper); }
.flash.error { background: var(--accent); }

@media (min-width: 1101px) {
  .backend-page .report-cost-analysis-row .report-value-bars {
    grid-template-columns: 7.5rem minmax(4rem, 1fr) max-content;
    column-gap: 7px;
  }
}

@media (max-width: 1400px) and (min-width: 801px) {
  .backend-page .admin-nav { flex-wrap: wrap; }
  .backend-page .report-cost-mix-pies { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .promo-create,
  .promo-item { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-settings-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .promo-create button { grid-column: 1 / -1; }
  .promo-item > .promo-status,
  .promo-item > .promo-actions { grid-column: auto; }
  .promo-code-item > .promo-card-heading,
  .promo-code-item > .promo-actions { grid-column: 1 / -1; }
  .backend-page .report-summary-grid { grid-template-columns: 1fr; }
  .backend-page .report-cost-analysis-row { grid-template-columns: 1fr; }
  .backend-page .report-overall-chart-grid { grid-template-columns: 1fr; }
  .backend-page .report-velocity-grid,
  .backend-page .report-traffic-grid,
  .backend-page .report-insight-chart-grid,
  .backend-page .report-operation-grid { grid-template-columns: 1fr; }
  .backend-page .report-demographics-daily { grid-template-columns: 1fr; }
  .backend-page .report-fun-fact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-per-pax-grid,
  .backend-page .report-per-pax-daily { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-other-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-other-list.report-expense-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backend-page .report-other-list.report-single-list { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .site-header { min-height: 72px; padding: 14px 18px; }
  .site-header:has(.admin-nav) { display: block; }
  .site-header:has(.admin-nav) .brand-logo { margin-bottom: 12px; }
  .admin-header-controls { width: 100%; gap: 12px; }
  .admin-event-switcher { width: 100%; max-width: none; min-width: 0; margin: 0; }
  main { padding-inline: 18px; }
  .hero { padding: 46px 0 36px; }
  .venue { position: static; margin-top: 28px; }
  .booking-layout { grid-template-columns: minmax(0, 1fr); gap: 44px; padding: 36px 0 56px; }
  .hi-tea-page { padding-top: 32px; padding-bottom: 58px; }
  .hi-tea-hero,
  .hi-tea-content { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .hi-tea-hero { padding-bottom: 42px; }
  .hi-tea-content { padding-top: 42px; }
  .hi-tea-art { max-width: 620px; }
  .hi-tea-booking-card { position: static; order: -1; }
  .public-page-event-card > header,
  .public-page-snapshot-list > div { align-items: flex-start; flex-direction: column; }
  .event-info { min-width: 0; }
  .event-copy { overflow-wrap: anywhere; }
  .booking-card { padding: 26px 20px; }
  .notice { padding-bottom: 48px; }
  .ticket { grid-template-columns: 1fr; }
  .qr { border-top: 1px dashed var(--ink); border-left: 0; }
  .capacity-grid { grid-template-columns: 1fr; }
  .capacity-grid > a + a { border-top: 1px solid var(--ink); border-left: 0; }
  .admin-nav { width: 100%; max-width: none; justify-content: flex-start; gap: 14px; overflow-x: auto; }
  .backend-page .admin-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; overflow: visible; }
  .backend-page .admin-nav a,
  .backend-page .admin-nav form,
  .backend-page .admin-nav button { min-width: 0; }
  .backend-page .admin-nav a,
  .backend-page .admin-nav button { width: 100%; white-space: normal; }
  .backend-page .admin-nav button { text-align: left; }
  .admin-nav a,
  .admin-nav button { padding-block: 3px; }
  .backend-shortcuts { grid-template-columns: 1fr; }
  .promo-admin-heading { display: block; }
  .promo-admin-heading > p { margin-top: 10px; }
  .promo-create { grid-template-columns: 1fr 1fr; }
  .promo-create button { grid-column: 1 / -1; }
  .promo-item { grid-template-columns: 1fr 1fr; }
  .event-structure-list,
  .event-vendor-grid,
  .multi-event-card-grid { grid-template-columns: 1fr; }
  .event-vendor-card { grid-template-columns: 1fr 1fr; }
  .multi-event-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .multi-event-summary > div:nth-child(odd) { border-left: 0; }
  .promo-status,
  .promo-actions { margin-top: 4px; }
  .filters { grid-template-columns: 1fr 1fr; }
  .backend-page .paid-filters { grid-template-columns: 1fr; }
  .filters input,
  .filters button { grid-column: 1 / -1; }
  .booking-list-wrap { overflow: visible; border: 0; background: transparent; }
  .booking-list-table,
  .booking-list-table tbody,
  .booking-list-table tr,
  .booking-list-table td { display: block; width: 100%; }
  .booking-list-table { table-layout: auto; }
  .booking-list-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .booking-list-table tbody { display: grid; gap: 14px; }
  .booking-list-table tr { border: 1px solid var(--ink); background: var(--paper); }
  .booking-list-table td { position: relative; min-height: 52px; padding: 12px 12px 12px 152px; border-bottom: 1px solid rgba(41,48,82,.35); }
  .booking-list-table td:last-child { border-bottom: 0; }
  .booking-list-table td::before { position: absolute; top: 12px; left: 12px; width: 124px; content: attr(data-label); opacity: .65; font-size: var(--size-small); font-weight: 700; line-height: 1.35; }
  .booking-list-table .empty { min-height: 0; padding: 28px 18px; text-align: center; }
  .booking-list-table .empty::before { content: none; }
  .date-tabs { grid-template-columns: 1fr 1fr; }
  .date-tabs a:nth-child(3) { border-left: 0; }
  .date-tabs a:nth-child(n+3) { border-top: 1px solid var(--ink); }
  .checkin-summary { grid-template-columns: 1fr 1fr; }
  .checkin-summary > div:nth-child(3) { border-left: 0; }
  .checkin-summary > div:nth-child(n+3) { border-top: 1px solid var(--ink); }
  .backend-page .report-section-heading { display: block; }
  .backend-page .report-section-heading p { margin-top: 8px; }
  .backend-page .report-insight-list-grid { grid-template-columns: 1fr; }
  .backend-page .report-pie-pair { grid-template-columns: 1fr; }
  .backend-page .report-cost-mix-pies .report-pie-chart { grid-template-columns: 1fr; }
  .backend-page .report-cost-mix-pies .report-donut { justify-self: center; }
  .backend-page .report-overall-grid { grid-template-columns: 1fr 1fr; }
  .paid-booking-card { grid-template-columns: 1.4fr 1fr; }
  .paid-booking-card dl { grid-column: 1 / -1; grid-row: 2; }
  .paid-actions { grid-template-columns: 1fr 1fr; grid-column: 1 / -1; }
  .paid-admin-action form { position: static; width: auto; }
  .status-card { padding: 36px 20px; }
  footer { padding: 24px 18px; }
  .site-footer { display: grid; grid-template-columns: 1fr; gap: 18px; }
  .footer-links { justify-items: start; gap: 7px 16px; }
  .footer-links-row { justify-content: flex-start; flex-wrap: wrap; }
  .footer-responsibility { text-align: left; }
  .backend-page .site-footer { grid-template-columns: 1fr; }
  .backend-page .site-footer .footer-links { justify-items: start; }
  .info-page { padding-top: 38px; padding-bottom: 58px; }
  .info-card { padding: 32px 22px; }
  .flash-wrap { right: 15px; left: 15px; }
  .flash { text-align: center; }
}

@media (max-width: 440px) {
  .site-header { padding-inline: 16px; }
  .brand-logo { width: 180px; }
  main { padding-inline: 16px; }
  .hero { padding: 42px 0 28px; }
  .eyebrow { line-height: 1.45; letter-spacing: .13em; }
  .eyebrow span { display: block; }
  .eyebrow span + span { margin-top: 2px; }
  .eyebrow span + span::before { content: none; }
  .hero h1 { margin-top: 20px; }
  .hero-zh,
  .confirmation-event-title span { line-height: 1.25; letter-spacing: .04em; }
  .event-line { gap: 4px; margin-top: 28px; letter-spacing: .08em; }
  .venue { margin-top: 24px; }
  .booking-layout { gap: 38px; padding: 28px 0 48px; }
  .event-info > .section-number + p { margin-top: 20px; }
  .event-info dl { margin: 30px 0; }
  .event-info dl div { display: grid; grid-template-columns: 86px minmax(0, 1fr); align-items: start; gap: 8px; padding: 14px 0; }
  .event-info dt { margin: 0; white-space: nowrap; word-break: keep-all; letter-spacing: .02em; }
  .event-info dd { min-width: 0; font-size: var(--size-small); white-space: normal; overflow-wrap: anywhere; text-align: right; }
  .price-compare > div { padding: 16px 14px; }
  .price-compare small { letter-spacing: .07em; }
  .booking-card { min-width: 0; padding: 24px 18px; }
  .booking-card fieldset { margin: 24px 0 20px; }
  .date-option { grid-template-columns: minmax(0, 1fr) auto; min-width: 0; min-height: 58px; padding: 10px 8px; }
  .date-day { min-width: 0; font-size: var(--size-small); line-height: 1.3; letter-spacing: -.025em; white-space: normal; overflow-wrap: anywhere; }
  .form-row { gap: 16px; }
  .promo-row { grid-template-columns: minmax(0, 1fr) 92px; gap: 10px; }
  .age-check { line-height: 1.45; }
  .pay-button { padding-inline: 14px; }
  .pay-button small { letter-spacing: .05em; }
  .promo-admin { padding: 20px 16px; }
  .promo-create,
  .promo-item { grid-template-columns: 1fr; }
  .event-settings-form,
  .capacity-settings > div { grid-template-columns: 1fr; }
  .promo-create button { grid-column: auto; }
  .promo-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .promo-code-item > .promo-actions { grid-template-columns: 1fr 1fr; }
  .promo-code-item .promo-action-owner { grid-column: 1 / -1; }
  .promo-date-options > div { display: grid; gap: 8px; }
  .admin-login { min-width: 0; overflow: hidden; }
  .admin-login h1 em { display: block; }
  .admin-login .section-number { letter-spacing: .12em; }
  .admin-main { padding-top: 38px; }
  .admin-title { display: block; }
  .admin-title .text-button { margin-top: 16px; }
  .list-heading { display: block; }
  .list-heading > span { display: block; margin-top: 5px; }
  .booking-list-table td { padding-left: 124px; }
  .booking-list-table td::before { width: 96px; }
  .date-tabs span { letter-spacing: -.01em; }
  .checkin-summary > div { padding: 15px; }
  .backend-page .report-day-card,
  .backend-page .report-chart-section,
  .backend-page .report-section,
  .backend-page .report-overall { padding: 18px 16px; }
  .backend-page .report-per-pax-grid,
  .backend-page .report-per-pax-daily { grid-template-columns: 1fr 1fr; }
  .backend-page .report-fun-fact-grid { grid-template-columns: 1fr 1fr; }
  .backend-page .report-insight-list-card li { grid-template-columns: 1fr; gap: 4px; }
  .backend-page .report-insight-list-card li > span { text-align: left; }
  .backend-page .report-chart-card,
  .backend-page .report-daily-chart-card,
  .backend-page .report-daily-operation-card { padding: 16px 14px; }
  .backend-page .report-stacked-row { grid-template-columns: minmax(0, 1fr) auto; }
  .backend-page .report-stack-track { grid-column: 1 / -1; grid-row: 2; }
  .backend-page .report-pie-chart { grid-template-columns: 1fr; }
  .backend-page .report-donut { justify-self: center; width: clamp(8.5rem, 45vw, 10.5rem); }
  .backend-page .report-food-drink-daily-grid .report-pie-chart { grid-template-columns: 1fr; }
  .backend-page .report-food-drink-daily-grid .report-donut { justify-self: center; width: clamp(8.5rem, 45vw, 10.5rem); }
  .backend-page .report-demographics-daily .report-pie-chart { grid-template-columns: 1fr; }
  .backend-page .report-demographics-daily .report-donut { width: clamp(8.5rem, 45vw, 10.5rem); }
  .backend-page .report-velocity-row,
  .backend-page .report-ranked-row,
  .backend-page .report-value-row { grid-template-columns: minmax(0, 1fr) auto; }
  .backend-page .report-velocity-track,
  .backend-page .report-rank-track,
  .backend-page .report-value-track { grid-column: 1 / -1; grid-row: 2; }
  .backend-page .report-ranked-row p { text-align: right; }
  .backend-page .report-insight-chart-grid .report-ranked-row { grid-template-columns: 1fr; }
  .backend-page .report-insight-chart-grid .report-rank-track,
  .backend-page .report-insight-chart-grid .report-ranked-row p { grid-column: 1; grid-row: auto; }
  .backend-page .report-insight-chart-grid .report-ranked-row p { text-align: left; }
  .backend-page .report-column-item small.minor { visibility: hidden; }
  .backend-page .report-velocity-summary { display: block; }
  .backend-page .report-velocity-summary span { display: block; margin-top: 4px; text-align: left; }
  .backend-page .report-cost-card > header { display: block; }
  .backend-page .report-cost-card > header strong { display: block; margin-top: 3px; }
  .backend-page .report-cost-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backend-page .report-other-list,
  .backend-page .report-other-list.report-expense-list { grid-template-columns: 1fr; }
  .paid-booking-card { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .paid-booking-card dl { grid-column: auto; grid-row: auto; grid-template-columns: 1fr; padding: 14px 0; border-top: 1px solid rgba(41,48,82,.35); border-bottom: 1px solid rgba(41,48,82,.35); }
  .paid-booking-card dl div { display: flex; justify-content: space-between; gap: 14px; }
  .checkin-history li { grid-template-columns: 1fr; }
  .checkin-history time { text-align: left; }
  .paid-actions { grid-column: auto; }
  .manual-ticket { grid-template-columns: 1fr; }
  .scanner-card { padding-inline: 18px; }
  .ticket-main dl { grid-template-columns: 1fr; }
  .ticket-downloads { grid-template-columns: 1fr; }
  .notice { gap: 16px; }
  .notice strong { flex: 0 0 auto; margin-top: 0; }
  footer { line-height: 1.45; letter-spacing: .04em; }
  .footer-links { grid-template-columns: 1fr; justify-items: stretch; }
  .footer-links-row { display: grid; grid-template-columns: 1fr; gap: 7px; }
  .info-card { padding: 26px 18px; }
  .info-card h1 { overflow-wrap: anywhere; }
  .refund-dates li { grid-template-columns: 1fr; gap: 2px; }
  .contact-details dl div { grid-template-columns: 1fr; gap: 4px; }
  .desktop-separator { display: none; }
  .mobile-break { display: inline; }
}

@media (max-width: 360px) {
  .booking-card { padding-inline: 12px; }
  .backend-page .report-cost-days,
  .backend-page .report-overall-grid { grid-template-columns: 1fr; }
  .backend-page .report-per-pax-grid,
  .backend-page .report-per-pax-daily { grid-template-columns: 1fr; }
}

@page { size: A3 landscape; margin: 8mm; }

/* Lokal Oktoberfest uses the shared type scale with Farmer's Bar colours. */
.farmers-brand-logo { width: 116px; max-height: 64px; object-fit: contain; }
.lokal-page { --lokal-navy:#2c2b3b; --lokal-gold:#f4b321; --lokal-orange:#ef7d22; --lokal-cream:#fff8df; max-width:1240px; }
.lokal-hero { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr); gap:48px; overflow:hidden; padding:56px; border:1px solid var(--lokal-navy); background:var(--lokal-cream); color:var(--lokal-navy); }
.lokal-rays { position:absolute; inset:-40%; z-index:-1; opacity:.28; background:repeating-conic-gradient(from 12deg,var(--lokal-gold) 0deg 8deg,transparent 8deg 18deg); }
.lokal-hero .eyebrow { margin:0; color:var(--lokal-orange); }
.lokal-hero h1 { margin:18px 0; max-width:820px; font-family:var(--font-display); font-size:var(--size-display); line-height:.9; letter-spacing:-.04em; }
.lokal-hero h1 span { color:var(--lokal-orange); }
.lokal-hero h1 em { color:var(--lokal-gold); font-style:normal; }
.lokal-subtitle { font-size:var(--size-title); font-weight:700; line-height:1.3; }
.lokal-subtitle span { color:var(--lokal-orange); }
.lokal-logo-panel { display:grid; place-items:center; min-height:300px; border:1px solid var(--lokal-navy); background:var(--lokal-navy); }
.lokal-logo-panel img { display:block; width:min(100%,320px); height:auto; }
.lokal-event-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:34px; border-block:1px solid var(--lokal-navy); }
.lokal-event-facts div { padding:14px 14px 14px 0; }
.lokal-event-facts span,.lokal-event-facts small { display:block; font-size:var(--size-small); font-weight:500; }
.lokal-event-facts strong { display:block; margin-top:5px; font-size:var(--size-body); line-height:1.3; }
.lokal-intro { padding:48px 0 28px; }
.lokal-intro h2 { margin:12px 0 4px; font-family:var(--font-display); font-size:var(--size-title); }
.lokal-intro p { margin:8px 0; }
.lokal-validity { color:var(--logo-orange-text); font-weight:700; }
.lokal-booking-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); gap:38px; padding-bottom:54px; }
.lokal-packages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-content:start; }
.lokal-package { min-height:260px; padding:24px; border:1px solid var(--lokal-navy); border-radius:0; background:transparent; color:var(--lokal-navy); text-align:left; cursor:pointer; transition:transform .15s ease,box-shadow .15s ease,background .15s ease; }
.lokal-package:hover:not(:disabled) { transform:translateY(-2px); box-shadow:6px 6px 0 var(--lokal-gold); }
.lokal-package.selected { background:var(--lokal-navy); color:white; box-shadow:7px 7px 0 var(--lokal-gold); }
.lokal-package.unavailable { opacity:.46; cursor:not-allowed; }
.lokal-package-tier,.lokal-package i { display:block; color:var(--lokal-orange); font-size:var(--size-small); font-style:normal; font-weight:800; letter-spacing:.08em; }
.lokal-package strong { display:block; margin:13px 0; font-family:var(--font-display); font-size:var(--size-title); line-height:1.05; }
.lokal-package strong small { font-size:var(--size-small); }
.lokal-package > span:not(.lokal-package-tier) { display:block; font-size:var(--size-small); }
.lokal-package b { display:block; margin-top:18px; color:var(--lokal-orange); font-size:var(--size-title); }
.lokal-booking-card { border-color:var(--lokal-navy); }
.lokal-pay-button { background:var(--lokal-orange); border-color:var(--lokal-orange); }
.lokal-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:34px 0 70px; border-top:1px solid var(--ink); }
.lokal-notes div { display:grid; gap:6px; }
.lokal-notes span { font-size:var(--size-small); }
.lokal-page input[type="checkbox"]:checked { border-color:var(--lokal-orange); background:var(--lokal-orange); }

@media (max-width:800px) {
  .lokal-page { width: 100%; min-width: 0; }
  .lokal-hero { grid-template-columns:1fr; padding:28px 20px; gap:24px; }
  .lokal-hero > * { min-width: 0; }
  .lokal-hero .eyebrow { overflow-wrap: anywhere; letter-spacing: .12em; }
  .lokal-hero h1 { max-width: 100%; font-size: clamp(2.15rem, 10.5vw, 2.6rem); overflow-wrap: anywhere; }
  .lokal-hero h1 span { display: block; }
  .lokal-subtitle { max-width: 100%; font-size: var(--size-body); overflow-wrap: anywhere; }
  .lokal-logo-panel { min-height:220px; }
  .lokal-logo-panel img { width: min(100%, 260px); }
  .lokal-event-facts { grid-template-columns:1fr; }
  .lokal-event-facts div { border-bottom:1px solid rgba(44,43,59,.25); }
  .lokal-booking-grid { display:flex; flex-direction:column; }
  .lokal-booking-card { order:-1; }
  .lokal-packages { grid-template-columns:1fr; }
  .lokal-package { min-height:0; }
  .lokal-notes { grid-template-columns:1fr; }
}

@media print {
  html,
  body.backend-page { width: 100%; min-width: 0; background: var(--paper); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .site-header,
  footer,
  .text-button { display: none; }
  .backend-page main.report-page { width: 100%; max-width: none; padding: 0; }
  .backend-page .admin-title { display: flex; align-items: end; }
  .backend-page .report-title-actions { display: block; text-align: right; }
  .backend-page .report-summary-grid,
  .backend-page .report-velocity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-overall-chart-grid,
  .backend-page .report-traffic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backend-page .report-insight-chart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backend-page .report-demographics-daily { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-fun-fact-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .backend-page .report-insight-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backend-page .report-operation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .backend-page .report-column-scroll { overflow: visible; }
  .backend-page .report-column-chart { min-width: 0; }
  .backend-page .report-column-item small.minor { visibility: visible; }
  .backend-page .report-chart-card,
  .backend-page .report-daily-chart-card,
  .backend-page .report-daily-operation-card,
  .backend-page .report-insight-list-card,
  .backend-page .report-day-card,
  .backend-page .report-cost-card,
  .backend-page .report-overall { break-inside: avoid-page; page-break-inside: avoid; }
  .center-page { padding: 0; }
  .status-card { border: 0; }
  .ticket { break-inside: avoid; }
}
