/* Shared polish for public and administrator authentication screens. */
body:has(> .login-box), body:has(> .reg-box) {
  position: relative;
  isolation: isolate;
  overflow-x: hidden;
}
body:has(> .login-box)::before, body:has(> .reg-box)::before {
  content: "";
  position: fixed;
  z-index: -1;
  inset: -20%;
  pointer-events: none;
  background: radial-gradient(circle at 18% 12%, color-mix(in srgb, currentColor 9%, transparent), transparent 28%),
              radial-gradient(circle at 86% 82%, rgba(59,130,246,.13), transparent 28%);
}
.login-box, .reg-box {
  box-shadow: 0 28px 80px rgba(2, 8, 23, .18);
  backdrop-filter: blur(18px);
  overflow: hidden;
}
.login-box::before, .reg-box::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, transparent, #38bdf8, #2dd4bf, transparent);
}
.login-header h1, .reg-header h1 { letter-spacing: -.03em; }
.form-input { min-height: 46px; transition: border-color .2s, box-shadow .2s, background .2s; }
.btn-primary { min-height: 48px; box-shadow: 0 10px 24px rgba(37,99,235,.18); }
.captcha-img { cursor: pointer; object-fit: cover; }
.login-footer a, .reg-footer a { text-underline-offset: 3px; }

.login-page { background: #081321; }
.login-page .login-box { border: 1px solid rgba(148,163,184,.18); }

@media (max-width: 520px) {
  body:has(> .login-box), body:has(> .reg-box) { padding: 14px; align-items: flex-start; }
  .login-box, .reg-box { margin: max(38px, 8vh) auto 24px; padding: 34px 22px !important; border-radius: 16px; }
  .login-header, .reg-header { margin-bottom: 26px !important; }
  .captcha-row { gap: 8px; }
  .captcha-img { width: 92px !important; }
}
