.calendar-toolbar,.month-controls { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.calendar-toolbar { justify-content:space-between; margin-bottom:12px; }
.month-controls h2 { margin:0; min-width:130px; text-align:center; font-size:23px; }
.calendar-toolbar select { margin-left:8px; padding:9px; font:inherit; border:1px solid var(--border); border-radius:4px; background:#fff; color:var(--fg); }
.calendar-note { color:var(--muted); font-size:12px; }
.work-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:2px solid var(--fg); border-left:1px solid var(--border); }
.calendar-weekday { padding:12px 0; text-align:center; background:var(--soft); border-right:1px solid var(--border); border-bottom:1px solid var(--border); font-weight:700; }
.calendar-day,.calendar-blank { min-height:112px; border:0; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:#fff; }
.calendar-day { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:12px; color:var(--fg); text-align:left; }
.calendar-day:hover { background:var(--hover); }
.calendar-day:disabled { cursor:default; opacity:.6; }
.calendar-blank { background:#fafafa; }
.day-number { display:inline-flex; gap:6px; align-items:center; font-weight:750; }
.calendar-day.today { background:#fff3f3; box-shadow:inset 0 0 0 2px var(--red); }
.calendar-day.today .day-number { color:#b3161d; }
.today-label { font-size:11px; padding:1px 5px; border-radius:3px; color:#fff; background:var(--red); }
.day-hours { font-size:12px; white-space:nowrap; }
.work-state,.work-legend span { padding:2px 6px; border-radius:3px; font-size:11px; font-weight:700; }
.completed { background:#ededed; color:#454545; }
.scheduled { background:#eaf1ff; color:#264e94; }
.working { background:#e1f3e8; color:#176239; }
.work-legend { display:flex; gap:8px; margin:13px 0 22px; }
.work-totals { display:grid; grid-template-columns:1fr 1fr; border-top:3px solid var(--fg); border-bottom:1px solid var(--border); }
.work-totals > div { padding:22px; }
.work-totals > div + div { border-left:1px solid var(--border); }
.work-totals h3 { margin:0 0 8px; font-size:14px; }
.work-totals strong { font-size:28px; }
.work-totals p { margin:5px 0 0; color:var(--muted); font-size:12px; }
#work-dialog { width:min(460px,calc(100vw - 28px)); padding:25px; border:1px solid var(--border); border-top:4px solid var(--red); border-radius:5px; }
#work-dialog::backdrop { background:#0007; }
#work-dialog h2 { margin:0 0 8px; }
.time-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:22px 0 10px; }
.time-fields label { display:flex; flex-direction:column; gap:8px; font-weight:700; }
.time-fields input { min-width:0; width:100%; min-height:46px; padding:8px; border:1px solid var(--border); border-radius:4px; font-size:16px; }
.dialog-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:20px; }
#work-delete { margin-right:auto; color:#a01920; }
.dialog-actions .primary { background:var(--fg); color:#fff; }
.form-error { color:#a01920; }
@media (max-width:720px) {
 .calendar-toolbar { gap:16px; }
 .month-controls { gap:7px; }
 .month-controls h2 { min-width:105px; font-size:20px; }
 .calendar-day,.calendar-blank { min-height:95px; }
 .calendar-day { padding:7px 3px; gap:6px; }
 .day-number { gap:2px; font-size:13px; }
 .today-label { padding:0 2px; font-size:9px; }
 .day-hours { white-space:normal; font-size:10px; line-height:1.35; }
 .work-state { padding:2px; font-size:9px; }
 .work-totals > div { padding:16px 10px; }
 .work-totals strong { font-size:21px; }
}

.time-sliders { margin:18px 0; padding:14px; background:var(--soft); border-radius:5px; }
.time-sliders label { display:block; margin:8px 0; font-size:13px; }
.time-sliders input { display:block; width:100%; height:32px; accent-color:var(--red); cursor:ew-resize; }
#work-dialog-member { padding:8px; font:inherit; }
#work-dialog-owner { font-weight:700; }
#work-day-list { max-height:140px; overflow:auto; font-size:13px; }
#work-day-list p { margin:4px 0; }
.day-hours { white-space:normal; overflow-wrap:anywhere; }
