:root {
  --accent: #6366f1;
  --accent-hover: #4f46e5;
  --radius-sm: .375rem;
  --focus-ring: 0 0 0 2px rgba(99,102,241,.35);
}
body { font-size: 0.875rem; }
.form-control, .form-select { padding: .3rem .55rem; line-height: 1.2; border-radius: var(--radius-sm); border-color: #d1d5db; height: 2.05rem; }
.form-control:focus, .form-select:focus { border-color: var(--accent); box-shadow: var(--focus-ring); }
.btn-primary { background: var(--accent); border-color: var(--accent); padding: .35rem .9rem; line-height:1.2; border-radius: var(--radius-sm); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn, .btn-secondary { padding: .35rem .75rem; line-height:1.2; border-radius: var(--radius-sm); }
.filter-bar { display:flex; flex-wrap:nowrap; gap:.4rem; align-items:center; overflow-x:auto; }
.filter-bar .form-control, .filter-bar .form-select { width:auto; flex:0 0 auto; min-width:7rem; }
.filter-bar input[type=date]{ min-width:9rem; }
.filter-bar button, .filter-bar a.btn { flex:0 0 auto; }
.table thead th { position:sticky; top:0; background:#f8f9fa; }
.table-responsive { max-height:70vh; overflow:auto; }
.text-truncate { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
