.event-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;border:1px solid #59667e;border-radius:14px;background:#18212e;color:#edf2fa;font:14px/1.6 system-ui;overscroll-behavior:contain}.event-dialog::backdrop{background:#0009}.event-dialog *{box-sizing:border-box}.event-dialog h2,.event-dialog h3{margin:8px 0}.event-row,.event-list-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-row h2{margin-right:auto}.event-list-row{justify-content:space-between;margin:12px 0}.event-dialog button,.event-card button:not(.canvas-resize){border:1px solid #667893;background:#28374d;color:#edf2fa;border-radius:6px;padding:9px 12px;cursor:pointer}.event-dialog button:disabled{opacity:.5;cursor:default}.event-dialog label{display:block;min-width:0;margin:10px 0}.event-dialog input,.event-dialog select,.event-dialog textarea{display:block;width:100%;min-width:0;margin-top:4px;padding:10px;border:1px solid #667893;border-radius:6px;background:#101824;color:#fff;font:inherit}.event-dialog textarea{min-height:90px;resize:vertical}.event-dialog fieldset{min-width:0;margin:16px 0;padding:14px;border:1px solid #46556b;border-radius:8px}.event-dialog .event-editor{border:0;padding:0}.event-path{color:#b9d5ff;font-weight:700}.event-message{color:#ffd79e;overflow-wrap:anywhere}.event-message:empty{display:none}.event-command{white-space:pre-wrap}.event-dialog p,.event-dialog li,.event-dialog button{overflow-wrap:anywhere}.event-dialog :focus-visible,.event-card :focus-visible{outline:2px solid #b9d5ff;outline-offset:3px}.event-card{border-top-color:#98baff;overflow:hidden}.event-card[data-kind=event-classifier]{border-top-color:#d3afff}.event-card>button:not(.canvas-resize){align-self:flex-start;margin-top:auto;padding:4px 8px}.event-card .canvas-node-preview{-webkit-line-clamp:2}.event-card .canvas-node-state{margin:0 0 5px}@media(max-width:600px){.event-dialog{padding:14px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.event-dialog fieldset{padding:10px}.event-dialog button{min-height:44px}.event-dialog input,.event-dialog select,.event-dialog textarea{font-size:16px}.canvas-surface>.canvas-toolbar:has(.event-launcher){flex-wrap:wrap}}

.monitor-sensor-icon{box-sizing:border-box;width:24px;height:24px;padding:3px;object-fit:contain;background:#f1f5f9;border-radius:5px;flex-shrink:0}.logic-node-picker .monitor-sensor-icon{width:48px;height:48px;padding:6px;border-radius:8px}

.canvas-signal-port{position:absolute;z-index:12;width:14px;height:14px;min-height:0;padding:0;border:2px solid #edf3ff;border-radius:50%;background:#659cff;opacity:0;cursor:crosshair;touch-action:none}.canvas-node:hover>.canvas-signal-port,.canvas-node:focus-within>.canvas-signal-port{opacity:1}.port-left{left:0;top:50%}.port-right{right:0;top:50%}.port-top{top:0;left:50%}.port-bottom{bottom:0;left:50%}.canvas-signal-target{outline:3px solid #70b6ff!important}.canvas-signal-preview{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:100}.canvas-signal-preview path{fill:none;stroke:#8bbcff;stroke-width:3}.canvas-signal-label{position:absolute;transform:translate(-50%,-50%);z-index:5;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#142640;color:#deebff;border:1px solid #79a5e5;border-radius:8px;padding:5px 8px;font-size:12px;cursor:pointer}.canvas-signal-dialog textarea{min-height:80px}@media(pointer:coarse){.canvas-signal-port{opacity:1;width:22px;height:22px}}

.monitor-card-actions{display:flex;gap:6px;align-items:center;margin-top:auto}.event-card .monitor-card-actions button{padding:5px 8px;font-size:12px;min-height:34px}.event-card .monitor-card-delete{margin-left:auto;color:#ffd0d0;border-color:#a76a75}

.signal-output-panel{box-sizing:border-box;width:280px;max-width:280px;padding:10px;white-space:normal;overflow:visible;cursor:default;touch-action:auto}.signal-output-panel:focus-within{z-index:15}.signal-output-header,.signal-output-footer{display:flex;align-items:center;gap:6px}.signal-output-header{margin-bottom:8px}.signal-output-title{flex:1}.signal-output-panel button{font:inherit;padding:4px 7px;color:#deebff;background:#263e5b;border:1px solid #6789b8;border-radius:5px;cursor:pointer}.signal-output-panel button:disabled{opacity:.5;cursor:default}.signal-output-panel select,.signal-output-panel textarea{display:block;box-sizing:border-box;width:100%;font:12px/1.5 system-ui;color:#edf3ff;background:#0d1b2e;border:1px solid #6789b8;border-radius:5px;padding:6px}.signal-output-panel textarea{margin-top:6px;min-height:82px;max-height:260px;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere}.signal-output-panel textarea:read-only{color:#aabbd0}.signal-output-hint{display:block;margin:6px 0;font-size:10px;line-height:1.4;color:#b2c4df}.signal-output-status{flex:1;min-width:0;overflow-wrap:anywhere;font-size:11px}.signal-output-panel :focus-visible{outline:2px solid #b9d5ff;outline-offset:2px}

.signal-output-icon{box-sizing:border-box;width:32px;height:32px;padding:5px;object-fit:contain;background:#edf3ff;border-radius:7px;flex-shrink:0}.signal-output-panel::after{content:'';position:absolute;width:0;height:0;pointer-events:none;border:8px solid transparent}.signal-output-panel[data-source-side=right]::after{left:100%;top:50%;margin-top:-8px;border-left-color:#79a5e5}.signal-output-panel[data-source-side=left]::after{right:100%;top:50%;margin-top:-8px;border-right-color:#79a5e5}.signal-output-panel[data-source-side=top]::after{bottom:100%;left:50%;margin-left:-8px;border-bottom-color:#79a5e5}.signal-output-panel[data-source-side=bottom]::after{top:100%;left:50%;margin-left:-8px;border-top-color:#79a5e5}.signal-output-panel[data-source-side=left] .signal-output-icon{transform:rotate(180deg)}.signal-output-panel[data-source-side=top] .signal-output-icon{transform:rotate(-90deg)}.signal-output-panel[data-source-side=bottom] .signal-output-icon{transform:rotate(90deg)}

.signal-output-panel.box-selected{outline:3px solid #eab308;outline-offset:3px;z-index:15}

/* A flush expansion module, with a mounting rail on the source-facing edge. */
.signal-output-panel{background:linear-gradient(135deg,#20324a,#142236);box-shadow:0 4px 10px #0003;border-color:#7795ba}
.signal-output-panel::before{content:'';position:absolute;pointer-events:none;box-sizing:border-box;background:repeating-linear-gradient(0deg,#8ba3bf 0 3px,#304761 3px 9px);border:1px solid #9bb0c9;box-shadow:0 0 0 2px #152337}
.signal-output-panel[data-source-side=right]{border-radius:0 10px 10px 0;border-left:3px solid #8ba3bf}
.signal-output-panel[data-source-side=left]{border-radius:10px 0 0 10px;border-right:3px solid #8ba3bf}
.signal-output-panel[data-source-side=top]{border-radius:10px 10px 0 0;border-bottom:3px solid #8ba3bf}
.signal-output-panel[data-source-side=bottom]{border-radius:0 0 10px 10px;border-top:3px solid #8ba3bf}
.signal-output-panel[data-source-side=right]::before{width:7px;height:36px;left:-5px;top:calc(50% - 18px)}
.signal-output-panel[data-source-side=left]::before{width:7px;height:36px;right:-5px;top:calc(50% - 18px)}
.signal-output-panel[data-source-side=top]::before{height:7px;width:36px;bottom:-5px;left:calc(50% - 18px)}
.signal-output-panel[data-source-side=bottom]::before{height:7px;width:36px;top:-5px;left:calc(50% - 18px)}
.signal-output-header{padding-bottom:7px;border-bottom:1px solid #7795ba55}

/* Brass gear train bridges the body and output module; decoration never intercepts input. */
.signal-output-panel::before{width:42px!important;height:88px!important;background:var(--output-gear-art) center/contain no-repeat;border:0;box-shadow:none;filter:drop-shadow(1px 2px 1px #0009);z-index:2;pointer-events:none}
.signal-output-panel{--output-gear-art:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%20100%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22brass%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22%23f6d88e%22%2F%3E%3Cstop%20offset%3D%22.35%22%20stop-color%3D%22%23bd893a%22%2F%3E%3Cstop%20offset%3D%22.7%22%20stop-color%3D%22%23765025%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23e5b95d%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M%2042.60%2021.00%20L%2045.85%2023.22%20L%2045.42%2025.40%20L%2041.56%2026.20%20L%2040.78%2027.80%20L%2042.49%2031.35%20L%2041.02%2033.02%20L%2037.28%2031.79%20L%2035.80%2032.78%20L%2035.51%2036.71%20L%2033.40%2037.42%20L%2030.78%2034.48%20L%2029.00%2034.60%20L%2026.78%2037.85%20L%2024.60%2037.42%20L%2023.80%2033.56%20L%2022.20%2032.78%20L%2018.65%2034.49%20L%2016.98%2033.02%20L%2018.21%2029.28%20L%2017.22%2027.80%20L%2013.29%2027.51%20L%2012.58%2025.40%20L%2015.52%2022.78%20L%2015.40%2021.00%20L%2012.15%2018.78%20L%2012.58%2016.60%20L%2016.44%2015.80%20L%2017.22%2014.20%20L%2015.51%2010.65%20L%2016.98%208.98%20L%2020.72%2010.21%20L%2022.20%209.22%20L%2022.49%205.29%20L%2024.60%204.58%20L%2027.22%207.52%20L%2029.00%207.40%20L%2031.22%204.15%20L%2033.40%204.58%20L%2034.20%208.44%20L%2035.80%209.22%20L%2039.35%207.51%20L%2041.02%208.98%20L%2039.79%2012.72%20L%2040.78%2014.20%20L%2044.71%2014.49%20L%2045.42%2016.60%20L%2042.48%2019.22%20Z%20M%2039.88%2021%20A%2010.88%2010.88%200%201%200%2018.119999999999997%2021%20A%2010.88%2010.88%200%201%200%2039.88%2021%20Z%22%20fill%3D%22url%28%23brass%29%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23382919%22%20stroke-width%3D%221.2%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M%2029%2021%20L%2039.88%2021.00%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2021%20L%2029.00%2031.88%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2021%20L%2018.12%2021.00%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2021%20L%2029.00%2010.12%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Ccircle%20cx%3D%2229%22%20cy%3D%2221%22%20r%3D%225%22%20fill%3D%22url%28%23brass%29%22%20stroke%3D%22%2349321b%22%2F%3E%3Ccircle%20cx%3D%2229%22%20cy%3D%2221%22%20r%3D%221.8%22%20fill%3D%22%23172231%22%2F%3E%3Cpath%20d%3D%22M%2031.14%2053.52%20L%2033.71%2056.51%20L%2032.72%2058.50%20L%2028.79%2058.28%20L%2027.62%2059.62%20L%2028.35%2063.49%20L%2026.50%2064.72%20L%2023.20%2062.56%20L%2021.52%2063.14%20L%2020.22%2066.85%20L%2018.00%2067.00%20L%2016.22%2063.48%20L%2014.48%2063.14%20L%2011.49%2065.71%20L%209.50%2064.72%20L%209.72%2060.79%20L%208.38%2059.62%20L%204.51%2060.35%20L%203.28%2058.50%20L%205.44%2055.20%20L%204.86%2053.52%20L%201.15%2052.22%20L%201.00%2050.00%20L%204.52%2048.22%20L%204.86%2046.48%20L%202.29%2043.49%20L%203.28%2041.50%20L%207.21%2041.72%20L%208.38%2040.38%20L%207.65%2036.51%20L%209.50%2035.28%20L%2012.80%2037.44%20L%2014.48%2036.86%20L%2015.78%2033.15%20L%2018.00%2033.00%20L%2019.78%2036.52%20L%2021.52%2036.86%20L%2024.51%2034.29%20L%2026.50%2035.28%20L%2026.28%2039.21%20L%2027.62%2040.38%20L%2031.49%2039.65%20L%2032.72%2041.50%20L%2030.56%2044.80%20L%2031.14%2046.48%20L%2034.85%2047.78%20L%2035.00%2050.00%20L%2031.48%2051.78%20Z%20M%2028.880000000000003%2050%20A%2010.88%2010.88%200%201%200%207.119999999999999%2050%20A%2010.88%2010.88%200%201%200%2028.880000000000003%2050%20Z%22%20fill%3D%22url%28%23brass%29%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23382919%22%20stroke-width%3D%221.2%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M%2018%2050%20L%2028.51%2052.82%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2018%2050%20L%2015.18%2060.51%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2018%2050%20L%207.49%2047.18%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2018%2050%20L%2020.82%2039.49%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2250%22%20r%3D%225%22%20fill%3D%22url%28%23brass%29%22%20stroke%3D%22%2349321b%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2250%22%20r%3D%221.8%22%20fill%3D%22%23172231%22%2F%3E%3Cpath%20d%3D%22M%2042.60%2079.00%20L%2045.85%2081.22%20L%2045.42%2083.40%20L%2041.56%2084.20%20L%2040.78%2085.80%20L%2042.49%2089.35%20L%2041.02%2091.02%20L%2037.28%2089.79%20L%2035.80%2090.78%20L%2035.51%2094.71%20L%2033.40%2095.42%20L%2030.78%2092.48%20L%2029.00%2092.60%20L%2026.78%2095.85%20L%2024.60%2095.42%20L%2023.80%2091.56%20L%2022.20%2090.78%20L%2018.65%2092.49%20L%2016.98%2091.02%20L%2018.21%2087.28%20L%2017.22%2085.80%20L%2013.29%2085.51%20L%2012.58%2083.40%20L%2015.52%2080.78%20L%2015.40%2079.00%20L%2012.15%2076.78%20L%2012.58%2074.60%20L%2016.44%2073.80%20L%2017.22%2072.20%20L%2015.51%2068.65%20L%2016.98%2066.98%20L%2020.72%2068.21%20L%2022.20%2067.22%20L%2022.49%2063.29%20L%2024.60%2062.58%20L%2027.22%2065.52%20L%2029.00%2065.40%20L%2031.22%2062.15%20L%2033.40%2062.58%20L%2034.20%2066.44%20L%2035.80%2067.22%20L%2039.35%2065.51%20L%2041.02%2066.98%20L%2039.79%2070.72%20L%2040.78%2072.20%20L%2044.71%2072.49%20L%2045.42%2074.60%20L%2042.48%2077.22%20Z%20M%2039.88%2079%20A%2010.88%2010.88%200%201%200%2018.119999999999997%2079%20A%2010.88%2010.88%200%201%200%2039.88%2079%20Z%22%20fill%3D%22url%28%23brass%29%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23382919%22%20stroke-width%3D%221.2%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M%2029%2079%20L%2039.88%2079.00%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2079%20L%2029.00%2089.88%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2079%20L%2018.12%2079.00%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M%2029%2079%20L%2029.00%2068.12%22%20stroke%3D%22%23b78a43%22%20stroke-width%3D%223%22%2F%3E%3Ccircle%20cx%3D%2229%22%20cy%3D%2279%22%20r%3D%225%22%20fill%3D%22url%28%23brass%29%22%20stroke%3D%22%2349321b%22%2F%3E%3Ccircle%20cx%3D%2229%22%20cy%3D%2279%22%20r%3D%221.8%22%20fill%3D%22%23172231%22%2F%3E%3C%2Fsvg%3E")}
.signal-output-panel[data-source-side=right]::before{left:-23px;right:auto;top:calc(50% - 44px);bottom:auto}
.signal-output-panel[data-source-side=left]::before{right:-23px;left:auto;top:calc(50% - 44px);bottom:auto;transform:scaleX(-1)}
.signal-output-panel[data-source-side=top]::before{bottom:-45px;top:auto;left:calc(50% - 21px);right:auto;transform:rotate(90deg)}
.signal-output-panel[data-source-side=bottom]::before{top:-45px;bottom:auto;left:calc(50% - 21px);right:auto;transform:rotate(90deg)}
.signal-output-panel[data-source-side=right]{padding-left:23px;border-left-color:#9b783f}
.signal-output-panel[data-source-side=left]{padding-right:23px;border-right-color:#9b783f}
.signal-output-panel[data-source-side=top]{padding-bottom:23px;border-bottom-color:#9b783f}
.signal-output-panel[data-source-side=bottom]{padding-top:23px;border-top-color:#9b783f}

/* Raise the gear's parent stacking context above expanded/active source cards (z 6/7). */
.canvas-world>.signal-output-panel{z-index:8}
.canvas-world>.signal-output-panel:focus-within,.canvas-world>.signal-output-panel.box-selected{z-index:15}

.signal-output-icon{background:#fff;padding:2px}

.signal-output-field{display:block;margin:7px 0;color:#b2c4df;font-size:11px}.signal-output-field select{margin-top:4px}

.signal-output-preview{display:none;white-space:pre-wrap;overflow-wrap:anywhere;max-height:72px;overflow:auto;line-height:1.5;color:#edf3ff}
.signal-output-panel.is-small>*{display:none!important}
.signal-output-panel.is-small>.signal-output-preview{display:block!important}
.signal-output-panel.is-small{min-height:44px;padding-top:10px;padding-bottom:10px;cursor:pointer}




.signal-output-panel.is-small{min-height:54px}
.signal-output-panel.is-small>.signal-output-header{display:flex!important;float:left;border:0;padding:0;margin:0 8px 0 0}
.signal-output-panel.is-small>.signal-output-header>:not(.signal-output-icon){display:none!important}
.signal-output-panel.is-small>.signal-output-preview{min-height:32px;padding-top:6px}
.signal-output-panel.is-small:after{clear:both}

/* Numeric interval with vertically stacked controls on the right. */
.event-dialog .monitor-interval-stepper{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:0;align-items:stretch;margin:4px 0 12px}
.event-dialog .monitor-interval-stepper input{margin:0;text-align:left;border-radius:6px 0 0 6px;appearance:textfield;-moz-appearance:textfield}
.monitor-interval-stepper input::-webkit-inner-spin-button,.monitor-interval-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.event-dialog .monitor-interval-arrows{display:grid;grid-template-rows:1fr 1fr}
.event-dialog .monitor-interval-arrows button{min-width:44px;min-height:24px;height:24px;padding:0;line-height:1;font-size:18px;border-radius:0;border-left:0}
.event-dialog .monitor-interval-arrows button:first-child{border-radius:0 6px 0 0}
.event-dialog .monitor-interval-arrows button:last-child{border-top:0;border-radius:0 0 6px 0}
@media(max-width:600px){.event-dialog .monitor-interval-arrows button{min-height:32px;height:32px}}

/* Classifier setup: explicit scalar types and optional test section. */
.event-dialog .event-back{border:0;background:transparent;padding:4px 0;color:#b9d5ff;font-size:13px}
.event-classifier-test{margin-top:18px;border-top:1px solid #46556b;padding-top:12px}
.event-classifier-test summary{cursor:pointer;padding:8px 0;font-weight:600}
.event-dialog .event-scalar{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr);gap:12px;align-items:start}
.event-value-hint{margin-top:42px;color:#b9c6d9}
@media(max-width:480px){.event-dialog .event-scalar{grid-template-columns:1fr;gap:0}.event-value-hint{margin:4px 0 12px}}

/* Passage availability remains accessible in both expanded and compact nodes. */
.signal-output-header{flex-wrap:wrap}
.signal-output-header .signal-output-title{min-width:60px}
.signal-output-panel.is-disabled{border-style:dashed}
.signal-output-panel.is-disabled .signal-output-icon{filter:grayscale(1);opacity:.6}
.signal-output-panel.is-small>.signal-output-header>.signal-enabled-button{display:block!important}
