body{margin:0;background:#fff;font:13px/1.6 "Microsoft YaHei",Tahoma,sans-serif;color:#333}.embed{display:flex;flex-direction:column;height:100vh;box-sizing:border-box;padding:14px;gap:12px;overflow:auto}.card{border:1px solid #e5e7eb;padding:14px;background:#fafafa}.card h3{margin:0 0 10px;font-size:13px;color:#ff5000}.st{font-size:12px;color:#9ca3af}.f{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}label{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:4px}select{padding:6px 8px;border:1px solid #e5e7eb;background:#fff;font-size:13px;outline:none}input[type=number]{width:64px;padding:6px 8px;border:1px solid #e5e7eb;font-size:13px;outline:none;font-family:Consolas,Menlo,monospace}.btn{border:0;height:26px;padding:0 12px;background:#ff5000;color:#fff;font-size:13px;cursor:pointer}.btn.ghost{background:#fff;color:#ff5000;border:1px solid #ff5000}.btn.ghost:hover{background:#fff5f0}.drop{border:1px dashed #d1d5db;background:#fff;padding:20px;text-align:center;font-size:13px;color:#6b7280;cursor:pointer}.drop:hover{border-color:#ff5000;color:#ff5000}.drop b{color:#ff5000}.drop .tip{margin-top:6px;font-size:12px;color:#9ca3af}/* 画布与裁剪框同尺寸叠加；遮罩用超大 box-shadow，省掉额外 DOM */.stage{position:relative;margin-top:12px;display:inline-block;line-height:0;background:#f3f4f6;border:1px solid #e5e7eb;touch-action:none;user-select:none;max-width:100%}#cv{display:block;max-width:100%}.stage.is-empty #cv{display:none}.crop{position:absolute;left:0;top:0;box-sizing:border-box;border:1px solid #fff;outline:1px solid #ff5000;box-shadow:0 0 0 9999px rgba(0,0,0,.45);cursor:move}.crop.hide{display:none}.crop i.h{position:absolute;width:9px;height:9px;margin:-5px 0 0 -5px;background:#fff;border:1px solid #ff5000;box-sizing:border-box}.crop i[data-h=nw]{left:0;top:0;cursor:nwse-resize}.crop i[data-h=n]{left:50%;top:0;cursor:ns-resize}.crop i[data-h=ne]{left:100%;top:0;cursor:nesw-resize}.crop i[data-h=w]{left:0;top:50%;cursor:ew-resize}.crop i[data-h=e]{left:100%;top:50%;cursor:ew-resize}.crop i[data-h=sw]{left:0;top:100%;cursor:nesw-resize}.crop i[data-h=s]{left:50%;top:100%;cursor:ns-resize}.crop i[data-h=se]{left:100%;top:100%;cursor:nwse-resize}.empty{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#9ca3af}.stage:not(.is-empty) .empty{display:none}.outsize{font-size:12px;color:#6b7280;font-family:Consolas,Menlo,monospace}