:root{--bg:#100e0c;--bg-elev:#1a1714;--bg-elev-2:#241f1a;--line:#f4eee41a;--text:#f4eee4;--muted:#a39686;--gold:#e8b86d;--gold-dim:#e8b86d29;--danger:#e07a5f;--danger-dim:#e07a5f29;--ok:#7dcea0;--ok-dim:#7dcea029;--shadow:0 10px 40px #00000059;--radius:16px;--font:"Figtree", ui-sans-serif, system-ui, sans-serif;--display:"Fraunces", "Iowan Old Style", Georgia, serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg)}body{font-family:var(--font);background:radial-gradient(1200px 600px at 80% -10%, #e8b86d17, transparent 50%), radial-gradient(800px 500px at 0% 100%, #e07a5f12, transparent 50%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--gold)}.app-shell{width:min(560px,100%);padding:calc(20px + var(--safe-top)) 16px calc(32px + var(--safe-bottom));margin:0 auto}.display{font-family:var(--display);font-optical-sizing:auto;letter-spacing:-.02em}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:.72rem;font-weight:600}h1{font-family:var(--display);margin:0;font-size:clamp(2rem,8vw,2.7rem);font-weight:600;line-height:1.05}.subhead{color:var(--muted);margin:10px 0 0;font-size:1.05rem}.search{border:1px solid var(--line);background:var(--bg-elev);border-radius:14px;outline:none;width:100%;margin:22px 0 8px;padding:14px 16px;font-size:1rem}.search:focus{border-color:var(--gold)}.song-list{flex-direction:column;gap:8px;margin-top:14px;display:flex}.song-row,.req-row,.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius)}.song-row strong,.req-row strong,.up-next strong{font-size:1.02rem;display:block}.meta{color:var(--muted);margin-top:2px;font-size:.88rem}.notes{color:var(--gold);margin-top:4px;font-size:.78rem;font-weight:600}.btn{background:var(--gold);color:#1a1208;border:0;border-radius:12px;min-height:48px;padding:12px 14px;font-weight:700}.btn.secondary{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line)}.btn.ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.btn.danger{background:var(--danger);color:#1a0b08}.btn.ok{background:var(--ok);color:#0c1a12}.btn.vote{background:var(--gold-dim);min-width:72px;color:var(--gold);border:1px solid #e8b86d47}.btn.vote.on{background:var(--gold);color:#1a1208}.btn.wide{width:100%}.btn.sm{min-height:44px;padding:8px 12px;font-size:.9rem}.pill{background:var(--gold-dim);color:var(--gold);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.pill.ok{background:var(--ok-dim);color:var(--ok)}.pill.warn{background:var(--danger-dim);color:var(--danger)}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px;font-size:.82rem;font-weight:700}.live-card{background:linear-gradient(180deg, #2a221b, var(--bg-elev));padding:14px 16px}.live-card+.live-card{margin-top:8px}.footer-action{margin-top:22px}.empty{color:var(--muted);text-align:center;padding:28px 8px}.modal-backdrop{z-index:40;padding:12px 12px calc(12px + var(--safe-bottom));background:#080605b8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);background:#1c1916;border-radius:20px 20px 16px 16px;padding:20px}.modal h2{font-family:var(--display);margin:0 0 4px;font-size:1.5rem}label{color:var(--muted);margin:14px 0 6px;font-size:.85rem;font-weight:600;display:block}input[type=text],textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;outline:none;width:100%;padding:12px 14px}textarea{resize:vertical;min-height:84px}input:focus,textarea:focus{border-color:var(--gold)}.modal-actions{gap:8px;margin-top:16px;display:flex}.modal-actions .btn{flex:1}.toast{left:50%;bottom:calc(20px + var(--safe-bottom));border:1px solid var(--line);color:var(--text);z-index:50;box-shadow:var(--shadow);background:#2a241e;border-radius:999px;padding:12px 16px;font-weight:600;position:fixed;transform:translate(-50%)}.host{width:100%;max-width:520px;min-height:100dvh;padding:calc(10px + var(--safe-top)) 10px calc(12px + var(--safe-bottom));flex-direction:column;gap:8px;margin:0 auto;display:flex}.host-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.host-top h1{font-size:1.15rem;line-height:1.2}.live-dot{color:var(--ok);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:inline-flex}.live-dot i{background:var(--ok);border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulse;box-shadow:0 0 #7dcea0cc}@keyframes pulse{0%{box-shadow:0 0 #7dcea0b3}70%{box-shadow:0 0 0 8px #7dcea000}to{box-shadow:0 0 #7dcea000}}.toggle{border:1px solid var(--line);background:var(--bg-elev);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 10px;font-size:.82rem;font-weight:700;display:flex}.toggle.on{color:var(--ok);border-color:#7dcea066}.toggle.off{color:var(--danger);border-color:#e07a5f66}.switch{background:#3a332c;border-radius:999px;flex:0 0 42px;width:42px;height:26px;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .18s;position:absolute;top:3px;left:3px}.toggle.on .switch{background:var(--ok)}.toggle.on .switch:after{transform:translate(16px)}.tabs{background:var(--bg-elev);border:1px solid var(--line);top:var(--safe-top);z-index:5;border-radius:12px;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:4px;display:grid;position:sticky}.tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:9px;font-weight:700}.tabs button.active{background:var(--gold);color:#1a1208}.up-next{background:linear-gradient(#2d241c,#1a1714);border-color:#e8b86d47;padding:14px}.up-next h2{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 8px;font-size:.72rem}.up-next .title{font-family:var(--display);font-size:1.55rem;line-height:1.1}.up-next .actions,.row-actions{gap:8px;margin-top:12px;display:flex}.up-next .actions .btn{flex:1}.dedication{color:#ddd4c8;background:#ffffff0a;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:.92rem}.queue-item{grid-template-columns:28px 1fr auto;align-items:center;gap:8px;min-height:64px;padding:10px;display:grid}.rank{color:var(--muted);text-align:center;font-weight:800}.queue-item .row-actions{flex-direction:column;margin:0}.queue-item .btn{min-width:72px;min-height:40px;padding:6px 10px}.host-panel{flex-direction:column;gap:8px;display:flex}.host .search{margin:0;padding:10px 12px}.locked,.error-box{text-align:center;max-width:420px;margin:18vh auto;padding:24px 20px}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=400px){.host{padding-left:8px;padding-right:8px}.up-next .title{font-size:1.4rem}}.artist-icon{object-fit:cover;object-position:center center;background:#2a241e;border-radius:50%;flex:none;display:block;box-shadow:0 0 0 1px #f4eee41f}.song-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px 10px 10px;display:grid}.song-row .song-copy,.queue-card .song-copy,.setlist-item .song-copy{min-width:0}.song-row strong,.queue-card strong,.setlist-item strong,.up-next .title{overflow-wrap:anywhere;word-break:break-word}.queue-list{flex-direction:column;gap:8px;display:flex}.queue-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:28px auto minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.queue-card .queue-actions{grid-column:1/-1;gap:8px;margin-top:2px;display:flex}.queue-card .queue-actions .btn{flex:1}.requested-by{color:var(--text);margin-top:4px;font-size:.88rem;font-weight:600}.requested-by span{color:var(--muted);font-weight:500}.hint{color:var(--muted);margin:0 0 8px;font-size:.84rem;font-weight:500;line-height:1.35}label .rec{color:var(--gold);text-transform:none;letter-spacing:0;margin-left:6px;font-size:.78rem;font-weight:700}.name-field{min-height:48px;font-size:1.05rem;background:#161310!important;border-color:#e8b86d59!important}.toast{text-align:center;white-space:normal;max-width:min(92vw,420px)}.loading,.retry{color:var(--muted);text-align:center;padding:20px 8px}.setlist-item{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:56px;padding:10px;display:grid}.setlist-item .row-actions{flex-direction:row;grid-column:1/-1;margin:0}.setlist-item .row-actions .btn{flex:1;min-width:0}.host-queue-item.up-next{padding:14px;display:block}.host-queue-item.up-next .up-next-head{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;display:grid}.host-queue-item .actions{gap:8px;margin-top:12px;display:flex}.host-queue-item .actions .btn{flex:1;min-width:0}.host .queue-card{padding:10px}@media (width<=400px){.host .queue-card{grid-template-columns:24px auto minmax(0,1fr);gap:8px}.up-next .title{font-size:1.28rem}.btn.sm{padding:8px 10px}}
