.firmware-file-selector-panel{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;justify-content:center;align-items:center}.firmware-file-selector-panel .firmware-file-selector-overlay{position:absolute;width:100%;height:100%;background-color:#00000080}.firmware-file-selector-panel .firmware-file-selector-modal{background-color:#111827;border-radius:1rem;overflow:hidden;width:40rem;flex-direction:column;z-index:1001}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-header{justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #243041;background-color:#1f2937;gap:.5rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-header h2{flex:1;margin:0;font-size:1.2rem;font-weight:600;color:#f9fafb81}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-header button{background-color:#3498db;color:f9fafb81;border:none;padding:.5rem 1rem;border-radius:.3rem;font-size:1rem;transition:background-color .2s ease;cursor:pointer}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-header button:hover{background-color:#2980b9}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content{padding:1.5rem;flex:1}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list{flex-direction:column;width:100%;gap:1rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item{padding:1rem;border-radius:.5rem;border:1px solid #2d3b51;background-color:#1f2937;flex-direction:column;transition:all .2s ease;gap:.5rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item:hover{border-color:#3c4b64;box-shadow:0 2px 10px #00000059}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item.disabled{background-color:#182233;border-color:#2a3448;opacity:.7}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item.disabled:hover{border-color:#2a3448;box-shadow:none}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header{justify-content:space-between;align-items:center}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header .file-selector-label{font-weight:600;color:#f9fafb81;font-size:1rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header .file-info{gap:.5rem;font-size:.9rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header .file-info .file-name{color:#f9fafb81;font-weight:500;text-overflow:ellipsis}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header .file-info .file-size{color:#9ca3af}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .file-selector-header .file-warning{color:#e74c3c;font-size:.8rem;font-weight:500}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list{justify-content:flex-end;align-items:center;gap:.5rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list label{background-color:#3498db;color:f9fafb81;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s ease;white-space:nowrap}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list label:hover{background-color:#2980b9}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list label.disabled{background-color:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list label.disabled:hover{background-color:#bdc3c7}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .file-selector-input{justify-content:space-between;gap:1rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .file-selector-input input{display:none}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle{flex:1}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle .mode-button-group .mode-button{background-color:#111827;border:1px solid #374151;color:#cbd5e1;padding:.2rem .3rem;cursor:pointer;font-size:.8rem;transition:all .2s ease;flex:1}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle .mode-button-group .mode-button:first-child{border-radius:.5rem 0 0 .5rem}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle .mode-button-group .mode-button:last-child{border-radius:0 .5rem .5rem 0}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle .mode-button-group .mode-button:hover{background-color:#1f2937;border-color:#4b5563}.firmware-file-selector-panel .firmware-file-selector-modal .firmware-file-selector-content .file-selector-list .file-selector-item .button-list .mode-toggle .mode-button-group .mode-button.active{background-color:#3498db;border-color:#3498db;color:#fff}.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(--icons-fg-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{height:auto;max-width:100%}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg foreignObject{padding:.2rem}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-item{height:100%;display:flex;cursor:pointer;align-items:center;justify-content:center;white-space:pre-line;font-size:1.6rem;font-weight:500;color:var(--hover-fg-color);background:var(--light-bg-color);border-radius:10px}.keycode-selector .keycode-data-panel .keycode-data-list .keycode-svg .key-item:hover{background:var(--icons-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;opacity:0;pointer-events:none;transition:opacity .15s ease;visibility:hidden}.keycode-selector .keycode-data-panel .keycode-data-list .key-tooltip.visible{opacity:1;pointer-events:auto;visibility:visible}.keyindex-selector{display:flex;flex-direction:column;width:100%;max-width:76rem;background:var(--panel-bg-color);border-radius:.6rem;padding:1rem}.keyindex-selector .group-selector{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:1rem;padding:.5rem 1rem;background:var(--pages-bg-color);border-radius:1rem}.keyindex-selector .group-selector .group-item{display:flex;align-items:center;gap:.5rem}.keyindex-selector .group-selector .group-item .group-name{font-weight:600;color:var(--hover-fg-color);white-space:nowrap}.keyindex-selector .group-selector .group-item .group-modes{display:flex;gap:.25rem}.keyindex-selector .group-selector .group-item .group-modes .group-mode-button{padding:.25rem .5rem;border:1px solid var(--hover-fg-color);background:transparent;color:var(--hover-fg-color);border-radius:.25rem;cursor:pointer;font-size:.8rem;transition:all .2s ease}.keyindex-selector .group-selector .group-item .group-modes .group-mode-button.active{background:var(--light-fg-color);color:var(--panel-bg-color);border-color:var(--light-fg-color)}.keyindex-selector .keyboard-svg{width:100%;height:auto;pointer-events:none}.keyindex-selector .keyboard-svg .item-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 [sector]{cursor:pointer;pointer-events:all;fill:var(--light-bg-color);stroke:transparent;stroke-width:.1;transition:fill .2s ease}.keyindex-selector .keyboard-svg [sector]:hover{fill:var(--hover-bg-color)}.keyindex-selector .keyboard-svg [selected] [sector]{fill:var(--light-fg-color)!important}.keyindex-selector .keyboard-svg [selected].group-key .item-label{color:var(--panel-bg-color)}.keyindex-selector .keyboard-svg .group-screen .screen{fill:#1a1a1a;stroke:#333;transition:fill .15s}.keyindex-selector .keyboard-svg .group-screen .screen-label{fill:#fff;font-size:14px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.keyindex-selector .keyboard-svg .group-knob .knob-divider{stroke:var(--panel-bg-color);stroke-width:2;pointer-events:none}.keyindex-selector .keyname-tooltip{position:fixed;background:var(--panel-bg-color);color:#fff;padding:.5rem .8rem;border-radius:.25rem;font-size:.875rem;line-height:1.45;white-space:pre;z-index:1000;transform:translate(-50%,-100%);margin-top:-.5rem;opacity:0;pointer-events:none;transition:opacity .15s ease;visibility:hidden}.keyindex-selector .keyname-tooltip.visible{opacity:1;pointer-events:auto;visibility:visible}.setting-page{flex:1;flex-direction:column;align-items:center;overflow-y:auto;gap:2rem}.setting-page::-webkit-scrollbar{display:none}.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;border-radius:.6rem;padding:2rem}.key-travel-page{--switch-wall-image: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202000%202000'%20fill='none'%3e%3cg%20stroke='white'%20stroke-width='50'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M823%20342V229h374v113%20M715%20620V344h218v181h157V344h215v276'/%3e%3cpath%20d='M575%20620h870'/%3e%3cpath%20d='M575%20620%20430%20861v175'/%3e%3cpath%20d='M1445%20620l145%20241v175'/%3e%3cpath%20d='M862%201036H331v106h74l65%20373h392'/%3e%3cpath%20d='M1158%201036h531v106h-74l-65%20373h-392'/%3e%3cpath%20d='M733%201036v479'/%3e%3cpath%20d='M1287%201036v479'/%3e%3cpath%20d='M470%201515h1080'/%3e%3cpath%20d='M862%20620v1029l58%2066h180l58-66V620'/%3e%3c/g%3e%3c/svg%3e");--switch-nowall-image: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202000%202000'%20fill='none'%3e%3cg%20stroke='white'%20stroke-width='50'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M765%20620v-300a45%2045%200%200%201%2045-45h400a45%2045%200%200%201%2045%2045v300'/%3e%3cpath%20d='M575%20620h870'/%3e%3cpath%20d='M575%20620%20430%20861v175'/%3e%3cpath%20d='M1445%20620l145%20241v175'/%3e%3cpath%20d='M862%201036H331v106h74l65%20373h392'/%3e%3cpath%20d='M1158%201036h531v106h-74l-65%20373h-392'/%3e%3cpath%20d='M733%201036v479'/%3e%3cpath%20d='M1287%201036v479'/%3e%3cpath%20d='M470%201515h1080'/%3e%3cpath%20d='M862%20620v1029l58%2066h180l58-66V620'/%3e%3c/g%3e%3c/svg%3e");--switch-icon-wall-image: url("data:image/svg+xml,%3csvg%20viewBox='0%200%2029.5%2029.5'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M22.8796%203.75C23.6211%203.75%2024.3337%204.03824%2024.8667%204.55381C25.4306%205.09933%2025.745%205.85267%2025.7396%206.63724C25.6942%2013.1147%2025.75%2024.0284%2025.75%2024.0284C25.75%2024.0284%2025.3432%2024.4408%2024.8919%2024.8948C24.3452%2025.4447%2023.601%2025.75%2022.8256%2025.75H6.76442C5.99092%2025.75%205.24701%2025.4526%204.68661%2024.9195C4.08854%2024.3505%203.75%2023.5611%203.75%2022.7356V6.71116C3.75%205.88099%204.09848%205.08894%204.71052%204.52805C5.2566%204.02762%205.97042%203.75%206.71116%203.75H22.8796V3.75Z'%20stroke='white'%20stroke-width='1.5'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M26.1816%201.45283C25.7154%201.002%2025.0922%200.75%2024.4437%200.75H5.72801C4.72771%200.75%203.7637%201.12481%203.02609%201.8005L2.04805%202.69645C1.22096%203.45413%200.75%204.52426%200.75%205.64594V23.8044C0.75%2024.9001%201.19946%2025.9478%201.9934%2026.7029L2.98762%2027.6485C3.73119%2028.3556%204.71808%2028.75%205.74422%2028.75H24.4436C25.1004%2028.75%2025.7308%2028.4916%2026.1986%2028.0305C26.6121%2027.623%2027.2173%2027.0155%2028.0143%2026.2079C28.4818%2025.7342%2028.7477%2025.0944%2028.7443%2024.4288L28.739%2024.4268C28.6949%2015.7972%2028.6949%209.32828%2028.7389%205.02C28.746%204.32823%2028.4683%203.66399%2027.971%203.18309L26.1816%201.45283V1.45283Z'%20stroke='white'%20stroke-width='1.5'/%3e%3cpath%20d='M12.1371%209.75H9.75001C9.19772%209.75%208.75%2010.1977%208.75%2010.75V18.75C8.75%2019.3023%209.19772%2019.75%209.75001%2019.75H12.1371'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='square'%20stroke-linejoin='round'/%3e%3cpath%20d='M17.3629%2019.75H19.75C20.3023%2019.75%2020.75%2019.3023%2020.75%2018.75V10.75C20.75%2010.1977%2020.3023%209.75%2019.75%209.75H17.3629'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='square'%20stroke-linejoin='round'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M14.3691%2011.75C14.093%2011.75%2013.8691%2011.9739%2013.8691%2012.25V13.902H12.25C11.9739%2013.902%2011.75%2014.1259%2011.75%2014.402V15.098C11.75%2015.3741%2011.9739%2015.598%2012.25%2015.598H13.8691V17.25C13.8691%2017.5261%2014.093%2017.75%2014.3691%2017.75H15.1309C15.407%2017.75%2015.6309%2017.5261%2015.6309%2017.25V15.598H17.25C17.5261%2015.598%2017.75%2015.3741%2017.75%2015.098V14.402C17.75%2014.1259%2017.5261%2013.902%2017.25%2013.902H15.6309V12.25C15.6309%2011.9739%2015.407%2011.75%2015.1309%2011.75H14.3691V11.75Z'%20fill='white'/%3e%3c/svg%3e");--switch-icon-nowall-image: url("data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M18.6779%202.96436C19.287%202.96436%2019.8723%203.20113%2020.3101%203.62463C20.7734%204.07273%2021.0317%204.69155%2021.0272%205.33601C20.9974%209.57731%2021.0205%2016.1341%2021.0311%2018.6199C21.0339%2019.2614%2020.7831%2019.8783%2020.3308%2020.3333C19.8818%2020.785%2019.2705%2021.0358%2018.6335%2021.0358H5.44042C4.80505%2021.0358%204.19398%2020.7915%203.73365%2020.3536C3.24238%2019.8862%202.96429%2019.2377%202.96429%2018.5597V5.39673C2.96429%204.71481%203.25055%204.0642%203.75329%203.60347C4.20186%203.1924%204.78821%202.96436%205.39667%202.96436H18.6779V2.96436Z'%20stroke='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M21.3902%201.07732C21.0073%200.707%2020.4954%200.5%2019.9627%200.5H4.8668C3.86649%200.5%202.90246%200.874808%202.16486%201.5505L1.79805%201.88653C0.970971%202.6442%200.5%203.71434%200.5%204.83601V19.1312C0.5%2020.2268%200.949466%2021.2746%201.7434%2022.0297L2.13123%2022.3985C2.8748%2023.1056%203.86168%2023.5%204.88783%2023.5H19.9626C20.5021%2023.5%2021.02%2023.2877%2021.4042%2022.909C21.7439%2022.5743%2022.241%2022.0752%2022.8957%2021.4119C23.2797%2021.0227%2023.4981%2020.4972%2023.4954%2019.9505L23.491%2019.9488C23.4547%2012.8602%2023.4547%207.54644%2023.4909%204.0075H23.5C23.5058%203.43926%2023.2686%202.89363%2022.8601%202.49861L21.3902%201.07732V1.07732Z'%20stroke='white'/%3e%3cpath%20d='M9.85364%207.89258H8.07141C7.51913%207.89258%207.07141%208.34029%207.07141%208.89259V15.1069C7.07141%2015.6592%207.51913%2016.1069%208.07141%2016.1069H9.85364'%20stroke='white'%20stroke-linecap='square'%20stroke-linejoin='round'/%3e%3cpath%20d='M14.1463%2016.1069H15.9285C16.4808%2016.1069%2016.9285%2015.6592%2016.9285%2015.1069V8.89259C16.9285%208.34029%2016.4808%207.89258%2015.9285%207.89258H14.1463'%20stroke='white'%20stroke-linecap='square'%20stroke-linejoin='round'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M11.7764%209.53564C11.5003%209.53564%2011.2764%209.7595%2011.2764%2010.0356V11.3034H10.0357C9.75956%2011.3034%209.53571%2011.5272%209.53571%2011.8034V12.1965C9.53571%2012.4726%209.75956%2012.6965%2010.0357%2012.6965H11.2764V13.9642C11.2764%2014.2404%2011.5003%2014.4642%2011.7764%2014.4642H12.2236C12.4997%2014.4642%2012.7236%2014.2404%2012.7236%2013.9642V12.6965H13.9643C14.2404%2012.6965%2014.4643%2012.4726%2014.4643%2012.1965V11.8034C14.4643%2011.5272%2014.2404%2011.3034%2013.9643%2011.3034H12.7236V10.0356C12.7236%209.7595%2012.4997%209.53564%2012.2236%209.53564H11.7764V9.53564Z'%20fill='white'/%3e%3c/svg%3e");width:100%;gap:1rem;padding-bottom:1rem}.key-travel-page .key-travel-toolbar{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.key-travel-page .key-travel-toolbar .key-travel-toolbar-spacer{min-width:0}.key-travel-page .key-travel-toolbar .key-travel-status{justify-self:center;color:var(--infos-fg-color);font-size:.88rem;line-height:1;white-space:nowrap;visibility:hidden}.key-travel-page .key-travel-toolbar .key-travel-status[data-visible]{visibility:visible}.key-travel-page .key-travel-toolbar .key-travel-actions{justify-self:end;align-items:center;gap:.5rem}.key-travel-page .key-travel-toolbar .key-travel-actions button{display:flex;align-items:center;min-width:3.6rem;height:2rem;justify-content:center;border:1px solid var(--light-bg-color);border-radius:.45rem;background:var(--panel-bg-color);color:var(--hover-fg-color);padding:0 .75rem;font-size:.84rem}.key-travel-page .key-travel-toolbar .key-travel-actions button:hover{border-color:var(--light-fg-color);background:var(--hover-bg-color)}.key-travel-page .quick-setting-panels{width:100%;height:100%;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem;min-height:24rem}.key-travel-page .quick-setting-panels .quick-setting-panel{min-width:0;min-height:0;border-radius:.6rem;background:var(--panel-bg-color);border:1px solid transparent;transition:border-color .2s ease,opacity .2s ease,box-shadow .2s ease;overflow:hidden}.key-travel-page .quick-setting-panels .quick-setting-panel[data-hovered]{border-color:var(--light-fg-color);box-shadow:0 0 0 1px #0008,0 0 1rem #ffd45c33}.key-travel-page .quick-setting-panels .quick-setting-panel[data-dimmed]{opacity:.55}.key-travel-page .quick-setting-panels .quick-setting-panel.combined-travel-panel{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:0}.key-travel-page .quick-setting-panels .quick-setting-panel.combined-travel-panel .combined-panel-section{min-height:0;min-width:0;position:relative}.key-travel-page .quick-setting-panels .quick-setting-panel.combined-travel-panel .combined-panel-section[data-hovered]{background:color-mix(in srgb,var(--hover-bg-color) 45%,transparent)}.key-travel-page .quick-setting-panels .quick-setting-panel.combined-travel-panel .combined-panel-section+.combined-panel-section{border-top:1px solid var(--light-bg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel.combined-travel-panel .combined-panel-section .quick-panel-content{padding:1rem;gap:.65rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content{flex:1;min-width:0;min-height:0;flex-direction:column;padding:1.25rem;gap:.9rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content h3{margin:0;color:var(--hover-fg-color);font-size:1.1rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content p{margin:0;color:var(--infos-fg-color);font-size:.82rem;line-height:1.45}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content input[type=text],.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input input{border:1px solid var(--light-bg-color);border-radius:.45rem;background:var(--pages-bg-color);color:var(--hover-fg-color);outline:none}:is(.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content input[type=text],.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input input):focus{border-color:var(--light-fg-color)}:is(.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content input[type=text],.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input input):disabled{cursor:default;opacity:.45}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content input[type=range]{accent-color:var(--light-fg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header{align-items:flex-start;justify-content:space-between;gap:1rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header>div{flex:1;min-width:0;flex-direction:column;gap:.45rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header #switch-search-input{flex:0 0 13rem;min-height:2.25rem;padding:0 .75rem;width:13rem;background:transparent;background-color:transparent;border:1px solid var(--light-bg-color);color:#fff}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header #switch-search-input:focus{border-color:var(--light-fg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header #switch-search-input::placeholder{color:color-mix(in srgb,#fff 56%,transparent)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-search-header #switch-search-input:disabled{background:transparent;background-color:transparent}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid::-webkit-scrollbar{display:none}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid[data-disabled] .switch-icon{cursor:default;opacity:.45}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid[data-disabled] .switch-icon:hover{background:var(--pages-bg-color);border-color:var(--light-bg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon{min-width:0;aspect-ratio:1 / 1;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--light-bg-color);border-radius:.5rem;background:var(--pages-bg-color);color:var(--hover-fg-color);padding:.65rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon:before{content:"";display:block;width:2.8rem;height:2.8rem;background:center / contain no-repeat var(--switch-wall-image)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon:hover{background:var(--hover-bg-color);border-color:var(--icons-fg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon[data-selected]{border-color:var(--light-fg-color);background:color-mix(in srgb,var(--light-fg-color) 18%,var(--pages-bg-color))}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon.is-nowall:before{background-image:var(--switch-nowall-image)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.switch-search-panel .switch-grid .switch-icon span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body{flex:1;min-height:0;align-items:center;justify-content:center;gap:1rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview{flex-direction:column;align-items:center;justify-content:center;width:6rem;min-width:0;gap:.35rem;color:var(--hover-fg-color);text-align:center}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview .switch-preview-icon{align-items:center;justify-content:center}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview .switch-preview-icon:before{content:"";display:block;width:4.25rem;height:4.25rem;background:center / contain no-repeat var(--switch-wall-image)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview .switch-preview-icon.is-nowall:before{background-image:var(--switch-nowall-image)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview strong,.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview span{display:block;max-width:100%;overflow-wrap:anywhere;text-align:center}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .switch-preview span{color:var(--infos-fg-color);font-size:.75rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .vertical-control{flex-direction:column;align-items:center;gap:1rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .vertical-control span{color:var(--infos-fg-color);font-size:.75rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.trigger-panel .trigger-body .vertical-control input[type=range]{width:8.5rem;transform:rotate(90deg);transform-origin:center;margin:3rem -3.25rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .panel-heading-row{align-items:flex-start;justify-content:space-between;gap:.75rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .panel-heading-row>div{flex-direction:column;gap:.4rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .panel-heading-row.compact{align-items:center;color:var(--hover-fg-color);font-size:.84rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .slider-row{flex-direction:column;gap:.35rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .slider-row label{color:var(--hover-fg-color);font-size:.84rem;font-weight:600}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .slider-row input[type=range]{width:100%}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .slider-row .number-input{align-self:flex-end}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .rt-options{flex-direction:column;gap:.5rem;margin-top:auto}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content.rapid-trigger-panel .rt-options .option-row{align-items:center;justify-content:space-between;gap:.75rem;color:var(--hover-fg-color);font-size:.9rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input{align-items:center;gap:.35rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input input{width:4.25rem;height:2rem;text-align:center;font-variant-numeric:tabular-nums}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .number-input span{color:var(--infos-fg-color);font-size:.8rem}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .toggle-switch{position:relative;flex-shrink:0;width:2.8rem;height:1.45rem;border:none;border-radius:999px;background:var(--light-bg-color);padding:.18rem;transition:background .2s ease}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .toggle-switch span{width:1.08rem;height:1.08rem;border-radius:50%;background:var(--hover-fg-color);transition:transform .2s ease,background .2s ease}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .toggle-switch[data-checked]{background:var(--light-fg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .toggle-switch[data-checked] span{transform:translate(1.35rem);background:var(--panel-bg-color)}.key-travel-page .quick-setting-panels .quick-setting-panel .quick-panel-content .toggle-switch:disabled{cursor:default;opacity:.45}.key-travel-page .key-switch-label{width:100%;height:100%;min-width:0;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;color:var(--hover-fg-color);pointer-events:none;-webkit-user-select:none;user-select:none}.key-travel-page .key-switch-label:before{content:"";display:block;width:min(50%,2.5rem);height:min(50%,2.5rem);flex-shrink:0;background:center / contain no-repeat var(--switch-icon-wall-image)}.key-travel-page .key-switch-label.is-nowall:before{background-image:var(--switch-icon-nowall-image)}.key-travel-page .key-switch-label span{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.8rem;line-height:1.1}.key-travel-page .keyboard-svg [selected] .key-switch-label{color:var(--panel-bg-color)}.key-travel-page .keyboard-svg [selected] .key-switch-label:before{filter:brightness(0)}.macro-keys-container{flex:1;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}.music-rhythm-page{width:100%;align-items:stretch;gap:1rem}.music-rhythm-page::-webkit-scrollbar{width:.35rem}.music-rhythm-page::-webkit-scrollbar-track{background:var(--panel-bg-color)}.music-rhythm-page::-webkit-scrollbar-thumb{border-radius:999px;background:var(--light-bg-color)}.music-rhythm-page button,.music-rhythm-page input,.music-rhythm-page select{font:inherit}.music-rhythm-page .music-rhythm-header,.music-rhythm-page .music-rhythm-section{width:100%;flex-direction:column;gap:.75rem;padding:1rem;border-radius:.6rem;background:var(--panel-bg-color)}.music-rhythm-page .music-rhythm-header{gap:.85rem}.music-rhythm-page .music-rhythm-title-row,.music-rhythm-page .music-rhythm-section-head,.music-rhythm-page .music-rhythm-device-head{align-items:center;justify-content:space-between;gap:1rem}.music-rhythm-page .music-rhythm-title-row>.music-rhythm-heading{min-width:0}.music-rhythm-page .music-rhythm-title-row>.music-rhythm-actions{flex:0 0 auto}.music-rhythm-page .music-rhythm-title-row h2{margin:0;align-items:baseline;flex-wrap:wrap;gap:.45rem;color:var(--hover-fg-color);font-size:1.18rem;line-height:1.1}.music-rhythm-page .music-rhythm-title-row h2 .music-rhythm-version{flex:0 0 auto;color:var(--infos-fg-color);font-size:.78rem;font-weight:600;line-height:1.1;white-space:nowrap}.music-rhythm-page .music-rhythm-section-head h3{margin:0;color:var(--hover-fg-color);font-size:.96rem;font-weight:700;line-height:1.1}.music-rhythm-page .music-rhythm-section-head span{color:var(--infos-fg-color);font-size:.78rem}.music-rhythm-page .music-rhythm-actions{align-items:center;flex-wrap:wrap;gap:.5rem}.music-rhythm-page .music-rhythm-button{min-height:2rem;align-items:center;justify-content:center;gap:.35rem;padding:0 .85rem;border-radius:.45rem;border:1px solid var(--light-bg-color);background:var(--light-bg-color);color:var(--hover-fg-color);font-size:.84rem;line-height:1;transition:border-color .2s ease,background .2s ease,color .2s ease,opacity .2s ease}.music-rhythm-page .music-rhythm-button.primary{border-color:var(--light-fg-color);background:var(--light-fg-color);color:var(--panel-bg-color);font-weight:700}.music-rhythm-page .music-rhythm-button.primary:hover:not(:disabled){color:var(--panel-bg-color);background:color-mix(in srgb,var(--light-fg-color) 86%,white)}.music-rhythm-page .music-rhythm-button.secondary{background:var(--panel-bg-color)}.music-rhythm-page .music-rhythm-button:hover:not(:disabled){border-color:var(--light-fg-color);background:var(--hover-bg-color);color:var(--hover-fg-color)}.music-rhythm-page .music-rhythm-button:disabled{opacity:.45;cursor:default}.music-rhythm-page .music-rhythm-status{min-height:2rem;align-items:center;padding:.45rem .65rem;border-radius:.45rem;background:var(--hover-bg-color);color:var(--infos-fg-color);font-size:.82rem;overflow-wrap:anywhere}.music-rhythm-page .music-rhythm-status[data-status=ready]{background:color-mix(in srgb,var(--onlink-color) 18%,var(--hover-bg-color));color:var(--onlink-color)}.music-rhythm-page .music-rhythm-status[data-status=connecting]{background:color-mix(in srgb,#5dade2 22%,var(--hover-bg-color));color:#8fc7ee}.music-rhythm-page .music-rhythm-status[data-status=config]{background:color-mix(in srgb,var(--light-fg-color) 18%,var(--hover-bg-color));color:var(--light-fg-color)}.music-rhythm-page .music-rhythm-status[data-status=calibration]{background:color-mix(in srgb,#f59e0b 20%,var(--hover-bg-color));color:#fbbf24}.music-rhythm-page .music-rhythm-status[data-status=error]{background:color-mix(in srgb,var(--unlink-color) 18%,var(--hover-bg-color));color:var(--unlink-color)}.music-rhythm-page .music-rhythm-preview{display:block!important;width:100%;height:auto;aspect-ratio:224 / 64;image-rendering:pixelated;border:1px solid var(--light-bg-color);border-radius:.5rem;background:#0c0d0e}.music-rhythm-page .music-rhythm-form-grid,.music-rhythm-page .music-rhythm-param-grid,.music-rhythm-page .music-rhythm-device-grid{display:grid!important;gap:.75rem}.music-rhythm-page .music-rhythm-form-grid{grid-template-columns:minmax(16rem,2fr) repeat(3,minmax(7rem,1fr))}.music-rhythm-page .music-rhythm-param-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.music-rhythm-page .music-rhythm-device-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}.music-rhythm-page .music-rhythm-field{min-width:0;flex-direction:column;gap:.35rem;color:var(--infos-fg-color);font-size:.78rem;line-height:1.25}.music-rhythm-page .music-rhythm-field input,.music-rhythm-page .music-rhythm-field select{width:100%;min-width:0;min-height:2rem;padding:0 .55rem;border:1px solid var(--light-bg-color);border-radius:.42rem;outline:none;background:var(--pages-bg-color);color:var(--hover-fg-color);font-size:.84rem}:is(.music-rhythm-page .music-rhythm-field input,.music-rhythm-page .music-rhythm-field select):focus{border-color:var(--light-fg-color)}.music-rhythm-page .music-rhythm-field select{cursor:pointer}.music-rhythm-page .music-rhythm-field select option{background:var(--panel-bg-color);color:var(--hover-fg-color)}.music-rhythm-page .music-rhythm-device-card{min-width:0;flex-direction:column;gap:.65rem;padding:.75rem;border:1px solid var(--light-bg-color);border-radius:.5rem;background:var(--pages-bg-color)}.music-rhythm-page .music-rhythm-device-title{min-width:0;flex-direction:column;gap:.18rem}.music-rhythm-page .music-rhythm-device-title strong,.music-rhythm-page .music-rhythm-device-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-rhythm-page .music-rhythm-device-title strong{color:var(--hover-fg-color);font-size:.92rem}.music-rhythm-page .music-rhythm-device-title span{color:var(--infos-fg-color);font-size:.72rem}.music-rhythm-page .music-rhythm-toggle{flex:0 0 auto;align-items:center;gap:.35rem;color:var(--hover-fg-color);font-size:.8rem;white-space:nowrap}.music-rhythm-page .music-rhythm-toggle input{accent-color:var(--light-fg-color)}.music-rhythm-page .music-rhythm-device-meta{align-items:center;flex-wrap:wrap;gap:.45rem}.music-rhythm-page .music-rhythm-device-meta span{align-items:center;min-height:1.45rem;padding:0 .45rem;border-radius:.35rem;background:var(--hover-bg-color);color:var(--infos-fg-color);font-size:.72rem;line-height:1}.music-rhythm-page .music-rhythm-device-row{display:grid!important;grid-template-columns:4.5rem minmax(0,1fr) minmax(0,1fr);align-items:center;gap:.5rem}.music-rhythm-page .music-rhythm-device-row>span{align-items:center;color:var(--infos-fg-color);font-size:.76rem;white-space:nowrap}.music-rhythm-page .music-rhythm-device-row input{width:100%;min-width:0;min-height:2rem;padding:0 .55rem;border:1px solid var(--light-bg-color);border-radius:.42rem;outline:none;background:var(--pages-bg-color);color:var(--hover-fg-color);font-size:.84rem}.music-rhythm-page .music-rhythm-device-row input:focus{border-color:var(--light-fg-color)}.music-rhythm-page .music-rhythm-log{min-height:8.75rem;max-height:10.5rem;overflow:auto;flex-direction:column;gap:.35rem;padding:.5rem;border:1px solid var(--light-bg-color);border-radius:.45rem;background:#0c0d0e;color:#d6d9dc;font-family:Consolas,Monaco,Menlo,Courier New,monospace;font-size:.76rem}.music-rhythm-page .music-rhythm-log::-webkit-scrollbar{width:.35rem}.music-rhythm-page .music-rhythm-log::-webkit-scrollbar-track{background:var(--panel-bg-color)}.music-rhythm-page .music-rhythm-log::-webkit-scrollbar-thumb{border-radius:999px;background:var(--light-bg-color)}.music-rhythm-page .music-rhythm-log-line{align-items:center;gap:.5rem;min-width:0}.music-rhythm-page .music-rhythm-log-line span{flex:0 0 auto;color:var(--infos-fg-color)}.music-rhythm-page .music-rhythm-log-line p{margin:0;min-width:0;overflow-wrap:anywhere}.music-rhythm-page .music-rhythm-empty{align-items:center;justify-content:center;min-height:3rem;border:1px dashed var(--light-bg-color);border-radius:.45rem;color:var(--infos-fg-color);font-size:.84rem}@media(max-width:900px){.music-rhythm-page .music-rhythm-title-row,.music-rhythm-page .music-rhythm-device-head{align-items:flex-start;flex-direction:column}.music-rhythm-page .music-rhythm-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.music-rhythm-page .music-rhythm-form-grid,.music-rhythm-page .music-rhythm-param-grid,.music-rhythm-page .music-rhythm-device-grid{grid-template-columns:1fr}.music-rhythm-page .music-rhythm-device-row{grid-template-columns:1fr 1fr}.music-rhythm-page .music-rhythm-device-row>span{grid-column:1 / -1}}.hid-debugger-button{position:fixed!important;bottom:1.5rem;right:-1.5rem;z-index:10000;width:3rem;height:3rem;background-color:#474747b0;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;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;outline:none;box-sizing:border-box}.hid-debugger-button:hover{right:0rem;transform:scale(1.1);box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.hid-debugger-button:active{transform:scale(1.05)}@media(max-width:640px){.hid-debugger-button{bottom:1rem;right:1rem;width:3rem;height:3rem;font-size:1.25rem}}.hid-debugger-overlay{position:fixed!important;inset:0;background-color:#000c;z-index:9997;display:flex!important;box-sizing:border-box}.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;box-sizing:border-box}@media(max-width:640px){.hid-debugger-panel{width:100vw}}.hid-debugger-panel.closed{transform:translate(100%)}.hid-debugger-panel *{box-sizing:border-box;user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important}.hid-debugger-panel .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-panel .hid-debugger-header .hid-debugger-title{display:flex!important;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;margin:0}.hid-debugger-panel .hid-debugger-header .hid-debugger-title .hid-debugger-title-icon{font-size:1.25rem}.hid-debugger-panel .hid-debugger-header .hid-debugger-actions{display:flex!important;align-items:center;gap:.5rem}.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .hid-debugger-cache-btn,.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .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}:is(.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .hid-debugger-cache-btn,.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .hid-debugger-clear-btn):hover{background-color:#4b5563}.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .hid-debugger-clear-btn{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .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;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.hid-debugger-panel .hid-debugger-header .hid-debugger-actions .hid-debugger-close-btn:hover{background-color:#374151}.hid-debugger-panel .hid-debugger-search{padding:1rem;border-bottom:1px solid #374151;flex-shrink:0}.hid-debugger-panel .hid-debugger-search .hid-debugger-search-wrapper{position:relative;display:flex!important;width:100%}.hid-debugger-panel .hid-debugger-search .hid-debugger-search-wrapper .hid-debugger-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none;z-index:1}.hid-debugger-panel .hid-debugger-search .hid-debugger-search-wrapper .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-panel .hid-debugger-search .hid-debugger-search-wrapper .hid-debugger-search-input:focus{border-color:#3b82f6}.hid-debugger-panel .hid-debugger-search .hid-debugger-search-wrapper .hid-debugger-search-input::placeholder{color:#6b7280}.hid-debugger-panel .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-panel .hid-debugger-logs::-webkit-scrollbar{width:6px}.hid-debugger-panel .hid-debugger-logs::-webkit-scrollbar-track{background:#1f2937}.hid-debugger-panel .hid-debugger-logs::-webkit-scrollbar-thumb{background:#4b5563;border-radius:3px}.hid-debugger-panel .hid-debugger-logs .hid-debugger-empty{display:flex!important;align-items:center;justify-content:center;padding:2rem;color:#6b7280;text-align:center}.hid-debugger-panel .hid-debugger-logs .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-panel .hid-debugger-logs .hid-debugger-log-item:hover{border-color:#4b5563}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header{display:flex!important;align-items:center;justify-content:space-between;gap:.5rem}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=rx]:before{content:"RX";background-color:#10b981}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=tx]:before{content:"TX";background-color:#3b82f6}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=debug]:before{content:"DEBUG";background-color:#4b5563}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=info]:before{content:"INFO";background-color:#6f7d91}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=warn]:before{content:"WARN";background-color:#f59e0b}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type=error]:before{content:"ERROR";background-color:#ef4444}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header[data-type]:before{font-weight:700;font-size:.75rem;padding:.125rem .5rem;border-radius:.25rem;color:#1f2937;flex-shrink:0;margin-right:.5rem}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .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-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .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-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .hid-debugger-log-meta{display:flex!important;align-items:center;gap:.5rem;flex-shrink:0}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .hid-debugger-log-meta .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;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .hid-debugger-log-meta .hid-debugger-log-expand:hover{color:#93c5fd}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-header .hid-debugger-log-meta .hid-debugger-log-time{font-size:.75rem;color:#9ca3af;white-space:nowrap}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .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-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-data.collapsed{max-height:2.6rem}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-data.expanded{max-height:none}.hid-debugger-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-data .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-panel .hid-debugger-logs .hid-debugger-log-item .hid-debugger-log-data .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-panel .hid-debugger-command{padding:1rem;border-top:1px solid #374151;flex-shrink:0;display:flex!important;flex-direction:column;gap:.5rem}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-label{font-size:.75rem;color:#9ca3af;margin:0}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper{display:flex!important;gap:.5rem}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .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-panel .hid-debugger-command .hid-debugger-command-input-wrapper .hid-debugger-command-input:focus{border-color:#3b82f6}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .hid-debugger-command-input:disabled{opacity:.5;cursor:not-allowed}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .hid-debugger-command-input::placeholder{color:#6b7280}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .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;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .hid-debugger-command-btn:hover:not(:disabled){background-color:#1d4ed8}.hid-debugger-panel .hid-debugger-command .hid-debugger-command-input-wrapper .hid-debugger-command-btn:disabled{background-color:#374151;cursor:not-allowed}.firmwareUpdate{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.firmwareUpdate .container{background-color:#111827;border-radius:8px;box-shadow:0 8px 28px #00000073;width:90%;max-width:800px;height:80vh;display:flex;flex-direction:column;overflow:hidden}.firmwareUpdate .header{flex-shrink:0;padding:16px 24px;border-bottom:1px solid #243041;background-color:#1f2937;display:flex;justify-content:space-between;align-items:center}.firmwareUpdate .header .title{margin:0;font-size:18px;font-weight:600;color:#f9fafb8e;line-height:1}.firmwareUpdate .header button{display:flex;align-items:center}.firmwareUpdate .cancelButton{background-color:#e74c3c;color:#fff;border:none;padding:7px 16px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;line-height:1;transition:background-color .2s}.firmwareUpdate .cancelButton:hover{background-color:#c0392b}.firmwareUpdate .closeButton{background-color:#4b5563;color:#fff;border:none;padding:7px 16px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;line-height:1;transition:background-color .2s}.firmwareUpdate .closeButton:hover{background-color:#374151}.firmwareUpdate .logs{flex:1;min-height:0;overflow-y:auto;padding:12px 24px;display:flex;flex-direction:column;gap:6px;background-color:#0b1220;color:#e5e7eb;font-family:Courier New,monospace;font-size:13px;line-height:1.5}.firmwareUpdate .logs::-webkit-scrollbar{width:6px}.firmwareUpdate .logs::-webkit-scrollbar-track{background:#1f2937;border-radius:4px}.firmwareUpdate .logs::-webkit-scrollbar-thumb{background:#4b5563;border-radius:4px}.firmwareUpdate .logs::-webkit-scrollbar-thumb:hover{background:#6b7280}.firmwareUpdate .logItem{display:flex;align-items:baseline;gap:10px;padding:6px 10px;border-radius:4px;border-left:3px solid #60a5fa;background-color:#1f2937;color:#e5e7eb;word-break:break-all;flex-shrink:0}.firmwareUpdate .logItem.info{border-left-color:#60a5fa}.firmwareUpdate .logItem.success{border-left-color:#34d399;background-color:#0f2a20}.firmwareUpdate .logItem.warn{border-left-color:#fbbf24;background-color:#2d230e}.firmwareUpdate .logItem.error{border-left-color:#f87171;background-color:#2a1416;color:#fecaca}.firmwareUpdate .logItem .logTime{flex-shrink:0;min-width:72px;font-size:11px;color:#9ca3af;font-family:monospace}.firmwareUpdate .logItem .logMessage{flex:1}.firmwareUpdate .footer{flex-shrink:0;padding:10px 24px;background-color:#1f2937;border-top:1px solid #243041;display:flex;justify-content:space-between;align-items:center;gap:12px}.firmwareUpdate .footer .progress{font-size:13px;color:#9ca3af}.firmwareUpdate .footer .warning{font-size:13px;font-weight:500;color:#e74c3c;white-space:nowrap}.firmwareUpdate .footer .step{margin-left:auto;font-size:12px;color:#d1d5db;line-height:1;white-space:nowrap}.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:1rem;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;background:var(--pages-bg-color);display:flex;height:100%;color:var(--hover-fg-color);overflow:hidden}body *:not(script,style){display:flex;box-sizing:border-box}body button,body [role=button],body a,body summary,body select,body [onclick],body label,body .clickable,body #settings>div,body .collapse-button,body .device-item,body .button,body .profile-item,body #profiles>summary,body #update,body .key-group,body .knob-group{cursor:pointer}body input,body textarea,body [contenteditable=true]{-webkit-user-select:text;user-select:text}body details[open]:not(:has(summary[class])){z-index:100}body details[open]>summary:not([class]):after{position:fixed;left:0;top:0;width:100vw;height:100vh;content:"";cursor:default}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;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]: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 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:center;min-width:64rem;gap:1rem}body #root #content-panel>div{max-width:76rem;width:100%;border-radius:.6rem}body #root #content-panel #content-header{justify-content:space-around;background:var(--panel-bg-color);min-height:5rem}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: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 #profiles summary{flex:1;justify-content:space-between;align-items:center;gap:1rem}body #root #content-panel #content-header #profiles summary #profile{margin-left:1rem;flex:1;justify-content:space-between}body #root #content-panel #content-header #profiles summary #profile .profile-badge{padding:.15rem .55rem;border-radius:999px;font-size:.75rem;color:var(--hover-fg-color);background:var(--icons-bg-color)}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 .75rem;align-items:center;justify-content:space-between;gap:.75rem}body #root #content-panel #content-header #profiles #profile-list .profile-item[data-selected]{background:var(--icons-bg-color)}body #root #content-panel #content-header #profiles #profile-list .profile-item .profile-item-main{flex:1;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer}body #root #content-panel #content-header #profiles #profile-list .profile-item .profile-item-button{padding:.35rem .8rem;border-radius:.45rem;color:var(--hover-fg-color);cursor:pointer}body #root #content-panel #content-header #profiles #profile-list .profile-item .profile-item-button:hover{background:var(--icons-fg-color)}body #root #content-panel #content-header #profiles #profile-list .profile-item .profile-item-button[data-disabled]{opacity:.5;cursor:default;pointer-events:none}body #root #content-panel #content-header #profiles #profile-list .profile-item:not([data-selected]):hover:not(:has(.profile-item-button:hover)){background:var(--icons-fg-color)}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);cursor:pointer}body #root #content-panel #content-header #menubar #save-to-device:not([data-disabled]) [data-locked]{display:none}#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}*{-webkit-user-select:none;user-select:none}
