/* ============================================================
   LOGIN SCREEN – Cross-Device: iOS 14+, Android, Desktop
   ============================================================ */

.login-screen {
  min-height: 100vh;
  min-height: -webkit-fill-available;
  min-height: 100dvh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  /* Safe Area Padding */
  padding-top: calc(var(--sp-6) + env(safe-area-inset-top, 0px));
  padding-bottom: calc(var(--sp-6) + env(safe-area-inset-bottom, 0px));
  padding-left: calc(var(--sp-4) + env(safe-area-inset-left, 0px));
  padding-right: calc(var(--sp-4) + env(safe-area-inset-right, 0px));
  background: var(--bg-base);
  position: relative;
  overflow: hidden;
}

/* Ambient Blobs */
.login-screen::before,
.login-screen::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  -webkit-filter: blur(90px);
  filter: blur(90px);
  opacity: .18;
  pointer-events: none;
}
.login-screen::before {
  width: 480px; height: 480px;
  background: -webkit-radial-gradient(circle, #0A84FF, #0040AA);
  background: radial-gradient(circle, #0A84FF, #0040AA);
  top: -180px; left: -140px;
  -webkit-animation: blobFloat 9s ease-in-out infinite;
  animation: blobFloat 9s ease-in-out infinite;
}
.login-screen::after {
  width: 400px; height: 400px;
  background: -webkit-radial-gradient(circle, #5E5CE6, #003080);
  background: radial-gradient(circle, #5E5CE6, #003080);
  bottom: -110px; right: -90px;
  -webkit-animation: blobFloat 11s ease-in-out infinite reverse;
  animation: blobFloat 11s ease-in-out infinite reverse;
}

/* Login Card */
.login-card {
  background: var(--bg-card);
  border-radius: var(--r-2xl);
  padding: var(--sp-10) var(--sp-8);
  width: 100%;
  max-width: 400px;
  -webkit-box-shadow: var(--shadow-lg);
  box-shadow: var(--shadow-lg);
  position: relative;
  z-index: 1;
  border: 0.5px solid var(--border-strong);
}

[data-theme="light"] .login-card {
  background: rgba(255,255,255,.95);
}

/* Logo */
.login-logo {
  text-align: center;
  margin-bottom: var(--sp-8);
}

.login-logo .nav-brand-icon {
  width: 72px; height: 72px;
  font-size: 2.2rem;
  margin: 0 auto var(--sp-4);
  border-radius: 18px;
  background: -webkit-linear-gradient(315deg, #0A84FF, #003899);
  background: linear-gradient(145deg, #0A84FF, #003899);
  -webkit-box-shadow: 0 8px 24px var(--accent-glow), 0 2px 8px rgba(0,0,0,.2);
  box-shadow: 0 8px 24px var(--accent-glow), 0 2px 8px rgba(0,0,0,.2);
}

.login-logo h1 {
  font-size: var(--text-3xl);
  font-weight: var(--fw-bold);
  letter-spacing: -.04em;
  background: -webkit-linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);
  background: linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  /* Fallback für Browser ohne background-clip: text */
  color: var(--text-primary);
}
@supports (-webkit-background-clip: text) {
  .login-logo h1 { color: transparent; }
}

.login-logo p {
  color: var(--text-secondary);
  font-size: var(--text-base);
  margin-top: var(--sp-1);
}

/* Form */
.login-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: var(--sp-4);
}

.login-form .form-input {
  background: var(--bg-input);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  padding: .75rem 1rem;
  /* iOS: verhindert Auto-Zoom */
  font-size: 16px;
  min-height: 50px;
}

.login-form .btn-primary {
  border-radius: 9999px;
  padding: .85rem 1.5rem;
  font-size: var(--text-base);
  font-weight: var(--fw-semi);
  letter-spacing: -.01em;
  -webkit-box-shadow: 0 4px 16px var(--accent-glow);
  box-shadow: 0 4px 16px var(--accent-glow);
  min-height: 50px;
}

/* Mobile: Sheet von unten */
@media (max-width: 480px) {
  .login-screen {
    -webkit-box-align: flex-end;
    -ms-flex-align: flex-end;
    align-items: flex-end;
    padding: 0;
  }
  .login-card {
    border-radius: var(--r-2xl) var(--r-2xl) 0 0;
    padding: var(--sp-8) var(--sp-5);
    padding-bottom: calc(var(--sp-8) + env(safe-area-inset-bottom, 0px));
    max-width: 100%;
    -webkit-animation: slideInUp .4s cubic-bezier(0.34,1.2,0.64,1) both;
    animation: slideInUp .4s cubic-bezier(0.34,1.2,0.64,1) both;
  }
  /* Sheet-Handle */
  .login-card::before {
    content: '';
    display: block;
    width: 36px; height: 5px;
    background: var(--border-strong);
    border-radius: 9999px;
    margin: 0 auto var(--sp-5);
  }
}

/* Kleine Smartphones */
@media (max-width: 390px) {
  .login-logo .nav-brand-icon { width: 60px; height: 60px; font-size: 1.8rem; }
  .login-logo h1 { font-size: var(--text-2xl); }
  .login-card { padding: var(--sp-6) var(--sp-4); }
}