/* Phòng tranh Dora — phần dùng chung app + công cụ miễn phí (assets/tranh-core.js) */
.tc-crop-wrap { touch-action: none; user-select: none; margin: 0 auto; max-width: 100%; width: fit-content; padding: 16px; overflow: hidden; border-radius: 16px; background: rgba(20,20,40,.06); }
.tc-crop-in { position: relative; }
.tc-crop-wrap img { display: block; max-width: 100%; max-height: 62vh; border-radius: 12px; }
.tc-crop-box { position: absolute; border: 3px solid #F2711C; box-shadow: 0 0 0 9999px rgba(20,20,40,.45); border-radius: 6px; cursor: move; }
.tc-crop-box i { position: absolute; width: 26px; height: 26px; background: #fff; border: 3px solid #F2711C; border-radius: 50%; }
.tc-crop-box i[data-h="nw"] { left: -14px; top: -14px; cursor: nwse-resize; } .tc-crop-box i[data-h="ne"] { right: -14px; top: -14px; cursor: nesw-resize; }
.tc-crop-box i[data-h="sw"] { left: -14px; bottom: -14px; cursor: nesw-resize; } .tc-crop-box i[data-h="se"] { right: -14px; bottom: -14px; cursor: nwse-resize; }
.tc-crop-box i[data-h="n"] { left: calc(50% - 13px); top: -14px; cursor: ns-resize; } .tc-crop-box i[data-h="s"] { left: calc(50% - 13px); bottom: -14px; cursor: ns-resize; }
.tc-crop-box i[data-h="w"] { top: calc(50% - 13px); left: -14px; cursor: ew-resize; } .tc-crop-box i[data-h="e"] { top: calc(50% - 13px); right: -14px; cursor: ew-resize; }
.tc-note { text-align: center; font-size: 14px; opacity: .75; margin: 10px 0; }
.tc-row { display: flex; gap: 10px; }
.tc-row > * { flex: 1; }
