.icon-chevron[data-v-2d9adf47]{flex-shrink:0;transition:transform .15s}.icon-chevron.expanded[data-v-2d9adf47]{transform:rotate(90deg)}.wbs-row[data-v-72e89042]{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--gray-150);cursor:pointer;font:var(--text-body);transition:background .1s}.wbs-row.stripe[data-v-72e89042]{background:var(--gray-100)}.wbs-row.indented[data-v-72e89042]{border-left:2px solid var(--gray-300)}.wbs-row[data-v-72e89042]:hover{background:var(--accent-soft)}.wbs-toggle[data-v-72e89042]{color:var(--gray-500);flex-shrink:0}.wbs-toggle-spacer[data-v-72e89042]{width:10px;flex-shrink:0}.wbs-code[data-v-72e89042]{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink);background:var(--gray-150);border-radius:var(--radius-sm);padding:1px 6px;flex-shrink:0}.wbs-full[data-v-72e89042]{color:var(--gray-700);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wbs-count[data-v-72e89042]{font:var(--text-micro);color:var(--ink-2);background:var(--chip);border-radius:var(--radius-sm);padding:2px 6px;flex-shrink:0}.wbs-m[data-v-72e89042]{flex:none;text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.wbs-crit[data-v-72e89042]{width:42px}.wbs-crit.hot[data-v-72e89042]{color:var(--crit);font-weight:700}.wbs-date[data-v-72e89042]{width:62px}.wbs-prog[data-v-72e89042]{flex:none;width:100px;display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.wbs-prog i[data-v-72e89042]{flex:1;height:5px;border-radius:3px;background:var(--chip);overflow:hidden}.wbs-prog u[data-v-72e89042]{display:block;height:100%;background:var(--accent)}.annotation-editor[data-v-ea10461e]{border-top:1px dashed var(--gray-300);margin-top:var(--space-4);padding-top:var(--space-3)}.annotation-head[data-v-ea10461e]{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.annotation-head h4[data-v-ea10461e]{margin:0;font:700 13px/1.3 var(--font-ui);text-transform:uppercase;letter-spacing:.04em;color:var(--gray-700)}.annotation-time[data-v-ea10461e]{font:var(--text-micro);color:var(--gray-500)}.severity-picker[data-v-ea10461e]{display:flex;gap:6px;margin-bottom:var(--space-2);flex-wrap:wrap}.severity-chip[data-v-ea10461e]{font:var(--text-micro);padding:3px 10px;border-radius:12px;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);cursor:pointer;font-weight:600}.severity-chip.sev-query.active[data-v-ea10461e]{background:var(--active-soft);border-color:var(--active);color:var(--active)}.severity-chip.sev-risk.active[data-v-ea10461e]{background:var(--near-tint);border-color:var(--near);color:var(--near)}.severity-chip.sev-logic.active[data-v-ea10461e]{background:var(--crit-tint);border-color:var(--crit);color:var(--crit)}.severity-chip.sev-resolved.active[data-v-ea10461e]{background:var(--ok-tint);border-color:var(--ok);color:var(--ok)}.annotation-note[data-v-ea10461e]{width:100%;box-sizing:border-box;font:var(--text-small);font-family:var(--font-ui);padding:6px 8px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);resize:vertical}.annotation-actions[data-v-ea10461e]{display:flex;gap:var(--space-2);margin-top:var(--space-2);align-items:center;flex-wrap:wrap}.annotation-share[data-v-ea10461e]{display:flex;gap:var(--space-2);margin-left:auto}.btn-remove[data-v-ea10461e]{color:var(--crit)}.btn-tiny-light.saved[data-v-ea10461e]{color:var(--ok);border-color:var(--ok)}.rel-hidden[data-v-2001c5cb]{color:var(--ink-3);font:var(--text-micro);font-style:italic}.drawer-gantt[data-v-2001c5cb]{margin-top:var(--space-2)}.logic-head[data-v-2001c5cb]{font:var(--text-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 var(--space-2)}.chain[data-v-2001c5cb]{display:flex;flex-direction:column}.chain-node[data-v-2001c5cb]{display:flex;align-items:baseline;gap:7px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 9px;cursor:pointer}.chain-node[data-v-2001c5cb]:hover{border-color:var(--accent);background:var(--accent-soft)}.chain-current[data-v-2001c5cb]{border-color:var(--crit);background:var(--crit-soft);cursor:default}.chain-current[data-v-2001c5cb]:hover{border-color:var(--crit);background:var(--crit-soft)}.chain-code[data-v-2001c5cb]{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--accent);flex:none}.chain-current .chain-code[data-v-2001c5cb]{color:var(--crit)}.chain-name[data-v-2001c5cb]{flex:1;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chain-current .chain-name[data-v-2001c5cb]{color:var(--ink);font-weight:600}.chain-float[data-v-2001c5cb]{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);flex:none}.chain-float.fl-crit[data-v-2001c5cb]{color:var(--crit);font-weight:700}.chain-float.fl-near[data-v-2001c5cb]{color:var(--near);font-weight:600}.chain-hop[data-v-2001c5cb]{display:flex;align-items:center;gap:6px;padding:2px 0 2px 14px;position:relative;min-height:20px}.chain-hop[data-v-2001c5cb]:before{content:"";position:absolute;left:6px;top:0;bottom:0;border-left:1px solid var(--line)}.hop-type[data-v-2001c5cb]{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--ink-3)}.hop-lag[data-v-2001c5cb]{font-family:var(--font-mono);font-size:10px;color:var(--near);background:var(--near-soft);border-radius:3px;padding:0 5px}.chain-none[data-v-2001c5cb]{font:var(--text-small);color:var(--ink-3);margin:var(--space-2) 0 0}.rel-more[data-v-2001c5cb]{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;padding:7px 0;cursor:pointer;font:var(--text-small);font-weight:600;color:var(--ink-2)}.rel-more em[data-v-2001c5cb]{font-style:normal;font-family:var(--font-mono);color:var(--ink-3)}.rel-more .chev[data-v-2001c5cb]{transition:transform .15s;color:var(--ink-3)}.rel-more .chev.open[data-v-2001c5cb]{transform:rotate(90deg)}.graph-wrap[data-v-79989da0]{border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden;background:var(--white);margin-bottom:var(--space-6);font-family:var(--font-ui)}.graph-wrap.is-fullscreen[data-v-79989da0]{border-radius:0;display:flex;flex-direction:column;height:100vh}.graph-wrap.is-fullscreen .graph-body[data-v-79989da0]{flex:1;min-height:0;display:flex}.graph-wrap.is-fullscreen .graph-canvas[data-v-79989da0]{flex:1;height:auto}.graph-toolbar[data-v-79989da0]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--gray-300);background:var(--gray-100);flex-wrap:wrap;gap:var(--space-2)}.graph-toolbar.drawer-open[data-v-79989da0]{padding-right:440px}.legend[data-v-79989da0]{display:flex;gap:14px;flex-wrap:wrap}.legend-item[data-v-79989da0]{display:flex;align-items:center;gap:5px;font:var(--text-small);color:var(--gray-700)}.dot[data-v-79989da0]{width:9px;height:9px;border-radius:50%;display:inline-block}.dot-critical[data-v-79989da0]{background:var(--crit)}.dot-near[data-v-79989da0]{background:var(--near)}.dot-other[data-v-79989da0]{background:var(--gray-500)}.lg-node-neg[data-v-79989da0]{width:16px;height:11px;display:inline-block;box-sizing:border-box;background:var(--crit-tint);border:1px solid var(--crit);border-top:4px solid var(--crit);border-radius:2px}.diamond[data-v-79989da0]{width:8px;height:8px;background:var(--milestone);display:inline-block;transform:rotate(45deg)}.toolbar-actions[data-v-79989da0]{display:flex;align-items:center;gap:var(--space-2)}.isolation-chip[data-v-79989da0]{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:12px;padding:2px 4px 2px 10px;font:var(--text-small);font-weight:600}.isolation-exit[data-v-79989da0]{border:none;background:var(--accent);color:var(--on-solid);border-radius:9px;padding:2px 9px;font:var(--text-small);font-weight:600;cursor:pointer}.isolation-exit[data-v-79989da0]:hover{opacity:.9}.detail-actions[data-v-79989da0]{margin-top:10px}.btn-isolate[data-v-79989da0]{color:var(--accent);border-color:var(--accent);font-weight:600}.btn-isolate[data-v-79989da0]:hover{background:var(--accent-soft)}.trace-hint[data-v-79989da0]{display:block;font-size:13px;color:var(--accent);font-weight:600;background:var(--accent-soft);border-radius:var(--radius-sm);padding:6px 9px}.paper-size-select[data-v-79989da0]{min-width:0}.gesture-hint[data-v-79989da0]{font:var(--text-micro);color:var(--gray-500);white-space:nowrap;margin-left:var(--space-2)}.zoom-adjust[data-v-79989da0]{display:flex;border:1px solid var(--gray-300);border-radius:var(--radius-sm);overflow:hidden}.zbtn[data-v-79989da0]{padding:4px 10px;border:none;border-right:1px solid var(--gray-300);background:var(--white);cursor:pointer;font:var(--text-small);font-weight:700;color:var(--gray-700)}.zbtn[data-v-79989da0]:last-child{border-right:none}.zbtn[data-v-79989da0]:hover{background:var(--gray-150)}.graph-canvas[data-v-79989da0]{flex:1;min-width:0;position:relative;overflow:hidden;touch-action:none;height:calc(100dvh - 212px);min-height:320px;background:radial-gradient(var(--gray-150) 1.5px,transparent 1.5px) 0 0 / 18px 18px,var(--white);cursor:grab}@media (max-width: 900px){.graph-canvas[data-v-79989da0]{height:calc(100dvh - 250px);min-height:320px}}.graph-canvas.dragging[data-v-79989da0]{cursor:grabbing}.viewport-animated[data-v-79989da0]{transition:transform .26s cubic-bezier(.22,1,.36,1)}.arrow-normal[data-v-79989da0]{fill:var(--gray-500)}.arrow-critical[data-v-79989da0]{fill:var(--crit)}.edge[data-v-79989da0]{fill:none;stroke:var(--gray-500);stroke-width:1.8;transition:opacity .15s,stroke .15s}.edge.edge-critical[data-v-79989da0]{stroke:var(--crit);stroke-width:3}.edge.dimmed[data-v-79989da0]{opacity:.12}.node[data-v-79989da0]{cursor:pointer}.node .node-rect[data-v-79989da0]{fill:var(--gray-100);stroke:var(--gray-300);stroke-width:1.5;transition:filter .15s,opacity .15s}.node.critical .node-rect[data-v-79989da0]{fill:var(--crit-tint);stroke:var(--crit);stroke-width:2.5}.node.near-critical .node-rect[data-v-79989da0]{fill:var(--near-tint);stroke:var(--near);stroke-width:2}.node.other .node-rect[data-v-79989da0]{fill:var(--gray-100);stroke:var(--gray-300)}.node.negative .node-rect[data-v-79989da0]{stroke-width:3.5}.node-neg-flag[data-v-79989da0]{fill:var(--crit)}.node-annotation-flag[data-v-79989da0]{fill:var(--gray-500);stroke:var(--white);stroke-width:1}.node-annotation-flag.sev-query[data-v-79989da0]{fill:var(--active)}.node-annotation-flag.sev-risk[data-v-79989da0]{fill:var(--near)}.node-annotation-flag.sev-logic[data-v-79989da0]{fill:var(--crit)}.node-annotation-flag.sev-resolved[data-v-79989da0]{fill:var(--ok)}.node.selected .node-rect[data-v-79989da0]{stroke:var(--accent);stroke-width:3;filter:drop-shadow(0 3px 8px rgba(41,81,196,.4))}.node.dimmed[data-v-79989da0]{opacity:.22}.node:hover .node-rect[data-v-79989da0]{filter:drop-shadow(0 2px 6px rgba(28,25,23,.14))}.node-mile-icon[data-v-79989da0]{fill:var(--milestone)}.node-name[data-v-79989da0]{font-family:var(--font-ui);font-size:13px;font-weight:600;fill:var(--ink)}.node-float[data-v-79989da0]{font-family:var(--font-mono);font-size:11px;font-weight:700;fill:var(--crit)}.node-float.node-meta-neg[data-v-79989da0]{fill:var(--crit)}.node-meta[data-v-79989da0]{font-family:var(--font-mono);font-size:10px;fill:var(--ink-2)}.node-code[data-v-79989da0],.node-rank[data-v-79989da0]{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--crit)}.node-sep[data-v-79989da0]{fill:var(--ink-3)}.other .node-float[data-v-79989da0],.other .node-code[data-v-79989da0],.other .node-rank[data-v-79989da0]{fill:var(--ink-2)}.near-critical .node-float[data-v-79989da0],.near-critical .node-code[data-v-79989da0],.near-critical .node-rank[data-v-79989da0]{fill:var(--near)}.edge-label-bg[data-v-79989da0]{fill:var(--panel);stroke:var(--line);stroke-width:1}.edge-label[data-v-79989da0]{font-family:var(--font-mono);font-size:9px;font-weight:600;fill:var(--ink-2)}.edge-labels .dimmed[data-v-79989da0]{opacity:.25}.scope-group[data-v-79989da0]{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px}.scope-group button[data-v-79989da0]{border:none;background:none;border-radius:4px;padding:3px 10px;cursor:pointer;font:var(--text-small);color:var(--ink-2);white-space:nowrap}.scope-group button.active[data-v-79989da0]{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000001a}.expand-btn rect[data-v-79989da0]{fill:var(--accent)}.expand-btn text[data-v-79989da0]{fill:var(--on-solid);font-family:var(--font-mono);font-size:10px;font-weight:700}.expand-btn:hover rect[data-v-79989da0]{fill:var(--ink)}.graph-body[data-v-79989da0]{position:relative;display:flex;align-items:stretch}@media print{@page{size:landscape;margin:10mm}.graph-strip[data-v-79989da0],.graph-toolbar[data-v-79989da0]{display:none}.graph-wrap[data-v-79989da0],.graph-wrap.is-fullscreen[data-v-79989da0]{border:none;box-shadow:none;height:auto;overflow:visible;display:block}.graph-body[data-v-79989da0]{height:auto}.graph-wrap .graph-canvas[data-v-79989da0]{width:var(--print-w);height:var(--print-h);overflow:visible;background:none}.expand-btn[data-v-79989da0]{display:none}}.gantt-wrap[data-v-c27a31ad]{border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden;background:var(--white);margin-bottom:var(--space-6);box-shadow:0 1px 3px #1c19170f;font-family:var(--font-ui)}.gantt-wrap.is-fullscreen[data-v-c27a31ad]{border-radius:0;display:flex;flex-direction:column;height:100vh}.gantt-wrap.is-fullscreen .gantt-body[data-v-c27a31ad]{flex:1;min-height:0;display:flex}.gantt-toolbar[data-v-c27a31ad]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px var(--space-4);background:var(--panel);border-bottom:1px solid var(--line)}.tb-div[data-v-c27a31ad]{width:1px;align-self:stretch;background:var(--line);margin:0 2px}.tb-group[data-v-c27a31ad]{display:flex;align-items:center;gap:4px}.tb-group-label[data-v-c27a31ad]{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-right:2px}.tb-right[data-v-c27a31ad]{margin-left:auto;display:flex;align-items:center;gap:6px}.tb-right .filter-input[data-v-c27a31ad]{width:172px}.tb-more[data-v-c27a31ad]{font-size:15px;line-height:1;padding:4px 9px}.ctrl-btn.has-filters[data-v-c27a31ad]{border-color:var(--accent);color:var(--accent);font-weight:600}.tb-pop[data-v-c27a31ad]{position:relative}.tb-panel[data-v-c27a31ad]{position:absolute;right:0;top:calc(100% + 5px);min-width:250px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 10px 30px -12px #00000059;padding:var(--space-3);z-index:12;display:flex;flex-direction:column;gap:7px}.fp-row[data-v-c27a31ad]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font:var(--text-small);color:var(--ink-2)}.fp-row>span[data-v-c27a31ad]{white-space:nowrap}.fp-row .filter-select[data-v-c27a31ad],.fp-row .filter-date[data-v-c27a31ad]{min-width:132px}.fp-check[data-v-c27a31ad]{display:flex;align-items:center;gap:6px;font:var(--text-small);color:var(--ink-2);cursor:pointer}.fp-sep[data-v-c27a31ad]{height:1px;background:var(--line);margin:2px 0}.fp-la[data-v-c27a31ad]{display:flex;gap:4px}.tb-panel-menu button[data-v-c27a31ad]{text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:6px 8px;cursor:pointer;font:var(--text-small);color:var(--ink-2)}.tb-panel-menu button[data-v-c27a31ad]:hover:not(:disabled){background:var(--chip);color:var(--ink)}.tb-panel-menu button[data-v-c27a31ad]:disabled{opacity:.45;cursor:default}.filter-strip[data-v-c27a31ad]{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-height:34px;padding:5px var(--space-4);background:var(--panel-2);border-bottom:1px solid var(--line)}.fs-label[data-v-c27a31ad]{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--ink-3)}.fs-chip[data-v-c27a31ad]{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:14px;padding:2px 5px 2px 10px;cursor:pointer;font:var(--text-small);font-weight:600}.fs-chip[data-v-c27a31ad]:hover{background:var(--panel)}.fs-x[data-v-c27a31ad]{font-size:14px;line-height:1;opacity:.75}.filter-strip .filter-count[data-v-c27a31ad]{margin-left:auto;font:var(--text-small);color:var(--ink-3);font-family:var(--font-mono)}.gantt-wrap.is-fullscreen .gantt-scroll[data-v-c27a31ad]{flex:1;height:auto;max-height:none}.gantt-body[data-v-c27a31ad]{position:relative;display:flex;align-items:stretch}.basis-group[data-v-c27a31ad]{display:flex;align-items:center;gap:6px;border:1px solid var(--ink-soft);border-radius:var(--radius-sm);padding:2px;flex-shrink:0}.basis-group button[data-v-c27a31ad]{padding:4px 10px;border:none;border-radius:3px;background:none;cursor:pointer;font:var(--text-small);color:var(--ink-2)}.basis-group button.active[data-v-c27a31ad]{background:var(--crit);color:var(--on-solid);font-weight:700}.basis-group button[data-v-c27a31ad]:hover:not(.active){background:var(--ink-soft)}.legend[data-v-c27a31ad]{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.legend-item[data-v-c27a31ad]{display:flex;align-items:center;gap:5px;font:var(--text-small);color:var(--gray-700)}.lg-bar[data-v-c27a31ad]{width:20px;height:10px;border-radius:3px;display:inline-block;box-sizing:border-box;border:1.5px solid}.lg-critical[data-v-c27a31ad]{background:var(--crit-tint);border-color:var(--crit)}.lg-near[data-v-c27a31ad]{background:var(--near-tint);border-color:var(--near)}.lg-normal[data-v-c27a31ad]{background:var(--accent-soft);border-color:var(--accent)}.lg-negative[data-v-c27a31ad]{background:repeating-linear-gradient(135deg,rgba(255,255,255,.45) 0 2px,transparent 2px 5px),var(--crit);border-color:var(--crit-deep)}.diamond[data-v-c27a31ad]{width:8px;height:8px;background:var(--milestone);display:inline-block;transform:rotate(45deg)}.bar-wbs[data-v-c27a31ad]{width:16px;height:7px;border-radius:3px;background:var(--gray-700);display:inline-block}.progress-swatch[data-v-c27a31ad]{width:14px;height:2px;background:var(--milestone);display:inline-block}.zoom-group[data-v-c27a31ad]{display:flex;border:1px solid var(--gray-300);border-radius:var(--radius-sm);overflow:hidden}.zoom-group button[data-v-c27a31ad]{padding:4px 10px;border:none;border-right:1px solid var(--gray-300);background:var(--white);cursor:pointer;font:var(--text-small);color:var(--gray-700)}.zoom-group button[data-v-c27a31ad]:last-child{border-right:none}.zoom-group button.active[data-v-c27a31ad]{background:var(--accent-soft);color:var(--accent);font-weight:700}.zoom-group button[data-v-c27a31ad]:hover:not(.active){background:var(--gray-150)}.zoom-adjust[data-v-c27a31ad]{display:flex;border:1px solid var(--gray-300);border-radius:var(--radius-sm);overflow:hidden}.zbtn[data-v-c27a31ad]{padding:4px 10px;border:none;border-right:1px solid var(--gray-300);background:var(--white);cursor:pointer;font:var(--text-small);color:var(--gray-700);font-weight:700}.zbtn[data-v-c27a31ad]:last-child{border-right:none}.zbtn[data-v-c27a31ad]:hover{background:var(--gray-150)}.filter-input[data-v-c27a31ad]{padding:6px 12px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--text-small);width:240px}.filter-date[data-v-c27a31ad]{border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:4px 6px;background:var(--white);font-family:var(--font-mono);font-size:12px;color:var(--ink)}.la-btn.active[data-v-c27a31ad]{background:var(--active-soft);border-color:var(--active);color:var(--active);font-weight:700}.filter-select[data-v-c27a31ad]{padding:6px 8px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--text-small);background:var(--white)}.filter-check[data-v-c27a31ad]{font:var(--text-small);color:var(--gray-700);display:flex;align-items:center;gap:4px;cursor:pointer}.filter-count[data-v-c27a31ad]{font:var(--text-small);color:var(--gray-500);margin-left:auto}.return-chip[data-v-c27a31ad]{display:inline-flex;align-items:center;background:var(--nav);color:var(--nav-ink);border:none;border-radius:12px;padding:3px 12px;font:var(--text-small);font-weight:600;cursor:pointer}.return-chip[data-v-c27a31ad]:hover{opacity:.9}.isolation-chip[data-v-c27a31ad]{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:12px;padding:2px 4px 2px 10px;font:var(--text-small);font-weight:600}.isolation-exit[data-v-c27a31ad]{border:none;background:var(--accent);color:var(--on-solid);border-radius:9px;padding:2px 9px;font:var(--text-small);font-weight:600;cursor:pointer}.isolation-exit[data-v-c27a31ad]:hover{opacity:.9}.gantt-scroll[data-v-c27a31ad]{flex:1;min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;height:calc(100dvh - 288px);min-height:320px;position:relative;cursor:grab}.gantt-scroll.panning[data-v-c27a31ad]{cursor:grabbing}@media (max-width: 900px){.gantt-scroll[data-v-c27a31ad]{height:calc(100dvh - 400px);min-height:320px}}.gantt-grid[data-v-c27a31ad]{display:grid;grid-template-rows:56px;grid-auto-rows:26px;position:relative}.g-cell[data-v-c27a31ad]{min-width:0}.g-corner[data-v-c27a31ad]{position:absolute;z-index:7;background:var(--panel-2);border-bottom:1px solid var(--line);border-right:2px solid var(--line);height:56px;display:flex;align-items:flex-end;gap:6px;padding:0 8px 8px;box-sizing:border-box;overflow:hidden;box-shadow:2px 0 5px -3px #1c19172e}.g-corner-name[data-v-c27a31ad]{flex:1;min-width:0;font:var(--text-micro);font-weight:700;color:var(--gray-700);text-transform:uppercase;letter-spacing:.03em}.g-corner-col[data-v-c27a31ad]{font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-700)!important}.g-timeline-header[data-v-c27a31ad]{position:absolute;z-index:6;background:var(--gray-100);border-bottom:1px solid var(--gray-300);height:52px}.g-header-band-row[data-v-c27a31ad]{position:relative;height:26px;border-bottom:1px solid var(--line-soft)}.g-header-detail-row[data-v-c27a31ad]{position:relative;height:30px}.g-band-tick[data-v-c27a31ad]{position:absolute;top:0;height:100%;padding-left:6px;padding-top:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);border-left:1px solid var(--line);white-space:nowrap}.g-dd-chip[data-v-c27a31ad]{position:absolute;top:4px;transform:translate(1px);background:var(--ms);color:var(--on-solid);font-family:var(--font-mono);font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;white-space:nowrap;z-index:2}.g-detail-tick[data-v-c27a31ad]{position:absolute;top:0;padding-top:8px;padding-left:4px;font:var(--text-micro);color:var(--gray-700);white-space:nowrap;border-left:1px solid var(--gray-150);height:100%;box-sizing:border-box}.g-detail-tick.weekend[data-v-c27a31ad]{color:var(--crit);font-weight:700}.g-overlay[data-v-c27a31ad]{position:absolute;pointer-events:none}.g-overlay-bg[data-v-c27a31ad]{z-index:1}.g-overlay-fg[data-v-c27a31ad]{z-index:3}.g-weekend[data-v-c27a31ad]{fill:var(--gray-150)}.g-gridline[data-v-c27a31ad]{stroke:var(--gray-150);stroke-width:1}.g-gridline-month[data-v-c27a31ad]{stroke:var(--gray-300);stroke-width:1}.g-link[data-v-c27a31ad]{fill:none;stroke:var(--crit);stroke-width:1.5;opacity:.75}.g-link-arrow[data-v-c27a31ad]{fill:var(--crit)}.g-link.g-link-chain[data-v-c27a31ad]{stroke:var(--accent);stroke-width:1.5;opacity:.85}.g-link-arrow-chain[data-v-c27a31ad]{fill:var(--accent)}.g-progress-line[data-v-c27a31ad]{fill:none;stroke:var(--milestone);stroke-width:2;stroke-dasharray:4 3;opacity:.9}.g-progress-dot[data-v-c27a31ad]{fill:var(--milestone)}.g-today-line[data-v-c27a31ad]{position:absolute;width:2px;background:var(--accent);z-index:4;pointer-events:none}.g-dd-line[data-v-c27a31ad]{position:absolute;width:0;border-left:2px dashed var(--milestone);z-index:4;pointer-events:none}.g-dd-flag[data-v-c27a31ad]{position:absolute;top:2px;left:3px;font:var(--text-micro);font-weight:700;color:var(--on-solid);background:var(--milestone);padding:0 5px;border-radius:var(--radius-sm);white-space:nowrap}.g-today-flag[data-v-c27a31ad]{position:absolute;top:-18px;left:2px;font:var(--text-micro);font-weight:700;color:var(--accent);white-space:nowrap}.g-resize-handle[data-v-c27a31ad]{position:absolute;top:0;width:7px;margin-left:-3px;cursor:col-resize;z-index:8;background:transparent}.g-resize-handle[data-v-c27a31ad]:hover,.g-resize-handle.resizing[data-v-c27a31ad]{background:var(--accent-soft)}.g-label[data-v-c27a31ad]{position:absolute;z-index:5;background:var(--panel);display:flex;align-items:center;gap:6px;height:26px;border-bottom:1px solid var(--gray-150);border-right:2px solid var(--gray-300);font:var(--text-small);white-space:nowrap;overflow:hidden;cursor:pointer;box-sizing:border-box;box-shadow:2px 0 5px -3px #1c19171a}.g-label[data-v-c27a31ad]:hover,.g-label.selected[data-v-c27a31ad]{background:var(--accent-soft)}.g-label-wbs[data-v-c27a31ad]{font-weight:600;background:var(--panel-2);border-bottom:1px solid var(--line)}.g-label-wbs[data-v-c27a31ad]:hover{background:var(--accent-soft)}.g-toggle[data-v-c27a31ad]{color:var(--gray-500);flex-shrink:0}.g-wbs-name[data-v-c27a31ad]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.g-wbs-count[data-v-c27a31ad]{padding-right:4px;font:var(--text-micro);color:var(--gray-500);flex-shrink:0}.g-act-code[data-v-c27a31ad]{font-family:var(--font-mono);font-size:12px;color:var(--gray-500);flex-shrink:0}.annotation-flag[data-v-c27a31ad]{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--gray-500)}.annotation-flag.sev-query[data-v-c27a31ad]{background:var(--active)}.annotation-flag.sev-risk[data-v-c27a31ad]{background:var(--near)}.annotation-flag.sev-logic[data-v-c27a31ad]{background:var(--crit)}.annotation-flag.sev-resolved[data-v-c27a31ad]{background:var(--ok)}.g-act-name[data-v-c27a31ad]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}.g-col-dur[data-v-c27a31ad],.g-col-date[data-v-c27a31ad],.g-col-float[data-v-c27a31ad]{flex-shrink:0;text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.g-col-float[data-v-c27a31ad]{width:44px;margin-right:8px}.g-col-float.fl-crit[data-v-c27a31ad],.g-col-float.fl-neg[data-v-c27a31ad]{color:var(--crit);font-weight:700}.g-col-float.fl-near[data-v-c27a31ad]{color:var(--near);font-weight:600}.g-col-dur[data-v-c27a31ad]{width:34px}.g-col-date[data-v-c27a31ad]{width:48px}.g-timeline-row[data-v-c27a31ad]{position:relative;height:26px;border-bottom:1px solid var(--gray-150);z-index:2}.g-empty[data-v-c27a31ad]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);z-index:6;background:var(--white)}.g-empty-title[data-v-c27a31ad]{font:var(--text-h3);color:var(--ink);margin:0}.g-empty-sub[data-v-c27a31ad]{font:var(--text-small);color:var(--gray-700);margin:0}.g-float-tail[data-v-c27a31ad]{position:absolute;top:13px;height:0;border-top:1px dashed var(--float-tail);pointer-events:auto}.g-bar-ghost[data-v-c27a31ad]{position:absolute;top:20px;height:4px;border-radius:2px;background:transparent;border:1.5px solid var(--gray-500);box-sizing:border-box;pointer-events:auto}.g-milestone-ghost[data-v-c27a31ad]{position:absolute;top:16px;width:7px;height:7px;transform:translate(-4px) rotate(45deg);border:1.5px solid var(--gray-500);background:transparent;box-sizing:border-box}.lg-ghost[data-v-c27a31ad]{background:transparent!important;border-color:var(--gray-500)!important;height:5px!important}.g-bar[data-v-c27a31ad]{position:absolute;top:7px;height:12px;border-radius:var(--radius-sm);overflow:hidden;background:var(--accent-soft);border:1.5px solid var(--accent);box-sizing:border-box;box-shadow:0 1px 2px #1c191726}.g-bar.critical[data-v-c27a31ad]{background:var(--crit-tint);border-color:var(--crit)}.g-bar.near[data-v-c27a31ad]{background:var(--near-tint);border-color:var(--near)}.g-bar.other[data-v-c27a31ad]{background:var(--accent-soft);border-color:var(--accent)}.g-bar.negative[data-v-c27a31ad]{background:repeating-linear-gradient(135deg,rgba(255,255,255,.45) 0 2px,transparent 2px 5px),var(--crit);border-color:var(--crit-deep)}.g-bar.negative .g-bar-progress[data-v-c27a31ad]{background:#1c191773}.g-bar.selected[data-v-c27a31ad]{box-shadow:0 0 0 2px var(--ink)}.g-bar-progress[data-v-c27a31ad]{height:100%;background:#1c191747}.g-bar-wbs[data-v-c27a31ad]{position:absolute;top:10px;height:6px;border-radius:3px;background:var(--gray-700)}.g-bar-wbs[data-v-c27a31ad]:before,.g-bar-wbs[data-v-c27a31ad]:after{content:"";position:absolute;top:100%;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--gray-700)}.g-bar-wbs[data-v-c27a31ad]:before{left:-1px}.g-bar-wbs[data-v-c27a31ad]:after{right:-1px}.g-milestone[data-v-c27a31ad]{position:absolute;top:8px;width:11px;height:11px;margin-left:-5px;background:var(--milestone);transform:rotate(45deg);border-radius:2px;box-shadow:0 1px 2px #1c191733}.g-milestone.critical[data-v-c27a31ad]{background:var(--crit)}.g-milestone.near[data-v-c27a31ad]{background:var(--near)}.g-milestone.negative[data-v-c27a31ad]{background:var(--crit);box-shadow:0 0 0 2px var(--white),0 0 0 3.5px var(--crit)}.detail-actions[data-v-c27a31ad]{margin-top:10px}.btn-isolate[data-v-c27a31ad]{color:var(--accent);border-color:var(--accent);font-weight:600}.btn-isolate[data-v-c27a31ad]:hover{background:var(--accent-soft)}.trace-hint[data-v-c27a31ad]{display:block;font-size:13px;color:var(--accent);font-weight:600;background:var(--accent-soft);border-radius:var(--radius-sm);padding:6px 9px}.print-table[data-v-c27a31ad]{display:none}@media print{@page{size:landscape;margin:10mm}.gantt-strip[data-v-c27a31ad],.gantt-controls[data-v-c27a31ad],.filter-bar[data-v-c27a31ad]{display:none}.gantt-wrap[data-v-c27a31ad],.gantt-wrap.is-fullscreen[data-v-c27a31ad]{border:none;box-shadow:none;height:auto;overflow:visible;display:block}.gantt-scroll[data-v-c27a31ad],.gantt-grid[data-v-c27a31ad]{display:none!important}.print-table[data-v-c27a31ad]{display:table;width:100%;border-collapse:collapse;table-layout:fixed;font:11px/1.4 var(--font-ui)}.print-table thead[data-v-c27a31ad]{display:table-header-group}.print-table th[data-v-c27a31ad],.print-table td[data-v-c27a31ad]{border-bottom:1px solid var(--gray-300);padding:0 6px;height:20px;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.print-table th[data-v-c27a31ad]{text-align:left;font-weight:700;color:var(--gray-700);background:var(--gray-100);border-bottom:2px solid var(--gray-300);height:28px}.pt-num[data-v-c27a31ad],.pt-col-num[data-v-c27a31ad]{font-family:var(--font-mono);text-align:right;width:42px}.pt-col-date[data-v-c27a31ad]{width:52px}.pt-timeline[data-v-c27a31ad]{position:relative;padding:0}.pt-stripe[data-v-c27a31ad]{background:var(--gray-100)}.pt-wbs-row[data-v-c27a31ad]{font-weight:700;background:var(--gray-150)}.pt-tick[data-v-c27a31ad]{position:absolute;top:6px;font:700 10px var(--font-ui);color:var(--ink);white-space:nowrap}.pt-dd-tick[data-v-c27a31ad]{position:absolute;top:6px;font:700 9px var(--font-mono);color:var(--on-solid);background:var(--milestone);padding:1px 4px;border-radius:2px;transform:translate(-4px);white-space:nowrap}.print-table .g-bar[data-v-c27a31ad],.print-table .g-milestone[data-v-c27a31ad],.print-table .g-bar-wbs[data-v-c27a31ad]{position:absolute}[data-v-c27a31ad]{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.health-wrap[data-v-3a5842a4]{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.strip-score[data-v-3a5842a4]{display:flex;align-items:center;gap:var(--space-3)}.score-num[data-v-3a5842a4]{font-family:var(--font-mono);font-size:27px;font-weight:800}.score-good[data-v-3a5842a4]{color:var(--ok)}.score-mid[data-v-3a5842a4]{color:var(--near)}.score-bad[data-v-3a5842a4]{color:var(--crit)}.score-detail[data-v-3a5842a4]{font:var(--text-micro);color:var(--ink-2);max-width:120px}.cfg-btn[data-v-3a5842a4]{font:var(--text-small);background:transparent;color:var(--ink-2);border:1px solid var(--ink-3);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer}.cfg-btn[data-v-3a5842a4]:hover,.cfg-btn.active[data-v-3a5842a4]{color:var(--ink);border-color:var(--ink)}.cfg-panel[data-v-3a5842a4]{border-bottom:1px solid var(--gray-300);background:var(--gray-100);padding:var(--space-3) var(--space-4)}.cfg-table[data-v-3a5842a4]{border-collapse:collapse;font:var(--text-small)}.cfg-table th[data-v-3a5842a4]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);padding:var(--space-1) var(--space-4) var(--space-1) 0;border-bottom:1px solid var(--gray-300)}.cfg-table td[data-v-3a5842a4]{padding:3px var(--space-4) 3px 0;color:var(--ink)}.cfg-off td[data-v-3a5842a4]{opacity:.5}.cfg-num[data-v-3a5842a4]{width:58px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:2px 6px;background:var(--white);font-family:var(--font-mono)}.cfg-na[data-v-3a5842a4]{color:var(--gray-500);font:var(--text-micro)}.cfg-target[data-v-3a5842a4]{white-space:nowrap;font-family:var(--font-mono)}.cfg-actions[data-v-3a5842a4]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3);flex-wrap:wrap}.cfg-note[data-v-3a5842a4]{font:var(--text-micro);color:var(--gray-700);max-width:640px}.cfg-reset[data-v-3a5842a4]{font:var(--text-micro);border:1px solid var(--gray-300);background:var(--white);padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--gray-700)}.cfg-reset[data-v-3a5842a4]:hover{background:var(--gray-150)}.hc-results[data-v-3a5842a4]{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.hc-group-label[data-v-3a5842a4]{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--space-2)}.hc-fail-grid[data-v-3a5842a4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}.hc-fail-card[data-v-3a5842a4]{text-align:left;border:1px solid var(--crit);background:var(--crit-soft);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer}.hc-fail-card[data-v-3a5842a4]:hover{background:var(--panel)}.hc-fail-value[data-v-3a5842a4]{font-family:var(--font-mono);font-size:26px;font-weight:700;color:var(--crit);line-height:1.1}.hc-fail-name[data-v-3a5842a4]{font:var(--text-small);font-weight:600;color:var(--ink);margin-top:2px}.hc-fail-target[data-v-3a5842a4]{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-top:2px}.hc-pass-row[data-v-3a5842a4]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hc-pass-row .hc-group-label[data-v-3a5842a4]{margin-bottom:0;margin-right:2px}.hc-pass-pill[data-v-3a5842a4]{display:inline-flex;align-items:baseline;gap:5px;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:2px 10px;cursor:pointer;font-size:11px;color:var(--ink-3)}.hc-pass-pill[data-v-3a5842a4]:hover{border-color:var(--ok);color:var(--ink-2)}.hc-pass-pill b[data-v-3a5842a4]{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--ok)}.hc-footnote[data-v-3a5842a4]{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-top:var(--space-3)}.scorecard[data-v-3a5842a4]{display:flex;flex-wrap:wrap;gap:1px;background:var(--gray-300);border-bottom:1px solid var(--gray-300)}.score-item[data-v-3a5842a4]{flex:1;min-width:110px;background:var(--white);padding:var(--space-3);text-align:center}.score-item.clickable[data-v-3a5842a4]{cursor:pointer}.score-item.clickable[data-v-3a5842a4]:hover{background:var(--gray-100)}.score-item.pass .score-count[data-v-3a5842a4]{color:var(--ok)}.score-item.fail .score-count[data-v-3a5842a4]{color:var(--crit)}.score-item.excluded[data-v-3a5842a4]{opacity:.55}.score-item.excluded .score-count[data-v-3a5842a4]{color:var(--gray-500)}.score-count[data-v-3a5842a4]{font-family:var(--font-mono);font-size:23px;font-weight:700}.score-label[data-v-3a5842a4]{font:var(--text-micro);color:var(--gray-700);text-transform:uppercase;letter-spacing:.03em}.score-target[data-v-3a5842a4]{font:var(--text-micro);color:var(--gray-500);font-family:var(--font-mono);margin-top:1px}.health-section[data-v-3a5842a4]{border-bottom:1px solid var(--gray-300)}.health-section[data-v-3a5842a4]:last-child{border-bottom:none}.section-title[data-v-3a5842a4]{font:600 15px/1.4 var(--font-ui)}.section-head[data-v-3a5842a4]{width:100%;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--gray-100);border:none;cursor:pointer;text-align:left}.section-head[data-v-3a5842a4]:hover{background:var(--gray-150)}.section-title[data-v-3a5842a4]{font-weight:600;color:var(--ink);white-space:nowrap}.section-title em[data-v-3a5842a4]{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.section-title em.pass[data-v-3a5842a4]{color:var(--ok)}.section-hint[data-v-3a5842a4]{font:var(--text-small);color:var(--gray-700);flex:1}.chevron[data-v-3a5842a4]{transition:transform .15s;color:var(--gray-500);font-size:19px}.chevron.open[data-v-3a5842a4]{transform:rotate(90deg)}.section-body[data-v-3a5842a4]{padding:var(--space-4)}.section-note[data-v-3a5842a4]{font:var(--text-small);color:var(--gray-700);margin:var(--space-2) 0 var(--space-4)}.section-body h4[data-v-3a5842a4]{font:var(--text-small);font-weight:700;color:var(--ink);margin:var(--space-4) 0 var(--space-2)}.section-body h4[data-v-3a5842a4]:first-child{margin-top:0}.empty-state[data-v-3a5842a4]{font:var(--text-small);color:var(--ok)}.rel-mix[data-v-3a5842a4]{display:flex;gap:var(--space-6);flex-wrap:wrap}.rel-mix-item[data-v-3a5842a4]{display:flex;flex-direction:column;gap:2px}.rel-mix-item strong[data-v-3a5842a4]{font-family:var(--font-mono);font-size:19px;color:var(--ink)}.rel-mix-item span[data-v-3a5842a4]{font:var(--text-micro);color:var(--gray-700)}.health-table[data-v-3a5842a4]{width:100%;border-collapse:collapse;font:var(--text-small)}.health-table th[data-v-3a5842a4]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);background:var(--gray-100);border-bottom:2px solid var(--gray-300);padding:var(--space-2) var(--space-3)}.health-table td[data-v-3a5842a4]{padding:6px var(--space-3);border-bottom:1px solid var(--gray-150)}.jump-row[data-v-3a5842a4]{cursor:pointer}.jump-row:hover td[data-v-3a5842a4]{background:var(--accent-soft)}.code[data-v-3a5842a4]{font-family:var(--font-mono);font-weight:600;color:var(--accent);white-space:nowrap}.name-cell[data-v-3a5842a4]{color:var(--ink-soft)}.wbs-cell[data-v-3a5842a4]{color:var(--gray-700);font:var(--text-micro);font-family:var(--font-mono)}.num-cell[data-v-3a5842a4]{font-family:var(--font-mono);text-align:right;white-space:nowrap}.section-note-cell[data-v-3a5842a4]{color:var(--near);font:var(--text-micro);font-style:italic}.alap-off[data-v-3a5842a4]{color:var(--ink-3)}.lag-neg[data-v-3a5842a4]{color:var(--crit);font-weight:700}.tbl-name[data-v-3a5842a4]{display:block;color:var(--ink-soft);font:var(--text-micro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.tg-th[data-v-3a5842a4]{width:30px}.tg-cell[data-v-3a5842a4]{text-align:center;width:30px}.to-gantt[data-v-3a5842a4]{border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);border-radius:var(--radius-sm);width:22px;height:22px;line-height:1;cursor:pointer;font-size:12px;padding:0}.to-gantt[data-v-3a5842a4]:hover{background:var(--active-soft);color:var(--active);border-color:var(--active)}.issue-badge[data-v-3a5842a4]{font:var(--text-micro);padding:1px 7px;border-radius:var(--radius-sm);font-weight:600}.issue-severe[data-v-3a5842a4]{background:var(--crit);color:var(--on-solid)}.issue-warn[data-v-3a5842a4]{background:var(--near-tint);color:var(--near)}.cal-wrap[data-v-8f58edce]{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.cal-body[data-v-8f58edce]{display:grid;grid-template-columns:300px 1fr;gap:0}.empty-state[data-v-8f58edce]{font:var(--text-small);color:var(--gray-700);padding:var(--space-4)}.cal-list[data-v-8f58edce]{border-right:1px solid var(--gray-300);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);align-content:start}.cal-card[data-v-8f58edce]{text-align:left;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer}.cal-card[data-v-8f58edce]:hover{background:var(--gray-150)}.cal-card.active[data-v-8f58edce]{background:var(--active-soft);border-color:var(--active)}.cal-card-top[data-v-8f58edce]{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}.cal-name[data-v-8f58edce]{font:var(--text-body);font-weight:600;color:var(--ink)}.cal-card-meta[data-v-8f58edce]{display:flex;align-items:center;gap:var(--space-2);margin-top:3px;flex-wrap:wrap}.cal-meta-item[data-v-8f58edce]{font:var(--text-micro);color:var(--gray-700);font-family:var(--font-mono)}.cal-unused[data-v-8f58edce]{color:var(--near);font-style:italic}.cal-badge[data-v-8f58edce]{font:var(--text-micro);padding:0 6px;border-radius:var(--radius-sm);background:var(--gray-150);color:var(--gray-700);border:1px solid var(--gray-300)}.cal-default[data-v-8f58edce]{background:var(--active-soft);color:var(--active);border-color:var(--active)}.cal-detail[data-v-8f58edce]{padding:var(--space-4);min-width:0;overflow:hidden}.cal-nav[data-v-8f58edce]{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.cal-nav-btn[data-v-8f58edce]{width:30px;height:30px;border:1px solid var(--gray-300);background:var(--white);border-radius:var(--radius-sm);cursor:pointer;font-size:17px;line-height:1;color:var(--ink)}.cal-nav-btn[data-v-8f58edce]:hover{background:var(--gray-100)}.cal-month-label[data-v-8f58edce]{font:var(--text-h3);color:var(--ink);min-width:150px;text-align:center}.cal-jump[data-v-8f58edce]{font:var(--text-micro);border:1px solid var(--gray-300);background:var(--gray-100);padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--gray-700)}.cal-jump[data-v-8f58edce]:hover{background:var(--gray-150)}.cal-pattern-sum[data-v-8f58edce]{font:var(--text-small);color:var(--gray-700);margin-left:auto}.cal-grid[data-v-8f58edce]{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;max-width:640px}.cal-head-cell[data-v-8f58edce]{font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);text-align:center;padding:2px 0}.cal-cell[data-v-8f58edce]{position:relative;min-height:52px;border-radius:var(--radius-sm);border:1px solid var(--gray-300);padding:4px 6px;display:flex;flex-direction:column;justify-content:space-between}.cal-day-num[data-v-8f58edce]{font:var(--text-small);font-family:var(--font-mono);color:var(--ink)}.cal-day-hrs[data-v-8f58edce]{font:var(--text-micro);font-family:var(--font-mono);color:var(--gray-700);align-self:flex-end}.cal-work[data-v-8f58edce]{background:var(--white)}.cal-nonwork[data-v-8f58edce]{background:var(--gray-150)}.cal-nonwork .cal-day-num[data-v-8f58edce]{color:var(--gray-500)}.cal-holiday[data-v-8f58edce]{background:var(--near-tint);border-color:var(--near)}.cal-holiday .cal-day-num[data-v-8f58edce]{color:var(--near);font-weight:700}.cal-workexc[data-v-8f58edce]{background:var(--crit);border-color:var(--crit-deep)}.cal-workexc .cal-day-num[data-v-8f58edce],.cal-workexc .cal-day-hrs[data-v-8f58edce]{color:var(--on-solid);font-weight:700}.cal-flag[data-v-8f58edce]{position:absolute;top:2px;right:5px;color:var(--on-solid);font-weight:800}.cal-other[data-v-8f58edce]{opacity:.35}.cal-datadate[data-v-8f58edce]{outline:2px solid var(--active);outline-offset:-2px}.cal-legend[data-v-8f58edce]{display:flex;gap:var(--space-4);flex-wrap:wrap;font:var(--text-micro);color:var(--gray-700);margin:var(--space-3) 0 var(--space-5)}.cal-legend em[data-v-8f58edce]{font-style:italic;color:var(--near)}.lg[data-v-8f58edce]{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid var(--gray-300);vertical-align:-2px;margin-right:4px}.lg-work[data-v-8f58edce]{background:var(--white)}.lg-nonwork[data-v-8f58edce]{background:var(--gray-150)}.lg-holiday[data-v-8f58edce]{background:var(--near-tint);border-color:var(--near)}.lg-workexc[data-v-8f58edce]{background:var(--crit);border-color:var(--crit-deep)}.cal-main[data-v-8f58edce]{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:var(--space-4);align-items:start}.cal-grid-col[data-v-8f58edce]{min-width:0}.cal-year[data-v-8f58edce]{display:flex;align-items:center;gap:3px;margin-top:var(--space-3);flex-wrap:wrap}.cal-year-label[data-v-8f58edce]{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--ink-3);margin-right:var(--space-2)}.cal-year-month[data-v-8f58edce]{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:34px;background:none;border:none;border-radius:var(--radius-sm);padding:4px 2px;cursor:pointer}.cal-year-month[data-v-8f58edce]:hover,.cal-year-month.active[data-v-8f58edce]{background:var(--chip)}.cal-year-month i[data-v-8f58edce]{display:block;width:100%;height:4px;border-radius:2px}.cal-year-month span[data-v-8f58edce]{font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}.cal-year-month.active span[data-v-8f58edce]{color:var(--ink);font-weight:600}.ym-none[data-v-8f58edce]{background:var(--line)}.ym-holiday[data-v-8f58edce]{background:var(--near)}.ym-work[data-v-8f58edce]{background:var(--crit)}.cal-year-sum[data-v-8f58edce]{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}.cal-exc-panel[data-v-8f58edce]{display:flex;flex-direction:column;gap:var(--space-3)}.cal-callout[data-v-8f58edce]{border:1px solid var(--crit);background:var(--crit-soft);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.cal-callout-head[data-v-8f58edce],.cal-panel-head[data-v-8f58edce]{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--crit);margin-bottom:4px}.cal-panel-head[data-v-8f58edce]{color:var(--ink-3)}.cal-callout-note[data-v-8f58edce]{font:var(--text-micro);color:var(--crit);font-style:italic;margin-top:4px}.cal-holidays[data-v-8f58edce]{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.cal-exc-row[data-v-8f58edce]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);width:100%;background:none;border:none;border-radius:4px;padding:3px 4px;cursor:pointer;text-align:left}.cal-exc-row[data-v-8f58edce]:hover{background:var(--panel)}.cal-exc-row b[data-v-8f58edce]{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink)}.cal-exc-row span[data-v-8f58edce]{font-family:var(--font-mono);font-size:10px;color:var(--ink-3)}.cal-exc-work b[data-v-8f58edce]{color:var(--crit)}.cal-panel-empty[data-v-8f58edce]{font:var(--text-small);color:var(--ink-3)}.cal-activities[data-v-8f58edce]{margin-top:var(--space-5);min-width:0}.cal-act-scroll[data-v-8f58edce]{overflow-x:auto}.cal-act-head[data-v-8f58edce]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.cal-act-head h3[data-v-8f58edce]{font:var(--text-h3);color:var(--ink);margin:0}.cal-act-head h3 em[data-v-8f58edce]{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.act-table[data-v-8f58edce]{width:100%;min-width:880px;border-collapse:collapse;font:var(--text-small)}.act-table th[data-v-8f58edce]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--ink-3);background:var(--panel-2);border-bottom:2px solid var(--line);padding:var(--space-2) var(--space-3)}.act-table th.num[data-v-8f58edce]{text-align:right}.act-table td[data-v-8f58edce]{padding:5px var(--space-3);border-bottom:1px solid var(--line-soft)}.act-table .jump-row[data-v-8f58edce]{cursor:pointer}.act-table .jump-row:hover td[data-v-8f58edce]{background:var(--accent-soft)}.act-table .code[data-v-8f58edce]{font-family:var(--font-mono);font-weight:600;color:var(--accent);white-space:nowrap}.act-table .name-cell[data-v-8f58edce]{color:var(--ink-2);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act-table .wbs-cell[data-v-8f58edce]{font-family:var(--font-mono);font:var(--text-micro);color:var(--ink-3);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-exc-span .exc-hit[data-v-8f58edce]{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--crit)}.cal-dash[data-v-8f58edce]{color:var(--ink-3)}@media (max-width: 1000px){.cal-main[data-v-8f58edce]{grid-template-columns:1fr}}.cal-exceptions h3[data-v-8f58edce]{font:var(--text-h3);color:var(--ink);margin:0 0 var(--space-2)}.cal-exceptions h3 em[data-v-8f58edce]{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.exc-table[data-v-8f58edce]{width:100%;border-collapse:collapse;font:var(--text-small)}.exc-table th[data-v-8f58edce]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);background:var(--gray-100);border-bottom:2px solid var(--gray-300);padding:var(--space-2) var(--space-3)}.exc-table td[data-v-8f58edce]{padding:5px var(--space-3);border-bottom:1px solid var(--gray-150)}.exc-unusual td[data-v-8f58edce]{background:var(--crit-tint)}.mono[data-v-8f58edce]{font-family:var(--font-mono)}.num-cell[data-v-8f58edce]{white-space:nowrap}.issue-badge[data-v-8f58edce]{font:var(--text-micro);padding:1px 7px;border-radius:var(--radius-sm);font-weight:600}.issue-severe[data-v-8f58edce]{background:var(--crit);color:var(--on-solid)}.issue-warn[data-v-8f58edce]{background:var(--near-tint);color:var(--near)}@media (max-width: 900px){.cal-body[data-v-8f58edce]{grid-template-columns:1fr}.cal-list[data-v-8f58edce]{border-right:none;border-bottom:1px solid var(--gray-300)}}.ti-wrap[data-v-3b935c6b]{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.empty-state[data-v-3b935c6b]{font:var(--text-small);color:var(--gray-700);padding:var(--space-4)}.ti-body[data-v-3b935c6b]{display:grid;grid-template-columns:220px 1fr}.ti-list[data-v-3b935c6b]{border-right:1px solid var(--gray-300);display:flex;flex-direction:column;padding:var(--space-2);gap:1px;align-content:start}.ti-item[data-v-3b935c6b]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:6px var(--space-3);cursor:pointer}.ti-item[data-v-3b935c6b]:hover{background:var(--gray-100)}.ti-item.active[data-v-3b935c6b]{background:var(--active-soft)}.ti-name[data-v-3b935c6b]{font-family:var(--font-mono);font-weight:600;font-size:13px;color:var(--ink)}.ti-item.active .ti-name[data-v-3b935c6b]{color:var(--active)}.ti-count[data-v-3b935c6b]{font:var(--text-micro);font-family:var(--font-mono);color:var(--gray-700)}.ti-detail[data-v-3b935c6b]{min-width:0;display:flex;flex-direction:column}.ti-toolbar[data-v-3b935c6b]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--gray-300);flex-wrap:wrap}.ti-filter[data-v-3b935c6b]{flex:1;min-width:180px;max-width:360px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);padding:6px 10px;background:var(--white)}.ti-meta[data-v-3b935c6b]{font:var(--text-small);color:var(--gray-700)}.ti-clear[data-v-3b935c6b]{font:var(--text-micro);border:1px solid var(--gray-300);background:var(--gray-100);padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--gray-700)}.ti-truncated[data-v-3b935c6b]{font:var(--text-small);color:var(--near);background:var(--near-tint);padding:var(--space-2) var(--space-3)}.ti-scroll[data-v-3b935c6b]{overflow-x:auto;max-height:calc(100dvh - 350px);overflow-y:auto}.ti-table[data-v-3b935c6b]{border-collapse:collapse;font-size:13px;min-width:100%}.ti-table th[data-v-3b935c6b]{position:sticky;top:0;background:var(--gray-100);font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);text-align:left;padding:6px 10px;border-bottom:2px solid var(--gray-300);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.ti-table th[data-v-3b935c6b]:hover{color:var(--ink)}.ti-table th.sorted[data-v-3b935c6b]{color:var(--active)}.ti-table td[data-v-3b935c6b]{font-family:var(--font-mono);padding:4px 10px;border-bottom:1px solid var(--gray-150);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}.ti-sticky[data-v-3b935c6b]{position:sticky;left:0;background:var(--panel);font-weight:700;z-index:1;box-shadow:1px 0 0 var(--line)}th.ti-sticky[data-v-3b935c6b]{background:var(--panel-2);z-index:4}.ti-row:hover .ti-sticky[data-v-3b935c6b]{background:var(--accent-soft)}.ti-row[data-v-3b935c6b]{cursor:pointer}.ti-row:hover td[data-v-3b935c6b]{background:var(--accent-soft)}.ti-pager[data-v-3b935c6b]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);font:var(--text-small);color:var(--gray-700)}.ti-pager button[data-v-3b935c6b]{border:1px solid var(--gray-300);background:var(--gray-100);padding:4px 12px;border-radius:var(--radius-sm);cursor:pointer}.ti-pager button[data-v-3b935c6b]:disabled{opacity:.4;cursor:default}.ti-record[data-v-3b935c6b]{width:100%;border-collapse:collapse;font-size:13px}.ti-record th[data-v-3b935c6b]{text-align:left;font-family:var(--font-mono);font-weight:600;color:var(--gray-700);padding:5px 8px 5px 0;vertical-align:top;white-space:nowrap;border-bottom:1px solid var(--gray-150)}.ti-record td[data-v-3b935c6b]{font-family:var(--font-mono);color:var(--ink);padding:5px 0;border-bottom:1px solid var(--gray-150);word-break:break-word}@media (max-width: 900px){.ti-body[data-v-3b935c6b]{grid-template-columns:1fr}.ti-list[data-v-3b935c6b]{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--gray-300)}}.progress-wrap[data-v-a5f323a9]{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.progress-section[data-v-a5f323a9]{border-bottom:1px solid var(--gray-300)}.progress-section[data-v-a5f323a9]:last-child{border-bottom:none}.section-head-static[data-v-a5f323a9]{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--gray-100);flex-wrap:wrap}.section-title[data-v-a5f323a9]{font-weight:600;color:var(--ink);white-space:nowrap}.section-title em[data-v-a5f323a9]{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.section-hint[data-v-a5f323a9]{font:var(--text-small);color:var(--gray-700);flex:1}.section-body[data-v-a5f323a9]{padding:var(--space-4)}.section-note[data-v-a5f323a9]{font:var(--text-small);color:var(--gray-700);margin:0 0 var(--space-4);font-style:italic}.empty-state[data-v-a5f323a9]{font:var(--text-small);color:var(--ok)}.empty-state.warn[data-v-a5f323a9]{color:var(--near)}.week-toggle[data-v-a5f323a9]{display:flex;gap:2px}.week-toggle button[data-v-a5f323a9]{font:var(--text-small);padding:4px 10px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer}.week-toggle button[data-v-a5f323a9]:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.week-toggle button[data-v-a5f323a9]:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none}.week-toggle button.active[data-v-a5f323a9]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:700}.progress-table[data-v-a5f323a9]{width:100%;border-collapse:collapse;font:var(--text-small)}.progress-table th[data-v-a5f323a9]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);background:var(--gray-100);border-bottom:2px solid var(--gray-300);padding:var(--space-2) var(--space-3)}.progress-table td[data-v-a5f323a9]{padding:6px var(--space-3);border-bottom:1px solid var(--gray-150)}.jump-row[data-v-a5f323a9]{cursor:pointer}.jump-row:hover td[data-v-a5f323a9]{background:var(--accent-soft)}.jump-row.critical td[data-v-a5f323a9]{border-left:3px solid var(--crit)}.code[data-v-a5f323a9]{font-family:var(--font-mono);font-weight:600;color:var(--accent);white-space:nowrap}.name-cell[data-v-a5f323a9]{color:var(--ink-soft)}.num-cell[data-v-a5f323a9]{font-family:var(--font-mono);text-align:right;white-space:nowrap}.lag-neg[data-v-a5f323a9]{color:var(--crit);font-weight:700}.lag-warn[data-v-a5f323a9]{color:var(--near);font-weight:700}.status-chip[data-v-a5f323a9]{font:var(--text-micro);padding:1px 8px;border-radius:10px;font-weight:600}.status-achieved[data-v-a5f323a9],.status-on-track[data-v-a5f323a9]{background:var(--ok-tint);color:var(--ok)}.status-watch[data-v-a5f323a9]{background:var(--near-tint);color:var(--near)}.status-at-risk[data-v-a5f323a9]{background:var(--crit-tint);color:var(--crit)}.status-unknown[data-v-a5f323a9]{background:var(--gray-150);color:var(--gray-700)}.scurve-svg[data-v-a5f323a9]{width:100%;height:auto;max-height:320px}.grid-line[data-v-a5f323a9]{stroke:var(--gray-150);stroke-width:1}.axis-label[data-v-a5f323a9]{font:var(--text-micro);fill:var(--gray-700);font-family:var(--font-mono)}.data-date-line[data-v-a5f323a9]{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3}.data-date-label[data-v-a5f323a9]{fill:var(--ink);font-weight:600}.curve-planned[data-v-a5f323a9]{fill:none;stroke:var(--ink-3);stroke-width:2}.curve-actual[data-v-a5f323a9]{fill:none;stroke:var(--crit);stroke-width:3}.curve-gap[data-v-a5f323a9]{fill:var(--crit-soft);stroke:none}.series-label[data-v-a5f323a9]{font-family:var(--font-mono);font-size:11px;font-weight:600}.series-planned[data-v-a5f323a9]{fill:var(--ink-3)}.series-actual[data-v-a5f323a9]{fill:var(--crit)}.scurve-legend[data-v-a5f323a9]{display:flex;gap:var(--space-5);margin-top:var(--space-2)}.legend-item[data-v-a5f323a9]{display:flex;align-items:center;gap:5px;font:var(--text-small);color:var(--gray-700)}.swatch[data-v-a5f323a9]{width:14px;height:3px;display:inline-block}.swatch-planned[data-v-a5f323a9]{background:var(--active)}.swatch-actual[data-v-a5f323a9]{background:var(--ok)}.compare-wrap[data-v-6676e186]{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.scorecard[data-v-6676e186]{display:flex;flex-wrap:wrap;gap:1px;background:var(--gray-300);border-bottom:1px solid var(--gray-300)}.score-item[data-v-6676e186]{flex:1;min-width:110px;background:var(--white);padding:var(--space-3);text-align:center}.score-item.pass .score-count[data-v-6676e186]{color:var(--ok)}.score-item.fail .score-count[data-v-6676e186]{color:var(--crit)}.score-count[data-v-6676e186]{font-family:var(--font-mono);font-size:23px;font-weight:700}.score-label[data-v-6676e186]{font:var(--text-micro);color:var(--gray-700);text-transform:uppercase;letter-spacing:.03em}.stability-note[data-v-6676e186]{font:var(--text-small);color:var(--gray-700);padding:var(--space-2) var(--space-4);margin:0;background:var(--gray-100);border-bottom:1px solid var(--gray-300)}.compare-section[data-v-6676e186]{border-bottom:1px solid var(--gray-300)}.compare-section[data-v-6676e186]:last-child{border-bottom:none}.section-title[data-v-6676e186]{font:600 15px/1.4 var(--font-ui)}.section-head[data-v-6676e186]{width:100%;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--gray-100);border:none;cursor:pointer;text-align:left}.section-head[data-v-6676e186]:hover{background:var(--gray-150)}.section-title[data-v-6676e186]{font-weight:600;color:var(--ink);white-space:nowrap}.section-title em[data-v-6676e186]{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.section-hint[data-v-6676e186]{font:var(--text-small);color:var(--gray-700);flex:1}.chevron[data-v-6676e186]{transition:transform .15s;color:var(--gray-500);font-size:19px}.chevron.open[data-v-6676e186]{transform:rotate(90deg)}.section-body[data-v-6676e186]{padding:var(--space-4)}.section-body h4[data-v-6676e186]{font:var(--text-small);font-weight:700;color:var(--ink);margin:var(--space-4) 0 var(--space-2)}.section-body h4[data-v-6676e186]:first-child{margin-top:0}.empty-state[data-v-6676e186]{font:var(--text-small);color:var(--ok)}.compare-table[data-v-6676e186]{width:100%;border-collapse:collapse;font:var(--text-small)}.compare-table th[data-v-6676e186]{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);background:var(--gray-100);border-bottom:2px solid var(--gray-300);padding:var(--space-2) var(--space-3)}.compare-table td[data-v-6676e186]{padding:6px var(--space-3);border-bottom:1px solid var(--gray-150)}.jump-row[data-v-6676e186]{cursor:pointer}.jump-row:hover td[data-v-6676e186]{background:var(--accent-soft)}.code[data-v-6676e186]{font-family:var(--font-mono);font-weight:600;color:var(--accent);white-space:nowrap}.name-cell[data-v-6676e186]{color:var(--ink-soft)}.num-cell[data-v-6676e186]{font-family:var(--font-mono);text-align:right;white-space:nowrap}.cmp-verdict[data-v-6676e186]{padding:var(--space-4);border-bottom:1px solid var(--gray-300)}.cmp-verdict.v-slip[data-v-6676e186]{background:var(--crit-tint)}.cmp-verdict.v-gain[data-v-6676e186]{background:var(--ok-tint)}.cmp-verdict.v-hold[data-v-6676e186]{background:var(--gray-100)}.verdict-main[data-v-6676e186]{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.verdict-label[data-v-6676e186]{font:var(--text-micro);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-700)}.verdict-dates[data-v-6676e186]{font-family:var(--font-mono);font-size:19px;font-weight:600;color:var(--ink)}.verdict-arrow[data-v-6676e186]{color:var(--gray-500)}.verdict-delta[data-v-6676e186]{font-family:var(--font-mono);font-size:27px;font-weight:800}.v-slip .verdict-delta[data-v-6676e186],.v-slip .verdict-word[data-v-6676e186]{color:var(--crit)}.v-gain .verdict-delta[data-v-6676e186],.v-gain .verdict-word[data-v-6676e186]{color:var(--ok)}.v-hold .verdict-delta[data-v-6676e186],.v-hold .verdict-word[data-v-6676e186]{color:var(--gray-700)}.verdict-word[data-v-6676e186]{font-weight:700}.verdict-sub[data-v-6676e186]{font:var(--text-small);color:var(--gray-700);margin-top:2px}.dumbbell-chart[data-v-6676e186]{display:flex;flex-direction:column;gap:2px}.db-row[data-v-6676e186]{display:grid;grid-template-columns:minmax(180px,320px) 1fr 52px;align-items:center;gap:var(--space-3);padding:3px var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.db-row[data-v-6676e186]:hover{background:var(--accent-soft)}.db-label[data-v-6676e186]{font:var(--text-small);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-track[data-v-6676e186]{position:relative;height:18px;background:linear-gradient(to bottom,transparent 8px,var(--gray-150) 8px,var(--gray-150) 10px,transparent 10px)}.db-join[data-v-6676e186]{position:absolute;top:7px;height:4px;border-radius:2px}.db-join.db-slip[data-v-6676e186]{background:var(--crit);opacity:.45}.db-join.db-gain[data-v-6676e186]{background:var(--ok);opacity:.45}.db-dot[data-v-6676e186]{position:absolute;top:4px;width:10px;height:10px;border-radius:50%;transform:translate(-5px);box-sizing:border-box}.db-base[data-v-6676e186]{background:var(--white);border:2px solid var(--gray-500)}.db-cur[data-v-6676e186]{border:2px solid transparent}.db-cur.db-slip[data-v-6676e186]{background:var(--crit)}.db-cur.db-gain[data-v-6676e186]{background:var(--ok)}.db-cur.db-hold[data-v-6676e186]{background:var(--gray-500)}.db-delta[data-v-6676e186]{font-family:var(--font-mono);font-size:13px;text-align:right;white-space:nowrap}.db-zero[data-v-6676e186]{color:var(--gray-500)}.db-axis[data-v-6676e186]{display:flex;justify-content:space-between;font:var(--text-micro);color:var(--gray-700);font-family:var(--font-mono);margin-top:var(--space-2);padding:0 var(--space-2)}.db-axis-legend[data-v-6676e186]{font-family:var(--font-ui)}.db-inline[data-v-6676e186]{position:static;display:inline-block;transform:none;vertical-align:-1px}.tornado[data-v-6676e186]{display:flex;flex-direction:column;gap:1px}.tor-row[data-v-6676e186]{display:grid;grid-template-columns:minmax(180px,320px) 1fr 52px;align-items:center;gap:var(--space-3);padding:2px var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.tor-row[data-v-6676e186]:hover{background:var(--accent-soft)}.tor-label[data-v-6676e186]{font:var(--text-small);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tor-track[data-v-6676e186]{display:flex;height:14px}.tor-half[data-v-6676e186]{flex:1;position:relative}.tor-left[data-v-6676e186]{border-right:2px solid var(--gray-500)}.tor-left .tor-bar[data-v-6676e186]{position:absolute;right:0;top:2px;bottom:2px;border-radius:3px 0 0 3px}.tor-right .tor-bar[data-v-6676e186]{position:absolute;left:0;top:2px;bottom:2px;border-radius:0 3px 3px 0}.tor-bar.tor-slip[data-v-6676e186]{background:var(--crit)}.tor-bar.tor-gain[data-v-6676e186]{background:var(--ok)}.tor-delta[data-v-6676e186]{font-family:var(--font-mono);font-size:13px;text-align:right;white-space:nowrap}.tor-note[data-v-6676e186]{font:var(--text-micro);color:var(--gray-700);margin-top:var(--space-2)}.cmp-side-by-side[data-v-6676e186]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--line)}.cmp-side-by-side>.compare-section[data-v-6676e186]{background:var(--panel);border-bottom:none}@media (max-width: 1200px){.cmp-side-by-side[data-v-6676e186]{grid-template-columns:1fr}}.lag-neg[data-v-6676e186]{color:var(--crit);font-weight:700}.lag-pos[data-v-6676e186]{color:var(--ok);font-weight:700}.links-cell[data-v-6676e186]{font:var(--text-micro);font-family:var(--font-mono)}.links-cell.added[data-v-6676e186]{color:var(--ok)}.links-cell.removed[data-v-6676e186]{color:var(--crit)}:root{--bg: #F1F3F5;--panel: #FFFFFF;--panel-2: #F7F8FA;--chip: #EDF0F3;--line: #DEE2E7;--line-soft: #EBEEF1;--weekend: #F2F4F6;--ink: #14181D;--ink-2: #454E58;--ink-3: #616B76;--accent: #2456E6;--accent-soft: #E8EDFD;--crit: #B4291B;--crit-soft: #FBE7E3;--near: #8A5F00;--near-soft: #FAF1DA;--ok: #2F6B4A;--ok-soft: #E5EFE8;--ms: #6A3E9E;--on-solid: #FFFFFF;--nav: #171C23;--nav-2: #1F262F;--nav-line: #2B333D;--nav-ink: #FFFFFF;--nav-ink-2: #AAB4C0;--nav-ink-3: #8C96A2;--crit-bright: #FF8272;--near-bright: #E3B341;--ok-bright: #7FC49A;--crit-deep: #7A1A10;--float-tail: #CBD2D9;--bar-normal-fill: rgba(36,86,230,.16);--bar-progress: rgba(20,24,29,.3);--white: var(--panel);--ink-soft: var(--ink-2);--gray-100: var(--panel-2);--gray-150: var(--chip);--gray-300: var(--line);--gray-500: var(--ink-3);--gray-700: var(--ink-2);--gray-900: var(--ink);--crit-tint: var(--crit-soft);--near-tint: var(--near-soft);--ok-tint: var(--ok-soft);--milestone: var(--ms);--active: var(--accent);--active-soft: var(--accent-soft);--font-ui: "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", "Fira Code", ui-monospace, monospace;--text-h1: 700 23px/1.3 var(--font-ui);--text-h2: 700 17px/1.3 var(--font-ui);--text-h3: 700 15px/1.35 var(--font-ui);--text-body: 400 14px/1.5 var(--font-ui);--text-small: 500 13px/1.4 var(--font-ui);--text-micro: 600 11px/1.3 var(--font-ui);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px}[data-theme=dark]{--bg: #0C0F13;--panel: #14181E;--panel-2: #191F26;--chip: #222A33;--line: #262E38;--line-soft: #1D242B;--weekend: #10151A;--ink: #E9EDF2;--ink-2: #AEB8C4;--ink-3: #8B96A2;--accent: #7BA2FF;--accent-soft: #1A2740;--crit: #FF8272;--crit-soft: #331A19;--near: #E3B341;--near-soft: #2E2413;--ok: #7FC49A;--ok-soft: #16261D;--ms: #B98BFF;--on-solid: #12161B;--nav: #080B0E;--nav-2: #12171D;--nav-line: #1E252D;--nav-ink: #E9EDF2;--nav-ink-2: #A6B0BC;--nav-ink-3: #8A939E;--crit-bright: #FF8272;--near-bright: #E3B341;--ok-bright: #7FC49A;--crit-deep: #FFB3A8;--float-tail: #39424D;--bar-normal-fill: rgba(123,162,255,.2);--bar-progress: rgba(233,237,242,.28)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.code,.g-act-code,.rel-code,.detail-code,.float-cell,.float-crit,.float-near,.num-cell{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.data-table thead th{position:sticky;top:0;z-index:3}.table-empty-row td{text-align:center;padding:var(--space-6) var(--space-3)}.table-empty{font:var(--text-small);color:var(--gray-700)}.num-cell{text-align:right}th.num{text-align:right!important}.upload-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-6)}.upload-card{text-align:center;max-width:480px}.upload-card .logo{margin-bottom:var(--space-4)}.logo-icon{stroke:var(--accent)}.upload-card h1{font:var(--text-h1);color:var(--ink);margin-bottom:var(--space-1)}.upload-card .subtitle{font:var(--text-body);color:var(--gray-700);font-weight:600;margin-bottom:2px}.reopen-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);text-align:left}.reopen-info{display:flex;flex-direction:column;gap:2px;min-width:0}.reopen-info strong{font:var(--text-body);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reopen-info span{font:var(--text-micro);color:var(--gray-700);text-transform:uppercase;letter-spacing:.04em}.reopen-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.btn-forget{border:none;background:none;color:var(--gray-500);font-size:19px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm)}.btn-forget:hover{background:var(--white);color:var(--crit)}.compare-entry{max-width:1100px;margin:var(--space-6) auto var(--space-8);text-align:left}.compare-entry__head{margin-bottom:var(--space-5)}.compare-entry h2{font:var(--text-h2);color:var(--ink);margin-bottom:var(--space-2)}.compare-entry .subtitle{color:var(--gray-700);max-width:68ch;margin:0}.compare-entry__cols{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:var(--space-5);align-items:start}.compare-upload__title{font:var(--text-h3);color:var(--ink);margin:0 0 var(--space-2)}.compare-upload__note{font:var(--text-micro);color:var(--gray-700);margin-top:var(--space-2)}.compare-entry .drop-zone{padding:var(--space-6) var(--space-4)}@media (max-width: 900px){.compare-entry__cols{grid-template-columns:1fr}}.drop-zone{border:1px solid var(--gray-300);border-radius:var(--radius-md);padding:48px var(--space-6);cursor:pointer;transition:all .2s;background:var(--gray-100)}.drop-zone:hover,.drop-zone.active{border-color:var(--accent);background:var(--accent-soft)}.drop-zone input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.drop-zone:focus-within{border-color:var(--accent)}.drop-zone label{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);cursor:pointer;color:var(--gray-700);font:var(--text-body)}.drop-zone label svg{color:var(--accent)}.drop-zone .loading{color:var(--accent);font-weight:600}.hint{font:var(--text-small);color:var(--gray-500);margin-top:var(--space-4)}.gh-link{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-4);font:var(--text-small);color:var(--gray-700);text-decoration:none}.version-tag{display:inline-block;margin-left:var(--space-3);font:var(--text-micro);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em}.feature-strip{font:var(--text-micro);color:var(--gray-500);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 var(--space-6)}.sample-link{display:block;margin:var(--space-4) auto 0;border:none;background:none;cursor:pointer;font:var(--text-body);color:var(--gray-700)}.sample-link strong{color:var(--accent)}.sample-link:hover strong{text-decoration:underline}.sample-sub{font:var(--text-micro);color:var(--gray-500);margin-top:4px}.upload-error{margin-top:var(--space-3);font:var(--text-small);color:var(--crit);background:var(--crit-tint);border:1px solid var(--crit);border-radius:var(--radius-sm);padding:8px 12px}.tab-report-btn{margin-left:var(--space-2);margin-bottom:4px;padding:5px 12px;font:var(--text-small);font-weight:700;color:var(--on-solid);background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.tab-report-btn:hover{opacity:.92}.tab-report-btn:disabled{opacity:.6;cursor:default}.gh-link:hover{color:var(--accent)}.dashboard{max-width:1200px;margin:0 auto;padding:var(--space-6)}.dashboard.header-collapsed{padding-top:10px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:2px solid var(--ink)}.header h1{font:var(--text-h1);color:var(--ink)}.header-meta{font:var(--text-small);color:var(--gray-700)}.btn-outline{padding:6px 16px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font:var(--text-small);color:var(--gray-700);transition:background .15s,border-color .15s}.btn-outline:hover{background:var(--gray-100);border-color:var(--gray-500)}.header-right{display:flex;gap:var(--space-2);align-items:center}.parse-warnings{margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:6px}.parse-warning{display:flex;align-items:baseline;gap:var(--space-3);background:var(--near-tint);border:1px solid var(--near);border-radius:var(--radius-sm);padding:8px 12px;font:var(--text-small);color:var(--ink-soft)}.parse-warning span{flex:1}.warning-dismiss{border:none;background:none;color:var(--near);font-size:17px;line-height:1;cursor:pointer;padding:0 4px}.metrics-strip{display:flex;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-md);margin-bottom:var(--space-6);overflow:hidden}.metric{flex:1;min-width:100px;padding:var(--space-3) var(--space-4);text-align:center;border-right:1px solid var(--gray-300)}.metric:last-child{border-right:none}.metric strong{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:23px;font-weight:700;color:var(--ink)}.metric strong.is-crit{color:var(--crit)}.metric strong.is-ok{color:var(--ok)}.metric span{font:var(--text-micro);color:var(--gray-700);text-transform:uppercase;letter-spacing:.04em}.tabs{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-6);border-bottom:1px solid var(--gray-300)}.brand{display:flex;align-items:center;gap:7px;margin-right:var(--space-4);text-decoration:none;padding-bottom:2px}.brand-icon{stroke:var(--accent);flex-shrink:0}.brand-name{font:var(--text-small);font-weight:700;color:var(--ink);letter-spacing:.01em;white-space:nowrap}.brand:hover .brand-name{color:var(--accent)}.theme-select{margin-left:auto;margin-bottom:4px;padding:5px 8px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--text-small);color:var(--gray-700);background:var(--white);cursor:pointer}.header-collapsed .tabs{margin-bottom:var(--space-3)}.tabs button{padding:var(--space-2) var(--space-4);border:none;background:none;cursor:pointer;font:var(--text-small);color:var(--gray-700);border-bottom:3px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .2s}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}.tabs .btn-collapse{margin-left:var(--space-2);padding:6px 14px;font:var(--text-small);color:var(--gray-500);border:1px solid var(--gray-300);border-radius:var(--radius-sm);margin-bottom:4px;background:none;cursor:pointer}.tabs .btn-collapse:hover{color:var(--gray-700);background:var(--gray-100)}.section{margin-bottom:var(--space-8)}.section-full{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;padding:0 var(--space-6);box-sizing:border-box}.insight-card{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.insight-card h3{font:var(--text-h2);color:var(--ink);margin-bottom:2px}.insight-card .subtitle{font:var(--text-small);color:var(--gray-700);margin-bottom:var(--space-3)}.table-controls{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3);flex-wrap:wrap}.search-input{padding:6px 12px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--text-small);width:220px}.filter-select{padding:6px 8px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:var(--text-small);background:var(--white)}.filter-toggle{font:var(--text-small);color:var(--gray-700);display:flex;align-items:center;gap:var(--space-1);cursor:pointer}.filter-toggle input{margin:0}.btn-export-view{margin-left:auto}.table-wrap{overflow-x:auto;border:1px solid var(--gray-300);border-radius:var(--radius-md);max-height:calc(100dvh - 190px)}.data-table{width:100%;border-collapse:collapse;font:var(--text-body)}.data-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--gray-300);font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);letter-spacing:.04em;white-space:nowrap;background:var(--gray-100)}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:var(--gray-150)}.data-table td{padding:6px var(--space-3);border-bottom:1px solid var(--gray-150);vertical-align:middle;white-space:nowrap}.data-table tbody tr:hover td{background:var(--gray-100)}.data-table tbody tr.critical td{border-left:3px solid var(--crit)}.data-table tbody tr.negative-float td{background:var(--crit-tint)}.data-table tbody tr.milestone td{border-left:3px solid var(--milestone)}.data-table .code{color:var(--gray-700)}.data-table .name-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis}.data-table .name-col{min-width:200px}.act-name{font-weight:500}.annotation-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gray-500);margin-right:5px;vertical-align:middle}.annotation-dot.sev-query{background:var(--active)}.annotation-dot.sev-risk{background:var(--near)}.annotation-dot.sev-logic{background:var(--crit)}.annotation-dot.sev-resolved{background:var(--ok)}.badge-milestone{display:inline-block;padding:0 5px;border-radius:var(--radius-sm);font:var(--text-micro);background:color-mix(in srgb,var(--milestone) 12%,white);color:var(--milestone);margin-left:var(--space-1);vertical-align:middle}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-sm);font:var(--text-small)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-badge.TK_Complete{background:var(--ok-tint);color:var(--ok)}.status-badge.TK_Complete .status-dot{background:var(--ok)}.status-badge.TK_Active{background:var(--active-soft);color:var(--active)}.status-badge.TK_Active .status-dot{background:var(--accent)}.status-badge.TK_NotStart{background:var(--gray-150);color:var(--gray-700)}.status-badge.TK_NotStart .status-dot{background:var(--gray-500)}.prog-bar{display:inline-block;width:40px;height:4px;background:var(--gray-300);border-radius:2px;overflow:hidden;vertical-align:middle;margin-right:var(--space-1)}.prog-fill{height:100%;background:var(--accent);border-radius:2px}.prog-text{font:var(--text-small);color:var(--gray-700)}.float-crit{color:var(--crit);font-weight:700}.float-near{color:var(--near);font-weight:600}.float-neg{color:var(--on-solid);background:var(--crit);font-weight:700;padding:1px 6px;border-radius:var(--radius-sm)}.rel-row td{background:var(--gray-100)!important;padding:var(--space-3) var(--space-4)}.rel-wbs-path{font:var(--text-small);color:var(--gray-700);margin-bottom:var(--space-3);font-family:var(--font-mono)}.rel-panel{display:flex;gap:var(--space-8)}.rel-col{flex:1}.rel-col h4{font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);letter-spacing:.04em;margin-bottom:var(--space-2)}.rel-empty{font:var(--text-small);color:var(--gray-500);font-style:italic}.rel-item{font:var(--text-small);padding:2px 0;display:flex;gap:var(--space-2);align-items:center}.rel-code{color:var(--accent);font-weight:600;min-width:60px}.rel-type{color:var(--gray-700);font:var(--text-micro)}.rel-lag{color:var(--gray-500);font:var(--text-micro)}.wbs-head{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--panel-2);border-bottom:2px solid var(--line);font:var(--text-micro);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.wbs-head-name{flex:1}.wbs-head .wbs-m{flex:none;text-align:right}.wbs-head .wbs-m:nth-of-type(1){width:42px}.wbs-head .wbs-m:nth-of-type(2){width:42px}.wbs-head .wbs-date{width:62px}.wbs-prog-head{flex:none;width:100px;text-align:right}.wbs-tree{border:1px solid var(--gray-300);border-radius:var(--radius-md);overflow:hidden}.snap-register{text-align:left;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0}.snap-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.snap-head h3{font:var(--text-h3);color:var(--ink);margin:0}.snap-empty{font:var(--text-small);color:var(--gray-700);margin-top:var(--space-2)}.snap-table{width:100%;table-layout:fixed;border-collapse:collapse;font:var(--text-small);margin-top:var(--space-3)}.snap-table col.c-proj{width:20%}.snap-table col.c-file{width:34%}.snap-table col.c-date{width:15%}.snap-table col.c-acts{width:9%}.snap-table col.c-saved{width:12%}.snap-table col.c-act{width:10%}.snap-table th{text-align:left;font:var(--text-micro);text-transform:uppercase;color:var(--gray-700);border-bottom:2px solid var(--gray-300);padding:var(--space-1) var(--space-2)}.snap-table th.num{text-align:right}.snap-table td{padding:6px var(--space-2);border-bottom:1px solid var(--gray-150)}.snap-table .code{font-family:var(--font-mono);font-weight:600;color:var(--accent);white-space:nowrap}.snap-table .code{overflow:hidden;text-overflow:ellipsis}.snap-file{color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snap-table .num-cell{font-family:var(--font-mono);text-align:right;white-space:nowrap}.snap-other-proj td{opacity:.55}.snap-actions-cell{padding-right:0!important}.snap-actions{display:flex;gap:var(--space-2);justify-content:flex-end;align-items:center}.snap-actions .btn-outline{white-space:nowrap;padding:3px 10px;font:var(--text-micro)}.code-filter-group{position:relative;display:inline-flex}.la-group{gap:4px}.code-filter-src{position:absolute;top:-5px;left:7px;padding:0 3px;font-family:var(--font-mono);font-size:8px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-500);background:var(--white);line-height:1;pointer-events:none;z-index:1;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.dashboard{padding:var(--space-3)}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;padding:var(--space-2) var(--space-3)}.brand-name{display:none}.header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.header-right{flex-wrap:wrap}.metrics-strip{overflow-x:auto;scrollbar-width:none}.metrics-strip::-webkit-scrollbar{display:none}.metric{min-width:84px;padding:var(--space-2) var(--space-3)}.gesture-hint{display:none!important}.section-full{padding:0 var(--space-3)}.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}.app-shell{min-height:100vh}.main{margin-left:var(--sb-w);min-width:0}:root{--sb-w: 236px;--topbar-h: 56px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sb-w);z-index:30;background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;overflow-y:auto}.sb-brand{display:flex;align-items:center;gap:var(--space-2);padding:18px var(--space-4) var(--space-3)}.sb-logo{display:flex;align-items:center;gap:var(--space-2);color:var(--nav-ink);text-decoration:none;font-size:16px;font-weight:700}.sb-logo svg{color:var(--accent);flex:none}.sb-readonly{margin-left:auto;font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--nav-ink-3);border:1px solid var(--nav-line);border-radius:4px;padding:2px 6px;white-space:nowrap}.sb-project{padding:0 var(--space-4) var(--space-3);border-bottom:1px solid var(--nav-line)}.sb-proj-name{font-size:13px;font-weight:600;color:var(--nav-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-proj-meta{font-family:var(--font-mono);font-size:11px;color:var(--nav-ink-2);margin-top:2px}.sb-datadate{display:flex;align-items:center;gap:6px;margin-top:var(--space-2);background:var(--nav-2);border-radius:var(--radius-sm);padding:5px 8px}.sb-datadate i{width:6px;height:6px;border-radius:50%;background:var(--ms);flex:none}.sb-datadate span{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--nav-ink-3)}.sb-datadate b{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--nav-ink);font-weight:500}.sb-nav{flex:1;padding:var(--space-3) var(--space-2)}.sb-group{font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--nav-ink-3);padding:var(--space-3) var(--space-2) 5px}.sb-item{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:7px 8px;cursor:pointer;font-size:13px;color:var(--nav-ink-2)}.sb-item:hover{background:var(--nav-2);color:var(--nav-ink)}.sb-item.active{background:var(--nav-2);color:var(--nav-ink);font-weight:600}.sb-item-label{flex:1}.sb-score{font-family:var(--font-mono);font-size:10px;font-weight:700;border-radius:4px;padding:1px 5px}.sb-score{background:var(--nav-2)}.sb-score.is-ok{color:var(--ok-bright)}.sb-score.is-near{color:var(--near-bright)}.sb-score.is-crit{color:var(--crit-bright)}.sb-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.sb-footer{padding:var(--space-3) var(--space-3) var(--space-4);border-top:1px solid var(--nav-line)}.sb-theme{display:flex;background:var(--nav-2);border-radius:var(--radius-sm);padding:2px;margin-bottom:var(--space-2)}.sb-theme button{flex:1;border:none;background:none;border-radius:4px;padding:5px;cursor:pointer;font:var(--text-small);color:var(--nav-ink-2)}.sb-theme button.active{background:var(--accent);color:var(--on-solid);font-weight:600}.sb-load{width:100%;background:none;border:1px solid var(--nav-line);border-radius:var(--radius-sm);color:var(--nav-ink-2);padding:7px;cursor:pointer;font:var(--text-small)}.sb-load:hover{border-color:var(--nav-ink-3);color:var(--nav-ink)}.sb-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080b0e8c;z-index:25}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--panel);border-bottom:1px solid var(--line)}.topbar-title{font:600 17px/1.3 var(--font-ui);color:var(--ink);margin:0;white-space:nowrap}.nav-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink-2);cursor:pointer;flex:none}.topbar-metrics{display:flex;align-items:center;gap:var(--space-5);min-width:0;overflow-x:auto;scrollbar-width:none}.topbar-metrics::-webkit-scrollbar{display:none}.tb-metric{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.tb-metric b{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--ink)}.tb-metric span{font:var(--text-micro);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.tb-metric b.is-crit{color:var(--crit)}.tb-metric b.is-ok{color:var(--ok)}.tb-bar{display:inline-block;width:54px;height:4px;border-radius:2px;background:var(--chip);overflow:hidden}.tb-bar u{display:block;height:100%;background:var(--accent)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex:none}.tb-export{position:relative}.tb-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:210px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 8px 24px -10px #00000059;padding:4px;z-index:30}.tb-menu button{display:block;width:100%;text-align:left;background:none;border:none;border-radius:4px;padding:7px 10px;cursor:pointer;font:var(--text-small);color:var(--ink-2)}.tb-menu button:hover:not(:disabled){background:var(--chip);color:var(--ink)}.tb-menu button:disabled{opacity:.45;cursor:default}.views{padding:var(--space-4)}.views .section-full{width:auto;position:static;left:auto;right:auto;margin-left:0;margin-right:0;padding:0}@media (max-width: 1100px){.main{margin-left:0}.sidebar{transform:translate(-100%);transition:transform .18s ease;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:8px 0 28px -12px #0009}.nav-toggle{display:inline-flex}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}@media (max-width: 760px){.views{padding:var(--space-2)}.topbar{gap:var(--space-3);padding:0 var(--space-3)}.topbar-title{font-size:15px}.tb-metric span{display:none}.topbar-metrics{gap:var(--space-3)}}@media (max-width: 520px){.topbar-metrics{display:none}}.view-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-4);background:var(--panel-2);border-bottom:1px solid var(--line)}.view-bar .strip-title{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;min-width:0}.view-bar .strip-sub{font:var(--text-small);color:var(--ink-3)}.tb-chip{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--line);border-radius:14px;background:var(--panel);color:var(--ink-3);padding:4px 9px;cursor:pointer;font:var(--text-small)}.tb-chip i{width:6px;height:6px;border-radius:50%;background:transparent;border:1px solid var(--ink-3)}.tb-chip:hover{border-color:var(--ink-3);color:var(--ink-2)}.tb-chip.on{border-style:solid;border-color:var(--accent);color:var(--accent);font-weight:600}.tb-chip.on i{background:var(--accent);border-color:var(--accent)}.btn-tiny,.btn-tiny-light,.ctrl-btn{padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;font:var(--text-small);color:var(--ink-2)}.btn-tiny:hover:not(:disabled),.btn-tiny-light:hover:not(:disabled),.ctrl-btn:hover:not(:disabled){background:var(--chip)}.btn-tiny:disabled,.btn-tiny-light:disabled,.ctrl-btn:disabled{opacity:.4;cursor:default}.ctrl-btn-accent{border-color:var(--accent);color:var(--accent);font-weight:600}.ctrl-btn-accent:hover:not(:disabled){background:var(--accent-soft)}.detail-drawer{position:fixed;top:var(--topbar-h);right:0;bottom:0;height:calc(100vh - var(--topbar-h));width:420px;max-width:92vw;background:var(--white);border-left:1px solid var(--gray-300);box-shadow:-8px 0 24px #1c191724;z-index:15;overflow-y:auto;box-sizing:border-box;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-5)}.detail-slide-enter-active,.detail-slide-leave-active{transition:transform .2s ease,opacity .2s ease}.detail-slide-enter-from,.detail-slide-leave-to{transform:translate(24px);opacity:0}.detail-header{position:relative;padding-right:26px}.detail-close{position:absolute;top:-6px;right:-6px;width:26px;height:26px;border:none;background:var(--gray-100);color:var(--gray-700);border-radius:50%;font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail-close:hover{background:var(--gray-150);color:var(--ink)}.detail-code{display:block;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--accent);margin-bottom:3px}.detail-name{font-size:17px;font-weight:700;color:var(--ink);line-height:1.35;margin:0}.detail-wbs-path{font-size:12px;color:var(--gray-700);font-family:var(--font-mono);margin-top:6px;line-height:1.5}.detail-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-tile{background:var(--gray-100);border:1px solid var(--gray-150);border-radius:var(--radius-md);padding:8px 10px}.stat-value{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--ink);line-height:1.2}.stat-value-date{font-size:16px}.stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-700);margin-top:3px}.stat-status{font-size:15px}.stat-status.status-TK_Complete{color:var(--ok)}.stat-status.status-TK_Active{color:var(--active)}.stat-status.status-TK_NotStart{color:var(--gray-700)}.stat-progress{height:4px;background:var(--gray-300);border-radius:2px;margin-top:6px;overflow:hidden}.stat-progress-fill{height:100%;background:var(--accent)}.stat-tile-crit{background:var(--crit-tint);border-color:var(--crit)}.stat-tile-crit .stat-value{color:var(--crit)}.stat-tile-near{background:var(--near-tint);border-color:var(--near)}.stat-tile-near .stat-value{color:var(--near)}.stat-tile-neg{background:var(--crit);border-color:var(--crit)}.stat-tile-neg .stat-value,.stat-tile-neg .stat-label{color:var(--on-solid)}.detail-constraint{background:var(--near-tint);border:1px solid var(--near);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;color:var(--ink-soft);display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.detail-constraint .constraint-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--near)}.detail-constraint strong{color:var(--ink)}.detail-rels{display:flex;flex-direction:column;gap:var(--space-5)}.rel-section h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-700);font-weight:700;margin:0 0 8px}.rel-section h4 em{font-style:normal;color:var(--accent);font-family:var(--font-mono)}.rel-empty{font-size:14px;color:var(--gray-500);font-style:italic}.rel-item-btn{display:flex;flex-direction:column;gap:3px;font-size:14px;padding:8px 10px;border:none;background:var(--gray-100);cursor:pointer;border-radius:var(--radius-sm);width:100%;text-align:left;margin-bottom:5px}.rel-item-btn:hover{background:var(--accent-soft)}.rel-item-row{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.rel-item-name{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.rel-item-sub{color:var(--gray-700)}.rel-code{font-family:var(--font-mono);font-weight:700;color:var(--accent);font-size:14px;flex-shrink:0}.rel-type{color:var(--gray-700);font-size:11px;font-weight:700;text-transform:uppercase;flex-shrink:0}.rel-dates{font-family:var(--font-mono);font-size:12px;color:var(--gray-700)}.rel-dur{font-family:var(--font-mono);font-size:12px;color:var(--gray-700);margin-left:auto}.rel-lag{font-size:11px;color:var(--gray-500);font-style:italic}.rel-driving{flex-shrink:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--on-solid);background:var(--crit);padding:1px 7px;border-radius:9px}@media print{.detail-drawer,.tabs,.header,.metrics-strip,.parse-warnings,.cp-below-section{display:none}.dashboard,.dashboard.header-collapsed{padding:0}}@media (min-width: 901px){.gantt-body>.detail-drawer,.graph-body>.detail-drawer{position:static;width:372px;max-width:372px;flex:none;height:auto;box-shadow:none;z-index:auto}.gantt-body>.detail-drawer>*,.graph-body>.detail-drawer>*{flex-shrink:0}}@media (max-width: 540px){.detail-drawer{width:100vw;max-width:100vw;border-left:none}.theme-select{display:none}.upload-screen{padding:var(--space-3)}}
