/* Shared form states: one inset focus edge, neutral browser autofill. */
:root { --field-focus: #64748b; --field-bg: #fff; --field-ink: #0f172a; }
body.dark-theme { --field-bg: #1e293b; --field-ink: #e2e8f0; --field-focus: #94a3b8; }
body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="file"]), textarea, select):focus:not([aria-invalid="true"]):not(.is-invalid):not(.error) {
  outline: none !important;
  border-color: var(--field-focus) !important;
  box-shadow: inset 0 0 0 1px var(--field-focus), var(--field-autofill-shadow, 0 0 0 0 transparent) !important;
}
body :is(input, textarea, select):-webkit-autofill {
  --field-autofill-shadow: inset 0 0 0 1000px var(--field-bg);
  -webkit-text-fill-color: var(--field-ink) !important;
  caret-color: var(--field-ink);
  -webkit-box-shadow: inset 0 0 0 1000px var(--field-bg) !important;
  box-shadow: inset 0 0 0 1000px var(--field-bg) !important;
}
body :is(input, textarea, select):-webkit-autofill:focus:not([aria-invalid="true"]):not(.is-invalid):not(.error) {
  -webkit-box-shadow: inset 0 0 0 1px var(--field-focus), inset 0 0 0 1000px var(--field-bg) !important;
  box-shadow: inset 0 0 0 1px var(--field-focus), inset 0 0 0 1000px var(--field-bg) !important;
}
@media (forced-colors: active) {
  body :is(input, textarea, select):focus { outline: 2px solid Highlight !important; outline-offset: 2px; }
}

/* Seletor nativo é substituído por um controle com idioma fixo e cores neutras. */
.file-picker { display: flex; align-items: center; gap: .75rem; width: 100%; min-width: 0; position: relative; }
.file-picker__button { flex-shrink: 0; padding: .5rem .75rem; border: 1px solid #d1d5db; border-radius: .375rem; background: var(--dash-surface-3, #f3f4f6); color: var(--field-ink); font: inherit; font-size: .875rem; font-weight: 500; cursor: pointer; }
.file-picker__button:hover { background: var(--dash-surface-2, #e5e7eb); }
.file-picker__button:focus-visible { outline: 2px solid var(--field-focus); outline-offset: 2px; }
.file-picker__button:disabled { opacity: .5; cursor: default; }
.file-picker__name { font-size: .875rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--field-ink); }
input[type="file"].file-picker__native { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%) !important; border: 0 !important; }
input[type="file"]::file-selector-button { background: #f3f4f6; color: #374151; border: 1px solid #d1d5db; border-radius: .375rem; }
/* Sem subtítulo, centraliza a linha do título em relação ao ícone. */
.app-modal-head:not(:has(.modal-header-subtitle)), .modal-header:not(:has(.modal-header-subtitle)) { align-items: center; }
.app-modal-head:not(:has(.modal-header-subtitle)) .app-modal-head-txt { align-self: center; }
.app-modal-head:not(:has(.modal-header-subtitle)) .modal-header-title, .modal-header:not(:has(.modal-header-subtitle)) .modal-header-title { margin: 0; }
@media (max-width: 420px) { .file-picker { align-items: flex-start; flex-wrap: wrap; gap: .5rem; } .file-picker__name { width: 100%; } }
