.roof-map .maplibregl-map{font:inherit}.roof-map .maplibregl-ctrl-group:empty{display:none}.roof-map .maplibregl-ctrl-group button{width:44px;height:44px}.roof-map .maplibregl-ctrl-group button+button{border-top:1px solid var(--rule)}.roof-map .maplibregl-map.mode-draw_polygon .maplibregl-canvas-container.maplibregl-interactive,.roof-map .maplibregl-map.mouse-add .maplibregl-canvas-container.maplibregl-interactive{cursor:crosshair}.roof-map .maplibregl-map.mouse-move .maplibregl-canvas-container.maplibregl-interactive{cursor:move}.roof-map .maplibregl-map.mouse-pointer .maplibregl-canvas-container.maplibregl-interactive{cursor:pointer}.roof-map .maplibregl-map.mouse-drag .maplibregl-canvas-container.maplibregl-interactive{cursor:grabbing}.roof-map .maplibregl-map.mouse-none .maplibregl-canvas-container.maplibregl-interactive{cursor:default}.roof-map .maplibregl-canvas{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.roof-map[data-edit-tool=select] .maplibregl-canvas{cursor:crosshair}.roof-map[data-edit-tool=pan] .maplibregl-canvas{cursor:grab}.roof-map[data-edit-tool=move] .maplibregl-canvas:active,.roof-map[data-edit-tool=pan] .maplibregl-canvas:active{cursor:grabbing}.roof-map__marquee{position:absolute;z-index:9;pointer-events:none;border:2px solid var(--brand-primary,#0f766e);background:color-mix(in srgb,var(--brand-primary,#0f766e) 18%,transparent);box-shadow:inset 0 0 0 1px rgb(255 255 255/70%)}.roof-map .maplibregl-ctrl-attrib{font-size:10px;line-height:1.2}.roof-map__toolbar{bottom:44px;max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:flex-end;padding:6px;gap:4px;border:1px solid #e7e4ee;border-radius:10px;background:#fff;box-shadow:0 5px 20px #24253530;left:12px;right:auto;justify-content:flex-start}.roof-map__toolbar>button{min-width:44px;width:auto;height:44px;padding:0 10px;border-radius:6px;box-shadow:none;color:#292735;background:white}.roof-map__toolbar>button[aria-pressed=true]{background:#7056B8;color:white;outline:none;box-shadow:none}.roof-map__toolbar>button:focus-visible{outline:3px solid #5BC5ED;outline-offset:2px}.roof-map__handle{width:44px;height:44px;border:12px solid transparent;border-radius:50%;background:#5BC5ED;background-clip:padding-box;cursor:grab;touch-action:none;padding:0;color:#242535}.roof-map__handle:before{content:"";position:absolute;inset:9px;border:3px solid white;border-radius:50%;box-shadow:0 0 0 2px #242535;pointer-events:none}.roof-map__handle--corner{z-index:2}.roof-map__handle--edge{z-index:1;border-radius:4px;font-weight:800;line-height:18px}.roof-map__handle--edge:before{border-radius:4px}.roof-map__handle:focus{outline:3px solid #7056B8;outline-offset:3px}.roof-map__delete-corner{position:absolute;top:140px;right:76px;z-index:12;min-height:44px;background:white;color:#932f38;padding:8px 12px;border-radius:6px;border:1px solid #e7e4ee}.roof-map__retained-warning{position:absolute;left:12px;right:76px;top:92px;z-index:10;pointer-events:none;background:#fff2d1;color:#69400b;border:1px solid #d99624;border-radius:5px;padding:6px 10px;font-size:12px}.roof-map__face-picker{display:flex;min-height:3rem;align-items:center;gap:.4rem;border-radius:9999px;padding:0 .75rem;background:color-mix(in srgb,var(--background) 95%,transparent);color:var(--foreground);box-shadow:0 4px 12px rgb(15 23 42/22%);font-size:.75rem;font-weight:600}.roof-map__face-picker>span{white-space:nowrap}.roof-map__face-picker select{max-width:9rem;border:0;background:transparent;color:inherit;font:inherit;outline:none}@media (max-width:600px){.roof-map__toolbar{right:.5rem;gap:.25rem;width:min(20rem,calc(100% - .5rem));display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;max-width:calc(100% - 24px);bottom:28px}.roof-map__toolbar>button{flex:0 0 auto;width:auto!important;min-width:0!important}.roof-map__toolbar>.roof-map__toolbar-button--wide{grid-column:span 2}.roof-map__face-picker{grid-column:1/-1;justify-content:space-between}}.roof-map__shortcuts{position:absolute;bottom:18px;left:12px;z-index:10;pointer-events:none;border-radius:6px;padding:4px 8px;background:rgb(255 255 255/95%);color:#514763;font-size:11px}@media (max-width:700px){.roof-map__shortcuts{display:none}}.roof-map__tool-divider{align-self:stretch;width:1px;background:#E7E4EE;margin:3px}.roof-map__toolbar{max-height:calc(100% - 112px);overflow-y:auto;overscroll-behavior:contain}.roof-map__toolbar>button{flex-shrink:0}.roof-map__direction-surface{position:absolute;inset:0;z-index:25;cursor:crosshair;touch-action:none;outline:none}.roof-map__direction-overlay{width:100%;height:100%;pointer-events:none;overflow:visible}.roof-map[data-direction-pending=true] .roof-map__toolbar{opacity:.55}.roof-map__direction-card{position:absolute;top:12px;left:12px;z-index:26;width:min(380px,calc(100% - 80px));border:1px solid #ded7ee;border-radius:12px;padding:12px;color:#292735;background:#fff;box-shadow:0 5px 20px #24253530;font-size:12px}.roof-map__direction-title{display:flex;gap:8px;align-items:center;color:#6145a3}.roof-map__direction-title h3{font-size:14px;font-weight:700;line-height:1.3}.roof-map__direction-card p{margin-top:6px;line-height:1.45}.roof-map__direction-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.roof-map__direction-controls label{display:flex;align-items:center;gap:6px}.roof-map__direction-controls label>span{display:flex;align-items:center;border:1px solid #ded7ee;border-radius:6px;padding-right:6px}.roof-map__direction-controls input{width:70px;padding:7px 5px;border:none;border-radius:6px}.roof-map__direction-controls strong{font-size:12px;color:#6145a3}.roof-map__direction-presets{display:flex;gap:3px}.roof-map__direction-presets button{min-width:30px;min-height:32px;border:1px solid #ded7ee;border-radius:5px;font-weight:600}.roof-map__direction-presets button[aria-pressed=true]{color:#fff;background:#7056b8;border-color:#7056b8}.roof-map__direction-note{color:#6d6579;font-size:11px}.roof-map__direction-actions{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.roof-map__direction-actions button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:40px;border:1px solid #ded7ee;border-radius:6px;padding:7px 9px;font-weight:600}.roof-map__direction-actions .roof-map__direction-confirm{color:#fff;background:#7056b8;border-color:#7056b8}.roof-map__direction-actions button:disabled{opacity:.45;cursor:not-allowed}.roof-map__direction-card button:focus-visible,.roof-map__direction-card input:focus-visible{outline:3px solid #5bc5ed;outline-offset:2px}@media (max-width:600px){.roof-map__direction-card{width:calc(100% - 24px)}.roof-map__direction-title h3{font-size:13px}.roof-map__direction-controls{gap:6px}}