/* ver5: readable dates, inclusive spans, and a project column that stays in view. */
.board.gantt-board{display:block;min-width:0;max-width:100%;padding:0;margin-right:0;overflow:hidden;border:1px solid #e0e7d9;border-radius:12px;background:#fff;scroll-snap-type:none}
.gantt-caption{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 20px;background:#f5f8ef;border-bottom:1px solid #e0e7d9}
.gantt-summary{display:grid;gap:6px;min-width:0}.gantt-summary strong{font-size:13px;font-weight:600;letter-spacing:-.25px}.gantt-summary>span{font-size:10px;color:#89987b}
.gantt-legend{display:flex;align-items:center;gap:15px;color:#7b8b6e;font-size:9px;flex-shrink:0}.gantt-legend>span{display:flex;align-items:center;gap:6px}.gantt-today-key:before{content:'';height:12px;border-left:2px solid #85a16b}.gantt-weekend-key:before{content:'';width:10px;height:10px;border:1px solid #e2e8dc;background:#f3f5ef;border-radius:2px}
.gantt-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#c8d5bd #f4f7ef}.gantt-scroll:focus-visible{outline:2px solid #8fa776;outline-offset:-2px}
.gantt-table{--gantt-label:228px;--gantt-day:34px;min-width:calc(var(--gantt-label) + var(--gantt-days)*var(--gantt-day));width:100%}
.gantt-axis,.gantt-row{display:grid;grid-template-columns:var(--gantt-label) minmax(0,1fr);width:100%}
.gantt-axis{height:61px;border-bottom:1px solid #dde5d5;background:#fcfdf9}.gantt-axis-label{position:sticky;left:0;z-index:3;display:flex;align-items:center;padding:0 18px;background:#f8faf4;border-right:1px solid #dce5d4;font-size:10px;font-weight:550;color:#80916f}
.gantt-day-grid,.gantt-track{display:grid;grid-template-columns:repeat(var(--gantt-days),minmax(0,1fr));min-width:0}.gantt-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-right:1px solid #edf1e7}.gantt-day strong{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;color:#718563}.gantt-day>span{font-size:8px;color:#98a58d}.gantt-day.is-weekend{background:#f2f5ed}.gantt-day.is-weekend strong{color:#a3ad9b}.gantt-day.is-today{background:#eaf1e0}.gantt-day.is-today strong{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#507345;color:#fff}.gantt-day.is-today>span{color:#698754;font-weight:600}
.gantt-row{padding:0;min-height:88px;border-bottom:1px solid #e8ede2;text-align:left;position:relative}.gantt-row:last-child{border-bottom:0}.gantt-row:focus-visible{outline:2px solid #8ca475;outline-offset:-2px;z-index:4}.gantt-task-info{position:sticky;left:0;z-index:2;background:#fff;min-width:0;border-right:1px solid #dce5d4;padding:15px 18px;display:grid;align-content:center;gap:7px;transition:background .16s}.gantt-task-title{font-size:12px;font-weight:600;letter-spacing:-.15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}.gantt-task-meta{display:flex;gap:8px;align-items:center;min-width:0}.gantt-status{font-size:8px;line-height:1.4;color:#7c916b;background:#eef3e8;padding:2px 5px;border-radius:4px;white-space:nowrap}.gantt-assignee{font-size:9px;color:#8e9d7f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-task-dates{color:#96a48a;font-size:9px;font-family:var(--font)}
.gantt-track{align-items:center;position:relative;min-height:88px}.gantt-cell{grid-row:1;align-self:stretch;border-right:1px solid #edf1e7;min-width:0;position:relative}.gantt-cell.is-weekend{background:#f5f7f1}.gantt-cell.is-today{background:#f1f6e9}.gantt-cell.is-today:before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #93aa7c;opacity:.5}
.gantt-bar{--bar-bg:#e3ecd9;--bar-ink:#627f4f;--bar-border:#cadabc;grid-row:1;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:29px;margin:0 3px;padding:0 8px;border:1px solid var(--bar-border);border-radius:6px;background:var(--bar-bg);color:var(--bar-ink);box-shadow:0 2px 3px #3c552807;transition:filter .16s,box-shadow .16s}.gantt-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:500;letter-spacing:.1px}.gantt-bar.is-compact .gantt-bar-label{display:none}.gantt-bar.is-compact{padding:0 2px}.gantt-continue{font-size:18px;line-height:1;font-weight:400;flex-shrink:0}.gantt-bar.continues-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.gantt-bar.continues-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.gantt-row:hover .gantt-task-info{background:#f4f8ee}.gantt-row:hover .gantt-bar{filter:brightness(.97);box-shadow:0 3px 9px #3c552815}
.gantt-status-doing .gantt-bar{--bar-bg:#f1e7ca;--bar-ink:#927642;--bar-border:#e1d2a7}.gantt-status-doing .gantt-status{background:#f7f0de;color:#9d824a}.gantt-status-review .gantt-bar{--bar-bg:#e9e1f0;--bar-ink:#8b749d;--bar-border:#d8c9e4}.gantt-status-review .gantt-status{background:#f2edf7;color:#917ba1}.gantt-status-done .gantt-bar{--bar-bg:#e0eee3;--bar-ink:#72917a;--bar-border:#c6dccb}.gantt-status-done .gantt-status{background:#eaf3ed;color:#74957c}.gantt-status-done .gantt-task-title{color:#849c7b}
.gantt-bar.is-open-ended{border-right-style:dashed;padding-right:9px;background:linear-gradient(90deg,var(--bar-bg) 75%,transparent 100%)}.gantt-bar.is-open-ended .gantt-continue:last-child{margin-left:auto;font-size:16px}.gantt-ongoing .gantt-task-dates{color:#71885f}
.gantt-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;padding:46px 20px;text-align:center;color:#87997a;line-height:1.8;margin:0}.gantt-empty strong{font-size:12px;font-weight:500}.gantt-empty span{font-size:11px;color:#9baa8f}.gantt-footnote{margin:0;padding:12px 18px;border-top:1px solid #e5ebdd;background:#fbfcf8;font-size:9px;color:#94a087;line-height:1.7}
@media(min-width:1600px){.gantt-table{--gantt-label:258px;--gantt-day:36px}.gantt-task-title{font-size:13px}.gantt-bar-label{font-size:10px}.gantt-caption{padding:20px 23px}}
@media(max-width:760px){.board.gantt-board{margin-right:0;padding-right:0}.gantt-caption{padding:15px 13px;gap:10px}.gantt-summary strong{font-size:12px}.gantt-summary>span{font-size:9px}.gantt-legend{font-size:8px;gap:8px}.gantt-table{--gantt-label:148px;--gantt-day:32px}.gantt-axis-label{padding:0 12px;font-size:9px}.gantt-task-info{padding:13px 11px;gap:7px}.gantt-task-title{font-size:11px}.gantt-task-meta{gap:5px}.gantt-task-dates{font-size:8px}.gantt-assignee{font-size:8px}.gantt-status{font-size:8px}.gantt-footnote{padding:11px 13px;font-size:9px}.gantt-empty{padding:35px 16px}.gantt-empty span{font-size:10px}}
