body.phantasm-locked>.app{visibility:hidden}
#phantasm-auth{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 48% 12%,#2e1e53,#090d17 60%);color:#f6f2ff;font-family:Inter,system-ui,sans-serif}
#phantasm-auth[hidden]{display:none}
#phantasm-transition{position:fixed;inset:0;z-index:99999;display:flex;
  align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(circle at 48% 12%,#2e1e53,#090d17 60%);
  color:#f6f2ff;font-family:Inter,system-ui,sans-serif}
#phantasm-transition[hidden]{display:none}
#phantasm-transition .auth-card{width:min(425px,100%);padding:35px 34px;
  border:1px solid #63429c;border-radius:20px;background:#141b29;
  box-shadow:0 28px 100px #0008;text-align:center}
#phantasm-transition .auth-logo{width:104px;height:104px;object-fit:cover;
  border-radius:14px;border:1px solid #704ca4;margin:0 auto 14px}
#phantasm-transition h1{font-size:22px;margin:0 0 18px;color:white}
#phantasm-transition p{font-size:13px;color:#c6b8ea;margin:18px 0 0}
#phantasm-transition .auth-spinner{width:34px;height:34px;margin:0 auto;
  border:3px solid #604783;border-top-color:#e0bbff;border-radius:50%;
  animation:phantasm-spin .8s linear infinite}
@keyframes phantasm-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#phantasm-transition .auth-spinner{animation:none}}
#phantasm-auth .auth-card{width:min(425px,100%);padding:35px 34px;border:1px solid #63429c;border-radius:20px;background:#141b29;box-shadow:0 28px 100px #0008;text-align:center}
#phantasm-auth .auth-logo{width:104px;height:104px;object-fit:cover;border-radius:14px;border:1px solid #704ca4;margin:0 auto 14px}
#phantasm-auth h1{font-size:22px;margin:0 0 3px;color:white}
#phantasm-auth p{margin:0 0 22px;color:#aeb7c8;font-size:13px}
#phantasm-auth label{display:block;text-align:left;font-size:12px;color:#d1d6e3;margin:13px 0 5px}
#phantasm-auth input{display:block;width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #444b62;border-radius:9px;background:#0e1421;color:white;font-size:14px}
#phantasm-auth button,#phantasm-admin button{border:1px solid #7258ab;border-radius:9px;background:#39265b;color:white;padding:10px 15px;cursor:pointer}
#phantasm-auth button.primary{display:block;width:100%;margin-top:18px;padding:13px;background:#7340be;border-color:#9863e3;font-weight:800}
#phantasm-auth button:disabled,#phantasm-admin button:disabled{opacity:.55;cursor:wait}
#phantasm-auth .auth-links{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:15px}
#phantasm-auth .auth-links button{border:0;background:none;color:#d1b3ff;font-size:12px;padding:5px}
#phantasm-auth #authMessage{margin:14px 0 0;line-height:1.5;color:#ffd99e;min-height:19px}
#phantasm-auth .auth-foot{margin-top:18px;color:#8693a9;font-size:11px}
#phantasm-account-actions{display:flex;gap:8px;align-items:center;margin-left:auto}
#phantasm-account-actions button{border:1px solid #624a91;border-radius:8px;padding:8px 12px;background:#211a37;color:white;font-size:12px;cursor:pointer}
#phantasm-admin{width:min(640px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #654b9c;border-radius:16px;background:#151c2a;color:#f3efff;padding:22px}
#phantasm-admin::backdrop{background:#020510b9}
#phantasm-admin .admin-row{display:flex;gap:9px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #363a55;flex-wrap:wrap;font-size:13px}
#phantasm-admin .admin-row>span{min-width:0;overflow-wrap:anywhere;flex:1 1 170px}
#phantasm-admin .admin-help{color:#aeb7c8;font-size:12px;line-height:1.5;margin:-4px 0 12px}
#phantasm-admin .admin-member-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#phantasm-admin .admin-self{color:#b1a8c3;font-size:11px;font-weight:700}
#phantasm-admin button.admin-revoke{background:#50212c;border-color:#a45264;color:#ffe2e6;font-weight:750;font-size:12px}
#phantasm-admin button.admin-revoke:hover,#phantasm-admin button.admin-revoke:focus-visible{background:#7c2738;border-color:#f08ca2}
#phantasm-admin input,#phantasm-admin select{background:#101726;border:1px solid #4e5370;color:white;padding:9px;border-radius:7px}
#phantasm-admin .admin-field{display:flex;gap:8px;flex-wrap:wrap}
#phantasm-role-tag{font-size:11px;color:#f2dcff;border:1px solid #775b9e;border-radius:7px;padding:6px 9px}
body.phantasm-player #mapStage,body.phantasm-player .toolbar,body.phantasm-player #newPlay,body.phantasm-player #duplicatePlay,body.phantasm-player #deletePlay,body.phantasm-player #undoBtn,body.phantasm-player #clearBtn,body.phantasm-player #addMap,body.phantasm-player #changeImage,body.phantasm-player #placeA,body.phantasm-player #placeB{pointer-events:none!important;opacity:.55}
body.phantasm-player #playName,body.phantasm-player #playNotes,body.phantasm-player #rosterInputs input{pointer-events:none;opacity:.65}
