:root{
  --bg:#05070F;
  --card:#0B1020;
  --card2:#0E1628;
  --ice:#9CF6FF;
  --glow:#35D7FF;
  --vio:#8C7CFF;
  --mut:#7C89A8;
  --line:rgba(156,246,255,0.14);
  --lineStrong:rgba(156,246,255,0.24);
  --shadow:0 14px 50px rgba(0,0,0,0.45);
  --good:#8df7c2;
  --warn:#ffcb6b;
  --bad:#ff7b7b;
  --khaki:#C7B98A;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  background:var(--bg);
  color:#EAF7FF;
  font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;
}

a{color:var(--ice);text-decoration:none;}
a:hover{text-decoration:underline;}

.splash{
  position:fixed;
  inset:0;
  overflow:auto;
  background:
    radial-gradient(1100px 560px at 70% 30%, rgba(53,215,255,0.12), transparent 60%),
    radial-gradient(900px 520px at 20% 70%, rgba(156,246,255,0.06), transparent 55%),
    linear-gradient(180deg, rgba(12,18,36,0.50), rgba(5,7,15,1)),
    #05070F;
}

.stars{
  position:absolute;
  inset:-40px;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.10) 1px, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,0.08) 1px, transparent 1px),
    radial-gradient(circle at 40% 80%, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size:220px 220px, 280px 280px, 340px 340px;
  opacity:0.9;
  filter:blur(0.2px);
  pointer-events:none;
}

/* --------------------------------
   Logged-out / maintenance helpers
--------------------------------- */
.join{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.panel{
  position:relative;
  z-index:3;
  width:min(560px, 100%);
  background:
    linear-gradient(180deg, rgba(53,215,255,0.07), transparent 40%),
    linear-gradient(180deg, rgba(140,124,255,0.04), transparent 85%),
    var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
  backdrop-filter:blur(8px);
}

.panel:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.03), transparent);
  opacity:.45;
}

.panelInner{
  position:relative;
  padding:22px 20px 18px;
  z-index:2;
}

.panel--maintenance{
  width:min(560px, 100%);
}

.entrySignalValue--maintenance{
  font-size:24px;
}

.entryAction--maintenance{
  border-bottom:none;
  padding-bottom:6px;
}

.entryInfoRow--maintenance{
  margin-top:14px;
}

/* -------------------------------
   Logged-in stage
-------------------------------- */
.pageShell{
  min-height:100vh;
  padding:12px;
  box-sizing:border-box;
}

.prospectorsStage{
  position:relative;
  height:calc(100vh - 24px);
  background:linear-gradient(180deg, rgba(53,215,255,0.06), transparent 48%), var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.gmMaintenanceBanner{
  position:fixed;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  z-index:9999;
  padding:8px 16px;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  border-radius:999px;
  background:rgba(255,120,80,0.10);
  border:1px solid rgba(255,120,80,0.35);
  color:rgba(255,180,140,0.95);
  box-shadow:0 0 18px rgba(255,120,80,0.25);
  backdrop-filter:blur(4px);
  animation:gmBannerPulse 2.8s ease-in-out infinite;
}

@keyframes gmBannerPulse{
  0%{box-shadow:0 0 12px rgba(255,120,80,0.15);}
  50%{box-shadow:0 0 24px rgba(255,120,80,0.35);}
  100%{box-shadow:0 0 12px rgba(255,120,80,0.15);}
}

.gmShellHud{
  position:absolute;
  inset:0;
  z-index:200;
  pointer-events:none;
}

.gmShellHud > *{
  pointer-events:auto;
}

.gmShellTopLeft{
  position:absolute;
  top:14px;
  left:78px;
  display:flex;
  gap:10px;
  z-index:205;
}

.gmShellTopRight,
.gmShellBottomLeft,
.gmShellBottomCenter,
.gmShellBottomRight{
  position:absolute;
  display:flex;
  gap:10px;
  z-index:205;
}

.gmShellTopRight{
  top:14px;
  right:14px;
  flex-direction:column;
  align-items:flex-end;
}

.gmShellBottomLeft{
  left:14px;
  bottom:14px;
  flex-direction:column;
  align-items:flex-start;
}

.gmShellBottomCenter{
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  flex-direction:column;
  align-items:center;
}

.gmShellBottomRight{
  right:14px;
  bottom:14px;
  flex-direction:column;
  align-items:flex-end;
}

.gmShellEarthLink{text-decoration:none;}
.gmShellEarthLink:hover{text-decoration:none;}

.gmShellGlyph{
  width:54px;
  height:54px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(10,16,24,.68);
  backdrop-filter:blur(8px);
  color:#eaf7ff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  transition:transform .14s ease, border-color .14s ease, background .14s ease;
  user-select:none;
}

.gmShellGlyph:hover{
  transform:translateY(-1px);
  border-color:#46617a;
  background:rgba(18,28,38,.78);
}

.gmShellChip{
  min-height:42px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(10,16,24,.62);
  backdrop-filter:blur(8px);
  color:#eaf7ff;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:800;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
  white-space:nowrap;
  cursor:pointer;
  transition:transform .14s ease, border-color .14s ease, background .14s ease;
}

.gmShellChip:hover{
  transform:translateY(-1px);
  border-color:#46617a;
  background:rgba(18,28,38,.78);
}

.gmShellIdentityStack{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
}

.gmShellValue{
  color:var(--good);
  font-weight:900;
}



.gmShellGlyphPulseBad{
  animation: gmShellGlyphPulseBad 1.05s ease-in-out infinite;
  box-shadow:
    0 10px 30px rgba(0,0,0,.28),
    0 0 18px rgba(255,123,123,.22),
    0 0 34px rgba(255,123,123,.14);
}

@keyframes gmShellGlyphPulseBad{
  0%{ transform:scale(1); }
  50%{ transform:scale(1.06); }
  100%{ transform:scale(1); }
}


/* -------------------------------
   Common shell modal
-------------------------------- */
.gmShellModal.hidden{
  display:none !important;
}

.gmShellModal{
  position:fixed;
  inset:0;
  z-index:5000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:20px;
}

.gmShellModalBackdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(3px);
  z-index:1;
}

.gmShellModalCard{
  position:relative;
  z-index:2;
  width:min(780px, calc(100vw - 30px));
  max-height:calc(100vh - 40px);
  overflow:auto;
  border:1px solid var(--lineStrong);
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(53,215,255,0.06), transparent 46%),
    #0B1020;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}

.gmShellModalHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 16px;
  border-bottom:1px solid rgba(156,246,255,0.10);
}

.gmShellModalTitle{
  font-weight:900;
  letter-spacing:.03em;
  color:#EAF7FF;
  text-transform:uppercase;
}

.gmShellModalClose{
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid rgba(156,246,255,0.16);
  background:rgba(53,215,255,0.08);
  color:#EAF7FF;
  cursor:pointer;
  font-weight:900;
  font-size:18px;
}

.gmShellModalBody{
  padding:16px;
  color:#EAF7FF;
}

.gmShellModalList{
  display:grid;
  gap:10px;
}

.gmShellGrid2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.gmShellModalCardBox{
  padding:12px;
  border:1px solid rgba(156,246,255,0.10);
  border-radius:14px;
  background:rgba(255,255,255,.02);
}

.gmShellModalCardTitle{
  font-weight:800;
}

.gmShellModalCardSub{
  color:var(--mut);
  font-size:12px;
  line-height:1.45;
  margin-top:4px;
}

.gmShellK{
  font-size:11px;
  color:var(--mut);
  text-transform:uppercase;
  letter-spacing:.08em;
}

.gmShellV{
  font-size:24px;
  font-weight:900;
  margin-top:4px;
}

.gmShellInlineBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(156,246,255,0.18);
  background:rgba(53,215,255,0.08);
  color:#EAF7FF;
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
  text-decoration:none;
  white-space:nowrap;
}

.gmShellInlineBtn:hover{
  background:rgba(53,215,255,0.14);
  border-color:rgba(156,246,255,0.28);
  text-decoration:none;
}

.gmShellRecentList{
  margin-top:10px;
  display:grid;
  gap:8px;
}

.gmShellRecentItem{
  padding:10px;
  border:1px solid rgba(156,246,255,0.10);
  border-radius:12px;
  background:rgba(255,255,255,.02);
}

.gmShellRecentTitle{
  font-weight:700;
}

.gmShellRecentTime{
  font-size:11px;
  color:var(--mut);
  margin-top:3px;
}

.gmShellStatus{
  color:var(--good);
  font-size:13px;
}

.gmShellStatus.is-warn{
  color:var(--warn);
}

.gmShellStatus.is-bad{
  color:var(--bad);
}

.gmShellPillRow{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}

.gmShellPill{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(156,246,255,0.10);
  background:rgba(255,255,255,0.03);
  color:#DCE9F5;
  font-size:12px;
  font-weight:700;
}

@media (max-width: 720px){
  .gmShellTopLeft{
    left:14px;
  }

  .gmShellGrid2{
    grid-template-columns:1fr;
  }

  .gmShellGlyph{
    width:50px;
    height:50px;
  }
}

.gmSupportBuyRow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

#paypal-button-container{
  min-height:44px;
}