.eco{--paper:#f7f8f5;--paper-2:#e9eee9;--card:#fff;--ink:#16221b;--e-muted:#46564c;--soft:#56675c;--rule:#16221b1f;--accent:var(--brand);--accent-tint:#18513b14;--link:#2e5aa8;--link-tint:#2e5aa812;gap:20px;min-width:0;display:grid}.eco-map{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);overflow-x:auto}.eco-map svg{width:100%;min-width:1100px;height:auto;display:block}.eco-hint{color:var(--muted);margin:-8px 0 0;font-size:.82rem}.eco svg .bg,.eco svg .mask{fill:var(--paper)}.eco svg .zone{fill:var(--accent-tint);fill-opacity:.35;stroke:var(--rule);stroke-width:1px}.eco svg .zone-svc{fill:none;stroke:var(--rule);stroke-width:1px;stroke-dasharray:6 4}.eco svg .eyebrow{font-family:var(--font-geist-mono,ui-monospace), Menlo, monospace;letter-spacing:.14em;font-size:7.5px;font-weight:500}.eco svg .zl,.eco svg .lg{fill:var(--soft)}.eco svg .nm{font-family:var(--font-geist), system-ui, sans-serif;fill:var(--ink);font-size:12px;font-weight:600}.eco svg .sub{font-family:var(--font-geist-mono,ui-monospace), Menlo, monospace;fill:var(--e-muted);font-size:8.5px}.eco svg .mod{font-family:var(--font-geist), system-ui, sans-serif;fill:var(--ink);font-size:10.5px}.eco svg .hair{stroke:var(--rule);stroke-width:1px}.eco svg .n-core{fill:var(--card);stroke:var(--ink);stroke-opacity:.55;stroke-width:1px}.eco svg .n-focal{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.4px}.eco svg .n-store{fill:var(--paper-2);stroke:var(--e-muted);stroke-width:1px}.eco svg .n-ext{fill:var(--link-tint);stroke:var(--link);stroke-opacity:.6;stroke-width:1px}.eco svg .n-user{fill:var(--paper-2);stroke:var(--soft);stroke-width:1px;stroke-dasharray:4 3}.eco svg .tag{fill:none;stroke-width:.8px}.eco svg .tag-core{stroke:var(--ink);stroke-opacity:.35}.eco svg .tag-focal{stroke:var(--accent)}.eco svg .tag-store{stroke:var(--e-muted)}.eco svg .tag-ext{stroke:var(--link);stroke-opacity:.6}.eco svg .tag-user{stroke:var(--soft)}.eco svg .t-core{fill:var(--ink)}.eco svg .t-focal{fill:var(--accent)}.eco svg .t-store{fill:var(--e-muted)}.eco svg .t-ext{fill:var(--link)}.eco svg .t-user{fill:var(--soft)}.eco svg .ar,.eco svg .ar-accent,.eco svg .ar-link{fill:none;stroke-width:1.2px}.eco svg .ar{stroke:var(--e-muted)}.eco svg .ar-accent{stroke:var(--accent);stroke-width:1.6px}.eco svg .ar-link{stroke:var(--link)}.eco svg .mk{fill:var(--e-muted)}.eco svg .mk-accent{fill:var(--accent)}.eco svg .mk-link{fill:var(--link)}.eco svg .al,.eco svg .al-accent,.eco svg .al-link{font-family:var(--font-geist-mono,ui-monospace), Menlo, monospace;letter-spacing:.06em;font-size:8px}.eco svg .al{fill:var(--e-muted)}.eco svg .al-accent{fill:var(--accent)}.eco svg .al-link{fill:var(--link)}.eco svg .lgt{font-family:var(--font-geist), system-ui, sans-serif;fill:var(--e-muted);font-size:10px}.eco svg .node{transition:opacity .3s}.eco svg.simulating .node{opacity:.35}.eco svg.simulating .node.lit{opacity:1}.eco svg .node.lit>rect:nth-child(2){stroke:var(--accent);stroke-width:2.4px}.eco svg.simulating .flow{opacity:.25}.eco svg.simulating .flow.lit{opacity:1;stroke:var(--accent);stroke-width:2px}.eco svg .dot{fill:var(--link);opacity:.55}.eco svg .pulse{fill:var(--accent)}.eco svg .ring{fill:none;stroke:var(--accent);stroke-width:1.5px}@keyframes eco-breathe{0%,to{stroke-opacity:1}50%{stroke-opacity:.45}}.eco #n-panel>rect:nth-child(2){animation:3.2s ease-in-out infinite eco-breathe}@media (prefers-reduced-motion:reduce){.eco #n-panel>rect:nth-child(2){animation:none}}.eco-sim{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px;display:grid}@media (max-width:820px){.eco-sim{grid-template-columns:1fr}}.eco-sim h3{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:.75rem;font-weight:500}.eco-scen{flex-wrap:wrap;gap:8px;display:flex}.eco-scen button{font:500 .9rem/1.2 var(--font-geist), system-ui, sans-serif;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);cursor:pointer;border-radius:999px;padding:10px 15px;transition:border-color .2s,background .2s}.eco-scen button:hover{border-color:var(--brand)}.eco-scen button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.eco-ctrl{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.eco-ctrl button{font:500 .78rem/1 var(--font-geist), system-ui, sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);border:1px solid var(--brand);cursor:pointer;background:0 0;border-radius:8px;padding:10px 13px}.eco-ctrl button:hover{background:var(--brand-soft)}.eco-desc{color:var(--muted);max-width:52ch;margin:14px 0 0;font-size:.95rem}.eco-steps{counter-reset:es;gap:8px;margin:0;padding:0;list-style:none;display:grid}.eco-steps li{counter-increment:es;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:12px;grid-template-columns:28px 1fr;align-items:start;gap:12px;padding:12px 14px;transition:border-color .25s,color .25s,background .25s;display:grid}.eco-steps li:before{content:counter(es);border:1px solid var(--line-2);width:26px;height:26px;color:var(--muted);border-radius:50%;place-items:center;font-size:.78rem;display:grid}.eco-steps li.on{border-color:var(--brand);color:var(--ink);background:var(--brand-soft)}.eco-steps li.on:before{background:var(--brand);border-color:var(--brand);color:#fff}.eco-steps li.done:before{border-color:var(--brand);color:var(--brand)}.eco-stats{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.eco-stats div{border-left:1px solid var(--line);padding:18px 20px}.eco-stats div:first-child{border-left:none}.eco-stats strong{font-family:var(--font-serif), Georgia, serif;color:var(--brand);font-size:2.6rem;font-style:italic;font-weight:400;line-height:1;display:block}.eco-stats span{color:var(--muted);font-size:.9rem}
