.catalog-supplement-count { color: var(--catalog-secondary); font-size: .8125rem; }
.catalog-setlist-card { border: 1px solid var(--catalog-border); border-radius: 16px; overflow: hidden; }
.catalog-setlist-card ol { margin: 0; padding: 0; list-style: none; }
.catalog-setlist-song { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 12px 20px; }
.catalog-setlist-song + .catalog-setlist-song { border-top: 1px solid var(--catalog-border); }
.catalog-song-order { width: 24px; flex: 0 0 24px; color: var(--catalog-secondary); font-size: .8125rem; text-align: right; font-variant-numeric: tabular-nums; }
.catalog-setlist-song strong { font-size: .9375rem; font-weight: 500; overflow-wrap: anywhere; }
.catalog-setlist-song small { display: block; margin-top: 4px; color: var(--catalog-secondary); font-size: .75rem; }
.catalog-setlist-disclosure .catalog-setlist-song:first-child { border-top: 1px solid var(--catalog-border); }
.catalog-setlist-disclosure :is(summary, .catalog-disclosure-toggle) { padding: 12px 20px; border-top: 1px solid var(--catalog-border); color: var(--catalog-pink); }
.catalog-setlist-encore { padding: 16px 20px 8px; color: var(--catalog-secondary); font-size: .8125rem; border-top: 1px solid var(--catalog-border); }
.catalog-app-context { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0 4px; }
.catalog-app-context strong { display: block; font-size: .875rem; font-weight: 500; }
.catalog-app-context a { display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex: 0 0 auto; min-height: 44px; padding: 8px 14px; color: var(--catalog-blue); border: 1px solid var(--catalog-border); border-radius: 100px; font-size: .8125rem; text-decoration: none; }
.catalog-seat-viewer { overflow: hidden; border: 1px solid var(--catalog-border); border-radius: 16px; background: var(--catalog-soft); }
.catalog-seat-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px 6px 16px; border-bottom: 1px solid var(--catalog-border); background: var(--catalog-surface); }
.catalog-seat-toolbar > span { color: var(--catalog-secondary); font-size: .8125rem; }
.catalog-seat-toolbar > div { display: flex; gap: 4px; }
.catalog-seat-toolbar button, .catalog-seat-expand, .catalog-seat-dialog header button, .catalog-seat-error button { min-width: 44px; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--catalog-blue); font: inherit; cursor: pointer; }
.catalog-seat-toolbar button { font-size: .9375rem; }
.catalog-seat-toolbar button:disabled { opacity: .35; cursor: default; }
.catalog-seat-expand { display: inline-flex; align-items: center; gap: 8px; font-size: .8125rem; }
.catalog-seat-viewport { height: 320px; overflow: auto; background: var(--catalog-surface); overscroll-behavior: contain; touch-action: pan-x pan-y pinch-zoom; }
.catalog-seat-canvas { position: relative; width: 100%; height: 100%; }
.catalog-seat-canvas > img { display: block; width: 100%; max-width: none; height: 100%; max-height: none; object-fit: contain; background: var(--catalog-surface); }
.catalog-seat-viewer[data-seat-map-zoom="2"] .catalog-seat-canvas { width: 200%; height: 200%; }
.catalog-seat-viewer[data-seat-map-zoom="3"] .catalog-seat-canvas { width: 300%; height: 300%; }
.catalog-seat-viewer[data-seat-map-zoom="4"] .catalog-seat-canvas { width: 400%; height: 400%; }
.catalog-seat-viewer[data-seat-map-zoom="5"] .catalog-seat-canvas { width: 600%; height: 600%; }
.catalog-seat-viewer[data-seat-map-zoom="6"] .catalog-seat-canvas { width: 800%; height: 800%; }
.catalog-seat-viewer:not([data-seat-map-zoom="1"]) .catalog-seat-viewport { cursor: grab; }
.catalog-seat-error { margin: 0; padding: 24px; background: var(--catalog-surface); font-size: .875rem; }
.catalog-seat-dialog { width: min(1160px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 20px; border: 1px solid var(--catalog-border); border-radius: 20px; color: var(--catalog-text); background: var(--catalog-surface); }
.catalog-seat-dialog::backdrop { background: color-mix(in srgb, var(--catalog-text) 60%, transparent); }
.catalog-seat-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.catalog-seat-dialog h3 { margin: 0; font-size: 1rem; font-weight: 500; }
.catalog-seat-dialog .catalog-seat-viewport { height: min(68dvh, 720px); }
.catalog-seat-section [hidden] { display: none !important; }
@media (min-width: 1100px) { .catalog-seat-viewport { height: 440px; } }
@media (max-width: 480px) {
  .catalog-app-context { align-items: flex-start; flex-direction: column; gap: 12px; }
  .catalog-setlist-song { padding-right: 16px; padding-left: 16px; }
  .catalog-seat-dialog { padding: 12px; }
}
@media (forced-colors: active) {
  .catalog-seat-viewer, .catalog-setlist-card, .catalog-app-context a { border-color: CanvasText; }
}

.catalog-seat-pins { position: absolute; inset: 0; pointer-events: none; }
.catalog-seat-pin { position: absolute; display: grid; place-items: center; width: 60px; height: 56px; padding: 4px; border: 0; border-radius: 10px; background: var(--catalog-pink); box-shadow: 0 2px 8px color-mix(in srgb, var(--catalog-text) 20%, transparent); transform: translate(-50%, calc(-100% - 10px)); pointer-events: auto; cursor: pointer; }
.catalog-seat-pin::after { content: ""; position: absolute; top: calc(100% - 1px); left: 20px; border: 10px solid transparent; border-top-color: var(--catalog-pink); border-bottom: 0; }
.catalog-seat-pin img { display: block; width: 52px; height: 44px; border-radius: 6px; object-fit: cover; }
.catalog-seat-pin:focus-visible { outline: 3px solid var(--catalog-blue); outline-offset: 4px; }
.catalog-app-dialog { width: min(820px, calc(100vw - 24px)); box-sizing: border-box; max-width: none; max-height: calc(100dvh - 24px); padding: 28px; border: 1px solid var(--catalog-border); border-radius: 24px; background: var(--catalog-surface); color: var(--catalog-text); overflow: auto; overscroll-behavior: contain; }
.catalog-app-dialog::backdrop { background: color-mix(in srgb, var(--catalog-text) 60%, transparent); }
.catalog-app-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.catalog-app-dialog h3 { margin: 0; font-size: 1.35rem; font-weight: 500; line-height: 1.5; }
.catalog-app-dialog > p { margin: 12px 0 22px; color: var(--catalog-secondary); font-size: .875rem; line-height: 1.8; }
.catalog-app-dialog [data-app-close] { flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: 8px; border: 0; border-radius: 50%; background: var(--catalog-soft); color: var(--catalog-text); font: inherit; cursor: pointer; }
.catalog-store-links { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.catalog-store-card { display: flex; align-items: center; gap: 16px; padding: 16px; border: 1px solid var(--catalog-border); border-radius: 16px; color: var(--catalog-text); text-decoration: none; background: var(--catalog-soft); }
.catalog-store-qr { display: block; width: 112px; height: 112px; flex: 0 0 112px; background: white; border-radius: 8px; }
.catalog-store-card strong { font-size: .875rem; font-weight: 500; }
.catalog-store-badge { display: block; margin-top: 10px; width: 120px; max-width: 100%; height: 36px; object-fit: contain; object-position: left; }
.catalog-app-gallery-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 24px 0 12px; font-size: .8125rem; }
.catalog-app-gallery-heading > div { display: inline-flex; padding: 3px; border: 1px solid var(--catalog-border); border-radius: 100px; }
.catalog-app-gallery-heading button { min-height: 36px; padding: 6px 12px; border: 0; border-radius: 100px; background: transparent; color: var(--catalog-secondary); font: inherit; cursor: pointer; }
.catalog-app-gallery-heading button[aria-pressed="true"] { background: var(--catalog-soft); color: var(--catalog-blue); }
.catalog-app-gallery { display: flex; gap: 12px; overflow: auto; scroll-snap-type: x proximity; scrollbar-width: thin; padding-bottom: 8px; }
.catalog-app-gallery img { display: block; width: calc((100% - 36px) / 4); height: auto; align-self: flex-start; flex: 0 0 calc((100% - 36px) / 4); border-radius: 12px; scroll-snap-align: start; }
.catalog-app-dialog footer { display: flex; align-items: center; justify-content: center; gap: 16px; padding-top: 20px; font-size: .75rem; color: var(--catalog-secondary); }
.catalog-app-dialog footer a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--catalog-blue); }
@media (max-width: 680px) {
  .catalog-app-dialog { padding: 20px 16px; border-radius: 20px; }
  .catalog-app-dialog h3 { font-size: 1.125rem; }
  .catalog-store-links { gap: 8px; }
  .catalog-store-card { flex-direction: column; gap: 10px; padding: 12px 8px; text-align: center; }
  .catalog-store-card > span { width: 100%; min-width: 0; }
  .catalog-store-qr { width: 104px; height: 104px; flex-basis: 104px; }
  .catalog-store-badge { margin: 8px auto 0; width: 120px; object-position: center; }
  .catalog-app-gallery img { width: 148px; flex-basis: 148px; }
  .catalog-app-dialog footer { flex-direction: column; gap: 0; }
}
@media (forced-colors: active) {
  .catalog-seat-pin { border: 2px solid ButtonText; }
  .catalog-app-dialog, .catalog-store-card { border-color: CanvasText; }
}

@media (min-width: 681px) and (max-height: 800px) { .catalog-app-gallery img { width: auto; height: 250px; flex: 0 0 auto; } .catalog-app-gallery { justify-content: space-between; } }
