/* One size for action controls; labels keep their natural width. */
:root {
  --control-size: 42px;
  --control-icon-size: 16px;
  --control-gap: 8px;
}
:root .button,
:root .text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--control-gap);
  height: var(--control-size);
  min-height: var(--control-size);
  max-height: var(--control-size);
  padding: 0 12px;
  border-radius:var(--radius);
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
}
.button-icon {
  display: block;
  width: var(--control-icon-size);
  height: var(--control-icon-size);
  min-width: var(--control-icon-size);
  flex: 0 0 var(--control-icon-size);
  pointer-events: none;
}
:root .button .button-label,
:root .text-button .button-label {
  flex: 0 1 auto;
  min-width: 0;
}
:root .icon-only {
  width: var(--control-size);
  min-width: var(--control-size);
  padding: 0;
  flex: 0 0 var(--control-size);
}
.actions > .button,
.actions > form > .button,
.visit-controls > .button,
.visit-progress-actions > .button { min-width: 0; }
.visit-controls { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; gap: 8px; }
.visit-controls > .visit-progress-actions { display: contents; }
.visit-controls .button { width: 100%; }
.visit-row-actions { min-width: 300px; }
.project-detail-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.project-detail-actions .button { width: 100%; }
.shopping-quantity-form .button,
.allocation-actions > form:last-child > .button,
.selected-materials-table td:last-child .button { width: 104px; }
.material-manage-actions > .button { min-width: 0; }
.material-manage-actions > .button { flex: 1 1 0; }
.visit-progress-actions > .button { flex: 1 1 0; }
:root .shopping-add-buttons .button { padding: 0 4px; gap: 3px; }
.shopping-add-buttons { grid-template-columns: repeat(4, minmax(42px,1fr)); gap: 6px; }
.material-action-stack { width: 210px; }
.material-row-actions { min-width: 242px; width: 242px; }
.shopping-control { max-width: 260px; }
:root .shopping-quantity-form input,
:root .shopping-quantity-form select,
:root .project-shopping-toolbar select { height: var(--control-size); min-height: var(--control-size); }
.back-link { display: inline-flex; align-items: center; gap: 6px; }
.sidebar nav a > .button-icon { width: 18px; height: 18px; flex-basis: 18px; }
.pagination a { display: inline-flex; align-items: center; gap: 8px; height: var(--control-size); }
#plan-editor button:not(.plan-tree-button):not([data-symbol]),
#plan-editor .plan-file-button,
#plan-editor .plan-canvas-toolbar select {
  height: var(--control-size);
  min-height: var(--control-size);
  max-height: var(--control-size);
  padding: 0 10px;
  gap: var(--control-gap);
  border-radius:var(--radius);
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
}
#plan-editor button.icon-only { width: var(--control-size); min-width: var(--control-size); padding: 0; }
#plan-editor .plan-file-button { position: relative; }
#plan-editor .plan-command-group > button,
#plan-editor .plan-command-group > label { flex: 1 1 0; }
#plan-editor .plan-palette button { height: 112px; min-height: 112px; max-height: 112px; padding: 8px 5px; }
#plan-editor .plan-palette svg { flex-shrink: 0; }
#plan-editor .plan-tree-button { min-height: var(--control-size); }
#plan-editor .plan-drawing-tools { gap: 8px; }
#plan-editor .plan-inspector .plan-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
#plan-editor .plan-inspector .plan-actions button { min-width: 0; width: 100%; }
@media (max-width:620px) {
  .material-row-actions { min-width: 0; width: auto; }
  .responsive-table .material-action-stack { width: 100%; }
  .responsive-table .shopping-control { max-width: none; }
  .visit-progress-actions { width: 100%; }
  .visit-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .visit-controls > .button { grid-column: 1 / -1; }
  .responsive-table .visit-row-actions { min-width: 0; }
  .project-detail-actions { grid-template-columns: 1fr; }
  .visit-controls > .visit-progress-actions { flex-basis: 100%; }
  .actions.form-actions > .button { flex: 1 1 0; }
  .actions.form-actions > .material-editor-delete { flex-basis: 100%; }
  .selected-materials-table .shopping-quantity-form { flex-wrap: wrap; }
  .shopping-quantity-form input { width: 6rem; }
  #plan-editor .plan-command-group { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #plan-editor .plan-command-group > button, #plan-editor .plan-command-group > label { width: 100%; min-width: 0; }
  #plan-editor .plan-command-group { width: 100%; }
  #plan-editor .plan-drawing-tools { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #plan-editor .plan-drawing-tools > button { width: 100%; }
}
/* Live filters retain their ordinary submit controls when JavaScript is off. */
.js [data-filter-submit] { display: none; }
