/*
 * Proticket platform components, shared by the public theme, wp-admin,
 * the scanner, tickets and embedded widgets. Requires tokens.css.
 * Inventory and rules: docs/DESIGN.md.
 */

/* ---------- Base for plugin-rendered surfaces ---------- */
.pt-catalogue,
.pt-scanner,
.pt-ticket,
.pt-admin,
.pt-standalone {
  font-family: var(--pt-font-body);
  color: var(--pt-ink);
  line-height: 1.5;
}
.pt-standalone {
  margin: 0;
  background: var(--pt-paper);
}
.pt-widget-shell {
  max-width: 1000px;
  padding: var(--pt-space-6);
  margin: auto;
}
.pt-standalone :focus-visible:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin :focus-visible:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  outline: var(--pt-focus-width) solid var(--pt-focus);
  outline-offset: 2px;
}

/* ---------- Text helpers ---------- */
.pt-eyebrow {
  font-size: var(--pt-eyebrow-size);
  font-weight: 750;
  letter-spacing: var(--pt-eyebrow-tracking);
  text-transform: uppercase;
  color: var(--pt-ticket-ink);
}
.pt-caption {
  font-size: var(--pt-text-xs);
  color: var(--pt-muted);
}
.pt-mono {
  font-family: var(--pt-font-mono);
  letter-spacing: 0.04em;
}

/* ---------- Buttons: the only definition on the platform ----------
   .pt-button             primary, forest pill
   .pt-button-secondary   outline pill (.pt-outline and .pt-secondary are aliases)
   .pt-button-on-dark     lime pill for forest, plum and photo grounds
   .pt-button-small       compact size for tables and dense rows          */
.pt-button,
.pt-button-secondary,
.pt-outline,
.pt-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pt-space-3);
  min-height: var(--pt-control-height);
  padding: var(--pt-space-3) var(--pt-space-6);
  border: 1px solid transparent;
  border-radius: var(--pt-radius-pill);
  font: 650 var(--pt-text-md) / 1.2 var(--pt-font-body);
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--pt-duration-fast) var(--pt-ease),
    border-color var(--pt-duration-fast) var(--pt-ease);
}
.pt-button,
.pt-button:visited,
.pt-button:hover,
.pt-button:focus {
  background: var(--pt-forest);
  color: var(--pt-white);
  text-decoration: none;
}
.pt-button:hover {
  background: var(--pt-forest-deep);
}
.pt-button-secondary,
.pt-outline,
.pt-secondary,
.pt-button.pt-button-secondary,
.pt-button-secondary:visited,
.pt-button-secondary:hover,
.pt-button-secondary:focus {
  background: transparent;
  border-color: var(--pt-line-strong);
  color: var(--pt-ink);
}
.pt-button-secondary:hover,
.pt-outline:hover,
.pt-secondary:hover,
.pt-button.pt-button-secondary:hover {
  background: var(--pt-sand);
}
.pt-button.pt-button-on-dark,
.pt-button-on-dark:visited,
.pt-button-on-dark:focus {
  background: var(--pt-lime);
  color: var(--pt-forest-deep);
}
.pt-button.pt-button-on-dark:hover {
  background: var(--pt-white);
}
.pt-button-on-dark:focus-visible {
  outline-color: var(--pt-focus-on-dark);
}
.pt-button.pt-button-small,
.pt-button-secondary.pt-button-small {
  min-height: 40px;
  padding: var(--pt-space-2) var(--pt-space-4);
  font-size: var(--pt-text-sm);
}
.pt-button:disabled,
.pt-button-secondary:disabled,
.pt-outline:disabled,
.pt-secondary:disabled {
  opacity: 0.6;
  cursor: wait;
}
.pt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pt-space-3);
  margin: var(--pt-space-5) 0;
}

/* ---------- Status ---------- */
.pt-notice {
  background: var(--pt-success-bg);
  border: 1px solid var(--pt-success-line);
  color: var(--pt-ink);
  padding: var(--pt-space-4) var(--pt-space-5);
  border-radius: var(--pt-radius-m);
  font-size: var(--pt-text-sm);
  margin: var(--pt-space-6) 0;
}
.pt-notice.is-warning {
  background: var(--pt-warning-bg);
  border-color: var(--pt-warning-line);
}
.pt-notice.is-danger {
  background: var(--pt-danger-bg);
  border-color: var(--pt-danger-line);
}
.pt-badge {
  display: inline-block;
  padding: var(--pt-space-1) var(--pt-space-3);
  border-radius: var(--pt-radius-pill);
  background: var(--pt-sage);
  color: var(--pt-forest-deep);
  font-size: var(--pt-text-xs);
  font-weight: 700;
  line-height: 1.5;
  text-transform: capitalize;
}
.pt-badge.is-success {
  background: var(--pt-success-bg);
  color: var(--pt-success-ink);
}
.pt-badge.is-warning {
  background: var(--pt-warning-bg);
  color: var(--pt-warning-ink);
}
.pt-badge.is-danger {
  background: var(--pt-danger-bg);
  color: var(--pt-danger-ink);
}
.pt-form-status {
  font-size: var(--pt-text-sm);
}
.pt-empty {
  background: var(--pt-sand);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-l);
  padding: var(--pt-space-12);
  text-align: center;
}
.pt-empty h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-title-m);
  line-height: 1.2;
  margin: var(--pt-space-3) 0;
}
.pt-empty p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  max-width: 530px;
  margin: var(--pt-space-3) auto;
  color: var(--pt-ink-soft);
}

/* ---------- Session cards and booking ---------- */
.pt-session-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: var(--pt-space-6);
}
.pt-session-card {
  border: 1px solid var(--pt-line);
  padding: var(--pt-space-6);
  border-radius: var(--pt-radius-l);
  background: var(--pt-surface);
}
.pt-session-card h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-title-s);
  line-height: 1.2;
  margin: var(--pt-space-6) 0 var(--pt-space-4);
}
.pt-session-card p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-text-sm);
  color: var(--pt-ink-soft);
}
.pt-session-top,
.pt-session-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-3);
  font-size: var(--pt-text-xs);
}
.pt-session-bottom {
  border-top: 1px dashed var(--pt-line);
  margin-top: var(--pt-space-6);
  padding-top: var(--pt-space-5);
}
.pt-session-bottom strong:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-text-xl);
  font-variant-numeric: tabular-nums;
}
.pt-product-booking .pt-session-card h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: none;
}
.pt-booking {
  margin-top: var(--pt-space-5);
}
.pt-booking label:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: flex;
  align-items: center;
  gap: var(--pt-space-3);
  margin: 0 0 var(--pt-space-3);
}
.pt-booking input:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  max-width: 80px;
}
.pt-checkout-attendees {
  margin: var(--pt-space-8) 0;
  padding: var(--pt-space-6);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-l);
  background: var(--pt-surface);
}
.pt-checkout-attendees h3:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin-top: 0;
  font-size: var(--pt-text-xl);
}
.pt-checkout-attendees > p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  color: var(--pt-ink-soft);
  font-size: var(--pt-text-sm);
}

.pt-cash-participants fieldset:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: var(--pt-space-3) 0;
  padding: var(--pt-space-4) var(--pt-space-5);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-m);
  background: var(--pt-surface);
}
.pt-cash-participants legend:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  padding: 0 var(--pt-space-2);
  font-weight: 700;
}

/* ---------- Seats ---------- */
.pt-seat-picker {
  border: 0;
  padding: var(--pt-space-3) 0;
}
.pt-seat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  gap: var(--pt-space-2);
  max-height: 400px;
  overflow: auto;
}
.pt-seat {
  position: relative;
}
.pt-seat span:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: block;
  border: 1px solid var(--pt-line-strong);
  border-radius: var(--pt-radius-s);
  padding: var(--pt-space-3);
  background: var(--pt-surface);
  text-align: center;
}
.pt-seat input:checked + span:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  background: var(--pt-lime);
  border-color: var(--pt-forest);
  font-weight: 700;
}
.pt-seat input:focus-visible + span:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  outline: var(--pt-focus-width) solid var(--pt-focus);
  outline-offset: 2px;
}
.pt-seat input:disabled + span:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  opacity: 0.4;
  text-decoration: line-through;
}

/* ---------- Form controls inside plugin surfaces ---------- */
.pt-scanner label:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin label:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: grid;
  gap: var(--pt-space-2);
  font-size: var(--pt-text-sm);
  font-weight: 600;
  margin: var(--pt-space-4) 0;
}
.pt-scanner input:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-scanner select:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin input:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin select:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-booking input:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  border: 1px solid var(--pt-line-strong);
  border-radius: var(--pt-radius-s);
  padding: var(--pt-space-2) var(--pt-space-3);
  background: var(--pt-white);
  font: 400 var(--pt-text-md) var(--pt-font-body);
  color: var(--pt-ink);
}
.pt-admin input[type="checkbox"]:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin input[type="radio"]:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  justify-self: start;
  width: 1rem;
  height: 1rem;
  min-height: 0;
  margin: 0;
  padding: 0;
  border-radius: 4px;
}
.pt-admin input[type="radio"]:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  border-radius: 50%;
}
/* wp-admin .button markup inside Proticket screens follows the platform buttons. */
.pt-admin .button,
.pt-admin .button:hover,
.pt-admin .button:focus {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: var(--pt-space-2) var(--pt-space-5);
  border: 1px solid var(--pt-line-strong);
  border-radius: var(--pt-radius-pill);
  background: transparent;
  color: var(--pt-ink);
  font-weight: 600;
  line-height: 1.2;
  box-shadow: none;
}
.pt-admin .button:hover {
  background: var(--pt-sand);
}
.pt-admin .button-primary,
.pt-admin .button.pt-button,
.pt-admin .button-primary:hover,
.pt-admin .button.pt-button:hover,
.pt-admin .button-primary:focus,
.pt-admin .button.pt-button:focus {
  border-color: var(--pt-forest);
  background: var(--pt-forest);
  color: var(--pt-white);
}
.pt-admin .button-primary:hover,
.pt-admin .button.pt-button:hover {
  background: var(--pt-forest-deep);
}
.pt-admin label:has(> input[type="checkbox"]):where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin label:has(> input[type="radio"]):where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: flex;
  align-items: center;
  gap: var(--pt-space-2);
  font-weight: 500;
}
.pt-scanner input:focus:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-scanner select:focus:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin input:focus:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin select:focus:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin textarea:focus:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  outline: var(--pt-focus-width) solid var(--pt-focus);
  outline-offset: 1px;
  box-shadow: none;
}
.pt-field-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0 var(--pt-space-5);
}

/* ---------- Scanner ---------- */
.pt-scanner {
  max-width: 660px;
  margin: var(--pt-space-8) auto;
  padding-inline: var(--pt-space-4);
}
.pt-scanner h1:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font: 400 var(--pt-display-s) / 1.05 var(--pt-font-display);
  text-transform: uppercase;
  letter-spacing: 0.005em;
  font-synthesis: none;
  margin: var(--pt-space-4) 0;
}
.pt-scan-form {
  display: grid;
  gap: var(--pt-space-3);
}
.pt-camera {
  aspect-ratio: 4 / 3;
  background: var(--pt-forest-deep);
  border-radius: var(--pt-radius-m);
  overflow: hidden;
}
.pt-camera video:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pt-scan-result {
  padding: var(--pt-space-6);
  background: var(--pt-white);
  border: 2px solid var(--pt-line);
  border-radius: var(--pt-radius-m);
  font-size: var(--pt-text-xl);
  font-weight: 700;
  min-height: 40px;
}
.pt-scan-result[data-result="valid"],
.pt-scan-result[data-result="admitted"] {
  background: var(--pt-success-bg);
  border-color: var(--pt-success-line);
  color: var(--pt-success-ink);
}
.pt-scan-result[data-result="already_used"],
.pt-scan-result[data-result="cancelled"],
.pt-scan-result[data-result="not_found"] {
  background: var(--pt-danger-bg);
  border-color: var(--pt-danger-line);
  color: var(--pt-danger-ink);
}

/* ---------- Ticket document ---------- */
.pt-ticket {
  max-width: 480px;
  margin: var(--pt-space-10) auto;
  background: var(--pt-white);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-l);
  padding: var(--pt-space-10);
  text-align: center;
  box-sizing: border-box;
}
.pt-ticket h1:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font: 400 var(--pt-display-s) / 1.05 var(--pt-font-display);
  text-transform: uppercase;
  letter-spacing: 0.005em;
  font-synthesis: none;
}
.pt-ticket-brand {
  display: block;
  width: 200px;
  height: auto;
  margin: 0 auto var(--pt-space-8);
}
.pt-ticket-code {
  max-width: 240px;
  margin: var(--pt-space-8) auto;
}
.pt-ticket-code svg:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: block;
  width: 100%;
  height: auto;
}
.pt-ticket .pt-button {
  margin: var(--pt-space-5) auto;
}
.pt-attendee {
  font-size: var(--pt-text-lg);
  font-weight: 700;
}

/* ---------- Embedded widgets (host-site brand colour via --pt-accent) ---------- */
.pt-embed-brand .pt-button,
.pt-embed-brand .pt-button:hover,
.pt-embed-brand .pt-button:focus {
  background: var(--pt-accent, var(--pt-forest));
  color: var(--pt-white);
}
.pt-embed-brand .pt-button:hover {
  filter: brightness(0.9);
}
.pt-calendar-list > h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-text-lg);
  margin: var(--pt-space-8) 0 0;
}
.pt-calendar-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--pt-space-5);
  padding: var(--pt-space-5) 0;
  border-bottom: 1px solid var(--pt-line);
}
.pt-calendar-item time:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-weight: 800;
  color: var(--pt-accent, var(--pt-ticket-ink));
  font-variant-numeric: tabular-nums;
}
.pt-calendar-item h3:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: 0;
}
.pt-calendar-item p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  color: var(--pt-muted);
}

/* ---------- wp-admin workspace ---------- */
.pt-admin {
  max-width: 1240px;
  padding-right: var(--pt-space-5);
}
.pt-admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pt-space-5);
  margin: var(--pt-space-8) 0 var(--pt-space-6);
}
.pt-admin h1:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font: 400 var(--pt-display-s) / 1.05 var(--pt-font-display);
  text-transform: uppercase;
  letter-spacing: 0.005em;
  font-synthesis: none;
  color: var(--pt-ink);
  margin: var(--pt-space-2) 0;
}
.pt-admin h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-text-xl);
  color: var(--pt-ink);
  margin-top: var(--pt-space-8);
}
.pt-admin p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  color: var(--pt-ink-soft);
  font-size: var(--pt-text-sm);
}
.pt-admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pt-space-2);
  margin: 0 0 var(--pt-space-6);
  padding-bottom: var(--pt-space-4);
  border-bottom: 1px solid var(--pt-line);
}
.pt-admin-tabs a:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: var(--pt-space-2) var(--pt-space-4);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-pill);
  color: var(--pt-ink);
  font-size: var(--pt-text-sm);
  font-weight: 600;
  text-decoration: none;
}
.pt-admin-tabs a:hover:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  background: var(--pt-sand);
  color: var(--pt-ink);
}
.pt-admin-tabs a[aria-current="page"]:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  background: var(--pt-forest);
  border-color: var(--pt-forest);
  color: var(--pt-white);
}
.pt-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--pt-space-5);
}
.pt-stats > div:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  background: var(--pt-white);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-m);
  padding: var(--pt-space-6);
}
.pt-stats span:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: block;
  color: var(--pt-muted);
  font-size: var(--pt-text-xs);
}
.pt-stats strong:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: block;
  margin-top: var(--pt-space-2);
  font: 400 40px / 1.1 var(--pt-font-display);
  font-variant-numeric: tabular-nums;
}
.pt-table-wrap {
  overflow: auto;
}
.pt-admin table:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  border-color: var(--pt-line);
}
.pt-admin th:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-admin td:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  padding: var(--pt-space-3) var(--pt-space-4);
}
.pt-admin code:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  white-space: normal;
  word-break: break-all;
  font-size: var(--pt-text-xs);
}
.pt-admin-panel {
  background: var(--pt-white);
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-m);
  padding: var(--pt-space-6);
  margin-top: var(--pt-space-6);
}
.pt-admin-panel h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin-top: 0;
}
.pt-admin-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: var(--pt-space-5);
}
.pt-admin-panel .pt-button {
  margin-top: var(--pt-space-4);
}
.pt-admin textarea:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  width: 100%;
  max-width: 100%;
  padding: var(--pt-space-3);
  border: 1px solid var(--pt-line-strong);
  border-radius: var(--pt-radius-s);
}
.pt-admin details:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin-top: var(--pt-space-8);
}
.pt-admin summary:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  cursor: pointer;
  font-weight: 650;
  padding: var(--pt-space-4);
  background: var(--pt-sand);
  border-radius: var(--pt-radius-s);
}

/* ---------- Organiser portal: shared pieces rendered by plugin templates ---------- */
.pt-portal details:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin-block: var(--pt-space-3);
}
.pt-portal summary:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  cursor: pointer;
  padding: var(--pt-space-4);
  border-radius: var(--pt-radius-s);
  background: var(--pt-sand);
  font-weight: 700;
}
.pt-portal details > form:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  padding: var(--pt-space-4);
}
.pt-portal .pt-portal-intro h1:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-display-m);
}
.pt-portal .pt-portal-intro {
  margin-block: var(--pt-space-5);
}
.pt-portal .pt-archive-tabs {
  position: sticky;
  top: 32px;
  z-index: 4;
  background: var(--pt-paper);
  padding-block: var(--pt-space-3);
  flex-wrap: wrap;
}
.pt-portal-panel {
  scroll-margin-top: 145px;
}
.pt-review-card {
  padding: var(--pt-space-6);
  margin: var(--pt-space-4) 0;
  border: 1px solid var(--pt-line);
  border-radius: var(--pt-radius-l);
  background: var(--pt-white);
}
.pt-review-card textarea:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  display: block;
  width: 100%;
  min-height: 90px;
  margin: var(--pt-space-2) 0 var(--pt-space-4);
}
.pt-review-card button:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: var(--pt-space-1) var(--pt-space-2) var(--pt-space-1) 0;
}
.pt-review-page {
  padding-top: var(--pt-space-6);
}
.pt-review-page > h1:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: var(--pt-space-2) 0 var(--pt-space-3);
}
.pt-review-page > p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: var(--pt-space-2) 0;
}
.pt-review-page .pt-admin-card {
  margin-top: var(--pt-space-5);
  padding: var(--pt-space-5);
}
.pt-review-page h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-title-s);
  margin: 0 0 var(--pt-space-2);
}
.pt-review-page .pt-review-card {
  padding: var(--pt-space-4);
  margin: var(--pt-space-4) 0;
}
.pt-review-page .pt-review-card h3:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-size: var(--pt-text-lg);
  margin: 0 0 var(--pt-space-2);
}
.pt-offering-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--pt-space-4);
}
.pt-offering-facts > div:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  padding: var(--pt-space-5);
  border-radius: var(--pt-radius-m);
  background: var(--pt-sage);
}
.pt-offering-facts dt:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font-weight: 700;
}
.pt-offering-facts dd:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: var(--pt-space-2) 0 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* ---------- Customer tickets (My account, order received) ---------- */
.pt-customer-tickets,
.pt-order-tickets {
  margin-top: var(--pt-space-8);
}
.pt-customer-tickets > h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)),
.pt-order-tickets > h2:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  font: 400 var(--pt-display-s) / 1.05 var(--pt-font-display);
  text-transform: uppercase;
  letter-spacing: 0.005em;
  font-synthesis: none;
}
.pt-customer-tickets .pt-portal-panel h3:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: 0 0 var(--pt-space-2);
  font-size: var(--pt-text-xl);
}
.pt-customer-tickets .pt-portal-panel p:where(:not([class*="pt-c-"], [class*="pt-c-"] *)) {
  margin: 0 0 var(--pt-space-3);
}
.pt-ticket-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pt-space-3);
  padding: 0;
  list-style: none;
}

/* ---------- Share ---------- */
.pt-share-status {
  font-size: var(--pt-text-sm);
  color: var(--pt-success-ink);
  align-self: center;
}
.pt-share-status:empty {
  display: none;
}

/* ---------- Consent (rendered in the footer by the theme) ---------- */
.pt-consent {
  padding-block: var(--pt-space-5);
  font-size: var(--pt-text-sm);
}

@media (max-width: 600px) {
  .pt-widget-shell {
    padding: var(--pt-space-4);
  }
  .pt-empty {
    padding: var(--pt-space-8) var(--pt-space-5);
  }
  .pt-stats {
    grid-template-columns: 1fr;
  }
  .pt-admin-header {
    align-items: start;
    flex-direction: column;
  }
  .pt-ticket {
    margin: var(--pt-space-5) var(--pt-space-3);
    padding: var(--pt-space-6);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pt-button,
  .pt-button-secondary,
  .pt-outline,
  .pt-secondary {
    transition: none;
  }
}
@media print {
  body.pt-standalone {
    background: var(--pt-white);
  }
  .pt-no-print {
    display: none !important;
  }
  .pt-ticket {
    margin: 0 auto;
    border: 1px solid var(--pt-line-strong);
    break-inside: avoid;
    max-width: 130mm;
  }
}
