:root{--font-ui: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;--font-data: Bahnschrift, "Segoe UI Variable", "Cascadia Mono", Consolas, monospace;--black: #121416;--canvas: #191c1f;--surface: #202428;--white: #e2e5e8;--muted: #969da5;--line: #34393e;--line-strong: #454b51;--orange: #d9783d;--yellow: #c4a44f}html[data-theme=light]{--black: #f4f6f8;--canvas: #ffffff;--surface: #eef1f4;--white: #20252b;--muted: #65707c;--line: #d8dde3;--line-strong: #c3cad2;--orange: #d96a1f;--yellow: #9a7d27}html[data-theme=light] .brand img{filter:none}html{font-family:var(--font-ui)}body,button,input,select,textarea{font-family:var(--font-ui);font-synthesis:none;letter-spacing:0}body{font-size:14px;line-height:1.5}body .main:before{opacity:.18}body .nav-button.locked{color:#596067!important}body .firmware-card,body .device-extension-hotspots{background:var(--black);border-color:var(--line)}body .firmware-file-picker,body .firmware-release,body .device-extension-hotspot{color:var(--white);background:var(--surface);border-color:var(--line)}body .firmware-card p,body .firmware-progress,body .device-extension-hotspot{color:var(--muted)}body .firmware-card-kicker{color:var(--orange)!important}body .firmware-file-row{border-color:var(--line)}body .firmware-progress:before{background:var(--line)}body .firmware-progress i{background:var(--orange)}body .firmware-file-picker:hover{color:var(--yellow);border-color:var(--yellow)}body .device-extension-hotspot.is-active{color:var(--black);background:var(--orange);border-color:var(--yellow);box-shadow:0 0 8px #d9783d59}body h1,body h2,body h3,body .brand-name,body .parameter-copy h2,body .center-calibration-head h2,body .gyro-coming-soon h2{letter-spacing:0}body .brand-name,body .mode-button,body .profile-name,body .mapping-key,body .parameter-option,body .trigger-output-row,body .keyboard-map-trigger,body .curve-profile-name,body .rc-stick-button,body .rc-mode-button,body .led-off-toggle,body .device-connect-button,body .advanced-launch-button,body .native-save-button,body .native-open-button,body .native-chip,body .calibration-button{font-weight:700}body .brand-name small,body .firmware-version span,body .side-label,body .profile-index,body .profile-kicker,body .eyebrow,body .mapping-group-title,body .profile-meta,body .version,body .hint,body .device-card p,body .device-chip,body .device-stats span,body .mapping-value,body .keyboard-caption,body .keyboard-key,body .device-status-card span,body .device-diagnostics-grid .gamepad-coordinate span,body .device-diagnostics-grid .gamepad-circle-error span,body .device-diagnostics-grid .gamepad-invert-button,body .mapping-reset-default,body .rc-trigger-reset,body .curve-binding-reset,body .gamepad-error-reset,body .more-group-code,body .advanced-head p,body .turbo-status,body .native-number-field,body .native-save-status,body .gyro-field,body .curve-trigger-native>p,body .curve-trigger-item input,body .curve-trigger-item select{font-size:11px}body .crumb,body .status,body .head-note,body .selection-note,body .parameter-copy p,body .led-settings-intro p,body .device-controller-panel>p,body .more-group p,body .advanced-launch p,body .firmware-card p,body .rc-enable-row span,body .rc-graph-head span{font-size:12px}body .mode-button,body .mapping-key,body .mapping-value,body .parameter-option,body .action-option,body .keyboard-map-trigger,body .trigger-range-value,body .turbo-option,body .native-chip,body .gyro-field select,body .gyro-field input,body .gyro-toggle,body .rc-trigger-option{font-size:12px}body .profile-kicker,body .eyebrow,body .mapping-group-title,body .side-label{font-weight:700;letter-spacing:.06em}body .firmware-version span,body .profile-index,body .device-connect-button,body .mapping-reset-default,body .rc-trigger-reset,body .curve-binding-reset,body .gamepad-error-reset{font-weight:700}body .firmware-version strong,body .version,body .profile-index,body .profile-name,body .parameter-option,body .trigger-range-value,body .device-status-value strong,body .gamepad-coordinate strong,body .gamepad-circle-error strong,body .more-group-code,body .native-stepper input,body .curve-profile-value,body .rc-graph-head strong,body .rc-axis-label,body .rc-point-label,body .rc-coordinate-row strong,body .rc-coordinate-field span,body .rc-coordinate-input{font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:0}body .mapping-value-scroll,body .curve-profile-value-scroll{width:auto;overflow:hidden;text-overflow:ellipsis}body .mapping-value.is-scrolling .mapping-value-scroll,body .curve-profile-value.is-scrolling .curve-profile-value-scroll{animation:none;transform:none}.display-controls{position:fixed;z-index:30;top:18px;right:24px;display:flex;align-items:center;gap:8px}.usb-cache-download{display:inline-grid;place-items:center;min-height:34px;padding:0 14px;color:var(--black);font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap;background:var(--yellow);border:1px solid var(--orange);border-radius:6px;box-shadow:0 0 0 4px #ff66001f,0 8px 24px #ff66002e}.usb-cache-download:hover{background:var(--orange);border-color:var(--yellow)}.language-picker,.theme-switcher{position:relative;display:flex;align-items:center;min-height:34px;background:var(--black);background:color-mix(in srgb,var(--black) 88%,transparent);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #0000001f;backdrop-filter:blur(10px)}.language-toggle,.theme-switcher button,.language-menu button{display:grid;place-items:center;min-width:32px;height:32px;padding:0;color:var(--muted);font:inherit;font-size:11px;font-weight:700;background:transparent;border:0;cursor:pointer}.language-toggle{grid-template-columns:1fr 10px;gap:2px;min-width:48px;padding:0 8px;color:var(--white)}.language-chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}.is-language-open .language-chevron{transform:rotate(225deg) translate(-1px,-2px)}.theme-switcher{gap:1px;padding:1px}.theme-switcher button{width:30px;min-width:30px;border-radius:4px}.theme-switcher button:hover,.theme-switcher button.is-selected,.language-toggle:hover{color:var(--white);background:var(--surface)}.theme-switcher button.is-selected{color:var(--orange)}.theme-icon{position:relative;display:block;width:14px;height:14px}.theme-icon-system{border:1.5px solid currentColor;border-radius:2px}.theme-icon-system:after{position:absolute;right:3px;bottom:2px;left:3px;height:1.5px;content:"";background:currentColor}.theme-icon-dark{overflow:hidden;border-radius:50%;background:currentColor}.theme-icon-dark:after{position:absolute;top:-2px;right:-2px;width:12px;height:12px;content:"";background:var(--black);border-radius:50%}.theme-icon-light{border:1.5px solid currentColor;border-radius:50%;box-shadow:0 -6px 0 -5px currentColor,0 6px 0 -5px currentColor,6px 0 0 -5px currentColor,-6px 0 0 -5px currentColor}.language-menu{position:absolute;top:calc(100% + 6px);right:0;display:none;width:126px;padding:4px;background:var(--black);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 28px #00000038}.is-language-open .language-menu{display:grid}.language-menu button{display:flex;justify-content:flex-start;width:100%;height:30px;padding:0 8px;text-align:left;border-radius:4px}.language-menu button:hover,.language-menu button.is-selected{color:var(--white);background:var(--surface)}.language-menu button.is-selected:before{width:3px;height:12px;margin-right:6px;content:"";background:var(--orange);border-radius:2px}.usb-cache-download:focus-visible,.language-toggle:focus-visible,.theme-switcher button:focus-visible,.language-menu button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}@media(max-width:560px){body .app{grid-template-columns:128px minmax(0,1fr)}body .mode-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}body .mode-button{min-width:0;padding-inline:2px;font-size:10px}body .brand-name small,body .firmware-version span,body .side-label,body .eyebrow{font-size:10px}body .firmware-version strong,body .head-note{font-size:11px}.display-controls{top:10px;right:12px}}
