:root{
  --bg0:#070912;
  --bg1:#0b0f22;
  --panel: rgba(16, 20, 40, .75);
  --stroke: rgba(160,180,255,.18);
  --text:#eef1ff;
  --muted: rgba(238,241,255,.72);
  --a:#6b7bff;
  --b:#20d3ff;
  --danger:#ff4d6d;

  --r: 18px;
  --shadow: 0 18px 60px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html,body{height:100%;}
body{
  margin:0;
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  background:
    radial-gradient(1200px 700px at 50% 35%, rgba(85,120,255,.22), transparent 60%),
    radial-gradient(900px 600px at 30% 80%, rgba(32,211,255,.16), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  min-height:100svh;
  padding-bottom:env(safe-area-inset-bottom);
}

a{color:inherit;text-decoration:none}

.wrap{
  width:min(980px, 94vw);
  margin:0 auto;
  padding:18px;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-bottom:max(16px, env(safe-area-inset-bottom));
}

.card{
  background:var(--panel);
  border:1px solid var(--stroke);
  border-radius:var(--r);
  box-shadow:var(--shadow);
}

.row{display:flex; gap:12px; flex-wrap:wrap}
.col{flex:1; min-width:220px}

.label{font-size:13px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.bigTitle{font-size:28px; font-weight:900; letter-spacing:.16em}
.huge{font-size:clamp(56px, 9vw, 120px); font-weight:950; letter-spacing:.08em}
.sub{font-size:16px; color:var(--muted)}
.hostNotice{
  font-size:clamp(20px, 3vw, 28px);
  font-weight:900;
  color:var(--text);
  text-shadow:0 10px 40px rgba(0,0,0,.7), 0 0 22px rgba(32,211,255,.65);
  letter-spacing:.08em;
}

input,select{
  width:100%;
  padding:14px 14px;
  border-radius:14px;
  border:1px solid var(--stroke);
  background:rgba(0,0,0,.22);
  color:var(--text);
  outline:none;
  font-size:16px;
  min-height:48px;
}

.btn{
  width:100%;
  padding:16px 18px;
  border-radius:14px;
  border:1px solid var(--stroke);
  background:rgba(0,0,0,.22);
  color:var(--text);
  cursor:pointer;
  font-weight:800;
  letter-spacing:.06em;
  font-size:16px;
  min-height:52px;
}
.btn.primary{
  background: linear-gradient(90deg, rgba(107,123,255,.95), rgba(32,211,255,.75));
  border-color: rgba(140,170,255,.35);
}
.btn.danger{
  background: linear-gradient(90deg, rgba(255,77,109,.95), rgba(107,123,255,.55));
  border-color: rgba(255,120,140,.45);
}
.btn:disabled{opacity:.45; cursor:not-allowed}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--stroke);
  background:rgba(0,0,0,.18);
  color:var(--muted);
  font-weight:800;
}

.list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:10px;
  align-content:start;
}
.player-grid{grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));}
.item{
  display:flex; justify-content:space-between; align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--stroke);
  background:rgba(0,0,0,.18);
}
.item b{font-size:16px;}
.item .sub{font-size:13px;}
.badge{
  padding:6px 10px; border-radius:999px; font-weight:900; letter-spacing:.06em;
  border:1px solid var(--stroke); color:var(--muted);
  font-size:13px;
}
.badge.alive{color:#b9ffda; border-color:rgba(185,255,218,.25)}
.badge.dead{color:#ffb3c1; border-color:rgba(255,179,193,.25)}

.centerScreen{
  min-height:100svh;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  text-align:center;
  padding:18px;
}

.fullscreen{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:24px;
}

.roleGlow{
  border:1px solid var(--stroke);
  border-radius:var(--r);
  padding:18px;
  background:rgba(0,0,0,.22);
}

.overlay{
  position:fixed; inset:0;
  background:rgba(0,0,0,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  z-index:50;
  padding:24px;
}
.hidden{display:none}

@media (max-width: 520px){
  .wrap{padding:14px;}
  .card{border-radius:16px; padding:16px;}
  .centerScreen{align-items:flex-start; justify-content:flex-start;}
  .row{gap:12px;}
  .row > *{flex:1 1 100%; min-width:0;}
  .label{font-size:14px;}
  .list{grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px;}
  .item{padding:9px 11px;}
  .item b{font-size:15px;}
}
