: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}}.sponsor-overlay[data-v-53f1241d]{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000}.sponsor-card[data-v-53f1241d]{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);width:95%;max-width:540px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;animation:cardFadeIn .3s ease-out}.sponsor-header[data-v-53f1241d]{padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--color-border)}.title-group h3[data-v-53f1241d]{margin:0;font-size:1.25rem;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700}.subtitle[data-v-53f1241d]{font-size:.8rem;color:var(--color-text-secondary);margin:.25rem 0 0}.btn-close[data-v-53f1241d]{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.sponsor-body[data-v-53f1241d]{padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.qr-container[data-v-53f1241d]{position:relative;width:320px;height:320px;background:#fff;padding:0;border-radius:var(--radius-md);box-shadow:0 4px 24px #0000004d;display:flex;align-items:center;justify-content:center;overflow:hidden}.reward-qr[data-v-53f1241d]{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sponsor-tips[data-v-53f1241d]{text-align:center;font-size:.9rem;color:var(--color-text-secondary);line-height:1.6}.sponsor-footer[data-v-53f1241d]{padding:1rem 1.5rem 1.5rem}.footer-actions[data-v-53f1241d]{display:flex;flex-direction:row;gap:1rem;width:100%}.btn-done[data-v-53f1241d],.btn-outline[data-v-53f1241d]{flex:1;padding:.75rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .3s}.btn-done[data-v-53f1241d]{background:var(--gradient-primary);color:#fff;border:none}.btn-done[data-v-53f1241d]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-outline[data-v-53f1241d]{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-outline[data-v-53f1241d]:hover{background:#667eea14}.fade-enter-active[data-v-53f1241d],.fade-leave-active[data-v-53f1241d]{transition:opacity .3s}.fade-enter-from[data-v-53f1241d],.fade-leave-to[data-v-53f1241d]{opacity:0}.zoom-enter-active[data-v-53f1241d]{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.zoom-leave-active[data-v-53f1241d]{transition:transform .2s ease-in}.zoom-enter-from[data-v-53f1241d]{transform:scale(.85);opacity:0}.zoom-leave-to[data-v-53f1241d]{transform:scale(.95);opacity:0}.sidebar[data-v-b4b8c6cd]{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-b4b8c6cd]{padding:1.5rem;border-bottom:1px solid var(--color-border)}.logo[data-v-b4b8c6cd]{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-b4b8c6cd]{font-size:1.8rem}.version[data-v-b4b8c6cd]{font-size:.75rem;color:var(--color-text-secondary);margin-left:2.5rem}.sidebar-nav[data-v-b4b8c6cd]{padding:1rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;flex:1}.sidebar-footer[data-v-b4b8c6cd]{padding:1.25rem 1.5rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.75rem}.sponsor-trigger[data-v-b4b8c6cd]{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.6rem;background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-md);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.sponsor-trigger[data-v-b4b8c6cd]:hover{background:var(--gradient-primary);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.copyright[data-v-b4b8c6cd]{font-size:.7rem;color:var(--color-text-secondary);text-align:center;margin:0;white-space:nowrap;opacity:.7}.nav-item[data-v-b4b8c6cd]{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-b4b8c6cd]:hover:not(.disabled){background:var(--color-surface-hover);color:var(--color-text)}.nav-item.active[data-v-b4b8c6cd]{background:#667eea1a;color:var(--color-primary);font-weight:500}.nav-item.disabled[data-v-b4b8c6cd]{opacity:.5;cursor:not-allowed}.nav-icon[data-v-b4b8c6cd]{font-size:1.2rem}.nav-badge[data-v-b4b8c6cd]{margin-left:auto;font-size:.65rem;padding:.15rem .4rem;border-radius:4px;background:var(--color-surface-hover);border:1px solid var(--color-border)}.modbus-panel{display:flex;flex-direction:column;gap:.5rem;height:100%;width:100%;padding:.5rem .5rem 2rem;box-sizing:border-box;background:var(--color-bg);overflow-y:auto}.panel-body{display:flex;flex-direction:column;gap:.75rem;flex:1 0 auto}.panel-body>*{flex-shrink:0}.panel-section{background:var(--color-surface);border-radius:6px;border:1px solid var(--color-border);padding:.6rem}.section-title{display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;margin:0;color:var(--color-text);white-space:nowrap}.header-section{flex-shrink:0}.header-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.mode-tabs{display:inline-flex;background:var(--color-bg);padding:4px;border-radius:var(--radius-md);gap:4px}.mode-tab{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{background:var(--color-surface-hover);color:var(--color-primary);box-shadow:var(--shadow-sm)}.config-bar{display:flex;align-items:center;gap:.75rem;flex:1}.config-group{display:flex;gap:.5rem;flex-wrap:wrap}.config-group select,.config-group input{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{height:2.4rem;align-items:stretch;padding:0}.config-bar .base-switch button{height:100%;padding:0 12px;display:flex;align-items:center;border-radius:0}.gateway-config-box{background:#00000005;padding:.8rem;border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.gateway-input{min-width:180px}.gateway-select{min-width:220px}.mode-tab-gateway{display:inline-flex;align-items:center;gap:4px}.gateway-settings-icon{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{color:var(--color-primary)}.gateway-settings-icon:hover{background:var(--color-surface-hover)}.compact-row{justify-content:space-between;align-items:flex-end}.gateway-config-box .form-group:first-child{flex:1}.dynamic-params .form-group.small{width:120px}.gateway-config-box input,.gateway-config-box select{height:32px;padding:.25rem .5rem}.gateway-config-box .base-switch{height:32px;align-items:center}.gateway-config-box .base-switch button{padding:.25rem .75rem;font-size:.8rem}.gateway-config-box .label-with-switch label{width:auto}.btn-connect{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{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{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;color:#fff}.btn-ping{padding:.4rem 1rem;border-radius:6px;border:1px solid rgba(14,165,233,.3);background:#0ea5e91a;color:#0ea5e9;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s;white-space:nowrap}.btn-ping:hover{background:#0ea5e933;border-color:#0ea5e980}.btn-ping.pinging{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border-color:transparent;animation:ping-pulse 2s ease-in-out infinite}@keyframes ping-pulse{0%,to{box-shadow:0 0 #0ea5e966}50%{box-shadow:0 0 0 6px #0ea5e900}}.ping-entry{border-left-color:#0ea5e9!important}.ping-tag{font-weight:700;letter-spacing:.05em}.ping-tag.ping-ok{background:#22c55e26!important;color:#22c55e!important}.ping-tag.ping-fail{background:#ef444426!important;color:#ef4444!important}.ping-result-text{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.ping-target{font-family:var(--font-mono);font-weight:600;color:var(--color-text)}.ping-success{color:#22c55e;font-weight:500}.ping-failure{color:#ef4444;font-weight:500}.ping-seq{color:var(--color-text-secondary);font-size:.8em;opacity:.7}.ping-note{color:#f59e0b;font-size:.85em;font-weight:500;margin-left:.25rem}.ping-diag{color:var(--color-text-secondary);font-size:.75em;opacity:.6;font-family:var(--font-mono)}.panel-body{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}.command-section{flex-shrink:0}.log-section,.results-section{flex:1;display:flex;flex-direction:column;min-height:200px;min-width:0}.monitor-grid{display:flex;gap:1rem;flex:1;min-height:200px;align-items:stretch}.with-collection .log-section,.with-collection .results-section{height:500px;min-height:500px;flex-shrink:0}.with-collection .monitor-grid{flex:none;height:500px}.command-form-horizontal{margin-top:1rem;overflow:visible}.form-row{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:nowrap;overflow:visible}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group.grow{width:160px;flex-shrink:0}.form-group-slave{width:80px;flex-shrink:0}.form-group-fc{width:170px;flex-shrink:0}.form-group-addr{width:auto;flex-shrink:0}.form-group-manual-type{width:140px;flex-shrink:0}.form-group-quantity{width:90px;flex-shrink:0}.form-group label{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap}.input-combined{display:flex;gap:.4rem}.label-with-switch{display:flex;align-items:center;gap:.4rem}.label-with-switch label{width:180px;flex-shrink:0}.address-meta-col{display:flex;flex-direction:column;gap:.4rem}.base-switch{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;padding:1px}.base-switch button{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{background:var(--color-primary);color:#fff}.base-switch button:hover:not(.active){background:var(--color-surface-hover)}.dec-input-large{width:180px}.dec-input-small{width:120px}.manual-type-select{width:140px}.label-with-endian{display:flex;align-items:center;justify-content:space-between}.endian-mini-select{height:1.2rem!important;padding:0 4px!important;font-size:.7rem!important;width:68px!important;background:var(--color-surface-hover)!important;border-color:var(--color-primary)!important;color:var(--color-primary)!important;border-radius:3px!important}.plc-address-display{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{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{color:var(--color-primary);padding:.5rem 1rem;font-weight:700;min-width:80px;text-align:center}.form-actions-inline{display:flex;align-items:flex-end;gap:.8rem;flex:1;min-width:200px;flex-shrink:1;overflow:visible}.preview-box{flex:1;display:flex;flex-direction:column;gap:.4rem;min-width:0}.preview-label{position:relative;font-size:.8rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:.4rem}.help-icon{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:hover{color:var(--color-primary)}.info-svg{width:100%;height:100%}.tooltip{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{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-title{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:before{content:"📝";font-size:.9rem}.tooltip-item{display:flex;justify-content:space-between;font-size:.8rem;gap:1rem;line-height:1.8}.tooltip-item .p-name{color:var(--color-text-secondary)}.tooltip-item .p-value{font-family:Consolas,monospace;color:#7dd3fc;font-weight:700}.log-hex-group{display:flex;align-items:center;gap:.8rem}.rx-log-tooltip,.tx-preview-tooltip{top:100%!important;bottom:auto!important;transform:translateY(10px)!important;margin-top:12px}.rx-log-tooltip{left:0!important}.tx-preview-tooltip{left:50%!important;transform:translate(-50%) translateY(10px)!important}.help-icon:hover .rx-log-tooltip{opacity:1!important;transform:translateY(0)!important}.help-icon:hover .tx-preview-tooltip{opacity:1!important;transform:translate(-50%) translateY(0)!important}.log-help .tooltip{max-width:80vw;min-width:280px;max-height:500px;overflow-y:auto}.tooltip-item{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:last-child{border-bottom:none}.tooltip-item .p-value{font-family:Consolas,monospace;color:#7dd3fc;font-weight:700;white-space:pre-wrap;word-break:break-all;max-width:600px}.preview-value{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{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:disabled{opacity:.5;cursor:not-allowed}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;flex-shrink:0;min-height:32px}.log-container{flex:1;overflow-y:auto;background:var(--color-bg);border-radius:6px;padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.log-entry{display:flex;gap:.8rem;padding:.5rem;border-radius:4px;font-family:Consolas,monospace;font-size:.9rem;background:#ffffff08}.log-entry.tx{border-left:3px solid #667eea}.log-entry.rx{border-left:3px solid #11998e}.log-meta{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{display:flex;align-items:center;gap:.3rem}.log-tag{font-weight:700;padding:1px 6px;border-radius:3px}.log-entry.tx .log-tag{background:#667eea33;color:#667eea}.log-entry.rx .log-tag{background:#11998e33;color:#11998e}.log-content{flex:1;word-break:break-all}.log-parsed{color:var(--color-success);font-size:.85rem;margin-top:.2rem}.log-error{color:var(--color-error);font-size:.85rem}.error-banner,.warning-banner{margin-top:.8rem;padding:.6rem;border-radius:6px;font-size:.9rem}.error-banner{background:#f5576c1a;color:var(--color-error);border:1px solid rgba(245,87,108,.2)}.warning-banner{background:#f5a6231a;color:var(--color-warning);border:1px solid rgba(245,166,35,.2)}.table-container{flex:1;overflow-y:auto;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.data-table{width:100%;border-collapse:collapse;font-family:Consolas,monospace;font-size:.9rem;border:1px solid var(--color-border)}.data-table th,.data-table td{border:1px solid var(--color-border);text-align:center;padding:.6rem}.data-table th{position:sticky;top:0;background:var(--color-surface-hover);color:var(--color-text-secondary);font-size:.8rem;z-index:1}.data-table tr:hover{background:#ffffff05}.col-index{color:var(--color-text-secondary)}.col-addr{color:var(--color-primary);font-weight:600}.col-value-header{display:flex;justify-content:center;align-items:center;gap:.5rem}.format-indicator{font-size:.7rem;opacity:.7;font-weight:400}.val-dec{color:var(--color-text);font-weight:700}.val-hex{color:#a78bfa;font-weight:700}.val-bin{color:#34d399;font-size:1rem;letter-spacing:1px}.table-empty{padding:3rem;text-align:center;color:var(--color-text-secondary);font-style:italic;border:none}.result-hint{font-size:.75rem;color:var(--color-text-secondary);margin-left:.5rem;font-weight:400}.header-controls{display:flex;align-items:center;gap:1rem}.format-switch{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;padding:2px}.format-switch button{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{background:var(--color-primary);color:#fff;font-weight:600}.format-switch button:hover:not(.active){background:var(--color-surface-hover)}@media(max-width:1100px){.monitor-grid{flex-direction:column}}@media(max-width:900px){.form-row{flex-direction:column;align-items:stretch}.btn-send,.dec-input-large{width:100%}}.command-form-horizontal input,.command-form-horizontal select,.plc-address-display,.preview-value{height:2.4rem;font-size:.9rem;line-height:normal;box-sizing:border-box;white-space:nowrap}.form-group label,.preview-label,.label-with-switch{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{min-height:auto}.mode-switch-simple{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{cursor:pointer;padding:2px 6px;border-radius:3px;color:var(--color-text-secondary);transition:all .2s}.mode-switch-simple .mode-opt.active{background:var(--color-primary);color:#fff;font-weight:500}.mode-switch-simple .sep{color:var(--color-border);font-size:.8rem}.btn-text-action{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:hover{background:#667eea1a;border-style:solid}.searchable-dropdown-container{position:relative;width:220px;-webkit-user-select:none;user-select:none}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;height:2.4rem;padding:0 .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .2s;font-size:.9rem;color:var(--color-text);gap:8px}.dropdown-trigger:hover{border-color:var(--color-primary);background:var(--color-surface-hover)}.dropdown-trigger.open{border-color:var(--color-primary);box-shadow:0 0 0 2px #667eea1a;border-bottom-left-radius:0;border-bottom-right-radius:0}.trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-arrow{font-size:.6rem;opacity:.5;transition:transform .2s}.dropdown-trigger.open .trigger-arrow{transform:rotate(180deg)}.dropdown-panel{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--color-primary);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:0 10px 25px #00000026;z-index:10001;overflow:hidden;display:flex;flex-direction:column;animation:dropdown-slide .2s ease-out}@keyframes dropdown-slide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-search-input{width:100%!important;border:none!important;border-bottom:1px solid var(--color-border)!important;border-radius:0!important;height:36px!important;padding:0 10px!important;font-size:.85rem!important;background:#f9fafb!important;color:var(--color-text)!important;outline:none!important}.dropdown-options-list{max-height:250px;overflow-y:auto}.dropdown-item{padding:8px 12px;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(0,0,0,.03)}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:#f0f7ff}.dropdown-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.item-name{font-size:.85rem;margin-bottom:2px}.item-desc{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.dropdown-empty{padding:20px;text-align:center;color:var(--color-text-secondary);font-size:.8rem;font-style:italic}.dropdown-overlay{position:fixed;inset:0;z-index:10000;background:transparent}.summary-row td{background:#3b82f614!important;border-bottom:1px solid rgba(59,130,246,.2)!important}.summary-text{color:#3b82f6!important;text-shadow:0 0 1px rgba(255,255,255,.2)}.summary-icon{filter:drop-shadow(0 0 4px rgba(59,130,246,.3))}.modal-overlay{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{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{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{border:none;padding:0;font-size:1.1rem}.btn-close{background:transparent;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer}.modal-body{padding:1rem;overflow-y:auto}.profile-item{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:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.profile-item.active{background:#667eea1a;border-color:var(--color-primary)}.p-icon{font-size:1.5rem}.p-title{font-weight:600;color:var(--color-text)}.p-sub{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.empty-state{text-align:center;padding:3rem;color:var(--color-text-secondary)}.gateway-manager{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{display:grid;grid-template-columns:1.4fr 1.2fr;gap:1rem}.gateway-list{padding-right:.5rem;border-right:1px solid var(--color-border);max-height:60vh;overflow-y:auto}.gateway-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .4rem;border-radius:6px;cursor:pointer;transition:all .2s}.gateway-item:hover{background:var(--color-surface-hover)}.gateway-item.active{background:#667eea14}.status-dot{width:10px;height:10px;border-radius:999px;flex-shrink:0}.status-dot.online{background:#22c55e}.status-dot.offline{background:#9ca3af}.g-main{flex:1;min-width:0}.g-name{font-size:.9rem;font-weight:600}.g-sub{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.g-latency{margin-left:6px}.g-latency-na{opacity:.6}.btn-ghost{border:none;background:transparent;color:var(--color-text-secondary);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-ghost:hover{background:var(--color-surface-hover)}.btn-ghost.danger{color:var(--color-error)}.gateway-form{display:flex;flex-direction:column;gap:.75rem}.gateway-form .form-row{display:flex;flex-direction:column;gap:.25rem}.gateway-form label{font-size:.8rem;color:var(--color-text-secondary)}.gateway-form input{padding:.45rem .6rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);font-size:.9rem}.gateway-form-error{font-size:.8rem;color:var(--color-error)}.gateway-form .form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.btn-secondary{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{background:var(--color-primary);border:none;color:#fff;padding:.5rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.85rem}.auto-parsed-info{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{font-size:.75rem;color:var(--color-text-secondary);background:var(--color-bg);padding:1px 6px;border-radius:4px}.reg-follower-tag{font-size:.7rem;color:var(--color-text-secondary);font-style:italic;opacity:.6}.value-container{display:flex;flex-direction:column;padding:4px 0}.summary-row{background:rgba(var(--color-primary-rgb),.05)}.summary-row td{padding:6px 12px!important;border-bottom:1px solid var(--color-border)}.summary-content{display:flex;align-items:flex-start;gap:8px;justify-content:center;padding:4px 0}.summary-icon{font-size:1rem}.summary-text{font-weight:600;color:var(--color-primary);font-size:.95rem;letter-spacing:.5px;white-space:pre-wrap;line-height:1.6;text-align:left}.modal-header.warning{background:#f5a6231a;border-bottom:2px solid #f5a623}.modal-content.confirm-modal{width:550px;background:var(--color-surface);border-radius:12px;overflow:hidden;box-shadow:0 30px 60px #000000b3}.write-preview-body{padding:1.5rem}.confirm-message{font-size:.95rem;margin-bottom:1.5rem;color:var(--color-text-secondary)}.write-info-grid{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{font-size:.75rem;color:var(--color-text-secondary);display:block;margin-bottom:4px}.info-item .v{font-weight:700;font-size:1rem;color:var(--color-primary)}.value-comparison{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.val-box{flex:1;padding:1rem;border-radius:10px;text-align:center;border:1px solid var(--color-border)}.val-box.old{background:#ffffff05}.val-box.new{background:#667eea0d;border-color:var(--color-primary)}.box-label{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:8px}.box-val{font-family:Consolas,monospace;font-size:1.4rem;font-weight:700}.box-val.highlight{color:#facc15}.arrow{font-size:2rem;opacity:.5}.confirm-warning{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{padding:1rem 1.5rem;background:var(--color-bg);display:flex;justify-content:flex-end;gap:1rem}.btn-cancel{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.6rem 1.2rem;border-radius:6px;cursor:pointer}.btn-execute{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:hover{transform:translateY(-1px);filter:brightness(1.1)}.toast-notification{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{background:#10b981e6;color:#fff}.toast-notification.error{background:#ef4444e6;color:#fff}.toast-notification.info{background:#3b82f6e6;color:#fff}.toast-icon{font-size:1.2rem}.toast-msg{font-weight:500;font-size:.95rem}.toast-enter-active,.toast-leave-active{transition:all .4s cubic-bezier(.18,.89,.32,1.28)}.toast-enter-from{opacity:0;transform:translate(50px) scale(.9)}.toast-leave-to{opacity:0;transform:translateY(-20px) scale(.9)}.broker-status-bar{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.broker-status-indicator{display:flex;align-items:center;gap:.3rem}.broker-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.broker-dot-on{background:#10b981;animation:gateway-pulse 2s ease-in-out infinite}.broker-dot-off{background:#9ca3af}.broker-status-label{font-size:.75rem;color:#6b7280;white-space:nowrap}.btn-broker{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:hover:not(:disabled){background:#3b82f6;color:#fff}.btn-broker.connected{border-color:#ef4444;color:#ef4444}.btn-broker.connected:hover:not(:disabled){background:#ef4444;color:#fff}.btn-broker:disabled{opacity:.45;cursor:not-allowed}.gateway-status-dot-wrap{display:flex;align-items:center;gap:.3rem;flex-shrink:0;cursor:default;padding:0 .25rem}.gateway-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-online{background:#10b981;box-shadow:0 0 #10b98199;animation:gateway-pulse 2s ease-in-out infinite}.dot-offline{background:#9ca3af}@keyframes gateway-pulse{0%{box-shadow:0 0 #10b98199}60%{box-shadow:0 0 0 5px #10b98100}to{box-shadow:0 0 #10b98100}}.gateway-status-text{font-size:.75rem;font-weight:600;white-space:nowrap}.text-online{color:#059669}.text-offline{color:#9ca3af}.gateway-id-inputs{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.gateway-id-input{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:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.gateway-id-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.gateway-id-sep{font-size:1rem;color:#9ca3af;font-weight:600}.gateway-select-wrap{position:relative;display:flex;flex-direction:row;align-items:center;gap:.5rem;min-width:180px;max-width:220px;flex:1}.gateway-select{flex:1;width:0}.btn-manage-gateways{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:hover{background:#f3f4f6;color:#3b82f6;border-color:#d1d5db}.header-row{display:flex;align-items:flex-start;gap:1.5rem}.header-left-col{display:flex;flex-direction:column;gap:.25rem;min-width:140px}.header-status-summary{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:#6b7280;padding-left:2px;margin-top:2px}.status-row{display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;transition:all .3s ease}.status-dot.dot-on{background:#22c55e;box-shadow:0 0 6px #22c55e}.status-dot.dot-off{background:#9ca3af}.status-connected{color:#16a34a!important;font-weight:700!important}.status-label{display:inline-block;width:40px;text-align:justify;text-align-last:justify}.block-write-modal{background:var(--color-surface);width:760px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;border-radius:12px;border:1px solid var(--color-border);box-shadow:0 25px 60px #0006;overflow:hidden}.header-main{display:flex;flex-direction:column;gap:2px}.header-subtitle{font-size:.8rem;opacity:.8;font-weight:400}.block-form-body{position:relative;overflow-y:auto;padding:1.5rem}.block-fields-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.block-field-item{display:flex;flex-direction:column;gap:.5rem}.block-field-item label{font-size:.9rem;font-weight:600;color:var(--color-text-secondary)}.field-unit{font-weight:400;font-size:.8rem;opacity:.7}.field-scale{font-weight:400;font-size:.75rem;color:var(--color-primary);margin-left:4px;background:var(--color-primary-light);padding:0 4px;border-radius:3px}.field-input-wrapper input,.field-input-wrapper select{width:100%;padding:.6rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);font-size:1rem}.field-meta{font-size:.75rem;color:var(--color-text-muted);margin-top:4px;display:flex;justify-content:space-between;align-items:center}.meta-scale{color:var(--color-primary);font-weight:600}.block-write-hint{margin-top:2rem;padding:1rem;background:var(--color-surface-hover);border-left:4px solid var(--color-primary);border-radius:4px;font-size:.85rem;line-height:1.5;color:var(--color-text-secondary)}.block-loading-overlay{position:absolute;inset:0;background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.spinner{width:40px;height:40px;border:4px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-execute-block{padding:.7rem 2rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #667eea4d;transition:all .2s}.btn-execute-block:hover{filter:brightness(1.1);transform:translateY(-1px)}.modal-header.primary{background:var(--color-surface-hover);border-bottom:2px solid var(--color-primary)}.modal-footer{padding:1.25rem 1.5rem;background:var(--color-surface-hover);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:1rem}.header-actions[data-v-c76f802e]{display:flex;align-items:center;gap:16px}.btn-feature-toggle[data-v-c76f802e]{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;position:relative}.action-toggle-group[data-v-c76f802e]{display:flex;height:2.8rem;background:#fff;border:1px solid var(--color-primary);border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #667eea26}.toggle-btn[data-v-c76f802e]{flex:1;height:100%;padding:0 16px;border:none!important;border-radius:0!important;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;outline:none}.toggle-btn.main[data-v-c76f802e]{background:var(--color-primary);color:#fff}.toggle-btn.main[data-v-c76f802e]:hover{filter:brightness(1.1)}.toggle-btn[data-v-c76f802e]:disabled{background:var(--color-border)!important;color:var(--color-text-secondary)!important;cursor:not-allowed;opacity:.7;border-left-color:#ddd!important}.toggle-btn.secondary[data-v-c76f802e]{background:#fff;color:var(--color-primary)}.toggle-btn.secondary[data-v-c76f802e]:hover{background:#667eea0d}.toggle-btn.secondary[data-v-c76f802e]{border-left:1px solid var(--color-primary)!important}.btn-feature-toggle[data-v-c76f802e]:hover{background:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-primary)}.btn-feature-toggle.active[data-v-c76f802e]{background:#667eea1a;border-color:var(--color-primary);color:var(--color-primary)}.dot-active[data-v-c76f802e]{width:6px;height:6px;background:#48bb78;border-radius:50%;margin-left:4px;box-shadow:0 0 6px #48bb78;animation:blink-c76f802e 1.5s infinite}@keyframes blink-c76f802e{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.mode-switch-simple[data-v-c76f802e]{display:flex;background:var(--color-bg);padding:3px;border-radius:6px;border:1px solid var(--color-border);gap:2px}.mode-switch-simple .tab[data-v-c76f802e]:disabled{opacity:.5;cursor:not-allowed}.dropdown-trigger.disabled[data-v-c76f802e]{background:var(--color-bg-dim);color:var(--color-text-muted);cursor:not-allowed;border-color:var(--color-border)}.mode-switch-simple .tab[data-v-c76f802e]{border:none;padding:4px 12px;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;background:transparent;color:var(--color-text-secondary);transition:all .2s}.mode-switch-simple .tab.active[data-v-c76f802e]{background:var(--color-primary);color:#fff}.chart-wrapper[data-v-dda2417b]{position:relative;width:100%;height:300px;background:var(--color-bg-dim);border-radius:6px;margin-top:12px}.chart-container[data-v-dda2417b]{width:100%;height:100%}.chart-placeholder[data-v-dda2417b]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:var(--color-text-muted);font-size:.85rem;font-style:italic;pointer-events:none}.collection-content[data-v-3b5784a2]{padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem}.collection-control-row[data-v-3b5784a2]{display:flex;align-items:center;justify-content:flex-start;gap:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.control-group[data-v-3b5784a2]{display:flex;align-items:center;gap:8px}.dec-input-small.compact[data-v-3b5784a2]{width:80px;height:2.22rem;text-align:center;padding:0 8px}.main-actions[data-v-3b5784a2]{display:flex;align-items:center;gap:8px}.btn-action-main[data-v-3b5784a2]{padding:0 20px;height:2.22rem;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-action-main[data-v-3b5784a2]:hover{filter:brightness(1.1);box-shadow:0 2px 8px #667eea4d}.btn-action-main.active[data-v-3b5784a2]{background:#f56565}.export-group[data-v-3b5784a2]{display:flex;align-items:center;gap:0;border-radius:4px;overflow:hidden;border:1px solid var(--color-border)}.export-group .btn-action.secondary[data-v-3b5784a2]{border:none;border-radius:0;height:2.22rem}.export-main[data-v-3b5784a2]{padding:0 12px;border-right:1px solid var(--color-border)!important}.export-all[data-v-3b5784a2]{padding:0 8px;background:var(--color-bg-dim)!important;font-size:.75rem!important}.btn-action.secondary[data-v-3b5784a2]:hover{border-color:var(--color-primary);color:var(--color-primary)}.inline-monitor-list[data-v-3b5784a2]{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow-x:auto}.divider[data-v-3b5784a2]{width:1px;height:1.5rem;background:var(--color-border);margin:0 4px}.mini-chip-lite[data-v-3b5784a2]{flex-shrink:0;display:flex;align-items:center;gap:4px;background:var(--color-surface-hover);border:1px solid var(--color-border);padding:0 10px;height:2rem;border-radius:4px;font-size:.75rem;color:var(--color-text);white-space:nowrap}.mini-chip-lite .remove[data-v-3b5784a2]{cursor:pointer;color:var(--color-text-muted);font-size:1rem;line-height:1}.mini-chip-lite .remove[data-v-3b5784a2]:hover{color:#f56565}.btn-text-clear[data-v-3b5784a2]{background:transparent;border:none;color:var(--color-text-muted);font-size:.7rem;text-decoration:underline;cursor:pointer;white-space:nowrap}.compact-status[data-v-3b5784a2]{display:flex;align-items:center;gap:6px;background:#00000008;padding:0 12px;height:2.2rem;border-radius:6px;font-family:monospace;font-size:.85rem;font-weight:600}.dot-collecting[data-v-3b5784a2]{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse-3b5784a2 2s infinite;box-shadow:0 0 8px #10b98166}.is-stopped .dot-collecting[data-v-3b5784a2]{background:#9ca3af;animation:none;box-shadow:none}.compact-status[data-v-3b5784a2]{display:flex;align-items:center;gap:6px;padding:0 12px;height:32px;background:#10b9810d;border-radius:20px;font-size:.9rem;font-weight:600;border:1px solid rgba(16,185,129,.1);transition:all .3s}.compact-status.is-stopped[data-v-3b5784a2]{background:var(--color-bg-dim);border-color:var(--color-border);opacity:.8}.compact-status .num[data-v-3b5784a2]{font-family:var(--font-mono)}.compact-status .succ[data-v-3b5784a2]{color:#48bb78}.compact-status .err[data-v-3b5784a2]{color:#f56565}.mini-chip[data-v-3b5784a2]{flex-shrink:0;display:flex;align-items:center;gap:4px;background:var(--color-bg);border:1px solid var(--color-primary-dim);padding:0 8px;height:24px;border-radius:4px;font-size:.75rem;color:var(--color-primary);white-space:nowrap}.mini-chip .remove[data-v-3b5784a2]{cursor:pointer;opacity:.6}.mini-chip .remove[data-v-3b5784a2]:hover{opacity:1;color:#f56565}.dec-input-small[data-v-3b5784a2]{width:90px}.dec-input-large[data-v-3b5784a2]{width:100%}.visual-header[data-v-3b5784a2]{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);border-left:3px solid var(--color-primary);padding-left:8px;margin-top:10px}.collecting-tag[data-v-3b5784a2]{font-size:.75rem;color:#48bb78;margin-left:12px;animation:pulse-3b5784a2 2s infinite}@keyframes pulse-3b5784a2{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.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}.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}}.toast-enter-active,.toast-leave-active{transition:all .4s}.toast-enter-from{opacity:0;transform:translate(50px)}.toast-leave-to{opacity:0;transform:translateY(-20px)}.fade-slide-enter-active,.fade-slide-leave-active{transition:all .3s ease}.fade-slide-enter-from,.fade-slide-leave-to{opacity:0;transform:translateY(-10px)}.bacnet-scan-container[data-v-db8fd573]{display:flex;flex-direction:column;height:100%;background:var(--color-bg);color:var(--color-text);overflow:hidden}.top-toolbar[data-v-db8fd573]{height:48px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 1rem;gap:1rem;flex-shrink:0}.toolbar-group[data-v-db8fd573]{display:flex;align-items:center;gap:.5rem}.tool-btn[data-v-db8fd573]{display:flex;align-items:center;gap:.5rem;padding:.3rem .8rem;border-radius:4px;font-size:.85rem;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer}.tool-btn[data-v-db8fd573]:hover:not(:disabled){background:var(--color-surface-hover)}.tool-btn.connected[data-v-db8fd573]{color:#ef4444;border-color:#ef4444}.divider[data-v-db8fd573]{width:1px;height:20px;background:var(--color-border)}.toolbar-select[data-v-db8fd573],.toolbar-input[data-v-db8fd573]{height:28px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:0 .5rem;font-size:.85rem;color:var(--color-text)}.toolbar-input.small[data-v-db8fd573]{width:60px}.toolbar-input.tiny[data-v-db8fd573]{width:70px;height:28px}.toolbar-checkbox[data-v-db8fd573]{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-secondary)}.toolbar-checkbox input[type=checkbox][data-v-db8fd573]{width:14px;height:14px}.main-workspace[data-v-db8fd573]{flex:1;display:flex;flex-direction:column;min-height:0}.upper-layout[data-v-db8fd573]{flex:7;display:flex;min-height:0;border-bottom:1px solid var(--color-border)}.sidebar-tree[data-v-db8fd573]{width:280px;border-right:1px solid var(--color-border);display:flex;flex-direction:column;background:var(--color-surface);flex-shrink:0}.property-view[data-v-db8fd573]{width:550px;border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;background:var(--color-surface)}.side-logs[data-v-db8fd573]{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--color-bg)}.command-control-panel[data-v-db8fd573]{flex:3;display:flex;flex-direction:column;background:var(--color-surface);min-height:180px}.command-area-placeholder[data-v-db8fd573]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.view-header[data-v-db8fd573],.tree-header[data-v-db8fd573]{height:32px;background:#0000001a;display:flex;align-items:center;justify-content:space-between;padding:0 .75rem;gap:.5rem;font-size:.75rem;font-weight:600;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.header-left[data-v-db8fd573]{display:flex;align-items:center;gap:.5rem}.header-action-btn[data-v-db8fd573]{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:2px}.header-action-btn[data-v-db8fd573]:hover{background:#ffffff1a;color:#ef4444}.table-container[data-v-db8fd573],.log-table-container[data-v-db8fd573]{flex:1;overflow:auto}.property-table[data-v-db8fd573],.log-table[data-v-db8fd573]{width:100%;border-collapse:collapse}.property-table[data-v-db8fd573]{table-layout:fixed}.property-table th[data-v-db8fd573],.log-table th[data-v-db8fd573]{position:sticky;top:0;background:var(--color-surface);text-align:left;padding:.5rem;font-size:.75rem;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);z-index:10;white-space:nowrap}.property-table td[data-v-db8fd573],.log-table td[data-v-db8fd573]{padding:.4rem .5rem;font-size:.82rem;border-bottom:1px solid rgba(255,255,255,.02)}.prop-name[data-v-db8fd573]{color:var(--color-text-secondary);white-space:normal;font-size:.75rem;width:40%}.prop-value[data-v-db8fd573]{font-family:Consolas,monospace;color:#7dd3fc;white-space:normal;word-break:break-all;overflow-wrap:anywhere;line-height:1.4}.dir-tag[data-v-db8fd573]{font-size:.65rem;font-weight:700;padding:1px 4px;border-radius:2px}.dir-tag.tx[data-v-db8fd573]{background:#0ea5e933;color:#38bdf8}.dir-tag.rx[data-v-db8fd573]{background:#22c55e33;color:#4ade80}.log-table .hex[data-v-db8fd573]{font-family:Consolas,monospace;color:var(--color-text-secondary);word-break:break-all;opacity:.8}.empty-row[data-v-db8fd573]{text-align:center;padding:2rem!important;color:var(--color-text-secondary);font-style:italic;font-size:.8rem}.tree-content[data-v-db8fd573]{flex:1;overflow-y:auto;padding:.5rem}.tree-node .node-label[data-v-db8fd573]{display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem;cursor:pointer;font-size:.85rem;border-radius:4px;white-space:nowrap}.tree-node .node-label[data-v-db8fd573]:hover{background:#ffffff0d}.tree-node .node-label.selected[data-v-db8fd573]{background:var(--color-primary);color:#fff}.loading-text[data-v-db8fd573]{font-size:.75rem;color:var(--color-text-secondary);padding:.3rem .6rem;font-style:italic}.node-children[data-v-db8fd573]{padding-left:1rem}.node-label.object[data-v-db8fd573]{color:var(--color-text-secondary)}.node-label.object.selected[data-v-db8fd573]{color:#fff}.profile-library[data-v-fcadfde4]{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-fcadfde4]{height:calc(100vh - 80px)}}@media(max-width:768px){.profile-library[data-v-fcadfde4]{height:auto;min-height:100%;padding:.75rem;gap:.75rem}.library-header[data-v-fcadfde4]{flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}.actions[data-v-fcadfde4]{justify-content:space-between}.btn-import[data-v-fcadfde4],.btn-new[data-v-fcadfde4]{flex:1;text-align:center}.library-body[data-v-fcadfde4]{flex-direction:column;height:auto}.sidebar-tree[data-v-fcadfde4]{width:100%;height:300px;flex-shrink:0}.editor-panel[data-v-fcadfde4]{min-height:400px}.editor-toolbar[data-v-fcadfde4]{flex-direction:column;align-items:flex-start;gap:.75rem}.editor-actions[data-v-fcadfde4]{width:100%;justify-content:space-between}.editor-actions button[data-v-fcadfde4]{flex:1}}.library-header[data-v-fcadfde4]{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-fcadfde4]{margin:0;font-size:1.1rem;color:var(--color-text);font-weight:600}.actions[data-v-fcadfde4]{display:flex;gap:1rem}.btn-import[data-v-fcadfde4],.btn-new[data-v-fcadfde4]{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-fcadfde4]{background:var(--color-primary);color:#fff;border:none}.library-body[data-v-fcadfde4]{display:flex;flex:1;gap:1rem;min-height:0}.sidebar-tree[data-v-fcadfde4]{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-fcadfde4]{padding:1rem;border-bottom:1px solid var(--color-border)}.search-box input[data-v-fcadfde4]{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-fcadfde4]{flex:1;overflow-y:auto;padding:.5rem}.tree-node-header[data-v-fcadfde4]{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-fcadfde4]:hover{background:var(--color-surface-hover)}.root-node[data-v-fcadfde4]{font-weight:600}.series-node[data-v-fcadfde4]{color:var(--color-text-secondary)}.arrow-icon[data-v-fcadfde4]{font-size:.7rem;color:var(--color-text-secondary);width:1rem;text-align:center;transition:transform .2s}.tree-level-1[data-v-fcadfde4]{margin-bottom:.5rem}.level-1-children[data-v-fcadfde4]{margin-left:.7rem;padding-left:.5rem;border-left:1px dashed var(--color-border)}.tree-level-2[data-v-fcadfde4]{margin-top:.2rem}.level-2-children[data-v-fcadfde4]{margin-left:.7rem;padding-left:.5rem;border-left:1px dashed var(--color-border)}.tree-item[data-v-fcadfde4]{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-fcadfde4]:hover{background:var(--color-surface-hover);color:var(--color-text)}.tree-item.active[data-v-fcadfde4]{background:#667eea1a;color:var(--color-primary);font-weight:600}.empty-tree[data-v-fcadfde4]{padding:2rem;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.editor-panel[data-v-fcadfde4]{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-fcadfde4]{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-fcadfde4]{font-size:.85rem;font-weight:600;color:var(--color-text);word-break:break-all}.editor-actions[data-v-fcadfde4]{display:flex;gap:.8rem}.editor-actions button[data-v-fcadfde4]{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-fcadfde4]{background:#f5576c1a;color:var(--color-error)}.btn-export[data-v-fcadfde4]{background:var(--color-bg);border:1px solid var(--color-border)!important;color:var(--color-text)}.btn-save[data-v-fcadfde4]{background:var(--color-primary);color:#fff}.code-editor-wrapper[data-v-fcadfde4]{flex:1;display:flex;overflow:hidden;position:relative;background:#1e1e1e}.line-numbers[data-v-fcadfde4]{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-fcadfde4]{padding-right:8px}.json-textarea[data-v-fcadfde4]{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-fcadfde4]{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}.flasher-container[data-v-49a8cba8]{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.75rem;animation:fadeUp-49a8cba8 .3s ease-out}@keyframes fadeUp-49a8cba8{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.manifest-card[data-v-49a8cba8]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.card-header[data-v-49a8cba8]{display:flex;align-items:center;gap:.6rem}.card-header h3[data-v-49a8cba8]{margin:0;font-size:1rem;font-weight:600}.loading-tag[data-v-49a8cba8]{margin-left:.5rem;font-size:.72rem;color:var(--color-primary);background:#667eea1f;padding:.1rem .5rem;border-radius:4px}.manifest-details[data-v-49a8cba8]{display:flex;gap:2.5rem}.detail-item[data-v-49a8cba8]{display:flex;flex-direction:column;gap:.2rem}.detail-item .label[data-v-49a8cba8]{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.detail-item .value[data-v-49a8cba8]{font-weight:600;color:var(--color-text)}.value.accent[data-v-49a8cba8]{color:var(--color-primary);font-family:JetBrains Mono,monospace;font-size:1.15rem}.cache-badge[data-v-49a8cba8]{display:inline-block;font-size:.78rem;font-weight:500;padding:.15rem .6rem;border-radius:10px}.cache-badge.cached[data-v-49a8cba8]{background:#d1fae5;color:#065f46}.cache-badge.outdated[data-v-49a8cba8]{background:#fef3c7;color:#92400e}.cache-badge.none[data-v-49a8cba8]{background:#f3f4f6;color:#6b7280}.manifest-error[data-v-49a8cba8]{display:flex;align-items:center;gap:.5rem;font-size:.84rem;color:#dc2626}.main-workflow[data-v-49a8cba8]{display:grid;grid-template-columns:1.15fr 1fr;gap:1.5rem}.step-card[data-v-49a8cba8]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;position:relative;opacity:.55;transition:opacity .25s,border-color .25s,box-shadow .25s}.step-card.active[data-v-49a8cba8]{opacity:1;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea1a}.step-num[data-v-49a8cba8]{position:absolute;top:-13px;left:18px;background:var(--gradient-primary);color:#fff;font-weight:800;font-size:1rem;padding:.15rem .65rem;border-radius:6px;box-shadow:0 3px 8px #667eea59}.step-content h4[data-v-49a8cba8]{margin:.4rem 0 .6rem;font-size:1.15rem}.step-content>p[data-v-49a8cba8]{color:var(--color-text-secondary);font-size:.88rem;line-height:1.6;margin-bottom:1.75rem}.btn-connect[data-v-49a8cba8],.btn-flash[data-v-49a8cba8]{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem;border-radius:var(--radius-md);border:none;font-weight:600;cursor:pointer;transition:all .2s;font-size:.95rem}.btn-connect[data-v-49a8cba8]{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-border)}.btn-connect[data-v-49a8cba8]:hover:not(:disabled){background:var(--color-border);transform:translateY(-1px)}.btn-flash[data-v-49a8cba8]{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 14px #667eea4d}.btn-flash[data-v-49a8cba8]:hover{filter:brightness(1.08);transform:translateY(-1px)}.chip-card[data-v-49a8cba8]{margin-top:1.25rem;display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#667eea12,#764ba212);border:1px solid rgba(102,126,234,.25);border-radius:var(--radius-md);animation:slideUp-49a8cba8 .3s ease}@keyframes slideUp-49a8cba8{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chip-model[data-v-49a8cba8]{font-weight:700;color:var(--color-primary)}.chip-meta[data-v-49a8cba8]{font-size:.78rem;font-family:JetBrains Mono,monospace;opacity:.65}.disconnect-wrap[data-v-49a8cba8]{margin-top:1rem;text-align:center;animation:slideUp-49a8cba8 .3s ease}.btn-disconnect[data-v-49a8cba8]{display:inline-flex;align-items:center;gap:.4rem;background:#fef2f2;border:1px solid #fee2e2;color:#dc2626;font-size:.85rem;font-weight:500;cursor:pointer;padding:.4rem .8rem;border-radius:6px;transition:all .2s}.btn-disconnect[data-v-49a8cba8]:hover{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.progress-wrap[data-v-49a8cba8]{margin-top:1.75rem}.progress-header[data-v-49a8cba8]{display:flex;justify-content:space-between;font-size:.83rem;margin-bottom:.5rem}.pct[data-v-49a8cba8]{font-weight:700;color:var(--color-primary)}.progress-bg[data-v-49a8cba8]{height:10px;background:var(--color-surface-hover);border-radius:5px;overflow:hidden}.progress-fill[data-v-49a8cba8]{height:100%;background:var(--gradient-primary);transition:width .15s linear}.success-wrap[data-v-49a8cba8]{text-align:center;padding:.75rem 0;animation:popIn-49a8cba8 .4s cubic-bezier(.34,1.56,.64,1)}@keyframes popIn-49a8cba8{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.pulse-ring[data-v-49a8cba8]{display:inline-flex;padding:1.25rem;background:#ecfdf5;border-radius:50%;margin-bottom:1rem;animation:ringPulse-49a8cba8 2s infinite}@keyframes ringPulse-49a8cba8{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 14px #10b98100}to{box-shadow:0 0 #10b98100}}.success-msg[data-v-49a8cba8]{font-weight:600;margin-bottom:.4rem;color:#059669}.success-sub[data-v-49a8cba8]{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:1.25rem}.btn-next[data-v-49a8cba8]{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--color-border);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.88rem;transition:background .2s}.btn-next[data-v-49a8cba8]:hover{background:var(--color-surface-hover)}.error-wrap[data-v-49a8cba8]{margin-top:1.5rem;display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;background:#fff5f5;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.84rem}.btn-retry[data-v-49a8cba8]{margin-left:auto;background:#dc2626;color:#fff;border:none;padding:.25rem .7rem;border-radius:4px;font-size:.75rem;cursor:pointer;white-space:nowrap}.icon-primary[data-v-49a8cba8]{color:var(--color-primary)}.icon-success[data-v-49a8cba8]{margin-left:auto;color:#10b981}.guide-card[data-v-49a8cba8]{background:var(--color-surface);border:1px dashed rgba(102,126,234,.4);border-radius:var(--radius-lg);padding:1.75rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.guide-header[data-v-49a8cba8]{margin-bottom:.2rem}.guide-steps[data-v-49a8cba8]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.guide-step[data-v-49a8cba8]{display:flex;gap:1rem;background:var(--color-surface);padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 2px 8px #00000008}.guide-icon[data-v-49a8cba8]{background:linear-gradient(135deg,#667eea1a,#764ba21a);color:var(--color-primary);width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.guide-text h4[data-v-49a8cba8]{margin:0 0 .5rem;font-size:.95rem;font-weight:700;color:var(--color-text)}.guide-text p[data-v-49a8cba8]{margin:0;font-size:.8rem;line-height:1.6;color:var(--color-text-secondary)}.highlight[data-v-49a8cba8]{background:var(--color-surface-hover);padding:.15rem .4rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-weight:600;color:var(--color-primary)}.desktop-layout[data-v-01f02ca0]{display:flex;width:100vw;height:100vh;background:var(--color-bg);overflow:hidden}.main-content[data-v-01f02ca0]{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-header[data-v-01f02ca0]{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);position:relative}.view-title[data-v-01f02ca0]{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0}.error-badge[data-v-01f02ca0]{display:flex;align-items:center;gap:8px;background:#fff5f5;border:1px solid #feb2b2;color:#c53030;padding:4px 16px;border-radius:9999px;font-size:.85rem;cursor:pointer;transition:all .2s ease;animation:fadeInDown-01f02ca0 .3s ease-out;box-shadow:0 2px 10px #c530301a;white-space:nowrap;z-index:100}.centered-header-badge[data-v-01f02ca0]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.error-badge[data-v-01f02ca0]:hover{background:#fed7d7;transform:translate(-50%,-52%)}.error-badge .close-btn[data-v-01f02ca0]{font-size:1.2rem;line-height:1;opacity:.6;margin-left:4px}@keyframes fadeInDown-01f02ca0{0%{opacity:0;transform:translate(-50%,-100%)}to{opacity:1;transform:translate(-50%,-50%)}}.content-body[data-v-01f02ca0]{flex:1;overflow-y:auto;padding:2rem}.placeholder-view[data-v-01f02ca0]{display:flex;justify-content:center;align-items:center;height:100%;color:var(--color-text-secondary)}.fade-enter-active[data-v-01f02ca0],.fade-leave-active[data-v-01f02ca0]{transition:opacity .2s ease}.fade-enter-from[data-v-01f02ca0],.fade-leave-to[data-v-01f02ca0]{opacity:0}body{margin:0;background:var(--color-bg)}
