.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__selection-toolbar{position:absolute;z-index:21;display:flex;align-items:center;flex-wrap:wrap;gap:4px;max-width:calc(100% - 24px);max-height:calc(100% - 72px);overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid #ded7ec;border-radius:12px;color:#292735;background:#fff;box-shadow:0 8px 28px #24253530}.roof-map__selection-count{padding:0 8px;font-size:12px;font-weight:650}.roof-map__selection-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:40px;min-height:40px;padding:0 9px;border-radius:7px;background:#f4f1f8;font-size:12px;font-weight:600}.roof-map__selection-toolbar button:hover{background:#e9e1f6}.roof-map__selection-toolbar button:focus-visible{outline:3px solid #7056b8;outline-offset:2px}.roof-map__selection-toolbar button:disabled{opacity:.45;cursor:not-allowed}.roof-map__selection-toolbar .roof-map__selection-delete{color:#9e3141;background:#fff1f2}.roof-map__selection-toolbar--rotation{width:310px;padding:12px}.roof-map__selection-toolbar--rotation .roof-map__selection-count{padding:0;color:#6d6579}.roof-map__rotation{display:grid;gap:10px;width:100%}.roof-map__rotation strong{font-size:14px}.roof-map__rotation-options{display:flex;flex-wrap:wrap;gap:6px}.roof-map__rotation-options button{flex:1}.roof-map__rotation-options button[aria-pressed=true]{background:#e9e1f6;box-shadow:inset 0 0 0 2px #7056b8}.roof-map__rotation-error{padding:8px;border-radius:6px;background:#fff1e4;color:#83380e;font-size:12px;line-height:1.5}.roof-map__rotation-hint{color:#6d6579;font-size:11px;line-height:1.5}.roof-map__selection-toolbar .roof-map__rotation-apply{background:#7056b8;color:white}@media (pointer:coarse){.roof-map__selection-toolbar button{min-height:44px;min-width:44px}}.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__obstruction-presets{flex:0 0 100%;grid-column:1/-1;width:min(520px,100%);padding:8px;border-top:1px solid #e7e4ee;color:#514763;font-size:11px;line-height:1.45}.roof-map__obstruction-presets>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:8px 0}.roof-map__obstruction-presets button{display:flex;min-height:48px;flex-direction:column;justify-content:center;align-items:center;border:1px solid #ded7ee;border-radius:7px;padding:5px;background:#f7f4fb}.roof-map__obstruction-presets button strong{font-size:12px}.roof-map__obstruction-presets button[aria-pressed=true]{background:#7056b8;color:white;border-color:#7056b8}.roof-map__obstruction-presets button:focus-visible{outline:3px solid #5bc5ed;outline-offset:2px}@media (max-width:600px){.roof-map__obstruction-presets>div{grid-template-columns:repeat(2,minmax(0,1fr))}}.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}}.roof-map__edit-toolbar{max-width:calc(100% - 24px);flex-wrap:wrap}.roof-map__selected-actions{display:flex;align-items:center;gap:6px;border-left:1px solid #ded9ea;padding-left:8px;font:600 11px system-ui}.roof-map__selected-actions button{display:flex;align-items:center;justify-content:center;gap:4px;min-width:36px;min-height:40px;border-radius:8px;background:#f6f4fa;color:#443761}.roof-map__selected-actions button:hover{background:#e9e1f6}.roof-map__rotation-handle{position:absolute;z-index:24;width:32px;height:32px;border-radius:999px;display:grid;place-items:center;transform:translate(-50%,-50%);background:#7056b8;color:white;border:2px solid white;box-shadow:0 2px 12px #25174760;cursor:grab;touch-action:none}.roof-map__rotation-handle:active{cursor:grabbing;background:#493376}.roof-map__rotation-handle:focus-visible{outline:3px solid #5bc5ed;outline-offset:3px}.roof-map__direction-prompt{position:absolute;z-index:32;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;max-width:calc(100% - 30px);padding:12px 16px;border:1px solid #d9d1ea;border-radius:16px;background:#fffffff5;box-shadow:0 8px 30px #2b204526;color:#40345b;font:12px/1.5 system-ui}.roof-map__direction-prompt strong{font-size:14px}.roof-map__direction-prompt button{min-width:32px;min-height:32px}.roof-map__direction-edge{position:absolute;z-index:31;transform:translate(-50%,-50%);width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:2px solid white;background:#7056b8;color:white;box-shadow:0 2px 10px #0005}.roof-map__direction-edge:hover{background:#493376;transform:translate(-50%,-50%) scale(1.15)}.roof-map__direction-hint{position:absolute;top:96px;left:50%;transform:translateX(-50%);z-index:32;background:white;border-radius:12px;padding:8px 12px;font-size:12px}