:root{--bg:#f4f7f5;--border:#d9e2dd;--muted:#66716d;--text:#34413d;--text-strong:#15211d;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:var(--sans);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button:focus-visible,input:focus-visible,label:focus-within{outline-offset:2px;outline:3px solid #0f6f7238}::selection{color:#fff;background:#0f6f72}.app-shell{box-sizing:border-box;width:min(1440px,100%);min-height:100svh;margin:0 auto;padding:24px}.topbar{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 0 22px;display:grid}.brand-mark,.dropzone-icon{color:#fff;background:#0f6f72;justify-content:center;align-items:center;display:inline-flex}.brand-mark{border-radius:8px;width:44px;height:44px}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700;line-height:1.2}.topbar h1,.section-heading h2,.settings-title h2,.job-header h2{margin:0}.topbar h1{color:var(--text-strong);letter-spacing:0;font-size:28px;font-weight:750;line-height:1.15}.topbar-status,.format-pill,.job-id{border:1px solid var(--border);min-height:34px;color:var(--text-strong);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.topbar-status svg{color:#d95d39}.workspace{grid-template-columns:180px minmax(320px,1fr) minmax(340px,480px);align-items:start;gap:18px;padding:24px 0;display:grid}.rail,.upload-panel,.preview-panel,.job-panel{border:1px solid var(--border);background:#fff;border-radius:8px}.rail{gap:4px;padding:8px;display:grid;position:sticky;top:16px}.rail-step{min-height:42px;color:var(--muted);border-radius:7px;align-items:center;gap:10px;padding:0 10px;font-size:14px;font-weight:700;display:flex}.rail-step svg{color:#8a8f98}.rail-step.is-active{color:var(--text-strong);background:#edf6f6}.rail-step.is-active svg{color:#0f6f72}.rail-step.is-ready{color:#166534;background:#eef9f0}.rail-step.is-ready svg{color:#2f8f46}.rail-step.is-error{color:#9a3412;background:#fff3ed}.rail-step.is-error svg{color:#d95d39}.upload-panel,.preview-panel,.job-panel{padding:18px}.section-heading,.job-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h2,.settings-title h2,.job-header h2{color:var(--text-strong);letter-spacing:0;font-size:20px;font-weight:750;line-height:1.2}.format-pill{color:#6a4b13;white-space:nowrap;background:#fff7e7;border-color:#f1d69c;min-height:30px}.dropzone,.reference-drop{cursor:pointer;border:1px dashed #91a5a6;border-radius:8px;align-items:center;transition:border-color .16s,background-color .16s,box-shadow .16s;display:flex;position:relative}.dropzone input,.reference-drop input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dropzone{background-color:#fbfdfc;background-image:linear-gradient(90deg,#0f6f7214 1px,#0000 1px),linear-gradient(#0f6f7214 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex-direction:column;justify-content:center;gap:10px;min-height:260px;margin-top:18px}.dropzone:hover,.dropzone.is-dragging,.reference-drop:hover,.reference-drop.is-dragging{background-color:#f1fbfa;border-color:#0f6f72;box-shadow:0 0 0 4px #0f6f7214}.dropzone-icon{border-radius:8px;width:58px;height:58px}.dropzone-title{color:var(--text-strong);font-size:18px;font-weight:750}.dropzone-meta{color:var(--muted);font-size:14px;font-weight:650}.notice{border-radius:8px;align-items:center;gap:10px;min-height:42px;margin-top:14px;padding:0 12px;font-size:14px;font-weight:700;display:flex}.notice.is-warning{color:#7c2d12;background:#fff3ed;border:1px solid #f2c5b1}.file-row{border:1px solid var(--border);background:#fbfdfc;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:14px;padding:12px;display:grid}.file-row strong,.file-row span{display:block}.file-row strong{overflow-wrap:anywhere;max-width:100%;color:var(--text-strong);font-size:15px;line-height:1.25}.file-row span{color:var(--muted);margin-top:3px;font-size:13px;line-height:1.2}.file-badge{color:#fff;text-align:center;background:#314f6f;border-radius:7px;min-width:48px;padding:7px 8px;font-size:12px;font-weight:800}.ok-icon{color:#2f8f46}.processing-mode{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.text-control{gap:8px;margin-top:12px;display:grid}.text-control span{color:var(--muted);font-size:13px;font-weight:800}.text-control input{border:1px solid var(--border);width:100%;min-height:44px;color:var(--text-strong);background:#fff;border-radius:8px;padding:0 12px;font-size:14px;font-weight:650}.text-control input::placeholder{color:#9aa3a0}.text-control.is-compact{margin-top:0}.number-control{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:1fr minmax(90px,140px) auto;align-items:center;gap:10px;min-height:44px;padding:0 12px;display:grid}.number-control span{color:var(--muted);font-size:13px;font-weight:800}.number-control input{border:1px solid var(--border);width:100%;min-height:34px;color:var(--text-strong);text-align:right;border-radius:7px;font-size:14px;font-weight:750}.number-control strong{color:var(--muted);font-size:13px;font-weight:800}.mode-button,.primary-action,.secondary-action{border:1px solid var(--border);min-height:44px;font:inherit;letter-spacing:0;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:750;display:inline-flex}.mode-button{color:var(--text);background:#fff}.mode-button:hover,.mode-button.is-selected{color:#0f4f52;background:#edf6f6;border-color:#0f6f72}.reference-stack{gap:10px;margin-top:12px;display:grid}.reference-drop{min-height:56px;color:var(--text-strong);background:#fbfdfc;justify-content:space-between;gap:12px;padding:0 14px;font-size:14px;font-weight:750}.reference-drop span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.reference-drop svg{color:#0f6f72;flex:none}.preview-panel{gap:14px;display:grid}.preview-frame{aspect-ratio:9/16;background:#111827;border-radius:8px;width:100%;max-height:640px;overflow:hidden}.preview-frame video{object-fit:contain;background:#111827;width:100%;height:100%;display:block}.empty-preview{color:#cbd5e1;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;font-size:13px;font-weight:800;display:flex}.settings-panel{gap:14px;padding-top:2px;display:grid}.settings-title{color:#0f6f72;align-items:center;gap:8px;display:flex}.range-control{border:1px solid var(--border);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.range-control span,.export-row span{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:750;display:inline-flex}.range-control input{accent-color:#0f6f72;width:100%}.range-control strong,.export-row strong{color:var(--text-strong);font-size:14px}.export-row{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;min-height:44px;padding:0 12px;display:flex}.mix-mode{gap:8px;display:grid}.mix-mode>span{color:var(--muted);font-size:13px;font-weight:800}.mix-mode-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quality-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.primary-action{color:#fff;background:#d95d39;border-color:#d95d39;width:100%}.primary-action:hover:not(:disabled){background:#bd4f30;border-color:#bd4f30}.primary-action:disabled{cursor:not-allowed;opacity:.48}.spin-icon{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.job-panel{margin-bottom:24px}.job-id{font-family:var(--mono)}.job-id.is-muted{color:var(--muted)}.job-grid{grid-template-columns:minmax(210px,.7fr) minmax(320px,1fr) auto;align-items:stretch;gap:12px;margin-top:16px;display:grid}.job-state,.empty-job{color:#166534;background:#eef9f0;border:1px solid #badcc5;border-radius:8px;align-items:center;gap:10px;min-height:52px;padding:0 14px;font-size:14px;font-weight:750;display:flex}.job-state.is-processing,.job-state.is-queued{color:#6a4b13;background:#fff7e7;border-color:#f1d69c}.job-state.is-failed{color:#7c2d12;background:#fff3ed;border-color:#f2c5b1}.job-state.is-completed{color:#166534;background:#eef9f0;border-color:#badcc5}.empty-job{color:var(--muted);border-color:var(--border);background:#fbfdfc;margin-top:16px}.payload{border:1px solid var(--border);background:#0f172a;border-radius:8px;min-width:0;overflow:auto}.payload code{color:#dbeafe;white-space:pre;min-width:max-content;padding:12px;font-size:12px;line-height:1.45;display:block}.secondary-action{color:var(--text-strong);background:#fff;padding:0 14px}.secondary-action:hover:not(:disabled){color:#9a3412;border-color:#d95d39}.secondary-action:disabled{cursor:not-allowed;opacity:.45}.job-actions{gap:8px;display:grid}.progress-block,.candidate-list,.audio-preview-list{grid-column:1/-1}.progress-block{border:1px solid var(--border);background:#fbfdfc;border-radius:8px;gap:8px;padding:12px;display:grid}.progress-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:800;display:flex}.progress-meta strong{color:var(--text-strong)}.progress-track{background:#dfe8e4;border-radius:999px;height:10px;overflow:hidden}.progress-track div{border-radius:inherit;background:#0f6f72;height:100%;transition:width .18s}.candidate-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.candidate-list div{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:0;padding:10px 12px}.candidate-list span,.audio-preview-list span{color:var(--muted);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:800;display:block;overflow:hidden}.candidate-list strong{overflow-wrap:anywhere;color:var(--text-strong);margin-top:5px;font-size:14px;line-height:1.25;display:block}.candidate-list em{color:#0f6f72;margin-top:5px;font-size:13px;font-style:normal;font-weight:800;display:block}.audio-preview-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.audio-preview-list div{border:1px solid var(--border);background:#fbfdfc;border-radius:8px;min-width:0;padding:10px 12px}.audio-preview-list audio{width:100%;margin-top:8px;display:block}.download-action{color:#fff;background:#0f6f72;border:1px solid #0f6f72;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:14px;font-weight:750;text-decoration:none;display:inline-flex}.download-action:hover{background:#0f4f52;border-color:#0f4f52}.metrics-list{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.metrics-list div{border:1px solid var(--border);background:#fbfdfc;border-radius:8px;min-width:0;padding:10px 12px}.metrics-list dt{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.metrics-list dd{color:var(--text-strong);margin:3px 0 0;font-size:14px;font-weight:750}@media (width<=1120px){.workspace{grid-template-columns:150px minmax(320px,1fr)}.preview-panel{grid-column:2}.preview-frame{max-height:560px}}@media (width<=820px){.app-shell{padding:14px}.topbar{grid-template-columns:auto 1fr}.topbar-status{grid-column:1/-1;justify-content:center}.topbar h1{font-size:22px}.workspace{grid-template-columns:1fr;gap:12px;padding:14px 0}.rail{display:flex;position:static;overflow-x:auto}.rail-step{flex:none}.preview-panel{grid-column:auto}.processing-mode,.mix-mode-grid,.quality-mode-grid,.job-grid,.metrics-list,.candidate-list,.audio-preview-list{grid-template-columns:1fr}.dropzone{min-height:220px}.range-control{grid-template-columns:1fr}}
