/* Application lookup and a responsive, text-based mobile ticket. */
.ticket-result-shell { max-width: 560px; margin: 0 auto; }
.ticket-intro { margin: 0 auto 22px; text-align: center; }
.ticket-intro p:first-child { color: var(--accent-text); font-weight: 700; margin: 0 0 6px; }
.ticket-intro p:last-child { color: var(--muted); font-size: 14px; }
.mobile-ticket { position: relative; overflow: hidden; border: 1px solid #603440; border-radius: 22px; background: #1b1d24; box-shadow: 0 18px 60px #0005; }
.mobile-ticket-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 21px 28px; background: linear-gradient(115deg, #9d102b, #60172a); border-bottom: 1px solid #db486252; }
.mobile-ticket-brand { font-size: 12px; font-weight: 900; letter-spacing: .18em; color: #fff5f7; }
.mobile-ticket-status { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; padding: 5px 10px; border: 1px solid #ffffff5c; border-radius: 30px; font-size: 12px; font-weight: 800; background: #ffffff15; }
.mobile-ticket-status::before { content: ""; width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
.mobile-ticket-main { padding: 28px 28px 26px; }
.mobile-ticket-eyebrow { margin: 0 0 11px; color: #fa8399; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.mobile-ticket-eyebrow span { color: #b7b9c4; font-weight: 500; }
.mobile-ticket .mobile-ticket-title { margin: 0; font-size: clamp(24px, 4.8vw, 32px); line-height: 1.4; font-weight: 900; letter-spacing: -.04em; overflow-wrap: anywhere; }
.mobile-ticket-schedule { display: grid; gap: 13px; margin-top: 25px; }
.mobile-ticket-schedule p { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 8px; margin: 0; }
.mobile-ticket-schedule span { color: var(--muted); font-size: 12px; align-self: center; }
.mobile-ticket-schedule strong { font-size: 15px; line-height: 1.55; }
.mobile-ticket-seats { padding: 18px 19px; border: 1px solid #46404b; background: #24232c; border-radius: 12px; margin-top: 26px; }
.mobile-ticket-section-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #bbb4bd; font-size: 11px; font-weight: 700; }
.mobile-ticket-section-title span:first-child { letter-spacing: .16em; }
.mobile-ticket-seats ul { display: grid; gap: 12px; list-style: none; padding: 0; margin: 14px 0 0; }
.mobile-ticket-seats li { display: flex; align-items: baseline; gap: 12px; }
.mobile-ticket-seat-index { color: #ed6983; font-size: 11px; font-weight: 800; }
.mobile-ticket-seats strong { font-size: 21px; line-height: 1.5; letter-spacing: -.035em; }
.mobile-ticket-stub { position: relative; display: grid; gap: 18px; padding: 23px 28px; border-top: 1px dashed #75646d; background: #17191f; }
.mobile-ticket-stub::before, .mobile-ticket-stub::after { content: ""; position: absolute; width: 20px; height: 20px; border-radius: 50%; background: var(--bg); border: 1px solid #603440; top: -11px; }
.mobile-ticket-stub::before { left: -11px; }.mobile-ticket-stub::after { right: -11px; }
.mobile-ticket-ref { display: grid; gap: 5px; }
.mobile-ticket-ref > span { color: var(--muted); font-size: 11px; }
.mobile-ticket-ref strong { font-variant-numeric: tabular-nums; letter-spacing: .075em; font-size: clamp(20px, 5vw, 25px); font-weight: 800; }
.mobile-ticket-buyer { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.mobile-ticket-buyer p { display: flex; gap: 10px; margin: 0; font-size: 13px; }
.mobile-ticket-buyer span { color: var(--muted); }
.mobile-ticket-footer { display: flex; gap: 8px; padding: 16px 28px; border-top: 1px solid #34313a; background: #20212a; }
.mobile-ticket-footer p { font-size: 12px; color: #cac7cf; margin: 0; line-height: 1.7; }
.mobile-ticket-live-dot { width: 5px; height: 5px; border-radius: 50%; background: #9cceae; flex-shrink: 0; margin-top: 8px; }
.ticket-extra { border: 1px solid var(--border); border-radius: 12px; margin: 18px 0 0; background: #181a20; }
.ticket-extra summary { cursor: pointer; padding: 16px 20px; font-size: 14px; font-weight: 700; }
.ticket-extra dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px 20px; padding: 0 20px 20px; margin: 0; font-size: 13px; }
.ticket-extra dt { color: var(--muted); }.ticket-extra dd { margin: 0; text-align: right; }
.lookup-live { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin: 24px auto 0; max-width: 760px; }
.lookup-live p { margin: 0; font-size: 12px; color: var(--muted); }
.lookup-live.is-stale { border: 1px solid #977634; border-radius: 12px; padding: 15px; background: #332914; }
.lookup-live.is-stale p { color: #f6d78e; }
.mobile-ticket.is-stale .mobile-ticket-status { color: #ffe7a5; border-color: #cbb776; background: #3d321d; }
.mobile-ticket.is-stale .mobile-ticket-live-dot { background: #f4cc76; }
.ticket-closed { max-width: 640px; margin: 0 auto; border-top: 3px solid #737582; }
.ticket-closed-head { padding-bottom: 20px; border-bottom: 1px solid var(--border); margin-bottom: 20px; }
.ticket-closed-head h2 { margin: 12px 0 6px; font-size: 24px; }.ticket-closed-head p { color: var(--muted); margin: 0; }
.lookup-card .lookup-fields { margin-top: 20px; }.lookup-card .card-title { margin-bottom: 8px; }
.lookup-form-note { color: var(--muted); font-size: 14px; margin: 0; }
.lookup-input-ref { font-variant-numeric: tabular-nums; letter-spacing: .06em; }
.mobile-ticket-compact { box-shadow: none; }.mobile-ticket-compact .mobile-ticket-title { font-size: 24px; }
.mobile-ticket-compact .mobile-ticket-stub { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
.mobile-ticket-compact .mobile-ticket-ref strong { font-size: 18px; }.mobile-ticket-compact .mobile-ticket-seats { margin-top: 20px; }
.my-list-error { margin: 15px 0; padding: 14px 16px; border: 1px solid #977634; border-radius: 10px; color: #f6d78e; background: #332914; font-size: 13px; }
@media (max-width: 480px) {
  .mobile-ticket-top { padding: 17px 20px; }.mobile-ticket-main { padding: 24px 20px; }.mobile-ticket-stub { padding: 22px 20px; }.mobile-ticket-footer { padding: 16px 20px; }
  .mobile-ticket-seats { padding: 16px; }.mobile-ticket-seats strong { font-size: 18px; }.mobile-ticket-brand { font-size: 10px; letter-spacing: .13em; }
  .mobile-ticket-schedule p { grid-template-columns: 58px minmax(0,1fr); }.mobile-ticket-schedule strong { font-size: 14px; }
  .mobile-ticket-compact .mobile-ticket-stub { grid-template-columns: 1fr; }.mobile-ticket-compact .mobile-ticket-stub .btn { width: 100%; }
  .lookup-card .btn-row .btn { width: 100%; }.lookup-live { align-items: stretch; flex-direction: column; text-align: center; }
}
@media print { .ticket-result-shell { max-width: 560px; }.lookup-live { display:none; }.mobile-ticket { break-inside:avoid; print-color-adjust:exact; -webkit-print-color-adjust:exact; } }

/* Clear next actions without changing the reservation flow. */
.member-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:0 0 22px; list-style:none; gap:8px; }
.member-progress li { display:flex; align-items:center; gap:8px; border:1px solid #3c3d48; border-radius:10px; padding:12px; font-size:12px; color:#a6a8b3; min-width:0; }
.member-progress li.is-current { background:#341e2a; border-color:#ab5267; color:#f8dce3; font-weight:800; }
.member-progress li.is-done { color:#d1d2d8; }
.member-progress-number { display:inline-flex; width:22px; height:22px; justify-content:center; align-items:center; flex-shrink:0; border:1px solid currentColor; border-radius:50%; font-size:11px; }
.member-next { margin:16px 0; padding:17px 18px; background:#232631; border:1px solid #444953; border-radius:12px; }
.member-next h3 { font-size:14px; margin:0 0 7px; color:#eef0f5; }.member-next p { color:#ced0da; font-size:13px; margin:0; line-height:1.85; }
.member-next.is-review { background:#302821; border-color:#6d553b; }.member-next.is-review h3 { color:#f4d49e; }
.member-contact { display:inline-flex; align-items:center; min-height:44px; margin-top:6px; font-size:13px; }
.number-guide { margin:20px auto; border:1px solid #41444e; border-radius:12px; background:#191c23; max-width:760px; }
.number-guide summary { padding:15px 18px; cursor:pointer; font-size:13px; font-weight:700; min-height:48px; }
.number-guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 18px 14px; }
.number-guide-grid > div { padding:16px; background:#232630; border-radius:9px; min-width:0; }
.number-guide-grid h3 { font-size:14px; margin:9px 0 5px; }.number-guide-grid strong { font-size:14px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }.number-guide-grid p { font-size:12px; color:var(--muted); line-height:1.8; margin:7px 0 0; }
.number-guide-tag { padding:3px 7px; border:1px solid #6c5161; border-radius:5px; color:#f2a3b5; font-size:11px; font-weight:700; }
.number-guide-foot { margin:0; padding:0 18px 18px; font-size:12px; color:var(--muted); line-height:1.75; }
.password-storage-note { margin:10px 0 0; padding:12px 14px; font-size:12px; line-height:1.8; color:#e4d3d9; border-left:3px solid #c46279; background:#34232c; border-radius:0 7px 7px 0; }
.ticket-ref-copy { border:0; background:transparent; color:#f58da3; text-decoration:underline; text-underline-offset:4px; font-family:inherit; font-size:12px; width:max-content; min-height:44px; cursor:pointer; padding:6px 0; }
.ticket-copy-result { color:#bce4c8; font-size:11px; }.ticket-copy-result:empty { display:none; }
.my-booking .member-progress { margin:18px 0; }.my-booking .member-next h3 { margin:0 0 7px; }.my-booking .number-guide { margin:16px 0; }
.ticket-closed .member-next { margin-bottom:24px; }
.lookup-live.is-stale + .member-next { border-color:#977634; }
@media(max-width:600px) {
 .member-progress { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.member-progress li { padding:10px; }
 .number-guide-grid { grid-template-columns:1fr; }.member-next { padding:15px; }
 .mobile-ticket-ref .ticket-ref-copy { min-height:44px; }
}
@media print { .ticket-ref-copy, .ticket-copy-result { display:none; } }

/* Keep exchange instructions readable without nesting narrow mobile cards. */
.mobile-ticket > .exchange-guide { border-radius:0; border-left:0; border-right:0; margin:0 !important; padding:24px 28px !important; }
@media (max-width:480px) { .mobile-ticket > .exchange-guide { padding:20px !important; } }
