/* =========================================================
   Formulários — campos, foco, erros, compatível com dark
   ========================================================= */
.form-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 4px;
}

.form-control, .form-select {
  background-color: var(--bg-surface);
  color: var(--text-primary);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  min-height: 42px;
  font-size: 14px;
  padding: 0.5rem 0.75rem;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.form-control::placeholder { color: var(--text-muted); }
.form-control:hover, .form-select:hover { border-color: var(--border-strong); }
.form-control:focus, .form-select:focus {
  background-color: var(--bg-surface);
  color: var(--text-primary);
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--focus-ring);
  outline: none;
}
.form-control:disabled, .form-select:disabled {
  background-color: var(--bg-hover);
  color: var(--text-muted);
}

.form-control-sm, .form-select-sm {
  min-height: 36px;
  padding: 0.3rem 0.6rem;
  font-size: 13px;
  border-radius: var(--radius-sm);
}

.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2371717a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
html[data-theme="dark"] .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a1a1aa' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

/* Inputs de data e cor nativos seguem o color-scheme do tema */
input[type="date"].form-control,
input[type="color"].form-control { color-scheme: light; }
html[data-theme="dark"] input[type="date"].form-control,
html[data-theme="dark"] input[type="color"].form-control { color-scheme: dark; }

.form-control-color {
  width: 52px;
  min-width: 52px;
  padding: 4px;
}
.form-control-color::-webkit-color-swatch-wrapper { padding: 2px; }
.form-control-color::-webkit-color-swatch { border: 1px solid var(--border-default); border-radius: var(--radius-sm); }

/* Checkboxes */
.form-check-input {
  background-color: var(--bg-surface);
  border: 1px solid var(--border-strong);
  width: 18px; height: 18px;
  cursor: pointer;
}
.form-check-input:checked {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}
.form-check-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--focus-ring);
}
.form-check-label { font-size: 14px; color: var(--text-primary); cursor: pointer; }

/* Erros de validação próximos ao campo */
.field-error {
  color: var(--color-danger);
  font-size: 12px;
  margin-top: 4px;
}
.has-error .form-control, .has-error .form-select {
  border-color: var(--color-danger);
}
.has-error .form-control:focus, .has-error .form-select:focus {
  box-shadow: 0 0 0 3px var(--color-danger-soft);
}
