/* KKBI frontend login (TYPO3 12 felogin) -- presentation only. */
/* Select both felogin wrappers and the login form by its TYPO3 logintype field. */
.tx-felogin,
.tx-felogin-login,
.tx-felogin-pi1,
.frame-type-felogin_login,
form:has(input[name="logintype"]) {
  --kkbi-felogin-green: #8cc63f;
  --kkbi-felogin-darkgreen: #689c29;
}

.tx-felogin form,
.tx-felogin-login form,
.tx-felogin-pi1 form,
.frame-type-felogin_login form,
form:has(input[name="logintype"]) {
  width: 100%;
  max-width: 520px;
  margin: 1rem 0 1.5rem;
}

.tx-felogin fieldset,
.tx-felogin-login fieldset,
.tx-felogin-pi1 fieldset,
.frame-type-felogin_login fieldset,
form:has(input[name="logintype"]) fieldset {
  border: 0;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.tx-felogin form label,
.tx-felogin-login form label,
.tx-felogin-pi1 form label,
.frame-type-felogin_login form label,
form:has(input[name="logintype"]) label {
  display: block;
  width: 100%;
  margin: .7rem 0 .35rem;
  font-size: 1rem;
  font-weight: 600;
  color: #303030;
}

.tx-felogin form input[type="text"],
.tx-felogin form input[type="email"],
.tx-felogin form input[type="password"],
.tx-felogin-login form input[type="text"],
.tx-felogin-login form input[type="email"],
.tx-felogin-login form input[type="password"],
.tx-felogin-pi1 form input[type="text"],
.tx-felogin-pi1 form input[type="email"],
.tx-felogin-pi1 form input[type="password"],
.frame-type-felogin_login form input[type="text"],
.frame-type-felogin_login form input[type="email"],
.frame-type-felogin_login form input[type="password"],
form:has(input[name="logintype"]) input[type="text"],
form:has(input[name="logintype"]) input[type="email"],
form:has(input[name="logintype"]) input[type="password"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: .7rem .85rem;
  margin: 0 0 .9rem;
  border: 1px solid #b9bfb6;
  border-radius: 5px;
  background: #fff;
  color: #292929;
  font: inherit;
  line-height: 1.4;
}

.tx-felogin form input:focus-visible,
.tx-felogin-login form input:focus-visible,
.tx-felogin-pi1 form input:focus-visible,
.frame-type-felogin_login form input:focus-visible,
form:has(input[name="logintype"]) input:focus-visible {
  outline: 2px solid #8cc63f;
  outline-offset: 2px;
}

.tx-felogin form button[type="submit"],
.tx-felogin form input[type="submit"],
.tx-felogin-login form button[type="submit"],
.tx-felogin-login form input[type="submit"],
.tx-felogin-pi1 form button[type="submit"],
.tx-felogin-pi1 form input[type="submit"],
.frame-type-felogin_login form button[type="submit"],
.frame-type-felogin_login form input[type="submit"],
form:has(input[name="logintype"]) button[type="submit"],
form:has(input[name="logintype"]) input[type="submit"] {
  display: inline-block;
  width: auto;
  min-width: 155px;
  max-width: 100%;
  min-height: 43px;
  margin: .5rem 0 .65rem;
  padding: .65rem 1.4rem;
  border: 1px solid #67992b;
  border-radius: 5px;
  background: #8cc63f;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.tx-felogin form input[type="submit"]:hover,
.tx-felogin-login form input[type="submit"]:hover,
.tx-felogin-pi1 form input[type="submit"]:hover,
.frame-type-felogin_login form input[type="submit"]:hover,
form:has(input[name="logintype"]) input[type="submit"]:hover {
  background: #689c29;
}

.tx-felogin a,
.tx-felogin-login a,
.tx-felogin-pi1 a,
.frame-type-felogin_login a {
  color: #648e22;
  text-decoration: underline;
  text-underline-offset: .15em;
}

@media (max-width: 575px) {
  .tx-felogin form,
  .tx-felogin-login form,
  .tx-felogin-pi1 form,
  .frame-type-felogin_login form,
  form:has(input[name="logintype"]) { max-width: 100%; }
}

/* 1.0.5: Form-specific structure. Overrides global label pseudo-elements. */
.kkbi-felogin {max-width:520px;}
.kkbi-felogin form {margin: .5rem 0 0;}
.kkbi-felogin .kkbi-felogin__fieldset {margin:0;padding:0;border:0;}
.kkbi-felogin .kkbi-felogin__fieldset legend {margin:0 0 .8rem;padding:0;font-size:1.4rem;}
.kkbi-felogin .kkbi-felogin__field {margin:0 0 .9rem;}
.kkbi-felogin .kkbi-felogin__field > label {display:block;margin:0 0 .25rem;padding:0;font-weight:600;}
.kkbi-felogin .kkbi-felogin__field > label::before,
.kkbi-felogin .kkbi-felogin__field > label::after {content:none !important;display:none !important;}
.kkbi-felogin .kkbi-felogin__field > input[type="text"],
.kkbi-felogin .kkbi-felogin__field > input[type="password"] {display:block;width:100%;margin:0;box-sizing:border-box;}
.kkbi-felogin .kkbi-felogin__actions {margin-top:.35rem;}
.kkbi-felogin .kkbi-felogin__actions input[type="submit"] {margin:0;}
.kkbi-felogin .kkbi-felogin__recovery {margin:.7rem 0 0;}
.kkbi-felogin .kkbi-felogin__permalogin {margin:.65rem 0;}
.kkbi-felogin .kkbi-felogin__permalogin label {display:flex;align-items:center;gap:.5rem;font-weight:400;}
.kkbi-felogin .kkbi-felogin__permalogin input[type="checkbox"] {width:auto;margin:0;}

/* v1.0.6: Consistent password recovery and change-password layout. */
.kkbi-felogin--recovery,
.kkbi-felogin--change-password { max-width: 100%; }
.kkbi-felogin--recovery form,
.kkbi-felogin--change-password form { max-width: 520px; margin: .5rem 0 0; }
.kkbi-felogin--recovery .kkbi-felogin__field,
.kkbi-felogin--change-password .kkbi-felogin__field { max-width: 520px; }
.kkbi-felogin .kkbi-felogin__field > input[type="email"] {display:block; width:100%; margin:0; box-sizing:border-box;}
.kkbi-felogin .kkbi-felogin__actions input[type="submit"] {margin:0;}
.kkbi-felogin .kkbi-felogin__back { margin: .7rem 0 0; }
.kkbi-felogin .kkbi-felogin__recovery { margin: .7rem 0 0; }
.kkbi-felogin--recovery .kkbi-felogin__fieldset legend,
.kkbi-felogin--change-password .kkbi-felogin__fieldset legend {display:block;width:100%;}

/* v1.0.7: Remove list markers only from TYPO3 flash messages.
   Password requirement lists deliberately keep their bullets. */
ul.typo3-messages,
.typo3-messages > ul {
  list-style-type: none !important;
  padding-inline-start: 0 !important;
  margin-inline-start: 0 !important;
}
ul.typo3-messages > li,
.typo3-messages > ul > li {
  list-style-type: none !important;
}
ul.typo3-messages > li::marker,
.typo3-messages > ul > li::marker {
  content: "";
}

/* Consistent compact spacing across the three felogin forms. */
.kkbi-felogin .kkbi-felogin__actions { margin-top: .4rem; }
.kkbi-felogin .kkbi-felogin__actions input[type="submit"] { margin: 0; }
.kkbi-felogin .kkbi-felogin__recovery,
.kkbi-felogin .kkbi-felogin__back { margin: .8rem 0 0; }
.kkbi-felogin--change-password .kkbi-felogin__actions + p { margin-top: 1.1rem; }
.kkbi-felogin--change-password form + p { margin-top: 1.1rem; margin-bottom: .5rem; }
.kkbi-felogin--change-password form + p + ul { margin-top: 0; margin-bottom: 1rem; }
