.ocr-workspace{color:#172033;background:#fff;border:1px solid #dbe3ef;border-radius:20px;padding:clamp(16px,3vw,28px)}.ocr-button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;border:1px solid #bdcadd;border-radius:12px;color:#172033;background:#f8fafc;font-weight:600}.ocr-button:disabled{opacity:.45}.ocr-button:focus-visible{outline:3px solid #2563eb;outline-offset:2px}.ocr-button-primary{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.ocr-file-picker{display:flex;align-items:center;gap:14px;min-height:92px;padding:16px;border:2px dashed #93b4ee;border-radius:16px;background:#f5f9ff;color:#172033;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.ocr-file-picker:hover{border-color:#2563eb;background:#eff6ff}.ocr-file-picker:active{transform:scale(.995)}.ocr-file-picker[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.ocr-file-picker-icon{display:grid;flex:0 0 auto;width:44px;height:44px;place-items:center;border-radius:12px;background:#1d4ed8;color:#fff;font-size:26px;font-weight:700;line-height:1}.ocr-file-picker-copy{display:grid;gap:3px;min-width:0}.ocr-file-picker-copy strong{font-size:1rem}.ocr-file-picker-copy span{color:#526078;font-size:.875rem;overflow-wrap:anywhere}#root input[type=file]:focus-visible+.ocr-file-picker{outline:3px solid #2563eb;outline-offset:3px}.ocr-progress{display:grid;gap:10px;padding:16px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff}.ocr-progress-track{height:12px;overflow:hidden;border-radius:999px;background:#dbeafe;box-shadow:inset 0 1px 2px #0f172a1f}.ocr-progress-value{height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#60a5fa,#2563eb);background-size:200% 100%;transition:width .25s ease;animation:ocr-progress-shimmer 1.5s linear infinite}.ocr-preview{position:relative;width:fit-content;max-width:100%;overflow:hidden;background:#fff}.ocr-preview canvas{display:block;max-width:100%;background:#fff}.ocr-preview .textLayer{position:absolute;inset:0;overflow:clip;line-height:1;text-align:initial;transform-origin:0 0;text-size-adjust:none;forced-color-adjust:none;caret-color:CanvasText;z-index:2}.ocr-preview .textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}.ocr-preview .textLayer>:not(.markedContent),.ocr-preview .textLayer .markedContent span:not(.markedContent){z-index:1;--font-height: 0;--scale-x: 1;--rotate: 0deg;--min-font-size: 1;--min-font-size-inv: calc(1 / var(--min-font-size));font-size:calc(var(--total-scale-factor) * var(--min-font-size) * var(--font-height));transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.ocr-preview .textLayer ::selection{background:#2563eb55}#hiddenCopyElement,.hiddenCanvasElement{position:absolute;top:0;left:0;display:none;width:0;height:0}@keyframes ocr-progress-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.ocr-progress-value{animation:none;transition:none}}
