.card { background:#1f2937; border-radius:18px; padding:1.5rem; margin:1rem 0; }
.players { display:grid; gap:.65rem; padding:0; list-style:none; }
.player { padding:.8rem 1rem; border-radius:12px; color:white; font-weight:700; }
.game-card { background: var(--neys-color-surface); border: 1px solid var(--neys-color-border); border-radius: var(--neys-radius-md); padding: var(--neys-space-lg); }
.game-button, .game-link-button { min-height: var(--neys-touch-target); padding: .9rem 1rem; border: 0; border-radius: var(--neys-radius-sm); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; }
.game-link-button { background: #1e293b; color: var(--neys-color-text); }
.game-player-badge { display: inline-flex; align-items: center; justify-content: center; padding: .45rem .75rem; border-radius: 999px; color: #fff; font-weight: 900; }
.game-status-badge { display: inline-flex; align-items: center; padding: .45rem .7rem; border-radius: 999px; font-weight: 850; }
.game-status-badge--pending { background: #422006; color: #fde68a; }
.game-status-badge--answered { background: #1e3a8a; color: #dbeafe; }
.game-status-badge--correct { background: #14532d; color: #dcfce7; }
.game-status-badge--wrong { background: #7f1d1d; color: #fee2e2; }
.game-status-badge--locked { background: #334155; color: #e2e8f0; }
.game-status-badge--winner { background: #713f12; color: #fef3c7; }
.game-kicker { margin: 0 0 .35rem; color: var(--neys-color-accent); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.game-muted { color: var(--neys-color-text-muted); }

.neys-new-player-action { position:fixed; right:1rem; bottom:1rem; z-index:850; display:flex; align-items:center; gap:.65rem; max-width:min(92vw,680px); }
.neys-new-player-action button { min-height:44px; padding:.75rem 1rem; border:0; border-radius:999px; background:var(--neys-color-accent,#38bdf8); color:#082f49; font-weight:900; box-shadow:0 12px 30px rgba(0,0,0,.28); }
.neys-new-player-action span { padding:.55rem .8rem; border-radius:10px; background:rgba(2,6,23,.92); color:#e2e8f0; font-size:.84rem; }
.neys-join-overlay { position:fixed; inset:0; z-index:1200; display:none; place-items:center; padding:clamp(12px,3vw,40px); overflow:hidden; background:rgba(2,6,23,.94); color:#f8fafc; }
.neys-join-overlay.is-open { display:grid; }
.neys-join-overlay__close { display:none; position:absolute; top:max(.75rem,env(safe-area-inset-top)); left:max(.75rem,env(safe-area-inset-left)); z-index:2; min-height:42px; padding:.55rem .8rem; border:1px solid #475569; border-radius:999px; background:#0f172a; color:#f8fafc; font-weight:800; }
.neys-join-overlay.is-closable .neys-join-overlay__close { display:block; }
.neys-join-overlay__card { box-sizing:border-box; width:min(92vw,680px); max-height:calc(100dvh - 24px); padding:clamp(18px,3vw,36px); border:1px solid #334155; border-radius:24px; background:#0f172a; text-align:center; box-shadow:0 28px 70px rgba(0,0,0,.45); }
.neys-join-overlay__eyebrow { margin:0 0 .35rem; color:#7dd3fc; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.neys-join-overlay__card h2 { margin:.2rem 0 .8rem; font-size:clamp(1.5rem,4vw,3.2rem); line-height:1.02; }
.neys-join-overlay__qr { display:block; width:min(70vw,48dvh,380px); max-width:100%; max-height:48dvh; aspect-ratio:1; object-fit:contain; margin:0 auto .75rem; padding:10px; box-sizing:border-box; border-radius:16px; background:#fff; }
.neys-join-overlay__hint { margin:0; color:#cbd5e1; font-size:clamp(.9rem,1.8vw,1.2rem); }
@media(max-height:620px){.neys-join-overlay__card{padding:14px}.neys-join-overlay__eyebrow{font-size:.72rem}.neys-join-overlay__card h2{font-size:1.35rem;margin-bottom:.5rem}.neys-join-overlay__qr{width:min(62vw,42dvh,300px);max-height:42dvh}.neys-join-overlay__hint{font-size:.85rem}}


/* Role semantics: player identity keeps its own player color; moderator controls use one stable role color. */
.moderator-role-button { background:#4338ca !important; color:#eef2ff !important; border:1px solid #6366f1 !important; font-weight:900; }
.moderator-view-button { display:flex; align-items:center; justify-content:center; width:100%; box-sizing:border-box; min-height:48px; margin:.75rem 0; padding:.8rem 1rem; border:1px solid #6366f1; border-radius:12px; background:#312e81; color:#eef2ff; font-weight:900; text-decoration:none; }
.moderator-view-button:hover,.moderator-view-button:focus-visible { background:#3730a3; }
.neys-new-player-action button { background:#fbbf24; color:#422006; }
