.operation-transport-selector[data-v-7bd4aadb]{min-width:0;width:fit-content;max-width:100%;display:flex;align-items:center;gap:8px}.operation-transport-label[data-v-7bd4aadb]{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.operation-transport-label[data-v-7bd4aadb] .section-info-button{width:18px;height:18px;font-size:10px}.operation-transport-options[data-v-7bd4aadb]{min-width:0;width:260px;max-width:100%;flex:0 1 260px;display:grid;grid-template-columns:minmax(48px,.7fr) minmax(92px,1.3fr);gap:3px;padding:2px;border-radius:7px;background:var(--surface-soft)}.operation-transport-options button[data-v-7bd4aadb]{min-height:27px;padding:4px 9px;border:0;border-radius:5px;color:var(--muted);background:transparent;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.operation-transport-options button.active[data-v-7bd4aadb]{color:#fff;background:var(--brand);box-shadow:0 2px 6px #8655c02e}.operation-transport-options button[data-v-7bd4aadb]:disabled{opacity:.4;cursor:not-allowed}.operation-transport-help[data-v-7bd4aadb]{display:grid;padding:0 22px 22px;text-transform:none;letter-spacing:normal;white-space:normal}.operation-transport-help p[data-v-7bd4aadb]{display:grid;grid-template-columns:minmax(0,124px) minmax(0,1fr);gap:14px;margin:0;padding:12px 0;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.5}.operation-transport-help strong[data-v-7bd4aadb]{min-width:0;color:var(--ink);font-size:12px;letter-spacing:.02em;line-height:1.45;overflow-wrap:anywhere}.operation-transport-help span[data-v-7bd4aadb]{min-width:0;overflow-wrap:anywhere}@media(max-width:520px){.operation-transport-help p[data-v-7bd4aadb]{grid-template-columns:1fr;gap:4px}}@media(max-width:360px){.operation-transport-selector[data-v-7bd4aadb]{width:100%;align-items:stretch;flex-direction:column;gap:6px}.operation-transport-options[data-v-7bd4aadb]{width:100%;flex-basis:auto}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-colored:#ddd}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;transform:translate3d(0,0,var(--toastify-z-index) px);width:var(--toastify-toast-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:1em;top:1em}.Toastify__toast-container--top-center{left:50%;top:1em;transform:translate(-50%)}.Toastify__toast-container--top-right{right:1em;top:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{left:0;margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translate(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translate(0)}.Toastify__toast-container--rtl{left:auto;right:0}}.Toastify__toast{border-radius:4px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;box-sizing:border-box;cursor:pointer;direction:ltr;display:flex;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px;white-space:pre-wrap}.Toastify__toast-body>div:last-child{flex:1}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify__toast-text{display:flex;flex-direction:column;gap:2px;line-height:1.35;width:100%}.Toastify__toast-text-title{font-weight:600}.Toastify__toast-text-content{opacity:.92}.Toastify--animate{animation-duration:.7s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--default{background:var(--toastify-color-progress-colored)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentcolor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:5px;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{left:auto;right:0;transform-origin:right}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__none{0%,60%,75%,90%,to{animation-duration:0;animation-timing-function:none}0%{opacity:1;transform:translateZ(0)}to{transform:translateZ(0)}}.Toastify__none-enter--bottom-center,.Toastify__none-enter--bottom-left,.Toastify__none-enter--bottom-right,.Toastify__none-enter--top-center,.Toastify__none-enter--top-left,.Toastify__none-enter--top-right{animation-name:Toastify__none}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{opacity:1;transform:perspective(400px) rotateX(-20deg)}to{opacity:0;transform:perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{transform:translate3d(110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{transform:translate3d(-110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vjs-tree-brackets{cursor:pointer}.vjs-tree-brackets:hover{color:#1890ff}.vjs-check-controller{position:absolute;left:0}.vjs-check-controller.is-checked .vjs-check-controller-inner{background-color:#1890ff;border-color:#0076e4}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-checkbox:after{transform:rotate(45deg) scaleY(1)}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-radio:after{transform:translate(-50%,-50%) scale(1)}.vjs-check-controller .vjs-check-controller-inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:2px;vertical-align:middle;box-sizing:border-box;width:16px;height:16px;background-color:#fff;z-index:1;cursor:pointer;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-check-controller .vjs-check-controller-inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-check-controller .vjs-check-controller-inner.is-radio{border-radius:100%}.vjs-check-controller .vjs-check-controller-inner.is-radio:after{border-radius:100%;height:4px;background-color:#fff;left:50%;top:50%}.vjs-check-controller .vjs-check-controller-original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.vjs-carets{position:absolute;right:0;cursor:pointer}.vjs-carets svg{transition:transform .3s}.vjs-carets:hover{color:#1890ff}.vjs-carets-close{transform:rotate(-90deg)}.vjs-tree-node{display:flex;position:relative;line-height:20px}.vjs-tree-node.has-carets{padding-left:15px}.vjs-tree-node.has-carets.has-selector,.vjs-tree-node.has-selector{padding-left:30px}.vjs-tree-node.is-highlight,.vjs-tree-node:hover{background-color:#e6f7ff;border-radius:4px}.vjs-tree-node.is-highlight .vjs-tree-node-actions,.vjs-tree-node:hover .vjs-tree-node-actions{display:block}.vjs-tree-node .vjs-indent{display:flex;position:relative}.vjs-tree-node .vjs-indent-unit.has-line{border-left:1px dashed #bfcbd9}.vjs-tree-node .vjs-tree-node-actions{display:none;position:absolute;right:0;top:0;padding:0 4px;background-color:#e6f7ff;border-radius:4px}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item{cursor:pointer}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item:hover{color:#1890ff}.vjs-tree-node.dark.is-highlight,.vjs-tree-node.dark .vjs-tree-node-actions,.vjs-tree-node.dark:hover{background-color:#2e4558}.vjs-node-index{position:absolute;right:100%;margin-right:4px;-webkit-user-select:none;user-select:none}.vjs-colon{white-space:pre}.vjs-comment{color:#bfcbd9}.vjs-key{white-space:nowrap}.vjs-value{word-break:break-word}.vjs-tree-node.dynamic-height .vjs-value{white-space:pre-wrap}.vjs-value-null,.vjs-value-undefined{color:#d55fde}.vjs-value-boolean,.vjs-value-number{color:#1d8ce0}.vjs-value-string{color:#13ce66}.vjs-tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono,monospace;font-size:14px;text-align:left}.vjs-tree.is-virtual{overflow:auto}.vjs-tree.is-virtual .vjs-tree-node{white-space:nowrap}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-family:var(--font-sans);font-size:16px;color:#252730;background:#f6f7f9;font-synthesis:none;--ink: #252730;--muted: #69707d;--line: #e3e5ea;--paper: rgba(255, 255, 255, .82);--page: #f6f7f9;--grid-line: #e3e5ea;--surface: #ffffff;--surface-soft: #f2f3f6;--surface-raised: #ffffff;--surface-muted: rgba(246, 247, 249, .55);--surface-translucent: rgba(255, 255, 255, .72);--brand-tint: #f3ecfb;--brand-tint-hover: #eadff7;--selected-surface: #f3ecfb;--selected-line: rgba(134, 85, 192, .34);--control-line: #d0d3da;--input-line: #ced2d9;--shadow: rgba(37, 39, 48, .14);--scroll-shadow: rgba(37, 39, 48, .13);--code-surface: #252730;--code-line: #363941;--brand: #b084e7;--brand-hover: #9b6bd4;--brand-strong: #8655c0;--brand-soft: rgba(176, 132, 231, .14);--section-label: #9564cf;--success: #00BE56;--success-ring: rgba(0, 190, 86, .1);--success-strong: #365f9a;--success-soft: #eaf1fb;--relay-on: #365f9a;--online-ink: #238650;--online-soft: #e7f6ed;--amber: #d7772c;--red: #c3453d}:root[data-theme=dark]{color-scheme:dark;color:#e7eaf0;background:#121419;--ink: #e7eaf0;--muted: #9ba3af;--line: #2d333c;--paper: rgba(25, 28, 34, .96);--page: #121419;--grid-line: #1d2127;--surface: #1f232a;--surface-soft: #242931;--surface-raised: #292e37;--surface-muted: rgba(31, 35, 42, .78);--surface-translucent: rgba(31, 35, 42, .9);--brand: #9870c8;--brand-hover: #aa80d6;--brand-strong: #b68ddd;--brand-soft: rgba(152, 112, 200, .12);--brand-tint: #25222b;--brand-tint-hover: #2d2834;--selected-surface: #24282f;--selected-line: #4b535f;--section-label: #9ba3af;--control-line: #39414c;--input-line: #414a56;--shadow: rgba(0, 0, 0, .34);--scroll-shadow: rgba(0, 0, 0, .36);--code-surface: #171a20;--code-line: #303640;--success: #47bd86;--success-ring: rgba(71, 189, 134, .12);--success-strong: #47bd86;--success-soft: rgba(71, 189, 134, .12);--relay-on: #78a4df;--online-ink: #67cb98;--online-soft: rgba(71, 189, 134, .12);--amber: #d89a5b;--red: #df706a}:root[data-theme=dark] body:after{opacity:.12}:root[data-theme=dark] .workspace-header,:root[data-theme=dark] .panel{box-shadow:0 10px 28px #00000029}:root[data-theme=dark] .device-list-item:hover,:root[data-theme=dark] .traffic-list>button:hover{background:var(--surface-soft)}:root[data-theme=dark] .device-list-item.active,:root[data-theme=dark] .traffic-list>button.active{background:var(--selected-surface);box-shadow:inset 0 0 0 1px var(--selected-line)}:root[data-theme=dark] .relay-card,:root[data-theme=dark] .sensor-grid>article{background:var(--surface)}:root[data-theme=dark] .relay-card.selected{border-color:var(--selected-line);background:var(--selected-surface);box-shadow:inset 0 1px #ffffff06}:root[data-theme=dark] .relay-selector[aria-pressed=true] i{border-color:var(--surface-raised);box-shadow:0 0 0 1px var(--brand)}:root[data-theme=dark] .section-info-button,:root[data-theme=dark] .relay-config-button,:root[data-theme=dark] .rs485-config-button{color:var(--muted);background:var(--surface-soft)}:root[data-theme=dark] .relay-toolbar,:root[data-theme=dark] .inspector-connection,:root[data-theme=dark] .device-rail-brand{background:var(--surface-soft)}:root[data-theme=dark] .traffic-kind,:root[data-theme=dark] .traffic-meta-summary span{background:var(--brand-soft)}:root[data-theme=dark] .traffic-tools button,:root[data-theme=dark] .relay-toolbar button,:root[data-theme=dark] .relay-actions button,:root[data-theme=dark] .inspector-header-actions>button,:root[data-theme=dark] .theme-toggle{background:var(--surface-raised)}:root[data-theme=dark] .section-info-dialog article,:root[data-theme=dark] .relay-jog-dialog>section,:root[data-theme=dark] .rs485-baud-dialog>section,:root[data-theme=dark] .device-tools-dialog>section,:root[data-theme=dark] .device-task-dialog>section{border-color:var(--line)}:root[data-theme=dark] .contract-errors{color:#f0bbb6;background:#c3453d1f}:root[data-theme=dark] .contract-errors li{color:#e7aaa5}:root[data-theme=dark] .contract-errors code,:root[data-theme=dark] .device-tools-message.error,:root[data-theme=dark] .error-tag,:root[data-theme=dark] .traffic-error{color:#f0918a;background:#c3453d26}:root[data-theme=dark] .traffic-list>button.failed{background:#c3453d1c}:root[data-theme=dark] .power-alert,:root[data-theme=dark] .power-tag,:root[data-theme=dark] .inline-warning{color:#efb77e;background:#d7772c21}:root[data-theme=dark] .power-alert strong,:root[data-theme=dark] .power-alert span,:root[data-theme=dark] .power-alert p{color:#efb77e}:root[data-theme=dark] .danger-button{color:#f0918a;background:#c3453d21}:root[data-theme=dark] .wlte-toast{box-shadow:0 18px 44px #00000061}:root[data-theme=dark] input,:root[data-theme=dark] textarea{caret-color:var(--brand-strong)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#77717f}*{box-sizing:border-box}html,body,#app{max-width:100%}body{margin:0;min-width:320px;min-height:100vh;overflow-x:clip}.device-list,.device-tools-list,.event-list,.traffic-list,.traffic-detail,.protocol-inspector.expanded{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}.device-list::-webkit-scrollbar,.device-tools-list::-webkit-scrollbar,.event-list::-webkit-scrollbar,.traffic-list::-webkit-scrollbar,.traffic-detail::-webkit-scrollbar,.protocol-inspector.expanded::-webkit-scrollbar{display:none;width:0;height:0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:var(--page)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.2;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 75%);mask-image:linear-gradient(to bottom,black,transparent 75%)}button,a{font:inherit}.mobile-label,.mobile-header-devices,.mobile-header-inspector,.mobile-inspector-backdrop,.mobile-relay-action-bar{display:none}.shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:16px 0 64px}.shell.device-shell{width:min(1880px,calc(100% - 32px))}.masthead{display:none;align-items:center;width:fit-content;margin-bottom:14px}.workspace-header{min-width:0;min-height:0;padding:8px 9px 8px 12px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 9px 26px #373a440d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-leading{min-width:0;display:flex;align-items:center;gap:18px}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{display:block;width:42px;height:42px;border-radius:11px;object-fit:cover;box-shadow:0 5px 15px #25273024}.brand strong,.brand small{display:block}.brand strong{font:700 17px var(--font-sans);letter-spacing:.04em}.brand small{margin-top:1px;color:var(--muted);font-size:13px}.docs-link{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-left:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;text-decoration:none;transition:color .2s}.docs-link:hover{color:var(--brand-strong)}.docs-link small{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;color:var(--brand-strong);background:var(--brand-tint);font-size:10px}.theme-toggle{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface-translucent);cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}.theme-toggle:hover{transform:translateY(-1px);color:var(--brand-strong);border-color:#b084e773;background:var(--brand-tint)}.theme-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.devices-menu-icon{display:grid;gap:3px;width:24px;padding:6px 5px;border-radius:7px;color:#fff;background:var(--ink)}.devices-menu-icon i{display:block;width:14px;height:1.5px;border-radius:999px;background:currentColor}.protocol-toggle-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#fafafb;background:var(--ink);font:700 11px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.protocol-toggle-icon svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.eyebrow{margin:0 0 9px;color:var(--section-label);font:700 12px var(--font-sans);letter-spacing:.12em}h1,h2,h3,p{margin-top:0}.spinning{animation:spin .9s linear infinite}.Toastify__toast-container{--toastify-toast-width: 380px;top:14px;left:14px}.wlte-toast{min-height:0;padding:0;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--surface);box-shadow:0 14px 38px #25273026;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:default}.wlte-toast.Toastify__toast--success{border-color:#4f7fc74d}.wlte-toast.Toastify__toast--error{border-color:#c3453d4d}.wlte-toast-body{align-items:stretch;margin:0;padding:0}.wlte-toast-content{width:100%;margin:0;padding:11px 38px 12px 14px}.wlte-toast-content>div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:baseline;padding:4px 0}.wlte-toast-content dt{color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.035em;text-transform:uppercase}.wlte-toast-content dd{min-width:0;margin:0;color:var(--ink);font-size:12px;font-weight:650;line-height:1.4;overflow-wrap:anywhere}.wlte-toast-content code{color:var(--muted);font:10.5px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.wlte-toast-message{margin-top:2px;padding-top:7px!important;border-top:1px solid var(--line)}.wlte-toast-message dd{font-weight:500;line-height:1.4}.wlte-toast .Toastify__close-button{position:absolute;top:9px;right:9px;width:24px;height:24px;display:grid;place-items:center;border-radius:7px;color:var(--muted);background:var(--surface-soft);opacity:1}.wlte-toast-progress{height:3px;opacity:1}.wlte-toast.Toastify__toast--success .wlte-toast-progress{background:var(--success)}.wlte-toast.Toastify__toast--error .wlte-toast-progress{background:var(--red)}.loading-panel{display:flex;align-items:center;justify-content:center;gap:7px;height:240px;color:var(--muted)}.loading-panel span{width:8px;height:8px;border-radius:50%;background:var(--brand);animation:pulse 1.2s infinite}.loading-panel span:nth-child(2){animation-delay:.15s}.loading-panel span:nth-child(3){margin-right:10px;animation-delay:.3s}.panel{border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 14px 35px #373a440d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-dialog-open,.device-drawer-open,.inspector-drawer-open{overflow:hidden}.section-title-row{display:flex;align-items:center;gap:8px;min-width:0}.section-heading-actions{display:flex;align-items:center;gap:8px}.section-info{display:inline-flex;align-items:center}.section-info-button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--control-line);border-radius:50%;color:var(--brand-strong);background:var(--surface-translucent);font:800 13px var(--font-sans);cursor:pointer;transition:border-color .2s,color .2s,background .2s,transform .2s}.section-info-button:hover{transform:translateY(-1px);border-color:var(--brand);color:#fff;background:var(--brand)}.section-info-dialog{width:min(500px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:18px;color:var(--ink);background:transparent;box-shadow:0 28px 90px #191b2047;font-weight:400;letter-spacing:normal;line-height:normal;text-align:left;text-transform:none;white-space:normal}.section-info-dialog::backdrop{background:#1e202675;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.section-info-dialog article{overflow:hidden;border:1px solid rgba(255,255,255,.65);border-radius:18px;background:var(--surface)}.section-info-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 22px 17px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(176,132,231,.1),transparent 58%)}.section-info-dialog header small{display:block;margin-bottom:5px;color:var(--brand-strong);font-size:10px;font-weight:800;letter-spacing:.1em}.section-info-dialog header h2{margin:0;font:650 22px var(--font-sans);letter-spacing:-.02em}.section-info-dialog>article>p{margin:0;padding:19px 22px 23px;color:var(--muted);font-size:14px;line-height:1.65}.section-info-dialog .section-info-close{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:20px;line-height:1;cursor:pointer}.section-info-dialog .section-info-close:hover{color:var(--ink);border-color:var(--control-line)}.device-page{padding-top:12px}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex:0 0 auto;padding:11px 15px;border:1px solid var(--control-line);border-radius:11px;color:var(--ink);background:var(--surface-translucent);font-weight:700;cursor:pointer;transition:background .2s,transform .2s}.secondary-button:hover:not(:disabled){transform:translateY(-1px);background:var(--surface)}.secondary-button:disabled{opacity:.55;cursor:wait}.relay-jog-dialog-open,.rs485-baud-dialog-open{overflow:hidden}.relay-jog-dialog{width:min(460px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:18px;color:var(--ink);background:transparent;box-shadow:0 30px 100px #191b2052}.relay-jog-dialog::backdrop{background:#1e202675;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.relay-jog-dialog>section{overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:var(--surface)}.relay-jog-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(176,132,231,.1),transparent 58%)}.relay-jog-dialog header small{display:block;margin-bottom:4px;color:var(--brand-strong);font-size:10px;font-weight:800;letter-spacing:.1em}.relay-jog-dialog header h2{margin:0;font:650 24px var(--font-sans);letter-spacing:-.025em}.relay-jog-dialog header p{margin:6px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.relay-jog-dialog header>button{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface);font-size:21px;line-height:1;cursor:pointer}.relay-jog-dialog header>button:hover{color:var(--ink);border-color:var(--control-line)}.relay-jog-dialog header>button:disabled{opacity:.45;cursor:wait}.relay-jog-form{display:grid;gap:9px;padding:20px 24px 24px}.relay-jog-context{display:grid;grid-template-columns:1fr auto;gap:8px 18px;margin-bottom:8px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.relay-jog-context span{color:var(--muted);font-size:11px}.relay-jog-context strong{font-size:12px}.relay-jog-form>label{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.relay-jog-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--input-line);border-radius:10px;background:var(--surface)}.relay-jog-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #b084e71c}.relay-jog-input input{width:100%;height:44px;padding:0 12px;border:0;outline:0;color:var(--ink);background:transparent;font:15px var(--font-sans)}.relay-jog-input span{padding-right:12px;color:var(--muted);font-size:12px}.relay-jog-form>small{color:var(--muted);font-size:11px}.relay-jog-form>p{margin:2px 0 0;color:#9d332d;font-size:12px}.relay-jog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:10px}.rs485-baud-dialog{width:min(460px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:18px;color:var(--ink);background:transparent;box-shadow:0 30px 100px #191b2052}.rs485-baud-dialog::backdrop{background:#1e202675;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rs485-baud-dialog>section{overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:var(--surface)}.rs485-baud-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(176,132,231,.1),transparent 58%)}.rs485-baud-dialog header small{display:block;margin-bottom:4px;color:var(--brand-strong);font-size:10px;font-weight:800;letter-spacing:.1em}.rs485-baud-dialog header h2{margin:0;font:650 24px var(--font-sans);letter-spacing:-.025em}.rs485-baud-dialog header p{margin:6px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.rs485-baud-dialog header>button{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface);font-size:21px;line-height:1;cursor:pointer}.rs485-baud-dialog header>button:hover{color:var(--ink);border-color:var(--control-line)}.rs485-baud-dialog header>button:disabled{opacity:.45;cursor:wait}.rs485-baud-dialog-form{display:grid;gap:9px;padding:20px 24px 24px}.rs485-baud-context{display:grid;grid-template-columns:1fr auto;gap:8px 18px;margin-bottom:8px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.rs485-baud-context span{color:var(--muted);font-size:11px}.rs485-baud-context strong{font-size:12px}.rs485-baud-dialog-form>label{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.rs485-baud-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--input-line);border-radius:10px;background:var(--surface)}.rs485-baud-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #b084e71c}.rs485-baud-input input{width:100%;height:44px;padding:0 12px;border:0;outline:0;color:var(--ink);background:transparent;font:15px var(--font-sans)}.rs485-baud-input span{padding-right:12px;color:var(--muted);font-size:12px}.rs485-baud-dialog-form>small{color:var(--muted);font-size:11px}.rs485-baud-dialog-form>p{margin:2px 0 0;color:#9d332d;font-size:12px}.rs485-baud-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:10px}.device-tools-open{overflow:hidden}.device-tools-dialog,.device-task-dialog{width:min(640px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);padding:0;border:0;border-radius:18px;color:var(--ink);background:transparent;box-shadow:0 30px 100px #191b2052}.device-task-dialog{width:min(600px,calc(100vw - 40px))}.device-tools-dialog::backdrop{background:#1e202680;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.device-task-dialog::backdrop{background:#1e202647;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.device-tools-dialog>section,.device-task-dialog>section{overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:var(--surface)}.device-tools-dialog header,.device-task-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 24px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(176,132,231,.1),transparent 58%)}.device-tools-dialog header small,.device-task-dialog header small{display:block;margin-bottom:4px;color:var(--brand-strong);font-size:10px;font-weight:800;letter-spacing:.1em}.device-tools-dialog header h2,.device-task-dialog header h2{margin:0;font:650 24px var(--font-sans);letter-spacing:-.025em}.device-tools-dialog header p,.device-task-dialog header p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.device-tools-dialog code,.device-task-dialog code{padding:2px 5px;border-radius:5px;color:var(--brand-strong);background:#b084e717;font:12px var(--font-mono)}.device-tools-close{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface);font-size:21px;line-height:1;cursor:pointer}.device-tools-close:hover{color:var(--ink);border-color:var(--control-line)}.device-tools-close:disabled{opacity:.45;cursor:wait}.device-tools-body{display:grid;gap:14px;padding:20px 24px 24px}.device-task-dialog .device-tools-body{max-height:calc(100vh - 160px);overflow-y:auto;scrollbar-width:none}.device-task-dialog .device-tools-body::-webkit-scrollbar{display:none}.device-tools-message{margin:0;padding:10px 12px;border-radius:9px;font-size:13px}.device-tools-message.error{color:#8d302a;background:#ffeae5}.device-tools-toolbar{display:flex;justify-content:flex-end}.device-tools-list-wrap{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--surface-translucent)}.device-tools-list{--scroll-surface: var(--surface);max-height:min(420px,calc(100vh - 270px));overflow-y:auto;scrollbar-width:none}.device-tools-list::-webkit-scrollbar{display:none}.device-tools-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line)}.device-tools-list article:last-of-type{border-bottom:0}.device-tools-list article strong,.device-tools-list article small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-tools-list article strong{font-size:14px}.device-tools-list article small{margin-top:3px;color:var(--muted);font-size:12px}.device-tools-actions{display:flex;gap:7px}.device-tools-actions .secondary-button{padding:8px 11px;border-radius:8px;font-size:12px}.device-tools-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.device-tools-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.device-tools-form label>small{font-weight:500}.device-tools-form input{width:100%;height:42px;padding:0 11px;border:1px solid var(--input-line);border-radius:9px;color:var(--ink);background:var(--surface);font:14px var(--font-sans);outline:none}.device-tools-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #b084e71c}.device-tools-wide{grid-column:1 / -1}.device-tools-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.device-tools-confirm{display:grid;gap:14px;padding:4px 0 2px}.device-tools-confirm>strong{font-size:17px}.device-tools-confirm>p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.device-tools-confirm>div{display:flex;justify-content:flex-end;gap:8px}.danger-button{padding:8px 11px;border:1px solid rgba(195,69,61,.28);border-radius:8px;color:#9d332d;background:#fff4f1;font-size:12px;font-weight:750;cursor:pointer}.danger-button.confirming{color:#fff;border-color:var(--red);background:var(--red)}.danger-button:disabled{opacity:.5;cursor:wait}.device-workspace{min-width:0;display:grid;grid-template-columns:270px minmax(600px,1.15fr) minmax(420px,.85fr);gap:20px;align-items:start}.device-workspace.inspector-hidden{grid-template-columns:280px minmax(0,1fr)}.device-workspace.devices-hidden{grid-template-columns:minmax(600px,1.15fr) minmax(420px,.85fr)}.device-workspace.devices-hidden.inspector-hidden{grid-template-columns:minmax(0,1fr)}.device-workspace.inspector-split{grid-template-columns:minmax(600px,.85fr) minmax(500px,1.15fr)}.device-drawer-backdrop{display:none}.device-rail{position:sticky;top:16px;overflow:hidden}.device-rail-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 11px 11px 13px;border-bottom:1px solid var(--line);background:var(--surface-muted)}.device-rail-brand .brand{min-width:0;gap:9px}.device-rail-brand .brand-mark{width:34px;height:34px;border-radius:9px}.device-rail-brand .brand span{min-width:0}.device-rail-brand .brand strong{font-size:14px}.device-rail-brand .brand small{display:none}.device-rail-brand-actions{display:flex;align-items:center;gap:5px}.device-rail-brand .theme-toggle{width:30px;height:30px;border-radius:8px}.device-rail-brand .docs-link{flex:0 0 auto;height:30px;gap:4px;padding:0 6px 0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-translucent)}.device-rail-brand .docs-link>span{display:inline;font-size:10px}.device-rail-brand .docs-link small{width:15px;height:15px;font-size:9px}.device-rail-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}.device-rail-heading>strong{font-size:16px}.device-rail-heading .section-heading-actions>button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--surface);font-size:18px;cursor:pointer}.device-rail-heading .section-heading-actions>button:disabled{opacity:.5;cursor:wait}.device-rail-close{display:none!important}.device-tools-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.realtime-strip{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface-soft)}.realtime-strip>span{width:8px;height:8px;border-radius:50%;background:#9ba1aa;box-shadow:0 0 0 4px #69707d1a}.realtime-strip.is-connected>span{background:var(--success);box-shadow:0 0 0 4px var(--success-ring)}.realtime-strip.browser-disconnected>span{background:var(--amber);box-shadow:0 0 0 4px #d7772c1c;animation:pulse 1.4s infinite}.realtime-strip.is-reconnecting>span,.realtime-strip.is-connecting>span{background:var(--amber);box-shadow:0 0 0 4px #d7772c1c;animation:pulse 1.4s infinite}.realtime-strip strong,.realtime-strip small{display:block}.realtime-strip strong{font-size:13px;text-transform:capitalize}.realtime-strip small{margin-top:2px;color:var(--muted);font-size:11px}.realtime-strip b{color:#9d332d;font-size:11px}.rail-summary{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.rail-summary div{padding:15px 10px;border-right:1px solid var(--line);text-align:center}.rail-summary div:last-child{border-right:0}.rail-summary span,.rail-summary strong{display:block}.rail-summary span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.rail-summary strong{margin-top:4px;font:650 20px var(--font-sans)}.device-list{--scroll-surface: var(--surface);max-height:600px;overflow-y:auto;padding:8px}.device-list-item{width:100%;display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 11px;border:0;border-radius:11px;color:var(--ink);background:transparent;text-align:left;cursor:pointer}.device-list-item:hover{background:#b084e712}.device-list-item.active{background:var(--selected-surface);box-shadow:inset 0 0 0 1px var(--selected-line)}.device-status-dot{width:8px;height:8px;border-radius:50%;background:#aaafb7}.device-status-dot.online{background:var(--success);box-shadow:0 0 0 4px var(--success-ring)}.device-list-copy{min-width:0}.device-list-copy strong,.device-list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-list-copy strong{font-size:14px}.device-list-copy small{margin-top:3px;color:var(--muted);font:12px var(--font-sans)}.inventory-time{display:block;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.error-tag{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border:1px solid rgba(195,69,61,.25);border-radius:6px;color:#9d332d;background:#ffeae5;font:750 12px var(--font-sans);letter-spacing:.05em;white-space:nowrap}.power-tag{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border:1px solid rgba(215,119,44,.3);border-radius:6px;color:#8c4a18;background:#fff0d5;font:750 12px var(--font-sans);letter-spacing:.05em;white-space:nowrap}.device-detail{container-type:inline-size;display:grid;gap:14px;min-width:0}.device-identity{min-width:0;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.2fr);align-items:stretch;overflow:hidden;border-radius:14px;box-shadow:none}.device-identity-header{display:flex;align-items:center;padding:14px 18px}.device-identity-copy{min-width:0}.device-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.device-title-line h2{margin:0;font:650 22px var(--font-sans);letter-spacing:-.02em}.device-identity-subline{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:6px}.device-identity-subline p{margin:0}.device-identity p{margin:0;color:var(--muted);font:12px var(--font-sans)}.state-tag{padding:3px 7px;border-radius:999px;color:var(--muted);background:var(--surface-soft);font:750 10px var(--font-sans);letter-spacing:.03em}.state-tag.online{color:var(--online-ink);background:var(--online-soft)}.device-identity-metadata{min-width:0;display:grid;grid-template-columns:minmax(110px,.55fr) minmax(260px,1.45fr);border-left:1px solid var(--line);background:var(--surface-muted)}.device-identity-metadata.has-rs485-metadata{grid-template-columns:minmax(90px,.45fr) minmax(110px,.5fr) minmax(260px,1.35fr)}.device-identity-metadata>div{min-width:0;padding:10px 13px;border-right:1px solid var(--line)}.device-identity-metadata>.metadata-profile,.device-identity-metadata>.metadata-rs485{display:flex;flex-direction:column;justify-content:center}.device-identity-metadata>div:last-child{border-right:0}.device-identity-metadata span,.device-identity-metadata strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-identity-metadata span{margin-bottom:4px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}.device-identity-metadata strong{font-size:12px}.device-identity-metadata>.device-live-refresh{grid-column:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,160px);align-items:center;gap:10px;padding:8px 10px;border-right:0}.device-live-refresh>div{min-width:0}.device-live-refresh>div>span{margin-bottom:4px}.device-live-refresh>div>strong{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.live-refresh-button{width:100%;min-width:0;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 10px;border:1px solid var(--control-line);border-radius:8px;color:var(--ink);background:var(--surface-soft);font:700 12px var(--font-sans);cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}.live-refresh-button:hover:not(:disabled){transform:translateY(-1px);color:var(--brand-strong);border-color:var(--selected-line);background:var(--surface-raised)}.live-refresh-button:disabled{color:var(--muted);border-color:var(--line);background:var(--surface-soft);cursor:wait}.live-refresh-icon{flex:0 0 auto;width:15px;height:15px;color:var(--muted);stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform-origin:center;transition:color .2s}.live-refresh-button:hover:not(:disabled) .live-refresh-icon{color:var(--brand-strong)}.contract-errors{padding:20px 24px;border-color:#c3453d40;background:#fff4f0e0}.contract-error-title{display:flex;align-items:center;gap:10px}.contract-error-title strong{font-size:15px}.contract-errors ul{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.contract-errors li{color:#713b37;font-size:14px;line-height:1.5}.contract-errors code{display:inline-block;min-width:190px;margin-right:10px;color:#9d332d;font-size:12px}.power-alert{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 21px;border-color:#d7772c59;background:#fff2dae6}.power-alert div{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.power-alert strong{color:#7b4218;font-size:15px}.power-alert span,.power-alert p{color:#8b603e;font-size:12px}.power-alert p{margin:0;text-align:right}.event-panel{overflow:hidden}.event-panel summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;cursor:pointer;list-style:none}.event-panel summary::-webkit-details-marker{display:none}.event-panel summary>div{margin-right:auto}.event-panel summary strong{display:block;margin-top:2px;font-size:16px}.event-summary-status{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.event-summary-toggle{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface)}.event-summary-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}.event-panel[open] .event-summary-toggle svg{transform:rotate(180deg)}.summary-title{display:flex;align-items:center;gap:8px}.event-panel[open] summary{border-bottom:1px solid var(--line)}.event-list{--scroll-surface: var(--surface);max-height:330px;overflow-y:auto;padding:4px 20px}.event-list article{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:13px;align-items:start;padding:15px 2px;border-bottom:1px solid var(--line)}.event-list article:last-child{border-bottom:0}.event-pin{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px #b084e717}.event-list article.critical .event-pin{background:var(--amber);box-shadow:0 0 0 4px #d7772c1f}.event-list strong{font-size:14px}.event-list p{margin:4px 0 0;color:var(--muted);font:13px/1.45 var(--font-sans);overflow-wrap:anywhere}.event-list time{color:var(--muted);font-size:11px;text-align:right;white-space:nowrap}.event-list time small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.peripheral-section{min-width:0;overflow:hidden}.peripheral-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:22px 24px 17px;border-bottom:1px solid var(--line)}.peripheral-heading h2{margin:0;font:650 22px var(--font-sans)}.relay-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:10px 17px;border-bottom:1px solid var(--line);background:var(--surface-muted)}.relay-toolbar>span{margin-right:auto;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.relay-toolbar button,.relay-actions button{min-height:34px;padding:7px 11px;border:1px solid var(--control-line);border-radius:7px;color:var(--ink);background:var(--surface);font:700 12px var(--font-sans);cursor:pointer}.relay-toolbar button:hover:not(:disabled),.relay-actions button:hover:not(:disabled){color:#fff;border-color:var(--brand);background:var(--brand)}.relay-toolbar button:disabled,.relay-actions button:disabled{opacity:.38;cursor:not-allowed}.relay-grid{min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;padding:18px}.relay-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-translucent);transition:border .2s,background .2s}.relay-card.selected{border-color:var(--selected-line);background:var(--selected-surface)}.relay-selector{width:100%;display:flex;justify-content:space-between;padding:0;border:0;color:var(--muted);background:transparent;font:700 12px var(--font-sans);letter-spacing:.06em;cursor:pointer}.relay-selector i{width:16px;height:16px;border:1px solid var(--control-line);border-radius:5px;background:var(--surface)}.relay-selector[aria-pressed=true] i{border:4px solid #f3ecfb;background:var(--brand);box-shadow:0 0 0 1px var(--brand)}.relay-card>strong{display:block;margin:16px 0;font:650 26px var(--font-sans)}.relay-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-5px 0 14px;color:var(--muted);font-size:12px}.relay-meta strong{color:var(--ink)}.relay-meta-control{display:inline-flex;align-items:center;gap:7px}.relay-config-button,.rs485-config-button{width:27px;height:27px;display:grid;place-items:center;padding:0;border:1px solid var(--control-line);border-radius:7px;color:var(--brand-strong);background:var(--surface);cursor:pointer;transition:color .2s,border-color .2s,background .2s}.relay-config-button:hover,.rs485-config-button:hover{color:#fff;border-color:var(--brand);background:var(--brand)}.relay-config-button:disabled,.rs485-config-button:disabled{opacity:.4;cursor:wait}.relay-config-button svg,.rs485-config-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.relay-on{color:var(--relay-on)}.relay-off{color:var(--muted)}.relay-unknown{color:var(--amber);font-size:18px!important}.relay-actions{min-width:0;display:flex;flex-wrap:nowrap;gap:5px}.relay-actions button{min-width:0;flex:1 1 0;padding-inline:6px}.inline-warning{margin:0;padding:11px 18px;border-top:1px solid #ead5bd;color:#8c5927;background:#fff4df;font-size:13px}.section-empty,.empty-device-state{display:grid;place-items:center;min-height:110px;padding:24px;color:var(--muted);font-size:14px;text-align:center}.peripheral-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.peripheral-columns.single{grid-template-columns:1fr}.peripheral-empty{padding:28px;text-align:center}.peripheral-empty strong{display:block;margin:7px 0;font-size:18px}.peripheral-empty p:last-child{margin:0;color:var(--muted);font-size:13px}.reading-list{padding:5px 20px 12px}.reading-list>div{display:flex;justify-content:space-between;gap:20px;padding:13px 3px;border-bottom:1px solid var(--line)}.reading-list>div:last-child{border-bottom:0}.reading-list span{color:var(--muted);font:700 12px var(--font-sans)}.reading-list strong{font:650 14px var(--font-sans)}.reading-list .digital-input-state{display:inline-grid;grid-template-columns:25px 66px;align-items:center;justify-content:start;gap:8px;width:99px;color:var(--muted)}.digital-input-state strong{text-align:left}.digital-contact-icon{width:25px;height:20px;overflow:visible;fill:var(--surface);stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.digital-input-state.active .digital-contact-icon{color:var(--success)}.digital-input-state.inactive .digital-contact-icon{color:var(--muted)}.digital-input-state.unknown .digital-contact-icon{color:var(--amber);stroke-dasharray:2 2}.sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:18px}.sensor-grid>article{padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface-translucent)}.sensor-grid>article>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.sensor-grid>article>div:first-child span{font:700 13px var(--font-sans)}.sensor-grid>article>div:first-child small{color:var(--muted);font-size:12px}.sensor-values{display:grid;gap:6px;margin-top:16px}.sensor-values p{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0;padding-top:9px;border-top:1px solid var(--line)}.sensor-values p span{color:var(--muted);font-size:12px;text-transform:uppercase}.sensor-values p strong{font:650 20px var(--font-sans)}.sensor-values p small{grid-column:1 / -1;color:var(--muted);font-size:12px}.no-sensor{margin:18px 0 0;color:var(--muted);font-size:13px}.rs485-config-summary{display:flex;align-items:center;gap:9px}.rs485-config-summary>span{display:grid;gap:1px;text-align:right}.rs485-config-summary small{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.rs485-config-summary strong{font-size:12px}.rs485-workspace{display:grid;gap:16px;padding:20px}.rs485-transceive-form{display:grid;gap:10px;min-width:0}.rs485-field-heading,.rs485-form-footer,.rs485-response>div{display:flex;align-items:center;justify-content:space-between;gap:14px}.rs485-field-heading label{font-weight:700}.rs485-field-heading small,.rs485-form-footer small{color:var(--muted);font-size:12px;line-height:1.5}.rs485-transceive-form textarea{width:100%;min-height:96px;padding:13px 14px;resize:vertical;border:1px solid var(--input-line);border-radius:10px;outline:none;color:var(--ink);background:var(--surface);font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase}.rs485-transceive-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #b084e71c}.rs485-form-footer{align-items:flex-end}.rs485-form-footer .primary-action{min-width:132px}.rs485-response{display:grid;gap:9px;padding:12px 14px;border-left:3px solid var(--brand);border-radius:4px 9px 9px 4px;background:var(--brand-tint)}.rs485-response span{color:var(--brand-strong);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.rs485-response code{overflow-wrap:anywhere;font:700 13px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.rs485-examples{border-top:1px solid var(--line)}.rs485-examples summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px 0;cursor:pointer;list-style:none}.rs485-examples summary::-webkit-details-marker{display:none}.rs485-examples summary span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700}.rs485-examples summary span:before{content:"›";color:var(--brand-strong);font-size:20px;line-height:1;transition:transform .2s}.rs485-examples[open] summary span:before{transform:rotate(90deg)}.rs485-examples summary small{color:var(--muted);font-size:11px}.rs485-examples-body{display:grid;gap:8px;padding-top:12px}.rs485-examples-body>p{margin:0 0 2px;color:var(--muted);font-size:12px;line-height:1.5}.rs485-example{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-translucent)}.rs485-example-copy{display:grid;gap:4px;min-width:0}.rs485-example-copy strong{font-size:13px}.rs485-example-copy span{color:var(--muted);font-size:12px}.rs485-example-copy code{margin-top:2px;color:var(--brand-strong);font:700 13px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow-wrap:anywhere}.rs485-example-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.rs485-example-actions .secondary-button{min-height:28px;padding:5px 10px;border-radius:7px;font-size:12px}.rs485-config-only{margin:0;color:var(--muted);font-size:13px}.primary-action{min-height:40px;padding:9px 14px;border:0;border-radius:9px;color:#fff;background:var(--brand);font-weight:700;cursor:pointer}.primary-action:hover:not(:disabled){background:var(--brand-hover)}.primary-action:disabled{opacity:.45;cursor:not-allowed}.protocol-inspector{position:sticky;top:20px;height:calc(100vh - 40px);min-height:620px;display:grid;grid-template-rows:auto auto auto auto minmax(120px,210px) minmax(230px,1fr) auto;overflow:hidden}.protocol-inspector.expanded{position:sticky;inset:auto;z-index:auto;width:auto;height:calc(100vh - 40px);min-height:620px;grid-template-columns:minmax(220px,36%) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"tabs detail" "tools detail" "list detail";box-shadow:0 14px 35px #373a440d}.protocol-inspector.expanded .inspector-header,.protocol-inspector.expanded .inspector-connection,.protocol-inspector.expanded footer{display:none}.protocol-inspector.expanded .traffic-tabs{grid-area:tabs}.protocol-inspector.expanded .traffic-tools{grid-area:tools}.protocol-inspector.expanded .traffic-list,.protocol-inspector.expanded .traffic-empty{grid-area:list;min-height:0}.protocol-inspector.expanded .traffic-detail{grid-area:detail;padding:0 22px 20px;border-left:1px solid var(--line);background:var(--surface-muted)}.protocol-inspector.expanded .traffic-meta{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;margin:0 -22px 17px;padding:11px 64px 11px 22px;border-bottom:1px solid var(--line);background:var(--surface);box-shadow:0 8px 20px #2527300d}.protocol-inspector.expanded .traffic-meta-summary{grid-column:1;grid-row:1}.protocol-inspector.expanded .traffic-request-meta{grid-column:2;grid-row:1}.protocol-inspector.expanded .traffic-meta-actions{grid-column:3;grid-row:1}.protocol-inspector.expanded .traffic-doc-label{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis}.protocol-inspector.expanded .traffic-doc-short{display:none}.protocol-inspector.expanded .traffic-detail pre{max-height:none}.inspector-expanded-open{overflow:hidden}.inspector-header{position:relative;display:flex;align-items:stretch;flex-direction:column;gap:13px;padding:17px 18px 14px;border-bottom:1px solid var(--line)}.inspector-header>div:first-child{padding-right:40px}.inspector-header h2{margin:0;font:650 21px var(--font-sans);letter-spacing:-.02em}.inspector-header-actions{position:absolute;top:16px;right:18px;display:flex;gap:7px}.inspector-header-actions>button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-size:20px;line-height:1;cursor:pointer}.inspector-focus-restore{position:absolute;top:10px;right:12px;z-index:5;width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface-translucent);box-shadow:0 4px 12px #25273014;cursor:pointer}.inspector-focus-restore:hover{color:var(--brand-strong);border-color:#b084e773;background:var(--surface)}.inspector-expand-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.inspector-connection{display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;padding:9px 18px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface-soft)}.inspector-connection>span{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #d7772c1a}.inspector-connection.connected>span{background:var(--success);box-shadow:0 0 0 4px var(--success-ring)}.inspector-connection strong{color:var(--ink);font-size:12px}.inspector-connection small{font-size:11px}.traffic-tabs{display:grid;grid-template-columns:1fr 1fr;padding:8px 10px 0}.traffic-tabs button{padding:9px 8px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:13px;font-weight:700;cursor:pointer}.traffic-tabs button.active{color:var(--brand-strong);border-color:var(--brand)}.traffic-tools{display:flex;align-items:center;gap:6px;padding:8px 11px;border-bottom:1px solid var(--line)}.traffic-tools label{display:inline-flex;align-items:center;gap:5px;margin-right:auto;color:var(--muted);font-size:11px}.traffic-tools input{accent-color:var(--brand)}.traffic-tools button{padding:5px 7px;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--surface);font-size:10px;font-weight:700;cursor:pointer}.traffic-tools button.active{color:var(--brand-strong);border-color:#b084e759;background:var(--brand-tint)}.traffic-list{--scroll-surface: var(--surface-soft);overflow-y:auto;padding:6px;border-bottom:1px solid var(--line)}.traffic-list>button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;padding:9px 10px;border:0;border-radius:8px;color:var(--ink);background:transparent;text-align:left;cursor:pointer}.traffic-list>button:hover{background:#b084e712}.traffic-list>button.active{background:var(--selected-surface);box-shadow:inset 0 0 0 1px var(--selected-line)}.traffic-list>button.failed{background:#ffeae5a8}.traffic-kind{grid-column:1;grid-row:1;justify-self:start;max-width:100%;min-width:35px;padding:3px 6px;overflow:hidden;border-radius:5px;color:var(--brand-strong);background:#b084e71a;font:750 9px var(--font-sans);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.traffic-list>button.failed .traffic-kind{color:var(--red);background:#c3453d1a}.traffic-list strong{grid-column:1 / -1;grid-row:2;overflow:hidden;font:600 11px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.traffic-list small{grid-column:1 / -1;grid-row:3;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px}.traffic-list small b{color:var(--muted);font-weight:600}.traffic-empty{display:grid;place-items:center;min-height:120px;padding:20px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}.traffic-detail{container-type:inline-size;--scroll-surface: var(--surface);min-height:0;overflow:auto;padding:0 12px 14px}.traffic-meta{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;min-height:48px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface)}.traffic-meta-summary{grid-column:1;grid-row:1;display:flex;align-items:center;gap:7px}.traffic-meta-summary span{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:6px;color:var(--brand-strong);background:var(--brand-tint);font:750 10px var(--font-sans)}.traffic-meta-summary strong{color:var(--ink);font-size:11px;white-space:nowrap}.traffic-request-meta{grid-column:1 / -1;grid-row:2;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px}.traffic-request-meta span{flex:0 0 auto;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.traffic-request-meta code{min-width:0;overflow:hidden;color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.traffic-meta-actions{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}.traffic-request-meta time{color:var(--muted);font-size:9px;white-space:nowrap}.traffic-meta-actions a{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:190px;padding:5px 8px;border:1px solid rgba(176,132,231,.25);border-radius:7px;color:var(--brand-strong);background:var(--brand-tint);font-size:10px;font-weight:750;text-decoration:none;transition:border-color .2s,background .2s}.traffic-meta-actions a:hover{border-color:var(--brand);background:var(--brand-tint-hover)}.traffic-meta-actions a{white-space:nowrap}.traffic-meta-actions a span{flex:0 0 auto}.traffic-doc-label{display:none}.traffic-doc-short{display:inline}@container (max-width: 700px){.device-identity{grid-template-columns:minmax(0,1fr)}.device-identity-header{grid-column:1 / -1}.device-identity-metadata,.device-identity-metadata.has-rs485-metadata{grid-column:1 / -1;grid-template-columns:minmax(110px,.55fr) minmax(0,1.45fr);border-top:1px solid var(--line);border-left:0}.device-identity-metadata.has-rs485-metadata{grid-template-columns:repeat(2,minmax(100px,.55fr)) minmax(0,1.45fr)}}@container (max-width: 470px){.device-identity-metadata,.device-identity-metadata.has-rs485-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.device-identity-metadata:not(.has-rs485-metadata){grid-template-columns:minmax(0,1fr)}.device-identity-metadata>.device-live-refresh{grid-column:1 / -1;border-top:1px solid var(--line)}}@container (max-width: 430px){.traffic-meta,.protocol-inspector.expanded .traffic-meta{grid-template-columns:minmax(0,1fr) auto;gap:7px 9px}.traffic-meta-summary,.protocol-inspector.expanded .traffic-meta-summary{grid-column:1;grid-row:1;min-width:0}.traffic-meta-summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.traffic-meta-actions,.protocol-inspector.expanded .traffic-meta-actions{grid-column:2;grid-row:1}.traffic-request-meta,.protocol-inspector.expanded .traffic-request-meta{grid-column:1 / -1;grid-row:2}.protocol-inspector.expanded .traffic-doc-label{display:none}.protocol-inspector.expanded .traffic-doc-short{display:inline}.traffic-meta-actions a{max-width:72px}}.json-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0}.json-heading strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em}.json-copy-button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--surface);cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}.json-copy-button:hover:not(:disabled){transform:translateY(-1px);color:var(--brand-strong);border-color:#b084e766}.json-copy-button.success{color:#fff;border-color:var(--success);background:var(--success)}.json-copy-button.error{color:#fff;border-color:var(--red);background:var(--red)}.json-copy-button:disabled{opacity:.4;cursor:not-allowed}.json-copy-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.json-document{display:block;min-width:0;min-height:42px;max-width:100%;margin:0 0 14px;padding:12px;overflow:hidden;border:1px solid var(--code-line);border-radius:9px;color:#e9ebef;background:var(--code-surface);font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.json-tree-document .vjs-tree{min-width:0;color:#e9ebef;font:inherit}.json-tree-document .vjs-tree-node{min-width:0;align-items:flex-start;line-height:1.55}.json-tree-document .vjs-tree-node:hover{border-radius:4px;background:#80c7e814}.json-tree-document .vjs-tree-node>span:last-child{min-width:0;overflow-wrap:anywhere;word-break:break-word}.json-tree-document .vjs-indent{flex:0 0 auto;min-height:1.55em;color:#8a919c}.json-tree-document .vjs-indent-unit.has-line{border-color:#b4b8c038}.json-tree-document .vjs-carets{top:.2em;color:#9fa5ae}.json-tree-document .vjs-carets:hover,.json-tree-document .vjs-tree-brackets:hover{color:#80c7e8}.json-tree-document .vjs-key{flex:0 0 auto;color:#80c7e8}.json-tree-document .vjs-colon{color:#e9ebef}.json-tree-document .vjs-value{min-width:0}.json-tree-document .vjs-value-string{color:#a9c7ef;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.json-tree-document .vjs-value-number{color:#f0bd79}.json-tree-document .vjs-value-boolean{color:#ef9f91;font-weight:700}.json-tree-document .vjs-value-null,.json-tree-document .vjs-value-undefined{color:#b9bec6;font-style:italic}.json-tree-document .vjs-comment{color:#9aa0aa}.json-tree-empty{color:#b4b9c1}.json-pending{display:flex;align-items:center;min-height:54px;margin:0 0 14px;padding:12px;border:1px dashed #747b87;border-radius:9px;color:#b4b9c1;background:var(--code-surface);font:11px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.traffic-error{padding:9px 10px;border-radius:7px;color:#8e302b;background:#ffeae5;font-size:11px}.protocol-inspector footer{padding:9px 13px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;text-align:center}.device-list,.device-tools-list,.event-list,.traffic-list,.traffic-detail{background:linear-gradient(var(--scroll-surface) 30%,transparent) center top,linear-gradient(transparent,var(--scroll-surface) 70%) center bottom,radial-gradient(farthest-side at 50% 0,var(--scroll-shadow),transparent) center top,radial-gradient(farthest-side at 50% 100%,var(--scroll-shadow),transparent) center bottom;background-repeat:no-repeat;background-size:100% 30px,100% 30px,100% 11px,100% 11px;background-attachment:local,local,scroll,scroll}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,70%,to{transform:scale(.7);opacity:.45}35%{transform:scale(1);opacity:1}}@media(max-width:820px){.shell{width:min(100% - 24px,680px);padding-top:12px}.masthead{display:flex}.workspace-header{position:relative;width:100%;margin-bottom:10px;padding:9px 10px;border-radius:14px;box-shadow:0 8px 24px #373a440d}.header-leading{width:100%;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:6px}.mobile-header-devices,.mobile-header-inspector{min-width:0;height:36px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 7px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--surface-soft);cursor:pointer}.mobile-header-devices.active,.mobile-header-inspector.active{color:var(--brand-strong);border-color:#b084e757;background:var(--brand-tint)}.mobile-header-devices strong,.mobile-header-inspector strong{font-size:10px;font-weight:750}.mobile-header-devices .devices-menu-icon{width:22px;padding:5px 4px;color:var(--muted);background:transparent}.mobile-header-devices.active .devices-menu-icon{color:var(--brand-strong);background:transparent}.mobile-header-inspector .protocol-toggle-icon{width:22px;height:22px;color:var(--muted);background:transparent}.mobile-header-inspector .protocol-toggle-icon svg{width:17px;height:17px}.mobile-header-inspector.active .protocol-toggle-icon{color:var(--brand-strong);background:transparent}.header-leading>.brand{min-width:0;justify-self:start}.header-leading>.brand>span{min-width:0}.header-leading>.brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-leading>.docs-link{justify-self:end}.header-leading>.theme-toggle{width:34px;height:34px;justify-self:end}.docs-link{padding:6px 8px;border:0;border-radius:8px;background:var(--surface-muted)}.devices-menu-icon{width:21px;padding:5px 4px;border-radius:6px}.devices-menu-icon i{width:13px}.protocol-toggle-icon{width:27px;height:27px;border-radius:7px;font-size:9px}.device-workspace,.device-workspace.inspector-hidden,.device-workspace.devices-hidden{width:100%;grid-template-columns:minmax(0,1fr)}.device-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;padding:0;border:0;background:#1e20266b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.device-rail{position:fixed;inset:12px auto 12px 12px;z-index:30;width:min(360px,calc(100vw - 24px));display:grid!important;grid-template-rows:auto auto auto minmax(0,1fr) auto;border-radius:18px;box-shadow:0 28px 90px #191b204d}.device-rail-brand{display:none}.device-rail-close{display:grid!important}.device-list{max-height:none;overflow-y:auto}.device-list-item{min-width:0}.device-identity{grid-template-columns:minmax(0,1fr)}.device-identity-header{padding:15px 18px 13px}.device-identity-metadata,.device-identity-metadata.has-rs485-metadata{grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:0}.device-identity-metadata:not(.has-rs485-metadata){grid-template-columns:minmax(0,1fr)}.device-identity-metadata>div{border-bottom:1px solid var(--line)}.device-identity-metadata>.device-live-refresh{grid-column:1 / -1;border-top:0}.rs485-workspace{grid-template-columns:1fr}.mobile-inspector-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1e20267a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.protocol-inspector,.protocol-inspector.expanded{position:fixed;top:12px;right:12px;bottom:12px;left:12px;z-index:41;width:auto;height:calc(100dvh - 24px);min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(105px,180px) minmax(0,1fr) auto;grid-template-areas:none;overflow:hidden;border-radius:16px;box-shadow:0 28px 90px #191b204d;overscroll-behavior:contain;touch-action:pan-y}.protocol-inspector.expanded .inspector-header,.protocol-inspector.expanded .inspector-connection,.protocol-inspector.expanded .traffic-tabs,.protocol-inspector.expanded .traffic-tools,.protocol-inspector.expanded .traffic-list,.protocol-inspector.expanded .traffic-empty,.protocol-inspector.expanded .traffic-detail,.protocol-inspector.expanded footer{grid-area:auto}.protocol-inspector .traffic-list,.protocol-inspector.expanded .traffic-list{max-height:none}.protocol-inspector .traffic-detail,.protocol-inspector.expanded .traffic-detail{min-height:0;max-height:none;overflow:auto;padding:0 14px 18px;border-top:1px solid var(--line);border-left:0}.protocol-inspector .traffic-meta,.protocol-inspector.expanded .traffic-meta{position:sticky;margin-inline:-14px;padding-inline:14px}.protocol-inspector .inspector-header{padding:15px 16px 12px}.protocol-inspector .inspector-header-actions>button:first-child{display:none}.protocol-inspector .inspector-header-actions>button:last-child{display:grid}.mobile-relay-action-bar{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:28;width:min(520px,calc(100vw - 24px));display:flex;align-items:center;gap:12px;padding:10px 11px;border:1px solid rgba(176,132,231,.3);border-radius:13px;background:var(--surface-translucent);box-shadow:0 16px 44px #25273033;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.mobile-relay-action-bar>span{flex:0 0 auto;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.mobile-relay-action-bar>span strong{color:var(--ink);font-size:13px}.mobile-relay-action-bar>div{min-width:0;flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px}.mobile-relay-action-bar button{min-height:36px;padding:7px 9px;border:1px solid rgba(176,132,231,.3);border-radius:8px;color:var(--brand-strong);background:var(--brand-tint);font-size:11px;font-weight:750}.mobile-relay-action-bar button:disabled{opacity:.45}.has-mobile-relay-actions{padding-bottom:70px}}@media(min-width:821px)and (max-width:1400px){.device-workspace,.device-workspace.inspector-hidden{grid-template-columns:270px minmax(0,1fr)}.device-workspace.devices-hidden,.device-workspace.devices-hidden.inspector-hidden{grid-template-columns:minmax(0,1fr)}.device-workspace.inspector-split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.protocol-inspector{grid-column:2;height:780px;position:static}.device-workspace.devices-hidden .protocol-inspector{grid-column:1}.device-workspace.inspector-split .protocol-inspector{grid-column:2}}@media(min-width:821px){.inspector-close-button{display:none!important}}@media(max-width:520px){.Toastify__toast-container{top:10px;left:10px;width:min(330px,calc(100vw - 20px));padding:0}.wlte-toast{border-radius:11px}.wlte-toast-content{padding:10px 34px 11px 12px}.wlte-toast-content>div{grid-template-columns:68px minmax(0,1fr);gap:7px;padding:3px 0}.wlte-toast-content dt{font-size:9px}.wlte-toast-content dd{font-size:11px}.wlte-toast-content code{font-size:9.5px}.wlte-toast-message{padding-top:6px!important}.wlte-toast .Toastify__close-button{top:7px;right:7px;width:22px;height:22px}.rs485-example{align-items:flex-start;flex-direction:column}.rs485-example-actions{width:100%;justify-content:flex-end}.docs-link{padding:6px 8px;font-size:12px}.shell,.shell.device-shell{width:calc(100% - 16px);padding-top:8px;padding-bottom:30px}.workspace-header{margin-bottom:8px;padding:9px}.workspace-nav{grid-template-columns:minmax(0,1fr);gap:3px}.protocol-toggle-copy{display:none}.brand-mark{width:34px;height:34px;border-radius:8px;box-shadow:0 3px 10px #2527301f}.brand{gap:9px}.brand strong{font-size:14px}.brand small{font-size:10px}.device-page{padding-top:2px}.device-detail{gap:12px}.panel{border-radius:12px;box-shadow:0 8px 24px #373a440a}.traffic-meta{gap:7px 10px}.device-identity{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.device-identity-header{padding:15px 4px 12px}.device-title-line{align-items:flex-start;flex-wrap:nowrap;gap:7px}.device-title-line h2{min-width:0;flex:0 1 auto;font-size:clamp(24px,7.2vw,29px);line-height:1.08;overflow-wrap:anywhere}.device-title-line .section-info{flex:0 0 auto;margin-top:2px}.device-identity-subline{gap:7px;margin-top:8px}.device-identity-subline p{margin:0 3px 0 0;font-size:13px}.device-identity-metadata{grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-translucent)}.device-identity-metadata:not(.has-rs485-metadata){grid-template-columns:minmax(0,1fr)}.device-identity-metadata>div{padding:11px 12px}.device-identity-metadata.has-rs485-metadata>.metadata-rs485{grid-column:2;grid-row:1;border-right:0}.device-identity-metadata span{margin-bottom:4px;font-size:9px}.device-identity-metadata strong{overflow:visible;font-size:11px;line-height:1.35;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.device-identity-metadata>.device-live-refresh{grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(130px,170px);align-items:center;gap:10px;padding:10px 11px;border-right:0}.device-live-refresh .live-refresh-button{min-height:36px}.peripheral-columns{grid-template-columns:1fr}.peripheral-heading{padding:15px 14px 12px}.peripheral-heading .eyebrow{margin-bottom:6px;font-size:10px}.peripheral-heading h2{font-size:20px}.relay-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px 12px;background:transparent}.relay-toolbar>span{width:auto;margin:0;font-size:10px}.relay-toolbar .relay-select-all{min-height:30px;padding:5px 9px;font-size:10px}.relay-toolbar .relay-bulk-action{display:none}.relay-grid,.sensor-grid{grid-template-columns:1fr;gap:9px;padding:10px}.relay-card,.sensor-grid>article{padding:12px;border-radius:10px;background:var(--surface-translucent)}.relay-card>strong{margin:12px 0;font-size:24px}.relay-meta{margin-bottom:11px}.relay-actions{display:flex;flex-wrap:nowrap}.relay-actions button{width:auto;min-width:0;flex:1 1 0;padding-inline:5px}.reading-list{padding:4px 14px 9px}.reading-list>div{padding:11px 2px}.rs485-workspace{gap:12px;padding:12px 14px 14px}.rs485-form-footer{align-items:stretch;flex-direction:column}.rs485-form-footer .primary-action{width:100%}.rs485-config-summary>span{display:none}.rs485-examples summary{padding-top:12px}.contract-errors code{display:block;min-width:0;margin-bottom:3px}.power-alert{align-items:flex-start;flex-direction:column;gap:7px}.power-alert p{text-align:left}.relay-jog-dialog,.rs485-baud-dialog{width:calc(100vw - 20px)}.relay-jog-dialog header,.relay-jog-form,.rs485-baud-dialog header,.rs485-baud-dialog-form{padding-inline:17px}.relay-jog-actions,.rs485-baud-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.device-tools-dialog,.device-task-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.device-tools-dialog header,.device-task-dialog header,.device-tools-body{padding-inline:17px}.device-tools-form{grid-template-columns:1fr}.device-tools-wide,.device-tools-form-actions{grid-column:auto}.device-tools-form-actions{display:grid;grid-template-columns:1fr 1fr}.device-tools-list article{grid-template-columns:1fr}.device-tools-actions{justify-content:stretch}.device-tools-actions button{flex:1}.event-list article{grid-template-columns:10px 1fr}.event-list time{grid-column:2;text-align:left}.event-panel summary{padding:14px 16px}.protocol-inspector,.protocol-inspector.expanded{top:8px;right:8px;bottom:8px;left:8px;height:calc(100dvh - 16px);border-radius:13px}.protocol-inspector .inspector-header{padding:13px 14px 11px}.protocol-inspector .inspector-header-actions{top:12px;right:14px}.protocol-inspector .inspector-header h2{font-size:19px}.protocol-inspector .traffic-detail,.protocol-inspector.expanded .traffic-detail{padding-inline:12px}.protocol-inspector .traffic-meta,.protocol-inspector.expanded .traffic-meta{margin-inline:-12px;padding-inline:12px}.mobile-relay-action-bar{bottom:max(8px,env(safe-area-inset-bottom));width:calc(100vw - 16px);gap:9px;padding:8px;border-radius:11px}.mobile-relay-action-bar>span{font-size:9px}.mobile-relay-action-bar>div{gap:5px}.mobile-relay-action-bar button{min-height:34px;padding-inline:7px;font-size:10px}}@media(max-width:360px){.mobile-header-devices,.mobile-header-inspector{width:36px;padding:4px}.mobile-header-devices strong,.mobile-header-inspector strong,.docs-link span{display:none}.docs-link{padding-left:8px;border-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
