/* =====================================================================
   OMS — forms (compact, keyboard friendly)
   ===================================================================== */

.oms-form .form-label { margin-bottom: 3px; font-size: .78rem; font-weight: 600; color: #3a4a5a; }
.oms-form .req { color: var(--oms-danger); }

.form-control, .form-select {
    min-height: 34px; padding: 5px 10px; font-size: .84375rem;
    border-color: #c5ced7; border-radius: var(--oms-radius); color: var(--oms-ink);
}
.form-control:focus, .form-select:focus { border-color: var(--oms-accent); box-shadow: 0 0 0 3px rgba(11, 114, 133, .16); }
.form-control[readonly], .form-control:disabled, .form-select:disabled { background: var(--oms-surface-2); color: var(--oms-muted); }
.form-control.is-invalid { border-color: var(--oms-danger); }
.form-control.is-invalid:focus { box-shadow: 0 0 0 3px rgba(201, 42, 42, .15); }
.invalid-feedback { font-size: .75rem; color: var(--oms-danger); }
.input-group ~ .invalid-feedback, .input-group > .invalid-feedback { width: 100%; }
.form-text { margin-top: 3px; font-size: .71875rem; color: var(--oms-muted); }
.input-group .btn { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; border-color: #c5ced7; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.form-grid-full { grid-column: 1 / -1; }
.form-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--oms-line); }
.form-note { font-size: .75rem; color: var(--oms-muted); }

/* Password strength meter */
.password-meter { height: 4px; margin-top: 6px; border-radius: 2px; background: #e3e8ed; overflow: hidden; }
.password-meter span { display: block; width: 0; height: 100%; background: var(--oms-danger); transition: width .15s ease; }
.password-meter[data-level="fair"] span { background: #e67700; }
.password-meter[data-level="strong"] span { background: var(--oms-success); }

.btn .spinner-border-sm { width: .8rem; height: .8rem; border-width: .14em; }

/* Module forms */
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-field[hidden] { display: none; }
.form-select.is-invalid, .check-list.is-invalid { border-color: var(--oms-danger); }
.crud-form-card { border-top: 3px solid var(--oms-accent); }
textarea.form-control { min-height: 58px; }

.check-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 2px 14px; max-height: 190px; overflow: auto; padding: 8px 10px; border: 1px solid #c5ced7; border-radius: var(--oms-radius); background: var(--oms-surface); }
.check-item { display: flex; align-items: center; gap: 8px; padding: 3px 0; cursor: pointer; }
.check-list-empty { color: var(--oms-muted); }

.settings-group { margin-bottom: 18px; }
.settings-group h3 { margin: 0 0 8px; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--oms-muted); }
.settings-row { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 4px 16px; align-items: center; padding: 7px 0; border-bottom: 1px solid #edf0f3; }
.settings-row label { margin: 0; font-weight: 600; }
.settings-row small { display: block; font-weight: 400; color: var(--oms-muted); }
