/* Формы: поля ввода, подписи, чекбоксы, ряд полей, панель инструментов.
   Граница поля — --border-strong (контраст ≥3:1, WCAG 1.4.11). */
.field { display: flex; flex-direction: column; gap: var(--s1h); }
.field.inline { flex-direction: row; align-items: center; gap: var(--s2); }
.field.grow { flex: 1; }
.field > span { font-size: var(--fs-sm); font-weight: var(--fw-medium); }
.field .hint { font-size: var(--fs-xs); color: var(--fg-muted); }
input, select, textarea {
  --input-bg: var(--field-bg); --input-fg: var(--fg); --input-border: var(--border-strong);
  --input-border-focus: var(--accent); --input-h: var(--control-h); --input-radius: var(--r);
  width: 100%; min-height: var(--input-h); padding: var(--s2) var(--s3); border-radius: var(--input-radius);
  border: var(--border-w) solid var(--input-border); background: var(--input-bg); color: var(--input-fg);
  font: var(--fs-md) var(--font); transition: border-color var(--dur-fast) var(--ease);
}
input:is([type="checkbox"], [type="radio"]) { width: auto; min-height: 0; padding: 0; accent-color: var(--accent); }
input:is([type="checkbox"], [type="radio"]):focus-visible { outline: var(--focus-w) solid var(--ring); outline-offset: var(--focus-offset); box-shadow: none; }
textarea { min-height: 110px; resize: vertical; line-height: var(--lh-body); }
input:hover:not(:disabled):not(:focus), select:hover:not(:disabled):not(:focus), textarea:hover:not(:disabled):not(:focus) { border-color: var(--fg-muted); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--input-border-focus); box-shadow: var(--shadow-focus); }
input:disabled, select:disabled, textarea:disabled { background: var(--disabled-bg); color: var(--disabled-fg);
  border-color: var(--disabled-border); cursor: not-allowed; }
input[aria-invalid="true"], .field.invalid input { --input-border: var(--danger); }
.form-row { display: flex; gap: var(--s2); align-items: flex-end; flex-wrap: wrap; }
.form-row > .field { flex: 1 1 200px; }
.error { color: var(--danger); font-size: var(--fs-sm); min-height: 1em; }

label.check { display: inline-flex; align-items: center; gap: var(--s2); min-height: var(--control-h-sm); padding: 0 var(--s1);
  cursor: pointer; color: var(--fg-muted); user-select: none; }
label.check input { width: 16px; height: 16px; min-height: 0; margin: 0; accent-color: var(--accent); cursor: pointer; }
label.check:hover { color: var(--fg); }

.toolbar { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; margin-bottom: var(--s3); }
.toolbar input, .toolbar select { width: auto; min-width: 180px; }
.toolbar input[type="search"] { flex: 1 1 280px; max-width: 380px; }
@media (max-width: 640px) { .toolbar select { flex: 1 1 140px; } }
