*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#261014,#0b0b0d 36%);color:#fff;font-family:Arial,sans-serif}.wrap{max-width:1000px;margin:auto;padding:18px}.brand{text-align:center;padding:12px}.brand b,.red{color:#d71920}.eyebrow{font-size:11px;letter-spacing:2px;color:#aaa}.card{background:#fff;color:#111;border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 8px 30px #0003}input,select,button{width:100%;padding:13px;margin:5px 0;border-radius:9px;border:1px solid #bbb;font-size:15px}button{background:#b4000b;color:#fff;border:0;font-weight:800;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.cell{min-height:76px;border:2px solid #111;border-radius:7px;padding:4px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:11px}.marked{background:#b4000b;color:#fff}.free{background:#222;color:#fff}.song{padding:11px;border:1px solid #ddd;border-radius:8px;margin:6px 0;cursor:pointer}.played{background:#fee2e2;border-color:#b4000b}.claim{border-left:5px solid #b4000b;padding:10px;background:#f6f6f6;margin:7px 0}.winner{border-left-color:#147a31;background:#e9f8ed}.row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{background:#f3f3f3;padding:12px;border-radius:10px;text-align:center}.stat b{display:block;font-size:22px}.muted{color:#666;font-size:12px}.toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.good{background:#147a31}.warn{background:#b86b00}.dark{background:#333}.danger{background:#8b0000}.hidden{display:none!important}.statuspill{display:inline-block;padding:6px 9px;border-radius:999px;background:#eee;font-size:11px;font-weight:800}.overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;padding:18px;z-index:10}.modal{background:#fff;color:#111;max-width:430px;padding:24px;border-radius:18px;text-align:center}.bigmsg{font-size:28px;font-weight:900}.now{padding:12px;border-radius:10px;background:#111;color:#fff;margin:10px 0}.cardno{font-size:12px;color:#777}@media(max-width:650px){.cell{min-height:62px;font-size:9px}.toolbar,.row,.stats{grid-template-columns:1fr 1fr}}
.guest-logo{display:block;width:min(42vw,190px);max-height:145px;object-fit:contain;margin:10px auto 4px}
.guest-presents{text-align:center;letter-spacing:5px;font-weight:800;color:#c9c9c9;font-size:14px;margin:0 auto 10px}
@media(max-width:600px){.hero h1{font-size:44px!important;line-height:1!important;margin:12px 0 30px!important}.guest-logo{width:145px;max-height:120px}.guest-presents{font-size:12px;letter-spacing:4px}}
.resume-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.resume-row input,.resume-row button{margin:0}.muted{font-size:13px;color:#777;margin-top:8px}@media(max-width:650px){.resume-row{grid-template-columns:1fr}}

.cell.locked:not(.free){pointer-events:none;cursor:not-allowed;opacity:.72}

.song-status-box{margin:14px 0;padding:14px 16px;border-radius:14px;background:#111;color:#fff;text-align:center}
.song-status-label{font-size:11px;letter-spacing:2px;font-weight:800;color:#e3262e;margin-bottom:4px}
.song-status-box #nowPlaying{font-size:18px;font-weight:800}
.song-status-box .last-label{margin-top:12px;color:#aaa}
.song-status-box #lastPlayedSong{font-size:14px;color:#ddd}

.theme-admin{padding:14px 0;border-bottom:1px solid #333}.theme-editor{margin-top:18px;padding-top:18px;border-top:1px solid #444}.song-edit-row,.song-edit-head{display:grid;grid-template-columns:1fr 1fr 48px;gap:8px;align-items:center;margin:7px 0}.song-edit-head{font-size:12px;color:#aaa}.song-edit-row input{margin:0}.song-edit-row button{margin:0;padding:10px}.song small{display:block;opacity:.7;margin-top:3px;font-size:12px}

.csv-tools{margin:14px 0 20px}.csv-preview{margin-top:12px;padding:16px;border:1px solid #444;border-radius:12px;background:#151515}.csv-stats{margin:10px 0}.csv-sample{margin:12px 0;padding:10px;background:#0d0d0d;border-radius:8px;max-height:230px;overflow:auto}.csv-sample div{padding:4px 0}.csv-preview select{width:100%;margin:8px 0 12px}
