body{background:#f6f7f9}
.table td,.table th{vertical-align:middle}

/* Bootstrap tables apply background on cells; force row color via vars + td/th */
.ts-weekend  { --bs-table-bg:#e9ecef; --bs-table-striped-bg:#e9ecef; }
.ts-holiday  { --bs-table-bg:#d1ecf1; --bs-table-striped-bg:#d1ecf1; }
.ts-vacation { --bs-table-bg:#fff3cd; --bs-table-striped-bg:#fff3cd; } /* light yellow */
.ts-sick     { --bs-table-bg:#f8d7da; --bs-table-striped-bg:#f8d7da; }
.ts-working  { --bs-table-bg:#ffffff; --bs-table-striped-bg:#ffffff; } /* force white */

.ts-weekend  > * { background-color:#e9ecef !important; }
.ts-holiday  > * { background-color:#d1ecf1 !important; }
.ts-vacation > * { background-color:#fff3cd !important; }
.ts-sick     > * { background-color:#f8d7da !important; }
.ts-working  > * { background-color:#ffffff !important; }

/* Ensure non-tagged rows still look like working days (white) */
.table tbody tr:not(.ts-weekend):not(.ts-holiday):not(.ts-vacation):not(.ts-sick):not(.ts-working) > * {
  background-color:#ffffff !important;
}


/* Stand-by calendar (user-facing) */
.standby-grid { width: 100%; }
.standby-grid-header,
.standby-grid-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .5rem;
}
.standby-grid-header { padding: .25rem; }
.standby-dow {
  font-weight: 600;
  text-align: center;
  font-size: .85rem;
  color: #495057;
}
.standby-tile {
  border: 1px solid rgba(0,0,0,.125);
  border-radius: .75rem;
  background: #fff;
  padding: .5rem;
  min-height: 120px;
  cursor: pointer;
}
.standby-tile--empty {
  background: transparent;
  border: 1px dashed rgba(0,0,0,.1);
  cursor: default;
}
.standby-tile--weekend { background: #f1f3f5; }
.standby-tile--holiday { background: #e7f5ff; }
.standby-tile--locked { opacity: .75; cursor: not-allowed; }
.standby-tile__top { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.standby-tile__daynum { font-size: 1.25rem; font-weight: 700; line-height: 1; }
.standby-badge { font-weight: 600; }
.standby-tile__actions { margin-top: .5rem; }
.standby-dot { width: 12px; height: 12px; border-radius: 999px; display:inline-block; border:1px solid rgba(0,0,0,.1); }
.standby-dot--weekday { background: #fff; }
.standby-dot--weekend { background: #f1f3f5; }
.standby-dot--holiday { background: #e7f5ff; }
.standby-dot--locked { background: #dee2e6; }

