/* Gerado pelo BSAdmin a partir das variáveis BS_FORM_* e BS_SWAL_* do .env. */
:root {
  --bs-form-field-height: 48px;
  --bs-form-textarea-min-height: 104px;
  --bs-form-label-font-size: 0.82rem;
  --bs-form-label-font-weight: 400;
  --bs-form-text-font-size: 0.87rem;
  --bs-form-text-font-weight: 500;
  --bs-form-mobile-text-font-size: 15px;
  --bs-form-mobile-label-font-size: 0.82rem;
  --bs-form-mobile-breakpoint: 760px;
  --bs-form-label-always-inside: 0;
  --bs-form-label-position: outside;
  --bs-form-placeholder-only-unmasked: 0;
  --bs-form-label-outside-gap: 2px;
  --bs-form-outside-value-padding-top: 0px;
  --bs-form-outside-value-padding-bottom: 0px;
  --bs-form-background: #ffffff;
  --bs-form-text-color: #283b43;
  --bs-form-label-color: #61777e;
  --bs-form-label-focus-color: #2a9fb0;
  --bs-form-placeholder-color: #8ca0a6;
  --bs-form-border-color: #c9d8db;
  --bs-form-border-hover-color: #8dbdc3;
  --bs-form-border-focus-color: #2a9fb0;
  --bs-form-border-error-color: #b94444;
  --bs-form-border-disabled-color: #dce7e8;
  --bs-form-disabled-background: #f3f6f6;
  --bs-form-disabled-text-color: #7f9298;
  --bs-form-readonly-background: #f8fbfb;
  --bs-form-border-width: 1px;
  --bs-form-border-style: solid;
  --bs-form-border-radius: 10px;
  --bs-form-horizontal-padding: 14px;
  --bs-form-label-top: 4px;
  --bs-form-value-padding-top: 17px;
  --bs-form-value-padding-bottom: 3px;
  --bs-form-textarea-padding-top: 24px;
  --bs-form-label-line-height: 1;
  --bs-form-text-line-height: 1.2;
  --bs-form-label-letter-spacing: 0.01em;
  --bs-form-shadow-x: 0px;
  --bs-form-shadow-y: 5px;
  --bs-form-shadow-blur: 16px;
  --bs-form-shadow-spread: 0px;
  --bs-form-shadow-color: rgba(12, 48, 58, 0.035);
  --bs-form-focus-ring-size: 3px;
  --bs-form-focus-ring-color: rgba(42, 159, 176, 0.12);
  --bs-form-transition-duration: 160ms;
  --bs-form-transition-timing: ease;
  --bs-form-icon-color: #2a9fb0;
  --bs-form-select-arrow-color: #61777e;
  --bs-form-help-font-size: 0.72rem;
  --bs-form-help-color: #87989e;
  --bs-form-error-font-size: 0.76rem;
  --bs-form-error-color: #b94444;
  --bs-form-required-color: #b94444;
  --bs-form-autofill-background: #ffffff;
  --bs-form-autofill-text-color: #283b43;
  --bs-swal-button-height: 38px;
  --bs-swal-button-min-width: 110px;
  --bs-swal-button-padding-x: 12px;
  --bs-swal-button-border-radius: 10px;
  --bs-swal-button-font-family: Comfortaa, 'Segoe UI', Arial, Helvetica, sans-serif;
  --bs-swal-button-font-size: 0.75rem;
  --bs-swal-button-font-weight: 700;
  --bs-swal-button-letter-spacing: 0.3px;
  --bs-swal-button-text-transform: none;
  --bs-swal-confirm-text-color: #ffffff;
  --bs-swal-confirm-background-start: #0d3b66;
  --bs-swal-confirm-background-end: #0b2f52;
  --bs-swal-confirm-border-color: transparent;
  --bs-swal-confirm-shadow-color: rgba(13, 59, 102, 0.25);
  --bs-swal-cancel-text-color: #ffffff;
  --bs-swal-cancel-background-start: #f28b82;
  --bs-swal-cancel-background-end: #ea6a5e;
  --bs-swal-cancel-border-color: transparent;
  --bs-swal-cancel-shadow-color: rgba(234, 106, 94, 0.25);
  --bs-swal-deny-text-color: #ffffff;
  --bs-swal-deny-background-start: #c28732;
  --bs-swal-deny-background-end: #a86d1f;
  --bs-swal-deny-border-color: transparent;
  --bs-swal-deny-shadow-color: rgba(194, 135, 50, 0.25);
  --bs-swal-button-hover-brightness: 1.04;
  --bs-swal-button-active-scale: 0.96;
  --bs-swal-button-focus-ring-size: 3px;
  --bs-swal-button-focus-ring-color: rgba(42, 159, 176, 0.25);
  --bs-swal-button-transition-duration: 200ms;
  --bs-swal-button-transition-timing: ease;
  --bs-swal-mobile-button-font-size: 0.75rem;
  --bs-swal-mobile-button-min-width: 105px;
}

/* Estrutura compartilhada dos campos HTML/Bootstrap. */
.bs-field-shell {
  position: relative !important;
  display: block;
  width: 100%;
  min-width: 0;
}

.bs-form-source-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.bs-field-shell > .bs-form-label,
.bs-field-shell > span.bs-form-label {
  z-index: 3;
  display: block;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: var(--bs-form-label-color) !important;
  font-family: inherit !important;
  font-size: var(--bs-form-label-font-size) !important;
  font-weight: var(--bs-form-label-font-weight) !important;
  line-height: var(--bs-form-label-line-height) !important;
  letter-spacing: var(--bs-form-label-letter-spacing) !important;
  text-overflow: ellipsis;
  text-transform: none !important;
  white-space: nowrap;
  pointer-events: none;
  transform: none !important;
  transform-origin: left top !important;
  transition:
    color var(--bs-form-transition-duration) var(--bs-form-transition-timing),
    opacity var(--bs-form-transition-duration) var(--bs-form-transition-timing) !important;
}

/* Label dentro do campo. */
.bs-field-shell.bs-field-label-inside > .bs-form-label,
.bs-field-shell.bs-field-label-inside > span.bs-form-label {
  position: absolute !important;
  top: var(--bs-form-label-top) !important;
  left: var(--bs-form-horizontal-padding) !important;
  right: var(--bs-form-horizontal-padding) !important;
  width: auto !important;
  max-width: calc(100% - (var(--bs-form-horizontal-padding) * 2)) !important;
}

/* Label fora do campo. */
.bs-field-shell.bs-field-label-outside > .bs-form-label,
.bs-field-shell.bs-field-label-outside > span.bs-form-label {
  position: static !important;
  width: auto !important;
  margin-bottom: var(--bs-form-label-outside-gap) !important;
  pointer-events: auto;
}

.bs-field-shell.bs-field-placeholder-only > .bs-form-label,
.bs-field-shell.bs-field-placeholder-only > span.bs-form-label {
  display: none !important;
}

/* Em linhas mistas, reserva o mesmo espaço do label externo para que o
   campo que usa apenas placeholder fique alinhado com os demais. */
.bs-field-shell.bs-field-placeholder-only.bs-form-align-label-space {
  padding-top: calc(var(--bs-form-label-font-size) + var(--bs-form-label-outside-gap)) !important;
}

.bs-field-shell:focus-within > .bs-form-label,
.bs-field-shell:focus-within > span.bs-form-label {
  color: var(--bs-form-label-focus-color) !important;
}

/* Campos HTML/Bootstrap */
.bs-themed-control:not([type='checkbox']):not([type='radio']):not([type='hidden']),
.bs-field-shell > input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
.bs-field-shell > select,
.bs-field-shell > textarea,
.bs-field-shell .password-field input,
.bs-field-shell .admin-password-field input,
.bs-field-shell .input-group input,
.bs-field-shell .input-group select,
.bs-field-shell .input-group textarea {
  box-sizing: border-box !important;
  width: 100%;
  min-height: var(--bs-form-field-height) !important;
  height: var(--bs-form-field-height) !important;
  padding-top: var(--bs-form-outside-value-padding-top) !important;
  padding-bottom: var(--bs-form-outside-value-padding-bottom) !important;
  padding-left: var(--bs-form-horizontal-padding) !important;
  padding-right: var(--bs-form-horizontal-padding) !important;
  border-width: var(--bs-form-border-width) !important;
  border-style: var(--bs-form-border-style) !important;
  border-color: var(--bs-form-border-color) !important;
  border-radius: var(--bs-form-border-radius) !important;
  outline: none !important;
  color: var(--bs-form-text-color) !important;
  background: var(--bs-form-background) !important;
  box-shadow:
    var(--bs-form-shadow-x)
    var(--bs-form-shadow-y)
    var(--bs-form-shadow-blur)
    var(--bs-form-shadow-spread)
    var(--bs-form-shadow-color) !important;
  font-family: inherit !important;
  font-size: var(--bs-form-text-font-size) !important;
  font-weight: var(--bs-form-text-font-weight) !important;
  line-height: var(--bs-form-text-line-height) !important;
  transition:
    border-color var(--bs-form-transition-duration) var(--bs-form-transition-timing),
    box-shadow var(--bs-form-transition-duration) var(--bs-form-transition-timing),
    background-color var(--bs-form-transition-duration) var(--bs-form-transition-timing) !important;
}

.bs-field-shell.bs-field-label-inside > input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
.bs-field-shell.bs-field-label-inside > select,
.bs-field-shell.bs-field-label-inside > textarea,
.bs-field-shell.bs-field-label-inside .password-field input,
.bs-field-shell.bs-field-label-inside .admin-password-field input,
.bs-field-shell.bs-field-label-inside .input-group input,
.bs-field-shell.bs-field-label-inside .input-group select,
.bs-field-shell.bs-field-label-inside .input-group textarea {
  padding-top: var(--bs-form-value-padding-top) !important;
  padding-bottom: var(--bs-form-value-padding-bottom) !important;
}

.bs-themed-control:not([type='checkbox']):not([type='radio']):not([type='hidden']):hover,
.bs-field-shell:hover > input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
.bs-field-shell:hover > select,
.bs-field-shell:hover > textarea {
  border-color: var(--bs-form-border-hover-color) !important;
}

.bs-themed-control:not([type='checkbox']):not([type='radio']):not([type='hidden']):focus,
.bs-field-shell:focus-within > input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
.bs-field-shell:focus-within > select,
.bs-field-shell:focus-within > textarea,
.bs-field-shell:focus-within .password-field input,
.bs-field-shell:focus-within .admin-password-field input,
.bs-field-shell:focus-within .input-group input,
.bs-field-shell:focus-within .input-group select,
.bs-field-shell:focus-within .input-group textarea {
  border-color: var(--bs-form-border-focus-color) !important;
  box-shadow: 0 0 0 var(--bs-form-focus-ring-size) var(--bs-form-focus-ring-color) !important;
}

.bs-field-shell.bs-field-label-inside input::placeholder,
.bs-field-shell.bs-field-label-inside textarea::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}

.bs-field-shell.bs-field-label-outside input::placeholder,
.bs-field-shell.bs-field-label-outside textarea::placeholder,
.bs-field-shell.bs-field-placeholder-only input::placeholder,
.bs-field-shell.bs-field-placeholder-only textarea::placeholder {
  color: var(--bs-form-placeholder-color) !important;
  opacity: 1 !important;
}

.bs-themed-control:disabled,
.bs-themed-control[aria-disabled='true'],
.bs-field-shell input:disabled,
.bs-field-shell select:disabled,
.bs-field-shell textarea:disabled {
  border-color: var(--bs-form-border-disabled-color) !important;
  color: var(--bs-form-disabled-text-color) !important;
  background: var(--bs-form-disabled-background) !important;
  cursor: not-allowed;
}

.bs-themed-control[readonly],
.bs-field-shell input[readonly],
.bs-field-shell textarea[readonly] {
  background: var(--bs-form-readonly-background) !important;
}

.bs-themed-control.is-invalid,
.bs-themed-control:invalid:not(:placeholder-shown),
.bs-field-shell .is-invalid,
.bs-field-shell [aria-invalid='true'] {
  border-color: var(--bs-form-border-error-color) !important;
}

.bs-field-shell textarea.bs-themed-control,
.bs-field-shell > textarea,
.bs-themed-control[type='textarea'] {
  min-height: var(--bs-form-textarea-min-height) !important;
  height: auto !important;
  padding-top: var(--bs-form-outside-value-padding-top) !important;
  resize: vertical;
}

.bs-field-shell.bs-field-label-inside textarea.bs-themed-control,
.bs-field-shell.bs-field-label-inside > textarea {
  padding-top: var(--bs-form-textarea-padding-top) !important;
}

.bs-field-shell select.bs-themed-control,
.bs-field-shell > select {
  padding-right: calc(var(--bs-form-horizontal-padding) + 20px) !important;
  color: var(--bs-form-text-color) !important;
  cursor: pointer;
}

.bs-field-shell input[type='file'] {
  overflow: hidden;
  padding-top: 0 !important;
  padding-right: 6px !important;
}

.bs-field-shell.bs-field-label-inside input[type='file'] {
  padding-top: calc(var(--bs-form-value-padding-top) - 2px) !important;
}

.bs-field-shell input[type='file']::file-selector-button {
  height: 25px;
  margin-top: -3px;
  margin-right: 10px;
  padding: 0 10px;
  border: 0;
  border-radius: calc(var(--bs-form-border-radius) - 3px);
  color: var(--bs-form-text-color);
  background: color-mix(in srgb, var(--bs-form-border-color) 48%, #ffffff);
  font: inherit;
  font-size: 0.78rem;
  cursor: pointer;
}

.bs-field-shell .password-field,
.bs-field-shell .admin-password-field,
.password-field.bs-field-shell,
.admin-password-field.bs-field-shell {
  position: relative !important;
}

.bs-field-shell .password-field input,
.bs-field-shell .admin-password-field input,
.password-field.bs-field-shell input,
.admin-password-field.bs-field-shell input {
  padding-right: 82px !important;
}

.bs-field-shell .password-field button,
.bs-field-shell .admin-password-field button,
.password-field.bs-field-shell button,
.admin-password-field.bs-field-shell button {
  top: 0 !important;
  right: 0 !important;
  height: var(--bs-form-field-height) !important;
  color: var(--bs-form-icon-color) !important;
}

.bs-field-shell.input-modern,
.input-modern.bs-field-shell {
  min-height: var(--bs-form-field-height) !important;
  height: var(--bs-form-field-height) !important;
  padding: 0 10px !important;
  border: var(--bs-form-border-width) var(--bs-form-border-style) var(--bs-form-border-color) !important;
  border-radius: var(--bs-form-border-radius) !important;
  background: var(--bs-form-background) !important;
  box-shadow:
    var(--bs-form-shadow-x)
    var(--bs-form-shadow-y)
    var(--bs-form-shadow-blur)
    var(--bs-form-shadow-spread)
    var(--bs-form-shadow-color) !important;
}

.bs-field-shell.input-modern:focus-within,
.input-modern.bs-field-shell:focus-within {
  border-color: var(--bs-form-border-focus-color) !important;
  box-shadow: 0 0 0 var(--bs-form-focus-ring-size) var(--bs-form-focus-ring-color) !important;
}

.input-modern.bs-field-shell > .bs-form-label {
  left: 39px !important;
}

.input-modern.bs-field-shell .bs-themed-control {
  min-height: calc(var(--bs-form-field-height) - 2px) !important;
  height: calc(var(--bs-form-field-height) - 2px) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.search-box.bs-field-shell > .bs-form-label {
  left: 42px !important;
}

/* Os campos internos do SweetAlert2 são intencionalmente ignorados pelo tema global. */

.bs-field-shell small,
.field small,
.form-text {
  color: var(--bs-form-help-color) !important;
  font-size: var(--bs-form-help-font-size) !important;
}

.invalid-feedback,
.form-error,
.q-field[data-bs-form-themed='true'] .q-field__messages,
.admin-form-message,
.form-message {
  font-size: var(--bs-form-error-font-size) !important;
}

.invalid-feedback,
.form-error,
.q-field[data-bs-form-themed='true'].q-field--error .q-field__messages {
  color: var(--bs-form-error-color) !important;
}

/* Quasar: somente campos decorados pelo script global. Campos de login e
   campos dentro do SweetAlert2 ficam fora deste escopo. */
.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__control {
  min-height: var(--bs-form-field-height) !important;
  height: var(--bs-form-field-height) !important;
  border-radius: var(--bs-form-border-radius) !important;
  color: var(--bs-form-text-color) !important;
  background: var(--bs-form-background) !important;
  box-shadow:
    var(--bs-form-shadow-x)
    var(--bs-form-shadow-y)
    var(--bs-form-shadow-blur)
    var(--bs-form-shadow-spread)
    var(--bs-form-shadow-color) !important;
  transition:
    border-color var(--bs-form-transition-duration) var(--bs-form-transition-timing),
    box-shadow var(--bs-form-transition-duration) var(--bs-form-transition-timing),
    background-color var(--bs-form-transition-duration) var(--bs-form-transition-timing) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__control::before {
  border-width: var(--bs-form-border-width) !important;
  border-style: var(--bs-form-border-style) !important;
  border-color: var(--bs-form-border-color) !important;
  border-radius: var(--bs-form-border-radius) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined:hover .q-field__control::before {
  border-color: var(--bs-form-border-hover-color) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__control::after {
  border-width: var(--bs-form-border-width) !important;
  border-color: var(--bs-form-border-focus-color) !important;
  border-radius: var(--bs-form-border-radius) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--focused .q-field__control {
  box-shadow: 0 0 0 var(--bs-form-focus-ring-size) var(--bs-form-focus-ring-color) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__control-container {
  padding-top: 0 !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__native,
.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__input {
  min-height: var(--bs-form-field-height) !important;
  padding-top: var(--bs-form-outside-value-padding-top) !important;
  padding-bottom: var(--bs-form-outside-value-padding-bottom) !important;
  color: var(--bs-form-text-color) !important;
  font-family: inherit !important;
  font-size: var(--bs-form-text-font-size) !important;
  font-weight: var(--bs-form-text-font-weight) !important;
  line-height: var(--bs-form-text-line-height) !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-inside .q-field__native,
.q-field[data-bs-form-themed='true'].bs-q-field-label-inside .q-field__input {
  padding-top: var(--bs-form-value-padding-top) !important;
  padding-bottom: var(--bs-form-value-padding-bottom) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__label {
  color: var(--bs-form-label-color) !important;
  font-size: var(--bs-form-label-font-size) !important;
  font-weight: var(--bs-form-label-font-weight) !important;
  line-height: var(--bs-form-label-line-height) !important;
  letter-spacing: var(--bs-form-label-letter-spacing) !important;
  transform: none !important;
  transform-origin: left top !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-inside .q-field__label {
  top: var(--bs-form-label-top) !important;
  max-width: calc(100% - 8px) !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-outside {
  position: relative !important;
  margin-top: calc(var(--bs-form-label-font-size) + var(--bs-form-label-outside-gap)) !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-placeholder-only.bs-form-align-label-space {
  margin-top: calc(var(--bs-form-label-font-size) + var(--bs-form-label-outside-gap)) !important;
}

/* No modo externo, o texto visível é desenhado no próprio q-field.
   Assim, o estado de foco/float do Quasar não consegue mover o label
   para dentro do campo nem alterar a altura/alinhamento da linha. */
.q-field[data-bs-form-themed='true'].bs-q-field-label-outside::before {
  content: attr(data-bs-form-label-text);
  position: absolute;
  top: calc(0px - var(--bs-form-label-font-size) - var(--bs-form-label-outside-gap));
  left: 0;
  z-index: 1;
  max-width: 100%;
  overflow: hidden;
  color: var(--bs-form-label-color);
  font-size: var(--bs-form-label-font-size);
  font-weight: var(--bs-form-label-font-weight);
  line-height: var(--bs-form-label-line-height);
  letter-spacing: var(--bs-form-label-letter-spacing);
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-outside.q-field--focused::before {
  color: var(--bs-form-label-focus-color);
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-outside .q-field__label,
.q-field[data-bs-form-themed='true'].bs-q-field-placeholder-only .q-field__label {
  display: none !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--focused .q-field__label {
  color: var(--bs-form-label-focus-color) !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-inside .q-field__native::placeholder,
.q-field[data-bs-form-themed='true'].bs-q-field-label-inside .q-field__input::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-label-outside .q-field__native::placeholder,
.q-field[data-bs-form-themed='true'].bs-q-field-label-outside .q-field__input::placeholder {
  color: transparent !important;
  opacity: 0 !important;
}

.q-field[data-bs-form-themed='true'].bs-q-field-placeholder-only .q-field__native::placeholder,
.q-field[data-bs-form-themed='true'].bs-q-field-placeholder-only .q-field__input::placeholder {
  color: var(--bs-form-placeholder-color) !important;
  opacity: 1 !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__prepend,
.q-field[data-bs-form-themed='true'].q-field--outlined .q-field__append {
  height: var(--bs-form-field-height) !important;
  padding-top: 10px;
  color: var(--bs-form-icon-color) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--disabled .q-field__control,
.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--readonly .q-field__control {
  background: var(--bs-form-disabled-background) !important;
}

.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--error .q-field__control::before,
.q-field[data-bs-form-themed='true'].q-field--outlined.q-field--error .q-field__control::after {
  border-color: var(--bs-form-border-error-color) !important;
}

.q-field[data-bs-form-themed='true'].q-textarea.q-field--outlined .q-field__control {
  min-height: var(--bs-form-textarea-min-height) !important;
  height: auto !important;
}

.q-field[data-bs-form-themed='true'].q-textarea.q-field--outlined .q-field__native {
  min-height: calc(var(--bs-form-textarea-min-height) - 2px) !important;
  padding-top: var(--bs-form-outside-value-padding-top) !important;
}

.q-field[data-bs-form-themed='true'].q-textarea.q-field--outlined.bs-q-field-label-inside .q-field__native {
  padding-top: var(--bs-form-textarea-padding-top) !important;
}

.q-field[data-bs-form-themed='true'].q-field--dense.q-field--outlined .q-field__control,
.q-field[data-bs-form-themed='true'].q-field--dense.q-field--outlined .q-field__native,
.q-field[data-bs-form-themed='true'].q-field--dense.q-field--outlined .q-field__input {
  min-height: var(--bs-form-field-height) !important;
  height: var(--bs-form-field-height) !important;
}

.q-field[data-bs-form-themed='true'].q-select .q-field__append,
.password-eye,
.q-field[data-bs-form-themed='true'] .q-icon {
  color: var(--bs-form-icon-color) !important;
}

/* Botões SweetAlert2 e botões externos com o mesmo padrão visual.
   Classes genéricas disponíveis: .bs-swal-button, .bs-swal-confirm,
   .bs-swal-cancel, .bs-swal-deny e data-bs-swal-button. */
.swal2-actions .swal2-styled,
.swal2-actions .btn-modal,
.bs-alert-actions .btn-modal,
.btn-modal,
.bs-swal-button,
[data-bs-swal-button],
.bs-save-button,
.bs-cancel-button,
.bs-deny-button,
.admin-modal .form-actions .button,
.solution-actions .button,
.plan-modal-card .form-actions .button,
.access-modal-card .form-actions .button,
.q-btn.bg-primary:not(.q-btn--round) {
  box-sizing: border-box !important;
  height: var(--bs-swal-button-height) !important;
  min-height: var(--bs-swal-button-height) !important;
  min-width: var(--bs-swal-button-min-width) !important;
  padding: 0 var(--bs-swal-button-padding-x) !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: var(--bs-swal-button-border-radius) !important;
  font-family: var(--bs-swal-button-font-family) !important;
  font-size: var(--bs-swal-button-font-size) !important;
  font-weight: var(--bs-swal-button-font-weight) !important;
  line-height: 1 !important;
  letter-spacing: var(--bs-swal-button-letter-spacing) !important;
  text-transform: var(--bs-swal-button-text-transform) !important;
  transition:
    transform var(--bs-swal-button-transition-duration) var(--bs-swal-button-transition-timing),
    filter var(--bs-swal-button-transition-duration) var(--bs-swal-button-transition-timing),
    box-shadow var(--bs-swal-button-transition-duration) var(--bs-swal-button-transition-timing) !important;
}

.swal2-actions .swal2-confirm,
.bs-alert-actions .btn-modal-save,
.btn-modal-save,
.bs-save-button,
.bs-swal-confirm,
[data-bs-swal-button='confirm'],
.admin-modal .form-actions .button:not(.button-ghost),
.solution-actions .button:not(.button-ghost),
.plan-modal-card .form-actions .button:not(.button-ghost),
.access-modal-card .form-actions .button:not(.button-ghost),
.q-btn.bg-primary:not(.q-btn--round) {
  color: var(--bs-swal-confirm-text-color) !important;
  border-color: var(--bs-swal-confirm-border-color) !important;
  background: linear-gradient(
    135deg,
    var(--bs-swal-confirm-background-start) 0%,
    var(--bs-swal-confirm-background-end) 100%
  ) !important;
  box-shadow: 0 3px 8px var(--bs-swal-confirm-shadow-color) !important;
}

.swal2-actions .swal2-cancel,
.bs-alert-actions .btn-modal-cancel,
.btn-modal-cancel,
.bs-cancel-button,
.bs-swal-cancel,
[data-bs-swal-button='cancel'],
.admin-modal .form-actions .button-ghost,
.solution-actions .button-ghost,
.plan-modal-card .form-actions .button-ghost,
.access-modal-card .form-actions .button-ghost {
  color: var(--bs-swal-cancel-text-color) !important;
  border-color: var(--bs-swal-cancel-border-color) !important;
  background: linear-gradient(
    135deg,
    var(--bs-swal-cancel-background-start) 0%,
    var(--bs-swal-cancel-background-end) 100%
  ) !important;
  box-shadow: 0 3px 8px var(--bs-swal-cancel-shadow-color) !important;
}

.swal2-actions .swal2-deny,
.btn-modal-deny,
.bs-deny-button,
.bs-swal-deny,
[data-bs-swal-button='deny'] {
  color: var(--bs-swal-deny-text-color) !important;
  border-color: var(--bs-swal-deny-border-color) !important;
  background: linear-gradient(
    135deg,
    var(--bs-swal-deny-background-start) 0%,
    var(--bs-swal-deny-background-end) 100%
  ) !important;
  box-shadow: 0 3px 8px var(--bs-swal-deny-shadow-color) !important;
}

.swal2-actions .swal2-styled:hover,
.swal2-actions .btn-modal:hover,
.bs-alert-actions .btn-modal:hover,
.btn-modal:hover,
.bs-swal-button:hover,
[data-bs-swal-button]:hover,
.bs-save-button:hover,
.bs-cancel-button:hover,
.bs-deny-button:hover,
.admin-modal .form-actions .button:hover,
.solution-actions .button:hover,
.plan-modal-card .form-actions .button:hover,
.access-modal-card .form-actions .button:hover,
.q-btn.bg-primary:not(.q-btn--round):hover {
  filter: brightness(var(--bs-swal-button-hover-brightness)) !important;
}

.swal2-actions .swal2-styled:active,
.swal2-actions .btn-modal:active,
.bs-alert-actions .btn-modal:active,
.btn-modal:active,
.bs-swal-button:active,
[data-bs-swal-button]:active,
.bs-save-button:active,
.bs-cancel-button:active,
.bs-deny-button:active,
.admin-modal .form-actions .button:active,
.solution-actions .button:active,
.plan-modal-card .form-actions .button:active,
.access-modal-card .form-actions .button:active,
.q-btn.bg-primary:not(.q-btn--round):active {
  transform: scale(var(--bs-swal-button-active-scale)) !important;
}

.swal2-actions .swal2-styled:focus-visible,
.swal2-actions .btn-modal:focus-visible,
.bs-alert-actions .btn-modal:focus-visible,
.btn-modal:focus-visible,
.bs-swal-button:focus-visible,
[data-bs-swal-button]:focus-visible,
.bs-save-button:focus-visible,
.bs-cancel-button:focus-visible,
.bs-deny-button:focus-visible,
.admin-modal .form-actions .button:focus-visible,
.solution-actions .button:focus-visible,
.plan-modal-card .form-actions .button:focus-visible,
.access-modal-card .form-actions .button:focus-visible,
.q-btn.bg-primary:not(.q-btn--round):focus-visible {
  outline: var(--bs-swal-button-focus-ring-size) solid var(--bs-swal-button-focus-ring-color) !important;
  outline-offset: 2px !important;
}

/* Autofill */
.bs-themed-control:-webkit-autofill,
.bs-themed-control:-webkit-autofill:hover,
.bs-themed-control:-webkit-autofill:focus,
.bs-field-shell input:-webkit-autofill,
.bs-field-shell input:-webkit-autofill:hover,
.bs-field-shell input:-webkit-autofill:focus,
.q-field[data-bs-form-themed='true'] input:-webkit-autofill,
.q-field[data-bs-form-themed='true'] input:-webkit-autofill:hover,
.q-field[data-bs-form-themed='true'] input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--bs-form-autofill-text-color) !important;
  box-shadow: 0 0 0 1000px var(--bs-form-autofill-background) inset !important;
  transition: background-color 9999s ease-out 0s !important;
}

@media (max-width: 760px) {
  .bs-themed-control:not([type='checkbox']):not([type='radio']):not([type='hidden']),
  .bs-field-shell input:not([type='checkbox']):not([type='radio']):not([type='hidden']),
  .bs-field-shell select,
  .bs-field-shell textarea,
  .q-field[data-bs-form-themed='true'].q-field--outlined .q-field__native,
  .q-field[data-bs-form-themed='true'].q-field--outlined .q-field__input {
    font-size: var(--bs-form-mobile-text-font-size) !important;
  }

  .bs-field-shell > .bs-form-label,
  .bs-field-shell > span.bs-form-label,
  .q-field[data-bs-form-themed='true'].q-field--outlined .q-field__label {
    font-size: var(--bs-form-mobile-label-font-size) !important;
  }

  .swal2-actions .swal2-styled,
  .swal2-actions .btn-modal,
  .bs-alert-actions .btn-modal,
  .btn-modal,
  .bs-swal-button,
  [data-bs-swal-button],
  .bs-save-button,
  .bs-cancel-button,
  .bs-deny-button,
  .admin-modal .form-actions .button,
  .solution-actions .button,
  .plan-modal-card .form-actions .button,
  .access-modal-card .form-actions .button,
  .q-btn.bg-primary:not(.q-btn--round) {
    min-width: var(--bs-swal-mobile-button-min-width) !important;
    font-size: var(--bs-swal-mobile-button-font-size) !important;
  }
}
