.keycode-selector{width:100%;max-width:70rem;gap:1.5rem}.keycode-selector .keycode-category-panel{display:flex;flex-direction:column;gap:1rem;width:12rem;flex-shrink:0;min-width:0;overflow:hidden;background:var(--hover-bg-color);border-radius:.6rem}.keycode-selector .keycode-category-panel .keycode-category-header{justify-content:center;padding:1rem;display:flex;font-weight:500;color:var(--hover-fg-color)}.keycode-selector .keycode-category-panel .keycode-category-list{display:flex;flex-direction:column;min-height:24rem;gap:.5rem;padding:0 .8rem 1rem}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:var(--light-bg-color);border:none;border-radius:.4rem;color:var(--hover-fg-color);font-size:1rem;cursor:pointer;transition:all .2s ease}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item:hover{background:var(--light-hover-bg-color)}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item.active{background:var(--keymap-accent-color, #5DADE2);color:var(--panel-bg-color)}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item .keycode-category-icon{display:flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;margin-right:.5rem}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item .keycode-category-icon svg{width:100%;height:100%;fill:currentColor}.keycode-selector .keycode-category-panel .keycode-category-list .keycode-category-item .keycode-category-name{flex:1;text-align:left}.keycode-selector .keycode-data-panel{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden;background:var(--hover-bg-color);border-radius:.6rem}.keycode-selector .keycode-data-panel .keycode-data-header{justify-content:center;padding:1rem;display:flex;font-weight:500;color:var(--hover-fg-color)}.keycode-selector .keycode-data-panel .keycode-data-list{flex:1;overflow-y:auto;min-height:0;padding:1rem;display:flex;justify-content:center;align-items:flex-start}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg-wrapper{position:relative;width:100%;display:flex;justify-content:center}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg{width:100%;height:auto;max-width:100%}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-group{cursor:pointer}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-group .key{fill:var(--light-bg-color);stroke:transparent;stroke-width:.1;transition:fill .2s ease}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-group:hover .key{fill:var(--hover-bg-color)}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-group .key-label{width:100%;height:100%;align-items:center;justify-content:center;white-space:pre-line;font-size:1.6rem;font-weight:500;color:var(--hover-fg-color)}.keycode-selector .keycode-data-panel .keycode-data-list .key-tooltip{position:fixed;background:var(--panel-bg-color);color:#fff;padding:.5rem .8rem;border-radius:.25rem;font-size:.875rem;white-space:nowrap;z-index:1000;transform:translate(-50%,-100%);margin-top:-.5rem}.keyindex-selector{display:flex;flex-direction:column;width:100%;max-width:76rem;background:var(--panel-bg-color);border-radius:.6rem;padding:1rem}.keyindex-selector .keyboard-svg{width:100%;height:auto}.keyindex-selector .keyboard-svg .key-group{cursor:pointer}.keyindex-selector .keyboard-svg .key-group .key{fill:var(--light-bg-color);stroke:transparent;stroke-width:.1;transition:fill .2s ease}.keyindex-selector .keyboard-svg .key-group:hover .key{fill:var(--hover-bg-color)}.keyindex-selector .keyboard-svg .key-group .key-selected{fill:var(--light-fg-color)!important}.keyindex-selector .keyboard-svg .key-group .key-label{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;white-space:pre-line;font-size:1.6rem;font-weight:500;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--hover-fg-color)}.keyindex-selector .keyboard-svg .key-group .key-selected+foreignObject .key-label{color:var(--panel-bg-color)}.keyindex-selector .keyboard-svg .screen-group .screen{fill:#1a1a1a;stroke:#333;transition:fill .15s}.keyindex-selector .keyboard-svg .screen-group .screen-label{fill:#fff;font-size:14px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.keyindex-selector .keyboard-svg .knob-group{cursor:pointer}.keyindex-selector .keyboard-svg .knob-group .knob{fill:var(--light-bg-color);stroke:transparent;stroke-width:10;transition:fill .2s ease}.keyindex-selector .keyboard-svg .knob-group .knob-label{fill:var(--hover-fg-color);font-size:1.6rem;pointer-events:none}.keyindex-selector .keyboard-svg .knob-group .knob-sector{fill:var(--light-bg-color)}.keyindex-selector .keyboard-svg .knob-group .knob-sector:hover{fill:var(--hover-bg-color)}.keyindex-selector .keyboard-svg .knob-group .knob-selected{fill:var(--light-fg-color)!important;opacity:.8}.keycode-selector-tooltip{position:fixed;background:#222;color:#fff;border-radius:4px;padding:2px 8px;font-size:14px;text-align:center;box-shadow:0 2px 8px #0003;pointer-events:none;white-space:pre-line;z-index:10;transform:translate(-50%,-100%);margin-top:-.5rem}.setting-page{flex:1;flex-direction:column;align-items:center;gap:2rem}.setting-page .layer-selector{justify-content:center;gap:1rem}.setting-page .layer-selector .layer-button{width:6rem;justify-content:center;padding:.3rem;background:var(--light-bg-color);color:var(--hover-fg-color);border:none;border-radius:.4rem;font-size:1.2rem;font-weight:500;cursor:pointer;transition:all .2s ease}.setting-page .layer-selector .layer-button:hover{background-color:var(--hover-bg-color)}.setting-page .layer-selector .layer-button.active{background:#5dade2;color:var(--panel-bg-color)}.setting-page .setting-panel{width:100%;flex:1;justify-content:center;background:var(--panel-bg-color);border-radius:.6rem;padding:2rem}.macro-keys-container{flex-direction:column;background:var(--panel-bg-color);color:var(--hover-fg-color);width:100%;padding:2rem;gap:2rem;overflow-y:auto}.macro-keys-container .command-label{color:var(--hover-fg-color);font-weight:500;white-space:pre;display:inline-block!important;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.macro-keys-container button{flex:0 0 2rem;padding:.3rem .5rem;color:var(--panel-bg-color);border:none;border-radius:.3rem;cursor:pointer;font-weight:500;transition:all .2s ease;white-space:nowrap;text-align:center}.macro-keys-container button:hover{opacity:.9;transform:scale(1.05)}.macro-keys-container .inline-param-input,.macro-keys-container .inline-keycode-display,.macro-keys-container .inline-keyindex-display,.macro-keys-container .inline-param-select{display:flex;align-items:center;justify-content:center;text-align:center;background-color:transparent;outline:none;border:none;border-bottom:1px solid var(--icons-fg-color);min-width:2rem;max-width:6rem;height:1.5rem;color:var(--hover-fg-color);cursor:pointer;transition:all .2s ease}.macro-keys-container .inline-param-input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.macro-keys-container .inline-param-input::-webkit-outer-spin-button,.macro-keys-container .inline-param-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.macro-keys-container .inline-param-input::-webkit-outer-spin-button,.macro-keys-container .inline-param-input::-webkit-inner-spin-button{display:none}.macro-keys-container .inline-param-select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.macro-keys-container .inline-param-select:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M2 4l4 4 4-4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center}.macro-keys-container .inline-param-select:focus{border-color:var(--onlink-color)}.macro-keys-container .inline-param-select option{background-color:var(--panel-bg-color);color:var(--hover-fg-color);padding:4px 8px}.macro-keys-container .inline-param-select option:hover,.macro-keys-container .inline-param-select option:checked{background-color:var(--hover-bg-color);color:var(--hover-fg-color)}.macro-keys-container .macro-selector{display:flex;flex-direction:column;gap:1rem}.macro-keys-container .macro-selector .title{font-size:1.2rem;color:var(--hover-fg-color)}.macro-keys-container .macro-selector .macro-buttons{display:grid;grid-template-columns:repeat(16,1fr);gap:.5rem}.macro-keys-container .macro-selector .macro-buttons .macro-button{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:8px;border-radius:4px;background-color:var(--light-bg-color);transition:background-color .2s;color:var(--hover-fg-color)}.macro-keys-container .macro-selector .macro-buttons .macro-button:hover{background-color:var(--hover-bg-color)}.macro-keys-container .macro-selector .macro-buttons .macro-button:has(:checked){background-color:var(--light-fg-color);color:var(--panel-bg-color)}.macro-keys-container .macro-selector .macro-buttons .macro-button input{display:none}.macro-keys-container .macro-params{display:flex;flex-direction:column;gap:1rem}.macro-keys-container .macro-params .title{justify-content:space-between;font-size:1.2rem;color:var(--hover-fg-color)}.macro-keys-container .macro-params .title .macro-actions{gap:.5rem}.macro-keys-container .macro-params .title .macro-actions button{padding:.3rem 1rem}.macro-keys-container .macro-params .title .macro-actions button:nth-child(1){background-color:var(--icons-bg-color);color:var(--hover-fg-color)}.macro-keys-container .macro-params .title .macro-actions button:nth-child(2){background-color:var(--icons-bg-color);color:var(--hover-fg-color)}.macro-keys-container .macro-params .title .macro-actions button:nth-child(3){background-color:var(--onlink-color);color:var(--panel-bg-color)}.macro-keys-container .macro-params .title .macro-actions button:hover{opacity:.8}.macro-keys-container .macro-params .param-row{display:flex;justify-content:space-between;padding:0 2rem}.macro-keys-container .macro-params .param-row .param{align-items:center;gap:10px}.macro-keys-container .macro-params .param-row .param label{cursor:default}.macro-keys-container .macro-params .param-row .param select,.macro-keys-container .macro-params .param-row .param input[type=number]{padding:5px;border:1px solid var(--icons-fg-color);border-radius:4px;background-color:var(--light-bg-color);color:var(--hover-fg-color)}.macro-keys-container .macro-editor{display:flex;flex:1;gap:.8rem;overflow-x:hidden;overflow-y:auto}.macro-keys-container .macro-editor>div{border:1px solid var(--icons-fg-color);border-radius:4px}.macro-keys-container .macro-editor .header{align-items:center;background-color:var(--light-bg-color)}.macro-keys-container .macro-editor .header .title{display:flex;padding:.8rem 1.1rem;font-size:1rem;font-weight:bolder}.macro-keys-container .macro-editor .header button{margin-left:auto;margin-right:1rem;background-color:var(--unlink-color)}.macro-keys-container .macro-editor *::-webkit-scrollbar{width:2px}.macro-keys-container .macro-editor *::-webkit-scrollbar-track{background:var(--panel-bg-color)}.macro-keys-container .macro-editor *::-webkit-scrollbar-thumb{background:var(--icons-fg-color)}.macro-keys-container .macro-editor .command-categories{flex-direction:column;flex:0 0 8rem}.macro-keys-container .macro-editor .command-categories .category-list{flex-direction:column;gap:.5rem;padding:.5rem;overflow-y:auto}.macro-keys-container .macro-editor .command-categories .category-list .category-item{display:flex;align-items:center;cursor:pointer;padding:.6rem;border-radius:.3rem;color:var(--hover-fg-color);background-color:var(--light-bg-color)}.macro-keys-container .macro-editor .command-categories .category-list .category-item:hover{background-color:var(--hover-bg-color)}.macro-keys-container .macro-editor .command-categories .category-list .category-item.selected{background-color:var(--light-fg-color);color:var(--panel-bg-color)}.macro-keys-container .macro-editor .command-list{flex:9;flex-direction:column}.macro-keys-container .macro-editor .command-list .command-items{flex-direction:column;padding:.25rem;overflow-x:hidden;overflow-y:auto;position:relative}.macro-keys-container .macro-editor .command-list .command-items .command-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-radius:.5rem;border:.25rem solid transparent;background-clip:padding-box;background-color:var(--light-bg-color);transition:all .2s ease;box-shadow:0 1px 2px #0000000d;color:var(--hover-fg-color);-webkit-user-select:none;user-select:none}.macro-keys-container .macro-editor .command-list .command-items .command-item:hover{background-color:var(--hover-bg-color);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.macro-keys-container .macro-editor .command-list .command-items .command-item:active{cursor:grabbing}.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content{display:flex;align-items:center;overflow:hidden;flex:1;cursor:grab}.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content:active{cursor:grabbing}.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content>*{display:flex;align-items:center;background-color:transparent;font-size:.9rem}.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content .inline-param-input,.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content .inline-keycode-display,.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content .inline-keyindex-display,.macro-keys-container .macro-editor .command-list .command-items .command-item .command-content .inline-param-select{pointer-events:auto;cursor:pointer}.macro-keys-container .macro-editor .command-list .command-items .command-item .add-button{background-color:var(--onlink-color);pointer-events:auto}.macro-keys-container .macro-editor .command-editor{flex:10;flex-direction:column}.macro-keys-container .macro-editor .command-editor .command-lines{flex-direction:column;padding:.25rem;overflow-x:visible;overflow-y:auto;position:relative;height:100%;@keyframes dropIndicatorPulse{0%,to{opacity:.6;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.5)}}}.macro-keys-container .macro-editor .command-editor .command-lines .command-line{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-radius:.5rem;border:.25rem solid transparent;background-clip:padding-box;background-color:var(--light-bg-color);transition:all .2s ease;box-shadow:0 1px 2px #0000000d;color:var(--hover-fg-color);position:relative;cursor:grab;@keyframes dropFeedbackAnimation{0%{background-color:var(--infos-fg-color)}to{background-color:var(--light-bg-color)}}}.macro-keys-container .macro-editor .command-editor .command-lines .command-line:hover{background-color:var(--hover-bg-color);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.macro-keys-container .macro-editor .command-editor .command-lines .command-line.dragging{opacity:.4;cursor:grabbing}.macro-keys-container .macro-editor .command-editor .command-lines .command-line.dropdone{background-color:var(--infos-fg-color);animation:dropFeedbackAnimation 1s ease-out forwards}.macro-keys-container .macro-editor .command-editor .command-lines .command-line .line-number{display:flex;align-items:center;justify-content:center;width:3rem;text-align:center;background-color:var(--panel-bg-color);border-radius:4px;padding:0 .2rem;color:var(--infos-fg-color);margin-right:.5rem;flex-shrink:0}.macro-keys-container .macro-editor .command-editor .command-lines .command-line .line-content{display:flex;align-items:center;overflow:hidden;flex:1}.macro-keys-container .macro-editor .command-editor .command-lines .command-line .line-content>*{display:flex;align-items:center;background-color:transparent;font-size:.9rem}.macro-keys-container .macro-editor .command-editor .command-lines .command-line .delete-button{background-color:var(--unlink-color)}.macro-keys-container .macro-editor .command-editor .command-lines .empty-commands{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--icons-fg-color)}.macro-keys-container .macro-editor .command-editor .command-lines .empty-commands .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.6}.macro-keys-container .macro-editor .command-editor .command-lines .empty-commands .empty-text{font-size:1.2rem;margin-bottom:.5rem;color:var(--hover-fg-color)}.macro-keys-container .macro-editor .command-editor .command-lines .empty-commands .empty-hint{font-size:.9rem;opacity:.8;max-width:80%}.macro-keys-container .macro-editor .command-editor .command-lines .drop-indicator{height:3px;background-color:var(--onlink-color);margin:.25rem .5rem;border-radius:2px;box-shadow:0 0 8px var(--onlink-color);animation:dropIndicatorPulse 1.5s ease-in-out infinite;position:relative;z-index:100;flex-shrink:0}.macro-keys-container .modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;gap:1rem}.macro-keys-container .modal-overlay:before{content:"";min-width:16rem}.macro-keys-container .modal-overlay .modal-content{width:100%;min-width:64rem;max-width:76rem;display:flex;align-items:center;justify-content:center;background-color:var(--panel-bg-color);border-radius:8px;box-shadow:0 4px 8px #0000004d;color:var(--hover-fg-color);padding:2rem;margin:1rem}.hid-debugger-button{position:fixed!important;bottom:1.5rem;right:1.5rem;z-index:10000;width:3.5rem;height:3.5rem;background-color:#d1d5db;color:#000;border:none;border-radius:50%;box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;display:flex!important;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;outline:none}.hid-debugger-button:hover{transform:scale(1.1);box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.hid-debugger-button:active{transform:scale(1.05)}.hid-debugger-overlay{position:fixed!important;inset:0;background-color:#000c;z-index:9997;display:flex!important}.hid-debugger-panel{position:fixed!important;top:0;right:0;height:100vh;width:500px;background-color:#111827;color:#fff;box-shadow:-10px 0 25px #00000080;z-index:10001;transform:translate(0);transition:transform .3s ease-in-out;display:flex!important;flex-direction:column;overflow:hidden}.hid-debugger-panel.closed{transform:translate(100%)}.hid-debugger-header{display:flex!important;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #374151;flex-shrink:0}.hid-debugger-title{display:flex!important;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;margin:0}.hid-debugger-title-icon{font-size:1.25rem}.hid-debugger-actions{display:flex!important;align-items:center;gap:.5rem}.hid-debugger-cache-btn,.hid-debugger-clear-btn{padding:.25rem .75rem;font-size:.875rem;background-color:#374151;color:#fff;border:none;border-radius:.25rem;cursor:pointer;transition:background-color .2s}.hid-debugger-cache-btn:hover,.hid-debugger-clear-btn:hover{background-color:#4b5563}.hid-debugger-close-btn{padding:.25rem;background:none;border:none;color:#fff;font-size:1.25rem;cursor:pointer;border-radius:.25rem;transition:background-color .2s;line-height:1}.hid-debugger-close-btn:hover{background-color:#374151}.hid-debugger-search{padding:1rem;border-bottom:1px solid #374151;flex-shrink:0}.hid-debugger-search-wrapper{position:relative;display:flex!important;width:100%}.hid-debugger-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none;z-index:1}.hid-debugger-search-input{width:100%;flex:1;padding:.5rem 1rem .5rem 2.5rem;background-color:#1f2937;border:1px solid #374151;border-radius:.25rem;color:#fff;font-size:.875rem;outline:none;transition:border-color .2s}.hid-debugger-search-input:focus{border-color:#3b82f6}.hid-debugger-search-input::placeholder{color:#6b7280}.hid-debugger-logs{flex:1;overflow-y:auto;padding:1rem;gap:.5rem;font-family:Consolas,Monaco,Menlo,Courier New,monospace;font-size:.875rem;display:flex!important;flex-direction:column;scrollbar-gutter:stable}.hid-debugger-logs::-webkit-scrollbar{width:6px}.hid-debugger-logs::-webkit-scrollbar-track{background:#1f2937}.hid-debugger-logs::-webkit-scrollbar-thumb{background:#4b5563;border-radius:3px}.hid-debugger-logs::-webkit-scrollbar-thumb:hover{background:#6b7280}.hid-debugger-empty{display:flex!important;align-items:center;justify-content:center;padding:2rem;color:#6b7280;text-align:center}.hid-debugger-log-item{background-color:#1f2937;border:1px solid #374151;border-radius:.25rem;padding:.75rem;transition:border-color .2s;display:flex!important;flex-direction:column}.hid-debugger-log-item:hover{border-color:#4b5563}.hid-debugger-log-header{display:flex!important;align-items:center;justify-content:space-between;gap:.5rem}.hid-debugger-log-type{font-weight:700;font-size:.75rem;padding:.125rem .5rem;border-radius:.25rem;color:#1f2937;background-color:#d1d5db;flex-shrink:0}.hid-debugger-log-message{color:#d1d5db;-webkit-user-select:text;user-select:text;cursor:text;font-family:Consolas,Monaco,Menlo,Courier New,monospace;flex:1;font-size:.875rem}.hid-debugger-log-meta{display:flex!important;align-items:center;gap:.5rem;flex-shrink:0}.hid-debugger-log-expand{font-size:.75rem;color:#60a5fa;background:none;border:none;cursor:pointer;padding:0;display:flex!important;align-items:center;gap:.25rem;transition:color .2s}.hid-debugger-log-expand:hover{color:#93c5fd}.hid-debugger-log-time{font-size:.75rem;color:#9ca3af;white-space:nowrap}.hid-debugger-log-data{color:#9ca3af;font-family:Consolas,Monaco,Menlo,Courier New,monospace;font-size:.875rem;margin-top:.25rem;word-wrap:break-word;word-break:break-all;white-space:pre-wrap;line-height:1.6;-webkit-user-select:text;user-select:text;cursor:text;overflow:hidden;transition:max-height .3s ease;max-width:48ch}.hid-debugger-log-data.collapsed{max-height:2.6rem}.hid-debugger-log-data.expanded{max-height:none}.hid-debugger-log-data-content{color:#9ca3af;word-break:break-all;-webkit-user-select:text;user-select:text;cursor:text;font-family:Consolas,Monaco,Menlo,Courier New,monospace}.hid-debugger-log-data-line{line-height:1.6;-webkit-user-select:text;user-select:text;cursor:text;font-family:Consolas,Monaco,Menlo,Courier New,monospace}.hid-debugger-command{padding:1rem;border-top:1px solid #374151;flex-shrink:0;display:flex!important;flex-direction:column;gap:.5rem}.hid-debugger-command-label{font-size:.75rem;color:#9ca3af;margin:0}.hid-debugger-command-input-wrapper{display:flex!important;gap:.5rem}.hid-debugger-command-input{flex:1;padding:.5rem .75rem;background-color:#1f2937;border:1px solid #374151;border-radius:.25rem;color:#fff;font-size:.875rem;font-family:Courier New,Courier,monospace;outline:none;transition:border-color .2s}.hid-debugger-command-input:focus{border-color:#3b82f6}.hid-debugger-command-input:disabled{opacity:.5;cursor:not-allowed}.hid-debugger-command-input::placeholder{color:#6b7280}.hid-debugger-command-btn{padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:none;border-radius:.25rem;cursor:pointer;display:flex!important;align-items:center;gap:.5rem;font-size:.875rem;transition:background-color .2s}.hid-debugger-command-btn:hover:not(:disabled){background-color:#1d4ed8}.hid-debugger-command-btn:disabled{background-color:#374151;cursor:not-allowed}@media(max-width:640px){.hid-debugger-panel{width:100vw}.hid-debugger-button{bottom:1rem;right:1rem;width:3rem;height:3rem;font-size:1.25rem}}.hid-debugger-button,.hid-debugger-overlay,.hid-debugger-panel,.hid-debugger-panel *{box-sizing:border-box}.hid-debugger-panel *{user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important}.hid-debugger-button,.hid-debugger-close-btn,.hid-debugger-clear-btn,.hid-debugger-command-btn,.hid-debugger-log-expand{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.firmwareUpdate{position:fixed;inset:0;background-color:#000000e6;z-index:9999;color:#fff;font-size:1rem;padding:20px;overflow:hidden}.firmwareUpdate__container{display:flex;flex-direction:column;height:100%}.firmwareUpdate__title{text-align:center;margin-bottom:20px}.firmwareUpdate__logs{display:flex;flex-direction:column;flex:1;overflow-y:auto;background-color:#00000080;padding:15px;border-radius:5px;font-family:monospace;white-space:pre-wrap;word-break:break-word}.firmwareUpdate__logItem{padding:5px 0;border-bottom:1px solid #333;line-height:1.4}.firmwareUpdate__footer{text-align:center;margin-top:20px;font-size:.9rem;color:#aaa}.welcome-page{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:#0a0a0a;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#fff}.welcome-page .background-effects{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:radial-gradient(circle at 20% 50%,rgba(120,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,119,198,.3) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(255,219,98,.2) 0%,transparent 50%);animation:backgroundShift 20s ease-in-out infinite}.welcome-page .grid-background{position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:50px 50px;z-index:2}.welcome-page .floating-elements{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.welcome-page .floating-elements .floating-element{position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:8px;animation:float 15s infinite ease-in-out}.welcome-page .floating-elements .floating-element:nth-child(1){width:80px;height:80px;top:20%;left:10%;animation-delay:0s;transform:rotate(45deg)}.welcome-page .floating-elements .floating-element:nth-child(2){width:120px;height:120px;top:60%;right:15%;animation-delay:2s;transform:rotate(30deg)}.welcome-page .floating-elements .floating-element:nth-child(3){width:60px;height:60px;bottom:20%;left:20%;animation-delay:4s;transform:rotate(60deg)}.welcome-page .welcome-content{display:flex;flex-direction:column;align-items:center;z-index:10;padding:3rem;min-width:600px;max-width:900px;background:#141414cc;border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px #0000004d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;gap:2rem}.welcome-page .welcome-content .main-content{display:flex;align-items:center;justify-content:space-between;gap:3rem}.welcome-page .welcome-content .main-content .logo{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.welcome-page .welcome-content .main-content .logo .logo-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;margin-bottom:1.5rem;box-shadow:0 10px 30px #667eea4d;position:relative;overflow:hidden}.welcome-page .welcome-content .main-content .logo .logo-icon:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);animation:shimmer 3s infinite}.welcome-page .welcome-content .main-content .logo .logo-icon svg{color:#fff;z-index:1;position:relative}.welcome-page .welcome-content .main-content .logo h1{font-size:2.5rem;font-weight:700;margin:0;letter-spacing:3px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-page .welcome-content .main-content .content-section{flex:1;display:flex;flex-direction:column;align-items:center;gap:.6rem}.welcome-page .welcome-content .main-content .content-section h2{margin:0;font-size:1.5rem;font-weight:400;color:#ffffffe6}.welcome-page .welcome-content .main-content .content-section p{margin:0;font-size:1rem;color:#ffffffb3;line-height:1.5}.welcome-page .welcome-content .main-content .content-section .connect-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;border-radius:12px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:200px;box-shadow:0 10px 25px #667eea4d;position:relative;overflow:hidden}.welcome-page .welcome-content .main-content .content-section .connect-button:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);opacity:0;transition:opacity .3s ease}.welcome-page .welcome-content .main-content .content-section .connect-button:hover:before{opacity:1}.welcome-page .welcome-content .main-content .content-section .connect-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 35px #667eea66}.welcome-page .welcome-content .main-content .content-section .connect-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.welcome-page .welcome-content .main-content .content-section .connect-button.connecting{background:linear-gradient(135deg,#5a67d8,#6b4c9a)}.welcome-page .welcome-content .main-content .content-section .connect-button .loading-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.welcome-page .welcome-content .help-text{display:flex;flex-direction:column;width:100%;font-size:.85rem;color:#fff9;background:#ffffff0d;padding:1rem;border-radius:8px;gap:.5rem}.welcome-page .welcome-content .help-text p{margin:0;font-weight:500;color:#fffc}.welcome-page .welcome-content .help-text ul{display:flex;flex-direction:column;margin:0;padding-left:2rem;gap:.3rem}@keyframes backgroundShift{0%,to{opacity:.5}50%{opacity:.8}}@keyframes float{0%,to{transform:translateY(0) rotate(45deg)}50%{transform:translateY(-20px) rotate(50deg)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--pages-bg-color: #181A1B;--panel-bg-color: #222426;--disabled-color: #2D2D2D;--hover-bg-color: #2D3033;--light-bg-color: #3A3E42;--icons-bg-color: #3A3E42;--infos-bg-color: #0000;--hover-fg-color: #CCD1D6;--light-fg-color: #FFD45C;--icons-fg-color: #7C848D;--infos-fg-color: #6E747C;--onlink-color: #49D77E;--unlink-color: #F87171;--title-sub-color: #A5ACB4;--transparent-img: linear-gradient(45deg, #0007 25%, transparent 25%, transparent 75%, #0007 75%) 0 0 / 1rem 1rem, linear-gradient(-45deg, #0007 25%, transparent 25%, transparent 75%, #0007 75%) 0 0 / 1rem 1rem, #FFF2}html{font-size:16px}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body *:not(script,style){display:flex;box-sizing:border-box}button,[role=button],a,summary,select,[onclick],label,.clickable,#settings>div,.collapse-button,.device-item,.button,.profile-item,#profiles,#update,.key-group,.knob-group{cursor:pointer}*{-webkit-user-select:none;user-select:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}details[open]:not(:has(summary[class])){z-index:100}details[open]>summary:not([class]):after{position:fixed;left:0;top:0;width:100vw;height:100vh;content:""}body{background:var(--pages-bg-color);margin:0;padding:1rem;display:flex;height:100%;color:var(--hover-fg-color);overflow:hidden}body #root{height:calc(100vh - 2rem);width:100vw;gap:1rem;overflow:hidden}body #root #navigation-panel{background:var(--panel-bg-color);flex-direction:column;flex-shrink:0;padding:1rem;border-radius:.6rem;min-width:6rem;max-width:16rem;width:16rem}body #root #navigation-panel #navigation-content{flex:1;flex-direction:column}body #root #navigation-panel #navigation-content .title-bar{justify-content:space-between;flex-direction:row-reverse;align-items:center;margin-bottom:1rem}body #root #navigation-panel #navigation-content .title-bar .title{flex:1;font-weight:700;font-size:1.2rem}body #root #navigation-panel #navigation-content .title-bar .collapse-button{padding:.5rem;border-radius:.5rem;color:var(--icons-fg-color)}body #root #navigation-panel #navigation-content .title-bar .collapse-button:hover{background:var(--light-bg-color);color:var(--hover-fg-color)}body #root #navigation-panel #navigation-content .title-bar[open] svg{transform:rotate(180deg)}body #root #navigation-panel #navigation-content .header{flex-direction:column}body #root #navigation-panel #navigation-content .header summary{flex:1;background:var(--hover-bg-color);min-height:5rem;padding:.5rem;border-radius:.5rem;align-items:center}body #root #navigation-panel #navigation-content .header summary #device-thumb{height:100%;aspect-ratio:1 / 1;border-radius:.5rem;background:var(--transparent-img)}body #root #navigation-panel #navigation-content .header summary #device-infos{flex-direction:column;margin-left:.5rem;flex:1;min-width:0}body #root #navigation-panel #navigation-content .header summary #device-infos .sub-title{color:var(--title-sub-color);font-weight:600;font-size:.75rem;margin-bottom:.2rem}body #root #navigation-panel #navigation-content .header summary #device-infos #device-info{justify-content:space-between;align-items:center;gap:.5rem;min-width:0}body #root #navigation-panel #navigation-content .header summary #device-infos #device-info #device-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}body #root #navigation-panel #navigation-content .header summary #device-infos #device-info #device-list-icon{flex-shrink:0}body #root #navigation-panel #navigation-content .header #device-list{position:absolute;margin-top:.5rem;padding:.25rem;background:var(--hover-bg-color);border-radius:.5rem;width:29rem}body #root #navigation-panel #navigation-content .header #device-list .list{flex:1;flex-direction:column;border-radius:.5rem;background:var(--panel-bg-color);padding:.5rem;gap:1rem}body #root #navigation-panel #navigation-content .header #device-list .list>div{background:var(--light-bg-color);border-radius:.5rem;padding:.5rem;font-weight:600}body #root #navigation-panel #navigation-content .header #device-list .list>div:not([data-selected]):hover{background:var(--icons-fg-color)}body #root #navigation-panel #navigation-content .header #device-list .list .device-item{height:6rem;border:1px solid transparent}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-thumb{height:100%;aspect-ratio:1 / 1;border-radius:.5rem;background:var(--transparent-img)}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos{flex:1;flex-direction:column;justify-content:space-between;margin-left:.5rem}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-name{justify-content:space-between;align-items:center}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-info{flex-direction:column;font-size:.75rem}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-info .firmware-ver:before{content:"　固件："}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-info .serial-number:before{content:"序列号："}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-info .status:after{color:var(--unlink-color);content:"已断开"}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .device-infos .device-info .status[data-linked=true]:after{color:var(--onlink-color);content:"已连接"}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .menu{flex-direction:column}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .menu .button{justify-content:center;height:2rem;width:2rem;border-radius:.3rem}body #root #navigation-panel #navigation-content .header #device-list .list .device-item .menu .button:hover{background:var(--icons-fg-color)}body #root #navigation-panel #navigation-content .header #device-list .list #device-add{justify-content:center}body #root #navigation-panel #navigation-content .header #device-list .list:has(>:nth-child(3))>.device-item:hover{border-color:var(--light-fg-color)}body #root #navigation-panel #navigation-content .header summary:hover{background:var(--light-bg-color)}body #root #navigation-panel #navigation-content .header[open] svg{transform:rotate(180deg)}body #root #navigation-panel #navigation-content .header[open] summary{background:var(--light-bg-color)}body #root #navigation-panel #navigation-content #settings{flex:1;flex-direction:column;align-items:center;margin-top:1rem;gap:.5rem}body #root #navigation-panel #navigation-content #settings>div{width:100%;padding:.5rem;border-radius:.5rem;align-items:center;color:var(--icons-fg-color)}body #root #navigation-panel #navigation-content #settings>div .setting-name{margin-left:.5rem;color:var(--hover-fg-color)}body #root #navigation-panel #navigation-content #settings>div:hover{background:var(--hover-bg-color);color:var(--hover-fg-color)}body #root #navigation-panel #navigation-content #settings>div[data-selected]{background:var(--light-bg-color)}body #root #navigation-panel #navigation-content #settings>div[data-selected] svg{color:var(--light-fg-color)}body #root #navigation-panel #navigation-content #system{flex-direction:column;color:var(--infos-fg-color);gap:.5rem}body #root #navigation-panel #navigation-content #system #update{border-radius:.5rem;padding:.5rem;justify-content:center;background:var(--hover-bg-color);font-weight:600}body #root #navigation-panel #navigation-content #system #update:hover{background:var(--light-bg-color);color:var(--light-fg-color)}body #root #navigation-panel #navigation-content #system #system-info{justify-content:center}body #root #navigation-panel:not(:has(.title-bar[open])){width:6rem}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content .title-bar{justify-content:center}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content .title-bar .title{display:none}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content .header summary{min-height:4rem}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content .header summary #device-infos{display:none}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content #settings>div{width:auto}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content #settings>div .setting-name{display:none}body #root #navigation-panel:not(:has(.title-bar[open])) #navigation-content #system{text-align:center;width:3.5rem}body #root #content-panel{flex:1;flex-direction:column;align-items:stretch;min-width:64rem;gap:1rem}body #root #content-panel #content-header{justify-content:space-around;background:var(--panel-bg-color);min-height:5rem;width:100%;max-width:76rem;border-radius:.6rem}body #root #content-panel #content-header #profiles{border-radius:.6rem 0 0 .6rem;flex:1;position:relative;flex-direction:column;justify-content:space-between}body #root #content-panel #content-header #profiles summary{flex:1;justify-content:space-between;align-items:center}body #root #content-panel #content-header #profiles summary #profile{margin-left:1rem}body #root #content-panel #content-header #profiles summary #menu-button{gap:.5rem}body #root #content-panel #content-header #profiles summary #menu-button .hotkeys{gap:.5rem}body #root #content-panel #content-header #profiles summary #menu-button .hotkeys>*{align-items:center;font-size:.8rem;padding:0 .5rem;border-radius:.5rem;background:var(--icons-bg-color)}body #root #content-panel #content-header #profiles #profile-list{width:100%;position:absolute;margin-top:.5rem;padding:1rem;border-radius:.6rem;flex-direction:column;background:var(--hover-bg-color);gap:.5rem}body #root #content-panel #content-header #profiles #profile-list .menu input{flex:1;margin-right:1rem;padding:0 .5rem;border-radius:.4rem;border:1px solid transparent;background:var(--panel-bg-color);color:var(--hover-fg-color)}body #root #content-panel #content-header #profiles #profile-list .menu .profile-add{padding:.5rem 1rem;border-radius:.4rem;background:var(--light-bg-color)}body #root #content-panel #content-header #profiles #profile-list .profile-item{height:3rem;border-radius:.5rem;background:var(--light-bg-color);padding:.5rem;align-items:center}body #root #content-panel #content-header #profiles #profile-list .profile-item:hover{background:var(--icons-fg-color)}body #root #content-panel #content-header #profiles:hover,body #root #content-panel #content-header #profiles[open]{background:var(--hover-bg-color)}body #root #content-panel #content-header #profiles[open] svg{transform:rotate(180deg)}body #root #content-panel #content-header #menubar{flex:1;flex-direction:row-reverse;align-items:center;margin-right:1.5rem}body #root #content-panel #content-header #menubar #save-to-device{font-weight:600;align-items:center;padding:.5rem 2rem;border-radius:.5rem;background:var(--disabled-color);color:var(--infos-fg-color)}body #root #content-panel #content-header #menubar #save-to-device[data-disabled] [data-unlock]{display:none}body #root #content-panel #content-header #menubar #save-to-device:not([data-disabled]){background:var(--light-fg-color);color:var(--panel-bg-color)}body #root #content-panel #content-header #menubar #save-to-device:not([data-disabled]) [data-locked]{display:none}body #root #content-panel #content-area{flex:1;width:100%;max-width:76rem;border-radius:.6rem;overflow:auto}#authorization-prompt{position:fixed;width:100vw;height:100vh;align-items:center;justify-content:center;background:#0007}#authorization-prompt div{background:var(--light-fg-color);color:var(--panel-bg-color);text-align:center;opacity:.8;border-radius:.5rem;padding:5rem}#authorization-prompt[hidden]{display:none}
