:root{--g-arrow-color: #1f2937;--g-bar-color: #fff;--g-bar-border: #fff;--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: #dbdbdb;--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: #37352f;--g-popup-actions: #ebeff2;--g-weekend-highlight-color: #f7f7f7}.gantt-main-wrapper{overflow:hidden!important;position:relative;width:100%;height:600px;min-height:400px;max-height:800px;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e0e4e8;border-radius:4px;background:#fff}.gantt-header-container{overflow-x:hidden!important;overflow-y:hidden!important;position:relative;z-index:1000;background:#f8f9fa;border-bottom:2px solid #e0e4e8;flex-shrink:0;box-shadow:0 2px 4px #0000000f;overflow:hidden}.gantt-container{position:relative;overflow-y:auto;overflow-x:auto;font-size:12px;flex:1;background:#fff}.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 .current-highlight{position:absolute;background:var(--g-today-highlight);width:2px;z-index:999}.gantt-container .extras,.gantt-container .hide{display:none}.grid-header{background-color:#f8f9fa;position:relative;display:block;padding:0;width:100%}.upper-header{position:relative;display:block;background:#f8f9fa;border-bottom:1px solid #e8eaed;min-height:40px}.lower-header{position:relative;display:block;background:#f8f9fa;min-height:40px}.lower-text{font-size:11px;position:absolute;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#6b7280;font-weight:500;border-right:1px solid #e8eaed;height:32px;top:4px}.upper-text{position:absolute;font-weight:600;font-size:13px;color:#1f2937;display:inline-flex;align-items:center;padding:0 8px;border-right:2px solid #d1d5db;height:32px;top:4px;white-space:nowrap}.current-upper{color:#2563eb!important;font-weight:700}.side-header{display:none!important}.current-ball-highlight{position:absolute;background:#2563eb;z-index:1001;border-radius:50%}.current-date-highlight{background:#2563eb!important;color:#fff!important;border-radius:3px}.gantt{user-select:none;-webkit-user-select:none;position:relative;display:block}.gantt .grid-background{fill:none}.gantt .grid-row{fill:var(--g-row-color)}.gantt .grid-row:nth-child(2n){fill:#f9fafb}.gantt .row-line{stroke:var(--g-border-color);stroke-width:.5}.gantt .tick{stroke:var(--g-tick-color);stroke-width:.4}.gantt .tick.thick{stroke:#d1d5db;stroke-width:1.5}.gantt .arrow{fill:none;stroke:var(--g-arrow-color);stroke-width:1.5}.gantt .bar-wrapper .bar{fill:var(--g-bar-color);stroke:var(--g-bar-border);stroke-width:0;transition:stroke-width .3s ease;cursor:pointer}.gantt .bar-progress{fill:var(--g-progress-color);border-radius:4px}.gantt .bar-label{fill:var(--g-text-dark);dominant-baseline:central;font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:400}.gantt .handle{fill:var(--g-handle-color);opacity:0;transition:opacity .3s ease;cursor:ew-resize}.gantt .handle.active,.gantt .handle.visible{opacity:1}.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 .handle{opacity:1}.gantt-footer-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-top:2px solid #e0e4e8;box-shadow:0 -2px 4px #0000000f}.gantt-footer-controls .footer-left,.gantt-footer-controls .footer-right{display:flex;align-items:center;gap:8px}.gantt-footer-controls .today-btn{background:linear-gradient(180deg,#fff,#f8f9fa);border:1px solid #d1d5db;color:#374151;padding:6px 12px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 1px 2px #0000000d;display:flex;align-items:center;gap:6px}.gantt-footer-controls .today-btn:hover{background:linear-gradient(180deg,#f9fafb,#f3f4f6);border-color:#9ca3af}.gantt-footer-controls .view-mode-select{background:linear-gradient(180deg,#fff,#f8f9fa);border:1px solid #d1d5db;color:#374151;padding:6px 10px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;min-width:140px;height:32px;box-shadow:0 1px 2px #0000000d}.gantt-footer-controls .view-mode-select:hover{background:linear-gradient(180deg,#f9fafb,#f3f4f6);border-color:#9ca3af}.gantt-footer-controls .view-mode-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.gantt-wrapper-container{height:calc(100vh - 250px);min-height:600px;display:flex;flex-direction:column;background:#fff;border:1px solid #e0e4e8;border-radius:4px;overflow:hidden!important}.gantt-wrapper-container .gantt-main-wrapper{flex:1;height:100%;overflow:hidden!important}.add-task-button{cursor:pointer;transition:all .2s ease}.add-task-bg{fill:#f8f9fa;stroke:#ddd;stroke-width:1;transition:all .2s ease}.add-task-bg.hover{fill:#e9ecef;stroke:#007bff;stroke-width:2}.add-task-label{font-size:13px;font-weight:500;fill:#666;pointer-events:none;dominant-baseline:middle}.add-task-button:hover .add-task-label{fill:#007bff}.add-task-button:active{transform:scale(.98)}
