.work-calendar{margin-bottom:24px}.calendar-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:16px}.calendar-modes{display:flex;gap:4px}.calendar-modes [aria-pressed=true]{background:#176956;color:#fff;border-color:#176956}.calendar-month{display:flex;align-items:end;gap:6px}.calendar-month[hidden]{display:none}.calendar-month label{margin:0}.calendar-controls input[type=search]{flex:1;min-width:170px}.calendar-summary{padding:0 16px 14px;color:#365650;line-height:1.7}.calendar-summary span{display:block;font-size:12px;color:#647a73}.calendar-scroll{overflow:auto;max-height:600px;border-top:1px solid #dce5e0}.calendar-grid{min-width:calc(240px + var(--days)*30px)}.calendar-line{display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid #e4eae7;min-height:92px}.calendar-name{position:sticky;left:0;background:#fff;z-index:2;padding:10px 12px;border-right:1px solid #dce5e0;display:flex;align-content:center;flex-wrap:wrap;gap:5px}.calendar-name small{width:100%;font-size:12px;color:#667b73}.calendar-task-name{font-weight:650!important;color:#153e35!important;text-align:left;padding:2px 0!important;line-height:1.4}.calendar-name .calendar-task-name{width:100%}.calendar-name .tag{font-size:10px;padding:2px 6px;max-width:100%;white-space:normal}.calendar-header{position:sticky;top:0;z-index:3;min-height:40px;background:#f2f6f3}.calendar-header .calendar-name{background:#f2f6f3;font-size:12px}.calendar-days{display:grid;grid-template-columns:repeat(var(--days),1fr)}.calendar-days span{padding:12px 0;text-align:center;font-size:12px;border-right:1px solid #e1e8e4}.calendar-days .weekend{background:#e7eeeb}.calendar-days .today{background:#176956;color:white;font-weight:700}.calendar-track{position:relative;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / var(--days) - 1px),#e9efeb calc(100% / var(--days) - 1px),#e9efeb calc(100% / var(--days)));min-height:92px}.calendar-bar{position:absolute;top:27px;height:36px;border-radius:6px;background:#e2eee8;border:1px solid #8dac9c;padding:4px!important;color:#234d3f;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:0!important;font-size:11px}.calendar-bar.active{background:#176956;color:#fff}.calendar-bar.done{background:#dce4df;color:#5b7064}.calendar-bar.late{border:2px solid #b96626}.calendar-undated{position:absolute;left:12px;top:32px;font-size:12px;color:#6b7f75}.calendar-note{padding:14px 16px;margin:0}.calendar-cards{padding:0 16px}.calendar-card{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid #e1e8e3}.calendar-card p{margin:6px 0;font-size:13px}.calendar-card-actions{display:flex;align-items:end;gap:8px}.calendar-card-actions label{margin:0}.calendar-tags{display:flex;gap:6px;flex-wrap:wrap}.calendar-warning{color:#8c541e!important}.calendar-pages{display:flex;gap:12px;justify-content:center;align-items:center;padding:12px}.task-dependencies{margin:20px 0 12px;border:1px solid #d7e2da;padding:12px;border-radius:8px}.task-dependencies legend{padding:0 8px;font-weight:600}.dependency-options{max-height:210px;overflow:auto;margin-top:10px}.dependency-options .check{padding:8px 4px;display:flex;gap:8px;align-items:center}.dependency-options .check[hidden]{display:none}.dependency-options small{margin-left:auto;white-space:nowrap}.calendar-shift-list article{padding:12px 0;border-bottom:1px solid #e1e8e3}.calendar-shift-list p{margin:6px 0}
@media(max-width:600px){.calendar-grid{min-width:calc(160px + var(--days)*28px)}.calendar-line{grid-template-columns:160px 1fr}.calendar-name{padding:8px}.calendar-controls{padding:12px;gap:8px}.calendar-controls>input,.calendar-controls>select{width:100%}.calendar-month{width:100%}.calendar-month .field{flex:1}.calendar-month input{min-width:0;width:100%}.calendar-card{display:block}.calendar-card-actions{margin-top:12px;flex-wrap:wrap}.calendar-scroll{max-height:440px}.calendar-task-name{font-size:13px!important}.work-calendar .panel-top{align-items:start;flex-direction:column}.work-calendar .panel-top .actions{flex-wrap:wrap}.calendar-card-actions select{max-width:100%}}

/* Fixed classes keep the chart compatible with the strict style CSP. */
.calendar-days-28{--days:28}.calendar-days-29{--days:29}.calendar-days-30{--days:30}.calendar-days-31{--days:31}
.calendar-start-1{--from:1}.calendar-span-1{--span:1}.calendar-start-2{--from:2}.calendar-span-2{--span:2}.calendar-start-3{--from:3}.calendar-span-3{--span:3}.calendar-start-4{--from:4}.calendar-span-4{--span:4}.calendar-start-5{--from:5}.calendar-span-5{--span:5}.calendar-start-6{--from:6}.calendar-span-6{--span:6}.calendar-start-7{--from:7}.calendar-span-7{--span:7}.calendar-start-8{--from:8}.calendar-span-8{--span:8}.calendar-start-9{--from:9}.calendar-span-9{--span:9}.calendar-start-10{--from:10}.calendar-span-10{--span:10}.calendar-start-11{--from:11}.calendar-span-11{--span:11}.calendar-start-12{--from:12}.calendar-span-12{--span:12}.calendar-start-13{--from:13}.calendar-span-13{--span:13}.calendar-start-14{--from:14}.calendar-span-14{--span:14}.calendar-start-15{--from:15}.calendar-span-15{--span:15}.calendar-start-16{--from:16}.calendar-span-16{--span:16}.calendar-start-17{--from:17}.calendar-span-17{--span:17}.calendar-start-18{--from:18}.calendar-span-18{--span:18}.calendar-start-19{--from:19}.calendar-span-19{--span:19}.calendar-start-20{--from:20}.calendar-span-20{--span:20}.calendar-start-21{--from:21}.calendar-span-21{--span:21}.calendar-start-22{--from:22}.calendar-span-22{--span:22}.calendar-start-23{--from:23}.calendar-span-23{--span:23}.calendar-start-24{--from:24}.calendar-span-24{--span:24}.calendar-start-25{--from:25}.calendar-span-25{--span:25}.calendar-start-26{--from:26}.calendar-span-26{--span:26}.calendar-start-27{--from:27}.calendar-span-27{--span:27}.calendar-start-28{--from:28}.calendar-span-28{--span:28}.calendar-start-29{--from:29}.calendar-span-29{--span:29}.calendar-start-30{--from:30}.calendar-span-30{--span:30}.calendar-start-31{--from:31}.calendar-span-31{--span:31}
.calendar-track{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));align-items:center}.calendar-bar{position:relative;top:auto;left:auto;width:auto;grid-column:var(--from)/span var(--span);margin:0 2px}.work-calendar a.button{border:1px solid var(--line);border-radius:7px;padding:10px 12px;display:inline-block}

.calendar-week{display:flex;flex-wrap:wrap;gap:12px 20px;border:1px solid var(--line);border-radius:8px;margin:16px 0;padding:16px}.calendar-week legend{padding:0 8px;font-weight:600}.calendar-week .check{display:flex;gap:6px;align-items:center}.calendar-week input{width:auto}.form-grid textarea{max-width:100%;min-width:0}
