@font-face{font-family:__geistSans_1e4310;src:url(/_next/static/media/4473ecc91f70f139-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistSans_Fallback_1e4310;src:local("Arial");ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.__className_1e4310{font-family:__geistSans_1e4310,__geistSans_Fallback_1e4310}.__variable_1e4310{--font-geist-sans:"__geistSans_1e4310","__geistSans_Fallback_1e4310"}@font-face{font-family:__geistMono_c3aa02;src:url(/_next/static/media/463dafcda517f24f-s.p.woff) format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:__geistMono_Fallback_c3aa02;src:local("Arial");ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}.__className_c3aa02{font-family:__geistMono_c3aa02,__geistMono_Fallback_c3aa02}.__variable_c3aa02{--font-geist-mono:"__geistMono_c3aa02","__geistMono_Fallback_c3aa02"}:root{--g-arrow-color:#1f2937;--g-bar-color:#6b7280;--g-bar-border:#4b5563;--g-tick-color-thick:#ededed;--g-tick-color:#f3f3f3;--g-actions-background:#f3f3f3;--g-border-color:#ebeff2;--g-text-muted:#7c7c7c;--g-text-light:#fff;--g-text-dark:#171717;--g-progress-color:#f97316;--g-handle-color:#37352f;--g-weekend-label-color:#dcdce4;--g-expected-progress:#c4c4e9;--g-header-background:#fff;--g-row-color:#fdfdfd;--g-row-border-color:#c7c7c7;--g-today-highlight:#f97316;--g-popup-actions:#ebeff2;--g-weekend-highlight-color:#f7f7f7}.gantt-container{line-height:14.5px;position:relative;overflow:auto;font-size:12px;height:var(--gv-grid-height);width:100%;border-radius:8px}.gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:#fff;box-shadow:0 10px 24px -3px #0003;padding:10px;border-radius:5px;width:max-content;z-index:1000}.gantt-container .popup-wrapper .title{margin-bottom:2px;color:var(--g-text-dark);font-size:.85rem;font-weight:650;line-height:15px}.gantt-container .popup-wrapper .subtitle{color:var(--g-text-dark);font-size:.8rem;margin-bottom:5px}.gantt-container .popup-wrapper .details{color:var(--g-text-muted);font-size:.7rem}.gantt-container .popup-wrapper .actions{margin-top:10px;margin-left:3px}.gantt-container .popup-wrapper .action-btn{border:none;padding:5px 8px;background-color:var(--g-popup-actions);border-right:1px solid var(--g-text-light)}.gantt-container .popup-wrapper .action-btn:hover{background-color:brightness(97%)}.gantt-container .popup-wrapper .action-btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt-container .popup-wrapper .action-btn:last-child{border-right:none;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt-container .grid-header{height:calc(var(--gv-lower-header-height) + var(--gv-upper-header-height) + 10px);background-color:var(--g-header-background);position:sticky;top:0;left:0;border-bottom:1px solid var(--g-row-border-color);z-index:1000}.gantt-container .lower-text,.gantt-container .upper-text{text-anchor:middle}.gantt-container .upper-header{height:var(--gv-upper-header-height)}.gantt-container .lower-header{height:var(--gv-lower-header-height)}.gantt-container .lower-text{font-size:12px;position:absolute;width:calc(var(--gv-column-width) * .8);height:calc(var(--gv-lower-header-height) * .8);margin:0 calc(var(--gv-column-width) * .1);align-content:center;text-align:center;color:var(--g-text-muted)}.gantt-container .upper-text{position:absolute;width:fit-content;font-weight:500;font-size:14px;color:var(--g-text-dark);height:calc(var(--gv-lower-header-height) * .66)}.gantt-container .current-upper{position:sticky;left:0!important;padding-left:17px;background:#fff}.gantt-container .side-header{position:sticky;top:0;right:0;float:right;z-index:1000;line-height:20px;font-weight:400;width:max-content;margin-left:auto;padding-right:10px;padding-top:10px;background:var(--g-header-background);display:flex}.gantt-container .side-header *{transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:var(--g-actions-background);border-radius:.5rem;border:none;padding:5px 8px;color:var(--g-text-dark);font-size:14px;letter-spacing:.02em;font-weight:420;box-sizing:content-box;margin-right:5px}.gantt-container .side-header :last-child{margin-right:0}.gantt-container .side-header :hover{filter:brightness(97.5%)}.gantt-container .side-header select{width:60px;padding-top:2px;padding-bottom:2px}.gantt-container .side-header select:focus{outline:none}.gantt-container .date-range-highlight{background-color:var(--g-progress-color);border-radius:12px;height:calc(var(--gv-lower-header-height) - 6px);top:calc(var(--gv-upper-header-height) + 5px);position:absolute}.gantt-container .current-highlight{position:absolute;background:var(--g-today-highlight);width:1px;z-index:999}.gantt-container .current-ball-highlight{position:absolute;background:var(--g-today-highlight);z-index:1001;border-radius:50%}.gantt-container .current-date-highlight{background:var(--g-today-highlight);color:var(--g-text-light);border-radius:5px}.gantt-container .holiday-label{position:absolute;top:0;left:0;opacity:0;z-index:1000;background:--g-weekend-label-color;border-radius:5px;padding:2px 5px}.gantt-container .holiday-label.show{opacity:1}.gantt-container .extras{position:sticky;left:0}.gantt-container .extras .adjust{position:absolute;left:8px;top:calc(var(--gv-grid-height) - 60px);background-color:#000000b3;color:#fff;border:none;padding:8px;border-radius:3px}.gantt-container .hide{display:none}.gantt{user-select:none;-webkit-user-select:none;position:absolute}.gantt .grid-background{fill:none}.gantt .grid-row{fill:var(--g-row-color)}.gantt .row-line{stroke:var(--g-border-color)}.gantt .tick{stroke:var(--g-tick-color);stroke-width:.4}.gantt .tick.thick{stroke:var(--g-tick-color-thick);stroke-width:.7}.gantt .arrow{stroke:var(--g-arrow-color);stroke-width:1.5}.gantt .bar-wrapper .bar{stroke-width:0;transition:stroke-width .3s ease}.gantt .bar-progress{fill:var(--g-progress-color);border-radius:4px}.gantt .bar-expected-progress{fill:var(--g-expected-progress)}.gantt .bar-invalid{fill:transparent;stroke:var(--g-bar-border);stroke-width:1;stroke-dasharray:5}:is(.gantt .bar-invalid)~.bar-label{fill:var(--g-text-light)}.gantt .bar-label{fill:var(--g-text-dark);dominant-baseline:central;font-family:Helvetica;font-size:13px;font-weight:400}.gantt .bar-label.big{fill:var(--g-text-dark);text-anchor:start}.gantt .handle{fill:var(--g-handle-color);opacity:0;transition:opacity .3s ease}.gantt .handle.active,.gantt .handle.visible{cursor:ew-resize;opacity:1}.gantt .handle.progress{fill:var(--g-text-muted)}.gantt .bar-wrapper{cursor:pointer}.gantt .bar-wrapper .bar{outline:1px solid var(--g-row-border-color);border-radius:3px}.gantt .bar-wrapper:hover .bar{transition:transform .3s ease}.gantt .bar-wrapper:hover .date-range-highlight{display:block}.gantt-container{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#fff;border-radius:.75rem}.gantt-wrapper{position:relative;overflow:hidden;border-radius:.75rem}.gantt .grid-header{background-color:#f8fafc;border-bottom:2px solid #e2e8f0;font-weight:600;font-size:.875rem;color:#1f2937}.gantt .grid-header .grid-row{border-bottom:1px solid #e2e8f0}.gantt .grid-header .grid-row:first-child{background-color:#f1f5f9;font-weight:700;color:#111827}.gantt .grid-header .grid-row .grid-col{border-right:1px solid #e2e8f0;padding:8px 12px;text-align:center}.gantt .grid-header .grid-row .grid-col.weekend{background-color:#fef3f2;color:#dc2626}.gantt .grid-body{background-color:#fff}.gantt .grid-body .grid-row{border-bottom:1px solid #f1f5f9;transition:background-color .15s ease}.gantt .grid-body .grid-row:hover{background-color:#fafbfc}.gantt .grid-body .grid-row .grid-col{border-right:1px solid #f1f5f9;padding:0;position:relative}.gantt .grid-body .grid-row .grid-col.today{background-color:#fef3f2;border-right:2px solid #f97316}.gantt .grid-body .grid-row .grid-col.weekend{background-color:#fafbfc}.gantt .bar-wrapper .bar{fill:var(--g-bar-color);stroke:var(--g-bar-border);stroke-width:1;rx:4;ry:4;cursor:pointer;transition:filter .2s ease}.gantt .bar-wrapper:hover .bar{filter:brightness(1.1)}.gantt .bar-wrapper .bar-progress{fill:var(--g-progress-color);rx:3;ry:3}.gantt .bar-wrapper .bar-label{font-size:12px;font-weight:600;fill:#fff;dominant-baseline:central}.gantt .bar-wrapper.gantt-project .bar{fill:#111827;stroke:#374151;stroke-width:1}.gantt .bar-wrapper.gantt-project .bar-progress{fill:#f97316}.gantt .bar-wrapper.gantt-project .bar-label{font-size:13px;font-weight:700;fill:#fff}.gantt .bar-wrapper.gantt-site .bar,.gantt .bar-wrapper[class*=gantt-site-wave] .bar{fill:#f97316;stroke:#ea580c;stroke-width:1}.gantt .bar-wrapper.gantt-site .bar-progress,.gantt .bar-wrapper[class*=gantt-site-wave] .bar-progress{fill:#fdba74}.gantt .bar-wrapper.gantt-site .bar-label,.gantt .bar-wrapper[class*=gantt-site-wave] .bar-label{fill:#fff;font-weight:600}.gantt .bar-wrapper.gantt-site-wave-v1 .bar,.gantt .bar-wrapper.gantt-wave-v1 .bar{fill:#3b82f6;stroke:#2563eb}.gantt .bar-wrapper.gantt-site-wave-v2 .bar,.gantt .bar-wrapper.gantt-wave-v2 .bar{fill:#10b981;stroke:#059669}.gantt .bar-wrapper.gantt-assignment .bar,.gantt .bar-wrapper[class*=gantt-assignment-] .bar{fill:#6b7280;stroke:#4b5563;stroke-width:1}.gantt .bar-wrapper.gantt-assignment .bar-label,.gantt .bar-wrapper[class*=gantt-assignment-] .bar-label{font-size:12px;fill:#fff}.gantt .bar-wrapper.gantt-allocation-full_time .bar,.gantt .bar-wrapper.gantt-assignment-full-time .bar{fill:#059669;stroke:#047857}.gantt .bar-wrapper.gantt-allocation-part_time .bar,.gantt .bar-wrapper.gantt-assignment-part-time .bar{fill:#d97706;stroke:#b45309}.gantt .bar-wrapper.gantt-allocation-consultant .bar,.gantt .bar-wrapper.gantt-assignment-consultant .bar{fill:#7c3aed;stroke:#6d28d9}.gantt .arrow{stroke:#6b7280;stroke-width:2;fill:none;marker-end:url(#arrowhead)}.gantt .arrow:hover{stroke:#f97316;stroke-width:3}.gantt .arrow.critical-path{stroke:#dc2626;stroke-width:3;stroke-dasharray:5,5}.gantt .bar-wrapper.status-planned .bar{opacity:.7}.gantt .bar-wrapper.status-active .bar{opacity:1}.gantt .bar-wrapper.status-completed .bar{fill:#059669!important;stroke:#047857!important}.gantt .bar-wrapper.status-delayed .bar{fill:#dc2626!important;stroke:#b91c1c!important}.gantt .bar-wrapper.status-cancelled .bar{fill:#6b7280!important;stroke:#4b5563!important;opacity:.5}@keyframes pulse-glow{0%,to{box-shadow:0 2px 4px rgba(0,0,0,.1),0 0 0 0 rgba(249,115,22,.7)}50%{box-shadow:0 2px 4px rgba(0,0,0,.1),0 0 0 4px rgba(249,115,22,.3)}}@keyframes shake{0%{transform:translateX(0)}25%{transform:translateX(-1px)}50%{transform:translateX(0)}75%{transform:translateX(1px)}to{transform:translateX(0)}}.gantt .popup-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.15);padding:16px;max-width:300px;z-index:1000}.gantt .popup-wrapper .title{font-size:.875rem;font-weight:600;color:#111827;margin-bottom:8px}.gantt .popup-wrapper .subtitle{font-size:.75rem;color:#6b7280;margin-bottom:4px}.gantt .popup-wrapper .status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.625rem;font-weight:600;text-transform:uppercase;margin-top:8px}.gantt .popup-wrapper .status-badge.status-active{background-color:#dcfce7;color:#166534}.gantt .popup-wrapper .status-badge.status-planned{background-color:#e0f2fe;color:#0c4a6e}.gantt .popup-wrapper .status-badge.status-completed{background-color:#dcfce7;color:#166534}.gantt .popup-wrapper .status-badge.status-delayed{background-color:#fef2f2;color:#991b1b}@media (max-width:768px){.gantt .grid-header .grid-row .grid-col{font-size:.75rem;padding:6px 8px}.gantt .bar .bar-label{font-size:.625rem;padding:0 4px}.gantt .bar{height:18px!important}.gantt .popup-wrapper{max-width:250px;padding:12px}}.gantt .bar:focus{outline:2px solid #f97316;outline-offset:2px}.gantt .bar[aria-selected=true]{box-shadow:0 0 0 3px rgba(249,115,22,.5)}@media (prefers-contrast:high){.gantt .bar{border-width:3px}.gantt .grid-body .grid-row,.gantt .grid-header{border-width:2px}}@media (prefers-reduced-motion:reduce){.gantt .bar{transition:none}.gantt .bar:hover{transform:none}.gantt .bar.status-active,.gantt .bar.status-delayed{animation:none}}