/* Non-destructive transform bounds are workspace pixels, independent of export bounds. */
.canvas-transform-overlay{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:visible;touch-action:none}
.canvas-transform-box{position:absolute;box-sizing:border-box;border:1px solid #f4d771;box-shadow:0 0 0 1px #14131b85,inset 0 0 0 1px #14131b38;pointer-events:auto;touch-action:none;cursor:move}
.canvas-transform-box::after{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;border:1px solid #f4d771b3;border-radius:50%;background:#19181f59;transform:translate(-50%,-50%);pointer-events:none}
.canvas-transform-handle{position:absolute;display:block;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none}
.canvas-transform-handle::after{content:'';position:absolute;left:50%;top:50%;width:7px;height:7px;box-sizing:border-box;border:1px solid #f1d771;border-radius:1px;background:#29251b;box-shadow:0 0 0 1px #15151bcc;transform:translate(-50%,-50%)}
.canvas-transform-handle:hover::after{background:#f5da79;box-shadow:0 0 0 2px #f5da7933}
.handle-nw{left:0;top:0;cursor:nwse-resize}.handle-n{left:50%;top:0;cursor:ns-resize}.handle-ne{left:100%;top:0;cursor:nesw-resize}.handle-e{left:100%;top:50%;cursor:ew-resize}.handle-se{left:100%;top:100%;cursor:nwse-resize}.handle-s{left:50%;top:100%;cursor:ns-resize}.handle-sw{left:0;top:100%;cursor:nesw-resize}.handle-w{left:0;top:50%;cursor:ew-resize}
.canvas-transform-overlay.is-saving .canvas-transform-box{border-color:#d0bd80;cursor:progress}
.canvas-transform-overlay.is-saving .canvas-transform-handle{pointer-events:none;opacity:.5}
.canvas-transform-actions{position:absolute;z-index:13;left:calc(50% + (var(--floating-left,0px) - var(--floating-right,0px))/2);bottom:78px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:calc(100% - var(--floating-left,0px) - var(--floating-right,0px) - 64px);min-height:37px;padding:6px 8px;border:1px solid #e7c96045;border-radius:10px;background:#292720f5;color:#edddb0;box-shadow:0 7px 24px #0006;backdrop-filter:blur(14px);font-size:10px;line-height:1.4;white-space:nowrap}
.canvas-transform-label{font-size:10px;color:#ead289;font-weight:500}
#canvas-transform-info{min-width:50px;font-size:9px;color:#c5bdab;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.canvas-transform-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:25px;margin:0;padding:4px 7px;border:1px solid #ffffff24;border-radius:5px;background:#ffffff06;color:#e4dfd3;font:inherit;font-size:10px;line-height:1.3;cursor:pointer;white-space:nowrap}
.canvas-transform-actions button:hover:not(:disabled){background:#ffffff0e;border-color:#f1d06b66;color:#f9e4a5}
.canvas-transform-actions button:focus-visible{outline:2px solid #f0d272;outline-offset:2px}
.canvas-transform-actions button:disabled{opacity:.55;cursor:progress}
.canvas-transform-actions #canvas-transform-apply{background:#e8c9651a;border-color:#e8c96566;color:#f1d67b}
.canvas-transform-hint{font-size:9px;color:#b9b19d;padding-left:2px}
.studio-workspace #canvas-tool-transform.selected{background:#e6c76b17;border-color:#e6c76b66;color:#f0d477}
.studio-workspace .canvas-stage.is-transforming #editor-canvas{cursor:grab}
.studio-workspace .canvas-stage.is-transforming #editor-canvas:active{cursor:grabbing}
@media(max-width:1399px){.canvas-transform-hint{display:none}.canvas-transform-actions{gap:5px}}
@media(max-width:1100px){.canvas-transform-actions{left:50%;max-width:calc(100% - 24px)}}
@media(max-width:540px){.canvas-transform-actions{bottom:174px;gap:5px;max-width:calc(100% - 24px);padding:6px 7px;min-height:35px}.canvas-transform-label{display:none}.canvas-transform-actions button{padding:4px 6px;font-size:10px}.canvas-transform-handle{width:25px;height:25px}.canvas-transform-handle::after{width:8px;height:8px}.canvas-transform-actions #canvas-transform-info{min-width:47px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.canvas-transform-handle,.canvas-transform-actions button{transition:none}}
