.console-map{margin:8px 0 4px}.cmap-preview{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--sim) 34%, var(--border));background:color-mix(in srgb, var(--sim-soft) 70%, var(--panel));flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px;padding:8px 12px;display:flex}.cmap-preview-tag{border-radius:var(--radius-xs);background:color-mix(in srgb, var(--sim) 16%, transparent);color:var(--sim);font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;white-space:nowrap;flex:none;padding:2px 8px;font-weight:700}.cmap-preview-note{min-width:0;font-size:var(--fs-body-sm);color:var(--text-2);flex:240px;line-height:1.5}.cmap-preview-reset{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--sim) 45%, var(--border));background:color-mix(in srgb, var(--sim) 8%, var(--panel));min-height:44px;color:var(--sim);font-size:var(--fs-body-sm);cursor:pointer;flex:none;padding:8px 14px;font-weight:600}.cmap-preview-reset:hover{border-color:var(--sim);background:color-mix(in srgb, var(--sim) 14%, var(--panel))}.cmap-preview-reset:focus-visible{outline:2px solid var(--sim);outline-offset:2px}.console-map-preview{border-radius:var(--radius);outline:1px solid color-mix(in srgb, var(--sim) 22%, transparent);outline-offset:8px}.cmap-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;display:flex}.cmap-title{font-family:var(--mono);letter-spacing:.12em;color:var(--muted);font-size:.75rem;font-weight:600}.cmap-crumbs{font-family:var(--mono);align-items:center;gap:7px;font-size:.75rem;display:flex}.cmap-crumb{cursor:pointer;color:var(--accent);font:inherit;background:0 0;border:none;padding:0}.cmap-crumb:hover{text-decoration:underline}.cmap-sep{color:var(--muted)}.cmap-here{color:var(--text);font-weight:600}.cmap-lens{border:1px solid var(--border);border-radius:999px;gap:2px;margin-left:auto;padding:2px;display:inline-flex}.cmap-lens button{font-family:var(--mono);color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:3px 12px;font-size:.75rem}.cmap-lens button.cmap-lens-on{background:var(--accent);color:var(--on-accent)}.cmap-legend{font-family:var(--mono);color:var(--muted);margin:0 0 8px;font-size:.75rem}.cmap-lenscap{font-family:var(--mono);color:var(--muted);max-width:64ch;margin:0 0 8px;font-size:.75rem;line-height:1.45}.cmap-lenscap[data-empty]{color:var(--text);align-items:baseline;gap:8px;display:flex}.cmap-lenscap-dot{background:var(--accent);opacity:.7;border-radius:999px;flex:none;width:6px;height:6px;margin-top:5px}.cmap-lenscap-amt{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.cmap-loading{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-family:var(--mono);justify-content:center;align-items:center;font-size:.8125rem;display:flex}.flow{--faccent:#2e9e6e;box-sizing:border-box;width:100%}.flow-row{align-items:stretch;gap:0;padding:4px 2px 8px;display:flex;overflow-x:auto}.flow-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding:4px 0;display:grid}.flow-confluence{align-items:center;gap:clamp(36px,8%,92px);padding:6px 0 10px;display:flex;position:relative}.flow-grid-rail{flex:auto;grid-template-columns:1fr;gap:10px;min-width:0}.fconf-svg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:visible}.fconf-flow{fill:none;stroke:var(--faccent);stroke-linecap:round;opacity:calc(.28 + var(--fw,0) * .5);stroke-dasharray:5 9;animation:fconf-drift var(--fdur,1.7s) linear infinite}@keyframes fconf-drift{to{stroke-dashoffset:-14px}}.fconf-flow-reweight{animation:fconf-drift var(--fdur,1.7s) linear infinite, fconf-reweight-glow 2.2s ease-out 1}@keyframes fconf-reweight-glow{0%{stroke:var(--faccent);opacity:calc(.28 + var(--fw,0) * .5)}20%{stroke:var(--accent);opacity:.95}62%{stroke:var(--accent);opacity:.85}to{stroke:var(--faccent);opacity:calc(.28 + var(--fw,0) * .5)}}.fconf-rail,.fconf-sink{z-index:1;position:relative}.fconf-sink{border:1px solid var(--border-strong);border-radius:var(--radius);background:radial-gradient(120% 150% at 0% 50%, color-mix(in srgb, var(--faccent) 12%, transparent), transparent 62%), var(--panel);min-width:186px;max-width:236px;box-shadow:var(--shadow);font-family:var(--mono);flex-direction:column;flex:none;align-self:center;gap:2px;padding:17px 20px;display:flex}.fconf-sink-eyebrow{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.fconf-sink-label{color:var(--text);font-size:.75rem;font-weight:600}.fconf-sink-total{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);margin-top:3px;font-size:1.375rem;font-weight:700}.fconf-sink-cpo{font-variant-numeric:tabular-nums;color:color-mix(in srgb, var(--faccent) 82%, var(--text));font-size:.8125rem;font-weight:600}.fconf-sink-unit{color:var(--muted);font-weight:500}.fconf-sink-per{letter-spacing:0;color:var(--text-2);font-size:.54em;font-weight:600}.fconf-sink-sub{color:var(--muted);margin-top:2px;font-size:.75rem}@media (prefers-reduced-motion:reduce){.fconf-flow,.fconf-flow-reweight{animation:none}}@media (max-width:640px){.flow-confluence{flex-direction:column;align-items:stretch;gap:12px}.fconf-svg{display:none}.fconf-sink{align-self:stretch;max-width:none}}.fnode{box-sizing:border-box;border:1px solid var(--border);border-left:3px solid color-mix(in srgb, var(--faccent) calc(var(--fheat,0) * 100%), var(--border));background:color-mix(in srgb, var(--faccent) calc(var(--fheat,0) * 13%), var(--panel));min-width:168px;font-family:var(--mono);border-radius:12px;flex-direction:column;flex:1 1 0;gap:3px;padding:13px 15px;display:flex}.fnode-click{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}.fnode-click:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.fnode-untag{border-left:3px dashed var(--border-strong);background:var(--panel-2)}.fnode-caveat{color:var(--muted);font-size:.75rem;line-height:1.35;font-family:var(--mono);letter-spacing:.01em;margin-top:2px}.fnode-hot{outline:1px solid color-mix(in srgb, var(--faccent) 45%, transparent);outline-offset:1px;animation:2.6s ease-in-out infinite fnode-pulse}@keyframes fnode-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 15px -3px color-mix(in srgb, var(--faccent) 34%, transparent)}}@media (prefers-reduced-motion:reduce){.fnode-hot{animation:none}}.fnode-firing{border-color:color-mix(in srgb, var(--bad) 60%, var(--border));outline:1px solid color-mix(in srgb, var(--bad) 55%, transparent);outline-offset:1px;animation:1.8s ease-in-out infinite fnode-firing-pulse}@keyframes fnode-firing-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 16px -2px color-mix(in srgb, var(--bad) 40%, transparent)}}@media (prefers-reduced-motion:reduce){.fnode-firing{animation:none}}.fnode-fire{letter-spacing:.2px;white-space:nowrap;color:var(--bad);font-size:.75rem;font-weight:700;line-height:1;font-family:var(--mono);align-items:center;gap:4px;display:inline-flex}.fnode-fire-dot{background:var(--bad);border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite fnode-fire-dot}@keyframes fnode-fire-dot{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.fnode-fire-dot{opacity:1;animation:none}}.fnode-plan{outline:1px solid color-mix(in srgb, var(--warn) 50%, transparent);outline-offset:1px;animation:3s ease-in-out infinite fnode-plan-breath}@keyframes fnode-plan-breath{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 13px -3px color-mix(in srgb, var(--warn) 32%, transparent)}}@media (prefers-reduced-motion:reduce){.fnode-plan{animation:none}}.fnode-landed{outline:1px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px;z-index:1;animation:2.2s cubic-bezier(.22,.61,.36,1) fnode-land;position:relative}@keyframes fnode-land{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);transform:translateY(0)scale(1)}22%{box-shadow:0 0 22px 2px color-mix(in srgb, var(--accent) 46%, transparent);transform:translateY(-2px)scale(1.015)}to{transform:translateY(0)scale(1);box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.fnode-landed{animation:none}}.fnode-landed-flash{z-index:2;font-family:var(--mono);letter-spacing:.02em;white-space:nowrap;color:var(--accent-text);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:var(--shadow);pointer-events:none;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:700;animation:2.2s ease-out forwards fnode-land-flash;display:inline-flex;position:absolute;top:-11px;right:10px}@keyframes fnode-land-flash{0%{opacity:0;transform:translateY(4px)scale(.96)}16%{opacity:1;transform:translateY(0)scale(1)}74%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-6px)scale(.98)}}@media (prefers-reduced-motion:reduce){.fnode-landed-flash{opacity:1;animation:none;transform:none}}.fnode-route{border:1px dashed color-mix(in srgb, var(--warn) 42%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn-soft) 60%, var(--panel));font-family:var(--mono);cursor:help;flex-wrap:wrap;align-items:center;gap:4px 7px;margin-top:9px;padding:5px 8px;font-size:.75rem;line-height:1.3;display:flex}.fnode-route-tag{letter-spacing:.06em;color:var(--warn);white-space:nowrap;font-weight:700}.fnode-route-flow{color:color-mix(in srgb, var(--warn) 74%, var(--text));background:color-mix(in srgb, var(--warn) 12%, transparent);white-space:nowrap;border-radius:4px;padding:1px 5px;font-weight:600}.fnode-route-swap{min-width:0;color:var(--text);align-items:center;gap:5px;display:inline-flex}.fnode-route-from{color:var(--muted);overflow-wrap:anywhere;text-decoration:line-through;text-decoration-thickness:1px}.fnode-route-arrow{color:var(--warn);flex:none}.fnode-route-to{color:color-mix(in srgb, var(--warn) 78%, var(--text));overflow-wrap:anywhere;font-weight:600}.fnode-route-save{color:var(--warn);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-weight:700}.fnode-lever{outline:1px solid color-mix(in srgb, var(--muted) 34%, transparent);outline-offset:1px}.fnode-leverplan{border:1px dashed color-mix(in srgb, var(--muted) 34%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--muted) 6%, var(--panel));font-family:var(--mono);cursor:help;flex-wrap:wrap;align-items:center;gap:4px 7px;margin-top:9px;padding:5px 8px;font-size:.75rem;line-height:1.3;display:flex}.fnode-leverplan-tag{letter-spacing:.05em;color:color-mix(in srgb, var(--muted) 40%, var(--text));white-space:nowrap;font-weight:700}.fnode-leverplan-flow{color:color-mix(in srgb, var(--muted) 30%, var(--text));background:color-mix(in srgb, var(--muted) 12%, transparent);white-space:nowrap;border-radius:4px;padding:1px 5px;font-weight:600}.fnode-leverplan-swap{min-width:0;color:var(--text);flex-wrap:wrap;align-items:center;gap:5px;display:inline-flex}.fnode-leverplan-from{color:var(--muted);overflow-wrap:anywhere;text-decoration:line-through;text-decoration-thickness:1px}.fnode-leverplan-arrow{color:var(--muted);flex:none}.fnode-leverplan-to{color:color-mix(in srgb, var(--muted) 24%, var(--text));overflow-wrap:anywhere;font-weight:600}.fnode-leverplan-gate{letter-spacing:.02em;white-space:nowrap;border-radius:4px;margin-left:auto;padding:1px 6px;font-weight:600}.fnode-leverplan-gate[data-gate=benchmarked]{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 13%, transparent)}.fnode-leverplan-gate[data-gate=pending]{color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent)}.fnode-leverplan-gate[data-gate=advisory]{color:var(--muted);background:color-mix(in srgb, var(--muted) 12%, transparent)}.fnode-head{align-items:center;gap:8px;display:flex}.fnode-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.fnode-tag{color:var(--bad);font-size:.75rem;line-height:1}.fnode-proven{outline:1px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}.fnode-proven:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--border))}.fnode-proof{letter-spacing:.2px;color:var(--accent-text);background:var(--accent-soft);white-space:nowrap;cursor:help;border-radius:999px;padding:3px 7px;font-size:.75rem;font-weight:700;line-height:1}.fnode-chip{color:color-mix(in srgb, var(--faccent) 65%, var(--text));border:1px solid var(--border);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;margin-left:auto;padding:1px 9px;font-family:inherit;font-size:.75rem;transition:background .1s}.fnode-chip:hover{background:color-mix(in srgb, var(--faccent) 14%, var(--panel))}.fnode-spend{letter-spacing:-.6px;font-variant-numeric:tabular-nums;color:var(--text);margin-top:4px;font-size:1.375rem;font-weight:700;line-height:1.02}.fnode-win{color:var(--accent-text);background:var(--accent-soft);font-variant-numeric:tabular-nums;border-radius:999px;align-self:flex-start;margin-top:9px;padding:2px 9px;font-size:.75rem;font-weight:600}.fnode-foot{align-items:center;gap:8px;margin-top:auto;padding-top:11px;display:flex}.fnode-foot-track{background:color-mix(in srgb, var(--text) 8%, transparent);border-radius:999px;flex:auto;height:4px;overflow:hidden}.fnode-foot-fill{background:color-mix(in srgb, var(--faccent) calc(38% + var(--fheat,0) * 40%), var(--muted));border-radius:999px;height:100%}.fnode-foot-pct{font-variant-numeric:tabular-nums;color:var(--text-2);white-space:nowrap;font-size:.75rem}.fconn{flex:none;justify-content:center;align-items:center;width:52px;display:flex}.fconn-line{background:linear-gradient(90deg, color-mix(in srgb, var(--faccent) 30%, transparent) 0%, var(--faccent) 45%, color-mix(in srgb, var(--faccent) 30%, transparent) 92%);opacity:.62;width:100%;animation:fconn-flow var(--fdur,1.7s) linear infinite;background-size:220% 100%;border-radius:999px;position:relative}@keyframes fconn-flow{0%{background-position:220% 0}to{background-position:0 0}}.fconn-line:after{content:"";border-left:9px solid var(--faccent);border-top:6px solid #0000;border-bottom:6px solid #0000;position:absolute;top:50%;right:-2px;transform:translateY(-50%)}.fconn-dashed{background:repeating-linear-gradient(90deg, var(--faccent) 0, var(--faccent) 7px, transparent 7px, transparent 13px);opacity:.6}.fconn-reweight .fconn-line{transform-origin:50%;animation:fconn-flow var(--fdur,1.7s) linear infinite, fconn-reweight-squeeze 2.2s cubic-bezier(.22, .61, .36, 1) 1}@keyframes fconn-reweight-squeeze{0%{transform:scaleY(1)}18%{transform:scaleY(1.28)}62%{transform:scaleY(.5)}to{transform:scaleY(1)}}.fconn-reweight .fconn-line:before{content:"";border-radius:inherit;background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--accent) 82%, transparent) 46%, var(--accent) 55%, transparent 100%);opacity:0;pointer-events:none;background-repeat:no-repeat;background-size:55% 100%;animation:2.2s ease-out fconn-reweight-sweep;position:absolute;inset:0}@keyframes fconn-reweight-sweep{0%{opacity:0;background-position:-60% 0}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:160% 0}}@media (prefers-reduced-motion:reduce){.fconn-line{animation:none}.fconn-reweight .fconn-line{animation:none;transform:none}.fconn-reweight .fconn-line:before{opacity:0;animation:none}}.ftip{z-index:var(--z-tooltip);pointer-events:none;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:190px;font-family:var(--mono);padding:10px 12px 8px;position:fixed;transform:translate(-50%,-100%);box-shadow:0 6px 22px #10151d24}.ftip-name{color:var(--text);margin-bottom:7px;font-size:.8125rem;font-weight:600}.ftip-row{color:var(--muted);justify-content:space-between;gap:18px;padding:2px 0;font-size:.75rem;display:flex}.ftip-row b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.ftip-win b{color:var(--accent-text)}
.sg{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:16px;padding:16px 18px 14px}.sg-loading{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--muted);font-family:var(--mono);text-align:center;margin-bottom:16px;padding:28px;font-size:.75rem}.sg-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.sg-title{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);font-size:.75rem}.sg-shapes{flex-wrap:wrap;gap:6px;display:flex}.sg-shape{font-family:var(--mono);border:1px solid var(--border-strong);color:var(--text);background:0 0;border-radius:4px;padding:2px 8px;font-size:.75rem}.sg-shape-loop,.sg-shape-fanout,.sg-shape-hub{border-color:var(--accent);color:var(--accent-text)}.sg-shape-line{color:var(--muted)}.sg-fix{color:var(--text);background:color-mix(in srgb, var(--accent) 8%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 34%, var(--border));border-radius:8px;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:.8125rem;line-height:1.5;display:flex}.sg-fix-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.sg-fix-amt{font-family:var(--mono);color:var(--accent-text);font-weight:600}.sg-fix-more{color:var(--muted)}.sg-coverage{color:var(--text);margin:0 0 12px;font-size:.8125rem;line-height:1.5}.sg-coverage code{font-family:var(--mono);color:var(--muted);font-size:.75rem}.sg-coverage-partial{color:var(--text);background:color-mix(in srgb, var(--warn) 9%, var(--panel));border:1px solid color-mix(in srgb, var(--warn) 36%, var(--border));border-radius:8px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.sg-cov-dot{background:var(--warn);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.sg-canvas-wrap{border:1px solid var(--border);background:var(--panel);border-radius:8px;overflow:auto hidden}.sg-canvas{min-width:100%;display:block}.sg-edge path{stroke:var(--border-strong);stroke-width:1.6px}.sg-edge-back path{stroke:var(--muted);stroke-dasharray:none}.sg-edge-loop path{stroke:var(--muted)}.sg-arrowhead{fill:var(--muted)}.sg-edge-cost{font-family:var(--mono);fill:var(--muted);font-size:12px}.sg-node-box{fill:var(--panel);stroke:var(--border-strong);stroke-width:1.4px}.sg-node-hot .sg-node-box{stroke:var(--bad);stroke-width:1.8px}.sg-node-mark{fill:var(--bad)}.sg-node-untagged .sg-node-box{stroke:var(--border);stroke-dasharray:4 3}.sg-node-label{font-family:var(--mono);fill:var(--text);font-size:12px;font-weight:600}.sg-node-cost{font-family:var(--mono);fill:var(--text);font-size:13px}.sg-node-hot .sg-node-cost{fill:var(--bad)}.sg-node-sub{font-family:var(--mono);fill:var(--muted);font-size:12px}.sg-node-untagged .sg-node-label,.sg-node-untagged .sg-node-cost{fill:var(--muted)}.sg-noedges{border:1px solid var(--border);border-radius:8px;padding:14px}.sg-noedges-note{color:var(--text);margin:0 0 12px;font-size:.8125rem;line-height:1.5}.sg-noedges-note code{font-family:var(--mono);color:var(--muted);font-size:.75rem}.sg-noedges-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sg-noedges-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;display:flex}.sg-noedges-list li.sg-hot{border-color:var(--bad)}.sg-noedges-op{font-family:var(--mono);color:var(--text);font-size:.75rem}.sg-noedges-amt{font-family:var(--mono);color:var(--text);font-size:.8125rem}.sg-foot{color:var(--muted);margin:10px 0 0;font-size:.75rem;line-height:1.45}
