@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root{--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--bg:#f3f6f6;--surface:#fff;--surface-2:#f8fafa;--paper:#fff;--ink:#122126;--muted:#52636a;--line:#d8e0e2;--line-strong:#bac7cb;--accent:#1e669e;--accent-ink:#fff;--accent-soft:#e2eef7;--warm:#b85f14;--danger:#c2371f;--grid-dot:#c3cfd3;--in:#d63a3f;--out:#1f9464;--io:#2f63d6;--radius:12px;--shadow:0 1px 2px #1221260f, 0 4px 16px #1221260f;--header-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0b1418;--surface:#122126;--surface-2:#0e1b20;--paper:#112329;--ink:#e6eef0;--muted:#8fa4ab;--line:#223840;--line-strong:#2f4a54;--accent:#6cb3ea;--accent-ink:#0b1418;--accent-soft:#14303f;--warm:#f8b87e;--danger:#ff7a66;--grid-dot:#27424c;--in:#ff6b70;--out:#48d597;--io:#86a8ff;--shadow:0 1px 2px #0006, 0 6px 20px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1418;--surface:#122126;--surface-2:#0e1b20;--paper:#112329;--ink:#e6eef0;--muted:#8fa4ab;--line:#223840;--line-strong:#2f4a54;--accent:#6cb3ea;--accent-ink:#0b1418;--accent-soft:#14303f;--warm:#f8b87e;--danger:#ff7a66;--grid-dot:#27424c;--in:#ff6b70;--out:#48d597;--io:#86a8ff;--shadow:0 1px 2px #0006, 0 6px 20px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}h1,h2,h3,p{margin:0}a{color:inherit}kbd,.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.skip-link{background:var(--accent);color:var(--accent-ink);z-index:100;border-radius:8px;padding:8px 12px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.site-header{z-index:30;height:var(--header-h);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:0 clamp(16px,3vw,32px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;text-decoration:none;display:flex}.brand img{border-radius:6px;display:block}.brand-name{letter-spacing:-.01em;font-size:17px;font-weight:700}.brand-sub{color:var(--muted);margin-left:6px;font-weight:400}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tabs{gap:4px;display:flex}.tabs a{color:var(--muted);border-radius:8px;padding:6px 12px;font-weight:500;text-decoration:none}.tabs a:hover{color:var(--ink);background:var(--surface)}.tabs a[aria-current=page]{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.header-end{gap:4px;margin-left:auto;display:flex}.icon-btn{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;text-decoration:none;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface);border-color:var(--line)}.icon-btn:disabled{opacity:.35;cursor:default}.btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}.btn.danger{color:var(--danger)}.btn.small{border-radius:8px;padding:6px 11px;font-size:13px}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.switch input{accent-color:var(--accent);width:16px;height:16px;margin:0}.chip{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:0 7px;font-size:12px;font-weight:500;line-height:20px;display:inline-block}kbd{border:1px solid var(--line-strong);background:var(--surface);border-radius:5px;padding:0 6px;font-size:12px;line-height:18px;display:inline-block}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px}.main-library{max-width:1480px;margin:0 auto;padding:0 clamp(16px,3vw,32px) 64px}.hero{max-width:760px;padding:clamp(36px,6vw,72px) 0 32px}.hero h1{letter-spacing:-.03em;margin:10px 0 14px;font-size:clamp(2rem,4.4vw,3.2rem);font-weight:600;line-height:1.08}.hero-sub{color:var(--muted);max-width:62ch;font-size:17px}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.toolbar{top:var(--header-h);z-index:20;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap;align-items:center;gap:20px;padding:12px 0;display:flex;position:sticky}.search{border:1px solid var(--line-strong);background:var(--surface);max-width:560px;height:42px;color:var(--muted);border-radius:11px;flex:320px;align-items:center;gap:10px;padding:0 12px;display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;min-width:0}.search input::-webkit-search-cancel-button{cursor:pointer}.layout{grid-template-columns:220px minmax(0,1fr);gap:32px;margin-top:8px;display:grid}.cat-nav{top:calc(var(--header-h) + 72px);max-height:calc(100vh - var(--header-h) - 100px);flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky;overflow:auto}.cat-nav a{color:var(--muted);border-radius:8px;justify-content:space-between;gap:8px;padding:7px 10px;font-size:14px;text-decoration:none;display:flex}.cat-nav a:hover{background:var(--surface);color:var(--ink)}.cat-nav a.active{background:var(--surface);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent);font-weight:500}.count{opacity:.7;font-size:12px}.category{scroll-margin-top:calc(var(--header-h) + 76px);padding-top:24px}.category:first-child{padding-top:8px}.section-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px;display:flex}.section-title{letter-spacing:-.015em;font-size:20px;font-weight:600}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s,transform .15s;position:relative;overflow:hidden}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.card-main{all:unset;cursor:pointer;box-sizing:border-box;width:100%;display:block}.card-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.card-canvas{background-color:var(--surface-2);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1.2px);border-bottom:1px solid var(--line);height:210px;color:var(--ink);background-position:50%;background-size:20px 20px;place-items:center;padding:4px;display:grid}.glyph{max-width:100%;max-height:100%;overflow:visible}.card-meta{padding:12px 14px 14px;display:block}.card-name{font-weight:500;line-height:1.35;display:block}.card-sub{color:var(--muted);align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.card-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.card:hover .card-actions,.card:focus-within .card-actions{opacity:1}.card-actions .icon-btn{background:var(--surface);border-color:var(--line);width:32px;height:32px}@media (hover:none){.card-actions{opacity:1}}.empty{color:var(--muted);padding:48px 0}.terminals .term circle{stroke:var(--surface);stroke-width:1.5px}.terminals .term-in circle{fill:var(--in)}.terminals .term-out circle{fill:var(--out)}.terminals .term-io circle{fill:var(--io)}.terminals .term text{font-family:var(--font-mono);font-size:11px;font-weight:500}.terminals .term-in text{fill:var(--in)}.terminals .term-out text{fill:var(--out)}.terminals .term-io text{fill:var(--io)}.glyph text{font-family:var(--font-sans)}.dot{border-radius:50%;width:9px;height:9px;margin-right:8px;display:inline-block}.dot-in{background:var(--in)}.dot-out{background:var(--out)}.dot-io{background:var(--io)}.drawer-root{z-index:60;position:fixed;inset:0}.drawer-scrim{background:#060a1280;animation:.15s fade;position:absolute;inset:0}.drawer{background:var(--bg);border-left:1px solid var(--line);flex-direction:column;gap:14px;width:min(520px,100%);padding:24px;animation:.2s slide;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:auto}.drawer-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.drawer-head h2{letter-spacing:-.015em;margin-top:4px;font-size:22px;line-height:1.25}.drawer-preview{border:1px solid var(--line);border-radius:var(--radius);background-color:var(--surface);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1.2px);min-height:260px;color:var(--ink);background-size:20px 20px;place-items:center;padding:8px;display:grid;overflow:auto}.lead{font-size:16px}.drawer h3,.inspector h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:6px;font-size:13px;font-weight:600}.terminal-table{border-collapse:collapse;width:100%;font-size:14px}.terminal-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:12px;font-weight:500}.terminal-table td{border-bottom:1px solid var(--line);padding:7px 8px}.drawer-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translate(24px)}}.toast{z-index:80;pointer-events:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast span{background:var(--ink);color:var(--bg);box-shadow:var(--shadow);border-radius:10px;padding:10px 16px;font-size:14px;display:inline-block}.loading{color:var(--muted);padding:48px}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr)}.cat-nav{flex-direction:row;gap:6px;max-height:none;padding-bottom:8px;position:static;overflow-x:auto}.cat-nav a{white-space:nowrap;border:1px solid var(--line)}.cat-nav a.active{box-shadow:none;border-color:var(--accent)}.tabs a{padding:6px 9px}.brand-sub{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.main-editor{height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h))}.editor{grid-template-columns:250px minmax(0,1fr) 270px;height:100%;min-height:0;display:grid}.palette,.inspector{background:var(--surface);flex-direction:column;min-height:0;display:flex}.palette{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line);overflow:auto}.palette-search{border-bottom:1px solid var(--line);padding:10px}.palette-search input{border:1px solid var(--line-strong);background:var(--surface-2);width:100%;height:36px;color:var(--ink);font:inherit;border-radius:9px;padding:0 10px}.palette-list{flex:1;padding:4px 8px 16px;overflow:auto}.palette-group h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 6px 6px;font-size:11px;font-weight:600}.palette-item{all:unset;box-sizing:border-box;cursor:pointer;width:100%;color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:4px 8px;font-size:13.5px;line-height:1.3;display:flex}.palette-item:hover{background:var(--surface-2)}.palette-item.armed{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.palette-item:focus-visible{outline:2px solid var(--accent)}.mini-glyph{width:48px;height:44px;color:var(--ink);flex:none;overflow:visible}.stage{flex-direction:column;min-width:0;min-height:0;display:flex}.editor-toolbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 10px;display:flex}.editor-toolbar .grow{flex:1;min-width:0}.editor-toolbar .sep{background:var(--line);flex:none;width:1px;height:22px;margin:0 6px}.tb-group{align-items:center;gap:2px;display:flex}.tb-doc{flex-wrap:wrap;gap:10px}.editor-toolbar .icon-btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tb-panel{gap:6px}.tb-panel[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tb-badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.btn svg{flex:none}.zoom{text-align:center;min-width:46px;color:var(--muted);font-size:13px}.stage-body{flex:1;min-height:0;display:flex}.canvas-wrap{background:var(--bg);flex:1;min-width:0;min-height:0;position:relative}.canvas{touch-action:none;width:100%;height:100%;color:var(--ink);cursor:default;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.canvas.is-armed{cursor:crosshair}.grid-dot{fill:var(--grid-dot)}.canvas .glyph-body{color:var(--ink)}.canvas .glyph-body text{font-family:var(--font-sans)}.item{cursor:move}.item-hit{fill:#0000;stroke:none}.sel-box{fill:color-mix(in srgb, var(--accent) 7%, transparent);stroke:var(--accent);stroke-width:1.25px;stroke-dasharray:5 4;pointer-events:none}.item-label{font-family:var(--font-mono);fill:var(--warm);pointer-events:none;font-size:14px;font-weight:500}.paper{fill:var(--paper);filter:drop-shadow(0 8px 28px #00000029)}.sheet text{font-family:var(--font-sans)}.wire{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.wire.selected{stroke:var(--accent);stroke-width:3px}.wire.draft{stroke:var(--accent);stroke-dasharray:6 4}.wire-hit{fill:none;stroke:#0000;stroke-width:14px;cursor:pointer}.junction{fill:var(--ink)}.term-g .t-dot{fill:var(--surface);stroke-width:1.5px}.term-g.tg-in .t-dot{stroke:var(--in)}.term-g.tg-out .t-dot{stroke:var(--out)}.term-g.tg-io .t-dot{stroke:var(--io)}.t-hit{fill:#0000;cursor:crosshair}.term-g:hover .t-dot,.term-g.is-target .t-dot{r:6;fill:var(--accent);stroke:var(--surface)}.t-label{font-family:var(--font-mono);fill:var(--muted);opacity:0;pointer-events:none;paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-size:11px;font-weight:500}.term-g:hover .t-label,.term-g.is-target .t-label,.canvas.is-wiring .t-label{opacity:1}.ghost{opacity:.45;color:var(--accent)}.ghost .glyph-body{color:var(--accent)}.canvas-empty,.canvas-hint{pointer-events:none;position:absolute;left:50%;transform:translate(-50%)}.canvas-empty{text-align:center;max-width:380px;top:38%}.canvas-hint{background:var(--ink);color:var(--bg);white-space:nowrap;box-shadow:var(--shadow);border-radius:10px;padding:8px 14px;font-size:13.5px;bottom:16px}.canvas-hint kbd{color:inherit;border-color:color-mix(in srgb, var(--bg) 50%, transparent);background:0 0}.inspector-body{flex-direction:column;gap:12px;padding:16px;display:flex}.inspector-body h2{letter-spacing:-.01em;font-size:17px;line-height:1.3}.row{flex-wrap:wrap;gap:6px;display:flex}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input{border:1px solid var(--line-strong);background:var(--surface-2);height:34px;color:var(--ink);font:14px var(--font-sans);border-radius:9px;min-width:0;padding:0 10px}.mono-field input{font:500 14px var(--font-mono)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.term-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.term-list li{grid-template-columns:auto 44px 1fr;align-items:baseline;gap:4px;font-size:13px;display:grid}.term-list .dot{align-self:center;margin:0}.shortcuts{grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:13px;display:grid}.shortcuts dt{white-space:nowrap}.shortcuts dd{color:var(--muted);margin:0}.tb-switch{margin-left:2px;font-size:13px}.row.between{justify-content:space-between;align-items:center}.sheet-form{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;min-width:0;margin:0;padding:10px 12px 12px;display:flex}.sheet-form legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 6px;font-size:12px;font-weight:600}.sheet-form .pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.sheet-form .field,.sheet-form .field input{width:100%;min-width:0}.size-pick select{border:1px solid var(--line-strong);background:var(--surface-2);height:30px;color:var(--ink);font:13px var(--font-sans);border-radius:8px;padding:0 6px}.conflict-box{fill:color-mix(in srgb, var(--danger) 10%, transparent);stroke:var(--danger);stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.chip-btn{border:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);height:28px;color:var(--danger);font:500 12.5px var(--font-sans);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;margin-left:6px;padding:0 10px;display:inline-flex}.chip-btn svg{width:15px;height:15px}.size-control .stepper{align-items:center;gap:4px;display:flex}.size-control .stepper .mono{text-align:center;min-width:56px;color:var(--ink);font-size:14px}.size-control .stepper .icon-btn{border-color:var(--line-strong);background:var(--surface-2);width:32px;height:32px}.size-control .stepper .btn{margin-left:auto}.warn p+button,.warn p+p{margin-top:6px}.warn button{color:var(--ink)}.warn{color:var(--danger);background:color-mix(in srgb, var(--danger) 9%, transparent);border-radius:8px;padding:8px 10px}.factor-row{flex-wrap:wrap;gap:6px;display:flex}.sheet-form+.sheet-form{margin-top:0}.guide{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 4;opacity:.7;pointer-events:none}.canvas.is-pan{cursor:grab}.canvas.is-panning{cursor:grabbing}.marquee{fill:color-mix(in srgb, var(--accent) 8%, transparent);stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.marquee.cross{stroke-dasharray:5 4;fill:color-mix(in srgb, var(--out) 9%, transparent);stroke:var(--out)}.icon-row{flex-wrap:wrap;gap:4px;margin:2px 0 8px;display:flex}.icon-btn.boxed{border-color:var(--line-strong);background:var(--surface-2);width:34px;height:34px}.icon-btn.boxed:hover:not(:disabled){border-color:var(--ink)}.note-text{font-family:var(--font-sans);fill:var(--ink);pointer-events:none}.note{cursor:move}.note-hit{fill:#0000;stroke:none}.canvas.is-text{cursor:text}.label-hit{fill:#0000;stroke:none;cursor:move}.item-label.rating{font-family:var(--font-sans);fill:var(--ink);font-size:12px;font-weight:500}.item-label.desc{font-family:var(--font-sans);fill:var(--muted);font-size:12px;font-weight:400}.note-editor{z-index:5;border:1px solid var(--accent);background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--ink);font-family:var(--font-sans);resize:none;box-shadow:0 0 0 3px var(--accent-soft);border-radius:4px;outline:none;margin:-2px 0 0 -4px;padding:2px 4px;position:absolute;overflow:hidden}.note-area{resize:vertical;border:1px solid var(--line-strong);background:var(--surface-2);width:100%;color:var(--ink);font:14px/1.4 var(--font-sans);border-radius:9px;padding:8px 10px}.note-area:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.select{border:1px solid var(--line-strong);background:var(--surface-2);height:34px;color:var(--ink);font:14px var(--font-sans);border-radius:9px;width:100%;padding:0 8px}.note-bold{align-self:end;height:34px}.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.wire.tap-target{stroke:var(--accent)}.tap-dot{fill:var(--accent);stroke:var(--surface);stroke-width:1.5px;pointer-events:none}.handle{stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.handle.seg{fill:var(--surface);cursor:copy}.handle.seg:hover{fill:var(--accent-soft)}.handle.via{fill:var(--accent);cursor:move}.shape-stroke{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.shape-stroke.shape-fill{fill:var(--ink);fill-opacity:.07}.shape-hit{fill:none;stroke:#0000;pointer-events:stroke;cursor:move}.shape-arrow{fill:var(--ink);stroke:none;pointer-events:none}.shape.selected .shape-stroke{stroke:var(--accent)}.shape.selected .shape-arrow{fill:var(--accent)}.shape.preview .shape-stroke{stroke:var(--accent);stroke-dasharray:6 4}.shape.preview .shape-arrow{fill:var(--accent)}.canvas.is-draw{cursor:crosshair}.handle.shape{fill:var(--surface);stroke:var(--accent);cursor:nwse-resize}.sheet-tabs{border-top:1px solid var(--line);background:var(--surface);flex:none;align-items:stretch;gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.sheet-tab{border:1px solid var(--line);background:var(--surface-2);max-width:220px;height:32px;color:var(--muted);font:13px var(--font-sans);cursor:pointer;border-bottom:none;border-radius:8px 8px 0 0;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.sheet-tab:hover{color:var(--ink)}.sheet-tab.is-active{background:var(--bg);color:var(--ink);border-color:var(--line-strong);font-weight:600}.sheet-tab .mono{color:var(--accent);font-size:12px}.sheet-tab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-tab-add{align-self:center;width:30px;height:30px;margin-left:4px}.sheet-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sheet-list li{border-radius:8px;align-items:center;gap:2px;display:flex}.sheet-list li.is-active{background:var(--accent-soft)}.sheet-list .icon-btn{flex:none;width:28px;height:28px}.sheet-open{min-width:0;height:30px;color:var(--ink);font:13px var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}.sheet-open .mono{color:var(--accent);font-size:12px}.sheet-open-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.net-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.net-list .field input{height:30px;font-family:var(--font-mono)}.net-refs{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ref-chip{border:1px solid var(--line-strong);background:var(--surface-2);height:24px;color:var(--ink);font:12px var(--font-mono);cursor:pointer;border-radius:999px;padding:0 8px}.ref-chip.wide{font-family:var(--font-sans)}.ref-chip:hover{border-color:var(--accent);color:var(--accent)}.link-btn{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.net-warn-box{fill:none;stroke:var(--warm);stroke-width:1.5px;stroke-dasharray:3 3;pointer-events:none}.item-label.xref{font-family:var(--font-mono);fill:var(--accent);font-size:12px;font-weight:500}.chip-btn.warn-chip{border-color:var(--warm);color:var(--warm);background:color-mix(in srgb, var(--warm) 10%, transparent)}.stage{position:relative}@media (width>=1100px) and (not (pointer:coarse)){.tb-view{z-index:6;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:2px;position:absolute;bottom:54px;left:12px}}.menu-pop{z-index:60;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:12px;padding:6px;overflow:auto}.menu-item{all:unset;box-sizing:border-box;width:100%;min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:14px;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--surface-2)}.menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.menu-item:disabled{opacity:.4;cursor:default}.menu-check{width:18px;color:var(--accent);flex:none;place-items:center;display:inline-grid}.menu-label{flex:1}.menu-hint{color:var(--muted);background:0 0;border:0;padding:0;font-size:12px}.menu-sep{border:0;border-top:1px solid var(--line);margin:4px 2px}.hint-btn{pointer-events:auto;border:1px solid color-mix(in srgb, var(--bg) 55%, transparent);color:inherit;font:600 13px var(--font-sans);cursor:pointer;background:0 0;border-radius:8px;margin-left:12px;padding:4px 12px}.panel-head{z-index:2;background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;padding:8px 8px 8px 16px;position:sticky;top:0}.panel-head h2{font-size:16px}.drawer-scrim{display:none}.only-compact,.only-touch{display:none!important}.canvas,.editor-toolbar .icon-btn,.editor-toolbar .btn{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.main-editor{overscroll-behavior:none}@media (width<=1099px){.only-compact{display:inline-flex!important}.panel-head.only-compact{display:flex!important}.editor{grid-template-columns:minmax(0,1fr)}.palette,.inspector{top:var(--header-h);z-index:40;width:min(340px,88vw);box-shadow:var(--shadow);visibility:hidden;transition:transform .22s,visibility 0s linear .22s;position:fixed;bottom:0;overflow:auto}.palette{border-right:1px solid var(--line);left:0;transform:translate(-104%)}.inspector{border-left:1px solid var(--line);right:0;transform:translate(104%)}.palette.is-open,.inspector.is-open{visibility:visible;transition-delay:0s;transform:none}.palette-list{flex:none;overflow:visible}.palette-search{z-index:1;background:var(--surface);position:sticky;top:49px}.drawer-scrim{inset:var(--header-h) 0 0 0;z-index:35;background:#00000061;border:0;padding:0;display:block;position:fixed}.mini-glyph{width:44px;height:40px}}@media (width<=639px){.stage-body{order:1}.sheet-tabs{order:2;padding-top:4px}.editor-toolbar{border-bottom:0;border-top:1px solid var(--line);padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));scrollbar-width:none;overscroll-behavior-x:contain;background:linear-gradient(to right, var(--surface) 30%, transparent) left center / 28px 100% no-repeat local, linear-gradient(to left, var(--surface) 30%, transparent) right center / 28px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #0003, transparent) left center / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #0003, transparent) right center / 12px 100% no-repeat scroll, var(--surface);flex-wrap:nowrap;order:3;gap:4px 14px;overflow-x:auto}.editor-toolbar::-webkit-scrollbar{display:none}.editor-toolbar>*,.tb-group{flex:none}.editor-toolbar .grow{display:none}.tb-doc{flex-wrap:nowrap}.palette,.inspector{border:0;border-top:1px solid var(--line-strong);width:auto;max-height:min(74dvh,620px);padding-bottom:env(safe-area-inset-bottom,0px);border-radius:16px 16px 0 0;inset:auto 0 0;transform:translateY(104%)}.drawer-scrim{inset:0}.canvas-hint{white-space:normal;text-align:center;justify-content:center;align-items:center;max-width:calc(100% - 24px);display:flex;bottom:12px}.canvas-empty{max-width:300px;padding:0 12px}.sheet-tab{max-width:160px}}@media (height<=520px){:root{--header-h:46px}.editor-toolbar{scrollbar-width:none;flex-wrap:nowrap;padding-top:3px;padding-bottom:3px;overflow-x:auto}.editor-toolbar::-webkit-scrollbar{display:none}.editor-toolbar>*,.tb-group{flex:none}.editor-toolbar .grow{display:none}.tb-doc{flex-wrap:nowrap}.sheet-tabs{padding-top:2px}.sheet-tab{height:28px}.palette,.inspector{max-height:none}}@media (pointer:coarse){.only-touch{display:inline-grid!important}.editor .icon-btn{width:44px;height:44px}.editor .btn.small{min-height:44px;padding:0 14px}.editor-toolbar .switch{min-height:44px}.editor-toolbar .switch input{width:22px;height:22px}.editor-toolbar .chip-btn{min-height:40px}.menu-item{min-height:46px;font-size:15px}.menu-hint{display:none}.palette-item{min-height:56px}.field input,.palette-search input{height:44px;font-size:16px}.sheet-tab{height:40px}.sheet-tab-add,.sheet-list .icon-btn{width:40px;height:40px}.ref-chip{height:34px;padding:0 12px}.hint-btn{min-height:36px}.t-hit{r:calc(15px * var(--inv-k,1))}.wire-hit{stroke-width:calc(26px * var(--inv-k,1))}}@media (pointer:coarse) and (height<=520px){.editor .icon-btn{width:38px;height:38px}.editor .btn.small{min-height:38px}}
