@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";
:root{--bg:#050505;--panel:#0e0e0e;--panel-2:#141414;--line:#242424;--line-2:#333;--ink:#fff;--muted:#8c918a;--green:#76b900;--green-dim:#5b8f00;--green-soft:#76b9001f;--green-glow:#76b90059;--add:#76b900;--add-bg:#76b9001f;--del:#ff6b5e;--del-bg:#ff6b5e1f;--warn:#f2c230;--warn-bg:#f2c2301f;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--sb-w:288px;--sb-w-collapsed:68px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(900px 420px at 8% -8%, #76b9001a, transparent 60%), radial-gradient(#ffffff0b 1px, transparent 1px) 0 0 / 22px 22px, var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;background-attachment:fixed;font:15px/1.5 IBM Plex Sans,system-ui,sans-serif}a{color:var(--green);text-underline-offset:3px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--green);color:#000}:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}.app{min-height:100vh;display:flex}.main{flex:1;min-width:0}.shell{max-width:1240px;margin:0 auto;padding:0 28px 64px}.sidebar{flex:0 0 var(--sb-w);height:100vh;width:var(--sb-w);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-right:1px solid var(--line);transition:width .28s var(--ease), flex-basis .28s var(--ease), transform .28s var(--ease);z-index:40;background:#080808eb;flex-direction:column;gap:14px;padding:16px 14px;display:flex;position:sticky;top:0;overflow:hidden}.sb-head{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.logo{align-items:center;gap:10px;min-width:0;display:flex}.logo-mark{background:var(--green);color:#000;width:36px;height:36px;font:700 13px var(--mono);letter-spacing:-.02em;box-shadow:0 0 18px var(--green-glow);border-radius:9px;flex:none;place-items:center;display:grid}.logo-text{letter-spacing:-.01em;white-space:nowrap;font-size:13px;font-weight:700;line-height:1.15}.logo-text small{color:var(--green);font:500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;display:block}.icon-btn{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:0 0;border-radius:8px;flex:none;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid}.icon-btn:hover{color:var(--green);border-color:var(--green);background:var(--green-soft)}.icon-btn svg{transition:transform .28s var(--ease)}.sidebar.collapsed .icon-btn svg.chev{transform:rotate(180deg)}.new-project{background:var(--green);color:#000;width:100%;transition:transform .15s var(--ease), box-shadow .15s;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.new-project:hover{box-shadow:0 6px 22px var(--green-glow);transform:translateY(-1px)}.new-project svg{flex:none}.sb-section{flex-direction:column;gap:6px;min-height:0;display:flex}.sb-section.grow{flex:1;padding-right:2px;overflow-y:auto}.sb-label{color:var(--muted);font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 4px;display:flex}.sb-label button{color:var(--muted);font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0}.sb-label button:hover{color:var(--green)}.sb-empty{color:var(--muted);margin:0;padding:4px;font-size:12px}.scope{gap:6px;padding:0 2px 4px;display:flex}.scope button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;flex:1;padding:3px 8px;font-size:11px;transition:all .15s}.scope button.on{border-color:var(--green);color:var(--green);background:var(--green-soft)}.sb-item,.run{border:1px solid #0000;border-radius:10px;align-items:center;gap:4px;transition:background .15s,border-color .15s;display:flex;position:relative}.sb-item:hover,.run:hover{background:var(--panel-2);border-color:var(--line-2)}.sb-item.on,.run.on{background:var(--green-soft);border-color:var(--green-dim)}.sb-main,.run{text-align:left;min-width:0;color:inherit;background:0 0;border:1px solid #0000;border-radius:10px;flex:1;align-items:center;gap:10px;padding:8px 10px;display:flex}.run{width:100%}.sb-text{flex-direction:column;min-width:0;display:flex}.sb-text b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sb-text small{color:var(--muted);font:400 11px var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{background:var(--panel-2);border:1px solid var(--line-2);width:28px;height:28px;font:600 11px var(--mono);color:var(--green);border-radius:8px;flex:none;place-items:center;display:grid}.sb-item.on .avatar{background:var(--green);color:#000;border-color:var(--green)}.sb-x{width:24px;height:24px;color:var(--muted);opacity:0;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-right:6px;transition:opacity .15s,color .15s;display:grid}.sb-item:hover .sb-x,.sb-x:focus-visible{opacity:1}.sb-x:hover{color:var(--del)}.dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;margin:0 9px}.dot.success{background:var(--green);box-shadow:0 0 8px var(--green-glow)}.dot.partial{background:var(--warn)}.dot.failed{background:var(--del)}.sb-foot{color:var(--muted);font:400 10px var(--mono);padding:0 4px}.sb-foot kbd{border:1px solid var(--line-2);color:var(--ink);border-radius:4px;padding:0 5px}@media (min-width:861px){.sidebar.collapsed{flex-basis:var(--sb-w-collapsed);width:var(--sb-w-collapsed)}.sidebar.collapsed .logo-text,.sidebar.collapsed .sb-text,.sidebar.collapsed .sb-label span,.sidebar.collapsed .sb-label button,.sidebar.collapsed .sb-empty,.sidebar.collapsed .scope,.sidebar.collapsed .sb-x,.sidebar.collapsed .sb-foot,.sidebar.collapsed .new-project span{display:none}.sidebar.collapsed .sb-head{flex-direction:column;gap:10px}.sidebar.collapsed .new-project{justify-content:center;padding:10px 0}.sidebar.collapsed .sb-main,.sidebar.collapsed .run{justify-content:center;padding:8px 0}.sidebar.collapsed .dot{margin:0}.sidebar.collapsed .sb-label{justify-content:center}.sidebar.collapsed .sb-label:after{content:"";border-top:1px solid var(--line-2);width:18px}}.backdrop,.menu-btn{display:none}@media (max-width:860px){.sidebar{width:var(--sb-w);flex:none;position:fixed;top:0;bottom:0;left:0}.sidebar.collapsed{transform:translate(-104%)}.backdrop{z-index:30;background:#0009;display:block;position:fixed;inset:0}.menu-btn{display:grid}.shell{padding:0 16px 48px}}.topbar{z-index:20;background:linear-gradient(var(--bg) 60%, transparent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:14px 0;display:flex;position:sticky;top:0}.crumbs{color:var(--muted);font:400 12px var(--mono);align-items:center;gap:10px;min-width:0;display:flex}.crumbs b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pill{border:1px solid var(--line);background:var(--panel);font:400 11px var(--mono);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;display:inline-flex}.pill i{background:var(--del);border-radius:50%;width:7px;height:7px}.pill.ok i{background:var(--green);box-shadow:0 0 8px var(--green-glow);animation:2.4s infinite pulse}.hero{grid-template-columns:1.3fr 1fr;align-items:end;gap:24px;padding:18px 0 26px;display:grid}.kicker{color:var(--green);font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px}h1{letter-spacing:-.03em;margin:0 0 12px;font-size:clamp(28px,4.2vw,44px);font-weight:700;line-height:1.05}h1 em{color:var(--green);text-shadow:0 0 28px var(--green-glow);font-style:normal}.sub{color:var(--muted);max-width:62ch;margin:0}.chips{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:border-color .15s, transform .15s var(--ease), color .15s;border-radius:999px;padding:6px 12px;font-size:12px}.chip:hover{border-color:var(--green);color:var(--ink);transform:translateY(-2px)}.chip b{color:var(--green);font-weight:600}@media (max-width:960px){.hero{grid-template-columns:1fr}.chips{justify-content:flex-start}}.panel{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--line);border-radius:14px;padding:20px;transition:border-color .2s}.panel:hover{border-color:var(--line-2)}form.panel{grid-template-columns:2fr 1fr auto;align-items:end;gap:14px;display:grid;position:relative;overflow:hidden}form.panel:before{content:"";background:linear-gradient(90deg, var(--green), transparent 70%);width:100%;height:2px;position:absolute;top:0;left:0}form .wide{grid-column:1/-1}label{color:var(--muted);gap:6px;font-size:12px;font-weight:500;display:grid}input[type=text],textarea{border:1px solid var(--line-2);width:100%;color:var(--ink);background:#070707;border-radius:9px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input[type=text]:hover,textarea:hover{border-color:#444}input[type=text]:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft);outline:none}textarea{resize:vertical}.check{color:var(--ink);align-items:center;gap:10px;font-size:13px;font-weight:400;display:flex}.check input{accent-color:var(--green);width:16px;height:16px}button.go{background:var(--green);color:#000;min-width:190px;transition:transform .15s var(--ease), box-shadow .2s;border:0;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-weight:700;display:inline-flex}button.go:hover:not(:disabled){box-shadow:0 8px 28px var(--green-glow);transform:translateY(-2px)}button.go:active:not(:disabled){transform:translateY(0)}button.go:disabled{opacity:.7;cursor:progress}.spin{border:2px solid #0000004d;border-top-color:#000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.link-btn{color:var(--green);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.ghost-btn{border:1px solid var(--line-2);color:var(--muted);background:0 0;border-radius:8px;padding:5px 12px;font-size:12px;transition:all .15s}.ghost-btn:hover{border-color:var(--green);color:var(--green)}.health{font:400 11px var(--mono);color:var(--muted);margin:10px 2px 0}.health.ok{color:var(--green)}.notice{border:1px solid var(--line-2);color:var(--muted);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 14px;font-size:13px;display:flex}.alert{color:var(--del)}@media (max-width:960px){form.panel{grid-template-columns:1fr}button.go{width:100%}}.stepper{background:var(--panel);border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(6,1fr);gap:4px;margin:22px 0 0;padding:16px 18px;list-style:none;display:grid}.stepper li{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:12px;display:flex;position:relative}.stepper li:after{content:"";background:var(--line-2);height:2px;position:absolute;top:15px;left:calc(50% + 20px);right:calc(20px - 50%)}.stepper li:last-child:after{display:none}.stepper li.done:after{background:var(--green)}.node{z-index:1;background:var(--panel-2);border:2px solid var(--line-2);width:30px;height:30px;font:600 12px var(--mono);transition:all .3s var(--ease);border-radius:50%;place-items:center;display:grid;position:relative}.stepper li.done{color:var(--ink)}.stepper li.done .node{background:var(--green);border-color:var(--green);color:#000}.stepper li.active{color:var(--ink)}.stepper li.active .node{border-color:var(--green);color:var(--green);box-shadow:0 0 0 0 var(--green-glow);animation:1.6s infinite ring}.stepper li.bad .node{border-color:var(--del);color:var(--del)}@media (max-width:640px){.stepper{grid-template-columns:repeat(3,1fr);row-gap:14px}.stepper li:after{display:none}}.banner{animation:rise .4s var(--ease);border:1px solid;border-radius:12px;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;font-size:14px;display:flex}.banner.success{border-color:var(--green-dim);background:var(--green-soft)}.banner.partial{background:var(--warn-bg);border-color:#8a7220}.banner.failed{background:var(--del-bg);border-color:#8a3a32}.banner a{margin-left:auto;font-weight:600}.stats{background:var(--line);border:1px solid var(--line);animation:rise .4s var(--ease);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;margin:16px 0;display:grid;overflow:hidden}.stat{background:var(--panel);padding:16px 18px;transition:background .2s}.stat:hover{background:var(--panel-2)}.stat b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;display:block}.stat.hot b{color:var(--green)}.stat span{color:var(--muted);font-size:12px}.waves{flex-wrap:wrap;gap:8px;display:flex}.wave{border:1px dashed var(--line-2);border-radius:10px;min-width:130px;padding:8px 12px;transition:border-color .15s,background .15s}.wave:hover{border-color:var(--green);background:var(--green-soft)}.wave strong{font:500 10px var(--mono);color:var(--green);letter-spacing:.08em;text-transform:uppercase;display:block}.wave span{color:var(--muted);font-size:12px}.layout{grid-template-columns:300px 1fr;align-items:start;gap:16px;margin-top:16px;display:grid}@media (max-width:960px){.layout,.split{grid-template-columns:1fr}}.panel-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-head .kicker{margin:0}.timer{font:400 11px var(--mono);color:var(--muted)}.timeline{gap:4px;max-height:520px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.timeline li{border-left:3px solid var(--line-2);animation:slide .3s var(--ease);border-radius:0 8px 8px 0;padding:6px 10px;font-size:13px;transition:background .15s}.timeline li:hover{background:var(--panel-2)}.timeline li.ok{border-color:var(--green)}.timeline li.bad{border-color:var(--del)}.timeline li.warn{border-color:var(--warn)}.timeline li.live{border-color:var(--green);color:var(--muted)}.timeline small{color:var(--muted);font:400 11px var(--mono);display:block}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:14px;display:flex;position:relative}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:13px;transition:color .15s,border-color .15s}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--green);border-bottom-color:var(--green)}.filechips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.filechips button{border:1px solid var(--line-2);color:var(--muted);font:400 11px var(--mono);background:0 0;border-radius:999px;padding:4px 12px;transition:all .15s}.filechips button:hover{border-color:var(--green);color:var(--ink)}.filechips button.on{background:var(--green);color:#000;border-color:var(--green);font-weight:500}.split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.codehead{font:400 11px var(--mono);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.lang{border:1px solid var(--line-2);border-radius:4px;padding:1px 8px;font-weight:600}.lang.rust{color:var(--green);border-color:var(--green-dim);background:var(--green-soft)}.copy{border:1px solid var(--line-2);color:var(--muted);font:400 11px var(--mono);background:0 0;border-radius:6px;padding:2px 8px;transition:all .15s}.copy:hover{border-color:var(--green);color:var(--green)}pre.code,pre.diff{font:12px/1.6 var(--mono);border:1px solid var(--line);white-space:pre;tab-size:4;background:#070707;border-radius:10px;max-height:520px;margin:0;padding:14px;overflow:auto}.diff .a{background:var(--add-bg);color:var(--add)}.diff .d{background:var(--del-bg);color:var(--del)}.diff .h{color:var(--ink);font-weight:500}.diff .f{color:var(--green)}table.sig{border-collapse:collapse;width:100%}table.sig th,table.sig td{text-align:left;border-bottom:1px solid var(--line);font:400 12px var(--mono);padding:9px 10px}table.sig th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500}table.sig tbody tr{transition:background .15s}table.sig tbody tr:hover{background:var(--green-soft)}.badge{font:600 11px var(--mono);border-radius:999px;padding:2px 10px;display:inline-block}.badge.success{background:var(--green-soft);color:var(--green)}.badge.partial{background:var(--warn-bg);color:var(--warn)}.badge.failed{background:var(--del-bg);color:var(--del)}.modal-back{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--green-dim);width:100%;max-width:460px;animation:rise .25s var(--ease);border-radius:16px;gap:14px;padding:24px;display:grid;box-shadow:0 0 60px #76b9001f}.modal h2{letter-spacing:-.02em;margin:0;font-size:20px}.modal p{color:var(--muted);margin:0;font-size:13px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.modal-actions .go{min-width:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}@keyframes ring{70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slide{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
