/*
 * Copyright (C) 2026 The Design Company
 * SPDX-License-Identifier: GPL-2.0-or-later
 * This file is part of TicketLab Pro and is distributed under the GNU GPL v2 or later.
 */
.ticketlab-lineup{margin:2.5rem 0}.ticketlab-lineup h2{margin-bottom:1rem}.ticketlab-lineup__group{margin:1.5rem 0 .85rem;color:#10284e}.ticketlab-lineup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.ticketlab-profile-card{overflow:hidden;border:1px solid #dde4ee;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(16,40,78,.07)}.ticketlab-profile-card>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.ticketlab-profile-card>div{padding:1rem}.ticketlab-profile-card>div>span{display:block;margin-bottom:.25rem;color:#52637e;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ticketlab-profile-card h3{margin:.1rem 0 .5rem;color:#10284e}.ticketlab-profile-bio{color:#526070;line-height:1.5}.ticketlab-profile-bio p:first-child{margin-top:0}.ticketlab-profile-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.8rem}.ticketlab-profile-links a{font-size:.84rem;font-weight:700}
.ticketlab-addons{margin:1.25rem 0;border:1px solid #dbe3ef;border-radius:14px;padding:1rem;background:#f8fafc}.ticketlab-addons legend{padding:0 .4rem;color:#10284e;font-size:1.2rem;font-weight:800}.ticketlab-addons>p{margin-top:0;color:#667085}.ticketlab-addons--compact{padding-top:.2rem}.ticketlab-addons--compact .ticketlab-addon-option:first-child{border-top:0}.ticketlab-addon-option{display:grid;grid-template-columns:64px 1fr 80px;gap:.8rem;align-items:center;border-top:1px solid #e4e7ec;padding:.8rem 0}.ticketlab-addon-option--no-image{grid-template-columns:1fr 80px}.ticketlab-addon-option>img{width:64px;height:64px;border-radius:10px;object-fit:cover}.ticketlab-addon-option label{display:grid;gap:.15rem}.ticketlab-addon-option small{color:#667085;line-height:1.35}.ticketlab-addon-option span{color:#10284e;font-weight:750}.ticketlab-addon-option input{width:100%;box-sizing:border-box;border:1px solid #b7c3d4;border-radius:9px;padding:.65rem;text-align:center;font:inherit}@media(max-width:520px){.ticketlab-addon-option{grid-template-columns:52px 1fr 68px}.ticketlab-addon-option--no-image{grid-template-columns:1fr 68px}.ticketlab-addon-option>img{width:52px;height:52px}}
.ticketlab-addon-option--custom-amount{grid-template-columns:64px minmax(0,1fr);align-items:start;row-gap:.65rem}.ticketlab-addon-option--custom-amount.ticketlab-addon-option--no-image{grid-template-columns:1fr}.ticketlab-addon-option--custom-amount>label,.ticketlab-addon-option--custom-amount>.ticketlab-addon-amount{grid-column:2}.ticketlab-addon-option--custom-amount.ticketlab-addon-option--no-image>label,.ticketlab-addon-option--custom-amount.ticketlab-addon-option--no-image>.ticketlab-addon-amount{grid-column:1}.ticketlab-addon-amount{display:grid;grid-template-columns:auto minmax(0,320px);gap:.3rem .55rem;align-items:center}.ticketlab-addon-amount>span{font-size:.78rem}.ticketlab-addon-amount>small{grid-column:1/-1;font-size:.75rem}.ticketlab-addon-amount__control{position:relative}.ticketlab-addon-amount__control input{padding-right:2.6rem;-moz-appearance:textfield}.ticketlab-addon-amount__control input::-webkit-inner-spin-button,.ticketlab-addon-amount__control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ticketlab-addon-amount__steps{position:absolute;top:1px;right:1px;bottom:1px;display:grid;width:2rem;overflow:hidden;border-left:1px solid #b7c3d4;border-radius:0 8px 8px 0}.ticketlab-addon-amount__steps button{display:grid;min-width:0;padding:0;border:0;background:transparent;color:inherit;font-size:.55rem;line-height:1;place-items:center;cursor:pointer}.ticketlab-addon-amount__steps button+button{border-top:1px solid #b7c3d4}.ticketlab-addon-amount__steps button:hover,.ticketlab-addon-amount__steps button:focus-visible{background:rgba(21,94,239,.12)}@media(max-width:520px){.ticketlab-addon-option--custom-amount,.ticketlab-addon-option--custom-amount.ticketlab-addon-option--no-image{grid-template-columns:1fr}.ticketlab-addon-option--custom-amount>img{display:none}.ticketlab-addon-option--custom-amount>label,.ticketlab-addon-option--custom-amount>.ticketlab-addon-amount{grid-column:1}.ticketlab-addon-amount{grid-template-columns:auto minmax(0,1fr);max-width:320px}}
.ticketlab-result__extras{margin:1rem auto;max-width:460px;border:2px solid #f5c451;border-radius:12px;background:#fff8df;padding:.8rem 1rem;color:#713b12;text-align:left}.ticketlab-result__extras h2{margin:0 0 .4rem;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.ticketlab-result__extras ul{margin:0;padding-left:1.25rem}
.ticketlab-result__extras .ticketlab-digital-download{display:inline-flex;margin-left:.65rem;border-radius:999px;background:#155eef;padding:.35rem .7rem;color:#fff;font-size:.78rem;font-weight:800;text-decoration:none}
.ticketlab-result__tickets{margin:1.75rem auto 0;max-width:460px}.ticketlab-result__tickets h2{margin:0 0 1rem}.ticketlab-result__wallet{display:flex;justify-content:center;margin:0 0 .8rem;border-radius:10px;background:#155eef;padding:.85rem 1rem;color:#fff!important;font-weight:800;text-decoration:none}.ticketlab-result__wallet:hover{background:#0b4bd4;text-decoration:none}.ticketlab-result__ticket-list{display:grid;gap:.6rem;text-align:left}.ticketlab-result__ticket-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;border:1px solid #d7e3f7;border-radius:10px;background:#f8fbff;padding:.85rem 1rem;color:#10284e;text-decoration:none}.ticketlab-result__ticket-link:hover,.ticketlab-result__ticket-link:focus{border-color:#155eef;background:#eef4ff;text-decoration:none}.ticketlab-result__ticket-link span{font-weight:800;overflow-wrap:anywhere}.ticketlab-result__ticket-link small{display:block;margin-top:.18rem;color:#4b5563;font-size:.85rem;font-weight:650;line-height:1.25}.ticketlab-result__ticket-link strong{color:#155eef;font-size:.9rem;white-space:nowrap}.ticketlab-result__actions{margin-top:1.5rem}.ticketlab-result__actions .ticketlab-button{width:auto}@media(max-width:520px){.ticketlab-result__ticket-link{grid-template-columns:1fr}.ticketlab-result__ticket-link strong{white-space:normal}}

.ticketlab-lineup-page{max-width:1180px;margin:0 auto;padding:2rem 1rem 4rem}.ticketlab-lineup-page__header{margin-bottom:1.5rem}.ticketlab-lineup-page__header h1{color:#10284e}.ticketlab-lineup-section{margin-bottom:2.5rem}.ticketlab-profile-card__intro{margin:.35rem 0 0;color:#526070;line-height:1.5;font-size:.95rem}.ticketlab-profile-card__more{margin-top:.7rem;padding:0;border:0;background:none;color:#2a69b8;font:inherit;font-weight:700;cursor:pointer}.ticketlab-lineup-dialog{box-sizing:border-box;max-width:760px;width:calc(100% - 2rem);max-height:calc(100vh - 2rem);overflow:auto;border:1px solid #dde4ee;border-radius:14px;padding:2rem}.ticketlab-lineup-dialog::backdrop{background:rgba(16,40,78,.55)}.ticketlab-lineup-dialog__close{position:absolute;z-index:1;top:.6rem;right:.9rem;display:grid;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:50%;place-items:center;background:rgba(16,40,78,.88);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}.ticketlab-lineup-dialog__photo{display:block;width:100%;height:auto;max-height:520px;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin:0 auto 1.25rem}.ticketlab-lineup-dialog__name{margin:0;text-align:center;color:#10284e}.ticketlab-lineup-dialog__role{margin:.2rem 0 1rem;text-align:center;color:#52637e;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ticketlab-lineup-dialog__bio{color:#526070;line-height:1.6}.ticketlab-lineup-dialog__bio p:first-child{margin-top:0}@media(max-width:560px){.ticketlab-lineup-dialog{padding:1rem}.ticketlab-lineup-dialog__close{top:.35rem;right:.55rem;width:2.25rem;height:2.25rem}.ticketlab-lineup-dialog__photo{max-height:42vh;border-radius:9px}}
.ticketlab-lineup-dialog__links{justify-content:center;margin:1rem 0 0}

/* Whole-card line-up interaction. The card opens the existing profile dialog
   and remains fully keyboard accessible through role/button semantics. */
.ticketlab-profile-card--interactive{cursor:pointer;outline:0;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.ticketlab-profile-card--interactive>img{transition:transform .35s ease}
.ticketlab-profile-card--interactive:hover,.ticketlab-profile-card--interactive:focus-visible{transform:translateY(-4px);border-color:#b9c9dd;box-shadow:0 14px 32px rgba(16,40,78,.14)}
.ticketlab-profile-card--interactive:hover>img,.ticketlab-profile-card--interactive:focus-visible>img{transform:scale(1.025)}
.ticketlab-profile-card--interactive:focus-visible{box-shadow:0 0 0 3px rgba(42,105,184,.22),0 14px 32px rgba(16,40,78,.14)}
.ticketlab-profile-card__more{display:inline-flex;align-items:center;gap:.35rem;margin-top:.7rem;color:#2a69b8;font-weight:700}
.ticketlab-profile-card__more::after{content:'\2192';transition:transform .2s ease}
.ticketlab-profile-card--interactive:hover .ticketlab-profile-card__more::after,.ticketlab-profile-card--interactive:focus-visible .ticketlab-profile-card__more::after{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){.ticketlab-profile-card--interactive,.ticketlab-profile-card--interactive>img,.ticketlab-profile-card__more::after{transition:none}.ticketlab-profile-card--interactive:hover,.ticketlab-profile-card--interactive:focus-visible,.ticketlab-profile-card--interactive:hover>img,.ticketlab-profile-card--interactive:focus-visible>img{transform:none}}
