:root{--bg:#0e1117;--bg-raised:#161b23;--bg-sunken:#0a0d12;--panel:#1a212b;--border:#262e3a;--border-soft:#1f2731;--text:#e6edf3;--muted:#8b98a9;--accent:#5b9dff;--success:#2fc4a0;--warn:#f2a33c;--danger:#ff6b81;--radius:10px;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 20% -10%, #1a2434 0%, var(--bg) 60%);color:var(--text)}button,select,textarea,input{font:inherit;color:inherit}code{font-family:var(--mono);background:#ffffff12;border-radius:5px;padding:1px 5px;font-size:.9em}.muted{color:var(--muted)}.app{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1117cc;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo-mark{filter:drop-shadow(0 2px 8px #5b9dff40);flex-shrink:0;transition:transform .2s,filter .2s;display:block}.brand:hover .brand-logo-mark{filter:drop-shadow(0 4px 12px #5b9dff66);transform:scale(1.05)}.brand-mark{background:linear-gradient(140deg, var(--accent), #a97bf0);color:#0b0e13;border-radius:11px;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.brand h1{letter-spacing:-.01em;margin:0;font-size:17px}.brand p{color:var(--muted);margin:1px 0 0;font-size:12px}.topbar-actions{align-items:center;gap:8px;display:flex}.scenario-select,.speed select,.palette-select{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 10px;font-size:13px}.ghost{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:7px 12px;font-size:13px;transition:background .15s,border-color .15s}.ghost:hover{background:var(--panel);border-color:var(--accent)}.main{flex:1;grid-template-columns:340px 1fr;min-height:0;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--bg-raised);flex-direction:column;min-height:0;display:flex}.stage{flex-direction:column;gap:12px;min-width:0;padding:16px 20px 28px;display:flex;overflow-y:auto}.panel-title{justify-content:space-between;align-items:baseline;gap:8px;padding:12px 14px 6px;display:flex}.panel-title h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:12px}.panel-title .muted{font-size:11px}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.script-input{resize:vertical;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius);min-height:168px;font-family:var(--mono);tab-size:2;margin:0 12px;padding:10px 12px;font-size:12.5px;line-height:1.65}.script-input:focus{border-color:var(--accent);outline:none}.steps{flex:1;min-height:90px;margin:0;padding:0 12px 12px;list-style:none;overflow-y:auto}.step{text-align:left;cursor:pointer;width:100%;font-family:var(--mono);color:var(--muted);background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:9px;margin-bottom:2px;padding:5px 8px;font-size:12px;transition:background .12s,color .12s;display:flex}.step:hover{background:#ffffff0d}.step.is-done{color:var(--text)}.step.is-current{border-color:var(--accent);color:var(--text);background:#5b9dff22}.step.is-failed .step-src{color:var(--danger)}.step-num{text-align:right;opacity:.6;flex:0 0 20px;font-size:10.5px}.step-src{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.step-flag{color:var(--danger);font-weight:700}.tag-remote{letter-spacing:.05em;text-transform:uppercase;color:var(--warn);background:#f2a33c33;border-radius:4px;margin-right:6px;padding:0 5px;font-size:9.5px;display:inline-block}.palette{border-top:1px solid var(--border);background:#131924;padding-bottom:12px}.palette-group{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 12px 8px;display:flex}.palette-label{text-transform:uppercase;letter-spacing:.08em;width:100%;color:var(--muted);font-size:10px}.palette-group button,.palette-select{font-size:12px;font-family:var(--mono);background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:5px 9px;transition:border-color .12s,background .12s,transform 80ms}.palette-group button:hover,.palette-select:hover{border-color:var(--accent);background:#1f2937}.palette-group button:active{transform:translateY(1px)}.palette-select:disabled{opacity:.4;cursor:not-allowed}.toolbar{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);z-index:5;align-items:center;gap:14px;padding:9px 14px;display:flex;position:sticky;top:0}.transport{gap:5px;display:flex}.transport button{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:7px;place-items:center;width:34px;height:30px;font-size:12px;transition:border-color .12s,background .12s;display:grid}.transport button:hover:not(:disabled){border-color:var(--accent)}.transport button:disabled{opacity:.35;cursor:not-allowed}.transport .primary{background:var(--accent);border-color:var(--accent);color:#0b0e13;font-weight:700}.scrubber{accent-color:var(--accent);flex:1}.counter{font-family:var(--mono);color:var(--muted);text-align:right;min-width:58px;font-size:12px}.speed{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.scenario-blurb{color:var(--muted);margin:0;padding-left:2px;font-size:13px}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#05070ac0;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;width:100%;max-width:480px;max-height:calc(100vh - 40px);padding:22px 24px;position:relative;overflow-y:auto;box-shadow:0 20px 60px #000000a0}.modal-close{border:1px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border-radius:8px;line-height:1;position:absolute;top:12px;right:12px}.modal-close:hover{background:var(--panel);border-color:var(--accent);color:var(--text)}.about-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.about-header h2{margin:0;font-size:18px}.about-header p{margin:2px 0 0;font-size:12px}.about-modal p{color:var(--text);font-size:13px;line-height:1.55}.about-modal h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 4px;font-size:12px}.about-meta{grid-template-columns:auto 1fr;gap:4px 12px;margin:16px 0 0;font-size:13px;display:grid}.about-meta dt{color:var(--muted)}.about-meta dd{margin:0}.repo-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);overflow:hidden}.repo-panel.repo-remote{background:linear-gradient(180deg, #1a2130 0%, var(--bg-raised) 60%)}.repo-head{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;display:flex}.repo-title{align-items:baseline;gap:9px;display:flex}.repo-title h2{letter-spacing:-.01em;margin:0;font-size:13.5px}.repo-hint{color:var(--muted);font-size:11.5px}.repo-dot{border-radius:50%;align-self:center;width:9px;height:9px}.repo-dot-remote{background:var(--warn);box-shadow:0 0 0 3px #f2a33c22}.repo-dot-local{background:var(--success);box-shadow:0 0 0 3px #2fc4a022}.repo-meta{flex-wrap:wrap;gap:6px;display:flex}.chip{font-family:var(--mono);color:var(--muted);border:1px solid var(--border-soft);background:#ffffff0a;border-radius:999px;padding:2px 9px;font-size:11px}.chip strong{color:var(--text);font-weight:600}.chip-status{color:var(--accent);background:#5b9dff14;border-color:#5b9dff44}.graph-scroll{padding:4px 0 2px;overflow:auto hidden}.graph-empty{color:var(--muted);font-size:12.5px;font-family:var(--mono);padding:26px 16px}.graph{display:block}.edge{fill:none;stroke-width:2.5px;opacity:.75;transition:d .45s,opacity .3s}.edge.is-merge{stroke-dasharray:1 0;opacity:.55}.edge.is-orphan{opacity:.18;stroke-dasharray:4 4}.node{transition:transform .45s cubic-bezier(.34,1.2,.64,1)}.node-dot{stroke:#0e1117;stroke-width:3px;transition:opacity .3s}.node-inner{fill:#0e1117}.node-halo{opacity:0;transition:opacity .4s}.node.is-new .node-halo,.node.is-transferred .node-halo{opacity:.28;animation:1.1s ease-out halo-pulse}.node.is-new .node-dot{animation:.5s cubic-bezier(.34,1.56,.64,1) pop-in}.node.is-transferred .node-dot{animation:.9s ease-out flash}.node.is-orphan{opacity:.32}.node.is-orphan .node-dot{stroke-dasharray:3 3}.node-hash,.node-msg{text-anchor:middle;font-family:var(--mono);fill:var(--muted)}.node-hash{fill:#b7c3d3;font-size:10.5px}.node-msg{opacity:.72;font-size:9.5px}.badge{transition:transform .45s cubic-bezier(.34,1.2,.64,1)}.badge-bg{opacity:.92}.badge-tail{stroke-width:2px;opacity:.45}.badge-text{text-anchor:middle;font-family:var(--mono);fill:#0b0e13;font-size:11px;font-weight:600}.badge.kind-remote .badge-bg{fill:#0e1117;stroke:currentColor;opacity:1}.badge.kind-remote .badge-bg,.badge.kind-tag .badge-bg{stroke-width:1.5px}.badge.kind-remote .badge-text{fill:#cbd7e6}.badge.kind-tag .badge-bg{fill:#f2a33c}.badge.kind-head .badge-bg{fill:#e6edf3}.badge.is-head .badge-bg{filter:drop-shadow(0 0 6px)}.badge.is-moved .badge-inner{animation:.6s ease-out badge-pop}@keyframes pop-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes halo-pulse{0%{opacity:.6;transform:scale(.6)}to{opacity:.28;transform:scale(1.15)}}@keyframes flash{0%,to{opacity:1}35%{opacity:.35}}@keyframes badge-pop{0%{transform:scale(.7)}55%{transform:scale(1.12)}to{transform:scale(1)}}.transfer{align-items:center;gap:12px;padding:0 6px;display:flex}.transfer-line{background:linear-gradient(90deg, transparent, var(--border), transparent);flex:1;height:1px}.transfer-badge{font-family:var(--mono);color:var(--muted);border:1px dashed var(--border);border-radius:999px;align-items:center;gap:8px;padding:3px 12px;font-size:11.5px;transition:color .2s,border-color .2s,background .2s;display:flex}.transfer-arrow{font-size:13px}.transfer-up .transfer-badge{color:var(--success);border-color:var(--success);background:#2fc4a014;border-style:solid}.transfer-down .transfer-badge{color:var(--accent);border-color:var(--accent);background:#5b9dff14;border-style:solid}.transfer-up .transfer-arrow,.transfer-down .transfer-arrow{animation:.9s ease-in-out infinite nudge}.transfer-down .transfer-arrow{animation-name:nudge-down}@keyframes nudge{0%,to{transform:translateY(2px)}50%{transform:translateY(-3px)}}@keyframes nudge-down{0%,to{transform:translateY(-2px)}50%{transform:translateY(3px)}}.explain{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);padding:12px 15px}.explain.level-success{border-left-color:var(--success)}.explain.level-warn{border-left-color:var(--warn)}.explain.level-error{border-left-color:var(--danger)}.explain.level-info{border-left-color:var(--accent)}.explain-head{font-family:var(--mono);align-items:baseline;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.prompt{color:var(--success)}.explain-cmd{color:var(--text);font-weight:600}.explain-output{background:var(--bg-sunken);font-family:var(--mono);color:#b7c3d3;white-space:pre-wrap;border-radius:8px;margin:0 0 10px;padding:9px 11px;font-size:12px;line-height:1.55}.level-error .explain-output{color:#ffb3be}.explain-body{color:#cbd5e1;max-width:85ch;margin:0 0 6px;font-size:13.5px;line-height:1.62}.explain-body:last-child{margin-bottom:0}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;padding:2px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.key{border-radius:999px;width:18px;height:10px;display:inline-block}.key-branch{background:var(--accent)}.key-remote{background:0 0;border:1.5px solid #7f8ea3}.key-tag{background:var(--warn)}.key-orphan{opacity:.32;background:#7f8ea3}@media (width<=1000px){.main{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:46vh}}
