:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f6f7f8;--panel: #ffffff;--text: #202428;--muted: #65717d;--line: #d7dde2;--line-strong: #9aa7b3;--accent: #23716f;--accent-soft: #dff0ee;--danger: #a33b34;--warn: #8a5f00;--ok: #1f6b3b;--bias: #b24567;--causal: #2368a2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,select{min-height:32px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:6px}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{width:100%;padding:5px 7px}textarea{min-height:68px;resize:vertical;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text)}.topbar select{width:230px}.app-shell{display:grid;grid-template-rows:54px minmax(0,1fr);height:100vh}.topbar{display:flex;align-items:center;gap:10px;min-width:0;overflow-x:auto;padding:7px 10px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:8px;min-width:128px;font-weight:700}.toolbar{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:max-content}.icon-button{width:auto;min-width:34px;height:34px;padding:0 9px;white-space:nowrap}.icon-button-label{font-size:13px;line-height:1}.icon-button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.workspace{display:grid;grid-template-columns:minmax(250px,270px) minmax(520px,1fr) minmax(300px,330px) minmax(280px,310px) minmax(300px,330px);grid-template-rows:minmax(0,1fr) auto;min-height:0}.side-panel{min-height:0;overflow:auto;border-color:var(--line);background:var(--panel)}.left-panel{border-right:1px solid var(--line)}.simulation-column,.scatter-panel,.right-panel{border-left:1px solid var(--line)}.variable-model-row{grid-column:1 / -1;min-height:0;max-height:280px;overflow:auto;border-top:1px solid var(--line);background:var(--panel)}.variable-model-row .panel-section{border-bottom:0}.panel-section{padding:12px;border-bottom:1px solid var(--line)}.panel-section h2{margin:0 0 10px;font-size:13px;line-height:18px;letter-spacing:0;text-transform:uppercase;color:#3d464e}.panel-section p{margin:7px 0;font-size:13px;line-height:18px}.button-row,.compact-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.variable-panel,.variable-model-panel,.distribution-editor,.conditioning-editor,.interaction-editor,.simulation-panel,.scatterplot-panel,.edge-panel{display:grid;gap:8px}.conditioning-editor,.conditioning-summary{padding:8px;border:1px solid var(--line);border-radius:6px;background:#fbfcfc}.conditioning-editor strong,.conditioning-summary strong{font-size:12px;line-height:16px;text-transform:uppercase;color:#3d464e}.conditioning-summary{display:grid;gap:3px;color:var(--muted);font-size:12px;line-height:16px}.conditioning-range input{padding:0}.simulation-status,.value-card{display:flex;align-items:center;justify-content:space-between;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%}.status-dot.active{background:var(--ok)}.status-dot.blocked{background:var(--warn)}.value-card{padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:#f8faf9}.value-card span{color:var(--accent);font-weight:700}.variable-model-panel{grid-template-columns:minmax(220px,1.25fr) minmax(180px,1fr) minmax(220px,1.15fr) minmax(210px,1.05fr) minmax(210px,1.05fr);align-items:start;gap:10px}.variable-model-block{display:grid;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:6px;background:#fbfcfc}.variable-model-block strong{font-size:12px;line-height:16px;text-transform:uppercase;color:#3d464e}.two-field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.model-facts{display:grid;gap:3px;color:var(--muted);font-size:12px;line-height:16px}.value-list,.mechanism-list{display:grid;gap:6px;margin-top:3px}.value-row{display:grid;grid-template-columns:minmax(42px,.8fr) minmax(70px,1fr) 52px auto;align-items:center;gap:6px;min-height:30px}.value-row.changed .value-number{color:var(--accent);font-weight:700}.value-row.conditioned .value-name{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.value-name,.mini-button{min-height:26px;padding:0 7px}.value-name{justify-content:flex-start;overflow:hidden;text-overflow:ellipsis}.value-number{text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.value-number.overridden{color:var(--bias)}.mini-button{font-size:12px}.mechanism-list{padding-top:8px;border-top:1px solid var(--line)}.mechanism-row{display:grid;grid-template-columns:22px minmax(58px,.65fr) minmax(170px,1.35fr) 48px;align-items:center;gap:6px;min-height:30px;padding:2px;border:1px solid transparent;border-radius:6px}.mechanism-row.selected{border-color:var(--accent);background:var(--accent-soft)}.mechanism-header{display:grid;grid-template-columns:22px minmax(58px,.65fr) minmax(170px,1.35fr) 48px;gap:6px;color:var(--muted);font-size:10px;line-height:14px;text-transform:uppercase}.mechanism-row input[type=checkbox]{width:auto}.mechanism-row input[type=number]{min-width:0;padding:3px 5px}.connection-function-summary{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:6px;min-width:0}.connection-function-summary{padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:#f8faf9;color:#394149;font-size:13px}.function-picker{position:relative;min-width:0}.function-picker-trigger,.function-picker-option{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;justify-content:stretch;gap:6px;width:100%;min-width:0;min-height:30px;padding:2px 6px 2px 2px;text-align:left}.function-picker-trigger span,.function-picker-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.function-picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;display:grid;gap:2px;width:238px;max-width:calc(100vw - 24px);max-height:320px;overflow:auto;padding:5px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;box-shadow:0 10px 26px #141f2629}.function-picker-option{border-color:transparent;background:#fff}.function-picker-option:hover,.function-picker-option.selected{border-color:var(--accent);background:var(--accent-soft)}.function-glyph{display:block;width:34px;height:24px;padding:2px;border:1px solid var(--line);border-radius:5px;background:#fff}.function-glyph-axis{fill:none;stroke:#c5cdd4;stroke-width:1.2;stroke-linecap:round}.function-glyph-curve{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.interaction-editor{padding-top:8px;border-top:1px solid var(--line)}.interaction-row{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fbfcfc}.mechanism-name{justify-content:flex-start;min-height:26px;padding:0 6px;border-color:transparent;background:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.mechanism-name:hover{border-color:var(--line);background:#fff}.mechanism-contribution{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.mechanism-contribution.positive{color:var(--causal)}.mechanism-contribution.negative{color:var(--bias)}.field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.field input,.field select,.field textarea{color:var(--text)}.check-row{display:flex;align-items:center;gap:8px;min-height:26px;font-size:13px}.check-row input{width:auto}.muted{color:var(--muted)}.warning{color:var(--warn)}.assurance{color:var(--ok)}.plain-list{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:19px}.summary-table{width:100%;border-collapse:collapse;font-size:13px}.summary-table td{padding:5px 0;border-bottom:1px solid #edf0f2;vertical-align:top}.summary-table td:last-child{text-align:right;color:#394149}.bibliography-panel{display:grid;gap:8px}.bibliography-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:12px;line-height:16px}.bibliography-list li{display:grid;gap:2px}.bibliography-list span{color:#394149;font-weight:700}.bibliography-list a{color:var(--accent);text-decoration:none}.bibliography-list a:hover{text-decoration:underline}.scatter-controls{display:grid;grid-template-columns:1fr;gap:8px}.scatterplot-svg{display:block;width:100%;aspect-ratio:14 / 11;min-height:210px;overflow:visible}.scatter-plot-background{fill:#fbfcfc;stroke:var(--line)}.scatter-axis{stroke:#758390;stroke-width:1.2}.scatter-tick-label,.scatter-axis-label{fill:var(--muted);font-size:9px;pointer-events:none}.scatter-axis-label{fill:#394149;font-weight:700;text-anchor:middle}.scatter-tick-label{font-variant-numeric:tabular-nums}.scatter-tick-label.end,.scatter-tick-label.y-start,.scatter-tick-label.y-end{text-anchor:end}.scatter-point{fill:var(--causal);stroke:#fff;stroke-width:.55}.scatter-regression{stroke:var(--bias);stroke-width:2;stroke-linecap:round;pointer-events:none}.scatter-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;color:var(--muted);font-size:12px;line-height:16px}.canvas-shell{position:relative;min-width:0;min-height:0;background:#fafafa}.graph-canvas{display:block;width:100%;height:100%;touch-action:none}.canvas-grid{fill:#fbfbfb}.canvas-status{position:absolute;left:12px;bottom:12px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:#ffffffeb;color:var(--muted);font-size:12px}.canvas-zoom-controls{position:absolute;right:12px;bottom:12px;display:grid;grid-template-columns:32px 48px 32px auto;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:6px;background:#fffffff0;box-shadow:0 8px 20px #141f2614}.canvas-zoom-controls button{min-width:0;min-height:28px;padding:0 8px}.canvas-zoom-controls span{text-align:center;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.edge-hit{fill:none;stroke:transparent;stroke-width:18px;cursor:pointer}.edge-line{fill:none;stroke:var(--line-strong);stroke-width:2px;stroke-linecap:round}.edge.disabled{opacity:.32}.edge.causal .edge-line{stroke:var(--causal)}.edge.biasing .edge-line{stroke:var(--bias)}.edge.selected .edge-line{stroke:#111820}.edge-control{fill:#fff;stroke:#111820;stroke-width:2px;cursor:move}.edge-value{paint-order:stroke;stroke:#fff;stroke-width:4px;text-anchor:middle;font-size:12px;font-weight:700;pointer-events:none}.edge-value.positive{fill:var(--causal)}.edge-value.negative{fill:var(--bias)}marker path{fill:#52616d}.node{cursor:grab}.node circle{fill:#fff;stroke:#3e4a53;stroke-width:2px}.node.ancestor circle{fill:#eef7f3}.node.changed circle{filter:drop-shadow(0 0 5px rgba(35,113,111,.35))}.node.latent circle{stroke-dasharray:4 3;fill:#f5f3f0}.node.selected circle,.node.edge-source circle{stroke:var(--accent);stroke-width:3px}.adjusted-ring{fill:none;stroke:#cf7a22;stroke-width:2px}.selected-mark{fill:none;stroke:#7048a8;stroke-width:2px}.node-label{text-anchor:middle;font-size:13px;font-weight:700;fill:#172028;pointer-events:none}.node-value{text-anchor:middle;font-size:11px;fill:var(--accent);pointer-events:none}.node-distribution-plot{pointer-events:none}.distribution-frame{fill:#fffffff0;stroke:#8fa0ad;stroke-width:1.2px}.distribution-empirical{fill:#56667494}.distribution-analytic{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.cm-editor{border:1px solid var(--line);border-radius:6px;font-size:12px}@media(max-width:1799px){.app-shell{grid-template-rows:auto auto;height:auto;min-height:100vh}.workspace{grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto auto;min-height:auto}.canvas-shell{order:1;min-height:560px}.left-panel{order:2}.simulation-column{order:3}.scatter-panel{order:4}.right-panel{order:5}.variable-model-row{order:6;max-height:none;overflow:visible}.left-panel,.simulation-column,.scatter-panel,.right-panel{border:0;max-height:none;overflow:visible;border-top:1px solid var(--line)}.graph-canvas{height:560px}.variable-model-panel{grid-template-columns:repeat(2,minmax(260px,1fr))}.topbar{overflow-x:auto}}@media(max-width:700px){.variable-model-panel,.two-field-grid{grid-template-columns:1fr}}
