@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&display=swap";
.nd-root{--bg:#faf9f6;--bg1:#f4f2ed;--bg2:#edeae3;--bg3:#e6e3da;--bg4:#dedad0;--b1:#e0ddd5;--b2:#d4d0c8;--b3:#c4c0b8;--tx:#8a8680;--tx2:#6b6760;--tx3:#b0aca4;--tx4:#c8c4bc;--acc:#3d6b1e;--acc2:#4e8826;--acc3:#e8f0df;--acc-light:#f0f5ea;--acc-mid:#c8dca8;--acc-line:#a8c878;--blue:#2d5a9e;--orange:#c4621a;--purple:#6b4fa0;--ink:#2c2a26;--shadow:#3c321e0f;--shadow2:#3c321e0a;--run-glow1:#c8641e1a;--run-glow2:#c8641e38}.dark .nd-root{--bg:#0e0e0e;--bg1:#141414;--bg2:#1a1a1a;--bg3:#202020;--bg4:#262626;--b1:#2a2a2a;--b2:#323232;--b3:#3a3a3a;--tx:#888480;--tx2:#a8a49c;--tx3:#565250;--tx4:#3c3a38;--acc:#7ec832;--acc2:#96e03e;--acc3:#1a2a0a;--acc-light:#111a08;--acc-mid:#2e4a14;--acc-line:#4a7020;--blue:#4a8fd4;--orange:#e07a3a;--purple:#9b72cc;--ink:#e8e4de;--shadow:#0000004d;--shadow2:#0003;--run-glow1:#e07a3a1f;--run-glow2:#e07a3a47}.nd-root{background:var(--bg);border:1px solid var(--b1);box-shadow:0 1px 3px var(--shadow), 0 4px 16px var(--shadow2);border-radius:14px;flex-direction:column;width:100%;font-family:JetBrains Mono,ui-monospace,monospace;display:flex;overflow:hidden}.nd-tbar{background:var(--bg1);border-bottom:1px solid var(--b1);flex-shrink:0;align-items:center;gap:7px;padding:10px 16px;display:flex}.nd-dot{border-radius:50%;width:11px;height:11px}.nd-tbar-title{color:var(--tx);letter-spacing:.15em;text-transform:uppercase;margin-left:8px;font-size:10px}.nd-tbar-sha{color:var(--tx3);letter-spacing:.05em;background:var(--bg2);border:1px solid var(--b1);border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px}.nd-body{flex:1;min-height:0;display:flex;overflow:hidden}.nd-sidebar{background:var(--bg1);border-right:1px solid var(--b1);flex-direction:column;flex-shrink:0;width:160px;padding:12px 0;display:flex;overflow:hidden}.nd-sb-label{letter-spacing:.12em;color:var(--tx3);text-transform:uppercase;padding:0 14px 6px;font-size:9px;font-weight:500}.nd-sb-item{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:7px 14px;transition:all .2s;display:flex}.nd-sb-item:hover{background:#7ec8320f}.nd-sb-item.active{border-left-color:var(--acc);background:var(--acc-light)}.nd-sb-dot{border-radius:2px;flex-shrink:0;width:6px;height:6px}.nd-sb-name{color:var(--tx2);font-size:10px}.nd-sb-item.active .nd-sb-name{color:var(--acc)}.nd-sb-sep{background:var(--b1);height:1px;margin:10px 14px}.nd-region{cursor:pointer;align-items:center;gap:6px;padding:5px 14px;display:flex}.nd-r-pip{background:var(--tx4);border-radius:50%;width:5px;height:5px;transition:background .4s}.nd-r-pip.live{background:var(--acc);animation:2s infinite nd-pip-pulse}.nd-r-name{color:var(--tx3);letter-spacing:.03em;font-size:9px;transition:color .15s}.nd-r-name.live{color:var(--acc)}.nd-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.nd-hdr{border-bottom:1px solid var(--b1);background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.nd-branch{color:var(--tx2);background:var(--bg1);border:1px solid var(--b2);letter-spacing:.03em;border-radius:6px;align-items:center;gap:8px;min-width:0;padding:5px 10px;font-size:10px;display:flex}.nd-br-pulse{background:var(--acc);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s infinite nd-pip-pulse}.nd-deploy-btn{cursor:pointer;letter-spacing:.1em;text-transform:uppercase;border:none;border-radius:7px;flex-shrink:0;padding:6px 14px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s}.nd-deploy-btn:active{transform:scale(.97)}.nd-deploy-btn.idle{background:var(--acc);color:#fff;box-shadow:0 1px 4px #0003}.nd-deploy-btn.done{background:var(--acc-light);color:var(--acc);border:1px solid var(--acc-mid)}.nd-pipe-section{border-bottom:1px solid var(--b1);background:var(--bg);flex-shrink:0;padding:12px 16px}.nd-pipe-label{letter-spacing:.1em;color:var(--tx3);text-transform:uppercase;margin-bottom:10px;font-size:9px;font-weight:500}.nd-pipe{scrollbar-width:none;align-items:center;padding-bottom:2px;display:flex;overflow-x:auto}.nd-pipe::-webkit-scrollbar{display:none}.nd-step-wrap{flex-shrink:0;align-items:center;display:flex}.nd-step{cursor:pointer;flex-direction:column;align-items:center;gap:4px;transition:transform .15s;display:flex}.nd-step:hover{transform:translateY(-1px)}.nd-step-box{border:1px solid var(--b2);background:var(--bg1);border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .3s;display:flex;position:relative;overflow:hidden}.nd-step-box.done{background:var(--acc-light);border-color:var(--acc-mid)}.nd-step-box.running{background:var(--bg2);border-color:var(--orange);animation:1.5s infinite nd-run-pulse}.nd-step-name{letter-spacing:.12em;text-transform:uppercase;color:var(--tx4);font-size:8px;transition:color .3s,transform .2s}.nd-step:hover .nd-step-name{transform:translateY(1px)}.nd-deploy-btn.done{color:var(--acc);letter-spacing:.08em;background:linear-gradient(#7ec8322e,#7ec83214);border:1px solid #7ec83259;font-weight:600;position:relative;overflow:hidden}.nd-deploy-btn.done:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffff59,#0000 70%);animation:2.5s forwards deploy-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes deploy-shine{to{transform:translate(100%)}}.nd-step-box.running{border-color:var(--acc-line)}.nd-step-box.running:after{content:"";border-radius:inherit;background:linear-gradient(var(--bg1),var(--bg1)) padding-box, linear-gradient(120deg, transparent, var(--acc-line), transparent) border-box;border:1px solid #0000;animation:2s linear infinite running-border;position:absolute;inset:-1px}.nd-step-wrap{opacity:0;animation:.4s forwards step-enter;transform:translateY(6px)}.nd-step-wrap:first-child{animation-delay:50ms}.nd-step-wrap:nth-child(2){animation-delay:.1s}.nd-step-wrap:nth-child(3){animation-delay:.15s}.nd-step-wrap:nth-child(4){animation-delay:.2s}.nd-step-wrap:nth-child(5){animation-delay:.25s}.nd-step-wrap:nth-child(6){animation-delay:.3s}@keyframes step-enter{to{opacity:1;transform:none}}@keyframes running-border{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.nd-step-conn{background:var(--b2);flex-shrink:0;width:28px;height:1px;margin-bottom:16px;transition:background .4s;position:relative;overflow:hidden}.nd-step-conn.lit:after{content:"";background:linear-gradient(90deg,#0000,#0000002e,#0000);animation:2s infinite pipeline-flow;position:absolute;inset:0}.dark .nd-step-conn.lit:after{background:linear-gradient(90deg,#0000,#ffffff2e,#0000)}@keyframes pipeline-flow{0%{transform:translate(-100%)}to{transform:translate(100%)}}.nd-logs-wrap{background:var(--bg);flex-shrink:0;height:200px;max-height:200px;position:relative;overflow:hidden}.nd-logs{scrollbar-width:thin;scrollbar-color:var(--acc-mid) transparent;height:100%;padding:8px 14px;font-size:10px;line-height:1.9;overflow-y:scroll}.nd-logs::-webkit-scrollbar{width:4px}.nd-logs::-webkit-scrollbar-track{background:0 0}.nd-logs::-webkit-scrollbar-thumb{background:var(--acc-mid);border-radius:2px}.nd-log-row{opacity:0;gap:12px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(3px)}.nd-log-row.vis{opacity:1;transform:none}.nd-log-ts{color:var(--tx4);letter-spacing:.03em;flex-shrink:0;width:38px;padding-top:1px;font-size:9px}.nd-log-msg{white-space:pre;text-overflow:clip;flex:1;min-width:0;overflow:hidden}.nd-c-text{color:var(--tx2)}.nd-c-success{color:var(--acc)}.nd-c-dim{color:var(--tx3)}.nd-c-info{color:var(--blue)}.nd-c-accent{color:var(--acc);font-weight:600}.nd-cursor{background:var(--acc);vertical-align:middle;opacity:.7;border-radius:1px;width:7px;height:12px;animation:1s step-end infinite nd-blink;display:inline-block}.nd-statusbar{border-top:1px solid var(--b1);background:var(--bg1);color:var(--tx3);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;padding:6px 16px;font-size:9px;display:flex}.nd-status-group{align-items:center;gap:14px;display:flex}.nd-stat-item{align-items:center;gap:4px;display:flex}.nd-stat-val{color:var(--acc);font-weight:600}.nd-stat-dot{background:var(--acc);border-radius:50%;width:5px;height:5px;margin-right:3px;display:inline-block}@keyframes nd-pip-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--acc) 35%, transparent)}50%{box-shadow:0 0 0 4px #0000}}@keyframes nd-run-pulse{0%,to{box-shadow:0 0 6px var(--run-glow1)}50%{box-shadow:0 0 12px var(--run-glow2)}}@keyframes nd-blink{0%,49%{opacity:.8}50%,to{opacity:0}}@media (max-width:600px){.nd-sidebar{width:120px}}@media (max-width:480px){.nd-sidebar{display:none}.nd-step-box{width:30px;height:30px}.nd-step-conn{width:12px}}
