html,
body {
  height: 100%;
}

.alert {
  border-radius: 16px;
  padding: 8px 16px;
  font-size: 14px;
}

.form {
  max-width: 360px;
  padding: 16px 16px 32px;
}

.form h1 {
  font-size: 22px;
}

.form a {
  color: var(--bs-body-color);
}

.form a:hover {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
}

.form .form-floating:focus-within {
  z-index: 2;
}

.form-login #floating-username {
  margin-bottom: -1px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.form-login #floating-password {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.form-register #floating-username {
  margin-bottom: -1px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.form-register #floating-password,
.form-register #floating-confirm-password {
  margin-bottom: -1px;
  border-radius: 0;
}

.form-register #floating-email {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin-bottom: 16px;
}

.form-active #floating-active-code,
.form-forgot-password #floating-email {
  margin-bottom: 16px;
}

.form-check-input:checked {
  --bs-text-opacity: 1;
  background-color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity));
  border-color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity));
}

.form-check-input:focus {
  border-color: rgba(var(--bs-danger-rgb), 1);
  box-shadow: 0 0 0 .25rem rgb(209 0 0 / 25%);
}

.form-control {
  border-radius: 16px;
}

/*.form-control:focus {*/
/*  border-color: #dc3545;*/
/*  box-shadow: 0 0 0 .25rem rgb(209 0 0 / 25%);*/
/*}*/

.form-floating>label,
.form-floating>.form-control,
.form-floating>.form-control-plaintext {
  padding: 16px;
}

.view-password {
  position: absolute;
  right: 14px;
  top: 17px;
}

.btn {
  border-radius: 16px;
}

.btn-bd-primary {
  --bd-violet-bg: #712cf9;
  --bd-violet-rgb: 112.520718, 44.062154, 249.437846;
  --bs-btn-font-weight: 600;
  --bs-btn-color: var(--bs-white);
  --bs-btn-bg: var(--bd-violet-bg);
  --bs-btn-border-color: var(--bd-violet-bg);
  --bs-btn-hover-color: var(--bs-white);
  --bs-btn-hover-bg: #6528e0;
  --bs-btn-hover-border-color: #6528e0;
  --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
  --bs-btn-active-color: var(--bs-btn-hover-color);
  --bs-btn-active-bg: #5a23c8;
  --bs-btn-active-border-color: #5a23c8;
}

.bi {
  vertical-align: -.125em;
  fill: currentColor;
}

.btn-login {
  padding-top: 15px;
  padding-bottom: 15px;
  font-weight: 400;
}

.dropdown-menu {
  border-radius: 12px;
}


/*
 * TOAST ---------------------------------------------------------------------------------------------------------------
 */

.toast {
  visibility: hidden;
  color: #fff;
  text-align: center;
  border-radius: 16px;
  padding: 16px 16px;
  position: fixed;
  z-index: 1;
  left: calc(50% - 230px);
  bottom: 30px;
  font-size: 16px;
  width: 460px;
  transition: opacity 0.5s ease;
  overflow: hidden;
}

.toast-timer {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 4px;
  background: rgba(255, 255, 255, 0.5);
  width: 100%;
  transform-origin: left;
}

.toast.show {
  visibility: visible;
}

.toast.show .toast-timer {
  animation: toastProgress 1s linear forwards;
}

@keyframes toastProgress {
  from { width: 100%; }
  to { width: 0; }
}

.toast.danger {
  background-color: #dc3545;
}

.toast.success {
  background-color: #198754;
}