:root{--ink:#111111;--ink-2:#1c1c1c;--ink-3:#262626;--line:#d9ded8;--line-2:#e6eae4;--line-3:#eef1ec;--paper:#f7f7f5;--paper-2:#fafaf8;--muted:#4a5459;--lime:#a8d832;--teal:#3f6b0a;--ok-bg:#ddf1e3;--ok:#14582d;--warn-bg:#fbe9cf;--warn:#7a3e06;--bad-bg:#f6dcdc;--bad:#8a2323}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:15px}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}a{color:var(--teal)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.disp{font-family:DM Sans,sans-serif;letter-spacing:-.03em}.eyebrow,.mono{font-family:IBM Plex Mono,monospace}.eyebrow{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal)}.shell{display:flex;flex-wrap:nowrap;height:100vh;overflow:hidden;align-items:stretch}.side-wrap{--sb-w:252px;position:-webkit-sticky;position:sticky;top:0;height:100vh;align-self:flex-start;flex:0 0 var(--sb-w);width:var(--sb-w);transition:width .22s cubic-bezier(.4,0,.2,1),flex-basis .22s cubic-bezier(.4,0,.2,1);z-index:30}.side-wrap.collapsed{--sb-w:64px}.side{--sb-bg:#f3f4f1;--sb-border:#e1e4dd;--sb-text:#2f3a36;--sb-ic:#98a09b;--sb-hover-bg:#e9ebe6;--sb-active-bg:#e4e7e1;--sb-accent:#4d7c0f;height:100%;background:var(--sb-bg);border-right:1px solid var(--sb-border);overflow:hidden;display:flex;flex-direction:column}.sb-brandrow{justify-content:space-between;padding:18px 12px 10px 20px;flex-shrink:0}.sb-brand,.sb-brandrow{display:flex;align-items:center}.sb-brand{gap:12px;color:#111;text-decoration:none;white-space:nowrap;overflow:hidden}.sb-brand span{font-size:12px;font-weight:400;letter-spacing:.34em;text-transform:uppercase}.sb-collapse{width:26px;height:26px;border-radius:8px;border:0;background:transparent;color:var(--sb-ic);display:flex;align-items:center;justify-content:center;padding:0;flex:none}.sb-collapse:hover{background:var(--sb-hover-bg);color:#111}.sb-nav{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:6px 10px 16px}.sb-rule{height:1px;background:var(--sb-border);margin:10px 4px}.sb-item{display:flex;align-items:center;gap:12px;width:100%;padding:7px 12px;margin:0;border-radius:9px;font-size:14.5px;font-weight:500;color:var(--sb-text);border:0;background:transparent;text-decoration:none;text-align:left;white-space:nowrap;overflow:hidden;transition:background .15s,color .15s}.sb-item:hover{background:var(--sb-hover-bg)}.sb-item.on{background:var(--sb-active-bg);color:#111;font-weight:600}.sb-item.accent,.sb-item.accent .sb-ic{color:var(--sb-accent)}.sb-item.soon{cursor:default}.sb-item.soon:hover{background:transparent}.sb-item.soon .sb-t{color:#6b7570}.sb-ic{display:inline-flex;flex:none;color:var(--sb-ic)}.sb-item.on .sb-ic{color:#111}.sb-t{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sb-badge{flex:none;min-width:26px;height:22px;padding:0 9px;border-radius:999px;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.sb-badge,.sb-badge.ban{background:#e3efc9;color:#2c4a07}.sb-badge.ban{padding:0 8px}.sb-live{display:block;padding:4px 12px 8px 42px;text-decoration:none;color:var(--sb-text)}.sb-live:hover{background:var(--sb-hover-bg);border-radius:9px}.sb-live-n{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:600}.sb-live-n i{font-style:normal;color:var(--sb-accent);font-family:IBM Plex Mono,monospace;font-weight:400}.sb-live-bar{height:3px;border-radius:2px;background:#d9ddd5;margin-top:5px;overflow:hidden}.sb-live-bar span{display:block;height:100%;background:var(--lime);transition:width .4s}.sb-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);flex:none;animation:pipe-pulse 1.1s ease-in-out infinite}.sb-drop{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin:12px 4px 4px;padding:12px 12px 14px;border:1.5px dashed #b7bdb4;border-radius:10px;color:#3a4541;font-size:14.5px;line-height:1.45;text-decoration:none;transition:background .15s,border-color .15s}.sb-drop svg{color:var(--sb-ic)}.sb-drop:hover{background:#ecefe8;border-color:#8a948d}.sb-user{position:relative;flex-shrink:0;border-top:1px solid var(--sb-border);padding:12px 16px 10px}.sb-userbtn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px;border:0;background:transparent;border-radius:9px;text-align:left;color:#111}.sb-userbtn:hover{background:var(--sb-hover-bg)}.sb-u-t{display:flex;flex-direction:column;gap:2px;min-width:0}.sb-u-t b{font-size:14.5px;font-weight:600}.sb-u-t small{font-size:13px;color:#6b7570}.sb-u-c{color:var(--sb-ic)}.sb-av,.sb-u-c{display:inline-flex}.sb-av{width:28px;height:28px;border-radius:50%;background:#111;color:var(--lime);font-size:12px;font-weight:700;align-items:center;justify-content:center;margin:0 auto}.sb-credit{display:inline-flex;margin:8px 4px 0;padding:4px 12px;border-radius:999px;background:#dff2e4;color:#1f5a33;font-size:13px;font-weight:600}.sb-credit b{margin-left:4px;font-family:IBM Plex Mono,monospace;font-weight:600}.sb-legal{display:flex;justify-content:center;gap:18px;padding-top:12px;font-size:13px}.sb-legal a{color:#6b7570;text-decoration:none}.sb-legal a:hover{color:#111;text-decoration:underline}.sb-menu{position:absolute;left:10px;right:10px;bottom:calc(100% - 6px);background:#fff;border:1px solid #dfe2dc;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:10px 0;z-index:60;min-width:230px}.sb-menu-h{padding:4px 18px 8px;font-size:11.5px;letter-spacing:.04em;color:#98a09b;font-weight:600}.sb-menu a,.sb-menu span[role=menuitem]{display:flex;align-items:center;gap:10px;padding:9px 18px;font-size:14.5px;color:#1f2a26;text-decoration:none}.sb-menu a:hover{background:#f1f3ef}.sb-menu .soon{color:#8a948d;cursor:default}.sb-menu .soon i{font-style:normal;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;background:#eef0ea;border-radius:999px;padding:2px 7px;margin-left:auto}.sb-menu .status{gap:12px}.sb-menu-rule{height:1px;background:#eceee9;margin:6px 0}.sb-menu a.out{background:#f3f4f1;margin-top:2px}.sb-eng{width:9px;height:9px;border-radius:50%;background:#9aa39c;flex:none;display:inline-block}.sb-eng.up{background:#3fbf5a}.sb-eng.down{background:#d65c5c}.side-wrap.collapsed .sb-brandrow{flex-direction:column;gap:8px;padding:16px 0 6px}.side-wrap.collapsed .sb-item{justify-content:center;padding:9px 0}.side-wrap.collapsed .sb-user{padding:10px 8px}.side-wrap.collapsed .sb-menu{left:8px;right:auto;min-width:230px}@media (max-width:900px){.shell{flex-wrap:wrap}.main,.shell{height:auto;overflow:visible}.main{flex-basis:100%;padding:20px 16px 40px}.side-wrap{position:static;height:auto;flex-basis:100%;width:100%}.side{height:auto;max-height:420px}.side-wrap.collapsed{--sb-w:100%}}.main{flex:1 1;min-width:0;height:100vh;overflow-y:auto;overflow-x:hidden;padding:28px 32px 48px;display:flex;flex-direction:column;gap:16px}.main>*{flex-shrink:0}.btn{height:38px;padding:0 18px;border-radius:100px;border:1px solid var(--ink);background:var(--lime);color:var(--ink);font-weight:600;font-size:14px;white-space:nowrap}.btn.ghost{background:#fff;font-weight:500}a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}.btn.sm{height:30px;padding:0 12px;font-size:13px}.btn.dark{background:var(--ink);color:var(--lime)}.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#e7ebe5;color:var(--ink);white-space:nowrap}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.lime{background:var(--lime)}.pill.dark{background:var(--ink);color:var(--lime)}.card{background:#fff;border:1px solid var(--line);border-radius:12px}.row{align-items:center;gap:10px}.row,.spread{display:flex;flex-wrap:wrap}.spread{align-items:flex-end;justify-content:space-between;gap:20px}h1.title{margin:6px 0 0;font-size:34px;line-height:1.08;letter-spacing:-.045em;font-weight:700;font-family:DM Sans,sans-serif}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tabx{height:40px;padding:0 16px;background:transparent;font-size:14px;font-weight:500;color:var(--muted);border:none;border-bottom:3px solid transparent}.tabx.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.field-input{width:100%;height:36px;padding:0 10px;border:1px solid #c3cac0;border-radius:8px;background:#fff}textarea.field-input{height:auto;padding:8px 10px;line-height:1.5;resize:vertical}.lbl{font-size:12px;color:var(--muted);margin-bottom:4px;display:block}.notice{padding:12px 16px;border-radius:10px;font-size:14px;line-height:1.5}.notice.bad{background:var(--bad-bg);color:var(--bad)}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.ok{background:var(--ok-bg);color:var(--ok)}.notice.info{background:#fff;border:1px solid var(--line);color:var(--muted)}.canvas-wrap{overflow-x:auto}.canvas{position:relative;width:1040px;height:640px;background-color:var(--paper-2);background-image:radial-gradient(#c9d0c6 1px,transparent 0);background-size:20px 20px;border-radius:12px}.node{position:absolute;width:168px;height:92px;background:#fff;border:1.5px solid var(--ink);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;font-family:inherit}.node.sel{outline:3px solid var(--lime);outline-offset:2px;box-shadow:0 0 0 5px var(--ink)}.node.off{border-style:dashed;border-color:#8a958f;background:var(--paper-2)}.node .t{font-size:14px;font-weight:600;line-height:1.25}.node .s{font-size:12px;color:var(--muted);line-height:1.3}.wire{background:var(--ink)}.wire,.wlbl{position:absolute}.wlbl{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted);background:var(--paper-2);padding:1px 3px}table.grid{border-collapse:collapse;width:100%}table.grid th{text-align:left;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-weight:600;padding:9px 12px;background:var(--paper-2);border-bottom:1px solid var(--line);border-right:1px solid var(--line-2);white-space:nowrap}table.grid th small{display:block;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:0;text-transform:none;font-weight:400;color:#6a767b;margin-top:2px}table.grid td{padding:0 12px;height:42px;font-size:14px;border-bottom:1px solid var(--line-3);border-right:1px solid #f1f3ef;white-space:nowrap;background:#fff}table.grid td.warn{background:#fef3e0}table.grid td.bad{background:#fbe9e9}table.grid tr.sel td{box-shadow:inset 0 2px 0 var(--ink),inset 0 -2px 0 var(--ink)}table.grid tr.sel td:not(.warn):not(.bad){background:#f1f9d3}table.grid tr.click{cursor:pointer}.code{font-family:IBM Plex Mono,monospace;font-size:12.5px;line-height:1.7;background:var(--ink);color:#e7ebe5;padding:14px 16px;border-radius:10px;overflow-x:auto;white-space:pre}.frow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-3)}mark.hit{background:#fbd79a;padding:2px 4px;border-radius:3px;font-weight:700}mark.hit.ok{background:#cfebd8}.src{font-family:Georgia,serif;font-size:15px;line-height:1.7;color:#1d2327}.drop{border:1.5px dashed var(--ink);border-radius:12px;padding:18px;background:#fafbf8;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.drop.over{background:#f1f9d3}.sw{width:40px;height:24px;border-radius:12px;border:1.5px solid var(--ink);background:#e7ebe5;padding:0;position:relative;flex-shrink:0}.sw.on{background:var(--ink)}.sw i{position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#fff;border:1.5px solid var(--ink)}.sw.on i{left:19px;background:var(--lime);border-color:var(--lime)}details.frec{border-bottom:1px solid var(--line-3)}details.frec summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer}details.frec summary::-webkit-details-marker{display:none}details.frec[open]{background:var(--paper-2)}.chev{transition:transform .15s;color:var(--muted)}details[open]>summary .chev{transform:rotate(90deg)}.grp{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal);padding:12px 20px 6px;background:var(--paper-2);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}.pipe{padding:20px 22px;display:grid;grid-gap:12px;gap:12px}.pl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.pl-big{font-size:15px}.pl-big b{font-size:24px;letter-spacing:-.03em}.pl-eta{font-size:13px;color:var(--muted)}.pbar{display:flex;border-radius:6px;background:#e3e7e1;overflow:hidden;width:100%}.pbar span{display:block;height:100%;transition:width .4s}.pbar .s-ok{background:#5b8f12}.pbar .s-review{background:#e0a11b}.pbar .s-failed{background:#c8442f}.pbar .s-live{background:var(--lime);animation:pipe-pulse 1.1s ease-in-out infinite}.pl-counts{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:var(--muted)}.pl-counts b{color:var(--ink)}.pl-counts .c-ok{color:var(--ok)}.pl-counts .c-warn{color:#8a5a00}.pl-counts .c-bad{color:#a12b1d}.pipe-canvas{position:relative;margin-top:6px;padding:54px 14px 18px;border:1px solid var(--line-2);border-radius:14px;background-color:#f3f3ef;background-image:radial-gradient(#d3d7cf 1.2px,transparent 0);background-size:22px 22px}.pc-loop{position:absolute;top:20px;height:22px;left:calc(14px + (100% - 28px) / 6 * 1.5);width:calc((100% - 28px) / 6 * 2);border:1.5px solid #8a9a52;border-bottom:0;border-radius:14px 14px 0 0}.pc-loop i{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:#f3f3ef;padding:0 6px;font-style:normal;font-family:IBM Plex Mono,monospace;font-size:11px;color:#5d6f2a;white-space:nowrap}.pc-loop:after,.pc-loop:before{content:"";position:absolute;bottom:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #8a9a52}.pc-loop:before{left:-6.5px}.pc-loop:after{display:none}.pipe-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}.pipe-cell{position:relative;display:block;min-width:0}.pn-wrap{flex:1 1;min-width:0;text-align:center;display:grid;grid-gap:3px;gap:3px;justify-items:center;align-content:start;padding:0 4px}.pn-wrap.wait{opacity:.62}.pn-tile{position:relative;width:66px;height:66px;border-radius:17px;background:#fff;border:1.5px solid #cfd8c1;color:var(--ink);display:flex;align-items:center;justify-content:center;margin-bottom:8px;transition:border-color .25s,box-shadow .25s}.pn-tile.done{border-color:#a9c96a}.pn-tile.active{border:2px solid var(--lime);box-shadow:0 0 0 6px rgba(168,216,50,.28)}.pn-tile.bad{border-color:#e4b4b4;background:#fdf3f3}.pn-tile.wait{border-style:dashed;border-color:#b9bfb5}.pn-badge{position:absolute;right:-9px;bottom:-8px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;font-size:11px;line-height:22px;font-weight:700;color:#fff}.pn-badge.ok{background:#5b8f12}.pn-badge.live{background:var(--ink);color:var(--lime)}.pn-badge.bad{background:#b83a3a}.pipe-title{font-weight:700;font-size:13.5px;letter-spacing:-.01em}.pipe-sub{font-size:12.5px;color:var(--ink)}.pipe-detail{font-size:11.5px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}.pipe-link{position:absolute;top:32px;left:calc(50% + 33px);width:calc(100% - 66px);height:0;border-top:2px solid var(--line);pointer-events:none}.pipe-link i{position:absolute;top:-22px;background:#f3f3ef;padding:0 4px;left:50%;transform:translateX(-50%);font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:#5d6f2a;white-space:nowrap}.pipe-link.done{border-top-color:#5b8f12}.pipe-link.flow{border-top:2px dashed var(--lime)}.pl-list{border:1px solid var(--line-2);border-radius:12px;overflow:hidden;font-size:13px;background:#fff}.pl-lane{border-bottom:1px solid var(--line-2)}.pl-lane:last-child{border-bottom:0}.pl-lane.live{background:#fcfef6}.pl-lane.in{border-bottom:1px solid var(--line-3)}.pl-lane-h{width:100%;display:grid;grid-template-columns:16px auto 1fr 160px;align-items:center;grid-gap:10px;gap:10px;padding:11px 16px;background:none;border:0;text-align:left;font-size:13px;color:var(--ink)}.pl-lane.in .pl-lane-h{padding-left:34px}.pl-lane-h:hover{background:var(--paper-2)}.pl-caret{color:#8a928c;font-weight:700}.pl-lane-s{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-lane.live .pl-lane-s{color:var(--teal);font-weight:600}.pl-docs{padding:0 0 6px}.pl-doc{display:flex;align-items:center;gap:12px;padding:6px 16px 6px 44px;border-top:1px solid var(--line-3)}.pl-doc-n{flex:1 1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-doc-l{width:76px;font-size:11px;color:var(--muted)}.pl-doc-r{width:40px;text-align:right;color:var(--muted)}.pill.live{background:var(--ink);color:var(--lime)}.pipe-log{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--line-2);display:grid;grid-gap:3px;gap:3px;font-size:12.5px;color:var(--muted)}.pipe-log li.now{color:var(--ink);font-weight:600}.pipe-log .mono{color:#7b858a;margin-right:6px}@keyframes pipe-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width:1100px){.pipe-flow{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:22px}.pc-loop,.pipe-cell:nth-child(3n) .pipe-link{display:none}.pipe-canvas{padding-top:22px}}@media (max-width:640px){.pipe-flow{grid-template-columns:1fr}.pipe-link{display:none}.pl-lane-h{grid-template-columns:16px auto 1fr}.pl-lane-bar{display:none}}@media (prefers-reduced-motion:reduce){.bm-pulse,.live-k i,.pbar .s-live,.rail-dot{animation:none}}.doc-bar{padding:14px 16px;border-bottom:1px solid var(--line-2)}.doc-bar,.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pager{padding:10px 16px;border-top:1px solid var(--line-2);font-size:13px;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start;min-height:0}.split.with-rec{grid-template-columns:minmax(0,1fr) minmax(300px,400px)}.tcard{min-width:0;overflow:hidden}.tscroll{overflow:auto;max-height:calc(100vh - 340px);min-height:280px}.tscroll table.grid{min-width:1100px}.tscroll table.grid thead th{z-index:2}.rec,.tscroll table.grid thead th{position:-webkit-sticky;position:sticky;top:0}.rec{min-width:0;padding:20px;display:grid;grid-gap:4px;gap:4px;max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;align-content:start}.rec-title{font-size:20px;font-weight:700;letter-spacing:-.3px;overflow-wrap:anywhere;line-height:1.2}.frow>*,.rec-title{min-width:0}.frow .pill{flex:none}@media (max-width:900px){.split.with-rec{grid-template-columns:minmax(0,1fr)}.rec{position:static;max-height:none}}.dash-btn{text-decoration:none;display:inline-flex;align-items:center;gap:7px}.dash-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:14px;gap:14px}.dash-tile{background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:16px 18px;min-width:0;position:relative;overflow:hidden}.dash-k{display:flex;justify-content:space-between;align-items:center;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.14em;color:#5a6468;gap:8px}.dash-k span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-v{font-size:32px;font-weight:700;letter-spacing:-.04em;line-height:1.15;margin-top:6px;white-space:nowrap}.dash-v.warn{color:#8a5a00}.dash-s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:IBM Plex Mono,monospace;font-size:11.5px;color:#5a6468;min-height:16px}.dash-s.ok{color:var(--teal)}.dash-cols{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}.dash-cols,.dash-side{display:grid;grid-gap:20px;gap:20px}.dash-card,.dash-side{min-width:0}.dash-card{border-radius:14px;border-color:var(--line-2);overflow:hidden}.dash-card h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.02em}.dash-pad{padding:18px 20px}.dash-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}.dash-link{font-size:12px;color:var(--teal);font-weight:500;text-decoration:none}.dash-link:hover{text-decoration:underline}.dash-row,.dash-th{display:flex;align-items:center;gap:14px;padding:0 20px}.dash-th{padding-top:9px;padding-bottom:9px;border-top:1px solid var(--line-2);background:var(--paper-2);font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;color:#5a6468}.dash-row{padding-top:13px;padding-bottom:13px;border-top:1px solid #f0f2ed;color:inherit;text-decoration:none}.dash-row:hover{background:#fafbf8}.dash-th span{font-size:10.5px;color:#5a6468}.dash-row .w-ico,.dash-th .w-ico{width:34px;flex:none}.dash-row .w-ico{height:34px;border-radius:9px;background:#f3f3ef;display:flex;align-items:center;justify-content:center}.w-main{flex:1 1;min-width:0}.dash-row .w-main b{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-row small{display:block;font-size:11px;color:#5a6468}.w-src{width:140px;font-size:13px;color:#3c4640;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}.w-st{width:150px;flex:none}.w-date{width:90px;text-align:right;font-size:13px;color:#5a6468;flex:none;white-space:nowrap}.dash-empty{padding:22px 20px;border-top:1px solid #f0f2ed;font-size:14px;color:var(--muted)}.dash-drop{border:1.5px dashed #cfd4cc;border-radius:12px;background:var(--paper-2);min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;padding:14px;margin-top:12px}.dash-drop.over,.dash-drop:focus-visible,.dash-drop:hover{background:#f1f9d3;border-color:var(--ink);outline:none}.dash-drop-t{font-size:14px;font-weight:600}.dash-drop-s{font-size:11.5px;color:#5a6468;overflow-wrap:anywhere}.dash-act{display:flex;gap:12px;padding:12px 20px;border-top:1px solid #f0f2ed;color:inherit;text-decoration:none}.dash-act:hover{background:#fafbf8}.dash-act b{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}.dash-act small{display:block;font-size:11px;color:#7b858a}.dash-act .dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:#5b8f12}.dash-act .dot.warn{background:#e0a11b}.dash-act .dot.bad{background:#c0392b}.dash-act .dot.live{background:var(--lime);box-shadow:0 0 0 3px rgba(168,216,50,.35);animation:pipe-pulse 1.4s infinite}.dash-note{margin:6px 0 12px;font-size:13px;color:var(--muted);line-height:1.5}.dash-dl{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid #f0f2ed;font-size:13.5px;font-weight:500}.dash-dl>span{flex:1 1;min-width:0}.dash-dl a.btn{text-decoration:none;display:inline-flex;align-items:center}@media (max-width:1250px){.dash-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1100px){.dash-cols{grid-template-columns:minmax(0,1fr)}}@media (max-width:700px){.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.w-src{display:none}}@media (prefers-reduced-motion:reduce){.dash-act .dot.live{animation:none}}.runlog-detail{padding:14px 20px 16px;white-space:normal;position:-webkit-sticky;position:sticky;left:0;width:min(1100px,calc(100vw - 330px));box-sizing:border-box}.runlog-events{list-style:none;margin:12px 0 4px;padding:0;display:grid;grid-gap:4px;gap:4px;font-size:13px;color:var(--ink);max-height:260px;overflow-y:auto}.runlog-events li{display:flex;gap:12px;overflow-wrap:anywhere}.runlog-events .mono{flex:none;color:#7b858a;font-size:12px}.bm{display:grid;grid-gap:0;gap:0;border-top:1px solid var(--line-2);padding-top:16px;margin-top:4px}.bm-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.bm-title{font-size:16px;font-weight:700;letter-spacing:-.02em}.bm-title span{font-size:13px;font-weight:500;color:var(--muted);margin-left:8px;letter-spacing:0}.bm-bar{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;background:#e9ece6}.bm-bar i{display:block;min-width:4px;flex-basis:0}.bm-bar i.ok,.bm-legend i.ok{background:#cfe3a0}.bm-bar i.review,.bm-ex i.review,.bm-legend i.review{background:#e8a92a}.bm-bar i.failed,.bm-ex i.failed,.bm-legend i.failed{background:#c8442f}.bm-bar i.live,.bm-legend i.live{background:var(--lime);animation:pipe-pulse 1.1s ease-in-out infinite}.bm-bar i.wait,.bm-legend i.wait{background:#e9ece6}.bm-bar i.ok,.bm-bar i.wait{min-width:0}.bm-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:10px;font-size:11.5px;color:var(--muted)}.bm-legend span{display:inline-flex;align-items:center;gap:7px}.bm-legend b{color:var(--ink);font-weight:500}.bm-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.bm-now{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:13.5px;color:#3c4640;flex-wrap:wrap}.bm-now b{color:var(--ink);font-weight:600}.bm-now .mono{font-size:11.5px;color:var(--muted);margin-left:6px}.bm-pulse{width:9px;height:9px;border-radius:50%;background:var(--lime);animation:pipe-pulse 1.1s ease-in-out infinite}.bm-attn{margin-top:16px}.bm-cap{font-size:10.5px;letter-spacing:.14em;color:var(--muted);padding-bottom:6px}.bm-ex{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-3);font-size:13.5px}.bm-ex i{width:9px;height:9px;border-radius:50%;flex:none}.bm-ex b{width:96px;flex:none;font-weight:600}.bm-ex span{flex:1 1;min-width:0;color:#3c4640;overflow-wrap:anywhere}.bm-ok{margin-top:16px;padding-top:12px;border-top:1px solid var(--line-3);font-size:13.5px;color:#3c4640}.bm-ok:before{content:"✓";color:#5b8f12;font-weight:700;margin-right:10px}.bm-foot{display:flex;gap:18px;padding-top:10px;border-top:1px solid var(--line-3);margin-top:6px}.bm-link{background:none;border:0;padding:0;font-size:12px;color:var(--teal);font-weight:500;cursor:pointer}.bm-link:hover{text-decoration:underline}.bm-browse{margin-top:14px;display:grid;grid-gap:12px;gap:12px}.bm-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.bm-chip{font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;background:#fff;border:1.5px solid #cfd4cc;color:var(--ink);cursor:pointer}.bm-chip.on{background:var(--ink);border-color:var(--ink);color:var(--lime)}.pn-empty{padding:14px 16px;font-size:13px;color:var(--muted)}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.home-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:10px}.home-card.empty{grid-column:1/-1}.home-t{font-size:17px;font-weight:600;letter-spacing:-.02em}.home-m{display:flex;gap:14px;font-size:12.5px;color:var(--muted);font-family:IBM Plex Mono,monospace}.home-a{display:flex;gap:8px;margin-top:6px}.crumb{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted)}.crumb a{color:inherit;text-decoration:none}.crumb a:hover{text-decoration:underline}.crumb b{color:#111;font-weight:500}.muted{color:var(--muted)}.sb-menu button[role=menuitem]{display:flex;align-items:center;gap:10px;width:100%;padding:9px 18px;font:inherit;font-size:14.5px;color:#1f2a26;background:none;border:0;text-align:left;cursor:pointer}.sb-menu button[role=menuitem]:hover{background:#f1f3ef}.sb-menu .sb-ws span{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-menu .sb-ws i{font-style:normal;font-size:11.5px;color:#8a948d}.sb-menu .sb-ws.on{font-weight:600}.sb-menu .sb-ws.on:after{content:"✓";color:#1d8a68}.sb-menu .sb-out{background:#f3f4f1;margin-top:2px}.acct{display:grid;grid-gap:20px;gap:20px;max-width:920px}.acct .card{padding:22px 24px;display:grid;grid-gap:14px;gap:14px}.acct h2{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em}.acct .sub{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.acct label.f{display:grid;grid-gap:6px;gap:6px;font-size:13px;font-weight:500;color:#444;max-width:420px}.acct .row-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.acct .msg-ok{color:var(--ok);font-size:13.5px}.acct .msg-bad{color:var(--bad);font-size:13.5px}.acct .tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.acct table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}.acct td,.acct th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.acct tr:last-child td{border-bottom:0}.acct th{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.acct td small{display:block;color:var(--muted);font-size:12.5px}.acct select.field-input{width:auto}.acct .toggle{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}.acct .toggle input{margin-top:3px;width:16px;height:16px}.acct .mono{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-size:12.5px}.acct .au-qr{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.rv{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);grid-gap:18px;gap:18px;align-items:start}@media (max-width:1100px){.rv{grid-template-columns:1fr}}.rv-page{padding:12px;position:-webkit-sticky;position:sticky;top:12px}.rv-pages{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;font-size:13px}.rv-pg{min-width:30px;height:28px;border-radius:8px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;cursor:pointer}.rv-pg.on{background:var(--ink);color:#fff;border-color:var(--ink)}.rv-canvas{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.rv-canvas img{display:block;width:100%;height:auto}.rv-box{position:absolute;border:1.5px solid rgba(29,138,104,.7);background:rgba(29,138,104,.08);border-radius:3px;cursor:pointer;margin:-2px;box-sizing:content-box;padding:2px}.rv-box.warn{border-color:#d98a12;background:rgba(217,138,18,.14)}.rv-box.on{border:2.5px solid #ef5349;background:rgba(239,83,73,.16);box-shadow:0 0 0 4px rgba(239,83,73,.15);z-index:2}.rv-legend{font-size:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 2px 0}.rv-legend i{width:12px;height:9px;border-radius:2px;display:inline-block;border:1.5px solid rgba(29,138,104,.7)}.rv-legend i.warn{border-color:#d98a12;background:rgba(217,138,18,.14)}.rv-legend i.on{border-color:#ef5349;background:rgba(239,83,73,.16)}.rv-side{display:grid;grid-gap:10px;gap:10px}.rv-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:grid;grid-gap:8px;gap:8px;cursor:pointer}.rv-item.on{border-color:#ef5349;box-shadow:0 0 0 3px rgba(239,83,73,.12)}.rv-snip{margin:14px 0 0;padding:10px 12px;background:#fafaf8;border-left:3px solid var(--line);font-size:14px;line-height:1.6}.rv-snip mark{background:rgba(239,83,73,.2)}