*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--fg:#ededed;--accent:#3b82f6;--accent-hover:#2563eb;--surface:#171717;--border:#2a2a2a;--success:#22c55e;--error:#ef4444;--muted:#888}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg);min-height:100vh}.container{max-width:780px;margin:0 auto;padding:2rem 1rem}h1{font-size:1.75rem;margin-bottom:.25rem}.subtitle{color:var(--muted);margin-bottom:2rem}.dropzone{border:2px dashed var(--border);border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s}.dropzone:hover{border-color:var(--accent)}.dropzone input{display:none}.file-strip{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.file-strip-scroll{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.file-strip-scroll::-webkit-scrollbar{height:6px}.file-strip-scroll::-webkit-scrollbar-track{background:transparent}.file-strip-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.file-thumb-card{flex-shrink:0;width:100px;position:relative;display:flex;flex-direction:column;align-items:center;gap:.35rem}.file-thumb-remove{position:absolute;top:-6px;right:-4px;z-index:2;width:20px;height:20px;border:none;border-radius:50%;background:var(--error);color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.file-thumb-card:hover .file-thumb-remove{opacity:1}.file-thumb-img{width:100px;height:100px;border-radius:8px;overflow:hidden;background:var(--bg);border:1px solid var(--border);position:relative;display:flex;align-items:center;justify-content:center}.file-thumb-img img,.pdf-thumb-canvas{width:100%;height:100%;object-fit:cover}.pdf-thumb-canvas{position:absolute;top:0;left:0;z-index:1}.file-thumb-pdf-fallback{color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;z-index:0}.file-thumb-overlay{position:absolute;inset:0;z-index:3;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;border-radius:8px}.file-thumb-card:hover .file-thumb-overlay{opacity:1}.file-thumb-view-btn{padding:.3rem .7rem;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:rgba(59,130,246,.8);color:#fff;font-size:.7rem;font-weight:600;cursor:pointer;transition:background .15s}.file-thumb-view-btn:hover{background:var(--accent)}.file-thumb-name{font-size:.65rem;color:var(--muted);text-align:center;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-strip-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.options{margin:1.5rem 0;flex-direction:row;flex-wrap:wrap;gap:1.25rem}.option-group,.options{display:flex;align-items:center}.option-group{gap:.5rem}.option-group label{font-size:.85rem;color:var(--muted);white-space:nowrap}.option-group input[type=range]{width:120px;accent-color:var(--accent)}.quality-val{font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:26px}.format-select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--fg);font-size:.9rem;cursor:pointer;min-width:110px;outline:none;transition:border-color .2s}.format-select:focus,.format-select:hover{border-color:var(--accent)}.format-select option{background:var(--surface);color:var(--fg)}.resize-inputs{display:flex;gap:.4rem;align-items:center}.resize-inputs input[type=number]{width:75px;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--fg);font-size:.85rem}.resize-inputs span{color:var(--muted)}.btn{padding:.7rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-sm{padding:.4rem .9rem;font-size:.8rem;border-radius:6px}.btn-muted{background:var(--border);color:var(--muted)}.btn-muted:hover{background:#333;color:var(--fg)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-download-all{margin-top:1.25rem;background:var(--success);color:#000;width:100%;font-size:1rem}.btn-download-all:hover:not(:disabled){background:#16a34a}.btn-download-all:disabled{opacity:.5;cursor:not-allowed}.pdf-viewer-wrapper{margin-top:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.pdf-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.pdf-viewer-title{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-viewer-close{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--fg);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;flex-shrink:0}.pdf-viewer-close:hover{background:var(--error);border-color:var(--error)}.pdf-viewer-wrapper .pdf-viewer{margin:0;border:none;border-radius:0}.pdf-viewer{margin:1.5rem 0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.pdf-error,.pdf-loading{text-align:center;padding:2rem;color:var(--muted)}.pdf-error{color:var(--error)}.pdf-controls{display:flex;justify-content:center;align-items:center;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}.pdf-controls button{padding:.35rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--fg);cursor:pointer;font-size:.85rem;transition:border-color .2s}.pdf-controls button:hover:not(:disabled){border-color:var(--accent)}.pdf-controls button:disabled{opacity:.4;cursor:not-allowed}.pdf-page-info{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.pdf-page-input{width:52px;padding:.25rem .4rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg);font-size:.85rem;text-align:center;-moz-appearance:textfield}.pdf-page-input::-webkit-inner-spin-button,.pdf-page-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pdf-controls-divider{width:1px;height:24px;background:var(--border);margin:0 .25rem}.zoom-controls{display:flex;align-items:center;gap:.3rem}.zoom-pct{min-width:50px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pdf-canvas-wrapper{display:flex;justify-content:center;overflow:auto;max-height:600px;background:#1a1a1a;border-radius:8px;margin-bottom:1rem}.pdf-canvas-wrapper canvas{display:block}.pdf-page-select{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}.pdf-page-select-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.pdf-page-select-title{font-weight:600;font-size:.9rem}.pdf-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:.4rem;gap:.4rem;max-height:200px;overflow-y:auto}.pdf-page-checkbox{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .15s}.pdf-page-checkbox:hover,.pdf-page-current{background:var(--bg)}.pdf-page-current{outline:1px solid var(--accent)}.pdf-page-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.pdf-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--muted);font-size:.65rem;font-weight:700;text-transform:uppercase}.job-list{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.job-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.job-card-body{display:flex;gap:1rem;align-items:flex-start}.job-thumb{flex-shrink:0;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--bg);border:1px solid var(--border)}.job-thumb img{width:100%;height:100%;object-fit:cover}.job-info{flex:1 1;min-width:0}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.job-filename{font-weight:600;word-break:break-all;font-size:.9rem}.job-meta{display:flex;gap:.5rem;color:var(--muted);font-size:.8rem;margin-bottom:.5rem}.status-badge{padding:.15rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;flex-shrink:0}.status-created,.status-queued,.status-starting,.status-uploading{background:#333;color:var(--muted)}.status-processing{background:#1e3a5f;color:#60a5fa}.status-done{background:#14532d;color:var(--success)}.status-failed{background:#450a0a;color:var(--error)}.job-error{color:var(--error);font-size:.8rem;margin-top:.25rem}.output-list{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.output-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:.8rem}.output-chip a,.output-format{font-weight:600;color:var(--accent)}.output-chip a{text-decoration:none}.output-chip a:hover{text-decoration:underline}.savings{color:var(--success);font-size:.75rem}