.map-align-toggle {
    position: absolute;
    z-index: 760;
    top: 14px;
    right: 14px;
    min-height: 42px;
    padding: 9px 13px;
    border: 1px solid rgba(109,40,217,.24);
    border-radius: 13px;
    background: rgba(255,255,255,.94);
    color: #5b21b6;
    box-shadow: 0 12px 32px rgba(16,59,45,.14);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.map-align-panel {
    position: absolute;
    z-index: 800;
    top: 14px;
    right: 14px;
    width: min(320px, calc(100% - 28px));
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(109,40,217,.22);
    border-radius: 17px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 48px rgba(31,15,59,.22);
    backdrop-filter: blur(14px);
}

.map-align-panel[hidden] { display: none; }
.map-align-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.map-align-panel-head strong { color: #4c1d95; }

.map-align-close {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 9px;
    background: #f5f3ff;
    color: #5b21b6;
    font-size: 20px;
    cursor: pointer;
}

.map-align-panel p,
.map-align-panel small { margin: 0; color: #6b7280; font-size: 11px; line-height: 1.45; }

.map-align-panel label {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 10px;
    color: #27272a;
    font-size: 12px;
    font-weight: 700;
}

.map-align-panel input[type="range"] {
    grid-column: 1 / -1;
    width: 100%;
    accent-color: #6d28d9;
}

.map-align-panel select,
.map-align-panel input[type="number"] {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #ddd6fe;
    border-radius: 10px;
    background: #fff;
    color: #27272a;
    font: inherit;
    font-size: 12px;
}

.map-align-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.map-align-actions button {
    min-height: 36px;
    padding: 8px 11px;
    border: 1px solid #ddd6fe;
    border-radius: 10px;
    background: #fff;
    color: #5b21b6;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}
.map-align-actions .map-align-save { border-color: #6d28d9; background: #6d28d9; color: #fff; }
.map-align-actions button:disabled { opacity: .55; cursor: wait; }

.map-use-current-zoom {
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid #ddd6fe;
    border-radius: 10px;
    background: #faf5ff;
    color: #5b21b6;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.map-align-panel select[data-map-active-layer] { width: 100%; min-height: 38px; }

.land-map-shell.is-aligning .land-svg-overlay,
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer { pointer-events: none; cursor: default; }
.land-map-shell.is-aligning .land-svg-overlay { opacity: .78; }
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer { opacity: 1; }
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer .zf-map-plot > polygon,
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer .zf-map-plot > path,
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer .zf-map-plot > polyline,
.land-map-shell.is-aligning .land-svg-overlay.is-active-map-layer .zf-layer-drag-surface { pointer-events: visiblePainted; cursor: move; }

.map-transform-lock-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #2f2440;
    font-size: 12px;
    font-weight: 800;
}
.map-transform-lock {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #ddd6fe;
    border-radius: 10px;
    background: #fff;
    color: #4c1d95;
    font: 700 11px/1.2 Manrope, Arial, sans-serif;
    cursor: pointer;
}
.map-transform-lock img { width: 15px; height: 15px; }
.map-transform-lock.is-unlocked { border-color: #c4b5fd; background: #f5f3ff; }
.map-transform-help { color: #6d28d9; }
.map-svg-alignment-controls { display: contents; }
.map-svg-alignment-controls[hidden] { display: none; }
.map-transform-corner { cursor: nwse-resize; filter: drop-shadow(0 2px 3px rgba(0,0,0,.24)); }
.map-transform-control[hidden],
.map-transform-proportions[hidden] { display: none; }
