/* DDTG Portal Modal v3.1 ─────────────────────────────────────────── */
#pm-ov {
  position:fixed; inset:0; z-index:9999;
  background:rgba(7,16,28,.78); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center;
  padding:24px; opacity:0; transition:opacity .18s ease;
}
#pm-ov.open { display:flex; opacity:1; }
#pm-card {
  position:relative; width:100%; max-width:480px;
  background:#0f1722; border:1px solid #1d2a3d; border-radius:12px;
  box-shadow:0 24px 64px rgba(0,0,0,.5), 0 0 0 1px rgba(61,158,255,.06);
  padding:36px 36px 28px; color:#e8edf5;
  font-family:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  animation:pmIn .22s ease;
}
@keyframes pmIn {
  from { transform:translateY(8px) scale(.98); opacity:0; }
  to   { transform:translateY(0)    scale(1);   opacity:1; }
}
#pm-card .pm-x {
  position:absolute; top:12px; right:14px;
  background:transparent; border:0; color:#8b96a8;
  font-size:24px; line-height:1; cursor:pointer; padding:6px 10px;
  transition:color .15s;
}
#pm-card .pm-x:hover { color:#e8edf5; }

.pm-h { margin-bottom:20px; }
.pm-eyebrow {
  font-family:'JetBrains Mono','Consolas',monospace;
  font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:#3d9eff; margin-bottom:.6rem;
}
.pm-eyebrow-ok { color:#4ade80; }
.pm-h h2 {
  margin:0 0 .5rem; font-size:1.45rem; font-weight:700;
  letter-spacing:-.02em; color:#fff;
}
.pm-sub { margin:0; font-size:13px; line-height:1.55; color:#8b96a8; }

.pm-form { display:flex; flex-direction:column; }
.pm-l {
  font-family:'JetBrains Mono','Consolas',monospace;
  font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:#8b96a8; margin:.85rem 0 .35rem;
}
.pm-i {
  background:#07101c; border:1px solid #1d2a3d; border-radius:6px;
  padding:11px 14px; color:#e8edf5; font-size:14px;
  font-family:inherit; outline:none; transition:border-color .15s, box-shadow .15s;
}
.pm-i:focus { border-color:#3d9eff; box-shadow:0 0 0 3px rgba(61,158,255,.15); }

.pm-err {
  min-height:18px; margin-top:.5rem; font-size:12px;
  color:#fda4af; line-height:1.4;
}

.pm-btn {
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%; padding:13px 20px; border-radius:6px;
  font-family:'JetBrains Mono','Consolas',monospace;
  font-size:13px; font-weight:600; letter-spacing:.04em;
  border:0; cursor:pointer; margin-top:1rem;
  transition:transform .12s, box-shadow .15s, opacity .15s;
}
.pm-btn-fill {
  background:#3d9eff; color:#07101c;
  box-shadow:0 4px 12px rgba(61,158,255,.25);
}
.pm-btn-fill:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(61,158,255,.35);
}
.pm-btn:disabled { opacity:.6; cursor:wait; }
.pm-btn.pm-loading::after {
  content:''; width:14px; height:14px; border-radius:50%;
  border:2px solid rgba(7,16,28,.3); border-top-color:#07101c;
  animation:pmSpin .7s linear infinite; margin-left:.4rem;
}
@keyframes pmSpin { to { transform:rotate(360deg); } }

.pm-foot {
  margin-top:1.1rem; padding-top:1rem;
  border-top:1px solid #1d2a3d;
  font-size:12px; color:#8b96a8; text-align:center;
}
.pm-foot a { color:#3d9eff; text-decoration:none; }
.pm-foot a:hover { text-decoration:underline; }

/* welcome spinner ────────────────────────────────────────────────── */
.pm-spinner {
  display:inline-block; width:28px; height:28px; border-radius:50%;
  border:3px solid rgba(61,158,255,.2); border-top-color:#3d9eff;
  animation:pmSpin .7s linear infinite;
}

@media (max-width:520px) {
  #pm-card { padding:28px 22px 22px; }
  .pm-h h2 { font-size:1.25rem; }
}
