.preventive-map-shell{display:grid;gap:16px;min-width:0}.preventive-map-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;padding:22px 24px;background:linear-gradient(120deg,#fff 0%,#f6f8f3 100%);border:1px solid #e1e7dc;border-radius:12px}.preventive-map-toolbar h2{margin:4px 0 6px;color:#244333;font-size:20px;letter-spacing:-.3px}.preventive-map-toolbar p:last-child{margin:0;color:#68776c;font-size:12px;line-height:1.6}.preventive-map-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.preventive-map-actions button{min-width:38px}.preventive-map-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.preventive-map-summary article{display:grid;gap:7px;padding:15px 17px;background:#fff;border:1px solid #e2e8df;border-radius:10px}.preventive-map-summary article>span{font-size:11px;color:#6c786e}.preventive-map-summary strong{font-size:25px;line-height:1;color:#304839;font-weight:600}.preventive-map-summary .summary-green{border-color:#d4e6d8}.preventive-map-summary .summary-green strong{color:#28764a}.preventive-map-summary .summary-yellow{border-color:#efe2c7}.preventive-map-summary .summary-yellow strong{color:#9b711b}.preventive-map-summary .summary-red{border-color:#efd6d2}.preventive-map-summary .summary-red strong{color:#b4473d}.preventive-map-legend{display:flex;flex-wrap:wrap;gap:9px 22px;align-items:center;padding:4px 2px;color:#546258;font-size:11px}.preventive-map-legend span{display:inline-flex;align-items:center;gap:8px}.preventive-map-legend i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px white,0 0 0 3px #dfe5dc}.preventive-map-legend i.green{background:#2e8b57}.preventive-map-legend i.yellow{background:#d09a2c}.preventive-map-legend i.red{background:#d25147}.preventive-map-frame{background:#fff;border:1px solid #dce4db;border-radius:12px;overflow:hidden}.preventive-map-viewport{max-height:min(75vh,920px);min-height:400px;overflow:auto;background:#f0f2ed;overscroll-behavior:contain}.preventive-map-viewport:focus-visible{outline:3px solid #7e9b72;outline-offset:-3px}.preventive-map-stage{position:relative;width:100%;line-height:0;transition:width .22s ease}.preventive-map-stage>img{display:block;width:100%;height:auto}.preventive-map-pins{position:absolute;inset:0}.preventive-pin{position:absolute;left:var(--x);top:var(--y);width:18px;height:18px;display:grid;place-items:center;transform:translate(-50%,-50%);padding:0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #384a3e8c,0 1px 4px #15211655;cursor:help;z-index:1}.preventive-pin.green{background:#2e8b57}.preventive-pin.yellow{background:#d09a2c}.preventive-pin.red{background:#d25147}.preventive-pin:hover,.preventive-pin:focus-visible{z-index:20;transform:translate(-50%,-50%) scale(1.25);outline:2px solid #173d32;outline-offset:2px}.preventive-pin-tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);display:grid;gap:5px;min-width:220px;max-width:280px;padding:11px 13px;background:#24372e;color:#fff;border-radius:8px;box-shadow:0 8px 24px #1d302b38;font-size:11px;line-height:1.5;text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease;pointer-events:none}.preventive-pin-tooltip:after{position:absolute;top:100%;left:50%;content:"";border:6px solid transparent;border-top-color:#24372e;transform:translateX(-50%)}.preventive-pin-tooltip strong{font-size:12px}.preventive-pin-tooltip>span{color:#e0e7e1}.preventive-pin-tooltip small{color:#c4d0c7}.preventive-pin:hover .preventive-pin-tooltip,.preventive-pin:focus-visible .preventive-pin-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}.preventive-map-unplaced{padding:15px 18px;background:#fff;border:1px solid #e2e8df;border-radius:10px;font-size:12px;color:#44564a}.preventive-map-unplaced summary{cursor:pointer;font-weight:600}.preventive-map-unplaced summary span{color:#7b897e;font-weight:400}.preventive-map-unplaced ul{padding-left:21px;max-height:300px;overflow:auto;line-height:1.8;color:#68776c}.preventive-map-unplaced p,.preventive-map-footnote{font-size:10px;line-height:1.6;color:#7a887c}.preventive-map-footnote{margin:0 2px}.preventive-map-shell .notice{padding:14px 17px}
@media(max-width:900px){.preventive-map-toolbar{align-items:flex-start;flex-direction:column}.preventive-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.preventive-map-viewport{min-height:350px;max-height:68vh}}
@media(max-width:600px){.preventive-map-toolbar{padding:17px}.preventive-map-toolbar h2{font-size:18px}.preventive-map-toolbar p:last-child{font-size:11px}.preventive-map-actions{width:100%}.preventive-map-actions [data-map-refresh]{margin-left:auto}.preventive-map-summary{gap:8px}.preventive-map-summary article{padding:12px}.preventive-map-summary article>span{font-size:10px;line-height:1.4}.preventive-map-summary strong{font-size:22px}.preventive-map-legend{font-size:10px;gap:8px 14px}.preventive-map-viewport{min-height:270px;max-height:62vh}.preventive-pin-tooltip{min-width:190px;max-width:235px}}
@media(prefers-reduced-motion:reduce){.preventive-map-stage,.preventive-pin-tooltip{transition:none}}
.preventive-map-image-error{margin:0;padding:12px 16px;background:#fff7e8;color:#765a26;border-bottom:1px solid #eadfc8;font-size:12px;line-height:1.55}
.preventive-pin.tooltip-left .preventive-pin-tooltip{left:auto;right:0;transform:translateY(4px)}.preventive-pin.tooltip-left .preventive-pin-tooltip:after{left:auto;right:5px;transform:none}.preventive-pin.tooltip-right .preventive-pin-tooltip{left:0;transform:translateY(4px)}.preventive-pin.tooltip-right .preventive-pin-tooltip:after{left:5px;transform:none}.preventive-pin.tooltip-left:hover .preventive-pin-tooltip,.preventive-pin.tooltip-left:focus-visible .preventive-pin-tooltip,.preventive-pin.tooltip-right:hover .preventive-pin-tooltip,.preventive-pin.tooltip-right:focus-visible .preventive-pin-tooltip{transform:translateY(0)}
.preventive-map-legend i.green{background:#39ff14;box-shadow:0 0 0 2px white,0 0 0 3px #26352c,0 0 9px #39ff14}.preventive-map-legend i.yellow{background:#fff000;box-shadow:0 0 0 2px white,0 0 0 3px #3b391f,0 0 9px #fff000}.preventive-map-legend i.red{background:#ff303f;box-shadow:0 0 0 2px white,0 0 0 3px #3b2022,0 0 9px #ff303f}
.preventive-pin{width:auto;height:auto;border:0;border-radius:0;background:transparent!important;box-shadow:none;overflow:visible;padding:0;line-height:1}.preventive-pin.green{--signal:#39ff14}.preventive-pin.yellow{--signal:#fff000}.preventive-pin.red{--signal:#ff303f}.preventive-pin-label{position:relative;display:grid;place-items:center;min-width:25px;height:18px;margin-top:5px;padding:0 3px;border:1px solid var(--signal);border-radius:4px;background:rgba(255,255,255,.96);color:#17231c;font:800 9px/16px system-ui,sans-serif;letter-spacing:-.15px;box-shadow:0 1px 4px #13201866}.preventive-pin-dot{position:absolute;top:-7px;left:50%;width:9px;height:9px;transform:translateX(-50%);border:1.5px solid #fff;border-radius:50%;background:var(--signal);box-shadow:0 0 0 1px #1c2a22,0 0 7px var(--signal),0 0 13px var(--signal);z-index:1}.preventive-pin:hover,.preventive-pin:focus-visible{transform:translate(-50%,-50%) scale(1.12);outline:0}.preventive-pin:hover .preventive-pin-label,.preventive-pin:focus-visible .preventive-pin-label{box-shadow:0 0 0 2px #18251d,0 0 11px var(--signal)}
.preventive-map-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.preventive-map-summary .summary-parts{border-color:#ffd1ad}.preventive-map-summary .summary-parts strong{color:#c44a00}.preventive-map-legend i.parts{background:#ff6a00;box-shadow:0 0 0 2px white,0 0 0 3px #472b1c,0 0 10px #ff6a00}.preventive-pin.parts{--signal:#ff6a00}.preventive-map-legend span:has(i.parts){font-weight:600;color:#984000}.preventive-pin-tooltip .parts-tooltip-state{color:#ffae73;font-weight:700}
@media(max-width:900px){.preventive-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.preventive-map-shell{gap:9px}.preventive-map-toolbar,.preventive-map-legend{display:none}.preventive-map-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.preventive-map-summary article{display:flex;align-items:center;gap:7px;min-width:0;padding:8px 10px;background:#23261f;border-color:#41443b;border-radius:7px}.preventive-map-summary article>span{overflow:hidden;color:#c4c4bb;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.preventive-map-summary strong{font-size:16px}.preventive-map-summary article>i{width:8px;height:8px;flex:none;border-radius:50%;background:var(--summary-signal);box-shadow:0 0 7px var(--summary-signal)}.preventive-map-summary .summary-green{--summary-signal:#39ff14;border-color:#384c32}.preventive-map-summary .summary-green strong{color:#b7ff91}.preventive-map-summary .summary-yellow{--summary-signal:#fff000;border-color:#504a2c}.preventive-map-summary .summary-yellow strong{color:#fff59a}.preventive-map-summary .summary-red{--summary-signal:#ff303f;border-color:#573333}.preventive-map-summary .summary-red strong{color:#ffaaa9}.preventive-map-summary .summary-parts{--summary-signal:#ff6a00;border-color:#684026}.preventive-map-summary .summary-parts strong{color:#ffad70}.preventive-map-summary .summary-total strong{color:#e9e9e2}.preventive-map-frame{position:relative;background:#1f221c;border-color:#42453d;border-radius:9px}.preventive-map-mapbar{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:5px 9px;background:#20231d;border-bottom:1px solid #41443b}.preventive-map-mapmeta{display:flex;align-items:baseline;gap:10px;min-width:120px}.preventive-map-mapmeta strong{color:#e0e1db;font-size:11px}.preventive-map-mapmeta>span{color:#93958d;font-size:10px}.preventive-map-actions{justify-content:flex-end;gap:5px}.preventive-map-actions button{min-height:30px;padding:5px 9px;font-size:10px}.preventive-map-viewport{min-height:240px;max-height:min(72vh,820px);background:#1b1e19}.preventive-map-stage{margin:0 auto}.preventive-map-image-error{padding:8px 12px}.preventive-map-edit-note{margin:0;padding:7px 11px;background:#2b2b21;color:#f4dfa4;border-bottom:1px solid #51482c;font-size:11px}.preventive-pin.is-editing{cursor:move;touch-action:none}.preventive-pin.is-editing .preventive-pin-tooltip{display:none}.preventive-map-footnote{margin-top:0;color:#8f9289;font-size:10px}
@media(max-width:900px){.preventive-map-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.preventive-map-viewport{max-height:68vh;min-height:240px}}
@media(max-width:600px){.preventive-map-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.preventive-map-mapbar{align-items:flex-start;flex-direction:column}.preventive-map-mapmeta{width:100%;justify-content:space-between}.preventive-map-actions{width:100%;justify-content:flex-start}.preventive-map-actions [data-map-refresh]{margin-left:0}.preventive-map-actions button{flex:1 1 auto;padding-inline:6px}.preventive-map-viewport{max-height:62vh;min-height:200px}.preventive-map-summary article>span{font-size:9px}}
.preventive-map-summary .summary-parts{--summary-signal:#d000ff;border-color:#70218a}.preventive-map-summary .summary-parts>i{border:1px solid #30143a;box-shadow:0 0 0 1px #efb3ff,0 0 10px #d000ff}.preventive-map-summary .summary-parts strong{color:#efb3ff}.preventive-pin.parts{--signal:#d000ff}.preventive-pin.parts .preventive-pin-label{border-color:#8a20a8;box-shadow:0 0 0 1px #2a1730,0 0 8px #d000ff}.preventive-pin.parts .preventive-pin-dot{background:#d000ff;border-color:#fff;box-shadow:0 0 0 1px #391345,0 0 7px #d000ff,0 0 14px #d000ff}.preventive-map-legend i.parts{background:#d000ff;box-shadow:0 0 0 2px white,0 0 0 3px #391345,0 0 10px #d000ff}.preventive-map-legend span:has(i.parts){color:#efb3ff}.preventive-pin-tooltip .parts-tooltip-state{color:#efb3ff}
