html {
  font-size: 14px;
}

body {
  background: #f6f7f9;
}

/* Dense, functional tables */
.table-sm td, .table-sm th {
  padding: 0.2rem 0.45rem;
  vertical-align: middle;
}

.table thead th {
  background: #eef0f3;
  position: sticky;
  top: 0;
  white-space: nowrap;
}

.table-wrap {
  overflow-x: auto;
  max-height: 75vh;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #dee2e6;
}

.filter-bar .form-control, .filter-bar .form-select {
  min-width: 8rem;
}

/* Expiry colouring */
.due-expired { background: #f8d7da !important; }
.due-30 { background: #fff3cd !important; }
.due-60 { background: #ffe9c9 !important; }
.due-90 { background: #e2f0d9 !important; }

.stat-card { min-width: 10rem; }
.stat-card .num { font-size: 1.6rem; font-weight: 700; }

a { text-decoration: none; }
a:hover { text-decoration: underline; }
