:root{--canvas: #f8fafc;--surface: #ffffff;--inset: #eef2f7;--line: #e2e8f0;--line-2: #cbd5e1;--ink: #0f172a;--muted: #64748b;--faint: #94a3b8;--blue: #0478d7;--blue-deep: #0361ae;--blue-tint: #e9f4fd;--blue-line: #93c8ef;--orange: #ff9900;--orange-deep: #cc7a00;--orange-tint: #fff5e6;--orange-line: #ffd391;--ok: #1e8e5a;--ok-tint: #e9f7f0;--navy: #0f172a;--navy-2: #16203a;--navy-line: #2b3a55;--navy-muted: #8fa3c0;--navy-text: #cbd7e8;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--shadow: 0 1px 2px rgb(15 23 42 / .06);--radius-card: 8px;--radius-frame: 10px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--canvas);color:var(--ink);font-size:13.5px;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.app{height:100%;display:grid;grid-template-rows:52px 1fr 56px}.topbar{display:flex;align-items:center;gap:12px;padding:0 18px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar .mark{width:26px;height:26px;display:block}.topbar .word{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.topbar .word span{color:var(--muted);font-weight:600}.topbar .divider{width:1px;height:20px;background:var(--line)}.topbar .spacer{flex:1}.env-chip{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--blue-deep);background:var(--blue-tint);border:1px solid var(--blue-line);border-radius:999px;padding:3px 10px;letter-spacing:.02em}.gear{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent}.gear:hover{background:var(--inset);border-color:var(--line);color:var(--ink)}.shell{display:grid;grid-template-columns:248px minmax(0,1fr) 408px;min-height:0}@media(max-width:1100px){.shell{grid-template-columns:200px minmax(0,1fr) 340px}}.rail{background:var(--surface);border-right:1px solid var(--line);padding:18px 0;overflow-y:auto}.rail-kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);padding:0 18px;margin-bottom:12px}.step-item{position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:9px 18px}.step-item .num{position:relative;z-index:1;width:26px;height:26px;flex:none;border-radius:999px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:600;background:var(--surface);border:1.5px solid var(--line-2);color:var(--faint);transition:border-color .18s,color .18s,background .18s}.step-item:before{content:"";position:absolute;left:30.5px;top:-14px;bottom:-14px;width:1.5px;background:var(--line)}.step-item:first-of-type:before{top:22px}.step-item:last-of-type:before{bottom:auto;height:22px}.step-item.done:before{background:var(--blue-line)}.step-item .lbl{padding-top:4px;min-width:0}.step-item .lbl .t{display:block;font-size:12.5px;font-weight:600;color:var(--muted);line-height:1.3;transition:color .18s}.step-item .lbl .k{display:block;font-size:9.5px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}.step-item .lbl .k.supplier{color:var(--orange-deep)}.step-item.active .num{border-color:var(--blue);color:var(--blue-deep);box-shadow:0 0 0 3px var(--blue-tint)}.step-item.active .lbl .t{color:var(--ink)}.step-item.done .num{background:var(--blue);border-color:var(--blue);color:#fff}.step-item.done .lbl .t,.step-item:hover .lbl .t{color:var(--ink)}.stage-zone{display:flex;flex-direction:column;min-width:0;min-height:0;padding:22px 26px 16px;gap:14px;overflow-y:auto}.step-head{display:flex;align-items:baseline;gap:12px}.step-head .kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.step-head .kicker.supplier{color:var(--orange-deep)}.step-head h1{font-size:24px;font-weight:750;letter-spacing:-.015em;line-height:1.15}.badge-roadmap{align-self:center;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;color:var(--muted);background:var(--inset);border:1px solid var(--line-2);border-radius:4px;padding:2px 7px}.narration{color:var(--muted);line-height:1.6;max-width:640px}.board{position:relative;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);border-radius:var(--radius-frame);border:1px solid var(--navy-line);flex:1;min-height:340px;overflow:hidden}.board svg{position:absolute;inset:0;width:100%;height:100%}.caption{display:flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--muted)}.caption:before{content:"";align-self:center;width:18px;height:2px;background:var(--blue);flex:none}.caption b{color:var(--ink);font-weight:650}.wire{background:var(--surface);border-left:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;min-height:0}.panel-kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow)}.card .card-head{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line)}.method{font-family:var(--mono);font-size:11px;font-weight:700;padding:3px 8px;border-radius:5px;color:var(--blue-deep);background:var(--blue-tint);border:1px solid var(--blue-line)}.card.running .method{background:var(--blue);color:#fff;border-color:var(--blue)}.path{font-family:var(--mono);font-size:12px;color:var(--ink);word-break:break-all;line-height:1.5}.path .chip{color:var(--blue-deep);background:var(--blue-tint);border:1px solid var(--blue-line);border-radius:4px;padding:1px 5px;font-weight:600}.path .chip.pop{animation:chip-pop .24s ease-out}@keyframes chip-pop{0%{transform:scale(.92)}to{transform:scale(1)}}.card .card-body{padding:12px 14px}.codeblock{font-family:var(--mono);font-size:12px;line-height:1.65;background:var(--inset);border:1px solid var(--line);border-radius:6px;padding:10px 12px;white-space:pre-wrap;word-break:break-word;color:#333a44}.codeblock .j-key{color:var(--muted)}.codeblock .j-hl{color:var(--blue-deep);font-weight:650;background:var(--blue-tint);border-radius:3px;padding:0 3px;box-shadow:inset 0 -1.5px 0 var(--blue-line)}.run-row{display:flex;justify-content:flex-end;padding:0 14px 12px}.btn-run{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;font-size:13px;font-weight:650;border-radius:7px;padding:9px 16px;transition:background .14s,transform .14s}.btn-run:hover{background:var(--blue-deep)}.btn-run:active{transform:translateY(1px)}.btn-run:disabled{background:var(--line-2);cursor:default}.resp{animation:rise-in .2s ease-out}@keyframes rise-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.status-chip{font-family:var(--mono);font-size:11px;font-weight:700;padding:3px 8px;border-radius:5px;color:var(--ok);background:var(--ok-tint);border:1px solid currentColor}.latency{font-family:var(--mono);font-size:11px;color:var(--faint);margin-left:auto}.copy-curl{font-family:var(--mono);font-size:10.5px;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:3px 8px}.copy-curl:hover{color:var(--muted);background:var(--inset)}.console{border-color:var(--orange-line);background:var(--orange-tint)}.console .card-head{border-bottom-color:var(--orange-line)}.console-kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep)}.console .action-desc{font-family:var(--mono);font-size:11px;color:var(--orange-deep);word-break:break-all;line-height:1.6;padding:10px 14px 0}.btn-console{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:var(--navy);font-size:13px;font-weight:700;border-radius:7px;padding:9px 16px;transition:background .14s,transform .14s}.btn-console:hover{background:var(--orange-deep);color:#fff}.btn-console:active{transform:translateY(1px)}.btn-console:disabled{background:var(--line-2);color:#fff;cursor:default}.presenter{display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--surface);border-top:1px solid var(--line)}.btn-quiet{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:7px 13px}.btn-quiet:hover{background:var(--inset);color:var(--ink)}.presenter .mid{flex:1;text-align:center;font-size:12px;color:var(--faint)}.presenter .mid b{color:var(--muted);font-weight:650}.presenter kbd{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--muted);background:var(--surface)}.overlay{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;z-index:50;animation:rise-in .14s ease-out}.modal{width:460px;max-width:calc(100vw - 40px);background:var(--surface);border-radius:var(--radius-frame);border:1px solid var(--line);box-shadow:0 20px 50px #0f172a40;padding:22px}.modal h2{font-size:16px;font-weight:750;letter-spacing:-.01em}.modal .sub{font-size:12px;color:var(--faint);margin:4px 0 16px}.field{margin-bottom:13px}.field label{display:block;font-size:10.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.field input,.field select{width:100%;font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--canvas);border:1px solid var(--line-2);border-radius:6px;padding:8px 10px}.field input:focus,.field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
