.calendar-table { width: max-content; min-width: 100%; }
.calendar-table th:first-child { position: sticky; inset-inline-start: 0; z-index: 2; min-width: 180px; background: var(--surface); }
.calendar-table td, .calendar-table th { padding: 7px 4px; text-align: center; min-width: 38px; }
.calendar-table td:first-child, .calendar-table th:first-child { text-align: start; }
.calendar-table th.number { font-size: 12px; }
.calendar-weekday { display: block; font-size: 10px; font-weight: 500; }
.calendar-cell span { display: inline-grid; place-items: center; min-width: 26px; min-height: 26px; border-radius: 5px; font-size: 13px; font-weight: 800; }
.calendar-cell.status-ok span { background: var(--accent-wash); color: var(--accent-deep); }
.calendar-cell.status-late span, .calendar-cell.status-early span, .calendar-cell.status-open span { background: var(--warning-wash); color: var(--warning); }
.calendar-cell.status-missing span { background: var(--danger-wash); color: var(--danger); }
.calendar-cell.status-vacation span, .calendar-cell.status-sick span, .calendar-cell.status-other span { background: var(--bg); color: var(--ink); }
.calendar-cell.status-planned span { color: var(--muted); }
@media print { .calendar-table th:first-child { position: static; } }
