@font-face{font-family:Space Grotesk;src:url(/space-grotesk.ttf)format("truetype");font-weight:400 700;font-display:swap}:root{--bg:#111827;--surface:#1f2937;--surface-2:#374151;--surface-low:#161f2e;--border:#374151;--text:#f9fafb;--text-dim:#9ca3af;--accent:#22c55e;--accent-bright:#4ade80;--accent-deep:#15803d;--on-accent:#04210f;--primary:#22c55e;--danger:#ef4444;--amber:#f59e0b;--pending:#6b7280;--radius:16px;--radius-sm:8px;--maxw:880px;--font:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent-bright);text-decoration:none}button{font-family:inherit}.appbar{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--surface);background:#111827eb;position:sticky;top:0}.appbar-inner{max-width:var(--maxw);align-items:center;gap:8px;margin:0 auto;padding:10px 16px;display:flex}.brand{letter-spacing:.2px;font-size:20px;font-weight:700}.brand .beta{color:var(--amber);letter-spacing:.06em;text-transform:uppercase;margin-left:6px;font-size:11px;font-weight:700}.nav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.nav a{color:var(--text-dim);border-radius:999px;padding:7px 12px;font-size:14px;font-weight:600}.nav a.active{color:var(--on-accent);background:var(--accent)}.nav button.logout{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:14px;font-weight:600}.container{max-width:var(--maxw);margin:0 auto;padding:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.stack>*+*{margin-top:10px}.row{align-items:center;gap:12px;padding:12px;display:flex}.row .cover{object-fit:cover;background:var(--surface-2);border-radius:10px;flex:none;width:56px;height:56px}.row .cover.placeholder{color:var(--text-dim);justify-content:center;align-items:center;font-size:22px;display:flex}.row .meta{flex:1;min-width:0}.row .meta .title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.row .meta .sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.row .trailing{flex:none}.row.clickable{cursor:pointer}.row.clickable:hover{background:var(--surface-2)}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary,.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover,.btn.accent:hover{background:var(--accent-bright);border-color:var(--accent-bright)}.btn.danger{color:var(--danger);background:0 0;border-color:#0000}.btn.small{padding:5px 10px;font-size:13px}.btn.ghost{background:0 0}.chips{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.chip{white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.statuschip{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.statuschip.available{background:var(--accent);color:var(--on-accent)}.statuschip.downloading{background:var(--amber);color:var(--on-accent)}.statuschip.failed,.statuschip.error{background:var(--danger);color:#fff}.statuschip.pending{background:var(--surface-2);color:var(--text-dim)}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:4px;padding:4px;display:flex}.tabs button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:8px;font-weight:600}.tabs button.on{background:var(--accent);color:var(--on-accent)}.field{margin-bottom:12px;display:block}.field label{color:var(--text-dim);margin-bottom:6px;font-size:13px;display:block}.input,.searchbar input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);padding:11px 14px;font-family:inherit;font-size:15px}.input:focus,.searchbar input:focus{border-color:var(--accent);outline:none}.searchbar{gap:8px;margin-bottom:14px;display:flex}.state{text-align:center;color:var(--text-dim);padding:56px 16px}.state .icon{margin-bottom:10px;font-size:40px}.state h3{color:var(--text);margin:0 0 6px}.state p{max-width:360px;margin:0 auto 14px}.spinner{border:3px solid var(--surface-2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:56px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pipeline{border-top:1px solid var(--border);padding:0 12px 14px}.stepper{align-items:flex-start;margin:14px 0 10px;display:flex}.step{text-align:center;flex:1;position:relative}.step .dot{background:var(--surface-2);width:24px;height:24px;color:var(--text-dim);z-index:1;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;font-size:12px;font-weight:700;display:flex;position:relative}.step.done .dot,.step.current .dot{background:var(--accent);color:var(--on-accent)}.step .label{color:var(--text-dim);margin-top:5px;font-size:11px}.step.done .label,.step.current .label{color:var(--text)}.step:before,.step:after{content:"";background:var(--surface-2);z-index:0;height:2px;position:absolute;top:11px}.step:before{width:50%;left:0}.step:after{width:50%;right:0}.step:first-child:before,.step:last-child:after{display:none}.step.done:before,.step.done:after,.step.current:before{background:var(--accent)}.detail{margin:4px 0;font-size:14px}.detail.fail{color:var(--danger)}.bar{background:var(--surface-2);border-radius:999px;height:6px;margin:8px 0;overflow:hidden}.bar>div{background:var(--accent);height:100%}.btnrow{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.linkchips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.toast{color:var(--text-dim);margin-top:6px;font-size:13px}.muted{color:var(--text-dim)}.section-title{margin:0 0 4px;font-size:16px;font-weight:600}.backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:100%;max-width:360px;padding:18px}.dialog h3{margin:0 0 8px}.dialog .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}
