/* Shared printed-ticket details. Keep the local-web copy identical. */
:root {
  --ticket-ink: #121212;
  --ticket-accent: #FFFF4C;
  --ticket-paper: #FFFFFF;
  --ticket-rule: rgba(18,18,18, 0.3);
}

.ticket-card {
  --ticket-stroke: 2px;
  --ticket-notch: 10px;
  --ticket-padding: 22px;
  position: relative;
  min-width: 0;
  border: var(--ticket-stroke) solid var(--ticket-ink);
  border-radius: 14px;
  background: var(--ticket-paper);
}
.ticket-card__body, .ticket-card__stub { min-width: 0; padding: var(--ticket-padding); }
.ticket-card--inline { display: grid; grid-template-columns: minmax(0, 1fr) 0 auto; }
.ticket-seam {
  position: relative;
  display: block;
  height: 0;
  margin: 0;
  border: 0;
  border-top: 1px dashed var(--ticket-rule);
  pointer-events: none;
}
.ticket-seam::before, .ticket-seam::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: calc(-1 * var(--ticket-notch));
  width: calc(2 * var(--ticket-notch));
  height: calc(2 * var(--ticket-notch));
  border: var(--ticket-stroke) solid var(--ticket-ink);
  border-radius: 50%;
  background: var(--ticket-paper);
}
.ticket-seam::before {
  left: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke)));
  clip-path: inset(0 0 0 50%);
}
.ticket-seam::after {
  right: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke)));
  clip-path: inset(0 50% 0 0);
}
.ticket-card--inline > .ticket-seam { width: 0; height: auto; border-top: 0; border-left: 1px dashed var(--ticket-rule); }
.ticket-card--inline > .ticket-seam::before, .ticket-card--inline > .ticket-seam::after { left: calc(-1 * var(--ticket-notch)); right: auto; }
.ticket-card--inline > .ticket-seam::before { top: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke))); clip-path: inset(50% 0 0 0); }
.ticket-card--inline > .ticket-seam::after { top: auto; bottom: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke))); clip-path: inset(0 0 50% 0); }

.ticket-section { position: relative; border-top: 0; }
.ticket-section::before, .ticket-divider {
  content: "";
  display: block;
  height: 2px;
  background-image:
    linear-gradient(90deg, var(--ticket-accent) 0 22px, transparent 22px),
    repeating-linear-gradient(90deg, var(--ticket-rule) 0 2px, transparent 2px 8px);
  pointer-events: none;
}
.ticket-section::before { position: absolute; top: 0; left: 0; right: 0; }

@media (min-width: 640px) {
  .ticket-card--split { display: grid; grid-template-columns: minmax(0, 1fr) 0 minmax(150px, 0.4fr); }
  .ticket-card--split > .ticket-seam { width: 0; height: auto; border-top: 0; border-left: 1px dashed var(--ticket-rule); }
  .ticket-card--split > .ticket-seam::before, .ticket-card--split > .ticket-seam::after { left: calc(-1 * var(--ticket-notch)); right: auto; }
  .ticket-card--split > .ticket-seam::before { top: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke))); clip-path: inset(50% 0 0 0); }
  .ticket-card--split > .ticket-seam::after { top: auto; bottom: calc(-1 * (var(--ticket-notch) + var(--ticket-stroke))); clip-path: inset(0 0 50% 0); }
}

@media print {
  .ticket-section::before, .ticket-divider { background: none; border-top: 1px dashed #777; }
}
