#serial-panel[data-v-fed2f4eb]{padding:4px 0}#serial-panel .serial-unsupported[data-v-fed2f4eb]{text-align:center;color:#ef4444;padding:8px;font-size:12px}#serial-panel .serial-diag[data-v-fed2f4eb]{color:#6a7a9a;margin-top:4px;font-size:11px;line-height:1.5}#serial-panel .btn-open-tab[data-v-fed2f4eb]{color:#fff;background:#3b82f6;margin-top:8px;padding:4px 12px}#serial-panel .btn-open-tab[data-v-fed2f4eb]:hover{background:#2563eb}#serial-panel .serial-config[data-v-fed2f4eb]{background:#1e293b99;border-radius:4px;margin-bottom:6px;padding:6px}#serial-panel .serial-row[data-v-fed2f4eb]{align-items:center;gap:4px;margin-bottom:4px;display:flex}#serial-panel .serial-label[data-v-fed2f4eb]{color:#89c;min-width:42px;font-size:12px}#serial-panel .serial-select[data-v-fed2f4eb],#serial-panel .serial-input[data-v-fed2f4eb]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;outline:none;flex:1;padding:2px 4px;font-size:12px}#serial-panel .serial-select[data-v-fed2f4eb]:focus,#serial-panel .serial-input[data-v-fed2f4eb]:focus{border-color:#3b82f6}#serial-panel .serial-select[data-v-fed2f4eb]:disabled,#serial-panel .serial-input[data-v-fed2f4eb]:disabled{opacity:.5}#serial-panel .btn-serial[data-v-fed2f4eb]{cursor:pointer;border:none;border-radius:3px;padding:3px 8px;font-size:12px;font-weight:500}#serial-panel .btn-connect[data-v-fed2f4eb]{color:#fff;background:#3b82f6}#serial-panel .btn-connect[data-v-fed2f4eb]:hover{background:#2563eb}#serial-panel .btn-disconnect[data-v-fed2f4eb]{color:#fff;background:#ef4444}#serial-panel .btn-disconnect[data-v-fed2f4eb]:hover{background:#dc2626}#serial-panel .btn-add-port[data-v-fed2f4eb]{color:#fff;background:#64748b;min-width:24px;padding:2px 6px;font-weight:700}#serial-panel .btn-add-port[data-v-fed2f4eb]:hover{background:#475569}#serial-panel .btn-add-port[data-v-fed2f4eb]:disabled{opacity:.4;cursor:not-allowed}#serial-panel .serial-status-bar[data-v-fed2f4eb]{color:#64748b;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:flex}#serial-panel .serial-status-dot[data-v-fed2f4eb]{background:#64748b;border-radius:50%;width:8px;height:8px}#serial-panel .serial-status-dot.connected[data-v-fed2f4eb]{background:#10b981;box-shadow:0 0 6px #10b98199}#serial-panel .serial-status-dot.connecting[data-v-fed2f4eb]{background:#f59e0b}#serial-panel .serial-status-dot.error[data-v-fed2f4eb]{background:#ef4444}#serial-panel .binding-item[data-v-fed2f4eb]{background:#1e293b99;border-left:3px solid #e8890c;border-radius:3px;flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:3px;padding:2px;display:flex}#serial-panel .binding-select[data-v-fed2f4eb],#serial-panel .binding-input-sm[data-v-fed2f4eb],#serial-panel .binding-select-sm[data-v-fed2f4eb]{box-sizing:border-box}#serial-panel .binding-select[data-v-fed2f4eb]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;flex:1;min-width:100px;padding:1px 2px;font-size:12px}#serial-panel .binding-var-name[data-v-fed2f4eb]{color:#f59e0b;min-width:40px;font-size:12px}#serial-panel .binding-input-sm[data-v-fed2f4eb]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;width:48px;padding:1px 2px;font-size:12px}#serial-panel .binding-select-sm[data-v-fed2f4eb]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;width:76px;padding:1px 2px;font-size:12px}#serial-panel .card[data-v-fed2f4eb]{background:#1e293b99;border:1px solid #94a3b826;border-radius:6px;padding:4px}#serial-panel .batch-actions[data-v-fed2f4eb]{gap:2px;margin-bottom:4px;display:flex}#serial-panel .btn[data-v-fed2f4eb]{cursor:pointer;border:none;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:500}#serial-panel .btn-xs[data-v-fed2f4eb]{padding:1px 4px}#serial-panel .btn-success[data-v-fed2f4eb]{color:#fff;background:#10b981}#serial-panel .btn-danger[data-v-fed2f4eb]{color:#fff;background:#ef4444}#serial-panel .empty-state[data-v-fed2f4eb]{text-align:center;color:#64748b;padding:8px;font-size:12px}#serial-panel .list-summary[data-v-fed2f4eb]{cursor:pointer;color:#89c;background:#2a3a584d;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:4px 8px;font-size:12px;font-weight:500;display:flex}#serial-panel .summary-count[data-v-fed2f4eb]{color:#6a7a9a}#serial-panel .list-content[data-v-fed2f4eb]{margin-bottom:6px}#plc-modbus-panel[data-v-7dc5d6e6]{flex-direction:column;gap:2px;margin-top:2px;padding:2px;display:flex}.mb-toggle-row[data-v-7dc5d6e6]{justify-content:space-between;align-items:center;display:flex}.mb-title[data-v-7dc5d6e6]{color:#60a5fa;font-size:12px;font-weight:600}.mb-fold-arrow[data-v-7dc5d6e6]{color:#38bdf8;width:12px;font-size:10px;display:inline-block}.mb-switch[data-v-7dc5d6e6]{width:34px;height:18px;display:inline-block;position:relative}.mb-switch input[data-v-7dc5d6e6]{opacity:0;width:0;height:0}.mb-slider[data-v-7dc5d6e6]{cursor:pointer;background:#334155;border-radius:18px;transition:background .2s;position:absolute;inset:0}.mb-slider[data-v-7dc5d6e6]:before{content:"";background:#e2e8f0;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:2px;left:2px}.mb-switch input:checked+.mb-slider[data-v-7dc5d6e6]{background:#10b981}.mb-switch input:checked+.mb-slider[data-v-7dc5d6e6]:before{transform:translate(16px)}.mb-switch input:disabled+.mb-slider[data-v-7dc5d6e6]{opacity:.5;cursor:not-allowed}#plc-modbus-panel .serial-config[data-v-7dc5d6e6]{background:#1e293b99;border-radius:4px;padding:2px}#plc-modbus-panel .serial-row[data-v-7dc5d6e6]{align-items:center;gap:4px;margin-bottom:2px;display:flex}#plc-modbus-panel .serial-row[data-v-7dc5d6e6]:last-child{margin-bottom:0}#plc-modbus-panel .serial-label[data-v-7dc5d6e6]{color:#89c;min-width:42px;font-size:12px}#plc-modbus-panel .serial-select[data-v-7dc5d6e6],#plc-modbus-panel .serial-input[data-v-7dc5d6e6]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;outline:none;flex:1;padding:2px 4px;font-size:12px}#plc-modbus-panel .serial-select[data-v-7dc5d6e6]:focus,#plc-modbus-panel .serial-input[data-v-7dc5d6e6]:focus{border-color:#3b82f6}#plc-modbus-panel .serial-select[data-v-7dc5d6e6]:disabled,#plc-modbus-panel .serial-input[data-v-7dc5d6e6]:disabled{opacity:.5}#plc-modbus-panel .binding-item[data-v-7dc5d6e6]{background:#1e293b99;border-left:3px solid #e8890c;border-radius:3px;flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:3px;padding:2px;display:flex}#plc-modbus-panel .binding-select[data-v-7dc5d6e6],#plc-modbus-panel .binding-input-sm[data-v-7dc5d6e6],#plc-modbus-panel .binding-select-sm[data-v-7dc5d6e6]{box-sizing:border-box}#plc-modbus-panel .binding-select[data-v-7dc5d6e6]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;flex:1;min-width:100px;padding:1px 2px;font-size:12px}#plc-modbus-panel .binding-var-name[data-v-7dc5d6e6]{color:#f59e0b;min-width:40px;font-size:12px}#plc-modbus-panel .binding-input-sm[data-v-7dc5d6e6]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;width:48px;padding:1px 2px;font-size:12px}#plc-modbus-panel .binding-select-sm[data-v-7dc5d6e6]{color:#e2e8f0;background:#0f172acc;border:1px solid #94a3b84d;border-radius:3px;width:76px;padding:1px 2px;font-size:12px}#plc-modbus-panel select[data-v-7dc5d6e6]:disabled,#plc-modbus-panel input[data-v-7dc5d6e6]:disabled{opacity:.5;cursor:not-allowed}#plc-modbus-panel .card[data-v-7dc5d6e6]{background:#1e293b99;border:1px solid #94a3b826;border-radius:6px;padding:2px}#plc-modbus-panel .batch-actions[data-v-7dc5d6e6]{gap:1px;margin-bottom:2px;display:flex}#plc-modbus-panel .btn[data-v-7dc5d6e6]{cursor:pointer;border:none;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:500}#plc-modbus-panel .btn-xs[data-v-7dc5d6e6]{padding:1px 4px}#plc-modbus-panel .btn-success[data-v-7dc5d6e6]{color:#fff;background:#10b981}#plc-modbus-panel .btn-danger[data-v-7dc5d6e6]{color:#fff;background:#ef4444}#plc-modbus-panel .btn[data-v-7dc5d6e6]:disabled{opacity:.5;cursor:not-allowed}#plc-modbus-panel .empty-state[data-v-7dc5d6e6]{text-align:center;color:#64748b;padding:8px;font-size:12px}#plc-modbus-panel .list-summary[data-v-7dc5d6e6]{cursor:pointer;color:#89c;background:#2a3a584d;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:4px 8px;font-size:12px;font-weight:500;display:flex}#plc-modbus-panel .summary-count[data-v-7dc5d6e6]{color:#6a7a9a}#plc-modbus-panel .list-content[data-v-7dc5d6e6]{margin-bottom:6px}#comm-panel[data-v-a0ed63d0]{padding:8px 0}#comm-panel .status-bar[data-v-a0ed63d0]{color:#64748b;background:#1e293b99;border-radius:4px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 8px;display:flex}#comm-panel .status-dot[data-v-a0ed63d0]{background:#ef4444;border-radius:50%;width:8px;height:8px;transition:background .3s}#comm-panel .status-dot.connected[data-v-a0ed63d0]{background:#10b981;box-shadow:0 0 6px #10b98199}#comm-panel .var-count[data-v-a0ed63d0]{color:#64748b;margin-left:auto}#comm-panel .comm-component-card.active[data-v-a0ed63d0]{border-color:#4a8aff;box-shadow:0 0 0 1px #4a8aff66}#comm-panel .comm-confirm-overlay[data-v-a0ed63d0]{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#comm-panel .comm-confirm-box[data-v-a0ed63d0]{background:#1a2a4a;border:1px solid #3a4a6a;border-radius:6px;width:90%;max-width:260px;overflow:hidden}#comm-panel .comm-confirm-box h4[data-v-a0ed63d0]{color:#89c;background:#2a3a6a;border-bottom:1px solid #2a3a5a;margin:0;padding:8px 12px;font-size:13px}#comm-panel .comm-confirm-body[data-v-a0ed63d0]{padding:10px 12px}#comm-panel .modal-confirm-text[data-v-a0ed63d0]{color:#cfd8ff;margin:0 0 6px;font-size:13px;line-height:1.5}#comm-panel .modal-confirm-warning[data-v-a0ed63d0]{color:#e6a23c;margin:0;font-size:12px}#comm-panel .comm-confirm-footer[data-v-a0ed63d0]{background:#0a0e1880;justify-content:flex-end;gap:6px;padding:8px 12px;display:flex}#comm-panel .comm-confirm-footer button[data-v-a0ed63d0]{cursor:pointer;border-radius:3px;width:auto;margin:0;padding:4px 12px;font-size:12px}#comm-panel .comm-confirm-footer .btn-cancel[data-v-a0ed63d0]{color:#89a;background:#3a3a4a;border-color:#4a4a5a}#comm-panel .comm-confirm-footer .btn-cancel[data-v-a0ed63d0]:hover{background:#4a4a5a}#comm-panel .comm-confirm-footer .btn-confirm[data-v-a0ed63d0]{color:#6aff8a;background:#2a5a3a;border-color:#3a7a4a}#comm-panel .comm-confirm-footer .btn-confirm[data-v-a0ed63d0]:hover{background:#3a7a4a}#comm-panel .comm-confirm-footer .btn-confirm-danger[data-v-a0ed63d0]{color:#ff8a8a;background:#5a2a2a;border-color:#7a3a3a}#comm-panel .comm-confirm-footer .btn-confirm-danger[data-v-a0ed63d0]:hover{background:#7a3a3a}#comm-panel .comm-component-list[data-v-a0ed63d0]{margin-bottom:12px}#comm-panel .comm-component-card[data-v-a0ed63d0]{background:#0f172a99;border:1px solid #4755694d;border-radius:6px;margin-bottom:8px}#comm-panel .comm-card-header[data-v-a0ed63d0]{background:#2a3a5880;border-radius:6px 6px 0 0;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;display:flex}#comm-panel .comm-name-input[data-v-a0ed63d0]{color:#e2e8f0;background:#1e293bcc;border:1px solid #94a3b84d;border-radius:3px;outline:none;flex:1;padding:3px 6px}#comm-panel .comm-name-input[data-v-a0ed63d0]:focus{border-color:#3b82f6}#comm-panel .comm-type-badge[data-v-a0ed63d0]{white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:11px;font-weight:600}#comm-panel .comm-type-badge.badge-api[data-v-a0ed63d0]{color:#60a5fa;background:#3b82f62e;border:1px solid #3b82f659}#comm-panel .comm-type-badge.badge-serial-master[data-v-a0ed63d0]{color:#34d399;background:#10b9812e;border:1px solid #10b98159}#comm-panel .comm-type-badge.badge-serial-slave[data-v-a0ed63d0]{color:#f59e0b;background:#e8890c2e;border:1px solid #e8890c59}#comm-panel .comm-component-card.serial-card>.comm-card-body[data-v-a0ed63d0]{padding:4px 6px 6px}#comm-panel .comm-component-card.serial-card>.comm-card-body #serial-panel[data-v-a0ed63d0]{padding:0}#comm-panel .comm-card-body[data-v-a0ed63d0]{padding:1px}#comm-panel .section[data-v-a0ed63d0]{margin-bottom:10px}#comm-panel .section[data-v-a0ed63d0]:last-child{margin-bottom:0}#comm-panel .section-header[data-v-a0ed63d0]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}#comm-panel .section-title[data-v-a0ed63d0]{color:#89c;font-weight:600}#comm-panel .section-count[data-v-a0ed63d0]{color:#6a7a9a}#comm-panel .section-actions[data-v-a0ed63d0]{gap:4px;display:flex}#comm-panel .btn[data-v-a0ed63d0]{cursor:pointer;border:none;border-radius:3px;padding:3px 6px;font-weight:500;transition:background .15s}#comm-panel .btn-sm[data-v-a0ed63d0]{padding:2px 4px}#comm-panel .btn-xs[data-v-a0ed63d0]{padding:1px 3px}#comm-panel .btn-primary[data-v-a0ed63d0]{color:#fff;background:#3b82f6}#comm-panel .btn-primary[data-v-a0ed63d0]:hover{background:#2563eb}#comm-panel .btn-secondary[data-v-a0ed63d0]{color:#e2e8f0;background:#475569}#comm-panel .btn-secondary[data-v-a0ed63d0]:hover{background:#334155}#comm-panel .btn-success[data-v-a0ed63d0]{color:#fff;background:#10b981}#comm-panel .btn-success[data-v-a0ed63d0]:hover{background:#059669}#comm-panel .btn-danger[data-v-a0ed63d0]{color:#fff;background:#ef4444}#comm-panel .btn-danger[data-v-a0ed63d0]:hover{background:#dc2626}#comm-panel .card[data-v-a0ed63d0]{background:#1e293b99;border:1px solid #94a3b826;border-radius:6px;padding:1px}#comm-panel .batch-actions[data-v-a0ed63d0]{gap:1px;margin-bottom:2px;display:flex}#comm-panel .variable-list[data-v-a0ed63d0]{resize:vertical;background:#0f172a99;border-radius:4px;min-height:60px;max-height:300px;padding:1px;overflow-y:auto}#comm-panel .empty-state[data-v-a0ed63d0]{text-align:center;color:#64748b;padding:1px}#comm-panel .variable-item[data-v-a0ed63d0]{background:#1e293b99;border-left:3px solid #3b82f6;border-radius:4px;justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;padding:1px;display:flex}#comm-panel .variable-item[data-v-a0ed63d0]:last-child{margin-bottom:0}#comm-panel .var-info[data-v-a0ed63d0]{flex:1;min-width:0}#comm-panel .var-name[data-v-a0ed63d0]{color:#f1f5f9;text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}#comm-panel .var-type[data-v-a0ed63d0]{color:#6a7a9a;display:block}#comm-panel .var-value[data-v-a0ed63d0]{color:#10b981;text-align:right;min-width:40px;font-weight:600}#comm-panel .var-value-input[data-v-a0ed63d0]{color:#10b981;text-align:right;background:#1e293bcc;border:1px solid #3a4a5a;border-radius:3px;width:60px;padding:1px 4px;font-size:12px;font-weight:600}#comm-panel .var-value-input[data-v-a0ed63d0]:focus{border-color:#4a8aff;outline:none}#comm-panel .var-value-input[data-v-a0ed63d0]:disabled{opacity:.5;cursor:not-allowed}#comm-panel .plc-binding[data-v-a0ed63d0]{color:#f59e0b}#comm-panel .binding-select[data-v-a0ed63d0]{color:#e2e8f0;cursor:pointer;background:#1e293bcc;border:1px solid #94a3b84d;border-radius:3px;min-width:100px;padding:2px 4px}#comm-panel .binding-select[data-v-a0ed63d0]:focus{border-color:#3b82f6;outline:none}#comm-panel .list-summary[data-v-a0ed63d0]{cursor:pointer;color:#89c;background:#2a3a584d;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:6px 8px;font-weight:500;display:flex}#comm-panel .summary-count[data-v-a0ed63d0]{color:#6a7a9a}#comm-panel .list-content[data-v-a0ed63d0]{margin-bottom:8px}.log-filter[data-v-a0ed63d0]{gap:4px;margin-bottom:6px;display:flex}.log-filter-btn[data-v-a0ed63d0]{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:4px;flex:1;padding:3px 0;font-size:12px;line-height:1.4;transition:all .15s}.log-filter-btn[data-v-a0ed63d0]:hover{color:#dbeafe;border-color:#3b82f6}.log-filter-btn.active[data-v-a0ed63d0]{color:#fff;background:#1e40af;border-color:#3b82f6}#comm-panel .log-container[data-v-a0ed63d0]{resize:vertical;background:#0f172ae6;border-radius:4px;min-height:60px;max-height:300px;padding:1px;overflow-y:auto}#comm-panel .log-item[data-v-a0ed63d0]{color:#94a3b8;align-items:center;gap:6px;padding:2px 0 2px 12px;display:flex;position:relative}#comm-panel .log-item[data-v-a0ed63d0]:before{content:">";color:#3b82f6;position:absolute;left:0}#comm-panel .log-item.send[data-v-a0ed63d0]{color:#3b82f6}#comm-panel .log-item.receive[data-v-a0ed63d0]{color:#10b981}#comm-panel .log-item.error[data-v-a0ed63d0]{color:#ef4444}#comm-panel .log-item.success[data-v-a0ed63d0]{color:#10b981}#comm-panel .log-item.warning[data-v-a0ed63d0]{color:#f59e0b}#comm-panel .log-time[data-v-a0ed63d0]{color:#64748b;min-width:55px}#comm-panel .log-content[data-v-a0ed63d0]{flex:1}#comm-panel .quick-write[data-v-a0ed63d0]{gap:4px;display:flex}#comm-panel .quick-write .form-control[data-v-a0ed63d0]{color:#e2e8f0;background:#1e293bcc;border:1px solid #94a3b84d;border-radius:3px;flex:1;padding:3px 4px}#comm-panel .quick-write .form-control[data-v-a0ed63d0]:focus{border-color:#3b82f6;outline:none}#comm-panel .quick-write button[data-v-a0ed63d0]{flex-shrink:0}#comm-panel .modal-overlay[data-v-a0ed63d0]{z-index:2000;background:#000000b3;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#comm-panel .modal-overlay.open[data-v-a0ed63d0]{display:flex}#comm-panel .modal[data-v-a0ed63d0]{background:#1e293b;border:1px solid #94a3b833;border-radius:8px;width:90%;max-width:320px;padding:16px}#comm-panel .modal h3[data-v-a0ed63d0]{color:#f1f5f9;margin-bottom:12px}#comm-panel .modal-footer[data-v-a0ed63d0]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}#comm-panel .form-group[data-v-a0ed63d0]{margin-bottom:10px}#comm-panel .form-group label[data-v-a0ed63d0]{color:#94a3b8;margin-bottom:4px;display:block}#comm-panel .form-group .form-control[data-v-a0ed63d0]{width:100%}.modal-overlay[data-v-b0267b90]{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-box[data-v-b0267b90]{background:#1a2a4a;border:1px solid #3a4a6a;border-radius:6px;width:90%;max-width:260px;overflow:hidden}.modal-box h4[data-v-b0267b90]{color:#89c;background:#2a3a6a;border-bottom:1px solid #2a3a5a;margin:0;padding:8px 12px;font-size:13px}.auth-tabs[data-v-b0267b90]{border-bottom:1px solid #2a3a5a;display:flex}.auth-tabs .tab-item[data-v-b0267b90]{color:#78a;cursor:pointer;background:0 0;border:none;flex:1;padding:5px 0;font-size:12px}.auth-tabs .tab-item.active[data-v-b0267b90]{color:#cfd8ff;background:#4a8aff26}.modal-body[data-v-b0267b90]{padding:10px 12px}.modal-body label[data-v-b0267b90]{color:#89b;margin-bottom:4px;font-size:11px;display:block}.modal-input[data-v-b0267b90]{color:#cfd8ff;box-sizing:border-box;background:#1a2030;border:1px solid #3a4a6a;border-radius:4px;width:100%;margin-bottom:8px;padding:5px 8px;font-size:12px}.modal-input[data-v-b0267b90]:focus{border-color:#4a8aff;outline:none}.auth-error[data-v-b0267b90]{color:#ff6a6a;margin-bottom:4px;font-size:11px}.modal-footer[data-v-b0267b90]{background:#0a0e1880;justify-content:flex-end;gap:6px;padding:8px 12px;display:flex}.modal-footer button[data-v-b0267b90]{width:auto;margin:0;padding:4px 12px;font-size:12px}.modal-footer .btn-cancel[data-v-b0267b90]{color:#89a;background:#3a3a4a;border-color:#4a4a5a}.modal-footer .btn-cancel[data-v-b0267b90]:hover{background:#4a4a5a}.modal-footer .btn-confirm[data-v-b0267b90]{color:#6aff8a;background:#2a5a3a;border-color:#3a7a4a}.modal-footer .btn-confirm[data-v-b0267b90]:hover{background:#3a7a4a}.modal-overlay[data-v-bc053fe1]{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-box[data-v-bc053fe1]{background:#1a2a4a;border:1px solid #3a4a6a;border-radius:6px;width:90%;max-width:340px;overflow:hidden}.modal-box h4[data-v-bc053fe1]{color:#89c;background:#2a3a6a;border-bottom:1px solid #2a3a5a;margin:0;padding:8px 12px;font-size:13px}.modal-body[data-v-bc053fe1]{padding:10px 12px}.admin-tip[data-v-bc053fe1]{color:#89b;padding:4px 0;font-size:11px}.auth-error[data-v-bc053fe1]{color:#ff6a6a;margin-bottom:4px;font-size:11px}.user-list[data-v-bc053fe1]{max-height:280px;overflow-y:auto}.user-item[data-v-bc053fe1]{border-bottom:1px solid #2a3a5a;flex-direction:column;gap:5px;padding:6px 0;display:flex}.user-item[data-v-bc053fe1]:last-child{border-bottom:none}.user-item.is-disabled .user-email[data-v-bc053fe1]{opacity:.55;text-decoration:line-through}.user-info[data-v-bc053fe1]{align-items:center;gap:6px;min-width:0;display:flex}.user-email[data-v-bc053fe1]{color:#cfd8ff;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.self-tag[data-v-bc053fe1]{color:#89b}.role-badge[data-v-bc053fe1]{border-radius:3px;flex:none;padding:1px 5px;font-size:10px}.role-badge.is-admin[data-v-bc053fe1]{color:#6aff8a;background:#6aff8a26;border:1px solid #3a7a4a}.role-badge.is-user[data-v-bc053fe1]{color:#89c;background:#8899cc1f;border:1px solid #3a4a6a}.status-badge[data-v-bc053fe1]{color:#ff8a8a;background:#ff6a6a1f;border:1px solid #7a3a3a;border-radius:3px;flex:none;padding:1px 5px;font-size:10px}.user-actions[data-v-bc053fe1]{gap:6px;display:flex}.btn-role[data-v-bc053fe1]{color:#aab8dd;cursor:pointer;background:#2a3a5a;border:1px solid #3a4a6a;border-radius:4px;flex:none;padding:3px 8px;font-size:11px}.btn-role[data-v-bc053fe1]:hover:not(:disabled){color:#cfd8ff;background:#35486e}.btn-role[data-v-bc053fe1]:disabled{opacity:.45;cursor:not-allowed}.btn-danger[data-v-bc053fe1]{color:#ff8a8a;cursor:pointer;background:#ff6a6a1f;border:1px solid #7a3a3a;border-radius:4px;flex:none;padding:3px 8px;font-size:11px}.btn-danger[data-v-bc053fe1]:hover:not(:disabled){color:#ffb0b0;background:#ff6a6a38}.btn-danger[data-v-bc053fe1]:disabled{opacity:.45;cursor:not-allowed}.modal-footer[data-v-bc053fe1]{background:#0a0e1880;justify-content:flex-end;gap:6px;padding:8px 12px;display:flex}.modal-footer button[data-v-bc053fe1]{width:auto;margin:0;padding:4px 12px;font-size:12px}.modal-footer .btn-cancel[data-v-bc053fe1]{color:#89a;background:#3a3a4a;border-color:#4a4a5a}.modal-footer .btn-cancel[data-v-bc053fe1]:hover{background:#4a4a5a}#panel[data-v-ef54fc06]{color:#cfd8ff;z-index:1000;box-sizing:border-box;pointer-events:auto;background:#141828d9;border:1px solid #3a4a6a;border-radius:8px;width:260px;padding:0;position:fixed;overflow:hidden}#panel .title-bar[data-v-ef54fc06]{cursor:grab;-webkit-user-select:none;user-select:none;background:#2a3a5880;border-bottom:1px solid #2a3a5a;flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex;position:relative}#panel .title-bar[data-v-ef54fc06]:active{cursor:grabbing}#panel .title-bar h3[data-v-ef54fc06]{color:#89c;text-overflow:ellipsis;white-space:nowrap;border-bottom:none;flex:1;margin:0;padding-bottom:0;overflow:hidden}#panel .title-bar .close-btn[data-v-ef54fc06]{color:#ff6a6a;cursor:pointer;background:#ff4a4a26;border:1px solid #ff4a4a66;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;width:24px!important;min-width:24px!important;max-width:24px!important;height:24px!important;margin-left:auto!important;padding:0!important}#panel .title-bar .close-btn[data-v-ef54fc06]:hover{background:#ff4a4a4d;border-color:#ff4a4a}#panel .title-bar .icon-close[data-v-ef54fc06]{width:12px;height:12px;display:block;position:relative}#panel .title-bar .icon-close[data-v-ef54fc06]:before,#panel .title-bar .icon-close[data-v-ef54fc06]:after{content:"";background:currentColor;border-radius:1px;width:12px;height:2px;position:absolute;top:50%;left:50%}#panel .title-bar .icon-close[data-v-ef54fc06]:before{transform:translate(-50%,-50%)rotate(45deg)}#panel .title-bar .icon-close[data-v-ef54fc06]:after{transform:translate(-50%,-50%)rotate(-45deg)}#panel .title-bar .reset-btn[data-v-ef54fc06]{flex-shrink:0;width:54px!important;min-width:54px!important;max-width:24px!important;height:24px!important;margin-left:auto!important;padding:0!important}#panel .title-bar .help-btn[data-v-ef54fc06]{color:#89c;cursor:pointer;background:#2a3a6a;border:1px solid #3a4a6a;border-radius:4px;flex-shrink:0;width:24px!important;min-width:24px!important;max-width:24px!important;height:24px!important;margin-left:4px!important;padding:0!important}#panel .title-bar .help-btn[data-v-ef54fc06]:hover{color:#4a8aff;background:#3a4a8a}#panel .panel-content[data-v-ef54fc06]{scrollbar-width:thin;scrollbar-color:#4a5a7a #1a2a4a;padding:8px 10px 10px;position:absolute;inset:50px 0 0;overflow:hidden auto;max-height:none!important}#panel .panel-content[data-v-ef54fc06]::-webkit-scrollbar{width:8px}#panel .panel-content[data-v-ef54fc06]::-webkit-scrollbar-track{background:#1a2a4a;border-radius:3px}#panel .panel-content[data-v-ef54fc06]::-webkit-scrollbar-thumb{background:#4a5a7a;border-radius:3px}#panel .panel-content[data-v-ef54fc06]::-webkit-scrollbar-thumb:hover{background:#5a6a8a}#panel .resize-handle[data-v-ef54fc06]{cursor:se-resize;z-index:10;background:linear-gradient(135deg,#0000 50%,#3a4a6a 50%);border-radius:0 0 8px;width:20px;height:20px;position:absolute;bottom:0;right:0}#panel .resize-handle[data-v-ef54fc06]:hover{background:linear-gradient(135deg,#0000 50%,#4a5a8a 50%)}#panel h3[data-v-ef54fc06]{color:#89c;border-bottom:1px solid #2a3a5a;margin:0 0 8px;padding-bottom:6px}#panel h4[data-v-ef54fc06]{color:#6a8abb;margin:6px 0 4px}#panel label[data-v-ef54fc06]{color:#89b;margin:6px 0 2px;display:block}#panel input[type=range][data-v-ef54fc06]{width:100%;margin:0 0 8px}#panel .val[data-v-ef54fc06]{float:right;color:#4a8aff}#panel button[data-v-ef54fc06]{color:#cfd8ff;cursor:pointer;background:#2a3a6a;border:1px solid #3a4a6a;border-radius:4px;width:100%;margin-top:6px;padding:6px}#panel button[data-v-ef54fc06]:hover{background:#3a4a8a}#panel button.active[data-v-ef54fc06]{background:#3a6acc;border-color:#4a8aff}#panel button.small-btn[data-v-ef54fc06]{width:auto;padding:3px 8px}.color-row[data-v-ef54fc06]{align-items:center;margin:4px 0 8px;display:flex}.color-row label[data-v-ef54fc06]{flex:1;margin:0}.color-row input[type=color][data-v-ef54fc06]{cursor:pointer;background:0 0;border:.75px solid #3a4a6a;border-radius:3px;width:27px;height:18px;padding:0}.color-row .val[data-v-ef54fc06]{color:#4a8aff;margin-left:8px}.angle-row[data-v-ef54fc06],.pos-row[data-v-ef54fc06]{align-items:center;margin:4px 0 8px;display:flex}.angle-row label[data-v-ef54fc06],.pos-row label[data-v-ef54fc06]{color:#89b;flex:1;margin:0}.angle-row input[type=number][data-v-ef54fc06],.pos-row input[type=number][data-v-ef54fc06]{color:#cfd8ff;text-align:right;background:#1a2030;border:1px solid #3a4a6a;border-radius:4px;width:60px;padding:2px 4px}.angle-row .unit[data-v-ef54fc06],.pos-row .unit[data-v-ef54fc06]{color:#6a7a9a;margin-left:4px}#instance-list[data-v-ef54fc06],#cp-list[data-v-ef54fc06],#fluid-list[data-v-ef54fc06]{margin-bottom:10px}#instance-list button[data-v-ef54fc06],#cp-list button[data-v-ef54fc06],#fluid-list button[data-v-ef54fc06]{color:#89b;cursor:pointer;background:#1a2a4a;border:1px solid #2a3a5a;border-radius:4px;width:auto;margin:2px;padding:4px 10px}#instance-list button.active[data-v-ef54fc06],#cp-list button.active[data-v-ef54fc06],#fluid-list button.active[data-v-ef54fc06]{color:#fff;background:#3a6acc;border-color:#4a8aff}#instance-list button.delete[data-v-ef54fc06],#cp-list button.delete[data-v-ef54fc06],#fluid-list button.delete[data-v-ef54fc06]{color:#ff6a6a;background:#4a2a2a;border-color:#6a3a3a;padding:4px 6px}#instance-list button.delete[data-v-ef54fc06]:hover,#cp-list button.delete[data-v-ef54fc06]:hover,#fluid-list button.delete[data-v-ef54fc06]:hover{background:#6a3a3a}#panel details.fluid-wrap[data-v-ef54fc06]{z-index:80;position:relative;overflow:visible}details.fluid-wrap:not([open]) .fluid-add-btn[data-v-ef54fc06]{display:none}.fluid-summary[data-v-ef54fc06]{padding-right:28px}.fluid-add-btn[data-v-ef54fc06]{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:60;background:#3a6acc;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:15px;line-height:1;display:flex;position:absolute;top:4px;right:2px}.fluid-add-btn[data-v-ef54fc06]:hover{background:#4a8aff}details.fluid-wrap:not([open]) .fluid-del-btn[data-v-ef54fc06]{display:none}.fluid-del-btn[data-v-ef54fc06]{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:55;background:#b3493a;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:15px;line-height:1;display:flex;position:absolute;top:4px;right:26px}.fluid-del-btn[data-v-ef54fc06]:hover{background:#cc5a4a}.fluid-del-btn.disabled[data-v-ef54fc06]{color:#6a6a74;cursor:not-allowed;background:#3a3a44}.fluid-add-btn svg[data-v-ef54fc06],.fluid-del-btn svg[data-v-ef54fc06]{flex:none;width:12px;height:12px;display:block}.fluid-add-btn[data-v-ef54fc06]:focus-visible,.fluid-del-btn[data-v-ef54fc06]:focus-visible{outline-offset:2px;outline:2px solid #6eb3ff}.fluid-add-menu[data-v-ef54fc06]{z-index:70;background:#16223a;border:1px solid #2a3a5a;border-radius:6px;min-width:130px;padding:4px;position:absolute;top:28px;right:2px;box-shadow:0 4px 12px #0006}.fluid-add-menu button[data-v-ef54fc06]{text-align:left;color:#b8c4dc;cursor:pointer;background:0 0;border:none;border-radius:4px;width:100%;margin:2px 0;padding:6px 10px;font-size:13px;display:block}.fluid-add-menu button[data-v-ef54fc06]:hover{color:#fff;background:#2a3a5a}.export-group[data-v-ef54fc06]{gap:6px;margin-top:8px;display:flex}.export-group button[data-v-ef54fc06]{color:#6aff6a;background:#1a3a2a;border-color:#2a5a3a;flex:1;padding:5px 8px}.export-group button[data-v-ef54fc06]:hover{background:#2a5a3a}#panel details[data-v-ef54fc06]{border:1px solid #2a3a5a;border-radius:3px;margin:2px 0;overflow:hidden}#panel details details[data-v-ef54fc06]{border-color:#1a2a4a;margin:2px 0 2px 8px}#panel details details details[data-v-ef54fc06]{margin-left:24px}#panel summary[data-v-ef54fc06]{cursor:pointer;color:#89c;-webkit-user-select:none;user-select:none;background:#1a2a4a;padding:4px 8px;list-style:none;position:relative}#panel summary[data-v-ef54fc06]::-webkit-details-marker{display:none}#panel summary[data-v-ef54fc06]:before{content:"▸";color:#4a8aff;margin-right:6px;transition:transform .15s;display:inline-block}#panel details[open] summary[data-v-ef54fc06]:before{transform:rotate(90deg)}#panel summary[data-v-ef54fc06]:hover{background:#2a3a6a}#panel .fold-body[data-v-ef54fc06]{background:#0a0e1866;padding:4px 8px 2px}#panel details details .fold-body[data-v-ef54fc06]{padding:4px 8px 2px}#panel .fold-body label[data-v-ef54fc06]{margin:4px 0 1px}#panel .fold-body .cp-sec[data-v-ef54fc06]{color:#8fd3ff;background:#2e86c91f;border-left:3px solid #2e86c9;margin:8px 0 2px;padding:2px 6px;font-size:12px;font-weight:600;line-height:1.4}#panel .fold-body .cp-sec[data-v-ef54fc06]:first-child{margin-top:2px}#panel .fold-body input[type=range][data-v-ef54fc06]{margin:0 0 6px}#panel .fold-body .pos-row[data-v-ef54fc06],#panel .fold-body .angle-row[data-v-ef54fc06],#panel .fold-body .color-row[data-v-ef54fc06]{margin:4px 0 6px}#panel .fold-body .export-group[data-v-ef54fc06]{gap:6px;display:flex}#panel .fold-body .export-group button[data-v-ef54fc06]{color:#6aff6a;background:#1a3a2a;border-color:#2a5a3a;flex:1;padding:5px 8px}#panel .fold-body .export-group button[data-v-ef54fc06]:hover{background:#2a5a3a}.cp-row[data-v-ef54fc06]{align-items:center;margin:4px 0;display:flex}#panel .cp-row.label-check label[data-v-ef54fc06]{flex:none;width:96px}#panel .cp-row.label-check input[type=checkbox][data-v-ef54fc06]{margin-left:10px}.cp-row label[data-v-ef54fc06]{color:#89b;width:80px}.cp-row input[type=number][data-v-ef54fc06]{width:60px}.cp-row input[type=text][data-v-ef54fc06]{flex:1;max-width:120px;margin-left:4px}.var-row[data-v-ef54fc06]{align-items:center;gap:4px;margin:4px 0;display:flex}#panel .var-row input[type=text][data-v-ef54fc06]{box-sizing:border-box;flex:none;width:70%;padding:2px}#panel .var-row input[type=number][data-v-ef54fc06]{box-sizing:border-box;flex:none;width:30%;padding:2px}#panel .cp-row.var-row[data-v-ef54fc06]{gap:4px}#panel .cp-row.var-row input[type=text][data-v-ef54fc06]{flex:1;max-width:120px;margin-left:4px}#panel .cp-row.var-row input[type=number][data-v-ef54fc06]{box-sizing:border-box;flex:none;width:72px;margin-left:4px;padding:2px}#panel select[data-v-ef54fc06]{color:#cfd8ff;cursor:pointer;background:#1a2030;border:1px solid #3a4a6a;border-radius:4px;width:100%;padding:2px 4px;font-family:inherit}#panel .var-row input[readonly][data-v-ef54fc06]{color:#679;background:#3a3a4a}.selected-info[data-v-ef54fc06]{color:#8af;background:#4a8aff26;border:1px solid #4a8aff;border-radius:4px;margin:6px 0;padding:6px 8px}.name-edit-input[data-v-ef54fc06]{color:#fff;background:#0000004d;border:1px solid #4a8aff;border-radius:3px;outline:none;width:80px;margin:0 4px;padding:2px 6px}.name-edit-input[data-v-ef54fc06]:focus{border-color:#6ab0ff;box-shadow:0 0 6px #4a8aff80}@media (width<=640px){#panel[data-v-ef54fc06]{width:320px}#panel button[data-v-ef54fc06]{padding:8px}#panel input[type=range][data-v-ef54fc06]{height:8px}#panel input[type=number][data-v-ef54fc06],#panel input[type=text][data-v-ef54fc06]{padding:6px}#panel summary[data-v-ef54fc06]{padding:8px 12px}#panel .title-bar .close-btn[data-v-ef54fc06]{width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important}#panel .title-bar .icon-close[data-v-ef54fc06]{width:16px;height:16px}#panel .title-bar .icon-close[data-v-ef54fc06]:before,#panel .title-bar .icon-close[data-v-ef54fc06]:after{width:16px;height:2px}}#panel .help-overlay[data-v-ef54fc06]{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#panel .help-modal[data-v-ef54fc06]{background:#1a2a4a;border:1px solid #2a3a5a;border-radius:6px;flex-direction:column;width:90%;max-width:280px;max-height:80%;display:flex;overflow:hidden}#panel .help-header[data-v-ef54fc06]{background:#2a3a6a;border-bottom:1px solid #2a3a5a;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}#panel .help-title[data-v-ef54fc06]{color:#4a8aff}#panel .help-close[data-v-ef54fc06]{color:#6a7a9a;cursor:pointer;background:0 0;border:1px solid #4a5a7a;border-radius:3px;width:22px;height:22px;padding:0}#panel .help-close[data-v-ef54fc06]:hover{color:#ff6a6a;background:#ff4a4a33;border-color:#ff4a4a}#panel .help-body[data-v-ef54fc06]{flex:1;padding:8px 10px;overflow-y:auto}#panel .help-section[data-v-ef54fc06]{margin-bottom:8px}#panel .help-section h3[data-v-ef54fc06]{color:#6a8abb;border-bottom:1px solid #2a3a4a;margin:0 0 4px;padding-bottom:2px}#panel .help-item[data-v-ef54fc06]{color:#89b;align-items:center;margin:2px 0;display:flex}#panel .help-item span[data-v-ef54fc06]:first-child{text-align:center;width:24px}#panel .help-tip[data-v-ef54fc06]{color:#6a9aff;background:#4a8aff1a;border-left:2px solid #4a8aff;margin-top:8px;padding:6px 8px}.scene-auth-bar[data-v-ef54fc06]{background:#4a8aff1a;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:4px 6px;display:flex}.scene-auth-bar .auth-info[data-v-ef54fc06]{color:#89c;font-size:11px}.scene-auth-bar .storage-indicator[data-v-ef54fc06]{color:#6a8abb;background:#2a3a5a;border-radius:3px;padding:1px 5px;font-size:10px}.scene-auth-bar .scene-auth-actions[data-v-ef54fc06]{align-items:center;gap:4px;display:inline-flex}.scene-auth-bar .btn-login[data-v-ef54fc06],.scene-auth-bar .btn-register[data-v-ef54fc06]{all:unset;cursor:pointer;color:#fff;background:#3a6fd8;border-radius:3px;padding:2px 6px;font-size:10px;line-height:1;transition:background .2s}.scene-auth-bar .btn-register[data-v-ef54fc06]{background:#2a8a5a}.scene-auth-bar .btn-login[data-v-ef54fc06]:hover,.scene-auth-bar .btn-register[data-v-ef54fc06]:hover{opacity:.85}.scene-list-header[data-v-ef54fc06]{color:#89c;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:12px;display:flex}.scene-list-header>span[data-v-ef54fc06]{white-space:nowrap;flex-shrink:0;align-items:center;display:inline-flex}#panel .scene-list-header .btn-refresh-list[data-v-ef54fc06]{all:unset;cursor:pointer;opacity:.8;background:0 0;border:none;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;width:fit-content;height:fit-content;margin:0 0 0 4px;padding:0;font-size:14px;line-height:1;transition:opacity .2s;display:inline-flex}#panel .scene-list-header .btn-refresh-list[data-v-ef54fc06]:hover{opacity:1;background:0 0}#panel .scene-list-header .scene-header-actions[data-v-ef54fc06]{gap:6px;display:flex}#panel .scene-list-header .btn-icon-text[data-v-ef54fc06]{align-items:center;gap:3px;display:inline-flex}#panel .scene-list-header .icon-save[data-v-ef54fc06],#panel .scene-list-header .icon-duplicate[data-v-ef54fc06],#panel .scene-list-header .icon-add[data-v-ef54fc06]{flex-shrink:0;width:10px;height:10px;display:inline-block}#panel .scene-list-header .icon-save[data-v-ef54fc06]{border:1.5px solid;border-radius:1px}#panel .scene-list-header .icon-duplicate[data-v-ef54fc06]{border:1.5px solid;border-radius:1px;margin-right:1px;position:relative}#panel .scene-list-header .icon-duplicate[data-v-ef54fc06]:before{content:"";background:#0000004d;border:1.5px solid;border-radius:1px;width:10px;height:10px;position:absolute;top:-2px;left:2px}#panel .scene-list-header .icon-add[data-v-ef54fc06]{position:relative}#panel .scene-list-header .icon-add[data-v-ef54fc06]:before{content:"";background:currentColor;width:10px;height:2px;position:absolute;top:4px;left:0}#panel .scene-list-header .icon-add[data-v-ef54fc06]:after{content:"";background:currentColor;width:2px;height:10px;position:absolute;top:0;left:4px}#panel .scene-list-header .btn-save[data-v-ef54fc06]{color:#6aaaff;cursor:pointer;background:#1a3a5a;border-color:#2a5a7a;align-items:center;gap:3px;width:auto;min-width:60px;margin-top:0;padding:2px 8px;font-size:11px;transition:all .2s;display:inline-flex}#panel .scene-list-header .btn-duplicate[data-v-ef54fc06]{color:#6aaaff;cursor:pointer;background:#1a3a5a;border-color:#2a5a7a;align-items:center;gap:3px;width:auto;min-width:50px;margin-top:0;padding:2px 8px;font-size:11px;transition:all .2s;display:inline-flex}#panel .scene-list-header .btn-add[data-v-ef54fc06]{color:#6aff6a;background:#1a4a2a;border-color:#2a6a3a;align-items:center;gap:3px;width:auto;min-width:50px;margin-top:0;padding:2px 8px;font-size:11px;display:inline-flex}#panel .scene-list-header .btn-save[data-v-ef54fc06]:hover:not(:disabled){background:#2a5a7a}#panel .scene-list-header .btn-save[data-v-ef54fc06]:disabled{opacity:.5;cursor:not-allowed}#panel .scene-list-header .btn-duplicate[data-v-ef54fc06]:hover:not(:disabled){background:#2a5a7a}#panel .scene-list-header .btn-duplicate[data-v-ef54fc06]:disabled{opacity:.5;cursor:not-allowed}#panel .scene-list-header .btn-add[data-v-ef54fc06]:hover:not(:disabled){background:#2a6a3a}#panel .scene-list-header .btn-export[data-v-ef54fc06],#panel .scene-list-header .btn-import[data-v-ef54fc06]{cursor:pointer;background:#1a3a5a;border-color:#2a5a7a;align-items:center;gap:3px;width:auto;min-width:50px;margin-top:0;padding:2px 8px;font-size:11px;transition:all .2s;display:inline-flex}#panel .scene-list-header .btn-export[data-v-ef54fc06]{color:#8ac4ff}#panel .scene-list-header .btn-import[data-v-ef54fc06]{color:#ffd06a;background:#3a3a1a;border-color:#6a5a2a}#panel .scene-list-header .btn-export[data-v-ef54fc06]:hover:not(:disabled){background:#2a5a7a}#panel .scene-list-header .btn-import[data-v-ef54fc06]:hover:not(:disabled){background:#5a5a2a}#panel .scene-list-header .btn-export[data-v-ef54fc06]:disabled,#panel .scene-list-header .btn-import[data-v-ef54fc06]:disabled{opacity:.5;cursor:not-allowed}#import-pending .import-scene-list[data-v-ef54fc06],.import-scene-list[data-v-ef54fc06]{border:1px solid #2a5a7a;border-radius:4px;max-height:180px;margin:4px 0;padding:0;list-style:none;overflow-y:auto}.import-scene-list li[data-v-ef54fc06]{color:#cfe8ff;border-bottom:1px solid #1a2a3a;padding:3px 8px;font-size:12px}.import-scene-list li[data-v-ef54fc06]:last-child{border-bottom:none}.scene-list[data-v-ef54fc06]{resize:vertical;border-bottom:2px solid #3a4a5a;min-height:60px;max-height:400px;margin-bottom:6px;overflow-y:auto}.scene-list .empty-tip[data-v-ef54fc06]{text-align:center;color:#679;padding:12px;font-size:12px}.scene-item[data-v-ef54fc06]{cursor:pointer;background:#1a2a4a80;border:1px solid #2a3a5a;border-radius:3px;justify-content:space-between;align-items:center;margin-bottom:3px;padding:4px 6px;transition:all .2s;display:flex}.scene-item[data-v-ef54fc06]:hover{background:#2a3a5a99;border-color:#3a4a6a}.scene-item.active[data-v-ef54fc06]{background:#4a8aff33;border-color:#4a8aff}.scene-item.default[data-v-ef54fc06]{border-color:#fa4}.scene-info[data-v-ef54fc06]{flex-direction:column;flex:1;min-width:0;display:flex}.scene-name[data-v-ef54fc06]{color:#cfd8ff;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.scene-name .scene-icon[data-v-ef54fc06]{margin-right:3px;font-size:11px}.scene-name .icon-local[data-v-ef54fc06]{opacity:.8}.scene-name .icon-cloud[data-v-ef54fc06]{opacity:.9}.scene-name .default-star[data-v-ef54fc06]{color:#fa4;margin-left:3px}.scene-id[data-v-ef54fc06]{color:#568;font-size:10px}.scene-actions[data-v-ef54fc06]{flex-shrink:0;gap:2px;display:flex}.scene-actions .btn-action[data-v-ef54fc06]{cursor:pointer;background:0 0;border:1px solid #3a4a6a;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;margin:0;padding:0;font-size:11px;display:flex}.scene-actions .btn-action[data-v-ef54fc06]:hover{background:#4a8aff33;border-color:#4a8aff}.scene-actions .btn-action.btn-danger[data-v-ef54fc06]:hover{background:#ff4a4a33;border-color:#ff4a4a}.current-scene-info[data-v-ef54fc06]{color:#8af;background:#4a8aff26;border-radius:4px;justify-content:space-between;align-items:center;padding:4px 6px;font-size:11px;display:flex}.current-scene-info .var-count[data-v-ef54fc06]{color:#6a8abb}.current-scene-info .unsaved-badge[data-v-ef54fc06]{color:#fff;background:#d4880f;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;animation:1.5s ease-in-out infinite unsaved-pulse-ef54fc06;display:inline-block}@keyframes unsaved-pulse-ef54fc06{0%,to{opacity:1}50%{opacity:.6}}.scene-loading-bar[data-v-ef54fc06]{background:#4a8aff1a;border:1px solid #4a8aff4d;border-radius:6px;margin-top:8px;padding:8px 10px}.scene-loading-bar .loading-header[data-v-ef54fc06]{color:#8af;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.scene-loading-bar .loading-percent[data-v-ef54fc06]{color:#4a8aff;font-weight:700}.scene-loading-bar .progress-track[data-v-ef54fc06]{background:#4a8aff33;border-radius:3px;height:6px;overflow:hidden}.scene-loading-bar .progress-fill[data-v-ef54fc06]{background:linear-gradient(90deg,#4a8aff,#6aafff);border-radius:3px;height:100%;transition:width .2s}.modal-overlay[data-v-ef54fc06]{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-box[data-v-ef54fc06]{background:#1a2a4a;border:1px solid #3a4a6a;border-radius:6px;width:90%;max-width:260px;overflow:hidden}.modal-box h4[data-v-ef54fc06]{color:#89c;background:#2a3a6a;border-bottom:1px solid #2a3a5a;margin:0;padding:8px 12px;font-size:13px}.modal-body[data-v-ef54fc06]{padding:10px 12px}.modal-body label[data-v-ef54fc06]{color:#89b;margin-bottom:4px;font-size:11px;display:block}.modal-input[data-v-ef54fc06]{color:#cfd8ff;box-sizing:border-box;background:#1a2030;border:1px solid #3a4a6a;border-radius:4px;width:100%;margin-bottom:8px;padding:5px 8px;font-size:12px}.modal-input[data-v-ef54fc06]:focus{border-color:#4a8aff;outline:none}.modal-input[readonly][data-v-ef54fc06]{color:#679;background:#2a3a4a}.modal-footer[data-v-ef54fc06]{background:#0a0e1880;justify-content:flex-end;gap:6px;padding:8px 12px;display:flex}.modal-footer button[data-v-ef54fc06]{width:auto;margin:0;padding:4px 12px;font-size:12px}.modal-footer .btn-cancel[data-v-ef54fc06]{color:#89a;background:#3a3a4a;border-color:#4a4a5a}.modal-footer .btn-cancel[data-v-ef54fc06]:hover{background:#4a4a5a}.modal-footer .btn-confirm[data-v-ef54fc06]{color:#6aff8a;background:#2a5a3a;border-color:#3a7a4a}.modal-footer .btn-confirm[data-v-ef54fc06]:hover{background:#3a7a4a}.modal-confirm-text[data-v-ef54fc06]{color:#cfd8ff;margin:0 0 6px;font-size:13px;line-height:1.5}.modal-confirm-warning[data-v-ef54fc06]{color:#e6a23c;margin:0;font-size:12px}.duplicate-options[data-v-ef54fc06]{gap:8px;margin-top:8px;display:flex}.btn-duplicate-option[data-v-ef54fc06]{cursor:pointer;color:#cfd8ff;background:#1a2030;border:1px solid #3a4a6a;border-radius:6px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px 8px;font-size:12px;transition:all .2s;display:flex}.btn-duplicate-option[data-v-ef54fc06]:hover:not(:disabled){background:#2a3a5a;border-color:#4a8aff}.btn-duplicate-option[data-v-ef54fc06]:disabled{opacity:.5;cursor:not-allowed}.btn-duplicate-option.selected[data-v-ef54fc06]{background:#2a3a5a;border-color:#4a8aff;box-shadow:0 0 6px #4a8aff4d}.btn-duplicate-option .option-icon[data-v-ef54fc06]{font-size:20px}.modal-footer .btn-confirm-danger[data-v-ef54fc06]{color:#ff8a8a;background:#5a2a2a;border-color:#7a3a3a}.modal-footer .btn-confirm-danger[data-v-ef54fc06]:hover{background:#7a3a3a}.plc-status-badge[data-v-ef54fc06]{background:#2a3a5a;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;transition:all .3s;display:flex}.plc-status-badge .plc-status-dot[data-v-ef54fc06]{background:#64748b;border-radius:50%;width:8px;height:8px;transition:background .3s}.plc-status-badge.plc-running .plc-status-dot[data-v-ef54fc06]{background:#10b981;box-shadow:0 0 6px #10b981}.plc-status-badge.plc-running[data-v-ef54fc06]{color:#10b981;background:#10b98126}.plc-status-badge.plc-stopped .plc-status-dot[data-v-ef54fc06]{background:#ef4444}.plc-status-badge.plc-stopped[data-v-ef54fc06]{color:#ef4444;background:#ef444426}.plc-status-badge.plc-fault .plc-status-dot[data-v-ef54fc06]{background:#f59e0b}.plc-status-badge.plc-fault[data-v-ef54fc06]{color:#f59e0b;background:#f59e0b26}.plc-status-badge.plc-unknown[data-v-ef54fc06]{color:#64748b}.readonly-notice[data-v-ef54fc06]{color:#e6a23c;text-align:center;background:#e6a23c26;border:1px solid #e6a23c66;border-radius:4px;margin-bottom:6px;padding:4px 8px;font-size:11px}.scene-actions .btn-action.btn-lock[data-v-ef54fc06]{background:0 0;border-color:#5a4a2a;font-size:12px;transition:filter .2s}.scene-actions .btn-action.btn-lock.is-locked[data-v-ef54fc06]:hover:not(:disabled){background:#fa43;border-color:#fa4}.scene-actions .btn-action.btn-lock.is-unlocked[data-v-ef54fc06]{filter:grayscale();opacity:.6}.scene-actions .btn-action.btn-lock.is-unlocked[data-v-ef54fc06]:hover:not(:disabled){filter:grayscale(0);opacity:1;background:#fa43;border-color:#fa4}.scene-item.foreign[data-v-ef54fc06]{opacity:.85;border-style:dashed;border-color:#e6a23c}.scene-item.foreign[data-v-ef54fc06]:hover{opacity:1}.scene-item.disabled[data-v-ef54fc06]{cursor:not-allowed;opacity:.5}.settings-fieldset[data-v-ef54fc06]{border:none;min-width:0;margin:0;padding:0}.settings-fieldset[data-v-ef54fc06]:disabled{opacity:.55}.scene-actions .btn-action[data-v-ef54fc06]:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}#panel .scene-list-header .btn-add[data-v-ef54fc06]:disabled{opacity:.5;cursor:not-allowed}.notif-container[data-v-7d5a7601]{z-index:10000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:90vw;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.notif[data-v-7d5a7601]{pointer-events:auto;color:#333;cursor:pointer;background:#fff;border-left:4px solid #909399;border-radius:8px;align-items:center;gap:8px;min-width:220px;max-width:90vw;padding:10px 14px;font-size:14px;display:flex;box-shadow:0 4px 16px #00000026}.notif-success[data-v-7d5a7601]{background:#f0f9eb;border-left-color:#67c23a}.notif-error[data-v-7d5a7601]{background:#fef0f0;border-left-color:#f56c6c}.notif-warning[data-v-7d5a7601]{background:#fdf6ec;border-left-color:#e6a23c}.notif-info[data-v-7d5a7601]{background:#f4f4f5;border-left-color:#909399}.notif-icon[data-v-7d5a7601]{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:inline-flex}.notif-success .notif-icon[data-v-7d5a7601]{background:#67c23a}.notif-error .notif-icon[data-v-7d5a7601]{background:#f56c6c}.notif-warning .notif-icon[data-v-7d5a7601]{background:#e6a23c}.notif-info .notif-icon[data-v-7d5a7601]{background:#909399}.notif-message[data-v-7d5a7601]{word-break:break-word;flex:1;line-height:1.4}.notif-close[data-v-7d5a7601]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;width:24px;height:24px;padding:0 4px;font-size:18px;line-height:1}.notif-close[data-v-7d5a7601]:hover{color:#333;background:#0000000f}.notif-enter-active[data-v-7d5a7601],.notif-leave-active[data-v-7d5a7601]{transition:all .3s}.notif-enter-from[data-v-7d5a7601],.notif-leave-to[data-v-7d5a7601]{opacity:0;transform:translateY(-12px)}.notif-move[data-v-7d5a7601]{transition:transform .3s}@media (width<=768px){.notif-container[data-v-7d5a7601]{width:92vw;max-width:92vw;top:8px}.notif[data-v-7d5a7601]{width:100%;min-width:auto;padding:8px 12px;font-size:13px}.notif-close[data-v-7d5a7601]{width:28px;height:28px;font-size:20px}}.app-container{background:#1a1f2e;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}#hint{color:#89b;z-index:100;pointer-events:none;background:#14182899;border-radius:6px;padding:6px 16px;font:13px monospace;position:fixed;top:12px;left:50%;transform:translate(-50%)}#float-btn{color:#cfd8ff;cursor:grab;z-index:20;-webkit-user-select:none;user-select:none;background:#2a3a58e6;border:1px solid #4a8aff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font:14px monospace;display:flex;position:fixed;top:12px;left:12px;box-shadow:0 2px 10px #0000004d}#float-btn:active{cursor:grabbing;background:#3a4e6ce6}.float-cp-btn{color:#cfd8ff;cursor:grab;z-index:20;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;background:#2a3a58e6;border:1px solid #4a8aff;border-radius:20px;justify-content:center;align-items:center;max-width:120px;padding:6px 14px;font:13px monospace;display:flex;position:fixed;overflow:hidden;box-shadow:0 2px 10px #0000004d}.float-cp-btn:active{cursor:grabbing;background:#3a4e6ce6}.cp-input-overlay{z-index:15;pointer-events:auto;position:fixed;transform:translate(-50%,-50%)}.cp-input-overlay input{color:inherit;font-size:inherit;text-align:center;background:#1e283cd9;border:1px solid #4a8aff;border-radius:4px;outline:none;padding:2px 6px}.cp-input-overlay input:focus{border-color:#6af;box-shadow:0 0 4px #4a8aff80}.cp-input-overlay input:disabled{opacity:.5;cursor:not-allowed}#canvasContainer{width:100%;height:100%}#version-display{color:#000;z-index:10;pointer-events:none;opacity:.7;font:12px monospace;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}#transform-toolbar{z-index:30;color:#b8c4dc;-webkit-user-select:none;user-select:none;background:#16223ae6;border:1px solid #2a3a5a;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;display:flex;position:fixed;bottom:42px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0006}#transform-toolbar button.tt-close{color:#ffb3a6;font-weight:600}#transform-toolbar button.tt-close:hover{color:#fff;background:#5a2230}#transform-toolbar button.tt-danger{color:#ff6b57;font-weight:600}#transform-toolbar button.tt-danger:hover{color:#fff;background:#7a1f2a}#transform-toolbar button{color:#b8c4dc;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 10px;font-size:12px;line-height:1.4}#transform-toolbar button:hover{color:#fff;background:#2a3a5a}#transform-toolbar button.active{color:#fff;background:#3a6acc}#transform-toolbar .tt-sep{background:#2a3a5a;width:1px;height:16px;margin:0 2px}#connect-hint{z-index:80;color:#d8e4ff;-webkit-user-select:none;user-select:none;pointer-events:none;background:#16223aeb;border:1px solid #3a6acc;border-radius:6px;padding:6px 16px;font-size:13px;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0006}#update-notice{color:#fff;cursor:pointer;z-index:100;pointer-events:auto;white-space:nowrap;background:#ff9800f2;border-radius:6px;align-items:center;gap:10px;padding:8px 14px;font:13px sans-serif;animation:2s infinite update-notice-pulse;display:flex;position:fixed;bottom:36px;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0006}#update-notice .update-btn{background:#d84315;border-radius:4px;padding:3px 10px;font-weight:700}@keyframes update-notice-pulse{0%,to{opacity:1}50%{opacity:.85}}@media (width<=640px){#hint{padding:10px 20px;font:16px monospace}#float-btn{width:56px;height:56px;font:18px monospace}}
