@font-face{font-family:Manrope;src:url(/fonts/manrope-latin.woff2) format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-ext.woff2) format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg: #121212;--surface: #1a1a1a;--surface-2: #202020;--line: #2c2c2c;--line-strong: #3a3a3a;--text: #f2f2f2;--text-dim: #9a9a9a;--text-faint: #6b6b6b;--accent: #43a83e;--accent-dim: #2f7a2c;--accent-wash: #16240f;--danger: #d24b3f;font-family:Manrope,Segoe UI,system-ui,sans-serif;font-size:15px;color:var(--text);background-color:var(--bg);color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg)}.app-shell{display:flex;height:100vh}.sidebar{width:216px;flex-shrink:0;background:#0d0d0d;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 10px 12px;gap:2px}.sidebar-brand{padding:4px 10px 22px}.sidebar-brand img{display:block;width:128px;height:auto}.sidebar-brand .tool-name{display:block;margin-top:10px;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--text-dim);text-decoration:none;transition:background .15s,color .15s}.sidebar-link:hover{background:var(--surface-2);color:var(--text)}.sidebar-link.active{background:var(--accent-wash);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.sidebar-icon{width:20px;text-align:center}.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.sidebar-user{font-size:.75rem;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis}.app-content{flex:1;overflow-y:auto;padding:28px 32px}.app-content h1{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}.app-content h2{font-weight:600}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap;gap:6px}.spacer{flex:1}.hint{color:var(--text-dim);font-size:.85rem;line-height:1.5}.error{color:var(--danger);font-size:.88rem}button{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:7px;padding:7px 12px;color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#2a2a2a;border-color:#4a4a4a}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#0d0d0d;font-weight:600}button.primary:hover:not(:disabled){background:#4cbb46;border-color:#4cbb46}.link-button{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-size:.8rem;text-align:left}.link-button:hover{text-decoration:underline;background:none}input[type=text],input[type=email],input[type=password],input[type=number],input:not([type]){background:var(--bg);border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px;color:var(--text);font:inherit;font-size:.9rem}input:focus{outline:none;border-color:var(--accent)}input.wide{width:100%}label.stacked{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.85rem;color:var(--text-dim)}label.checkbox{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.88rem;cursor:pointer}label.checkbox input{accent-color:var(--accent)}fieldset{border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}legend{padding:0 8px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.chip-queued{background:var(--surface-2);color:var(--text-dim)}.chip-running{background:var(--accent-wash);color:var(--accent)}.chip-done{background:var(--accent);color:#0d0d0d}.chip-error{background:#3a1512;color:#f0a49c}.chip-cancelled{background:var(--surface-2);color:var(--text-faint)}.chip-idle{background:var(--accent-wash);color:var(--accent)}.chip-busy{background:var(--accent);color:#0d0d0d}.chip-paused{background:#33280c;color:#e6c069}.chip-updating{background:#12262e;color:#7fc4dd}.chip-offline{background:var(--surface-2);color:var(--text-faint)}.job-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:12px}.job-card.status-running{border-color:var(--accent-dim)}.job-card.status-error{border-color:#4a201c}.job-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.job-meta{font-size:.78rem;color:var(--text-faint)}.job-paths{display:flex;align-items:center;gap:8px;margin:8px 0 2px;font-size:.8rem;color:var(--text-dim)}.job-paths .arrow{color:var(--text-faint)}.step-indicator{display:flex;gap:6px;margin:12px 0 8px;flex-wrap:wrap}.step-dot{font-size:.72rem;padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-faint)}.step-dot.done{color:var(--accent)}.step-dot.active{background:var(--accent);color:#0d0d0d;font-weight:600}.progress-track{height:5px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .4s ease}.progress-message{margin-top:6px;font-size:.8rem;color:var(--text-dim)}.job-log,.job-error{margin-top:10px;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;line-height:1.5;color:var(--text-dim);max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word}.job-error{color:#f0a49c;border-color:#4a201c}.job-outputs{margin-top:10px}.output-row{display:flex;align-items:center;gap:12px;padding:4px 0;border-bottom:1px solid var(--line)}.output-row:last-of-type{border-bottom:none}.worker-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:12px}.worker-card.dead{opacity:.55}.worker-meta{display:flex;gap:18px;margin-top:8px;font-size:.8rem;color:var(--text-faint);flex-wrap:wrap}.wizard{max-width:780px}.catalog{max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;margin-top:10px}.catalog-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:7px 10px;background:none;border:none;border-bottom:1px solid var(--line);border-radius:0;color:var(--text-dim);font-size:.82rem;text-align:left}.catalog-row:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.catalog-row.selected{background:var(--accent-wash);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.catalog-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.catalog-count{flex-shrink:0;color:var(--text-faint);font-size:.75rem}.preset-row{display:flex;gap:8px}.preset-card{flex:1;display:flex;flex-direction:column;gap:3px;padding:11px 13px;background:var(--bg);border:1px solid var(--line-strong);border-radius:9px;text-align:left}.preset-card.selected{border-color:var(--accent);background:var(--accent-wash)}.preset-card .hint{font-size:.75rem}.format-list{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;padding:20px}.login-box{width:340px;display:flex;flex-direction:column;gap:12px;padding:32px 30px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.login-box img{width:150px;height:auto;margin-bottom:2px}.login-box .tool-name{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px}.login-box label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--text-dim)}.login-box .hint{font-size:.72rem;color:var(--text-faint);text-align:center}select{background:var(--bg);border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px;color:var(--text);font:inherit;font-size:.9rem}select:focus{outline:none;border-color:var(--accent)}
