.blockly-workspace-container{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.blockly-workspace{flex:1;min-height:0}.blockly-workspace .blocklyToolboxCategory{height:auto!important;min-height:36px!important;box-shadow:none!important;border:none!important;border-radius:6px!important;outline:none!important;margin-bottom:6px!important;padding:2px 14px!important}.blockly-workspace .blocklyToolboxCategory,.blockly-workspace .blocklyToolboxCategory:focus,.blockly-workspace .blocklyToolboxCategory:focus-visible,.blockly-workspace .blocklyToolboxCategory.blocklyToolboxCategorySelected,.blockly-workspace .blocklyToolboxCategoryGroup,.blockly-workspace .blocklyToolboxCategoryGroup:focus,.blockly-workspace .blocklyToolboxCategoryGroup:focus-visible,.blockly-workspace .blocklyTreeRow,.blockly-workspace .blocklyTreeRow:focus,.blockly-workspace .blocklyTreeRow:focus-visible{box-shadow:none!important;border:none!important;outline:none!important}.blockly-workspace .blocklyToolboxCategoryLabel{margin-left:-8px!important;font-size:18px!important;font-weight:400!important}.blockly-workspace .blocklyToolboxCategoryIcon{display:none!important}.blockly-workspace .blocklyToolboxDiv{min-width:140px!important}.blockly-workspace .blocklyHighlighted>.blocklyPath{transform-origin:50%;stroke-width:4px;animation:1.2s ease-in-out infinite block-breathe,1.2s ease-in-out infinite block-highlight-stroke}@keyframes block-breathe{0%,to{filter:drop-shadow(0 0 6px #f3a03b)}50%{filter:drop-shadow(0 0 18px #f78030)drop-shadow(0 0 6px #f78030)}}@keyframes block-highlight-stroke{0%,to{stroke:#f90;stroke-width:3px;stroke-opacity:.6}50%{stroke:#f50;stroke-width:5px;stroke-opacity:1}}.project-toolbar{z-index:80;background:#f0f2f8;border-bottom:1px solid #dde1ec;border-radius:10px 10px 0 0;flex-shrink:0;justify-content:flex-start;align-items:center;gap:12px;min-height:40px;padding:6px;display:flex;position:relative}.project-toolbar-left{align-items:center;display:flex}.project-toolbar-right{align-items:center;gap:8px;display:flex}.project-name-area{position:relative}.project-name-btn{cursor:pointer;color:#333;background:#fff;border:1px solid #d0d5e0;border-radius:8px;align-items:center;gap:6px;min-width:150px;max-width:360px;padding:4px 12px;font-size:14px;transition:all .15s;display:flex}.project-name-btn:hover{background:#f5f8ff;border-color:#4a8fe7}.project-name-icon{flex-shrink:0;font-size:14px}.project-name-text{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.project-name-arrow{color:#999;flex-shrink:0;margin-left:auto;font-size:10px}.project-dropdown-backdrop{z-index:199;position:fixed;inset:0}.project-dropdown{z-index:200;background:#fff;border:1px solid #dde1ec;border-radius:10px;width:420px;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 6px 24px #0000001f}.project-dropdown-header{color:#333;border-bottom:1px solid #f0f2f8;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.project-count{color:#999;font-size:12px;font-weight:400}.project-dropdown-list{max-height:300px;overflow-y:auto}.project-dropdown-empty{text-align:center;color:#999;padding:24px;font-size:13px}.project-dropdown-item{cursor:pointer;border-bottom:1px solid #f5f6fa;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .1s;display:flex}.project-dropdown-item:hover{background:#f5f8ff}.project-dropdown-item.active{background:#eef3ff}.project-dropdown-item.active .project-item-name{color:#4a8fe7}.project-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-item-index{color:#888;background:#eef2f8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-right:10px;font-size:12px;font-weight:600;display:flex}.project-item-name{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.project-item-meta{color:#999;font-size:11px}.project-item-actions{flex-shrink:0;gap:4px;margin-left:8px;display:flex}.project-item-action-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:background .15s;display:flex}.project-item-action-btn:hover{background:#00000014}.project-dropdown-footer{color:#e67e22;background:#fff8f0;border-top:1px solid #fde8d0;padding:10px 14px;font-size:14px;line-height:1.5}.project-btn{cursor:pointer;white-space:nowrap;color:#555;background:#fff;border:1px solid #d0d5e0;border-radius:8px;padding:5px 12px;font-size:13px;font-weight:500;transition:all .15s}.project-btn:hover:not(:disabled){color:#4a8fe7;background:#f5f8ff;border-color:#4a8fe7}.project-btn:disabled{opacity:.4;cursor:not-allowed}.new-btn:hover:not(:disabled){color:#52c41a;background:#f6ffed;border-color:#52c41a}.save-btn:hover:not(:disabled){color:#4a8fe7;background:#eef3ff;border-color:#4a8fe7}.saveas-btn:hover:not(:disabled){color:#722ed1;background:#f9f0ff;border-color:#722ed1}.import-btn:hover:not(:disabled){color:#52c41a;background:#f6ffed;border-color:#52c41a}.export-btn:hover:not(:disabled){color:#fa8c16;background:#fff7e6;border-color:#fa8c16}.deploy-btn:hover:not(:disabled){color:#1890ff;background:#e6f7ff;border-color:#1890ff}.project-dialog-overlay{z-index:9999;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-dialog{background:#fff;border-radius:14px;min-width:360px;max-width:420px;padding:24px;box-shadow:0 8px 40px #0003}.project-dialog-title{color:#333;margin:0 0 16px;font-size:17px;font-weight:600}.project-dialog-text{color:#666;margin:0 0 20px;font-size:14px}.project-dialog-text-center{text-align:center;margin:0}.project-dialog-small{min-width:280px;max-width:380px;padding:28px 24px}.project-dialog-input{box-sizing:border-box;border:1px solid #d0d5e0;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:14px;transition:border-color .15s}.project-dialog-input:focus{border-color:#4a8fe7;box-shadow:0 0 0 3px #4a8fe71f}.project-dialog-error{color:#e74c3c;margin-top:8px;font-size:13px}.project-dialog-buttons{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.project-dialog-btn{cursor:pointer;color:#555;background:#fff;border:1px solid #d0d5e0;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .15s}.project-dialog-btn.cancel:hover{background:#f5f5f5}.project-dialog-btn.confirm{color:#fff;background:#4a8fe7;border-color:#4a8fe7}.project-dialog-btn.confirm:hover{background:#3a7fd6}.project-dialog-btn.danger{color:#fff;background:#e74c3c;border-color:#e74c3c}.project-dialog-btn.danger:hover{background:#c0392b}.project-toast{color:#fff;z-index:99999;cursor:pointer;background:#333;border-radius:8px;padding:10px 24px;font-size:13px;animation:.2s ease-out toast-in;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #0000004d}.project-toast.toast-error{background:#e74c3c}.project-toast.toast-success{background:#52c41a}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-50%)translateY(10px)}to{opacity:1;transform:translate(-50%,-50%)translateY(0)}}.export-dialog-actions{gap:8px;margin-bottom:12px;display:flex}.export-select-btn{color:#555;cursor:pointer;background:#fff;border:1px solid #d0d5e0;border-radius:6px;padding:4px 14px;font-size:12px;transition:all .15s}.export-select-btn:hover{color:#4a8fe7;background:#f5f8ff;border-color:#4a8fe7}.export-dialog-list{border:1px solid #f0f2f8;border-radius:8px;max-height:300px;margin-bottom:4px;overflow-y:auto}.export-dialog-item{cursor:pointer;border-bottom:1px solid #f5f6fa;align-items:center;gap:8px;padding:10px 14px;transition:background .1s;display:flex}.export-dialog-item:last-child{border-bottom:none}.export-dialog-item:hover{background:#f5f8ff}.export-checkbox{cursor:pointer;accent-color:#4a8fe7;flex-shrink:0;width:16px;height:16px}.export-item-index{color:#888;background:#eef2f8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:600;display:flex}.export-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.export-item-name{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.export-item-meta{color:#999;font-size:11px}.export-dialog-error{text-align:center;color:#e74c3c;padding:10px 0 0;font-size:13px}.import-dialog-info{color:#666;background:#f5f8ff;border-radius:8px;margin-bottom:12px;padding:8px 14px;font-size:13px}.import-disabled{opacity:.45;cursor:not-allowed}.import-disabled:hover{background:0 0}.import-reason{color:#e74c3c}.deployed-name{color:#555;white-space:nowrap;margin-left:5px;font-size:13px}.deployed-name-val{color:#333;font-size:14px}.canvas-footer{background:#f5f6fa;border-top:1px solid #dde1ec;border-radius:0 0 10px 10px;flex-shrink:0;justify-content:center;align-items:center;padding:10px;display:flex;position:relative}.footer-device-info{flex-shrink:0;align-items:center;gap:14px;display:flex;position:absolute;left:20px}.footer-device-item{color:#555;align-items:center;gap:6px;font-size:16px;display:flex}.footer-device-item.firmware-outdated{color:#d32f2f}.firmware-upgrade-link{color:#ff6b35;white-space:nowrap;border:1px solid #ff6b35;border-radius:6px;padding:2px 8px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s}.firmware-upgrade-link:hover{color:#fff;background:#ff6b35}.footer-center{flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.footer-buttons{justify-content:center;align-items:center;gap:16px;display:flex}.run-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#4cc88a,#52db94);border:none;border-radius:12px;padding:10px 36px;font-size:16px;font-weight:700;transition:all .15s;box-shadow:0 3px 12px #4cc88a59}.run-btn:hover:not(:disabled){background:linear-gradient(135deg,#52db94,#6ee8a8);transform:translateY(-1px);box-shadow:0 4px 18px #4cc88a80}.run-btn:disabled{color:#999;cursor:not-allowed;box-shadow:none;background:#dce3f0}.run-btn.running{color:#fff;background:linear-gradient(135deg,#ffb020,#ffc840);animation:.8s ease-in-out infinite btn-pulse;box-shadow:0 3px 16px #ffb02080}@keyframes btn-pulse{0%,to{box-shadow:0 0 #ffb02066}50%{box-shadow:0 0 20px 6px #ffb02066}}.footer-hint{color:#99a;font-size:12px}.sim-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#5691f0,#6aa8ff);border:none;border-radius:12px;padding:10px 36px;font-size:16px;font-weight:700;transition:all .15s;box-shadow:0 3px 12px #5691f059}.sim-btn:hover:not(:disabled){background:linear-gradient(135deg,#6aa8ff,#80baff);transform:translateY(-1px);box-shadow:0 4px 18px #5691f080}.sim-btn:disabled{color:#999;cursor:not-allowed;box-shadow:none;background:#dce3f0}.sim-modal-overlay{z-index:9999;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sim-modal{background:#fff;border-radius:14px;flex-direction:column;width:90vw;height:85vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #0000004d}.sim-modal-header{color:#333;background:#f5f6fa;border-bottom:1px solid #dde1ec;justify-content:space-between;align-items:center;padding:12px 20px;font-size:18px;font-weight:700;display:flex}.sim-modal-close{color:#666;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:all .15s;display:flex}.sim-modal-close:hover{color:#333;background:#00000014}.sim-modal-body{flex:1;min-height:0;position:relative}.sim-iframe{border:none;width:100%;height:100%}.sim-loading{color:#666;z-index:10;background:#ffffffd9;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}.run-complete-overlay{z-index:10000;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.run-complete-toast{color:#fff;background:#000c;border-radius:12px;padding:16px 40px;font-size:20px;font-weight:600;animation:.3s ease-out run-complete-fadein}@keyframes run-complete-fadein{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.agent-panel{z-index:10;background:#f8f9fb;border-radius:10px;flex-direction:column;width:500px;min-width:240px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:0 2px 12px #0000000f}.agent-resize-handle{cursor:col-resize;z-index:10;background:0 0;width:6px;height:100%;transition:background .15s;position:absolute;top:0;left:0}.agent-resize-handle:hover{background:#4a8fe726}.agent-panel-header{color:#333;background:#fff;border-bottom:1px solid #e8ecf2;justify-content:space-between;align-items:center;padding:10px 14px;font-size:18px;font-weight:600;display:flex}.agent-model-badge{color:#888;background:#eef1f7;border-radius:10px;margin-left:6px;padding:1px 8px;font-size:13px;font-weight:400}.agent-review-actions{border-top:1px solid #e8ecf2;gap:8px;margin-top:8px;padding-top:8px;display:flex}.agent-btn-reject{color:#c62828;cursor:pointer;background:#fff;border:1px solid #e57373;border-radius:6px;flex:1;padding:7px 14px;font-size:14px;font-weight:500;transition:all .15s}.agent-btn-reject:hover{background:#ffebee}.agent-btn-approve{color:#fff;cursor:pointer;background:#4a8fe7;border:none;border-radius:6px;flex:1;padding:7px 14px;font-size:14px;font-weight:500;transition:all .15s}.agent-btn-approve:hover{background:#3a7dd4}.agent-quota{color:#888;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.agent-quota-empty{color:#c0392b;font-weight:600}.agent-ldkey-plus{color:#888;cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;font-weight:700;line-height:22px;transition:all .2s;display:flex}.agent-ldkey-plus:hover{color:#fff;background:#4a8fe7;border-color:#4a8fe7}.agent-ldkey-modal-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.agent-ldkey-modal{background:#fff;border-radius:12px;width:360px;max-width:90vw;padding:24px;box-shadow:0 8px 30px #00000026}.agent-ldkey-title{color:#333;margin-bottom:4px;font-size:18px;font-weight:600}.agent-ldkey-hint{color:#999;margin-bottom:14px;font-size:13px}.agent-ldkey-actions{gap:8px;margin-top:10px;display:flex}.agent-ldkey-cancel{color:#666;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:4px 12px;font-size:13px}.agent-ldkey-cancel:hover{background:#f5f5f5}.agent-ldkey-retries{color:#e67e22;margin-top:6px;font-size:11px}.agent-unlock-err{color:#c0392b!important}.agent-unlock-input{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;outline:none;width:100%;padding:8px 10px;font-size:14px}.agent-unlock-input:focus{border-color:#4a8fe7}.agent-unlock-input:disabled{background:#f5f5f5}.agent-unlock-btn{color:#fff;cursor:pointer;background:#4a8fe7;border:none;border-radius:4px;padding:6px 16px;font-size:14px}.agent-unlock-btn:hover:not(:disabled){background:#3a7dd4}.agent-unlock-btn:disabled{opacity:.5;cursor:default}.agent-unlock-msg{color:#2e7d32;margin-top:8px;font-size:12px}.agent-panel-messages{flex-direction:column;flex:1;gap:6px;min-height:0;padding:10px;display:flex;overflow-y:auto}.agent-empty{text-align:center;color:#999;padding:20px 10px;font-size:16px}.agent-hints{flex-wrap:wrap;justify-content:center;gap:5px;margin-top:10px;display:flex}.agent-hints button{color:#555;cursor:pointer;background:#eef1f7;border:1px solid #d8dce8;border-radius:6px;padding:5px 12px;font-size:14px}.agent-hints button:hover{background:#dde3f0}.agent-msg{border-radius:8px;max-width:95%;font-size:18px;line-height:1.5}.agent-msg-user{color:#fff;background:#4a8fe7;align-self:flex-end;padding:7px 12px}.agent-msg-assistant{align-self:flex-start;padding:0}.agent-msg-system{color:#3b6d11;background:#eaf3de;border-radius:4px;align-self:flex-start;padding:4px 10px;font-size:15px}.agent-msg-text{white-space:pre-wrap;word-break:break-word;padding:7px 12px}.agent-context-badge{vertical-align:middle;cursor:default;background:#ffffff4d;border-radius:8px;margin-right:6px;padding:1px 6px;font-size:11px;display:inline-block}.agent-msg-card{word-break:break-word;background:#fff;border:1px solid #e8ecf2;border-radius:8px;min-width:200px;padding:8px 12px}.agent-msg-detail{flex-direction:column;gap:5px;display:flex}.agent-detail-row{gap:8px;font-size:15px;line-height:1.5;display:flex}.agent-detail-label{color:#999;white-space:nowrap;min-width:28px;font-weight:500}.agent-ok{color:#2e7d32}.agent-fail{color:#c62828}.agent-badge{white-space:nowrap;border-radius:8px;margin-left:6px;padding:1px 7px;font-size:13px;font-weight:500}.agent-badge-ok{color:#2e7d32;background:#e8f5e9}.agent-badge-fail{color:#c62828;background:#fce4ec}.agent-result-row{border-top:1px solid #f0f0f0;margin-top:3px;padding-top:5px}.agent-result-text{color:#333;word-break:break-all;flex:1;line-height:1.5}.agent-fail-reasons{flex-direction:column;flex:1;gap:4px;display:flex}.agent-fail-item{color:#c0392b;word-break:break-all;background:#fff5f5;border-radius:4px;padding:4px 8px;font-size:13px;line-height:1.4}.agent-stream-dot{background:#4a8fe7;border-radius:50%;width:6px;height:6px;margin-left:6px;animation:.8s infinite agent-pulse;display:inline-block}@keyframes agent-pulse{0%,to{opacity:.3}50%{opacity:1}}.agent-thinking-bubble{color:#666;background:#f8f8fa;border:1px solid #e8e8ec;border-radius:10px;flex-direction:column;max-width:95%;max-height:30vh;margin-bottom:2px;padding:12px 14px;font-size:15px;line-height:1.6;animation:.25s think-fade-in;display:flex;overflow:hidden}.agent-thinking-scroll{flex:auto;min-height:0;overflow-y:auto}.agent-thinking-title{color:#aaa;text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.agent-thinking-title:before{content:"";background:#4a8fe7;border-radius:50%;width:6px;height:6px}.agent-thinking-content{white-space:pre-wrap;word-break:break-word}.agent-thinking-loading-bar{background:linear-gradient(90deg,#0000,#4a8fe7 50%,#0000 100%) 0 0/200% 100%;border-radius:1px;flex-shrink:0;height:2px;margin-top:8px;animation:1.5s ease-in-out infinite loading-slide}@keyframes loading-slide{0%{background-position:200% 0}to{background-position:-200% 0}}.agent-thinking-empty .agent-thinking-content{color:#aaa;font-style:italic}@keyframes think-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.agent-plan-sections{background:#f0f4ff;border-radius:4px;flex-direction:column;gap:3px;padding:6px 8px;display:flex}.agent-plan-item{color:#333;font-size:15px}.agent-plan-hint{color:#999;font-size:13px}.agent-detail-warn{background:#fff8e1;border-radius:4px;flex-direction:column;gap:2px;padding:6px 8px}.agent-warn-item{color:#e65100;font-size:13px}.agent-warn-item:before{content:"⚠ "}.agent-actions{background:#fff;border-top:1px solid #e8ecf2;padding:8px 10px}.agent-btn-load{color:#fff;cursor:pointer;background:#4a8fe7;border:none;border-radius:6px;width:100%;padding:10px 7px;font-size:18px}.agent-btn-load:hover{background:#3a7dd4}.agent-panel-input{background:#fff;border-top:1px solid #e8ecf2;padding:8px 10px}.agent-panel-input textarea{box-sizing:border-box;resize:none;border:1px solid #d8dce8;border-radius:6px;outline:none;width:100%;min-height:60px;padding:10px;font-family:inherit;font-size:18px}.agent-panel-input textarea:focus{border-color:#4a8fe7}.agent-input-footer{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.agent-input-right{align-items:center;gap:8px;display:flex}.agent-char-count{color:#bbb;font-size:13px}.agent-panel-input button{color:#fff;cursor:pointer;white-space:nowrap;background:#4a8fe7;border:none;border-radius:6px;padding:8px 18px;font-size:18px}.agent-btn-send{text-align:center;width:34px;height:34px;line-height:34px;transition:all .2s;color:#6b7b8d!important;background:#e9ecf1!important;border-radius:8px!important;padding:0!important;font-size:20px!important;font-weight:700!important}.agent-btn-send:not(:disabled){color:#fff!important;background:#4a8fe7!important}.agent-btn-send:disabled{color:#c0c5cc!important;background:#e9ecf1!important}.agent-btn-send:hover:not(:disabled){transform:scale(1.05);background:#3a7dd4!important}.agent-btn-stop{text-align:center;width:34px;height:34px;line-height:34px;transition:all .2s;animation:2s infinite stop-pulse;color:#e74c3c!important;background:#fff0f0!important;border:1px solid #fdd!important;border-radius:8px!important;padding:0!important;font-size:20px!important;font-weight:700!important}.agent-btn-stop:hover{transform:scale(1.05);background:#ffe0e0!important}@keyframes stop-pulse{0%,to{opacity:1}50%{opacity:.7}}.agent-panel-input button:hover:not(:disabled){background:#3a7dd4}.agent-panel-input button:disabled{opacity:.5;cursor:default}.agent-overflow-banner{color:#e65100;background:#fff3e0;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;font-size:15px;display:flex}.agent-overflow-banner button{color:#fff;cursor:pointer;background:#e65100;border:none;border-radius:4px;padding:3px 10px;font-size:14px}.canvas{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.canvas-body{flex:1;gap:8px;min-height:0;display:flex}.canvas-blockly{flex:1;min-width:0;display:flex}.connection-bar{background:#4a8fe7;border-bottom:none;flex-shrink:0;align-items:center;gap:36px;min-height:36px;padding:6px 20px;display:flex;position:relative}.connection-item{color:#ffffffd9;align-items:center;gap:8px;font-size:13px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.connected{background:#7dffb3;box-shadow:0 0 6px #7dffb3}.status-dot.disconnected{background:#ffffff4d}.status-dot.transitioning{background:#ffdd57;animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.connection-label{color:#ffffffb3;font-weight:500}.device-name{color:#fff;font-weight:500}.device-meta{color:#fff9;margin-left:4px;font-size:12px}.disabled-hint{color:#ffffff59;font-size:12px;font-style:italic}.conn-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:4px 14px;font-size:12px;transition:all .15s}.conn-btn.connect{color:#ffffffe6;background:#fff3;border-color:#ffffff40}.conn-btn.connect:hover{background:#ffffff4d}.conn-btn.disconnect{color:#fcc;background:0 0;border-color:#ffffff40}.conn-btn.disconnect:hover{background:#ff64644d;border-color:#fff6}.brand-title{color:#fff;letter-spacing:1px;font-family:Georgia,Times New Roman,Times,serif;font-size:16px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.home-link-btn{color:#fff;background:#ffffff29;border:1px solid #ffffff40;border-radius:6px;justify-content:center;align-items:center;padding:4px 12px;font-size:12px;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex;position:absolute;top:50%;right:20px;transform:translateY(-50%)}.home-link-btn:hover{background:#ffffff3d;border-color:#fff6}.upgrade-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upgrade-dialog{background:#fff;border-radius:12px;min-width:340px;max-width:420px;padding:24px 28px;box-shadow:0 8px 32px #0000002e}.upgrade-dialog-title{color:#333;margin-bottom:14px;font-size:18px;font-weight:600}.upgrade-dialog-body{color:#555;margin-bottom:22px;font-size:14px;line-height:1.6}.upgrade-dialog-body strong{color:#4a8fe7}.upgrade-dialog-actions{justify-content:center;gap:16px;display:flex}.upgrade-dialog-actions .conn-btn{padding:8px 24px;font-size:14px}.upgrade-dialog-actions .conn-btn.connect{color:#4a8fe7;background:#fff;border-color:#4a8fe7}.upgrade-dialog-actions .conn-btn.connect:hover{background:#eef4ff}.upgrade-dialog-actions .conn-btn.usb{color:#fff;background:#4a8fe7;border-color:#4a8fe7}.upgrade-dialog-actions .conn-btn.usb:hover{background:#3a7fd7}.upgrade-modal-overlay{z-index:2000;pointer-events:auto;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upgrade-modal{text-align:center;background:#fff;border-radius:16px;min-width:380px;max-width:460px;padding:36px 40px;box-shadow:0 12px 48px #00000040}.upgrade-modal-title{color:#333;margin-bottom:16px;font-size:20px;font-weight:600}.upgrade-modal-progress-text{color:#666;min-height:20px;margin-bottom:16px;font-size:14px}.upgrade-modal-progress-bar{background:#e8e8e8;border-radius:5px;height:10px;margin-bottom:24px;overflow:hidden}.upgrade-modal-progress-fill{background:linear-gradient(90deg,#4a8fe7,#7d5fff);border-radius:5px;height:100%;transition:width .3s}.upgrade-stop-btn{margin-top:8px;padding:6px 24px;font-size:14px;color:#e74c3c!important;background:0 0!important;border-color:#e74c3c!important}.upgrade-stop-btn:hover{background:#e74c3c1a!important}.conn-btn:disabled{opacity:.5;cursor:not-allowed}.control-panel{scrollbar-width:none;background:#f5f6fa;border-radius:10px;flex-shrink:0;width:340px;padding-left:10px;overflow:hidden auto;box-shadow:0 2px 12px #0000000f}.control-panel::-webkit-scrollbar{display:none}.control-panel-inner{transform-origin:0 0;width:650px;height:1270px;margin:10px auto;position:relative;transform:scale(.5)}.control-panel-inner button:active{filter:brightness(.85)}.control-panel-inner input[type=range]{appearance:none;background:#d9d9d9;border-radius:5px;outline:none;height:10px}.control-panel-inner input[type=range]::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#007aff;border-radius:50%;width:32px;height:32px;box-shadow:0 2px 6px #007aff4d}.control-panel-inner input[type=range]::-moz-range-thumb{cursor:pointer;background:#007aff;border:none;border-radius:50%;width:32px;height:32px}.app-layout{flex:1;gap:0;min-height:0;padding:8px;display:flex}.version-badge{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#ffffff2e;border-radius:6px;align-items:center;gap:4px;padding:2px 6px;font-size:14px;font-weight:500;transition:background .15s;display:inline-flex}.version-badge:hover{background:#ffffff47}.version-badge-arrow{opacity:.7;font-size:20px}.version-badge-img{object-fit:cover;border-radius:3px;flex-shrink:0;width:20px;height:20px}.version-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.version-modal{text-align:center;background:#fff;border-radius:16px;min-width:320px;padding:32px 40px;box-shadow:0 8px 40px #0003}.version-modal-title{color:#333;margin:0 0 28px;font-size:20px;font-weight:600}.version-modal-options{justify-content:center;gap:24px;display:flex}.version-modal-card{cursor:pointer;background:#fff;border:2px solid #ddd;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:16px;transition:all .15s;display:flex}.version-modal-card:hover{border-color:#4a8fe7;box-shadow:0 4px 16px #4a8fe733}.version-modal-img{object-fit:cover;border-radius:8px;width:150px;height:150px}.version-modal-label{color:#333;font-size:16px;font-weight:600}.device-warning-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.device-warning-modal{text-align:center;background:#fff;border-radius:16px;width:calc(100% - 48px);max-width:360px;padding:36px 32px 28px;box-shadow:0 8px 40px #0003}.device-warning-icon{margin-bottom:12px;font-size:48px}.device-warning-title{color:#333;margin:0 0 12px;font-size:20px;font-weight:600}.device-warning-text{color:#666;margin:0 0 24px;font-size:14px;line-height:1.6}.device-warning-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#4a8fe7,#6aa8ff);border:none;border-radius:10px;padding:10px 36px;font-size:15px;font-weight:600;transition:all .15s;box-shadow:0 3px 12px #4a8fe759}.device-warning-btn:hover{background:linear-gradient(135deg,#6aa8ff,#80baff);transform:translateY(-1px);box-shadow:0 4px 18px #4a8fe780}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{color:#333;background:#e8ecf4;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}#app{flex-direction:column;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c4cfe0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a0b0cc}input[type=range]{appearance:none}
