.calendar-toolbar,.calendar-pager,.calendar-legend,.calendar-block>div,.calendar-load{display:flex;align-items:center;gap:16px}
.calendar-toolbar{justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}
.calendar-preferences{margin:0 0 20px;color:#667085;font-size:12px}.calendar-preferences>summary{cursor:pointer;width:fit-content}.calendar-preferences form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:12px}.calendar-preferences label{display:flex;flex-direction:column;gap:6px}.calendar-preferences select{min-height:38px}.calendar-preferences small{align-self:center}
.calendar-switch{display:flex;padding:4px;background:#edf0f5;border-radius:12px;gap:4px}
.calendar-switch a{padding:9px 20px;border-radius:9px;color:#657085;text-decoration:none;font-weight:650}
.calendar-switch .selected{background:#fff;color:#252d48;box-shadow:0 2px 5px #22324d12}
.calendar-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px;border:1px solid #e3e7ef;border-radius:14px;background:white}
.calendar-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#667085}
.calendar-filters input,.calendar-filters select{min-height:38px;max-width:230px}
.calendar-filters input[type=number]{width:90px}
.calendar-filters .checkbox-row{flex-direction:row;align-items:center;padding-bottom:8px}
.calendar-legend{margin:22px 0;font-size:12px;flex-wrap:wrap;color:#667085}
.calendar-legend span{display:flex;align-items:center;gap:7px}
.calendar-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.production-key,.gantt-bar.production{background:#6261cc}.delivery-key,.gantt-bar.delivery{background:#2d9d91}.activity-key,.gantt-bar.activity{background:#ce9340}
.calendar-legend small{margin-left:auto}
.calendar-blocks{display:grid;gap:12px}.calendar-month{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-week{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.calendar-block{display:block;padding:20px;background:white;border:1px solid #e1e5ed;border-radius:13px;color:#243149;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.calendar-block:hover,.calendar-block:focus-visible{border-color:#7571d5;box-shadow:0 3px 10px #363b7112}.calendar-block.is-selected{border-color:#6261cc;box-shadow:0 0 0 1px #6261cc}
.calendar-block>div:first-child{justify-content:space-between;margin-bottom:7px}.calendar-block strong{text-transform:capitalize;font-size:16px}.calendar-block small{color:#7b8393;font-size:11px}.calendar-block p{margin:20px 0 12px;font-size:12px;color:#697386}.calendar-block p b{font-size:22px;color:#2c3650;font-weight:550}.calendar-block.is-current{background:#f8f8ff}.calendar-current-dot{width:7px;height:7px;border-radius:50%;background:#6261cc}
.calendar-load{gap:6px;flex-wrap:wrap;font-size:10px}.production-count{background:#eeecfb;color:#5752a0;padding:4px 6px;border-radius:5px}.delivery-count{background:#e5f5f0;color:#287b70;padding:4px 6px;border-radius:5px}
.calendar-week .calendar-block{padding:10px}.calendar-week .calendar-block p{margin:12px 0 8px;font-size:10px}.calendar-week .calendar-block p b{font-size:15px}.calendar-week .calendar-load{gap:3px;font-size:9px}
.calendar-items{margin-top:26px}.calendar-hint{font-size:13px;color:#778093}.calendar-gantt{overflow:auto;border:1px solid #e0e5ed;border-radius:12px;background:#fff}
.gantt-header,.gantt-row{display:grid;grid-template-columns:240px repeat(28,minmax(24px,1fr));min-width:912px}.gantt-header{position:sticky;top:0;background:#f9fafc;z-index:2}.gantt-row{border-top:1px solid #edf0f5;min-height:70px}.gantt-label{position:sticky;left:0;background:#fff;padding:14px;border-right:1px solid #e3e7ee;z-index:1}.gantt-header .gantt-label{font-size:12px;color:#778093;background:#f9fafc}.gantt-date{text-align:center;padding:8px 0;border-right:1px solid #edf0f5}.gantt-date small{display:block;font-size:9px;color:#98a0b1}.gantt-date strong{font-size:12px}.weekend{background:#f5f6f9}.is-today{box-shadow:inset 2px 0 #7772d4;background:#f1effb}.gantt-cell{position:relative;border-right:1px solid #edf0f5;display:flex;flex-direction:column;justify-content:center;gap:4px}.gantt-bar{display:block;height:12px;min-height:12px}.gantt-bar.completed{opacity:.4}
.calendar-item-menu>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.calendar-item-menu>summary::-webkit-details-marker{display:none}.calendar-item-menu>summary>span:nth-child(2){flex:1;min-width:0}.calendar-item-menu>summary strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.calendar-item-menu>summary small{display:block;color:#838b9b;margin-top:4px;font-size:10px}.calendar-item-menu>summary svg{width:14px;height:14px;flex-shrink:0}.calendar-kind{width:7px;height:7px;border-radius:50%;background:#6261cc;flex-shrink:0}.calendar-kind.activity{background:#ce9340}
.calendar-popover{position:fixed;z-index:80;top:12vh;left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 32px));max-height:76vh;overflow:auto;overscroll-behavior:contain;padding:28px;background:#fff;border:1px solid #dce0e9;border-radius:16px;box-shadow:0 20px 100px #17243840}.calendar-popover h3{margin:8px 0}.calendar-popover p,.calendar-popover dl{font-size:13px;line-height:1.6}.calendar-popover dt{color:#7b8393}.calendar-popover dd{margin:0 0 10px}.calendar-popover .form-stack{margin-top:16px}.calendar-popover .field-row>*{min-width:0}
.calendar-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e6e9ef;background:#fff;border-radius:10px;margin:8px 0;padding:0 16px}.calendar-list-row .gantt-label{position:static;border:0;flex:1;min-width:0}.calendar-list-dates{font-size:12px;color:#778093}.calendar-warning,.calendar-refresh-error{padding:12px;background:#fff5dc;border-radius:8px;color:#805d16}.calendar-refresh-error[hidden]{display:none}
.calendar-editor{margin-top:20px}.calendar-editor>summary{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:13px}.calendar-create,.calendar-settings{padding:20px;border:1px solid #e1e5ed;background:#fff;border-radius:12px}.calendar-create>.form-stack,.calendar-settings>.form-stack{max-width:620px;margin-top:20px}.calendar-settings>p{font-size:13px;color:#778093}.calendar-editor .button-row{flex-wrap:wrap}
@media(max-width:1200px){.calendar-month{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-week{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:750px){.calendar-month{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-week{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-block{padding:14px}.calendar-legend small{margin-left:0}.calendar-filters label{flex:1;min-width:120px}.calendar-filters input,.calendar-filters select{width:100%;max-width:none}.calendar-list-row{align-items:flex-start;flex-direction:column;gap:0;padding-bottom:12px}.calendar-list-dates{padding-left:14px}.calendar-pager{font-size:12px}.calendar-switch a{padding:8px 16px}.calendar-popover{top:5vh;max-height:90vh}.calendar-popover .field-row{display:flex;flex-direction:column}}

.gantt-label:has(.calendar-item-menu[open]){z-index:30}
.gantt-bar{position:absolute;left:0;right:0;top:22px}.gantt-bar.delivery{top:39px}.gantt-bar.activity{top:30px}
.calendar-close{float:right;margin:-12px -12px 0 8px}

@media(max-width:750px){.calendar-filters input[type=checkbox]{width:18px;max-width:18px;min-height:18px}.gantt-header,.gantt-row{grid-template-columns:170px repeat(28,minmax(24px,1fr));min-width:842px}}

.gantt-deadline{position:absolute;top:28px;left:calc(50% - 6px);width:12px;height:12px;background:#d36c46;transform:rotate(45deg);z-index:1}
.weekend{background:#eef0f5}.gantt-date.weekend{color:#616a7c}.public-holiday{background:#fff0f0}.gantt-date.public-holiday,.holiday-note{color:#a7343c}.facility-offday{background:repeating-linear-gradient(135deg,#fff4e3,#fff4e3 5px,#f9edd8 5px,#f9edd8 7px)}.gantt-date.facility-offday{color:#815b23}.holiday-key{background:#e29a9e}.closure-key,.gantt-bar.closure,.calendar-kind.closure{background:#aa7139}.gantt-bar.closure{top:30px}.calendar-block.has-closure{border-color:#c89963}.calendar-block .calendar-block-note{display:block;margin-top:8px;line-height:1.4}.calendar-block .holiday-note{color:#a7343c}.calendar-block .closure-count,.closure-count{color:#815b23}.calendar-offday-dot{width:4px;height:4px;border-radius:50%;background:currentColor;display:block}.calendar-day-menu>summary{display:flex;flex-direction:column;gap:2px;min-height:54px;padding:2px 0}.calendar-day-menu .calendar-popover{text-align:left;font-weight:400}.calendar-day-menu .calendar-popover h3{text-transform:capitalize}.calendar-day-menu>summary:focus-visible{outline:2px solid #6261cc;outline-offset:-2px}.gantt-header:has(.calendar-day-menu[open]){z-index:40}
.sunday{background:#fff6f6}.gantt-date.sunday{color:#a7343c}.sunday.public-holiday{background:#fff0f0}.sunday.facility-offday{background:repeating-linear-gradient(135deg,#fff4e3,#fff4e3 5px,#f9edd8 5px,#f9edd8 7px)}
.calendar-block .calendar-block-note{overflow-wrap:anywhere}.calendar-week .calendar-block>div:first-child{gap:4px}
