/* === Kaiju Game Master — Multiplayer (Clean) CSS v1.3.3 === */

.kgm2{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;max-width:1000px;margin:0 auto;color:#fff}
.kgm2 .btn{background:#222;color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;cursor:pointer;transition:transform .06s ease,opacity .15s ease,box-shadow .25s ease}
.kgm2 .btn:hover{transform:translateY(-1px)}
.kgm2 .btn:active{transform:translateY(0)}
.kgm2 .btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.kgm2 .btn-green{background:#179957}
.kgm2 .btn-accent{background:#6c5ce7}
.kgm2 .btn-spin{font-weight:900;letter-spacing:.4px;padding:.7rem 1.2rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 6px 18px rgba(0,0,0,.25)}

.kgm2 .input{padding:.5rem .7rem;border:1px solid #444;background:#111;color:#fff;border-radius:8px}
.kgm2 .input::placeholder{color:#888}

.kgm2 .lobby{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.5rem 0 1rem}
.kgm2 .room-code{font-weight:700;margin-left:.75rem;color:#9fd3ff}
.kgm2 .invite-link{margin-left:.5rem;color:#8bd6ff;text-decoration:none;border-bottom:1px dashed rgba(139,214,255,.5)}
.kgm2 .invite-link:hover{color:#bff0ff;border-bottom-color:transparent}
/* Looks disabled when JS sets aria-disabled="true" */
.kgm2 .invite-link[aria-disabled="true"]{pointer-events:none;opacity:.55;filter:grayscale(40%);border-bottom-color:rgba(139,214,255,.25)}

.kgm2 .spinner-flex{display:flex;gap:24px;align-items:center;justify-content:flex-start;margin:16px 0;flex-wrap:wrap}
.kgm2 .spinner-wrapper{position:relative;width:420px;height:420px;flex:0 0 auto}
.kgm2 .pointer-wrapper{position:absolute;z-index:5;left:50%;transform:translateX(-50%);top:-6px;pointer-events:none}
.kgm2 .pointer-static{width:80px;height:80px;display:block}
.kgm2 .spinner-container{position:relative;width:min(70vw,440px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%}
.kgm2 .wheel{--angle:0deg;width:100%;height:100%;border-radius:50%;transform:rotate(var(--angle));transition:transform 4s cubic-bezier(0.33,1,0.68,1);box-shadow:0 20px 40px rgba(0,0,0,.45) inset}
.kgm2 .centerpiece{position:absolute;width:120px;height:120px;border-radius:50%;pointer-events:none}

.kgm2 .legend{flex:1 1 260px;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-self:flex-start;min-width:260px}
.kgm2 .legend .item{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 10px}
.kgm2 .legend .swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.2)}

.kgm2 .cards-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.kgm2 .col{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px;min-height:96px}
.kgm2 .col-label{font-weight:700;margin-bottom:8px}
.kgm2 .card-slot{min-height:48px;display:flex;align-items:center;justify-content:flex-start;font-weight:700;color:#d9f7ff}

.kgm2 .turn-banner{background:#0a0a1a;border:1px solid #151538;border-radius:8px;padding:8px 10px;margin-bottom:8px;color:#cfd3ff}

/* === Players (green = ready, gray = idle) === */
.kgm2 .players{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-items:start;margin:.25rem 0 1rem}
.kgm2 .kgm-player{padding:.45rem .7rem;border-radius:10px;font-weight:800;letter-spacing:.2px;display:flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.08)}
.kgm2 .kgm-player.ready{background:rgba(0,180,0,.14);color:#22dd22;border-color:rgba(0,255,0,.18)}
.kgm2 .kgm-player.idle{background:rgba(120,120,120,.15);color:#a0a0a0;border-color:rgba(255,255,255,.08)}

/* Small devices: make spinner & layout responsive */
@media (max-width: 760px){
  .kgm2 .spinner-wrapper{width:min(88vw,360px);height:min(88vw,360px)}
  .kgm2 .pointer-static{width:68px;height:68px}
  .kgm2 .centerpiece{width:100px;height:100px}
  .kgm2 .legend{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .kgm2 .players{grid-template-columns:1fr}
  .kgm2 .cards-row{grid-template-columns:1fr}
}

/* Reduce motion respect */
@media (prefers-reduced-motion: reduce){
  .kgm2 .wheel{transition:none}
  .kgm2 .btn{transition:none}
  .kgm2 .btn-spin{animation:none}
}

/* Focus styles for accessibility */
.kgm2 .btn:focus-visible,.kgm2 .input:focus-visible,.kgm2 .invite-link:focus-visible,.kgm2 .ready-pill:focus-visible{
  outline:2px solid #6c5ce7; outline-offset:2px; border-radius:10px
}

/* Optional: subtle glow when it's your turn (JS toggles .kgm-your-turn on container) */
.kgm2.kgm-your-turn .turn-banner{box-shadow:0 0 24px rgba(108,92,231,.35)}
.kgm2.kgm-your-turn .btn-spin{animation:kgmPulse 1.4s ease-in-out infinite}
@keyframes kgmPulse{
  0%{box-shadow:0 0 0 0 rgba(108,92,231,.0)}
  50%{box-shadow:0 0 32px 2px rgba(108,92,231,.35)}
  100%{box-shadow:0 0 0 0 rgba(108,92,231,.0)}
}

/* Ready status pill */
.kgm2 .ready-wrap{margin:-.25rem 0 1rem}
.kgm2 .ready-pill{
  display:inline-flex;align-items:center;gap:.45rem;
  font-weight:800;letter-spacing:.2px;
  border-radius:999px;padding:.35rem .7rem;border:1px solid;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.kgm2 .ready-pill:before{content:'';width:10px;height:10px;border-radius:50%}
.kgm2 .ready-pill.green{
  color:#19c219;background:rgba(0,200,0,.12);border-color:rgba(0,255,0,.25)
}
.kgm2 .ready-pill.green:before{background:#19c219}
.kgm2 .ready-pill.gray{
  color:#a0a0a0;background:rgba(160,160,160,.12);border-color:rgba(255,255,255,.12)
}
.kgm2 .ready-pill.gray:before{background:#a0a0a0}


/* v1.3.3: UI guards */
.kgm2 .btn.is-ready{ background:#179957; }
.kgm2 .btn-spin[disabled]{ opacity:.5; cursor:not-allowed; }


/* --- Mini card render for MP columns --- */
.kgm2 .cards .card-mini{display:flex;gap:.6rem;align-items:flex-start;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:.6rem;border-radius:10px}
.kgm2 .cards .card-mini .img{flex:0 0 64px;height:64px;overflow:hidden;border-radius:8px}
.kgm2 .cards .card-mini .img img{width:64px;height:64px;object-fit:cover;display:block}
.kgm2 .cards .card-mini .meta{display:flex;flex-direction:column;gap:.2rem}
.kgm2 .cards .card-mini .name{font-weight:700;line-height:1.2}
.kgm2 .cards .card-mini .rarity{font-size:.8rem;opacity:.85}
.kgm2 .cards .card-mini .effect{font-size:.85rem;opacity:.9}
.kgm2 .cards .card-mini.game-over{justify-content:center;align-items:center;font-weight:900;color:#fff;background:#2a1b1b;border-color:#512;min-height:64px}
