.crop-workspace .crop-stage { touch-action: none; user-select: none; }
.crop-stage img { pointer-events: none; user-select: none; }
.crop-workspace[data-ready] .crop-stage { cursor: crosshair; }
.crop-workspace .crop-selection { position: absolute; z-index: 1; box-sizing: border-box; border: 2px solid #fff; box-shadow: 0 0 0 1px #0009, 0 0 0 9999px #0009; cursor: move; touch-action: none; }
.crop-workspace .crop-selection[hidden] { display: none; }
.crop-workspace .crop-selection:focus-visible { outline: none; }
.crop-handle { position: absolute; width: 14px; height: 14px; border: 2px solid #fff; border-radius: 3px; background: #111; touch-action: none; }
.crop-handle-nw { top: -8px; left: -8px; cursor: nwse-resize; }
.crop-handle-ne { top: -8px; right: -8px; cursor: nesw-resize; }
.crop-handle-sw { bottom: -8px; left: -8px; cursor: nesw-resize; }
.crop-handle-se { bottom: -8px; right: -8px; cursor: nwse-resize; }
.crop-workspace .crop-label { display: block; margin: 16px 0 7px; }
.crop-workspace select { width: 100%; }
.crop-custom { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 7px; margin-top: 8px; }
.crop-custom[hidden] { display: none; }
.crop-custom label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.crop-section-title { margin: 18px 0 8px; }
.crop-selection-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.crop-fields label { display: grid; gap: 6px; color: #bdbbc8; }
.crop-quality-label { display: flex; justify-content: space-between; margin: 16px 0 8px; }
.crop-workspace input[type="range"] { width: 100%; }
.crop-workspace.is-loading .crop-selection { pointer-events: none; }

.crop-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.crop-actions button { min-width: 0; }
.crop-overlay-actions { position: absolute; z-index: 3; top: 8px; right: 8px; display: flex; gap: 6px; }
.crop-workspace:not([data-ready]) .crop-overlay-actions { display: none; }
.crop-overlay-actions button { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; }
.crop-overlay-actions button:disabled { opacity: .46; cursor: default; }
