/* BoredBusters unified game interface — shared by every game */
:root{--game-surface:rgba(23,21,29,.88);--game-surface-2:rgba(31,28,38,.92);--game-line:rgba(255,255,255,.09);--game-shadow:0 20px 60px rgba(0,0,0,.28);--game-radius:20px}
body:has(.lobby-container){background:radial-gradient(circle at 12% 8%,rgba(231,76,60,.10),transparent 31rem),radial-gradient(circle at 88% 18%,rgba(6,255,165,.07),transparent 28rem),var(--bg);background-attachment:fixed}
.lobby-container{width:min(1280px,100%);margin:0 auto;padding:clamp(18px,3vw,38px) clamp(14px,3vw,34px) 110px!important}
.lobby-container>a:first-child{display:inline-flex;align-items:center;gap:7px;padding:8px 12px!important;margin-bottom:10px;color:var(--text-dim)!important;background:rgba(255,255,255,.035);border:1px solid var(--game-line);border-radius:999px;font-size:12px!important;font-weight:700;transition:.2s ease}
.lobby-container>a:first-child:hover{color:white!important;border-color:rgba(231,76,60,.35);transform:translateX(-2px)}
.lobby-container>h1{font-size:clamp(27px,4vw,43px)!important;line-height:1.05;letter-spacing:-1.4px;margin:10px 0 9px!important;background:linear-gradient(115deg,#fff 22%,#ffd2d2 58%,var(--secondary));-webkit-background-clip:text;background-clip:text;color:transparent}
.lobby-container>h1+p{max-width:760px;font-size:14px!important;line-height:1.65;margin:0 0 22px!important}
#lobbyView{position:relative;padding:clamp(16px,2.5vw,24px);border:1px solid var(--game-line);border-radius:var(--game-radius);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.016));box-shadow:var(--game-shadow);overflow:hidden}
#lobbyView:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent),var(--secondary));opacity:.85}
#lobbyView>.party-actions,#lobbyView>div:first-child{position:relative;display:flex!important;gap:10px!important;align-items:center;flex-wrap:wrap;margin-bottom:18px!important}
.btn,.lobby-container button{border-radius:12px!important;min-height:42px;font-weight:800;letter-spacing:.01em;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important}
.btn:hover,.lobby-container button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.22)}
.btn-primary{background:linear-gradient(135deg,var(--primary),#bf243c)!important;box-shadow:0 8px 22px rgba(231,76,60,.20)}
.btn-secondary{border:1px solid rgba(6,255,165,.22)!important}
.btn-ghost{background:rgba(255,255,255,.04)!important;border:1px solid var(--game-line)!important}
.lobby-container input,.lobby-container select,.lobby-container textarea{border-radius:12px!important;border:1px solid var(--game-line)!important;background:rgba(6,5,9,.58)!important;color:white!important;outline:none;transition:border-color .16s,box-shadow .16s}
.lobby-container input:focus,.lobby-container select:focus,.lobby-container textarea:focus{border-color:rgba(231,76,60,.58)!important;box-shadow:0 0 0 4px rgba(231,76,60,.10)}
.panel{background:linear-gradient(145deg,var(--game-surface-2),var(--game-surface))!important;border:1px solid var(--game-line)!important;border-radius:18px!important;padding:18px!important;box-shadow:0 12px 34px rgba(0,0,0,.16)}
.panel h4{font-size:11px!important;letter-spacing:.14em!important;color:#b9b2c5!important;margin-bottom:12px!important}
.room-card{padding:13px 14px!important;background:rgba(255,255,255,.035)!important;border:1px solid var(--game-line)!important;border-radius:14px!important;box-shadow:none!important;transition:.18s ease!important}
.room-card:hover{background:rgba(231,76,60,.07)!important;border-color:rgba(231,76,60,.3)!important;transform:translateY(-2px)!important}
.room-id{padding:4px 8px;background:rgba(6,255,165,.08);border:1px solid rgba(6,255,165,.16);border-radius:7px;color:var(--secondary);font-weight:900;letter-spacing:.1em}
#gameView{animation:gameIn .28s ease both}
@keyframes gameIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.game-board-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(270px,330px);align-items:start;gap:18px!important;padding:0!important;margin-top:18px}
.game-area{min-width:0;background:linear-gradient(145deg,var(--game-surface-2),var(--game-surface))!important;border:1px solid var(--game-line)!important;border-radius:var(--game-radius)!important;padding:clamp(15px,2.4vw,24px)!important;box-shadow:var(--game-shadow)}
.side-panel{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;min-width:0;width:100%!important;position:sticky;top:78px}
.game-stage{background:radial-gradient(circle at 50% 0,rgba(255,255,255,.055),transparent 55%),rgba(0,0,0,.2)!important;border:1px solid var(--game-line)!important;border-radius:18px!important;padding:clamp(8px,2vw,16px)!important;overflow:hidden}
canvas:not(.swift7-interactive-background):not(#swift7-interactive-background){border-radius:16px!important;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.round-badge,#roundDisplay,.score-item,.meta-tag{border-radius:999px!important}
.score-bar{padding:5px;gap:7px!important}.score-item{background:rgba(255,255,255,.045)!important;border:1px solid var(--game-line)!important}
.chat-box{border-radius:13px!important;border:1px solid var(--game-line);background:rgba(0,0,0,.2)!important;padding:10px!important}.chat-input{gap:8px!important;margin-top:9px}.chat-input input{min-width:0}
#gameStatus{border-radius:14px!important;border:1px solid var(--game-line)!important;box-shadow:0 18px 50px rgba(0,0,0,.4)!important;backdrop-filter:blur(16px)}
details{border-radius:14px}dialog{border:1px solid var(--game-line)!important;border-radius:20px!important;background:var(--game-surface-2)!important;color:white;box-shadow:0 30px 90px rgba(0,0,0,.55)}
/* Unified Party Pack components */
.party-game-header{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin-bottom:18px}.party-game-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:19px;background:linear-gradient(145deg,rgba(231,76,60,.18),rgba(6,255,165,.08));border:1px solid var(--game-line);font-size:34px;box-shadow:0 12px 25px rgba(0,0,0,.18)}.party-game-header h1{margin:0 0 4px;font-size:clamp(28px,4vw,42px);letter-spacing:-1.2px}.party-game-header p{margin:0;color:var(--text-dim);max-width:760px}.party-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.party-tile{min-height:88px;padding:12px;border-radius:14px!important;border:1px solid var(--game-line)!important;background:rgba(0,0,0,.23)!important;color:white;font-weight:850;box-shadow:inset 0 1px rgba(255,255,255,.04)}.party-tile.agent{background:linear-gradient(145deg,#075985,#0c4a6e)!important}.party-tile.civilian{background:linear-gradient(145deg,#57534e,#44403c)!important}.party-tile.assassin{background:linear-gradient(145deg,#991b1b,#450a0a)!important}.party-choice{width:100%;justify-content:flex-start!important;text-align:left}.party-choice.correct{background:#047857!important}.party-choice.wrong{background:#b91c1c!important}.party-canvas{display:block;width:100%;max-width:760px;aspect-ratio:7/4;background:white;border:6px solid rgba(255,255,255,.07);border-radius:18px!important;touch-action:none;margin:auto}.party-score{font:800 13px 'JetBrains Mono',monospace;color:var(--secondary);padding:6px 10px;border-radius:999px;background:rgba(6,255,165,.07);border:1px solid rgba(6,255,165,.14)}
@media(max-width:900px){.game-board-wrap{grid-template-columns:1fr!important}.side-panel{position:static;grid-template-columns:repeat(2,minmax(0,1fr))!important}.side-panel>.panel:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:650px){.lobby-container{padding-top:14px!important}.party-game-header{grid-template-columns:1fr}.party-game-icon{width:58px;height:58px}.party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{grid-template-columns:1fr!important}#lobbyView>.party-actions,#lobbyView>div:first-child{align-items:stretch}.lobby-container .btn{flex:1 1 auto}.room-card{align-items:stretch!important}}
@media(prefers-reduced-motion:reduce){.lobby-container *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
