:root{
  --bg:#0b0f14;
  --panel:#121826;
  --text:#e8eef6;
  --muted:#9bb0c7;
  --border:rgba(255,255,255,0.10);
  --shadow:0 12px 40px rgba(0,0,0,0.45);
  --ok:#76ff9a;
  --danger:#ff6e6e;
  --accent:#6ee7ff;
}
body{
  margin:0;
  color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  background:
    radial-gradient(1400px 900px at 20% 10%, rgba(110,231,255,0.10), transparent 65%),
    radial-gradient(1200px 800px at 80% 30%, rgba(118,255,154,0.08), transparent 60%),
    linear-gradient(135deg, #0b0f14 0%, #0a1220 100%);
  background-attachment: fixed;
}
.wrap{max-width:1100px;margin:0 auto;padding:18px}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.card h1,.card h2{margin:0;padding:14px 14px 10px;letter-spacing:0.2px}
.card .body{padding:14px}
.muted{color:var(--muted);font-size:13px;line-height:1.35}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.btn{
  cursor:pointer;
  border-radius:12px;
  border:1px solid rgba(110,231,255,0.25);
  background:rgba(110,231,255,0.12);
  color:var(--text);
  padding:10px 12px;
  font:inherit;
}
.btn:hover{background:rgba(110,231,255,0.18)}
.btn.ok{border-color:rgba(118,255,154,0.25);background:rgba(118,255,154,0.12)}
.btn.ok:hover{background:rgba(118,255,154,0.18)}
.btn.danger{border-color:rgba(255,110,110,0.25);background:rgba(255,110,110,0.12)}
.btn.danger:hover{background:rgba(255,110,110,0.18)}
.btn.ghost{border-color:var(--border);background:rgba(255,255,255,0.03)}
.btn.ghost:hover{background:rgba(255,255,255,0.06)}
.btn:disabled{opacity:0.5;cursor:not-allowed}

.input, select{
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  color:var(--text);
  padding:10px 12px;
  outline:none;
  font:inherit;
}
.divider{height:1px;background:var(--border);margin:12px 0}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.02);
  font-size:13px;
}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}

.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}
@media (max-width: 920px){
  .split{grid-template-columns:1fr}
}
.bigTitle{
  font-size:44px;
  font-weight:900;
  letter-spacing:0.8px;
  text-align:center;
  padding:10px 0 0;
}

/* =========================
   Code-Eingabe (6-stellig)
   passt sich IMMER an
   ========================= */

.codeBoxes{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2.5%;
  width:100%;
  max-width:360px;
  margin:0 auto;
}

.codeBoxes input{
  flex:1 1 0;
  min-width:0;                 /* <<< extrem wichtig */
  height:56px;

  text-align:center;
  font-size:clamp(16px, 4vw, 22px);
  font-weight:900;

  border-radius:10px;
  border:1px solid var(--border);
  background:rgba(0,0,0,0.22);
  color:var(--text);
}
.avatarBox{
  display:flex;
  gap:12px;
  align-items:center;
}
.avatarImg{
  width:64px;height:64px;border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  object-fit:cover;
}

/* =========================
   QR + Code exakt gleich breit
   ========================= */

.qrWrap{
  width:min(320px, 85vw);
  margin:0 auto;
}

.qrBox{
  width:100%;
  background:#fff;
  padding:14px;
  border-radius:18px;
  box-sizing:border-box;
}

.qrImg{
  width:100%;
  height:auto;
  display:block;
}

.qrCodeText{
  width:100%;
  margin-top:14px;
  padding:14px 0;

  text-align:center;
  font-weight:1000;
  font-size:22px;
  letter-spacing:6px;

  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(0,0,0,0.22);

  box-sizing:border-box;
}

.smallIconBtn{
  width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  cursor:pointer;
  font-size:18px;
}
.smallIconBtn:hover{background:rgba(255,255,255,0.06)}

.playerList{display:flex;flex-direction:column;gap:10px}
.playerRow{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(0,0,0,0.18);
}
.playerLeft{display:flex;align-items:center;gap:10px}
.readyTag{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.02);
}
.readyTag.ok{border-color:rgba(118,255,154,0.35);background:rgba(118,255,154,0.10);color:var(--ok)}
.readyTag.no{border-color:rgba(255,110,110,0.35);background:rgba(255,110,110,0.10);color:var(--danger)}

.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.65);
  display:none;align-items:center;justify-content:center;z-index:50;padding:18px;
}
.modal{
  width:min(420px, 92vw);
  background:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:14px;
}
.modal img{width:100%;border-radius:14px;background:#fff;padding:10px}
.countdown{
  position:fixed;inset:0;background:rgba(0,0,0,0.55);
  display:none;align-items:center;justify-content:center;z-index:60;
  font-size:96px;font-weight:900;letter-spacing:2px;
}

.canvasWrap{display:flex;flex-direction:column;gap:10px}
.canvasTop{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
#canvas{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  max-height:70vh;
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(0,0,0,0.08);
  box-shadow:0 14px 34px rgba(0,0,0,0.35);
  touch-action:none;
  display:block;
}

.turnBanner{
  margin-top:12px;
  padding:14px 18px;

  border-radius:14px;
  text-align:center;

  font-weight:1000;
  font-size:22px;
  letter-spacing:0.5px;

  border:2px solid transparent;
}

/* Du bist dran */
.turnBanner.you{
  color:#22d3ee;
  background:rgba(34,211,238,0.14);
  border-color:rgba(34,211,238,0.6);
}

/* Jemand anders ist dran */
.turnBanner.other{
  color:#fff;
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.25);
}
