.nx-roof{color:var(--color-ink);margin-top:20px}.nx-roof [hidden]{display:none!important}.nx-roof .roof-bar{flex-wrap:wrap;gap:10px;display:flex}.nx-roof .roof-bar form{flex:260px;gap:8px;min-width:0;display:flex}.nx-roof .roof-bar input{min-width:0;min-height:48px;font:inherit;color:var(--color-ink);background:#fff;border:1px solid #294e7240;border-radius:999px;flex:1;padding:0 18px;font-size:15px}.nx-roof .roof-bar input:focus-visible{outline:2px solid var(--color-signal);outline-offset:2px}.nx-roof .nx-btn{min-height:44px;font:inherit;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-size:15px;font-weight:500;transition:background-color .2s,border-color .2s;display:inline-flex}.nx-roof .nx-btn-ember{background:var(--color-ember);color:#1c1006}.nx-roof .nx-btn-ember:hover{background:#ffb840}.nx-roof .nx-btn-line{color:var(--color-ink);background:#fff;border-color:#294e724d}.nx-roof .nx-btn-line:hover{border-color:var(--color-navy)}.nx-roof .nx-chip{min-height:44px;font:inherit;color:var(--color-ink);background:#fff;border:1px solid #294e7238;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:14px;display:inline-flex}.nx-roof .nx-chip:hover{border-color:var(--color-navy)}.nx-roof .roof-bar .nx-chip{min-height:48px}.nx-roof .nx-link{font:inherit;color:var(--color-ink);text-underline-offset:4px;background:0 0;border:0;padding:4px 0;font-size:14px;text-decoration:underline}.nx-roof .nx-link:hover{color:var(--color-ember-ink)}.nx-roof .roof-results{background:#fff;border:1px solid #294e722e;border-radius:8px;max-height:220px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}.nx-roof .roof-results li+li{border-top:1px solid #294e7214}.nx-roof .roof-results button{text-align:left;width:100%;font:inherit;color:var(--color-ink);background:0 0;border:0;padding:12px 16px;font-size:14px;display:block}.nx-roof .roof-results button:hover,.nx-roof .roof-results button:focus-visible{background:#fff6e6}.nx-roof .roof-results .muted{color:var(--color-mute);padding:12px 16px;font-size:14px}.nx-roof .roof-stage{isolation:isolate;z-index:0;background:var(--color-deep);border:1px solid #294e722e;border-radius:12px;height:440px;margin-top:12px;position:relative;overflow:hidden}.nx-roof .roof-map{position:absolute;inset:0}.nx-roof .roof-svg{z-index:500;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.nx-roof .roof-svg.drawing{pointer-events:auto;cursor:crosshair}.nx-roof .roof-svg .catch{pointer-events:all}.nx-roof .roof-svg .roofpoly{fill:#f5a62329;stroke:var(--color-ember);stroke-width:2px;stroke-dasharray:6 4}.nx-roof .roof-svg .roofpoly.done{fill:#f5a62314;stroke-dasharray:none;stroke-width:1.5px}.nx-roof .roof-svg .handle{fill:#fff;stroke:var(--color-ember);stroke-width:3px;pointer-events:all;cursor:grab;outline:none}.nx-roof .roof-svg .handle:focus{stroke:var(--color-night);stroke-width:4px}.nx-roof .roof-svg .len{fill:#fff;font:600 12px var(--font-archivo), sans-serif;text-anchor:middle;paint-order:stroke;stroke:#0d1b2ad9;stroke-width:3px}.nx-roof .roof-svg .pnl{fill:var(--color-deep);stroke:var(--color-sky);stroke-width:1px}.nx-roof .roof-svg .pnl-free{fill:none;stroke:#f7f5f08c;stroke-width:1px;stroke-dasharray:3 3}.nx-roof .roof-svg .draft{fill:none;stroke:var(--color-ember);stroke-width:2px}.nx-roof .roof-svg .vtx{fill:var(--color-ember);stroke:#fff;stroke-width:2px;pointer-events:all}.nx-roof .roof-svg .vtx.first{fill:#fff;stroke:var(--color-ember);stroke-width:3px;cursor:pointer}.nx-roof .roof-svg .obst{fill:#9a580080;stroke:#fff;stroke-width:1.5px;pointer-events:all;cursor:move;outline:none}.nx-roof .roof-svg .obst.shade{fill:#0d1b2a73;stroke:var(--color-paper);stroke-dasharray:4 3}.nx-roof .roof-svg .obst.sel{stroke:var(--color-ember);stroke-width:2.5px}.nx-roof .roof-svg .obst:focus-visible{stroke:var(--color-signal);stroke-width:3px}.nx-roof .roof-svg .ohandle{fill:#fff;stroke:var(--color-ember);stroke-width:3px;pointer-events:all;cursor:nwse-resize}.nx-roof .roof-svg .olabel{fill:#fff;font:600 11px var(--font-archivo), sans-serif;text-anchor:middle;paint-order:stroke;stroke:#0d1b2ad9;stroke-width:3px;pointer-events:none}.nx-roof .roof-hint{z-index:600;max-width:calc(100% - 68px);color:var(--color-ink);pointer-events:none;background:#fff;border-radius:8px;padding:9px 14px;font-size:14px;position:absolute;top:12px;left:56px;box-shadow:0 6px 18px #0d1b2a40}.nx-roof .roof-load{z-index:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1b2a8c;place-items:center;display:grid;position:absolute;inset:0}.nx-roof .roof-load-in{width:min(420px,100% - 32px);color:var(--color-paper);background:#0d1b2af0;border:1px solid #8fb6de33;border-radius:12px;padding:24px 26px}.nx-roof .roof-load-in b{font-variation-settings:"wdth" 112;font-size:17px;font-weight:560}.nx-roof .roof-load ol{counter-reset:s;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.nx-roof .roof-load li{counter-increment:s;color:#f7f5f066;align-items:center;gap:12px;font-size:14px;transition:color .2s;display:flex}.nx-roof .roof-load li:before{content:counter(s);border:1.5px solid;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.nx-roof .roof-load li.on{color:var(--color-paper)}.nx-roof .roof-load li.on:before{border-color:var(--color-ember);color:var(--color-ember)}.nx-roof .roof-load li.done{color:var(--color-sky)}.nx-roof .roof-load li.done:before{content:"✓";background:var(--color-ember);border-color:var(--color-ember);color:#1c1006}.nx-roof .obs-bar{background:#fff;border:1px solid #294e7226;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:12px 14px;display:flex}.nx-roof .obs-l{color:var(--color-mute);margin-right:4px;font-size:14px}.nx-roof .obs-bar .nx-chip{min-height:40px;padding:0 12px;font-size:13px}.nx-roof .obs-bar .nx-chip svg{color:var(--color-ember-ink)}.nx-roof .obs-sel{border-top:1px solid #294e721a;flex-wrap:wrap;align-items:center;gap:14px;width:100%;margin-top:4px;padding-top:10px;font-size:14px;display:flex}.nx-roof .obs-sel b{font-weight:500}.nx-roof .roof-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.nx-roof .roof-info b{font-size:15px;font-weight:500;display:block}.nx-roof .roof-info span{color:var(--color-mute);font-size:13px;display:block}.nx-roof .roof-acts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nx-roof .roof-src{color:var(--color-mute);margin-top:8px;font-size:12px}.nx-roof .roof-stage .leaflet-control-attribution{font-size:10px}@media (max-width:699px){.nx-roof .roof-stage{height:360px}.nx-roof .roof-acts{width:100%}.nx-roof .roof-acts .nx-btn{flex:1}}.nx-range{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px}.nx-range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--color-ember) var(--pct), #294e7226 var(--pct));border-radius:999px;height:6px}.nx-range::-moz-range-track{background:linear-gradient(to right, var(--color-ember) var(--pct), #294e7226 var(--pct));border-radius:999px;height:6px}.nx-range::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--color-ember);background:#fff;border-radius:50%;width:24px;height:24px;margin-top:-9px;box-shadow:0 2px 6px #0d1b2a40}.nx-range::-moz-range-thumb{border:2px solid var(--color-ember);background:#fff;border-radius:50%;width:22px;height:22px;box-shadow:0 2px 6px #0d1b2a40}.nx-range:focus-visible{outline:none}.nx-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--color-signal);outline-offset:3px}.nx-range:focus-visible::-moz-range-thumb{outline:2px solid var(--color-signal);outline-offset:3px}.nx-range-night::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--color-ember) var(--pct), #8fb6de38 var(--pct))}.nx-range-night::-moz-range-track{background:linear-gradient(to right, var(--color-ember) var(--pct), #8fb6de38 var(--pct))}
