@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color-scheme:light;--bg: #f7f7f7;--surface: #ffffff;--fg: #0a0a0a;--muted: #6f6f6f;--muted-strong:#5b5b5b;--border: rgba(10, 10, 10, .09);--accent: #0a0a0a;--accent-hover:#1f1f1f;--accent-on-solid: #f7f7f7;--accent-tint: rgba(10, 10, 10, .06);--accent-tint-strong: rgba(10, 10, 10, .1);--bg-hover: rgba(10, 10, 10, .05);--bg-subtle: #f0f0f0;--field-border: rgba(10, 10, 10, .24);--disabled-bg: #f0f0f0;--disabled-fg: #9a9a9a;--blue: #3080ff;--blue-deep: #1457d9;--blue-soft: rgba(48, 128, 255, .12);--link: #1457d9;--link-hover: #0e3fae;--focus-shadow: 0 0 0 3px rgba(48, 128, 255, .35);--teal: #0a7a6e;--teal-strong: #08675c;--teal-soft: rgba(10, 122, 110, .1);--danger: #d81f4e;--danger-soft: rgba(216, 31, 78, .09);--danger-border: rgba(216, 31, 78, .3);--amber: #8a5a00;--amber-soft: rgba(138, 90, 0, .1);--font-display: "Space Grotesk", "PingFang SC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;--radius-sm: 6px;--radius-control: 8px;--radius-panel: 14px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--motion-fast: .16s;--motion-base: .2s;--motion-slow: .24s;--motion-enter: .32s;--easing: cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{color-scheme:dark;--bg: #060606;--surface: #0f0f0f;--fg: #f5f5f5;--muted: #a0a0a0;--muted-strong:#b6b6b6;--border: rgba(245, 245, 245, .1);--accent: #f5f5f5;--accent-hover:#e6e6e6;--accent-on-solid: #0a0a0a;--accent-tint: rgba(245, 245, 245, .08);--accent-tint-strong: rgba(245, 245, 245, .14);--bg-hover: rgba(245, 245, 245, .06);--bg-subtle: #151515;--field-border: rgba(245, 245, 245, .24);--disabled-bg: #1a1a1a;--disabled-fg: #7b7b7b;--blue: #6aa3ff;--blue-deep: #8cbbff;--blue-soft: rgba(48, 128, 255, .2);--link: #8cbbff;--link-hover: #b6d2ff;--focus-shadow: 0 0 0 3px rgba(48, 128, 255, .45);--teal: #2bb5a0;--teal-strong: #4fd0bb;--teal-soft: rgba(43, 181, 160, .16);--danger: #ff3864;--danger-soft: rgba(255, 56, 100, .14);--danger-border: rgba(255, 56, 100, .36);--amber: #f0b429;--amber-soft: rgba(240, 180, 41, .14)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;min-width:320px;min-height:100%;background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:13px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color var(--motion-base) var(--easing),color var(--motion-base) var(--easing)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--fg);text-wrap:balance}code,pre{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--focus-shadow)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}.container{max-width:960px;margin-inline:auto;padding-inline:24px}.topnav{position:sticky;top:0;z-index:30;background:color-mix(in oklab,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:background-color var(--motion-base) var(--easing),border-color var(--motion-base) var(--easing)}.topnav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:14px}.brand-lockup{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none}.brand-mark{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:var(--radius-control);background:var(--accent);color:var(--accent-on-solid);transition:background-color var(--motion-base) var(--easing),color var(--motion-base) var(--easing)}.brand-mark svg{display:block}.brand-lockup>div{display:grid;min-width:0;gap:1px}.brand-lockup strong{color:var(--fg);font-family:var(--font-display);font-size:15px;font-weight:600;line-height:1.25;letter-spacing:-.01em}.brand-lockup span{color:var(--muted);font-size:11px;line-height:1.3}.header-actions{display:flex;flex:0 0 auto;align-items:center;gap:12px}.theme-switch{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-subtle)}.theme-switch-option{min-height:26px;padding:0 10px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--muted);font-size:11px;font-weight:600;line-height:1;transition:background-color var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing)}.theme-switch-option:hover:not(:disabled){color:var(--fg);background:var(--bg-hover)}.theme-switch-option[aria-pressed=true]{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #0a0a0a1f}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:var(--radius-pill);background:var(--teal-soft);color:var(--teal);font-size:11px;font-weight:600;white-space:nowrap;transition:background-color var(--motion-base) var(--easing),color var(--motion-base) var(--easing)}.status-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.screen-tabs{display:flex;gap:2px;margin-top:16px}.screen-tab{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--muted);font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background-color var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.screen-tab:hover:not(:disabled){color:var(--fg);background:var(--bg-subtle)}.screen-tab[aria-pressed=true]{background:var(--surface);color:var(--fg);border-color:var(--border)}.app-shell{padding-block:20px 40px}.page-heading{margin-bottom:16px}.page-heading h1{margin-bottom:4px;font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.35;letter-spacing:-.01em}.page-heading p{margin-bottom:0;color:var(--muted);font-size:12px;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 16px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--fg);font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;transition:background-color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),transform var(--motion-fast) var(--easing)}.btn:not(:disabled):active{transform:translateY(1px)}.btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-on-solid)}.btn-primary:not(:disabled):hover{border-color:var(--accent-hover);background:var(--accent-hover)}.btn-secondary:hover:not(:disabled){border-color:var(--field-border);background:var(--bg-subtle)}.btn-small{min-height:32px;padding:6px 12px;font-size:12px}.btn-ghost{border-color:transparent;background:transparent;color:var(--link);padding-inline:10px}.btn-ghost:hover:not(:disabled){color:var(--link-hover);background:var(--blue-soft);text-decoration:underline;text-underline-offset:3px}.btn:disabled{border-color:var(--border);background:var(--disabled-bg);color:var(--disabled-fg)}.btn svg{flex:0 0 auto}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);padding:16px;transition:background-color var(--motion-base) var(--easing),border-color var(--motion-base) var(--easing)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-title h2{margin:0;font-size:13px;font-weight:600;line-height:1.4;font-family:var(--font-body)}.panel-title .hint-line{font-size:11px;color:var(--muted);line-height:1.5}.connect-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.connect-meta{min-width:0}.connect-meta h2{margin:0 0 2px;font-size:13px;font-weight:600;line-height:1.4}.connect-meta p{margin:0;color:var(--muted);font-size:11px;line-height:1.5;max-width:62ch}.connect-status-line{display:flex;align-items:center;gap:10px;margin-top:10px;min-width:0}.conn-addr{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:500}.conn-addr.connected{color:var(--teal)}.conn-hint{color:var(--muted);font-size:11px}.connect-actions{display:flex;align-items:center;gap:8px}.config-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px;align-items:start}@media (max-width: 760px){.config-grid,.connect-panel{grid-template-columns:1fr}.connect-actions{justify-content:flex-start}}.file-upload{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;border:1px dashed var(--field-border);border-radius:var(--radius-control);color:var(--muted);font-size:12px;cursor:pointer;transition:border-color var(--motion-fast) var(--easing),background-color var(--motion-fast) var(--easing)}.file-upload:hover{border-color:var(--blue);background:var(--blue-soft);color:var(--fg)}.file-upload.uploaded{border-color:var(--teal);background:var(--teal-soft);color:var(--teal)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:600;line-height:1.4}.type-tag{display:inline-flex;padding:1px 6px;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--muted-strong);font-family:var(--font-mono);font-size:10px;line-height:1.5}.input,.textarea{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--field-border);border-radius:var(--radius-control);background:var(--surface);color:var(--fg);font-size:13px;line-height:1.5;transition:border-color var(--motion-fast) var(--easing),box-shadow var(--motion-fast) var(--easing),background-color var(--motion-base) var(--easing)}.input:hover:not(:disabled):not(:focus),.textarea:hover:not(:disabled):not(:focus){border-color:color-mix(in oklab,var(--field-border) 60%,var(--fg))}.input:focus-visible,.textarea:focus-visible{outline:0;border-color:var(--blue);box-shadow:var(--focus-shadow)}.input::placeholder,.textarea::placeholder{color:var(--disabled-fg)}.input:disabled,.textarea:disabled{background:var(--disabled-bg);color:var(--disabled-fg)}.input-mono{font-family:var(--font-mono);font-size:12px}.input-mono::placeholder{font-family:var(--font-mono)}.textarea{min-height:96px;resize:vertical;line-height:1.55}.field-error{display:flex;align-items:center;gap:6px;color:var(--danger);font-size:12px;line-height:1.4}.parse-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.parse-bar .hint{color:var(--muted);font-size:11px;line-height:1.5}.parse-bar .field-error{margin:0}@media (max-width: 640px){.parse-bar{align-items:stretch;flex-direction:column}}.registry{margin-top:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;flex-wrap:wrap}.section-heading h2{margin:0;font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.005em}.mono-count{font-family:var(--font-mono);font-weight:500;color:var(--muted);font-size:12px;margin-left:6px;font-variant-numeric:tabular-nums}.search-box{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--muted);transition:border-color var(--motion-fast) var(--easing),box-shadow var(--motion-fast) var(--easing),background-color var(--motion-base) var(--easing)}.search-box:focus-within{border-color:var(--blue);box-shadow:var(--focus-shadow)}.search-box svg{flex:0 0 auto}.search-input{flex:1;min-width:160px;border:0;outline:0;background:transparent;color:var(--fg);font-size:13px}.search-input::placeholder{color:var(--disabled-fg)}.search-count{flex:0 0 auto;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.search-clear{display:grid;width:26px;height:26px;flex:0 0 auto;place-items:center;border:0;border-radius:var(--radius-control);background:transparent;color:var(--muted);transition:background-color var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing)}.search-clear:hover{background:var(--bg-subtle);color:var(--fg)}.fn-list{display:flex;flex-direction:column}.fn-row{padding:14px 0;border-top:1px solid var(--border);transition:background-color var(--motion-fast) var(--easing)}.fn-row:hover{background:var(--bg-hover)}.fn-list .fn-row:last-child{border-bottom:1px solid var(--border)}.fn-head{display:flex;align-items:center;gap:14px;min-width:0}.fn-index{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:var(--radius-control);background:var(--accent-tint);color:var(--fg);font-family:var(--font-mono);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.fn-name-block{flex:1 1 auto;min-width:0}.fn-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fn-name{margin:0;font-family:var(--font-mono);font-size:14px;font-weight:600;line-height:1.35;word-break:break-all}.mut-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-pill);font-size:10px;font-weight:600;line-height:1.4;white-space:nowrap}.mut-tag:before{width:6px;height:6px;border-radius:50%;background:currentColor;content:""}.mut-tag.read{background:var(--teal-soft);color:var(--teal)}.mut-tag.write{background:var(--bg-subtle);color:var(--muted)}.mut-tag.payable{background:var(--amber-soft);color:var(--amber)}.fn-sig{margin-top:3px;color:var(--muted-strong);font-family:var(--font-mono);font-size:11px;line-height:1.5;overflow-wrap:anywhere}.fn-action{flex:0 0 auto;display:flex;align-items:center;gap:8px}.fn-action .btn-small{min-width:96px}@media (max-width: 560px){.fn-head{flex-wrap:wrap}.fn-action{width:100%}.fn-action .btn-small{flex:1 1 auto;min-width:0}}.fn-params{display:grid;gap:12px;margin-top:14px;padding:12px;border-radius:var(--radius-control);background:var(--bg-hover);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.fn-result{margin-top:12px}.result-box{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--teal-soft);border-radius:var(--radius-control);background:var(--teal-soft)}.result-box--error{border-color:var(--danger-border);background:var(--danger-soft)}.result-header{display:flex;align-items:center;gap:8px;color:var(--teal);font-size:11px;font-weight:600}.result-box--error .result-header{color:var(--danger)}.result-content{margin:0;color:var(--fg);font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-all;max-height:180px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--field-border) transparent}.result-content::-webkit-scrollbar{width:8px}.result-content::-webkit-scrollbar-thumb{background:var(--field-border);border-radius:var(--radius-pill)}.result-content::-webkit-scrollbar-thumb:hover{background:var(--muted)}.result-box--error .result-content{color:var(--danger)}.fn-result .btn-ghost{padding-inline:6px;font-size:11px}.empty-state{display:grid;place-items:center;text-align:center;min-height:260px;padding:40px 24px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface)}.empty-mark{display:grid;width:44px;height:44px;margin-bottom:16px;place-items:center;border-radius:50%;background:var(--accent-tint);color:var(--fg)}.empty-state h3{margin-bottom:8px;font-family:var(--font-display);font-size:15px;font-weight:600}.empty-state p{margin-bottom:0;color:var(--muted);font-size:13px;line-height:1.6;max-width:44ch}.empty-state code{padding:1px 5px;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--fg);font-size:12px}.block-stack{display:flex;flex-direction:column;gap:16px;margin-top:4px}.block{display:flex;flex-direction:column;gap:14px}.block-title{margin:0;font-size:13px;font-weight:600;line-height:1.4}.block-desc{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.block-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.block-form .field{flex:1 1 160px;max-width:220px}.block-form .btn{flex:0 0 auto}.key-list{display:flex;flex-direction:column;border-top:1px solid var(--border)}.key-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.key-idx{flex:0 0 28px;color:var(--muted);font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums}.key-value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--fg)}.key-copy{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-control);background:transparent;color:var(--muted);font-size:11px;font-weight:600;transition:background-color var(--motion-fast) var(--easing),color var(--motion-fast) var(--easing),border-color var(--motion-fast) var(--easing)}.key-copy:hover:not(:disabled){background:var(--bg-subtle);color:var(--fg);border-color:var(--field-border)}.key-copy[data-copied=true]{color:var(--teal);border-color:var(--teal);background:var(--teal-soft)}.block-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.block-note{color:var(--muted);font-size:11px;line-height:1.5;max-width:56ch}.copy-success-hint{color:var(--teal);font-size:11px;font-weight:600}.page-note{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 20px;color:var(--muted);font-size:11px;text-align:center;border-top:1px solid var(--border)}.toast{position:fixed;left:50%;bottom:24px;z-index:60;transform:translate(-50%) translateY(8px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:12px;font-weight:600;box-shadow:0 12px 32px color-mix(in oklab,var(--fg) 18%,transparent);transition:opacity .18s var(--easing),transform .18s var(--easing)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.screen-enter-active,.screen-leave-active{transition:opacity var(--motion-base) var(--easing),transform var(--motion-base) var(--easing)}.screen-enter-from{opacity:0;transform:translateY(10px)}.screen-leave-to{opacity:0;transform:translateY(-6px)}.fn-enter-active,.fn-leave-active,.fn-move,.list-enter-active,.list-leave-active,.list-move{transition:opacity var(--motion-fast) var(--easing),transform var(--motion-fast) var(--easing)}.fn-enter-from,.fn-leave-to,.list-enter-from,.list-leave-to{opacity:0;transform:translateY(6px)}.fn-leave-active,.list-leave-active{position:absolute;width:100%}.result-enter-active{transition:opacity var(--motion-base) var(--easing),transform var(--motion-base) var(--easing)}.result-enter-from{opacity:0;transform:translateY(4px)}.empty-enter-active{transition:opacity var(--motion-base) var(--easing),transform var(--motion-base) var(--easing)}.empty-enter-from{opacity:0;transform:translateY(6px)}.spinner{width:14px;height:14px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-rotate .7s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}
