:root{--ground: #F4F4F4;--surface: #F8F8F8;--surface-2: #EFEFEF;--surface-3: #E3E3E3;--ink: #262626;--ink-2: #525252;--ink-3: #707070;--ink-4: #9A9A9A;--rule: #E5E5E5;--rule-strong: #D4D4D4;--rule-hard: #C7C7C7;--rule-soft: rgba(212,212,212,.7);--frame-bg: #EFEFEF;--frame-line: #D4D4D4;--accent: #9D0000;--accent-fill: #C00000;--accent-2: #B00000;--accent-deep: #7A0000;--accent-soft: rgba(157,0,0,.08);--on-accent: #FFFFFF;--accent-rgb: 157,0,0;--pass: #2E7D4F;--pass-base: #2E7D4F;--pass-soft: rgba(46,125,79,.1);--fail: #9D0000;--fail-base: #C00000;--fail-soft: rgba(157,0,0,.08);--info: #2F4B8F;--info-base: #2F4B8F;--info-soft: rgba(47,75,143,.1);--tool: #5B3FA0;--tool-base: #5B3FA0;--tool-soft: rgba(91,63,160,.1);--away: #262626;--away-base: #525252;--away-soft: rgba(38,38,38,.07);--warn: #B4500F;--warn-base: #B4500F;--warn-soft: rgba(180,80,15,.1);--hover: rgba(38,38,38,.04);--grid-dot: rgba(38,38,38,.16);--shadow: none;--shadow-card: none;--shadow-pop: 0 10px 28px -14px rgba(0,0,0,.28);--aurora-1: transparent;--aurora-2: transparent;--edge-hi: var(--rule);--edge-lo: var(--rule);--chain: var(--ink-2);--fs: 14px;--fs-sm: 13px;--fs-xs: 12px;--fs-key: 11px;--fs-h1: 34px;--fs-h2: 24px;--fs-h3: 18px;--r: 0px;--r-lg: 0px;--r-xl: 0px;--r-2xl: 0px;--r-3xl: 0px;--ctl-h: 34px;--btn-h: 32px;--ui: "Newsreader", "Songti SC", "STSong", "Noto Serif SC", Georgia, "Times New Roman", serif;--display: "Newsreader", "Songti SC", "STSong", "Noto Serif SC", Georgia, serif;--mono: "IBM Plex Mono", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--black: "UnifrakturMaguntia", "Old London", "Songti SC", serif;color-scheme:light}[data-chain=Anvil],[data-chain=Local]{--chain: #525252}[data-chain=Base]{--chain: #2F4B8F}[data-chain=Ethereum]{--chain: #5B3FA0}[data-chain=HyperEVM]{--chain: #0F766E}[data-chain=Robinhood]{--chain: #2E7D4F}[data-chain=Solana]{--chain: #6B3FA0}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #1C1C1C;--surface: #242424;--surface-2: #2B2B2B;--surface-3: #404040;--ink: #FAFAFA;--ink-2: #C7C7C7;--ink-3: #A1A1A1;--ink-4: #616161;--rule: #3A3A3A;--rule-strong: #4A4A4A;--rule-hard: #616161;--rule-soft: rgba(97,97,97,.6);--frame-bg: #2B2B2B;--frame-line: #4A4A4A;--accent: #F75E5E;--accent-fill: #DF1717;--accent-2: #E63333;--accent-deep: #B30F0F;--accent-soft: rgba(247,94,94,.12);--on-accent: #FFFFFF;--accent-rgb: 247,94,94;--pass: #4CC38A;--pass-base: #2E9E63;--pass-soft: rgba(76,195,138,.12);--fail: #F75E5E;--fail-base: #DF1717;--fail-soft: rgba(247,94,94,.12);--info: #8FA8E8;--info-base: #4D6FCC;--info-soft: rgba(143,168,232,.12);--tool: #B39DF0;--tool-base: #7D5FD0;--tool-soft: rgba(179,157,240,.12);--away: #E5E5E5;--away-base: #C7C7C7;--away-soft: rgba(229,229,229,.1);--warn: #F0954A;--warn-base: #D97706;--warn-soft: rgba(240,149,74,.12);--hover: rgba(255,255,255,.05);--grid-dot: rgba(255,255,255,.13);--shadow-pop: 0 10px 28px -14px rgba(0,0,0,.7);--chain: var(--ink-2);color-scheme:dark}:root:not([data-theme=light]) [data-chain=Base]{--chain: #8FA8E8}:root:not([data-theme=light]) [data-chain=Ethereum]{--chain: #B39DF0}:root:not([data-theme=light]) [data-chain=HyperEVM]{--chain: #5EEAD4}:root:not([data-theme=light]) [data-chain=Robinhood]{--chain: #4CC38A}:root:not([data-theme=light]) [data-chain=Solana]{--chain: #C4A6FF}:root:not([data-theme=light]) [data-chain=Anvil],:root:not([data-theme=light]) [data-chain=Local]{--chain: #C7C7C7}}:root[data-theme=dark]{--ground: #1C1C1C;--surface: #242424;--surface-2: #2B2B2B;--surface-3: #404040;--ink: #FAFAFA;--ink-2: #C7C7C7;--ink-3: #A1A1A1;--ink-4: #616161;--rule: #3A3A3A;--rule-strong: #4A4A4A;--rule-hard: #616161;--rule-soft: rgba(97,97,97,.6);--frame-bg: #2B2B2B;--frame-line: #4A4A4A;--accent: #F75E5E;--accent-fill: #DF1717;--accent-2: #E63333;--accent-deep: #B30F0F;--accent-soft: rgba(247,94,94,.12);--on-accent: #FFFFFF;--accent-rgb: 247,94,94;--pass: #4CC38A;--pass-base: #2E9E63;--pass-soft: rgba(76,195,138,.12);--fail: #F75E5E;--fail-base: #DF1717;--fail-soft: rgba(247,94,94,.12);--info: #8FA8E8;--info-base: #4D6FCC;--info-soft: rgba(143,168,232,.12);--tool: #B39DF0;--tool-base: #7D5FD0;--tool-soft: rgba(179,157,240,.12);--away: #E5E5E5;--away-base: #C7C7C7;--away-soft: rgba(229,229,229,.1);--warn: #F0954A;--warn-base: #D97706;--warn-soft: rgba(240,149,74,.12);--hover: rgba(255,255,255,.05);--grid-dot: rgba(255,255,255,.13);--shadow-pop: 0 10px 28px -14px rgba(0,0,0,.7);--chain: var(--ink-2);color-scheme:dark}:root[data-theme=dark] [data-chain=Base]{--chain: #8FA8E8}:root[data-theme=dark] [data-chain=Ethereum]{--chain: #B39DF0}:root[data-theme=dark] [data-chain=HyperEVM]{--chain: #5EEAD4}:root[data-theme=dark] [data-chain=Robinhood]{--chain: #4CC38A}:root[data-theme=dark] [data-chain=Solana]{--chain: #C4A6FF}:root[data-theme=dark] [data-chain=Anvil],:root[data-theme=dark] [data-chain=Local]{--chain: #C7C7C7}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--ui);font-size:var(--fs);line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden;font-optical-sizing:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent-fill);outline-offset:3px}::placeholder{color:var(--ink-4);opacity:1}.mono{font-family:var(--mono);font-variant-ligatures:none}.num{font-variant-numeric:tabular-nums}.label,.k-label{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.cap{font-family:var(--black);font-weight:400;color:var(--accent);font-size:1.12em;line-height:0}.mark{display:inline-grid;place-items:center;flex-shrink:0}.mark svg{display:block}.mark.glow{filter:none}.orn{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink-4)}.orn:before,.orn:after{content:"";width:5px;height:5px;border:1px solid var(--ink-4);transform:rotate(45deg)}.orn i{width:72px;height:1px;background:var(--rule-strong)}.orn.left{justify-content:flex-start}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@keyframes pulse{50%{opacity:.25}}@keyframes ring{to{box-shadow:0 0 0 7px #2e7d4f00}}@keyframes rise{0%{opacity:0}to{opacity:1}}@keyframes jiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:var(--rule-hard) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:3px;min-height:24px}*:hover::-webkit-scrollbar-thumb{background:var(--rule-hard)}::-webkit-scrollbar-thumb:hover{background:var(--ink-4)!important}::-webkit-scrollbar-corner{background:transparent}:root{--art: #CFCFCF}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--art: #454545}}:root[data-theme=dark]{--art: #454545}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--btn-h);padding:0 14px;border-radius:0;border:1px solid var(--rule-hard);background:var(--surface);color:var(--ink);font-family:var(--ui);font-size:var(--fs);font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:0 0 0 2px var(--surface-2),0 0 0 3px var(--rule-hard);margin:3px;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.btn:hover{background:var(--surface-2);border-color:var(--ink-4)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--surface);border-color:var(--rule-hard)}.btn.primary{background:var(--accent-fill);border-color:var(--accent-deep);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-deep)}.btn.primary:disabled:hover{background:var(--accent-fill)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2);box-shadow:none;margin:0}.btn.ghost:hover{background:var(--hover);border-color:transparent;color:var(--ink)}.btn.danger{color:var(--accent)}.btn.danger:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn.sm{height:26px;padding:0 10px;font-size:var(--fs-sm);box-shadow:0 0 0 1px var(--surface-2),0 0 0 2px var(--rule-hard);margin:2px}.btn.lg{height:40px;padding:0 22px;font-size:15px}.btn.block{width:100%}.btn-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.linkish{background:none;border:0;padding:0;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-hard);font-size:inherit;cursor:pointer}.linkish:hover{color:var(--accent);text-decoration-color:var(--accent)}.ibtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:0;border:0;background:transparent;color:var(--ink-2);padding:0;cursor:pointer;transition:background .12s,color .12s}.ibtn:hover{background:var(--surface-3);color:var(--ink)}.ibtn:hover svg{animation:jiggle .4s ease-in-out}.ibtn:disabled{opacity:.4;cursor:not-allowed}.ibtn svg{width:15px;height:15px}.badge,.state{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 7px;border-radius:0;border:1px solid var(--rule-hard);background:var(--surface);color:var(--ink-2);font-family:var(--mono);font-size:var(--fs-key);font-weight:500;letter-spacing:.06em;text-transform:uppercase;line-height:1;white-space:nowrap;vertical-align:middle}.badge.mono{font-weight:500}.badge i,.state i{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.lg{height:24px;padding:0 9px;font-size:var(--fs-xs)}.badge.strong,.badge.lifecycle{color:var(--ink);border-color:var(--ink-4);background:var(--surface-2)}.badge.accent,.badge.armed,.badge.family{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge.away,.badge.trigger,.badge.signal-hit,.badge.fanout-accept,.badge.warn,.badge.payable,.badge.due,.badge.hit{color:var(--away);border-color:var(--away-base);background:var(--away-soft)}.badge.pass,.badge.ok,.badge.done,.badge.running,.badge.view,.badge.pure,.badge.exact,.badge.result,.badge.receipt{color:var(--pass);border-color:var(--pass-base);background:var(--pass-soft)}.badge.fail,.badge.error,.badge.alert,.badge.blocked,.badge.reject,.badge.fuzzy,.badge.report-warn{color:var(--fail);border-color:var(--fail-base);background:var(--fail-soft)}.badge.info,.badge.decision,.badge.template,.badge.bind,.badge.instance,.badge.gate,.badge.branch,.badge.race{color:var(--info);border-color:var(--info-base);background:var(--info-soft)}.badge.tool,.badge.send,.badge.skeleton,.badge.quote,.badge.exec,.badge.exec-presign,.badge.broadcast{color:var(--tool);border-color:var(--tool-base);background:var(--tool-soft)}.badge.running i{animation:pulse 1s infinite}.state[data-s=armed]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.state[data-s=running]{border-color:var(--pass-base);color:var(--pass);background:var(--pass-soft)}.state[data-s=running] i{box-shadow:0 0 #2e7d4f99;animation:ring 1.6s ease-out infinite}.state[data-s=done]{border-color:var(--info-base);color:var(--info);background:var(--info-soft)}.badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip-s{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 7px;border-radius:0;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);font-family:var(--mono);font-size:var(--fs-key);font-weight:500;letter-spacing:.04em;line-height:1;white-space:nowrap;max-width:100%}.chip-s.mono{font-family:var(--mono)}.chip-s>.k{color:var(--ink-3);font-weight:600}.chip-s.ok{color:var(--pass);border-color:var(--pass-base);background:var(--pass-soft)}.chip-s.fail{color:var(--fail);border-color:var(--fail-base);background:var(--fail-soft)}.chip-s.in{color:var(--info);border-color:var(--info-base);background:var(--info-soft)}.chip-s.away{color:var(--away);border-color:var(--away-base);background:var(--away-soft)}.chip-s.copy{cursor:pointer}.chip-s.copy:hover{border-color:var(--ink);color:var(--ink)}.chip-s.chain,.badge.chain{color:var(--chain);border-color:color-mix(in srgb,var(--chain) 55%,transparent);background:color-mix(in srgb,var(--chain) 8%,transparent)}.chip-s.chain:before,.badge.chain:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--chain);flex-shrink:0}.chip-m{display:inline-flex;align-items:center;margin:0 2px;padding:1px 5px;border-radius:0;font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.3;background:var(--surface-2);border:1px solid var(--rule);color:var(--ink);white-space:nowrap;vertical-align:-1px}.chip-m.away{color:var(--away)}.chip-m.pass{color:var(--pass)}.chip-m.info{color:var(--info)}.chip-m.fail{color:var(--fail)}.chip-m.tool{color:var(--tool)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field-label{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);line-height:1.4}.field .help{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.ctl{width:100%;min-width:0;height:var(--ctl-h);padding:0 10px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:0;font-family:var(--ui);font-size:var(--fs);color:var(--ink);line-height:1.4;transition:border-color .12s,box-shadow .12s}.field select,select.ctl{padding-right:28px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23707070' stroke-width='1.5' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.field textarea,textarea.ctl{height:auto;min-height:88px;padding:8px 10px;resize:vertical;line-height:1.5}.field input.mono,.field select.mono,.field textarea.mono,.ctl.mono{font-family:var(--mono);font-size:var(--fs-sm)}.field input:focus,.field select:focus,.field textarea:focus,.ctl:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.field input:disabled,.field select:disabled,.field textarea:disabled,.ctl:disabled{opacity:.55;cursor:not-allowed}.field .inline{display:flex;gap:8px;align-items:center}.field .inline>*{flex:1 1 auto;min-width:0}.field .inline>.btn{flex:0 0 auto}.form-grid{display:grid;gap:16px 18px;align-items:end}.form-grid .btn{justify-self:start}.chk{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);line-height:1.4;cursor:pointer}.chk input{accent-color:var(--accent-fill);width:15px;height:15px;margin:0;flex-shrink:0}.chks{display:flex;flex-direction:column;gap:8px}.switch{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:34px;height:18px;border-radius:0;background:var(--surface-3);border:1px solid var(--rule-hard);position:relative;margin:0;transition:background .15s;flex-shrink:0;cursor:pointer}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--ink-2);transition:left .15s,background .15s}.switch input:checked{background:var(--accent-soft);border-color:var(--accent)}.switch input:checked:after{left:18px;background:var(--accent-fill)}.switch input:focus-visible{outline:2px solid var(--accent-fill);outline-offset:2px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th{text-align:left;font-family:var(--mono);font-weight:500;color:var(--ink-3);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;padding:10px 16px;background:transparent;border-bottom:1px solid var(--rule-strong);white-space:nowrap}.table td{padding:9px 16px;border-bottom:1px solid var(--rule);vertical-align:middle;line-height:1.5;height:40px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--hover)}.table .r,.table .num{text-align:right}.table .num{font-family:var(--mono);font-variant-numeric:tabular-nums}.table .addr,.table .sel{font-family:var(--mono);font-size:var(--fs-sm);white-space:nowrap}.table .dim{color:var(--ink-3)}.table .empty-row td{color:var(--ink-3);text-align:center;padding:24px 16px}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--ink)}.table th.sortable.on{color:var(--accent)}.table.dense th{padding:8px 12px}.table.dense td{padding:7px 12px;height:34px}.addr{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-sm);font-variant-ligatures:none;white-space:nowrap;max-width:100%}.addr>span{overflow:hidden;text-overflow:ellipsis}.addr .copy{flex-shrink:0}.copy{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:0;border:1px solid transparent;background:transparent;color:var(--ink-3);padding:0;cursor:pointer;font-size:var(--fs-xs);line-height:1}.copy:hover{color:var(--ink);border-color:var(--rule-hard);background:var(--surface-2)}.copy.did{color:var(--pass)}.copy svg{width:13px;height:13px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:0;min-width:0;box-shadow:0 0 0 5px var(--frame-bg),0 0 0 6px var(--frame-line);margin:6px}.card-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--rule);flex-wrap:wrap}.card-hd .title,.card-hd>span:first-child{font-family:var(--display);font-size:var(--fs-h3);font-weight:500;letter-spacing:-.01em}.card-hd .sub{font-size:var(--fs-sm);color:var(--ink-2);font-weight:400;text-align:right}.card-hd .tools{display:flex;align-items:center;gap:8px;margin-left:auto}.card-bd{padding:20px;display:flex;flex-direction:column;gap:16px}.card-bd.flush{padding:0;gap:0}.card.pad{padding:20px}.pcard{background:var(--surface);border:1px solid var(--rule-strong);border-radius:0;padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease-out;min-width:0}.pcard:hover{border-color:var(--ink-4)}.pcard .pc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pcard .pc-title{font-family:var(--display);font-size:var(--fs-h3);font-weight:500;color:var(--ink);letter-spacing:-.01em}.pcard .pc-key{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.06em;color:var(--ink-3);white-space:nowrap}.pcard .pc-desc{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.55;flex:1;min-width:0}.pcard .pc-val{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--rule);padding:3px 9px;white-space:nowrap;font-variant-numeric:tabular-nums}.h1,.page-title{font-family:var(--display);font-weight:400;font-size:var(--fs-h1);letter-spacing:-.03em;margin:0;line-height:1.15}.h2,.section-title{font-family:var(--display);font-weight:400;font-size:var(--fs-h2);letter-spacing:-.02em;margin:0;line-height:1.25}.page-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.page-head .sub{flex:1 1 320px}.page-head .btn{align-self:center}.section-hd{display:flex;flex-direction:column;gap:6px}.section-hd .sub{font-size:var(--fs)}.sub{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.55}.dim{color:var(--ink-3)}.msg{font-size:var(--fs-sm);color:var(--ink-2);white-space:pre-wrap;word-break:break-all;line-height:1.5}.msg.bad{color:var(--fail)}.msg.ok{color:var(--pass)}.alert{padding:12px 16px;border-radius:0;border:1px solid var(--rule-strong);background:var(--surface);font-size:var(--fs-sm);line-height:1.5}.alert.bad{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.alert.ok{border-color:var(--pass-base);background:var(--pass-soft);color:var(--pass)}.empty{padding:36px 20px;color:var(--ink-3);text-align:center;line-height:1.6;font-size:var(--fs)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media(max-width:960px){.row-2{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:var(--fs-sm);margin:0;line-height:1.5}.kv dt{color:var(--ink-3);white-space:nowrap;font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;padding-top:2px}.kv dd{margin:0;color:var(--ink);word-break:break-all;font-family:var(--mono);font-variant-ligatures:none}.kv dd.ui{font-family:var(--ui)}.kv dd.ok{color:var(--pass)}.kv dd.dim{color:var(--ink-3)}.stats{display:flex;gap:28px;flex-wrap:wrap}.stat-i{display:flex;flex-direction:column;gap:3px;min-width:0}.stat-i .k{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.stat-i .v{font-family:var(--display);font-size:28px;font-weight:400;letter-spacing:-.03em;line-height:1.2;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px}.stat-i .v .plus{color:var(--accent)}.ring-wrap{display:flex;align-items:center;gap:14px}.ring{--p: 0;--ring-c: var(--pass-base);width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring-c) calc(var(--p) * 1%),var(--surface-3) 0);flex-shrink:0}.ring:before{content:"";grid-area:1 / 1;width:70px;height:70px;border-radius:50%;background:var(--surface)}.ring b{grid-area:1 / 1;font-family:var(--display);font-size:30px;font-weight:400;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}.ring.mid{--ring-c: var(--warn-base)}.ring.low{--ring-c: var(--accent-fill)}.ring-wrap .rk{display:flex;flex-direction:column;gap:4px}.ring-wrap .rk .k{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ring-wrap .rk .v{font-size:var(--fs);color:var(--ink)}.bar{position:relative;height:6px;border-radius:0;background:var(--surface-3);overflow:hidden;min-width:80px}.bar>i{position:absolute;left:0;top:0;bottom:0;background:var(--accent-fill)}.bar.high>i{background:var(--pass-base)}.bar.mid>i{background:var(--warn-base)}.bar.low>i{background:var(--accent-fill)}.bar-cell{display:flex;align-items:center;gap:10px}.bar-cell .bar{flex:1}.bar-cell .pct{font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;min-width:42px;text-align:right;color:var(--ink-2)}.card-bd.form-grid{display:grid}.help{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5}.grad-text{color:var(--ink)}.sel{position:relative;display:inline-flex;width:100%;min-width:0}.sel-btn{display:inline-flex;align-items:center;gap:8px;width:100%;min-width:0;height:var(--ctl-h);padding:0 30px 0 10px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:0;color:var(--ink);font-family:var(--ui);font-size:var(--fs);text-align:left;cursor:pointer;position:relative;transition:border-color .12s,box-shadow .12s}.sel.mono .sel-btn{font-family:var(--mono);font-size:var(--fs-sm)}.sel-btn:hover{border-color:var(--ink-4)}.sel.open .sel-btn,.sel-btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.sel-btn:disabled{opacity:.55;cursor:not-allowed}.sel-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel-val.ph{color:var(--ink-4)}.sel-caret{position:absolute;right:10px;top:50%;width:11px;height:8px;margin-top:-4px;color:var(--ink-3);transition:transform .15s}.sel.open .sel-caret{transform:rotate(180deg)}.sel-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:70;margin:0;padding:4px;list-style:none;max-height:264px;overflow-y:auto;background:var(--surface);border:1px solid var(--rule-hard);box-shadow:0 0 0 3px var(--frame-bg),0 0 0 4px var(--frame-line),var(--shadow-pop);animation:rise .12s ease-out both}.sel.up .sel-pop{top:auto;bottom:calc(100% + 4px)}.sel-opt{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 8px;font-size:var(--fs-sm);color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sel.mono .sel-opt{font-family:var(--mono);font-size:var(--fs-xs)}.sel-opt.hi{background:var(--surface-2)}.sel-opt.on{color:var(--accent)}.sel-opt.off{color:var(--ink-4);cursor:not-allowed}.sel-tick{width:10px;height:10px;flex-shrink:0;position:relative}.sel-opt.on .sel-tick:before{content:"";position:absolute;left:1px;top:2px;width:7px;height:4px;border-left:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg)}.rule-row .sel-btn,.param-row .sel-btn,.br-pick .sel-btn,.hd-select .sel-btn{height:30px;font-size:var(--fs-sm);padding-left:8px}.hd-select{width:auto;max-width:240px}.hd-select .sel-btn{min-width:160px}.wl-bar .sel{width:auto}.view-toggle{display:inline-flex;border:1px solid var(--rule-hard);background:var(--surface);padding:2px;gap:2px}.view-toggle .ibtn{width:26px;height:24px}.view-toggle .ibtn.on{background:var(--ink);color:var(--surface)}.dlg-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:rise .15s ease-out both}.dlg{width:min(560px,92vw);max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--rule);box-shadow:0 0 0 5px var(--frame-bg),0 0 0 6px var(--frame-line),var(--shadow-pop)}.dlg-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 14px;border-bottom:1px solid var(--rule)}.dlg-t{display:flex;flex-direction:column;gap:3px;min-width:0}.dlg-t .title{font-family:var(--display);font-size:19px;font-weight:500;letter-spacing:-.015em}.dlg-bd{padding:20px;display:flex;flex-direction:column;gap:16px}.dlg-bd .form-grid{gap:14px 16px}.dlg-acts{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}#app{display:grid;grid-template-columns:236px 1fr 372px;grid-template-rows:60px 1fr 260px;grid-template-areas:"hd hd hd" "pal cv ins" "dk dk dk";height:100vh;min-height:0;background:var(--ground)}#app.ins-hidden{grid-template-columns:236px 1fr 0}#app.ins-hidden #inspector{display:none}#app.dock-hidden{grid-template-rows:60px 1fr 40px}#app.dock-hidden .dk-inst,#app.dock-hidden #log{display:none}#app.dock-hidden #dock{grid-template-columns:1fr}#app.sandbox{grid-template-rows:60px 32px 1fr 260px;grid-template-areas:"hd hd hd" "sb sb sb" "pal cv ins" "dk dk dk"}#app.sandbox.dock-hidden{grid-template-rows:60px 32px 1fr 40px}.page{height:100vh;display:grid;grid-template-rows:60px 1fr;grid-template-areas:"hd" "body";background:var(--ground)}.page>.page-body{grid-area:body;min-height:0}.page-body{overflow:auto;padding:0;position:relative}.page-scroll{position:relative;min-height:100%;box-sizing:border-box;padding:40px 24px 240px}.page-inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:32px;position:relative;z-index:1}.page-inner>*{animation:rise .35s ease-out both}.page-inner>.narrow,.narrow{max-width:760px;width:100%;margin:0 auto}.backdrop{position:absolute;left:0;right:0;overflow:hidden;pointer-events:none;z-index:0;color:var(--art)}.backdrop svg{display:block;width:100%;height:100%}.backdrop.top{top:0;height:min(35vw,64%);-webkit-mask-image:linear-gradient(#000 72%,transparent);mask-image:linear-gradient(#000 72%,transparent)}.backdrop.foot{bottom:0;height:min(20vw,36%);-webkit-mask-image:linear-gradient(transparent,#000 30%);mask-image:linear-gradient(transparent,#000 30%)}.backdrop path{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.backdrop path.soft{opacity:.55}.backdrop path.fill{fill:var(--ground)}header.hd{grid-area:hd;display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--ground);border-bottom:1px solid var(--rule);overflow:visible;position:relative;z-index:20;min-width:0}header.hd>*{flex-shrink:0;white-space:nowrap}header.hd>.spacer{flex-shrink:1}.brand{display:flex;align-items:center;gap:10px}.brand .name{font-family:var(--display);font-weight:500;font-size:16px;letter-spacing:-.01em;color:var(--ink)}.brand .name.link{cursor:pointer}.brand .name.link:hover{color:var(--accent)}.hd-sep{width:1px;height:22px;background:var(--rule-strong)}.hd-field{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:var(--fs-sm)}.hd-field b{color:var(--ink);font-weight:500}.hd-field input{background:var(--surface);border:1px solid var(--rule-strong);border-radius:0;padding:0 8px;height:30px;width:84px;font-family:var(--mono);font-size:var(--fs-sm)}.hd-select{background:var(--surface);border:1px solid var(--rule-strong);border-radius:0;padding:0 8px;height:30px;font-weight:400;font-size:var(--fs-sm);max-width:240px;color:var(--ink)}.hd-nav{display:flex;align-items:center;margin-left:18px}.hd-nav a{color:var(--ink-2);text-decoration:none;padding:6px 0;font-weight:400;font-size:15px;line-height:1.3;position:relative;transition:color .12s;display:inline-flex;align-items:center}.hd-nav a+a:before{content:"";width:10px;height:10px;margin:0 14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%239D0000' stroke-width='1.4' stroke-linecap='round'><circle cx='8' cy='8' r='2.6'/><path d='M8 1.2v2.2M8 12.6v2.2M1.2 8h2.2M12.6 8h2.2'/></svg>") center / contain no-repeat;opacity:.8}.hd-nav a:hover{color:var(--ink)}.hd-nav a.on{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px;text-decoration-thickness:1px}.hd-chains{display:flex;gap:6px;align-items:center}.hd-chains .k{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-right:2px}.hd-chains .badge{height:20px;padding:0 7px 0 6px;font-size:var(--fs-key)}.hd-user{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-2)}.hd-user b{color:var(--ink);font-weight:500}.hd-user .mono{font-size:var(--fs-xs)}.hd-user .badge{height:20px}.spacer{flex:1}.hd-msg{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sandbox-bar{grid-area:sb;display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--accent-soft);border-bottom:1px solid var(--rule);font-size:var(--fs-sm);color:var(--ink-2);overflow:hidden}.sandbox-bar .sb-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}.sandbox-bar .sb-tx{color:var(--ink-3);font-size:var(--fs-xs);flex-shrink:0}.sandbox-bar .btn{margin-left:auto;flex-shrink:0}.sandbox-bar[data-off]{background:transparent;color:var(--ink-3)}.sandbox-bar[data-off] .sb-txt{color:var(--ink-3)}.user-menu{position:relative}.um-btn{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 10px;background:transparent;border:1px solid transparent;color:var(--ink-2);font-size:var(--fs-sm);cursor:pointer}.um-btn:hover,.user-menu.open .um-btn{border-color:var(--rule-hard);background:var(--surface);color:var(--ink)}.um-btn b{color:var(--ink);font-weight:500}.um-btn .um-addr{font-size:var(--fs-key);color:var(--ink-3)}.um-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);flex-shrink:0}.um-dot.on{background:var(--pass-base);box-shadow:0 0 #2e7d4f80;animation:ring 2s ease-out infinite}.um-pop{position:absolute;right:0;top:36px;z-index:60;width:300px;background:var(--surface);border:1px solid var(--rule-hard);box-shadow:0 0 0 4px var(--frame-bg),0 0 0 5px var(--frame-line),var(--shadow-pop);display:flex;flex-direction:column;animation:rise .15s ease-out both}.um-head{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-bottom:1px solid var(--rule)}.um-head b{font-family:var(--display);font-size:17px;font-weight:500}.um-head .addr{font-size:var(--fs-xs);color:var(--ink-2)}.um-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--rule);font-size:var(--fs-sm)}.um-row .label{width:46px;flex-shrink:0}.um-row .linkish{margin-left:auto;font-size:var(--fs-xs)}.um-foot{padding:12px 16px}.seg.sm button{padding:4px 10px;font-size:var(--fs-xs)}.flow-panel{position:relative;overflow:hidden;border:1px solid var(--rule-strong);background-color:var(--surface-2);background-image:radial-gradient(circle,var(--grid-dot) 1px,transparent 1px);background-size:20px 20px;border-radius:0;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 0 5px var(--surface-2),inset 0 0 0 6px var(--rule)}.flow-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(85% 75% at 50% 50%,transparent 62%,rgba(38,38,38,.06) 100%);z-index:4}:root[data-theme=dark] .flow-panel:after{background:radial-gradient(85% 75% at 50% 50%,transparent 60%,rgba(0,0,0,.32) 100%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .flow-panel:after{background:radial-gradient(85% 75% at 50% 50%,transparent 60%,rgba(0,0,0,.32) 100%)}}.flow-panel.preview{height:400px;cursor:grab}.flow-panel.preview .fn-desc .dim,.flow-panel.preview .n-to{display:none}.flow-panel.preview .fn-out{min-height:26px;padding:3px 14px 3px 12px}.flow-panel.preview .port-in,.flow-panel.preview .port-out{cursor:default}.flow-panel.preview.panning{cursor:grabbing}.flow-layer{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0;will-change:transform}.flow-edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none;z-index:0}.flow-edges .fe{fill:none;stroke:var(--rule-hard);stroke-width:1.5;stroke-linecap:round;transition:stroke .25s}.flow-edges .fe-dot{fill:var(--ink-4)}.flow-edges .fe.on,.flow-edges .fe.visited{stroke:var(--accent-fill);stroke-width:2;stroke-dasharray:5 7;animation:flow-dash 1.2s linear infinite}.flow-edges .fe-dot.on{fill:var(--accent-fill)}.flow-edges .fe.inst{stroke:var(--tool-base);stroke-dasharray:4 5;stroke-width:1.5;opacity:.8}.flow-edges .fe-dot.inst{fill:var(--tool-base)}.flow-edges .fe.temp{stroke:var(--accent-fill);stroke-dasharray:5 5}@keyframes flow-dash{to{stroke-dashoffset:-24}}.fnode{position:absolute;width:256px;background:var(--surface);border:1px solid var(--rule);border-radius:0;padding:8px;color:var(--ink);cursor:default;box-shadow:0 0 0 4px var(--frame-bg),0 0 0 5px var(--frame-line);transition:border-color .2s ease-out,box-shadow .2s ease-out;z-index:1}.fnode:hover{border-color:var(--rule-strong);box-shadow:0 0 0 4px var(--frame-bg),0 0 0 5px var(--ink-4)}.fnode.selected{border-color:var(--accent);box-shadow:0 0 0 4px var(--frame-bg),0 0 0 5px var(--accent)}.fnode.active{border-color:var(--pass-base);box-shadow:0 0 0 4px var(--frame-bg),0 0 0 5px var(--pass-base),0 0 24px -4px #2e7d4f59}.fnode.dim{opacity:.55}.fn-head{display:flex;align-items:center;gap:10px;padding:8px 8px 6px;min-width:0}.fn-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--surface);border:1px solid var(--rule-hard);color:var(--ink);flex-shrink:0;font-size:12px;font-weight:600}.fn-ico svg{width:14px;height:14px}.fnode[data-category=来源] .fn-ico{color:var(--ink);border-color:var(--ink-2)}.fnode[data-category=判断] .fn-ico{color:var(--info);border-color:var(--info-base)}.fnode[data-category=动作] .fn-ico{color:var(--pass);border-color:var(--pass-base)}.fnode[data-category=结束] .fn-ico{color:var(--ink-3);border-color:var(--rule-hard)}.fnode[data-category=工具] .fn-ico{color:var(--tool);border-color:var(--tool-base)}.fn-title{font-family:var(--display);font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.fn-kind{font-size:var(--fs-key);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);flex-shrink:0}.fn-val{display:flex;align-items:baseline;gap:6px;padding:2px 8px 0;font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1;min-width:0}.fn-val .v{font-size:18px;font-weight:600;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.fn-val .c{font-size:var(--fs-key);letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fn-val.away .v{color:var(--accent)}.fn-val.pass .v{color:var(--pass)}.fn-val.info .v{color:var(--info)}.fn-val.tool .v{color:var(--tool)}.fn-val.plain .v{color:var(--ink)}.fn-desc{margin-top:6px;border:1px solid var(--rule);background:var(--surface-2);padding:9px 11px;font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);word-break:break-word}.fn-desc .warn{color:var(--fail);font-weight:500}.fn-desc .dim{color:var(--ink-3);font-size:var(--fs-xs);display:block;margin-top:2px}.fn-outs{display:flex;flex-direction:column;margin-top:6px;border:1px solid var(--rule);background:var(--surface-2);padding:3px 0}.fn-out{position:relative;display:flex;align-items:center;gap:6px;padding:5px 14px 5px 11px;font-size:var(--fs-sm);color:var(--ink-2);min-height:30px}.fn-out+.fn-out{border-top:1px solid var(--rule)}.fn-out>span:first-child{white-space:nowrap;font-weight:500}.fn-out.ok>span:first-child{color:var(--pass)}.fn-out.fail>span:first-child{color:var(--fail)}.fn-out .n-to{margin-left:auto;color:var(--ink-3);font-size:var(--fs-xs);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fn-out .n-add{margin-left:auto;background:transparent;border:1px solid var(--rule-hard);color:var(--ink-3);border-radius:0;width:20px;height:20px;line-height:1;font-size:14px;padding:0;flex-shrink:0}.fn-out .n-to+.n-add{margin-left:4px}.fn-out .n-add:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.fn-more{position:relative;display:flex;justify-content:flex-end;padding:2px 10px 4px}.fo-more{background:transparent;border:0;padding:2px 6px;font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.04em;color:var(--ink-3);cursor:pointer}.fo-more:hover{color:var(--fail);background:var(--fail-soft)}.fo-pick{position:absolute;right:8px;top:24px;z-index:30;min-width:150px;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--rule-hard);background:var(--surface);box-shadow:var(--shadow-pop)}.fo-pick-t{font-size:var(--fs-key);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:2px 6px 4px}.fo-pick-i{text-align:left;background:transparent;border:0;padding:5px 8px;font-size:var(--fs-sm);color:var(--fail)}.fo-pick-i:hover{background:var(--fail-soft)}.port-in,.port-out{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--ink-4);border:2px solid var(--surface);cursor:crosshair;z-index:2;transition:transform .12s,background .12s}.port-in{left:-7px;top:20px}.port-out{right:-7px;top:50%;transform:translateY(-50%)}.port-out:hover{transform:translateY(-50%) scale(1.3);background:var(--accent-fill)}.port-in.can{background:var(--pass-base);transform:scale(1.3)}.port-in.cannot{opacity:.25}.port-in.hot{background:var(--accent-fill);transform:scale(1.5)}.fnode .fn-out.ok .port-out{background:var(--pass-base)}.fnode .fn-out.fail .port-out{background:var(--accent-fill)}.fn-pill{position:absolute;top:-13px;right:10px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid;background:var(--surface);font-family:var(--mono);font-size:var(--fs-key);font-weight:500;letter-spacing:.08em;text-transform:uppercase;line-height:1;white-space:nowrap}.fn-pill svg{width:11px;height:11px}.fn-pill.away{color:var(--ink);border-color:var(--ink-2)}.fn-pill.pass{color:var(--pass);border-color:var(--pass-base)}.fn-pill.info{color:var(--info);border-color:var(--info-base)}.fn-pill.tool{color:var(--tool);border-color:var(--tool-base)}.fnode .pills{display:flex;flex-wrap:wrap;gap:4px;padding:8px 8px 2px}.pill-b{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.04em;font-weight:500;padding:2px 7px;border:1px solid var(--rule-hard);color:var(--ink-2);white-space:nowrap;line-height:1.4}.pill-b.guess{color:var(--warn);border-color:var(--warn-base);background:var(--warn-soft)}.pill-b.manual{color:var(--info);border-color:var(--info-base);background:var(--info-soft)}.pill-b.pending{color:var(--fail);border-color:var(--fail-base);background:var(--fail-soft)}.flow-ctl{position:absolute;right:14px;bottom:14px;z-index:5;display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--rule-hard);background:var(--surface);box-shadow:0 0 0 2px var(--surface-2),0 0 0 3px var(--rule-hard)}.flow-ctl .pct{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.04em;color:var(--ink-2);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.flow-ctl .ibtn{color:var(--ink-2)}.flow-ctl .ibtn.on{color:var(--on-accent);background:var(--accent-fill)}.flow-ctl .ibtn.hot{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);animation:pulse 1.6s infinite}.flow-help{position:absolute;left:14px;bottom:14px;z-index:5;font-size:var(--fs-xs);color:var(--ink-2);background:var(--surface);border:1px solid var(--rule-strong);padding:6px 11px;pointer-events:none}.flow-empty{font-size:var(--fs-sm);color:var(--ink-3);padding:24px;text-align:center}.flow-panel .flow-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}#palette{grid-area:pal;background:var(--ground);border-right:1px solid var(--rule);padding:16px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.pal-group{display:flex;flex-direction:column;gap:6px}.pal-title{font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-family:var(--mono);font-weight:500;padding:0 4px 4px}.pal-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px 9px 24px;border-radius:var(--r-lg);cursor:grab;background:var(--surface);border:1px solid var(--rule-strong);-webkit-user-select:none;user-select:none;position:relative;transition:background .15s ease-out,border-color .15s ease-out}.pal-item:before{content:"";position:absolute;left:11px;top:15px;width:6px;height:6px;border-radius:50%;background:var(--ink-4)}.pal-item:hover{border-color:var(--rule-strong);background:var(--surface-2)}.pal-item:active{cursor:grabbing}.pal-item .pi-name{font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:-.01em;white-space:nowrap;color:var(--ink)}.pal-item .pi-sub{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pal-item[data-category=来源]:before{background:var(--ink)}.pal-item[data-category=判断]:before{background:var(--info-base)}.pal-item[data-category=动作]:before{background:var(--pass-base)}.pal-item[data-category=结束]:before{background:var(--ink-3)}.pal-item[data-category=工具]:before{background:var(--tool-base)}.pal-hint{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5;padding:0 4px}#viewport{grid-area:cv;position:relative;overflow:hidden;border-radius:0;border:0;cursor:grab}#viewport.panning{cursor:grabbing}#viewport.dropping{box-shadow:inset 0 0 0 2px var(--accent)}.add-menu{position:fixed;z-index:50;width:320px;max-height:60vh;overflow:auto;background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-xl);box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:6px}.add-menu .am-title{font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-family:var(--mono);padding:4px 4px 2px}.add-menu .am-item{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-lg);padding:8px 10px 8px 24px;cursor:pointer;color:var(--ink);position:relative}.add-menu .am-item:before{content:"";position:absolute;left:11px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--ink-4)}.add-menu .am-item:hover{background:var(--surface-3)}.add-menu .am-group{display:flex;flex-direction:column;gap:6px}.add-menu .am-group+.am-group{margin-top:6px;padding-top:8px;border-top:1px solid var(--rule)}.add-menu .am-head{font-size:var(--fs-key);letter-spacing:.06em;color:var(--ink-3);padding:0 4px;font-family:var(--mono)}.add-menu .am-item[data-category=来源]:before{background:var(--ink)}.add-menu .am-item[data-category=判断]:before{background:var(--info-base)}.add-menu .am-item[data-category=动作]:before{background:var(--pass-base)}.add-menu .am-item[data-category=工具]:before{background:var(--tool-base)}.add-menu .am-name{font-weight:600;font-size:var(--fs-sm)}.add-menu .am-short{font-size:var(--fs-xs);color:var(--ink-2)}.inst-card{position:absolute;width:256px;background:var(--surface);border:1px dashed rgba(125,82,244,.5);border-radius:var(--r-2xl);padding:8px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .2s,box-shadow .2s}.inst-card:hover{border-color:var(--tool-base);box-shadow:var(--shadow-card)}.inst-card.selected{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-card)}.inst-card .inst-in{position:absolute;left:-7px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--tool-base);border:2px solid var(--surface)}.ic-head{display:flex;align-items:center;gap:10px;padding:6px 8px}.ic-head .chip{font-size:var(--fs-key);font-family:var(--mono);color:var(--tool);border:1px solid rgba(125,82,244,.5);border-radius:0;padding:2px 7px;background:var(--tool-soft);white-space:nowrap}.ic-name{font-weight:500;font-size:var(--fs);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ic-body{padding:0 8px 6px;font-size:var(--fs-xs);color:var(--ink-2)}.inst-card .pills{display:flex;flex-wrap:wrap;gap:4px;padding:0 8px 4px}.hd-budget{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.hd-budget .funding-button{font-size:var(--fs-xs)}.funding-verdict.pass,.funding-button.pass{color:var(--pass)}.funding-verdict.fail,.funding-button.fail{color:var(--fail)}.funding-times{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:var(--fs-xs);color:var(--ink-3)}.funding-wallets{display:flex;flex-direction:column;gap:12px}.funding-wallet{display:flex;flex-direction:column;gap:10px;border:1px solid var(--rule);background:var(--surface-2);padding:14px}.funding-wallet-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.funding-wallet-head>.badge:last-child{margin-left:auto}.funding-amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0}.funding-amounts dt{color:var(--ink-3);font-size:var(--fs-xs);margin-bottom:4px}.funding-amounts dd{margin:0;overflow-wrap:anywhere}.funding-amounts small{color:var(--ink-3)}.funding-detail{overflow-wrap:anywhere}#inspector{grid-area:ins;background:var(--ground);border-left:1px solid var(--rule);overflow-y:auto;display:flex;flex-direction:column}.ins-head{padding:14px 16px 12px;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:6px;position:sticky;top:0;background:var(--ground);z-index:2}.ins-head .ih-kind{font-size:var(--fs-key);letter-spacing:.04em;color:var(--ink-3);font-family:var(--mono);font-weight:500;text-transform:uppercase}.ins-head .ih-kind .mono{font-weight:500;color:var(--ink-3);text-transform:none}.ins-head .ih-name{font-size:var(--fs-h3);font-weight:600}.ins-head .ih-name input{background:transparent;border:0;border-bottom:1px dashed var(--rule-strong);padding:0 0 3px;width:100%;font-weight:600;font-size:var(--fs-h3)}.ins-head .ih-name input:focus{outline:none;border-bottom-color:var(--accent)}.ins-head-row{display:flex;align-items:center;gap:8px}.ins-toggle{background:transparent;border:1px solid var(--rule-strong);border-radius:0;color:var(--ink-2);font-size:var(--fs-xs);font-weight:500;padding:3px 9px;margin-left:auto}.ins-toggle:hover{color:var(--ink);background:var(--surface-2)}.ins-reopen{background:transparent;border:1px solid var(--rule-strong);border-radius:0;color:var(--ink-2);font-size:var(--fs-sm);height:30px;padding:0 10px;font-weight:500}#app:not(.ins-hidden) .ins-reopen{display:none}.ins-body{padding:16px 16px 28px;display:flex;flex-direction:column;gap:18px}.ins-empty{padding:40px 20px;color:var(--ink-3);text-align:center;line-height:1.6;font-size:var(--fs-sm)}.ins-what{padding:12px 16px 0}.row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.row select,.row input{min-width:0}.row .op{width:62px;text-align:center}.tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-xs);padding:2px 8px;border-radius:0;background:var(--surface-2);border:1px solid var(--rule);color:var(--ink-2)}.tag.const{border-style:dashed;color:var(--ink-3)}.tag.accent{border-color:rgba(var(--accent-rgb),.6);color:var(--accent);background:var(--accent-soft)}.tags{display:flex;flex-wrap:wrap;gap:5px}.seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--r);overflow:hidden;flex-wrap:wrap;background:var(--surface)}.seg button{background:transparent;border:0;padding:7px 12px;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.3}.seg button+button{border-left:1px solid var(--rule-strong)}.seg button:hover{color:var(--ink);background:var(--hover)}.seg button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.branch-list{display:flex;flex-direction:column;gap:10px}.branch-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:10px 12px}.branch-row input{background:transparent;border:0;border-bottom:1px dashed var(--rule-strong);width:100%;padding:2px 0 4px;font-size:var(--fs-sm)}.branch-row input:focus{outline:none;border-bottom-color:var(--accent)}.branch-row .bl{font-weight:500;font-size:var(--fs-sm)}.branch-row .be{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-2);margin-top:4px}.branch-row .bx{background:transparent;border:0;color:var(--ink-3);font-size:16px;line-height:1;padding:0 3px}.branch-row .bx:hover{color:var(--fail)}.outs-list{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--ink-2)}.outs-list span.ok{color:var(--pass)}.outs-list span.fail{color:var(--fail)}.note{border:1px solid rgba(230,168,25,.4);padding:10px 12px;background:var(--away-soft);font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2);border-radius:var(--r-lg)}.note.warn{border-color:#e9354466;background:var(--fail-soft)}.note b{color:var(--ink)}.del{align-self:flex-start}.what{border:1px solid var(--rule);border-radius:var(--r-lg);padding:8px 12px;background:var(--surface);font-size:var(--fs-sm)}.what summary{cursor:pointer;font-weight:500;color:var(--ink);line-height:1.5}.what p{margin:8px 0;color:var(--ink-2);line-height:1.6}.branch-row.rules{align-items:flex-start}.branch-row.rules>div:first-child{flex:1;min-width:0}.rule-row{display:grid;grid-template-columns:auto minmax(0,1.4fr) auto minmax(0,1fr) auto;gap:6px;align-items:center;margin-top:8px}.rule-row select,.rule-row input{min-width:0;width:100%;height:30px;padding:0 8px;font-size:var(--fs-sm);background:var(--surface-2);border:1px solid var(--rule-strong);border-radius:0}.rule-row .joiner{grid-column:1;min-width:30px;height:26px;padding:0 8px;border-radius:0;border:1px solid rgba(230,168,25,.6);background:var(--away-soft);color:var(--away);font-size:var(--fs-xs);font-weight:600;cursor:pointer}.rule-row .joiner.or{background:var(--info-soft);color:var(--info);border-color:#335cff99}.rule-row>select:first-child,.rule-row>select:nth-child(1){grid-column:2}.rule-row .joiner+select{grid-column:2}.param-rows{display:flex;flex-direction:column;gap:6px}.param-row{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:center}.param-row .ptype{font-size:var(--fs-xs);color:var(--ink-2);font-family:var(--mono)}.param-row select,.param-row input{min-width:0;width:100%;height:30px;padding:0 8px;font-size:var(--fs-sm);background:var(--surface);border:1px solid var(--rule-strong);border-radius:0}.bind-rows{display:flex;flex-direction:column;gap:10px}.bind-row{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:10px 12px;position:relative}.bind-row:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0;background:var(--rule-strong)}.bind-row[data-how=guess]:before{background:var(--away-base)}.bind-row[data-how=manual]:before{background:var(--info-base)}.bind-row[data-how=pending]:before{background:var(--fail-base)}.bind-row .br-role{font-size:var(--fs-sm);font-weight:500;word-break:break-all}.bind-row .br-now{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-2)}.bind-row .br-now>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bind-row .how{margin-left:auto;font-family:var(--ui);font-size:var(--fs-xs);font-weight:600;border:1px solid var(--rule-strong);border-radius:0;padding:1px 7px;color:var(--ink-2);white-space:nowrap}.bind-row .how.guess{color:var(--away);border-color:#e6a81999;background:var(--away-soft)}.bind-row .how.manual{color:var(--info);border-color:#335cff99;background:var(--info-soft)}.bind-row .how.pending{color:var(--fail);border-color:#e9354499;background:var(--fail-soft)}.bind-row .br-pick{display:flex;flex-direction:column;gap:6px}.bind-row .br-pick select,.bind-row .br-pick input{background:var(--surface-2);border:1px solid var(--rule-strong);border-radius:0;height:30px;padding:0 8px;width:100%;font-size:var(--fs-sm)}.bind-row .br-pick .btn{align-self:flex-start}.bind-row .br-err{font-size:var(--fs-xs);color:var(--fail);word-break:break-all}#dock{grid-area:dk;background:var(--ground);border-top:1px solid var(--rule);display:grid;grid-template-columns:320px 1fr;min-height:0}.dk-inst{border-right:1px solid var(--rule);padding:12px 16px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.dk-title{font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-family:var(--mono);font-weight:500;display:flex;justify-content:space-between;align-items:center;min-height:24px}.dk-title .cnt{letter-spacing:0;text-transform:none;color:var(--ink-3)}.dk-right{display:flex;align-items:center;gap:10px}.dk-toggle{background:transparent;border:1px solid var(--rule-strong);border-radius:0;color:var(--ink-2);font-family:var(--ui);font-size:var(--fs-xs);padding:3px 9px;letter-spacing:0;text-transform:none;font-weight:500}.dk-toggle:hover{color:var(--ink);background:var(--surface-2)}.inst{display:grid;grid-template-columns:auto 1fr auto;gap:6px 10px;align-items:center;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:9px 12px}.inst .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.inst[data-s=ready] .dot{background:var(--away-base)}.inst[data-s=waiting] .dot{background:var(--away-base);animation:pulse 1.2s infinite}.inst[data-s=stopped] .dot{background:var(--ink-3)}.inst[data-s=done] .dot{background:var(--pass-base)}.inst[data-s=pending] .dot{background:var(--fail-base)}.inst .il{display:flex;flex-direction:column;gap:1px;min-width:0}.inst .il b{font-size:var(--fs-sm);font-weight:500}.inst .il span{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inst .is{font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;font-weight:500}.inst .pos{grid-column:2 / 4;font-family:var(--mono);font-size:var(--fs-xs);color:var(--pass)}.inst.ghost{border-style:dashed;color:var(--ink-3);font-size:var(--fs-xs);grid-template-columns:1fr}.dk-log{display:flex;flex-direction:column;min-height:0}.dk-log .dk-title{padding:12px 16px 6px}#log{flex:1;overflow-y:auto;padding:0 16px 12px;font-size:var(--fs-sm);line-height:1.5}#log .ln{display:grid;grid-template-columns:64px 108px 128px minmax(0,1fr);gap:12px;align-items:start;padding:5px 8px 5px 10px;margin:0 -8px;border-radius:0;color:var(--ink-2);border-bottom:1px solid var(--rule);border-left:2px solid transparent}#log .ln.ok{border-left-color:var(--pass-base)}#log .ln.hd{border-left-color:var(--accent)}#log .ln:last-child{border-bottom:0}#log .ln .t{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:3px}#log .ln .k{min-width:0}#log .ln .k .badge{max-width:100%;height:20px;padding:0 8px}#log .ln .k .badge span{overflow:hidden;text-overflow:ellipsis}#log .ln .i{font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:3px}#log .ln .i b{color:var(--ink);font-weight:500}#log .ln .i.base b{color:var(--away)}#log .ln .i.sim b{color:var(--tool)}#log .ln .i .n{color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-xs)}#log .ln .m{font-family:var(--mono);font-variant-ligatures:none;font-size:var(--fs-sm);color:var(--ink);word-break:break-all;padding-top:2px}#log .ln.sub .m{color:var(--ink-2)}#log .ln.ok .m{color:var(--pass)}#log .ln.warn{background:var(--fail-soft);border-bottom-color:transparent;border-left-color:var(--fail-base)}#log .ln.warn .m{color:var(--fail);font-weight:500}#log .ln.hd .m{color:var(--ink);font-weight:600}#log .empty{color:var(--ink-3);padding:12px 0;font-size:var(--fs-sm);text-align:left}.login-wrap{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:24px;position:relative;overflow:hidden;background:radial-gradient(circle,var(--grid-dot) 1px,transparent 1.3px) 0 0 / 20px 20px,var(--ground)}.login-wrap>.login-hero,.login-wrap>.login-card,.login-wrap>.login-foot{position:relative;z-index:1}.login-wrap .backdrop.top{height:min(35vw,60%)}.login-wrap .backdrop.foot{height:min(20vw,34%)}.login-hero{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;animation:rise .5s ease-out both}.login-hero .login-title{font-family:var(--display);font-size:40px;font-weight:400;letter-spacing:-.03em;margin:0;color:var(--ink)}.login-hero .login-tag{margin:0;max-width:42ch;color:var(--ink-2);font-size:15px;line-height:1.6}.login-card{width:420px;max-width:100%;background:var(--surface);border:1px solid var(--rule);box-shadow:0 0 0 5px var(--frame-bg),0 0 0 6px var(--frame-line);margin:6px;padding:24px 28px;display:flex;flex-direction:column;gap:14px;animation:rise .5s .08s ease-out both}.login-foot{font-family:var(--mono);font-size:var(--fs-key);color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.login-card .sub{font-size:var(--fs)}.login-card form{display:flex;flex-direction:column;gap:10px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px}.ccard{background:var(--surface);border:1px solid var(--rule);box-shadow:0 0 0 5px var(--frame-bg),0 0 0 6px var(--frame-line);margin:6px;padding:18px 20px 20px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:box-shadow .2s ease-out}.ccard:hover{box-shadow:0 0 0 5px var(--frame-bg),0 0 0 6px var(--ink-4)}.ccard .ccard-hd{display:flex;gap:10px;align-items:center;min-width:0}.ccard .ccard-hd .state{margin-left:auto}.ccard .ccard-hd .fn-ico{width:28px;height:28px}.ccard .cname{font-family:var(--display);font-weight:500;font-size:19px;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ccard .cmeta{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);color:var(--ink-2)}.ccard .cmeta>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.ccard .cmeta .k{color:var(--ink-3);font-size:var(--fs-xs)}.ccard .cmeta b{color:var(--ink);font-weight:500}.ccard .cintro{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.55}.ccard .btn-row{margin-top:4px}.mod-section{display:flex;flex-direction:column;gap:16px}.mod-section-hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:4px}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.mod{background:var(--surface);border:1px solid var(--rule-strong);padding:18px 20px;display:flex;flex-direction:column;gap:10px;min-width:0}.mod-hd{display:flex;align-items:center;gap:10px}.mod-hd .fn-ico{width:28px;height:28px;border:1px solid var(--rule-hard);border-radius:999px;background:var(--surface)}.mod-name{font-family:var(--display);font-weight:500;font-size:19px;letter-spacing:-.015em}.mod-type{margin-left:auto;font-size:var(--fs-key);color:var(--ink-3);font-family:var(--mono);letter-spacing:.06em}.mod-short{color:var(--ink);font-size:15px}.mod-doc{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mod-doc.open{display:block}.mod-io{display:flex;flex-direction:column;gap:6px}.mod-io .chips{align-items:center}.mod-io .io-k{font-size:var(--fs-key);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);width:30px;flex-shrink:0}.mod-act{display:flex;align-items:center;gap:10px;margin-top:2px}.mod-fields{border:1px solid var(--rule);overflow:hidden}.proj{display:flex;flex-direction:column;gap:36px}.crumb{color:var(--ink-2);text-decoration:none;font-size:var(--fs-sm)}.crumb:hover{color:var(--accent)}.proj-head{display:flex;gap:18px;align-items:flex-start}.proj-avatar{width:56px;height:56px;background:var(--surface);border:1px solid var(--rule-hard);box-shadow:0 0 0 3px var(--frame-bg),0 0 0 4px var(--frame-line);margin:4px;color:var(--chain);display:grid;place-items:center;font-family:var(--display);font-weight:500;font-size:18px;letter-spacing:-.02em;flex-shrink:0}.proj-title{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.proj-top{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.proj-title .h1{font-size:30px}.proj-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.proj-intro{margin:0;color:var(--ink-2);font-size:15px;line-height:1.65;max-width:68ch}.proj-stats{display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.proj-stats .btn{margin-left:auto}.sec,.sec-list{display:flex;flex-direction:column;gap:16px}.sec>.orn{margin-bottom:4px}.proj-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 10px 18px;border:1px solid var(--rule-hard);background:var(--surface-2);font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap}.proj-bar b{color:var(--ink);font-weight:500}.proj-bar .btn-row{margin-left:auto}.cv-card{display:flex;flex-direction:column;gap:10px;min-width:0}.cv-card-hd{display:flex;align-items:center;gap:12px;padding:0 2px;min-width:0}.cv-name{font-family:var(--display);font-weight:500;font-size:17px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cv-name:hover{color:var(--accent)}.cv-meta{font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap}.cv-act{display:flex;gap:8px}.cv-params{display:flex;flex-direction:column;gap:8px}.cv-params .kv{padding:8px 12px;border:1px solid var(--rule);background:var(--surface-2)}.key-list{display:flex;flex-direction:column;gap:6px}.key-list .addr{font-size:var(--fs-sm)}.status-ok{color:var(--pass);font-weight:500}.status-bad{color:var(--fail);font-weight:500}.wl-bar{align-items:center}.wl-bar .cnt{font-size:var(--fs-sm);color:var(--ink-3);margin-left:4px}.wl-vault{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wl-pass{width:180px;height:28px;font-size:var(--fs-sm)}.wl-panel{padding:16px 20px;border-bottom:1px solid var(--rule);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}.wl-panel .form-grid .btn{align-self:end;margin-bottom:3px}.wl-keys{padding:12px 20px 16px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:8px;font-size:var(--fs-sm)}.wl-amount{min-width:110px;overflow-wrap:anywhere}.wl-amount small,.wl-snapshot small{display:block;color:var(--ink-3);font-size:var(--fs-xs);margin-top:4px}.wl-snapshot{min-width:138px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.ccard{padding:18px 20px 20px;gap:12px}.ccard .cname{font-size:19px}.ccard .cmeta{font-size:var(--fs-sm);gap:6px}.ccard .cintro{font-size:var(--fs-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mod-grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px}.mod{padding:14px 16px;gap:8px}.mod-name{font-size:17px}.mod-short{font-size:var(--fs)}.plist .name{font-family:var(--display);font-weight:500;font-size:16px;letter-spacing:-.01em}.plist .name a{color:inherit;text-decoration:none}.plist .name a:hover{color:var(--accent)}.plist .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plist .intro{color:var(--ink-2);font-size:var(--fs-xs);max-width:36ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plist td.acts{text-align:right}.plist td.acts .btn{margin-left:6px;vertical-align:middle}.mlist .mname{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:500;font-size:16px}.mlist .mname .fn-ico{width:26px;height:26px;border:1px solid var(--rule-hard);border-radius:999px;background:var(--surface)}.mlist .mname .fn-ico svg{width:13px;height:13px}.mlist tr.open td{background:var(--surface-2)}.mlist .mdoc{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.6;padding:4px 0 10px}.page-head .view-toggle{align-self:center}.plist td.name{white-space:nowrap;min-width:180px}.plist td:nth-child(2){white-space:nowrap}.plist td.acts{white-space:nowrap}.plist td{vertical-align:middle}.plist .name .intro{margin-top:2px}.dc-tabs{display:flex;gap:4px;padding:4px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--rule);align-self:flex-start}.dc-tab{background:none;border:0;padding:7px 14px;font-size:var(--fs);font-weight:500;color:var(--ink-2);border-radius:0;transition:background .12s,color .12s}.dc-tab:hover{color:var(--ink);background:var(--hover)}.dc-tab.on{color:var(--ink);background:var(--surface-3)}.dc-form .form-grid{align-items:end}.dc-form .switches{display:flex;gap:20px;align-items:center;flex-wrap:wrap;min-height:var(--ctl-h)}.dc-form textarea{min-height:160px;font-size:var(--fs-xs);line-height:1.55}.dc-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.loading{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:var(--fs-sm)}.loading i{width:14px;height:14px;border:2px solid var(--rule-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.dc-result{display:flex;flex-direction:column;gap:20px}.rv{display:flex;flex-direction:column;gap:16px;min-width:0}.rv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.rv-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-h3);font-weight:600;min-width:0}.rv-title .addr{font-weight:500;font-size:var(--fs-sm)}.rv-tools{display:flex;align-items:center;gap:8px;margin-left:auto}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px 20px;padding:16px 20px}.rv.compact .facts{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px 16px;padding:14px 16px}.fact{display:flex;flex-direction:column;gap:3px;min-width:0}.fact .k{font-size:var(--fs-key);color:var(--ink-3);font-family:var(--mono)}.fact .v{font-size:var(--fs);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.fact .v.mono{font-family:var(--mono);font-size:var(--fs-sm)}.fact .v .badge{vertical-align:-1px}.rv-sec .card-hd{padding:12px 20px}.rv-sec .card-hd .title{font-size:15px}.rv-sec .card-hd .cnt{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);font-weight:500;margin-left:2px}.rv.compact .rv-sec .card-hd{padding:10px 16px}.rv-sec .empty{padding:20px;font-size:var(--fs-sm)}.rv-sec .table th.r,.rv-sec .table td.r{text-align:right}.rv-sec .table .name{font-family:var(--mono);font-size:var(--fs-sm);word-break:break-all}.rv-sec .table .name.unknown{font-family:var(--ui);color:var(--ink-3)}.rv-sec .table .val{font-family:var(--mono);font-size:var(--fs-sm);word-break:break-all}.hash-list{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 18px;align-items:center;padding:14px 20px}.hash-list .k{font-size:var(--fs-sm);color:var(--ink-2);font-weight:500;white-space:nowrap}.hash-list .k small{display:block;font-weight:400;color:var(--ink-3);font-size:var(--fs-xs)}.hash-list .addr{font-size:var(--fs-sm)}.rv.compact .hash-list{padding:12px 16px;gap:8px 12px}.consts{display:flex;flex-direction:column;gap:12px;padding:14px 20px}.consts .k{font-size:var(--fs-key);color:var(--ink-3);margin-bottom:6px;font-family:var(--mono)}.sum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:1100px){.sum-grid{grid-template-columns:1fr}}.sum{padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}.sum .k{font-size:var(--fs-sm);color:var(--ink-2);font-weight:500;display:flex;align-items:center;gap:8px}.score{display:flex;align-items:baseline;gap:8px}.score b{font-size:44px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-family:var(--mono)}.score span{color:var(--ink-3);font-size:var(--fs-sm)}.score b.high{color:var(--pass)}.score b.mid{color:var(--warn)}.score b.low{color:var(--fail)}.ticks{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--ink-2)}.ticks .yes{color:var(--pass)}.ticks .no{color:var(--ink-3)}.cov{display:flex;flex-direction:column;gap:8px}.cov .bar-cell .lbl{font-size:var(--fs-xs);color:var(--ink-2);width:88px;flex-shrink:0}.stat4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--r-lg);background:var(--surface-2);min-width:0}.stat b{font-size:24px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-family:var(--mono)}.stat span{font-size:var(--fs-xs);color:var(--ink-2)}.stat.same b{color:var(--pass)}.stat.changed b{color:var(--warn)}.stat.missing b{color:var(--fail)}.stat.extra b{color:var(--info)}.cmp-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}@media(max-width:1100px){.cmp-two{grid-template-columns:1fr}}.cmp-two .rv-title{font-size:15px}.curl summary{cursor:pointer;padding:12px 20px;font-weight:500;font-size:var(--fs-sm);color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:8px}.curl summary:before{content:"›";display:inline-block;transition:transform .15s;color:var(--ink-3)}.curl[open] summary:before{transform:rotate(90deg)}.curl summary:hover{color:var(--ink)}.curl .curl-bd{display:flex;align-items:flex-start;gap:10px;padding:0 20px 16px}.curl pre{flex:1;margin:0;font-family:var(--mono);font-size:var(--fs-xs);white-space:pre-wrap;word-break:break-all;color:var(--ink);line-height:1.6;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px}.curl .help{padding:0 20px 14px}.sol-tabs{display:flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--rule);align-self:flex-start}.sol-tab{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:7px 14px;font-size:var(--fs);font-weight:500;color:var(--ink-2);border-radius:0;transition:background .12s,color .12s}.sol-tab .cnt{font-family:var(--mono);font-size:var(--fs-key);color:var(--ink-3);font-weight:500}.sol-tab:hover{color:var(--ink);background:var(--hover)}.sol-tab.on{color:var(--ink);background:var(--surface-3)}.sol-status{display:flex;flex-wrap:wrap;gap:14px 36px;align-items:flex-start;padding:16px 20px}.sol-stream{display:flex;flex-direction:column;gap:5px;min-width:190px}.sol-stream .k,.sol-counts .k{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.sol-stream .v{display:flex;align-items:center;gap:8px;font-size:var(--fs);color:var(--ink);flex-wrap:wrap}.sol-stream .v .dim{font-family:var(--mono);font-size:var(--fs-xs)}.sol-stream-sub{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5}.sol-warn{color:var(--warn)}.sol-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);flex-shrink:0}.sol-dot.on{background:var(--pass-base);box-shadow:0 0 #2e7d4f80;animation:ring 2s ease-out infinite}.sol-dot.bad{background:var(--accent-fill)}.sol-dot.warn{background:var(--warn-base)}.sol-counts{display:flex;gap:24px;flex-wrap:wrap}.sol-counts .stat-i .v{font-size:24px}.sol-jobs .v .chip-s{text-transform:none;letter-spacing:0}.sol-gaps{display:flex;flex-direction:column;gap:8px;padding:0 20px 16px}.sol-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.sol-toolbar .field{flex-direction:row;align-items:center;gap:8px}.sol-toolbar .field>label{white-space:nowrap}.sol-toolbar input.ctl{width:280px;height:30px;font-size:var(--fs-sm)}.sol-toolbar .sel{width:140px}.sol-toolbar .sel .sel-btn{height:30px;font-size:var(--fs-sm)}.card-hd .sol-toolbar{margin-left:auto}.sol-addr .sol-ext{font-family:var(--ui);font-size:var(--fs-xs);color:var(--ink-3);text-decoration:none}.sol-addr .sol-ext:hover{color:var(--accent)}.sol-summary{max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sol-two{display:flex;flex-direction:column;gap:3px;min-width:0}.sol-two b{font-weight:500}.sol-two .sub{font-size:var(--fs-xs)}.sol-assets{display:flex;flex-direction:column;gap:2px;font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.sol-assets .in{color:var(--pass)}.sol-assets .out{color:var(--fail)}.table tr.sol-row{cursor:pointer}.table tr.sol-row.on td{background:var(--accent-soft)}.sol-more{display:flex;justify-content:center;align-items:center;gap:12px;padding:12px;border-top:1px solid var(--rule);font-size:var(--fs-sm);color:var(--ink-3)}.sol-chk-row{display:flex;gap:16px;flex-wrap:wrap;min-height:var(--ctl-h);align-items:center}.sol-err{color:var(--fail);font-size:var(--fs-xs)}.sol-inline-err{display:block;max-width:36ch;white-space:normal;color:var(--fail);font-size:var(--fs-xs);line-height:1.4}.sol-clip{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.sol-facts{padding:14px 20px}.sol-dlg-sec{border-top:1px solid var(--rule)}.sol-dlg-sec .card-hd{padding:10px 20px;border-bottom:0}.sol-dlg-sec .card-hd .title{font-size:15px}.sol-json{max-height:380px;overflow:auto;font-family:var(--mono);font-size:var(--fs-key);line-height:1.5;white-space:pre-wrap;word-break:break-all;margin:0;padding:12px 16px;background:var(--surface-2);border-top:1px solid var(--rule);color:var(--ink-2)}.sol-raw summary{cursor:pointer;padding:12px 20px;font-weight:500;font-size:var(--fs-sm);color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:8px}.sol-raw summary:before{content:"›";display:inline-block;transition:transform .15s;color:var(--ink-3)}.sol-raw[open] summary:before{transform:rotate(90deg)}.sol-raw summary .tools{margin-left:auto}.sol-crumb{display:flex;align-items:center;gap:10px}.sol-head{display:flex;gap:18px;align-items:flex-start}.sol-head .h1{font-size:28px}.sol-head-main{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.sol-head .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sol-head .addr{font-size:var(--fs-sm)}.sol-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.sol-ai-head{font-family:var(--display);font-size:22px;font-weight:400;letter-spacing:-.02em;line-height:1.3;margin:0}.sol-ai p{margin:0 0 12px;line-height:1.75;max-width:78ch;color:var(--ink);font-size:15px}.sol-ai p:last-child{margin-bottom:0}.sol-claims{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.sol-claims li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.55}.sol-claims .badge{flex-shrink:0;margin-top:2px}.sol-claims .ids{display:block;font-family:var(--mono);font-size:var(--fs-key);color:var(--ink-4);margin-top:2px;word-break:break-all}.sol-sub-h{font-family:var(--mono);font-size:var(--fs-key);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}.sol-block{padding:14px 20px;border-top:1px solid var(--rule)}.sol-block:first-child{border-top:0}.sol-paths{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-2);line-height:1.7;word-break:break-all;column-count:2;column-gap:28px;margin:0;padding:0;list-style:none}@media(max-width:900px){.sol-paths{column-count:1}}.sol-seeds{display:flex;flex-wrap:wrap;gap:6px}.sol-limits{margin:0;padding-left:18px;color:var(--ink-2);font-size:var(--fs-sm);line-height:1.6}.sol-cap{max-width:68ch}.chip-s.chain.devnet{border-style:dashed}.sol-radio{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.sol-radio label{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--rule);cursor:pointer;font-size:var(--fs-sm)}.sol-radio label:hover{background:var(--hover)}.sol-radio input{accent-color:var(--accent-fill);margin:0}.sol-note{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.55}.sol-cell-actions{display:flex;gap:2px;justify-content:flex-end;flex-wrap:nowrap}.sol-live-badge{display:inline-flex;align-items:center;gap:7px;color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.sol-feed-note{margin:0;padding:12px 20px;color:var(--ink-3);font-size:var(--fs-sm);border-bottom:1px solid var(--rule)}.sol-report-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:18px;align-items:start}.sol-report-grid>.card{margin:0;min-width:0}.sol-key-group{padding:14px 20px;border-top:1px solid var(--rule)}.sol-key-group h4{font-size:var(--fs-sm);margin:0 0 9px;color:var(--ink-2);font-weight:500}.sol-key-group p{font-size:var(--fs-sm);margin:6px 0}.sol-key-item+.sol-key-item{margin-top:12px}.sol-key-value{display:flex;align-items:flex-start;gap:7px;font-size:var(--fs-sm);overflow-wrap:anywhere}.sol-key-value>span{min-width:0}.sol-key-value .addr{max-width:100%;white-space:normal;overflow-wrap:anywhere}.sol-key-origin{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:7px;color:var(--ink-3);font-size:var(--fs-key)}.sol-key-origin summary{cursor:pointer}.sol-key-origin details[open]{flex-basis:100%;overflow-wrap:anywhere}.sol-evidence>summary{padding:15px 20px;cursor:pointer;color:var(--ink-2)}.sol-evidence>.card{margin:0;border:0;border-top:1px solid var(--rule)}@media(max-width:1100px){.sol-report-grid{grid-template-columns:minmax(0,1fr)}.sol-head{flex-wrap:wrap}.sol-actions{justify-content:flex-start;flex-shrink:1}}@media(max-width:680px){.sol-tabs{overflow-x:auto;max-width:100%}.sol-tab{white-space:nowrap;padding:8px 10px}.sol-toolbar,.card-hd .sol-toolbar{width:100%;margin-left:0}.sol-toolbar .field{flex-wrap:wrap}.sol-toolbar input.ctl{max-width:100%}.sol-status{gap:18px}.sol-counts{gap:16px}}.sol-claim-source{margin-top:4px;color:var(--ink-3);font-size:var(--fs-key)}.sol-claim-source summary{cursor:pointer}
