/*
 * BB45 persistent form field dark/autofill normalizer
 * Keeps login and panel fields dark even after footer/theme patches or browser autofill.
 */
:root {
  --bb45-field-bg: #0f172a;
  --bb45-field-bg-focus: #111c32;
  --bb45-field-border: rgba(255,255,255,.14);
  --bb45-field-border-focus: rgba(255,170,0,.72);
  --bb45-field-text: #ffffff;
  --bb45-field-placeholder: rgba(255,255,255,.46);
}

/* Login card gets first priority because Bootstrap/browser autofill was repainting it white. */
.auth-card .form-control,
.auth-card input[type="text"],
.auth-card input[type="password"],
.auth-card input[type="email"],
.auth-card input[type="number"],
.auth-card input[type="search"],
.auth-card input[type="url"],
.auth-card input[type="tel"],
.auth-card textarea,
.auth-card select {
  background-color: var(--bb45-field-bg) !important;
  background-image: none !important;
  color: var(--bb45-field-text) !important;
  border: 1px solid var(--bb45-field-border) !important;
  -webkit-text-fill-color: var(--bb45-field-text) !important;
  caret-color: var(--bb45-field-text) !important;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.32) !important;
}

.auth-card .form-control:focus,
.auth-card input:focus,
.auth-card textarea:focus,
.auth-card select:focus {
  background-color: var(--bb45-field-bg-focus) !important;
  background-image: none !important;
  color: var(--bb45-field-text) !important;
  border-color: var(--bb45-field-border-focus) !important;
  -webkit-text-fill-color: var(--bb45-field-text) !important;
  box-shadow:
    inset 0 1px 3px rgba(0,0,0,.32),
    0 0 0 2px rgba(255,170,0,.14) !important;
  outline: none !important;
}

.auth-card .form-control::placeholder,
.auth-card input::placeholder,
.auth-card textarea::placeholder {
  color: var(--bb45-field-placeholder) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--bb45-field-placeholder) !important;
}

/* Panel-wide normalizer for forms that share Bootstrap/custom field classes. */
.form-control,
.form-select,
textarea.form-control,
select.form-control,
input.form-control,
.bc-input,
.bc-select,
.utility-input,
.utility-output,
.sv4-field input,
.sv4-field textarea,
.sv4-field select,
.chd-page input,
.chd-page textarea,
.chd-page select {
  background-color: var(--bb45-field-bg) !important;
  background-image: none !important;
  color: var(--bb45-field-text) !important;
  border-color: var(--bb45-field-border) !important;
  -webkit-text-fill-color: var(--bb45-field-text) !important;
  caret-color: var(--bb45-field-text) !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
select.form-control:focus,
input.form-control:focus,
.bc-input:focus,
.bc-select:focus,
.utility-input:focus,
.sv4-field input:focus,
.sv4-field textarea:focus,
.sv4-field select:focus,
.chd-page input:focus,
.chd-page textarea:focus,
.chd-page select:focus {
  background-color: var(--bb45-field-bg-focus) !important;
  background-image: none !important;
  color: var(--bb45-field-text) !important;
  border-color: var(--bb45-field-border-focus) !important;
  -webkit-text-fill-color: var(--bb45-field-text) !important;
  outline: none !important;
}

.form-control::placeholder,
textarea.form-control::placeholder,
input.form-control::placeholder,
.bc-input::placeholder,
.utility-input::placeholder,
.sv4-field input::placeholder,
.sv4-field textarea::placeholder,
.chd-page input::placeholder,
.chd-page textarea::placeholder {
  color: var(--bb45-field-placeholder) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--bb45-field-placeholder) !important;
}

/* Chrome, Edge, Safari autofill paint override. */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
textarea:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active,
.form-control:-webkit-autofill,
.form-control:-webkit-autofill:hover,
.form-control:-webkit-autofill:focus,
.form-control:-webkit-autofill:active {
  -webkit-text-fill-color: var(--bb45-field-text) !important;
  caret-color: var(--bb45-field-text) !important;
  background-color: var(--bb45-field-bg) !important;
  background-image: none !important;
  -webkit-box-shadow: 0 0 0 1000px var(--bb45-field-bg) inset !important;
  box-shadow: 0 0 0 1000px var(--bb45-field-bg) inset !important;
  border-color: var(--bb45-field-border) !important;
  transition: background-color 99999s ease-in-out 0s !important;
}

/* Firefox autofill. */
input:-moz-autofill,
textarea:-moz-autofill,
select:-moz-autofill {
  background-color: var(--bb45-field-bg) !important;
  color: var(--bb45-field-text) !important;
  box-shadow: 0 0 0 1000px var(--bb45-field-bg) inset !important;
}

select option,
.form-select option {
  background-color: #0f172a !important;
  color: #ffffff !important;
}

input[type="checkbox"],
input[type="radio"],
input[type="range"],
input[type="color"],
input[type="file"],
input[type="submit"],
input[type="button"],
input[type="reset"],
button {
  -webkit-text-fill-color: currentColor !important;
}
