.ocr-page *,.ocr-page *::before,.ocr-page *::after{box-sizing:border-box}.ocr-page{font-family:inherit;width:100%}.ocr-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;min-height:380px}@media(min-width:1024px){.ocr-grid{grid-template-columns:2fr 3fr;min-height:420px}}.ocr-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;transition:box-shadow .2s ease;display:flex;flex-direction:column;height:100%}.dark .ocr-card{background:rgba(38,38,38,.85);border-color:#404040}.ocr-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;flex:1;border:2px dashed #d1d5db;border-radius:.75rem;cursor:pointer;transition:border-color .25s,background .25s;padding:1.25rem;text-align:center;color:#6b7280}.dark .ocr-upload-zone{border-color:#525252;color:#a3a3a3}.ocr-upload-zone:hover,.ocr-upload-zone.drag-over{border-color:#8b5cf6;border-color:rgba(var(--color-primary-500),1);background:#f5f3ff;background:rgba(var(--color-primary-500),.05)}.dark .ocr-upload-zone:hover,.dark .ocr-upload-zone.drag-over{border-color:#a78bfa;border-color:rgba(var(--color-primary-400),1);background:rgba(139,92,246,8%)}.ocr-preview-img{max-width:100%;max-height:280px;object-fit:contain;border-radius:.5rem;display:block;margin:0 auto}.ocr-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem;border-radius:9999px;font-size:.725rem;font-weight:600;letter-spacing:.025em}.ocr-badge-idle{background:#f3f4f6;color:#6b7280}.dark .ocr-badge-idle{background:#262626;color:#a3a3a3}.ocr-badge-loading{background:#eff6ff;color:#2563eb}.dark .ocr-badge-loading{background:rgba(37,99,235,.15);color:#93c5fd}.ocr-badge-ready{background:#f0fdf4;color:#16a34a}.dark .ocr-badge-ready{background:rgba(22,163,74,.15);color:#86efac}.ocr-badge-error{background:#fef2f2;color:#dc2626}.dark .ocr-badge-error{background:rgba(220,38,38,.15);color:#fca5a5}.ocr-progress-track{height:5px;border-radius:9999px;background:#e5e7eb;overflow:hidden}.dark .ocr-progress-track{background:#404040}.ocr-progress-fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,#8b5cf6,#a78bfa);background:linear-gradient(90deg,rgba(var(--color-primary-500),1),rgba(var(--color-primary-400),1));transition:width .3s ease}.ocr-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid transparent;outline:none}.ocr-btn-primary{background-color:#7c3aed!important;background-color:rgba(var(--color-primary-600),1)!important;color:#fff!important}.ocr-btn-primary:hover:not(:disabled){background-color:#6d28d9!important;background-color:rgba(var(--color-primary-700),1)!important;filter:brightness(1.05)}.ocr-btn-primary:disabled{background-color:#9ca3af!important;color:#f3f4f6!important;opacity:.65!important;cursor:not-allowed!important;box-shadow:none!important}.ocr-btn-secondary{background-color:#f3f4f6;color:#374151;border-color:#d1d5db}.dark .ocr-btn-secondary{background-color:#262626;color:#d4d4d4;border-color:#525252}.ocr-btn-secondary:hover:not(:disabled){background-color:#e5e7eb}.dark .ocr-btn-secondary:hover:not(:disabled){background-color:#404040}.ocr-model-select{padding:.25rem .5rem;border-radius:.375rem;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:.8125rem;cursor:pointer}.dark .ocr-model-select{background:#262626;border-color:#525252;color:#d4d4d4}.ocr-result-text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;word-break:break-all;min-height:240px;flex:1;max-height:420px;overflow-y:auto;padding:.75rem;border-radius:.375rem;background:#f9fafb;border:1px solid #e5e7eb;color:#1f2937;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.ocr-result-text:focus{border-color:#8b5cf6;box-shadow:0 0 0 2px rgba(139,92,246,.2);background:#fff}.dark .ocr-result-text{background:#1a1a1a;border-color:#404040;color:#d4d4d4}.dark .ocr-result-text:focus{border-color:#a78bfa;box-shadow:0 0 0 2px rgba(167,139,250,.2);background:#262626}.ocr-stats{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.5rem}.ocr-stat-item{display:flex;align-items:center;gap:.25rem;font-size:.725rem;color:#6b7280}.dark .ocr-stat-item{color:#a3a3a3}.ocr-stat-value{font-weight:700;color:#374151}.dark .ocr-stat-value{color:#d4d4d4}.ocr-toast-container{position:fixed;bottom:1.25rem;right:1.25rem;z-index:9999;display:flex;flex-direction:column;gap:.4rem;pointer-events:none}.ocr-toast{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:ocr-toast-in .25s ease;pointer-events:auto}.ocr-toast-success{background:#16a34a;color:#fff}.ocr-toast-error{background:#dc2626;color:#fff}.ocr-toast-info{background:#2563eb;color:#fff}@keyframes ocr-toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ocr-spinner{display:inline-block;width:.9em;height:.9em;border:2px solid;border-top-color:transparent;border-radius:50%;animation:ocr-spin .7s linear infinite}@keyframes ocr-spin{to{transform:rotate(360deg)}}.ocr-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem}.ocr-feature-card{padding:1rem;border-radius:.75rem;background:#f9fafb;border:1px solid #e5e7eb;text-align:center}.dark .ocr-feature-card{background:rgba(38,38,38,.6);border-color:#404040}.ocr-feature-icon{font-size:1.5rem;margin-bottom:.5rem}.ocr-feature-title{font-size:.875rem;font-weight:600;color:#374151}.dark .ocr-feature-title{color:#d4d4d4}.ocr-feature-desc{font-size:.75rem;color:#6b7280;margin-top:.25rem}.dark .ocr-feature-desc{color:#a3a3a3}