@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.ttf)format("truetype");font-weight:800;font-style:normal;font-display:swap}html,body{height:100%;margin:0;padding:0;overflow:hidden}#root{height:100%;overflow:hidden}.btn-icon{cursor:pointer;color:#555;background:#fff;border:1px solid #e0dedb;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.btn-icon:hover{background:#f3f2f0}.btn-sm{cursor:pointer;color:#444;background:#fff;border:1px solid #d0cec9;border-radius:4px;justify-content:center;align-items:center;gap:5px;height:24px;padding:0 10px;font-size:11px;font-weight:500;display:flex}.btn-sm:hover{background:#f3f2f0}.btn-ghost{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 3px;line-height:1}.btn-ghost:hover{background:#f3f2f0}.btn-del{cursor:pointer;color:#cbc9c5;background:0 0;border:none;transition:color .15s,background .15s}.btn-del:hover{color:#ef4444;background:#fee2e2}.slot-cell{transition:filter .1s}.slot-cell:hover{filter:brightness(1.05)}.slot-strip{scrollbar-width:none;-ms-overflow-style:none}.slot-strip--bounded{overscroll-behavior-x:contain}.slot-strip::-webkit-scrollbar{width:0;height:0}.btn-mode:not(.btn-mode--active):hover{color:#1a1a19!important;background:#f3f2f0!important}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.grid-cell{cursor:default;background:#f7f7f6;flex-direction:column;justify-content:center;align-items:center;transition:background 60ms;display:flex;position:relative}.grid-cell:hover{background:#ededec}.grid-cell.has-rack:hover{background:inherit}.grid-cell.has-rack{cursor:pointer}.front-hint-edge{pointer-events:none;z-index:1;opacity:.58;background:repeating-linear-gradient(135deg,#11182733 0 2px,#0000 2px 7px);position:absolute}.front-hint-edge--left{border-radius:0 4px 4px 0;width:min(18px,45%);top:5px;bottom:5px;left:3px}.front-hint-edge--right{border-radius:4px 0 0 4px;width:min(18px,45%);top:5px;bottom:5px;right:3px}.front-hint-edge--top{border-radius:0 0 4px 4px;height:min(18px,45%);top:3px;left:5px;right:5px}.front-hint-edge--bottom{border-radius:4px 4px 0 0;height:min(18px,45%);bottom:3px;left:5px;right:5px}.mode-draw.has-active .grid-cell:not(.has-rack){cursor:cell}.mode-erase .grid-cell{cursor:crosshair}.mode-erase .grid-cell:hover{background:#fee2e2}.mode-fill .grid-cell:not(.has-rack){cursor:cell}.mode-fill .grid-cell.has-rack{cursor:not-allowed}.mode-move .grid-cell.has-rack{cursor:grab}.grid-cell.is-source{opacity:.35}.mode-move .grid-cell.is-source{cursor:grabbing}@property --snake-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes snake-spin{to{--snake-angle:360deg}}@keyframes chip-blink{0%,to{opacity:1}50%{opacity:.55}}.chip-blink{animation:1.1s ease-in-out infinite chip-blink}@media (prefers-reduced-motion:reduce){.chip-blink{animation:none}}.grid-cell.is-selected{z-index:2;overflow:visible}.grid-cell.is-selected:after{content:"";inset:calc(-1 * var(--ring-w,3px));background:conic-gradient(from var(--snake-angle), transparent 40%, var(--ring-color,#fff) 68%, var(--ring-color,#fff) 82%, transparent 100%);-webkit-mask-composite:xor;padding:var(--ring-w,3px);animation:snake-spin var(--ring-speed,2s) linear infinite;pointer-events:none;filter:drop-shadow(0 0 5px var(--ring-color,#fff)) drop-shadow(0 0 2px var(--ring-color,#fff));border-radius:8px;position:absolute;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.rule-chain-btn:hover{text-decoration:underline;color:#4338ca!important}.project-name-wrapper:focus-within .project-name-edit-icon{transition:opacity .15s;opacity:0!important}.project-name-edit-icon{transition:opacity .15s}
