@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(./jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(./jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-canvas:#fafafa;--dot:#d4d4d8;--bg-panel:#ffffffdb;--bg-solid:#fff;--bg-subtle:#f4f4f5;--fg:#18181b;--fg-muted:#71717a;--fg-faint:#a1a1aa;--border:#00000014;--border-strong:#00000024;--accent:#4f46e5;--accent-soft:#eef2ff;--accent-fg:#fff;--danger:#dc2626;--st-unvisited:#52525b;--st-frontier:#0072b2;--st-examining:#cc79a7;--st-explored:#009e73;--st-ignored:#d55e00;--st-path:#e69f00;--v-fill:#fff;--v-label:#18181b;--shadow-float:0 1px 2px #0000000f, 0 10px 30px -12px #0000004d;--shadow-accent:0 6px 16px -8px #4f46e599;--r-sm:6px;--r-md:10px;--r-lg:14px;--ease:cubic-bezier(.2, .8, .2, 1);--glow-alpha:.18;--font-ui:"Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}[data-theme=dark]{--bg-canvas:#0f0f12;--dot:#2a2a31;--bg-panel:#18181bdb;--bg-solid:#18181b;--bg-subtle:#27272a;--fg:#fafafa;--fg-muted:#a1a1aa;--fg-faint:#71717a;--border:#ffffff17;--border-strong:#ffffff29;--accent:#818cf8;--accent-soft:#818cf829;--accent-fg:#0f0f12;--st-unvisited:#a1a1aa;--st-frontier:#3b9ddd;--st-examining:#e08fc0;--st-explored:#10b981;--st-ignored:#f0782a;--st-path:#f5b62e;--v-fill:#27272a;--v-label:#fafafa;--shadow-float:0 1px 2px #0006, 0 12px 32px -12px #000000b3;--glow-alpha:.26}[data-palette=classic]{--st-unvisited:#000;--st-frontier:#0064ff;--st-examining:#9600ff;--st-explored:#009664;--st-ignored:#960000}[data-palette=classic][data-theme=dark]{--st-unvisited:#e4e4e7;--st-frontier:#4d8cff;--st-examining:#b366ff;--st-explored:#1fbe8a;--st-ignored:#e05050}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);color:var(--fg);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-size:14px;line-height:1.4;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.mono{font-family:var(--font-mono)}kbd.key{font:500 10px/1 var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border);color:var(--fg-muted);border-radius:4px;padding:2px 4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{background:radial-gradient(var(--dot) 1px, transparent 1.2px) 0 0 / 18px 18px, var(--bg-canvas);position:fixed;inset:0;overflow:hidden}.app[data-projector=true] .panel.left,.app[data-projector=true] .panel.right,.app[data-projector=true] .doc,.app[data-projector=true] .actions,.app[data-projector=true] .legend,.app[data-projector=true] .zoom{display:none}.panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-float);animation:panel-in .18s var(--ease);position:absolute}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.label{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);font-size:11.5px;font-weight:600}.btn{border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-solid);height:36px;color:var(--fg);transition:background .12s var(--ease), transform .12s var(--ease);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;font-size:13.5px;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #0000000d}.btn:hover{background:var(--bg-subtle)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.icon{justify-content:center;width:36px;padding:0}.btn.primary{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-accent);border-color:#0000}.btn.primary kbd.key{color:inherit;background:#fff3;border-color:#0000}.btn.danger{color:var(--danger)}.btn.danger.fill{background:var(--danger);color:#fff;border-color:#0000;box-shadow:0 1px 2px #dc262633}.btn.danger.fill:hover{color:#fff;background:#b91c1c}.btn svg{flex:none;width:16px;height:16px}.btn.run{justify-content:center;width:100%;height:38px}.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-subtle)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px}.btn.sm.icon{width:30px}.doc{z-index:5;border-radius:12px;align-items:center;gap:10px;height:40px;padding:0 8px 0 10px;display:flex;top:14px;left:14px}.doc .logo{background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:7px;flex:none;place-items:center;width:22px;height:22px;display:grid}.doc .logo svg{width:14px;height:14px}.doc .name{text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:6px;min-width:60px;max-width:220px;padding:3px 6px;font-weight:600;overflow:hidden}.doc .name:hover,.doc .name:focus{background:var(--bg-subtle);border-color:var(--border);outline:none}.doc .saved{color:var(--fg-faint);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.doc .saved i{background:var(--st-explored);border-radius:50%;width:6px;height:6px;display:inline-block}.doc .saved i.dirty{background:var(--fg-faint)}.actions{z-index:5;gap:8px;display:flex;position:absolute;top:14px;right:14px}.group{background:var(--bg-solid);border:1px solid var(--border);border-radius:var(--r-md);display:inline-flex;box-shadow:0 1px 2px #0000000d}.group .btn{box-shadow:none;background:0 0;border:0;border-radius:0}.group .btn:hover{background:var(--bg-subtle)}.group .btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}.group .btn:last-child{border-radius:0 var(--r-md) var(--r-md) 0}.group .btn+.btn{border-left:1px solid var(--border)}.menu{background:var(--bg-solid);border:1px solid var(--border);border-radius:var(--r-md);min-width:200px;box-shadow:var(--shadow-float);z-index:50;animation:panel-in .12s var(--ease);padding:6px;position:absolute}.menu button{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px;font-size:13px;display:flex}.menu button:hover,.menu button.active{background:var(--bg-subtle)}.menu button:disabled{opacity:.45;cursor:default}.menu button.danger{color:var(--danger)}.menu button svg{width:15px;height:15px;color:var(--fg-muted)}.menu button kbd.key{margin-left:auto}.menu hr{border:0;border-top:1px solid var(--border);margin:6px 0}.menu .menu-title{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em;padding:6px 10px 4px;font-size:11px;font-weight:600}.left{z-index:4;flex-direction:column;gap:12px;width:292px;padding:14px;display:flex;top:66px;bottom:96px;left:14px;overflow:hidden}.left header{justify-content:space-between;align-items:center;gap:8px;display:flex}.left header .label{flex:1}.algo-list{flex-direction:column;flex:1;gap:2px;min-height:0;margin:0 -6px;padding:0 6px;display:flex;overflow:auto}.algo-cat{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 4px;font-size:11px;font-weight:600}.algo-cat:first-child{margin-top:0}.algo{border-radius:var(--r-md);cursor:pointer;color:var(--fg);text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13.5px;display:flex}.algo:hover{background:var(--bg-subtle)}.algo.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.algo .dotc{opacity:.6;background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.algo small{color:var(--fg-faint);margin-left:auto;font-size:11.5px;font-weight:400}.search{border-radius:var(--r-sm);background:var(--bg-subtle);height:34px;color:var(--fg-faint);border:1px solid #0000;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.search input{color:var(--fg);background:0 0;border:0;outline:none;flex:1;min-width:0}.search svg{width:15px;height:15px}.opt{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-solid);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.opt .chip{align-items:center;gap:6px;display:inline-flex}.hint{color:var(--fg-muted);font-size:12.5px;line-height:1.45}.hint.warn{color:var(--st-ignored)}.algo-desc{color:var(--fg-muted);padding:0 2px;font-size:12.5px;line-height:1.45}.step-title{letter-spacing:-.01em;font-size:18px;font-weight:600;line-height:1.3}.step-sub{color:var(--fg-muted);margin-top:4px;font-size:13px}.code{background:var(--bg-subtle);border-radius:var(--r-md);font-size:11.5px;line-height:1.6;font-family:var(--font-mono);flex:0 38%;min-height:72px;max-height:42%;padding:8px 0;overflow:auto}.code div{color:var(--fg-muted);white-space:pre;padding:0 12px}.code div.hl{background:var(--accent-soft);color:var(--accent);border-left:2px solid var(--accent);padding-left:10px;font-weight:600}.ds{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:auto}.ds>.label{align-items:center;gap:8px;display:flex}.ds-count{font-family:var(--font-mono);letter-spacing:0;text-transform:none;color:var(--fg-faint);background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.ds-stage{flex-direction:column;gap:6px;display:flex}.ds-caption{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-faint);align-items:center;gap:8px;font-size:10.5px;font-weight:600;display:flex}.ds-flow{font-family:var(--font-mono);letter-spacing:0;text-transform:none;color:var(--accent);font-weight:500}.ds-spacer{flex:1}.ds-queue{align-items:stretch;gap:4px;min-height:48px;display:flex}.ds-port{flex:none;justify-content:center;align-items:center;width:22px;display:flex;position:relative}.ds-port.top{align-self:stretch;width:auto;min-height:22px}.ds-port .chip-v{z-index:1;position:absolute}.ds-port.out:before,.ds-port.in:after{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-right:8px solid var(--accent);opacity:.55;width:0;height:0}.ds-pipe{background:repeating-linear-gradient(90deg, transparent, transparent 10px, color-mix(in srgb, var(--accent) 8%, transparent) 10px, color-mix(in srgb, var(--accent) 8%, transparent) 11px), var(--bg-subtle);border:1.5px solid var(--border-strong);border-left:2.5px solid var(--accent);border-right:2.5px dashed color-mix(in srgb, var(--accent) 55%, var(--border-strong));border-radius:999px;flex-wrap:wrap;flex:1;align-content:flex-start;gap:6px;min-width:0;min-height:44px;padding:8px;display:flex}.ds-stack{flex-direction:column;align-items:center;display:flex}.ds-well{background:var(--bg-subtle);border:1.5px solid var(--border-strong);border-top:2.5px dashed color-mix(in srgb, var(--accent) 55%, var(--border-strong));border-bottom:3px solid var(--accent);border-radius:0 0 16px 16px;flex-direction:column;align-items:stretch;gap:6px;width:100%;max-width:220px;min-height:88px;padding:8px;display:flex}.ds-well .chip-v,.ds-hopper .chip-v{border-radius:10px;justify-content:center;width:100%}.ds-hopper-wrap{flex-direction:column;align-items:center;display:flex}.ds-hopper{background:var(--bg-subtle);border:1.5px solid var(--border-strong);border-top:2.5px solid var(--accent);border-radius:6px 6px 22px 22px;flex-direction:column;gap:6px;width:100%;max-width:240px;min-height:88px;padding:8px;display:flex}.ds-hopper .chip-v{justify-content:space-between}.ds-rail{background:var(--bg-subtle);border:1.5px solid var(--border-strong);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:4px;min-height:44px;padding:8px;display:flex}.ds-rail-item{align-items:center;gap:4px;display:inline-flex}.ds-chevron{color:var(--fg-faint);font-size:12px}.ds-op{color:var(--accent);font-size:12px;font-weight:600;font-family:var(--font-mono);min-height:1.3em}.ds-op.muted{color:var(--fg-faint);font-style:italic;font-weight:500;font-family:var(--font-ui)}.chip-v.ds-next{box-shadow:0 0 0 2px var(--accent-soft), 0 1px 2px #0000000d;border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.chip-v.ds-enter{animation:ds-in .2s var(--ease)}.chip-v.ds-leave{animation:ds-out .26s var(--ease) forwards;pointer-events:none}.ds-pipe .chip-v.ds-enter{animation:ds-in-right .2s var(--ease)}.ds-well .chip-v.ds-enter{animation:ds-in-down .2s var(--ease)}.ds-empty{color:var(--fg-faint);align-self:center;padding:2px 6px;font-size:12px;font-style:italic}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips.stack{flex-direction:column;align-items:flex-start}.chip-v{background:var(--bg-solid);border:1px solid var(--border);height:28px;transition:transform .2s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 6px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #0000000d}.chip-v i{border:2.5px solid var(--st-unvisited);background:var(--v-fill);border-radius:50%;width:16px;height:16px;display:inline-block}.chip-v small{color:var(--fg-muted);font-weight:500;font-family:var(--font-mono)}.chip-v.faded{opacity:.55}.chip-v.plain{padding:0 10px;font-weight:500}.empty-ds{color:var(--fg-faint);font-size:12.5px;font-style:italic}.right{z-index:4;flex-direction:column;gap:12px;width:244px;max-height:calc(100% - 180px);padding:14px;display:flex;top:66px;right:14px;overflow:auto}.right header{justify-content:space-between;align-items:center;display:flex}.field{color:var(--fg-muted);flex-direction:column;gap:5px;font-size:12.5px;display:flex}.field input,.field select{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-subtle);height:34px;color:var(--fg);width:100%;padding:0 10px;font-size:13.5px;font-weight:500}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:-1px}.field input.invalid{outline:2px solid var(--danger)}.field .row{gap:8px;display:flex}.field .row input{width:50%}.meta{color:var(--fg-muted);justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.meta b{color:var(--fg);font-weight:600}.toggle-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.switch{background:var(--border-strong);width:36px;height:20px;transition:background .15s var(--ease);border:0;border-radius:999px;padding:0;position:relative}.switch:after{content:"";width:16px;height:16px;transition:transform .15s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(16px)}.switch:disabled{opacity:.45;cursor:not-allowed}.shortcut-list{color:var(--fg-muted);grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;font-size:12.5px;display:grid}.shortcut-list kbd.key{justify-self:start}.toolbar{border-radius:var(--r-lg);z-index:6;align-items:center;gap:4px;height:52px;padding:0 8px;display:flex;bottom:16px;left:50%;transform:translate(-50%)}.tool{border-radius:var(--r-md);width:42px;height:38px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.tool:hover{background:var(--bg-subtle);color:var(--fg)}.tool.on{background:var(--accent-soft);color:var(--accent)}.tool:disabled{opacity:.4;cursor:not-allowed}.tool svg{width:18px;height:18px}.tool kbd.key{background:0 0;border-color:#0000;padding:1px 3px;font-size:9px;position:absolute;bottom:3px;right:3px}.tool.on kbd.key{color:var(--accent)}.tool.danger{color:var(--danger)}.sep{background:var(--border);width:1px;height:22px;margin:0 4px}.toolbar .toggle-chip{border:1px solid var(--border);background:var(--bg-solid);height:30px;color:var(--fg-muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;display:inline-flex}.toolbar .toggle-chip.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.toolbar .toggle-chip:disabled{opacity:.45;cursor:not-allowed}.transport{border-radius:var(--r-lg);z-index:6;align-items:center;gap:10px;width:min(640px,100% - 28px);height:60px;padding:0 12px;display:flex;bottom:16px;left:50%;transform:translate(-50%)}.transport .tool{width:36px;height:34px}.transport .tool.play{background:var(--accent);color:var(--accent-fg)}.transport .tool.play svg{fill:currentColor}.transport .btn.danger.fill{flex:none}.scrub{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.scrub input[type=range]{width:100%;accent-color:var(--accent);margin:0}.scrub .ticks{color:var(--fg-faint);font-size:11px;font-family:var(--font-mono);justify-content:space-between;display:flex}.speed{border:1px solid var(--border);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.speed button{height:28px;color:var(--fg-muted);background:0 0;border:0;padding:0 8px;font-size:12px}.speed button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.legend{z-index:4;flex-direction:column;gap:6px;max-width:320px;padding:10px 12px;display:flex;bottom:16px;right:14px}.legend .pill{color:var(--fg-muted);cursor:default;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:3px 6px;font-size:12.5px;display:flex}.legend .pill:hover{background:var(--bg-subtle);color:var(--fg)}.legend .pill svg{flex:none}.legend .pill .n{font-family:var(--font-mono);color:var(--fg-faint);margin-left:auto;padding-left:8px;font-size:11.5px}.legend .notes{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:4px;padding-top:8px;display:flex}.legend .pill.note{cursor:default}.legend .pill.note:hover{color:var(--fg-muted);background:0 0}.legend .token{min-width:1.6em;font-family:var(--font-mono);color:var(--fg);flex:none;font-size:12px;font-weight:600}.zoom{border-radius:var(--r-md);z-index:4;opacity:.75;height:36px;transition:opacity .15s var(--ease);align-items:center;gap:2px;padding:0 4px;display:flex;bottom:16px;left:14px}.zoom:hover{opacity:1}.zoom button{border-radius:var(--r-sm);min-width:28px;height:28px;color:var(--fg-muted);background:0 0;border:0;place-items:center;padding:0 6px;font-size:12.5px;display:grid}.zoom button:hover{background:var(--bg-subtle);color:var(--fg)}.zoom button svg{width:15px;height:15px}.zoom .pct{font-family:var(--font-mono);min-width:46px}.app[data-panel-left=false] .zoom{left:14px}.graph-canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:default;outline:none;width:100%;height:100%;position:absolute;inset:0}.graph-canvas[data-mode=selection]{cursor:default}.graph-canvas[data-mode=addvertex]{cursor:copy}.graph-canvas[data-mode=addedge]{cursor:crosshair}.graph-canvas[data-mode=hand],.graph-canvas[data-mode=hand] .vertex,.graph-canvas[data-mode=hand] .vertex:active{cursor:grab}.graph-canvas[data-mode=hand]:active,.graph-canvas[data-panning=true],.graph-canvas[data-panning=true] .vertex,.graph-canvas[data-panning=true] .vertex:active{cursor:grabbing}.graph-canvas[data-mode=presenter]{cursor:crosshair}.vertex{cursor:grab}.vertex:active{cursor:grabbing}.vertex circle.disc{fill:var(--v-fill);transition:stroke .18s var(--ease), fill .18s var(--ease), r .18s var(--ease);filter:drop-shadow(0 2px 3px #0000001f)}.vertex .glow{opacity:var(--glow-alpha);transition:opacity .18s var(--ease)}.vertex .glow.pulse{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:var(--glow-alpha);transform:scale(1)}50%{opacity:calc(var(--glow-alpha) * 1.8);transform:scale(1.12)}}.vertex text.vlabel{font-family:var(--font-ui);fill:var(--v-label);pointer-events:none;text-anchor:middle;dominant-baseline:central;font-weight:600}.vertex.dimmed{opacity:.25}.vertex .sel-ring{fill:none;stroke:var(--accent);stroke-width:2px}.vertex .sel-halo{fill:var(--accent);opacity:.1}.vertex .start-badge{fill:var(--accent)}.vertex .start-badge-text{fill:var(--accent-fg);font:700 10px var(--font-ui);text-anchor:middle;dominant-baseline:central;pointer-events:none}.vertex .focus-ring{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:3 3;opacity:0}.vertex:focus-visible .focus-ring{opacity:1}.vertex.new circle.disc{animation:pop-in .22s var(--ease);transform-box:fill-box;transform-origin:50%}@keyframes pop-in{0%{transform:scale(.6)}70%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes ds-in{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}@keyframes ds-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes ds-in-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes ds-out{0%{opacity:1}to{opacity:0}}.handle{cursor:crosshair}.handle circle{fill:var(--accent);stroke:var(--v-fill);stroke-width:2px}.handle path{stroke:var(--accent-fg);stroke-width:2px;stroke-linecap:round}.edge path.glow{fill:none;pointer-events:none;opacity:var(--glow-alpha)}.edge path.glow.pulse{animation:1.6s ease-in-out infinite edge-pulse}@keyframes edge-pulse{0%,to{opacity:var(--glow-alpha)}50%{opacity:calc(var(--glow-alpha) * 1.8)}}.edge path.visible{fill:none;stroke-linecap:round;transition:stroke .18s var(--ease), stroke-width .18s var(--ease), opacity .18s var(--ease)}.edge.directed path.visible,.edge.directed path.sel{stroke-linecap:butt}.edge path.hit{fill:none;stroke:#0000;stroke-width:14px;pointer-events:stroke;cursor:pointer}.edge.dimmed{opacity:.2}.edge polygon{transition:fill .18s var(--ease)}.edge .sel{fill:none;stroke:var(--accent);stroke-width:8px;opacity:.25;stroke-linecap:round}.pill-bg{fill:var(--bg-solid);stroke:var(--border-strong);stroke-width:1px}.pill-text{font-family:var(--font-mono);fill:var(--fg);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:12px;font-weight:500}.pill-text.annot{fill:var(--fg-muted);font-size:11px}.overlay .rubber{stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:6 4;fill:none;stroke-linecap:round}.overlay .ghost{fill:var(--v-fill);stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 4;opacity:.8}.overlay .marquee{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3}.overlay .bounds{fill:color-mix(in srgb, var(--bg-solid) 42%, transparent);stroke:var(--border-strong);stroke-width:1.5px;stroke-dasharray:8 6}.ink-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.inline-edit{text-align:center;border-radius:var(--r-sm);border:2px solid var(--accent);background:var(--bg-solid);width:72px;height:32px;color:var(--fg);z-index:8;box-shadow:var(--shadow-float);outline:none;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.inkbar{border-radius:var(--r-lg);z-index:6;align-items:center;gap:6px;height:44px;padding:0 10px;display:flex;bottom:80px;left:50%;transform:translate(-50%)}.inkbar .swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.inkbar .swatch.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--bg-solid) inset}.inkbar .width{border-radius:var(--r-sm);width:28px;height:28px;color:var(--fg-muted);background:0 0;border:0;place-items:center;display:grid}.inkbar .width.on{background:var(--accent-soft);color:var(--accent)}.inkbar .width i{background:currentColor;border-radius:50%;display:block}.inkbar .tool.label{width:auto;padding:0 10px;font-size:12.5px;font-weight:600}.toaster{z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--bg-solid);color:var(--fg);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-float);max-width:480px;animation:toast-in .18s var(--ease);align-items:center;gap:12px;padding:9px 12px 9px 14px;font-size:13px;display:inline-flex}.toast.error{border-color:#dc262659}.toast.error:before{content:"";background:var(--danger);border-radius:50%;flex:none;width:8px;height:8px}.toast button{color:var(--accent);background:0 0;border:0;border-radius:4px;padding:2px 4px;font-weight:600}.toast button:hover{background:var(--accent-soft)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scrim{z-index:60;animation:fade-in .12s var(--ease);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dialog{background:var(--bg-solid);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-float);width:min(560px,100% - 32px);max-height:calc(100% - 64px);animation:panel-in .16s var(--ease);flex-direction:column;display:flex;overflow:hidden}.dialog.wide{width:min(760px,100% - 32px)}.dialog header{justify-content:space-between;align-items:center;padding:16px 18px 10px;display:flex}.dialog header h2{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.dialog .body{flex-direction:column;gap:12px;padding:4px 18px 18px;display:flex;overflow:auto}.dialog footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px 16px;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-subtle);cursor:pointer;text-align:left;transition:border-color .12s var(--ease), transform .12s var(--ease);flex-direction:column;gap:8px;padding:8px;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-1px)}.card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card .thumb{aspect-ratio:16/10;border-radius:var(--r-sm);background:var(--bg-solid);border:1px solid var(--border);place-items:center;width:100%;display:grid;overflow:hidden}.card .thumb svg{width:100%;height:100%}.card .title{justify-content:space-between;gap:6px;font-size:13px;font-weight:600;display:flex}.card .title small{color:var(--fg-faint);font-weight:400}.card .card-actions{gap:4px;display:flex}.palette{background:var(--bg-solid);border:1px solid var(--border);border-radius:var(--r-lg);width:min(560px,100% - 32px);box-shadow:var(--shadow-float);z-index:70;animation:panel-in .14s var(--ease);position:fixed;top:14vh;left:50%;overflow:hidden;transform:translate(-50%)}.palette .search{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;height:46px;padding:0 16px;font-size:14px}.palette .results{max-height:360px;padding:6px;overflow:auto}.palette .results button{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;font-size:13.5px;display:flex}.palette .results button.active{background:var(--accent-soft);color:var(--accent)}.palette .results button small{color:var(--fg-faint);margin-left:auto;font-size:11.5px}.palette .results button svg{width:15px;height:15px;color:var(--fg-muted)}.palette .results .cat{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em;padding:8px 10px 4px;font-size:11px;font-weight:600}.link-box{gap:8px;display:flex}.link-box input{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-subtle);height:36px;font-family:var(--font-mono);color:var(--fg);flex:1;min-width:0;padding:0 10px;font-size:12px}.export-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.export-grid .card{cursor:pointer;border:1px solid var(--border)}.export-grid .card b{align-items:center;gap:8px;font-size:13.5px;display:flex}.export-grid .card b svg{width:16px;height:16px;color:var(--accent)}.export-grid .card span{color:var(--fg-muted);font-size:12.5px;line-height:1.4}.empty{text-align:center;z-index:3;pointer-events:none;max-width:460px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty h1{letter-spacing:-.02em;margin:0 0 8px;font-size:26px;font-weight:600}.empty p{color:var(--fg-muted);margin:0 0 18px;font-size:14px}.empty .cards{pointer-events:auto;justify-content:center;gap:10px;display:flex}.empty .cards .btn{height:40px}.ctx{z-index:55;position:fixed}.live-region{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:900px){.left{width:260px}.right{width:220px}}@media (max-width:720px){.left{width:auto;max-height:42vh;inset:auto 14px 84px}.right{width:auto;max-height:36vh;top:66px;left:14px;right:14px}.legend{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
