@import"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap";:root{--d3-ink: rgb(21, 21, 21);--d3-ink-2: rgb(67, 68, 72);--d3-ink-3: rgb(106, 107, 112);--d3-ink-4: rgb(136, 137, 141);--d3-line: rgb(186, 186, 186);--d3-line-soft: rgb(217, 217, 217);--d3-bg-soft: rgb(228, 228, 228);--d3-bg: rgb(244, 244, 244);--d3-paper: rgb(255, 255, 255);--d3-black: rgb(0, 0, 0);--d3-blue: rgb(23, 55, 208);--d3-blue-deep: rgb(8, 35, 159);--d3-blue-soft: rgb(209, 215, 246);--fg-1: var(--d3-ink);--fg-2: var(--d3-ink-2);--fg-3: var(--d3-ink-3);--fg-mute: var(--d3-ink-4);--fg-on-dark: var(--d3-paper);--fg-link: var(--d3-blue-deep);--bg-page: var(--d3-paper);--bg-section: var(--d3-bg);--bg-chip: var(--d3-bg-soft);--bg-dark: var(--d3-ink);--bg-brand: var(--d3-blue);--border: var(--d3-line);--border-soft: var(--d3-line-soft);--border-strong: var(--d3-ink-2);--accent: var(--d3-blue);--ff-sans: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ff-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fw-thin: 100;--fw-extralight: 200;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--fw-black: 900;--fs-body: 14px;--fs-sm: 13px;--fs-xs: 12px;--fs-caption: 11px;--fs-micro: 10px;--fs-h-app: 18px;--fs-h-page: 16px;--fs-h-section: 13px;--lh-tight: .95;--lh-heading: 1.222;--lh-body: 1.5;--lh-snug: 1.333;--ls-tight: -.01em;--ls-normal: 0;--ls-eyebrow: .06em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-pill: 56px;--radius-circle: 999px;--shadow-card: 0 1px 2px rgba(21, 21, 21, .04), 0 8px 24px rgba(21, 21, 21, .06);--shadow-pop: 0 16px 48px rgba(21, 21, 21, .12);--shadow-focus: 0 0 0 3px rgba(23, 55, 208, .32);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .36s}:root{font-family:var(--ff-sans);font-size:var(--fs-body);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg-section);color:var(--fg-1)}input,select,textarea{font-family:var(--ff-sans);color:var(--fg-1);background-color:var(--bg-page)}button{font-family:var(--ff-sans)}input::placeholder{color:var(--fg-mute)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-page);min-height:48px}.app-header-logo{height:50px;width:auto;display:block;flex-shrink:0}.app-version{font-size:var(--fs-caption);color:var(--fg-mute);line-height:1;margin-top:2px;letter-spacing:var(--ls-normal)}.app-header-spacer{flex:1}.app-user{font-size:var(--fs-xs);color:var(--fg-3);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-signout{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-3);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--fg-2);font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);white-space:nowrap}.app-signout:hover{background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.app-signout:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.app-placeholder{padding:var(--space-5) var(--space-5);color:var(--fg-2);max-width:720px}.app-placeholder p{margin:0 0 var(--space-2)}.app-placeholder h2{margin:var(--space-4) 0 var(--space-2);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3)}.app-error{color:#dc143c}.app-info{color:var(--accent);background:#eff6ff;padding:10px 12px;border-radius:var(--radius-sm);border-left:3px solid var(--accent)}.app-result{background:var(--bg-chip);padding:12px;border-radius:var(--radius-md);font-size:var(--fs-xs);margin:0}.auth-form{max-width:360px;display:flex;flex-direction:column;gap:12px}.auth-form h2{margin:0 0 4px;font-size:var(--fs-h-app);font-weight:var(--fw-semibold);text-transform:none;letter-spacing:normal;color:var(--fg-1)}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--fg-2)}.auth-form input{font-size:var(--fs-body);padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);font-family:var(--ff-sans)}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.auth-submit{font-size:var(--fs-sm);font-weight:var(--fw-semibold);padding:8px 14px;background:var(--accent);color:var(--fg-on-dark);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:opacity var(--dur-fast) var(--ease-out)}.auth-submit:hover:not(:disabled){opacity:.88}.auth-submit:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{font-size:var(--fs-xs);padding:4px;background:transparent;border:none;color:var(--fg-link);cursor:pointer;text-align:left;font-family:var(--ff-sans)}.auth-toggle:hover{text-decoration:underline}.user-menu{position:relative;display:inline-flex}.user-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg-page);color:var(--fg-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.user-menu-icon:hover{background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.user-menu-icon:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.user-menu-pop{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:210px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.user-menu-wsname{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs);color:var(--fg-mute);background:var(--bg-chip);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-item{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:none;background:transparent;font-family:var(--ff-sans);font-size:var(--fs-sm);color:var(--fg-1);cursor:pointer}.user-menu-item:hover{background:var(--bg-chip)}.user-menu-item:focus-visible{outline:none;background:var(--bg-chip)}.user-menu-divider{height:1px;margin:var(--space-1) 0;background:var(--border)}.new-workspace-panel{margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.projects h2{margin:var(--space-5) 0 var(--space-3);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3)}.projects h2:first-child{margin-top:0}.project-create{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.project-create input{flex:1;font-size:var(--fs-body);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.project-create input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.projects-empty{color:var(--fg-mute);font-style:italic;font-size:var(--fs-sm)}.projects-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.project-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.project-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card)}.project-name{font-weight:var(--fw-semibold)}.project-meta{font-size:var(--fs-caption);color:var(--fg-mute)}.workspace-body{display:flex;flex-direction:column;gap:var(--space-4)}.breadcrumb{display:flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);flex-wrap:nowrap;white-space:nowrap}.crumb{background:transparent;border:none;color:var(--fg-link);cursor:pointer;padding:2px var(--space-1);font-size:var(--fs-xs);font-family:var(--ff-sans);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out)}.crumb:hover:not(:disabled){background:var(--bg-chip);text-decoration:underline}.crumb:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.crumb:disabled{color:var(--fg-1);cursor:default;background:transparent}.crumb-current{color:var(--fg-1);font-weight:var(--fw-semibold);cursor:default}.crumb-ellipsis{font-weight:var(--fw-bold);letter-spacing:1px;padding:2px 4px}.crumb-workspace{color:var(--fg-mute);cursor:default}.state-selector{position:relative;display:inline-flex;margin-left:var(--space-2)}.state-selector-trigger{display:inline-flex;align-items:center;gap:3px;padding:1px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-chip);color:var(--fg-2);font-family:var(--ff-sans);font-size:var(--fs-xs);cursor:pointer}.state-selector-trigger:hover{color:var(--fg-1)}.state-selector-caret{font-size:9px;line-height:1}.state-selector-pop{position:absolute;top:calc(100% + var(--space-1));left:0;min-width:190px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.state-selector-item{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:none;background:transparent;font-family:var(--ff-sans);font-size:var(--fs-sm);color:var(--fg-1);cursor:pointer}.state-selector-item:hover,.state-selector-item:focus-visible{outline:none;background:var(--bg-chip)}.state-selector-item.is-selected{font-weight:var(--fw-semibold)}.state-selector-item.is-selected:before{content:"✓ ";color:var(--fg-2)}.state-selector-divider{height:1px;margin:var(--space-1) 0;background:var(--border)}.state-coming-soon-title{margin:0 0 var(--space-2);font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--fg-1)}.state-coming-soon-actions{display:flex;justify-content:flex-end;margin-top:var(--space-4)}.state-coming-soon-ok{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--accent, #1737d0);color:#fff;font-family:var(--ff-sans);font-size:var(--fs-sm);cursor:pointer}.crumb-sep{color:var(--fg-mute);user-select:none}.project-open{background:transparent;border:none;color:var(--fg-link);cursor:pointer;font-size:var(--fs-body);font-weight:var(--fw-semibold);padding:0;text-align:left;font-family:var(--ff-sans)}.project-open:hover{text-decoration:underline}.app-placeholder:has(.canvas-wrap){max-width:none}.app-placeholder:has(.context-page){max-width:none}.canvas-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-page);overflow:auto;position:relative}.minimap-wrap{position:absolute;bottom:var(--space-3);right:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffffeb;backdrop-filter:blur(4px);box-shadow:var(--shadow-card);pointer-events:auto;z-index:5;overflow:hidden;line-height:0}@media(max-height:760px){.minimap-wrap{display:none}}.minimap-svg{display:block}.canvas-svg{width:100%;height:70vh;display:block;-webkit-user-select:none;user-select:none}.dfd-body{fill:#fff;stroke:#1a1a1a;stroke-width:1.5}.dfd-node-process .dfd-body{fill:#fff}.dfd-cap{fill:#f0f0f2;stroke:#1a1a1a;stroke-width:1.5}.dfd-name{font-weight:var(--fw-semibold);fill:#1a1a1a;dominant-baseline:middle}.dfd-node{cursor:pointer}.dfd-node[data-selected=true] .dfd-body{stroke:var(--accent);stroke-width:2.5}.dfd-decision-diamond{fill:#fff;stroke:#333;stroke-width:1.5}.dfd-decision-bound{stroke:#94a3b8;stroke-width:1}.dfd-node[data-selected=true] .dfd-decision-bound{stroke:var(--accent);stroke-width:1.5}.dfd-node.dfd-prop-highlight .dfd-body,.dfd-node.dfd-prop-highlight .dfd-cap,.dfd-node.dfd-prop-highlight .dfd-decision-diamond{stroke:#16a34a;stroke-width:2.5}.dfd-node.dfd-prop-highlight{filter:drop-shadow(0 0 3px rgba(22,163,74,.65))}.dfd-node.is-ai-glow{animation:ai-glow-pulse 1.1s ease-in-out infinite}@keyframes ai-glow-pulse{0%,to{filter:drop-shadow(0 0 3px var(--accent)) drop-shadow(0 0 1px var(--accent))}50%{filter:drop-shadow(0 0 8px var(--accent)) drop-shadow(0 0 4px var(--accent))}}.dfd-node.dfd-node--sequencing .dfd-body{stroke:var(--accent);stroke-width:3}.dfd-node.dfd-node--locked{opacity:.4;cursor:default}.dfd-flow.dfd-prop-highlight .dfd-flow-line{stroke:#16a34a;stroke-width:2.5}.dfd-flow.dfd-prop-highlight .dfd-arrowhead{fill:#16a34a}.dfd-flow-line{fill:none;stroke:#555;stroke-width:1.5;pointer-events:none}.dfd-graph-svg{display:block}.dfd-graph-node{cursor:context-menu}.dfd-graph-node-label{font-size:10px;fill:var(--fg-mute);pointer-events:none}.dfd-graph-edge{fill:none;stroke:#555;stroke-width:1.5}.dfd-graph-edge-back{stroke:#94a3b8;stroke-dasharray:6 4}.dfd-graph-arrowhead{fill:#555}.dfd-graph-ambiguous-note{font-size:11px;font-style:italic;fill:var(--fg-mute)}.dfd-graph-quality-dot{stroke:#fff;stroke-width:1.5;pointer-events:auto}.dfd-graph-quality-green{fill:#16a34a}.dfd-graph-quality-yellow{fill:#eab308}.dfd-graph-quality-red{fill:#dc2626}.dfd-graph-instance-chip{font-size:9px;font-weight:var(--fw-semibold);fill:var(--fg-mute);text-anchor:end;pointer-events:none}.lineage-modal-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0f172a73}.lineage-modal-card{display:flex;flex-direction:column;width:80vw;height:80vh;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);overflow:hidden}.lineage-modal-header{flex:0 0 auto;display:flex;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-soft)}.lineage-modal-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--fg-1)}.lineage-modal-body{flex:1 1 auto;overflow:auto;padding:var(--space-4)}.lineage-modal-loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--fs-sm);color:var(--fg-mute)}.lineage-modal-footer{flex:0 0 auto;display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-soft)}.lineage-modal-close{padding:var(--space-2) var(--space-4);font-size:var(--fs-sm);font-family:var(--ff-sans);color:var(--fg-1);background:var(--bg-chip);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.lineage-modal-close:hover{background:var(--bg-page)}.lineage-modal-close:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.dfd-arrowhead{fill:#555}.dfd-flow-label{fill:#333}.dfd-flow-heading{fill:#333;font-weight:var(--fw-semibold)}.dfd-flow-prop{fill:#888}.dfd-prop-status-dot.is-confirmed{fill:#1737d0}.dfd-prop-status-dot.is-assumed{fill:#fff;stroke:#1737d0;stroke-width:1.2;stroke-dasharray:2 2}.dfd-prop-status-dot.is-unsourced{fill:#d97706}.dfd-prop-status-dot.is-external{fill:#94a3b8}.dfd-prop-status-dot.is-multi{fill:#7c3aed}.dfd-node-attr{fill:#888;font-style:italic;pointer-events:none}.dfd-seq-badge-bg{fill:#1e3a5f;opacity:.85;pointer-events:none}.dfd-seq-badge-text{fill:#fff;font-size:9px;font-weight:600;pointer-events:none}.dfd-flow-mot{fill:#888;font-style:italic;pointer-events:none}.dfd-branch-label{fill:#7c3aed;font-weight:var(--fw-semibold);cursor:text;user-select:none}.ext-radios{display:flex;gap:12px;font-size:var(--fs-sm)}.ext-radio{display:flex;align-items:center;gap:4px}.palette{display:flex;gap:var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--border);flex-wrap:wrap}.palette-btn{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);cursor:pointer;font-family:var(--ff-sans);color:var(--fg-2);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.palette-btn:hover{background:var(--bg-chip);color:var(--fg-1);border-color:var(--border-strong)}.palette-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.palette-btn:disabled{opacity:.4;cursor:default}.palette-btn:disabled:hover{background:var(--bg-page);color:var(--fg-2);border-color:var(--border)}.palette-btn-active{background:var(--accent);color:var(--fg-on-dark);border-color:var(--accent);font-weight:var(--fw-semibold)}.palette-btn-active:hover{background:var(--accent);color:var(--fg-on-dark);border-color:var(--accent);opacity:.9}.view-mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.view-mode-btn{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-2);border:none;border-right:1px solid var(--border);background:var(--bg-page);color:var(--fg-2);cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.view-mode-btn:last-child{border-right:none}.view-mode-btn:hover:not(:disabled){background:var(--bg-chip);color:var(--fg-1)}.view-mode-btn.is-selected{background:var(--accent);color:var(--fg-on-dark);font-weight:var(--fw-semibold)}.view-mode-btn:disabled{opacity:.4;cursor:default}.view-mode-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.project-view-toggle{margin-left:var(--space-2)}.context-page{flex:1 1 auto;overflow:auto;padding:var(--space-5) var(--space-6)}.context-page-head{margin-bottom:var(--space-5)}.context-page-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--fg-1);margin:0}.context-page-sub{font-size:var(--fs-sm);color:var(--fg-2);margin:var(--space-1) 0 0}.context-page-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.context-page-head-actions{flex:0 0 auto}.strategy-fill-btn{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);font-family:var(--ff-sans);color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:opacity var(--dur-fast) var(--ease-out)}.strategy-fill-btn:hover:not(:disabled){opacity:.88}.strategy-fill-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.strategy-fill-btn:disabled{opacity:.6;cursor:default}.strategy-fill-error{margin:var(--space-2) 0 0;font-size:var(--fs-sm);color:var(--danger, #c0392b)}.job-progress{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.job-progress-spinner{width:.85em;height:.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:.85;animation:job-progress-spin .8s linear infinite}.job-progress-label{font-size:inherit}@keyframes job-progress-spin{to{transform:rotate(360deg)}}.fill-confirm-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0000002e}.fill-confirm{max-width:420px;padding:var(--space-4) var(--space-4);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.fill-confirm-title{margin:0 0 var(--space-2);font-weight:var(--fw-semibold);color:var(--fg-1)}.fill-confirm-list{margin:0 0 var(--space-2);padding-left:var(--space-5);color:var(--fg-1)}.fill-confirm-list li{margin:var(--space-1) 0}.fill-confirm-note{margin:0 0 var(--space-4);font-size:var(--fs-xs, var(--fs-sm));color:var(--fg-2)}.fill-confirm-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.fill-confirm-ok,.fill-confirm-cancel{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:opacity var(--dur-fast) var(--ease-out)}.fill-confirm-ok{color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent)}.fill-confirm-ok:hover{opacity:.88}.fill-confirm-ok:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.fill-confirm-cancel{color:var(--fg-2);background:transparent;border:1px solid var(--border)}.fill-confirm-cancel:hover{background:var(--bg-chip);color:var(--fg-1)}.fill-confirm-cancel:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.context-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:var(--space-6);align-items:start;max-width:1100px}.context-group-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-2);margin:0 0 var(--space-3);padding-bottom:var(--space-1);border-bottom:1px solid var(--border)}.context-field{margin-bottom:var(--space-4)}.context-field-label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1);margin-bottom:var(--space-1)}.context-field-input{width:100%;box-sizing:border-box;resize:vertical;min-height:4.5rem;font-family:var(--ff-sans);font-size:var(--fs-sm);line-height:1.5;color:var(--fg-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.context-field-input:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-color:var(--accent)}.context-page-status{padding:var(--space-5) var(--space-6);color:var(--fg-2)}.sources-upload{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);max-width:900px}.sources-file-input{display:none}.sources-upload-btn{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-on-accent, #fff);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer}.sources-upload-btn:disabled{opacity:.6;cursor:default}.sources-upload-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.sources-upload-hint{font-size:var(--fs-xs);color:var(--fg-3, var(--fg-2))}.sources-upload-error{font-size:var(--fs-sm);color:var(--danger, #c0392b);margin:0 0 var(--space-3);max-width:900px}.sources-upload-error-list{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.sources-upload-error-list li{margin:2px 0}.sources-empty{font-size:var(--fs-sm);color:var(--fg-2);padding:var(--space-5) 0}.sources-list{list-style:none;margin:0;padding:0;max-width:900px}.sources-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--bg-page)}.sources-row-main{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.sources-row-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1);flex:1 1 auto;min-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sources-row-type,.sources-row-size,.sources-row-date{font-size:var(--fs-xs);color:var(--fg-2);flex:0 0 auto}.sources-row-actions{display:inline-flex;gap:var(--space-2);flex:0 0 auto}.sources-link-btn,.sources-del-btn{font-size:var(--fs-xs);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--fg-1);cursor:pointer}.sources-del-btn{color:var(--danger, #c0392b)}.sources-link-btn:disabled,.sources-del-btn:disabled{opacity:.5;cursor:default}.sources-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--radius-sm);padding:0 var(--space-2);text-transform:lowercase;flex:0 0 auto}.sources-badge-ok{background:var(--ok-bg, #e6f4ea);color:var(--ok-fg, #1e7e34)}.sources-badge-pending{background:var(--bg-subtle, #eee);color:var(--fg-2)}.sources-badge-err{background:var(--err-bg, #fdecea);color:var(--danger, #c0392b)}.sources-row-error{font-size:var(--fs-xs);color:var(--danger, #c0392b);margin:var(--space-2) 0 0}.sources-text-status{font-size:var(--fs-sm);color:var(--fg-2);margin:var(--space-2) 0 0}.sources-text{margin:var(--space-2) 0 0;padding:var(--space-3);max-height:22rem;overflow:auto;background:var(--bg-subtle, #f6f6f6);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-mono, monospace);font-size:var(--fs-xs);line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--fg-1)}.wiki-empty{padding:var(--space-5) 0;max-width:640px}.wiki-empty-lead{font-size:var(--fs-sm);color:var(--fg-2);margin:0 0 var(--space-3)}.wiki-empty-actions{display:flex;align-items:center;gap:var(--space-3)}.wiki-empty-note{margin:var(--space-2) 0 0;font-size:var(--fs-sm);color:var(--fg-2)}.wiki-begin-btn{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-on-accent, #fff);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer}.wiki-begin-btn:disabled{opacity:.6;cursor:default}.wiki-begin-btn:focus-visible,.wiki-new-btn:focus-visible,.wiki-tree-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.wiki-new-btn,.wiki-tree-btn{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer}.wiki-new-btn:disabled,.wiki-tree-btn:disabled{opacity:.6;cursor:default}.wiki-split{display:flex;align-items:stretch;gap:var(--space-4);min-height:0}.wiki-tree{flex:0 0 260px;display:flex;flex-direction:column;gap:var(--space-2);border-right:1px solid var(--border);padding-right:var(--space-3)}.wiki-tree-toolbar{display:flex;gap:var(--space-2)}.wiki-tree-list{list-style:none;margin:0;padding:0}.wiki-tree-item{margin:0}.wiki-tree-node{display:block;width:100%;text-align:left;font-size:var(--fs-sm);color:var(--fg-1);background:transparent;border:none;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wiki-tree-node:hover{background:var(--bg-subtle, #f1f1f1)}.wiki-tree-node.is-selected{background:var(--accent-soft, #e8eefc);color:var(--accent);font-weight:var(--fw-medium)}.wiki-pane{flex:1 1 auto;min-width:0}.wiki-editor{display:flex;flex-direction:column;gap:var(--space-3);max-width:820px}.wiki-editor-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold, var(--fw-medium));font-family:var(--ff-sans);color:var(--fg-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.wiki-editor-title:focus-visible,.wiki-editor-body:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-color:var(--accent)}.wiki-editor-body{min-height:24rem;font-size:var(--fs-sm);font-family:var(--ff-sans);line-height:1.6;color:var(--fg-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);resize:vertical}.wiki-editor-actions{display:flex}.wiki-del-btn{font-size:var(--fs-sm);color:var(--danger, #c0392b);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer}.wiki-del-btn:disabled{opacity:.6;cursor:default}.block-editor{display:flex;flex-direction:column;gap:var(--space-1)}.block-row{border-radius:var(--radius-sm)}.block-row.is-dragging{opacity:.5}.block-row.is-drop-target{box-shadow:inset 0 2px 0 var(--accent)}.prose-block{display:flex;align-items:flex-start;gap:var(--space-1)}.prose-block .context-field-input{flex:1 1 auto;min-height:3.5rem}.chip-drag-handle{flex:0 0 auto;cursor:grab;color:var(--fg-3);font-size:var(--fs-sm);line-height:1.4;user-select:none;padding:var(--space-1) 2px}.chip-drag-handle:active{cursor:grabbing}.prose-drag-handle{opacity:0;transition:opacity .1s ease}.prose-block:hover .prose-drag-handle{opacity:1}.chip-block{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-subtle, rgba(0, 0, 0, .03));padding:var(--space-2)}.chip-block-head{display:flex;align-items:flex-start;gap:var(--space-1)}.chip-statement{margin:0;flex:1 1 auto;font-size:var(--fs-sm);line-height:1.45;color:var(--fg-1)}.chip-block-tools{flex:0 0 auto;display:flex;gap:2px}.chip-tool-btn{border:none;background:transparent;cursor:pointer;color:var(--fg-2);font-size:var(--fs-sm);line-height:1.2;padding:0 var(--space-1);border-radius:var(--radius-sm)}.chip-tool-btn:hover:not(:disabled){background:var(--bg-subtle, rgba(0, 0, 0, .08));color:var(--fg-1)}.chip-tool-btn:disabled{opacity:.4;cursor:default}.chip-remove-btn:hover:not(:disabled){color:var(--danger, #c0392b)}.chip-popover{margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.chip-verbatim-line{margin:0 0 var(--space-1);font-size:var(--fs-xs);color:var(--fg-2);line-height:1.45}.chip-verbatim-line:last-child{margin-bottom:0}.chip-verbatim-tag{display:inline-block;font-weight:var(--fw-semibold);color:var(--fg-3);margin-right:2px}.chip-verbatim-empty{margin:0;font-size:var(--fs-xs);font-style:italic;color:var(--fg-3)}.chip-note{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--fg-2);line-height:1.45}.chip-note-text{font-style:italic}.chip-note-edit{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.chip-note-input{width:100%;box-sizing:border-box;resize:vertical;font-family:var(--ff-sans);font-size:var(--fs-xs);line-height:1.45;color:var(--fg-1);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.chip-note-actions{display:flex;gap:var(--space-2)}.chip-link-btn{border:none;background:transparent;cursor:pointer;color:var(--accent);font-size:var(--fs-xs);padding:0}.chip-link-btn:hover{text-decoration:underline}.chip-add-note{display:inline-block;margin-top:var(--space-1);color:var(--fg-3)}.chip-block-foot{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}.chip-model-link{border:none;background:transparent;font-size:var(--fs-xs);color:var(--fg-3);cursor:not-allowed;padding:0;text-decoration:underline dotted}.chip-history{list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-2);border-left:2px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2)}.chip-history-statement{margin:0 0 var(--space-1);font-size:var(--fs-xs);color:var(--fg-2);line-height:1.45}.chip-history-when{font-size:var(--fs-xs);color:var(--fg-3);font-style:italic}.context-assessment{margin-top:var(--space-6);max-width:1100px}.context-assessment-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--fg-1);margin:0 0 var(--space-1)}.dossier-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-5);align-items:start;margin-top:var(--space-4)}.dossier-column{display:flex;flex-direction:column;gap:var(--space-2)}.dossier-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.dossier-empty{font-size:var(--fs-sm);color:var(--fg-3);margin:0 0 var(--space-1)}.dossier-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);padding:var(--space-3)}.dossier-item[data-status=resolved]{opacity:.7}.dossier-item-focused{border-color:var(--accent, #2f6fed);box-shadow:0 0 0 2px var(--accent, #2f6fed);animation:dossier-item-flash 2s ease-out}@keyframes dossier-item-flash{0%{background:var(--accent-bg, rgba(47, 111, 237, .16))}to{background:var(--bg-page)}}.dossier-item-row{display:flex;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap}.dossier-item-body{margin:0;flex:1 1 auto;font-size:var(--fs-sm);line-height:1.45;color:var(--fg-1)}.dossier-status-badge{flex:0 0 auto;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;font-weight:var(--fw-semibold);padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--bg-subtle, rgba(0, 0, 0, .06));color:var(--fg-2);line-height:1.6}.dossier-status-badge.status-answered{color:var(--accent)}.dossier-status-badge.status-resolved{color:var(--ok, #2e7d32)}.dossier-status-badge.status-deferred{color:var(--warn, #b26a00)}.dossier-anchor{flex:0 0 auto;font-size:var(--fs-xs);color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-1);cursor:pointer}.dossier-anchor:hover{background:var(--bg-subtle, rgba(0, 0, 0, .06))}.dossier-anchor.is-lost{color:var(--fg-3);cursor:default;font-style:italic}.dossier-item-note,.dossier-item-answer,.dossier-item-resolved{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--fg-2);line-height:1.45}.dossier-item-resolved{color:var(--fg-3);font-style:italic}.dossier-item-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.dossier-btn{font-size:var(--fs-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated, #fff);color:var(--fg-1);cursor:pointer}.dossier-btn:hover:not(:disabled){background:var(--bg-subtle, rgba(0, 0, 0, .06))}.dossier-btn:disabled{opacity:.5;cursor:default}.dossier-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.dossier-resolve{display:flex;align-items:center;gap:var(--space-1)}.dossier-resolve-label{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);color:var(--fg-2)}.dossier-resolve-select{font-size:var(--fs-xs);padding:0 var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--fg-1)}.dossier-composer{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.dossier-composer-input,.dossier-add-input{width:100%;box-sizing:border-box;resize:vertical;font-family:var(--ff-sans);font-size:var(--fs-sm);line-height:1.45;color:var(--fg-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.dossier-composer-actions{display:flex;gap:var(--space-2)}.dossier-children{list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-4);border-left:2px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2)}.dossier-add{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2)}.node-anchor-picker{width:100%}.node-anchor-input{width:100%;box-sizing:border-box;font-family:var(--ff-sans);font-size:var(--fs-xs);line-height:1.4;color:var(--fg-1);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page)}.node-anchor-input::placeholder{color:var(--fg-mute)}.node-anchor-kind{color:var(--fg-mute);font-size:var(--fs-xs)}.dossier-anchor-add{color:var(--fg-mute);border-style:dashed}.dossier-anchor-add:hover{color:var(--accent)}.node-anchor-chip{display:inline-flex;align-items:center;gap:var(--space-1);cursor:default}.node-anchor-clear{border:none;background:transparent;color:inherit;cursor:pointer;font-size:var(--fs-sm);line-height:1;padding:0}.node-anchor-clear:hover{color:var(--accent)}.proposal-cards{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.proposal-card{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-subtle, rgba(0, 0, 0, .03));padding:var(--space-2)}.proposal-card-head{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.proposal-card-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--accent);text-transform:uppercase;letter-spacing:.03em}.proposal-card-sub{font-size:var(--fs-xs);color:var(--fg-2)}.proposal-ops{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.proposal-op-label{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--fs-sm);line-height:1.45;color:var(--fg-1);cursor:pointer}.proposal-op-check{margin-top:2px;flex:0 0 auto}.proposal-op-applied{cursor:default;color:var(--fg-2)}.proposal-op-check-done{flex:0 0 auto;color:var(--ok, #2e7d32);font-weight:var(--fw-semibold)}.proposal-op-desc{flex:1 1 auto}.proposal-op-hint{margin:2px 0 0 calc(var(--space-2) + 1em);font-size:var(--fs-xs);color:var(--warn, #b26a00);font-style:italic}.proposal-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.changes-split{display:flex;align-items:stretch;gap:var(--space-5);min-height:0;max-width:1100px}.changes-list{flex:0 0 300px;display:flex;flex-direction:column;gap:var(--space-2);border-right:1px solid var(--border);padding-right:var(--space-4)}.changes-empty{font-size:var(--fs-sm);color:var(--fg-2);margin:0}.changes-list-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.changes-list-btn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;text-align:left;font-size:var(--fs-sm);color:var(--fg-1);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2);cursor:pointer}.changes-list-btn:hover{background:var(--bg-subtle, #f1f1f1)}.changes-list-btn.is-selected{background:var(--accent-soft, #e8eefc);border-color:var(--accent)}.changes-list-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.changes-pane{flex:1 1 auto;min-width:0}.changes-thread{display:flex;flex-direction:column;gap:var(--space-4)}.changes-thread-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--fg-1);margin:0}.changes-transcript{display:flex;flex-direction:column;gap:var(--space-2)}.changes-turn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);padding:var(--space-2) var(--space-3)}.changes-turn[data-author=human]{background:var(--accent-soft, #e8eefc);border-color:var(--accent)}.changes-turn[data-author=ai]{background:var(--bg-subtle, rgba(0, 0, 0, .03))}.changes-turn-tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);margin-bottom:var(--space-1)}.changes-turn-body{font-size:var(--fs-sm);line-height:1.45;color:var(--fg-1);white-space:pre-wrap}.changes-turn-idea{font-size:var(--fs-xs);color:var(--fg-2);font-style:italic;margin-top:var(--space-1)}.changes-answer{display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-3)}.changes-answer-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1)}.changes-producer-picker{max-width:360px}.changes-freetext{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px dashed var(--border);max-width:360px}.changes-freetext-input{width:100%;min-height:56px;resize:vertical;font:inherit;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--fg-1)}.changes-freetext-actions{display:flex;align-items:center;gap:var(--space-2)}.changes-ticket{margin-top:var(--space-2)}.changes-muted{font-size:var(--fs-sm);color:var(--fg-2);margin:0}.changes-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius-sm);padding:1px var(--space-2);flex:0 0 auto}.changes-badge-open{background:var(--accent-soft, #e8eefc);color:var(--accent)}.changes-badge-converged{background:#2e7d321f;color:var(--ok, #2e7d32)}.changes-badge-stubbed,.changes-badge-dismissed{background:var(--bg-subtle, rgba(0, 0, 0, .06));color:var(--fg-2)}.changes-badge-proposed{background:var(--accent-soft, #e8eefc);color:var(--accent)}.changes-badge-applied{background:#2e7d321f;color:var(--ok, #2e7d32)}.changes-gaps{display:flex;flex-direction:column;gap:var(--space-2)}.changes-gaps-head{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);margin:0}.changes-gaps-count{font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:none;letter-spacing:0;color:var(--accent);background:var(--accent-soft, #e8eefc);border-radius:var(--radius-sm);padding:1px var(--space-2)}.changes-gap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.changes-gap-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--bg-page)}.changes-gap-row.is-muted{background:var(--bg-subtle, rgba(0, 0, 0, .03));opacity:.8}.changes-gap-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.changes-gap-title{display:flex;flex-direction:column;gap:1px}.changes-gap-rule{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2)}.changes-gap-subject{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1);overflow-wrap:anywhere}.changes-gap-hint{font-size:var(--fs-xs);color:var(--fg-2);line-height:1.4;margin:0}.changes-gap-discuss{flex:0 0 auto;align-self:center;white-space:nowrap}.changes-gap-canvas{flex:0 0 auto;align-self:center;font-size:var(--fs-xs);font-style:italic;color:var(--fg-2);white-space:nowrap}.changes-gaps-toggle{align-self:flex-start;font-size:var(--fs-xs);color:var(--accent);background:transparent;border:none;padding:0;cursor:pointer}.changes-gaps-toggle:hover{text-decoration:underline}.changes-threads{display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-3)}.flatten-view{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.flatten-view-chrome{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border)}.flatten-view-zoom{display:inline-flex;align-items:center;gap:4px}.flatten-view-hint{margin-left:auto;font-size:var(--fs-xs);color:var(--fg-mute)}.flatten-view-scroll{flex:1 1 auto;overflow:auto;min-height:0;background:var(--bg-page)}.flatten-view-stage{display:inline-block;padding:var(--space-4)}.flatten-view-loading,.flatten-view-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--fg-mute);font-size:var(--fs-sm)}.dialog-backdrop{position:fixed;inset:0;background:#15151547;display:flex;align-items:center;justify-content:center;z-index:10}.dialog{background:var(--bg-page);padding:var(--space-5);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-pop);min-width:280px}.dialog-hint{font-size:var(--fs-xs);color:var(--fg-3);margin:0;line-height:var(--lh-body)}.assign-inbound{display:flex;flex-direction:column;gap:4px;margin:4px 0;padding-top:6px;border-top:1px solid var(--border, #e5e7eb)}.assign-inbound-candidates{display:flex;flex-direction:column;gap:2px;max-height:140px;overflow-y:auto}.assign-inbound-add{align-self:flex-start}.auto-layout-dialog{min-width:320px;text-align:center}.auto-layout-body{display:flex;align-items:center;gap:10px;margin:8px 0}.auto-layout-spinner{flex:0 0 auto;width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent, #2563eb);border-radius:50%;animation:auto-layout-spin .8s linear infinite}@keyframes auto-layout-spin{to{transform:rotate(360deg)}}.auto-layout-improved{font-size:var(--fs-sm);font-weight:600;margin:4px 0 12px}.inherit-sections{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;margin:4px 0}.inherit-section-head{display:flex;align-items:center;gap:6px;font-weight:var(--fw-semibold)}.inherit-props{display:flex;flex-direction:column;gap:2px;margin:2px 0 2px 20px}.inherit-prop{display:flex;align-items:center;gap:6px;font-weight:var(--fw-regular)}.action-bar{display:flex;align-items:center;gap:var(--space-2);padding:6px 10px;min-height:40px;box-sizing:border-box;border-bottom:1px solid var(--border);flex-wrap:wrap}.breadcrumb .export-pdf-control{margin-left:auto;margin-right:249px}.export-pdf-control{position:relative;display:inline-flex;align-items:center;gap:var(--space-2)}.export-menu-pop{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:140px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.export-pdf-btn{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);cursor:pointer;font-family:var(--ff-sans);color:var(--fg-2);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.export-pdf-btn:hover:not(:disabled){background:var(--bg-chip)}.export-pdf-btn:disabled{opacity:.6;cursor:default}.export-pdf-error{font-size:var(--fs-xs)}.action-bar .palette{padding:0;border-bottom:none}.action-bar-notes-count{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--fg-mute)}.action-bar-menu{position:relative;display:inline-flex}.action-bar-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--fg-2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.action-bar-menu-btn:hover{background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.action-bar-menu-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.action-bar-menu-pop{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:210px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.action-bar-menu-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:none;background:transparent;font-family:var(--ff-sans);font-size:var(--fs-sm);color:var(--fg-1);cursor:pointer}.action-bar-menu-item:hover:not(:disabled){background:var(--bg-chip)}.action-bar-menu-item:focus-visible{outline:none;background:var(--bg-chip)}.action-bar-menu-item:disabled{color:var(--fg-mute);cursor:default}.action-bar-menu-hint{font-size:var(--fs-xs);color:var(--fg-mute)}.action-bar-menu-divider{height:1px;margin:var(--space-1) 0;background:var(--border)}.action-bar-submenu{display:flex;flex-direction:column}.action-bar-submenu-item{padding-left:var(--space-5)}.add-object-control{position:relative;display:inline-flex}.add-object-menu-pop{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:180px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.align-control{position:relative;display:inline-flex}.align-menu-pop{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:200px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50}.action-bar-menu-footer-hint{padding:var(--space-2) var(--space-3);padding-top:var(--space-1);border-top:1px solid var(--border);margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--fg-mute);line-height:1.4}.action-bar-zoomgroup{display:flex;align-items:center;gap:6px;margin-left:auto;padding-left:var(--space-2);border-left:1px solid var(--border);font-size:11px}.action-bar-zoomgroup .palette-btn{font-size:11px;padding:2px 6px}.zoom-pct{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;min-width:40px;text-align:center}.label-scale-sep{width:1px;height:16px;background:var(--border);margin:0 4px}.label-pct{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;min-width:40px;text-align:center}.diagnostics{margin-top:32px;font-size:var(--fs-xs);color:var(--fg-mute)}.diagnostics summary{cursor:pointer;user-select:none}.dfd-handle{fill:var(--accent);stroke:#fff;stroke-width:1.5;cursor:crosshair;opacity:.9;pointer-events:none}.dfd-handle-hit{fill:transparent;cursor:crosshair}.dfd-handle-group:hover .dfd-handle{r:8}.dfd-handle-decomposed{fill:#1d4ed8;stroke:#dbeafe;stroke-width:2;opacity:1}.dfd-handle-group:hover .dfd-handle-decomposed{r:11}.dfd-rubber{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 4;fill:none;pointer-events:none}.dfd-flow-hit{fill:none;stroke:transparent;stroke-width:18;vector-effect:non-scaling-stroke;cursor:pointer}.dfd-flow-line[data-selected=true]{stroke:var(--accent);stroke-width:2.5}.dfd-anchor{fill:#fff;stroke:var(--accent);stroke-width:2;pointer-events:none}.dfd-anchor-hit{fill:transparent;cursor:crosshair}.dfd-anchor-group:hover .dfd-anchor{fill:var(--accent)}.dfd-seg-handle{fill:#facc15;stroke:#854d0e;stroke-width:1.5;pointer-events:none}.dfd-seg-handle-hit{fill:transparent}.dfd-seg-handle-group:hover .dfd-seg-handle{fill:#fde047}.dfd-vertex-handle{fill:#fff;stroke:var(--accent);stroke-width:2;pointer-events:none}.dfd-vertex-handle-hit{fill:transparent}.dfd-vertex-handle-group:hover .dfd-vertex-handle{fill:var(--accent)}.dfd-flow-line[data-status=green]{stroke:#16a34a}.dfd-flow-line[data-status=yellow]{stroke:#eab308}.dfd-flow-line[data-status=red]{stroke:#dc2626}.dfd-flow-line[data-selected=true]{stroke:var(--accent)}.editor{display:flex;gap:9px;align-items:flex-start}.editor .canvas-wrap{flex:1;min-width:0}.rail-resizer{flex:none;align-self:stretch;width:6px;margin:0 -4px;border-radius:3px;background:transparent;cursor:col-resize;touch-action:none;transition:background .12s ease}.rail-resizer:hover{background:var(--border)}.rail-resizer:active,.rail-resizer:focus-visible{background:var(--accent, #4f80ff);outline:none}.right-rail{width:240px;flex:none;display:flex;flex-direction:column;gap:8px;position:relative;height:calc(100vh - var(--rail-top-offset, 160px));max-height:calc(100vh - var(--rail-top-offset, 160px));overflow-y:auto;overflow-x:hidden}.inspector{overflow-y:auto;flex:1 1 auto;min-height:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-page);padding:var(--space-3);font-size:var(--fs-sm);position:relative;z-index:10}.inspector-section{padding:var(--space-2) 0;border-top:1px solid var(--border-soft)}.inspector-section:first-child{padding-top:0;border-top:none}.inspector-title{margin:0 0 var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--fg-1);letter-spacing:var(--ls-tight)}.inspector-subtitle{margin:0 0 var(--space-3);font-size:var(--fs-caption);color:var(--fg-mute);text-transform:uppercase;letter-spacing:var(--ls-eyebrow)}.inspector-label{display:block;margin-bottom:var(--space-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3);line-height:var(--lh-body)}.status-swatches{display:flex;align-items:center;gap:8px;margin:8px 0}.status-swatch{width:19px;height:19px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.status-notes-bubble{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:auto;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--fg-2);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.status-notes-bubble:hover{background:var(--bg-chip);color:var(--fg-1)}.status-notes-bubble:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.status-notes-bubble[data-has-notes=true]{color:var(--fg-1)}.status-swatch-active{border-color:var(--fg-1)}.status-clear{font-size:var(--fs-xs);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);cursor:pointer;font-family:var(--ff-sans);color:var(--fg-2);transition:background var(--dur-fast) var(--ease-out)}.status-clear:hover{background:var(--bg-chip);color:var(--fg-1)}.status-clear:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.status-swatch:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.inspector-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--fg-2);margin-top:var(--space-2)}.inspector-field:first-child{margin-top:0}.inspector-field textarea{font-size:var(--fs-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;font-family:var(--ff-sans);color:var(--fg-1)}.inspector-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.status-derived{margin:6px 0 0;font-size:var(--fs-caption);line-height:1.4;color:#92400e}.status-derived-tag{display:inline-block;padding:1px 6px;margin-right:4px;font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:#fff;background:#d97706;border-radius:3px}.inspector-name{font-size:var(--fs-body);font-weight:var(--fw-semibold);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-sans);color:var(--fg-1)}.inspector-name:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.inspector-mot{font-size:var(--fs-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-sans);color:var(--fg-1)}.inspector-mot:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.payload-section{margin-bottom:8px}.payload-name-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.payload-name{flex:1;font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-sans)}.payload-prop-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:3px;margin-left:12px}.payload-prop{flex:1;font-size:var(--fs-xs);padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-sans)}.payload-section-remove,.payload-prop-remove{background:transparent;border:none;color:var(--fg-mute);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:2px 4px;flex:none}.payload-section-remove:hover,.payload-prop-remove:hover{color:var(--fg-2)}.payload-add-prop{display:block;font-size:var(--fs-caption);background:transparent;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:3px 8px;cursor:pointer;margin-left:12px;margin-top:2px;width:calc(100% - 12px);color:var(--fg-3);font-family:var(--ff-sans)}.payload-add-prop:hover{border-color:var(--fg-mute);color:var(--fg-1)}.payload-drag-handle{color:var(--border);cursor:grab;font-size:var(--fs-body);line-height:1;flex:none;padding:0 2px;user-select:none}.payload-drag-handle:hover{color:var(--fg-mute)}.payload-prop-row.payload-drop-indicator{border-top:2px solid var(--d3-blue-soft)}.payload-drop-zone{height:4px;margin:0 0 2px 12px}.payload-drop-zone.payload-drop-zone-active{background:var(--d3-blue-soft);border-radius:2px}.payload-name-row.payload-drop-target-section{border-top:2px solid var(--d3-blue-soft)}.payload-bottom-controls{display:flex;gap:6px;margin-top:4px}.payload-add-section{display:block;font-size:var(--fs-caption);background:transparent;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;flex:1;color:var(--fg-3);font-family:var(--ff-sans)}.payload-add-section:hover{border-color:var(--fg-mute);color:var(--fg-1)}.object-browser{width:200px;flex:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-page);padding:var(--space-2);font-size:var(--fs-sm);max-height:70vh;overflow:auto}.object-browser-collapsed{width:auto;padding:4px}.ob-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ob-filter{position:relative;display:flex;align-items:center;margin-bottom:8px}.ob-filter-input{width:100%;box-sizing:border-box;padding:4px 22px 4px 8px;font-family:var(--ff-sans);font-size:var(--fs-sm);color:var(--fg-base);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm)}.ob-filter-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ob-filter-clear{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:2px;line-height:0;font-size:var(--fs-xs);color:var(--fg-mute)}.ob-filter-clear:hover{color:var(--fg-base)}.left-panel-accordion{display:flex;flex-direction:column;min-height:0}.lpa-collapse{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-2)) 4px;padding:var(--space-2) var(--space-2) 4px;background:var(--bg-page)}.lpa-view{display:flex;flex-direction:column;min-height:0}.lpa-view-active{flex:1 1 auto}.lpa-bar{border-top:1px solid var(--border)}.lpa-view:first-of-type .lpa-bar{border-top:none}.lpa-bar-toggle{width:100%;padding:8px 4px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-mute)}.lpa-view-active .lpa-bar-toggle{color:var(--fg-base)}.lpa-view-active .lpa-bar{background:var(--bg-soft)}.lpa-bar-toggle:hover{color:var(--fg-base)}.lpa-bar-count{margin-left:auto;min-width:18px;padding:0 6px;border-radius:9px;background:var(--bg-chip);color:var(--fg-mute);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-align:center}.lpa-body{min-height:0;overflow-y:auto}.rail-body{min-height:0}.props-browser-list,.props-object-list{list-style:none;margin:0;padding:0}.props-browser-empty{color:var(--fg-mute);padding:8px 2px}.props-item{display:flex;align-items:center;gap:4px;width:100%;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);font-size:var(--fs-sm);text-align:left;padding:3px 4px;color:var(--fg-base)}.props-item:hover{background:var(--bg-soft)}.props-item-selected{background:var(--bg-soft);font-weight:600}.props-item-caret{color:var(--fg-mute);width:.9em}.props-object-list{margin:1px 0 4px 18px}.props-object-row{display:block;width:100%;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);font-size:var(--fs-xs);text-align:left;padding:2px 4px;color:var(--fg-base)}.props-object-row:hover{background:var(--bg-soft)}.props-object-dnum{color:var(--fg-mute);font-variant-numeric:tabular-nums}.props-object-role-p{color:#16a34a;font-weight:600}.props-object-role-c{color:var(--fg-mute);font-weight:600}.props-object-empty{color:var(--fg-mute);font-size:var(--fs-xs);padding:2px 4px 2px 18px}.ob-toggle{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-xs);padding:2px 8px;font-family:var(--ff-sans)}.pane-collapse-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;padding:2px;color:var(--fg-mute);line-height:0}.pane-collapse-icon:hover{background:var(--bg-soft);color:var(--fg-base)}.ob-group{margin-bottom:10px}.ob-group-label{display:flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-mute)}.ob-group-toggle{display:flex;align-items:center;gap:4px;flex:1 1 auto;background:transparent;border:none;padding:0;cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;text-align:left}.ob-group-toggle:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.ob-group-caret{width:12px;flex:0 0 12px;text-align:center;color:var(--fg-3)}.ob-row-selected{background:var(--bg-chip);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--accent, var(--fg-3))}.ob-item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-family:var(--ff-sans);color:var(--fg-1);transition:background var(--dur-fast) var(--ease-out)}.ob-item:hover{background:var(--bg-chip)}.ob-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ob-item-disabled{color:var(--fg-mute);cursor:not-allowed}.ob-item-disabled:hover{background:transparent}.ob-item-decomposed{font-weight:300;opacity:.65}.ob-row{display:flex;flex-direction:column}.ob-item-row{display:flex;align-items:center;gap:4px}.ob-expand,.ob-expand-spacer{width:16px;flex:0 0 16px;background:transparent;border:none;cursor:pointer;color:var(--fg-3);font-size:var(--fs-caption);padding:0;text-align:center}.ob-count{font-size:var(--fs-caption);color:var(--fg-mute)}.ob-props{list-style:none;margin:0 0 4px 20px;padding:0;font-size:var(--fs-xs);color:#64748b}.ob-props li{margin:2px 0}.dfd-node[data-virtual=true] .dfd-body{stroke-dasharray:6 4}.dfd-multi-instance-icon{color:#475569}.dfd-multi-instance-icon:hover{color:#1e293b}.dfd-label-leader{stroke:var(--border);stroke-width:1;stroke-dasharray:3 3;fill:none;pointer-events:none}.dfd-label-block-hit{fill:transparent;stroke:none}.dfd-label-block-sel{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3;pointer-events:none}text.dfd-flow-prop.dfd-prop-selected{fill:var(--d3-blue);font-weight:var(--fw-semibold)}text.dfd-item-reorder-btn{fill:#6b7280}text.dfd-item-reorder-btn:hover{fill:var(--accent)}text.dfd-item-section-reorder-btn{fill:#6b7280}text.dfd-item-section-reorder-btn:hover{fill:var(--accent)}text.dfd-item-section-add-btn{fill:#16a34a}text.dfd-item-section-add-btn:hover{fill:#15803d}.lbcm-backdrop{position:fixed;inset:0;z-index:30}.lbcm{position:fixed;display:flex;flex-direction:column;gap:2px;min-width:164px;padding:var(--space-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.lbcm-item{text-align:left;padding:var(--space-2) var(--space-2);font-size:var(--fs-sm);color:var(--fg-1);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.lbcm-item:hover:not(:disabled){background:var(--bg-chip)}.lbcm-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.lbcm-item:disabled{color:var(--fg-mute);cursor:default}.lbcm-item--danger{color:#dc2626}.lbcm-item--danger:hover:not(:disabled){background:#fef2f2}.lbcm-sep{border:none;border-top:1px solid var(--border-soft);margin:2px 0}.lbcm-section-label{padding:var(--space-1) var(--space-2) 1px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--fg-mute);user-select:none}.lbcm-item--shortcut{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.lbcm-shortcut{font-size:var(--fs-xs);color:var(--fg-mute);font-variant-numeric:tabular-nums}.lbcm-submenu-parent{position:relative}.lbcm-submenu{position:absolute;top:-1px;left:100%;margin-left:2px;z-index:1}.lbcm-color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px}.lbcm-color-square{width:20px;height:20px;padding:0;border:1px solid #94a3b8;border-radius:3px;cursor:pointer}.lbcm-color-square:hover,.lbcm-color-square:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:1px}.lbcm-inline-input{width:100%;height:100%;padding:1px 3px;font-size:inherit;font-family:var(--ff-sans);border:1px solid var(--accent);border-radius:3px;outline:none;background:var(--bg-page);color:var(--fg-1);box-sizing:border-box}.dfd-summary{cursor:pointer}.dfd-summary-body{fill:#f1f5f9;stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:6 4}.dfd-summary[data-selected=true] .dfd-summary-body{stroke:var(--accent);stroke-width:2.5}.dfd-summary-title{fill:#e2e8f0;stroke:none}.dfd-summary-titletext{fill:#475569;font-weight:var(--fw-semibold);pointer-events:none}.dfd-summary-toggle{fill:#475569;font-weight:var(--fw-bold)}.dfd-summary-subtitle{fill:#94a3b8;font-style:italic;pointer-events:none}.dfd-summary-band{fill:#334155;font-weight:var(--fw-semibold);pointer-events:none}.dfd-summary-line{fill:#64748b;pointer-events:none}.dfd-summary-lane{stroke:#94a3b8;stroke-width:1.25;stroke-dasharray:5 3;fill:none;pointer-events:none}.dfd-marquee{fill:#1737d014;stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.canvas-axis-guide{stroke:var(--accent);stroke-width:1;stroke-dasharray:2 4;opacity:.35;pointer-events:none}.dfd-summary-conn-label{fill:#64748b;font-weight:var(--fw-bold);letter-spacing:.03em;pointer-events:none;paint-order:stroke;stroke:var(--bg-page);stroke-width:3px;stroke-linejoin:round}.bc-payload-section{paint-order:stroke;font-weight:var(--fw-semibold);-webkit-user-select:none;user-select:none;cursor:pointer}.bc-payload-prop{paint-order:stroke;font-style:italic;-webkit-user-select:none;user-select:none}.bc-payload-hit{cursor:pointer}.bc-payload-scroll-box{font-family:var(--ff-sans);-webkit-user-select:none;user-select:none}.inherited-group .inspector-label{color:var(--accent)}.inherited-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:2px 0;font-size:var(--fs-sm)}.inherited-row .inherited-name{color:var(--fg-1)}.inherited-stale .inherited-name{color:#b45309}.inherited-remove{border:none;background:none;cursor:pointer;color:#64748b;font-size:var(--fs-xs);line-height:1}.inherited-remove:hover{color:#dc2626}.payload-row-unmet{fill:#dc2626;color:#dc2626}text.dfd-flow-heading.payload-row-unmet,text.dfd-flow-prop.payload-row-unmet{font-weight:var(--fw-semibold)}.payload-row-inherited{fill:#64748b;font-style:italic}.payload-row-stale{fill:#b45309}.dfd-unmet-link-pill{fill:var(--accent);font-weight:var(--fw-bold)}.dfd-unmet-link-pill:hover{fill:var(--d3-blue)}.unmet-group .inspector-label{color:#dc2626}.unmet-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:2px 0;font-size:var(--fs-sm)}.unmet-row .unmet-name{color:#dc2626;font-weight:var(--fw-semibold)}.unmet-picker{flex:1 1 auto;min-width:0;font-size:var(--fs-xs)}.unmet-panel{position:absolute;top:48px;right:12px;z-index:20;width:280px;max-height:50%;overflow-y:auto;background:var(--bg-page);border:1px solid #fecaca;border-left:3px solid #dc2626;border-radius:var(--radius-md);box-shadow:var(--shadow-card);font-size:var(--fs-sm)}.unmet-panel-header{display:block;width:100%;padding:8px 10px;border:none;background:#fef2f2;color:#b91c1c;font-weight:var(--fw-bold);text-align:left;cursor:pointer;font-family:var(--ff-sans)}.unmet-panel.all-met{border-color:#bbf7d0;border-left-color:#16a34a}.unmet-panel.all-met .unmet-panel-header{background:#f0fdf4;color:#15803d}.unmet-panel-list{margin:0;padding:4px 0;list-style:none}.unmet-panel-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;padding:4px 10px}.unmet-panel-name{color:#dc2626;font-weight:var(--fw-semibold)}.unmet-panel-attr{color:#64748b;font-size:var(--fs-xs)}.unmet-panel-row-met{opacity:.75}.unmet-panel-name-met{color:#64748b;font-weight:var(--fw-semibold)}.unmet-panel-declared{display:inline-block;padding:0 5px;border-radius:var(--radius-pill, 999px);background:#fef3c7;color:#b45309;border:1px solid #fde68a;font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.unmet-panel-soft-help{flex-basis:100%;font-style:italic}.summary-provenance{margin:4px 0 0;padding-left:16px;font-size:var(--fs-xs);color:#475569}.summary-provenance li{margin:2px 0}.inspector-empty{margin:4px 0 0;font-size:var(--fs-xs);font-style:italic;color:#94a3b8}.ob-drag-ghost{position:fixed;z-index:1000;pointer-events:none;padding:4px 10px;font-size:var(--fs-sm);border-radius:var(--radius-md);background:var(--bg-dark);color:var(--fg-on-dark);box-shadow:var(--shadow-pop);opacity:.92}.dfd-decompose-shadow rect{fill:#fff;stroke:var(--dfd-node-stroke, #475569);stroke-width:1.5;opacity:.55}.dfd-node-num{fill:#475569;font-weight:var(--fw-semibold);pointer-events:none}.inspector-decompose{display:flex;flex-direction:column;gap:8px;margin-top:12px}.inspector-btn{font-size:var(--fs-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);cursor:pointer;text-align:left;font-family:var(--ff-sans);color:var(--fg-1);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.inspector-btn:hover:not(:disabled){background:var(--bg-chip);border-color:var(--border-strong)}.inspector-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.inspector-btn:disabled{opacity:.5;cursor:not-allowed}.inspector-btn-danger{color:#b91c1c;border-color:#f0c0c0}.inspector-btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.required-mark{color:#b91c1c;margin-left:2px}.field-label{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--fg-2);letter-spacing:var(--ls-normal)}.project-create{align-items:flex-end}.project-create-field{flex:1;display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--fg-2)}.kind-picker-backdrop{position:fixed;inset:0;z-index:30}.kind-picker-backdrop-dim{background:#15151547}.kind-picker{position:fixed;display:flex;flex-direction:column;gap:2px;min-width:160px;max-width:280px;padding:var(--space-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.kind-picker-title{padding:var(--space-1) var(--space-2) var(--space-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3)}.kind-picker-item{text-align:left;padding:var(--space-2) var(--space-2);font-size:var(--fs-sm);color:var(--fg-1);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.kind-picker-item:hover{background:var(--bg-chip)}.kind-picker-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.kind-picker-item:disabled{opacity:.5;cursor:default}.kind-picker-newsection{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-top:1px solid var(--border);margin-top:var(--space-1)}.kind-picker-input{padding:var(--space-1) var(--space-2);font-size:var(--fs-sm);font-family:var(--ff-sans);color:var(--fg-1);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm)}.kind-picker-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.producer-control{flex-basis:100%;min-width:0;width:100%;display:flex;align-items:center;gap:4px;margin-left:18px;font-size:var(--fs-xs);color:var(--fg-3)}.producer-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--fg-3)}.producer-dot[data-status=confirmed]{background:var(--status-green, #2e7d32)}.producer-dot[data-status=assumed],.producer-dot[data-status=multi]{background:var(--status-yellow, #f9a825)}.producer-dot[data-status=unsourced]{background:var(--status-red, #c62828)}.producer-dot[data-status=external]{background:#94a3b8}.producer-status{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.producer-btn{flex:none;padding:1px 6px;font-size:var(--fs-caption);color:var(--fg-1);background:var(--bg-chip);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.producer-btn:hover{background:var(--bg-page)}.producer-btn-confirm{font-weight:var(--fw-bold)}.producer-picker{width:248px}.producer-picker-filter{margin:0 var(--space-1) var(--space-1);width:calc(100% - var(--space-2))}.producer-picker-list{display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow-y:auto}.producer-picker-group{display:flex;flex-direction:column;gap:2px}.producer-picker-group-header{padding:var(--space-1) var(--space-2);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3);background:transparent;border:none;text-align:left;cursor:pointer;font-family:var(--ff-sans)}.producer-picker-group-header:hover{color:var(--fg-1)}.producer-picker-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.producer-picker-kind{font-size:var(--fs-caption);color:var(--fg-3);text-transform:uppercase;letter-spacing:var(--ls-eyebrow)}.producer-picker-external{margin-top:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--fs-caption);color:var(--fg-3);background:transparent;border:none;border-top:1px solid var(--border);text-align:left;cursor:pointer;font-family:var(--ff-sans)}.producer-picker-external:hover{color:var(--fg-1)}.vignette-picker{width:360px;max-width:92vw}.vignette-picker-search{width:100%}.vignette-picker-list{display:flex;flex-direction:column;gap:2px;max-height:42vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-1);padding:var(--space-1)}.vignette-picker-group{display:flex;flex-direction:column;gap:2px}.vignette-picker-group-label{padding:var(--space-1) var(--space-2);font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3)}.vignette-picker-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:transparent;border:none;border-radius:var(--radius-1);text-align:left;cursor:pointer;font-family:var(--ff-sans);font-size:var(--fs-body);color:var(--fg-1)}.vignette-picker-item:hover{background:var(--bg-2)}.vignette-picker-item.is-selected{background:var(--bg-accent-subtle, var(--bg-2))}.vignette-picker-check{flex:none}.vignette-picker-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vignette-picker-footer{display:flex;justify-content:flex-end}.vignette-picker-count{font-size:var(--fs-caption);color:var(--fg-3)}.locate-popover-backdrop{position:fixed;inset:0;z-index:30}.locate-popover{position:fixed;max-width:248px;padding:var(--space-3) var(--space-3);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.locate-popover-msg{margin:0 0 var(--space-1);font-weight:var(--fw-semibold);color:var(--fg-1)}.locate-popover-sub{margin:0 0 var(--space-3);font-size:var(--fs-xs);color:var(--fg-mute)}.locate-popover-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.locate-popover-go,.locate-popover-cancel{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:opacity var(--dur-fast) var(--ease-out)}.locate-popover-go{color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent)}.locate-popover-go:hover{opacity:.88}.locate-popover-go:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.locate-popover-cancel{color:var(--fg-2);background:transparent;border:1px solid var(--border)}.locate-popover-cancel:hover{background:var(--bg-chip);color:var(--fg-1)}.locate-popover-cancel:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.confirm-undo-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0000002e}.confirm-undo-dialog{max-width:360px;padding:var(--space-4) var(--space-4);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.confirm-undo-title{margin:0 0 var(--space-2);font-weight:var(--fw-semibold);color:var(--fg-1)}.confirm-undo-msg{margin:0 0 var(--space-4);font-size:var(--fs-sm);color:var(--fg-2);line-height:1.4}.confirm-undo-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.confirm-undo-confirm,.confirm-undo-cancel{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);transition:opacity var(--dur-fast) var(--ease-out)}.confirm-undo-confirm{color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent)}.confirm-undo-confirm:hover{opacity:.88}.confirm-undo-confirm:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.confirm-undo-cancel{color:var(--fg-2);background:transparent;border:1px solid var(--border)}.confirm-undo-cancel:hover{background:var(--bg-chip);color:var(--fg-1)}.confirm-undo-cancel:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.decompose-dialog-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000040}.decompose-dialog{max-width:360px;padding:16px 18px;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.decompose-dialog-msg{margin:0 0 8px}.decompose-dialog-list{margin:0 0 8px;padding-left:18px}.decompose-dialog-num{font-variant-numeric:tabular-nums;color:var(--fg-2);font-weight:var(--fw-semibold)}.decompose-dialog-sub{margin:0 0 14px;font-size:var(--fs-xs);color:var(--fg-mute)}.orphan-producer-list{margin:0 0 4px;padding:0;list-style:none}.orphan-producer-list .decompose-dialog-sub{margin:0 0 10px}.decompose-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.decompose-dialog-go{padding:6px 12px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.decompose-dialog-cancel{padding:6px 12px;font-size:var(--fs-sm);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.decompose-reconcile{max-width:480px}.decompose-reconcile-group{margin:0 0 12px}.decompose-reconcile-heading{margin:0 0 6px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-mute)}.decompose-reconcile-list{margin:0;padding:0;list-style:none}.decompose-reconcile-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:4px 0}.rehome-new-object{flex-basis:100%;display:flex;flex-direction:column;gap:6px;padding:4px 0 2px}.rehome-new-object .decompose-reconcile-pick{justify-content:flex-start}.decompose-reconcile-prop{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.decompose-reconcile-pick{display:flex;align-items:center;gap:6px}.decompose-reconcile-pick-label{font-size:var(--fs-xs);color:var(--fg-mute)}.decompose-reconcile-pick select{font-size:var(--fs-sm);font-family:var(--ff-sans);padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm)}.decompose-dialog-danger{color:#fff;background:var(--status-red, #c62828);border-color:var(--status-red, #c62828)}.delete-object-dialog{max-width:440px;min-width:340px}.delete-count-header{margin:0 0 10px;font-size:var(--fs-sm)}.delete-inventory-body{max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin:0 0 12px;padding:8px 10px;background:var(--bg-subtle, rgba(0, 0, 0, .02));border:1px solid var(--border);border-radius:var(--radius-sm)}.delete-flow-section{display:flex;flex-direction:column;gap:3px}.delete-flow-heading{margin:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-mute)}.delete-flow-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.delete-flow-row{display:flex;align-items:center;gap:6px}.delete-flow-arrow{color:var(--fg-mute);font-variant-numeric:tabular-nums}.delete-flow-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-flow-badge{flex:none;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--fg-2);background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 5px}.delete-no-flows{margin:0;font-size:var(--fs-sm);color:var(--fg-mute)}.delete-unsourced-note{margin:0;font-size:var(--fs-xs);color:var(--fg-2)}.delete-undepict-note{margin:0 0 14px}.emergent-dialog-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000040}.emergent-dialog{max-width:440px;min-width:340px;padding:16px 18px;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.emergent-dialog-msg{margin:0 0 12px}.emergent-dialog-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.emergent-dialog-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm)}.emergent-dialog-info{display:flex;flex-direction:column;gap:2px;min-width:0}.emergent-dialog-prop{font-weight:var(--fw-semibold)}.emergent-dialog-meta{font-size:var(--fs-xs);color:var(--fg-mute)}.emergent-dialog-producer,.emergent-dialog-dest{color:var(--fg-2)}.emergent-dialog-unbound{color:var(--warn, #b45309);font-style:italic}.emergent-dialog-choices{display:flex;gap:10px;flex-shrink:0}.emergent-dialog-choice{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);cursor:pointer}.emergent-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.emergent-dialog-go{padding:6px 12px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.emergent-dialog-cancel{padding:6px 12px;font-size:var(--fs-sm);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.emergent-dialog-resolution .emergent-dialog-candidates{display:flex;flex-direction:column;gap:4px;margin-top:8px}.encapsulate-error-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:50;max-width:520px;padding:10px 14px;background:var(--bg-page);border:1px solid var(--danger, #c0392b);border-left:3px solid var(--danger, #c0392b);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);color:var(--danger, #c0392b);font-size:13px;line-height:1.4}.encapsulate-success-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:12px;max-width:560px;padding:10px 14px;background:var(--bg-page);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);color:var(--fg);font-size:13px;line-height:1.4}.encapsulate-success-toast .toast-msg{flex:1 1 auto}.encapsulate-success-toast .toast-open{flex:0 0 auto;padding:4px 10px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.encapsulate-success-toast .toast-dismiss{flex:0 0 auto;padding:4px 8px;font-size:var(--fs-sm);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans);color:var(--fg)}.encapsulate-dialog-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000040}.encapsulate-dialog{max-width:460px;min-width:360px;max-height:80vh;display:flex;flex-direction:column;padding:16px 18px;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.encapsulate-dialog-msg{margin:0 0 12px}.encapsulate-dialog-parent{font-weight:var(--fw-semibold)}.encapsulate-dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.encapsulate-section{display:flex;flex-direction:column;gap:4px}.encapsulate-section-heading{margin:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-mute)}.encapsulate-section-sub{margin:0;font-size:var(--fs-xs);color:var(--fg-mute)}.encapsulate-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.encapsulate-row{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.encapsulate-resolve-row{justify-content:space-between}.encapsulate-prop{font-weight:var(--fw-semibold)}.encapsulate-meta{color:var(--fg-2)}.encapsulate-dir{font-variant-numeric:tabular-nums;font-size:var(--fs-xs);color:var(--fg-mute);text-transform:uppercase}.encapsulate-resolve-btn{padding:3px 8px;font-size:var(--fs-xs);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.encapsulate-resolve-btn:hover{border-color:var(--accent);color:var(--accent)}.encapsulate-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.encapsulate-dialog-go{padding:6px 12px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--fg-on-dark);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.encapsulate-dialog-go:disabled{opacity:.5;cursor:not-allowed}.encapsulate-dialog-cancel{padding:6px 12px;font-size:var(--fs-sm);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--ff-sans)}.dfd-droptarget-ring{fill:none;stroke:#16a34a;stroke-width:2.5;stroke-dasharray:5 3;pointer-events:none}.ob-add{background:transparent;border:none;cursor:pointer;font-size:var(--fs-body);padding:0 4px;color:var(--fg-2);margin-left:4px}.ob-add:hover{color:var(--accent)}.ob-new-dept{display:block;width:calc(100% - 8px);margin:2px 4px 4px;padding:3px 6px;font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--ff-sans)}.ob-role-row{padding-left:12px}.actor-field{position:relative}.actor-scope-crumb{color:var(--fg-mute);font-size:var(--fs-xs)}.actor-dropdown{position:absolute;z-index:50;left:0;right:0;margin:2px 0 0;padding:4px 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);max-height:240px;overflow-y:auto}.actor-row{padding:6px 10px;font-size:var(--fs-sm);cursor:pointer}.actor-row-active{background:var(--bg-chip)}.actor-row[data-create]{color:var(--accent)}.ob-num{color:var(--fg-mute);font-size:var(--fs-caption)}.ob-unhomed{margin-left:6px;padding:0 5px;border-radius:8px;font-size:var(--fs-caption);font-style:italic;color:var(--fg-mute);background:var(--bg-subtle, rgba(148, 163, 184, .18))}.ob-home-menu-header{padding:6px 12px 4px;font-size:var(--fs-caption);font-weight:600;color:var(--fg-mute)}.ob-home-menu-empty{padding:4px 12px 8px;font-size:var(--fs-caption);color:var(--fg-mute)}.ob-usage{margin-left:auto;font-size:var(--fs-caption);color:var(--fg-mute);white-space:nowrap}.ob-type-hint{font-size:var(--fs-caption);color:var(--fg-mute);font-style:italic}.ob-scope-hint{font-size:var(--fs-caption);color:var(--fg-mute);opacity:.6;text-transform:uppercase;letter-spacing:.03em}.dfd-staged-pill{fill:#64748b;pointer-events:none}.staged-row{display:flex;gap:4px;align-items:center;margin-bottom:4px}.staged-row input.staged-name{flex:1;min-width:0}.staged-row button{flex:none}input.staged-add{width:100%;margin-top:4px}.branch-row{display:flex;gap:6px;align-items:center;margin:2px 0}.branch-target{font-size:12px;color:#475569;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-row input.branch-label-input{flex:1;min-width:0}.payload-derived-name{font-weight:600;font-size:var(--fs-caption)}.payload-derived-prop{font-size:var(--fs-caption);color:#475569;padding-left:12px}.seq-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.seq-chip{display:inline-flex;align-items:center;gap:2px;background:#eef2f7;border:1px solid #cbd5e1;border-radius:10px;padding:1px 6px;font-size:var(--fs-caption)}.seq-chip button{border:none;background:none;cursor:pointer;font-size:11px;color:#64748b;padding:0}input.seq-add{width:40px;border:1px dashed #cbd5e1;border-radius:10px;font-size:var(--fs-caption);padding:1px 6px}.party-usage-group{margin-top:4px}.party-usage-kind{display:block;font-size:var(--fs-caption);color:#64748b;margin-bottom:2px}.party-usage-chips{display:flex;flex-wrap:wrap;gap:4px}.party-usage-chip{display:inline-flex;align-items:center;background:#eef2f7;border:1px solid #cbd5e1;border-radius:10px;padding:1px 8px;font-size:var(--fs-caption);color:#1e293b;cursor:pointer}.party-usage-chip:hover{background:#e2e8f0}.inspector-error{margin-top:6px;font-size:var(--fs-caption);color:#b91c1c}.wizard-ai-card{border:1px dashed var(--border);color:#94a3b8;border-radius:var(--radius-md);padding:8px 10px;margin:10px 0;font-size:var(--fs-xs);cursor:not-allowed}.outputs-list{list-style:none;margin:4px 0 6px;padding:0;display:flex;flex-direction:column;gap:4px}.outputs-loose-end{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs)}.outputs-loose-end-warn{position:relative;color:#b45309;font-size:var(--fs-xs);flex:none;cursor:default;background:transparent;border:none;padding:0;line-height:1;outline-offset:2px}.outputs-loose-end-warn:before{content:attr(aria-label);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);white-space:nowrap;background:var(--bg-dark);color:var(--fg-on-dark);font-size:var(--fs-caption);padding:3px 7px;border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity .15s;z-index:100}.outputs-loose-end-warn:hover:before,.outputs-loose-end-warn:focus-visible:before{opacity:1}.outputs-name-btn{flex:1;min-width:0;text-align:left;background:transparent;border:none;padding:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:#92400e;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--ff-sans)}.outputs-name-btn:hover{text-decoration:underline;color:#78350f}.outputs-rename-input{flex:1;min-width:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px 4px;border:1px solid var(--border);border-radius:3px;color:var(--fg-1);background:var(--bg-page);font-family:var(--ff-sans)}.outputs-row-actions{display:flex;align-items:center;gap:3px;flex:none}.outputs-route-btn{font-size:var(--fs-caption);padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-page);cursor:pointer;white-space:nowrap;color:var(--fg-2);font-family:var(--ff-sans)}.outputs-route-btn:hover:not(:disabled){background:var(--bg-chip);color:var(--fg-1)}.outputs-route-btn:disabled{opacity:.5;cursor:not-allowed}.outputs-delete-btn{background:transparent;border:none;color:var(--fg-mute);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:2px 3px}.outputs-delete-btn:hover{color:#dc2626}.outputs-golden-badge{display:inline-flex;align-items:center;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:var(--radius-pill);padding:1px var(--space-2);white-space:nowrap;flex:none}.outputs-golden-other{font-size:var(--fs-caption);color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;flex:none}.outputs-golden-action{font-family:var(--ff-sans);font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:1px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--bg-page);color:var(--fg-2);white-space:nowrap;flex:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.outputs-golden-action:hover:not(:disabled){background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.outputs-golden-action:disabled{opacity:.5;cursor:not-allowed}.outputs-golden-set{color:var(--d3-blue-deep);border-color:var(--d3-blue-soft);background:var(--d3-blue-soft)}.outputs-golden-set:hover:not(:disabled){background:#bfcbf7;border-color:var(--accent);color:var(--d3-blue-deep)}.project-actions-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-2);background:var(--bg-section);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.project-actions-sep{width:1px;height:16px;background:var(--border);margin:0 var(--space-1);flex:none}.project-action-btn{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;white-space:nowrap;color:var(--fg-2);font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.project-action-btn:hover{background:var(--bg-chip);color:var(--fg-1);border-color:var(--border)}.project-action-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.diagrams-table{width:100%;border-collapse:collapse;margin-top:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.diagrams-th{text-align:left;font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3);padding:var(--space-1) var(--space-3) var(--space-2);border-bottom:1px solid var(--border);background:var(--bg-section)}.diagrams-th-name{width:50%}.diagrams-th-type{width:auto}.diagrams-th-actions{width:40px}.diagrams-row{background:var(--bg-page);border-bottom:1px solid var(--border-soft);transition:background var(--dur-fast) var(--ease-out)}.diagrams-row:last-child{border-bottom:none}.diagrams-row:hover{background:var(--bg-section)}.diagrams-td{padding:var(--space-2) var(--space-3);vertical-align:middle}.diagrams-td-actions{text-align:right;padding-right:var(--space-2)}.diagram-type-badge{display:inline-block;font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--d3-blue-soft);color:var(--d3-blue-deep);border:1px solid rgba(23,55,208,.18);white-space:nowrap;letter-spacing:var(--ls-normal)}.diagram-type-badge-vignette{background:#7c3aad1f;color:#6b21a8;border:1px solid rgba(124,58,173,.28)}.diagram-type-badge-sketch{background:#0d94881f;color:#0f766e;border:1px solid rgba(13,148,136,.28)}.diagram-menu-btn{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:16px;line-height:1;padding:var(--space-1) var(--space-2);color:var(--fg-3);font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.diagram-menu-btn:hover,.diagram-menu-btn[aria-expanded=true]{background:var(--bg-chip);border-color:var(--border);color:var(--fg-1)}.diagram-menu-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.diagram-row-menu-backdrop{position:fixed;inset:0;z-index:99}.diagram-row-menu{min-width:210px;padding:var(--space-1) 0;background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.diagram-row-menu-item{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);color:var(--fg-1);background:transparent;border:none;cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.diagram-row-menu-item:hover{background:var(--bg-chip)}.diagram-row-menu-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.diagram-row-menu-sep{height:0;border:none;border-top:1px solid var(--border-soft);margin:var(--space-1) 0}.loose-ends-module{border:1px solid #fde68a;border-left:3px solid #d97706;border-radius:var(--radius-md);background:var(--bg-page);font-size:var(--fs-xs);max-height:240px;overflow-y:auto;flex:0 1 auto;min-height:0;box-shadow:var(--shadow-card)}.loose-ends-module-header{display:block;width:100%;padding:var(--space-2) var(--space-2);border:none;border-bottom:1px solid #fde68a;background:#fffbeb;color:#92400e;font-weight:var(--fw-bold);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);text-align:left;cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.loose-ends-module-header:hover{background:#fef3c7}.loose-ends-module-header:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.loose-ends-module-list{margin:0;padding:2px 0;list-style:none}.loose-ends-module-row{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:3px 8px}.loose-ends-module-info{display:flex;flex-direction:column;min-width:0;flex:1}.loose-ends-module-name{font-weight:var(--fw-semibold);color:#b45309;font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loose-ends-module-attr{font-size:var(--fs-caption);color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loose-ends-route-btn{font-size:var(--fs-caption);padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-page);cursor:pointer;white-space:nowrap;flex:none;color:var(--fg-2);font-family:var(--ff-sans)}.loose-ends-route-btn:hover:not(:disabled){background:var(--bg-chip);color:var(--fg-1)}.loose-ends-route-btn:disabled{opacity:.5;cursor:not-allowed}.le-divider{height:1px;background:#fde68a;margin:2px 0}.le-section-header{padding:2px 8px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:#92400e;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);background:#fffbeb}.le-actions{display:flex;gap:3px;flex:none}.le-del-btn{font-size:var(--fs-caption);padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-page);cursor:pointer;white-space:nowrap;color:var(--fg-2);font-family:var(--ff-sans)}.le-del-btn:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.provenance-panel{border:1px solid #c7d2fe;border-left:3px solid #1737d0;border-radius:var(--radius-md);background:var(--bg-page);font-size:var(--fs-xs);max-height:280px;overflow-y:auto;flex:0 1 auto;min-height:0;box-shadow:var(--shadow-card)}.provenance-panel-header{display:block;width:100%;padding:var(--space-2) var(--space-2);border:none;border-bottom:1px solid #c7d2fe;background:#eef2ff;color:#1e3a8a;font-weight:var(--fw-bold);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);text-align:left;cursor:pointer;font-family:var(--ff-sans);transition:background var(--dur-fast) var(--ease-out)}.provenance-panel-header:hover{background:#e0e7ff}.provenance-panel-header:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.provenance-progress{padding:var(--space-2) var(--space-2);font-size:var(--fs-caption);color:var(--fg-2)}.provenance-progress-bar{margin-top:4px;height:4px;border-radius:2px;background:#e0e7ff;overflow:hidden}.provenance-progress-fill{height:100%;background:#1737d0;transition:width var(--dur-fast) var(--ease-out)}.provenance-empty{padding:var(--space-2) var(--space-2);font-size:var(--fs-caption);color:var(--fg-2);font-style:italic}.provenance-loose-summary{padding:var(--space-1) var(--space-2);font-size:var(--fs-caption);color:var(--accent-amber, #d97706)}.provenance-group-hint{padding:0 var(--space-2) 2px;font-size:var(--fs-caption);color:var(--fg-2);font-style:italic}.provenance-group{padding-bottom:2px}.provenance-group-header{padding:3px 8px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--fg-2);text-transform:uppercase;letter-spacing:var(--ls-eyebrow)}.provenance-row{display:flex;align-items:center;gap:4px;width:100%;padding:3px 8px 3px 16px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:var(--ff-sans);font-size:var(--fs-xs);color:var(--fg-1)}.provenance-row:hover{background:var(--bg-soft)}.provenance-row:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.provenance-name{font-weight:var(--fw-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provenance-producers{font-size:var(--fs-caption);color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}.provenance-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;flex:none}.provenance-dot.is-confirmed{background:#1737d0}.provenance-dot.is-assumed{background:#fff;border:1.5px dashed #1737d0}.provenance-dot.is-unsourced{background:#d97706}.provenance-dot.is-multi{background:#7c3aed}.provenance-dot.is-external{background:#94a3b8}.provenance-dot[data-used=yes]{background:#1737d0}.provenance-dot[data-used=no]{background:#dc2626}.declared-outputs-summary{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-2)}.declared-outputs-inspect{border:1px solid var(--border, #d0d0d0);background:var(--bg-1, #fff);border-radius:4px;cursor:pointer;padding:1px 6px;font-size:12px;line-height:1.4}.declared-outputs-inspect:hover{background:var(--bg-2, #f2f2f2)}.declared-outputs-overlay{max-width:360px}.declared-outputs-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.declared-outputs-close{border:none;background:transparent;cursor:pointer;font-size:14px;line-height:1;padding:2px 4px}.declared-outputs-list{list-style:none;margin:8px 0 0;padding:0;max-height:320px;overflow-y:auto}.declared-outputs-row{display:flex;align-items:center;flex-wrap:wrap;padding:3px 0}.declared-outputs-name{font-size:13px}.declared-outputs-row .declared-outputs-name{flex:1}.declared-outputs-delete{background:transparent;border:none;color:var(--fg-mute);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:2px 3px}.declared-outputs-delete:hover{color:#dc2626}.declared-outputs-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;flex-basis:100%;margin-top:4px}.declared-outputs-confirm-text{flex-basis:100%;font-size:var(--fs-caption);color:#92400e}.declared-outputs-confirm-yes,.declared-outputs-confirm-no{border:1px solid var(--border, #d1d5db);background:var(--bg-elev, #fff);cursor:pointer;font-size:var(--fs-caption);line-height:1;padding:2px 6px;border-radius:4px;white-space:nowrap}.declared-outputs-confirm-yes{color:#dc2626}.bc-producer-annotation{fill:#94a3b8;font-style:italic}.bc-producer-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;flex:none;vertical-align:middle}.bc-producer-dot.is-confirmed{fill:#1737d0;background:#1737d0}.bc-producer-dot.is-assumed{fill:#fff;background:#fff;stroke:#1737d0;stroke-width:1.5;stroke-dasharray:2 1.5;border:1.5px dashed #1737d0}.bc-producer-dot.is-unsourced{fill:#d97706;background:#d97706}.bc-producer-dot.is-multi{fill:#7c3aed;background:#7c3aed}.bc-producer-dot.is-external{fill:#94a3b8;background:#94a3b8}.app-placeholder:has(.pb-root){max-width:none}.pb-root{display:flex;flex-direction:column;height:calc(100vh - 96px);min-height:400px}.pb-header-bar{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-3) 0 var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-4)}.pb-back-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-link);cursor:pointer;font-family:var(--ff-sans);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-3);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);white-space:nowrap}.pb-back-btn:hover{background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.pb-back-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pb-view-title{margin:0;font-size:var(--fs-h-page);font-weight:var(--fw-semibold);color:var(--fg-1);letter-spacing:var(--ls-tight);line-height:var(--lh-heading)}.pb-view-subtitle{font-size:var(--fs-xs);color:var(--fg-3)}.pb-body{display:flex;flex:1;overflow:hidden;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-page);box-shadow:var(--shadow-card)}.pb-glossary-pane{width:260px;min-width:200px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden}.pb-glossary-search-wrap{padding:var(--space-3);border-bottom:1px solid var(--border-soft)}.pb-search{width:100%;font-family:var(--ff-sans);font-size:var(--fs-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-section);color:var(--fg-1);box-sizing:border-box}.pb-search:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.pb-glossary-list{list-style:none;margin:0;padding:var(--space-1) 0;overflow-y:auto;flex:1}.pb-glossary-list li{margin:0}.pb-glossary-item{width:100%;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;font-family:var(--ff-sans);text-align:left;transition:background var(--dur-fast) var(--ease-out)}.pb-glossary-item:hover{background:var(--bg-section)}.pb-glossary-item-selected{background:var(--d3-blue-soft);border-left-color:var(--accent)}.pb-glossary-item-selected:hover{background:var(--d3-blue-soft)}.pb-glossary-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pb-glossary-item-main{display:flex;align-items:center;gap:var(--space-1)}.pb-glossary-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg-1)}.pb-glossary-item-meta{font-size:var(--fs-caption);color:var(--fg-3)}.pb-meta-flow{font-variant-numeric:tabular-nums}.pb-detail-pane{flex:1;overflow-y:auto;min-width:0}.pb-no-selection{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--space-6)}.pb-no-selection-hint{color:var(--fg-mute);font-size:var(--fs-sm);font-style:italic;text-align:center}.pb-lineage-panel{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.pb-lineage-header{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-soft)}.pb-lineage-title{margin:0;font-size:var(--fs-h-page);font-weight:var(--fw-semibold);color:var(--fg-1);letter-spacing:var(--ls-tight)}.object-notes-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000040}.object-notes-dialog{width:min(640px,92vw);max-height:70vh;display:flex;flex-direction:column;padding:16px 18px;background:var(--bg-page);border:2px solid var(--border-strong, var(--border));border-radius:var(--radius-md);box-shadow:0 12px 32px #00000038,0 2px 6px #0000001f;font-size:var(--fs-sm)}.object-notes-title{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border);font-size:var(--fs-h-section, var(--fs-md));font-weight:var(--fw-semibold);color:var(--fg-1);flex:0 0 auto}.object-notes-readonly{font-weight:var(--fw-normal);font-size:var(--fs-xs);color:var(--fg-mute)}.object-notes-grid{display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0;overflow-y:auto}.object-notes-head{display:grid;grid-template-columns:20px 1fr 1fr 22px;gap:8px;padding:0 2px 6px;flex:0 0 auto}.object-notes-col-head{grid-column:span 1;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--fg-mute)}.object-notes-head .object-notes-col-head:first-child{grid-column:2}.object-notes-row{display:grid;grid-template-columns:20px 1fr 1fr 22px;gap:8px;align-items:start}.object-notes-row-readonly{grid-template-columns:1fr 1fr}.object-notes-drag{cursor:grab;user-select:none;color:var(--fg-mute);line-height:1.8;text-align:center}.object-notes-textarea{width:100%;resize:none;overflow:hidden;padding:4px 6px;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input, var(--bg-page));color:var(--fg-1);box-sizing:border-box}.object-notes-cell-static{padding:4px 6px;white-space:pre-wrap;color:var(--fg-1)}.object-notes-delete{border:none;background:transparent;cursor:pointer;color:var(--fg-mute);font-size:var(--fs-sm);line-height:1.6;padding:0}.object-notes-delete:hover{color:var(--danger, #b91c1c)}.object-notes-footer{display:flex;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);flex:0 0 auto}.object-notes-close{padding:6px 12px;font-size:var(--fs-sm);font-family:var(--ff-sans);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-1);cursor:pointer}.object-notes-close:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.pb-lineage-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-xs);color:var(--fg-3)}.pb-meta-count{font-variant-numeric:tabular-nums}.pb-meta-sep{color:var(--fg-mute);user-select:none}.pb-ambiguity-note{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--d3-ink-2);background:#fef9c3;border:1px solid #fde68a;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3)}.pb-section{display:flex;flex-direction:column;gap:var(--space-2)}.pb-section-heading{margin:0;font-size:var(--fs-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--fg-3)}.pb-level-group{display:flex;flex-direction:column;gap:var(--space-1)}.pb-level-label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--fg-mute);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);padding:var(--space-1) 0}.pb-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--bg-section);border:1px solid var(--border-soft);font-size:var(--fs-sm)}.pb-row-main{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.pb-row-actions{display:flex;align-items:center;gap:var(--space-1);flex:none}.pb-object-name{font-weight:var(--fw-medium);color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb-object-kind{font-size:var(--fs-caption);color:var(--fg-3);background:var(--bg-chip);border-radius:var(--radius-pill);padding:1px var(--space-2);text-transform:lowercase;flex:none}.pb-flow-arrow{font-size:var(--fs-xs);color:var(--fg-2);font-family:var(--ff-mono)}.pb-badge{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);padding:1px var(--space-2);border-radius:var(--radius-pill);flex:none}.pb-badge-master{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.pb-badge-small{padding:0 4px;font-size:var(--fs-micro)}.pb-chip{display:inline-flex;align-items:center;font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:1px var(--space-2);border-radius:var(--radius-pill);flex:none}.pb-chip-inherited{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}.pb-chip-boundary{background:var(--d3-blue-soft);color:var(--d3-blue-deep);border:1px solid #a5b4fc}.pb-chip-declared{background:var(--bg-chip);color:var(--fg-3);border:1px solid var(--border-soft)}.pb-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;flex:none;vertical-align:middle}.pb-status-dot.is-confirmed{background:#1737d0}.pb-status-dot.is-assumed{background:#fff;border:1.5px dashed #1737d0}.pb-status-dot.is-unsourced{background:#d97706}.pb-status-dot.is-external{background:#94a3b8}.pb-status-dot.is-multi{background:#7c3aed}.pb-producer-status{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-caption);color:var(--fg-3);flex:none}.pb-status-label{font-size:var(--fs-caption);color:var(--fg-3)}.pb-empty-status{display:flex;align-items:center;gap:0}.pb-golden-mark{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:var(--radius-pill);padding:1px var(--space-2);flex:none}.pb-action-btn{font-family:var(--ff-sans);font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:2px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--bg-page);color:var(--fg-2);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);white-space:nowrap}.pb-action-btn:hover:not(:disabled){background:var(--bg-chip);border-color:var(--border-strong);color:var(--fg-1)}.pb-action-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pb-action-btn:disabled{opacity:.5;cursor:not-allowed}.pb-action-set{color:var(--d3-blue-deep);border-color:var(--d3-blue-soft);background:var(--d3-blue-soft)}.pb-action-set:hover:not(:disabled){background:#bfcbf7;border-color:var(--accent);color:var(--d3-blue-deep)}.pb-action-clear{color:var(--fg-3)}.pb-loading-text{font-size:var(--fs-sm);color:var(--fg-mute);font-style:italic;padding:var(--space-5)}.pb-empty{font-size:var(--fs-sm);color:var(--fg-mute);font-style:italic;margin:0;padding:var(--space-2) 0}.pb-glossary-empty{padding:var(--space-4) var(--space-3)}.pb-lineage-loading{display:flex;align-items:center;justify-content:center;min-height:160px}.group-panel-label{font-family:var(--ff-sans);font-weight:700;fill:#1a1a1a;dominant-baseline:middle;user-select:none;pointer-events:auto}.group-panel-label-edit{width:100%;height:100%;box-sizing:border-box;padding:0;margin:0;border:none;border-radius:0;outline:none;box-shadow:none;background:transparent;font-family:var(--ff-sans);font-weight:700;text-align:left;color:#1a1a1a}.group-panel-resize-handle{fill:#fff;stroke:var(--accent, #2563eb);stroke-width:1}.sticky-note-body{cursor:default}.note-text{white-space:pre-wrap;overflow-wrap:break-word;font-family:var(--ff-sans);font-size:12px;line-height:1.35;color:#111;padding:8px;box-sizing:border-box;width:100%;height:100%;overflow:hidden}.note-text-edit{width:100%;height:100%;box-sizing:border-box;padding:8px;border:none;outline:none;resize:none;background:transparent;font-family:var(--ff-sans);font-size:12px;line-height:1.35;color:#111;white-space:pre-wrap;overflow-wrap:break-word}.note-tether{stroke:#94a3b8;stroke-width:1.2;fill:none;pointer-events:none}.note-tether-preview{stroke-width:1.5;fill:none;pointer-events:none}.note-pin{cursor:pointer}.note-pin-dot{fill:#ffffffd9;pointer-events:none}.note-swatch{cursor:pointer}.note-link-handle{cursor:grab}.note-resize-handle{fill:#fff;stroke:var(--border-strong, #94a3b8);stroke-width:1}.dfd-resize-handle{fill:#fff;stroke:var(--accent, #2563eb);stroke-width:1.5}.dfd-resize-handle:hover{fill:var(--accent, #2563eb)}.notes-count-badge{display:inline-block;min-width:16px;padding:0 4px;margin-left:2px;border-radius:8px;background:var(--bg-chip);color:var(--fg-2);font-size:var(--fs-xs);text-align:center}.ai-optin-gate{display:flex;flex-direction:column;gap:12px;padding:16px}.ai-optin-loading{align-items:center;justify-content:center}.ai-optin-title{margin:0;font-size:var(--fs-md)}.ai-optin-disclosure{margin:0;color:var(--fg-2);font-size:var(--fs-sm);line-height:1.4}.ai-optin-enable{align-self:flex-start}.ai-spinner{width:20px;height:20px;border:2px solid var(--bg-chip);border-top-color:var(--fg-2);border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-toggle-btn{margin-left:auto;border-color:var(--accent);color:var(--accent);background:var(--bg-page)}.ai-toggle-btn.is-active{background:var(--accent);color:var(--fg-on-dark);border-color:var(--accent);font-weight:var(--fw-semibold)}.ai-sidebar-wrap{position:absolute;inset:0;z-index:5;display:flex;overflow:hidden;pointer-events:none;transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out)}.ai-sidebar-wrap.is-open{pointer-events:auto;transform:translate(0)}.ai-sidebar{flex:1;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg-section);box-shadow:-3px 0 8px #0f172a1f;margin-bottom:0;overflow:hidden}.ai-chat{display:flex;flex-direction:column;flex:1;min-height:0}.ai-chat-list{display:flex;flex-direction:column;gap:8px;padding:12px;flex:1;min-height:0;overflow-y:auto}.ai-chat-empty{margin:0;color:var(--fg-2);font-size:var(--fs-sm);line-height:1.4}.ai-bubble-wrap{display:flex;flex-direction:column;gap:2px;max-width:92%}.ai-bubble-wrap-user{align-self:flex-end;align-items:flex-end}.ai-bubble-wrap-assistant{align-self:flex-start;align-items:flex-start}.ai-bubble-pin{font-size:var(--fs-xs, 11px);opacity:0;transition:opacity var(--dur-fast, .12s) ease}.ai-bubble-wrap:hover .ai-bubble-pin,.ai-bubble-pin:focus-within{opacity:1}.ai-bubble{padding:8px 10px;border-radius:8px;font-size:var(--fs-sm);line-height:1.45;white-space:pre-wrap;word-break:break-word;max-width:100%}.ai-bubble-user{background:var(--accent);color:var(--fg-on-dark);border-bottom-right-radius:4px}.ai-bubble-assistant{background:var(--bg-chip);color:var(--fg-1);border:1px solid var(--border);border-bottom-left-radius:4px}.ai-chip{display:inline-block;padding:0 6px;margin:0 1px;border:1px solid #93c5fd;border-radius:5px;background:#e0edff;color:#1d4ed8;font-size:inherit;line-height:inherit;font-weight:500;cursor:pointer}.ai-chip:hover{background:var(--accent);color:var(--fg-on-dark);border-color:var(--accent)}.ai-chat-error{margin:0 12px 4px;font-size:var(--fs-sm)}.ai-chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);align-items:flex-end}.ai-chat-input{flex:1 1 auto;resize:vertical;min-height:38px;font:inherit;font-size:var(--fs-sm);padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-1);color:var(--fg-1)}.ai-chat-actions{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.ai-chat-send,.ai-chat-stop{display:flex;align-items:center;justify-content:center;min-width:38px;height:38px;font:inherit;font-size:var(--fs-md);line-height:1;padding:5px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-section);color:var(--fg-1);cursor:pointer}.ai-chat-send:disabled,.ai-chat-stop:disabled{opacity:.5;cursor:default}.ai-chat-send:not(:disabled){background:var(--accent);color:var(--fg-on-dark);border-color:var(--accent);font-weight:var(--fw-semibold)}.ai-chat-footer{display:flex;gap:12px;padding:8px 12px;border-top:1px solid var(--border)}.ai-chat-footer-link{font:inherit;font-size:var(--fs-sm);padding:2px 4px;border:none;background:none;color:var(--accent, #2f6fed);cursor:pointer;text-align:left}.ai-chat-footer-link:hover{text-decoration:underline}.dossier-pin,.dossier-pin-kind,.dossier-pin-cancel{font:inherit;font-size:var(--fs-xs, 11px);padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-section);color:var(--fg-1);cursor:pointer}.dossier-pin:hover,.dossier-pin-kind:hover{border-color:var(--accent, #2f6fed);color:var(--accent, #2f6fed)}.dossier-pin-picker{display:inline-flex;align-items:center;gap:4px}.dossier-pin-picker-label{font-size:var(--fs-xs, 11px);color:var(--fg-2)}.dossier-pin-saved{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs, 11px);color:var(--fg-2);font-style:italic}.dossier-pin-view{font:inherit;font-size:var(--fs-xs, 11px);font-style:normal;padding:0;border:none;background:none;color:var(--accent, #2f6fed);cursor:pointer;text-decoration:underline}.dossier-pin-view:hover{color:var(--accent-strong, #1d4ed8)}.ai-memory-panel{border-top:1px solid var(--border);padding:10px 12px 12px}.ai-memory-header{margin-bottom:8px}.ai-memory-title{margin:0 0 2px;font-size:var(--fs-sm)}.ai-memory-sub{margin:0;color:var(--fg-2);font-size:var(--fs-xs, 11px);line-height:1.35}.ai-memory-empty{margin:0;color:var(--fg-2);font-size:var(--fs-sm)}.ai-memory-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ai-memory-row{display:flex;gap:6px;align-items:center}.ai-memory-input{flex:1 1 auto;font:inherit;font-size:var(--fs-sm);padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-1);color:var(--fg-1)}.ai-memory-delete{flex:0 0 auto;width:22px;height:22px;line-height:1;border:1px solid var(--border);border-radius:4px;background:var(--bg-section);color:var(--fg-2);cursor:pointer}.ai-memory-delete:hover{color:var(--danger, #c0392b);border-color:var(--danger, #c0392b)}.ai-critique-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.ai-critique-run{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:5px 12px;border:1px solid var(--accent, #2f6fed);border-radius:5px;background:var(--accent, #2f6fed);color:#fff;cursor:pointer}.ai-critique-run:disabled{opacity:.6;cursor:default}.ai-critique-scope{display:flex;gap:10px;font-size:var(--fs-xs, 11px);color:var(--fg-2)}.ai-critique-scope-opt{display:flex;align-items:center;gap:4px;cursor:pointer}.ai-critique-progress{flex:1 1 100%;margin:0;color:var(--fg-2);font-size:var(--fs-xs, 11px)}.ai-critique-error{flex:1 1 100%;margin:0;font-size:var(--fs-xs, 11px)}.ai-findings-panel{border-top:1px solid var(--border);padding:10px 12px 12px}.ai-findings-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.ai-findings-title{margin:0;font-size:var(--fs-sm)}.ai-findings-actions{display:flex;gap:6px}.ai-findings-rerun,.ai-findings-undo{font:inherit;font-size:var(--fs-xs, 11px);padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-section);color:var(--fg-1);cursor:pointer}.ai-findings-rerun:hover,.ai-findings-undo:hover{border-color:var(--accent, #2f6fed)}.ai-findings-empty{margin:0;color:var(--fg-2);font-size:var(--fs-sm)}.ai-findings-truncated{display:block;margin:0 0 8px;padding:6px 8px;border:1px solid var(--warn, #d9a441);border-radius:4px;background:var(--warn-bg, rgba(217, 164, 65, .12));color:var(--fg);font-size:var(--fs-sm)}.ai-finding-group{margin-bottom:10px}.ai-finding-group-label{margin:0 0 6px;font-size:var(--fs-xs, 11px);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-2)}.ai-finding-group-red .ai-finding-group-label{color:var(--danger, #c0392b)}.ai-finding-group-yellow .ai-finding-group-label{color:#b7791f}.ai-finding-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ai-finding{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:5px;padding:7px 9px;background:var(--bg-1)}.ai-finding-group-red .ai-finding{border-left-color:var(--danger, #c0392b)}.ai-finding-group-yellow .ai-finding{border-left-color:#d4a017}.ai-finding-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}.ai-finding-title{font-weight:600;font-size:var(--fs-sm)}.ai-finding-chips{display:inline-flex;flex-wrap:wrap;gap:4px}.ai-finding-rationale,.ai-finding-goal,.ai-finding-remediation{margin:0 0 3px;font-size:var(--fs-xs, 11px);line-height:1.4;color:var(--fg-1)}.ai-finding-goal{color:var(--fg-2);font-style:italic}.ai-finding-remediation{color:var(--fg-2)}.finding-ctx{margin:4px 0 6px;display:grid;gap:2px}.finding-ctx-row{display:grid;grid-template-columns:92px 1fr;font-size:var(--fs-xs, 11px);line-height:1.5}.finding-ctx-key{color:var(--fg-3)}.finding-ctx-val{color:var(--fg-1)}.finding-ctx-obj{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-align:left}.finding-ctx-obj:disabled{color:inherit;cursor:default}.finding-ctx-num{color:var(--fg-3)}.finding-ctx-gap{color:var(--warn, #b45309);font-style:italic}.ai-finding-fix{font:inherit;font-size:var(--fs-xs, 11px);padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-section);color:var(--fg-2);cursor:not-allowed;opacity:.65}.ai-finding-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.findings-discuss-btn{font:inherit;font-size:var(--fs-xs, 11px);padding:2px 8px;border:1px solid var(--accent, var(--border));border-radius:4px;background:var(--bg-section);color:var(--accent, var(--fg-1));cursor:pointer}.findings-discuss-btn:disabled{border-color:var(--border);color:var(--fg-2);cursor:not-allowed;opacity:.65}.findings-discuss-error{font-size:var(--fs-xs, 11px);color:var(--danger, #c0392b)}.ai-findings-surface{position:fixed;top:calc(50px + var(--space-3) * 2);right:0;bottom:0;width:min(460px,92vw);z-index:40;display:flex;flex-direction:column;background:var(--bg-section);border-left:1px solid var(--border);box-shadow:-6px 0 18px #0f172a2e}.ai-findings-surface-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.ai-findings-surface-title{margin:0;font-size:var(--fs-md, 15px)}.ai-findings-surface-close{flex:0 0 auto;width:26px;height:26px;line-height:1;border:1px solid var(--border);border-radius:5px;background:var(--bg-1);color:var(--fg-2);cursor:pointer}.ai-findings-surface-close:hover{color:var(--fg-1);border-color:var(--accent, #2f6fed)}.ai-findings-surface-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ai-findings-surface-body .ai-findings-panel{flex:1;min-height:0;overflow-y:auto;border-top:none;padding:14px 16px 18px}.ai-findings-surface-body .ai-critique-bar{flex:0 0 auto;padding:12px 16px}
