form { min-width: 0; }
.stack-form { display: grid; gap: 15px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }

label, legend { display: grid; gap: 7px; color: var(--ink); font-size: var(--text-sm); font-weight: 750; }
fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
input, select, textarea {
  width: 100%;
  min-height: 43px;
  padding: 10px 11px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: var(--surface);
  transition: border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out);
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input:hover, select:hover, textarea:hover { border-color: var(--muted); }
input:focus, select:focus, textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px oklch(0.48 0.145 255 / 0.14); }
textarea { min-height: 94px; resize: vertical; }
input[type="file"] { padding: 8px; background: var(--surface-alt); }
input[type="checkbox"], input[type="radio"] { width: 18px; min-height: 18px; accent-color: var(--blue); }

.field-hint { margin: -4px 0 0; color: var(--muted); font-size: var(--text-xs); font-weight: 500; }
.field-error { margin: -4px 0 0; color: var(--red); font-size: var(--text-xs); font-weight: 700; }
.check-control { grid-template-columns: auto 1fr; align-items: center; }
.segmented-field { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.segmented-field legend { grid-column: 1 / -1; }
.segmented-field label { display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.password-field { position: relative; }
.password-field input { padding-right: 48px; }
.password-toggle { position: absolute; top: 29px; right: 5px; width: 36px; height: 36px; padding: 0; color: var(--slate); border-radius: var(--radius-sm); background: transparent; }
.password-toggle:hover { color: var(--ink); background: var(--surface-alt); }
.filter-bar { display: grid; grid-template-columns: minmax(200px, 1.5fr) repeat(2, minmax(130px, 0.7fr)) auto; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.filter-bar input, .filter-bar select { min-height: 40px; }
.inline-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.inline-form label { flex: 1 1 150px; }
.honeypot { position: absolute; left: -9999px; }
