.company-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #0000001f;vertical-align:middle}:root{--blue-50: #e8f4fd;--blue-100: #d0e8f7;--blue-200: #a8d4f0;--blue-300: #6bb8e8;--blue-400: #3da1e0;--blue-500: #4cc9f0;--blue-600: #2196f3;--blue-700: #1976d2;--ink: #111111;--ink-soft: #2a2a2a;--ink-muted:#555555;--ink-light:#888888;--surface: #ffffff;--surface-2:#f7fafc;--border: #d5e3ee;--border-light: #e8eff5;--success: #2e7d32;--success-bg: #e8f5e9;--danger: #c62828;--danger-bg: #ffeaea;--radius: 10px;--radius-lg: 14px;--shadow: 0 2px 12px rgba(0,0,0,.06);--shadow-lg:0 4px 24px rgba(0,0,0,.08);--font-mono:"Space Mono", "Courier New", monospace;--font-body:"Inter", -apple-system, sans-serif;--transition: .2s ease}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--blue-50);color:var(--ink);font-family:var(--font-body);min-height:100vh;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;max-width:900px;margin:0 auto;padding:2rem 2.5rem;display:flex;flex-direction:column;min-height:100vh}.sidebar{width:300px;background:var(--ink);color:#cfd8e0;padding:1.5rem;overflow-y:auto;border-left:1px solid #222;flex-shrink:0}.sidebar-title{font-family:var(--font-mono);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--blue-500);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.sidebar-empty{color:#556;font-size:.8rem;font-style:italic;text-align:center;margin-top:2rem}.sidebar-batch{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:var(--radius);padding:.85rem;margin-bottom:.75rem;cursor:pointer;transition:all var(--transition)}.sidebar-batch:hover{border-color:var(--blue-500);background:#1f1f1f}.sidebar-batch.active{border-color:var(--blue-500);background:#162230}.sidebar-batch-id{font-family:var(--font-mono);font-size:.75rem;color:var(--blue-400);margin-bottom:.4rem;display:flex;align-items:center;gap:.4rem}.sidebar-batch-id i{font-size:.65rem}.sidebar-batch-time{font-size:.7rem;color:#556;margin-bottom:.5rem}.sidebar-batch-files{list-style:none}.sidebar-batch-files li{font-size:.75rem;color:#8899a6;padding:.2rem 0;display:flex;align-items:center;gap:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-batch-files li i{font-size:.6rem;flex-shrink:0}.sidebar-batch-files li i.fa-check{color:var(--success)}.sidebar-batch-files li i.fa-xmark{color:var(--danger)}.sidebar-batch-files li i.fa-spinner{color:var(--blue-400)}.sidebar-batch-files li i.fa-clock{color:#556}header{text-align:center;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.logo{max-width:120px;height:auto;margin-bottom:.5rem}header h1{font-family:var(--font-mono);font-size:2.4rem;font-weight:700;color:var(--ink);letter-spacing:-1px}.subtitle{font-family:var(--font-mono);color:var(--ink-light);margin-top:.25rem;font-size:.85rem;letter-spacing:.5px}.dropzone{border:2px dashed var(--blue-200);border-radius:var(--radius-lg);padding:3.5rem 2rem;text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface);box-shadow:var(--shadow)}.dropzone:hover,.dropzone.dragging{border-color:var(--blue-500);background:var(--blue-50);box-shadow:0 0 0 4px #4cc9f01a}.drop-icon{font-size:2.5rem;margin-bottom:.75rem;color:var(--blue-400)}.dropzone p{color:var(--ink-muted);font-size:.95rem}.drop-hint{font-size:.8rem!important;color:var(--ink-light)!important;margin-top:.25rem}.file-queue{margin-top:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}.queue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-family:var(--font-mono);color:var(--ink-muted);font-size:.85rem}.file-queue ul{list-style:none;max-height:300px;overflow-y:auto}.file-queue li{display:flex;align-items:center;gap:.75rem;padding:.6rem .5rem;border-bottom:1px solid var(--border-light)}.fname{flex:1;font-size:.85rem;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fsize{color:var(--ink-light);font-size:.75rem;font-family:var(--font-mono);white-space:nowrap}.btn-remove{background:none;border:none;color:var(--ink-light);cursor:pointer;font-size:.85rem;padding:.2rem .4rem;transition:color var(--transition)}.btn-remove:hover{color:var(--danger)}.btn-clear{background:none;border:1px solid var(--border);color:var(--ink-light);border-radius:6px;padding:.3rem .75rem;cursor:pointer;font-size:.75rem;font-family:var(--font-mono);transition:all var(--transition)}.btn-clear:hover{border-color:var(--danger);color:var(--danger)}.btn-upload{width:100%;margin-top:1rem;padding:.85rem;background:var(--ink);color:var(--surface);border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-upload:hover:not(:disabled){background:var(--ink-soft);box-shadow:var(--shadow-lg)}.btn-upload:disabled{background:#ccc;color:#999;cursor:not-allowed}.batch-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow)}.batch-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.batch-header h2{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--ink)}.batch-id{font-family:var(--font-mono);color:var(--ink-light);font-size:.7rem;margin-top:.2rem;display:flex;align-items:center;gap:.35rem}.batch-stats{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;font-family:var(--font-mono);color:var(--ink-muted);font-size:.85rem}.batch-actions{display:flex;gap:.75rem;align-items:center;margin-top:.5rem}.btn-new{padding:.4rem 1rem;background:var(--ink);color:var(--surface);border:none;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-mono);transition:all var(--transition);display:inline-flex;align-items:center;gap:.4rem}.btn-new:hover{background:var(--ink-soft)}.overall-bar{height:6px;background:var(--border-light);border-radius:3px;margin-bottom:1.5rem;overflow:hidden}.overall-fill{height:100%;background:var(--blue-500);border-radius:3px;transition:width .4s ease}.job-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.job-item{background:var(--surface-2);border:1px solid var(--border-light);border-radius:var(--radius);padding:1rem;transition:border-color var(--transition)}.job-item.done{border-left:4px solid var(--success)}.job-item.failed{border-left:4px solid var(--danger)}.job-item.processing{border-left:4px solid var(--blue-500)}.job-item.queued{border-left:4px solid var(--border)}.job-item.oversize{border:2px solid var(--danger);border-left:6px solid var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface-2))}.job-item.oversize .job-step{color:var(--danger);font-weight:700}.job-item.oversize .job-fill{background:var(--danger)}.sidebar-batch-files li.sidebar-oversize{color:var(--danger);font-weight:700}.job-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;gap:.75rem}.job-name-group{display:flex;align-items:center;gap:.6rem;min-width:0;flex:1}.job-thumb{width:40px;height:40px;border-radius:6px;object-fit:contain;background:repeating-conic-gradient(var(--border-light) 0% 25%,var(--surface) 0% 50%) 0 0 / 10px 10px;border:1px solid var(--border);flex-shrink:0}.preview-row{display:flex;gap:.75rem;margin:.75rem 0;overflow-x:auto}.preview-panel{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.35rem}.preview-label{font-family:var(--font-mono);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-light)}.preview-panel img{width:100%;max-height:280px;object-fit:contain;border-radius:var(--radius);border:1px solid var(--border);background:repeating-conic-gradient(var(--border-light) 0% 25%,var(--surface) 0% 50%) 0 0 / 12px 12px}.job-name{font-family:var(--font-mono);font-size:.85rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.job-badge{font-family:var(--font-mono);font-size:.75rem;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem}.job-step{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-light);margin-bottom:.4rem}.job-notes{margin:.1rem 0 .5rem;border-left:4px solid #f5c400;background:#fff8d6;border-radius:6px;padding:.45rem .6rem}.note-line{margin:0;font-size:.82rem;color:var(--ink-soft);line-height:1.35}.note-line+.note-line{margin-top:.3rem}.note-line i{color:#b58900;margin-right:.4rem}.job-stats{display:flex;gap:1rem;flex-wrap:wrap;font-size:.7rem;font-family:var(--font-mono);color:var(--blue-700);margin-bottom:.5rem}.job-bar{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden;position:relative}.job-fill{height:100%;border-radius:3px;transition:width .3s ease;background:var(--blue-500)}.job-item.done .job-fill{background:var(--success)}.job-item.failed .job-fill{background:var(--danger)}.job-pct{position:absolute;right:0;top:-16px;font-size:.65rem;font-family:var(--font-mono);color:var(--ink-light)}.btn-download{display:inline-flex;align-items:center;gap:.4rem;margin-top:.75rem;padding:.5rem 1.25rem;background:var(--success-bg);color:var(--success);border:1px solid #c8e6c9;border-radius:6px;text-decoration:none;font-size:.8rem;font-weight:600;font-family:var(--font-mono);transition:all var(--transition)}.btn-download:hover{background:#c8e6c9}.job-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.job-actions .btn-download{margin-top:0}.btn-halftone{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;background:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-halftone:hover{background:#ffe0b2}.btn-remove-bg{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;background:#e3f2fd;color:#1565c0;border:1px solid #90caf9;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-remove-bg:hover{background:#bbdefb}.btn-zip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;background:var(--ink);color:var(--blue-500);border:1px solid #333;border-radius:var(--radius);text-decoration:none;font-size:.85rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition)}.btn-zip:hover{background:var(--ink-soft);border-color:var(--blue-500);box-shadow:0 2px 12px #4cc9f033}footer{margin-top:auto;padding-top:2rem;text-align:center;font-family:var(--font-mono);color:var(--ink-light);font-size:.75rem}footer a{color:var(--blue-600);text-decoration:none}footer a:hover{text-decoration:underline}@media (max-width: 1024px){.sidebar{display:none}}@media (max-width: 640px){.main-content{padding:1rem}header h1{font-size:1.8rem}.dropzone{padding:2rem 1rem}}.options-row{margin-top:1rem;padding:.75rem;background:var(--surface-alt, #f0f2f5);border-radius:8px;border:1px solid var(--border, #e0e0e0)}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text, #333)}.toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue-400, #2196f3);cursor:pointer}.toggle-text{display:flex;align-items:center;gap:.4rem}.toggle-text i{color:var(--blue-400, #2196f3)}.mode-tabs{display:flex;gap:.5rem;justify-content:center;margin:0 0 1.5rem}.mode-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border:1px solid var(--border);background:var(--surface);color:var(--ink-muted);border-radius:var(--radius);font-family:var(--font-body);font-size:.95rem;font-weight:600;cursor:pointer;transition:var(--transition)}.mode-tab:hover{border-color:var(--blue-300);color:var(--ink)}.mode-tab.active{background:var(--blue-600);border-color:var(--blue-600);color:#fff;box-shadow:var(--shadow)}.mode-tab.active i{color:#fff}
