/* v63 — بازبینی برش خودکار مدرک */
@keyframes d63Open{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes d63Close{to{opacity:0;transform:translateY(16px) scale(.97)}}
@keyframes d63Reveal{0%{opacity:0;transform:scale(.9) rotate(-1.2deg);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
@keyframes d63Scan{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:calc(100% - 3px);opacity:0}}
@keyframes d63Draw{from{stroke-dashoffset:var(--len,4000)}to{stroke-dashoffset:0}}
@keyframes d63Pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,210,74,.5)}50%{box-shadow:0 0 0 9px rgba(255,210,74,0)}}
.d63-dlg{border:0;padding:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:#0d0f12;color:#fff;overflow:hidden}
.d63-dlg[open]{display:flex;flex-direction:column;animation:d63Open .3s cubic-bezier(.2,.9,.25,1.1)}
.d63-dlg.d63-closing{animation:d63Close .18s ease forwards}
.d63-dlg::backdrop{background:#000}
.d63-top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.d63-title{font-size:16px;font-weight:600}.d63-count{color:#aab}
.d63-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px 12px;overflow:hidden}
.d63-view{position:relative;display:inline-block;line-height:0}
.d63-view[hidden],.d63-res[hidden],.d63-handles[hidden]{display:none}
.d63-ocv,.d63-res{display:block;max-width:calc(100vw - 24px);max-height:calc(100vh - 200px);max-height:calc(100dvh - 200px);width:auto;height:auto;border-radius:6px;background:#222}
.d63-res{box-shadow:0 10px 30px rgba(0,0,0,.5)}
.d63-res.d63-in{animation:d63Reveal .55s cubic-bezier(.2,.9,.25,1.05) both}
.d63-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.d63-poly{fill:rgba(255,210,74,.14);stroke:#ffd24a;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.d63-detected .d63-poly{stroke-dasharray:var(--len,4000);animation:d63Draw .6s ease both}
.d63-view:not(.d63-adjusting):not(.d63-detected) .d63-poly{opacity:0}
.d63-handles{position:absolute;inset:0}
.d63-h{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:3px solid #ffd24a;background:rgba(255,210,74,.25);touch-action:none;cursor:grab;animation:d63Pulse 1.8s ease-in-out infinite;transition:transform .15s cubic-bezier(.2,1.4,.4,1)}
.d63-h.d63-drag{transform:scale(1.35);cursor:grabbing;animation:none;background:rgba(255,210,74,.5)}
.d63-scan{position:absolute;left:12px;right:12px;height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,#8fd2ff,transparent);box-shadow:0 0 14px #8fd2ff;display:none;pointer-events:none}
.d63-wait .d63-scan{display:block;animation:d63Scan 1.1s ease-in-out infinite}
.d63-hint{text-align:center;color:#c5cbe0;font-size:13px;padding:8px 14px;min-height:20px;transition:opacity .25s}
.d63-bar{display:flex;gap:8px;padding:6px 12px 16px;flex-wrap:wrap}
.d63-bar button{flex:1 1 40%;border:1px solid #666;background:transparent;color:#fff;border-radius:12px;padding:11px 6px;font:inherit;font-size:14px;cursor:pointer;transition:background .2s,transform .16s cubic-bezier(.2,1.4,.4,1),border-color .2s}
.d63-bar button:hover{background:rgba(255,255,255,.1)}
.d63-bar button:active{transform:scale(.93)}
.d63-bar .d63-primary{background:#2f6fe0;border-color:#2f6fe0;font-weight:600}
.d63-bar .d63-primary:hover{background:#3a7bf0}
.d63-bar .d63-cancel{color:#ff9a9a;border-color:#7a4a4a}
@media (prefers-reduced-motion:reduce){.d63-dlg[open],.d63-dlg.d63-closing,.d63-res.d63-in,.d63-detected .d63-poly,.d63-h,.d63-wait .d63-scan{animation:none!important}.d63-bar button,.d63-h{transition:none!important}}
.d63-top{padding-top:calc(var(--safe-top,0px) + 12px)}
.d63-cam{margin-top:6px;display:inline-block}

/* ذره‌بین گوشه‌ها: بالای انگشت، تا زیر انگشت پنهان نماند */
.d63-loupe{position:absolute;width:124px;height:124px;border-radius:50%;border:3px solid #ffd24a;background:#000;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.55);pointer-events:none;z-index:5;animation:d63Pop .16s cubic-bezier(.2,1.3,.4,1)}
.d63-loupe[hidden]{display:none}
.d63-loupe canvas{display:block;width:100%;height:100%}
@keyframes d63Pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}

/* حالت‌های بهبود تصویر */
.d63-modes{display:flex;gap:8px;justify-content:center;padding:2px 12px 6px;flex-wrap:wrap}
.d63-modes[hidden]{display:none}
.d63-modes button{border:1px solid #556;background:transparent;color:#dfe6f5;border-radius:16px;padding:6px 13px;font:inherit;font-size:13px;cursor:pointer;transition:background .2s,border-color .2s,transform .16s cubic-bezier(.2,1.4,.4,1)}
.d63-modes button:active{transform:scale(.93)}
.d63-modes button.on{background:#2f6fe0;border-color:#2f6fe0;color:#fff}
