/* ── Ticketing previews (scenes used by js/periodic/tix.js) ── */

/* Shared bits */
.pv [class*="pv-tix-"] { box-sizing: border-box; }
.pv-tix-muted { color: rgba(236, 253, 245, 0.55); font-style: normal; }
.pv-tix-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }
.pv-tix-mt { margin-top: .8em; }
.pv-tix-mb { margin-bottom: .4em; }
.pv-tix-hint { display: block; margin-top: .3em; font-size: .72em; color: rgba(236, 253, 245, 0.5); }
.pv-tix-form { display: grid; grid-template-columns: 1fr 1fr; gap: .6em .8em; margin-top: .45em; }
.pv-tix-form3 { grid-template-columns: 1fr 1fr; }
.pv-tix-wide, .pv-tix-wide3 { grid-column: 1 / -1; }
.pv-tix-f .pv-lbl { margin-bottom: .3em; font-size: .68em; }
.pv-tix-in {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: .5em;
  min-height: 2.2em; padding: .4em .7em; border-radius: .45em; font-size: .85em; white-space: nowrap; overflow: hidden;
  border: 1px solid rgba(236, 253, 245, 0.12); background: rgba(236, 253, 245, 0.03);
}
.pv-tix-chev { flex: none; width: .45em; height: .45em; margin: -.2em .1em 0 auto; border-right: 1.5px solid rgba(236, 253, 245, 0.45); border-bottom: 1.5px solid rgba(236, 253, 245, 0.45); transform: rotate(45deg); }
.pv-tix-ico { width: 1em; height: 1em; }
.pv-tix-copy { display: inline-grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: .4em; background: rgba(236, 253, 245, 0.06); color: rgba(236, 253, 245, 0.7); }
.pv-tix-pill { display: inline-flex; gap: .5em; align-items: baseline; padding: .3em .8em; border-radius: 999px; background: rgba(236, 253, 245, 0.05); font-size: .8em; color: rgba(236, 253, 245, 0.65); }
.pv-tix-pill b { color: var(--c); font-size: 1.15em; }

/* Typing reveal */
.pv-tix-type, .pv-tix-type3 { display: inline-block; overflow: hidden; white-space: nowrap; vertical-align: bottom; max-width: 16em; }
/* The reveal is a field-coloured cover sliding right off the text (transform,
   compositor) instead of growing max-width (layout every frame). The cover's
   left edge follows exactly the curve max-width used to. --pv-type-bg is the
   field's background as it renders over the window (0.03 white on #121a17). */
@media (prefers-reduced-motion: no-preference) {
  .pv-tix-type, .pv-tix-type3 { position: relative; animation: pvTixTypeO var(--pv-t) infinite; }
  .pv-tix-type3 { max-width: 20em; }
  .pv-tix-type::after, .pv-tix-type3::after {
    content: ""; position: absolute; inset: 0; background: var(--pv-type-bg, rgb(24.5 32.8 29.7));
    animation: pvTixType var(--pv-t) infinite;
  }
  .pv-tix-type3::after { animation-name: pvTixType3; }
}
@keyframes pvTixTypeO { 0%, 92% { opacity: 1; } 97%, 100% { opacity: 0; } }
@keyframes pvTixType { 0%, 2% { transform: translateX(0); } 9%, 100% { transform: translateX(16em); } }
@keyframes pvTixType3 { 0%, 3% { transform: translateX(0); } 15%, 100% { transform: translateX(20em); } }

/* Switch */
.pv-tix-sw { display: inline-flex; align-items: center; gap: .55em; font-size: .82em; white-space: nowrap; }
.pv-tix-trk {
  position: relative; flex: none; width: 2.3em; height: 1.3em; border-radius: 999px;
  border: 1px solid var(--pv-off-bd); background: var(--pv-off-bg);
}
.pv-tix-trk.on { border-color: var(--c); background: var(--pv-on-bg); }
.pv-tix-kn { --from: none; position: absolute; top: .16em; right: .16em; width: .9em; height: .9em; border-radius: 50%; background: var(--c); }
.pv-tix-kn0 { right: auto; left: .16em; background: rgba(236, 253, 245, 0.45); }
.pv-tix-sws { display: flex; flex-direction: column; gap: .5em; }

/* Checkbox */
.pv-tix-cb { flex: none; display: grid; place-items: center; width: 1.25em; height: 1.25em; border-radius: .3em; border: 1.5px solid rgba(27, 36, 33, 0.25); }
.pv-tix-cb .pv-check { width: .95em; height: .95em; }
.pv-tix-cbd { border-color: var(--c); }
.pv-tix-box { display: flex; align-items: center; gap: .6em; font-size: .85em; font-weight: 600; }

/* Light storefront surface */
.pv-tix-store { background: #f6faf8; color: #1b2421; border-radius: .8em; overflow: hidden; box-shadow: 0 1.6em 3.2em rgba(0, 0, 0, 0.5); }
.pv-tix-store .pv-ln { background: rgba(27, 36, 33, 0.12); }
.pv-tix-snav { display: flex; align-items: center; gap: .8em; padding: .7em 1em; background: #1b2421; color: #f6faf8; }
.pv-tix-snav > i { width: 1.5em; height: 1.5em; border-radius: .35em; background: var(--c); }
.pv-tix-snav > b { margin-right: auto; font-size: .9em; }
.pv-tix-snav > span { width: 3.2em; height: .45em; border-radius: .25em; background: rgba(255, 255, 255, 0.25); }
.pv-tix-ph { display: block; font-size: .72em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5b6763; margin-bottom: .45em; }

/* ── Event Management ── */
.pv-tix-ev .pv-win { width: 82%; }
.pv-tix-evgrid { display: grid; grid-template-columns: 1fr 15.5em; gap: 1.4em; align-items: start; }
.pv-tix-evgrid > div:first-child > .pv-btn { margin-top: .85em; }
.pv-tix-slug em { font-style: normal; font-size: .9em; }
.pv-tix-slug .pv-tag { font-size: .85em; }
.pv-tix-evcard { display: flex; flex-direction: column; gap: .25em; padding: .6em .6em .8em; }
.pv-tix-hero {
  position: relative; height: 5.4em; margin-bottom: .45em; border-radius: .4em; overflow: hidden;
  background: radial-gradient(circle at 75% 30%, color-mix(in srgb, var(--c) 70%, #fff) 0 .9em, transparent 1em),
              linear-gradient(160deg, color-mix(in srgb, var(--c) 55%, #0b100e), #0f2a22 70%);
}
.pv-tix-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(transparent, rgba(0, 0, 0, .35)); clip-path: polygon(0 60%, 25% 20%, 45% 55%, 70% 10%, 100% 50%, 100% 100%, 0 100%); }
.pv-tix-banner { position: absolute; left: 0; right: 0; top: 0; z-index: 1; padding: .3em .6em; background: #f6faf8; color: #1b2421; font-size: .7em; font-weight: 700; text-align: center; }
.pv-tix-evname b { font-size: 1.05em; }
.pv-tix-evcard .pv-sub { min-height: 1.25em; }
.pv-tix-evcard .pv-tix-sws { margin-top: .6em; padding-top: .7em; border-top: 1px solid rgba(236, 253, 245, 0.08); display: grid; grid-template-columns: 1fr 1fr; gap: .6em .4em; }

/* ── Venues ── */
.pv-tix-ve { gap: 1.6em; }
.pv-tix-vewin { width: 50%; position: relative; }
.pv-tix-vestats { display: grid; grid-template-columns: 1fr 1fr; gap: .6em; margin-bottom: .8em; }
.pv-tix-vestats > div { padding: .5em .8em; border-radius: .5em; background: rgba(236, 253, 245, 0.04); }
.pv-tix-vestats b { display: block; font-size: 1.4em; color: var(--c); }
.pv-tix-vt { display: flex; flex-direction: column; }
.pv-tix-vr { display: grid; grid-template-columns: 1fr 2.8em 4.4em 4.6em 1.9em; align-items: center; gap: .5em; padding: .4em .4em; border-top: 1px solid rgba(236, 253, 245, 0.07); font-size: .82em; }
.pv-tix-vr b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-tix-vr .pv-tix-muted { font-size: .92em; }
.pv-tix-vr .pv-badge { justify-self: start; }
.pv-tix-vr .pv-tix-copy { font-size: .9em; }
.pv-tix-vr-on { border-radius: .45em; background: color-mix(in srgb, var(--c) 8%, transparent); }
.pv-tix-vr-on .pv-tix-copy { color: var(--c); background: color-mix(in srgb, var(--c) 18%, transparent); }
.pv-tix-vthead { display: flex; align-items: center; justify-content: space-between; min-height: 1.9em; margin-bottom: .3em; }
.pv-tix-vthead .pv-swap { justify-items: end; align-items: center; }
.pv-tix-tip { padding: .35em .6em; border-radius: .4em; background: #f6faf8; color: #1b2421; font-size: .72em; font-weight: 600; white-space: nowrap; box-shadow: 0 .5em 1em rgba(0, 0, 0, .4); }
.pv-tix-copied { padding: .25em .6em; border-radius: .4em; background: #18221e; border: 1px solid color-mix(in srgb, var(--c) 45%, transparent); }
.pv-tix-browser { width: 33%; background: #f6faf8; color: #1b2421; border-radius: .8em; overflow: hidden; box-shadow: 0 1.6em 3.2em rgba(0, 0, 0, 0.5); }
.pv-tix-url { display: flex; align-items: center; gap: .35em; padding: .5em .7em; background: #e3ebe7; }
.pv-tix-url i { width: .5em; height: .5em; border-radius: 50%; background: rgba(27, 36, 33, 0.2); }
.pv-tix-url span { margin-left: .5em; flex: 1; padding: .2em .6em; border-radius: .4em; background: #fff; font-size: .7em; color: #3d4945; white-space: nowrap; overflow: hidden; }
.pv-tix-vepage { padding: .7em .8em .9em; }
.pv-tix-vehero { height: 4.2em; border-radius: .4em; background: linear-gradient(150deg, color-mix(in srgb, var(--c) 60%, #1b2421), color-mix(in srgb, var(--c) 18%, #f6faf8)); }
.pv-tix-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3em; margin: .3em 0 .5em; }
.pv-tix-thumbs i { height: 1.4em; border-radius: .25em; background: color-mix(in srgb, var(--c) 30%, #c9d6d0); }
.pv-tix-thumbs i:nth-child(2) { filter: hue-rotate(50deg); }
.pv-tix-thumbs i:nth-child(3) { filter: hue-rotate(-60deg); }
.pv-tix-vename { display: block; font-size: 1.1em; }
.pv-tix-addr { display: block; font-size: .72em; color: #5b6763; margin: .1em 0 .7em; }
.pv-tix-erow { display: flex; justify-content: space-between; gap: .5em; padding: .4em .55em; margin-top: .3em; border-radius: .4em; background: #fff; border: 1px solid rgba(27, 36, 33, 0.08); font-size: .76em; font-weight: 600; }
.pv-tix-erow em { font-style: normal; font-weight: 500; color: #5b6763; }
.pv-tix-faq { display: flex; align-items: center; justify-content: space-between; margin-top: .6em; padding-top: .45em; border-top: 1px solid rgba(27, 36, 33, 0.1); font-size: .76em; font-weight: 700; }
.pv-tix-faq i { width: .45em; height: .45em; border-right: 1.5px solid #5b6763; border-bottom: 1.5px solid #5b6763; transform: rotate(45deg); }

/* ── Location Pricing ── */
.pv-tix-lp .pv-win { width: 80%; }
.pv-tix-lphead { display: flex; align-items: center; justify-content: space-between; margin-bottom: .7em; }
.pv-tix-locs { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8em; }
.pv-tix-loc { display: flex; flex-direction: column; align-items: center; gap: .3em; text-align: center; padding: .7em .7em .8em; }
.pv-tix-loc > b { font-size: .9em; }
.pv-tix-ring { position: relative; width: 5em; height: 5em; margin: .15em 0 .2em; }
.pv-tix-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.pv-tix-ring circle { fill: none; stroke-width: 3.2; }
.pv-tix-ring-bg { stroke: rgba(236, 253, 245, 0.08); }
.pv-tix-ring-fg { stroke: var(--c); stroke-linecap: round; stroke-dasharray: var(--p) 100; animation: pvTixRing var(--pv-t) infinite; }
.pv-tix-ring-a .pv-tix-ring-fg { animation-name: pvTixRingA; }
.pv-tix-ring > span { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; }
.pv-tix-ring > span > b { font-size: 1.15em; }
.pv-tix-ring em { font-style: normal; font-size: .72em; color: rgba(236, 253, 245, 0.55); }
.pv-tix-ring em i { font-style: normal; }
.pv-tix-ring .pv-swap { justify-items: center; }
@keyframes pvTixRing { 0%, 2% { stroke-dasharray: 0 100; } 10%, 92% { stroke-dasharray: var(--p) 100; opacity: 1; } 97%, 100% { stroke-dasharray: var(--p) 100; opacity: 0; } }
@keyframes pvTixRingA { 0%, 2% { stroke-dasharray: 0 100; } 10%, 15% { stroke-dasharray: 86 100; } 19%, 92% { stroke-dasharray: 72 100; opacity: 1; } 97%, 100% { stroke-dasharray: 72 100; opacity: 0; } }
.pv-tix-loc > .pv-tix-muted { font-size: .7em; }
.pv-tix-price { display: flex; align-items: baseline; gap: .35em; margin-top: -.2em; }
.pv-tix-price b { font-size: 1.05em; color: var(--c); }
.pv-tix-price > span:last-child { font-size: .72em; color: rgba(236, 253, 245, 0.55); }
.pv-tix-edit .pv-swap { padding: 0 .3em; border-radius: .3em; outline: 1px dashed color-mix(in srgb, var(--c) 55%, transparent); }
.pv-tix-cap { display: flex; align-items: center; gap: .55em; margin: .2em 0 .3em; font-size: .9em; }
.pv-tix-cap .pv-swap { justify-items: center; min-width: 1.8em; }
.pv-tix-pm { display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; border-radius: .4em; background: rgba(236, 253, 245, 0.07); font-weight: 700; }
.pv-tix-loc:first-child .pv-tix-cap > .pv-tix-pm:last-child { background: color-mix(in srgb, var(--c) 22%, transparent); color: var(--c); }
.pv-tix-loc .pv-tix-sws { flex-direction: row; gap: .8em; }
.pv-tix-loc .pv-tix-sw { font-size: .72em; gap: .4em; }
.pv-tix-loc-so { overflow: hidden; }
.pv-tix-sopos { position: absolute; top: 3.6em; left: 50%; width: 7.4em; margin-left: -3.7em; transform: rotate(-12deg); }
.pv-tix-ringin { display: flex; flex-direction: column; align-items: center; }
.pv-tix-ringin b { font-size: 1.15em; }
.pv-tix-sostamp {
  --from: scale(1.6);
  display: block; padding: .25em 0;
  border: 2px solid #f87171; border-radius: .35em; background: #18221e; color: #f87171; text-align: center;
  font-size: .8em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 .4em 1em rgba(0, 0, 0, .4);
}
.pv-tix-loc-so .pv-tix-ring-so .pv-tix-ring-fg { stroke: #f87171; animation-name: pvTixRingSo; }
@keyframes pvTixRingSo { 0%, 2% { stroke-dasharray: 0 100; stroke: var(--c); } 10%, 59% { stroke-dasharray: var(--p) 100; stroke: var(--c); opacity: 1; } 63%, 92% { stroke-dasharray: var(--p) 100; stroke: #f87171; opacity: 1; } 97%, 100% { stroke-dasharray: var(--p) 100; stroke: #f87171; opacity: 0; } }

/* ── Session Ticketing ── */
.pv-tix-se .pv-tix-store { width: 82%; }
.pv-tix-steps { display: flex; gap: 1.4em; padding: .6em 1.2em; border-bottom: 1px solid rgba(27, 36, 33, 0.08); font-size: .76em; color: #5b6763; }
.pv-tix-steps span { display: inline-flex; align-items: center; gap: .4em; }
.pv-tix-steps i { display: inline-grid; place-items: center; width: 1.5em; height: 1.5em; border-radius: 50%; background: rgba(27, 36, 33, 0.08); font-style: normal; font-weight: 700; }
.pv-tix-steps .on { color: #1b2421; font-weight: 700; }
.pv-tix-steps .on i { background: var(--c); color: #0a0a0a; }
.pv-tix-sebody { display: grid; grid-template-columns: 1fr 16em; gap: 1.2em; padding: .8em 1.2em 1.1em; }
.pv-tix-h { display: block; font-size: 1.05em; margin-bottom: .5em; }
.pv-tix-days { display: flex; gap: .4em; margin-bottom: .55em; font-size: .78em; }
.pv-tix-days span { padding: .3em .75em; border-radius: 999px; border: 1px solid rgba(27, 36, 33, 0.14); }
.pv-tix-days .on { background: #1b2421; color: #f6faf8; border-color: #1b2421; font-weight: 600; }
.pv-tix-sess {
  --pv-off-bg: #fff; --pv-off-bd: rgba(27, 36, 33, 0.1); --pv-off-fg: #1b2421;
  --pv-on-bg: color-mix(in srgb, var(--c) 14%, #fff); --pv-on-fg: #1b2421;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7em;
  margin-top: .4em; padding: .45em .75em; border-radius: .5em; border: 1px solid var(--pv-off-bd); background: var(--pv-off-bg);
}
.pv-tix-sess[class*="pv-hl"] { border-color: var(--c); background: var(--pv-on-bg); }
.pv-tix-sess b { display: block; font-size: .85em; }
.pv-tix-sess div span { font-size: .72em; color: #5b6763; }
.pv-tix-sess .pv-tix-cb { background: #fff; }
.pv-tix-sess .pv-check { color: #0b7a55; }
.pv-tix-amt { font-size: .85em; }
.pv-tix-low { font-style: normal; margin-left: .4em; padding: .05em .45em; border-radius: 999px; background: #fef3c7; color: #92400e; font-weight: 600; }
.pv-tix-sum { display: flex; flex-direction: column; gap: .45em; align-self: start; padding: .8em .9em; border-radius: .6em; background: #fff; border: 1px solid rgba(27, 36, 33, 0.08); }
.pv-tix-sum > b { font-size: .95em; margin-bottom: .1em; }
.pv-tix-line, .pv-tix-tot { display: flex; justify-content: space-between; gap: .5em; font-size: .8em; }
.pv-tix-tot { margin-top: .2em; padding-top: .5em; border-top: 1px solid rgba(27, 36, 33, 0.1); font-weight: 700; font-size: .9em; }
.pv-tix-tot .pv-swap { justify-items: end; }
.pv-tix-sum .pv-btn { text-align: center; margin-top: .3em; }
.pv-tix-cnt { font-size: .72em; text-align: center; color: #0b7a55; font-weight: 600; }

/* ── Full Event Pass ── */
.pv-tix-fp { gap: 2.4em; }
.pv-tix-fpwin { width: 46%; }
.pv-tix-fphead { display: flex; flex-direction: column; gap: .7em; padding-bottom: .8em; margin-bottom: .2em; border-bottom: 1px solid rgba(236, 253, 245, 0.07); }
.pv-tix-fphead b { font-size: 1.05em; }
.pv-tix-cov { display: flex; align-items: center; min-height: 2.2em; }
.pv-tix-cov .pv-badge { font-size: .8em; }
.pv-tix-fan { position: relative; width: 26%; height: 19em; }
.pv-tix-fanpos { position: absolute; top: calc(var(--k) * 1.3em); left: calc(var(--k) * 3.1em); transform: rotate(calc((var(--k) - 1) * 5deg)); transform-origin: 50% 100%; }
.pv-tix-tkt {
  --from: translate(1.5em, -1em) rotate(6deg);
  width: 11.5em; padding: .8em .9em 1em; border-radius: .7em; background: #f6faf8; color: #1b2421;
  box-shadow: 0 1em 2.2em rgba(0, 0, 0, 0.55); border-top: .35em solid var(--c);
}
.pv-tix-tkt-top { display: flex; align-items: center; justify-content: space-between; gap: .4em; }
.pv-tix-tkt-top b { font-size: .85em; }
.pv-tix-tkt-top em { font-style: normal; font-size: .64em; font-weight: 700; padding: .15em .5em; border-radius: 999px; background: color-mix(in srgb, var(--c) 25%, #fff); color: #0b5c40; white-space: nowrap; }
.pv-tix-tkt-day { display: block; margin: .3em 0 .6em; font-size: .74em; color: #5b6763; font-weight: 600; }
.pv-tix-tkt-qr { display: grid; place-items: center; padding: .5em; border-radius: .4em; background: #fff; border: 1px dashed rgba(27, 36, 33, 0.18); }
.pv-tix-tkt-qr .pv-qr { width: 7em; height: 7em; }

/* ── Multi-Night Bundles ── */
.pv-tix-mn { gap: 1.8em; }
.pv-tix-mnwin { width: 44%; }
.pv-tix-mnwin .pv-tabs { margin-bottom: .6em; }
.pv-tix-nights { display: grid; grid-template-columns: repeat(5, 1fr); gap: .4em; margin-top: .4em; }
.pv-tix-night {
  display: flex; flex-direction: column; align-items: center; padding: .35em 0; border-radius: .45em;
  border: 1px solid var(--pv-off-bd); background: var(--pv-off-bg); color: var(--pv-off-fg); font-size: .8em;
}
.pv-tix-night[class*="pv-tog"] { border-color: var(--c); background: var(--pv-on-bg); color: var(--pv-on-fg); }
.pv-tix-night em { font-style: normal; font-size: .82em; opacity: .7; }
.pv-tix-night b { white-space: nowrap; }
.pv-tix-mnwin .pv-tix-hint { margin-top: .7em; }
.pv-tix-bundle { width: 36%; }
.pv-tix-bhero { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: .35em; height: 6em; padding: .8em 1em; color: #fff; background: linear-gradient(160deg, #24364a, color-mix(in srgb, var(--c) 45%, #10241c)); }
.pv-tix-bhero b { font-size: 1.05em; }
.pv-tix-chip-l { font-style: normal; font-size: .66em; font-weight: 700; padding: .2em .6em; border-radius: 999px; background: rgba(255, 255, 255, 0.92); color: #1b2421; }
.pv-tix-bbody { padding: .8em 1em 1em; }
.pv-tix-nrow { display: grid; grid-template-columns: 3.6em 1fr auto; align-items: center; gap: .4em; padding: .4em 0; border-top: 1px solid rgba(27, 36, 33, 0.08); font-size: .8em; }
.pv-tix-nrow em { font-style: normal; font-weight: 700; color: #5b6763; font-size: .9em; }
.pv-tix-left { color: #b45309; font-size: .9em; }
.pv-tix-ok { font-weight: 600; color: #3d4945; font-size: .92em; }
.pv-tix-qty { display: flex; align-items: center; justify-content: space-between; margin-top: .5em; padding-top: .6em; border-top: 1px solid rgba(27, 36, 33, 0.1); font-size: .82em; font-weight: 700; }
.pv-tix-step { display: flex; align-items: center; gap: .6em; }
.pv-tix-step i { display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; border-radius: .4em; background: rgba(27, 36, 33, 0.07); font-style: normal; }
.pv-tix-step i:last-child { background: var(--c); color: #0a0a0a; }
.pv-tix-step .pv-swap { justify-items: center; min-width: 1em; }
.pv-tix-btot { display: flex; align-items: baseline; justify-content: flex-end; gap: .6em; margin-top: .5em; }
.pv-tix-btot s { color: #8a9692; font-size: .8em; }
.pv-tix-btot > b { font-size: 1.3em; }
.pv-tix-btot .pv-swap { justify-items: end; }

/* ── Operations Hub ── */
.pv-tix-oh .pv-win { width: 82%; }
.pv-tix-ohhead { display: flex; align-items: center; gap: .8em; margin-bottom: .7em; }
.pv-tix-ohhead b { margin-right: auto; font-size: 1.05em; }
.pv-tix-back { font-size: .76em; color: rgba(236, 253, 245, 0.6); }
.pv-tix-ohhead .pv-btn { font-size: .76em; }
.pv-tix-ohtabs { display: flex; gap: .3em; padding-bottom: .5em; margin-bottom: .8em; border-bottom: 1px solid rgba(236, 253, 245, 0.07); font-size: .8em; }
.pv-tix-ohtabs span { position: relative; padding: .35em .8em; color: rgba(236, 253, 245, 0.6); }
.pv-tix-ohtabs span > i { position: absolute; inset: 0; border-radius: .45em; background: color-mix(in srgb, var(--c) 18%, transparent); box-shadow: inset 0 -2px 0 var(--c); }
.pv-tix-ohtabs b { position: relative; font-weight: 600; }
.pv-tix-ohpanes { display: grid; height: 11em; }
.pv-tix-pane { grid-area: 1 / 1; }
.pv-tix-setup { display: grid; grid-template-columns: 1fr 14em; gap: 1.4em; }
.pv-tix-setup .pv-seg { display: flex; width: fit-content; margin-bottom: 0; font-size: .74em; }
.pv-tix-ph2 { display: block; margin: .6em 0 .35em; font-size: .78em; font-weight: 600; color: rgba(236, 253, 245, 0.8); }
.pv-tix-setup .pv-btn { margin-top: .9em; }
.pv-tix-bpcard { margin-top: .4em; padding: .6em; border-radius: .5em; background: #f6faf8; }
.pv-tix-bpcard > i { display: block; height: 2.6em; border-radius: .3em; background: linear-gradient(150deg, color-mix(in srgb, var(--c) 55%, #1b2421), color-mix(in srgb, var(--c) 18%, #f6faf8)); }
.pv-tix-bpcard .pv-ln { background: rgba(27, 36, 33, 0.14); }
.pv-tix-bpsess { display: grid; gap: .3em; margin-top: .55em; }
.pv-tix-bpsess span { height: 1.3em; border-radius: .3em; border: 1px solid rgba(27, 36, 33, 0.12); background: #fff; }
.pv-tix-bpsess span:first-child { border-color: var(--c); background: color-mix(in srgb, var(--c) 14%, #fff); }
.pv-tix-sched { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8em; }
.pv-tix-sched .pv-lbl { margin-bottom: .4em; }
.pv-tix-sblock { margin-top: .35em; padding: .5em .7em; border-radius: .45em; border-left: .25em solid var(--c); background: rgba(236, 253, 245, 0.05); font-size: .8em; font-weight: 600; }
.pv-tix-ohstats { margin-top: 0; }
.pv-tix-ohstats > div { display: flex; flex-direction: column; gap: .2em; padding: .8em .9em; }
.pv-tix-ohstats b { font-size: 1.8em; }
.pv-tix-ohcap { font-size: .72em; color: rgba(236, 253, 245, 0.55); }
.pv-tix-ohact { margin-top: .5em; font-size: .74em; font-weight: 600; color: var(--c); text-decoration: none; }

/* ── QR Tickets ── */
.pv-tix-qr { gap: 3em; }
.pv-tix-qrleft { display: flex; flex-direction: column; gap: .9em; width: 30%; }
.pv-tix-qrsw { display: flex; align-items: center; justify-content: space-between; gap: .6em; }
.pv-tix-qrsw .pv-lbl { font-size: .66em; }
.pv-tix-qrmail { width: 100%; }
.pv-tix-qrmail .pv-mail-head { padding: .7em; }
.pv-tix-qrmail .pv-mail-body { padding: .8em 1em 1em; }
.pv-tix-qrmail .pv-mail-body > b { font-size: 1em; }
.pv-tix-mailqr { display: grid; place-items: center; margin: .6em auto .4em; width: 7.4em; padding: .45em; border-radius: .4em; border: 1px solid rgba(27, 36, 33, 0.12); background: #fff; }
.pv-tix-mailqr .pv-qr { width: 6.2em; height: 6.2em; }
.pv-tix-mailsub { font-size: .72em; color: #5b6763; }
.pv-tix-qr .pv-tix-qphone { height: 94%; padding: 2em .7em .8em; background: #f6faf8; border-color: #26302c; color: #1b2421; }
.pv-tix-qr .pv-tix-qphone .pv-notch { background: #26302c; }
.pv-tix-qswap { display: grid; height: 100%; }
.pv-tix-qswap > * { grid-area: 1 / 1; }
.pv-tix-ph3 { display: block; text-align: center; font-size: .95em; margin-bottom: .5em; }
.pv-tix-lbl2 { display: block; font-size: .7em; font-weight: 700; color: #3d4945; }
.pv-tix-sms { display: flex; flex-direction: column; gap: .9em; }
.pv-tix-smshead { display: flex; flex-direction: column; align-items: center; gap: .2em; padding-bottom: .7em; border-bottom: 1px solid rgba(27, 36, 33, 0.1); }
.pv-tix-smshead i { width: 2.2em; height: 2.2em; border-radius: 50%; background: var(--c); }
.pv-tix-smshead b { font-size: .85em; }
.pv-tix-smshead span { font-size: .7em; color: #5b6763; }
.pv-tix-bub { align-self: flex-start; max-width: 92%; padding: .6em .8em; border-radius: 1em 1em 1em .3em; background: #e3ebe7; color: #1b2421; font-size: .78em; line-height: 1.4; }
.pv-tix-link { display: inline-block; color: #0b7a55; text-decoration: underline; text-decoration-color: rgba(11, 122, 85, 0.45); word-break: break-all; }
.pv-tix-pass { display: flex; flex-direction: column; align-items: center; }
.pv-tix-pass > .pv-tix-lbl2 { text-transform: uppercase; letter-spacing: .08em; color: #5b6763; margin: -.2em 0 .5em; }
.pv-tix-slide { width: 100%; overflow: hidden; border-radius: .6em; }
.pv-tix-track { display: flex; width: 200%; transform: translateX(-50%); animation: pvTixSwipe var(--pv-t) infinite; }
@keyframes pvTixSwipe { 0%, 59% { transform: translateX(0); } 66%, 100% { transform: translateX(-50%); } }
.pv-tix-qcard { width: 50%; display: flex; flex-direction: column; align-items: center; gap: .4em; padding: .7em; background: #fff; border: 1px solid rgba(27, 36, 33, 0.1); border-radius: .6em; }
.pv-tix-qcard .pv-qr { width: 8em; height: 8em; }
.pv-tix-of { font-size: .7em; font-weight: 700; color: #0b7a55; }
.pv-tix-dots { display: flex; gap: .35em; margin: .5em 0 .2em; }
.pv-tix-dots i { width: .45em; height: .45em; border-radius: 50%; background: rgba(27, 36, 33, 0.2); }
.pv-tix-dots i:last-child { background: var(--c); animation: pvTixDotB var(--pv-t) infinite; }
.pv-tix-dots i:first-child { animation: pvTixDotA var(--pv-t) infinite; }
@keyframes pvTixDotA { 0%, 59% { background-color: var(--c); } 66%, 100% { background-color: rgba(27, 36, 33, 0.2); } }
@keyframes pvTixDotB { 0%, 59% { background-color: rgba(27, 36, 33, 0.2); } 66%, 100% { background-color: var(--c); } }
.pv-tix-swipe { font-size: .66em; color: #5b6763; }
.pv-tix-pass dl { display: grid; grid-template-columns: auto 1fr; gap: .2em .5em; width: 100%; margin: .6em 0 0; padding-top: .5em; border-top: 1px solid rgba(27, 36, 33, 0.1); font-size: .68em; }
.pv-tix-pass dt { font-weight: 700; color: #3d4945; }
.pv-tix-pass dd { margin: 0; text-align: right; }

/* ── Comp & Free Tickets ── */
.pv-tix-fr { gap: 1.8em; }
.pv-tix-frwin { width: 50%; }
.pv-tix-frwin .pv-body { padding-top: .9em; }
.pv-tix-frwin .pv-tix-form { margin-top: .35em; }
.pv-tix-frwin .pv-tix-f .pv-lbl { display: none; }
.pv-tix-frrow { display: flex; align-items: center; justify-content: space-between; gap: .8em; margin-top: .45em; padding: .55em .7em; border-radius: .5em; background: rgba(236, 253, 245, 0.04); }
.pv-tix-frrow .pv-tix-cb { border-color: rgba(236, 253, 245, 0.35); }
.pv-tix-frrow .pv-tix-cbd { border-color: var(--c); }
.pv-tix-frrow .pv-tix-box { font-size: .8em; }
.pv-tix-frtot { display: flex; align-items: baseline; gap: .6em; font-size: .85em; color: rgba(236, 253, 245, 0.6); }
.pv-tix-frtot .pv-swap { justify-items: end; }
.pv-tix-frtot b { color: #ecfdf5; font-size: 1.1em; }
.pv-tix-frtot b.pv-tix-free { color: var(--c); }
.pv-tix-actions { display: flex; justify-content: flex-end; gap: .6em; margin-top: .9em; }
.pv-tix-frside { display: flex; flex-direction: column; gap: .8em; width: 30%; }
.pv-tix-row { display: flex; align-items: center; gap: .7em; }
.pv-tix-row > div { margin-right: auto; }
.pv-tix-row b { font-size: .9em; }
.pv-tix-sent .pv-env { width: 1.5em; }
.pv-tix-block { display: flex; flex-direction: column; gap: .5em; }
.pv-tix-block .pv-sub { font-size: .72em; }
.pv-tix-warn { display: flex; flex-direction: column; gap: .15em; padding: .6em .8em; border-radius: .55em; background: #fef2f2; color: #991b1b; border-left: .3em solid #ef4444; }
.pv-tix-warn b { font-size: .85em; }
.pv-tix-warn span { font-size: .7em; color: #7f1d1d; }

/* ── Low-Inventory Alerts ── */
.pv-tix-li { gap: 2em; }
.pv-tix-listore { width: 40%; }
.pv-tix-lowb { font-style: normal; font-size: .68em; font-weight: 700; padding: .2em .6em; border-radius: 999px; background: #fef3c7; color: #92400e; white-space: nowrap; }
.pv-tix-libody { padding: .8em 1em 1em; }
.pv-tix-lrow { display: flex; align-items: center; gap: .6em; margin-top: .4em; padding: .55em .75em; border-radius: .5em; background: #fff; border: 1px solid rgba(27, 36, 33, 0.1); font-size: .85em; }
.pv-tix-lrow b { margin-right: auto; font-size: .95em; }
.pv-tix-lrow > span { font-weight: 600; }
.pv-tix-lrow .pv-swap { justify-items: end; }
.pv-tix-lrow-on { border-color: var(--c); background: color-mix(in srgb, var(--c) 12%, #fff); }
.pv-tix-sob { font-style: normal; font-size: .8em; font-weight: 700; color: #b91c1c; white-space: nowrap; }
.pv-tix-runlow { display: flex; flex-direction: column; gap: .15em; margin-top: .7em; padding: .6em .8em; border-radius: .5em; background: #fff7ed; border: 1px solid #fdba74; color: #9a3412; }
.pv-tix-runlow b { font-size: .85em; }
.pv-tix-runlow > span { font-size: .74em; }
.pv-tix-runlow .pv-swap { font-weight: 800; }
.pv-tix-alerts { display: flex; flex-direction: column; gap: .7em; width: 32%; }
.pv-tix-alert { display: flex; gap: .7em; align-items: flex-start; border-left: .25em solid #fbbf24; }
.pv-tix-alert-so { border-left-color: #f87171; }
.pv-tix-bell { display: grid; place-items: center; flex: none; width: 2em; height: 2em; border-radius: 50%; background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.pv-tix-alert-so .pv-tix-bell { background: rgba(248, 113, 113, 0.15); color: #f87171; }
.pv-tix-alert b { display: block; font-size: .88em; }
.pv-tix-alert div > span { display: block; font-size: .72em; color: rgba(236, 253, 245, 0.6); margin: .15em 0 .35em; }
.pv-tix-alert u { font-size: .72em; font-weight: 600; color: var(--c); text-decoration-color: color-mix(in srgb, var(--c) 45%, transparent); }
.pv-tix-aset { align-self: flex-end; font-size: .72em; color: rgba(236, 253, 245, 0.55); }

/* ── Ticket Import ── */
.pv-tix-im .pv-win { width: 80%; }
.pv-tix-wiz { display: flex; align-items: center; gap: .5em; margin-bottom: 1em; font-size: .8em; }
.pv-tix-wiz b { font-weight: 600; color: rgba(236, 253, 245, 0.75); }
.pv-tix-wizst { display: inline-grid; place-items: center; width: 1.7em; height: 1.7em; border-radius: 50%; border: 1px solid var(--c); background: var(--pv-on-bg); color: var(--pv-on-fg); font-weight: 700; }
.pv-tix-wizln { flex: 1; height: 1px; background: rgba(236, 253, 245, 0.15); }
.pv-tix-impanes { display: grid; height: 11.2em; }
.pv-tix-impanes > * { grid-area: 1 / 1; }
.pv-tix-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35em; border-radius: .7em; border: 1.5px dashed color-mix(in srgb, var(--c) 50%, transparent); background: color-mix(in srgb, var(--c) 5%, transparent); }
.pv-tix-drop > b { font-size: .95em; }
.pv-tix-dropfile { display: flex; align-items: center; gap: .6em; margin-bottom: .6em; padding: .5em .8em; border-radius: .55em; background: #18221e; border: 1px solid rgba(236, 253, 245, 0.12); animation: pvTixDrop var(--pv-t) infinite; }
.pv-tix-dropfile b { font-size: .85em; }
.pv-tix-dropfile em { font-style: normal; font-size: .72em; color: rgba(236, 253, 245, 0.55); }
@keyframes pvTixDrop { 0% { opacity: 0; transform: translate(6em, -3em) rotate(8deg); } 3% { opacity: 1; transform: translate(6em, -3em) rotate(8deg); } 9%, 100% { opacity: 1; transform: none; } }
.pv-tix-file { width: 1.7em; height: auto; color: var(--c); }
.pv-tix-map { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4em; align-items: start; }
.pv-tix-map .pv-lbl { margin-bottom: .3em; }
.pv-tix-mrow { display: grid; grid-template-columns: 5.4em 1em 1fr; align-items: center; gap: .4em; margin-top: .4em; font-size: .82em; }
.pv-tix-mrow i { font-style: normal; color: rgba(236, 253, 245, 0.4); text-align: center; }
.pv-tix-sel { padding: .3em .6em; border-radius: .4em; border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); background: color-mix(in srgb, var(--c) 10%, transparent); }
.pv-tix-nm { border-color: rgba(236, 253, 245, 0.12); background: transparent; color: rgba(236, 253, 245, 0.5); font-style: italic; }
.pv-tix-mapside { display: flex; flex-direction: column; gap: .45em; padding-top: 1.1em; }
.pv-tix-mapside .pv-tix-in { margin-bottom: .4em; }
.pv-tix-rev { display: flex; flex-direction: column; gap: .8em; }
.pv-tix-dup { display: flex; flex-direction: column; gap: .15em; padding: .6em .85em; border-radius: .5em; background: rgba(251, 191, 36, 0.08); border: 1px solid rgba(251, 191, 36, 0.35); }
.pv-tix-dup b { font-size: .88em; color: #fcd34d; }
.pv-tix-dup span { font-size: .76em; color: rgba(236, 253, 245, 0.7); }
.pv-tix-counts { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5em; }
.pv-tix-cnt2 { padding: .5em .7em; border-radius: .5em; background: rgba(236, 253, 245, 0.04); border: 1px solid rgba(236, 253, 245, 0.06); }
.pv-tix-cnt2 span { display: block; font-size: .7em; color: rgba(236, 253, 245, 0.6); white-space: nowrap; }
.pv-tix-cnt2 b { font-size: 1.3em; }
.pv-tix-c-ok b { color: var(--c); }
.pv-tix-c-warn b { color: #fbbf24; }
.pv-tix-c-dup b { color: #fb923c; }
.pv-tix-c-err b { color: #f87171; }
.pv-tix-revfoot { display: flex; align-items: center; justify-content: space-between; }
.pv-tix-revfoot .pv-tix-muted { font-size: .85em; }
.pv-tix-revfoot .pv-tix-muted b { color: #ecfdf5; margin-left: .3em; font-size: 1.1em; }
.pv-tix-revfoot .pv-swap { justify-items: end; }
.pv-tix-done { font-size: .9em; padding: .45em .8em; border-radius: .5em; background: color-mix(in srgb, var(--c) 14%, transparent); }

/* ── Event Cancellation ── */
.pv-tix-cx { gap: 1.6em; }
.pv-tix-cxwin { width: 50%; border-color: rgba(248, 113, 113, 0.3); }
.pv-tix-cxwin .pv-body { padding-top: .9em; }
.pv-tix-cxlist { display: flex; flex-direction: column; gap: .3em; font-size: .8em; }
.pv-tix-cxlist span { display: flex; align-items: center; gap: .5em; }
.pv-tix-cxlist .pv-check { width: 1em; height: 1em; }
.pv-tix-radios { display: flex; flex-direction: column; gap: .3em; margin-top: .4em; font-size: .76em; }
.pv-tix-radios span { display: inline-flex; align-items: center; gap: .4em; color: rgba(236, 253, 245, 0.7); }
.pv-tix-radios i { width: .95em; height: .95em; border-radius: 50%; border: 1.5px solid rgba(236, 253, 245, 0.35); }
.pv-tix-radios .on { color: #ecfdf5; font-weight: 600; }
.pv-tix-radios .on i { border-color: var(--c); background: radial-gradient(circle, var(--c) 0 40%, transparent 45%); }
.pv-tix-cxconf { display: grid; grid-template-columns: 1fr 12.5em; gap: .8em; align-items: center; margin-top: .7em; }
.pv-tix-cxconf .pv-tix-box { font-size: .76em; }
.pv-tix-cxconf .pv-tix-cb { border-color: var(--c); }
.pv-tix-cxin { display: grid; font-weight: 700; }
.pv-tix-cxin > span { grid-area: 1 / 1; }
.pv-tix-ghost { color: rgba(236, 253, 245, 0.4); font-weight: 400; font-size: .86em; letter-spacing: 0; }
.pv-tix-danger { margin-top: .9em; background: #ef4444; color: #fff; }
.pv-tix-cxside { display: flex; flex-direction: column; gap: .8em; width: 30%; }
.pv-tix-cxev { display: flex; align-items: center; justify-content: space-between; gap: .6em; }
.pv-tix-cxev .pv-swap { justify-items: end; }
.pv-tix-cxbadge { background: rgba(248, 113, 113, 0.18); color: #fca5a5; }
.pv-tix-cxhead { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .3em; }
.pv-tix-cxhead b { font-size: 1.3em; color: var(--c); }
.pv-tix-cxrow { display: grid; grid-template-columns: 1fr 1.8em 4.6em 1.4em; align-items: center; gap: .4em; padding: .35em 0; border-top: 1px solid rgba(236, 253, 245, 0.07); font-size: .8em; }
.pv-tix-cxrow em { font-style: normal; color: rgba(236, 253, 245, 0.55); }
.pv-tix-cxrow .pv-swap i { font-style: normal; font-size: .85em; font-weight: 600; }
.pv-tix-pend { color: rgba(236, 253, 245, 0.5); }
.pv-tix-refd { color: var(--c); }
.pv-tix-mailed .pv-env { width: 1.3em; }

@media (prefers-reduced-motion: reduce) {
  .pv .pv-tix-track { transform: translateX(-50%); }
}
