:root{color-scheme:dark;--border:#34405a;--ink:#eff1f7;--muted:#a6b5cf;--gold:#d5ad63;--accent:#40d5bc;--bg:#0a101c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,Segoe UI,Arial,sans-serif}a{color:#a6ceff}.topbar{display:flex;align-items:center;gap:22px;justify-content:space-between;padding:13px clamp(15px,3vw,50px);background:#101a2c;border-bottom:1px solid #29344a;flex-wrap:wrap}.brand{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.brand strong{color:#f7c976;font-size:16px}.brand span{color:#b0bfd8;font-size:13px}nav{display:flex;flex-wrap:wrap;gap:7px}nav a{color:#e4edff;text-decoration:none;padding:6px 11px;background:#263145;border-radius:8px;font-size:13px}nav a.active{background:#425ac4;color:white}.language{display:flex;gap:4px}.language button{padding:5px 9px;font-size:12px}.language button.active{background:#ddac48;color:#151e2f;border-color:#f4d28f;font-weight:800}
main{max-width:1780px;padding:23px clamp(12px,3vw,50px) 55px;margin:auto}.headline{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.eyebrow{font-size:11px;color:#e1b86c;font-weight:750;letter-spacing:.14em;margin:0 0 8px}h1{font-size:clamp(23px,2.7vw,35px);margin:0}.intro{max-width:980px;color:#c1cee0;font-size:14px;margin:8px 0 4px}.labelpill{color:#f9dba2;background:#302818;border:1px solid #654d2a;border-radius:30px;padding:7px 12px;font-size:12px;font-weight:700}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:14px;margin-top:21px;align-items:start}.treecol,aside{background:#121c2d;border:1px solid #31445d;border-radius:13px;overflow:hidden}.tools{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 15px}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.toolbar span{min-width:53px;text-align:center;font-size:13px}.hint{background:#121a28;color:#9fbbd8;padding:8px 14px;font-size:12px}.navigation{padding:8px 14px;background:#1d2231;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#dbb677}.navigation button{font-size:12px;padding:5px 11px;color:#eddbbc;background:#292637;border-color:#594729}.navigation button:hover{background:#534028}button{font:inherit;cursor:pointer;border-radius:7px;border:1px solid #436080;background:#263953;color:#f5f8ff;padding:6px 11px}button:hover{background:#365471}button:focus-visible,.node:focus-visible{outline:3px solid #2cdaca;outline-offset:3px}
.viewport{height:clamp(490px,69vh,800px);overflow:hidden;position:relative;touch-action:none;cursor:grab;background:radial-gradient(circle at 50% 47%,#332820 0,#201b1e 52%,#0a1020 100%)}.viewport:active{cursor:grabbing}#canvas{position:absolute;left:0;top:0;transform-origin:0 0;width:2890px;height:2890px;user-select:none}#panorama{width:2890px;height:2890px;display:block;pointer-events:none}#points{position:absolute;inset:0;pointer-events:none}.node{display:block;position:absolute;width:76px;height:76px;border-radius:50%;transform:translate(-50%,-50%);background:transparent;border:3px solid transparent;box-shadow:none;cursor:pointer;padding:0;pointer-events:auto;transition:border-color .14s,box-shadow .14s}.node.core{width:137px;height:137px}.node:hover,.node:focus-visible{background:#ffca650c;border-color:#fbd780;box-shadow:0 0 0 3px #f0bc4150,0 0 25px #ffc54c99}.node.chosen{border-color:#31e8c8;box-shadow:0 0 0 4px #2de6c44a,0 0 18px #00efc5}.node .levelpill{position:absolute;left:50%;top:88%;transform:translateX(-50%);white-space:nowrap;background:#0e2433ee;border:1px solid #42e5c0;color:#aaffed;border-radius:12px;padding:0 6px;font-size:15px;font-weight:800;line-height:22px;box-shadow:0 2px 8px #0009}.underimage{font-size:12px;color:#b3c3d9;padding:8px 13px;margin:0}
aside{padding:18px}.over{font-size:15px;font-weight:800}aside>small{color:#97a7c2;font-size:12px}.num{font-size:44px;font-weight:850;color:var(--accent);margin-top:12px;letter-spacing:-1px}.gray{color:#aac0d9;font-size:12px;margin:0 0 20px}.metrics{display:flex;gap:8px;justify-content:space-between;border-block:1px solid #34465d;padding:15px 0}.metrics>div{display:flex;flex-direction:column;gap:3px}.metrics strong{font-size:23px}.metrics small{color:#aac0d9;font-size:10px}h3{font-size:14px;margin:19px 0 10px}.plans{display:grid;gap:8px}.plan{background:#20314b;border:1px solid #3b5576;border-radius:8px;padding:9px;text-align:left;font-size:12px;overflow-wrap:anywhere}.plan strong{display:block}.plan small{display:block;color:#b5cce9}details{border-top:1px solid #34445d;margin-top:17px;padding-top:13px;font-size:12px}summary{cursor:pointer}details button,details input{margin:6px 0;width:100%;font-size:12px}.small{font-size:12px;color:#aabed8}.source{line-height:1.5;margin-top:21px}
dialog{background:#111b2e;color:#f3f6fa;border:1px solid #55728d;border-radius:14px;width:min(92vw,540px);padding:20px 23px}dialog::backdrop{background:#040914b8}.modalhead{display:flex;align-items:start;justify-content:space-between;gap:16px}.modalhead h2{margin:0;font-size:22px}.modalhead small{color:#e5bc7a}.exit{font-size:24px;line-height:28px;padding:1px 9px}.selectors{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.selectors label{display:grid;gap:7px;font-size:13px}.selectors select{width:100%;background:#20354e;color:white;border:1px solid #526e8e;border-radius:8px;padding:10px}.estimate{padding:12px 14px;border-radius:8px;background:#263249;min-height:50px}.actions{display:flex;justify-content:space-between;margin-top:16px}.primary{background:#3f65c9}
@media(max-width:1020px){.layout{grid-template-columns:1fr}aside{order:2}.viewport{height:64vh}.intro{font-size:13px}}
@media(max-width:600px){.topbar{padding:11px 13px;gap:9px}.brand span{font-size:11px}main{padding:14px 9px 32px}.headline{gap:7px}.labelpill{font-size:10px}.navigation{gap:5px}.navigation button{padding:5px 7px}.viewport{height:60vh;min-height:440px}.tools{flex-wrap:wrap}.node{width:77px;height:77px}.node.core{width:137px;height:137px}}

/* V6.6: point-by-point hitbox verification against original game icon circles.
   Visual click zones stay invisible until hovered or QA mode is enabled. */
#showHits.active {background:#22534c;border-color:#48e0ba;color:#e0fff2}
.node .hit-id {display:none;position:absolute;left:50%;top:-25px;transform:translateX(-50%);font-size:15px;font-weight:800;white-space:nowrap;background:#071423e8;color:#affff0;border:1px solid #5cdec7;border-radius:5px;line-height:20px;padding:0 5px;pointer-events:none}
.show-hits .node {border:3px solid #49f0d3;box-shadow:0 0 0 2px #081724aa,0 0 8px #49f0d3b0;background:#45e5d00a}
.show-hits .node.core {border-color:#ffcf70;box-shadow:0 0 0 2px #081724aa,0 0 10px #ffc56ab0}
.show-hits .node .hit-id{display:block}
.node:hover .hit-id,.node:focus-visible .hit-id{display:block}
@media(max-width:600px){#showHits{font-size:11px;padding:5px 7px}}

/* V6.7: clear separation between source figures and safety margin */
.costsplit{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0 13px;margin-top:-8px}
.costsplit>div{background:#1d3044;border:1px solid #3b5469;border-radius:7px;padding:9px 8px;min-width:0}
.costsplit span{display:block;color:#adc2d7;font-size:11px;line-height:1.35}
.costsplit strong{display:block;font-size:17px;color:#e3d7b4;margin-top:4px;white-space:nowrap}
.costsplit #bufferCost{color:#eab55a}
.full-catalog{border:1px solid #3b526a;background:#17283a;border-radius:9px;margin-top:16px;padding:11px 11px 9px}
.full-catalog summary{font-weight:800;color:#f0d698;font-size:13px}
.costtable{border-collapse:collapse;width:100%;margin-top:9px;font-size:12px;line-height:1.4}
.costtable th,.costtable td{padding:6px 4px;border-bottom:1px solid #34485e;text-align:left}
.costtable th:last-child,.costtable td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.costtable th{font-weight:600;color:#a3bbcd}.costtable tr.foot td{color:#f2d590;font-weight:800;border-bottom:0;border-top:1px solid #6c5c3e}
.costnote{color:#a9bfd4;font-size:11px;line-height:1.4;margin:9px 0 0}
.source a{color:#e1bc79}

/* Yeti MK IV; scoped import and controls */
.rowactions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.rowactions button{font-size:11px;line-height:1.3}.rowactions #clear{border-color:#975050}.filepick{display:block;margin-top:8px;padding:8px;border:1px dashed #596b85;border-radius:7px;cursor:pointer}.filepick input{width:100%;margin:6px 0 0}.plans{max-height:310px;overflow:auto}.navigation button{white-space:nowrap}.full-catalog{margin-bottom:12px}@media(max-width:600px){.rowactions{grid-template-columns:1fr}.costtable{font-size:11px}}
