/* Plane's shared row geometry; Eva semantic surfaces and task status colors. */
.eva-task-gantt{--gantt-sidebar:360px;display:flex;flex-direction:column;min-height:0;height:100%;position:relative;background:var(--eva-surface-primary);color:var(--semi-color-text-0);font-size:14px}
.eva-task-gantt__scroll{overflow:auto;min-height:0;flex:1;position:relative;overscroll-behavior:contain}
.eva-task-gantt__canvas{position:relative}
.eva-task-gantt__header{height:48px;display:flex;position:sticky;top:0;z-index:4;background:var(--eva-surface-primary);border-bottom:1px solid var(--semi-color-border);box-sizing:border-box}
.eva-task-gantt__sidebar{width:var(--gantt-sidebar);flex:none;position:sticky;left:0;z-index:2;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;padding:0 16px;background:var(--eva-surface-primary);border-right:1px solid var(--semi-color-border);gap:8px}
.eva-task-gantt__header>.eva-task-gantt__sidebar{z-index:5;color:var(--semi-color-text-2)}
.eva-task-gantt__axis{position:relative;flex:none}
.eva-task-gantt__period{position:absolute;top:0;height:28px;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;border-right:1px solid var(--semi-color-border);color:var(--semi-color-text-2);white-space:nowrap}
.eva-task-gantt__period-label{position:sticky;left:var(--gantt-sidebar);padding:0 12px;min-width:0;overflow:hidden;text-overflow:ellipsis;background:var(--eva-surface-primary)}
.eva-task-gantt__period-number{padding:0 12px;font-size:11px;flex:none}
.eva-task-gantt__current-label{margin-left:8px;padding:1px 4px;border-radius:var(--eva-radius-small,4px);background:var(--semi-color-primary);color:var(--semi-color-white);font-size:10px}
.eva-task-gantt__days{position:absolute;top:28px;left:0;right:0;height:20px;border-top:1px solid var(--semi-color-border)}
.eva-task-gantt__day{position:absolute;top:0;height:20px;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:0 5px;border-right:1px solid var(--semi-color-border);font-size:11px;white-space:nowrap}
.eva-task-gantt__day[data-unit=month]{justify-content:center}
.eva-task-gantt__day small{font-size:11px;color:var(--semi-color-text-2)}
.eva-task-gantt__day.is-weekend,.eva-task-gantt__column.is-weekend{background:var(--semi-color-fill-0)}
.eva-task-gantt__day.is-today,.eva-task-gantt__column.is-today{background:var(--semi-color-primary-light-default)}
.eva-task-gantt__day .is-current{padding:0 3px;border-radius:var(--eva-radius-small,4px);background:var(--semi-color-primary);color:var(--semi-color-white)}
.eva-task-gantt__body{position:relative}
.eva-task-gantt__row{height:44px;display:flex;position:absolute;left:0;right:0}
.eva-task-gantt__row:hover>.eva-task-gantt__sidebar{background:var(--eva-surface-subtle)}
.eva-task-gantt__task.semi-button{min-width:0;flex:1;justify-content:flex-start;padding:0;height:32px;color:var(--semi-color-text-0)}
.eva-task-gantt__task .semi-button-content{display:flex;min-width:0;gap:8px;justify-content:flex-start;width:100%}
.eva-task-gantt__identifier{flex:none;color:var(--semi-color-text-2);font-size:12px}
.eva-task-gantt__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eva-task-gantt__duration.semi-button{flex:none;color:var(--semi-color-text-2);font-weight:400;padding:0 4px}
.eva-task-gantt__track{position:relative;flex:none;height:44px}
.eva-task-gantt__bar{position:absolute;top:6px;height:32px;display:flex;align-items:stretch;border-radius:var(--eva-radius-small,4px);background:color-mix(in srgb,var(--gantt-status) 35%,var(--eva-surface-primary));overflow:hidden}
.eva-task-gantt__bar:hover{box-shadow:inset 0 0 0 1px var(--gantt-status)}
.eva-task-gantt__bar-title{position:absolute;top:0;bottom:0;box-sizing:border-box;min-width:0;border:0;background:transparent;color:var(--semi-color-text-0);font:inherit;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;touch-action:none;display:flex;align-items:center}
.eva-task-gantt__bar-title:active{cursor:grabbing}
.eva-task-gantt__resize{border:0;padding:0;width:6px;flex:none;background:transparent;cursor:ew-resize;touch-action:none}
.eva-task-gantt__resize.is-right{margin-left:auto}
.eva-task-gantt__resize:hover{background:var(--semi-color-fill-1)}
.eva-task-gantt__bar:has(:focus-visible){outline:2px solid var(--semi-color-primary);outline-offset:1px}
.eva-task-gantt__bar-title:focus-visible{outline:none}
.eva-task-gantt__grid{position:absolute;top:0;bottom:-44px;pointer-events:none}
.eva-task-gantt__column{position:absolute;top:0;bottom:0;border-right:1px solid var(--semi-color-border);box-sizing:border-box}
.eva-task-gantt__bar.is-missing-start{mask-image:linear-gradient(to left,#000 50%,transparent 95%)}
.eva-task-gantt__bar.is-missing-due{mask-image:linear-gradient(to right,#000 50%,transparent 95%)}
.eva-task-gantt__schedule-area{position:relative;height:100%;width:100%}
.eva-task-gantt__schedule.semi-button{position:absolute;top:6px;opacity:0;height:32px;border:1px solid var(--semi-color-border);background:var(--eva-surface-primary)}
.eva-task-gantt__schedule-area:hover .eva-task-gantt__schedule,.eva-task-gantt__schedule:focus-visible{opacity:1}
.eva-task-gantt__schedule-date{font-variant-numeric:tabular-nums;color:var(--semi-color-text-2)}
.eva-task-gantt__locate.semi-button{position:absolute;top:6px;width:32px;height:32px;background:var(--eva-surface-subtle);border:1px solid var(--semi-color-border);z-index:1}
.eva-task-gantt__create{position:sticky;left:16px;margin:6px 16px}
.eva-task-gantt__dates{display:flex;flex-direction:column;gap:12px;max-width:320px}
.eva-task-gantt__dates strong{font-weight:500;overflow-wrap:anywhere}
.eva-task-gantt__dates>div{display:flex;justify-content:space-between;align-items:center;gap:16px}
.eva-task-gantt__empty{position:sticky;left:16px;width:300px;color:var(--semi-color-text-2);padding:16px}

.eva-task-gantt__bar-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eva-task-gantt__bar.is-compact .eva-task-gantt__bar-text{visibility:hidden}
.eva-task-gantt__bar.is-missing-start .eva-task-gantt__bar-title,.eva-task-gantt__bar.is-missing-due .eva-task-gantt__bar-title{cursor:pointer}

.eva-task-gantt__display-settings{display:flex;flex-direction:column;gap:var(--eva-space-4);width:228px;max-width:100%}
.eva-task-gantt__scale-setting{display:flex;flex-direction:column;gap:var(--eva-space-2)}
