/* Shared full-screen image crop editor (app-image-crop.js). Dark stage, picture moves under a fixed box. */
#image-crop-dialog { width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #0b0f14; color: #fff; font: inherit; overflow: hidden }
#image-crop-dialog[open] { display: flex; flex-direction: column }
#image-crop-dialog::backdrop { background: #000 }
#image-crop-dialog button { font: inherit; cursor: pointer; min-height: 44px; min-width: 44px; border: 0; border-radius: 12px; color: #fff; background: #ffffff26; padding: 0 14px }
#image-crop-dialog button:focus-visible, #image-crop-dialog canvas:focus-visible { outline: 3px solid #7ea7ff; outline-offset: -3px }
#image-crop-dialog button:disabled { opacity: .45; cursor: default }
#image-crop-dialog .crop-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }
#image-crop-dialog .crop-top { display: flex; align-items: center; gap: 8px; padding: 8px 12px; flex: none; flex-wrap: wrap }
#image-crop-dialog .crop-top > button:first-child { padding: 0; display: grid; place-items: center }
#image-crop-dialog .crop-badge { flex: 1; min-width: 0; font-size: 13px; color: #d7e3ff; overflow-wrap: anywhere }
#image-crop-dialog .crop-zoom { display: inline-flex; align-items: center; gap: 4px; font-size: 14px }
#image-crop-dialog .crop-zoom output { min-width: 3.2em; text-align: center }
#image-crop-dialog .crop-zoom button { padding: 0; font-size: 20px }
#image-crop-dialog .crop-stage { flex: 1; min-height: 0; position: relative; overflow: hidden }
#image-crop-dialog canvas { display: block; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none }
#image-crop-dialog .crop-bottom { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px calc(12px + env(safe-area-inset-bottom)); flex: none }
#image-crop-dialog .crop-secondary { display: flex; gap: 8px }
#image-crop-dialog .crop-secondary button { flex: 1 }
#image-crop-dialog .crop-primary { background: #2563eb; font-weight: 700; min-height: 48px }
/* AI Match thumbnail tag: 已框定 / 整张 (tap = redraw the box on the original picture) */
.mt-thumb img[data-act="img_edit"] { cursor: pointer }
.mt-thumb .mt-thumb-tag { position: absolute; top: auto; right: auto; left: 2px; bottom: 2px; width: auto; height: 16px; padding: 0 5px; border-radius: 8px; font-size: 10px; background: #111c; white-space: nowrap }
