.login-page {
  min-height: 100vh;
  color: #f8fafc;
  overflow-x: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 18% 10%, rgba(96, 165, 250, 0.30) 0%, transparent 58%),
    radial-gradient(ellipse 70% 60% at 82% 92%, rgba(14, 165, 233, 0.22) 0%, transparent 56%),
    linear-gradient(135deg, #08172f 0%, #0a2756 38%, #163b86 70%, #1e40af 100%);
}

.svg-sprite {
  position: absolute;
}

.login-screen {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, 1fr);
  min-height: 100vh;
  isolation: isolate;
}

.login-brand {
  background: transparent;
  color: #f8fafc;
  padding: 56px 64px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
  min-width: 0;
}

.login-brand-logo {
  display: flex;
  align-items: center;
  gap: 14px;
}

.login-brand .brand-mark {
  background: linear-gradient(135deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.08) 100%);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 8px 32px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.3);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 14px;
}

.login-brand .brand-name {
  color: #f8fafc;
  font-size: 18px;
  font-weight: 700;
}

.login-brand .brand-sub {
  color: rgba(248,250,252,0.70);
}

.login-copy {
  max-width: 650px;
}

.login-headline {
  color: #f8fafc;
  font-size: clamp(34px, 5vw, 62px);
  line-height: 1.02;
  letter-spacing: 0;
  margin: 0 0 18px;
}

.login-headline em {
  color: #93c5fd;
  font-style: italic;
  font-weight: 600;
}

.login-sub {
  color: rgba(248,250,252,0.82);
  font-size: 17px;
  max-width: 560px;
}

.login-sub strong {
  color: #f8fafc;
}

.trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-radius: 18px;
  padding: 18px 8px;
  box-shadow: 0 8px 32px rgba(8,15,38,0.35), inset 0 1px 0 rgba(255,255,255,0.22);
}

.trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 0 8px;
  color: rgba(248,250,252,0.92);
  min-width: 0;
  text-align: center;
}

.trust-item .icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 10px;
  color: #bfdbfe;
  backdrop-filter: blur(10px);
}

.trust-item-title {
  color: #f8fafc;
  font-weight: 700;
}

.trust-item-sub {
  color: rgba(248,250,252,0.65);
  font-size: 12px;
}

.login-footer-meta {
  color: rgba(248,250,252,0.6);
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 11px;
}

.login-form-wrap {
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 56px;
  min-width: 0;
}

.login-form {
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  background: linear-gradient(135deg, rgba(30,41,59,0.62) 0%, rgba(15,23,42,0.48) 100%);
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(148,163,184,0.18);
  border-radius: 24px;
  padding: 40px 38px;
  box-shadow:
    0 20px 60px rgba(2,6,23,0.55),
    0 8px 24px rgba(2,6,23,0.40),
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.18);
  color: #f8fafc;
  position: relative;
  overflow: hidden;
}

.login-form::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.28) 50%, transparent 100%);
  pointer-events: none;
}

.login-form .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.login-form .field[hidden] {
  display: none !important;
}

.password-control {
  position: relative;
}

.password-control .input {
  padding-right: 136px;
}

.password-visibility-toggle {
  position: absolute;
  top: 50%;
  right: 78px;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 999px;
  background: rgba(15,23,42,0.48);
  color: rgba(203,213,225,0.78);
  cursor: pointer;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.password-visibility-toggle:hover,
.password-visibility-toggle[aria-pressed="true"] {
  background: rgba(96,165,250,0.16);
  border-color: rgba(147,197,253,0.50);
  color: #bfdbfe;
}

.password-visibility-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(96,165,250,0.24);
}

.caps-lock-indicator {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  min-width: 58px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(148,163,184,0.22);
  border-radius: 999px;
  background: rgba(15,23,42,0.58);
  color: rgba(203,213,225,0.68);
  font: 700 11px/1 var(--font-ui);
  cursor: default;
  pointer-events: auto;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.caps-lock-indicator.is-active {
  background: rgba(251,191,36,0.18);
  border-color: rgba(251,191,36,0.68);
  color: #fde68a;
  box-shadow: 0 0 0 3px rgba(251,191,36,0.12);
}

.caps-lock-indicator:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(96,165,250,0.24);
}

.login-form .login-title {
  color: #f8fafc;
  font-size: 22px;
  font-weight: 700;
}

.login-form .login-mode-hint {
  color: rgba(226,232,240,0.85);
  font-size: 13.5px;
  margin-top: 5px;
}

.field-label {
  color: rgba(248,250,252,0.88);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 13px;
  font-weight: 700;
}

.field-label-muted {
  color: rgba(203,213,225,0.60);
  font-size: 11px;
  font-weight: 600;
}

.login-form .input {
  background: rgba(15,23,42,0.45);
  border: 1px solid rgba(148,163,184,0.22);
  color: #f8fafc;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.login-form .input::placeholder {
  color: rgba(203,213,225,0.45);
}

.login-form .input:focus {
  background: rgba(15,23,42,0.62);
  border-color: rgba(147,197,253,0.55);
  box-shadow: 0 0 0 4px rgba(96,165,250,0.20), inset 0 1px 0 rgba(255,255,255,0.08);
  outline: none;
}

.mfa-code-input {
  text-align: center;
  letter-spacing: 0.18em;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-weight: 700;
}

.pwd-hints {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  font-size: 11.5px;
  color: rgba(203,213,225,0.70);
}

.pwd-strength[hidden] {
  display: none !important;
}

.pwd-bars .pwd-bar {
  background: rgba(255,255,255,0.12);
}

.pwd-bar.on-weak {
  background: #fb923c;
}

.pwd-bar.on-fair {
  background: #fbbf24;
}

.pwd-bar.on-strong {
  background: #34d399;
}

.check {
  color: rgba(248,250,252,0.82);
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  margin: 0;
}

.check input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: #60a5fa;
}

.login-submit {
  width: 100%;
  justify-content: center;
  min-height: 44px;
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  border: 1px solid rgba(255,255,255,0.28);
  color: #fff;
  font-weight: 700;
  box-shadow:
    0 10px 30px rgba(37,99,235,0.55),
    0 4px 12px rgba(37,99,235,0.35),
    inset 0 1px 0 rgba(255,255,255,0.4);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), opacity var(--dur) var(--ease);
}

.login-submit:hover {
  transform: translateY(-1px);
  box-shadow:
    0 14px 38px rgba(37,99,235,0.65),
    0 6px 16px rgba(37,99,235,0.45),
    inset 0 1px 0 rgba(255,255,255,0.5);
}

.login-submit:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

.login-foot {
  color: rgba(248,250,252,0.55);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 11.5px;
}

.login-alert {
  display: none;
  min-height: 0;
  margin: 0;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px;
}

.login-alert.is-visible {
  display: flex;
  background: rgba(239,68,68,0.15);
  border: 1px solid rgba(239,68,68,0.4);
  color: #fca5a5;
  backdrop-filter: blur(10px);
}

.login-alert.is-success {
  display: flex;
  background: rgba(34,197,94,0.14);
  border: 1px solid rgba(34,197,94,0.38);
  color: #bbf7d0;
}

@media (max-width: 1024px) {
  .login-screen {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .login-brand {
    padding: 36px 32px 24px;
    min-height: auto;
    gap: 22px;
  }

  .login-form-wrap {
    padding: 16px 24px 80px;
  }

  .login-headline {
    font-size: 32px;
  }
}

@media (max-width: 640px) {
  .login-brand {
    padding: 28px 20px 20px;
  }

  .login-form-wrap {
    padding: 12px 16px 48px;
  }

  .login-form {
    border-radius: 18px;
    padding: 28px 22px;
  }

  .trust-strip {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .trust-item {
    flex-direction: row;
    text-align: left;
    justify-content: flex-start;
  }

  .pwd-hints,
  .login-foot {
    grid-template-columns: 1fr;
    flex-direction: column;
  }
}
