:root{
  --ink:#2a211b;
  --muted:#81766a;
  --cream:#f4eee4;
  --paper:#fffdf8;
  --line:#dfd4c5;
  --red:#8f3f3a;
  --red-dark:#6e302d;
  --olive:#687248;
  --gold:#b58b4e;
  --brown:#765b42;
  --shadow:0 16px 40px rgba(49,33,22,.1)
}
body{font-family:"Trebuchet MS","Segoe UI",sans-serif}
.greeting h1,.page-heading h1,.profile-header h1,.section-heading h2,.now-card h2,.modal h2{font-family:Georgia,"Times New Roman",serif}
.kicker{color:var(--brown)}
.wordmark strong{color:var(--red)}
.event-switcher b{color:var(--olive)}
.vote-button,.wide-button,.request-hero{background:var(--olive)}
.vote-button:hover,.wide-button:hover,.request-hero:hover{background:#56613b}
.wide-button.secondary{color:var(--olive);border-color:var(--olive)}
.request-hero small{color:#e4ead6}
.vote-button.voted{background:var(--brown)}
.rank,.queue-votes strong,.queue-vote-pulse strong{color:var(--olive)}
.event-choice.selected{border-color:var(--olive)}
.event-choice b,.favourites b,.search-result b{color:var(--brown)}
.profile-avatar{background:var(--brown)}
.bottom-nav button.active{color:var(--olive)}
.add-library{border-color:var(--olive);color:var(--olive)}
.spotify-setup-help{border-color:#d2c5a8;background:#f5efdf}
.auth-gate-card>button,.auth-form>button{background:var(--olive);box-shadow:0 10px 18px rgba(104,114,72,.2)}
.auth-gate-card>button:hover,.auth-form>button:hover{background:#56613b;box-shadow:0 13px 22px rgba(86,97,59,.24)}
.gate-actions{display:grid;gap:9px;margin-top:20px}.gate-actions button{width:100%;margin-top:0}.gate-actions button:first-child{background:var(--olive);color:#fff;box-shadow:0 10px 18px rgba(104,114,72,.2)}.gate-actions button:first-child:hover{background:#56613b;box-shadow:0 13px 22px rgba(86,97,59,.24)}.gate-actions .gate-learn-more{background:transparent;color:var(--brown);border:1px solid rgba(104,114,72,.35);box-shadow:none}.gate-actions .gate-learn-more:hover{background:var(--cream);color:var(--brown);box-shadow:none}
.gate-actions{gap:10px}.gate-actions button{min-height:46px;border-radius:8px;font-size:13px}.gate-actions .gate-learn-more{background:var(--paper);border-color:var(--line);color:var(--olive)}
.public-info-backdrop{place-items:center;padding:18px}.public-info-modal{max-height:min(92vh,760px);overflow:auto;padding:28px}.public-intro{color:var(--muted);font-size:14px;line-height:1.6;max-width:580px;margin:0 0 22px}.audience-grid{display:grid;gap:10px}.audience-grid article{display:flex;gap:13px;align-items:flex-start;padding:14px;background:var(--cream);border:1px solid var(--line);border-radius:10px}.audience-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff;font-size:10px;font-weight:900;background:var(--olive)}.audience-mark.dj{background:var(--brown)}.audience-mark.venue{background:var(--gold);color:var(--ink)}.audience-grid h3{font-size:15px;margin:1px 0 5px}.audience-grid p{color:var(--muted);font-size:12px;line-height:1.5;margin:0}.public-info-footer{display:flex;align-items:center;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--brown);font-size:12px;font-weight:800}.public-info-footer .wide-button{width:auto;margin:0;margin-left:auto;padding:11px 14px}@media(max-width:520px){.public-info-modal{padding:23px}.public-info-footer{display:grid;gap:10px}.public-info-footer .wide-button{width:100%;margin:0}}
.profile-header .profile-signout,.auth-secondary{color:var(--brown)}
.dj-track:not(.current) .move-up,.dj-track:not(.current) .move-down,.dj-track:not(.current) .lock-toggle{background:var(--brown);border-color:var(--brown)}
.dj-track:not(.current) .move-up:hover,.dj-track:not(.current) .move-down:hover,.dj-track:not(.current) .lock-toggle:hover{background:#5d4633;border-color:#5d4633}
.dj-event-controls .danger{background:var(--red)}
.profile-notifications{margin:0 0 30px}.profile-notifications .section-heading{margin-bottom:10px}.notification-item{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.notification-item p{margin:0;color:var(--ink);font-size:12px;line-height:1.4}.notification-item .live-dot{width:6px;height:6px;box-shadow:none}
.song-row{grid-template-columns:30px minmax(0,1fr) 42px 58px 28px}.star-toggle{border:0;background:transparent;color:var(--brown);font-size:24px;line-height:1;padding:0;cursor:pointer}.star-toggle.active{color:var(--gold)}.star-toggle:focus-visible{outline:2px solid var(--olive);outline-offset:2px;border-radius:4px}
@media(max-width:430px){.song-row{grid-template-columns:24px minmax(0,1fr) 36px 53px 24px;gap:6px}.star-toggle{font-size:22px}}
.requests-panel .approve-request{min-width:78px;width:auto;white-space:nowrap;background:var(--olive);color:#fff}.requests-panel .dismiss-request{background:var(--brown);color:#fff}
.status-pill{background:var(--gold)}
body:not(.dj-enabled) .mode-chip,body:not(.dj-enabled) #djView{display:none!important}
.profile-settings-panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:28px}.profile-settings-panel .section-heading{margin-bottom:16px}.profile-settings-panel h2,.account-actions h2{font:normal 24px Georgia,serif;margin:0}.settings-saved{color:var(--olive);font-size:11px;font-weight:800}.profile-form{display:grid;gap:12px}.profile-form label{display:grid;gap:6px}.profile-form label>span{color:var(--muted);font-size:11px;font-weight:800}.profile-form .big-input{margin:0}.profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-form input[readonly]{color:var(--muted);background:#eee8de}.profile-form .wide-button{margin-top:4px}.account-actions{border-top:1px solid var(--line);margin-top:32px;padding:24px 0 10px}.account-actions h2{margin-bottom:5px}.signout-prominent{margin-top:16px;width:100%;border:1px solid var(--red);border-radius:8px;background:var(--red);color:#fff;padding:13px;font-weight:850;cursor:pointer;box-shadow:0 8px 16px rgba(143,63,58,.18)}.signout-prominent:hover{background:var(--red-dark)}
.dj-setup-banner{display:grid;gap:18px;background:var(--paper);border:1px solid #d6c8af;border-left:4px solid var(--olive);border-radius:12px;padding:18px;margin:18px 0 16px}.dj-setup-banner.has-error{border-left-color:var(--red);background:#fff8f5}.dj-setup-banner h2{font:normal 24px Georgia,serif;margin:0 0 5px}.dj-setup-banner p:not(.kicker){color:var(--muted);font-size:13px;line-height:1.5;margin:0;max-width:760px}.dj-setup-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dj-setup-steps button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--cream);color:var(--brown);padding:10px;text-align:left;font-size:11px;font-weight:800;cursor:pointer}.dj-setup-steps button b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--brown);color:#fff;font-size:10px;flex:none}.dj-setup-steps button.complete{border-color:var(--olive);color:var(--olive)}.dj-setup-steps button.complete b{background:var(--olive)}.mode-chip{white-space:nowrap}
.audience-card{width:100%;display:flex;gap:13px;align-items:flex-start;padding:14px;background:var(--cream);border:1px solid var(--line);border-radius:10px;text-align:left;cursor:pointer;color:var(--ink)}.audience-card:hover{border-color:var(--olive);background:#f0eadf}.audience-card>span:last-child{display:grid;gap:5px}.audience-card strong{font-size:15px}.audience-card small{color:var(--muted);font-size:12px;line-height:1.4}.audience-card b{color:var(--olive);font-size:11px}.public-page-view{max-width:900px;margin:auto}.public-page-view h1{font:normal 48px/1.05 Georgia,serif;max-width:700px;margin:0 0 14px}.public-back{border:0;background:none;color:var(--olive);font-size:12px;font-weight:800;padding:0;margin:0 0 42px;cursor:pointer}.public-lead{font-size:17px;line-height:1.6;color:var(--muted);max-width:720px;margin:0 0 32px}.public-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.public-feature-grid article{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px}.feature-number{color:var(--gold);font-size:11px;font-weight:900;letter-spacing:1px}.public-feature-grid h2{font:normal 23px Georgia,serif;margin:16px 0 7px}.public-feature-grid p{color:var(--muted);font-size:13px;line-height:1.55;margin:0}.public-cta{background:var(--ink);color:#fff;border-radius:12px;padding:24px;margin-top:28px}.public-cta h2{font:normal 28px Georgia,serif;margin:0 0 6px}.public-cta p{color:#cbbfb4;font-size:13px;margin:0 0 16px}.public-cta .wide-button{width:auto;margin:0;background:var(--gold);color:var(--ink)}.public-page .bottom-nav{display:none}.public-page .topbar{position:relative}
@media(max-width:520px){.profile-form-grid{grid-template-columns:1fr}}
@media(max-width:650px){.dj-setup-steps{grid-template-columns:1fr 1fr}.dj-setup-steps button{min-height:42px}}
@media(max-width:650px){.public-page-view h1{font-size:38px}.public-feature-grid{grid-template-columns:1fr}.public-back{margin-bottom:30px}.public-lead{font-size:15px}}
