.est-schedule{--schedule-line:#edf0ee;--schedule-border:#d7e1da;--schedule-bg:#fff;--schedule-muted:#59675f;--schedule-name:280px;--schedule-dates:132px;--schedule-duration:78px;--schedule-left:calc(var(--schedule-name) + 2 * var(--schedule-dates) + var(--schedule-duration));color:#263e30;position:relative;min-width:0;font-size:13px}
.est-schedule.is-fullscreen{position:fixed;inset:12px;z-index:1100;overflow:auto;background:var(--schedule-bg);padding:18px;box-shadow:0 4px 40px #0005;border-radius:12px}
.est-schedule button,.est-schedule input,.est-schedule select{font:inherit}
.est-schedule input,.est-schedule select{min-height:34px;padding:6px 8px;border:1px solid var(--schedule-border);border-radius:6px;background:var(--schedule-bg);color:inherit;max-width:100%;box-sizing:border-box}
.est-schedule input[type=checkbox]{width:16px;min-height:16px;height:16px;accent-color:#267d48;flex-shrink:0}
.est-schedule input[type=date]{width:148px}.est-schedule input[type=number]{width:92px}
.est-schedule button:disabled,.est-schedule input:disabled,.est-schedule select:disabled{opacity:.45;cursor:not-allowed}
.est-schedule button:focus-visible,.est-schedule input:focus-visible{outline:2px solid #267d48;outline-offset:2px}
.es-schedule-summary{display:flex;flex-wrap:wrap;gap:24px;padding:14px 0;border-bottom:1px solid var(--schedule-border)}
.es-schedule-summary>div{min-width:130px;display:grid;gap:5px}.es-schedule-summary span{color:var(--schedule-muted);font-size:12px}.es-schedule-summary strong{font-size:17px;font-weight:600}.es-schedule-summary .es-schedule-late strong{color:#b4432a}
.es-schedule-toolbar,.es-schedule-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0}.es-schedule-filters{border-top:1px solid var(--schedule-border);padding-top:10px}.es-schedule-filters label{display:flex;align-items:center;gap:6px}.es-schedule-filters select{max-width:195px}.es-schedule-search{flex:1 1 220px;max-width:360px}.es-schedule-search input{width:100%}
.es-schedule-scale{display:flex;gap:3px}.es-schedule-scale button[aria-pressed=true]{background:#e4f2e8;border-color:#41805a;color:#174e2a}
.es-schedule-legend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:12px;color:var(--schedule-muted);padding:5px 0 10px}.es-schedule-legend span{max-width:600px}
.es-schedule-scroll{overflow:auto;max-height:62vh;border:1px solid var(--schedule-border);border-radius:8px;position:relative;isolation:isolate;overscroll-behavior:contain}.is-fullscreen .es-schedule-scroll{max-height:65vh}
.es-schedule-grid{position:relative;width:calc(var(--schedule-left) + var(--timeline-width));min-width:100%}
.es-schedule-row{display:grid;grid-template-columns:var(--schedule-name) var(--schedule-dates) var(--schedule-duration) var(--schedule-dates) var(--timeline-width);height:54px;border-bottom:1px solid var(--schedule-line);box-sizing:border-box;align-items:stretch}
.es-schedule-row[hidden]{display:none!important}.es-schedule-name{position:sticky;left:0;z-index:4;display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--schedule-bg);border-right:1px solid var(--schedule-border);min-width:0;box-sizing:border-box}
.es-schedule-name>button{flex:1;min-width:0;border:0;background:transparent;padding:2px 0;text-align:left;color:inherit;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.es-schedule-name button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.es-schedule-name small{font-size:11px;color:var(--schedule-muted);display:block;margin-top:3px}
.es-schedule-cell{display:flex;align-items:center;justify-content:center;padding:4px;min-width:0;background:var(--schedule-bg);border-right:1px solid var(--schedule-line);box-sizing:border-box}
.es-schedule-cell input[type=date]{padding:4px 2px;width:124px;font-size:12px;border-color:transparent}.es-schedule-cell input[type=date]:hover:not(:disabled){border-color:var(--schedule-border)}
.es-schedule-cell input[type=number]{width:44px;border-color:transparent;padding:4px 1px;font-size:12px;text-align:right}.es-schedule-cell small{color:var(--schedule-muted);font-size:10px;margin-left:2px}.es-schedule-cell button{border:0;background:none;cursor:pointer;font-size:12px;color:inherit;padding:4px 2px}
.es-schedule-track{position:relative;background-image:var(--timeline-grid);min-width:0}.es-schedule-bar{position:absolute;top:13px;height:25px;border:1px solid #448061;border-radius:5px;background:linear-gradient(to right,#1f713e var(--done),#bcddc8 var(--done));color:#173a24;font-size:11px!important;min-width:3px;overflow:hidden;cursor:grab;touch-action:none;z-index:2;padding:0!important;text-align:center}
.es-schedule-bar:active{cursor:grabbing}.es-schedule-bar.is-changed{box-shadow:0 0 0 2px #d9932e;border-color:#986721}.es-schedule-bar.is-done{background:#3b8052;color:white}.es-schedule-bar.is-group{height:7px;top:25px;background:#748f7f;border:0;border-radius:2px;cursor:pointer}.es-schedule-resize{position:absolute;right:0;top:0;height:100%;width:8px;background:#44806155;cursor:ew-resize}.es-schedule-baseline{height:4px;background:#89938d;border-radius:2px;position:absolute;top:42px;z-index:1}
.es-schedule-no-date{position:absolute;left:10px;top:18px;font-size:11px;color:#7b877e}.is-group-row{background:#f0f5f1;height:39px}.is-group-row .es-schedule-name,.is-group-row .es-schedule-cell{background:#f0f5f1;font-weight:600;font-size:12px}.is-group-row .es-schedule-bar{top:18px}.is-selected .es-schedule-name,.is-selected .es-schedule-cell{background:#eaf5ee}
.es-schedule-head{position:sticky;top:0;height:40px;z-index:5;background:#f6f8f7;color:var(--schedule-muted);font-weight:600;font-size:11px}.es-schedule-head .es-schedule-name,.es-schedule-head .es-schedule-cell{background:#f6f8f7}.es-schedule-axis{position:relative;overflow:hidden}.es-schedule-axis>span{position:absolute;top:12px;white-space:nowrap;padding-left:4px}
.es-schedule-links{position:absolute;left:0;top:0;pointer-events:none;color:#687f70;overflow:visible;z-index:1}.es-schedule-link-line{fill:none;stroke:currentColor;stroke-width:1.5}.es-schedule-link-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer;outline:none}.es-schedule-link:hover,.es-schedule-link:focus-within,.es-schedule-link.is-selected{color:#17653c}.es-schedule-link:hover .es-schedule-link-line,.es-schedule-link:focus-within .es-schedule-link-line,.es-schedule-link.is-selected .es-schedule-link-line{stroke-width:3}.es-schedule-link-hit:focus-visible{stroke:#287d4340}.es-schedule-today{position:absolute;top:40px;bottom:0;left:calc(var(--schedule-left) + var(--today-left));border-left:1px dashed #b26332;pointer-events:none;z-index:1}.es-schedule-count{padding:8px 0;font-size:12px;color:var(--schedule-muted)}
.es-schedule-link-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.es-schedule-dependencies li{flex-wrap:wrap}.es-schedule-dependencies li>span{flex:1 1 260px}.es-schedule-dependency-card{border-left:3px solid #448061;outline:none}.es-schedule-link-hint{font-size:12px;color:var(--schedule-muted)}.es-schedule-link-ends{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px;margin:12px 0}.es-schedule-link-ends label{display:grid;gap:5px;font-size:12px;min-width:0}.es-schedule-link-ends select{width:100%;max-width:100%}.es-schedule-link-ends .searchable-select{min-width:0;max-width:100%}
.es-schedule-review,.es-schedule-card{border:1px solid var(--schedule-border);border-radius:9px;background:var(--schedule-bg);padding:16px;margin:12px 0}.es-schedule-review{border-left:4px solid #bc893f;background:#fffcf5}.est-schedule h3{font-size:15px;margin:0 0 10px;font-weight:600}.est-schedule p{margin:8px 0;line-height:1.5}.es-schedule-review li{margin:5px 0}.es-schedule-errors,.es-schedule-error{color:#982c26}.es-schedule-error{border:1px solid #e2b0aa;background:#fff4f1;padding:12px;border-radius:7px;margin-bottom:10px}.es-schedule-review-actions,.es-schedule-inline{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}.es-schedule-review-actions label{display:grid;gap:5px;flex:1 1 260px;max-width:540px}.es-schedule-review-actions input{width:100%}
.es-schedule-changes{max-height:210px;overflow:auto;margin:10px 0}.es-schedule-changes>div{display:grid;grid-template-columns:minmax(150px,1fr) 180px 18px 180px;gap:8px;padding:8px 0;border-bottom:1px solid var(--schedule-border);font-size:12px}.es-schedule-changes>div>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.es-schedule-changes strong{font-weight:500}
.es-schedule-card-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.es-schedule-card-head h3{line-height:1.5;overflow-wrap:anywhere}.es-schedule-card-head small{color:var(--schedule-muted)}.es-schedule-card-head>button{flex-shrink:0}.est-schedule fieldset{border:0;padding:0;margin:0;min-width:0}.es-schedule-form-grid{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:10px 0}.es-schedule-form-grid label,.es-schedule-inline label{display:grid;gap:5px;font-size:12px;max-width:100%;width:max-content}.es-schedule-form-grid select{max-width:250px}.es-schedule-predecessor{max-width:400px!important}.es-schedule-predecessor select{width:360px;max-width:100%}.es-schedule-check{display:flex!important;align-items:center;gap:7px;padding:8px 0}.es-schedule-card details{margin-top:18px;padding-top:12px;border-top:1px solid var(--schedule-border)}.est-schedule summary{cursor:pointer;font-weight:500}.es-schedule-dependencies{list-style:none;margin:8px 0;padding:0}.es-schedule-dependencies li{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--schedule-line)}.es-schedule-dependencies li>span{min-width:0;overflow-wrap:anywhere}.es-schedule-dependencies small{display:block;color:var(--schedule-muted);margin-top:5px}.es-schedule-dependencies button{flex-shrink:0}.es-schedule-exceptions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:12px}.es-schedule-exceptions>span{background:#f0f5f1;padding:3px 7px;border-radius:5px}.es-schedule-bulk{gap:12px}.es-schedule-bulk label{display:flex;align-items:center;gap:6px}.es-schedule-bulk input{width:85px}.es-schedule-history{margin:15px 0;color:var(--schedule-muted);font-size:12px}.es-schedule-empty{padding:25px}.es-schedule-busy{color:#547760}
@media(max-width:1100px){.est-schedule:not(.is-fullscreen){--schedule-name:260px;--schedule-dates:0px;--schedule-duration:0px}.est-schedule:not(.is-fullscreen) .es-schedule-date,.est-schedule:not(.is-fullscreen) .es-schedule-duration{display:none}.es-schedule-summary{gap:15px}.es-schedule-summary strong{font-size:15px}}
@media(max-width:650px){.est-schedule,.est-schedule.is-fullscreen{--schedule-name:195px;--schedule-dates:0px;--schedule-duration:0px}.est-schedule .es-schedule-date,.est-schedule .es-schedule-duration{display:none}.est-schedule.is-fullscreen{inset:4px;padding:10px}.es-schedule-summary>div{min-width:120px;flex:1 1 40%}.es-schedule-changes>div{grid-template-columns:1fr 16px 1fr}.es-schedule-changes>div>span:first-child{grid-column:1/-1}.es-schedule-changes>div{font-size:11px;gap:3px}.es-schedule-review,.es-schedule-card{padding:12px}.es-schedule-filters label{flex-wrap:wrap}.es-schedule-bulk{flex-wrap:wrap}.es-schedule-scroll{max-height:55vh}.es-schedule-form-grid{gap:10px}}

.est-econ[hidden]{display:none!important}
.est-schedule .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.es-schedule-track,.es-schedule-axis{grid-column:5}
.es-schedule-axis>span.es-schedule-tick{top:23px;font-size:10px}.es-schedule-month{position:absolute;top:3px;padding-left:4px;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}

/* A work stays in its row; controls never consume table width. */
.es-schedule-bar-wrap{position:absolute;top:13px;height:25px;z-index:2;touch-action:none}
.es-schedule-bar-wrap .es-schedule-bar{left:0;top:0;width:100%;height:100%;cursor:pointer;white-space:nowrap}
.es-schedule-bar-wrap.can-move .es-schedule-bar{cursor:grab}.is-dragging .es-schedule-bar-wrap.can-move .es-schedule-bar{cursor:grabbing}
.es-schedule-bar-wrap.is-group{height:7px;top:18px}.es-schedule-bar-wrap .es-schedule-bar-label{pointer-events:none}
.es-schedule-bar-wrap .es-schedule-resize{position:absolute;top:2px;height:21px;width:6px;padding:0;border:0;border-radius:2px;background:#ffffffad;opacity:0;cursor:ew-resize;z-index:3;touch-action:none}
.es-schedule-resize.is-start{left:1px;right:auto}.es-schedule-resize.is-end{right:1px;left:auto}
.es-schedule-connect{position:absolute;top:.5px;width:24px;height:24px;box-sizing:border-box;border:0!important;background:transparent!important;padding:7px!important;border-radius:50%;opacity:0;pointer-events:none;cursor:crosshair;z-index:4;touch-action:none}
.es-schedule-connect:after{content:'';display:block;width:10px;height:10px;box-sizing:border-box;background:#fff;border:2px solid #448061;border-radius:50%}
.es-schedule-connect.is-start{left:-24px}.es-schedule-connect.is-end{right:-24px}
.es-schedule-connect:hover:after,.es-schedule-connect:focus-visible:after{background:#267d48;border-color:#17653c;box-shadow:0 0 0 4px #267d4826;transform:scale(1.2)}
.es-schedule-bar-wrap:hover .es-schedule-resize,.es-schedule-bar-wrap:focus-within .es-schedule-resize,.es-schedule-row.is-selected .es-schedule-resize{opacity:1}
.es-schedule-track:hover .es-schedule-connect,.es-schedule-bar-wrap:focus-within .es-schedule-connect,.es-schedule-row.is-selected .es-schedule-connect,.is-linking .es-schedule-connect{opacity:1;pointer-events:auto}
.es-schedule-connect:focus-visible,.es-schedule-resize:focus-visible{opacity:1;pointer-events:auto;outline:2px solid #267d48;outline-offset:2px}
.es-schedule-bar-wrap.is-link-source .es-schedule-bar,.es-schedule-bar-wrap.is-link-target .es-schedule-bar{box-shadow:0 0 0 3px #75b48a;border-color:#17653c}
.es-schedule-bar-wrap.is-link-invalid .es-schedule-bar{box-shadow:0 0 0 3px #dca19c;border-color:#ad4940}
.es-schedule-connect-message{position:fixed;top:68px;left:50%;transform:translateX(-50%);z-index:1118;width:max-content;max-width:min(650px,calc(100vw - 24px));box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:10px 12px;background:#edf7f0;border:1px solid #c8dfcf;border-radius:7px;box-shadow:0 3px 12px #0002}.es-schedule-connect-message[hidden]{display:none}.es-schedule-connect-message span{flex:1;line-height:1.5}
.is-dragging,.est-schedule.is-linking{user-select:none}.is-linking .es-schedule-track,.is-linking .es-schedule-bar-wrap .es-schedule-bar{cursor:crosshair}.es-schedule-link-ghost{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:1120;overflow:visible;color:#267d48}.es-schedule-link-ghost .es-schedule-ghost-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.es-schedule-link-ghost marker path{fill:currentColor}.es-schedule-link-ghost.is-invalid{color:#ad4940}
.es-schedule-gesture-tip{position:fixed;z-index:1121;pointer-events:none;background:#234b33;color:#fff;max-width:340px;width:max-content;box-sizing:border-box;padding:8px 12px;border-radius:7px;box-shadow:0 3px 12px #0002;font-size:12px;line-height:1.5}.es-schedule-gesture-tip.is-invalid{background:#8a3e36}
.es-schedule-no-date{border:0;background:none;cursor:pointer;padding:0;color:#356549;font-size:12px!important}
.es-schedule-popover{position:fixed;z-index:1112;width:410px;max-width:calc(100vw - 24px);max-height:calc(100vh - 100px);overflow:auto;box-sizing:border-box;margin:0;padding:16px;border:1px solid #bacfc1;box-shadow:0 8px 28px #172c2526;outline:none}
.es-schedule-popover h3{font-size:14px;margin:0;line-height:1.5}.es-schedule-popover .es-schedule-card-head{gap:8px}.es-schedule-popover .es-schedule-card-head>button{width:30px;min-height:30px;padding:2px;font-size:20px}
.es-schedule-popover details{margin:12px 0;padding:10px 0 0}.es-schedule-popover summary{font-size:12px;color:#4b6555}.es-schedule-popover .es-schedule-form-grid{gap:10px}.es-schedule-popover .es-schedule-link-actions{margin-top:12px}.es-schedule-popover [data-action=begin-link]{margin-top:10px}
.es-schedule-popover .es-schedule-link-ends{grid-template-columns:minmax(0,1fr)}.es-schedule-popover .es-schedule-dependencies li{gap:4px}.es-schedule-popover .es-schedule-dependencies li>span{flex-basis:100%;font-size:12px}
.es-schedule-link-names{display:grid;gap:5px;font-weight:500;line-height:1.45;margin-top:12px}.es-schedule-link-names b{color:#6c8875;font-size:18px}
.es-schedule-review{position:fixed;bottom:16px;z-index:1114;box-sizing:border-box;margin:0;padding:12px 16px;max-height:48vh;overflow:auto;box-shadow:0 4px 24px #162b2326}
.es-schedule-review-top{display:flex;gap:16px;align-items:center;justify-content:space-between}.es-schedule-review-top>div:first-child{min-width:0}.es-schedule-review-top strong{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.es-schedule-review-top p{font-size:12px;color:#59675f;margin:4px 0 0}.es-schedule-review-top .es-schedule-link-actions{flex-wrap:nowrap}
.es-schedule-review-details{margin-top:8px}.es-schedule-review-details summary{font-size:12px}.es-schedule-comment{display:grid;gap:5px;margin-top:12px;font-size:12px}.es-schedule-comment input{width:100%}
.has-schedule-review{padding-bottom:125px}.has-schedule-review .floating-bulk-bar{display:none}.has-schedule-review .es-schedule-bar-wrap,.has-schedule-review .es-schedule-links{pointer-events:none}.has-schedule-review .es-schedule-link-hit{pointer-events:none}
@media(pointer:coarse){.es-schedule-connect{opacity:1;pointer-events:auto}.es-schedule-bar-wrap .es-schedule-resize{opacity:1}}
@media(max-width:650px){.es-schedule-popover{width:calc(100vw - 24px);max-height:65vh}.es-schedule-review{bottom:calc(72px + env(safe-area-inset-bottom,0px))}.es-schedule-review-top{flex-wrap:wrap;gap:10px}.es-schedule-review-top .es-schedule-link-actions{margin-left:auto}.es-schedule-gesture-tip{max-width:calc(100vw - 24px)}.es-schedule-connect-message{font-size:12px}}
