/* Shared spacing for station, admin, customer portal and account forms.
   Gap applies only where a form already uses flex/grid; no layout is replaced. */
form{row-gap:16px;column-gap:12px}
form :is(.form-grid,.mini-grid,.invoice-line,.filter-row,.filter-actions,.page-actions,.actions){gap:12px}
/* Older block forms have no layout gap. Separate actions from their fields. */
form :is(label,input:not([type="hidden"]),select,textarea,fieldset,.form-grid,.mini-grid,.grid,.setup-fields,.bank-opening-fields) + :is(button:not(.password-toggle):not(.remove-sale-line):not(.remove-line):not(.close-plain),a.button,.form-actions,.submit-row,.action-row){margin-block-start:12px!important}
/* Separate successive actions without stretching the buttons. */
form button + button,form button + a.button,form a.button + button{margin-inline-start:8px!important}
/* Filters and inline editors retain their existing layout with reliable gutters. */
:is(form.search,form.add-line,form.inline-editor,form.admin-filter,form.filter-row,form.report-filter,form.filter-strip,form.movement-filters,form.purchase-filters,form.vehicle-filters,.invoice-line,.sale-line){column-gap:12px!important;row-gap:16px!important}
/* Explicit action rows should wrap instead of colliding on small screens. */
:is(.form-actions,.bank-form-actions,.vehicle-form-actions,.vehicle-filter-actions,.filter-actions){gap:12px!important}
@media(max-width:640px){form :is(button,a.button){max-width:100%}}
