:root{--color-text:#1c2430;--color-text-muted:#667085;--color-text-faint:#98a2b3;--color-border:#e4e7ec;--color-border-strong:#d0d5dd;--color-bg:#fff;--color-bg-subtle:#f8f9fb;--color-bg-hover:#f2f5f9;--color-bg-selected:#eaf1fd;--color-accent:#3b6fd8;--color-accent-strong:#2b59b8;--color-accent-soft:#dce7fa;--color-success:#2f8a50;--color-success-soft:#d8eedf;--color-warning:#b7791f;--color-warning-soft:#f6e7c8;--color-danger:#d14343;--color-danger-soft:#f8dada;--color-today:#f08c00;--radius:6px;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}.app{flex-direction:column;min-width:960px;height:100vh;display:flex}.app-state{height:100vh;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.app-state__title{color:var(--color-text);margin:0;font-size:15px;font-weight:600}.app-state__detail{margin:0 0 8px}.button{border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);cursor:pointer;white-space:nowrap;height:30px;padding:0 12px;font-weight:500}.button:hover:not(:disabled){background:var(--color-bg-hover)}.button--primary{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-accent-strong)}.button--danger{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.button--danger:hover:not(:disabled){background:#b33636}.button--danger-quiet{color:var(--color-danger);background:0 0;border-color:#0000}.button--danger-quiet:hover:not(:disabled){background:var(--color-danger-soft)}.button:disabled{opacity:.55;cursor:not-allowed}.project-header__actions{gap:8px;display:flex}.project-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:24px;padding:14px 20px 12px;display:flex}.project-header__main{flex-direction:column;gap:10px;min-width:0;display:flex}.project-header__name{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:650}.project-header__subtitle{color:var(--color-text-muted);margin:2px 0 0}.project-stats{flex-wrap:wrap;align-items:center;gap:4px 22px;margin:0;display:flex}.project-stats__item{align-items:baseline;gap:6px;display:flex}.project-stats__item dt{color:var(--color-text-muted)}.project-stats__item dd{font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.project-stats__item--alert dd{color:var(--color-danger)}.project-stats__item--warning dd,.project-stats__item--warning .link-button{color:var(--color-warning)}.project-stats__item--muted dd{color:var(--color-text-muted);font-weight:500}.link-button{cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:600;display:inline-flex}.link-button:hover{color:var(--color-accent-strong);text-decoration:underline}.link-button--small{color:var(--color-accent-strong);margin-left:8px;font-size:12px;font-weight:500}.link-button--danger{color:var(--color-danger)}.link-button__muted{color:var(--color-text-muted);font-weight:400}.progress-meter{background:var(--color-border);border-radius:3px;width:96px;height:6px;display:inline-block;position:relative;overflow:hidden}.progress-meter__fill{background:var(--color-accent);border-radius:3px;position:absolute;inset:0 auto 0 0}.toolbar{border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 20px;display:flex}.toolbar__search{border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);width:260px;height:30px;padding:0 10px}.toolbar__search:focus{outline:2px solid var(--color-accent-soft);border-color:var(--color-accent)}.toolbar__spacer{flex:1}.segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);padding:2px;display:inline-flex}.segmented__option{height:24px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex}.segmented__option:hover{color:var(--color-text)}.segmented__option.is-active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.segmented__count{font-variant-numeric:tabular-nums;color:var(--color-text-faint);font-size:11px}.segmented__option.is-active .segmented__count{color:inherit}.segmented__count.is-alert{color:var(--color-danger)}.timeline-controls{align-items:center;gap:12px;display:flex}.timeline-controls__range{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:170px;font-weight:600}.button-group{display:inline-flex}.button-group .button{border-radius:0}.button-group .button+.button{margin-left:-1px}.button-group .button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.button-group .button:last-child{border-radius:0 var(--radius) var(--radius) 0}.button--icon{width:30px;padding:0;font-size:16px;line-height:1}.popover-anchor{position:relative}.popover{z-index:40;border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);width:320px;padding:14px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #10182824}.popover__fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.popover__hint{min-height:1.4em;color:var(--color-text-muted);margin:8px 0 0;font-size:12px}.popover .field__error{min-height:1.4em;margin-top:8px}.popover__actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.toggle-button{color:var(--color-text-muted);align-items:center;gap:6px;display:inline-flex}.toggle-button.is-active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.toggle-button__swatch{background:#98a2b3;border-radius:2px;width:14px;height:4px}.baseline-behind{color:var(--color-danger);margin-left:6px;font-weight:600}.projects-home{max-width:1120px;margin:0 auto;padding:28px 20px 48px}.projects-home__header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.projects-home__header h1{margin:0;font-size:20px;font-weight:650}.projects-home__empty{color:var(--color-text-muted);flex-direction:column;align-items:flex-start;gap:10px;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--color-border);background:var(--color-bg);border-radius:8px;flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex}.project-card:hover{border-color:var(--color-border-strong);box-shadow:0 4px 14px #1018280f}.project-card__main{color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:6px;padding:16px 16px 10px;display:flex}.project-card__name{margin:0;font-size:15px;font-weight:650}.project-card__description{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.project-card__status{align-items:center;gap:8px;margin-top:4px;display:flex}.project-card__line{color:var(--color-text-muted);margin:0;font-size:13px}.project-card__line .is-danger{color:var(--color-danger)}.project-card__line .is-warning{color:var(--color-warning)}.project-card__actions{justify-content:flex-end;padding:0 16px 14px;display:flex}.project-status{white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.project-status--no-tasks{background:var(--color-bg-hover);color:var(--color-text-muted)}.project-status--on-track{background:var(--color-accent-soft);color:var(--color-accent-strong)}.project-status--completed{background:var(--color-success-soft);color:var(--color-success)}.project-status--at-risk{background:var(--color-warning-soft);color:var(--color-warning)}.project-status--delayed{background:var(--color-danger-soft);color:var(--color-danger)}.project-header__title-row{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.project-header__period{white-space:nowrap}.project-switcher{align-items:center;gap:6px;min-width:0;display:flex;position:relative}.project-switcher__home{font-size:13px}.project-switcher__separator{color:var(--color-text-faint)}.project-switcher__current{min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;margin-left:-6px;padding:2px 6px;display:flex}.project-switcher__current:hover{background:var(--color-bg-hover)}.project-switcher__chevron{color:var(--color-text-muted);font-size:12px}.project-switcher__menu{z-index:60;border:1px solid var(--color-border);background:var(--color-bg);border-radius:8px;flex-direction:column;min-width:280px;max-height:360px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 12px 32px #10182829}.project-switcher__item{color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;display:flex}.project-switcher__item:hover{background:var(--color-bg-hover)}.project-switcher__item.is-current{background:var(--color-bg-selected);font-weight:600}.project-switcher__divider{background:var(--color-border);height:1px;margin:4px 0}@media (width<=640px){.projects-home__header{flex-wrap:wrap}.project-grid{grid-template-columns:1fr}.project-switcher__menu{min-width:min(280px,100vw - 32px)}}.project-switcher__current .project-header__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.login-page{background:var(--color-bg-subtle);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{border:1px solid var(--color-border);background:var(--color-bg);border-radius:10px;flex-direction:column;gap:14px;width:340px;max-width:100%;padding:28px 24px 24px;display:flex;box-shadow:0 12px 32px #10182814}.login-card__title{margin:0;font-size:18px;font-weight:650}.login-card__subtitle{color:var(--color-text-muted);margin:-8px 0 4px}.login-card__notice{background:var(--color-warning-soft);color:var(--color-warning);border-radius:6px;padding:8px 10px}.login-card__submit{height:34px;margin-top:4px}.user-menu{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}.user-menu__name{color:var(--color-text);font-weight:600}.user-menu__error{color:var(--color-danger)}.projects-home__actions{align-items:center;gap:16px;display:flex}.project-header__side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.log-entry__user bdi{color:var(--color-text-muted)}.gantt{background:var(--color-bg);flex:1;min-height:0;overflow:auto}.gantt__canvas{flex-direction:column;min-width:100%;min-height:100%;display:flex}.gantt__header{z-index:5;height:calc(var(--header-row-height) * 2);background:var(--color-bg);border-bottom:1px solid var(--color-border-strong);display:flex;position:sticky;top:0}.gantt__list-cell{z-index:2;flex:0 0 var(--task-list-width);width:var(--task-list-width);background:var(--color-bg);border-right:1px solid var(--color-border-strong);position:sticky;left:0}.gantt__list-cell--header{z-index:6;align-items:flex-end;display:flex}.timeline-header{flex:none;position:relative}.timeline-header__row{height:var(--header-row-height);position:relative}.timeline-header__row+.timeline-header__row{border-top:1px solid var(--color-border)}.timeline-header__cell{border-left:1px solid var(--color-border);white-space:nowrap;align-items:center;padding:0 8px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:clip}.timeline-header__label{left:calc(var(--task-list-width) + 8px);position:sticky}.timeline-header__cell--minor{color:var(--color-text-muted);font-size:12px;font-weight:500}.timeline-header__today{border:5px solid #0000;border-bottom-color:var(--color-today);width:0;height:0;margin-left:-5px;position:absolute;bottom:0}.task-columns{grid-template-columns:minmax(0,1fr) 52px 52px 74px 86px;align-items:center;gap:8px;width:100%;height:100%;padding:0 12px 0 20px;display:grid}.task-columns--header{height:var(--header-row-height);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:11px;font-weight:600}.task-columns__name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:500;display:flex;overflow:hidden}.task-columns__date{font-variant-numeric:tabular-nums;color:var(--color-text-muted);white-space:nowrap}.task-columns__date.is-delayed{color:var(--color-danger);font-weight:600}.task-columns__progress{font-variant-numeric:tabular-nums;color:var(--color-text-muted);align-items:center;gap:6px;display:flex}.mini-meter{background:var(--color-border);border-radius:2px;flex:0 0 32px;height:4px;position:relative;overflow:hidden}.mini-meter__fill{background:var(--color-accent);position:absolute;inset:0 auto 0 0}.delay-dot{background:var(--color-danger);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.delay-dot--risk{background:var(--color-warning)}.status-badge{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.status-badge--not-started{color:var(--color-text-muted);background:#eef0f3}.status-badge--in-progress{background:var(--color-accent-soft);color:var(--color-accent-strong)}.status-badge--completed{background:var(--color-success-soft);color:var(--color-success)}.status-badge--blocked{background:var(--color-warning-soft);color:var(--color-warning)}.gantt__body{flex-direction:column;flex:1;display:flex;position:relative}.gantt__row{z-index:2;flex:0 0 var(--row-height);height:var(--row-height);border-bottom:1px solid var(--color-border);cursor:default;outline:none;display:flex;position:relative}.gantt__row:hover .gantt__list-cell{background:var(--color-bg-hover)}.gantt__row:hover .gantt__timeline-cell{background:#3b6fd80a}.gantt__row.is-selected .gantt__list-cell{background:var(--color-bg-selected)}.gantt__row.is-selected .gantt__timeline-cell{background:#3b6fd814}.gantt__row:focus-visible .gantt__list-cell{box-shadow:inset 3px 0 0 var(--color-accent)}.gantt__timeline-cell{flex:none;position:relative;overflow:clip}.gantt__row--message{cursor:default}.gantt__empty{color:var(--color-text-muted);align-items:center;padding:0 20px;display:flex}.gantt__filler{flex:1;display:flex}.timeline-grid{top:0;bottom:0;left:var(--task-list-width);z-index:0;pointer-events:none;position:absolute}.timeline-grid__line{background:var(--color-border);width:1px;position:absolute;top:0;bottom:0}.timeline-grid__line--major{background:var(--color-border-strong)}.timeline-grid__today{background:var(--color-today);opacity:.85;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.task-bar{top:calc((var(--row-height) - var(--bar-height)) / 2 - .5px);height:var(--bar-height);background:var(--bar-track);min-width:3px;box-shadow:inset 0 0 0 1px var(--bar-edge);--bar-track:var(--color-accent-soft);--bar-fill:var(--color-accent);--bar-edge:#3b6fd859;border-radius:4px;position:absolute;overflow:hidden}.task-bar__progress{background:var(--bar-fill);height:100%}.task-bar--not-started{--bar-track:#e6ebf3;--bar-edge:#c7d0dd}.task-bar--completed{--bar-track:var(--color-success-soft);--bar-fill:#5fae7a;--bar-edge:#2f8a5066}.task-bar--blocked{--bar-track:var(--color-warning-soft);--bar-fill:#d69e2e;--bar-edge:#b7791f73}.task-bar--delayed{--bar-track:var(--color-danger-soft);--bar-fill:var(--color-danger);--bar-edge:var(--color-danger)}.dependency-lines{top:0;left:var(--task-list-width);z-index:1;pointer-events:none;position:absolute;overflow:hidden}.dependency-line{fill:none;stroke-width:1.25px;stroke-linejoin:round}.dependency-line--normal{stroke:#b3bccb}.dependency-line--highlight{stroke:var(--color-accent);stroke-width:1.75px}.dependency-line--conflict{stroke:var(--color-danger);stroke-width:1.5px;stroke-dasharray:4 3}.dependency-arrow--normal{fill:#b3bccb}.dependency-arrow--highlight{fill:var(--color-accent)}.dependency-arrow--conflict{fill:var(--color-danger)}.conflict-marker{background:var(--color-danger);color:#fff;cursor:help;border-radius:50%;flex:0 0 15px;justify-content:center;align-items:center;width:15px;height:15px;font-size:10px;font-weight:700;display:inline-flex}.task-columns__name-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.is-draggable{cursor:grab;touch-action:none}.is-dragging{cursor:grabbing;z-index:3;box-shadow:0 0 0 2px var(--color-accent), 0 4px 10px #1018282e;opacity:.9}.is-pending{outline:2px dashed var(--color-accent);outline-offset:2px}.task-bar__handle{cursor:ew-resize;width:7px;position:absolute;top:0;bottom:0}.task-bar__handle--start{left:0}.task-bar__handle--end{right:0}.task-bar:hover .task-bar__handle{background:#ffffff73}.drag-label{top:calc((var(--row-height) - 20px) / 2);z-index:4;background:var(--color-text);color:#fff;white-space:nowrap;pointer-events:none;border-radius:4px;align-items:center;height:20px;padding:0 7px;font-size:11.5px;display:flex;position:absolute}.gantt--baseline .task-bar{top:calc((var(--row-height) - var(--bar-height)) / 2 - 4px)}.baseline-bar{top:calc((var(--row-height) + var(--bar-height)) / 2 - 1px);opacity:.75;background:#98a2b3;border-radius:2px;height:5px;position:absolute}.milestone.milestone--baseline{z-index:0;box-shadow:none;background:0 0;border:2px solid #98a2b3}.variance-marker{font-variant-numeric:tabular-nums;border-radius:8px;flex:none;padding:0 5px;font-size:10.5px;font-weight:700}.variance-marker--late{background:var(--color-danger-soft);color:var(--color-danger)}.variance-marker--early{background:var(--color-success-soft);color:var(--color-success)}.milestone{top:calc(var(--row-height) / 2 - 8px);z-index:1;background:var(--milestone-color);width:16px;height:16px;box-shadow:0 0 0 2px var(--color-bg);--milestone-color:var(--color-text);border-radius:2px;margin-left:-8px;position:absolute;transform:rotate(45deg)scale(.85)}.milestone--reached{--milestone-color:var(--color-success)}.milestone--missed{--milestone-color:var(--color-danger)}.task-bar__label--milestone{color:var(--color-text);font-weight:600}.milestone-icon{background:var(--color-text);border-radius:1px;flex:0 0 8px;width:8px;height:8px;margin:0 2px;display:inline-block;transform:rotate(45deg)}.milestone-icon--reached{background:var(--color-success)}.milestone-icon--missed{background:var(--color-danger)}.task-columns--milestone .task-columns__name{font-weight:600}.status-badge--milestone-upcoming{color:var(--color-text);background:#e7e9ee}.status-badge--milestone-reached{background:var(--color-success-soft);color:var(--color-success)}.status-badge--milestone-missed{background:var(--color-danger-soft);color:var(--color-danger)}.out-of-range{color:var(--color-text-faint);white-space:nowrap;align-items:center;font-size:11px;display:flex;position:absolute;top:0;bottom:0}.out-of-range--before{left:8px}.out-of-range--after{right:8px}.task-bar__label{color:var(--color-text-muted);white-space:nowrap;pointer-events:none;align-items:center;font-size:12px;display:flex;position:absolute;top:0;bottom:0}.task-bar__label--left,.task-bar__label--right,.task-bar__label--inside{top:calc((var(--row-height) - 18px) / 2);background:#ffffffd9;border-radius:3px;height:18px;padding:0 4px;bottom:auto}.task-bar__label--left{margin-right:4px}.task-bar__label--inside{color:var(--color-text);background:#ffffffe6;padding:0 6px}.gantt__row--message:has(.gantt__empty--project){flex-basis:auto;height:auto}.gantt__empty--project{flex-direction:column;align-items:flex-start;gap:6px;padding:20px}.gantt__empty--project strong{color:var(--color-text);font-size:14px}.gantt__empty-actions{gap:8px;margin-top:6px;display:flex}.drawer{z-index:50;background:var(--color-bg);border-left:1px solid var(--color-border-strong);flex-direction:column;width:440px;max-width:100vw;animation:.16s ease-out drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #1018281f}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}.drawer__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.drawer__title{margin:0;font-size:15px;font-weight:650}.drawer__form{flex-direction:column;flex:1;min-height:0;display:flex}.drawer__body{flex-direction:column;flex:1;gap:16px;padding:18px 20px;display:flex;overflow-y:auto}.form-divider{background:var(--color-border);height:1px;margin:2px 0}.drawer__footer-spacer{flex:1}.baseline-info{color:var(--color-text-muted);margin:-6px 0 0;font-size:12px}.baseline-info__late{color:var(--color-danger);font-weight:600}.baseline-info__early{color:var(--color-success);font-weight:600}.dependency-section{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle);flex-direction:column;gap:8px;padding:12px;display:flex}.dependency-section__header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.dependency-section__header h3{margin:0}.dependency-section__empty,.dependency-section__followers{color:var(--color-text-muted);margin:0;font-size:12px}.dependency-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.dependency-list__item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);align-items:center;gap:8px;padding:6px 8px;display:flex}.dependency-list__item.has-conflict{border-color:var(--color-danger)}.dependency-list__text{flex-wrap:wrap;flex:1;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.dependency-list__name{font-weight:600}.dependency-list__meta{color:var(--color-text-muted);font-size:12px}.dependency-list__conflict{color:var(--color-danger);flex-basis:100%;font-size:12px}.notes-section{flex-direction:column;gap:8px;display:flex}.notes-section__add{justify-content:flex-end;display:flex}.note-list{flex-direction:column;gap:8px;margin:4px 0 0;padding:0;list-style:none;display:flex}.note{border-left:3px solid var(--color-accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--color-bg-subtle);padding:8px 10px}.note__meta{color:var(--color-text-muted);align-items:baseline;gap:6px;font-size:12px;display:flex}.note__edited{font-style:italic}.note__actions{margin-left:auto}.note__actions .link-button--small{margin-left:10px}.note__text{white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext;margin:4px 0 0}.note__editor{flex-direction:column;gap:6px;margin-top:6px;display:flex}.note__editor-actions{justify-content:flex-end;gap:6px;display:flex}.log-filters{border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 20px;display:flex}.log-filters__task{flex:1;min-width:140px;height:30px}.log-body{gap:18px}.log-empty{color:var(--color-text-muted);margin:0}.log-day__label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 8px;font-size:11px;font-weight:600}.log-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.log-entry__header{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.log-entry__title{font-weight:600}.log-entry__time{color:var(--color-text-faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.log-entry__badge{width:20px;height:20px;color:var(--color-text-muted);background:#eef0f3;border-radius:50%;flex:0 0 20px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.log-entry--note{border-left:3px solid var(--color-accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--color-accent-soft);padding:10px 12px}.log-entry__badge--note{background:var(--color-accent);color:#fff}.log-entry__text{white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext;margin:6px 0 0}.log-entry--activity{color:var(--color-text-muted);padding:4px 12px 4px 15px;font-size:12.5px}.log-entry--activity .log-entry__title{color:var(--color-text);font-weight:500}.log-entry__badge--completed{background:var(--color-success-soft);color:var(--color-success)}.log-entry__badge--milestone{background:var(--color-text);color:#fff}.log-entry__badge--deleted{background:var(--color-danger-soft);color:var(--color-danger)}.log-entry__lines{font-variant-numeric:tabular-nums;margin:2px 0 0 28px;padding:0;list-style:none}.log-task{color:var(--color-accent-strong);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.log-task:hover{text-decoration:underline}.log-task--deleted{color:var(--color-text-muted);cursor:default;text-decoration:line-through}.log-more{align-self:center}.upcoming__label{color:var(--color-text-muted)}.upcoming-group__count{color:var(--color-text-faint);margin-left:4px;font-weight:500}.upcoming-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.upcoming-item{border:1px solid var(--color-border);border-left:3px solid var(--upcoming-accent,var(--color-border-strong));border-radius:0 var(--radius) var(--radius) 0;background:var(--color-bg);text-align:start;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;display:flex}.upcoming-item:hover{background:var(--color-bg-hover)}.upcoming-item__name{align-items:center;gap:6px;font-weight:600;display:flex}.upcoming-item__detail{color:var(--color-text-muted);font-size:12px}.upcoming-group--danger{--upcoming-accent:var(--color-danger)}.upcoming-group--warning{--upcoming-accent:var(--color-warning)}.upcoming-group--milestone{--upcoming-accent:var(--color-text)}.upcoming-group--default{--upcoming-accent:var(--color-accent)}.upcoming__rule{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin:4px 0 0;padding-top:12px;font-size:12px}.export-dialog{max-height:calc(100vh - 32px);overflow-y:auto}.export-group{border:0;margin:0 0 14px;padding:0}.export-group legend{margin-bottom:6px;font-size:12px;font-weight:600}.choice-row{flex-wrap:wrap;gap:8px;display:flex}.choice{border:1px solid var(--color-border-strong);border-radius:var(--radius);cursor:pointer;flex:140px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.choice>span{flex-direction:column;display:flex}.choice input{accent-color:var(--color-accent);margin:2px 0 0}.choice.is-checked{border-color:var(--color-accent);background:var(--color-accent-soft)}.choice.is-disabled{opacity:.55;cursor:not-allowed}.choice__detail{color:var(--color-text-muted);font-size:12px}.checkbox-grid{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}.checkbox{cursor:pointer;align-items:center;gap:8px;display:flex}.checkbox input{accent-color:var(--color-accent)}.export-file{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0 0 8px;font-size:12px}.modal--wide{width:560px}.impact-root{border-radius:var(--radius);background:var(--color-accent-soft);justify-content:space-between;gap:12px;margin-bottom:12px;padding:8px 10px;display:flex}.impact-root__name{font-weight:600}.impact-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:4px 0 6px;font-size:12px;font-weight:600}.impact-table{border-collapse:collapse;width:100%}.impact-table td{border-top:1px solid var(--color-border);vertical-align:middle;padding:6px 4px}.impact-table__name{font-weight:500}.impact-table__name .milestone-icon{margin-right:6px}.impact-table__dates{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.impact-table__dates strong{color:var(--color-text)}.impact-table__shift{text-align:right;color:var(--color-warning);white-space:nowrap;font-weight:600}.impact-note{font-size:12px;margin:8px 0 0!important}.impact-warning{border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-danger-soft);margin-top:10px;padding:8px 10px}.impact-warning p{color:var(--color-danger)!important;margin:0!important}.modal__actions-spacer{flex:1}.button--text{color:var(--color-text-muted);background:0 0;border-color:#0000}.modal-backdrop{z-index:70;background:#10182859;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg);border-radius:8px;width:420px;max-width:100%;padding:20px;box-shadow:0 20px 48px #10182840}.modal__title{margin:0 0 8px;font-size:15px;font-weight:650}.modal__body p{color:var(--color-text-muted);margin:0 0 8px}.modal .form-alert{margin-top:8px}.modal__actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.drawer__footer{border-top:1px solid var(--color-border);background:var(--color-bg-subtle);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.icon-button{border-radius:var(--radius);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1}.icon-button:hover{background:var(--color-bg-hover);color:var(--color-text)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field__label{justify-content:space-between;font-size:12px;font-weight:600;display:flex}.field__optional{color:var(--color-text-faint);font-weight:400}.field__error{color:var(--color-danger);margin:0;font-size:12px}.input{border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-bg);width:100%;height:32px;padding:0 10px}.input:focus{outline:2px solid var(--color-accent-soft);border-color:var(--color-accent)}.input:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted)}.input--textarea{resize:vertical;height:auto;padding:8px 10px}.field.has-error .input,.progress-field__number.is-invalid{border-color:var(--color-danger)}.form-alert{border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-danger-soft);color:var(--color-danger);padding:10px 12px}.duration-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:-6px;display:flex}.duration-row__value{color:var(--color-text-muted)}.duration-row__value strong{color:var(--color-text)}.chip-group{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--color-border-strong);background:var(--color-bg);height:24px;color:var(--color-text-muted);cursor:pointer;border-radius:12px;padding:0 10px;font-size:12px}.chip:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-faint)}.chip.is-active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.chip:disabled{opacity:.5;cursor:not-allowed}.progress-field{align-items:center;gap:12px;display:flex}.progress-field input[type=range]{accent-color:var(--color-accent);flex:1}.progress-field__number{border:1px solid var(--color-border-strong);border-radius:var(--radius);align-items:center;gap:4px;height:32px;padding:0 8px;display:flex}.progress-field__number input{text-align:right;font-variant-numeric:tabular-nums;border:0;outline:none;width:40px}.toggle{cursor:pointer;align-items:flex-start;gap:10px;font-weight:500;display:flex;position:relative}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle__track{background:var(--color-border-strong);border-radius:9px;flex:0 0 32px;height:18px;margin-top:1px;transition:background .12s;position:relative}.toggle__track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .12s;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle__track{background:var(--color-accent)}.toggle input:checked+.toggle__track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle__track{outline:2px solid var(--color-accent-soft);outline-offset:2px}.toggle__hint{color:var(--color-text-muted);font-size:12px;font-weight:400;display:block}.toast{z-index:60;border-radius:var(--radius);background:var(--color-text);color:#fff;align-items:center;gap:8px;padding:10px 16px;animation:.16s ease-out toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #10182833}.toast__icon{color:#7ee2a0;font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.toast--error{background:#7a1d16}.toast--error .toast__icon{color:#ffb4ab}.modal-backdrop--top{z-index:80}.project-form{flex-direction:column;gap:14px;display:flex}.project-form__note{color:var(--color-text-muted);margin:0;font-size:12px}.delete-list{margin:0 0 12px;padding-left:20px}.delete-list li{margin:2px 0}.export-dialog__project{color:var(--color-text-muted);margin:-4px 0 12px}.export-dialog__project bdi{color:var(--color-text);font-weight:600}
