:root{
  --bg:#0d1016;--panel:#171b24;--panel2:#202633;--panel3:#2b3444;--panel4:#111720;
  --text:#e9edf3;--muted:#aab4c1;--line:#3b4659;--line2:#51617a;
  --good:#4aa564;--warn:#c99a36;--bad:#d35d5d;--accent:#e6a33a;--blue:#63a6ff;--purple:#b383ff;
  --shadow:0 10px 32px rgba(0,0,0,.35);--radius:14px;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  --font:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;--nodew:286px;
}
*{box-sizing:border-box} html,body{height:100%;margin:0} body{background:var(--bg);color:var(--text);font-family:var(--font);overflow:hidden}
button,input,select,textarea{font:inherit} button{background:var(--panel3);color:var(--text);border:1px solid #3a465a;border-radius:10px;padding:8px 10px;cursor:pointer}
button:hover{border-color:#71809a} button.primary{background:#5b3c11;border-color:#b7781f} button.danger{background:#3a1d20;border-color:#8a3d44} button.ghost{background:transparent}
button.smallbtn{font-size:12px;padding:6px 8px;border-radius:8px} button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{background:#10131a;color:var(--text);border:1px solid #394356;border-radius:9px;padding:7px 8px;width:100%} textarea{min-height:76px;resize:vertical}
label{display:block;font-size:12px;color:var(--muted);margin:0 0 4px}.app{display:grid;grid-template-rows:58px 48px 1fr 30px;height:100%}
header{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#151820;border-bottom:1px solid #30384a;min-width:0}
header h1{font-size:17px;margin:0 10px 0 0;white-space:nowrap}.spacer{flex:1}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.file-input{display:none}
.main{display:grid;grid-template-columns:350px 1fr 420px;min-height:0}.side{background:var(--panel);border-right:1px solid #30384a;overflow:auto;padding:12px}.side.right{border-right:0;border-left:1px solid #30384a}
.center{min-width:0;min-height:0;background:#0f1116;position:relative;overflow:hidden}.tabs{display:flex;gap:6px;padding:10px 10px 0;background:#121620;border-bottom:1px solid #273244}
.tab{font-size:12px;padding:8px 10px;border-bottom-left-radius:0;border-bottom-right-radius:0}.tab.active{border-color:var(--accent);background:#322713;color:#fff}
.page{position:absolute;inset:43px 0 0 0;overflow:auto;padding:14px}.page.flow{padding:0;overflow:auto;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),#0f1116;background-size:28px 28px}.hidden{display:none!important}
#canvas{position:relative;width:2800px;height:1700px;transform-origin:0 0}.wires{position:absolute;inset:0;width:2800px;height:1700px;pointer-events:none;overflow:visible}.wire{stroke:#6f7f9a;stroke-width:2.2;fill:none;opacity:.85}.wireText{font:12px var(--mono);fill:#cbd5e1;paint-order:stroke;stroke:#0b0e13;stroke-width:4px;stroke-linejoin:round}
.node{position:absolute;width:var(--nodew);background:rgba(30,35,46,.98);border:1px solid #3b4659;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;user-select:none}
.node.selected{outline:2px solid var(--accent)}.node-head{padding:10px 12px;cursor:grab;background:#232a36;border-left:7px solid var(--line)}.node.good .node-head{border-left-color:var(--good)}.node.source .node-head{border-left-color:#51c77a}.node.warn .node-head{border-left-color:var(--warn)}.node.bad .node-head{border-left-color:var(--bad)}.node.route .node-head{border-left-color:var(--purple)}.node.group .node-head{border-left-color:var(--blue)}
.node h3{margin:0;font-size:15px;line-height:1.25}.sub{color:var(--muted);font-size:12px;margin-top:3px}.node-body{padding:10px 12px 12px;font-size:12px}.pill-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.pill{display:inline-block;padding:2px 6px;border-radius:999px;border:1px solid #3b4659;background:#11151d;color:var(--muted);font-size:11px;margin:2px 3px 0 0}.pill.good{border-color:#3d8051;color:#9fe4af}.pill.warn{border-color:#98742d;color:#f0cb78}.pill.bad{border-color:#9b4444;color:#ffaaa8}.pill.blue{border-color:#356a9d;color:#9bceff}.pill.purple{border-color:#735db0;color:#d4c5ff}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.metric{background:#131822;border:1px solid #2e3748;border-radius:10px;padding:7px}.metric b{display:block;font-size:13px}.metric span{color:var(--muted);font-size:11px}
footer{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#151820;border-top:1px solid #30384a;color:var(--muted);font-size:12px}.crumb{color:#dfe7f2;background:#222936;border:1px solid #3a4659;border-radius:999px;padding:3px 8px;cursor:pointer}.crumb:hover{border-color:#7d8ba4}.crumb.current{border-color:#b7781f;background:#342612}
.section{background:var(--panel2);border:1px solid #30394b;border-radius:var(--radius);padding:11px;margin-bottom:12px}.section h2{font-size:14px;margin:0 0 10px}.section h3{font-size:13px;margin:12px 0 8px;color:#d5deea}.small{font-size:12px;color:var(--muted)}.tiny{font-size:11px;color:var(--muted)}.mono{font-family:var(--mono)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.row{display:flex;gap:8px;align-items:center}.row>*{min-width:0}.stack{display:grid;gap:8px}.muted-box{background:#111722;border:1px dashed #38455a;border-radius:12px;padding:10px;color:var(--muted);font-size:12px;line-height:1.45}.status-line{color:var(--muted);font-size:12px;margin-top:6px}.good-text{color:#84d99b}.warn-text{color:#f0bd5d}.bad-text{color:#ff8b8b}.blue-text{color:#9bceff}.purple-text{color:#d4c5ff}
table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:6px 5px;border-bottom:1px solid #30394b;vertical-align:top}th{color:#c4cedb;font-weight:650;position:sticky;top:0;background:var(--panel2);z-index:1}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{max-height:520px;overflow:auto;border:1px solid #30394b;border-radius:12px;background:var(--panel2)}.table-wrap table th:first-child{border-top-left-radius:12px}.table-wrap table th:last-child{border-top-right-radius:12px}
.recipe-card,.list-card{border:1px solid #333d4e;background:#151820;border-radius:10px;padding:8px;margin-bottom:7px}.recipe-card .title,.list-card .title{font-weight:750;margin-bottom:3px}.recipe-card .meta,.list-card .meta{color:var(--muted);font-size:11px;margin-bottom:6px}.io{color:var(--muted);font-family:var(--mono);font-size:11px;line-height:1.35}.actions{display:flex;gap:6px;margin-top:7px}.actions button{flex:1;font-size:12px;padding:6px}.readonly{background:#0d1118;border:1px solid #273143;border-radius:9px;padding:7px 8px;color:#cbd5e1;font-size:12px;min-height:32px}.field{margin-bottom:8px}.kbd{font-family:var(--mono);background:#111722;border:1px solid #38455a;border-radius:5px;padding:1px 5px;color:#dce7f5}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.big-card{background:var(--panel2);border:1px solid #30394b;border-radius:var(--radius);padding:12px}.big-card h2{font-size:15px;margin:0 0 6px}.big-card h3{font-size:13px;margin:12px 0 5px;color:#d4deeb}.statline{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:12px;border-bottom:1px solid #2d3748;padding:4px 0}.statline:last-child{border-bottom:0}.statline span:last-child{font-variant-numeric:tabular-nums;color:#dfe7f2}
.issue{background:#171b24;border:1px solid #333d4e;border-left:6px solid var(--line);border-radius:12px;padding:10px;margin-bottom:9px}.issue.bad{border-left-color:var(--bad)}.issue.warn{border-left-color:var(--warn)}.issue.good{border-left-color:var(--good)}.issue.purple{border-left-color:var(--purple)}.issue h3{margin:0 0 4px;font-size:14px}.issue p{margin:5px 0;color:#cbd5e1;font-size:12px;line-height:1.45}.issue ul{margin:6px 0 0 18px;padding:0;color:#cbd5e1;font-size:12px;line-height:1.4}
.pathline{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.right .section{background:#1b202b}.search-results{max-height:380px;overflow:auto}.selectrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wide-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger-zone{border-color:#6d3338;background:#24161a}

.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:14px}.health-card{background:linear-gradient(180deg,#202633,#161b24);border:1px solid #323d50;border-radius:16px;padding:13px;box-shadow:var(--shadow);min-height:112px}.health-card h2{margin:0 0 8px;font-size:13px;color:#dbe4ef}.health-number{font-size:28px;font-weight:800;letter-spacing:-.02em}.health-sub{font-size:12px;color:var(--muted);margin-top:2px}.bar{height:10px;background:#0f131b;border:1px solid #2e384a;border-radius:999px;overflow:hidden;margin-top:8px}.bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#466bff,#4aa564);border-radius:999px}.bar.good>i{background:linear-gradient(90deg,#2d7043,#70d38a)}.bar.warn>i{background:linear-gradient(90deg,#7d5b1a,#e0a738)}.bar.bad>i{background:linear-gradient(90deg,#703137,#d35d5d)}.bar.purple>i{background:linear-gradient(90deg,#563f91,#b383ff)}
.visual-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.visual-stack{display:grid;gap:12px}.flow-strip{display:flex;gap:10px;align-items:stretch;overflow:auto;padding-bottom:5px}.flow-card{min-width:180px;background:#151b25;border:1px solid #334055;border-radius:14px;padding:10px}.flow-card.bad{border-color:#8d454b}.flow-card.warn{border-color:#8c6b2a}.flow-card.good{border-color:#3f8050}.flow-card.purple{border-color:#755db0}.flow-arrow{align-self:center;color:#8492a8;font-size:24px}.flow-card b{display:block;font-size:13px;margin-bottom:4px}.flow-card .big{font-size:20px;font-weight:800}.mini-list{display:grid;gap:7px}.mini-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:#121823;border:1px solid #2d3748;border-radius:12px;padding:8px}.mini-row .name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-row .val{font-variant-numeric:tabular-nums}.lens-select{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.surface-map{position:relative;min-height:270px;background:radial-gradient(circle at 50% 50%,rgba(99,166,255,.08),transparent 58%),#111722;border:1px solid #30394b;border-radius:16px;overflow:hidden}.surface-map svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.surface-dot{position:absolute;transform:translate(-50%,-50%);min-width:118px;max-width:150px;text-align:center;background:#17202c;border:1px solid #3b4659;border-radius:999px;padding:8px 10px;box-shadow:0 8px 22px rgba(0,0,0,.28)}.surface-dot.bad{border-color:#9b4444}.surface-dot.warn{border-color:#98742d}.surface-dot.good{border-color:#3d8051}.surface-dot .label{font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.surface-dot .meta{font-size:11px;color:var(--muted)}.node .bar{height:8px;margin-top:7px}.node .visual-summary{display:grid;grid-template-columns:1fr;gap:4px;margin-top:8px}.node .visual-summary .line{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:11px;color:#cbd5e1}.node .visual-summary .line span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.impact{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.impact .chip{border:1px solid #364357;background:#111722;border-radius:999px;padding:4px 8px;font-size:11px;color:#cbd5e1}.where-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.where-card{background:#131922;border:1px solid #30394b;border-radius:14px;padding:10px}.where-card h3{margin:0 0 6px;font-size:13px}.nudge{background:#1c1a11;border:1px solid #5a4520;border-radius:14px;padding:10px;color:#f0dfbd}.nudge b{display:block;margin-bottom:4px}.table-visual td{vertical-align:middle}.route-line{height:9px;border-radius:999px;background:#0e131b;border:1px solid #2d3748;overflow:hidden;min-width:90px}.route-line i{height:100%;display:block;background:linear-gradient(90deg,#755db0,#e6a33a)}

@media(max-width:1200px){.main{grid-template-columns:310px 1fr}.side.right{display:none}} @media(max-width:850px){body{overflow:auto}.app{height:auto;min-height:100%}.main{display:block}.side,.side.right{display:block;border:0}.center{height:760px}.toolbar button{font-size:12px;padding:6px}.tabs{overflow-x:auto}.tab{white-space:nowrap}}

/* economyUi visual/economy layer */
.economyUi-hero{display:grid;grid-template-columns:minmax(360px,1.25fr) minmax(300px,.75fr);gap:12px;margin-bottom:12px}
.economyUi-map{position:relative;min-height:240px;border:1px solid var(--line);background:radial-gradient(circle at 25% 20%,#263044 0,#151a24 42%,#10141b 100%);border-radius:var(--radius);overflow:hidden;padding:14px}
.economyUi-surface-dot{position:absolute;min-width:120px;max-width:170px;padding:10px 12px;border:1px solid #53617a;border-radius:16px;background:#1c2330;box-shadow:var(--shadow);z-index:2}
.economyUi-surface-dot.good{border-color:rgba(74,165,100,.8)}.economyUi-surface-dot.warn{border-color:rgba(201,154,54,.9)}.economyUi-surface-dot.bad{border-color:rgba(211,93,93,.9)}
.economyUi-surface-dot b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.economyUi-surface-dot span{display:block;font-size:11px;color:var(--muted)}
.economyUi-map svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.economyUi-map line{stroke:#736241;stroke-width:3;opacity:.85}.economyUi-map line.hot{stroke:var(--bad);stroke-width:5}.economyUi-map line.warn{stroke:var(--warn);stroke-width:4}.economyUi-map text{fill:#cbd3df;font-size:10px}
.economyUi-cause-chain{display:flex;gap:10px;align-items:stretch;overflow-x:auto;padding:4px 0 8px}.economyUi-cause-card{min-width:190px;max-width:240px;border:1px solid var(--line);background:#151b25;border-radius:14px;padding:10px}.economyUi-cause-card.bad{border-color:rgba(211,93,93,.85);background:#251819}.economyUi-cause-card.warn{border-color:rgba(201,154,54,.85);background:#251f14}.economyUi-cause-card.good{border-color:rgba(74,165,100,.75);background:#142017}.economyUi-cause-card.purple{border-color:rgba(179,131,255,.75);background:#1c1730}.economyUi-cause-card h3{margin:0 0 6px;font-size:13px}.economyUi-cause-card .number{font-size:22px;font-weight:800}.economyUi-cause-card p{font-size:12px;color:var(--muted);margin:6px 0 0}.economyUi-chain-arrow{display:flex;align-items:center;color:var(--muted);font-size:24px;flex:0 0 auto}
.economyUi-meter{height:12px;border-radius:99px;background:#0f131a;border:1px solid #2f394b;overflow:hidden;margin:6px 0}.economyUi-meter i{display:block;height:100%;background:linear-gradient(90deg,#4aa564,#c99a36,#d35d5d);min-width:2px}.economyUi-meter.good i{background:var(--good)}.economyUi-meter.warn i{background:var(--warn)}.economyUi-meter.bad i{background:var(--bad)}.economyUi-meter.purple i{background:var(--purple)}
.economyUi-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.economyUi-insight{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:12px}.economyUi-insight h3{margin:0 0 8px;font-size:14px}.economyUi-insight .tag{display:inline-block;font-size:11px;border:1px solid #4d5a70;border-radius:99px;padding:2px 7px;margin-right:4px;color:#cbd3df}.economyUi-insight .verdict{font-weight:800;font-size:18px;margin:6px 0}.economyUi-small-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.economyUi-chipline{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.economyUi-mini-chip{font-size:11px;border:1px solid #3f4b60;background:#10151d;border-radius:999px;padding:3px 7px}.economyUi-module-row{display:grid;grid-template-columns:1fr 70px 28px;gap:6px;align-items:end;margin-bottom:6px}.economyUi-readonly-list{font-size:12px;line-height:1.55}.economyUi-kpi{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06)}.economyUi-kpi:last-child{border-bottom:0}.economyUi-empty{border:1px dashed #46536a;border-radius:12px;padding:14px;color:var(--muted);background:#111720}.economyUi-decision-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(320px,.8fr);gap:12px}.economyUi-route-card{border:1px solid var(--line);border-radius:14px;padding:10px;background:#141a24;margin-bottom:8px}.economyUi-route-card.bad{border-color:var(--bad)}.economyUi-route-card.warn{border-color:var(--warn)}.economyUi-route-card.good{border-color:var(--good)}
@media (max-width:1100px){.economyUi-hero,.economyUi-decision-layout{grid-template-columns:1fr}.economyUi-small-grid{grid-template-columns:1fr}}


/* sourceNodes: source nodes, resource ports, hierarchy and canvas QoL */
:root{--nodew:336px;--port:#8fa3bf;--portIn:#54d6e5;--portOut:#5bd87a;}
.node{overflow:visible}.node-body{position:relative}.node.missing-input .node-head{box-shadow:inset 0 0 0 1px rgba(211,93,93,.35)}
.port-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;align-items:start}.port-column h4{margin:0 0 5px;font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.port-column.output h4{text-align:right}
.port-row{position:relative;display:flex;align-items:center;gap:5px;min-height:24px;margin:4px 0;padding:4px 7px;border:1px solid #334057;background:#111720;border-radius:9px;font-size:11px;color:#d8e2ef;cursor:crosshair;line-height:1.1}.port-row:hover{border-color:#7b8ba6;background:#172031}.port-row.input{padding-left:16px}.port-row.output{padding-right:16px;justify-content:flex-end;text-align:right}.port-row.cost{border-style:dashed;color:#f0c4a2}.port-row.unlinked{opacity:.66;border-style:dashed}.port-row.connected{box-shadow:inset 0 0 0 1px rgba(99,166,255,.18)}.port-row.pending{outline:2px solid var(--accent);opacity:1}.port-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.port-rate{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap}.port-dot{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;border:2px solid var(--port);background:#0b0f15;transform:translateY(-50%);box-shadow:0 0 0 2px #0f1116}.port-row.input .port-dot{left:-6px;border-color:var(--portIn)}.port-row.output .port-dot{right:-6px;border-color:var(--portOut)}.port-row.cost .port-dot{border-color:#d5904f}.port-more{font-size:11px;color:var(--muted);padding:2px 0}.port-empty{font-size:11px;color:var(--muted);border:1px dashed #344055;border-radius:9px;padding:5px 7px;background:#10151d}.port-help{font-size:10px;color:var(--muted);margin-top:5px;line-height:1.35}.wire.missing{stroke:#556070;stroke-dasharray:6 5;opacity:.55}.wire.hot{stroke:#d35d5d;stroke-width:3}.wire.good{stroke:#4aa564}.wire.purple{stroke:#b383ff}.wireText{font:11px var(--mono)}
.tree-visual{display:grid;gap:4px}.tree-row{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;border:1px solid #30394b;background:#151b25;border-radius:10px;padding:6px 7px;position:relative}.tree-row.active{border-color:#b7781f;background:#2a2114}.tree-row.root{background:#1d2430}.tree-indent{font-family:var(--mono);color:#66758e;white-space:pre}.tree-title{min-width:0}.tree-title button{width:100%;text-align:left;padding:4px 5px}.tree-meta{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px;background:var(--good);box-shadow:0 0 0 2px rgba(255,255,255,.04)}.tree-row.warn .tree-dot{background:var(--warn)}.tree-row.bad .tree-dot{background:var(--bad)}.tree-actions{display:flex;gap:4px}.tree-actions button{padding:4px 6px;font-size:11px}
.qol-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.qol-grid button{font-size:12px;padding:6px}.flow-hud{position:sticky;left:10px;top:10px;z-index:20;display:inline-flex;gap:8px;align-items:center;background:rgba(18,22,32,.92);border:1px solid #394356;border-radius:999px;padding:6px 10px;margin:10px;box-shadow:var(--shadow);font-size:12px;color:var(--muted);backdrop-filter:blur(4px)}.flow-hud b{color:var(--text)}.flow-hud .sep{width:1px;height:16px;background:#394356}.flow-hud .pending{color:#f5d69a}.page.flow.panning{cursor:grabbing}.page.flow.panning *{cursor:grabbing!important}.node .wire-status{margin-top:8px;font-size:11px;color:var(--muted)}.node .wire-status.bad-text{color:#ffaaa8}.node .wire-status.good-text{color:#9fe4af}



/* scopePanel: cleaned current-scope command panel */
#currentScopeBox.scopePanel-scope-panel{background:transparent;border:0;border-radius:0;padding:0;color:var(--text);font-size:12px;line-height:1.35}
.scopePanel-scope-top{display:grid;gap:8px;margin-bottom:10px}.scopePanel-scope-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.scopePanel-scope-title b{font-size:15px;line-height:1.15}.scopePanel-scope-meta{display:flex;gap:5px;flex-wrap:wrap}.scopePanel-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid #344055;background:#121821;border-radius:999px;padding:3px 7px;color:#cbd5e1;font-size:11px;min-width:0}.scopePanel-chip.warn{border-color:#7d5b1a;background:#251f14;color:#f0cb78}.scopePanel-chip.bad{border-color:#7d343a;background:#251819;color:#ffaaa8}.scopePanel-chip.good{border-color:#367448;background:#142017;color:#9fe4af}.scopePanel-chip.accent{border-color:#b7781f;background:#342612;color:#f5d69a}.scopePanel-selected{border:1px solid #334057;background:#111722;border-radius:10px;padding:7px 8px;color:#aeb9c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scopePanel-selected b{color:#e7edf5}.scopePanel-primary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scopePanel-primary button{padding:8px 9px;font-size:12px}.scopePanel-danger{background:#3a1d20;border-color:#8a3d44}.scopePanel-details{border:1px solid #30394b;background:#141a23;border-radius:12px;margin:8px 0;overflow:hidden}.scopePanel-details[open]{background:#171d28}.scopePanel-details summary{list-style:none;cursor:pointer;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#dce5ef;font-weight:700;font-size:12px;border-bottom:1px solid transparent}.scopePanel-details[open] summary{border-bottom-color:#2e384a}.scopePanel-details summary::-webkit-details-marker{display:none}.scopePanel-details summary:after{content:'›';font-size:16px;color:#9aa8bb;transform:rotate(0deg);transition:.12s}.scopePanel-details[open] summary:after{transform:rotate(90deg)}.scopePanel-detail-body{padding:9px 10px 10px}.scopePanel-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.scopePanel-tool-grid button{font-size:12px;padding:7px 8px}.scopePanel-tool-grid.three{grid-template-columns:1fr 1fr 1fr}.scopePanel-switch-grid{display:grid;gap:6px}.scopePanel-switch{display:flex;align-items:center;gap:7px;color:#cbd5e1;font-size:12px;margin:0}.scopePanel-switch input{width:auto}.scopePanel-help{font-size:11px;color:#9ba8bb;line-height:1.4;margin-top:7px}.scopePanel-missing-wrap{max-height:185px;overflow:auto;display:grid;gap:7px;padding-right:2px}.scopePanel-missing-wrap .issue,.scopePanel-missing-wrap .missing-card{margin:0}.scopePanel-missing-wrap .list-card,.scopePanel-missing-wrap .recipe-card{margin:0}.scopePanel-bookmarks{max-height:130px;overflow:auto}.scopePanel-wire-mode{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:end;margin-bottom:8px}.scopePanel-wire-mode label{margin-bottom:3px}.scopePanel-map-tools .row{margin-bottom:7px}.scopePanel-status-dots{display:flex;gap:5px;align-items:center}.scopePanel-status-dot{width:8px;height:8px;border-radius:99px;background:#556070}.scopePanel-status-dot.good{background:var(--good)}.scopePanel-status-dot.warn{background:var(--warn)}.scopePanel-status-dot.bad{background:var(--bad)}.scopePanel-status-dot.accent{background:var(--accent)}


/* topToolbar: contextual top command bar */
.topToolbar-topbar{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#111720;border-bottom:1px solid #30384a;overflow-x:auto;white-space:nowrap;min-width:0}
.topToolbar-topbar::-webkit-scrollbar{height:6px}.topToolbar-topbar::-webkit-scrollbar-thumb{background:#3a465a;border-radius:99px}
.topToolbar-topbar .topToolbar-group{display:inline-flex;align-items:center;gap:6px;border:1px solid #2e384a;background:#171d27;border-radius:12px;padding:4px 6px;flex:0 0 auto}
.topToolbar-topbar .topToolbar-label{font-size:11px;color:#9ba8bb;text-transform:uppercase;letter-spacing:.04em;margin:0 2px}
.topToolbar-topbar button{font-size:12px;padding:6px 8px;border-radius:8px}.topToolbar-topbar button.icon{min-width:30px;padding:6px}
.topToolbar-topbar select,.topToolbar-topbar input[type=text]{height:31px;font-size:12px;padding:5px 7px;border-radius:8px;width:auto;min-width:88px}.topToolbar-topbar input.topToolbar-search{width:150px}
.topToolbar-toggle{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#cbd5e1}.topToolbar-toggle input{width:auto;margin:0}.topToolbar-sep{width:1px;height:24px;background:#30394b;margin:0 1px}.topToolbar-topbar .danger{background:#3a1d20;border-color:#8a3d44}.topToolbar-topbar .primary{background:#5b3c11;border-color:#b7781f}
#currentScopeBox.topToolbar-scope-panel{background:transparent;border:0;border-radius:0;padding:0;color:var(--text);font-size:12px;line-height:1.35}
.topToolbar-compact-scope{display:grid;gap:8px}.topToolbar-compact-scope .scopePanel-primary{grid-template-columns:1fr 1fr}
.topToolbar-compact-note{border:1px solid #334057;background:#111722;border-radius:10px;padding:8px;color:#aeb9c9;font-size:12px;line-height:1.4}
@media(max-width:1200px){.topToolbar-topbar{gap:6px}.topToolbar-topbar .topToolbar-group{padding:3px 5px}.topToolbar-topbar button{font-size:11px;padding:5px 7px}}


/* panelAutoLoad layout panels and canvas minimap */
:root{--left-panel-width:350px;--right-panel-width:420px;}
.main{position:relative;grid-template-columns:minmax(240px,var(--left-panel-width)) minmax(0,1fr) minmax(300px,var(--right-panel-width));}
.app.left-panel-hidden .main{grid-template-columns:0 minmax(0,1fr) minmax(300px,var(--right-panel-width));}
.app.right-panel-hidden .main{grid-template-columns:minmax(240px,var(--left-panel-width)) minmax(0,1fr) 0;}
.app.left-panel-hidden.right-panel-hidden .main{grid-template-columns:0 minmax(0,1fr) 0;}
.app.left-panel-hidden .side:not(.right),.app.right-panel-hidden .side.right{display:none;}
.panel-resizer{position:absolute;top:0;bottom:0;width:8px;z-index:25;cursor:col-resize;background:transparent;}
.panel-resizer::after{content:'';position:absolute;top:0;bottom:0;left:3px;width:1px;background:#3b4659;opacity:.55;}
.panel-resizer:hover::after,.panel-resizer.dragging::after{background:var(--accent);opacity:1;box-shadow:0 0 10px rgba(230,163,58,.45);}
#leftPanelResizer{left:var(--left-panel-width);transform:translateX(-4px);}
#rightPanelResizer{right:var(--right-panel-width);transform:translateX(4px);}
.app.left-panel-hidden #leftPanelResizer,.app.right-panel-hidden #rightPanelResizer{display:none;}
.panelAutoLoad-mini-map{position:absolute;right:14px;bottom:14px;width:230px;background:rgba(15,19,27,.94);border:1px solid #41506a;border-radius:12px;box-shadow:var(--shadow);z-index:35;padding:8px;user-select:none;}
.panelAutoLoad-mini-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;color:#cfd8e6;}
.panelAutoLoad-mini-head b{font-size:12px;color:#fff;}.panelAutoLoad-mini-head button{font-size:11px;padding:3px 6px;border-radius:7px;}
.panelAutoLoad-mini-map svg{display:block;width:100%;height:145px;background:#0c1018;border:1px solid #283448;border-radius:8px;cursor:crosshair;}
.panelAutoLoad-mini-node{fill:#263247;stroke:#53647f;stroke-width:1.5;}.panelAutoLoad-mini-node.selected{fill:#5b3c11;stroke:#f1c46a;}.panelAutoLoad-mini-node.bad{fill:#4b2028;stroke:#d35d5d;}.panelAutoLoad-mini-node.warn{fill:#4a3518;stroke:#c99a36;}.panelAutoLoad-mini-node.good{fill:#1f4029;stroke:#4aa564;}
.panelAutoLoad-mini-view{fill:rgba(99,166,255,.12);stroke:#63a6ff;stroke-width:2;rx:8;}
@media(max-width:850px){.main{grid-template-columns:1fr}.panel-resizer,.panelAutoLoad-mini-map{display:none!important}}

/* canvasPanelControls visible canvas controls */
.panel-resizer{background:rgba(230,163,58,.045);}
.panel-resizer::before{content:'⋮';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#c79545;background:#161b24;border:1px solid #4b586f;border-radius:8px;padding:8px 1px;font-size:13px;line-height:10px;opacity:.85;}
.panel-resizer:hover::before,.panel-resizer.dragging::before{border-color:var(--accent);color:#ffd37b;opacity:1;}
.canvasPanelControls-panel-size{min-width:28px;padding-left:7px;padding-right:7px;}


/* wireRunways connected ports */
.port-row.connected .port-dot{background:var(--port);box-shadow:0 0 0 2px #0f1116,0 0 10px rgba(99,166,255,.42);}
.port-row.input.connected .port-dot{background:var(--portIn);box-shadow:0 0 0 2px #0f1116,0 0 10px rgba(84,214,229,.45);}
.port-row.output.connected .port-dot{background:var(--portOut);box-shadow:0 0 0 2px #0f1116,0 0 10px rgba(91,216,122,.45);}
.port-row.cost.connected .port-dot{background:#d5904f;box-shadow:0 0 0 2px #0f1116,0 0 10px rgba(213,144,79,.45);}

/* selfLinks self-feed wires */
.wire.self-link{stroke:#63a6ff;stroke-dasharray:10 5;stroke-width:3.2;filter:drop-shadow(0 0 4px rgba(99,166,255,.24));}
.wire.self-link.hot{stroke:#e07a7a;}
.wireLabel.self-link rect{stroke:#63a6ff;stroke-dasharray:4 2;}
.wireLabel.self-link.hot rect{stroke:#e07a7a;}

/* optionalInputs optional/internal inputs */
.node .wire-status.warn-text{color:#f0cb78;}
.port-row.input.optional{opacity:1;border-color:#9a7326;background:#201a10;border-style:dashed;box-shadow:inset 0 0 0 1px rgba(240,203,120,.16);}
.port-row.input.optional .port-dot{border-color:#f0cb78;background:#f0cb78;box-shadow:0 0 0 2px #0f1116,0 0 10px rgba(240,203,120,.45);}

/* elevatorBoundary explicit elevator pins */
.node.elevator-pin{width:154px;min-width:154px;border-radius:14px;box-shadow:0 8px 18px rgba(0,0,0,.30);}
.elevator-pin-body{padding:8px 10px;display:grid;gap:5px;}
.elevator-pin-badge{font-size:10px;font-weight:900;letter-spacing:.08em;}
.elevator-pin-title{font-weight:800;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.elevator-pin-rate{font-family:var(--mono);font-size:10px;}
.node.elevator-in{border:1px solid #297a84;border-left:4px solid #54d6e5;background:#0d1a1c;}
.node.elevator-in .elevator-pin-badge,.node.elevator-in .elevator-pin-rate{color:#73e7f2;}
.node.elevator-out{border:1px solid #2f7a42;border-right:4px solid #5bd87a;background:#0d1a10;}
.node.elevator-out .elevator-pin-badge,.node.elevator-out .elevator-pin-rate{color:#9fe4af;}
.node.elevator-pin .port-row{min-height:18px;margin:0;border-radius:999px;font-size:10px;background:#0b1214;}
.node.elevator-pin .port-row .port-rate{display:none;}
.node.elevator-pin .port-row.input{padding:3px 6px 3px 16px;}.node.elevator-pin .port-row.output{padding:3px 16px 3px 6px;}
.node.elevator-in .port-dot{border-color:#54d6e5!important;background:#54d6e5!important;}.node.elevator-out .port-dot{border-color:#5bd87a!important;background:#5bd87a!important;}

/* focusTools: focus/search/highlight/segment boxes */
.wire.focusTools-port-highlight{stroke:#f7d46b!important;stroke-width:4.2!important;opacity:1!important;filter:drop-shadow(0 0 5px rgba(247,212,107,.65));}
.wireLabel.focusTools-port-highlight rect{stroke:#f7d46b!important;stroke-width:2!important;filter:drop-shadow(0 0 5px rgba(247,212,107,.5));}
.port-row.focusTools-port-highlight{outline:2px solid #f7d46b;opacity:1!important;}
#page-flow.focusTools-dim-good-wires .wire.good:not(.selected-wire):not(.focusTools-port-highlight),#page-flow.focusTools-dim-good-wires .wireLabel.good:not(.selected-wire):not(.focusTools-port-highlight),#page-flow.focusTools-dim-good-wires .wireText.good:not(.selected-wire):not(.focusTools-port-highlight){opacity:.25!important;}
.node.locked .node-head{cursor:not-allowed;background:#252936;}
.node.locked::after{content:'LOCK';position:absolute;right:8px;top:7px;font:700 9px var(--mono);letter-spacing:.08em;color:#f0cb78;border:1px solid #7b5d21;background:#241e12;border-radius:999px;padding:1px 5px;pointer-events:none;}
.node.segment-box{--nodew:460px;background:rgba(41,50,66,.22);border:2px dashed rgba(129,155,190,.7);box-shadow:none;z-index:0;}
.node.segment-box.selected{outline:2px solid #9bceff;background:rgba(55,74,104,.30);}
.node.segment-box .node-head{background:rgba(35,42,54,.45);border-left-color:#9bceff;cursor:grab;padding:8px 10px;}
.node.segment-box .node-body{min-height:120px;color:#cbd5e1;background:rgba(11,15,21,.16);}
.segment-box-note{white-space:pre-wrap;overflow-wrap:anywhere;color:#b9c7d9;font-size:12px;line-height:1.35;}
.focusTools-search-select{min-width:210px!important;max-width:280px;}
#page-flow.focusTools-dim-good-wires .wireLabel:not(.hot):not(.selected-wire):not(.focusTools-port-highlight){opacity:.25!important;}

/* rocketRoutes: minimap removed */
.minimap,.panelAutoLoad-mini-map{display:none!important;}

/* Auto demand process sizing */
.auto-demand-section{border-color:rgba(111,168,220,.35)}
.checkline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}
.checkline input{width:auto}
.auto-demand-disabled-input,
input.auto-demand-disabled-input:disabled{
  opacity:.65;
  background:rgba(120,130,150,.16);
  color:var(--muted);
  cursor:not-allowed;
}
.auto-demand-field-note{margin-top:4px;color:var(--muted)}
.auto-demand-demand-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}

/* Simple trustworthy loop explanation pass */
.loopSimpleTrust {
  border-width: 1px;
  border-left-width: 5px;
}
.loopSimpleTrust.loopDetails-good { border-left-color: rgba(76, 175, 80, .95); }
.loopSimpleTrust.loopDetails-warn { border-left-color: rgba(255, 184, 77, .95); }
.loopSimpleTrust.loopDetails-bad { border-left-color: rgba(255, 95, 95, .95); }
.loopSimpleVerdict {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: .01em;
  margin: 2px 0 8px;
}
.loopSimpleNumbers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.loopSimpleNumber {
  padding: 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.04);
}
.loopSimpleNumber b,
.loopSimpleNumber span,
.loopSimpleNumber small {
  display: block;
}
.loopSimpleNumber .num {
  font-size: 1.2rem;
  font-weight: 800;
  margin-top: 4px;
}
.loopSimpleNumber small {
  color: var(--muted);
  margin-top: 3px;
  line-height: 1.25;
}
.loopSimpleLine,
.loopSimpleProof,
.loopSimpleFix {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
}
.loopSimpleFix {
  background: rgba(64, 156, 255, .09);
}
.loopSimpleBullets {
  margin: 8px 0 0 1.2rem;
  padding: 0;
}
.loopSimpleBullets li {
  margin: 4px 0;
}
