.upload-dropzone{padding:16px;border:2px dashed #94a3b8;border-radius:12px;background:#f8fafc;min-width:0;transition:border-color .15s,background .15s}.upload-dropzone.is-dragging{border-color:#2563eb;background:#eff6ff}.upload-hint{margin:0 0 10px;color:#334155;font-size:.9rem}.upload-status{font-size:.85rem;color:#334155;overflow-wrap:anywhere}.upload-dropzone input[type=file]{max-width:100%;width:100%;color:#0f172a}.upload-preview{max-width:100%;max-height:220px;object-fit:contain;border-radius:8px}.upload-preview[hidden],.upload-dropzone button[hidden]{display:none!important}.upload-crop-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;border:0;border-radius:16px;padding:24px;color:#0f172a;background:#fff}.upload-crop-dialog::backdrop{background:rgba(15,23,42,.65)}.upload-crop-dialog canvas{display:block;width:100%;max-width:360px;aspect-ratio:1;margin:16px auto;background:#f1f5f9;touch-action:none;cursor:grab;border:2px solid #334155;border-radius:8px}.upload-crop-dialog canvas:active{cursor:grabbing}.upload-crop-dialog label{display:block}.upload-crop-dialog input[type=range]{width:100%;accent-color:#2563eb}.upload-crop-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:18px}.upload-crop-dialog p{color:#475569;font-size:.9rem}@media(max-width:480px){.upload-crop-dialog{padding:16px}.upload-crop-dialog canvas{max-width:280px}}
