.workflow-panel *{box-sizing:border-box}.workflow-panel{color:var(--text);font-family:Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:13px;line-height:1.35}.workflow-panel .wf-btn,.workflow-panel select,.workflow-panel input{background:var(--field);height:30px;color:var(--text);border:1px solid #777;font-size:12px}.workflow-panel select option{color:#e6e9ef;background:#1e2330;padding:4px 8px}.workflow-panel select option:checked{background:var(--accent);color:#fff}.workflow-panel select option:hover{background:#2a3142}.workflow-panel .wf-btn{background:var(--button);cursor:pointer;justify-content:center;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.workflow-panel .wf-btn:hover{background:var(--button-hover)}.workflow-panel select,.workflow-panel input{width:100%;padding:0 7px}.workflow-panel .primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent-dark)!important}.workflow-panel .good{background:var(--good)!important;color:#fff!important}.workflow-panel .danger{background:var(--danger)!important;color:#fff!important}.workflow-panel .wf-section{border:1px solid var(--soft);background:var(--panel);margin-top:10px;padding:9px}.workflow-panel .wf-section-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:800;display:flex}.workflow-panel .wf-title{text-align:center;margin:5px 0 6px;font-size:18px;font-weight:800}.workflow-panel .wf-subtitle{text-align:center;color:var(--muted);margin-bottom:10px;font-size:12px;line-height:1.35}.workflow-panel .wf-badge{background:var(--accent);color:#fff;white-space:nowrap;border-radius:12px;padding:3px 8px;font-size:11px}.workflow-panel .wf-field{grid-template-columns:140px 1fr;align-items:center;gap:8px;margin-bottom:7px;display:grid}.workflow-panel .wf-field-label{color:var(--text);font-weight:600}.workflow-panel .wf-readonly{background:var(--section);border:1px solid #aaa;align-items:center;gap:8px;min-height:30px;padding:6px;display:flex}.workflow-panel .wf-row{flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px;display:flex}.workflow-panel .wf-row .wf-btn{flex:1}.workflow-panel .wf-segmented{grid-template-columns:1fr 1fr;gap:7px;display:grid}.workflow-panel .wf-segmented button{background:var(--button);height:30px;color:var(--text);cursor:pointer;border:1px solid #777}.workflow-panel .wf-segmented button.active,.workflow-panel .wf-task-results button.active{background:var(--accent)!important;color:#fff!important}.workflow-panel .wf-checks{grid-template-columns:repeat(2,1fr);gap:7px;margin-top:8px;display:grid}.workflow-panel .wf-checks input[type=checkbox]{vertical-align:middle;width:16px;height:16px}.workflow-panel .wf-summary{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.workflow-panel .wf-summary-card{border:1px solid var(--soft);text-align:center;background:var(--card);padding:7px}.workflow-panel .wf-summary-value{font-size:17px;font-weight:800}.workflow-panel .wf-summary-label{color:var(--muted);font-size:10px}.workflow-panel .wf-direct{border-left:4px solid var(--good)}.workflow-panel .wf-basket{border-left:4px solid var(--accent)}.workflow-panel .wf-note{color:var(--muted);margin:7px 0 0;font-size:11px;line-height:1.35}.workflow-panel .wf-mode-switch{grid-template-columns:1fr 1fr;gap:7px;display:grid}.workflow-panel .wf-mode-switch button,.workflow-panel .wf-task-results button{background:var(--button);height:30px;color:var(--text);cursor:pointer;border:1px solid #777}.workflow-panel .wf-mode-switch button.active{background:var(--accent)!important;color:#fff!important}.workflow-panel .wf-task-search{gap:7px;display:grid}.workflow-panel .wf-search-box{background:var(--field);border:1px solid #777;grid-template-columns:24px 1fr;align-items:center;padding-left:6px;display:grid}.workflow-panel .wf-search-box input{border:0}.workflow-panel .wf-task-results{border:1px solid var(--soft);background:var(--section);gap:4px;max-height:130px;padding:5px;display:grid;overflow:auto}.workflow-panel .wf-task-results button{text-align:left;grid-template-columns:74px 1fr auto;align-items:center;gap:7px;padding:6px;display:grid}.workflow-panel .wf-task-results small{color:var(--muted)}.workflow-panel .wf-task-current{grid-template-columns:1fr auto;align-items:center;display:grid}.workflow-panel .wf-task-current small{color:var(--muted);grid-column:1/-1}.workflow-panel .wf-animation-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.workflow-panel .wf-anim-card{border:1px solid var(--soft);background:var(--card);color:var(--text);cursor:pointer;text-align:left;min-height:88px;padding:9px;font-family:inherit;font-size:13px;transition:all .15s}.workflow-panel .wf-anim-card:hover{background:var(--card-hover);transform:translateY(-1px)}.workflow-panel .wf-anim-card.active{border:2px solid var(--accent);background:var(--card-hover)}.workflow-panel .wf-anim-name{margin-top:4px;font-weight:800}.workflow-panel .wf-anim-desc{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.25}.workflow-panel .wf-compass-layout{grid-template-columns:190px 1fr;align-items:start;gap:10px;display:grid}.workflow-panel .wf-compass-disc{border:2px solid var(--border);background:var(--panel);border-radius:50%;width:150px;height:150px;margin:0 auto;position:relative}.workflow-panel .wf-compass-disc span{font-weight:800;position:absolute}.workflow-panel .wf-north{top:8px;left:69px}.workflow-panel .wf-south{bottom:8px;left:70px}.workflow-panel .wf-west{top:66px;left:10px}.workflow-panel .wf-east{top:66px;right:10px}.workflow-panel .wf-needle{transform-origin:50% 100%;width:18px;height:64px;transition:all 80ms;position:absolute;top:50%;left:50%}.workflow-panel .wf-needle:before{content:"";border-left:10px solid #0000;border-right:10px solid #0000;border-bottom:48px solid var(--accent);width:0;height:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.workflow-panel .wf-needle:after{content:"";background:var(--accent);border-radius:50%;width:13px;height:13px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.workflow-panel .wf-center-dot{background:var(--border);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.workflow-panel .wf-dir-grid{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:7px;display:grid}.workflow-panel .wf-dir-grid .wf-btn{height:25px;padding:0}.workflow-panel .wf-syn-title{background:var(--section);margin-top:7px;padding:6px;font-weight:800}.workflow-panel .wf-profile-row{border-bottom:1px solid var(--soft);grid-template-columns:180px 1fr;align-items:center;min-height:28px;font-size:12px;display:grid}.workflow-panel .wf-profile-row label{padding-left:5px}.workflow-panel .wf-profile-row input[type=checkbox]{width:16px}.workflow-panel .wf-color-row{grid-template-columns:42px 1fr;gap:5px;display:grid}.workflow-panel .wf-color-row input[type=color]{height:28px;padding:0}.workflow-panel .wf-color-input{grid-template-columns:42px 1fr;gap:5px;display:grid}.workflow-panel .wf-color-input input[type=color]{height:28px;padding:0}.workflow-panel .wf-appearance-stack{flex-direction:column;gap:8px;display:flex}.workflow-panel .wf-appearance-row{border:1px solid var(--soft);background:var(--card);grid-template-columns:90px 120px 1fr 88px;align-items:center;gap:7px;min-width:0;padding:7px;display:grid}.workflow-panel .wf-appearance-row label{white-space:nowrap;align-items:center;gap:5px;display:flex}.workflow-panel .wf-appearance-row label input{width:15px}.workflow-panel .wf-trans{grid-template-columns:1fr 34px;align-items:center;gap:5px;font-size:11px;display:grid}.workflow-panel .wf-preview-strip{border:1px solid var(--soft);background:linear-gradient(90deg,#eee,#fafafa);height:62px;position:relative;overflow:hidden}.workflow-panel .wf-phase{opacity:.18;height:100%;position:absolute;top:0}.workflow-panel .wf-before{background:var(--wf-before,#bdbdbd);width:30%;left:0}.workflow-panel .wf-during{background:var(--wf-during,#0f0);width:42%;left:30%}.workflow-panel .wf-after{background:var(--wf-after,#fff);width:28%;left:72%}.workflow-panel .wf-preview-object{background:var(--wf-during,#0f0);border-radius:3px;width:44px;height:22px;animation:1.8s ease-in-out infinite alternate wf-comboPreview;position:absolute;top:20px;left:15px}.workflow-panel .wf-preview-target{border:1px dashed var(--accent);opacity:.6;border-radius:3px;width:90px;height:22px;position:absolute;top:20px;left:560px}@keyframes wf-comboPreview{0%{opacity:.35;width:8px;left:15px}45%{opacity:.8;width:54px;left:310px}to{opacity:1;width:90px;left:560px}}@keyframes wf-growPreview{0%{opacity:.6;width:5px;left:300px}to{opacity:1;width:150px;left:300px}}@keyframes wf-movePreview{0%{opacity:.45;left:15px}to{opacity:1;left:560px}}@keyframes wf-pourPreview{0%{height:3px;top:42px}to{height:30px;top:12px}}.workflow-panel .wf-preview-object.grow{animation:1.5s ease-in-out infinite alternate wf-growPreview}.workflow-panel .wf-preview-object.move{animation:1.5s ease-in-out infinite alternate wf-movePreview}.workflow-panel .wf-preview-object.pour{animation:1.5s ease-in-out infinite alternate wf-pourPreview}.workflow-panel .wf-pill-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.workflow-panel .wf-pill-row span{background:var(--chip);border:1px solid var(--soft);border-radius:12px;padding:4px 8px;font-size:11px}.workflow-panel .wf-footer-actions{grid-template-columns:1fr 1.6fr 1fr;gap:8px;margin-top:10px;display:grid}.workflow-panel .wf-log{background:var(--log-bg);color:var(--log-text);white-space:pre-wrap;min-height:60px;max-height:160px;margin-top:12px;padding:9px;font-family:Consolas,monospace;font-size:12px;overflow:auto}.workflow-panel .wf-tabs{border:1px solid var(--border);margin-bottom:10px;display:flex}.workflow-panel .wf-tabs button{border:0;border-right:1px solid var(--border);background:var(--button);height:34px;color:var(--text);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 4px;font-size:12px;display:flex}.workflow-panel .wf-tabs button:last-child{border-right:0}.workflow-panel .wf-tabs button.active{background:var(--accent)!important;color:#fff!important}.gantt-container,.gantt-wrap{--bg:#0f0f12;--panel:#17171c;--panel-2:#1c1c22;--header:#20202a;--header-2:#292934;--border:#2c2c36;--border-strong:#3a3a48;--text:#c8cdd8;--text-dim:#7a7a88;--text-light:#fff;--accent:#10b981;--accent-2:#34d399;--green:#10b981;--red:#f48771;--yellow:#facc15;--orange:#fb923c;--row-hover:#10b9810f;--selected:#10b98124;--gantt-header-h:64px;--row-h:28px;--w-link:28px;--w-id:64px;--w-activityId:84px;--w-wbs:70px;--w-name:260px;--w-dur:56px;--w-date:90px;--w-prof:90px;--w-progress:130px;--w-crew:100px;--w-type:110px;--w-preds:110px;--w-critical:64px;--w-float:78px;--w-count:52px;--w-cost:96px;--w-qty:92px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:12px;display:flex;position:absolute;inset:0;overflow:hidden}.tl-toolbar,.gantt-toolbar{border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;z-index:10;background:linear-gradient(#15151b 0%,#17171c 100%);flex-wrap:wrap;flex-shrink:0;align-content:center;align-items:center;gap:4px 10px;min-height:36px;padding:4px 12px;font-size:11px;display:flex;overflow:visible}.tl-group{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.tl-label,.gt-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;margin-right:4px;padding:0 2px;font-size:10px;font-weight:500}.tl-preset{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:4px;flex-shrink:0;padding:4px 9px;font-family:inherit;font-size:11px;transition:background .12s,color .12s}.tl-preset:hover{color:var(--text-light);background:#ffffff0a}.tl-preset.on,.tl-preset.active{color:var(--accent-2);background:#10b98129}.tl-readout{color:var(--text-dim);border-left:1px solid var(--border);border-right:1px solid var(--border);box-sizing:border-box;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;height:24px;padding:4px 10px;font-size:10.5px;display:inline-flex}.tl-readout>*{white-space:nowrap;flex-shrink:0}.tl-readout .mono{color:var(--accent-2);font-family:JetBrains Mono,ui-monospace,monospace;font-weight:500}.tl-readout .sep{opacity:.35}.tl-spacer{flex:1 1 0;min-width:0}.gt-dropdown{flex-shrink:0;position:relative}.gt-dropdown-content{z-index:999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#13131b 0%,#0f0f16 100%);border:1px solid #5a729466;border-radius:8px;flex-direction:column;gap:3px;min-width:190px;padding:5px;display:none;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 6px 24px #0009,inset 0 0 0 1px #ffffff0a}.gt-dropdown-content.show{display:flex}.gt-dropdown-content .gt-btn,.gt-dropdown-content .tl-btn{border-radius:5px;justify-content:flex-start!important;width:100%!important;transform:none!important}.gt-dropdown-content .gt-select,.gt-dropdown-content .tl-select{box-sizing:border-box;width:100%}.gt-dropdown-content>div{align-items:center;gap:6px;padding:2px 4px;display:flex}.tl-toolbar .tl-btn,.tl-toolbar .gt-btn,.gantt-toolbar .tl-btn,.gantt-toolbar .gt-btn{color:var(--text);cursor:pointer;white-space:nowrap;width:auto;min-width:0;height:auto;min-height:0;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:5px;flex-shrink:0;align-items:center;gap:6px;padding:4px 9px;font-family:inherit;font-size:11px;line-height:1.2;transition:background .12s,border-color .12s,color .12s;display:inline-flex;transform:none}.tl-toolbar .tl-btn:hover,.tl-toolbar .gt-btn:hover,.gantt-toolbar .tl-btn:hover,.gantt-toolbar .gt-btn:hover{color:var(--text-light);box-shadow:none;background:#1f1f27;border-color:#2c2c36;transform:none}.tl-toolbar .tl-btn.active,.tl-toolbar .gt-btn.active,.gantt-toolbar .tl-btn.active,.gantt-toolbar .gt-btn.active{color:var(--accent-2);box-shadow:none;background:#10b98124;border-color:#10b98166}.tl-toolbar .tl-btn .gt-icon,.tl-toolbar .gt-btn .gt-icon,.gantt-toolbar .tl-btn .gt-icon,.gantt-toolbar .gt-btn .gt-icon{font-feature-settings:"liga";-webkit-font-feature-settings:"liga";text-rendering:optimizelegibility;flex-shrink:0;font-family:Material Icons,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1}.tl-toolbar .tl-sep,.tl-toolbar .gt-sep,.gantt-toolbar .tl-sep,.gantt-toolbar .gt-sep{background:var(--border);flex-shrink:0;align-self:center;width:1px;height:18px;margin:0 4px}.gt-select,.tl-select{color:var(--text);cursor:pointer;background:#1e1e26;border:1px solid #2f2f3a;border-radius:5px;flex-shrink:0;padding:3px 6px;font-family:inherit;font-size:11px;transition:border-color .12s,background .12s}.gt-select:hover,.tl-select:hover{background:#25252e;border-color:#44445a}.gt-select:focus,.tl-select:focus{border-color:var(--accent);outline:none}.tl-hint{color:var(--text-dim);letter-spacing:.04em;border-left:1px solid var(--border);flex-shrink:0;margin-left:2px;padding-left:8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px}.g-main{background:var(--panel);width:100%;min-height:0;color:var(--text);flex:1;display:flex;position:relative;overflow:hidden}.splitter{background:var(--panel);border-left:1px solid var(--border);border-right:1px solid var(--border);cursor:col-resize;z-index:100;flex-shrink:0;width:6px;transition:background .15s;position:relative}.splitter:after{content:"";background:var(--border-strong);pointer-events:none;border-radius:100px;width:2px;height:28px;transition:background .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.splitter:hover{background:#10b9811a}.splitter:hover:after,.splitter.dragging:after{background:var(--accent)}.splitter.dragging{background:#10b9812e}.grid-pane{background:var(--panel);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.grid-header{height:var(--gantt-header-h);background:var(--header);border-bottom:1px solid var(--border-strong);color:var(--text-light);align-items:flex-end;font-weight:500;display:flex;position:relative;overflow:hidden}.grid-header .gh-row{border-top:1px solid var(--border);box-sizing:border-box;align-items:center;width:100%;height:30px;display:flex}.grid-body{scrollbar-width:thin;scrollbar-color:#3a3a48 transparent;background:var(--panel);flex:1;position:relative;overflow:auto}.grid-body::-webkit-scrollbar{width:8px;height:8px}.grid-body::-webkit-scrollbar-thumb{background:#3a3a48;border-radius:4px}.grid-body::-webkit-scrollbar-track{background:0 0}.col{border-right:1px solid var(--border);white-space:nowrap;box-sizing:border-box;flex-shrink:0;align-items:center;height:100%;padding:0 8px;font-size:11px;display:flex;position:relative;overflow:hidden}.gh-row .col{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:10.5px;font-weight:500}.col input,.col input[type=text],.col input[type=number],.col input[type=date]{color:inherit;width:100%;font-family:inherit;font-size:inherit;background:0 0;border:none;padding:0}.col input:focus{outline:1px solid var(--accent);background:#1e1e26;border-radius:3px}.c-link{width:var(--w-link);justify-content:center;padding:0}.c-link input[type=checkbox]{pointer-events:auto}.c-id{width:var(--w-id);color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-activityId{width:var(--w-activityId);color:var(--accent-2);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px;font-weight:500}.c-wbs{width:var(--w-wbs);color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-name{width:var(--w-name);font-weight:400}.c-dur{width:var(--w-dur);color:var(--text-dim);justify-content:flex-end;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-dur .g-edit-dur{text-align:right}.c-date{width:var(--w-date);color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-prof{width:var(--w-prof);overflow:hidden}.c-progress{width:var(--w-progress);gap:6px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-crew{width:var(--w-crew);color:var(--text)}.c-type{width:var(--w-type);padding:0 8px}.c-preds{width:var(--w-preds);color:var(--text-dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-critical{width:var(--w-critical);justify-content:center}.c-float{width:var(--w-float);color:var(--text-dim);text-align:right;justify-content:flex-end;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-cost{width:var(--w-cost);text-align:right;justify-content:flex-end;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-qty{width:var(--w-qty);text-align:right;color:var(--text-dim);justify-content:flex-end;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.c-cost .cost-input{text-align:right;width:100%;color:inherit;font-family:inherit;font-size:inherit;pointer-events:auto;background:0 0;border:1px solid #0000;border-radius:3px;padding:1px 3px}.c-cost .cost-input:hover{border-color:var(--border)}.c-cost .cost-input:focus{border-color:var(--accent);background:#00000040;outline:none}.c-cost .cost-input.cost-derived{color:#7fd4ff;border-bottom-style:dotted;border-bottom-color:#7fd4ff88}.c-cost .cost-rollup{color:var(--text-light);font-weight:600}.c-cost .cost-over{color:var(--red)}.c-cost .cost-under{color:var(--green)}.c-cost .cost-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.c-cost .cost-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.c-cost .cost-input[type=number]{appearance:textfield}.c-count{width:var(--w-count);color:var(--text-dim);justify-content:center;font-size:10px}.gh-row .c-activityId,.gh-row .c-wbs,.gh-row .c-name{color:var(--text-light);font-weight:500}.col-resizer{cursor:col-resize;z-index:10;opacity:0;width:5px;transition:opacity .12s,background .12s;position:absolute;top:0;bottom:0;right:-2px}.col-resizer:hover,.col-resizer.dragging{background:var(--accent);opacity:1}.gh-row:hover .col-resizer{opacity:.4}.col-add{border-left:1px solid var(--border);width:28px;color:var(--text-dim);cursor:pointer;box-sizing:border-box;background:0 0;border-top:0;border-bottom:0;border-right:0;flex-shrink:0;justify-content:center;align-items:center;height:100%;margin-left:auto;padding:0;font-family:inherit;transition:color .12s,background .12s;display:flex}.col-add:hover{color:var(--accent-2);background:#10b9810d}.col-chooser{z-index:1000;letter-spacing:normal;text-transform:none;min-width:200px;color:var(--text);background:#1c1c26;border:1px solid #38384a;border-radius:6px;padding:4px;font-size:11.5px;font-weight:400;position:absolute;box-shadow:0 12px 36px #0000008c}.col-chooser .cc-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);margin-bottom:2px;padding:6px 10px 4px;font-size:10px;font-weight:500}.col-chooser .cc-item{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;padding:5px 10px;display:flex}.col-chooser .cc-item:hover{color:var(--text-light);background:#10b9811a}.col-chooser .cc-item.on{color:var(--accent-2)}.col-chooser .cc-check{width:14px;height:14px;color:var(--accent);background:#14141c;border:1px solid #44445a;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.col-chooser .cc-item.on .cc-check{background:var(--accent);border-color:var(--accent);color:#0a1620}.row{height:var(--row-h);box-sizing:border-box;cursor:pointer;border-bottom:1px solid #1d1d27;width:fit-content;min-width:100%;transition:background-color 80ms;display:flex}.row:hover{background-color:var(--row-hover)}.row.selected{background-color:var(--selected)}.row.wbs{color:var(--text-light);background-color:#10b9810b;font-weight:600}.row.wbs:hover{background-color:#10b98116}.row.wbs .c-name{font-weight:600}.row.conflict-row{box-shadow:inset 3px 0 0 var(--orange)}.row.conflict-row.dependency-only{box-shadow:inset 3px 0 #fb7185}.row.conflict-row.overlap-only{box-shadow:inset 3px 0 0 var(--orange)}.row.conflict-row.dual-conflict{background:#f9731614;box-shadow:inset 3px 0 #f97316}.row.constraint-row{box-shadow:inset 3px 0 0 var(--yellow);background:#facc150e}.row.constraint-row.conflict-row{box-shadow:inset 3px 0 0 var(--yellow), inset 6px 0 0 #fb7185bf}.constraint-warning{background:var(--yellow);color:#111827;border-radius:50%;flex:none;justify-content:center;align-items:center;width:14px;height:14px;margin-right:5px;font-size:10px;font-weight:800;line-height:14px;display:inline-flex}[data-task-id].critical-path{border-left:3px solid #dc2626!important}[data-task-id].near-critical{border-left:3px solid #f97316!important}.tree-spacer{flex-shrink:0;display:inline-block}.tree-toggle{cursor:pointer;width:14px;height:14px;color:var(--text-dim);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;transition:color .1s,background .1s;display:inline-flex}.tree-toggle:hover{color:var(--text-light);background:#ffffff0f}.tree-toggle svg{transition:transform .12s}.tree-toggle.collapsed svg{transform:rotate(-90deg)}.tree-toggle.leaf{visibility:hidden}.wbs-arrow{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:10px;transition:transform .15s,color .15s;display:inline-block}.wbs-arrow:hover{color:var(--accent-2)}.name-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.dur-unit{color:#555;margin-left:2px;font-size:9.5px}.prog-mini{background:#25252e;border-radius:100px;flex:1;height:5px;margin-right:8px;overflow:hidden}.prog-mini .fill{background:linear-gradient(90deg, var(--green), #34d399);border-radius:100px;height:100%}.prog-mini.complete .fill{background:linear-gradient(90deg, var(--accent), var(--accent-2))}.prog-mini.delayed .fill{background:linear-gradient(90deg,#ef4444,#f87171)}.prog-pct{color:var(--text-dim);text-align:right;flex-shrink:0;min-width:32px;font-size:9.5px}.type-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);background:#10b9811f;border:1px solid #10b98147;border-radius:100px;padding:2px 7px;font-size:9.5px;font-weight:500;line-height:1.4}.type-badge.type-sitework{color:#d97706;background:#d9770621;border-color:#d9770647}.type-badge.type-foundation{color:#818cf8;background:#6366f121;border-color:#6366f152}.type-badge.type-structure{color:#10b981;background:#10b98121;border-color:#10b98152}.type-badge.type-envelope{color:#5eead4;background:#14b8a621;border-color:#14b8a652}.type-badge.type-mep{color:#fbbf24;background:#f59e0b21;border-color:#f59e0b52}.type-badge.type-finishes{color:#f472b6;background:#ec489921;border-color:#ec489952}.type-badge.type-commission{color:#34d399;background:#10b98121;border-color:#10b98152}.flag-critical{color:#ef4444;font-size:12px}.gantt-pane{background:#11111a;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gantt-header{height:var(--gantt-header-h);background:var(--header);border-bottom:1px solid var(--border-strong);-webkit-user-select:none;user-select:none;flex-shrink:0;display:block;position:relative;overflow:hidden}.gantt-header-scroller{position:absolute;inset:0;overflow:hidden}.gantt-header-inner{height:100%;position:relative}.ts-row{height:calc(var(--gantt-header-h) / 3);white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.ts-row.tier-1{border-bottom:1px solid var(--border);background:#1c1c26}.ts-row.tier-2{border-bottom:1px solid var(--border);background:#20202a}.ts-row.tier-3{background:#24242e}.ts-cell{color:var(--text);box-sizing:border-box;border-right:1px solid #ffffff0d;align-items:center;padding-left:8px;font-size:11px;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.ts-row.tier-1 .ts-cell{color:var(--text-light);letter-spacing:.02em;border-right:1px solid var(--border-strong);font-size:11.5px;font-weight:500}.ts-row.tier-2 .ts-cell{color:var(--text);font-size:10.5px}.ts-row.tier-3 .ts-cell{color:var(--text-dim);justify-content:center;padding-left:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px}.ts-cell.weekend{color:#555;background:#ffffff05}.ts-cell.today{color:var(--yellow);background:#facc151a;font-weight:600}.ts-week-row,.ts-day-row{white-space:nowrap;-webkit-user-select:none;user-select:none;display:flex;position:relative;overflow:hidden}.ts-week-row{height:calc(var(--gantt-header-h) / 2);border-bottom:1px solid var(--border);background:#20202a}.ts-day-row{height:calc(var(--gantt-header-h) / 2);background:#24242e}.ts-week-cell{border-right:1px solid var(--border-strong);height:100%;color:var(--text-light);box-sizing:border-box;align-items:center;padding-left:8px;font-size:11px;font-weight:500;display:flex;position:absolute;overflow:hidden}.ts-day-cell{height:100%;color:var(--text-dim);box-sizing:border-box;border-right:1px solid #ffffff0d;justify-content:center;align-items:center;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;display:flex;position:absolute}.ts-day-cell.weekend{color:#555;background:#ffffff05}.ts-day-cell.today{color:var(--yellow);background:#facc151a;font-weight:600}.scrubber-strip{cursor:ew-resize;z-index:2;height:100%;position:absolute;top:0;left:0;right:0}.gantt-body{scrollbar-width:thin;scrollbar-color:#3a3a48 transparent;background:#11111a;flex:1;position:relative;overflow:auto}.gantt-body::-webkit-scrollbar{width:8px;height:10px}.gantt-body::-webkit-scrollbar-thumb{background:#3a3a48;border-radius:4px}.gantt-body::-webkit-scrollbar-track{background:0 0}.gantt-canvas{position:relative}.gantt-row-bg{height:var(--row-h);pointer-events:none;border-bottom:1px solid #1d1d27;position:absolute;left:0;right:0}.gantt-row-bg.wbs{background:#10b98106}.gantt-row-bg.hovered{background:var(--row-hover)}.gantt-row-bg.selected{background:var(--selected)}.gantt-col-tick{pointer-events:none;background:#ffffff06;width:1px;position:absolute;top:0;bottom:0}.gantt-col-tick.major{background:#ffffff0f}.gantt-col-tick.weekend-band{background:#ffffff05;border:0;width:auto}.bar-container{height:var(--row-h);box-sizing:border-box;border-bottom:1px solid #1d1d27;width:100%;position:relative}.bar-container.selected{background-color:var(--selected)}.bar{top:calc((var(--row-h) - 18px) / 2);cursor:grab;z-index:3;will-change:left, width;background:#ffffff1a;border:1px solid #ffffff38;border-radius:4px;align-items:center;min-width:4px;height:18px;transition:border-color .1s,box-shadow .1s,transform 40ms;display:flex;position:absolute;overflow:visible;box-shadow:0 1px 3px #0006}.bar:hover{z-index:4;border-color:#ffffff8c;box-shadow:0 2px 10px #0000008c}.bar.dragging{cursor:grabbing;opacity:.9;border-color:var(--yellow);z-index:50;box-shadow:0 4px 14px #0009, 0 0 0 1px var(--yellow);transition:none}.bar.selected{box-shadow:0 0 0 1px var(--accent), 0 1px 6px #10b98166}.bar-fill,.bar-progress{pointer-events:none;z-index:0;border-radius:3px 0 0 3px;height:100%;transition:width .1s linear;position:absolute;top:0;bottom:0;left:0}.bar-label{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #000000d9;pointer-events:none;z-index:1;text-overflow:ellipsis;padding-left:6px;font-size:10px;font-weight:500;position:relative;overflow:hidden}.bar-label.outside{color:var(--text);text-shadow:none;padding-left:0;position:absolute;left:calc(100% + 6px)}.bar-handle{cursor:ew-resize;z-index:10;background:0 0;width:6px;transition:background .1s;position:absolute;top:-1px;bottom:-1px}.bar-handle:hover,.bar-handle.active{background:#facc1580}.bar-handle.left,.bar-handle-left{border-radius:3px 0 0 3px;left:-3px}.bar-handle.right,.bar-handle-right{border-radius:0 3px 3px 0;right:-3px}.bar.t-sitework{background:#a162072e;border-color:#d977068c}.bar.t-foundation{background:#6366f12e;border-color:#6366f18c}.bar.t-structure{background:#0ea5e92e;border-color:#0ea5e98c}.bar.t-envelope{background:#14b8a62e;border-color:#14b8a68c}.bar.t-mep{background:#f59e0b2e;border-color:#f59e0b8c}.bar.t-finishes{background:#ec48992e;border-color:#ec48998c}.bar.t-commission{background:#10b9812e;border-color:#10b9818c}.bar.t-sitework .bar-fill,.bar.t-sitework .bar-progress{background:linear-gradient(90deg,#a16207,#d97706)}.bar.t-foundation .bar-fill,.bar.t-foundation .bar-progress{background:linear-gradient(90deg,#6366f1,#818cf8)}.bar.t-structure .bar-fill,.bar.t-structure .bar-progress{background:linear-gradient(90deg,#34d399,#10b981)}.bar.t-envelope .bar-fill,.bar.t-envelope .bar-progress{background:linear-gradient(90deg,#14b8a6,#5eead4)}.bar.t-mep .bar-fill,.bar.t-mep .bar-progress{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.bar.t-finishes .bar-fill,.bar.t-finishes .bar-progress{background:linear-gradient(90deg,#ec4899,#f472b6)}.bar.t-commission .bar-fill,.bar.t-commission .bar-progress{background:linear-gradient(90deg,#10b981,#34d399)}.bar.install .bar-fill,.bar.install .bar-progress{background:linear-gradient(90deg,#10b981 0%,#34d399 100%)}.bar.remove .bar-fill,.bar.remove .bar-progress{background:linear-gradient(90deg,#ef4444 0%,#f87171 100%)}.bar.critical,.bar.critical-path{border-color:#ef4444;box-shadow:0 0 0 1px #ef4444,0 0 12px #ef444459}.bar.critical .bar-fill,.bar.critical .bar-progress,.bar.critical-path .bar-fill,.bar.critical-path .bar-progress{background:linear-gradient(90deg,#dc2626,#ef4444)}.bar.near-critical{border:1px solid #f97316;box-shadow:0 0 8px #f9731666}.bar.near-critical .bar-fill,.bar.near-critical .bar-progress{background:linear-gradient(90deg,#f97316 0%,#fb923c 100%)}.bar.band-status-complete{background:#60a5fa33;border-color:#60a5fab3}.bar.band-status-complete .bar-fill,.bar.band-status-complete .bar-progress{background:linear-gradient(90deg,#2563eb 0%,#60a5fa 100%)}.bar.band-status-active{background:#facc152e;border-color:#facc15b3}.bar.band-status-active .bar-fill,.bar.band-status-active .bar-progress{background:linear-gradient(90deg,#ca8a04 0%,#facc15 100%)}.bar.band-status-delayed{background:#ef444438;border-color:#ef4444cc;box-shadow:0 0 8px #ef444473}.bar.band-status-delayed .bar-fill,.bar.band-status-delayed .bar-progress{background:linear-gradient(90deg,#b91c1c 0%,#ef4444 100%)}.bar.band-status-due{background:#fb923c2e;border-color:#fb923cb3}.bar.band-status-due .bar-fill,.bar.band-status-due .bar-progress{background:linear-gradient(90deg,#c2410c 0%,#fb923c 100%)}.bar.band-status-planned{background:#94a3b826;border-color:#94a3b880}.bar.band-status-planned .bar-fill,.bar.band-status-planned .bar-progress{background:linear-gradient(90deg,#475569 0%,#94a3b8 100%)}.bar.band-float-critical{background:#dc262638;border-color:#dc2626d9;box-shadow:0 0 8px #dc262680}.bar.band-float-critical .bar-fill,.bar.band-float-critical .bar-progress{background:linear-gradient(90deg,#991b1b 0%,#dc2626 100%)}.bar.band-float-near{background:#f973162e;border-color:#f97316bf}.bar.band-float-near .bar-fill,.bar.band-float-near .bar-progress{background:linear-gradient(90deg,#c2410c 0%,#f97316 100%)}.bar.band-float-caution{background:#eab3082e;border-color:#eab308bf}.bar.band-float-caution .bar-fill,.bar.band-float-caution .bar-progress{background:linear-gradient(90deg,#a16207 0%,#eab308 100%)}.bar.band-float-flex{background:#10b98126;border-color:#10b981a6}.bar.band-float-flex .bar-fill,.bar.band-float-flex .bar-progress{background:linear-gradient(90deg,#047857 0%,#10b981 100%)}.bar.band-float-unknown{background:#94a3b826;border-color:#94a3b880}.bar.band-float-unknown .bar-fill,.bar.band-float-unknown .bar-progress{background:linear-gradient(90deg,#475569 0%,#94a3b8 100%)}.bar.conflict-overlap{border:1px solid var(--orange);box-shadow:0 0 10px #f59e0b59}.bar.conflict-overlap .bar-fill,.bar.conflict-overlap .bar-progress{background:linear-gradient(90deg,#f59e0b 0%,#fbbf24 100%)}.bar.conflict-dependency{border:1px solid #fb7185;box-shadow:0 0 10px #fb718559}.bar.conflict-dependency .bar-fill,.bar.conflict-dependency .bar-progress{background:linear-gradient(90deg,#fb7185 0%,#f43f5e 100%)}.bar.conflict-overlap.conflict-dependency{border:1px solid #f97316;box-shadow:0 0 12px #f973166b}.bar.conflict-overlap.conflict-dependency .bar-fill,.bar.conflict-overlap.conflict-dependency .bar-progress{background:linear-gradient(90deg,#f97316 0%,#fb7185 100%)}.bar.constraint-violation{border:1px solid var(--yellow);box-shadow:0 0 10px #facc1580}.bar.constraint-violation:after{content:"!";background:var(--yellow);color:#111827;text-align:center;z-index:12;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:800;line-height:14px;position:absolute;top:-7px;right:-8px}.milestone.constraint-violation{background:var(--yellow);box-shadow:0 0 10px #facc1580}.bar.summary{height:8px;box-shadow:none;pointer-events:none;cursor:default;top:calc((var(--row-h) - 8px) / 2);background:#2a2a36;border:1px solid #44445a;border-radius:0}.bar.summary:before,.bar.summary:after{content:"";border-top:5px solid #44445a;width:0;height:0;position:absolute;top:100%}.bar.summary:before{border-right:5px solid #0000;left:0}.bar.summary:after{border-left:5px solid #0000;right:0}.milestone{top:calc((var(--row-h) - 12px) / 2);background:var(--yellow);z-index:3;border:1px solid #fff;width:12px;height:12px;position:absolute;transform:rotate(45deg);box-shadow:0 0 6px #facc1580}.milestone.critical{background:#ef4444;box-shadow:0 0 6px #ef44448c}.bar-baseline{opacity:.7;pointer-events:none;z-index:0;border-radius:2px;min-width:2px;height:4px;position:absolute}.bar-actual{top:calc(var(--row-h) - 5px);pointer-events:none;z-index:1;border-radius:2px;min-width:2px;height:4px;position:absolute}#ganttLinks,.dep-overlay{pointer-events:none;overflow:visible}.dep-line{fill:none;stroke:#5d5d70;stroke-width:1.2px}.dep-line.critical{stroke:#ef4444}.dep-arrow{fill:#5d5d70}.dep-arrow.critical{fill:#ef4444}.today-line{background:var(--yellow);z-index:12;pointer-events:none;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 8px #facc158c}.today-line.today-only{width:1px;box-shadow:none;z-index:6;background:#facc1566}.playhead-handle{background:var(--yellow);cursor:ew-resize;pointer-events:auto;z-index:13;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);width:16px;height:16px;transition:transform .1s,background .1s;position:absolute;top:-2px;left:-7px}.playhead-handle:hover{background:#fde047;transform:scale(1.18)}.data-date-line{background:repeating-linear-gradient(to bottom, var(--orange) 0 6px, transparent 6px 10px);z-index:11;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.hover-guide{pointer-events:none;z-index:7;background:#10b98159;width:1px;position:absolute;top:0;bottom:0}.gantt-task-band{pointer-events:none;z-index:1;opacity:.12;transition:opacity .2s;position:absolute;top:0;bottom:0}.gantt-task-band:hover{opacity:.22}.gantt-scale-canvas{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.row-profile-bar{background:var(--accent);opacity:.7;border-radius:3px;height:6px;transition:width .3s}.drag-tooltip{color:#fff;pointer-events:none;z-index:9999;white-space:nowrap;background:#1e1e28;border:1px solid #44445a;border-radius:5px;padding:6px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;position:fixed;box-shadow:0 6px 18px #00000080}.drag-tooltip b{color:var(--accent-2);font-weight:500}.drag-tooltip .delta{color:var(--yellow)}#gridContextMenu,.ctx-menu{z-index:9000;min-width:200px;color:var(--text);font-size:11.5px;position:fixed;background:#1c1c26!important;border:1px solid #38384a!important;border-radius:6px!important;padding:4px!important;box-shadow:0 12px 36px #0000008c!important}.ctx-menu .item{cursor:pointer;color:var(--text);border-radius:4px;align-items:center;gap:8px;padding:6px 10px;display:flex}.ctx-menu .item:hover{color:var(--text-light);background:#10b98126}.ctx-menu .item .kbd{color:var(--text-dim);margin-left:auto;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px}.ctx-menu .item.danger{color:var(--red)}.ctx-menu .sep{background:var(--border);height:1px;margin:4px 2px}
