/* Patch 438: ruhige Modernisierung nur der oeffentlichen Anmeldeseite.
   Alle anderen Seiten / Navigationsfunktionen behalten ihren Stil. */
body.public-login-route main.login-only-page {
  margin-top: 24px;
  padding-bottom: 48px;
}
body.public-login-route .public-login-card {
  max-width: 860px;
  overflow: hidden;
  border: 1px solid rgba(187, 213, 233, .85) !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: 0 14px 36px rgba(19, 49, 77, .13), 0 2px 7px rgba(26, 64, 100, .07) !important;
}
body.public-login-route .public-login-heading {
  position: relative;
  isolation: isolate;
  padding: 30px 38px 28px;
  overflow: hidden;
  background: linear-gradient(108deg, #134f9f 0%, #1c6ab3 47%, #3295c1 76%, #39c3b4 100%) !important;
}
body.public-login-route .public-login-heading::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 63%;
  height: 155px;
  right: -6%;
  top: -68px;
  border-radius: 0 0 45% 65%;
  background: linear-gradient(112deg, rgba(16, 61, 127, .17), rgba(5, 58, 110, .25));
  transform: rotate(-7deg);
  pointer-events: none;
}
body.public-login-route .public-login-heading > .eyebrow {
  color: #eafaff !important;
  font-weight: 600 !important;
  letter-spacing: .06em;
}
body.public-login-route .public-login-heading h1 {
  color: #fff !important;
  font-size: clamp(1.65rem, 2.3vw, 2.15rem);
  font-weight: 700;
}
body.public-login-route .public-login-heading .public-login-intro {
  color: #f3fbff !important;
  font-size: .94rem;
}
body.public-login-route .public-login-form {
  margin: 0 38px;
  padding: 25px 0 0;
  border-top: 0;
  gap: 14px;
}
body.public-login-route .public-login-form > label.modern-login-field {
  display: block;
  margin: 0;
  font-weight: 400;
}
body.public-login-route .modern-login-field-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
body.public-login-route .modern-login-input-wrap {
  position: relative;
  display: block;
  width: 100%;
}
body.public-login-route .modern-login-field-icon {
  position: absolute;
  z-index: 1;
  left: 14px;
  top: 50%;
  width: 19px;
  height: 19px;
  transform: translateY(-50%);
  color: #315c7d;
  pointer-events: none;
}
body.public-login-route .public-login-form .modern-login-input-wrap input:not([type='hidden']) {
  min-height: 48px;
  padding: 12px 48px 12px 44px;
  border: 1px solid #c5d7e8 !important;
  border-radius: 9px !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(31, 70, 104, .045) !important;
  font-size: .96rem;
  font-weight: 400;
}
body.public-login-route .public-login-form .modern-login-input-wrap input:focus {
  border-color: #308bbc !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(38, 150, 194, .15) !important;
}
body.public-login-route .modern-login-password-toggle {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  padding: 8px;
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: #315c7d;
  cursor: pointer;
}
body.public-login-route .modern-login-password-toggle svg {
  width: 20px;
  height: 20px;
}
body.public-login-route .modern-login-password-toggle:hover,
body.public-login-route .modern-login-password-toggle:focus-visible {
  background: #edf5fc;
  outline: 2px solid #85b8d9;
  outline-offset: 0;
}
body.public-login-route .public-login-form > .public-login-remember {
  margin: 1px 0 3px;
  font-weight: 400 !important;
  font-size: .86rem;
  color: #344b64;
}
body.public-login-route .public-login-remember input[type='checkbox'] {
  accent-color: #1f71b6;
}
body.public-login-route .public-login-submit {
  min-height: 48px;
  border: none !important;
  border-radius: 25px !important;
  background: linear-gradient(100deg, #1358a8, #257fc4 53%, #32c5b4) !important;
  box-shadow: 0 4px 12px rgba(19, 88, 168, .13);
  font-size: .98rem;
  font-weight: 600;
}
body.public-login-route .public-login-submit:hover,
body.public-login-route .public-login-submit:focus-visible {
  background: linear-gradient(100deg, #124a91, #196eab 53%, #20ad9d) !important;
  color: #fff !important;
  box-shadow: 0 5px 15px rgba(19, 88, 168, .21);
}
body.public-login-route .public-login-support-row {
  margin: 12px 38px 0;
  padding: 0 0 16px;
}
body.public-login-route .login-course-request-card {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin: 0 38px 26px;
  padding: 16px 17px !important;
  border: none !important;
  border-radius: 12px !important;
  background: #eff5fb !important;
  box-shadow: none !important;
}
body.public-login-route .modern-login-info-icon {
  flex: none;
  width: 24px;
  height: 24px;
  color: #3188bc;
  margin-top: 1px;
}
body.public-login-route .login-course-request-copy {
  gap: 3px;
}
body.public-login-route .login-course-request-copy strong {
  color: #193e66;
  font-weight: 650;
}
body.public-login-route .login-course-request-copy span {
  color: #334b65;
  font-weight: 400;
}
body.public-login-route .public-login-card > .alert {
  margin: 12px 38px 0;
  border-radius: 8px !important;
}
body.public-login-route .test-login-panel.compact {
  margin: 0 38px 20px;
  border-radius: 8px;
}
@media (max-width: 700px) {
  body.public-login-route main.login-only-page { margin-top: 15px; }
  body.public-login-route .public-login-card { border-radius: 12px !important; }
  body.public-login-route .public-login-heading { padding: 24px 21px; }
  body.public-login-route .public-login-form { margin: 0 20px; padding-top: 21px; }
  body.public-login-route .public-login-support-row { margin: 12px 20px 0; }
  body.public-login-route .login-course-request-card { margin: 0 20px 22px; padding: 14px !important; }
  body.public-login-route .public-login-card > .alert { margin: 12px 20px 0; }
  body.public-login-route .test-login-panel.compact { margin: 0 20px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  body.public-login-route .public-login-submit { transition: none !important; }
}
