html { font-size: 15px; }
body { background: #f6f7f9; }
.card { border: 0; box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.08); }
.stat { font-size: 1.9rem; font-weight: 600; line-height: 1.1; }
.table td, .table th { vertical-align: middle; }
.table-sm td, .table-sm th { white-space: nowrap; }
.required::after { content: " *"; color: #dc3545; }

/* Leave calendar */
.cal { font-size: .8rem; }
.cal th, .cal td { padding: 2px 3px !important; text-align: center; min-width: 26px; }
.cal td.name, .cal th.name { text-align: left; min-width: 160px; position: sticky; left: 0; background: #fff; z-index: 1; }
.wk { background: #eceff3; }
.hol { background: #ffe8b3; }
.on-approved { background: #198754; color: #fff; }
.on-pending { background: repeating-linear-gradient(45deg, #ffc107, #ffc107 4px, #ffe083 4px, #ffe083 8px); }
.cal .today { outline: 2px solid #0d6efd; outline-offset: -2px; }

@media print {
  body { background: #fff; }
  .card { box-shadow: none; }
  a[href]::after { content: none; }
}
