/* Limata Auditorium Tickets — picker */
.lat-wrap{
    --bg:#0A0F1A; --card:#0E1525; --border:#1A2540; --text:#E8ECF1; --muted:#C8CDD8; --dim:#8A94A6;
    --blue:#0099FF; --orange:#C8702A; --green:#1DB954; --yellow:#E8B23D;
    background:var(--bg); color:var(--text); padding:2rem 1rem 3rem;
    font-family:Inter,-apple-system,sans-serif;
    border-radius:14px;
}
.lat-intro{text-align:center;max-width:760px;margin:0 auto 1.5rem}
.lat-eyebrow{color:var(--blue);font-size:12px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;margin:0 0 0.5rem}
.lat-h1{font-family:'Space Grotesk',Inter,sans-serif;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;letter-spacing:-0.02em;margin:0 0 0.6rem;color:var(--text)}
.lat-sub{color:var(--muted);font-size:15px;line-height:1.6;margin:0}
.lat-h2{font-family:'Space Grotesk',Inter,sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:-0.02em;margin:0 0 1rem;text-align:center}

/* Legend — Ticketmaster style: circles, light tokens */
.lat-legend{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin:1rem auto 1.5rem;font-size:12px;color:var(--muted);font-weight:500}
.lat-key{display:inline-flex;align-items:center;gap:8px}
.lat-swatch{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}
.lat-swatch.lat-available{background:#3A4A6C}
.lat-swatch.lat-selected{background:#0099FF}
.lat-swatch.lat-held{background:#D49A2A}
.lat-swatch.lat-sold{background:#7A2C3F;color:#FFB3C3}
.lat-swatch.lat-sold::before{content:'×';font-size:11px;line-height:1}
.lat-swatch.lat-wheelchair{background:#2D5A93;color:#fff;font-size:9px}

/* Map — dark, transparent, centered, no border */
.lat-map{
    background:transparent;
    border:none;
    border-radius:0;
    padding:1.5rem 1rem;
    margin:1.5rem auto;
    max-width:max-content;          /* shrink-wrap so flex centering works */
    overflow-x:auto;
    box-shadow:none;
    display:block;
}
.lat-map-loading{text-align:center;color:var(--dim);padding:3rem 0}
.lat-section{margin:0 0 1.75rem}
.lat-section:last-child{margin-bottom:0}
.lat-section-label{
    text-align:center;color:var(--dim);font-size:10px;font-weight:700;
    letter-spacing:0.4em;text-transform:uppercase;margin:0 0 14px;
}
.lat-section-label::before,
.lat-section-label::after{
    content:'';display:inline-block;width:36px;height:1px;background:rgba(255,255,255,0.12);
    vertical-align:middle;margin:0 14px;
}
.lat-row{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 7px;min-width:fit-content}
.lat-row-label{color:var(--dim);font-size:11px;font-weight:700;width:30px;text-align:center;flex-shrink:0;letter-spacing:0.05em}
.lat-subsection{display:flex;gap:6px;padding:0 8px}
.lat-section-aisle{
    width:12px;flex-shrink:0;align-self:stretch;
    background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.08) 50%,transparent 100%);
    margin:0 4px;border-radius:2px;
}

/* Seat — circular, dark mode */
.lat-seat{
    width:22px;height:22px;border-radius:50%;
    background:#3A4A6C;border:none;
    cursor:pointer;transition:transform 0.12s, background 0.12s, box-shadow 0.12s;
    display:inline-flex;align-items:center;justify-content:center;
    font-size:0;color:transparent;line-height:1;
    flex-shrink:0;position:relative;
}
.lat-seat:hover{
    transform:scale(1.35);
    background:#5478D0;
    box-shadow:0 4px 14px rgba(0,153,255,0.5);
    z-index:2;
}
.lat-seat.is-selected{
    background:#0099FF;color:#fff;font-size:10px;font-weight:700;
    transform:scale(1.18);
    box-shadow:0 4px 14px rgba(0,153,255,0.65);
}
.lat-seat.is-selected:hover{transform:scale(1.35)}
.lat-seat.is-held{background:#D49A2A;cursor:not-allowed}
.lat-seat.is-held:hover{transform:none;box-shadow:none;background:#D49A2A}
.lat-seat.is-sold{background:#7A2C3F;cursor:not-allowed;color:#fff;font-size:0;opacity:0.7}
.lat-seat.is-sold::after{
    content:'×';font-size:14px;font-weight:700;color:#FFB3C3;line-height:1;
}
.lat-seat.is-sold:hover{transform:none;box-shadow:none;background:#7A2C3F}
.lat-seat.is-wheelchair{background:#2D5A93;color:transparent;font-size:0}
.lat-seat.is-wheelchair:not(.is-selected)::before{content:'♿';font-size:11px;color:#fff;line-height:1}
.lat-seat.is-wheelchair.is-selected{background:#0099FF;color:#fff;font-size:10px;font-weight:700}
.lat-seat.is-disabled{cursor:not-allowed}
.lat-seat.is-disabled:hover{transform:none;box-shadow:none}

/* Stage */
.lat-stage{
    max-width:600px;margin:1.5rem auto 0;text-align:center;
    background:linear-gradient(180deg,#2A3A5C 0%,#1A2540 100%);
    color:var(--muted);font-size:11px;font-weight:800;letter-spacing:0.4em;
    padding:0.9rem;border-radius:8px;border:1px solid var(--border);
}

/* Invite-code gate */
.lat-gate{
    max-width:440px;margin:2rem auto;padding:2.25rem 2rem;
    background:var(--card);border:1px solid var(--border);border-radius:16px;
    text-align:center;
}
.lat-gate-eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:0.25em;text-transform:uppercase;margin:0 0 0.6rem}
.lat-gate-h2{font-family:'Space Grotesk',Inter,sans-serif;font-size:1.6rem;font-weight:700;letter-spacing:-0.02em;margin:0 0 0.6rem;color:var(--text)}
.lat-gate-sub{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 1.5rem}
#lat-gate-form{display:flex;gap:0.6rem;flex-direction:column;align-items:stretch}
#lat-gate-input{
    background:#121A2B;border:2px solid var(--border);color:var(--text);
    padding:0.9rem 1rem;border-radius:8px;font-size:22px;font-weight:700;
    letter-spacing:0.25em;text-align:center;text-transform:uppercase;
    font-family:Menlo,Consolas,monospace;outline:none;
}
#lat-gate-input:focus{border-color:var(--blue)}
#lat-gate-form button{padding:0.95rem 1.5rem;font-size:13px}

/* Welcome banner */
.lat-welcome-banner{
    max-width:760px;margin:1rem auto;padding:0.9rem 1.25rem;
    background:linear-gradient(135deg,rgba(0,153,255,0.12),rgba(0,153,255,0.05));
    border:1px solid rgba(0,153,255,0.35);border-radius:10px;
    color:var(--text);font-size:14px;
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.lat-welcome-banner strong{color:#7FBFFF}
.lat-welcome-clear{
    background:transparent;border:1px solid rgba(255,255,255,0.18);color:var(--muted);
    border-radius:5px;padding:0.35rem 0.75rem;font-size:11px;cursor:pointer;
    letter-spacing:0.05em;
}
.lat-welcome-clear:hover{border-color:var(--blue);color:var(--text)}

/* Bottom bar */
.lat-bar{
    position:sticky;bottom:0;
    background:var(--card);border:1px solid var(--border);
    border-radius:14px;padding:1rem 1.5rem;margin:1.5rem auto 0;
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    max-width:900px;flex-wrap:wrap;
    box-shadow:0 -4px 24px rgba(0,0,0,0.3);
}
.lat-bar-info{color:var(--muted);font-size:14px}
.lat-bar-info strong{color:var(--text);font-size:18px;margin-left:6px}

.lat-btn-primary{
    background:var(--orange);color:#fff;border:none;border-radius:6px;
    padding:0.85rem 1.75rem;font-size:13px;font-weight:700;letter-spacing:0.1em;
    text-transform:uppercase;cursor:pointer;transition:all 0.15s;
}
.lat-btn-primary:hover:not(:disabled){background:#D38033;transform:translateY(-1px)}
.lat-btn-primary:disabled{opacity:0.4;cursor:not-allowed}
.lat-btn-outline{
    background:transparent;color:var(--text);border:1.5px solid var(--border);
    border-radius:6px;padding:0.8rem 1.5rem;font-size:13px;font-weight:700;
    letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;
}
.lat-btn-outline:hover{border-color:var(--blue)}

/* Checkout */
.lat-checkout{max-width:560px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:2rem}
.lat-hold-banner{background:rgba(232,178,61,0.12);border:1px solid rgba(232,178,61,0.4);color:var(--yellow);padding:0.7rem 1rem;border-radius:8px;text-align:center;font-size:13px;margin:0 0 1.25rem}
.lat-summary{background:#121A2B;border-radius:8px;padding:1rem 1.25rem;margin:0 0 1.25rem}
.lat-summary-row{display:flex;justify-content:space-between;padding:0.5rem 0;color:var(--muted);font-size:14px;border-bottom:1px solid var(--border)}
.lat-summary-row:last-child{border-bottom:none}
.lat-summary-row strong{color:var(--text)}
.lat-summary-total strong{color:var(--text);font-size:18px}

.lat-field{display:block;margin:0 0 0.85rem}
.lat-field span{display:block;font-size:12px;color:var(--muted);margin:0 0 0.3rem;font-weight:600}
.lat-field input{
    width:100%;background:#121A2B;border:1px solid var(--border);color:var(--text);
    padding:0.7rem 0.85rem;border-radius:6px;font-size:14px;font-family:inherit;
}
.lat-field input:focus{outline:none;border-color:var(--blue)}
.lat-fineprint{color:var(--dim);font-size:12px;line-height:1.6;margin:1rem 0}

.lat-bar-checkout{position:static;box-shadow:none}
.lat-error{background:rgba(220,80,80,0.12);border:1px solid rgba(220,80,80,0.4);color:#FF9090;padding:0.7rem 1rem;border-radius:6px;margin-top:1rem;font-size:13px}

/* Thank you */
.lat-thanks-wrap{max-width:560px;margin:3rem auto;padding:0 1rem;text-align:center}
.lat-thanks-card{background:var(--card,#0E1525);border:1px solid var(--border,#1A2540);border-radius:14px;padding:2.5rem 2rem;color:#E8ECF1;font-family:Inter,sans-serif}
.lat-thanks-h1{font-size:1.8rem;margin:0 0 1rem;color:#E8ECF1}
.lat-thanks-sub{color:#C8CDD8;line-height:1.7;margin:0 0 0.8rem}

@media (max-width:640px){
    .lat-map{padding:1.25rem 0.75rem;border-radius:14px}
    .lat-seat{width:18px;height:18px}
    .lat-seat.is-selected{font-size:8px}
    .lat-row-label{width:22px;font-size:10px}
    .lat-subsection{gap:4px;padding:0 5px}
    .lat-row{gap:8px}
    .lat-section-aisle{width:8px;margin:0 2px}
    .lat-bar{flex-direction:column;text-align:center}
    .lat-checkout{padding:1.5rem 1rem}
}
