@font-face{font-family:sans;src:url(../media/hanken_grotesk_latin_wght_normal-s.p.3241148m1u9do.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:98.46%;descent-override:29.83%;line-gap-override:0.0%;size-adjust:101.56%}.sD1Exq_className{font-family:sans,sans Fallback}.sD1Exq_variable{--font-hanken:"sans", "sans Fallback"}
@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_normal-s.p.2rmhnsrc80fag.woff2)format("woff2");font-display:swap;font-weight:100 800}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.FgtNia_className{font-family:mono,mono Fallback}.FgtNia_variable{--font-jbmono:"mono", "mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-snug:1.375;--radius-md:.375rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-full{top:100%}.right-0{right:0}.left-0{left:0}.z-50{z-index:50}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-\[52px\]{height:52px}.h-dvh{height:100dvh}.h-full{height:100%}.min-h-0{min-height:0}.w-1{width:var(--spacing)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grabbing{cursor:grabbing}.cursor-move{cursor:move}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[88px_1fr\]{grid-template-columns:88px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.bg-\[var\(--accent-tint\)\]{background-color:var(--accent-tint)}.bg-transparent{background-color:#0000}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-live{color:var(--live)}.text-muted{color:var(--fg-muted)}.text-warn{color:var(--warn)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-60{opacity:.6}.shadow-\[inset_2px_0_0_var\(--accent\)\]{--tw-shadow:inset 2px 0 0 var(--tw-shadow-color,var(--accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-hover:hover{background-color:var(--bg-hover)}}.disabled\:opacity-40:disabled{opacity:.4}}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:var(--font-hanken), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:var(--font-jbmono), ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--radius:4px;--ease-out:cubic-bezier(.16, 1, .3, 1);--bg:#f4f6f8;--bg-panel:#f4f6f8;--bg-elev:#fff;--bg-hover:#e9edf1;--fg:#102338;--fg-soft:#485b6d;--fg-muted:#56697b;--border:#cbd4dc;--border-strong:#9eacb8;--accent:#245f9c;--accent-strong:#174b7c;--accent-tint:#e4edf6;--on-accent:#fff;--focus-ring:#176db847;--live:#d23f31;--live-ring:#d23f312e;--short:#d9650a;--short-tint:#fdf1e7;--warn:#9a5b00;--warn-tint:#fdf3e2;--ok:#2b9a59;--violet:#6b4fbb;--violet-tint:#efeafb;--shadow-float:0 8px 24px #1023381a, 0 1px 2px #10233814;--tab-active:#fff;--paper:#fff;--grid-dot:#c9d3dc;--grid-line:#edf1f4;--sym-main:#102338;--sym-live:#d23f31;--sym-accent:#245f9c;--sym-muted:#9eacb8;--sym-bg:var(--paper);--sym-width:1.6;--tag-color:#102338;--wire:#102338;--wire-live:#d23f31;--wire-neutral:#1f8ad1;--wire-pe:#2b9a59;--pe-stripe:#e8b400;--wire-short:#d9650a;--selection:#245f9c;--selection-fill:#245f9c14;--flow-halo:#f6b8b09e;--flow-halo-neutral:#b9dcf3b3;--flow-gap:var(--paper);--clock-ink:#6b4fbb;--clock-badge-bg:#efeafb;--cond-phase:#9b2c22;--cond-neutral:#1f8ad1;--cond-pe:#2b9a59;--cond-dc-plus:#c2185b;--cond-dc-minus:#3949ab}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16191c;--bg-panel:#16191c;--bg-elev:#1d2125;--bg-hover:#23282d;--fg:#e6eaee;--fg-soft:#b7c0c9;--fg-muted:#8d98a3;--border:#2a3036;--border-strong:#3c444c;--accent:#8fb8e3;--accent-strong:#a9c9eb;--accent-tint:#243041;--on-accent:#0c1622;--focus-ring:#8fb8e352;--live:#ff6a5c;--live-ring:#ff6a5c38;--short:#ff9a3d;--short-tint:#2e2117;--warn:#f2b84b;--warn-tint:#2d2414;--ok:#4cc27b;--violet:#a993f0;--violet-tint:#2a2440;--shadow-float:0 8px 24px #00000073, 0 1px 2px #0006;--tab-active:#0f1113}[data-theme=dark]:not([data-sheet=paper]){--paper:#0f1113;--grid-dot:#2b3036;--grid-line:#15181b;--sym-main:#d9e0e6;--sym-live:#ff6a5c;--sym-accent:#8fb8e3;--sym-muted:#5d6772;--tag-color:#d9e0e6;--wire:#d9e0e6;--wire-live:#ff6a5c;--wire-neutral:#3db7e4;--wire-pe:#4cc27b;--pe-stripe:#f2c94c;--wire-short:#ff9a3d;--selection:#8fb8e3;--selection-fill:#8fb8e31a;--flow-halo:#7a2a24cc;--flow-halo-neutral:#123a4dd9;--clock-ink:#a993f0;--clock-badge-bg:#2a2440;--cond-phase:#e0857a;--cond-neutral:#3db7e4;--cond-pe:#4cc27b;--cond-dc-plus:#f06292;--cond-dc-minus:#8c9eff}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-sans);margin:0}body{font-size:13px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::selection{background:var(--accent-tint)}.panel{background:var(--bg-panel);border-color:var(--border)}.panel-header{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);padding:14px 14px 10px;font-size:11px;font-weight:600}.toolbar,.statusbar{background:var(--bg);border-color:var(--border)}.brand{color:var(--fg);letter-spacing:-.01em;font-size:15px;font-weight:600}.input{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--fg);outline:none;padding:5px 9px;font-size:12.5px;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--fg-muted)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.input:disabled{opacity:.5}.doc-name{background:0 0;border-color:#0000;font-weight:600}.doc-name:hover,.doc-name:focus{border-color:var(--border);background:var(--bg)}.tool-btn{border-radius:var(--radius);min-width:32px;height:32px;color:var(--fg-soft);justify-content:center;align-items:center;gap:6px;padding:0 6px;transition:background .1s,color .1s;display:inline-flex}.tool-btn-wide{color:var(--fg);padding:0 10px;font-size:13px}.tool-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--fg)}.tool-btn:disabled{opacity:.38;cursor:not-allowed}.tool-btn-active,.tool-btn-active:hover:not(:disabled){background:var(--accent-tint);color:var(--accent-strong)}.tool-btn-danger:hover:not(:disabled){color:var(--live)}.tool-divider{background:var(--border);flex-shrink:0;width:1px;height:22px;margin:0 6px}.btn-xs{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);padding:2px 8px;font-size:11.5px}.btn-xs:hover:not(:disabled){border-color:var(--accent)}.btn-xs:disabled{opacity:.4}.link{color:var(--accent-strong)}.link:hover{text-underline-offset:3px;text-decoration:underline}.sim-btn{border-radius:var(--radius);align-items:center;gap:8px;height:32px;padding:0 16px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.sim-btn-play{background:var(--accent);color:var(--on-accent)}.sim-btn-play:hover{background:var(--accent-strong)}.sim-btn-stop{border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--fg);padding:0 14px}.sim-btn-stop:hover{border-color:var(--fg-muted)}.sim-chip{border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap;align-items:center;gap:8px;height:32px;padding:0 12px;font-size:13px;display:inline-flex}.sim-chip-time{font-family:var(--font-mono);color:var(--fg-muted);font-variant-numeric:tabular-nums;font-size:12px}.live-dot{background:var(--live);width:8px;height:8px;box-shadow:0 0 0 3px var(--live-ring);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite live-pulse;display:inline-block}@keyframes live-pulse{50%{box-shadow:0 0 0 5px #0000}}.seg{border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;height:28px;display:inline-flex;overflow:hidden}.seg-btn{min-width:30px;color:var(--fg-muted);justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;transition:background .1s,color .1s;display:inline-flex}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn:hover{color:var(--fg);background:var(--bg-hover)}.seg-btn[aria-pressed=true],.seg-btn[aria-pressed=true]:hover{background:var(--accent-tint);color:var(--accent-strong)}.switch{background:var(--border-strong);border-radius:9px;flex-shrink:0;width:32px;height:18px;transition:background .12s;display:inline-flex;position:relative}.switch:after{content:"";background:var(--bg-elev);width:14px;height:14px;transition:transform .16s var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{background:var(--on-accent);transform:translate(14px)}.menu{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float);padding:6px 0}.menu-item{text-align:left;width:100%;color:var(--fg);justify-content:space-between;align-items:center;gap:12px;padding:7px 12px;font-size:13px;display:flex}.menu-item:hover{background:var(--bg-hover)}.menu-item kbd{font-family:var(--font-mono);color:var(--fg-muted);font-size:11px}.menu-sep{background:var(--border);height:1px;margin:6px 0}.menu-label{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);padding:6px 12px 4px;font-size:11px;font-weight:600}.menu-switch{text-align:left;width:100%;color:var(--fg);justify-content:space-between;align-items:center;gap:16px;padding:8px 12px;font-size:13px;display:flex}.menu-switch:hover{background:var(--bg-hover)}.menu-switch:disabled{opacity:.45}.menu-note{color:var(--fg-muted);padding:0 12px 8px;font-size:11.5px}.chip{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elev);height:22px;color:var(--fg-soft);align-items:center;gap:6px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.chip-live,.chip-warn{color:var(--fg)}.chip-live:before,.chip-warn:before{content:"";background:var(--live);border-radius:50%;width:7px;height:7px}.chip-warn:before{background:var(--short)}.status-pill{color:var(--fg);align-items:center;gap:6px;font-weight:600;display:inline-flex}.status-pill-live:before{content:"";background:var(--live);border-radius:50%;width:6px;height:6px}.text-muted{color:var(--fg-muted)}.text-soft{color:var(--fg-soft)}.text-live{color:var(--live)}.text-warn{color:var(--warn)}.bg-hover{background:var(--bg-hover)}.canvas-wrap{background:var(--paper)}.canvas-svg{outline:none}.grid-dot{fill:var(--grid-dot)}.grid-line{stroke:var(--grid-line);stroke-width:1px}.wire{fill:none;stroke:var(--wire);stroke-width:calc(1.8px * var(--wk,1));stroke-linecap:round;stroke-linejoin:round;transition:stroke 80ms}.wire-pe-stripe{stroke:var(--pe-stripe);stroke-dasharray:6 6;stroke-linecap:butt}.wire-live{stroke:var(--wire-live);stroke-width:calc(2.2px * var(--wk,1))}.wire-neutral{stroke:var(--wire-neutral);stroke-width:calc(2px * var(--wk,1))}.wire-pe{stroke:var(--wire-pe)}.wire-short{stroke:var(--wire-short);stroke-width:3px;animation:.5s steps(2,end) infinite shortflash}@keyframes shortflash{50%{stroke:var(--wire-live)}}.wire-halo{fill:none;stroke:var(--selection);stroke-opacity:.28;stroke-width:calc(8px * var(--wk,1));stroke-linecap:round;stroke-linejoin:round}.wire-preview{fill:none;stroke:var(--selection);stroke-width:1.8px;stroke-dasharray:5 3}.junction{fill:var(--wire)}.junction-live{fill:var(--wire-live)}.junction-neutral{fill:var(--wire-neutral)}.junction-pe{fill:var(--wire-pe)}.port-dot{fill:var(--sym-muted);opacity:.7}.port-dangling{fill:none;stroke:var(--wire-short);stroke-width:1px;opacity:.85}.port-snap{fill:var(--selection);opacity:.9}.selection-box{fill:var(--selection-fill);stroke:var(--selection);stroke-width:1.2px;vector-effect:non-scaling-stroke}.selection-handle{fill:var(--paper);stroke:var(--selection);stroke-width:1.2px;vector-effect:non-scaling-stroke}.interactive-box{fill:none;stroke:var(--selection);stroke-width:1px;stroke-opacity:.22;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}[data-component-id]:hover>.interactive-box{stroke-opacity:.75;fill:var(--selection-fill)}.thumb{background:var(--paper);--sym-width:1.5}.marquee{fill:var(--selection-fill);stroke:var(--selection);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.label-text{fill:var(--fg-muted);font-family:var(--font-sans);letter-spacing:.04em;font-weight:600}.label-selected{fill:var(--selection)}.side-handle{cursor:col-resize;background:var(--bg-panel);border-left:1px solid var(--border);border-right:1px solid var(--border);height:100%;color:var(--fg-muted);touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex;position:relative}.side-handle:hover,.side-handle-active{background:var(--accent-tint);color:var(--accent-strong)}.side-handle-chevron{pointer-events:none;font-size:14px;line-height:1}.tabstrip{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:stretch;height:38px;padding:0 8px;display:flex}.tabstrip-scroll{scrollbar-width:none;align-items:stretch;min-width:0;display:flex;overflow-x:auto}.tabstrip-scroll::-webkit-scrollbar{display:none}.tab{min-width:120px;max-width:240px;height:100%;color:var(--fg-soft);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-bottom:0;flex:none;align-items:center;gap:8px;padding:0 8px 0 14px;font-size:13px;transition:background .1s,color .1s;display:flex;position:relative}.tab:hover{background:var(--bg-hover);color:var(--fg)}.tab-active,.tab-active:hover{background:var(--tab-active);color:var(--fg);border-color:var(--border);box-shadow:inset 0 2px 0 var(--accent)}.tab-active:after{content:"";background:var(--tab-active);height:1px;position:absolute;bottom:-1px;left:0;right:0}.tab-status{background:0 0;border-radius:999px;flex-shrink:0;width:6px;height:6px;margin-left:-4px}.tab-status-live{background:var(--live);box-shadow:0 0 0 3px var(--live-ring)}.tab-name{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.tab-active .tab-name{font-weight:600}.tab-rename{border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg-elev);width:100%;min-width:0;height:24px;color:var(--fg);font:inherit;box-shadow:0 0 0 3px var(--focus-ring);outline:none;flex:auto;padding:0 6px;font-size:13px}.tab-close{border-radius:var(--radius);width:20px;height:20px;color:var(--fg-muted);opacity:0;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .1s,background .1s,color .1s;display:inline-flex}.tab:hover .tab-close,.tab-active .tab-close,.tab:focus-within .tab-close{opacity:1}.tab-close:hover{background:var(--bg-hover);color:var(--fg)}.tab-new{width:34px;height:100%;color:var(--fg-muted);flex-shrink:0;justify-content:center;align-items:center;transition:background .1s,color .1s;display:inline-flex}.tab-new:hover{background:var(--bg-hover);color:var(--fg)}.schedule{flex-direction:column;gap:6px;display:flex}.schedule-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);grid-template-columns:auto 1fr 1fr auto auto;align-items:end;gap:6px;padding:8px;display:grid}.schedule-days{grid-column:1/-1;gap:2px;display:flex}.schedule-day{border-radius:var(--radius);border:1px solid var(--border);width:22px;height:22px;color:var(--fg-muted);font-size:10px;font-weight:600}.schedule-day:hover:not(:disabled){border-color:var(--accent)}.schedule-day-on{background:var(--violet-tint);border-color:var(--violet);color:var(--violet)}.schedule-time{color:var(--fg-muted);flex-direction:column;gap:2px;font-size:10.5px;display:flex}.schedule-time .input{height:26px;font-family:var(--font-mono);padding:0 5px;font-size:11.5px}.schedule-note{color:var(--warn);padding-bottom:5px;font-size:10.5px}.schedule-remove{border-radius:var(--radius);width:22px;height:26px;color:var(--fg-muted)}.schedule-remove:hover:not(:disabled){color:var(--live);background:var(--bg-hover)}.clock-panel{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);width:300px;max-height:calc(100% - 24px);box-shadow:var(--shadow-float);color:var(--fg);animation:panel-in .22s var(--ease-out) both;font-size:12px;position:absolute;top:12px;right:12px;overflow-y:auto}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px)}}.clock-head{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:10px 8px 8px 14px;display:flex}.clock-head:active{cursor:grabbing}.clock-head-title{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-size:11px;font-weight:600}.clock-icon-btn{border-radius:var(--radius);width:26px;height:26px;color:var(--fg-muted);justify-content:center;align-items:center;font-size:14px;display:inline-flex}.clock-icon-btn:hover{background:var(--bg-hover);color:var(--fg)}.clock-lcd{border-bottom:1px solid var(--border);padding:2px 14px 12px}.clock-days{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;display:grid}.clock-day{text-align:center;font-family:var(--font-mono);color:var(--fg-muted);opacity:.6;border-radius:3px;padding:1px 0;font-size:9.5px;font-weight:600}.clock-day-on{color:var(--violet);background:var(--violet-tint);opacity:1}.clock-digits-row{justify-content:space-between;align-items:baseline;display:flex}.clock-digits{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--violet);border-radius:var(--radius);margin-left:-4px;padding:2px 4px;font-size:30px;font-weight:600;line-height:1}.clock-digits:hover{background:var(--violet-tint)}.clock-colon{animation:1s step-end infinite colon-blink;display:inline-block}@keyframes colon-blink{50%{opacity:.25}}.clock-seconds{opacity:.75;margin-left:4px;font-size:15px}.clock-date{font-family:var(--font-mono);color:var(--fg-muted);font-size:11px}.clock-input{border-radius:var(--radius);border:1px solid var(--violet);background:var(--bg-elev);height:34px;color:var(--violet);font-family:var(--font-mono);box-shadow:0 0 0 3px var(--violet-tint);outline:none;padding:0 6px;font-size:13px}.clock-controls{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:10px 14px;display:flex}.clock-speed{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.clock-speed-btn{font-family:var(--font-mono);color:var(--fg-muted);padding:3px 7px;font-size:11px;transition:background .12s,color .12s}.clock-speed-btn+.clock-speed-btn{border-left:1px solid var(--border)}.clock-speed-btn:hover{color:var(--fg);background:var(--bg-hover)}.clock-speed-on,.clock-speed-on:hover{background:var(--violet-tint);color:var(--violet);font-weight:600}.clock-next{border-radius:var(--radius);border:1px solid var(--border);color:var(--violet);font-family:var(--font-mono);white-space:nowrap;margin-left:auto;padding:3px 8px;font-size:11px}.clock-next:hover:not(:disabled){background:var(--violet-tint);border-color:var(--violet)}.clock-next:disabled{opacity:.4;color:var(--fg-muted)}.clock-devices{padding:8px 8px 10px}.clock-section{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);padding:2px 6px 6px;font-size:11px;font-weight:600}.clock-empty{color:var(--fg-muted);padding:2px 6px;font-size:12px}.clock-dev{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:8px;transition:background .12s,border-color .12s}.clock-dev+.clock-dev{margin-top:2px}.clock-dev:hover{background:var(--bg-hover)}.clock-dev-selected{border-color:var(--violet)}.clock-dev-head{align-items:center;gap:6px;display:flex}.clock-tag{background:var(--violet-tint);color:var(--violet);font-family:var(--font-mono);border-radius:3px;padding:1px 6px;font-size:11px;font-weight:600}.clock-kind{color:var(--fg-muted);font-size:11px}.clock-led{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:8px;height:8px;transition:background .15s,box-shadow .15s}.clock-led-on{background:var(--live);box-shadow:0 0 0 3px var(--live-ring)}.clock-state{color:var(--fg-muted);font-size:11.5px}.clock-state-on{color:var(--fg);font-weight:600}.clock-modes{border:1px solid var(--border);border-radius:var(--radius);margin-left:auto;display:inline-flex;overflow:hidden}.clock-mode{color:var(--fg-muted);padding:1px 6px;font-size:10px;font-weight:600}.clock-mode+.clock-mode{border-left:1px solid var(--border)}.clock-mode:hover{color:var(--fg)}.clock-mode-on,.clock-mode-on:hover{background:var(--violet-tint);color:var(--violet)}.clock-timeline{background:repeating-linear-gradient(90deg, var(--border) 0 1px, transparent 1px 12.5%), var(--bg);border:1px solid var(--border);border-radius:3px;height:12px;margin-top:8px;position:relative;overflow:hidden}.clock-window{background:var(--violet);opacity:.55;position:absolute;top:0;bottom:0}.clock-needle{background:var(--fg);width:2px;margin-left:-1px;position:absolute;top:-2px;bottom:-2px}.clock-ticks{font-family:var(--font-mono);color:var(--fg-muted);justify-content:space-between;margin-top:2px;font-size:9px;display:flex}.clock-dev-foot{color:var(--violet);margin-top:4px;font-size:11.5px}.clock-delay{font-family:var(--font-mono);color:var(--fg-soft);margin-left:auto;font-size:11px}.clock-progress{background:var(--violet-tint);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.clock-progress-fill{background:var(--violet);border-radius:2px;height:100%;transition:width 60ms linear;display:block}.clock-progress-running{background:repeating-linear-gradient(45deg, var(--violet) 0 6px, var(--violet) 6px 12px)}@supports (color:color-mix(in lab, red, red)){.clock-progress-running{background:repeating-linear-gradient(45deg, var(--violet) 0 6px, color-mix(in srgb, var(--violet) 75%, transparent) 6px 12px)}}.clock-progress-running{background-size:17px 17px;animation:.6s linear infinite progress-stripes}@keyframes progress-stripes{to{background-position:17px 0}}.clock-dev-prog{font-family:var(--font-mono);color:var(--fg-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:10.5px;overflow:hidden}.clock-hint{color:var(--fg-muted)}.clock-warn{border-radius:var(--radius);background:var(--warn-tint);border:1px solid var(--warn);margin-top:4px;padding:4px 8px}@supports (color:color-mix(in lab, red, red)){.clock-warn{border:1px solid color-mix(in srgb, var(--warn) 40%, transparent)}}.clock-warn{color:var(--warn);font-size:11px;line-height:1.35}.clock-pill{z-index:20;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elev);height:34px;color:var(--violet);font-family:var(--font-mono);box-shadow:var(--shadow-float);cursor:grab;touch-action:none;align-items:center;gap:10px;padding:0 12px;animation:.2s ease-out both panel-in;display:inline-flex;position:absolute;top:12px;right:12px}.clock-pill:hover{border-color:var(--violet)}.clock-pill-icon{display:inline-flex}.clock-pill-day{font-size:11px;font-weight:600}.clock-pill-time{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.clock-pill-scale{color:var(--fg-muted);font-size:11px}.clock-badge-bg{fill:var(--clock-badge-bg);stroke:var(--clock-ink);stroke-width:.8px}.clock-badge-text{fill:var(--clock-ink);font-family:var(--font-mono);font-size:8.5px;font-weight:600}.clock-badge-led{fill:var(--sym-muted)}.clock-badge-led-on{fill:var(--wire-live)}.clock-highlight{fill:var(--clock-badge-bg);fill-opacity:.6;stroke:var(--clock-ink);stroke-width:1.6px;vector-effect:non-scaling-stroke;animation:1.1s ease-in-out infinite highlight-pulse}@keyframes highlight-pulse{50%{stroke-opacity:.35;fill-opacity:.15}}.sym-motion{transition:transform .11s cubic-bezier(.3,.7,.4,1.4)}.anim-spin-cw{animation:.9s linear infinite spin}.anim-spin-ccw{animation:.9s linear infinite reverse spin}.anim-spin-cw-fast{animation:.4s linear infinite spin}.anim-spin-ccw-fast{animation:.4s linear infinite reverse spin}.anim-blink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:.12}}@keyframes spin{to{transform:rotate(360deg)}}.anim-glow{filter:blur(3px);animation:1.8s ease-in-out infinite glow}@keyframes glow{0%,to{opacity:.32;transform:scale(1)}50%{opacity:.55;transform:scale(1.12)}}.anim-ripple{fill:none;transform-box:fill-box;transform-origin:50%;animation:.52s ease-out forwards ripple}@keyframes ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.comp-appear{transform-box:fill-box;transform-origin:50%;animation:.3s cubic-bezier(.2,.9,.3,1.25) both comp-pop}@keyframes comp-pop{0%{opacity:0;transform:scale(.82)}}.wire-draw{animation:.42s ease-out both wire-draw}@keyframes wire-draw{0%{stroke-dasharray:1 1;stroke-dashoffset:1px}to{stroke-dasharray:1 1;stroke-dashoffset:0}}.flow-halo{fill:none;stroke:var(--flow-halo);stroke-width:7px;stroke-linecap:round}.flow-halo-neutral{stroke:var(--flow-halo-neutral)}.flow{stroke:var(--flow-gap);stroke-width:1.2px;stroke-dasharray:2 10;animation:.5s linear infinite flow}[data-flow=static] .flow{animation:none}@keyframes flow{0%{stroke-dashoffset:12px}to{stroke-dashoffset:0}}.burst-core{fill:#fde047;animation:.6s ease-out forwards burst-core}.burst-ring{fill:none;stroke:var(--wire-short);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:.65s ease-out forwards burst-ring}.burst-ray{stroke:#facc15;stroke-width:2px;stroke-linecap:round;stroke-dasharray:12;stroke-dashoffset:12px;animation:.52s ease-out forwards burst-ray}@keyframes burst-core{0%{opacity:1;r:2}30%{opacity:1;r:9}to{opacity:0;r:3}}@keyframes burst-ring{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(2.6)}}@keyframes burst-ray{0%{stroke-dashoffset:12px;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-12px;opacity:0}}@media (prefers-reduced-motion:reduce){.sym-motion,.clock-progress-fill{transition:none}.anim-spin-cw,.anim-spin-ccw,.anim-spin-cw-fast,.anim-spin-ccw-fast,.anim-glow,.anim-ripple,.comp-appear,.wire-draw,.flow,.live-dot,.clock-colon,.clock-progress-running,.clock-highlight,.clock-panel,.clock-pill{animation:none}.anim-ripple,.burst{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:"*";inherits:false}
