.process-diagram{background:var(--color-canvas);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.process-diagram__svg{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:1 1 0;width:100%;min-height:0;display:block}.diagram-node__shape{fill:var(--color-surface);stroke:var(--color-border);stroke-width:var(--node-border-width)}.diagram-node[data-kind=start] .diagram-node__shape{stroke:var(--color-ink-muted)}.diagram-node__shape--end{stroke:var(--color-ink-muted);stroke-width:5px}.diagram-node__gateway-mark{fill:none;stroke:var(--color-ink-secondary);stroke-width:3px;stroke-linecap:round}.diagram-node__label{font-family:var(--font-ui);fill:var(--color-ink);font-size:13px}.diagram-node{cursor:pointer}.diagram-node.diagram-node--selected .diagram-node__shape{stroke:var(--color-accent)}.diagram-node.diagram-node--selected .diagram-node__shape:not(.diagram-node__shape--end){stroke-width:2.5px}.connect-handle{fill:var(--color-accent);stroke:var(--color-canvas);stroke-width:1.5px;cursor:crosshair}.connect-handle-touch{fill:#0000}.diagram-node.diagram-node--lifted .diagram-node__shape{filter:var(--filter-lift);stroke:var(--color-accent)}.diagram-node.diagram-node--drop-target .diagram-node__shape{stroke:var(--color-accent);stroke-width:2.5px;stroke-dasharray:5 3}.edge-draft-preview{stroke:var(--color-accent);stroke-width:1.5px;stroke-dasharray:4 4;pointer-events:none}.diagram-edge{fill:none;stroke:var(--color-edge);stroke-width:1.5px}.diagram-edge--loop{stroke:var(--color-edge-loop);stroke-dasharray:6 5}.diagram-edge__hit{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke;cursor:pointer}.diagram-edge-group.diagram-edge-group--selected .diagram-edge{stroke:var(--color-accent);stroke-width:2.5px}.project-badge__label{font-family:var(--font-mono);font-size:10px;font-weight:600}.project-badge--waiting rect{fill:var(--color-canvas);stroke-width:1.5px;stroke-dasharray:4 3}.team-legend{justify-content:flex-end;gap:var(--space-1) var(--space-4);width:fit-content;max-width:100%;margin:0 0 var(--space-2) auto;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;list-style:none;display:flex}.team-legend__item{align-items:center;gap:var(--space-2);display:flex}.team-legend__swatch{border-radius:3px;width:10px;height:10px}.team-legend__code{font-family:var(--font-mono);letter-spacing:.05em;color:var(--color-ink-secondary);font-size:11px}.gantt-view{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:max-content;min-width:100%;min-height:100%}.gantt-view__axis{z-index:2;background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.gantt-view__axis-svg,.gantt-section__svg{display:block}.gantt-view__sections{position:relative}.gantt-view__today-band{background:var(--color-accent);opacity:.2;pointer-events:none;position:absolute;top:0;bottom:0}.gantt-view__today-label{font-family:var(--font-mono);letter-spacing:.08em;fill:var(--color-accent);font-size:10px}.gantt-view__today-day{fill:var(--color-accent);opacity:.24}.gantt-section__header{align-items:center;gap:var(--space-2);width:100%;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:none;font-size:13px;display:flex}.gantt-section__header:hover{background:var(--color-surface)}.gantt-section__header--split{cursor:default;padding:0}.gantt-section__header--split:hover{background:0 0}.gantt-section__disclosure-toggle,.gantt-section__select{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:none;font-size:13px;display:flex}.gantt-section__disclosure-toggle:hover,.gantt-section__select:hover{background:var(--color-surface)}.gantt-section__select[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--color-accent)}.gantt-section__disclosure{color:var(--color-ink-muted);font-size:11px}.gantt-section__chip{border-radius:3px;flex:none;width:10px;height:10px}.gantt-section__label{letter-spacing:.02em;font-weight:600}.gantt-section__date{font-family:var(--font-mono);color:var(--color-ink-secondary);font-size:11px}.gantt-section__empty{padding:var(--space-2) var(--space-5);color:var(--color-ink-muted);margin:0;font-size:12px}.gantt-view__create-row{align-items:center;gap:var(--space-3);width:max-content;max-width:100%;padding:var(--space-3);display:flex;position:sticky;left:0}.gantt-view__create-button{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;font-size:13px;line-height:1.4}.gantt-view__create-button:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-ink)}.gantt-view__create-button:disabled{color:var(--color-ink-muted);opacity:.55;cursor:default}.gantt-view__empty-hint{color:var(--color-ink-muted);margin:0;font-size:12px}.gantt-view__label{font-family:var(--font-ui);fill:var(--color-ink);font-size:13px}.gantt-view__tick-label{font-family:var(--font-mono);fill:var(--color-ink-muted);font-size:11px}.gantt-view__weekend{fill:var(--color-ink-muted);opacity:.14}.gantt-view__tick-day{fill:var(--color-tick-day);opacity:.11}.gantt-view__day-line{stroke:var(--color-border);stroke-width:1px;opacity:.3}.gantt-view__month-line{stroke:var(--color-month-separator);stroke-width:1px}.gantt-view__month-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--color-ink-secondary);font-size:10px}.gantt-view__header-rule{stroke:var(--color-edge);stroke-width:1px}.gantt-view__bar{fill:var(--color-surface);stroke:var(--color-border);stroke-width:var(--node-border-width)}.gantt-row--linked .gantt-view__bar{stroke:var(--color-linked);stroke-width:2px}.gantt-row--editable{cursor:grab}.gantt-row--locked{cursor:pointer}.gantt-row--selected .gantt-view__bar{stroke:var(--color-accent);stroke-width:var(--node-border-width)}.gantt-view__resize-zone{fill:#0000;cursor:ew-resize}.gantt-view__resize-grip{fill:var(--color-accent);opacity:0;pointer-events:none}.gantt-row--editable:hover .gantt-view__resize-grip,.gantt-row--resizing .gantt-view__resize-grip{opacity:.9}.gantt-view__touch-resize{fill:#0000}.gantt-row--lifted .gantt-view__bar{filter:var(--filter-lift);stroke:var(--color-accent)}.gantt-milestone__mark,.gantt-retry__mark{fill:var(--color-retry-mark);pointer-events:none}.gantt-milestone--selected .gantt-milestone__mark,.gantt-retry--selected .gantt-retry__mark{fill:var(--color-accent)}.gantt-milestone__hit,.gantt-retry__hit{fill:#0000;cursor:pointer}.gantt-milestone__touch,.gantt-retry__touch{fill:#0000;pointer-events:none}@media (any-pointer:coarse){.gantt-milestone__touch,.gantt-retry__touch{pointer-events:fill}}.timeline-zoom{top:var(--space-1);right:var(--space-4);z-index:3;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);display:flex;position:absolute}.timeline-zoom__button{min-width:28px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;font-size:13px;line-height:1.4}.timeline-zoom__button:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-ink)}.timeline-zoom__button:disabled{color:var(--color-ink-muted);opacity:.55;cursor:default}.timeline-zoom__reset{font-family:var(--font-mono);font-size:11px}body.is-bar-resizing .timeline-zoom,body.is-bar-moving .timeline-zoom{display:none}.auth-gate{padding:var(--space-5);flex:1;justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--space-4);width:min(360px,100%);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.auth-card__brand{letter-spacing:.04em;margin:0;font-size:22px;font-weight:600}.auth-card__title{color:var(--color-ink);margin:0;font-size:16px;font-weight:600}.auth-card__hint{color:var(--color-ink-secondary);margin:0;font-size:13px;line-height:1.5}.auth-card__form{gap:var(--space-3);flex-direction:column;display:flex}.auth-card__label{gap:var(--space-1);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-muted);flex-direction:column;font-size:12px;display:flex}.auth-card__input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);font-size:14px}.auth-card__input:focus{border-color:var(--color-accent);outline:none}.auth-card__error{color:var(--color-danger);margin:0;font-size:13px;line-height:1.4}.auth-card__notice{color:var(--color-accent);margin:0;font-size:13px;line-height:1.4}.auth-card__link{color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin:0;padding:0;font-size:13px;text-decoration:underline}.auth-card__link:hover:not(:disabled){color:var(--color-accent)}.auth-card__link:disabled{opacity:.55;cursor:default}.auth-card__submit{padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-bg);font-family:var(--font-ui);cursor:pointer;font-size:14px;font-weight:600}.auth-card__submit:disabled{opacity:.55;cursor:default}.auth-card__secondary{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;font-size:14px}.auth-card__secondary:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-ink)}.auth-card__secondary:disabled{opacity:.55;cursor:default}.org-switcher{align-items:center;gap:var(--space-2);display:flex}.org-switcher__name{font-family:var(--font-ui);color:var(--color-ink);white-space:nowrap;font-size:13px;font-weight:600}.org-switcher__select{max-width:240px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-ui);cursor:pointer;font-size:13px}.org-switcher__select:disabled{opacity:.55;cursor:default}.org-switcher__notice{color:var(--color-danger);font-size:12px;line-height:1.4}.account-controls{align-items:baseline;gap:var(--space-3);display:flex}.account-controls__email{font-family:var(--font-mono);color:var(--color-ink-muted);font-size:12px}.account-controls__signout{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;font-size:13px;line-height:1.4}.account-controls__signout:hover{background:var(--color-surface-raised);color:var(--color-ink)}.save-notice{bottom:var(--space-5);max-width:min(480px, calc(100vw - 2 * var(--space-5)));padding:var(--space-2) var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink-secondary);margin:0;font-size:13px;line-height:1.5;position:fixed;left:50%;transform:translate(-50%)}.save-notice__line{margin:0}.save-notice__line+.save-notice__line{margin-top:var(--space-1)}@media (width<=720px){.org-switcher__select{max-width:40vw}.account-controls__email{display:none}}.conflict-overlay{padding:var(--space-5);z-index:10;background:#0b1020b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}:root{--color-bg:#0b1020;--color-canvas:#10162b;--color-surface:#141b31;--color-surface-raised:#1b2440;--color-ink:#e9edf9;--color-ink-secondary:#a8b3d1;--color-ink-muted:#6b769b;--color-border:#2c3757;--color-edge:#5a678f;--color-edge-loop:#8a94be;--color-retry-mark:#f2c14e;--node-border-width:1.5;--color-accent:#64a8ff;--color-danger:#e5484d;--color-linked:#4ec9d4;--color-tick-day:#d9b25f;--color-month-separator:#434f73;--font-ui:"Outfit", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-lift:0 6px 14px #040814b3;--filter-lift:drop-shadow(0 5px 6px #040814b3)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);margin:0}#root{touch-action:pan-x pan-y;flex-direction:column;height:100dvh;display:flex}.app-header{align-items:baseline;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex:none;display:flex}.app-header__title{letter-spacing:.04em;margin:0;font-size:22px;font-weight:600}.history-controls{gap:var(--space-1);display:flex}.history-controls__button{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;font-size:13px;line-height:1.4}.history-controls__button:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-ink)}.history-controls__button:disabled{color:var(--color-ink-muted);opacity:.55;cursor:default}.app-header__actions{align-self:center;align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.overflow-menu{display:inline-flex}.overflow-menu__backdrop{z-index:8;position:fixed;inset:0}.overflow-menu__host{z-index:9;position:relative}.overflow-menu__trigger{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;font-size:13px;line-height:1.4}.overflow-menu__trigger:hover,.overflow-menu__trigger[aria-expanded=true]{background:var(--color-surface-raised);color:var(--color-ink)}.overflow-menu__menu{min-width:180px;padding:var(--space-1);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);flex-direction:column;display:flex;position:absolute;right:0}.overflow-menu--up .overflow-menu__menu{bottom:calc(100% + var(--space-2))}.overflow-menu--down .overflow-menu__menu{top:calc(100% + var(--space-2))}.overflow-menu__item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-ui);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;font-size:13px}.overflow-menu__item:hover:not(:disabled),.overflow-menu__item:focus-visible{background:var(--color-surface)}.overflow-menu__item:disabled{color:var(--color-ink-muted);opacity:.55;cursor:default}.view-toggle{gap:var(--space-1);padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);display:flex}.view-toggle__tab{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);color:var(--color-ink-secondary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;font-size:13px}.view-toggle__tab[aria-pressed=true]{background:var(--color-surface-raised);color:var(--color-ink)}.role-badge{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-ink-secondary);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:11px}.app-main{min-height:0;padding:var(--space-5);flex:auto;overflow:auto}.app-loading{padding:var(--space-5);color:var(--color-ink-muted);font-family:var(--font-ui)}body.is-edge-dragging,body.is-edge-dragging *,body.is-node-dragging,body.is-node-dragging *,body.is-bar-resizing,body.is-bar-resizing *,body.is-bar-moving,body.is-bar-moving *{-webkit-user-select:none;user-select:none}body.is-bar-resizing,body.is-bar-resizing *{cursor:ew-resize!important}body.is-bar-moving,body.is-bar-moving *{cursor:grabbing!important}@media (width<=720px){:root{--mobile-action-bar-height:calc(52px + env(safe-area-inset-bottom))}.app-header{gap:var(--space-2);padding:var(--space-2) var(--space-3);align-items:center}.app-header__title{font-size:16px}.app-header button,.app-header select,.app-header input,.role-badge{font-size:12px}.app-main{padding:var(--space-2);padding-bottom:calc(var(--space-2) + var(--mobile-action-bar-height))}.mobile-action-bar{z-index:6;justify-content:space-between;align-items:center;gap:var(--space-2);height:var(--mobile-action-bar-height);padding:0 var(--space-3) env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:0;right:0}body.is-edge-dragging .mobile-action-bar,body.is-node-dragging .mobile-action-bar,body.is-bar-resizing .mobile-action-bar,body.is-bar-moving .mobile-action-bar{display:none}}
