/* ================================================================
 * RISE Signin Enhancement — innovative Login-Seite
 * ----------------------------------------------------------------
 * Aktiviert sich automatisch, wenn signin-enhance.js die Klasse
 * .rst-signin-active am <body> anbringt (URL match /signin).
 * ================================================================ */

/* ── Aurora-Background: animierter Gradient-Blob-Swirl ────────── */
body.rst-signin-active {
  min-height: 100vh;
  margin: 0;
  position: relative;
  overflow-x: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  background: #0f1424 !important;   /* Dark-Default */
}
html:not([data-theme="dark"]) body.rst-signin-active {
  background: linear-gradient(135deg, #eef2ff 0%, #fce7f3 50%, #e0f2fe 100%) !important;
}

body.rst-signin-active::before,
body.rst-signin-active::after {
  content: '';
  position: fixed;
  border-radius: 50%;
  filter: blur(110px);
  opacity: .55;
  pointer-events: none;
  z-index: 0;
  animation: rstAuroraFloat 22s ease-in-out infinite;
}
body.rst-signin-active::before {
  width: 45vmax; height: 45vmax;
  background: radial-gradient(circle at 30% 30%, #6366f1, transparent 60%);
  top: -10vmax; left: -10vmax;
  animation-delay: 0s;
}
body.rst-signin-active::after {
  width: 50vmax; height: 50vmax;
  background: radial-gradient(circle at 70% 70%, #ec4899, transparent 60%);
  bottom: -15vmax; right: -10vmax;
  animation-delay: -11s;
}
body.rst-signin-active > .rst-signin-blob {
  position: fixed;
  width: 40vmax; height: 40vmax;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #06b6d4, transparent 60%);
  filter: blur(110px);
  opacity: .45;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: rstAuroraFloat 28s ease-in-out infinite -6s;
  pointer-events: none;
  z-index: 0;
}
/* Light-Mode: Blobs werden wärmer und etwas heller */
html:not([data-theme="dark"]) body.rst-signin-active::before {
  background: radial-gradient(circle at 30% 30%, #a5b4fc, transparent 60%);
  opacity: .75;
}
html:not([data-theme="dark"]) body.rst-signin-active::after {
  background: radial-gradient(circle at 70% 70%, #f9a8d4, transparent 60%);
  opacity: .7;
}
html:not([data-theme="dark"]) body.rst-signin-active > .rst-signin-blob {
  background: radial-gradient(circle at 50% 50%, #7dd3fc, transparent 60%);
  opacity: .55;
}
@keyframes rstAuroraFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25%      { transform: translate(10vmax, 8vmax) scale(1.1); }
  50%      { transform: translate(-8vmax, 12vmax) scale(.95); }
  75%      { transform: translate(12vmax, -6vmax) scale(1.05); }
}

/* ── Karte: Glassmorphism, zentriert, einladende Animation ────── */
body.rst-signin-active .main-content,
body.rst-signin-active .center-wrapper,
body.rst-signin-active .signin-wrapper {
  min-height: auto !important;
  width: auto !important;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
}

/* Nur die ÄUSSERE Karte wird zum Glass-Container — wir markieren
   sie per JS mit .rst-signin-card, damit nicht alle Nachfahren
   mit einem zweiten Karten-Look überdeckt werden. */
body.rst-signin-active .rst-signin-card {
  position: relative;
  z-index: 2;
  margin: 0 auto !important;
  width: 100% !important;
  max-width: 440px !important;
  min-width: 0 !important;
  background: rgba(255,255,255,.06) !important;
  backdrop-filter: blur(28px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 24px !important;
  padding: 44px 38px 36px !important;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,.6),
              0 8px 20px -8px rgba(99,102,241,.3),
              inset 0 1px 0 rgba(255,255,255,.2) !important;
  color: #f1f5f9 !important;
  animation: rstSigninIn .6s cubic-bezier(.2,.9,.2,1.1) .05s both;
}
/* Light-Mode-Version: weicheres Weiß auf warmem Backdrop */
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-card {
  background: rgba(255,255,255,.75) !important;
  backdrop-filter: blur(28px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  box-shadow: 0 30px 60px -20px rgba(99,102,241,.25),
              0 10px 24px -10px rgba(236,72,153,.15),
              inset 0 1px 0 rgba(255,255,255,.8) !important;
  color: #1e293b !important;
}

/* Verschachtelte Karten/Panels innerhalb der Signin-Card entfernen */
body.rst-signin-active .rst-signin-card .card,
body.rst-signin-active .rst-signin-card .panel,
body.rst-signin-active .rst-signin-card .panel-body,
body.rst-signin-active .rst-signin-card .box,
body.rst-signin-active .rst-signin-card .box-body,
body.rst-signin-active .rst-signin-card .well {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
@keyframes rstSigninIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Entfernt Default-Hintergrund von RISE-Body-Wrappern */
body.rst-signin-active .body_bg,
body.rst-signin-active .signin_background {
  background: transparent !important;
}

/* ── Logo + Headline ──────────────────────────────────────────── */
body.rst-signin-active .signin-logo,
body.rst-signin-active .logo-container,
body.rst-signin-active .login-logo,
body.rst-signin-active .signin_form_bg .logo img {
  max-width: 180px !important;
  margin: 0 auto 16px !important;
  display: block !important;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.2));
}
body.rst-signin-active .signin_form_bg hr,
body.rst-signin-active .login-form hr {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(99,102,241,.4), transparent) !important;
  margin: 20px 0 24px !important;
}

/* ── Form-Inputs: Floating-Label-ähnliche Pills ───────────────── */
body.rst-signin-active input[type="email"],
body.rst-signin-active input[type="password"],
body.rst-signin-active input[type="text"][name="email"],
body.rst-signin-active input[name="password"],
body.rst-signin-active .form-control {
  width: 100% !important;
  height: 52px !important;
  padding: 0 18px !important;
  margin-bottom: 14px !important;
  background: rgba(255,255,255,.06) !important;
  color: #f1f5f9 !important;
  border: 1.5px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  transition: all .2s ease !important;
  box-sizing: border-box !important;
  backdrop-filter: blur(10px) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.15) !important;
}
body.rst-signin-active input[type="email"]::placeholder,
body.rst-signin-active input[type="password"]::placeholder,
body.rst-signin-active input[name="password"]::placeholder,
body.rst-signin-active .form-control::placeholder {
  color: #94a3b8 !important;
  font-weight: 400 !important;
}
body.rst-signin-active input[type="email"]:focus,
body.rst-signin-active input[type="password"]:focus,
body.rst-signin-active input[name="password"]:focus,
body.rst-signin-active .form-control:focus {
  outline: none !important;
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(99,102,241,.6) !important;
  box-shadow: 0 0 0 4px rgba(99,102,241,.18),
              inset 0 1px 2px rgba(0,0,0,.15) !important;
  transform: translateY(-1px);
}
body.rst-signin-active input:-webkit-autofill {
  -webkit-text-fill-color: #f1f5f9 !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(30,36,64,.9) inset !important;
  caret-color: #f1f5f9;
}

/* Light-Mode-Inputs: Sanftes Weiß mit Indigo-Akzent beim Fokus */
html:not([data-theme="dark"]) body.rst-signin-active input[type="email"],
html:not([data-theme="dark"]) body.rst-signin-active input[type="password"],
html:not([data-theme="dark"]) body.rst-signin-active input[name="password"],
html:not([data-theme="dark"]) body.rst-signin-active .form-control {
  background: rgba(255,255,255,.9) !important;
  color: #0f172a !important;
  border: 1.5px solid rgba(99,102,241,.15) !important;
  box-shadow: inset 0 1px 3px rgba(99,102,241,.06),
              0 2px 6px rgba(99,102,241,.06) !important;
}
html:not([data-theme="dark"]) body.rst-signin-active input[type="email"]::placeholder,
html:not([data-theme="dark"]) body.rst-signin-active input[type="password"]::placeholder,
html:not([data-theme="dark"]) body.rst-signin-active .form-control::placeholder {
  color: #94a3b8 !important;
}
html:not([data-theme="dark"]) body.rst-signin-active input[type="email"]:focus,
html:not([data-theme="dark"]) body.rst-signin-active input[type="password"]:focus,
html:not([data-theme="dark"]) body.rst-signin-active .form-control:focus {
  background: #fff !important;
  border-color: rgba(99,102,241,.55) !important;
  box-shadow: 0 0 0 4px rgba(99,102,241,.15),
              0 4px 12px rgba(99,102,241,.12) !important;
}
html:not([data-theme="dark"]) body.rst-signin-active input:-webkit-autofill {
  -webkit-text-fill-color: #0f172a !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  caret-color: #6366f1;
}

/* ── Passwort-Feld mit Eye-Toggle ─────────────────────────────── */
.rst-signin-pw-wrap {
  position: relative;
  width: 100%;
  margin-bottom: 14px;
}
.rst-signin-pw-wrap input {
  margin-bottom: 0 !important;
  padding-right: 52px !important;
}
.rst-signin-pw-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  width: 38px; height: 38px;
  border-radius: 10px;
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease;
}
.rst-signin-pw-toggle:hover {
  background: rgba(99,102,241,.15);
  color: #a5b4fc;
}
.rst-signin-pw-toggle svg {
  width: 20px; height: 20px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}

/* ── „Angemeldet bleiben" Checkbox + Forgot Link in einer Zeile ── */
.rst-signin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 20px;
  font-size: 13.5px;
}
.rst-signin-remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #cbd5e1;
  cursor: pointer;
  user-select: none;
}
.rst-signin-remember input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px; height: 20px;
  border-radius: 6px;
  border: 1.5px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.04);
  cursor: pointer;
  position: relative;
  transition: all .15s ease;
  flex: 0 0 auto;
  margin: 0 !important;
}
.rst-signin-remember input[type="checkbox"]:checked {
  background: linear-gradient(135deg,#6366f1,#8b5cf6);
  border-color: #6366f1;
}
.rst-signin-remember input[type="checkbox"]:checked::after {
  content: '✓';
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}

/* ── Submit-Button: Gradient mit Hover-Glow + Loading-Spinner ─── */
body.rst-signin-active button[type="submit"],
body.rst-signin-active input[type="submit"],
body.rst-signin-active .btn-primary {
  width: 100% !important;
  height: 52px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: linear-gradient(135deg,#6366f1 0%,#8b5cf6 55%,#ec4899 100%) !important;
  background-size: 200% 100% !important;
  color: #fff !important;
  border: none !important;
  border-radius: 14px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: .3px !important;
  cursor: pointer !important;
  transition: all .2s ease !important;
  box-shadow: 0 12px 30px -10px rgba(99,102,241,.55),
              0 2px 4px rgba(0,0,0,.15) !important;
  position: relative;
  overflow: hidden;
}
body.rst-signin-active button[type="submit"]:hover,
body.rst-signin-active input[type="submit"]:hover,
body.rst-signin-active .btn-primary:hover {
  background-position: 100% 0 !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -8px rgba(99,102,241,.75),
              0 2px 4px rgba(0,0,0,.15) !important;
}
body.rst-signin-active button[type="submit"]:active,
body.rst-signin-active input[type="submit"]:active,
body.rst-signin-active .btn-primary:active {
  transform: translateY(0);
}
body.rst-signin-active button.rst-signin-loading,
body.rst-signin-active input.rst-signin-loading {
  pointer-events: none;
  opacity: .88;
}
body.rst-signin-active button.rst-signin-loading::after,
body.rst-signin-active input.rst-signin-loading::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 22px; height: 22px;
  margin-top: -11px; margin-left: -11px;
  border: 2.5px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: rstSpin .8s linear infinite;
}
body.rst-signin-active button.rst-signin-loading {
  color: transparent !important;
}
@keyframes rstSpin {
  to { transform: rotate(360deg); }
}

/* ── Links: Passwort vergessen + Registrieren ──────────────────── */
body.rst-signin-active .rst-signin-card a,
body.rst-signin-active a[href*="forgot_password"],
body.rst-signin-active a[href*="signup"],
body.rst-signin-active .forgot-password-link {
  color: #a5b4fc !important;
  text-decoration: none;
  font-weight: 600;
  transition: color .15s ease;
}
body.rst-signin-active .rst-signin-card a:hover,
body.rst-signin-active a[href*="forgot_password"]:hover,
body.rst-signin-active a[href*="signup"]:hover {
  color: #c7d2fe !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.rst-signin-active p,
body.rst-signin-active label {
  color: #cbd5e1 !important;
  font-size: 14px;
}

/* Light-Mode: dunkle Basis-Texte + kräftige Indigo-Links */
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-card a,
html:not([data-theme="dark"]) body.rst-signin-active a[href*="forgot_password"],
html:not([data-theme="dark"]) body.rst-signin-active a[href*="signup"] {
  color: #4f46e5 !important;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-card a:hover,
html:not([data-theme="dark"]) body.rst-signin-active a[href*="forgot_password"]:hover,
html:not([data-theme="dark"]) body.rst-signin-active a[href*="signup"]:hover {
  color: #4338ca !important;
}
html:not([data-theme="dark"]) body.rst-signin-active p,
html:not([data-theme="dark"]) body.rst-signin-active label,
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-remember,
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-remember span {
  color: #475569 !important;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-remember input[type="checkbox"] {
  border-color: rgba(99,102,241,.35);
  background: #fff;
}
html:not([data-theme="dark"]) body.rst-signin-active hr {
  background: linear-gradient(90deg, transparent, rgba(99,102,241,.28), transparent) !important;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-pw-toggle {
  color: #64748b;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-pw-toggle:hover {
  background: rgba(99,102,241,.1);
  color: #4338ca;
}

/* ── Validierungs-/Fehlermeldung ──────────────────────────────── */
body.rst-signin-active .alert,
body.rst-signin-active [class*="error"]:not(.rst-signin-loading),
body.rst-signin-active .ajax-response {
  background: rgba(239,68,68,.12) !important;
  color: #fca5a5 !important;
  border: 1px solid rgba(239,68,68,.3) !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
  font-size: 13.5px !important;
  margin-bottom: 14px !important;
  animation: rstShake .4s ease;
}
@keyframes rstShake {
  0%,100% { transform: translateX(0); }
  20%     { transform: translateX(-4px); }
  40%     { transform: translateX(4px); }
  60%     { transform: translateX(-3px); }
  80%     { transform: translateX(3px); }
}

/* ── Utility-Leiste oben rechts: Sprache + Theme-Toggle ────────── */
.rst-signin-utilbar {
  position: fixed;
  top: 20px; right: 20px;
  z-index: 10;
  display: flex;
  gap: 10px;
  align-items: center;
}
.rst-signin-utilbar button,
.rst-signin-utilbar select {
  all: unset;
  cursor: pointer;
  height: 38px;
  min-width: 38px;
  padding: 0 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(20px);
  color: #e2e8f0;
  font-weight: 600;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all .15s ease;
}
.rst-signin-utilbar button:hover,
.rst-signin-utilbar select:hover {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.2);
}
.rst-signin-utilbar button svg {
  width: 18px; height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}
.rst-signin-lang {
  padding-right: 10px !important;
  cursor: pointer;
}
.rst-signin-lang-opts {
  position: absolute;
  top: 46px;
  right: 0;
  min-width: 140px;
  background: rgba(15,20,36,.92);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 20px 40px -16px rgba(0,0,0,.6);
  display: none;
  flex-direction: column;
  gap: 2px;
}
.rst-signin-lang-opts.open { display: flex; }
.rst-signin-lang-opts button {
  all: unset;
  cursor: pointer;
  padding: 10px 12px;
  border-radius: 8px;
  color: #e2e8f0;
  font-size: 13.5px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background .12s ease;
}
.rst-signin-lang-opts button:hover { background: rgba(99,102,241,.2); }
.rst-signin-lang-opts button.active {
  background: rgba(99,102,241,.3);
  color: #fff;
  font-weight: 700;
}

/* Light-Mode-Util-Bar */
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-utilbar button,
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-utilbar select,
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang {
  background: rgba(255,255,255,.7) !important;
  border-color: rgba(99,102,241,.18) !important;
  color: #1e293b !important;
  box-shadow: 0 2px 10px rgba(99,102,241,.08);
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-utilbar button:hover,
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang:hover {
  background: #fff !important;
  border-color: rgba(99,102,241,.32) !important;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang-opts {
  background: rgba(255,255,255,.95);
  border-color: rgba(99,102,241,.18);
  box-shadow: 0 20px 40px -16px rgba(99,102,241,.25);
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang-opts button {
  color: #1e293b;
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang-opts button:hover {
  background: rgba(99,102,241,.1);
}
html:not([data-theme="dark"]) body.rst-signin-active .rst-signin-lang-opts button.active {
  background: linear-gradient(135deg,#6366f1,#8b5cf6) !important;
  color: #fff !important;
}

/* ── Footer (AGB / Impressum) unaufdringlich ──────────────────── */
body.rst-signin-active footer,
body.rst-signin-active .footer {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  padding: 14px 20px;
  background: transparent !important;
  color: #94a3b8 !important;
  font-size: 12.5px;
  display: flex;
  justify-content: space-between;
  z-index: 3;
  pointer-events: none;
}
body.rst-signin-active footer a,
body.rst-signin-active .footer a {
  color: #cbd5e1 !important;
  pointer-events: auto;
  margin-left: 12px;
}
html:not([data-theme="dark"]) body.rst-signin-active footer,
html:not([data-theme="dark"]) body.rst-signin-active .footer {
  color: #64748b !important;
}
html:not([data-theme="dark"]) body.rst-signin-active footer a,
html:not([data-theme="dark"]) body.rst-signin-active .footer a {
  color: #475569 !important;
}

/* ── Mobile: weniger Padding, ganze Karten-Breite ─────────────── */
@media (max-width: 520px) {
  body.rst-signin-active { padding: 20px 14px; }
  body.rst-signin-active .signin_form_bg,
  body.rst-signin-active .login-form,
  body.rst-signin-active .card {
    padding: 32px 24px !important;
    border-radius: 20px !important;
  }
  .rst-signin-utilbar { top: 12px; right: 12px; }
  body.rst-signin-active footer,
  body.rst-signin-active .footer {
    flex-direction: column;
    gap: 4px;
    text-align: center;
    align-items: center;
  }
}

/* ── Light-Mode-Overrides (falls jemand :not(dark) nutzt) ──────── */
html:not([data-theme="dark"]) body.rst-signin-active {
  background: #0f1424 !important;
  /* Login-Enhancer ist bewusst immer „dark", passt zum Aurora-BG */
}

/* Reduced motion: Animationen abschalten */
@media (prefers-reduced-motion: reduce) {
  body.rst-signin-active::before,
  body.rst-signin-active::after,
  body.rst-signin-active > .rst-signin-blob {
    animation: none !important;
  }
  body.rst-signin-active .signin_form_bg,
  body.rst-signin-active .login-form,
  body.rst-signin-active .card {
    animation: none !important;
  }
}

/* ================================================================
 * Light-Mode Overrides v2 — klassenbasiert (.rst-signin-light)
 * ----------------------------------------------------------------
 * Die alten html:not([data-theme="dark"]) Selektoren haben bei
 * manchen RISE-Versionen nicht gegriffen, weil das data-theme-
 * Attribut von RISE selbst gesetzt wird. Wir schreiben das
 * ganze Light-Mode jetzt über die Body-Klasse .rst-signin-light,
 * die vom JS parallel zum data-theme gesetzt wird.
 * ================================================================ */
body.rst-signin-active.rst-signin-light {
  background: linear-gradient(135deg, #eef2ff 0%, #fce7f3 50%, #e0f2fe 100%) !important;
}
body.rst-signin-active.rst-signin-light::before {
  background: radial-gradient(circle at 30% 30%, #a5b4fc, transparent 60%);
  opacity: .85;
}
body.rst-signin-active.rst-signin-light::after {
  background: radial-gradient(circle at 70% 70%, #f9a8d4, transparent 60%);
  opacity: .8;
}
body.rst-signin-active.rst-signin-light > .rst-signin-blob {
  background: radial-gradient(circle at 50% 50%, #7dd3fc, transparent 60%);
  opacity: .65;
}

/* Glass-Card im Light-Mode: kräftiges Weiß, weiche farbige Schatten */
body.rst-signin-active.rst-signin-light .rst-signin-card {
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(30px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,.95) !important;
  box-shadow:
    0 30px 60px -16px rgba(99,102,241,.3),
    0 12px 24px -8px rgba(236,72,153,.18),
    inset 0 1px 0 rgba(255,255,255,.95) !important;
  color: #0f172a !important;
}

/* Logo sichtbar machen — in Light-Mode brauchen wir das
   schwarze Logo, in Dark-Mode einen weichen Drop-Shadow der es
   kontrastreicher macht. */
body.rst-signin-active.rst-signin-dark .rst-signin-card img[src*="logo"],
body.rst-signin-active.rst-signin-dark .rst-signin-card .logo img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,.3)) !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-card img[src*="logo"],
body.rst-signin-active.rst-signin-light .rst-signin-card .logo img {
  filter: drop-shadow(0 2px 6px rgba(99,102,241,.2)) !important;
}

/* Trenner — im Light-Mode kräftigerer Indigo-Hauch */
body.rst-signin-active.rst-signin-light hr {
  background: linear-gradient(90deg, transparent, rgba(99,102,241,.35), transparent) !important;
  opacity: 1 !important;
}

/* Inputs — kräftigeres Weiß + klarer Ring beim Fokus */
body.rst-signin-active.rst-signin-light input[type="email"],
body.rst-signin-active.rst-signin-light input[type="password"],
body.rst-signin-active.rst-signin-light input[name="password"],
body.rst-signin-active.rst-signin-light .form-control {
  background: #fff !important;
  color: #0f172a !important;
  border: 1.5px solid rgba(99,102,241,.22) !important;
  box-shadow:
    inset 0 1px 3px rgba(99,102,241,.06),
    0 1px 2px rgba(0,0,0,.02) !important;
}
body.rst-signin-active.rst-signin-light input[type="email"]::placeholder,
body.rst-signin-active.rst-signin-light input[type="password"]::placeholder,
body.rst-signin-active.rst-signin-light .form-control::placeholder {
  color: #94a3b8 !important;
}
body.rst-signin-active.rst-signin-light input[type="email"]:focus,
body.rst-signin-active.rst-signin-light input[type="password"]:focus,
body.rst-signin-active.rst-signin-light .form-control:focus {
  border-color: rgba(99,102,241,.6) !important;
  box-shadow:
    0 0 0 4px rgba(99,102,241,.15),
    0 4px 12px rgba(99,102,241,.15) !important;
}
body.rst-signin-active.rst-signin-light input:-webkit-autofill {
  -webkit-text-fill-color: #0f172a !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  caret-color: #6366f1;
}

/* Password-Toggle */
body.rst-signin-active.rst-signin-light .rst-signin-pw-toggle {
  color: #64748b !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-pw-toggle:hover {
  background: rgba(99,102,241,.12) !important;
  color: #4338ca !important;
}

/* Remember-Checkbox */
body.rst-signin-active.rst-signin-light .rst-signin-remember,
body.rst-signin-active.rst-signin-light .rst-signin-remember span {
  color: #334155 !important;
  font-weight: 500;
}
body.rst-signin-active.rst-signin-light .rst-signin-remember input[type="checkbox"] {
  border-color: rgba(99,102,241,.4) !important;
  background: #fff !important;
}

/* Texte + Paragraphe im Card — dunkles Slate für gute Lesbarkeit */
body.rst-signin-active.rst-signin-light .rst-signin-card,
body.rst-signin-active.rst-signin-light .rst-signin-card p,
body.rst-signin-active.rst-signin-light .rst-signin-card label,
body.rst-signin-active.rst-signin-light .rst-signin-card span {
  color: #1e293b !important;
}

/* Links im Card */
body.rst-signin-active.rst-signin-light .rst-signin-card a,
body.rst-signin-active.rst-signin-light a[href*="forgot_password"],
body.rst-signin-active.rst-signin-light a[href*="signup"] {
  color: #4f46e5 !important;
  font-weight: 700 !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-card a:hover,
body.rst-signin-active.rst-signin-light a[href*="forgot_password"]:hover,
body.rst-signin-active.rst-signin-light a[href*="signup"]:hover {
  color: #4338ca !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Submit-Button mit kräftigerem Shadow im Light-Mode */
body.rst-signin-active.rst-signin-light button[type="submit"],
body.rst-signin-active.rst-signin-light input[type="submit"],
body.rst-signin-active.rst-signin-light .btn-primary {
  box-shadow:
    0 14px 30px -8px rgba(99,102,241,.5),
    0 4px 8px rgba(0,0,0,.06) !important;
}

/* Utility-Bar (Theme + Sprache) */
body.rst-signin-active.rst-signin-light .rst-signin-utilbar button,
body.rst-signin-active.rst-signin-light .rst-signin-utilbar select,
body.rst-signin-active.rst-signin-light .rst-signin-lang {
  background: rgba(255,255,255,.85) !important;
  border: 1px solid rgba(99,102,241,.2) !important;
  color: #1e293b !important;
  box-shadow: 0 4px 12px rgba(99,102,241,.1);
}
body.rst-signin-active.rst-signin-light .rst-signin-utilbar button:hover,
body.rst-signin-active.rst-signin-light .rst-signin-lang:hover {
  background: #fff !important;
  border-color: rgba(99,102,241,.4) !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-lang-opts {
  background: rgba(255,255,255,.97) !important;
  border-color: rgba(99,102,241,.2) !important;
  box-shadow: 0 20px 40px -16px rgba(99,102,241,.3) !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-lang-opts button {
  color: #1e293b !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-lang-opts button:hover {
  background: rgba(99,102,241,.12) !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-lang-opts button.active {
  background: linear-gradient(135deg,#6366f1,#8b5cf6) !important;
  color: #fff !important;
}

/* ── Footer (Content Agency UG ©, AGB, Impressum) ──────────────── */
/* Light-Mode: dunkles Slate auf hellem BG → gut lesbar */
body.rst-signin-active.rst-signin-light footer,
body.rst-signin-active.rst-signin-light .footer {
  color: #334155 !important;
  font-weight: 500;
}
body.rst-signin-active.rst-signin-light footer a,
body.rst-signin-active.rst-signin-light .footer a {
  color: #4f46e5 !important;
  font-weight: 600;
}
body.rst-signin-active.rst-signin-light footer a:hover,
body.rst-signin-active.rst-signin-light .footer a:hover {
  color: #4338ca !important;
  text-decoration: underline;
}

/* Dark-Mode: helles Slate, damit Footer lesbar bleibt */
body.rst-signin-active.rst-signin-dark footer,
body.rst-signin-active.rst-signin-dark .footer {
  color: #cbd5e1 !important;
}
body.rst-signin-active.rst-signin-dark footer a,
body.rst-signin-active.rst-signin-dark .footer a {
  color: #a5b4fc !important;
}

/* Logo-Fallback: falls kein <img> vorhanden (reine Textzeile),
   bekommt sie trotzdem guten Kontrast in beiden Modi */
body.rst-signin-active.rst-signin-light .rst-signin-card h1,
body.rst-signin-active.rst-signin-light .rst-signin-card h2,
body.rst-signin-active.rst-signin-light .rst-signin-card h3 {
  color: #0f172a !important;
}
body.rst-signin-active.rst-signin-dark .rst-signin-card h1,
body.rst-signin-active.rst-signin-dark .rst-signin-card h2,
body.rst-signin-active.rst-signin-dark .rst-signin-card h3 {
  color: #f1f5f9 !important;
}

/* ================================================================
 * RISE-SPECIFIC OVERRIDES v3
 * ----------------------------------------------------------------
 * RISE fügt auf der Signin-Seite inline Styles ein, die unsere
 * Regeln überdecken. Wir überschreiben mit maximaler Spezifität
 * + !important:
 *   • inline html,body { background-image: url(...) } → entfernen
 *   • inline .scrollable-page { height: 452px } → entfernen
 *   • .card.bg-white → unser Glass-Look erzwingen
 *   • .form-signin / .scrollable-page → flex-zentrierung
 * ================================================================ */

/* Hintergrund-Bild von RISE deaktivieren — auf html UND body.
   Die inline-<style> hat keine !important → unsere mit
   !important gewinnen. */
html,
html body.rst-signin-active,
html body.signin-page,
body.rst-signin-active,
body.signin-page {
  background-image: none !important;
}

/* Body-Farb-Backgrounds je nach Theme */
html body.rst-signin-active.rst-signin-dark,
body.rst-signin-active.rst-signin-dark {
  background: #0f1424 !important;
  background-image: none !important;
}
html body.rst-signin-active.rst-signin-light,
body.rst-signin-active.rst-signin-light {
  background: linear-gradient(135deg, #eef2ff 0%, #fce7f3 50%, #e0f2fe 100%) !important;
  background-image: linear-gradient(135deg, #eef2ff 0%, #fce7f3 50%, #e0f2fe 100%) !important;
}

/* .scrollable-page wird auf Flex-Centering umgestellt —
   inline-height wird via !important überschrieben, overflow
   bleibt sichtbar, damit nichts abgeschnitten wird. */
body.rst-signin-active .scrollable-page {
  height: auto !important;
  min-height: 100vh !important;
  overflow: visible !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 40px 20px !important;
  position: relative !important;
  z-index: 1 !important;
}
body.rst-signin-active .form-signin {
  width: 100% !important;
  max-width: 460px !important;
  margin: 0 auto !important;
}

/* RISE-Card mit .bg-white zurücksetzen — wir übernehmen das Styling
   selbst via .rst-signin-card. */
body.rst-signin-active .form-signin .card.bg-white,
body.rst-signin-active .form-signin .rst-signin-card {
  background: rgba(255,255,255,.06) !important;
  background-color: rgba(255,255,255,.06) !important;
}
body.rst-signin-active.rst-signin-light .form-signin .card.bg-white,
body.rst-signin-active.rst-signin-light .form-signin .rst-signin-card {
  background: rgba(255,255,255,.88) !important;
  background-color: rgba(255,255,255,.88) !important;
}
body.rst-signin-active.rst-signin-dark .form-signin .card.bg-white,
body.rst-signin-active.rst-signin-dark .form-signin .rst-signin-card {
  background: rgba(255,255,255,.06) !important;
  background-color: rgba(255,255,255,.06) !important;
}

/* RISE-interne Card-Header + Card-Body → transparent, damit unser
   Glass-Container durchscheint */
body.rst-signin-active .rst-signin-card .card-header,
body.rst-signin-active .rst-signin-card .card-body {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.rst-signin-active .rst-signin-card .card-header {
  padding: 0 0 16px 0 !important;
}
body.rst-signin-active .rst-signin-card .card-body {
  padding: 0 !important;
}

/* RISE-Input `.form-control.p10` → unser Pill-Look */
body.rst-signin-active .rst-signin-card .form-group {
  margin-bottom: 14px !important;
}
body.rst-signin-active .rst-signin-card .form-control.p10 {
  padding: 0 18px !important;
}

/* RISE-Submit-Button `.w-100.btn.btn-lg.btn-primary` */
body.rst-signin-active .rst-signin-card button[type="submit"].btn,
body.rst-signin-active .rst-signin-card .btn-primary.btn-lg {
  width: 100% !important;
  margin-top: 6px !important;
  margin-bottom: 0 !important;
}

/* „Passwort vergessen" + „Registrieren" Abstände aufgeräumt */
body.rst-signin-active .rst-signin-card .mt5,
body.rst-signin-active .rst-signin-card .mt20 {
  text-align: center;
  margin-top: 14px !important;
}

/* Footer-Alignment im RISE-Layout (float-start/float-end) */
body.rst-signin-active .footer {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  padding: 14px 22px !important;
  background: transparent !important;
  z-index: 3;
  pointer-events: none;
}
body.rst-signin-active .footer .container-fluid {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  pointer-events: auto;
}
body.rst-signin-active .footer .float-start,
body.rst-signin-active .footer .float-end {
  float: none !important;
}
body.rst-signin-active .footer a {
  margin-left: 14px;
}

/* RISE-Sidebar/Topbar komplett raus auf Signin-Seite (falls
   versehentlich eingebunden) — auf Signin sehen wir nur die Form */
body.rst-signin-active .navbar,
body.rst-signin-active .sidebar,
body.rst-signin-active #header-bar,
body.rst-signin-active .admin-top-bar {
  display: none !important;
}

/* Autofill-Farben je Theme */
body.rst-signin-active.rst-signin-dark .rst-signin-card input:-webkit-autofill,
body.rst-signin-active.rst-signin-dark .rst-signin-card input:-webkit-autofill:hover,
body.rst-signin-active.rst-signin-dark .rst-signin-card input:-webkit-autofill:focus {
  -webkit-text-fill-color: #f1f5f9 !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(30,36,64,.9) inset !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-card input:-webkit-autofill,
body.rst-signin-active.rst-signin-light .rst-signin-card input:-webkit-autofill:hover,
body.rst-signin-active.rst-signin-light .rst-signin-card input:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f172a !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
}

/* Logo-Kontrast: im Dark-Mode invertieren, damit das schwarze
   „CONTENT AGENCY"-Logo auf dunklem BG sichtbar wird */
body.rst-signin-active.rst-signin-dark .rst-signin-card .card-header img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(99,102,241,.5)) !important;
  max-width: 180px !important;
  margin: 4px auto !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-card .card-header img {
  filter: drop-shadow(0 2px 6px rgba(99,102,241,.18)) !important;
  max-width: 200px !important;
  margin: 4px auto !important;
}
body.rst-signin-active .rst-signin-card .card-header img {
  display: block !important;
}

/* Scrollbar-Wrapper (perfect-scrollbar) darf keine eigene Height
   haben, damit unser Flex-Layout greift */
body.rst-signin-active .ps,
body.rst-signin-active .ps__rail-y,
body.rst-signin-active .ps__rail-x {
  display: none !important;
}

/* ================================================================
 * Checkbox „Angemeldet bleiben" — Light-Mode :checked Fix
 * ----------------------------------------------------------------
 * Der vorherige Light-Mode-Override mit !important auf background
 * blockierte den :checked-Pseudo-Class-Gradient. Jetzt explizit
 * :checked mit höherer Spezifität + !important.
 * ================================================================ */
body.rst-signin-active.rst-signin-light .rst-signin-remember input[type="checkbox"]:checked,
body.rst-signin-active.rst-signin-dark  .rst-signin-remember input[type="checkbox"]:checked,
body.rst-signin-active .rst-signin-remember input[type="checkbox"]:checked {
  background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
  background-color: #6366f1 !important;
  border-color: #6366f1 !important;
}
body.rst-signin-active.rst-signin-light .rst-signin-remember input[type="checkbox"]:checked::after,
body.rst-signin-active.rst-signin-dark  .rst-signin-remember input[type="checkbox"]:checked::after,
body.rst-signin-active .rst-signin-remember input[type="checkbox"]:checked::after {
  content: '✓';
  color: #fff !important;
  font-size: 13px;
  font-weight: 900;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
}

/* Focus-Ring für Barrierefreiheit */
body.rst-signin-active .rst-signin-remember input[type="checkbox"]:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(99,102,241,.3) !important;
}
