*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2f3f;--text: #e8eaed;--text-muted: #9aa0b0;--accent: #6c8cff;--accent-hover: #8aa4ff;--success: #4ade80;--error: #f87171;--radius: 10px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}.app{max-width:640px;margin:0 auto;padding:2rem 1.5rem}.header{text-align:center;margin-bottom:2.5rem}.header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.subtitle{color:var(--text-muted);margin-top:.5rem;font-size:.95rem}.converter-form{display:flex;flex-direction:column;gap:1.5rem}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;transition:border-color .2s,background .2s;background:var(--surface)}.dropzone.drag-over{border-color:var(--accent);background:#6c8cff0d}.dropzone.has-file{padding:1.25rem 1.5rem}.dropzone-label{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem}.dropzone-icon{font-size:2rem}.dropzone-hint{font-size:.85rem;color:var(--text-muted)}.file-info{display:flex;align-items:center;gap:1rem;justify-content:center;flex-wrap:wrap}.file-name{font-weight:500}.file-size{color:var(--text-muted);font-size:.9rem}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.9rem}.btn-link:hover{color:var(--accent-hover)}.field-label{display:block;font-size:.85rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem}.format-options{display:flex;gap:.5rem}.format-btn{flex:1;padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;font-size:.9rem;transition:border-color .2s,background .2s}.format-btn:hover{border-color:var(--accent)}.format-btn.active{border-color:var(--accent);background:#6c8cff1f;color:var(--accent)}.ocr-toggle{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.95rem}.ocr-toggle input{margin-top:.25rem;accent-color:var(--accent)}.ocr-hint{color:var(--text-muted);font-size:.85rem}.btn-primary{padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.job-progress{margin-top:2rem;padding:1.25rem 1.5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.job-status-row{display:flex;align-items:center;gap:.75rem}.job-status-label{font-weight:500}.status-completed .job-status-label{color:var(--success)}.status-failed .job-status-label{color:var(--error)}.job-message{margin-top:.5rem;color:var(--text-muted);font-size:.9rem}.job-error{margin-top:.5rem;color:var(--error);font-size:.9rem}.download-section{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.btn-download{display:inline-block;padding:.6rem 1.25rem;background:var(--success);color:#0f1117;border:none;border-radius:var(--radius);font-weight:500;font-size:.9rem;cursor:pointer;transition:opacity .2s;width:fit-content}.btn-download:hover:not(:disabled){opacity:.85}.btn-download:disabled{opacity:.6;cursor:wait}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
