/*
 * Paid events and ticketing (sprint 2 package EVT) - public and member pages.
 * Linked from partials/ext-event-commerce-head (config/extensions/event-commerce.php
 * 'layout' head slot). Every class starts with .evt-. Colours are the site's
 * palette custom properties (site.css @layer theme), so a theme change carries.
 * Touch targets are at least 44px tall.
 */

/* Badges: "Members only", "Invitation only", "Sold out" */
.evt-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;border:1px solid var(--color-brass-400,#c9a45c);background:var(--color-cream-100,#f8f4eb);padding:.15rem .7rem;font-size:.75rem;font-weight:600;color:var(--color-brass-600,#7a5c22);letter-spacing:.02em;white-space:nowrap}
.evt-badge-muted{border-color:var(--color-cream-300,#e3d7bd);color:var(--color-ink-500,#5c4f3f)}
.evt-badge-alert{border-color:var(--color-brick-300,#d29490);background:var(--color-brick-50,#faf1f0);color:var(--color-brick-700,#742622)}
.evt-badges{display:flex;flex-wrap:wrap;gap:.5rem}

/* Steps: 1 Tickets - 2 Details - 3 Done */
.evt-steps{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;list-style:none;font-size:.8125rem;color:var(--color-ink-500,#5c4f3f)}
.evt-step{display:flex;align-items:center;gap:.5rem}
.evt-step-n{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:999px;border:1px solid var(--color-cream-300,#e3d7bd);background:#fff;font-weight:700;font-size:.75rem}
.evt-step-on{color:var(--color-ink-900,#241c14);font-weight:600}
.evt-step-on .evt-step-n{border-color:var(--color-brick-600,#8c2f2b);background:var(--color-brick-600,#8c2f2b);color:var(--color-cream-50,#fdfbf6)}
.evt-step-done .evt-step-n{border-color:var(--color-ivy-700,#1f4d3a);background:var(--color-ivy-700,#1f4d3a);color:#fff}

/* The registration layout: form, then (from 64rem) the summary beside it */
.evt-layout{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:64rem){.evt-layout{grid-template-columns:minmax(0,1fr) 20rem;align-items:start}.evt-aside{position:sticky;top:1.5rem}}

/* Ticket types */
.evt-types{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}
.evt-type{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;align-items:center;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:#fff;padding:1rem}
.evt-type-name{font-weight:600;color:var(--color-ink-900,#241c14)}
.evt-type-desc{margin-top:.25rem;font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.evt-type-meta{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.25rem .75rem;font-size:.8125rem;color:var(--color-ink-500,#5c4f3f)}
.evt-type-price{font-weight:700;color:var(--color-ink-900,#241c14);text-align:end;white-space:nowrap}
.evt-type-member{display:block;font-size:.75rem;font-weight:600;color:var(--color-ivy-700,#1f4d3a)}
.evt-type-off{background:var(--color-cream-100,#f8f4eb)}
.evt-type-off .evt-type-name,.evt-type-off .evt-type-price{color:var(--color-ink-500,#5c4f3f)}
.evt-qty{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;grid-column:1 / -1}
.evt-qty label{font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.evt-qty select,.evt-qty input{min-height:2.75rem;min-width:5rem;border-radius:.5rem;border:1px solid var(--color-cream-300,#e3d7bd);background:#fff;padding:.25rem .75rem;font-size:1rem;color:var(--color-ink-900,#241c14)}
@media (min-width:40rem){.evt-type{grid-template-columns:minmax(0,1fr) auto auto}.evt-qty{grid-column:auto}}

/* Order summary */
.evt-summary{padding:1.25rem}
.evt-summary-rows{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.4rem;font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.evt-summary-row{display:flex;justify-content:space-between;gap:1rem}
.evt-summary-row span:last-child{white-space:nowrap}
.evt-summary-discount{color:var(--color-ivy-700,#1f4d3a)}
.evt-summary-total{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-cream-300,#e3d7bd);display:flex;justify-content:space-between;gap:1rem;font-weight:700;color:var(--color-ink-900,#241c14)}

/* The held-places notice */
.evt-hold{display:flex;gap:.75rem;align-items:flex-start;border-radius:.75rem;border:1px solid var(--color-brass-400,#c9a45c);background:var(--color-cream-100,#f8f4eb);padding:.85rem 1rem;font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.evt-hold strong{color:var(--color-ink-900,#241c14)}

/* One person's details */
.evt-person{border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:var(--color-cream-50,#fdfbf6);padding:1.25rem;margin:0;min-width:0}
.evt-person > legend{padding:0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brass-600,#7a5c22)}
.evt-person-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.evt-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.evt-wide{grid-column:1 / -1}}

/* Radio and checkbox answers: each option a 44px row */
.evt-choices{display:grid;gap:.35rem;margin-top:.35rem}
.evt-choice{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.5rem;background:#fff;padding:.35rem .75rem;font-size:.9375rem;color:var(--color-ink-900,#241c14);cursor:pointer}
.evt-choice input{width:1.1rem;height:1.1rem;accent-color:var(--color-brick-600,#8c2f2b);flex:none}
.evt-choice:has(input:checked){border-color:var(--color-brick-600,#8c2f2b);background:var(--color-brick-50,#faf1f0)}
.evt-choice:has(input:focus-visible){outline:2px solid var(--color-brick-500,#a03f39);outline-offset:2px}
.evt-choices-row{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr))}

/* Answers read back */
.evt-answers{margin:.5rem 0 0;display:grid;gap:.25rem;font-size:.8125rem;color:var(--color-ink-700,#3d3226)}
.evt-answers div{display:flex;flex-wrap:wrap;gap:.15rem .5rem}
.evt-answers dt{font-weight:600;color:var(--color-ink-900,#241c14)}
.evt-answers dd{margin:0;overflow-wrap:anywhere}

/* Tickets with QR codes */
.evt-tickets{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.evt-tickets{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:64rem){.evt-tickets{grid-template-columns:repeat(3,minmax(0,1fr))}}
.evt-ticket{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.25rem;border-top:4px solid var(--color-brick-600,#8c2f2b)}
.evt-ticket-qr{background:#fff;padding:.75rem;border-radius:.75rem;border:1px solid var(--color-cream-300,#e3d7bd);display:inline-block;line-height:0;max-width:100%}
.evt-ticket-qr svg{max-width:100%;height:auto}
.evt-ticket-code{margin-top:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.35rem;font-weight:700;letter-spacing:.2em;color:var(--color-ink-900,#241c14)}
.evt-ticket-name{margin-top:.75rem;font-weight:600;color:var(--color-ink-900,#241c14);overflow-wrap:anywhere}
.evt-ticket-in{margin-top:.5rem;font-size:.8125rem;font-weight:600;color:var(--color-ivy-700,#1f4d3a)}
.evt-ticket-void{opacity:.55;border-top-color:var(--color-cream-300,#e3d7bd)}

/* Ways to pay and the gift */
.evt-pay{display:grid;gap:.5rem}
.evt-presets{display:flex;flex-wrap:wrap;gap:.5rem}
.evt-presets .evt-choice{min-width:5.5rem;justify-content:center}
.evt-gift{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.evt-gift{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* The public event page's registration card */
.evt-card{padding:1.25rem}
.evt-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}
.evt-prices{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem;font-size:.9375rem}
.evt-prices li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed var(--color-cream-300,#e3d7bd);padding-bottom:.35rem}
.evt-prices li:last-child{border-bottom:0}
.evt-prices span:last-child{font-weight:600;white-space:nowrap;color:var(--color-ink-900,#241c14)}
.evt-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}
.evt-actions .btn-primary,.evt-actions .btn-outline,.evt-actions .btn-brass{min-height:2.75rem}

/* Share links (F052): plain links, no scripts from anyone else */
.evt-share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:2rem}
.evt-share-label{font-size:.8125rem;font-weight:600;color:var(--color-ink-700,#3d3226);margin-inline-end:.25rem}
.evt-share-link{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.75rem;min-width:2.75rem;border-radius:999px;border:1px solid var(--color-cream-300,#e3d7bd);background:#fff;padding:.25rem .9rem;font-size:.8125rem;font-weight:600;color:var(--color-ink-900,#241c14);text-decoration:none;cursor:pointer}
.evt-share-link:hover{border-color:var(--color-brick-300,#d29490);color:var(--color-brick-700,#742622)}
.evt-share-link:focus-visible{outline:2px solid var(--color-brick-500,#a03f39);outline-offset:2px}
.evt-share-link svg{width:1rem;height:1rem;flex:none}
.evt-share-native[hidden]{display:none}
.evt-share-copied{font-size:.8125rem;color:var(--color-ivy-700,#1f4d3a)}

/* My events (member area) */
.evt-mine{margin:0;padding:0;list-style:none;display:grid;gap:1rem}
.evt-mine-item{display:grid;gap:.75rem;padding:1.25rem}
@media (min-width:48rem){.evt-mine-item{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
.evt-mine-when{font-size:.875rem;color:var(--color-ink-700,#3d3226)}

/* QR sign-up form (F026) */
.evt-signup{max-width:32rem;margin:0 auto}
.evt-signup .btn-primary{min-height:2.75rem;width:100%}

/* Printable poster (F026): A4 or A5, set by the page */
.evt-poster{max-width:40rem;margin:0 auto;text-align:center;padding:2.5rem 1.5rem;border:2px solid var(--color-ink-900,#241c14);border-radius:1rem;background:#fff}
.evt-poster-qr{display:inline-block;padding:1rem;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:1rem;line-height:0}
.evt-poster-qr svg{width:18rem;height:18rem;max-width:100%}
.evt-poster-a5 .evt-poster-qr svg{width:12rem;height:12rem}
.evt-poster-title{margin-top:1rem;font-size:2rem;font-weight:700;line-height:1.15;color:var(--color-ink-900,#241c14)}
.evt-poster-a5 .evt-poster-title{font-size:1.5rem}
.evt-poster-url{margin-top:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875rem;color:var(--color-ink-700,#3d3226);overflow-wrap:anywhere}
.evt-print-bar{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem}
/* Printing a poster page prints the poster alone (scoped with :has, so no
   other page's printout changes). */
@media print{
    .evt-print-bar{display:none}
    body:has(.evt-poster) *{visibility:hidden}
    body:has(.evt-poster) .evt-poster,body:has(.evt-poster) .evt-poster *{visibility:visible}
    body:has(.evt-poster) .evt-poster{position:absolute;top:0;inset-inline-start:0;width:100%;border:0;max-width:none;padding:1rem 0}
}
/* The door check-in page (admin/checkin.blade.php): what is still to pay, on the green "Welcome in" panel. */
.evt-door-topay{margin:.35em 0 0;font-size:.9375rem;font-weight:700;color:#fde68a}
