/* PISA-PMA 0.1.165 – eigenständiges, barrierearmes Anmeldelayout.
   Ausschließlich auf der Anmeldeseite aktiv. */
body.pma-auth-page {
  --pma-navy: #102c50;
  --pma-blue: #0e5ca8;
  --pma-ink: #142b4a;
  --pma-border: #afc7df;
  margin: 0 !important;
  padding: clamp(18px, 3vw, 42px) 20px 16px !important;
  min-height: 100vh !important;
  min-height: 100svh !important;
  width: 100% !important;
  box-sizing: border-box !important;
  max-width: none !important;
  background: radial-gradient(ellipse at 11% 12%, #eff8ff 0%, transparent 38%),
              radial-gradient(ellipse at 90% 88%, #dbeafa 0%, transparent 38%),
              linear-gradient(135deg, #f2f8fd 0%, #eaf3fc 54%, #e5f0fb 100%) !important;
  color: var(--pma-ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
  display: flex !important;
  align-items: center !important;
  flex-direction: column !important;
  overflow-x: hidden !important;
  position: relative !important;
  isolation: isolate;
}
body.pma-auth-page *, body.pma-auth-page *::before, body.pma-auth-page *::after { box-sizing: border-box; }
body.pma-auth-page .pma-auth-orb { position: fixed; z-index: -1; pointer-events: none; border-radius: 50%; filter: blur(3px); opacity: .66; }
body.pma-auth-page .pma-auth-orb-one { width: min(62vw, 780px); height: min(62vw, 780px); left: -23vw; bottom: -43vw; background: radial-gradient(circle, #b2d2f1 0%, #d7eafb 55%, transparent 72%); animation: pma-aura-one 19s ease-in-out infinite alternate; }
body.pma-auth-page .pma-auth-orb-two { width: min(55vw, 680px); height: min(55vw, 680px); right: -20vw; top: -31vw; background: radial-gradient(circle, #c6dcf5 0%, #e1edfc 50%, transparent 72%); animation: pma-aura-two 23s ease-in-out infinite alternate; }
body.pma-auth-page .pma-auth-shell {
  position: relative !important;
  display: block !important;
  flex: none !important;
  width: min(1120px, 100%) !important;
  max-width: 1120px !important;
  min-width: 0 !important;
  margin: 0 auto 12px !important;
  padding: clamp(26px, 4.1vw, 52px) clamp(20px, 5.2vw, 68px) 32px !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid #d5e3f1 !important;
  border-radius: 32px !important;
  box-shadow: 0 20px 65px rgba(26,75,123,.12), 0 2px 8px rgba(26,75,123,.035) !important;
  overflow: visible !important;
  animation: pma-arrive .65s both cubic-bezier(.2,.75,.25,1);
}
body.pma-auth-page .pma-auth-shell::before {
  content: ""; height: 3px; width: min(210px,42%);
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  border-radius: 0 0 6px 6px;
  background: linear-gradient(90deg, transparent, #d4ac47 20%, #d4ac47 80%, transparent);
}
body.pma-auth-page .pma-auth-brand {
  display: grid !important;
  grid-template-columns: 155px minmax(0,1fr) 155px !important;
  align-items: center !important;
  column-gap: clamp(10px, 2vw, 25px) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  text-align: center !important;
  overflow: visible !important;
}
body.pma-auth-page .pma-auth-logo {
  display: block !important; width: 145px !important; max-width: 100% !important;
  height: auto !important; max-height: 152px !important;
  object-fit: contain !important; margin: 0 auto !important;
  filter: drop-shadow(0 4px 4px rgba(21,52,92,.07));
  animation: pma-soft-show .65s .18s both ease-out;
}
body.pma-auth-page .pma-auth-brand-center { display: flex !important; min-width: 0 !important; width: 100% !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; }
body.pma-auth-page .pma-auth-wordmark {
  margin: 0 !important; padding: 0 !important;
  font-size: clamp(56px, 6.5vw, 78px) !important;
  font-weight: 850 !important; line-height: 1.06 !important;
  letter-spacing: .015em !important; color: var(--pma-blue) !important;
  text-shadow: none !important; white-space: normal !important;
}
body.pma-auth-page .pma-auth-brand-caption, body.pma-auth-page .pma-auth-product-caption {
  margin: 4px 0 0 !important; padding: 0 !important;
  text-align: center !important; color: #435b7a !important;
  font-weight: 650 !important; line-height: 1.3 !important;
  overflow-wrap: normal !important; white-space: normal !important;
}
body.pma-auth-page .pma-auth-brand-caption { font-size: clamp(14px, 1.35vw, 18px) !important; }
body.pma-auth-page .pma-auth-gold-rule { margin: 15px auto 10px !important; height: 2px !important; width: min(180px, 50%) !important; background: linear-gradient(90deg,transparent,#d3aa42,transparent) !important; }
body.pma-auth-page .pma-auth-product {
  margin: 0 !important; padding: 0 !important;
  font-size: clamp(44px, 5.2vw, 60px) !important; font-weight: 850 !important;
  letter-spacing: .03em !important; line-height: 1.07 !important;
  color: var(--pma-blue) !important; text-shadow: none !important;
}
body.pma-auth-page .pma-auth-product-caption { font-size: clamp(15px, 1.45vw, 19px) !important; }
body.pma-auth-page .pma-auth-signin {
  margin: 0 auto !important; width: min(780px, 100%) !important;
  max-width: 780px !important; min-width: 0 !important;
  padding: clamp(18px, 3vw, 32px) !important;
  background: linear-gradient(180deg, #fbfdff 0%, #f7fbff 100%) !important;
  border: 1px solid #d7e5f3 !important; border-radius: 22px !important;
  box-shadow: 0 8px 24px rgba(16,74,138,.07) !important;
  animation: pma-arrive .65s .13s both cubic-bezier(.2,.75,.25,1);
}
body.pma-auth-page .pma-auth-form { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; display: block !important; }
body.pma-auth-page .pma-auth-field { margin: 0 0 17px !important; }
body.pma-auth-page .pma-auth-field > label {
  display: block !important; text-align: left !important; color: #162c4c !important;
  font-size: 16px !important; line-height: 1.4 !important;
  font-weight: 780 !important; margin: 0 0 7px !important; padding: 0 !important;
}
body.pma-auth-page .pma-auth-input-shell {
  display: flex !important; align-items: center !important; gap: 13px !important;
  width: 100% !important; height: 64px !important;
  padding: 0 16px !important; background: #fff !important;
  border: 2px solid #acc5df !important; border-radius: 13px !important;
  box-shadow: 0 3px 10px rgba(25,84,139,.065) !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
body.pma-auth-page .pma-auth-input-shell:focus-within {
  border-color: #126cb9 !important;
  box-shadow: 0 0 0 4px rgba(30,113,192,.12), 0 5px 16px rgba(23,87,154,.1) !important;
}
body.pma-auth-page .pma-auth-input-icon { display: block !important; flex: 0 0 24px !important; width: 24px !important; height: 24px !important; color: #5d7c9e !important; }
body.pma-auth-page .pma-auth-input-shell > input:not([type="checkbox"]) {
  display: block !important; appearance: none !important;
  width: 100% !important; min-width: 0 !important; flex: 1 1 auto !important;
  margin: 0 !important; padding: 10px 0 !important;
  height: 100% !important; min-height: 0 !important;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  outline: none !important; border-radius: 0 !important;
  color: #193655 !important; font-size: 18px !important;
  font-weight: 600 !important; text-align: left !important;
}
body.pma-auth-page .pma-auth-input-shell > input::placeholder { color: #7c8fa7 !important; font-weight: 500 !important; opacity: 1 !important; }
body.pma-auth-page .pma-auth-eye {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  flex: 0 0 39px !important; width: 39px !important; height: 39px !important;
  margin: 0 -6px 0 0 !important; padding: 7px !important;
  border: 0 !important; border-radius: 9px !important;
  background: transparent !important; color: #47698d !important;
  box-shadow: none !important; cursor: pointer !important;
  transition: background .18s ease, color .18s ease;
}
body.pma-auth-page .pma-auth-eye:hover, body.pma-auth-page .pma-auth-eye:focus-visible { background: #e7f2ff !important; color: #0e5ca8 !important; }
body.pma-auth-page .pma-auth-eye svg { display: block !important; width: 23px !important; height: 23px !important; }
body.pma-auth-page .pma-auth-eye .pma-auth-eye-slash { opacity: 0; }
body.pma-auth-page .pma-auth-eye[aria-pressed="true"] .pma-auth-eye-slash { opacity: 1; }
body.pma-auth-page .pma-auth-forgot { text-align: right !important; margin: 10px 0 0 !important; }
body.pma-auth-page .pma-auth-forgot a { color: #075fae !important; font-size: 15px !important; font-weight: 750 !important; text-decoration: none !important; }
body.pma-auth-page .pma-auth-forgot a:hover { text-decoration: underline !important; }
body.pma-auth-page .pma-auth-remember {
  display: flex !important; width: 100% !important; align-items: center !important;
  justify-content: flex-start !important; gap: 11px !important; margin: 13px 0 0 !important;
  padding: 0 !important; color: #18324f !important;
  font-size: 15px !important; font-weight: 700 !important; line-height: 1.4 !important;
  text-align: left !important; cursor: pointer;
}
body.pma-auth-page .pma-auth-remember input {
  flex: 0 0 auto !important; width: 19px !important; height: 19px !important;
  min-width: 19px !important; margin: 0 !important;
  padding: 0 !important; accent-color: #1674cd !important;
}
body.pma-auth-page .pma-auth-remember-note {
  margin: 8px 0 0 30px !important; padding: 0 !important;
  color: #65778f !important; font-size: 12px !important;
  font-weight: 450 !important; line-height: 1.45 !important;
  text-align: left !important;
}
body.pma-auth-page .pma-auth-submit {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 15px !important; width: 100% !important;
  height: 60px !important; min-height: 60px !important;
  margin: 23px 0 0 !important; padding: 10px 20px !important;
  color: #fff !important; background: linear-gradient(100deg,#0e5598,#147bc5 55%,#0b589f) !important;
  border: 1px solid #0b5caa !important; border-radius: 13px !important;
  font-size: 20px !important; font-weight: 780 !important;
  line-height: 1.3 !important; text-align: center !important;
  box-shadow: 0 9px 22px rgba(14,86,151,.18) !important;
  cursor: pointer !important;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
body.pma-auth-page .pma-auth-submit:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.04) !important;
  box-shadow: 0 13px 27px rgba(14,86,151,.26) !important;
}
body.pma-auth-page .pma-auth-submit:active { transform: translateY(0) !important; }
body.pma-auth-page .pma-auth-submit:focus-visible,
body.pma-auth-page .pma-auth-forgot a:focus-visible,
body.pma-auth-page .pma-auth-eye:focus-visible { outline: 3px solid #d6a947 !important; outline-offset: 3px !important; }
body.pma-auth-page .pma-auth-invite-note {
  color: #64758b !important; font-size: 12px !important; font-weight: 500 !important;
  line-height: 1.4 !important; text-align: center !important;
  margin: 15px 0 0 !important; padding: 0 !important;
}
body.pma-auth-page .pma-auth-signin > .alert {
  max-width: 100% !important; margin: 0 0 14px !important;
  padding: 12px 15px !important; border-radius: 10px !important;
  font-size: 14px !important; text-align: left !important;
}
body.pma-auth-page .login-legal-footer {
  position: static !important; flex: none !important; width: auto !important;
  max-width: 1120px !important; margin: 12px auto 0 !important;
  padding: 4px 8px 8px !important; color: #6b7f96 !important;
  background: none !important; box-shadow: none !important;
  text-align: center !important; font-size: 12px !important;
  display: flex !important; justify-content: center !important; align-items: center !important;
  flex-wrap: wrap !important; gap: 8px !important;
}
body.pma-auth-page .login-legal-footer a { color: #547393 !important; text-decoration: none !important; }
body.pma-auth-page .login-legal-footer a:hover { text-decoration: underline !important; }
@keyframes pma-arrive { from { opacity: 0; transform: translateY(11px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pma-soft-show { from { opacity: 0; } to { opacity: 1; } }
@keyframes pma-aura-one { from { transform: translate(0,0); } to { transform: translate(45px,-14px); } }
@keyframes pma-aura-two { from { transform: translate(0,0); } to { transform: translate(-24px,30px); } }
@media (max-width: 750px) {
  body.pma-auth-page { padding: 16px 12px 12px !important; }
  body.pma-auth-page .pma-auth-shell { border-radius: 22px !important; padding: 23px 18px 24px !important; }
  body.pma-auth-page .pma-auth-brand { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; row-gap: 14px !important; column-gap: 14px !important; margin-bottom: 20px !important; }
  body.pma-auth-page .pma-auth-logo { width: 112px !important; max-height: 112px !important; }
  body.pma-auth-page .pma-auth-logo-left { grid-column: 1; grid-row: 1; }
  body.pma-auth-page .pma-auth-logo-right { grid-column: 2; grid-row: 1; }
  body.pma-auth-page .pma-auth-brand-center { grid-column: 1/-1; grid-row: 2; }
  body.pma-auth-page .pma-auth-wordmark { font-size: 54px !important; }
  body.pma-auth-page .pma-auth-product { font-size: 44px !important; }
  body.pma-auth-page .pma-auth-brand-caption { font-size: 14px !important; }
  body.pma-auth-page .pma-auth-product-caption { font-size: 15px !important; }
  body.pma-auth-page .pma-auth-signin { padding: 20px 17px !important; }
}
@media (max-width: 420px) {
  body.pma-auth-page .pma-auth-input-shell { height: 59px !important; padding: 0 12px !important; gap: 10px !important; }
  body.pma-auth-page .pma-auth-input-shell > input:not([type="checkbox"]) { font-size: 16px !important; }
  body.pma-auth-page .pma-auth-brand-caption { font-size: 13px !important; }
  body.pma-auth-page .pma-auth-remember { font-size: 13px !important; }
  body.pma-auth-page .pma-auth-remember-note { margin-left: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  body.pma-auth-page *, body.pma-auth-page *::before, body.pma-auth-page *::after {
    animation: none !important; transition: none !important;
  }
}

/* PMA 0.1.166: compacte login card, approx. 10-15 percent slimmer on desktop.
   Maintain full-size readable fields and touch-friendly mobile login. */
@media (min-width: 751px) {
  body.pma-auth-page .pma-auth-shell {
    width: min(990px, 100%) !important;
    max-width: 990px !important;
    padding: clamp(24px, 3.4vw, 40px) clamp(20px, 4vw, 54px) 27px !important;
  }
  body.pma-auth-page .pma-auth-brand {
    grid-template-columns: 140px minmax(0, 1fr) 140px !important;
    margin-bottom: 18px !important;
    column-gap: clamp(10px, 1.7vw, 20px) !important;
  }
  body.pma-auth-page .pma-auth-logo {
    width: 126px !important;
    max-height: 132px !important;
  }
  body.pma-auth-page .pma-auth-wordmark { font-size: clamp(54px, 5.3vw, 68px) !important; }
  body.pma-auth-page .pma-auth-product { font-size: clamp(42px, 4.35vw, 53px) !important; }
  body.pma-auth-page .pma-auth-gold-rule { margin: 12px auto 9px !important; }
  body.pma-auth-page .pma-auth-signin {
    width: min(690px, 100%) !important;
    max-width: 690px !important;
    padding: 24px 27px !important;
  }
  body.pma-auth-page .pma-auth-field { margin-bottom: 15px !important; }
  body.pma-auth-page .pma-auth-input-shell { height: 60px !important; }
  body.pma-auth-page .pma-auth-submit {
    height: 56px !important;
    min-height: 56px !important;
    margin-top: 18px !important;
  }
}

/* Small tablets: keep both logos and taglines separated, with no text overlap. */
@media (min-width: 751px) and (max-width: 899px) {
  body.pma-auth-page .pma-auth-brand {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    row-gap: 12px !important;
    margin-bottom: 18px !important;
  }
  body.pma-auth-page .pma-auth-logo { width: 104px !important; max-height: 105px !important; }
  body.pma-auth-page .pma-auth-logo-left { grid-column: 1 !important; grid-row: 1 !important; }
  body.pma-auth-page .pma-auth-logo-right { grid-column: 2 !important; grid-row: 1 !important; }
  body.pma-auth-page .pma-auth-brand-center { grid-column: 1/-1 !important; grid-row: 2 !important; }
  body.pma-auth-page .pma-auth-wordmark { font-size: 54px !important; }
  body.pma-auth-page .pma-auth-product { font-size: 44px !important; }
  body.pma-auth-page .pma-auth-shell { padding: 26px 22px !important; }
  body.pma-auth-page .pma-auth-signin { padding: 22px !important; }
}
