:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--control-h:40px;--float-top:52px;--float-inset:14px;--sidebar-w:264px;--canvas-default:#0c0e12;--bg:#0c0e12;--ink:#f2f4f8;--ink-soft:#f2f4f8a6;--ink-faint:#f2f4f86b;--panel:#14171e9e;--panel-strong:#14171e;--overlay:#0c0e12;--border:#ffffff1f;--accent:#2bff88;--on-accent:#0c0e12;--brand-dot:#2fabb3;--cta:#fff;--cta-ink:#2442c4;--cta-hover:#e6ebff;--blue:#3358e6;--blue-deep:#2442c4;--ok:#37d67a;--ok-line:#37d67a66;--ok-bg:#37d67a1f;--bad:#ff5470;--bad-line:#ff547066;--bad-bg:#ff54701f;--status-idle:#9aa4af;--status-running:#4f9dff;--status-done:#37d67a;--status-failed:#ff5470;--shadow:#0308148c;color:var(--ink);background:var(--bg);font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}.app-shell{z-index:2;height:100vh;position:relative;overflow:hidden}.app-canvas{background-color:var(--canvas-color,var(--canvas-default));cursor:grab;touch-action:none;position:absolute;inset:0;overflow:hidden}.app-canvas.dragging{cursor:grabbing}.canvas-grid{pointer-events:none;--canvas-grid-line:#ffffff1a;background-image:linear-gradient(var(--canvas-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--canvas-grid-line) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--canvas-grid-line) 45%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--canvas-grid-line) 45%, transparent) 1px, transparent 1px);background-size:150px 150px,150px 150px,30px 30px,30px 30px;position:absolute;inset:-2px}.canvas-world{pointer-events:none;transform-origin:50%;position:absolute;inset:0}.canvas-grid,.canvas-world{transition:background-position .3s,background-size .3s,transform .3s}.app-canvas.dragging .canvas-grid,.app-canvas.dragging .canvas-world{transition:none}.canvas-controls{left:50%;bottom:var(--float-inset);z-index:3;pointer-events:auto;flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%)}.zoom-cluster{height:var(--control-h);background:var(--panel);border:1px solid var(--border);box-shadow:0 6px 20px var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;align-items:center;gap:4px;padding:0 5px;display:flex}.zoom-btn,.zoom-level{height:30px;box-shadow:none;appearance:none;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px;margin:0;padding:0;line-height:1}.zoom-btn{min-width:30px;font-size:16px}.zoom-level{text-align:center;font-variant-numeric:tabular-nums;min-width:48px;padding:0 4px;font-size:12px;font-weight:600}.zoom-btn:hover,.zoom-level:hover{background:color-mix(in srgb, var(--ink) 10%, transparent);color:var(--ink)}.zoom-btn:focus-visible,.zoom-level:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.zoom-divider{background:color-mix(in srgb, var(--ink) 14%, transparent);width:1px;height:18px}.zoom-fit{min-width:auto;padding:0 10px;font-size:12px;font-weight:600}.ui-btn{white-space:nowrap;cursor:pointer;height:36px;box-shadow:none;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.ui-btn:disabled{opacity:.55;cursor:default}.ui-btn-primary{background:var(--cta);color:var(--cta-ink)}.ui-btn-primary:hover:not(:disabled){background:var(--cta-hover)}.ui-btn-ghost{background:color-mix(in srgb, var(--ink) 8%, transparent);border-color:color-mix(in srgb, var(--ink) 24%, transparent)}.ui-btn-ghost:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 16%, transparent)}.ui-btn-sm{height:30px;padding:0 11px;font-size:13px}.editor-head{z-index:6;padding:10px var(--float-inset);pointer-events:none;justify-content:space-between;align-items:center;gap:14px;display:flex;position:fixed;top:0;left:0;right:0}.editor-head-left,.editor-head-right{pointer-events:auto;align-items:center;gap:10px;min-width:0;display:flex}.editor-head-left{height:var(--control-h);background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(1.15);backdrop-filter:blur(14px)saturate(1.15);border-radius:12px;padding:0 10px 0 6px}.editor-brand{box-shadow:none;appearance:none;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:0;display:inline-flex}.editor-brand:hover,.editor-brand:focus,.editor-brand:active{box-shadow:none;background:0 0;border:0}.editor-brand:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.editor-mark{background:0 0;width:34px;height:auto;display:block}.sim-name-static{padding:5px 8px;font-size:14px;font-weight:600}.status-badge{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);background:color-mix(in srgb, var(--ink) 6%, transparent);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.status-badge.phase-running{color:var(--status-running);border-color:color-mix(in srgb, var(--status-running) 50%, transparent);background:color-mix(in srgb, var(--status-running) 14%, transparent);animation:.9s ease-in-out infinite bp-run-pulse}.status-badge.phase-collapsed{color:var(--bad);border-color:var(--bad-line);background:var(--bad-bg)}.status-badge.phase-held{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}.status-badge.webmcp-on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.status-badge.webmcp-off{color:var(--ink-faint)}@keyframes bp-run-pulse{0%,to{opacity:1}50%{opacity:.45}}.editor-rail{top:var(--float-top);bottom:var(--float-inset);z-index:5;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed}.editor-rail-left{left:var(--float-inset);width:var(--sidebar-w)}.editor-rail-right{right:var(--float-inset);width:min(252px,100vw - 28px)}.app-sidebar{pointer-events:auto;background:var(--panel);border:1px solid var(--border);height:100%;box-shadow:0 20px 60px var(--shadow);-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15);border-radius:18px;flex-direction:column;display:flex}.app-sidebar-head{justify-content:space-between;align-items:center;padding:10px 12px 8px 16px;display:flex}.sim-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:700}.app-sidebar-body{flex-direction:column;flex:1;min-height:0;padding:6px 12px 12px;display:flex;overflow-y:auto}.palette{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.palette-scroll{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex;overflow-y:auto}.palette-group-title{border-bottom:1px solid color-mix(in srgb, var(--ink) 14%, transparent);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--accent) 75%, var(--ink) 25%);margin:0 0 6px;padding-bottom:5px;font-size:11px;font-weight:700}.palette-items{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.palette-item{border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);width:100%;color:var(--ink-soft);text-align:left;box-shadow:none;background:0 0;border-radius:8px;padding:8px 10px;font-size:13px;display:block}.palette-item:hover{background:color-mix(in srgb, var(--ink) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 55%, transparent);color:var(--ink)}.palette-empty{color:var(--ink-faint);margin:0;font-size:12px;line-height:1.45}.palette-mcp{color:var(--ink-soft);margin:10px 0 0;font-size:12px;line-height:1.45}.comp-node{--node-ink:#101828;--node-ink-soft:#475467;--node-ink-faint:#667085;--node-line:#dfe3ec;--node-surface:#fff;--node-shadow:#1018281a;--node-accent:#05784a;--node-danger:#d92d20;--node-cat:#5b6478;background:var(--node-surface);border:1px solid var(--node-line);width:max-content;min-width:190px;max-width:240px;box-shadow:0 10px 26px var(--node-shadow);color:var(--node-ink);pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;gap:10px;padding:10px 12px;display:flex;position:absolute;top:50%;left:50%}.comp-node.health-healthy{background:color-mix(in srgb, #12b76a 18%, var(--node-surface));border-color:#12b76a8c}.comp-node.health-stressed{background:color-mix(in srgb, #f5820b 18%, var(--node-surface));border-color:#f5820b9e}.comp-node.health-overload{background:color-mix(in srgb, #e5484d 18%, var(--node-surface));border-color:#e5484da8}.comp-node.bottleneck{background:color-mix(in srgb, #e5484d 22%, var(--node-surface));border-color:var(--node-danger);box-shadow:0 0 0 1px color-mix(in srgb, var(--node-danger) 45%, transparent), 0 10px 26px color-mix(in srgb, var(--node-danger) 28%, transparent)}.comp-node.dragging{cursor:grabbing;z-index:2}.comp-node.cat-traffic{--node-cat:#f97316}.comp-node.cat-serving{--node-cat:#3b82f6}.comp-node.cat-backend{--node-cat:#10b981}.comp-node button{box-shadow:none}.comp-node-head{align-items:center;gap:8px;display:flex}.comp-node-cat{background:var(--node-cat);border-radius:4px;flex:none;width:12px;height:12px}.comp-node-label{color:var(--node-ink);flex:1;font-size:13px;font-weight:700}.comp-node-reps{justify-content:center;align-items:center;gap:10px;display:flex}.rep-btn{border:1px solid var(--node-line);width:22px;height:22px;color:var(--node-ink);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.rep-btn:hover:not(:disabled){background:color-mix(in srgb, var(--node-ink) 10%, transparent)}.rep-btn:disabled{opacity:.4;cursor:default}.rep-count{text-align:center;min-width:46px;color:var(--node-ink-soft);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.comp-node-body{grid-template-rows:0fr;display:grid}.comp-node-body.open{grid-template-rows:1fr}.comp-node-body-inner{flex-direction:column;gap:8px;min-height:0;display:flex;overflow:hidden}.config-field{flex-direction:column;gap:3px;display:flex}.config-field span{letter-spacing:.04em;text-transform:uppercase;color:var(--node-ink-faint);font-size:10px}.config-field input,.config-field select{border:1px solid var(--node-line);width:100%;color:var(--node-ink);font-variant-numeric:tabular-nums;background:0 0;border-radius:8px;padding:6px 8px;font-size:13px}.config-field input:disabled,.config-field select:disabled{opacity:.55}.config-field input:focus,.config-field select:focus{border-color:color-mix(in srgb, var(--node-accent) 60%, transparent);outline:none}.comp-node-health{flex-direction:column;gap:3px;display:flex}.health-bar{background:color-mix(in srgb, var(--node-ink) 12%, transparent);border-radius:3px;height:6px;overflow:hidden}.health-fill{background:#12b76a;border-radius:3px;height:100%;display:block}.comp-node.health-stressed .health-fill{background:#f5820b}.comp-node.health-overload .health-fill{background:#e5484d}.health-meta{font-variant-numeric:tabular-nums;color:var(--node-ink-faint);justify-content:space-between;font-size:10px;display:flex}.health-bottleneck{letter-spacing:.06em;text-transform:uppercase;color:var(--node-danger);align-self:center;font-size:9px;font-weight:700}.comp-node-handle{border:2px solid var(--node-surface);background:var(--node-accent);opacity:0;border-radius:50%;width:14px;height:14px;padding:0;position:absolute;top:50%;right:-7px;transform:translateY(-50%)}.comp-node:hover .comp-node-handle{opacity:1}.canvas-edges{pointer-events:none;width:1px;height:1px;position:absolute;top:50%;left:50%;overflow:visible}.edge-line{fill:none;stroke:#ffffff6b;stroke-width:2px;stroke-linecap:round}.edge-line.health-healthy{stroke:#37d67a}.edge-line.health-stressed{stroke:#ffb020}.edge-line.health-overload{stroke:#ff5470}.edge-line.bottleneck-path{stroke-width:3.5px;filter:drop-shadow(0 0 6px #ff5470bf)}.edge-flow{fill:none;stroke:#fffc;stroke-width:4px;stroke-linecap:round;animation-name:edge-travel;animation-timing-function:linear;animation-iteration-count:infinite}.edge-flow.health-healthy{stroke:#a5edc3}.edge-flow.health-stressed{stroke:#ffdb9b}.edge-flow.health-overload{stroke:#ffb2bf}@keyframes edge-travel{0%{stroke-dashoffset:0}to{stroke-dashoffset:var(--travel)}}@media (prefers-reduced-motion:reduce){.edge-flow,.status-badge.phase-running{animation:none}}.edge-tag-bg{fill:#091126;stroke:#ffffff29}.edge-error-bg{fill:#d92d20;stroke:none}.edge-tag-text{fill:#ffffffb8;letter-spacing:.06em;font-size:10px;font-weight:700}.edge-error-text{fill:#fff;letter-spacing:.06em;font-size:10px;font-weight:800}.verdict-bar{pointer-events:auto;background:color-mix(in srgb, var(--overlay) 82%, transparent);border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 30px var(--shadow);color:var(--ink);border-radius:14px;overflow:hidden}.verdict-bar-collapsed{border-color:#ff547073}.verdict-bar-held{border-color:#37d67a6b}.verdict-strip{align-items:center;gap:10px;padding:10px 12px 10px 14px;display:flex}.verdict-bar-collapsed .verdict-strip{background:#ff547026}.verdict-bar-held .verdict-strip{background:#37d67a24}.verdict-bar-dot{border-radius:50%;width:8px;height:8px}.verdict-bar-collapsed .verdict-bar-dot{background:#ff5470}.verdict-bar-held .verdict-bar-dot{background:#2fb968}.verdict-bar-label{letter-spacing:.2em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;font-weight:800}.verdict-bar-collapsed .verdict-bar-label{color:#e5384f}.verdict-bar-held .verdict-bar-label{color:#1f9e56}.verdict-measure{flex-direction:column;gap:8px;padding:11px 14px 13px;display:flex}.verdict-bar-number{font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,monospace;font-size:28px;font-weight:800;line-height:1}.verdict-bar-collapsed .verdict-bar-number{color:#e5384f}.verdict-bar-held .verdict-bar-number{color:#1f9e56}.verdict-bar-unit{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--ink) 48%, transparent);font-size:11px;font-weight:700}.verdict-bar-detail{color:color-mix(in srgb, var(--ink) 58%, transparent);font-size:12.5px;font-weight:600}.right-rail{pointer-events:auto;flex-direction:column;gap:12px;height:100%;display:flex}.live-metrics{pointer-events:auto;background:color-mix(in srgb, var(--overlay) 82%, transparent);border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 30px var(--shadow);border-radius:14px;padding:12px 14px}.live-metrics-head{justify-content:space-between;align-items:center;display:flex}.live-metrics-title{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:700}.live-metrics-empty{color:var(--ink-faint);margin:10px 0 0;font-size:12px;line-height:1.5}.live-metrics-grid{gap:8px 12px;margin:0;display:grid}.live-metrics-row{justify-content:space-between;gap:12px;font-size:12px;display:flex}.live-metrics-row dt{color:var(--ink-faint)}.live-metrics-row dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.live-metrics-row dd.danger{color:var(--bad)}.example-select{border:1px solid color-mix(in srgb, var(--ink) 24%, transparent);background:color-mix(in srgb, var(--ink) 8%, transparent);height:30px;color:var(--ink);border-radius:9px;padding:0 10px}.config-note{color:var(--node-ink-faint);margin:0;font-size:11px}.comp-node.cat-resilience{--node-cat:#a855f7}.comp-node-menu-btn{width:22px;height:22px;color:var(--node-ink-faint);cursor:pointer;background:0 0;border:0;border-radius:6px;margin-left:auto}.comp-node-menu-btn:hover{background:color-mix(in srgb, var(--node-ink) 10%, transparent);color:var(--node-ink)}.lp{background:radial-gradient(1200px 600px at 20% -10%, #2bff8814, transparent 50%), var(--bg);min-height:100vh;color:var(--ink)}.lp-nav{justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.lp-brand{align-items:center;gap:10px;font-size:16px;font-weight:700;display:inline-flex}.lp-hero{max-width:760px;padding:72px 28px 48px}.lp-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 12px;font-size:12px}.lp-hero h1{letter-spacing:-.03em;margin:0 0 16px;font-size:clamp(40px,6vw,64px);line-height:1.05}.lp-lead{color:var(--ink-soft);max-width:42rem;margin:0 0 28px;font-size:18px;line-height:1.5}.lp-cta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.lp-hint{color:var(--ink-faint);font-size:13px}.lp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 28px 48px;display:grid}.lp-grid article{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:20px}.lp-grid h2{margin:0 0 8px;font-size:16px}.lp-grid p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.lp-steps{max-width:640px;padding:0 28px 48px}.lp-steps ol{color:var(--ink-soft);margin:12px 0 0;padding-left:18px;line-height:1.7}.lp-mcp a,.lp-foot a{color:var(--accent)}.lp-mcp code{color:var(--ink);font-size:12.5px}.lp-mcp-on,.lp-mcp-off{margin:8px 0 0;font-size:14px}.lp-prompt{border-left:3px solid var(--accent);background:var(--panel);color:var(--ink);border-radius:0 12px 12px 0;margin:16px 0 0;padding:14px 16px;font-size:15px;line-height:1.45}.lp-mcp-alt{color:var(--ink-faint);margin:16px 0 0;font-size:13px;line-height:1.5}.lp-foot-sep{color:var(--ink-faint);margin:0 8px}.lp-mcp-on{color:var(--accent)}.lp-mcp-off{color:var(--ink-faint)}.lp-foot{color:var(--ink-faint);padding:24px 28px 40px;font-size:13px}@media (width<=800px){.lp-grid{grid-template-columns:1fr}}.cmdk-scrim{z-index:20;background:#00000073;place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.cmdk{background:var(--panel-strong);border:1px solid var(--border);width:min(520px,100vw - 32px);box-shadow:0 24px 80px var(--shadow);border-radius:16px;overflow:hidden}.cmdk-input{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--ink);background:0 0;outline:none;padding:14px 16px}.cmdk-list{max-height:320px;margin:0;padding:8px;list-style:none;overflow:auto}.cmdk-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 12px}.cmdk-item:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}
