.photo-crop-dialog{width:min(720px,96vw);padding:48px 28px 28px;border-radius:10px}
.photo-crop-dialog h2{font-size:28px;margin:0 36px 14px 0}
.photo-crop-dialog p{font-size:14px;line-height:1.6}
.crop-preview{max-width:360px;margin:18px auto;position:relative;border:1px solid var(--line);background:#fff;line-height:0}
.crop-preview canvas{display:block;width:100%;height:auto;object-fit:contain;touch-action:none;cursor:grab}
.crop-preview canvas:active{cursor:grabbing}
.crop-status{min-height:22px;color:var(--muted)}
.crop-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.crop-controls label,.crop-replace{font-size:14px;display:block;min-width:0}
.crop-controls input,.crop-controls select,.crop-replace input{width:100%;display:block;margin-top:8px;font-size:16px}
.crop-controls input[type=range]{min-height:44px;accent-color:var(--gold);padding:0}
.crop-controls output{float:right;color:var(--muted)}
.crop-tools,.crop-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}
.crop-tools button{min-height:44px;padding:10px 14px;background:var(--cream);border:1px solid var(--line);font-size:14px}
.crop-actions{justify-content:flex-end}.crop-actions .btn{min-height:44px;font-size:14px;justify-content:center}
.photo-crop-dialog>small{font-size:13px;line-height:1.6;display:block;color:var(--muted)}
@media(max-width:680px){.photo-crop-dialog{padding:52px 16px 24px}.crop-controls{gap:10px 14px}.crop-actions .btn{flex:1}.crop-preview{max-width:300px}.crop-preview canvas{max-height:none}}
