.image-crop-editor-shell{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;gap:14px;display:grid}.image-crop-stage-panel,.image-crop-controls{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;padding:12px}.image-crop-stage-panel{justify-content:center;display:flex}.image-crop-stage{border:1px solid var(--border-color);background:var(--bg-secondary);touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;border-radius:10px;position:relative;overflow:hidden}.image-crop-preview{object-fit:contain;transform-origin:50%;pointer-events:none;width:100%;height:100%}.image-crop-rect{border:2px solid var(--accent-primary);cursor:move;z-index:2;border-radius:8px;position:absolute;box-shadow:0 0 0 9999px #6b728073}.crop-size-chip{border:1px solid var(--border-color);color:var(--text-primary);background:var(--bg-primary);border-radius:999px;padding:3px 8px;font-size:.74rem;position:absolute;top:-26px;left:0}.image-crop-handle{border:2px solid var(--bg-primary);background:var(--accent-primary);border-radius:999px;width:12px;height:12px;padding:0;position:absolute}.image-crop-handle.handle-nw,.image-crop-handle.handle-ne,.image-crop-handle.handle-se,.image-crop-handle.handle-sw{width:13px;height:13px}.image-crop-handle.handle-nw{cursor:nwse-resize;top:-7px;left:-7px}.image-crop-handle.handle-n{cursor:ns-resize;background:var(--text-tertiary);top:-7px;left:calc(50% - 6px)}.image-crop-handle.handle-ne{cursor:nesw-resize;top:-7px;right:-7px}.image-crop-handle.handle-e{cursor:ew-resize;background:var(--text-tertiary);top:calc(50% - 6px);right:-7px}.image-crop-handle.handle-se{cursor:nwse-resize;bottom:-7px;right:-7px}.image-crop-handle.handle-s{cursor:ns-resize;background:var(--text-tertiary);bottom:-7px;left:calc(50% - 6px)}.image-crop-handle.handle-sw{cursor:nesw-resize;bottom:-7px;left:-7px}.image-crop-handle.handle-w{cursor:ew-resize;background:var(--text-tertiary);top:calc(50% - 6px);left:-7px}.image-crop-controls{flex-direction:column;gap:10px;display:flex}.image-crop-control-group{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.image-crop-control-group h4{color:var(--text-primary);margin:0;font-size:.85rem}.image-crop-preset-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.image-crop-preset-btn,.crop-action-btn,.crop-export-btn{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:var(--tools-transition);border-radius:8px;padding:8px 10px;font-size:.8rem;font-weight:600}.image-crop-preset-btn:hover,.crop-action-btn:hover,.crop-export-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.image-crop-preset-btn.active,.crop-action-btn.active{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--bg-primary)}.image-crop-custom-ratio{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;display:grid}.image-crop-custom-ratio label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:.75rem;font-weight:600;display:flex}.image-crop-custom-ratio input,.image-crop-slider-field input{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:8px;padding:7px 8px}.image-crop-action-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.image-crop-slider-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:.76rem;font-weight:600;display:flex}.image-crop-hint{color:var(--text-tertiary);margin:0;font-size:.74rem}.image-crop-footer{grid-template-columns:1fr 1fr;gap:8px;display:grid}.crop-export-btn{background:linear-gradient(135deg,var(--accent-primary)0%,var(--accent-secondary)100%);color:var(--bg-primary);border-color:#0000}.crop-export-btn:disabled,.crop-action-btn:disabled,.image-crop-preset-btn:disabled{opacity:.55;cursor:not-allowed}@media (max-width:1080px){.image-crop-editor-shell{grid-template-columns:1fr}.image-crop-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.image-crop-preset-grid,.image-crop-action-row,.image-crop-footer,.image-crop-custom-ratio{grid-template-columns:1fr}}
