.calendar-container{overflow-x:auto;overflow-y:auto;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-inner{padding:20px}.calendar-table{border-collapse:separate;border-spacing:0;border-top:1px solid #000;border-left:1px solid #000}.calendar-table th,.calendar-table td{border-right:1px solid #000;border-bottom:1px solid #000;padding:6px;text-align:center;min-width:36px;white-space:nowrap}.calendar-table th{background:#f8f9fa;font-weight:600}.calendar-table .month-header{background:#e3f2fd;font-weight:700;font-size:15px}.calendar-table .staff-name{background-color:#f8f9fa;font-weight:700;text-align:left;min-width:100px;position:sticky;left:0;z-index:10}.calendar-table thead th{position:sticky;z-index:15}.calendar-table thead .staff-name{z-index:20}.calendar-table .empty-cell{background:#fafafa}.calendar-table .weekend{background:#ccc}.calendar-table .holiday{background:#ffcdd2}.calendar-table .vacation{background:#ffcc80}.calendar-table .business-trip{background:#bbdefb}.calendar-table .status-cell.editable{cursor:pointer;transition:opacity .2s}.calendar-table .status-cell.editable:hover{opacity:.8}.calendar-legend{display:flex;gap:20px;padding:15px 20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-legend-item{display:flex;align-items:center;gap:8px}.calendar-legend-color{width:20px;height:20px;border:1px solid #000}
