body { background: #f4f6f9; font-size: .925rem; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.card-header { background: #fff; font-weight: 600; }
.table th { white-space: nowrap; font-weight: 600; font-size: .8rem; text-transform: uppercase; color: #6c757d; }
.table td { vertical-align: middle; }
.stat-card .stat-value { font-size: 1.8rem; font-weight: 700; line-height: 1; }
.stat-card .stat-label { color: #6c757d; font-size: .8rem; text-transform: uppercase; }
.page-head { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.page-head h1 { font-size: 1.35rem; margin: 0; }
.progress-quota { height: 8px; min-width: 90px; }
.timeline { list-style: none; padding-left: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 1rem 1.5rem; border-left: 2px solid #dee2e6; margin-left: .5rem; }
.timeline li:last-child { border-left-color: transparent; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: 3px; width: 12px; height: 12px; border-radius: 50%; background: #0d6efd; }
.filter-bar .form-control, .filter-bar .form-select { min-width: 140px; }
.required::after { content: " *"; color: #dc3545; }
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; }

/* Receipt print */
.receipt { background: #fff; max-width: 800px; margin: 0 auto; padding: 2rem; }
.receipt .void-mark { position: absolute; top: 40%; left: 20%; font-size: 6rem; color: rgba(220,53,69,.25); transform: rotate(-20deg); font-weight: 800; pointer-events: none; }
@media print {
  body { background: #fff; }
  .receipt { box-shadow: none; padding: 0; }
  main.container-fluid { padding: 0 !important; }
}
