
#gantt-app{--ink:#26332f;--muted:#78857f;--line:#e8ede9;--side:290px;--row:56px;color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f4f6f3;display:flex;flex-direction:column;height:calc(100dvh - 24px);min-height:450px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
#gantt-app *{box-sizing:border-box}#gantt-app button,#gantt-app input,#gantt-app select,#gantt-app textarea{font:inherit}#gantt-app button{cursor:pointer}#gantt-app button:focus-visible{outline:3px solid #709c89;outline-offset:2px}
#gantt-app .top{padding:22px 26px 14px;background:white;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}#gantt-app .eyebrow{color:#798b7f;font-size:10px;letter-spacing:2px;font-weight:700}#gantt-app h1{font-size:23px;letter-spacing:-.6px;margin:5px 0 4px;font-weight:650}#gantt-app .subtitle{font-size:12px;color:var(--muted)}#gantt-app .badge{font-size:11px;border:1px solid #dfe8df;background:#f5f8f4;border-radius:20px;padding:7px 12px}
#gantt-app .tools{background:white;padding:12px 26px 18px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line)}#gantt-app .btn,#gantt-app select{border:1px solid #dce4dc;border-radius:7px;background:white;color:var(--ink);padding:8px 12px}#gantt-app .primary{background:#345e4c;color:white;border-color:#345e4c}#gantt-app .danger{color:#a13f3f}#gantt-app .tools label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}#gantt-app .tools input[type=range]{width:110px;accent-color:#345e4c}#gantt-app .spacer{flex:1}
#gantt-app .board{flex:1;min-height:0;overflow:auto;background:white;position:relative}#gantt-app .sheet{min-width:100%;position:relative}#gantt-app .heading,#gantt-app .row{display:flex;width:100%}#gantt-app .heading{height:80px;position:sticky;top:0;z-index:8;background:white}#gantt-app .left{width:var(--side);flex:none;position:sticky;left:0;background:white;border-right:1px solid var(--line);z-index:4;padding:0 20px;display:flex;align-items:center;min-width:0}#gantt-app .heading .left{z-index:10;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;justify-content:space-between}#gantt-app .axis{position:relative;flex:none;height:80px;overflow:hidden;border-bottom:1px solid var(--line)}#gantt-app .tick{position:absolute;overflow:hidden;white-space:nowrap;border-right:1px solid var(--line);padding:11px 8px;font-size:11px;height:40px}#gantt-app .tick.minor{top:40px;border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:12px 2px}
#gantt-app .row{height:var(--row);border-bottom:1px solid var(--line)}#gantt-app .row .left{border-bottom:1px solid var(--line)}#gantt-app .row.group .left,#gantt-app .row.group .track{background:#f5f7f4}#gantt-app .row.group .left{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px}#gantt-app .name{width:100%;padding:0;background:transparent;border:0;text-align:left;color:var(--ink);overflow:hidden}#gantt-app .name strong{display:block;font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#gantt-app .name small{display:block;font-size:11px;color:var(--muted);margin-top:5px}#gantt-app .track{position:relative;flex:none;isolation:isolate;overflow:hidden}#gantt-app .bar{position:absolute;top:15px;height:26px;border:0;border-radius:6px;color:white;padding:0 10px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:2;box-shadow:0 2px 4px #26332f15;text-align:left;max-width:100%}#gantt-app .bar:hover{filter:brightness(1.07)}#gantt-app .diamond{position:absolute;top:15px;width:28px;height:26px;padding:0;border:0;background:transparent;z-index:3}#gantt-app .diamond:before{content:"";display:block;width:13px;height:13px;background:#345e4c;transform:rotate(45deg);margin:auto;border-radius:2px}#gantt-app .milestone-label{position:absolute;top:19px;font-size:11px;color:#53665a;white-space:nowrap;pointer-events:none;z-index:2}
#gantt-app .column{position:absolute;top:0;bottom:0;pointer-events:none;z-index:0}#gantt-app .weekend{background:#f0f3f080}#gantt-app .holiday{background:#efcf7845}#gantt-app .grid{border-left:1px solid #e8ede9}#gantt-app .today{border-left:2px solid #c56d5d;z-index:3}#gantt-app .foot{padding:12px 26px;font-size:11px;color:var(--muted);display:flex;gap:18px;flex-wrap:wrap}#gantt-app .legend{display:inline-block;width:9px;height:9px;background:#efcf7899;margin-right:5px;border-radius:2px}#gantt-app .message{color:#ae4236;font-size:12px;padding:0 26px;background:white}#gantt-app dialog{border:0;border-radius:14px;padding:26px;width:510px;max-width:calc(100vw - 30px);max-height:90dvh;overflow:auto;color:var(--ink);box-shadow:0 20px 70px #17251c40}#gantt-app dialog::backdrop{background:#182d2540}#gantt-app dialog h2{margin:8px 0 20px;font-size:23px}#gantt-app dialog p{white-space:pre-wrap;line-height:1.7;color:#64736a}#gantt-app .fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}#gantt-app .fields label{display:flex;flex-direction:column;gap:6px;font-size:12px}#gantt-app .fields .wide{grid-column:1/-1}#gantt-app .fields input,#gantt-app .fields textarea,#gantt-app .fields select{width:100%;padding:10px;border:1px solid #dce4dc;border-radius:6px;background:white;color:var(--ink)}#gantt-app .fields textarea{min-height:90px;resize:vertical}#gantt-app .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}#gantt-app dl{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13px}#gantt-app dt{color:var(--muted)}#gantt-app dd{margin:0}#gantt-app [hidden]{display:none!important}
@media(max-width:700px){#gantt-app{--side:180px;border-radius:0;height:100dvh}#gantt-app .top,#gantt-app .tools{padding:14px}#gantt-app .left{padding:0 12px}#gantt-app h1{font-size:19px}#gantt-app .spacer{display:none}#gantt-app .foot{padding:10px 14px}}

#gantt-app .rowItemsButton{display:block;text-align:left;width:100%;margin:8px 0;padding:12px;border:1px solid #dce4dc;border-radius:7px;background:white;color:var(--ink)}#gantt-app .row .left{padding-left:28px}#gantt-app .row.group .left{padding-left:20px}#gantt-app .actions{flex-wrap:wrap}#gantt-app .fields small{color:var(--muted);line-height:1.4}

#gantt-app .project-tools{padding:12px 26px;background:#f0f5ef;display:flex;align-items:center;gap:10px;flex-wrap:wrap}#gantt-app .project-tools label{display:flex;align-items:center;gap:12px;font-weight:650}#gantt-app .project-tools select{max-width:400px;padding:9px;border:1px solid #c8d7c9;border-radius:7px;background:white;color:var(--ink);font-size:16px}#gantt-app .project-field{padding:15px;border-radius:9px;background:#edf4ec;font-size:17px;font-weight:650}#gantt-app .project-field select{font-size:17px;font-weight:650}

#gantt-app .date-draggable{cursor:grab;user-select:none;touch-action:pan-y}#gantt-app .date-draggable.dragging{cursor:grabbing;filter:brightness(1.12);z-index:6;box-shadow:0 3px 12px #20372e40}#gantt-app .has-handles.resizable{padding-left:14px;padding-right:14px}#gantt-app .date-handle{display:none;position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize;z-index:3}#gantt-app .resizable .date-handle{display:block}#gantt-app .date-handle.start{left:0}#gantt-app .date-handle.end{right:0}#gantt-app .date-handle:after{content:"";position:absolute;top:6px;bottom:6px;left:4px;width:2px;border-radius:2px;background:#ffffff85}#gantt-app .date-handle:hover{background:#ffffff30}#gantt-app.is-dragging,#gantt-app.is-dragging *{user-select:none}#gantt-app.is-saving .board{pointer-events:none;opacity:.85}#gantt-app .drag-tooltip{position:fixed;z-index:80;background:#263c31;color:white;padding:9px 13px;border-radius:7px;font-size:12px;pointer-events:none;box-shadow:0 3px 12px #20372e30;white-space:nowrap}

/* The frame reserves room for always-visible navigation, including on macOS. */
#gantt-app{width:100%;max-width:100%;min-width:0;height:var(--gantt-viewport-height,calc(100dvh - 24px));min-height:320px}#gantt-app .top,#gantt-app .tools,#gantt-app .project-tools,#gantt-app .foot,#gantt-app .horizontal-navigation{flex-shrink:0}#gantt-app .gantt-frame{flex:1;display:flex;min-width:0;min-height:0;overflow:hidden}#gantt-app .board{flex:1;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}#gantt-app .vertical-navigation{width:34px;flex:none;display:flex;align-items:center;flex-direction:column;gap:6px;padding:5px 0;background:#f3f6f1;border-left:1px solid var(--line)}#gantt-app .vertical-navigation input{writing-mode:vertical-lr;direction:ltr;width:22px;flex:1;min-height:40px;margin:0;accent-color:#5b826d}#gantt-app .horizontal-navigation{display:flex;align-items:center;gap:8px;background:#f3f6f1;padding:7px 12px;border-top:1px solid var(--line)}#gantt-app .horizontal-navigation input{flex:1;min-width:30px;margin:0;accent-color:#5b826d}#gantt-app .scroll-button{width:28px;height:28px;padding:0;border:1px solid #d2dfd1;border-radius:5px;background:white;color:var(--ink);font-size:17px}#gantt-app .row.group .phase-heading small{font-size:10px;text-transform:none;letter-spacing:0}#gantt-app .row.group .phase-heading strong{font-size:11px;font-weight:700}#gantt-app .phase-milestone{z-index:3}#gantt-app .board:focus-visible{outline:2px solid #759b81;outline-offset:-2px}
@media(max-width:700px){#gantt-app .horizontal-navigation{gap:4px;padding:5px}#gantt-app .horizontal-navigation .btn{padding:6px;font-size:11px}#gantt-app .foot{padding:6px 10px;gap:8px}}
