/* Investment inventory explorer (ne-investment.js) */
.inv-cov{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:14px 0}
.inv-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px 16px}.inv-card h3{margin:0 0 4px;font-size:1.05rem}.inv-card p{margin:.3rem 0}
.inv-flag{border-left:3px solid var(--ochre);padding:.3rem .6rem;background:var(--band);font-size:.88rem}
.inv-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start;margin:14px 0}
.inv-map{margin:0}.inv-map svg{display:block;width:100%;height:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.inv-prov{fill:var(--band);stroke:var(--line);stroke-width:.7}
.inv-dot{fill:var(--c1);fill-opacity:.55;stroke:var(--surface);stroke-width:.4;cursor:pointer}.inv-dot:hover{fill-opacity:.95}.inv-dot.sel{stroke:var(--ink);stroke-width:2;fill-opacity:1}
.s-under_construction{fill:var(--c2);background:var(--c2)}.s-completed{fill:var(--c6)}.s-on_hold{fill:var(--c5)}.s-cancelled{fill:var(--c7)}.s-proposed{fill:var(--c1)}
.lg{display:inline-block;padding:0 .4rem;border-radius:3px;color:#0A1218;font-size:.78rem}.lg.s-proposed{background:var(--c1)}.lg.s-under_construction{background:var(--c2)}.lg.s-completed{background:var(--c6)}.lg.s-on_hold{background:#A3B0BC}.lg.s-cancelled{background:var(--c7)}
.inv-side h3{font-size:.95rem;margin:12px 0 6px}.inv-bar{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr) 3.5rem;gap:8px;align-items:center;font-size:.86rem;margin:3px 0}
.inv-bt{display:block;height:10px;background:var(--band);border-radius:3px;overflow:hidden}.inv-bt i{display:block;height:100%;background:var(--c1);border-radius:3px}.inv-bv{text-align:right;font-size:.82rem;font-variant-numeric:tabular-nums}
.inv-pager{display:flex;gap:10px;align-items:center;margin:8px 0}.inv-detail{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 18px;margin-top:14px}.inv-detail:not(:empty){padding:12px 18px}.inv-detail h3{margin:0 0 4px}
.tbl tr.sel td{background:var(--accent-soft)}
@media (max-width:860px){.inv-grid{grid-template-columns:minmax(0,1fr)}}
/* map visibility: provinces with an inventory are lifted off the page, the rest stay quiet; markers carry a halo so they read on both themes */
.inv-map{position:relative}.inv-map svg{background:var(--bg);touch-action:pan-y;cursor:grab}
.inv-prov{fill:var(--surface);stroke:var(--muted);stroke-opacity:.55;stroke-width:.8;vector-effect:non-scaling-stroke}.inv-prov.has{fill:var(--accent-soft);stroke:var(--accent);stroke-opacity:.9;stroke-width:1.2}
.inv-dot{fill-opacity:.88;stroke:var(--bg);stroke-width:1.1;vector-effect:non-scaling-stroke}.inv-dot:hover{fill-opacity:1;stroke:var(--ink)}.inv-dot.sel{stroke:var(--ink);stroke-width:2.4}
.inv-clc{fill-opacity:.9;stroke:var(--bg);stroke-width:2;vector-effect:non-scaling-stroke;cursor:zoom-in}.inv-cln{fill:#0A1218;font-family:var(--sans);font-weight:700;pointer-events:none}
.inv-zoom{position:absolute;top:54px;right:10px;display:flex;flex-direction:column;gap:4px}.inv-zb{font:inherit;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;cursor:pointer;font-size:.9rem}.inv-zb:hover,.inv-zb:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}
.inv-tip{position:absolute;z-index:3;max-width:260px;display:flex;flex-direction:column;gap:2px;padding:7px 10px;background:var(--surface);color:var(--ink);border:1px solid var(--accent);border-radius:6px;font-size:.84rem;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.35)}.inv-tip[hidden]{display:none}.inv-tip span{color:var(--muted)}
.inv-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0;font-size:.86rem}.inv-key{display:inline-flex;align-items:center;gap:6px}.inv-key .sw{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid var(--ink)}
.inv-key .sw.s-proposed{background:var(--c1)}.inv-key .sw.s-under_construction{background:var(--c2)}.inv-key .sw.s-completed{background:var(--c6)}.inv-key .sw.s-on_hold{background:var(--c5)}.inv-key .sw.s-cancelled{background:var(--c7)}
.inv-dot.s-on_hold,.inv-clc.s-on_hold{fill:var(--c5)}
@media (max-width:640px){.inv-map svg{min-height:300px}}
.s-approved{fill:var(--c4);background:var(--c4)}.s-unknown{fill:#A3B0B8;background:#A3B0B8}.lg.s-approved{background:var(--c4)}.lg.s-unknown{background:#A3B0B8}.inv-key .sw.s-approved{background:var(--c4)}.inv-key .sw.s-unknown{background:#A3B0B8}
.inv-pl{font-size:11px;font-weight:700;fill:var(--ink);stroke:var(--bg);stroke-width:3px;paint-order:stroke;stroke-linejoin:round;pointer-events:none;letter-spacing:.04em}
.inv-dashgrid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start;margin:14px 0}
.inv-bt i.alt{background:var(--c3)}.inv-stack .inv-bt{display:flex}.inv-stack .inv-bt i.seg{height:100%;border-radius:0}
.seg.s1,.inv-sw.s1{background:var(--c1)}.seg.s2,.inv-sw.s2{background:var(--c2)}.seg.s3,.inv-sw.s3{background:var(--c6)}.seg.s4,.inv-sw.s4{background:var(--c4)}.seg.s5,.inv-sw.s5{background:var(--c5)}
.inv-sw{display:inline-block;width:.8em;height:.8em;border-radius:2px;vertical-align:baseline}.inv-key2{line-height:1.9}
.inv-cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:10px 0}.inv-cmpcol{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px 16px}.inv-cmpcol h4{margin:0 0 6px}
.inv-list{margin:6px 0;padding-left:1.1rem}.inv-actions a{white-space:nowrap}
@media(max-width:820px){.inv-dashgrid{grid-template-columns:minmax(0,1fr)}}
/* On a phone the legend wraps, so the zoom controls take their own row instead of sitting on it. */
@media(max-width:760px){.inv-zoom{position:static;flex-direction:row;justify-content:flex-end;margin-top:6px}}
