:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f7f7fb;background:#0a0a0f;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% 0,#1b1640 0,#090912 40%,#050509 100%);min-height:100vh}.wrap{max-width:1280px;margin:auto;padding:22px}.top{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}.brand{font-weight:900;letter-spacing:.12em}.muted{color:#aaa9b8}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-top:18px}.card{grid-column:span 4;background:rgba(20,20,31,.88);border:1px solid #343448;border-radius:18px;padding:16px;box-shadow:0 16px 45px rgba(0,0,0,.25)}.wide{grid-column:span 8}.full{grid-column:1/-1}h1,h2,h3,p{margin-top:0}button,.button,select,input,textarea{font:inherit}button,.button{border:1px solid #44445a;background:#232332;color:white;border-radius:12px;padding:10px 13px;cursor:pointer;font-weight:750}button:hover{background:#303048}button.primary{background:#7c4dff;border-color:#9d7cff}button.danger{background:#7f2230;border-color:#ab384b}button.good{background:#176b4a;border-color:#258860}button.big{padding:17px 22px;font-size:18px}button.active{outline:2px solid #bca7ff}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}input,select,textarea{width:100%;border:1px solid #3b3b4d;border-radius:11px;background:#11111a;color:#fff;padding:11px}textarea{min-height:90px;resize:vertical}.pill{padding:5px 9px;border:1px solid #3b3b4d;border-radius:999px;background:#13131d;font-size:13px}.queue{display:flex;flex-direction:column;gap:9px;max-height:360px;overflow:auto}.msg{background:#101018;border:1px solid #303041;border-radius:12px;padding:11px}.msg strong{display:block;margin-bottom:4px}.urlbox{word-break:break-all;font-size:13px;background:#0c0c12;border-radius:9px;padding:9px;border:1px solid #2c2c38}.media{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border-bottom:1px solid #292936;padding:8px 0}.meter{height:10px;background:#161622;border-radius:999px;overflow:hidden}.meter>span{display:block;height:100%;background:linear-gradient(90deg,#7c4dff,#22d3ee);width:0}.guest-card{max-width:600px;margin:40px auto;background:rgba(17,17,27,.92);border:1px solid #34344a;border-radius:24px;padding:24px}.votegrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vote{padding:16px 10px}.small{font-size:12px}.success{color:#7ef0b8}.error{color:#ff8495}@media(max-width:900px){.card,.wide{grid-column:1/-1}.wrap{padding:14px}}
.birthdayLine{display:inline-block;margin:-6px 0 18px;padding:6px 10px;border:1px solid #45455c;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.12em;color:#d9d2ff;background:#151522}.vote.selected{outline:2px solid #bca7ff;background:#342b59}.votegrid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:560px){.votegrid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.connectionStatus{display:flex;align-items:center;gap:9px;margin-bottom:18px;padding:10px 12px;border-radius:12px;border:1px solid #3a3a4d;background:#15151f;font-size:13px;font-weight:800}.statusDot{width:10px;height:10px;border-radius:50%;background:#f2b84b;box-shadow:0 0 12px currentColor}.connectionStatus.online{color:#8cf3bc;border-color:#245e43;background:#0e2018}.connectionStatus.offline{color:#ff98a5;border-color:#73313c;background:#261116}.connectionStatus.waiting{color:#ffd783;border-color:#745d2f;background:#231d10}.djNotice{display:none;margin:0 0 18px;padding:16px 16px 13px;border:1px solid #6e5ad7;border-radius:16px;background:linear-gradient(135deg,rgba(71,52,145,.96),rgba(22,19,46,.96));box-shadow:0 14px 40px rgba(0,0,0,.34)}.djNotice.show{display:block;animation:noticeIn .24s ease-out}.djNotice.moment{border-color:#a86fff}.djNotice.urgent{border-color:#ff6378;background:linear-gradient(135deg,rgba(124,25,47,.97),rgba(43,13,24,.97))}.noticeEyebrow{font-size:10px;letter-spacing:.16em;font-weight:900;color:#d8cfff;margin-bottom:6px}.djNotice.urgent .noticeEyebrow{color:#ffd0d7}#djNoticeText{font-size:18px;line-height:1.35;font-weight:850}.noticeProgress{height:4px;background:rgba(255,255,255,.15);border-radius:99px;overflow:hidden;margin-top:12px}.noticeProgress span{display:block;width:100%;height:100%;background:#fff;transform-origin:left center}.djNotice.show .noticeProgress span{animation:noticeTime var(--notice-duration,15s) linear forwards}@keyframes noticeIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes noticeTime{from{transform:scaleX(1)}to{transform:scaleX(0)}}

/* PartyWall 0.7.2 · Guest media + live */
.guestSection{border-top:1px solid #30303f;margin-top:24px;padding-top:22px}.guestSection:first-of-type{border-top:0;margin-top:10px;padding-top:0}.mediaSendGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.mediaPickButton{display:flex;align-items:center;justify-content:center;min-height:52px;text-align:center;border:1px solid #4b456b;background:#1a1730;border-radius:12px;padding:11px;font-weight:800;cursor:pointer}.mediaPickButton input{display:none}.uploadProgress{height:8px;margin:10px 0;background:#161622;border:1px solid #2d2d3b;border-radius:99px;overflow:hidden}.uploadProgress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#22d3ee,#8b5cf6,#ff3cac);transition:width .15s linear}.selfLive{display:none;width:100%;aspect-ratio:16/9;object-fit:cover;background:#050508;border:1px solid #35354a;border-radius:16px;margin:12px 0;transform:none}.selfLive.show{display:block}.selfLive.mirrored{transform:scaleX(-1)}.betaTag{display:inline-block;vertical-align:middle;font-size:10px;letter-spacing:.08em;padding:3px 6px;border-radius:999px;background:#342b59;color:#dcd2ff}.liveBox .row button{flex:1 1 180px}@media(max-width:480px){.mediaSendGrid{grid-template-columns:1fr}.guest-card{margin:12px;padding:18px}}

.liveCameraChooser{margin:12px 0;padding:12px;border:1px solid #35354a;border-radius:14px;background:#0e0e17}.cameraChooserLabel{margin-bottom:8px}.cameraSegment{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cameraChoice{min-height:48px}.cameraChoice.active{background:#6f49df;border-color:#a88cff;box-shadow:0 0 0 2px rgba(168,140,255,.15) inset}.cameraChoice:disabled{opacity:.55;cursor:wait}#liveCameraChoiceStatus{margin-top:8px}
