.input {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-base);
  background: var(--color-bg-tertiary);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.input::placeholder { color: var(--color-text-tertiary); }
.input:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-accent-muted); }
.input:invalid:not(:placeholder-shown) { border-color: var(--color-danger); }

.input-group { display: flex; flex-direction: column; gap: var(--space-2); }
.input-group__label { font-size: var(--text-sm); font-weight: 500; color: var(--color-text-secondary); }
.input-group__error { font-size: var(--text-xs); color: var(--color-danger); }

.input-group__feedback {
  font-size: var(--text-xs);
  min-height: 1.2em;
  transition: color var(--transition-fast);
}
.input-group__feedback--available,
.input-group__feedback--match,
.input-group__feedback--strong { color: var(--color-success, #6DBF7B); }
.input-group__feedback--taken,
.input-group__feedback--invalid,
.input-group__feedback--mismatch,
.input-group__feedback--weak { color: var(--color-danger); }
.input-group__feedback--checking,
.input-group__feedback--fair { color: var(--color-text-tertiary); }

.select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239B978E' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-4) center;
  padding-right: var(--space-10);
}

textarea.input { min-height: 120px; resize: vertical; }

@media (forced-colors: active) {
  .input:focus {
    outline: 2px solid CanvasText;
    box-shadow: none;
  }
}
