:root{--color-bg: #0f0f1a;--color-surface: #1a1a2e;--color-surface-hover: #252542;--color-border: #2d2d4a;--color-text: #e8e8f0;--color-text-secondary: #8888a0;--color-primary: #667eea;--color-primary-hover: #5a6fd6;--color-success: #11998e;--color-warning: #f5a623;--color-error: #f5576c;--gradient-primary: linear-gradient(135deg, #667eea, #764ba2);--gradient-success: linear-gradient(135deg, #11998e, #38ef7d);--gradient-danger: linear-gradient(135deg, #f093fb, #f5576c);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:light){:root{--color-bg: #f5f7fa;--color-surface: #ffffff;--color-surface-hover: #f0f2f5;--color-border: #e0e4e8;--color-text: #1a1a2e;--color-text-secondary: #6b7280;color-scheme:light}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg)}#app{width:100%;min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}button{border-radius:var(--radius-md);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all .2s}button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea33}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}::selection{background:#667eea4d;color:var(--color-text)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:Consolas,Monaco,Fira Code,monospace}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){:root{font-size:14px}}.sidebar[data-v-21abf4e4]{width:260px;height:100vh;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header[data-v-21abf4e4]{padding:1.5rem;border-bottom:1px solid var(--color-border)}.logo[data-v-21abf4e4]{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:.25rem}.logo-icon[data-v-21abf4e4]{font-size:1.8rem}.version[data-v-21abf4e4]{font-size:.75rem;color:var(--color-text-secondary);margin-left:2.5rem}.sidebar-nav[data-v-21abf4e4]{padding:1rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.nav-item[data-v-21abf4e4]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all .2s;-webkit-user-select:none;user-select:none}.nav-item[data-v-21abf4e4]:hover:not(.disabled){background:var(--color-surface-hover);color:var(--color-text)}.nav-item.active[data-v-21abf4e4]{background:#667eea1a;color:var(--color-primary);font-weight:500}.nav-item.disabled[data-v-21abf4e4]{opacity:.5;cursor:not-allowed}.nav-icon[data-v-21abf4e4]{font-size:1.2rem}.nav-badge[data-v-21abf4e4]{margin-left:auto;font-size:.65rem;padding:.15rem .4rem;border-radius:4px;background:var(--color-surface-hover);border:1px solid var(--color-border)}.mqtt-config-overlay[data-v-62554813]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:10000}.mqtt-config-card[data-v-62554813]{background:#fff;color:#111827;border-radius:12px;width:90%;max-width:540px;box-shadow:0 20px 50px #0f172a73;display:flex;flex-direction:column;overflow:hidden}.mqtt-config-header[data-v-62554813]{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.mqtt-config-header h3[data-v-62554813]{margin:0;font-size:1.1rem;font-weight:600}.mqtt-config-body[data-v-62554813]{padding:1.25rem 1.5rem 1rem;display:flex;flex-direction:column;gap:.9rem}.form-row[data-v-62554813]{display:flex;gap:.75rem;flex-wrap:wrap}.form-group[data-v-62554813]{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:0}.form-group label[data-v-62554813]{font-size:.85rem;color:#4b5563}.form-group input[data-v-62554813]{padding:.45rem .6rem;border-radius:6px;border:1px solid #d1d5db;font-size:.9rem;outline:none}.form-group input[data-v-62554813]::placeholder{color:#9ca3af}.form-group input[data-v-62554813]:focus{border-color:#6366f1;box-shadow:0 0 0 1px #6366f14d}.mqtt-config-footer[data-v-62554813]{padding:.9rem 1.5rem 1.1rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}.btn-secondary[data-v-62554813],.btn-primary[data-v-62554813]{padding:.5rem 1.2rem;border-radius:999px;font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid transparent}.btn-secondary[data-v-62554813]{background:#fff;color:#374151;border-color:#d1d5db}.btn-secondary[data-v-62554813]:hover{background:#f3f4f6}.btn-primary[data-v-62554813]{background:#4f46e5;color:#fff;box-shadow:0 10px 25px #4f46e573}.btn-primary[data-v-62554813]:hover{background:#4338ca}.fade-enter-active[data-v-62554813],.fade-leave-active[data-v-62554813]{transition:opacity .2s ease}.fade-enter-from[data-v-62554813],.fade-leave-to[data-v-62554813]{opacity:0}.zoom-enter-active[data-v-62554813]{transition:transform .2s ease-out}.zoom-leave-active[data-v-62554813]{transition:transform .15s ease-in}.zoom-enter-from[data-v-62554813]{transform:scale(.9)}.zoom-leave-to[data-v-62554813]{transform:scale(.95)}@media(max-width:640px){.mqtt-config-card[data-v-62554813]{max-width:95%}}.overlay[data-v-552b3beb]{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.card[data-v-552b3beb]{background:var(--color-surface);width:100%;max-width:800px;border-radius:var(--radius-lg);max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg),0 0 0 1px var(--color-border);overflow:hidden;animation:slide-up-552b3beb .3s cubic-bezier(.16,1,.3,1)}@keyframes slide-up-552b3beb{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-header[data-v-552b3beb]{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border)}.header-title-area[data-v-552b3beb]{display:flex;align-items:center;gap:1rem}h3[data-v-552b3beb]{margin:0;font-size:1.125rem;font-weight:700;color:var(--color-text)}.btn-ghost-danger[data-v-552b3beb]{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-weight:500}.btn-ghost-danger[data-v-552b3beb]:hover:not(:disabled){background:#f5576c1a;color:var(--color-error);border-color:#f5576c33}.btn-ghost-danger[data-v-552b3beb]:disabled{opacity:.3}.close-btn[data-v-552b3beb]{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.4rem;border-radius:var(--radius-md);transition:all .2s;display:flex;align-items:center;justify-content:center}.close-btn[data-v-552b3beb]:hover{background:var(--color-surface-hover);color:var(--color-text)}.btn-sm[data-v-552b3beb]{padding:.4rem .8rem;font-size:.8125rem;display:flex;align-items:center;gap:.5rem}.btn-outline[data-v-552b3beb]{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-outline[data-v-552b3beb]:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-text-secondary);color:var(--color-text)}.danger-on-hover[data-v-552b3beb]:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error);background:#f5576c1a}.table-container[data-v-552b3beb]{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg)}table[data-v-552b3beb]{width:100%;border-collapse:collapse;font-size:.875rem}th[data-v-552b3beb]{background:var(--color-surface-hover);padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}td[data-v-552b3beb]{padding:.875rem 1rem;border-bottom:1px solid var(--color-border);vertical-align:middle}tr:last-child td[data-v-552b3beb]{border-bottom:none}tr:hover td[data-v-552b3beb]{background:var(--color-surface-hover)}.gw-site[data-v-552b3beb]{display:flex;align-items:center;gap:.75rem}.gw-icon[data-v-552b3beb]{width:32px;height:32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-primary)}.site-name[data-v-552b3beb]{font-weight:600;color:var(--color-text)}.gw-id[data-v-552b3beb]{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);background:var(--color-surface-hover);padding:.2rem .4rem;border-radius:4px}.time-info[data-v-552b3beb]{display:flex;align-items:center;gap:.4rem;color:var(--color-text-secondary)}.status-badge[data-v-552b3beb]{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:99px;font-size:.75rem;font-weight:600}.status-online[data-v-552b3beb]{background:#11998e26;color:#2dd4bf}.status-offline[data-v-552b3beb]{background:#8888a026;color:var(--color-text-secondary)}.dot-container[data-v-552b3beb]{position:relative;width:8px;height:8px}.dot[data-v-552b3beb]{width:8px;height:8px;border-radius:50%;display:block}.status-online .dot[data-v-552b3beb]{background:#2dd4bf}.status-offline .dot[data-v-552b3beb]{background:var(--color-text-secondary)}.dot-ping[data-v-552b3beb]{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:50%;background:#2dd4bf;animation:ping-552b3beb 1.5s cubic-bezier(0,0,.2,1) infinite}@keyframes ping-552b3beb{75%,to{transform:scale(2.5);opacity:0}}.row-actions[data-v-552b3beb]{display:flex;justify-content:flex-end;gap:.75rem}.action-btn[data-v-552b3beb]{width:32px;height:32px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;border:1px solid transparent;padding:0!important;flex-shrink:0}.action-btn[data-v-552b3beb] svg{stroke-width:2.5px}.connect-btn[data-v-552b3beb]{background-color:#667eea1a;color:#6366f1;border-color:#667eea33}.connect-btn[data-v-552b3beb]:hover{background-color:#6366f1;color:#fff;border-color:#4f46e5;box-shadow:0 4px 10px #6366f14d}.delete-btn[data-v-552b3beb]{background-color:#f43f5e1a;color:#ef4444;border-color:#f43f5e33}.delete-btn[data-v-552b3beb]:hover{background-color:#ef4444;color:#fff;border-color:#dc2626;box-shadow:0 4px 10px #ef44444d}@media(prefers-color-scheme:dark){.connect-btn[data-v-552b3beb]{background-color:#667eea26;border-color:#667eea4d}.delete-btn[data-v-552b3beb]{background-color:#f43f5e26;border-color:#f43f5e4d}}.empty-state[data-v-552b3beb]{padding:4rem 1rem!important}.empty-content[data-v-552b3beb]{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--color-text-secondary)}.empty-content p[data-v-552b3beb]{margin:1rem 0 .5rem;font-weight:600;color:var(--color-text)}.empty-content .hint[data-v-552b3beb]{font-size:.75rem}.text-right[data-v-552b3beb]{text-align:right}.fade-enter-active[data-v-552b3beb],.fade-leave-active[data-v-552b3beb]{transition:opacity .3s ease}.fade-enter-from[data-v-552b3beb],.fade-leave-to[data-v-552b3beb]{opacity:0}@media(max-width:640px){.card[data-v-552b3beb]{height:100%;max-height:100%;border-radius:0}th[data-v-552b3beb]:nth-child(2),td[data-v-552b3beb]:nth-child(2),th[data-v-552b3beb]:nth-child(3),td[data-v-552b3beb]:nth-child(3){display:none}}.overlay[data-v-88f62957]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999}.card[data-v-88f62957]{background:#fff;width:90%;max-width:450px;border-radius:12px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px #0003}header[data-v-88f62957]{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}h3[data-v-88f62957]{margin:0;font-size:1.1rem;font-weight:600;color:#111827}.close-btn[data-v-88f62957]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#9ca3af;padding:0;line-height:1}.close-btn[data-v-88f62957]:hover{color:#4b5563}.body[data-v-88f62957]{padding:1.5rem;overflow-y:auto;background:#f9fafb}.list[data-v-88f62957]{display:flex;flex-direction:column;gap:.75rem}.item[data-v-88f62957]{background:#fff;padding:1rem;border-radius:8px;border:1px solid #e5e7eb;cursor:pointer;transition:all .2s}.item[data-v-88f62957]:hover{border-color:#6366f1;box-shadow:0 4px 6px -1px #0000001a;transform:translateY(-1px)}.main[data-v-88f62957]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.name[data-v-88f62957]{font-weight:600;color:#111827;font-size:.95rem}.model-tag[data-v-88f62957]{font-size:.75rem;background:#e0e7ff;color:#4338ca;padding:2px 6px;border-radius:4px}.desc[data-v-88f62957]{font-size:.85rem;color:#6b7280;margin-bottom:.5rem;line-height:1.4}.meta[data-v-88f62957]{font-size:.75rem;color:#9ca3af;text-align:right}.empty[data-v-88f62957]{text-align:center;color:#9ca3af;padding:2rem}.fade-enter-active[data-v-88f62957],.fade-leave-active[data-v-88f62957]{transition:opacity .2s ease}.fade-enter-from[data-v-88f62957],.fade-leave-to[data-v-88f62957]{opacity:0}.modal-overlay[data-v-353e1ce9]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-container[data-v-353e1ce9]{background:#1e1e2d;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:90%;max-width:400px;padding:1.5rem;box-shadow:0 20px 40px #0006;color:#fff}.modal-header[data-v-353e1ce9]{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.modal-icon[data-v-353e1ce9]{font-size:1.5rem}.modal-title[data-v-353e1ce9]{margin:0;font-size:1.25rem;font-weight:600}.modal-container.warning[data-v-353e1ce9]{border-top:4px solid #facc15}.modal-container.error[data-v-353e1ce9]{border-top:4px solid #f87171}.modal-container.warning .modal-title[data-v-353e1ce9]{color:#facc15}.modal-container.error .modal-title[data-v-353e1ce9]{color:#f87171}.modal-body[data-v-353e1ce9]{margin-bottom:1.5rem}.modal-message[data-v-353e1ce9]{line-height:1.6;color:#e2e8f0;margin:0}.modal-footer[data-v-353e1ce9]{display:flex;justify-content:flex-end}.btn-confirm[data-v-353e1ce9]{padding:.6rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;transition:transform .1s}.btn-confirm[data-v-353e1ce9]:active{transform:scale(.95)}.fade-enter-active[data-v-353e1ce9],.fade-leave-active[data-v-353e1ce9]{transition:opacity .3s ease}.fade-enter-from[data-v-353e1ce9],.fade-leave-to[data-v-353e1ce9]{opacity:0}.zoom-enter-active[data-v-353e1ce9]{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.zoom-leave-active[data-v-353e1ce9]{transition:transform .2s ease}.zoom-enter-from[data-v-353e1ce9]{transform:scale(.9)}.zoom-leave-to[data-v-353e1ce9]{transform:scale(.95)}.modbus-panel[data-v-7867c13d]{display:flex;flex-direction:column;gap:1rem;height:calc(100vh - 100px);max-width:1400px;margin:0 auto;padding:1rem}.panel-section[data-v-7867c13d]{background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border);padding:1rem}.section-title[data-v-7867c13d]{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin:0;color:var(--color-text);white-space:nowrap}.header-section[data-v-7867c13d]{flex-shrink:0}.header-row[data-v-7867c13d]{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.mode-tabs[data-v-7867c13d]{display:inline-flex;background:var(--color-bg);padding:4px;border-radius:var(--radius-md);gap:4px}.mode-tab[data-v-7867c13d]{border:none;padding:4px 10px;border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.mode-tab.active[data-v-7867c13d]{background:var(--color-surface-hover);color:var(--color-primary);box-shadow:var(--shadow-sm)}.config-bar[data-v-7867c13d]{display:flex;align-items:center;gap:.75rem;flex:1}.config-group[data-v-7867c13d]{display:flex;gap:.5rem;flex-wrap:wrap}.config-group select[data-v-7867c13d],.config-group input[data-v-7867c13d]{padding:.4rem .6rem;font-size:.9rem;min-width:100px;height:2.4rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg)}.config-bar .base-switch[data-v-7867c13d]{height:2.4rem;align-items:stretch;padding:0}.config-bar .base-switch button[data-v-7867c13d]{height:100%;padding:0 12px;display:flex;align-items:center;border-radius:0}.gateway-config-box[data-v-7867c13d]{background:#00000005;padding:.8rem;border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.gateway-input[data-v-7867c13d]{min-width:180px}.gateway-select[data-v-7867c13d]{min-width:220px}.mode-tab-gateway[data-v-7867c13d]{display:inline-flex;align-items:center;gap:4px}.gateway-settings-icon[data-v-7867c13d]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;cursor:pointer;transition:all .2s;font-size:1rem;color:var(--color-text-secondary)}.mode-tab-gateway.active .gateway-settings-icon[data-v-7867c13d]{color:var(--color-primary)}.gateway-settings-icon[data-v-7867c13d]:hover{background:var(--color-surface-hover)}.compact-row[data-v-7867c13d]{justify-content:space-between;align-items:flex-end}.gateway-config-box .form-group[data-v-7867c13d]:first-child{flex:1}.dynamic-params .form-group.small[data-v-7867c13d]{width:120px}.gateway-config-box input[data-v-7867c13d],.gateway-config-box select[data-v-7867c13d]{height:32px;padding:.25rem .5rem}.gateway-config-box .base-switch[data-v-7867c13d]{height:32px;align-items:center}.gateway-config-box .base-switch button[data-v-7867c13d]{padding:.25rem .75rem;font-size:.8rem}.gateway-config-box .label-with-switch label[data-v-7867c13d]{width:auto}.btn-connect[data-v-7867c13d]{margin-left:auto;padding:.4rem 1.2rem;border-radius:6px;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem}.info-banner[data-v-7867c13d]{margin-top:.5rem;padding:.5rem .75rem;border-radius:6px;background:#16a34a1a;border:1px solid rgba(22,163,74,.4);font-size:.85rem;color:var(--color-text)}.btn-connect.connected[data-v-7867c13d]{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;color:#fff}.panel-body[data-v-7867c13d]{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}.command-section[data-v-7867c13d]{flex-shrink:0}.log-section[data-v-7867c13d],.results-section[data-v-7867c13d]{flex:1;display:flex;flex-direction:column;min-height:200px;min-width:0}.monitor-grid[data-v-7867c13d]{display:flex;gap:1rem;flex:1;min-height:0;align-items:stretch}.command-form-horizontal[data-v-7867c13d]{margin-top:1rem;overflow:visible}.form-row[data-v-7867c13d]{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:nowrap;overflow:visible}.form-group[data-v-7867c13d]{display:flex;flex-direction:column;gap:.4rem}.form-group.grow[data-v-7867c13d]{width:160px;flex-shrink:0}.function-code-select[data-v-7867c13d]{width:170px}.form-group[data-v-7867c13d]:nth-child(3){width:auto;flex-shrink:0}.form-group[data-v-7867c13d]:first-child,.form-group[data-v-7867c13d]:nth-child(4){width:85px;flex-shrink:0}.form-group label[data-v-7867c13d]{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap}.input-combined[data-v-7867c13d]{display:flex;gap:.4rem}.label-with-switch[data-v-7867c13d]{display:flex;align-items:center;gap:.4rem}.label-with-switch label[data-v-7867c13d]{width:180px;flex-shrink:0}.address-meta-col[data-v-7867c13d]{display:flex;flex-direction:column;gap:.4rem}.base-switch[data-v-7867c13d]{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;padding:1px}.base-switch button[data-v-7867c13d]{padding:2px 8px;font-size:.75rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;border-radius:3px}.base-switch button.active[data-v-7867c13d]{background:var(--color-primary);color:#fff}.base-switch button[data-v-7867c13d]:hover:not(.active){background:var(--color-surface-hover)}.dec-input-large[data-v-7867c13d]{width:180px}.plc-address-display[data-v-7867c13d]{display:flex;align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;overflow:hidden;font-family:Consolas,monospace}.plc-address-display .label[data-v-7867c13d]{background:var(--color-surface-hover);color:var(--color-text-secondary);padding:.5rem .75rem;font-size:.8rem;border-right:1px solid var(--color-border)}.plc-address-display .value[data-v-7867c13d]{color:var(--color-primary);padding:.5rem 1rem;font-weight:700;min-width:80px;text-align:center}.form-actions-inline[data-v-7867c13d]{display:flex;align-items:flex-end;gap:.8rem;flex:1;min-width:200px;flex-shrink:1;overflow:visible}.preview-box[data-v-7867c13d]{flex:1;display:flex;flex-direction:column;gap:.4rem;min-width:0}.preview-label[data-v-7867c13d]{position:relative;font-size:.8rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:.4rem}.help-icon[data-v-7867c13d]{width:14px;height:14px;display:flex;align-items:center;justify-content:center;cursor:help;position:relative;color:var(--color-text-secondary);transition:color .2s}.help-icon[data-v-7867c13d]:hover{color:var(--color-primary)}.info-svg[data-v-7867c13d]{width:100%;height:100%}.tooltip[data-v-7867c13d]{position:absolute;top:auto;bottom:150%;left:50%;transform:translate(-50%) translateY(10px);background:#1e1e2d;border:1px solid rgba(255,255,255,.2);padding:1rem;border-radius:10px;box-shadow:0 15px 40px #0009;width:max-content;min-width:200px;pointer-events:none;opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:99999}.help-icon:hover .tooltip[data-v-7867c13d]{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-title[data-v-7867c13d]{font-weight:700;font-size:.85rem;color:var(--color-primary);margin-bottom:.6rem;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:.5rem;flex-shrink:0;white-space:nowrap}.tooltip-title[data-v-7867c13d]:before{content:"📝";font-size:.9rem}.tooltip-item[data-v-7867c13d]{display:flex;justify-content:space-between;font-size:.8rem;gap:1rem;line-height:1.8}.tooltip-item .p-name[data-v-7867c13d]{color:var(--color-text-secondary)}.tooltip-item .p-value[data-v-7867c13d]{font-family:Consolas,monospace;color:#7dd3fc;font-weight:700}.log-hex-group[data-v-7867c13d]{display:flex;align-items:center;gap:.8rem}.rx-log-tooltip[data-v-7867c13d]{top:100%!important;bottom:auto!important;left:0!important;transform:translateY(10px)!important;margin-top:5px}.help-icon:hover .rx-log-tooltip[data-v-7867c13d]{opacity:1!important;transform:translateY(0)!important}.log-help .tooltip[data-v-7867c13d]{max-width:80vw;min-width:280px;max-height:500px;overflow-y:auto}.tooltip-item[data-v-7867c13d]{display:flex;align-items:flex-start;justify-content:space-between;font-size:.8rem;gap:1rem;line-height:1.8;border-bottom:1px solid rgba(255,255,255,.03)}.tooltip-item[data-v-7867c13d]:last-child{border-bottom:none}.tooltip-item .p-value[data-v-7867c13d]{font-family:Consolas,monospace;color:#7dd3fc;font-weight:700;white-space:pre-wrap;word-break:break-all;max-width:600px}.preview-value[data-v-7867c13d]{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;font-family:Consolas,monospace;color:#7dd3fc;font-size:.9rem;min-height:2.4rem;display:flex;align-items:center;letter-spacing:.5px;overflow-x:auto;white-space:nowrap}.btn-send[data-v-7867c13d]{padding:0 1.5rem;height:2.4rem;border-radius:6px;border:none;background:var(--color-primary);color:#fff;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0;display:flex;align-items:center}.btn-send[data-v-7867c13d]:disabled{opacity:.5;cursor:not-allowed}.section-header[data-v-7867c13d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;flex-shrink:0;min-height:32px}.log-container[data-v-7867c13d]{flex:1;overflow-y:auto;background:var(--color-bg);border-radius:6px;padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.log-entry[data-v-7867c13d]{display:flex;gap:.8rem;padding:.5rem;border-radius:4px;font-family:Consolas,monospace;font-size:.9rem;background:#ffffff08}.log-entry.tx[data-v-7867c13d]{border-left:3px solid #667eea}.log-entry.rx[data-v-7867c13d]{border-left:3px solid #11998e}.log-meta[data-v-7867c13d]{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:80px;font-size:.8rem;color:var(--color-text-secondary);flex-shrink:0}.log-tag-group[data-v-7867c13d]{display:flex;align-items:center;gap:.3rem}.log-tag[data-v-7867c13d]{font-weight:700;padding:1px 6px;border-radius:3px}.log-entry.tx .log-tag[data-v-7867c13d]{background:#667eea33;color:#667eea}.log-entry.rx .log-tag[data-v-7867c13d]{background:#11998e33;color:#11998e}.log-content[data-v-7867c13d]{flex:1;word-break:break-all}.log-parsed[data-v-7867c13d]{color:var(--color-success);font-size:.85rem;margin-top:.2rem}.log-error[data-v-7867c13d]{color:var(--color-error);font-size:.85rem}.error-banner[data-v-7867c13d],.warning-banner[data-v-7867c13d]{margin-top:.8rem;padding:.6rem;border-radius:6px;font-size:.9rem}.error-banner[data-v-7867c13d]{background:#f5576c1a;color:var(--color-error);border:1px solid rgba(245,87,108,.2)}.warning-banner[data-v-7867c13d]{background:#f5a6231a;color:var(--color-warning);border:1px solid rgba(245,166,35,.2)}.table-container[data-v-7867c13d]{flex:1;overflow-y:auto;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.data-table[data-v-7867c13d]{width:100%;border-collapse:collapse;font-family:Consolas,monospace;font-size:.9rem;border:1px solid var(--color-border)}.data-table th[data-v-7867c13d],.data-table td[data-v-7867c13d]{border:1px solid var(--color-border);text-align:center;padding:.6rem}.data-table th[data-v-7867c13d]{position:sticky;top:0;background:var(--color-surface-hover);color:var(--color-text-secondary);font-size:.8rem;z-index:1}.data-table tr[data-v-7867c13d]:hover{background:#ffffff05}.col-index[data-v-7867c13d]{color:var(--color-text-secondary)}.col-addr[data-v-7867c13d]{color:var(--color-primary);font-weight:600}.col-value-header[data-v-7867c13d]{display:flex;justify-content:center;align-items:center;gap:.5rem}.format-indicator[data-v-7867c13d]{font-size:.7rem;opacity:.7;font-weight:400}.val-dec[data-v-7867c13d]{color:var(--color-text);font-weight:700}.val-hex[data-v-7867c13d]{color:#a78bfa;font-weight:700}.val-bin[data-v-7867c13d]{color:#34d399;font-size:1rem;letter-spacing:1px}.table-empty[data-v-7867c13d]{padding:3rem;text-align:center;color:var(--color-text-secondary);font-style:italic;border:none}.result-hint[data-v-7867c13d]{font-size:.75rem;color:var(--color-text-secondary);margin-left:.5rem;font-weight:400}.header-controls[data-v-7867c13d]{display:flex;align-items:center;gap:1rem}.format-switch[data-v-7867c13d]{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;padding:2px}.format-switch button[data-v-7867c13d]{padding:2px 8px;font-size:.75rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;border-radius:3px;min-width:36px}.format-switch button.active[data-v-7867c13d]{background:var(--color-primary);color:#fff;font-weight:600}.format-switch button[data-v-7867c13d]:hover:not(.active){background:var(--color-surface-hover)}@media(max-width:1100px){.monitor-grid[data-v-7867c13d]{flex-direction:column}}@media(max-width:900px){.form-row[data-v-7867c13d]{flex-direction:column;align-items:stretch}.btn-send[data-v-7867c13d],.dec-input-large[data-v-7867c13d]{width:100%}}.command-form-horizontal input[data-v-7867c13d],.command-form-horizontal select[data-v-7867c13d],.plc-address-display[data-v-7867c13d],.preview-value[data-v-7867c13d]{height:2.4rem;font-size:.9rem;line-height:normal;box-sizing:border-box;white-space:nowrap}.form-group label[data-v-7867c13d],.preview-label[data-v-7867c13d],.label-with-switch[data-v-7867c13d]{display:flex!important;align-items:center;min-height:1.6rem;font-size:.85rem!important;color:var(--color-text-secondary);margin-bottom:0}.label-with-switch label[data-v-7867c13d]{min-height:auto}.mode-switch-simple[data-v-7867c13d]{margin-left:auto;display:flex;align-items:center;font-size:.85rem;font-weight:400;background:var(--color-bg);padding:2px 6px;border-radius:4px;border:1px solid var(--color-border);gap:6px}.mode-switch-simple .mode-opt[data-v-7867c13d]{cursor:pointer;padding:2px 6px;border-radius:3px;color:var(--color-text-secondary);transition:all .2s}.mode-switch-simple .mode-opt.active[data-v-7867c13d]{background:var(--color-primary);color:#fff;font-weight:500}.mode-switch-simple .sep[data-v-7867c13d]{color:var(--color-border);font-size:.8rem}.btn-text-action[data-v-7867c13d]{background:transparent;border:1px dashed var(--color-primary);color:var(--color-primary);padding:4px 10px;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-text-action[data-v-7867c13d]:hover{background:#667eea1a;border-style:solid}.modal-overlay[data-v-7867c13d]{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:10000}.modal-content.profile-picker[data-v-7867c13d]{background:var(--color-surface);width:500px;max-height:80vh;border-radius:12px;border:1px solid var(--color-border);display:flex;flex-direction:column;box-shadow:0 20px 50px #00000080}.modal-header[data-v-7867c13d]{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-7867c13d]{border:none;padding:0;font-size:1.1rem}.btn-close[data-v-7867c13d]{background:transparent;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer}.modal-body[data-v-7867c13d]{padding:1rem;overflow-y:auto}.profile-item[data-v-7867c13d]{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;cursor:pointer;transition:all .2s;margin-bottom:.5rem;border:1px solid transparent}.profile-item[data-v-7867c13d]:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.profile-item.active[data-v-7867c13d]{background:#667eea1a;border-color:var(--color-primary)}.p-icon[data-v-7867c13d]{font-size:1.5rem}.p-title[data-v-7867c13d]{font-weight:600;color:var(--color-text)}.p-sub[data-v-7867c13d]{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.empty-state[data-v-7867c13d]{text-align:center;padding:3rem;color:var(--color-text-secondary)}.gateway-manager[data-v-7867c13d]{background:var(--color-surface);width:720px;max-height:80vh;border-radius:12px;border:1px solid var(--color-border);display:flex;flex-direction:column;box-shadow:0 20px 50px #00000080}.gateway-manager-body[data-v-7867c13d]{display:grid;grid-template-columns:1.4fr 1.2fr;gap:1rem}.gateway-list[data-v-7867c13d]{padding-right:.5rem;border-right:1px solid var(--color-border);max-height:60vh;overflow-y:auto}.gateway-item[data-v-7867c13d]{display:flex;align-items:center;gap:.75rem;padding:.6rem .4rem;border-radius:6px;cursor:pointer;transition:all .2s}.gateway-item[data-v-7867c13d]:hover{background:var(--color-surface-hover)}.gateway-item.active[data-v-7867c13d]{background:#667eea14}.status-dot[data-v-7867c13d]{width:10px;height:10px;border-radius:999px;flex-shrink:0}.status-dot.online[data-v-7867c13d]{background:#22c55e}.status-dot.offline[data-v-7867c13d]{background:#9ca3af}.g-main[data-v-7867c13d]{flex:1;min-width:0}.g-name[data-v-7867c13d]{font-size:.9rem;font-weight:600}.g-sub[data-v-7867c13d]{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.g-latency[data-v-7867c13d]{margin-left:6px}.g-latency-na[data-v-7867c13d]{opacity:.6}.btn-ghost[data-v-7867c13d]{border:none;background:transparent;color:var(--color-text-secondary);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-ghost[data-v-7867c13d]:hover{background:var(--color-surface-hover)}.btn-ghost.danger[data-v-7867c13d]{color:var(--color-error)}.gateway-form[data-v-7867c13d]{display:flex;flex-direction:column;gap:.75rem}.gateway-form .form-row[data-v-7867c13d]{display:flex;flex-direction:column;gap:.25rem}.gateway-form label[data-v-7867c13d]{font-size:.8rem;color:var(--color-text-secondary)}.gateway-form input[data-v-7867c13d]{padding:.45rem .6rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);font-size:.9rem}.gateway-form-error[data-v-7867c13d]{font-size:.8rem;color:var(--color-error)}.gateway-form .form-actions[data-v-7867c13d]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.btn-secondary[data-v-7867c13d]{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.5rem .9rem;border-radius:6px;cursor:pointer;font-size:.85rem}.btn-primary[data-v-7867c13d]{background:var(--color-primary);border:none;color:#fff;padding:.5rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.85rem}.auto-parsed-info[data-v-7867c13d]{margin-top:4px;padding-top:4px;border-top:1px dashed var(--color-border);display:flex;flex-direction:column;align-items:center;gap:2px}.reg-name-tag[data-v-7867c13d]{font-size:.75rem;color:var(--color-text-secondary);background:var(--color-bg);padding:1px 6px;border-radius:4px}.reg-follower-tag[data-v-7867c13d]{font-size:.7rem;color:var(--color-text-secondary);font-style:italic;opacity:.6}.value-container[data-v-7867c13d]{display:flex;flex-direction:column;padding:4px 0}.summary-row[data-v-7867c13d]{background:rgba(var(--color-primary-rgb),.05)}.summary-row td[data-v-7867c13d]{padding:6px 12px!important;border-bottom:1px solid var(--color-border)}.summary-content[data-v-7867c13d]{display:flex;align-items:center;gap:8px;justify-content:center}.summary-icon[data-v-7867c13d]{font-size:1rem}.summary-text[data-v-7867c13d]{font-weight:600;color:var(--color-primary);font-size:.95rem;letter-spacing:.5px}.modal-header.warning[data-v-7867c13d]{background:#f5a6231a;border-bottom:2px solid #f5a623}.modal-content.confirm-modal[data-v-7867c13d]{width:550px;background:var(--color-surface);border-radius:12px;overflow:hidden;box-shadow:0 30px 60px #000000b3}.write-preview-body[data-v-7867c13d]{padding:1.5rem}.confirm-message[data-v-7867c13d]{font-size:.95rem;margin-bottom:1.5rem;color:var(--color-text-secondary)}.write-info-grid[data-v-7867c13d]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--color-bg);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.info-item label[data-v-7867c13d]{font-size:.75rem;color:var(--color-text-secondary);display:block;margin-bottom:4px}.info-item .v[data-v-7867c13d]{font-weight:700;font-size:1rem;color:var(--color-primary)}.value-comparison[data-v-7867c13d]{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.val-box[data-v-7867c13d]{flex:1;padding:1rem;border-radius:10px;text-align:center;border:1px solid var(--color-border)}.val-box.old[data-v-7867c13d]{background:#ffffff05}.val-box.new[data-v-7867c13d]{background:#667eea0d;border-color:var(--color-primary)}.box-label[data-v-7867c13d]{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:8px}.box-val[data-v-7867c13d]{font-family:Consolas,monospace;font-size:1.4rem;font-weight:700}.box-val.highlight[data-v-7867c13d]{color:#facc15}.arrow[data-v-7867c13d]{font-size:2rem;opacity:.5}.confirm-warning[data-v-7867c13d]{padding:10px;background:#f5576c1a;color:var(--color-error);border-radius:6px;font-size:.85rem;text-align:center;border:1px dashed var(--color-error)}.modal-footer[data-v-7867c13d]{padding:1rem 1.5rem;background:var(--color-bg);display:flex;justify-content:flex-end;gap:1rem}.btn-cancel[data-v-7867c13d]{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.6rem 1.2rem;border-radius:6px;cursor:pointer}.btn-execute[data-v-7867c13d]{background:var(--color-primary);color:#fff;border:none;padding:.6rem 2rem;border-radius:6px;font-weight:700;cursor:pointer;box-shadow:0 4px 15px #667eea4d}.btn-execute[data-v-7867c13d]:hover{transform:translateY(-1px);filter:brightness(1.1)}.toast-notification[data-v-7867c13d]{position:fixed;top:2rem;right:2rem;padding:.8rem 1.5rem;border-radius:8px;display:flex;align-items:center;gap:.8rem;z-index:99999;box-shadow:0 10px 30px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);min-width:200px}.toast-notification.success[data-v-7867c13d]{background:#10b981e6;color:#fff}.toast-notification.error[data-v-7867c13d]{background:#ef4444e6;color:#fff}.toast-notification.info[data-v-7867c13d]{background:#3b82f6e6;color:#fff}.toast-icon[data-v-7867c13d]{font-size:1.2rem}.toast-msg[data-v-7867c13d]{font-weight:500;font-size:.95rem}.toast-enter-active[data-v-7867c13d],.toast-leave-active[data-v-7867c13d]{transition:all .4s cubic-bezier(.18,.89,.32,1.28)}.toast-enter-from[data-v-7867c13d]{opacity:0;transform:translate(50px) scale(.9)}.toast-leave-to[data-v-7867c13d]{opacity:0;transform:translateY(-20px) scale(.9)}.broker-status-bar[data-v-7867c13d]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.broker-status-indicator[data-v-7867c13d]{display:flex;align-items:center;gap:.3rem}.broker-dot[data-v-7867c13d]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.broker-dot-on[data-v-7867c13d]{background:#10b981;animation:gateway-pulse-7867c13d 2s ease-in-out infinite}.broker-dot-off[data-v-7867c13d]{background:#9ca3af}.broker-status-label[data-v-7867c13d]{font-size:.75rem;color:#6b7280;white-space:nowrap}.btn-broker[data-v-7867c13d]{padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600;border:1.5px solid #3b82f6;color:#3b82f6;background:transparent;cursor:pointer;transition:all .18s;white-space:nowrap}.btn-broker[data-v-7867c13d]:hover:not(:disabled){background:#3b82f6;color:#fff}.btn-broker.connected[data-v-7867c13d]{border-color:#ef4444;color:#ef4444}.btn-broker.connected[data-v-7867c13d]:hover:not(:disabled){background:#ef4444;color:#fff}.btn-broker[data-v-7867c13d]:disabled{opacity:.45;cursor:not-allowed}.gateway-status-dot-wrap[data-v-7867c13d]{display:flex;align-items:center;gap:.3rem;flex-shrink:0;cursor:default;padding:0 .25rem}.gateway-status-dot[data-v-7867c13d]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-online[data-v-7867c13d]{background:#10b981;box-shadow:0 0 #10b98199;animation:gateway-pulse-7867c13d 2s ease-in-out infinite}.dot-offline[data-v-7867c13d]{background:#9ca3af}@keyframes gateway-pulse-7867c13d{0%{box-shadow:0 0 #10b98199}60%{box-shadow:0 0 0 5px #10b98100}to{box-shadow:0 0 #10b98100}}.gateway-status-text[data-v-7867c13d]{font-size:.75rem;font-weight:600;white-space:nowrap}.text-online[data-v-7867c13d]{color:#059669}.text-offline[data-v-7867c13d]{color:#9ca3af}.gateway-id-inputs[data-v-7867c13d]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.gateway-id-input[data-v-7867c13d]{width:5rem;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#111827;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.gateway-id-input[data-v-7867c13d]:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.gateway-id-input[data-v-7867c13d]:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.gateway-id-sep[data-v-7867c13d]{font-size:1rem;color:#9ca3af;font-weight:600}.gateway-select-wrap[data-v-7867c13d]{position:relative;display:flex;flex-direction:row;align-items:center;gap:.5rem;min-width:180px;max-width:220px;flex:1}.gateway-select[data-v-7867c13d]{flex:1;width:0}.btn-manage-gateways[data-v-7867c13d]{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer;transition:all .15s;font-size:.9rem}.btn-manage-gateways[data-v-7867c13d]:hover{background:#f3f4f6;color:#3b82f6;border-color:#d1d5db}.header-row[data-v-7867c13d]{display:flex;align-items:flex-start;gap:1.5rem}.header-left-col[data-v-7867c13d]{display:flex;flex-direction:column;gap:.25rem;min-width:140px}.header-status-summary[data-v-7867c13d]{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:#6b7280;padding-left:2px;margin-top:2px}.status-row[data-v-7867c13d]{display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.status-dot[data-v-7867c13d]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-label[data-v-7867c13d]{display:inline-block;width:40px;text-align:justify;text-align-last:justify}.profile-library[data-v-19312e72]{display:flex;flex-direction:column;height:calc(100vh - 80px);max-width:1600px;margin:0 auto;padding:1rem;gap:1rem}@media(min-width:769px){.profile-library[data-v-19312e72]{height:calc(100vh - 80px)}}@media(max-width:768px){.profile-library[data-v-19312e72]{height:auto;min-height:100%;padding:.75rem;gap:.75rem}.library-header[data-v-19312e72]{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.actions[data-v-19312e72]{justify-content:space-between}.btn-import[data-v-19312e72],.btn-new[data-v-19312e72]{flex:1;text-align:center}.library-body[data-v-19312e72]{flex-direction:column;height:auto}.sidebar-tree[data-v-19312e72]{width:100%;height:300px;flex-shrink:0}.editor-panel[data-v-19312e72]{min-height:400px}.editor-toolbar[data-v-19312e72]{flex-direction:column;align-items:flex-start;gap:.75rem}.editor-actions[data-v-19312e72]{width:100%;justify-content:space-between}.editor-actions button[data-v-19312e72]{flex:1}}.library-header[data-v-19312e72]{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);padding:1rem;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.library-header h2[data-v-19312e72]{margin:0;font-size:1.1rem;color:var(--color-text);font-weight:600}.actions[data-v-19312e72]{display:flex;gap:1rem}.btn-import[data-v-19312e72],.btn-new[data-v-19312e72]{padding:.6rem 1.2rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface-hover);color:var(--color-text);transition:all .2s}.btn-new[data-v-19312e72]{background:var(--color-primary);color:#fff;border:none}.library-body[data-v-19312e72]{display:flex;flex:1;gap:1rem;min-height:0}.sidebar-tree[data-v-19312e72]{width:300px;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.search-box[data-v-19312e72]{padding:1rem;border-bottom:1px solid var(--color-border)}.search-box input[data-v-19312e72]{width:100%;padding:.6rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.tree-content[data-v-19312e72]{flex:1;overflow-y:auto;padding:.5rem}.tree-node-header[data-v-19312e72]{display:flex;align-items:center;gap:.5rem;padding:.6rem .5rem;cursor:pointer;color:var(--color-text);font-size:.9rem;-webkit-user-select:none;user-select:none;font-weight:500;border-radius:var(--radius-md);position:relative;z-index:1}.tree-node-header[data-v-19312e72]:hover{background:var(--color-surface-hover)}.root-node[data-v-19312e72]{font-weight:600}.series-node[data-v-19312e72]{color:var(--color-text-secondary)}.arrow-icon[data-v-19312e72]{font-size:.7rem;color:var(--color-text-secondary);width:1rem;text-align:center;transition:transform .2s}.tree-level-1[data-v-19312e72]{margin-bottom:.5rem}.level-1-children[data-v-19312e72]{margin-left:.7rem;padding-left:.5rem;border-left:1px dashed var(--color-border)}.tree-level-2[data-v-19312e72]{margin-top:.2rem}.level-2-children[data-v-19312e72]{margin-left:.7rem;padding-left:.5rem;border-left:1px dashed var(--color-border)}.tree-item[data-v-19312e72]{margin-left:1.5rem;display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.85rem}.tree-item[data-v-19312e72]:hover{background:var(--color-surface-hover);color:var(--color-text)}.tree-item.active[data-v-19312e72]{background:#667eea1a;color:var(--color-primary);font-weight:600}.empty-tree[data-v-19312e72]{padding:2rem;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.editor-panel[data-v-19312e72]{flex:1;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.editor-toolbar[data-v-19312e72]{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface-hover)}.status-text[data-v-19312e72]{font-size:.85rem;font-weight:600;color:var(--color-text);word-break:break-all}.editor-actions[data-v-19312e72]{display:flex;gap:.8rem}.editor-actions button[data-v-19312e72]{padding:.5rem 1rem;border-radius:var(--radius-md);border:none;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-delete[data-v-19312e72]{background:#f5576c1a;color:var(--color-error)}.btn-export[data-v-19312e72]{background:var(--color-bg);border:1px solid var(--color-border)!important;color:var(--color-text)}.btn-save[data-v-19312e72]{background:var(--color-primary);color:#fff}.code-editor-wrapper[data-v-19312e72]{flex:1;display:flex;overflow:hidden;position:relative;background:#1e1e1e}.line-numbers[data-v-19312e72]{width:40px;background:#252526;color:#858585;text-align:right;padding:1rem 0;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.5;-webkit-user-select:none;user-select:none;overflow:hidden;border-right:1px solid #333}.line-num[data-v-19312e72]{padding-right:8px}.json-textarea[data-v-19312e72]{flex:1;width:100%;padding:1rem;background:transparent;color:#d4d4d4;border:none;resize:none;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.5;outline:none;white-space:pre;overflow:auto}.error-msg[data-v-19312e72]{padding:.8rem;background:#f5576c1a;color:var(--color-error);font-size:.85rem;border-top:1px solid rgba(245,87,108,.2);display:flex;align-items:flex-start;gap:.5rem;font-family:Consolas,monospace;max-height:100px;overflow-y:auto}.desktop-layout[data-v-6fe87df2]{display:flex;width:100vw;height:100vh;background:var(--color-bg);overflow:hidden}.main-content[data-v-6fe87df2]{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-header[data-v-6fe87df2]{height:64px;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.view-title[data-v-6fe87df2]{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0}.content-body[data-v-6fe87df2]{flex:1;overflow-y:auto;padding:2rem}.placeholder-view[data-v-6fe87df2]{display:flex;justify-content:center;align-items:center;height:100%;color:var(--color-text-secondary)}.fade-enter-active[data-v-6fe87df2],.fade-leave-active[data-v-6fe87df2]{transition:opacity .2s ease}.fade-enter-from[data-v-6fe87df2],.fade-leave-to[data-v-6fe87df2]{opacity:0}.mobile-modbus-container[data-v-50738e64]{height:100%;width:100%;background:var(--color-bg);overflow-y:auto;-webkit-overflow-scrolling:touch}.scroll-content[data-v-50738e64]{padding:12px 12px 40px;display:flex;flex-direction:column;gap:12px}.card[data-v-50738e64]{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:opacity .3s}.card.disabled[data-v-50738e64]{opacity:.6}.card-header[data-v-50738e64]{padding:14px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none}.mode-switch[data-v-50738e64]{display:flex;background:var(--color-bg);border-radius:6px;padding:2px;margin-right:8px;border:1px solid var(--color-border)}.mode-btn[data-v-50738e64]{border:none;background:transparent;padding:4px 8px;font-size:.75rem;color:var(--color-text-secondary);border-radius:4px;cursor:pointer;transition:all .2s}.mode-btn.active[data-v-50738e64]{background:var(--color-surface);color:var(--color-primary);font-weight:600;box-shadow:var(--shadow-sm)}.header-right[data-v-50738e64]{display:flex;align-items:center;gap:8px}.toggle-icon[data-v-50738e64]{font-size:.8rem;color:var(--color-text-secondary);transition:transform .3s}.toggle-icon.rotate[data-v-50738e64]{transform:rotate(180deg)}.card-icon[data-v-50738e64]{font-size:1.25rem}.card-title[data-v-50738e64]{font-size:.95rem;font-weight:600;margin:0;flex:1}.status-badge[data-v-50738e64]{font-size:.75rem;padding:4px 8px;border-radius:20px;background:var(--color-bg);color:var(--color-text-secondary)}.status-badge.connected[data-v-50738e64]{background:#38ef7d1a;color:var(--color-success)}.auto-mode-ui[data-v-50738e64]{display:flex;flex-direction:column;gap:12px}.placeholder-box[data-v-50738e64]{width:100%;border:2px dashed var(--color-border);padding:40px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-secondary);cursor:pointer}.selected-info-box[data-v-50738e64]{background:rgba(var(--color-primary-rgb),.05);border:1px solid var(--color-primary);padding:16px;border-radius:12px}.reg-name[data-v-50738e64]{font-weight:700;font-size:1.1rem;display:block;margin-bottom:4px}.reg-addr[data-v-50738e64]{font-family:monospace;color:var(--color-primary);font-weight:600}.info-row[data-v-50738e64]{display:flex;justify-content:space-between;align-items:center}.info-row.sub[data-v-50738e64]{font-size:.8rem;color:var(--color-text-secondary);margin-top:4px}.change-btn[data-v-50738e64]{margin-top:12px;background:transparent;border:none;color:var(--color-primary);font-size:.85rem;font-weight:600;padding:0;text-decoration:underline}.manual-mode-ui[data-v-50738e64]{display:flex;flex-direction:column;gap:16px}.hex-preview-box[data-v-50738e64]{background:#1e1e2d;color:#7dd3fc;border-radius:var(--radius-md);padding:10px 12px;border:1px solid var(--color-border);font-family:Consolas,monospace;font-size:.85rem;overflow-x:auto;white-space:nowrap}.label-row[data-v-50738e64]{display:flex;justify-content:space-between;align-items:center}.base-toggle[data-v-50738e64]{font-size:.65rem;color:var(--color-primary);cursor:pointer;padding:2px 6px;background:#667eea1a;border-radius:4px}.helper-text[data-v-50738e64]{font-size:.7rem;color:var(--color-text-secondary);margin-top:2px;text-align:right}.card-body[data-v-50738e64]{padding:16px;display:flex;flex-direction:column;gap:16px}.input-row[data-v-50738e64]{display:flex;gap:12px}.flex-1[data-v-50738e64]{flex:1}.flex-2[data-v-50738e64]{flex:2}.input-group[data-v-50738e64]{display:flex;flex-direction:column;gap:6px}.input-group label[data-v-50738e64]{font-size:.75rem;color:var(--color-text-secondary);font-weight:500}.input-wrapper[data-v-50738e64]{position:relative}.plc-inline-label[data-v-50738e64]{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--color-primary);font-weight:600;pointer-events:none;background:rgba(var(--color-primary-rgb),.1);padding:2px 6px;border-radius:4px}input[data-v-50738e64],select[data-v-50738e64]{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;color:var(--color-text);font-size:.9rem}.prime-btn[data-v-50738e64]{width:100%;padding:14px;border-radius:var(--radius-md);border:none;font-weight:600;font-size:.95rem;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.prime-btn[data-v-50738e64]:active{filter:brightness(.9)}.prime-btn.secondary[data-v-50738e64]{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-border)}.prime-btn.action[data-v-50738e64]{background:var(--gradient-primary);box-shadow:0 4px 12px #667eea4d}.prime-btn[data-v-50738e64]:disabled{opacity:.5;filter:grayscale(1)}.data-card[data-v-50738e64]{min-height:300px;display:flex;flex-direction:column}.card-tabs[data-v-50738e64]{display:flex;background:var(--color-bg);padding:4px;margin:12px;border-radius:var(--radius-md);gap:4px}.tab-btn[data-v-50738e64]{flex:1;border:none;padding:8px;background:transparent;color:var(--color-text-secondary);font-size:.85rem;font-weight:500;border-radius:6px;transition:all .2s}.tab-btn.active[data-v-50738e64]{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.tab-view-content[data-v-50738e64]{flex:1;padding:0 16px 16px}.empty-state[data-v-50738e64]{display:flex;align-items:center;justify-content:center;height:120px;color:var(--color-text-secondary);font-size:.85rem;font-style:italic}.logs-container[data-v-50738e64]{display:flex;flex-direction:column;gap:8px}.log-entry[data-v-50738e64]{padding:10px;background:var(--color-bg);border-radius:8px;border-left:3px solid transparent}.log-entry.tx[data-v-50738e64]{border-left-color:var(--color-primary)}.log-entry.rx[data-v-50738e64]{border-left-color:var(--color-success)}.log-head[data-v-50738e64]{display:flex;justify-content:space-between;margin-bottom:4px}.dir-tag[data-v-50738e64]{font-size:.65rem;font-weight:700;padding:2px 4px;border-radius:4px;background:var(--color-surface)}.log-time[data-v-50738e64]{font-size:.65rem;color:var(--color-text-secondary)}.log-body[data-v-50738e64]{font-size:.8rem;word-break:break-all}.result-item[data-v-50738e64]{padding:10px;background:var(--color-bg);border-radius:8px;margin-bottom:8px}.res-time[data-v-50738e64]{font-size:.65rem;color:var(--color-text-secondary)}.res-data[data-v-50738e64]{font-size:.9rem;margin-top:4px;color:var(--color-success)}.fab-clear[data-v-50738e64]{position:absolute;bottom:20px;right:20px;background:var(--color-surface);border:1px solid var(--color-border);padding:6px 12px;border-radius:20px;font-size:.75rem;color:var(--color-text);box-shadow:var(--shadow-md)}.font-mono[data-v-50738e64]{font-family:Consolas,monospace}.input-wrapper[data-v-50738e64]{position:relative;display:flex;align-items:center}.input-wrapper input[data-v-50738e64]{padding-right:85px}.plc-inline-label[data-v-50738e64]{position:absolute;right:10px;font-size:.75rem;color:var(--color-text-secondary);pointer-events:none;font-family:Consolas,monospace;background:#0000000d;padding:2px 4px;border-radius:4px}.mobile-drawer-overlay[data-v-4e5207a1]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}.drawer-content[data-v-4e5207a1]{width:280px;height:100%;background:var(--color-surface);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.drawer-header[data-v-4e5207a1]{padding:2rem 1.5rem;border-bottom:1px solid var(--color-border)}.logo[data-v-4e5207a1]{display:flex;align-items:center;gap:1rem}.logo-icon[data-v-4e5207a1]{font-size:2rem}.logo-info[data-v-4e5207a1]{display:flex;flex-direction:column}.logo-text[data-v-4e5207a1]{font-size:1.25rem;font-weight:700;color:var(--color-text)}.version[data-v-4e5207a1]{font-size:.75rem;color:var(--color-text-secondary)}.drawer-nav[data-v-4e5207a1]{padding:1rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.nav-item[data-v-4e5207a1]{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all .2s;-webkit-user-select:none;user-select:none}.nav-item.active[data-v-4e5207a1]{background:#667eea1a;color:var(--color-primary);font-weight:600}.nav-item.disabled[data-v-4e5207a1]{opacity:.5}.nav-icon[data-v-4e5207a1]{font-size:1.25rem}.nav-badge[data-v-4e5207a1]{margin-left:auto;font-size:.65rem;padding:.2rem .5rem;border-radius:4px;background:var(--color-bg);border:1px solid var(--color-border)}.drawer-footer[data-v-4e5207a1]{padding:1.5rem;border-top:1px solid var(--color-border);font-size:.75rem;color:var(--color-text-secondary);text-align:center}.mobile-layout[data-v-88cb9497]{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--color-bg);overflow:hidden;position:relative}.mobile-app-bar[data-v-88cb9497]{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:100;flex-shrink:0}.view-title[data-v-88cb9497]{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.icon-btn[data-v-88cb9497]{background:none;border:none;padding:8px;color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.icon-btn[data-v-88cb9497]:active{background:var(--color-surface-hover)}.status-indicator-wrapper[data-v-88cb9497]{padding:8px}.status-dot[data-v-88cb9497]{width:10px;height:10px;border-radius:50%;background:var(--color-text-secondary);box-shadow:0 0 #0000;transition:all .3s ease}.status-dot.connected[data-v-88cb9497]{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.status-dot.connecting[data-v-88cb9497]{background:var(--color-warning);animation:pulse-88cb9497 1.5s infinite}@keyframes pulse-88cb9497{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.mobile-main[data-v-88cb9497]{flex:1;overflow:hidden;position:relative}.view-container[data-v-88cb9497]{height:100%;width:100%}.placeholder-view[data-v-88cb9497]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);gap:1rem}.placeholder-view .icon[data-v-88cb9497]{font-size:3rem}.page-fade-enter-active[data-v-88cb9497],.page-fade-leave-active[data-v-88cb9497]{transition:opacity .2s ease,transform .2s ease}.page-fade-enter-from[data-v-88cb9497]{opacity:0;transform:translateY(10px)}.page-fade-leave-to[data-v-88cb9497]{opacity:0;transform:translateY(-10px)}.drawer-enter-active[data-v-88cb9497],.drawer-leave-active[data-v-88cb9497]{transition:opacity .3s ease}.drawer-enter-from[data-v-88cb9497],.drawer-leave-to[data-v-88cb9497]{opacity:0}.drawer-enter-active[data-v-88cb9497] .drawer-content,.drawer-leave-active[data-v-88cb9497] .drawer-content{transition:transform .3s cubic-bezier(.4,0,.2,1)}.drawer-enter-from[data-v-88cb9497] .drawer-content,.drawer-leave-to[data-v-88cb9497] .drawer-content{transform:translate(-100%)}.mobile-dev-overlay-container[data-v-88cb9497]{position:relative;height:100%;width:100%}.mobile-future-tag[data-v-88cb9497]{position:absolute;inset:0;background:rgba(var(--color-bg-rgb),.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:2rem;text-align:center}.tag-content[data-v-88cb9497]{background:var(--color-surface);padding:2rem;border-radius:1rem;box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.tag-content .icon[data-v-88cb9497]{font-size:2.5rem;display:block;margin-bottom:1rem}.tag-content h3[data-v-88cb9497]{margin:0 0 .5rem;color:var(--color-text);font-size:1.1rem}.tag-content p[data-v-88cb9497]{margin:0;color:var(--color-text-secondary);font-size:.9rem}body{margin:0;background:var(--color-bg)}
