/* Login and registration actions share the palette's action and text colors. */
:is(#loginModal, #cadastroModal) .btn-primary {
  background: var(--site-color-purchase, #198754) !important;
  border-color: var(--site-color-purchase, #198754) !important;
  color: var(--site-color-purchase-text, #ffffff) !important;
}
:is(#loginModal, #cadastroModal) .btn-primary:hover {
  filter: brightness(.94);
  opacity: 1;
}
:is(#loginModal, #cadastroModal) .btn-primary:focus-visible {
  outline: 2px solid var(--site-color-purchase, #198754);
  outline-offset: 3px;
}
:is(#loginModal, #cadastroModal) .form-control:focus {
  border-color: var(--site-color-purchase, #198754);
  box-shadow: 0 0 0 .2rem rgba(var(--site-purchase-rgb, 25,135,84), .18);
}

/* Login labels are regular labels above their controls. Bootstrap's floating
   label positioning overlapped the phone placeholder in the compact modal. */
#loginModal .form-floating { display:flex; flex-direction:column; gap:6px; }
#loginModal .form-floating > .form-control { min-height:46px; height:46px; padding:10px 12px; }
#loginModal .form-floating > label { position:static; order:-1; width:auto; height:auto; padding:0; overflow:visible; color:var(--site-theme-text,#102335); font-size:13px; line-height:1.2; transform:none; opacity:1; }
#loginModal .form-floating > .form-control::placeholder { opacity:.72; }
#loginModal .modal-body.app-form > p { margin-bottom:18px; }
#loginModal .modal-body.app-form .mb-2 { margin-bottom:14px!important; }
