:root{--muted:#9b9fa0;--line:#2c3032;--panel:#16191b;--white:#e5e7e9;background:#101214;color:#f4f5f6;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',Consolas,monospace}
body{background:#101214}.carbon-shell{max-width:1700px;margin:0 auto;display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.carbon-sidebar{background:#131618;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column;gap:0;position:sticky;top:0;height:100vh;max-height:1100px}.carbon-brand{display:flex;align-items:center;gap:8px;margin:0 8px 43px;white-space:nowrap}.carbon-brand>svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:square}.carbon-brand>strong{font-size:26px;font-weight:800;letter-spacing:-1px}.c-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.model-label{display:flex;align-items:center;gap:12px;padding:17px 13px;border:1px solid var(--line);background:#1a1e20;border-radius:7px;font-size:14px;font-weight:500;margin-bottom:28px}.model-label .c-icon{width:17px;height:23px;color:#b1b9bd}.carbon-nav{display:flex;flex-direction:column;gap:8px}.carbon-nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;font-size:14px;color:#a1a8aa;border-radius:5px;position:relative;white-space:nowrap}.carbon-nav a>.c-icon{width:18px;height:18px}.carbon-nav a[aria-current=page]{color:#f4f5f6;background:#282e30}.carbon-nav a[aria-current=page]:after{content:'';height:4px;width:4px;background:#c5ccd0;border-radius:50%;position:absolute;right:12px}.carbon-nav a:hover{background:#222729}.original-driver-link{margin-top:auto;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;padding:50px 12px 5px;gap:12px}.original-driver-link:hover{color:#fff}.carbon-workspace{min-width:0;padding:0 40px;max-width:1380px;width:100%;margin:0 auto}.carbon-topbar{min-height:85px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.carbon-breadcrumb{font-size:14px;color:#b1b9bd}.telemetry{display:flex;align-items:center;gap:24px}.telemetry-reading{display:flex;align-items:center;gap:8px;background:none;border:0;padding:7px 0;color:#939b9d;font-size:14px;white-space:nowrap}.telemetry-reading>span{display:flex;gap:10px}.telemetry-reading b{font-family:var(--mono);font-size:14px;color:#c5ccd0;font-weight:400}.telemetry-reading>.c-icon{width:20px;height:20px;color:#777f82}.telemetry .compact{font-size:14px;padding:8px 15px;min-height:37px}.carbon-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0 16px}.preview-state{font-size:12px;color:#8e9698}.profile-picker{gap:10px}.profile-picker label{font-family:inherit;font-size:12px;letter-spacing:0;color:#929a9c}.profile-picker :is(select,.select-trigger){font-size:14px;background:#191d20;border:1px solid var(--line);border-radius:5px;padding:8px 26px 8px 11px;min-width:135px;max-width:205px}.profile-picker .icon-button{font-size:18px;padding:5px 9px;min-width:30px}.section-heading{align-items:center;margin-bottom:24px}.section-heading h1{font-size:32px;letter-spacing:-.8px;font-weight:500;line-height:1.3;margin:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:25px 27px;min-width:0}.card h2{font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;color:#dfe3e5;margin:0 0 24px;line-height:1.5}.card-heading{margin-bottom:19px;min-height:28px}.card-heading h2{margin:0}.small-note{font-family:var(--mono);font-size:12px;line-height:1.5;color:#969fa1}.setting-title,.setting-label{display:inline-flex;align-items:center;gap:7px;line-height:1.5}.setting-label{font-size:14px}.info-button{background:none;border:0;padding:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#8c9699;flex-shrink:0}.info-button>.c-icon{display:block;width:14px;height:14px;flex:0 0 14px;stroke-width:1.5}.info-button:hover,.info-button[aria-describedby]{color:#e5e7e9;background:#272e31}.performance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.sensitivity-card{grid-column:1/3}.axis-link{display:flex;align-items:center;gap:6px;font-size:14px;color:#b2babb}.axis-link>.switch{margin-left:9px}.axis-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:38px}.axis-grid.independent{grid-template-columns:1fr 1fr}.axis-grid.independent>.axis-control+ .axis-control{border-left:1px solid var(--line);padding-left:35px}.axis-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.axis-heading>label{font-size:14px;color:#a7b0b2}.axis-grid:not(.independent) .axis-heading>label{display:none}.axis-value{display:flex;align-items:baseline;gap:12px}.axis-value input{font-family:inherit;background:none;border:0;border-bottom:1px solid transparent;color:#f4f5f6;text-align:left;font-size:44px;line-height:1.2;font-weight:400;padding:0;letter-spacing:-1px;width:5.6ch;max-width:100%;font-variant-numeric:tabular-nums}.axis-value input:focus{border-color:#78858c}.axis-value>span{font-family:var(--mono);font-size:12px;letter-spacing:.3px;color:#8a979e}.axis-grid.independent .axis-value input{text-align:right;font-size:36px;width:5.7ch}.axis-control input[type=range]{margin:22px 0 9px;height:3px}.range-limits{font-size:12px;line-height:1.5;color:#8b9698;margin-bottom:21px}.axis-control .range-limits{margin-bottom:20px}.segments{gap:8px}.segment{background:#111618;border-color:#31383b;border-radius:5px;font-size:14px;padding:10px 7px;min-height:48px;line-height:1.45;color:#a5afb0}.segment:hover{border-color:#606b72;color:#f4f5f6}.segment[aria-pressed=true]{background:#e5e7e9;color:#171b1e;border-color:#e5e7e9}.segment small{font-family:inherit;font-size:12px;margin:3px 0 0;opacity:.8}.dpi-stages .segment{padding:10px 13px;min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#121719;text-align:left}.dpi-stages .segment>span{font-family:inherit;font-size:12px;white-space:nowrap;color:#9ca6a8}.dpi-stages .segment>strong{font-family:var(--mono);font-size:14px;font-weight:400;color:#c5ccd0;overflow-wrap:anywhere}.dpi-stages .segment[aria-pressed=true]{border-color:#aab3b8;background:var(--menu-hover)}.dpi-stages .segment[aria-pressed=true]>strong{color:var(--menu-text)}.dpi-stages .segment[aria-pressed=true]>span{color:#c5ccd0}.polling-card .segments,.lod-card .segments{margin-top:5px}.sensor-card,.debounce-card{padding-top:24px;padding-bottom:22px}.sensor-card h2{margin-bottom:17px}.sensor-card .setting-row{margin:0;min-height:49px;border-bottom:1px solid #252c2e;gap:16px}.sensor-card .setting-row:last-child{border-bottom:0}.switch{background:#303739;border-color:#343e40;width:38px;height:22px}.switch:after{background:#919b9e}.switch[aria-checked=true]{background:#e5e7e9;border-color:#e5e7e9}.switch[aria-checked=true]:after{background:#171b1e}.debounce-card .card-heading{margin-bottom:15px}.debounce-card .segment{min-height:39px;padding:8px 5px;font-size:14px;font-family:inherit}.debounce-values{margin-top:15px}.debounce-values .setting-row{min-height:39px;gap:12px;margin:0 0 5px;font-size:14px}.debounce-values .setting-row:last-child{margin:0}.number-stepper{display:flex;align-items:center;border:1px solid #323b3d;border-radius:4px;background:#121719;height:34px;white-space:nowrap;flex-shrink:0}.number-stepper button{display:grid;place-items:center;align-self:stretch;flex-shrink:0;width:30px;height:100%;padding:0;border:0;background:none;line-height:1;color:#a4b0b1}.number-stepper button svg{display:block;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.number-stepper button:first-child{border-radius:3px 0 0 3px}.number-stepper button:last-child{border-radius:0 3px 3px 0}.number-stepper button:enabled:hover{background:#282e30;color:white}.number-stepper input{background:none;border:0;width:37px;text-align:right;color:#dfe3e5;padding:3px 2px;font-family:var(--mono);font-size:14px}.number-stepper>span{font-family:var(--mono);font-size:12px;color:#8a979e;padding:0 7px 0 3px}.additional-card{grid-column:1/3;padding:0 26px}.additional-card .advanced{margin:0;padding:0;border:0}.advanced summary{font-family:inherit;font-size:14px;letter-spacing:0;color:#c5ccd0;min-height:58px}.advanced summary::-webkit-details-marker{display:none}.advanced summary:after{font-size:20px}.advanced[open] summary{margin-bottom:0}.additional-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:8px 0 23px}.additional-grid .setting-row{margin:0;min-height:30px;font-size:14px}.additional-grid .range-limits{margin-bottom:0}.additional-grid .segments{margin-top:18px}.additional-grid .segment{min-height:47px;font-size:14px;padding:6px 3px}.additional-grid .segment small{font-size:12px}.angle-output{font-family:var(--mono);font-size:14px}.button{font-size:14px;background:#1c2225;border-color:#364043;border-radius:5px;font-weight:500}.button.primary{background:#e5e7e9;color:#171b1e;border-color:#e5e7e9;font-weight:600}.button.primary .c-icon{width:17px;height:17px}.button:hover{background:#282e30;border-color:#606b72}.button.primary:hover{background:#f4f5f6;border-color:#f4f5f6}.text-button{font-size:14px}.grid,.stack{gap:18px}.form-select,.text-input{background:#121719;border-color:#353d41;font-size:14px}.inline-number{font-size:14px;background:#171b1e}.card>p{font-size:16px}.card .footnote{font-size:13px;color:#9ba3a7}.card .setting-row{font-size:14px}.mapping-row{font-size:14px}.mapping-select{font-size:14px}.mapping-row .mapping-config{font-size:14px}.mapping-row .form-select{font-size:14px}.mapping-row label{line-height:1.5}.macro-grid{grid-template-columns:225px minmax(0,1fr);gap:18px}.macro-library h2{font-size:14px}.macro-item{font-size:14px}.macro-item small,.macro-item>span:last-child,.editor-meta,.event-index,.event-type{font-size:12px}.event-row,.keycap,.delay-input{font-size:14px}.macro-editor .event-list{margin:18px -6px}.macro-editor .editor-name{font-size:22px}.macro-editor .record-bar .help,.macro-editor .delay-options,.macro-editor .run-settings{font-size:14px}.macro-editor .default-delay input,.macro-editor .run-settings .form-select{font-size:14px}.empty-editor p{font-size:16px}.event-empty p{font-size:14px}.event-empty strong{font-size:16px}.event-empty{line-height:1.6}.record-capture{font-size:14px}.small-note,.unit,.help{font-size:12px}.footnote{font-size:13px}.device-page-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;align-items:stretch}.connection-badge{color:#a2adaf;border:1px solid #3b474b;border-radius:4px;padding:4px 7px;font-size:12px;white-space:nowrap}.device-specs{margin:8px 0 21px}.device-specs>div{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;border-bottom:1px solid #2b3336;font-size:14px;color:#acb6b7}.device-specs>div:last-child{border-bottom:0}.device-specs b{font-weight:400;color:#dfe3e5;font-family:var(--mono);font-size:14px}.device-specs .setting-title{font-size:14px}.pairing-card .card-heading>.c-icon{color:#7f8e92}.instruction-list{counter-reset:steps;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.instruction-list>li{display:flex;gap:14px;align-items:flex-start;font-size:14px;line-height:1.65;color:#b1b9bd;counter-increment:steps}.instruction-list>li:before{content:counter(steps,decimal-leading-zero);font-family:var(--mono);font-size:12px;line-height:1.9;color:#8a979e;min-width:19px}.instruction-list strong{font-weight:500;color:#e5e7e9}.firmware-card{grid-column:1/3;padding-top:25px}.firmware-component{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px 0;border-top:1px solid var(--line)}.firmware-component-name{display:flex;align-items:center;gap:16px;min-width:0}.firmware-component-name>.c-icon{width:23px;height:25px;color:#b1b9bd}.firmware-component-name h3{font-size:16px;font-weight:500;margin:0 0 7px;line-height:1.5}.firmware-component-name span{font-size:13px;color:#9ba3a7}.firmware-component-name b{font-family:var(--mono);font-size:13px;font-weight:400;color:#c5ccd0;margin-left:14px}.firmware-component .button{min-width:171px}.firmware-card>p.updater-note{font-size:13px;color:#9ba3a7;line-height:1.5;margin:0 0 2px}.firmware-instructions.advanced{margin-top:22px;padding-top:0;border-top:1px solid var(--line)}.firmware-instructions summary{min-height:58px}.firmware-instructions .instruction-list{margin:8px 0 23px;max-width:890px}.keyboard-note{background:#171b1e;border:1px solid #353d41;padding:17px 19px;border-radius:5px}.keyboard-note h3{font-size:14px;margin:0 0 7px;font-weight:500;color:#c5ccd0}.keyboard-note p{font-size:14px;margin:0;color:#b1b9bd;line-height:1.7}kbd{font-family:var(--mono);font-size:12px;background:#282e30;border:1px solid #475158;border-radius:3px;padding:2px 5px;color:#dfe3e5;margin:0 1px}footer{font-size:12px;line-height:1.6;color:#8a979e;margin:24px 0;padding:19px 0;border-color:var(--line)}footer>span:last-child{font-family:inherit;font-size:12px;letter-spacing:1px;color:#78858c}dialog{background:var(--menu-surface);border-color:var(--menu-border);width:min(500px,calc(100vw - 32px))}dialog h2{font-size:23px}dialog p{font-size:16px;color:#b1b9bd}dialog .field{font-size:14px}dialog .help{font-size:13px}dialog .instruction-list{margin-top:20px}dialog .instruction-list li{font-size:16px}.setting-info{position:fixed;z-index:60;background:var(--menu-surface);color:var(--menu-text);border:1px solid var(--menu-border);box-shadow:none;border-radius:7px;width:320px;max-width:calc(100vw - 24px);padding:17px 19px;line-height:1.6}.setting-info[hidden]{display:none}.setting-info>strong{font-size:14px;font-weight:600;display:block;line-height:1.4;margin-bottom:8px}.setting-info>p{font-size:14px;line-height:1.65;color:#b1b9bd;margin:0}.battery-impact{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #353d41;padding-top:12px;margin-top:14px;font-size:12px;color:#9ba3a7}.battery-impact>b{font-size:12px;font-weight:500;color:#c5ccd0}.battery-impact>b[data-impact=low]{color:#c5ccd0}.battery-impact>b[data-impact=medium]{color:#d5c595}.battery-impact>b[data-impact=high]{color:#e1aaa5}.toast{font-size:14px;line-height:1.6}
@media(min-width:1450px){.carbon-workspace{padding:0 50px}.carbon-toolbar{margin-top:26px;margin-bottom:20px}.section-heading{margin-bottom:28px}.card{padding:26px 30px}.additional-card{padding:0 30px}.sensor-card .setting-row{min-height:50px}.carbon-sidebar{padding-top:34px}.performance-grid{gap:20px}.axis-value input{font-size:48px}.axis-grid.independent .axis-value input{font-size:39px}}
@media(max-width:1150px){.carbon-shell{grid-template-columns:195px minmax(0,1fr)}.carbon-sidebar{padding:28px 13px}.carbon-brand{margin-left:5px}.carbon-brand>strong{font-size:25px}.carbon-brand>svg{width:25px}.carbon-nav a{padding:13px 11px;gap:10px}.carbon-nav a[aria-current=page]:after{display:none}.carbon-workspace{padding:0 27px}.telemetry{gap:18px}.telemetry-reading{font-size:13px;gap:7px}.telemetry-reading>span{gap:7px}.card{padding:23px}.performance-grid{gap:15px}.axis-grid{gap:24px}.axis-grid.independent>.axis-control+.axis-control{padding-left:23px}.axis-grid.independent .axis-value input{font-size:32px}.dpi-stages .segment{flex-direction:column;align-items:flex-start;gap:5px;padding:9px 11px}.dpi-stages .segment>strong{font-size:13px}.debounce-values .setting-row{font-size:13px;gap:6px}.number-stepper button{width:24px}.number-stepper input{width:34px}.number-stepper>span{padding-right:4px}.additional-card{padding:0 23px}.additional-grid{gap:26px}.device-page-grid{grid-template-columns:1fr 1fr}.device-specs>div{gap:12px;font-size:13px}.device-specs b{font-size:13px}.device-page-grid .card-heading{align-items:flex-start;gap:10px}.device-page-grid .card-heading h2{max-width:100%}.device-connection-card .card-heading{flex-wrap:wrap}.instruction-list>li{font-size:14px;gap:10px}.macro-grid{grid-template-columns:185px minmax(0,1fr)}.macro-editor{padding:21px}.macro-actions .button{padding:10px 12px}.mapping-row{grid-template-columns:28px 1fr;gap:12px}.mapping-row .mapping-select{grid-column:2}.mapping-config{grid-column:2}.firmware-card .small-note{font-family:inherit;font-size:12px}}
@media(max-width:920px){.carbon-shell{grid-template-columns:76px minmax(0,1fr)}.carbon-sidebar{padding:27px 12px;align-items:center}.carbon-brand{margin:0 0 34px}.carbon-brand>strong,.model-label>span,.carbon-nav a>span,.original-driver-link{display:none}.carbon-brand>svg{width:28px;height:28px}.model-label{padding:12px 14px;margin-bottom:23px}.model-label>.c-icon{width:19px;height:25px}.carbon-nav{width:100%;gap:9px}.carbon-nav a{justify-content:center;padding:14px 0}.carbon-nav a>.c-icon{width:19px;height:19px}.carbon-workspace{padding:0 27px}.carbon-topbar{min-height:76px}.telemetry{gap:18px}.section-heading h1{font-size:30px}.carbon-toolbar{margin-top:19px;margin-bottom:17px}.device-page-grid{grid-template-columns:1fr 1fr}.firmware-card{grid-column:1/3}.axis-grid.independent .axis-value input{font-size:33px}.axis-heading{gap:10px}.axis-grid.independent .axis-value>span{display:none}.additional-grid{gap:24px}.macro-grid{grid-template-columns:1fr}.macro-library{min-height:0;padding:20px}.macro-library .card-heading{margin-bottom:15px}.macro-list{flex-direction:row;overflow:auto;gap:8px}.macro-item{width:190px;min-width:170px;flex-shrink:0}.macro-editor{padding:25px}.macro-editor .event-row{grid-template-columns:24px 92px minmax(85px,1fr) 103px}.macro-empty{padding:5px 8px;font-size:14px}}
@media(max-width:700px){.carbon-shell{display:block}.carbon-sidebar{position:static;max-height:none;height:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:20px 21px 0;border:0;background:#121719;gap:0}.carbon-brand{margin:0}.carbon-brand>strong{display:block;font-size:24px}.carbon-brand>svg{width:24px;height:24px}.model-label{justify-self:end;margin:0;border:0;background:none;padding:0;gap:7px;font-size:12px}.model-label>span{display:block}.model-label>.c-icon{width:14px;height:22px}.carbon-nav{grid-column:1/3;flex-direction:row;margin-top:22px;gap:4px;justify-content:space-between}.carbon-nav a{gap:0;padding:13px 8px;border-radius:0;font-size:14px;flex:1;text-align:center;justify-content:center;border-bottom:2px solid transparent}.carbon-nav a>span{display:block}.carbon-nav a>.c-icon{display:none}.carbon-nav a[aria-current=page]{background:transparent;border-bottom-color:#dfe3e5}.carbon-workspace{padding:0 21px}.carbon-breadcrumb{display:none}.carbon-topbar{min-height:74px;justify-content:center;gap:0}.telemetry{width:100%;justify-content:space-between;gap:12px}.telemetry-reading{font-size:12px;gap:7px}.telemetry-reading>.c-icon{width:18px;height:18px}.telemetry-reading>span{gap:6px}.telemetry-reading b{font-size:13px}.telemetry .compact{font-size:13px;padding:8px 12px;min-height:35px}.carbon-toolbar{margin:20px 0 19px;gap:10px}.preview-state{font-size:12px}.profile-picker{margin:0;gap:4px}.profile-picker label{display:none}.profile-picker :is(select,.select-trigger){font-size:13px;min-width:100px;max-width:146px;padding:6px 18px 6px 9px}.profile-picker>.icon-button{padding:5px 7px;font-size:17px;min-width:27px;min-height:30px}.section-heading{margin-bottom:20px;gap:14px}.section-heading h1{font-size:28px;letter-spacing:-.6px}.section-heading>.button{font-size:13px;padding:9px 12px}.performance-grid{grid-template-columns:1fr;gap:15px}.sensitivity-card,.additional-card{grid-column:1}.card{padding:21px}.card h2{font-size:14px;margin-bottom:18px}.card-heading h2{margin:0}.card-heading{margin-bottom:18px;gap:8px}.info-button{width:26px;height:26px;padding:0}.info-button>.c-icon{width:14px;height:14px}.axis-link{gap:2px;font-size:12px}.axis-link>.switch{margin-left:5px;width:35px;height:20px}.axis-link>.switch:after{width:12px;height:12px;top:3px;left:3px}.axis-link>.switch[aria-checked=true]:after{transform:translateX(15px)}.sensitivity-card .setting-title{gap:3px}.axis-grid{gap:20px}.axis-grid.independent{grid-template-columns:1fr;gap:4px}.axis-grid.independent>.axis-control+.axis-control{border-left:0;border-top:1px solid var(--line);padding:19px 0 0}.axis-grid.independent .axis-value>span{display:inline;font-size:12px}.axis-grid.independent .axis-value input{font-size:33px}.axis-heading>label{font-size:14px}.axis-value input{font-size:43px}.axis-control input[type=range]{margin-top:20px}.range-limits{font-size:12px}.segments{gap:6px}.segment{font-size:14px;padding:10px 5px}.segment small{font-size:12px}.dpi-stages .segment{padding:9px 4px;align-items:center;gap:6px;text-align:center;min-height:58px}.dpi-stages .segment>span{font-size:12px}.dpi-stages .segment>strong{font-size:12px;line-height:1.4}.axis-grid.independent+.dpi-stages .segment>strong{font-size:12px;word-spacing:6px;max-width:7ch}.polling-card .segment{font-size:13px;padding:10px 2px;min-height:53px}.polling-card .segment small{font-size:12px}.sensor-card .setting-row{min-height:50px;gap:14px}.setting-label{font-size:14px}.debounce-values .setting-row{font-size:14px;min-height:43px;gap:14px}.number-stepper button{width:28px}.number-stepper input{width:40px}.number-stepper>span{font-size:12px;padding-right:7px}.debounce-card .segment{font-size:14px;padding:9px 5px}.additional-card{padding:0 21px}.additional-grid{grid-template-columns:1fr;gap:21px}.additional-grid .segments{margin-top:12px}.additional-grid .segment{font-size:14px}.device-page-grid{grid-template-columns:1fr;gap:15px}.firmware-card{grid-column:1}.device-page-grid .card-heading{align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:19px}.connection-badge{font-size:12px;padding:4px 7px}.device-specs>div{font-size:14px;min-height:46px}.device-specs b{font-size:14px}.instruction-list{gap:18px}.instruction-list>li{font-size:14px;line-height:1.75;gap:12px}.instruction-list>li:before{font-size:12px}.firmware-component{gap:15px;align-items:flex-start;padding:20px 0;flex-wrap:wrap}.firmware-component-name{gap:13px;flex:1;min-width:155px}.firmware-component .button{font-size:14px;min-width:0;padding:10px 13px;width:100%;justify-content:space-between}.firmware-component-name h3{font-size:16px}.firmware-component-name span{font-size:13px}.firmware-card .card-heading>.small-note{font-size:12px;color:#8a979e}.firmware-card>p.updater-note{font-size:13px}.keyboard-note{padding:15px}.keyboard-note p{font-size:14px}.grid{grid-template-columns:1fr;gap:15px}.stack{gap:15px}.macro-grid{gap:15px}.macro-library{padding:20px}.macro-editor{padding:19px}.macro-editor .event-row{grid-template-columns:20px 65px minmax(52px,1fr) 78px;gap:5px}.event-type{font-size:12px}.event-tools .icon-button{min-width:25px;width:25px;font-size:14px;padding:5px 2px}.keycap{font-size:12px;padding:4px 6px}.delay-input{font-size:13px;width:50px}.event-row .unit{font-size:12px}.macro-editor .record-bar .help{font-size:12px}.macro-editor .record-bar .button{font-size:14px;padding:9px 10px;gap:8px}.macro-editor .delay-options,.macro-editor .run-settings{font-size:14px}.macro-editor .run-settings .form-select{font-size:14px}.macro-actions .button{font-size:14px}.macro-actions{justify-content:flex-start}.macro-actions .text-button{flex-basis:100%;text-align:left;margin-bottom:5px}.macro-empty,.event-empty p{font-size:14px}.mapping-row .form-select{font-size:14px}.card .footnote{font-size:13px}.empty-editor{min-height:350px}.empty-editor h2{font-size:20px}.empty-editor p{font-size:16px}footer{font-size:12px;gap:15px;align-items:flex-start;padding:18px 0;margin:24px 0;line-height:1.7}footer>span:last-child{font-size:12px;text-align:right;max-width:115px;letter-spacing:.5px}dialog{padding:25px}dialog p{font-size:16px}.setting-info{padding:15px 17px;width:305px}.setting-info>p{font-size:14px}.setting-info>strong{font-size:14px}.toast{font-size:14px;bottom:20px}}
@media(max-width:365px){.carbon-sidebar{padding-left:16px;padding-right:16px}.carbon-workspace{padding-left:16px;padding-right:16px}.card{padding:18px}.additional-card{padding:0 18px}.carbon-nav a{font-size:13px;padding-left:5px;padding-right:5px}.telemetry{gap:8px}.telemetry-reading{gap:4px}.telemetry-reading>span{gap:5px}.telemetry-reading>.c-icon{width:16px}.telemetry .compact{padding:7px 9px}.axis-link .info-button{width:26px}.dpi-stages .segment>strong{font-size:12px}.number-stepper button{width:26px}.number-stepper input{width:35px}.debounce-values .setting-row{gap:8px}}
/* Keep navigation and controls steady as content or input modes change. */
html{scrollbar-gutter:stable;overflow-anchor:none}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
body :is(button,a,input,select,summary):focus{outline:none}
body :is(button,a,input,select,summary):focus-visible{outline:none;box-shadow:inset 0 0 0 1px #78858c}
#main:focus{outline:none}
body select.form-select,body .profile-picker :is(select,.select-trigger){appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23aeb7bb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;padding-right:40px}
.debounce-controls{border:0;padding:0;margin:0;min-inline-size:0;transition:opacity .16s ease}
.debounce-controls:disabled{opacity:.38}
.debounce-controls:disabled :is(button,input){cursor:not-allowed}
.debounce-controls:disabled button:hover{background:inherit;color:inherit;border-color:inherit}
.debounce-controls:disabled .segment[aria-pressed=true]:hover{background:#e5e7e9;color:#171b1e;border-color:#e5e7e9}
.carbon-brand>img{display:block;width:158px;height:auto;max-width:none;flex:none}
@media(min-width:921px){.carbon-brand{justify-content:center;margin-left:0;margin-right:0}}
.sensitivity-card .axis-grid{position:relative;min-height:140px;grid-template-rows:minmax(140px,auto);gap:40px}
.sensitivity-card .axis-grid.independent{grid-template-columns:repeat(2,minmax(0,1fr))}
.sensitivity-card .axis-grid.independent>.axis-control+.axis-control{border:0;padding:0}
.sensitivity-card .axis-grid.independent:before{content:'';position:absolute;left:50%;top:6px;bottom:28px;width:1px;background:var(--line);pointer-events:none}
.sensitivity-card .axis-control{min-width:0}
.sensitivity-card .axis-heading{min-height:60px}
.sensitivity-card .axis-value{min-width:0}
.sensitivity-card .axis-control .range-limits{margin-bottom:20px}
.sensitivity-card .dpi-stages .segment{min-height:58px}
.sensitivity-card .dpi-stages .segment>strong{white-space:nowrap;overflow-wrap:normal;max-width:none;word-spacing:normal}
@media(max-width:1150px){.carbon-brand>img{width:152px}.sensitivity-card .dpi-stages .segment{min-height:68px}.sensitivity-card .axis-grid{gap:32px}}
@media(min-width:701px) and (max-width:920px){.carbon-brand{width:28px;height:29px;overflow:hidden}.carbon-brand>img{width:155px}}
@media(max-width:700px){.carbon-brand>img{width:144px}.sensitivity-card .axis-grid{min-height:148px;grid-template-rows:minmax(148px,auto);gap:24px}.sensitivity-card .axis-heading{min-height:76px}.sensitivity-card .axis-grid.independent .axis-heading{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:4px}.sensitivity-card .axis-grid.independent .axis-value input{font-size:30px;text-align:left;width:5.7ch}.sensitivity-card .axis-grid.independent .axis-value>span{display:none}.sensitivity-card .axis-grid.independent:before{top:4px;bottom:25px}.sensitivity-card .dpi-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.sensitivity-card .dpi-stages .segment{min-height:62px}.sensitivity-card .dpi-stages .segment>strong{font-size:12px}.sensitivity-card .axis-heading>label{font-size:14px}.sensitivity-card .axis-control input[type=range]{margin-top:18px}}
@media(prefers-reduced-motion:reduce){.debounce-controls{transition:none}}

/* Shared heading baselines and row rhythm across adjacent settings cards. */
.card .card-heading{padding-inline:0}
.card .card-heading h2{display:flex;align-items:center;min-height:28px;line-height:1.5;margin:0}
.performance-grid{--response-row-height:50px}
.sensor-card>.card-heading,.debounce-card>.card-heading{min-height:28px;margin:0 0 12px}
.sensor-controls,.debounce-card .debounce-values{display:grid;grid-auto-rows:minmax(var(--response-row-height),auto);margin:0;gap:0}
.debounce-card .debounce-controls{display:block}
.debounce-card>.card-heading>.switch{flex-shrink:0}
.sensor-controls>.setting-row,.debounce-values>.setting-row{min-height:var(--response-row-height);margin:0;padding:0;border:0;line-height:1.5}
.sensor-controls>.setting-row{box-shadow:inset 0 -1px #252c2e}
.sensor-controls>.setting-row:last-child{box-shadow:none}
.sensor-controls .setting-label,.debounce-values>.setting-row>label{line-height:1.5}
.sensor-controls .setting-disabled .setting-label>span,.sensor-controls .setting-disabled>.switch{opacity:.4}
.sensor-controls .setting-disabled>.switch{cursor:not-allowed}

/* Validation stays within the existing panel footprint. */
.axis-value{position:relative}
.axis-value input[aria-invalid=true]{border-bottom-color:#db9994}
.axis-error{position:absolute;left:0;right:auto;top:calc(100% + 6px);z-index:5;width:max-content;max-width:100%;margin:0;padding:9px 12px;background:#261b1c;border:1px solid #895d5b;border-radius:5px;color:#edc0bb;font-size:13px;line-height:1.5;box-shadow:none}
.axis-grid.independent .axis-error{left:0;right:auto}
.axis-error[hidden]{display:none}
#scroll-reserve{height:0;pointer-events:none;overflow-anchor:none}
@media(max-width:700px){.axis-error{font-size:12px;padding:8px}.axis-grid.independent .axis-error{left:0;right:auto}}

/* Keep long macro libraries contained and actions close to each name. */
.macro-library{min-height:0;align-self:start}
.macro-library .macro-list{--macro-list-limit:clamp(180px,calc(100dvh - 330px),520px);position:relative;flex-direction:column;max-height:calc(var(--macro-list-limit) + var(--macro-panel-bottom));overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior-y:contain;gap:6px}
.macro-list-row{position:relative;flex:0 0 auto;min-width:0}
.macro-list-row .macro-item{width:100%;min-width:0;padding-right:43px}
.macro-delete{position:absolute;top:50%;right:5px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:29px;min-width:29px;height:29px;padding:5px;border:0;border-radius:4px;color:#8c9798;background:transparent}
.macro-delete:hover:not(:disabled){color:#efb9b4;background:#352326}
@media(max-width:920px){.macro-library .macro-list{--macro-list-limit:240px}}
/* The editor determines the shared desktop height; long libraries scroll inside it. */
@media(min-width:921px){
 .macro-library{align-self:stretch;display:flex;flex-direction:column;contain:size}
 .macro-library .card-heading{flex:0 0 auto}
 .macro-library .macro-list{flex:1 1 0;min-height:0;max-height:none}
}

/* Put the macro scroll rail against the panel edge, preserving row insets. */
.macro-library{--macro-panel-inset:27px;--macro-panel-bottom:25px;padding-right:0;padding-bottom:0;overflow:hidden}
.macro-library .card-heading{padding-right:var(--macro-panel-inset)}
.macro-library .macro-list{padding-right:calc(var(--macro-panel-inset) - 8px);padding-bottom:var(--macro-panel-bottom);scrollbar-width:thin;scrollbar-color:#606b72 #111618}
.macro-editor .event-list{scrollbar-width:thin;scrollbar-color:#606b72 #111618;overscroll-behavior-y:contain}
html{scrollbar-width:thin;scrollbar-color:#606b72 #111618}
@supports selector(::-webkit-scrollbar){
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu){scrollbar-width:auto;scrollbar-color:auto}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar{width:8px}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-track{background:#111618;border-radius:6px}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-thumb{background:#606b72;border:1px solid #111618;border-radius:6px;min-height:32px}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-thumb:hover{background:#8a979e}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-thumb:active{background:#b1b9bd}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-button{display:none;width:0;height:0}
 :is(html,.macro-library .macro-list,.macro-editor .event-list,.changelog-card .changelog-list,.select-menu,.language-menu)::-webkit-scrollbar-corner{background:#111618}
}
@media(min-width:1450px){.macro-library{--macro-panel-inset:30px;--macro-panel-bottom:26px}}
@media(max-width:1150px){.macro-library{--macro-panel-inset:23px;--macro-panel-bottom:23px}}
@media(max-width:920px){.macro-library{--macro-panel-inset:20px;--macro-panel-bottom:20px}}
@media(max-width:365px){.macro-library{--macro-panel-inset:18px;--macro-panel-bottom:18px}}

/* Secondary bindings stay compact and line up with their action dropdown. */
.button-assignments .mapping-config{grid-column:3;position:relative;display:block;width:min(100%,360px);min-width:0;justify-self:start}
.button-assignments .mapping-config>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.button-assignments .mapping-config :is(input,select,.select-trigger){display:block;width:100%;min-width:0;max-width:100%}
@media(max-width:1150px){.button-assignments .mapping-config{grid-column:2}}

@media(min-width:701px){
 .carbon-shell{--sidebar-width:220px;max-width:none;margin:0;min-height:100dvh;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
 .carbon-sidebar{position:fixed;top:0;bottom:0;left:0;z-index:20;width:var(--sidebar-width);height:100dvh;max-height:none;overflow-y:auto;overscroll-behavior-y:contain}
 .carbon-workspace{grid-column:2}
}
@media(min-width:701px) and (max-width:1150px){.carbon-shell{--sidebar-width:195px}}
@media(min-width:701px) and (max-width:920px){.carbon-shell{--sidebar-width:76px}}

/* Macro selection and playback live together in the assignment dialog. */
.mapping-action-control{grid-column:3;position:relative;display:flex;align-items:center;min-width:0}
.mapping-action-control>.mapping-select{width:100%;min-width:0;flex:1}
.mapping-action-control:has(>.edit-macro-binding)>.mapping-select{padding-right:78px}
.mapping-action-control>.edit-macro-binding{position:absolute;right:36px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:32px;padding:0;border:0;border-radius:4px;color:#b1b9bd;background:transparent}
.mapping-action-control>.edit-macro-binding:hover{background:#282e30;color:#f4f5f6}
.macro-assignment-dialog .assignment-target{color:var(--muted);font-size:14px;margin:-6px 0 22px}
.macro-assignment-dialog .field{margin:0 0 24px}
.macro-assignment-dialog .field>label,.binding-playback>legend{font-size:14px;font-weight:500;color:#dfe3e5}
.binding-playback{border:0;padding:0;margin:0;min-inline-size:0}
.binding-playback>legend{padding:0;margin:0 0 10px}
.binding-mode-row{display:flex;align-items:center;gap:14px;min-height:50px;padding:7px 0}
.binding-mode-row>label{display:flex;align-items:center;gap:11px;min-width:0;flex:1;font-size:14px;line-height:1.5;cursor:pointer}
.binding-mode-row input[type=radio]{width:16px;height:16px;margin:0;flex:0 0 16px;accent-color:#e5e7e9}
.binding-mode-row>#binding-count{width:74px;min-width:0;flex:0 0 74px;height:38px;padding:7px 8px;text-align:center;font-family:var(--mono);font-size:14px}
.binding-mode-row>#binding-count:disabled{opacity:.35;cursor:not-allowed}
.binding-mode-row>#binding-count[aria-invalid=true]{border-color:#b7837c}
.macro-assignment-dialog .binding-error{margin:12px 0 0;color:#edb5ad;font-size:14px;line-height:1.5}
@media(max-width:1150px){.mapping-action-control{grid-column:2}}
@media(max-width:380px){.binding-mode-row{gap:8px}.binding-mode-row>#binding-count{width:60px;flex-basis:60px}}

.device-connection-card .device-specs{margin:0}
.changelog-card{--changelog-panel-inset:27px;min-width:0;padding-right:0}
.changelog-card>.card-heading{padding-right:var(--changelog-panel-inset)}
.changelog-empty{display:flex;align-items:center;min-height:46px;border-bottom:1px solid transparent;margin:0;color:var(--muted);font-size:14px;line-height:inherit}
@media(min-width:701px) and (max-width:1150px){.changelog-empty{font-size:13px}}
.changelog-list{max-height:220px;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#606b72 #111618;padding-right:calc(var(--changelog-panel-inset) - 8px);overflow-wrap:anywhere}
.changelog-entry+.changelog-entry{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.changelog-version{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.changelog-version h3{font-size:14px;font-weight:500;margin:0;color:#dfe3e5}
.changelog-version time{font-family:var(--mono);font-size:12px;color:var(--muted)}
.changelog-entry ul{padding-left:18px;margin:10px 0 0;color:#acb6b7;font-size:14px;line-height:1.7}
.changelog-entry li+li{margin-top:5px}
@media(min-width:1450px){.changelog-card{--changelog-panel-inset:30px}}
@media(max-width:1150px){.changelog-card{--changelog-panel-inset:23px}}
@media(max-width:920px){.changelog-card{--changelog-panel-inset:20px}}
@media(max-width:365px){.changelog-card{--changelog-panel-inset:18px}}
.device-actions{display:flex;justify-content:flex-end;margin-top:20px}
.record-capture{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:112px;padding:22px;text-align:center;user-select:none;cursor:crosshair}
.record-capture>strong{font-size:16px;font-weight:500;color:#e5e7e9}
.record-capture>span{font-size:14px;line-height:1.5;color:#b1b9bd}
.macro-editor #macro-save-state{font-size:14px}
.macro-editor .delay-options>label{display:inline-flex;align-items:center;gap:8px;min-height:32px;line-height:20px}
.macro-editor .delay-options input[type=radio]{display:block;margin:0;width:14px;height:14px;flex:0 0 14px;align-self:center}
.macro-editor .default-delay{min-height:32px;line-height:20px}
.macro-editor .default-delay input{height:32px;line-height:20px}

/* Language preference is independent of profiles. Native names stay recognizable. */
.toolbar-controls{display:flex;align-items:center;justify-content:flex-end;gap:20px;min-width:0;flex-wrap:wrap}
.language-picker{display:flex;align-items:center;gap:8px;min-width:0}
.carbon-toolbar{flex-wrap:wrap}
.setting-title,.setting-label,.setting-row>label{min-width:0}
.setting-info{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
.event-type{white-space:normal;overflow-wrap:anywhere;line-height:1.4}
:is(.record-bar,.macro-actions,.delay-options,.dialog-actions){flex-wrap:wrap}
html[lang="zh-CN"] body{font-family:'Inter',"Microsoft YaHei","PingFang SC",sans-serif}
html[lang="ko"] body{font-family:'Inter',"Malgun Gothic","Apple SD Gothic Neo",sans-serif}
html[lang="ja"] body{font-family:'Inter',"Yu Gothic",Meiryo,sans-serif}
html[lang="th"] body{font-family:'Inter',"Leelawadee UI",Tahoma,sans-serif}
html:is([lang=zh-CN],[lang=ko],[lang=ja],[lang=th]) :is(button,input,select){font-family:inherit}
@media(max-width:700px){.carbon-toolbar{align-items:flex-start}.toolbar-controls{gap:12px;flex:1}.preview-state{flex-basis:100%}.toolbar-controls{justify-content:space-between}.profile-picker{min-width:0}.firmware-card>.card-heading{flex-wrap:wrap}.button{white-space:normal;text-align:center}}
@media(max-width:380px){.toolbar-controls{gap:8px}.language-picker{gap:5px}.profile-picker :is(select,.select-trigger){min-width:90px;max-width:108px}}

/* Quiet global language preference beside the app version. */
.footer-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 20px;min-width:0}
.footer-meta .app-version{font-size:12px;letter-spacing:1px;color:#78858c}
.sidebar-footer{margin-top:auto;padding-top:32px;width:100%}
.language-picker{width:100%}
.language-picker .language-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 12px;margin:0;border:0;border-radius:5px;background:transparent;box-shadow:none;color:var(--menu-muted);font:inherit;font-size:13px;line-height:1.5;text-align:left;cursor:pointer}
.language-trigger>.c-icon{display:block;width:16px;height:16px;flex:0 0 16px}
.language-trigger>.c-icon:not(.language-chevron){transform:none}
.language-trigger .language-value{flex:1;min-width:0;line-height:20px;background:none;border:0;box-shadow:none}
.language-trigger>.language-chevron{width:14px;height:14px;flex-basis:14px;transform:rotate(180deg);transition:transform .12s ease}
.language-trigger[aria-expanded=true]>.language-chevron{transform:rotate(0)}
.language-trigger[data-menu-side=below]>.language-chevron{transform:rotate(0)}
.language-trigger[data-menu-side=below][aria-expanded=true]>.language-chevron{transform:rotate(180deg)}
.language-picker .language-trigger:hover,.language-picker .language-trigger[aria-expanded=true]{background:var(--menu-hover);color:var(--menu-text)}
.language-picker .language-trigger:focus{outline:none;box-shadow:none}
.language-picker .language-trigger:focus-visible{box-shadow:inset 0 0 0 1px #7e8a90}
.language-menu{position:fixed;z-index:80;isolation:isolate;box-sizing:border-box;padding:4px;border:1px solid var(--menu-border);border-radius:6px;background:var(--menu-surface);color:var(--menu-text);box-shadow:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#606b72 #111618}
.language-menu[hidden]{display:none}
.language-option{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:34px;padding:7px 10px;border:0;border-radius:3px;font-size:14px;line-height:1.4;cursor:pointer;user-select:none}
.language-option>svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}
.language-option[aria-selected=true]{color:var(--menu-text)}
.language-option[aria-selected=true]>svg{visibility:visible}
.language-option:hover,.language-option[data-active]{background:var(--menu-hover);color:#f0f2f3}
footer .language-picker{width:auto}
footer .language-trigger{min-height:30px;padding:4px 6px;font-size:12px;gap:7px}
footer .language-trigger>.c-icon{width:14px;height:14px;flex-basis:14px}
@media(min-width:701px) and (max-width:920px){.sidebar-footer .language-trigger{width:44px;justify-content:center;padding:9px}.sidebar-footer .language-value,.sidebar-footer .language-chevron{display:none}.sidebar-footer .language-trigger>.c-icon{width:19px;height:19px;flex-basis:19px;transform:none}}
@media(prefers-reduced-motion:reduce){.language-trigger>.language-chevron{transition:none}}
footer .mobile-language-picker{display:none}
@media(max-width:700px){.sidebar-footer{display:none}footer .mobile-language-picker{display:flex}}
.carbon-toolbar>.toolbar-controls{margin-left:auto}
.carbon-nav a>span{min-width:0}

/* Each thin accent opens its color editor without changing the selected stage. */
.sensitivity-card>.card-heading{flex-wrap:wrap;gap:12px 20px}
.sensitivity-options{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-left:auto}
.dpi-stage-tile{position:relative;display:grid;place-items:center;min-width:0}
.sensitivity-card .dpi-stage-tile>.segment{position:relative;z-index:0;grid-area:1/1;width:100%;height:100%;padding:0}
.dpi-stage-content{position:relative;z-index:1;grid-area:1/1;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}
.dpi-stage-value{font:400 14px/1.45 var(--mono);text-align:center;color:#c5ccd0;white-space:nowrap}
.dpi-stage-tile>.segment[aria-pressed=true]+.dpi-stage-content>.dpi-stage-value{color:var(--menu-text)}
.dpi-stage-color{position:relative;display:grid;place-items:center;width:36px;height:20px;margin-block:-9px;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto}
.dpi-stage-color::before{content:'';position:absolute;z-index:0;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:8px;border-radius:2px;background:transparent}
.dpi-stage-color:hover::before,.dpi-stage-color:focus-visible::before{background:#30383b}
.dpi-stage-color:focus-visible{box-shadow:none}
.dpi-stage-color:focus-visible::before{box-shadow:inset 0 0 0 1px #78858c}
.dpi-stage-accent{position:relative;z-index:1;display:block;width:14px;height:2px;background:var(--dpi-color);pointer-events:none}
@media(max-width:700px){.dpi-stage-value{font-size:12px}.sensitivity-options{gap:8px;justify-content:space-between}.sensitivity-card>.card-heading>.sensitivity-options{flex:1 0 auto}.sensitivity-options .dpi-stage-count{gap:6px;font-size:12px}.sensitivity-options .dpi-stage-count>.form-select{width:50px;min-height:30px;padding:4px 20px 4px 7px}}
@media(max-width:380px){.dpi-stage-count>label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
.dpi-stage-count{display:flex;align-items:center;gap:10px;font-size:13px;color:#b1b9bd}
.dpi-stage-count>.form-select{width:64px;min-height:34px;padding:5px 29px 5px 11px;font-size:13px}
.dpi-color-dot{display:block;width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:var(--dpi-color);pointer-events:none}
.dpi-color-picker{margin-top:16px}
.dpi-color-stage{margin:0 0 14px!important;font-size:14px!important}
.dpi-color-plane{position:relative;aspect-ratio:1.9;width:100%;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent),hsl(var(--picker-hue,240) 100% 50%);border-radius:6px;cursor:crosshair;touch-action:none;user-select:none;outline-offset:4px}
.dpi-color-cursor{position:absolute;left:var(--picker-x,100%);top:var(--picker-y,0%);width:15px;height:15px;border:2px solid white;box-shadow:0 0 0 1px #0008;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
#dpi-color-help{font-size:12px;margin:12px 0 18px;line-height:1.5}
#dpi-color-hue{appearance:none;-webkit-appearance:none;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);height:12px;border-radius:7px;margin:0 0 22px;cursor:pointer}
#dpi-color-hue::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;background:transparent;border:2px solid white;width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 1px #0008}
#dpi-color-hue::-moz-range-thumb{background:transparent;border:2px solid white;width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 1px #0008}
.dpi-color-fields{display:grid;grid-template-columns:minmax(110px,1.5fr) repeat(3,minmax(0,1fr));gap:12px}
.dpi-color-fields>label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#b1b9bd}
.dpi-color-fields .text-input{width:100%;min-width:0;padding:9px 7px;text-align:center;font-family:var(--mono);font-size:13px}
.dpi-color-fields input[aria-invalid=true]{border-color:#ba7f76}
#dpi-color-error{font-size:13px;line-height:1.5;margin:12px 0 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.carbon-toolbar .preview-state{flex-basis:auto}.carbon-toolbar>.toolbar-controls{flex:0 1 auto}.footer-meta{gap:5px 12px}.footer-meta>.app-version{max-width:none!important}.dpi-stage-count{gap:7px;font-size:12px}.dpi-color-fields{gap:8px;grid-template-columns:minmax(95px,1.5fr) repeat(3,minmax(0,1fr))}.dpi-color-fields .text-input{font-size:12px;padding:9px 4px}}
@media(max-width:420px){footer{align-items:flex-start;gap:12px}.footer-meta{flex-direction:column;align-items:flex-end}.footer-meta .app-version{max-width:160px!important;text-align:right}.dpi-stage-count{gap:6px}.dpi-stage-count>.form-select{width:57px}}

/* Identical version columns and progress tracks for receiver and mouse. */
.firmware-card .firmware-component{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(0,2fr) auto;grid-template-areas:"device versions action" "device progress progress";gap:16px 24px;align-items:center;padding:24px 0}
.firmware-card .firmware-component-name{grid-area:device;align-self:start;align-items:center;padding-top:2px;min-width:0}
.firmware-card .firmware-component-name h3{margin:0}
.firmware-versions{grid-area:versions;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0}
.firmware-versions>div{min-width:0}
.firmware-versions dt{font-size:13px;line-height:1.5;color:#9ba3a7}
.firmware-versions dd{font-family:var(--mono);font-size:14px;line-height:1.5;font-weight:400;color:#dfe3e5;margin:6px 0 0;overflow-wrap:anywhere}
.firmware-card .firmware-update-button{grid-area:action;width:auto;align-self:center}
.firmware-progress{grid-area:progress;display:flex;align-items:center;gap:14px;min-width:0}
.firmware-progress progress{display:block;flex:1;width:100%;min-width:0;height:8px;appearance:none;-webkit-appearance:none;border:0;border-radius:4px;background:#293133;color:#56cc8b;overflow:hidden}
.firmware-progress progress::-webkit-progress-bar{background:#293133;border-radius:4px}
.firmware-progress progress::-webkit-progress-value{background:#56cc8b;border-radius:4px}
.firmware-progress progress::-moz-progress-bar{background:#56cc8b;border-radius:4px}
.firmware-progress>span{width:4ch;flex:0 0 4ch;font-family:var(--mono);font-size:13px;line-height:1.5;text-align:right;color:#b1b9bd;font-variant-numeric:tabular-nums}
@media(max-width:700px){.firmware-card .firmware-component{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"device action" "versions versions" "progress progress";gap:20px 16px}.firmware-card .firmware-component-name{align-self:center;padding-top:0}.firmware-versions{gap:16px}.firmware-card .firmware-update-button{min-width:0;justify-content:center}}
@media(max-width:380px){.firmware-card .firmware-component{grid-template-columns:minmax(0,1fr);grid-template-areas:"device" "versions" "progress" "action"}.firmware-card .firmware-update-button{width:100%}}

/* Dialog focus is represented by its active control. */
dialog:focus{outline:none}

/* Connection gating keeps the existing workspace visible without exposing inactive controls. */
body.device-locked :is(.model-label,.carbon-nav,.toolbar-controls){opacity:.38;filter:grayscale(1)}
body.device-locked [data-connection-gated]{pointer-events:none;user-select:none}
body.device-locked #save-status{visibility:hidden}
.preview-state{display:inline-flex;align-items:center;gap:8px;line-height:1.5}
body[data-connection-phase=connecting] .preview-state::before{content:'';width:12px;height:12px;flex:0 0 12px;border:2px solid #454b50;border-top-color:#dfe3e5;border-radius:50%;animation:connection-spin .7s linear infinite}
@keyframes connection-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body[data-connection-phase=connecting] .preview-state::before{animation:none}}
.connection-device{font-weight:500;color:var(--white)}
/* Signal level and charge are the only color-coded telemetry. */
body .signal-bars[data-signal-level=high]{color:#55cde5}
body .signal-bars[data-signal-level=medium]{color:#e7bd62}
body .signal-bars[data-signal-level=low]{color:#ef7777}
body .signal-bars[data-signal-level=unavailable]{color:#777f82}
.signal-bars .signal-bar{opacity:.25}
.signal-bars .signal-bar.is-active{opacity:1}
.telemetry-battery[data-battery-level=normal]>.battery-icon{color:#56cc8b}
.telemetry-battery[data-battery-level=low]>.battery-icon{color:#ef7777}

/* Compact, consistent reading controls in the top bar and Device panel. */
.telemetry{--telemetry-font-size:14px}
.telemetry-reading{--telemetry-icon-size:20px;font-size:var(--telemetry-font-size);line-height:20px;cursor:default}
.telemetry-reading>span{line-height:20px}
.telemetry-reading>.c-icon{display:block;width:var(--telemetry-icon-size);height:var(--telemetry-icon-size);flex:0 0 var(--telemetry-icon-size)}
.device-telemetry>.c-icon{display:block;width:20px;height:20px;flex:0 0 20px}
@media(max-width:700px){.telemetry-reading{--telemetry-icon-size:18px}}
@media(max-width:365px){.telemetry-reading{--telemetry-icon-size:16px}}
.battery-icon .battery-fill,.battery-icon .battery-terminal{fill:currentColor;stroke:none}
.battery-icon .battery-shell{fill:none;stroke:currentColor;stroke-width:1}
.telemetry-battery[data-battery-level=unavailable]>.battery-icon{color:#777f82}
.device-telemetry{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:4px;border:0;border-radius:4px;background:transparent;cursor:default}
.setting-info.reading-tooltip{width:max-content;padding:4px 10px;font-family:'Inter',Arial,sans-serif;font-size:14px;line-height:18px;font-variant-numeric:tabular-nums}

/* Show a single connection prompt until the local connection preview is ready. */
body.device-locked .carbon-toolbar{visibility:hidden}
body.device-locked #main>:not(.connection-empty){display:none}
.connection-empty{min-height:clamp(280px,calc(100dvh - 280px),720px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:32px 16px}
.connection-empty h1{font-size:24px;font-weight:500;line-height:1.3;letter-spacing:-.03em;margin:0;color:var(--white)}
.connection-empty p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}
.connection-empty.is-connecting::before{content:'';width:20px;height:20px;margin-bottom:8px;border:2px solid #454b50;border-top-color:#dfe3e5;border-radius:50%;animation:connection-spin .7s linear infinite}
@media(prefers-reduced-motion:reduce){.connection-empty.is-connecting::before{animation:none}}
/* Keep the Macros action shorter than the heading so every page starts on the same line. */
.section-heading>[data-action=new-macro]{padding-block:8px}

/* Align the device name with the status artwork and keep connection status quiet. */
.device-connection-card .device-specs>div>b{padding-inline-end:8px}
.telemetry-connection{display:inline-flex;align-items:center;justify-content:center;min-height:37px;padding:8px 15px;font-size:14px;color:var(--muted);white-space:nowrap}
.telemetry-connection-slot{display:grid;flex:0 0 auto;font-size:var(--telemetry-font-size);line-height:20px}
.telemetry-connection-slot>*{grid-area:1/1}
.telemetry-connection-sizer{display:grid;visibility:hidden;pointer-events:none;user-select:none;font-weight:500}
.telemetry-connection-sizer>span{grid-area:1/1;white-space:nowrap}
.telemetry-connection-sizer>span:not(:last-child){padding:9px 16px}
.telemetry .telemetry-connection-slot>:is(.compact,.telemetry-connection){font-size:inherit;line-height:inherit;min-height:38px;width:100%;padding:8px 15px}
.telemetry .telemetry-connection-slot>.telemetry-connection{justify-content:flex-end;padding-inline:0;border:0;text-align:right}
.demo-controls{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
.demo-disconnect{background:none;border:0;padding:0;font-size:12px;line-height:18px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.demo-disconnect:hover{color:var(--white)}
@media(max-width:1150px){.telemetry{--telemetry-font-size:13px}}
@media(max-width:700px){.telemetry{--telemetry-font-size:12px}}
/* Disconnected navigation has no selected or hover treatment. */
body.device-locked .carbon-nav a,body.device-locked .carbon-nav a:hover{background:transparent;color:var(--muted);border-bottom-color:transparent}
body.device-locked .carbon-nav a::after{display:none}

/* Keep compact controls readable without changing the stage card widths. */
.dpi-stage-tile{container-type:inline-size}
.dpi-axis-name{display:none}
@container(max-width:180px){
 .sensitivity-card .dpi-stage-tile>.segment{padding-left:8px;padding-right:8px}
 .dpi-stage-content>.dpi-axis-values{display:flex;flex-direction:column;align-items:center;font-size:12px;line-height:1.5}
 .dpi-axis-values .dpi-axis-name{display:inline;color:var(--muted)}
 .dpi-axis-values .dpi-axis-separator{display:none}
}
.macro-item small,.event-index{color:#969fa1}

/* Keep the profile reset aligned with the right edge of the settings cards. */
.performance-actions{display:flex;justify-content:flex-end;margin-top:23px}
.performance-reset{max-width:100%;padding:6px 0;border:0;font-size:14px;font-weight:400;line-height:1.5;text-align:right;text-decoration:none;color:#9ba3a7}
.performance-reset:hover{color:#e5e7e9}

/* Align the angle track with the center of the sleep buttons. */
.additional-grid{--additional-control-height:56px;--additional-control-gap:18px}
.additional-grid .sensor-angle-control{position:relative;display:flex;align-items:center;height:var(--additional-control-height);margin-top:var(--additional-control-gap)}
.additional-grid .sensor-angle-control input[type=range]{display:block;margin:0}
.additional-grid .sensor-angle-control .range-limits{position:absolute;left:0;right:0;bottom:0;pointer-events:none}
.additional-grid .segments{min-height:var(--additional-control-height);margin-top:var(--additional-control-gap)}
@media(max-width:700px){.additional-grid{--additional-control-gap:12px}}

/* Text fields share one inset; small numeric controls use the compact inset. */
:root{--field-inset-block:8px;--field-inset-inline:8px;--field-compact-block:4px;--field-compact-inline:8px}
body :is(.text-input,.editor-name,.axis-value input,.dpi-value input,.delay-input,.inline-number,.number-stepper input):not([type=range]),body #binding-count{
 box-sizing:border-box;
 padding:var(--input-inset-block,var(--field-inset-block)) var(--input-inset-inline,var(--field-inset-inline));
 border-width:1px;border-style:solid;border-radius:5px;
}
body :is(.editor-name,.axis-value input,.dpi-value input,.delay-input,.number-stepper input){border-color:transparent}
body :where(.delay-input,.inline-number,.number-stepper input,.dpi-color-fields input[type=number],#binding-count){
 --input-inset-block:var(--field-compact-block);--input-inset-inline:var(--field-compact-inline);
}
body .delay-input{--input-inset-inline:6px}
.dpi-color-fields input[type=text]{--input-inset-inline:12px}
body :is(.text-input,.editor-name,.axis-value input,.dpi-value input,.delay-input,.inline-number,.number-stepper input):focus{
 border-color:#78858c;outline:none;box-shadow:none;
}
body :is(.text-input,.editor-name,.axis-value input,.dpi-value input,.delay-input,.inline-number,.number-stepper input)[aria-invalid=true],body #binding-count[aria-invalid=true]{border-color:#db9994}
.sensitivity-card .axis-value input{width:calc(5.6ch + 18px);flex-shrink:1;min-width:0}
.sensitivity-card .axis-grid.independent .axis-value input{width:calc(5.7ch + 18px)}
.dpi-value input{width:calc(5.6ch + 18px)}
.macro-editor .default-delay input{width:calc(5ch + 18px);min-width:calc(5ch + 18px);font-variant-numeric:tabular-nums}
.macro-editor .delay-input{width:calc(5ch + 14px);min-width:calc(5ch + 14px);font-variant-numeric:tabular-nums}
.number-stepper button{width:24px}
.number-stepper input{width:calc(2ch + 18px);min-width:calc(2ch + 18px);height:28px;text-align:center;line-height:18px;font-variant-numeric:tabular-nums}
.number-stepper>span{flex-shrink:0;padding:0 4px}
.dpi-color-fields .text-input{min-height:38px}
@media(max-width:420px){
 .dpi-color-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sensitivity-card .axis-grid.independent{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:20px}
 .sensitivity-card .axis-grid.independent:before{display:none}
 .sensitivity-card .axis-grid.independent .axis-heading{flex-direction:row;align-items:center;min-height:60px}
}

/* Keep demo status in the top bar and align every page heading and first panel. */
.carbon-topbar>.demo-controls[hidden],.carbon-toolbar>.toolbar-controls[hidden]{display:none}
.carbon-topbar>.telemetry{margin-left:auto}
.carbon-toolbar{--toolbar-panel-gap:28px;--toolbar-action-gap:18px;margin-block:30px var(--toolbar-panel-gap)}
.carbon-toolbar>.section-heading{margin:0;min-width:0;max-width:100%;flex:1 0 auto;flex-wrap:wrap;min-height:42px}
.carbon-toolbar>.section-heading h1{min-width:0;max-width:100%;flex-shrink:0;overflow-wrap:anywhere}
.carbon-toolbar>.toolbar-controls{flex:0 0 auto;max-width:100%}
.carbon-toolbar>.toolbar-controls,.carbon-toolbar>.section-heading>[data-action=new-macro]{align-self:flex-end;position:relative;top:calc(var(--toolbar-panel-gap) - var(--toolbar-action-gap))}
@media(min-width:1450px){.carbon-toolbar{--toolbar-action-gap:20px}}
@media(max-width:1150px){.carbon-toolbar{--toolbar-action-gap:15px}}
@media(max-width:700px){
 .carbon-topbar{flex-wrap:wrap;gap:12px;padding-block:16px}
 .carbon-topbar>.demo-controls{flex-basis:100%}
 .carbon-topbar .preview-state{flex-basis:auto}
 .carbon-topbar>.telemetry{width:auto;max-width:100%;justify-content:flex-end;gap:16px}
 .carbon-toolbar{--toolbar-panel-gap:24px;--toolbar-action-gap:15px;align-items:center;margin-block:24px}
 /* Keep the compact single row requested for narrow screens. */
 .carbon-toolbar{flex-wrap:nowrap}
 .carbon-toolbar>.section-heading{flex:1 1 0;flex-wrap:nowrap}
 .carbon-toolbar>.section-heading h1{max-width:none;white-space:nowrap;overflow-wrap:normal}
}
