nav a{font-size:12px;padding:12px 17px;display:inline-block;border-radius:28px;color:#ddcce3}nav a.active{background:linear-gradient(110deg,#ff78d5,#ffbd8e);color:#260e31;font-weight:700}.connection{color:#94e9cd;font-size:11px;white-space:nowrap}.connection.offline{color:#ffd075}.join-banner{border:1px solid #85599970;background:#28163f;padding:24px;border-radius:16px;display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin-bottom:30px;font-size:13px}.join-banner>span:first-child{flex:1;min-width:240px;line-height:1.8}.join-banner .small{width:100%}.join-banner form{display:flex;gap:9px}.join-banner input{width:165px;padding:13px;background:#130c24;border:1px solid #85599a;color:white;border-radius:10px;font-size:13px}.join-banner .primary{font-size:12px}.access-page,.access-card{max-width:680px;margin:60px auto;padding:38px;background:linear-gradient(140deg,#301b42,#19102e);border:1px solid #85599970;border-radius:24px;line-height:1.8}.access-page h1{font:800 46px/1.1 Outfit,sans-serif;letter-spacing:-1px}.access-page p,.access-card p{color:var(--muted)}.access-page .primary,.access-card .primary{display:inline-flex;margin:20px 0 10px;align-items:center;justify-content:center}.access-card .success-icon{margin-bottom:25px}.back-link{display:block;margin:20px 0;color:#d4b6e7;font-size:12px}.wide{display:block;width:100%;margin-top:12px}.center{text-align:center}.form-error{font-size:12px;color:#ffb3cb!important;margin:12px 0 0!important}.form-error:empty{display:none}.position-badge{font:800 36px Outfit;color:#ffb3e5;margin-right:8px}.request-status{font-size:11px;color:#ffc582}.request-status.singing{color:#8aeacf}.request-status.done{color:#b4a1c9}.mine-row .mine{float:right}.session-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.session-list .access-card{grid-column:1/-1;margin:0;max-width:none}.event-card{padding:27px;border:1px solid #85599970;border-radius:18px;background:linear-gradient(130deg,#301b42,#1b112d);transition:transform .18s,border-color .18s}.event-card:hover{transform:translateY(-3px);border-color:#ff92db}.event-card h2{margin:18px 0 8px;font-size:27px}.event-card p{font-size:12px;color:var(--muted)}.event-card-bottom{display:flex;gap:16px;justify-content:space-between;padding-top:20px;margin-top:22px;border-top:1px solid #6b407b66;font-size:11px}.event-card-bottom strong{color:#ffb4e8}.stats small{font-size:12px;font-weight:400;color:var(--muted)}.history{margin-top:28px;border:1px solid var(--line);padding:20px;border-radius:14px}.history summary{cursor:pointer;font-size:12px;color:var(--muted)}.history p{font-size:12px;color:var(--muted)}.danger{color:#ffa5c2}.qr-preview{max-width:230px;margin:24px auto;background:white;padding:4px;border-radius:12px}.qr-preview svg,.qr-live svg{display:block;width:100%;height:auto;fill:#000;background:white}.qr-live{background:#fff;padding:4px;border-radius:10px;overflow:hidden}.screen .screen-venue{color:#ffb7e3;font-size:15px;margin-top:22px;font-weight:600}.qrbox .screen-code{color:#4e2857;font-size:13px;letter-spacing:2px;margin-top:13px;font-weight:700}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0,0,0,0);overflow:hidden}.dialog .selected .artist{margin-top:7px;line-height:1.6}.dialog .mine{min-height:44px}.fullscreen .connection{display:none}.session-strip>div:first-child p{display:block}.screen-code{overflow-wrap:anywhere}
@media(max-width:800px){.connection{font-size:9px}nav a{padding:10px 12px;font-size:11px}.session-list{grid-template-columns:1fr}.session-strip>div:first-child p{display:none}}
@media(max-width:650px){header{flex-wrap:nowrap}.connection{font-size:0}.connection:before{content:'●';font-size:10px}.connection.offline:before{color:#ffd075}.brand{flex:1}.access-page,.access-card{margin:25px 0;padding:25px}.access-page h1{font-size:36px}.access-page{margin:25px 14px}.join-banner{padding:20px;gap:14px}.join-banner form{width:100%}.join-banner input{flex:1;min-width:0;width:100px;font-size:16px}.join-banner .primary{padding:10px 13px}.event-card{padding:23px}.event-card-bottom{flex-direction:column;gap:13px}.session-strip .session-bottom{align-items:flex-end}.screen .screen-venue{font-size:14px}nav a{padding:10px;font-size:10px}.admin-top h1{font-size:29px;overflow-wrap:anywhere}.admin-top{gap:10px}.admin-top .primary{font-size:10px;padding:10px;max-width:130px}.stats small{font-size:9px}.queue .details{min-width:150px}footer{flex-wrap:wrap}footer>span:last-child{width:100%;font-size:9px}}
.venue-picker{display:block}.venue-picker h2{margin:12px 0;font-family:Outfit,sans-serif;font-size:28px}.venue-picker>div>p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 19px}.venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.venue-option{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #a663b4a0;border-radius:13px;background:linear-gradient(120deg,#382046,#20152f);padding:18px;color:var(--white);min-height:90px;transition:transform .15s,border-color .15s}.venue-option:hover{transform:translateY(-2px);border-color:var(--pink)}.venue-option strong{font-size:15px;display:block}.venue-option small{display:block;font-size:11px;color:var(--muted);margin-top:7px;line-height:1.5}.venue-option .venue-open{color:#94e9cd}.venue-option .venue-paused{color:#ffd075}.venue-arrow{font-size:25px;color:#ffb5eb}.qr-live img,.qr-preview img{width:100%;height:auto;display:block;background:white;border-radius:8px}.change-venue{font-size:10px;color:#ffc5e9;text-decoration:underline}.admin-top-actions{display:flex;gap:10px;align-items:center}.no-event{padding:12px 0;line-height:1.8}.dialog .venue-grid{grid-template-columns:1fr}.dialog .venue-option{min-height:80px}@media(max-width:650px){.venue-grid{grid-template-columns:1fr}.venue-option{padding:17px}.venue-picker h2{font-size:24px}.admin-top-actions{flex-direction:column;align-items:stretch;flex-shrink:0}.admin-top-actions .mine{font-size:10px;min-height:42px}.change-venue{display:inline-block;margin-top:8px}.session-strip>div:first-child .change-venue{max-width:145px}}
.no-event-card{max-width:760px;margin:30px auto;text-align:center;padding:36px 30px 40px;border:1px solid #a663b470;background:linear-gradient(135deg,#301c41,#18122e);border-radius:22px}.no-event-icon{display:inline-grid;place-items:center;width:64px;height:64px;border:1px solid #c37ac48a;color:#ff9ee0;background:#51295355;border-radius:50%;font-size:34px;margin-bottom:24px}.no-event-card .eyebrow{justify-content:center}.no-event-card h2{font-family:Outfit;font-size:32px;line-height:1.2;margin:18px 0}.no-event-card p{font-size:14px;line-height:1.8;color:var(--muted);max-width:470px;margin:0 auto 24px}@media(max-width:650px){.no-event-card{padding:28px 22px}.no-event-card h2{font-size:27px}.no-event-card p{font-size:13px}}
.hero h1.one-line-title{font-size:clamp(26px,3.8vw,58px);letter-spacing:-1.8px;white-space:nowrap;line-height:1.15}.hero h1.one-line-title em,.screen h1.one-line-title em{display:inline}.hero h1.one-line-title .title-star{font-size:.5em;margin-left:12px;vertical-align:middle}.screen h1.one-line-title{font-size:clamp(24px,2.8vw,42px);white-space:nowrap;letter-spacing:-1.2px;line-height:1.2}@media(max-width:650px){.hero h1.one-line-title{font-size:clamp(22px,7vw,32px);letter-spacing:-.8px}.hero h1.one-line-title .title-star{margin-left:8px}.screen h1.one-line-title,.fullscreen .screen h1.one-line-title{font-size:clamp(22px,7vw,32px);letter-spacing:-.8px}}

/* Partner marks at opposite corners of the stage. */
.corner-logo{position:absolute;z-index:2;display:block;width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 3px 10px #0009);pointer-events:none}.corner-logo-joss{top:18px;left:18px}.corner-logo-djm{bottom:18px;right:18px}.stage-copy{padding-bottom:94px}.stage-copy .equalizer{right:100px}.screen{position:relative;padding-top:108px;padding-bottom:108px}.screen>.corner-logo{width:82px;height:82px}.screen .corner-logo-joss{top:20px;left:20px}.screen .corner-logo-djm{bottom:20px;right:20px}
@media(max-width:650px){.corner-logo{width:55px;height:55px}.corner-logo-joss{top:12px;left:12px}.corner-logo-djm{bottom:12px;right:12px}.stage-copy{padding-bottom:78px}.screen{padding-top:165px;padding-bottom:92px}.screen>.corner-logo{width:58px;height:58px}.screen .corner-logo-joss{top:12px;left:12px}.screen .corner-logo-djm{bottom:12px;right:12px}.fullscreen .screen{padding-top:130px;padding-bottom:92px}}
.admin-auth-form{display:flex;flex-direction:column;margin-top:24px;gap:9px}.admin-auth-form label{margin-top:12px;font-size:13px;color:#eee0fa}.admin-auth-form input{width:100%;min-height:48px;background:#120b23;border:1px solid #855999;color:#fff;border-radius:10px;padding:13px;font:inherit;font-size:16px}.admin-auth-form input:focus{outline:2px solid #ff8bd9;outline-offset:2px}.admin-auth-form .primary{margin-bottom:0;min-height:48px}.admin-auth-form .form-error:empty{display:none}

.archive-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px}.archive-toggle.selected{border-color:#ff9cde;background:#4a2450;color:#ffcfed}.archive-count{background:#ffffff15;border-radius:6px;padding:2px 6px;font-size:10px}.admin-top-actions{flex-wrap:wrap;justify-content:flex-end}.logout-link{background:none;border:0;cursor:pointer;font:inherit;font-size:12px;padding:0}@media(max-width:650px){.admin-top-actions{max-width:180px;gap:8px}.admin-top-actions .archive-toggle{max-width:none}}

/* Catalogue and a dedicated, colourful suggestion sidebar. */
.catalogue-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;grid-template-areas:"heading suggestion" "search suggestion" "filters suggestion" "songs suggestion" "more suggestion" "note suggestion";column-gap:24px;align-items:start}.catalogue-layout>.section-top{grid-area:heading;min-width:0}.catalogue-layout>.search{grid-area:search;min-width:0}.catalogue-layout>.filters{grid-area:filters;min-width:0}.catalogue-layout>#songs{grid-area:songs;min-width:0}.catalogue-layout>#load-more{grid-area:more}.catalogue-layout>.bottom-note{grid-area:note}.suggestion-box{grid-area:suggestion;position:sticky;top:24px;align-self:start;margin:0;border:1px solid #ffb1e780;border-radius:20px;padding:24px 21px;background:radial-gradient(circle at 100% 0,#fb70cb77,transparent 60%),linear-gradient(145deg,#973eac,#582185);box-shadow:0 12px 35px #220c3f55}.suggestion-badge{font-size:9px;font-weight:800;letter-spacing:2px;color:#ffe3a4}.suggestion-box h2{font:800 27px/1.1 Outfit,sans-serif;letter-spacing:-.5px;color:white;margin:17px 0 13px}.suggestion-box>p{color:#f7dff7;font-size:12px;line-height:1.7;margin:0 0 20px}.suggestion-box form{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:17px}.suggestion-box label{font-size:11px;font-weight:600;color:#fff1fc;display:grid;gap:8px}.suggestion-box input{width:100%;min-width:0;min-height:46px;padding:12px;border:1px solid #ffdcf566;border-radius:10px;background:#210e4380;color:#fff;font:inherit;font-size:16px}.suggestion-box input::placeholder{color:#dfb9e4}.suggestion-box input:focus{outline:2px solid #ffe09a;outline-offset:2px}.suggestion-box button{min-height:46px;white-space:normal;width:100%;background:#ffe1a2;border-color:#ffe1a2;color:#481c5b;font-weight:700;font-size:11px}.suggestion-box button:hover{background:#fff0cd;color:#481c5b}.suggestion-box .suggestion-hint{font-size:10px;color:#e6c6ed;line-height:1.6;margin-bottom:0}.suggestion-feedback{grid-column:1/-1;color:#d2ffd9;font-size:12px;line-height:1.6;margin:0}.suggestion-feedback:empty{display:none}
@media(min-width:1001px) and (max-width:1250px){.catalogue-layout>#songs{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-layout .section-top{gap:12px;align-items:flex-start}.catalogue-layout .section-top h2 span{display:block;margin:7px 0 0}}
@media(max-width:1000px){.catalogue-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "search" "suggestion" "filters" "songs" "more" "note"}.suggestion-box{position:static;margin-top:16px;padding:22px}.suggestion-box h2{font-size:24px;margin:12px 0}.suggestion-box h2 br{display:none}.suggestion-box h2 br:after{content:' '}.suggestion-box form{grid-template-columns:1fr 1fr}.suggestion-box form button{grid-column:1/-1}.suggestion-box .suggestion-hint{margin-top:0}}
@media(max-width:650px){.suggestion-box form{grid-template-columns:1fr}.suggestion-box{border-radius:16px;padding:20px}.suggestion-box h2{font-size:24px}}
.suggestion-admin{border:1px solid var(--line);border-radius:14px;padding:20px;margin-top:20px}.suggestion-admin h2{font-size:19px;margin:0 0 10px}.suggestion-admin article{border-top:1px solid var(--line);padding:13px 0;display:grid;gap:5px;font-size:13px;overflow-wrap:anywhere}.suggestion-admin article span{color:var(--muted);font-size:12px}

.suggestion-admin article{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px}.suggestion-admin article>div:first-child{display:grid;gap:5px}.suggestion-admin article small{color:#8fe7bb;font-size:11px}.suggestion-admin article.processed{opacity:.7}.suggestion-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.suggestion-check{display:flex;gap:8px;align-items:center;font-size:12px;cursor:pointer;min-height:44px}.suggestion-check input{width:22px;height:22px;accent-color:#ff8bd9;margin:0}.suggestion-tools .mine{font-size:10px;min-height:44px}.dialog select{width:100%;padding:13px;border:1px solid #855999;border-radius:10px;background:#150d25;color:#fff;font-size:16px}.dialog input[type=file]{font-size:12px;padding:14px;min-height:50px}.upload-progress{display:block;width:100%;height:14px;margin-top:20px;accent-color:#ff8bd9}.upload-progress[hidden]{display:none}.upload-status{font-size:12px;color:#9cedcf;line-height:1.6}.karaoke-video{width:100%;max-height:60dvh;background:#000;border-radius:12px;margin-top:12px}.added-song-list{margin-top:22px;max-height:46dvh;overflow:auto}.added-song-list article{border-top:1px solid var(--line);padding:17px 0}.added-song-list article p{font-size:12px}.added-song-list .mine{margin-right:8px;margin-top:7px;font-size:11px}@media(max-width:650px){.suggestion-admin article{grid-template-columns:1fr}.suggestion-tools{justify-content:flex-start}.admin-top .admin-top-actions{max-width:180px}.admin-top-actions .mine{min-height:44px;font-size:10px}}

.dialog [hidden]{display:none!important}

/* Suggestions open on demand from a floating button. */
.catalogue-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "search" "filters" "songs" "more" "note"}.suggestion-launcher{position:fixed;right:22px;bottom:max(20px,env(safe-area-inset-bottom));z-index:5;display:flex;align-items:center;gap:12px;padding:14px 19px;border:1px solid #ffc4ea;border-radius:22px 22px 6px 22px;background:linear-gradient(125deg,#ff82d5,#f6a5dc);color:#45123f;box-shadow:0 9px 35px #07031088;cursor:pointer;font-size:12px;font-weight:800;text-align:left;min-height:58px;max-width:calc(100vw - 32px)}.suggestion-launcher small{display:block;font-size:10px;font-weight:500;margin-top:3px}.suggestion-launcher:hover{filter:brightness(1.08);transform:translateY(-2px)}.suggestion-launcher:focus-visible{outline:3px solid #79e7ff;outline-offset:4px}.dialog:has(.suggestion-popover){background:linear-gradient(145deg,#963f9f,#592086);border-color:#ffc4ea}.dialog .suggestion-popover{position:static;grid-area:auto;margin:0;padding:0;background:none;border:0;box-shadow:none}.dialog .suggestion-popover h2{font-size:32px;margin:17px 0}.dialog .suggestion-popover form{grid-template-columns:1fr}.dialog .suggestion-popover button{margin-top:5px}.catalogue-layout .bottom-note{padding-bottom:65px}@media(min-width:1001px) and (max-width:1250px){.catalogue-layout>#songs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.suggestion-launcher{right:14px;bottom:max(14px,env(safe-area-inset-bottom));padding:12px 15px;gap:9px;min-height:52px;border-radius:18px 18px 5px 18px;font-size:11px}.suggestion-launcher small{font-size:9px}.dialog .suggestion-popover h2{font-size:29px}}

.modal:has(.suggestion-popover){background:transparent;backdrop-filter:none;align-items:flex-end;justify-content:flex-end;padding:20px}.dialog:has(.suggestion-popover){max-width:360px;margin-bottom:78px;max-height:calc(100dvh - 125px);box-shadow:0 18px 70px #0009}@media(max-width:650px){.modal:has(.suggestion-popover){padding:14px}.dialog:has(.suggestion-popover){max-width:100%;margin-bottom:70px;max-height:calc(100dvh - 112px)}}

.dialog .storage-unavailable{padding:15px;background:#543c24;border:1px solid #d7a65d88;color:#ffe0a5;border-radius:12px;font-size:12px;line-height:1.6}
