.login-shell {
  min-height: 100vh;
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  padding: 2rem;
  background: radial-gradient(circle at 50% 45%, #0b356b 0, #072956 32%, #031d40 72%, #02172f 100%);
}
.login-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size: 36px 36px;
  pointer-events: none;
}
.login-panel {
  position: relative;
  z-index: 1;
  width: min(550px, 100%);
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 0;
  background: transparent;
}
.login-card {
  width: 100%;
  padding: 2.1rem 2.35rem 1.7rem;
  background: #fff;
  border: 1px solid #d1dae7;
  border-radius: 22px;
  box-shadow: 0 28px 90px rgba(0,0,0,.38);
}
.login-identity { display: grid; justify-items: center; margin-bottom: 1.15rem; }
.login-identity img { width: 112px; height: 112px; object-fit: cover; border: 2px solid #dce4ee; border-radius: 16px; box-shadow: 0 10px 25px rgba(3,34,72,.16); }
.login-identity strong { margin-top: .65rem; color: var(--navy); font-size: 2rem; letter-spacing: .08em; }
.login-identity small { display: block; margin: 0; color: #8190a5; font-size: .65rem; font-weight: 800; letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.login-card h2 { margin: .2rem 0; color: var(--navy); font-size: 1.65rem; letter-spacing: .025em; text-align: center; }
.login-instruction { margin: .4rem 0 1.35rem; color: #718097; font-size: .8rem; font-weight: 800; text-align: center; }
.login-card label { color: #09254d; font-weight: 850; }
.login-card input { min-height: 58px; color: #071d3c; background: #eaf2ff; border-color: #c4d1e2; }
.login-submit { min-height: 52px; letter-spacing: .04em; }
.login-notice { display: grid; gap: .2rem; margin-top: .8rem; padding: .85rem 1rem; color: #17365e; font-size: .69rem; background: #eef6ff; border: 1px solid #c9dcf5; border-radius: 11px; }
.login-notice span { color: #657b98; }
.login-version { position: absolute; right: 1.4rem; bottom: 1.2rem; z-index: 2; display: grid; padding: .55rem .8rem; color: #fff; font-size: .62rem; border: 1px solid #2196f3; border-radius: 8px; }
.login-version span { margin-top: .15rem; color: #8dc9ff; }
@media (max-width: 760px) {
  .login-shell { padding: 1rem; }
  .login-panel { min-height: 0; padding: 0; }
  .login-card { padding: 1.5rem 1.2rem; border-radius: 18px; }
  .login-identity img { width: 92px; height: 92px; }
  .login-identity strong { font-size: 1.65rem; }
  .login-card h2 { font-size: 1.35rem; }
  .login-instruction { font-size: .7rem; }
  .login-card input { min-height: 54px; font-size: 16px; }
  .login-version { position: fixed; right: .7rem; bottom: .6rem; font-size: .55rem; }
}
@media (max-height: 720px) and (min-width: 761px) {
  .login-shell { padding: 1rem; }
  .login-card { padding: 1.2rem 2rem; }
  .login-identity { margin-bottom: .5rem; }
  .login-identity img { width: 75px; height: 75px; }
  .login-card h2 { font-size: 1.35rem; }
  .login-instruction { margin-bottom: .7rem; }
  .login-card label { margin-top: .6rem; }
  .login-card input { min-height: 48px; }
  .login-card .full { margin-top: .8rem; }
  .login-notice { padding: .55rem .8rem; }
}
