body{background-color:#f8f9fa}
.min-vh-100{min-height:100vh}
.table td,.table th{vertical-align:middle}
.modal .form-label{font-weight:500}
.card .display-6{font-weight:600}
/* Mobile tweaks */
@media (max-width: 576px){
  .navbar .navbar-brand{font-size:1rem}
  .card .card-header .btn, .card .card-header input[type=date]{width:100%}
  .card .card-header .d-flex{flex-direction:column; align-items:stretch}
  .table{font-size:.875rem}
  .table .btn{padding:.15rem .35rem; font-size:.75rem}
  /* Stack materials table rows */
  .materials-table thead{display:none}
  .materials-table tbody tr{display:block; border:1px solid #dee2e6; border-radius:.25rem; margin-bottom:.5rem; padding:.5rem}
  .materials-table tbody td{display:flex; justify-content:space-between; align-items:center; border:0; padding:.35rem 0}
  .materials-table tbody td::before{content:attr(data-label); font-weight:600; margin-right:1rem; color:#6c757d}
  .materials-table form.d-flex{flex-direction:column; gap:.25rem}
  .materials-table .input-group{width:100% !important}
  .materials-table .text-end{justify-content:flex-end}
  .materials-table tbody td input.form-control-sm{width:100%}
  .materials-table tbody td[data-label="Actions"]{display:block}
  .materials-table tbody td[data-label="Actions"] form{display:block !important; margin-top:.25rem}
  .materials-table tbody td[data-label="Actions"] .btn{width:100%}
  .materials-table tbody td[data-label="Actions"] .input-group{margin-top:.25rem}
  /* Stack generic tables with class stack-table */
  .stack-table thead{display:none}
  .stack-table tbody tr{display:block; border:1px solid #dee2e6; border-radius:.25rem; margin-bottom:.5rem; padding:.5rem}
  .stack-table tbody td{display:flex; justify-content:space-between; align-items:center; border:0 !important; padding:.25rem 0}
  .stack-table tbody td::before{content:attr(data-label); font-weight:600; margin-right:1rem; color:#6c757d}
}
