:root { color-scheme: dark; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #111014; color: #fff; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; background: radial-gradient(ellipse at 50% -15%, #4b171d 0, #1a1418 44%, #111014 80%); }
.screen { width: min(100%, 980px); min-height: 100vh; margin: auto; padding: clamp(20px, 5vw, 56px); display: flex; flex-direction: column; }
[hidden] { display: none !important; }
.home-actions { min-height: 38px; display: flex; justify-content: flex-end; }
.home-view, .form-view, .loading-view, .queue-view { flex: 1; }
.home-view { display: flex; flex-direction: column; justify-content: center; }
.venue-logo { display: block; width: min(180px, 46vw); height: auto; aspect-ratio: 1; object-fit: contain; margin: 0 auto 14px; }
.venue-title { margin: 0 0 18px; color: #e0444d; font-size: clamp(1.7rem, 5vw, 2.6rem); font-weight: 900; letter-spacing: .035em; line-height: 1.1; }
.home-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 28px auto; width: min(100%, 620px); }
.home-buttons:has(button[hidden]) { grid-template-columns: minmax(0, 1fr); max-width: 310px; }
.finished-banner { width: fit-content; margin: 24px auto 0; padding: 14px 22px; border: 1px solid #a94a51; border-radius: 10px; background: #431e23; color: #ffd4d4; font-size: clamp(1.1rem, 3vw, 1.6rem); font-weight: 900; letter-spacing: .08em; text-align: center; }
button { min-height: 58px; border: 0; border-radius: 12px; padding: 14px 22px; background: #b52e3b; color: white; font: inherit; font-size: 1.1rem; font-weight: 800; cursor: pointer; }
button:hover { background: #d13b49; }
button:disabled { background: #292428; border: 1px solid #51474b; color: #d4c9cc; cursor: not-allowed; }
button.secondary:disabled { background: #292428; }
button:focus-visible { outline: 3px solid #efb777; outline-offset: 3px; }
button.secondary { background: #372328; border: 1px solid #75434a; }
button.secondary:hover { background: #4a2b32; }
.form-view .heading p:not(.eyebrow), .loading-view > p:not(.eyebrow) { color: #d6d0d0; line-height: 1.5; }
#registration-form { display: block; width: 100%; min-height: 760px; margin: 20px 0 10px; border: 1px solid #593137; border-radius: 10px; background: #fff; }
.form-note { color: #d6d0d0; line-height: 1.5; }
.loading-view { display: flex; min-height: 65vh; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.loading-view h1 { font-size: clamp(1.8rem, 6vw, 3.5rem); }
.loading-view > p:not(.eyebrow) { max-width: 38rem; }
.heading { text-align: center; padding-bottom: 22px; border-bottom: 1px solid #593137; }
.eyebrow { margin: 0; color: #efb777; font-size: .78rem; font-weight: 800; letter-spacing: .16em; }
h1 { margin: 10px 0; font-size: clamp(2rem, 7vw, 4.4rem); line-height: 1.05; overflow-wrap: anywhere; }
.status { margin: 12px 0 0; color: #d6d0d0; font-size: clamp(1rem, 2.3vw, 1.4rem); }
.registration { margin: 8px 0 0; color: #f3bf82; font-size: clamp(.95rem, 2vw, 1.2rem); font-weight: 700; }
.current { margin: 22px 0; padding: 20px 24px; border-left: 5px solid #d84750; background: #29191d; }
.current-name { margin: 8px 0 0; font-size: clamp(1.8rem, 5vw, 3.2rem); font-weight: 800; overflow-wrap: anywhere; }
.queue-section { flex: 1; }
.queue-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
h2 { margin: 0; font-size: clamp(1.4rem, 3vw, 2rem); }
.count { color: #c7b9b9; font-size: 1rem; }
.queue { list-style: none; margin: 12px 0; padding: 0; }
.queue li { display: flex; align-items: baseline; gap: 16px; padding: 14px 4px; border-bottom: 1px solid #342a2d; font-size: clamp(1.2rem, 3vw, 1.8rem); overflow-wrap: anywhere; }
.position { min-width: 2.1em; color: #efb777; font-weight: 850; font-variant-numeric: tabular-nums; }
.empty { color: #d6d0d0; font-size: 1.15rem; padding: 18px 0; }
footer { min-height: 28px; margin-top: 20px; color: #bdb3b3; text-align: center; font-size: .85rem; }
footer .privacy-link { margin-left: 14px; color: #efb777; }
.privacy-copy { flex: 1; color: #e4dddd; font-size: 1.05rem; line-height: 1.7; }
.privacy-copy h2 { margin: 28px 0 8px; color: #efb777; font-size: 1.25rem; }
.privacy-copy p { margin: 12px 0; }
.privacy-page footer a { color: #efb777; }
.stale { color: #ffc47e; }
.error { color: #ff9a9a; }
@media (max-width: 560px) {
  .home-buttons { grid-template-columns: 1fr; }
  #registration-form { min-height: 820px; }
}
