/**
 * Formulários públicos — padrões reutilizáveis (opt-in via .sc-field*).
 */

.sc-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.sc-field__label {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  color: var(--ink);
}

.sc-field__hint {
  font-size: 0.8125rem;
  color: var(--muted);
  letter-spacing: var(--tracking-label);
  margin: 0;
}

.sc-field__error {
  font-size: 0.8125rem;
  color: var(--danger);
  letter-spacing: var(--tracking-label);
  margin: 0;
}

.sc-input,
.sc-select,
.sc-textarea {
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface, #fff);
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  line-height: var(--lh-snug);
  transition:
    border-color var(--transition-fast) ease,
    box-shadow var(--transition-base) var(--ease-fluid),
    background-color var(--transition-fast) ease;
  -webkit-appearance: none;
  appearance: none;
}

.sc-textarea {
  min-height: 120px;
  resize: vertical;
  padding-top: var(--space-3);
}

.sc-input::placeholder,
.sc-textarea::placeholder {
  color: rgba(92, 100, 112, 0.75);
}

.sc-input:hover:not(:disabled):not([readonly]),
.sc-select:hover:not(:disabled),
.sc-textarea:hover:not(:disabled):not([readonly]) {
  border-color: rgba(22, 46, 61, 0.22);
}

.sc-input:focus-visible,
.sc-select:focus-visible,
.sc-textarea:focus-visible {
  outline: none;
  border-color: var(--accent, #00a2ed);
  box-shadow: var(--focus-ring);
}

.sc-input:disabled,
.sc-select:disabled,
.sc-textarea:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: rgba(22, 46, 61, 0.04);
}

.sc-input[readonly],
.sc-textarea[readonly] {
  background: rgba(22, 46, 61, 0.03);
  color: var(--muted);
}

.sc-field--error .sc-input,
.sc-field--error .sc-select,
.sc-field--error .sc-textarea {
  border-color: var(--danger);
}

.sc-field--error .sc-input:focus-visible,
.sc-field--error .sc-select:focus-visible,
.sc-field--error .sc-textarea:focus-visible {
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.25);
}

/* Refino leve em inputs de modais públicos existentes */
.public-login-modal input[type="email"],
.public-login-modal input[type="password"],
.public-login-modal input[type="text"],
.sc-termos-modal input,
.sc-termos-modal textarea {
  transition:
    border-color var(--transition-fast) ease,
    box-shadow var(--transition-base) var(--ease-fluid);
}

.public-login-modal input:focus-visible,
.sc-termos-modal input:focus-visible,
.sc-termos-modal textarea:focus-visible {
  outline: 2px solid var(--accent, #00a2ed);
  outline-offset: 2px;
}
