/* ===== forms: Input, Select ===== */
.es-field { display: flex; flex-direction: column; gap: var(--space-2); font-family: var(--font-sans); }
.es-field--block { width: 100%; }
.es-label { font-size: var(--text-sm); font-weight: var(--fw-semibold); color: var(--text-heading); }
.es-label .es-req { color: var(--accent); margin-left: 2px; }

.es-input-wrap { position: relative; display: flex; align-items: center; }
.es-input {
  width: 100%; font-family: var(--font-sans); font-size: var(--text-base); color: var(--text-heading);
  background: var(--surface-card); border: var(--border-w) solid var(--border-strong);
  border-radius: var(--radius-sm); min-height: var(--control-h-md); padding: 0 var(--space-4);
  transition: var(--transition-colors), box-shadow var(--duration-fast) var(--ease-standard);
  appearance: none;
}
.es-input::placeholder { color: var(--text-subtle); }
.es-input:hover { border-color: var(--gray-400); }
.es-input:focus { outline: none; border-color: var(--focus-ring); box-shadow: 0 0 0 3px rgba(112,141,185,0.28); }
.es-input:disabled { background: var(--surface-sunken); color: var(--text-muted); cursor: not-allowed; }
.es-input--has-icon { padding-left: 42px; }
.es-input-icon { position: absolute; left: 13px; color: var(--text-muted); pointer-events: none; display: flex; }
.es-input-icon .es-icon { width: 18px; height: 18px; }

.es-input--error { border-color: var(--danger); }
.es-input--error:focus { box-shadow: 0 0 0 3px rgba(196,43,28,0.22); }
.es-hint { font-size: var(--text-sm); color: var(--text-muted); }
.es-hint--error { color: var(--danger-fg); }

.es-input--sm { min-height: var(--control-h-sm); font-size: var(--text-sm); }
.es-input--lg { min-height: var(--control-h-lg); }

/* Select */
.es-select-wrap { position: relative; display: flex; align-items: center; }
.es-select {
  width: 100%; font-family: var(--font-sans); font-size: var(--text-base); color: var(--text-heading);
  background: var(--surface-card); border: var(--border-w) solid var(--border-strong);
  border-radius: var(--radius-sm); min-height: var(--control-h-md);
  padding: 0 42px 0 var(--space-4); appearance: none; cursor: pointer;
  transition: var(--transition-colors), box-shadow var(--duration-fast) var(--ease-standard);
}
.es-select:hover { border-color: var(--gray-400); }
.es-select:focus { outline: none; border-color: var(--focus-ring); box-shadow: 0 0 0 3px rgba(112,141,185,0.28); }
.es-select:disabled { background: var(--surface-sunken); color: var(--text-muted); cursor: not-allowed; }
.es-select-chevron { position: absolute; right: 14px; color: var(--text-muted); pointer-events: none; display: flex; }
.es-select-chevron .es-icon { width: 18px; height: 18px; }
