:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", Consolas, "Microsoft YaHei UI", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090c11;--surface:#10151c;--surface-raised:#171d26;--surface-hover:#202834;--border:#2b3542;--border-soft:#202833;--text:#dce4ed;--text-soft:#a0adba;--text-dim:#667483;--blue:#55a7ff;--green:#54dc9a;--cyan:#55d4e8;--amber:#f3be62;--red:#ff6f7d;--terminal:#080d12}.sequence-page,.trajectory-page,.ballistic-page,.input-recorder-page,.system-config-page,.lease-page{color:#dbe5ee;background-color:#0b1016;background-image:linear-gradient(#687e9409 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:100% 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;min-width:0;min-height:0;padding:14px 18px;display:flex;overflow:hidden}.input-observer-note,.input-recorder-status{color:#c8d8e4;background:#0d1a20;border:1px solid #28414b;border-radius:5px;flex:none;align-items:center;gap:9px;margin-top:10px;padding:10px 13px;font-size:13px;display:flex}.input-observer-note{color:#9fc9d2}.input-observer-note code{color:#77d7e4;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace}.input-recorder-status{background:#10171f;border-color:#2a3946}.input-recorder-status strong{color:#e5eff7;white-space:nowrap}.input-recorder-status span{color:#9eafbd}.input-metrics{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px;display:grid}.input-metrics article{background:#10171f;border:1px solid #293644;border-radius:5px;min-width:0;padding:12px 14px}.input-metrics span{color:#8495a4;font-size:12px;display:block}.input-metrics strong{color:#edf5fb;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;margin-top:5px;font-size:20px;display:block}.input-button-state{flex:none;gap:7px;margin-top:9px;display:flex}.input-button-state span{color:#8fa0ae;font:12px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;border:1px solid #33404c;border-radius:3px;padding:5px 10px}.input-button-state span.pressed{color:#c9f6fb;background:#10303a;border-color:#55d4e8}.input-chart-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;margin-top:10px;display:grid}.input-canvas-page .input-chart-grid{flex:0 0 118px;gap:8px}.input-canvas-page .input-chart header{padding:6px 10px}.input-canvas-page .input-chart header strong{font-size:13px}.input-canvas-page .input-chart header span{font-size:10px}.input-canvas-page .input-chart footer{display:none}.input-canvas-page .input-chart text{font-size:9px}.input-draw-area{background:#0b1117;border:1px solid #293644;border-radius:5px;flex:1;min-height:0;margin-top:10px;position:relative;overflow:hidden}.input-draw-area canvas,.input-draw-area svg{width:100%;height:100%;display:block;position:absolute;inset:0}.input-draw-area canvas{pointer-events:none}.input-draw-area svg{touch-action:none;cursor:crosshair}.input-draw-area text{fill:#6e8292;letter-spacing:1px;font-size:13px}.input-drawing-path{fill:none;stroke:#55d4e8;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.input-drawing-segment{stroke-width:3px;stroke-linecap:round}.trajectory-order-dot{stroke:#0b1117;stroke-width:1.2px}.trajectory-order-legend text{fill:#a8b8c5;font-size:11px}.trajectory-selection{fill:#55d4e824;stroke:#55d4e8;stroke-width:1.2px;stroke-dasharray:4 3;pointer-events:none}.compact-point-row.preview-hovered{background:#173342;box-shadow:inset 3px 0 #55d4e8}.trajectory-chart svg{cursor:crosshair}.trajectory-preview-tools{align-items:center;gap:8px;display:flex}.trajectory-preview-tools>div{border:1px solid #334250;border-radius:3px;display:inline-flex;overflow:hidden}.trajectory-preview-tools button{color:#c3d4e2;min-width:25px;font:11px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#101921;border:0;border-right:1px solid #334250;padding:2px 6px}.trajectory-preview-tools button:last-child{border-right:0}.trajectory-preview-tools button:disabled{color:#596875}.motion-analysis{color:#91a5b4;font:8px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.motion-analysis>span{background:#101820;border:1px solid #30404d;border-radius:3px;padding:2px 4px}.motion-analysis>span b{color:#d4e9f7}.motion-analysis .chart-legend{display:none}.time-path.speed{stroke:#f3be62}.time-path.acceleration{stroke:#f277a1}.input-color-mode{border:1px solid #344351;border-radius:4px;display:flex;overflow:hidden}.input-color-mode button{color:#9eafbd;background:#121a22;border:0;border-right:1px solid #344351;padding:7px 10px;font-size:12px}.input-color-mode button:last-child{border-right:0}.input-color-mode button.active{color:#e8f7ff;background:#1b3b50}.input-chart{background:#0d131a;border:1px solid #293644;border-radius:5px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.input-chart header{border-bottom:1px solid #25313d;justify-content:space-between;padding:11px 14px;display:flex}.input-chart header strong{color:#edf5fb;font-size:15px}.input-chart header span,.input-chart footer{color:#899bab;font-size:12px}.input-chart svg{flex:1;width:100%;min-height:0}.input-chart text{fill:#728392;font-size:11px}.input-path{fill:none;stroke-width:2.5px}.input-path.x{stroke:#55a7ff}.input-path.y{stroke:#54dc9a}.input-chart footer{border-top:1px solid #25313d;padding:8px 14px}.input-chart footer i{border-radius:50%;width:8px;height:8px;margin:0 5px 0 13px;display:inline-block}.input-chart footer i:first-child{margin-left:0}.input-chart footer .x{background:#55a7ff}.input-chart footer .y{background:#54dc9a}.system-config-message{color:#a6b5c3;min-height:38px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#10171f;border:1px solid #283441;border-radius:4px;flex:0 0 38px;align-items:center;gap:8px;padding:0 11px;font-size:11px;display:flex}.system-config-message svg{color:#78bcf2}.system-config-workspace{flex:1;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:12px;min-width:0;min-height:0;padding-top:12px;display:grid}.system-config-options{background:#0d141b;border:1px solid #2f3d4a;border-radius:5px;flex-direction:column;gap:6px;min-height:0;padding:8px;display:flex;overflow-y:auto}.system-config-options button{color:#98a8b5;text-align:left;cursor:pointer;background:#111922;border:1px solid #0000;border-radius:4px;flex:1;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:8px 10px;display:grid}.system-config-options button:hover{background:#16212b;border-color:#344656}.system-config-options button.active{color:#e5f2fb;background:#172b3b;border-color:#3c6a8c;box-shadow:inset 3px 0 #55a7ff}.system-config-options button>span{color:#7fbff1;width:30px;height:30px;font:700 10px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#15283a;border:1px solid #315675;border-radius:3px;place-items:center;display:grid}.system-config-options button>div{flex-direction:column;gap:4px;min-width:0;display:flex}.system-config-options strong,.system-config-options small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.system-config-options strong{font-size:13px}.system-config-options small{color:#718596;font:10px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace}.system-config-options button.active small{color:#9bc4e3}.config-namespace-tabs{background:#0d141b;border:1px solid #2f3d4a;border-radius:7px;flex:none;align-self:flex-start;gap:4px;margin-top:10px;padding:3px;display:inline-flex}.config-namespace-tabs button{color:#8fa0ae;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;height:28px;padding:0 12px;font-size:11px;display:inline-flex}.config-namespace-tabs button code{font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:10px}.config-namespace-tabs button.active{color:#e8f6ff;background:#1d3a52;box-shadow:inset 0 0 0 1px #3c6a8c}.config-namespace-badge{color:#a8c7e2;height:34px;font:800 11px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#13283c;border:1px solid #315675;border-radius:4px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.system-config-workspace.trajectory{flex-direction:column;grid-template-columns:none;display:flex}.trajectory-global-panel{background:#0d141b;border:1px solid #2f3d4a;border-radius:5px;flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px;display:flex;overflow-y:auto}.trajectory-global-panel>header{border-bottom:1px solid #293643;align-items:baseline;gap:10px;padding-bottom:8px;display:flex}.trajectory-global-panel>header h2{color:#e5eff7;margin:0;font-size:14px}.trajectory-global-panel>header code{color:#7fbceb;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:10px}.trajectory-global-rows{flex-direction:column;gap:10px;display:flex}.trajectory-global-hint{color:#71808e;margin:0;font-size:11px}.system-config-detail{background:#10171f;border:1px solid #33414f;border-radius:5px;flex-direction:column;min-width:0;min-height:0;padding:22px 26px;display:flex;overflow-y:auto}.system-config-detail>header{border-bottom:1px solid #293643;align-items:flex-start;gap:13px;padding-bottom:17px;display:flex}.system-config-detail>header>div{flex-direction:column;gap:3px;min-width:0;display:flex}.system-config-detail>header span:not(.system-config-number){color:#718392;font-size:10px}.system-config-detail h2{color:#e9f1f7;margin:0;font-size:21px}.system-config-detail code{color:#7fb4de;font:11px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace}.system-config-detail>p{color:#a2b0bc;max-width:760px;margin:20px 0 0;font-size:13px;line-height:1.7}.system-config-apply{align-items:center;gap:12px;margin-top:14px;display:flex}.system-config-apply span{color:#718392;font-size:11px}.system-config-apply strong{color:#a8d9bf;background:#54dc9a14;border:1px solid #54dc9a33;border-radius:3px;padding:5px 8px;font-size:11px}.system-config-control{background:#0c131a;border:1px solid #293744;border-radius:5px;flex:1;justify-content:center;align-items:center;min-height:0;margin-top:18px;display:flex}.system-detail-switch{cursor:pointer;align-items:center;gap:16px;display:flex}.system-detail-switch>input{opacity:0;position:absolute}.system-detail-switch>span{background:#313d49;border-radius:18px;width:64px;height:34px;transition:background .15s;position:relative}.system-detail-switch>span:after{content:"";background:#a7b5c2;border-radius:50%;width:26px;height:26px;transition:transform .15s;position:absolute;top:4px;left:4px}.system-detail-switch>input:checked+span{background:#227555}.system-detail-switch>input:checked+span:after{background:#d4ffea;transform:translate(30px)}.system-detail-switch>div{flex-direction:column;gap:3px;display:flex}.system-detail-switch strong{color:#e4edf5;font-size:17px}.system-detail-switch small{color:#758695;font-size:11px}.system-detail-field{flex-direction:column;gap:8px;width:min(520px,80%);display:flex}.system-detail-field>span{color:#a9b8c4;font-size:12px}.system-detail-field>input,.system-detail-field>div input{color:#edf5fb;width:100%;height:40px;font:13px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#101820;border:1px solid #405363;border-radius:4px;padding:0 11px}.system-detail-field>small{color:#6f8291;font-size:10px}.system-detail-field.compact{width:min(320px,70%)}.system-detail-field>div{align-items:center;gap:9px;display:flex}.system-detail-field>div b{color:#8597a6;font-size:12px}.system-config-grid{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-height:0;padding-top:12px;display:grid}.system-config-card{background:#10171f;border:1px solid #33414f;border-radius:5px;grid-template-rows:1fr auto;grid-template-columns:42px 1fr;gap:10px;min-width:0;padding:17px;display:grid;position:relative}.system-config-number{color:#91c9fc;width:30px;height:30px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#17304a;border:1px solid #315d84;border-radius:3px;place-items:center;font-size:11px;display:grid}.system-config-card h2{color:#e4edf5;margin:2px 0 6px;font-size:16px}.system-config-card code{color:#7b9cb8;font-size:10px}.system-config-card p{color:#8e9dab;font-size:12px;line-height:1.65}.system-switch{cursor:pointer;grid-column:2;align-items:center;gap:8px;display:flex}.system-switch input{opacity:0;position:absolute}.system-switch span{background:#313d49;border-radius:12px;width:38px;height:21px;transition:background .15s;position:relative}.system-switch span:after{content:"";background:#a7b5c2;border-radius:50%;width:15px;height:15px;transition:transform .15s;position:absolute;top:3px;left:3px}.system-switch input:checked+span{background:#227555}.system-switch input:checked+span:after{background:#d4ffea;transform:translate(17px)}.system-switch b{color:#b9c8d5;font-size:12px}.system-config-card:nth-child(4){grid-column:span 2}.system-value-control{color:#8e9dab;grid-column:2;align-items:center;gap:8px;font-size:11px;display:flex}.system-value-control>span{flex:none}.system-value-control input{color:#e4edf5;width:100%;min-width:0;height:34px;font:12px var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0b1117;border:1px solid #3a4a59;border-radius:3px;padding:0 9px}.system-value-control b{color:#8294a4;font-size:11px}body{font-family:var(--font-sans), "Microsoft YaHei", "PingFang SC", sans-serif}input,select,textarea,button{font-family:inherit}code,pre,kbd,.mono,.font-mono{font-family:var(--font-mono), Consolas, "Microsoft YaHei UI", monospace}.studio-app{color:#dce6ef;background:#080d12;grid-template-rows:54px minmax(0,1fr) 28px;min-width:980px}.studio-titlebar{background:linear-gradient(90deg,#0d131b,#0a0f15);border-bottom-color:#273441;padding:0 20px}.studio-brand{gap:11px}.studio-brand>svg{color:#65b8ff;width:22px;height:22px}.studio-brand strong{color:#edf5fb;letter-spacing:.01em;font-size:16px}.studio-brand span{color:#708295;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.13em;font-size:9px;font-weight:700}.studio-security{color:#8294a6;background:#101820;border:1px solid #263542;border-radius:4px;padding:6px 9px}.studio-sidebar{background:#0d131a;border-right:1px solid #273441;flex-direction:column;min-height:0;padding:18px 10px 12px;display:flex}.sidebar-section-label{color:#607486;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.14em;margin:0 9px 7px;font-size:9px;font-weight:800}.studio-tabs{align-self:auto;gap:3px;display:grid}.studio-tabs button{color:#9badbc;text-align:left;border:1px solid #0000;border-radius:4px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;height:38px;padding:0 9px;font-size:13px;font-weight:650;display:grid}.studio-tabs button svg{color:#617b91}.studio-tabs button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-tabs button small{color:#587087;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:8px;font-weight:700}.studio-tabs button:hover{color:#d6e5f1;background:#15212b}.studio-tabs button.active{color:#e7f4ff;background:linear-gradient(90deg,#193b54,#122838);border-color:#326383}.studio-tabs button.active svg,.studio-tabs button.active small{color:#79c4ff}.studio-tool-tabs{margin-bottom:14px}.studio-sidebar>.sidebar-section-label:nth-of-type(2){margin-top:20px}.sidebar-connection{color:#7f91a1;background:#101820;border:1px solid #273643;border-radius:5px;align-items:flex-start;gap:8px;margin-top:auto;padding:10px;display:flex}.sidebar-connection i{background:#647483;border-radius:50%;flex:0 0 7px;width:7px;height:7px;margin-top:4px}.sidebar-connection>div{gap:3px;min-width:0;display:grid}.sidebar-connection strong{color:#b2c1ce;font-size:11px}.sidebar-connection span{color:#708292;font-size:10px;line-height:1.45}.sidebar-connection.online{background:#1c4a3633;border-color:#54dc9a66}.sidebar-connection.online i{background:var(--green);box-shadow:0 0 8px #54dc9aa6}.sidebar-connection.online strong{color:#a6edc5}.connection-toolbar{background:#10171f;border-bottom-color:#2b3946;flex:0 0 54px;min-height:54px;padding:7px 16px}.port-identity{width:168px;height:34px;font-size:12px}.status-badge{height:25px}.connection-note{font-size:11px}.toolbar-metrics{margin-left:auto}.metric{min-width:102px;padding:4px 7px}.device-page,.sequence-page,.trajectory-page,.ballistic-page,.log-system-page,.input-recorder-page,.system-config-page{background-color:#0a1016}.config-page-header,.ballistic-header,.device-page-heading{border-bottom:1px solid #263441;flex:0 0 70px;align-items:center;min-height:70px;margin-bottom:0;padding-bottom:12px}.config-page-header h1,.ballistic-header h1,.device-page-heading h1{font-size:25px}.config-page-header p,.ballistic-header p,.device-page-heading p{color:#a1b0be;font-size:13px}.page-eyebrow{color:#75bcf5;margin-bottom:5px}.sequence-message,.trajectory-message,.system-config-message{color:#b7c5d0;background:#101922;border-color:#304151;margin-top:10px;font-size:11px}.trajectory-message strong{color:#92ccfa;font-size:11px}.trajectory-transfer-tools button{height:29px;font-size:11px}.compact-panel-title,.points-panel-title,.trajectory-chart header{background:#131d27;border-bottom-color:#344554}.compact-form{gap:15px;padding:16px}.compact-form label>span{color:#acbac6;font-size:12px}.compact-form input,.compact-form select{color:#ecf5fc;border-color:#405363;height:36px;font-size:13px}.trajectory-editor-grid{grid-template-columns:228px 300px 340px minmax(520px,1fr);gap:12px;padding-top:12px}.trajectory-preview-stack{gap:12px}.trajectory-chart{border-color:#3b4d5d;border-radius:5px}.trajectory-chart header strong{color:#edf5fb;font-size:15px}.trajectory-chart header span{color:#94a9ba;font-size:11px}.trajectory-chart-index{font-size:13px}.points-table-header,.point-row{grid-template-columns:29px 1fr 1fr 1fr 28px;gap:5px}.point-row input{height:31px;font-size:12px}.points-footer{flex-basis:32px;min-height:32px;font-size:10px}.studio-footer{color:#738392;background:#0d131a;padding:0 16px}@media (max-width:1200px){.studio-app{min-width:860px}.studio-shell{grid-template-columns:174px minmax(0,1fr)}.studio-sidebar{padding-inline:8px}.studio-tabs button{grid-template-columns:18px minmax(0,1fr)}.studio-tabs button small{display:none}.trajectory-editor-grid{grid-template-columns:206px 270px 300px minmax(440px,1fr);gap:9px}.config-result{display:none}}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-sans), "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", "Segoe UI", sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,select{color:inherit}button{border:0}:is(button:focus-visible,select:focus-visible,textarea:focus-visible){outline-offset:-1px;outline:2px solid #55a7ffe6}button:disabled,select:disabled{cursor:not-allowed;opacity:.42}.studio-app button[data-background-lock=true]:disabled{opacity:1;cursor:pointer}.studio-top-nav .game-switcher button[data-background-lock=true]:disabled{opacity:.5;cursor:pointer}.studio-top-nav .game-switcher button[data-background-lock=true]:disabled:hover{opacity:.9;background:#15212b}.system-row-switch input[data-background-lock=true]:disabled+span{opacity:1}.system-row-switch:has(input[data-background-lock=true]){cursor:pointer}.studio-app{background:radial-gradient(circle at 88% -10%, #2869a91f, transparent 28%), var(--bg);grid-template-rows:46px 68px minmax(0,1fr) 28px;width:100vw;min-width:760px;height:100dvh;display:grid;position:relative;overflow:hidden}.studio-titlebar{border-bottom:1px solid var(--border-soft);-webkit-user-select:none;user-select:none;background:#0d1117;align-items:center;gap:18px;min-width:0;padding:0 14px;display:flex}.studio-brand{white-space:nowrap;align-items:center;gap:9px;display:flex}.studio-brand svg{color:var(--blue)}.studio-brand strong{letter-spacing:-.01em;font-size:16px}.studio-brand>span{color:#7f8c99;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.1em;background:#171d25;border:1px solid #28313c;border-radius:3px;padding:3px 6px;font-size:10px;font-weight:600}.studio-tabs button{color:#758291;background:0 0;height:100%;padding:0 14px;font-size:13px;font-weight:600;position:relative}.studio-tabs button.active{color:var(--blue)}.studio-tabs button.active:after{background:var(--blue);content:"";border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:0;left:10px;right:10px}.studio-security{color:var(--text-dim);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.connection-toolbar{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:thin;align-items:center;gap:12px;min-width:0;padding:8px 14px;display:flex;overflow:auto hidden}.toolbar-group{flex-shrink:0;align-items:center;gap:7px;display:flex}.toolbar-label,.parameter-group label>span{color:var(--text-dim);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.08em;font-size:10px;font-weight:600}.port-identity{color:#9aa7b5;border:1px solid var(--border);width:150px;height:38px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;white-space:nowrap;background:#0d1218;border-radius:4px;align-items:center;gap:7px;padding:0 10px;font-size:12px;display:flex;overflow:hidden}.port-identity span{text-overflow:ellipsis;overflow:hidden}.port-identity.online{color:#a6f0cd;border-color:#54dc9a73}.connect-button{color:#06130d;background:var(--green);cursor:pointer;border:1px solid #61e4a4;border-radius:4px;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 14px;font-size:13px;font-weight:700;display:flex;box-shadow:0 0 0 1px #54dc9a14}.connect-button:hover:not(:disabled){background:#6ce8aa}.connect-button.disconnect{color:#ffe4e7;background:#742b36;border-color:#a8404e}.status-badge{color:#7b8794;height:27px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#151a21;border:1px solid #272f39;border-radius:3px;align-items:center;gap:6px;padding:0 8px;font-size:10px;font-weight:600;display:flex}.status-badge i{background:#65717c;border-radius:50%;width:6px;height:6px}.status-badge.online{color:var(--green);border-color:#54dc9a47}.status-badge.online i{background:var(--green);box-shadow:0 0 8px #54dc9aa6}.toolbar-divider{background:var(--border);flex:0 0 1px;width:1px;height:32px}.connection-note{color:#667583;white-space:nowrap;font-size:12px}.connection-options-toggle{color:#6f7d8a;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:5px;height:27px;padding:0 7px;font-size:10px;display:inline-flex}.connection-options-toggle:hover,.connection-options-toggle.active{color:#a9bdd0;background:#151d26;border-color:#34414e}.compact-connection-options{align-items:flex-end;gap:5px;min-width:max-content;display:flex}.compact-connection-options label{grid-template-rows:10px 28px;gap:3px;display:grid}.compact-connection-options label>span{color:#667583;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.06em;font-size:9px;font-weight:700}.compact-connection-options input,.compact-connection-options select{color:#b8c5d1;height:28px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0d141c;border:1px solid #2d3945;border-radius:3px;padding:0 6px;font-size:11px}.compact-connection-options input{width:78px}.compact-connection-options label:first-child input{width:88px}.compact-connection-options select{width:66px}.compact-connection-options label:nth-child(4) select,.compact-connection-options label:nth-child(5) select{width:75px}.connection-options-reset{color:#788694;cursor:pointer;background:#151d26;border:1px solid #303c48;border-radius:3px;place-items:center;width:28px;height:28px;display:grid}.connection-options-reset:hover:not(:disabled){color:#d4e0ea;border-color:#506375}.parameter-group label{grid-template-rows:10px 29px;gap:3px;display:grid}.parameter-group select,.ending-control select{border:1px solid var(--border);height:29px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;cursor:pointer;background-color:#111720;border-radius:3px;padding:0 24px 0 7px;font-size:12px}.parameter-group label:first-child select{min-width:92px}.parameter-group label:not(:first-child) select{min-width:70px}.save-config{color:#82909d;border:1px solid var(--border);cursor:pointer;background:#151c24;border-radius:3px;align-self:end;place-items:center;width:28px;height:29px;display:grid}.save-config:hover:not(:disabled),.save-config.saved{color:var(--green);border-color:#54dc9a73}.toolbar-metrics{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.metric{border:1px solid var(--border-soft);min-width:118px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0d1218;border-radius:4px;grid-template-columns:16px 18px minmax(42px,auto) auto;align-items:baseline;gap:5px;padding:6px 8px;display:grid}.metric svg{align-self:center}.metric span{font-size:11px;font-weight:700}.metric strong{color:#d4dde7;text-align:right;font-size:15px}.metric small{color:#5f6c79;font-size:10px}.metric.rx svg,.metric.rx span{color:var(--green)}.metric.tx svg,.metric.tx span{color:var(--cyan)}.browser-warning{z-index:10;color:#ffe2a9;background:#442e0ff5;border:1px solid #9a6b27;border-radius:4px;align-items:center;gap:8px;padding:9px 12px;font-size:12px;display:flex;position:absolute;top:118px;left:14px;right:14px}.device-page{background-color:#0b1016;background-image:linear-gradient(#4b5f7206 1px,#0000 1px),linear-gradient(90deg,#4b5f7205 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:0;min-height:0;padding:28px;overflow:hidden}.device-page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.page-eyebrow{color:var(--blue);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.14em;margin-bottom:7px;font-size:10px;font-weight:700;display:block}.device-page-heading h1{color:#e6edf4;margin:0;font-size:27px;line-height:1.2}.device-page-heading p{color:#748391;margin:7px 0 0;font-size:13px}.device-state{color:#7c8996;border:1px solid var(--border);background:#111820;border-radius:4px;align-items:center;gap:7px;padding:8px 11px;font-size:12px;font-weight:700;display:flex}.device-state.online{color:var(--green);border-color:#54dc9a61}.device-heading-side{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.device-preset-btn{color:#0b1016;background:var(--blue);cursor:pointer;border:none;border-radius:4px;align-items:center;gap:7px;padding:8px 13px;font-size:12px;font-weight:700;display:inline-flex}.device-preset-btn:disabled{opacity:.55;cursor:default}.device-preset-btn:not(:disabled):hover{filter:brightness(1.12)}.device-summary-grid{grid-template-columns:1.2fr 1fr 1fr;gap:14px;display:grid}.device-card{border:1px solid var(--border);background:#11171ff5;border-radius:6px;min-width:0;min-height:238px;padding:20px;box-shadow:0 12px 30px #0000001f}.primary-card{background:linear-gradient(135deg,#3471a81f,#0000 55%),#11171ffa;border-color:#34485b}.device-card-heading{border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;padding-bottom:17px;display:flex}.device-card-icon{width:42px;height:42px;color:var(--blue);background:#347dbc24;border:1px solid #55a7ff47;border-radius:5px;flex:0 0 42px;place-items:center;display:grid}.device-card-icon.muted{color:#748391;background:#151c24;border-color:#2c3743}.device-card-heading>div{flex-direction:column;gap:4px;min-width:0;display:flex}.device-card-heading span{color:#71808e;font-size:11px}.device-card-heading strong{color:#dce5ee;text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.device-fields{grid-template-columns:1fr 1fr;gap:15px 20px;margin:18px 0 0;display:grid}.device-fields div{min-width:0}.device-fields dt{color:#62717e;margin-bottom:5px;font-size:10px}.device-fields dd{color:#bdc9d4;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.device-fields dd.value-online{color:var(--green)}.device-fields.vertical{grid-template-columns:1fr;gap:12px}.placeholder-list{gap:11px;margin-top:18px;display:grid}.placeholder-list span{color:#7b8996;align-items:center;gap:9px;font-size:12px;display:flex}.placeholder-list i{background:#384653;border-radius:2px;width:7px;height:7px}.pending-card p{color:#566470;margin:17px 0 0;font-size:11px;line-height:1.6}.device-interface-panel{border:1px solid var(--border-soft);background:#0e141bf0;border-radius:6px;align-items:center;gap:18px;margin-top:14px;padding:20px;display:flex}.interface-visual{color:#778794;flex:0 0 128px;align-items:center;width:128px;display:flex}.interface-visual span{background:repeating-linear-gradient(90deg,#405262 0 5px,#0000 5px 9px);flex:1;height:1px;margin:0 10px}.device-interface-panel>div:nth-child(2){flex:1;min-width:0}.device-interface-panel strong{color:#cdd8e2;font-size:14px}.device-interface-panel p{color:#687784;margin:6px 0 0;font-size:12px}.device-interface-panel button{color:#06130d;background:var(--green);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-width:112px;height:37px;font-size:12px;font-weight:800;display:flex}.tuning-page{background-color:#0b1016;background-image:linear-gradient(#4b5f7206 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:100% 30px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;min-width:0;min-height:0;padding:18px;display:flex;overflow:hidden}.tuning-heading{flex:0 0 60px;justify-content:space-between;align-items:flex-start;gap:20px;min-height:60px;display:flex}.tuning-heading h1{color:#e4ecf4;margin:0 12px 0 0;font-size:23px;display:inline}.tuning-heading p{color:#71808d;margin:0;font-size:12px;display:inline}.tuning-heading-status{align-items:center;gap:8px;display:flex}.mapping-summary{color:#8b98a4;border:1px solid var(--border);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#111820;border-radius:4px;align-items:center;gap:7px;padding:6px 8px;font-size:10px;display:flex}.mapping-summary span{color:#b7c3ce}.mapping-summary i{color:var(--amber);background:#f3be621a;border-radius:2px;padding:2px 5px;font-size:8px;font-style:normal}.mapping-summary strong{color:#667582}.mapping-summary.matched{border-color:#54dc9a59}.mapping-summary.matched strong{color:var(--green)}.staging-badge{color:#788591;border:1px solid var(--border);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#111820;border-radius:4px;align-items:center;gap:6px;padding:7px 9px;font-size:10px;font-weight:700;display:flex}.staging-badge.staged{color:var(--amber);border-color:#f3be6266}.staging-badge.dirty{color:var(--cyan);border-color:#55d4e866}.staging-badge.committed{color:var(--green);border-color:#54dc9a66}.staging-badge.writing,.staging-badge.committing,.staging-badge.discarding{color:var(--cyan)}.tuning-workspace{flex:1;grid-template-columns:310px minmax(430px,1fr) 310px;gap:12px;min-width:0;min-height:0;display:grid}.tuning-card{border:1px solid var(--border);background:#10161efa;border-radius:5px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.tuning-card-title{border-bottom:1px solid var(--border);background:#141b24;flex:0 0 58px;align-items:center;gap:10px;min-height:58px;padding:0 13px;display:flex}.tuning-card-title>span{width:27px;height:27px;color:var(--blue);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#12243a;border:1px solid #244d73;border-radius:3px;flex:0 0 27px;place-items:center;font-size:9px;font-weight:700;display:grid}.tuning-card-title>div{flex-direction:column;gap:3px;min-width:0;display:flex}.tuning-card-title strong{color:#d4dee7;font-size:13px}.tuning-card-title small{color:#64727f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.tuning-form{flex-direction:column;flex:1;gap:12px;min-height:0;padding:14px;display:flex;overflow-y:auto}.tuning-form>label,.tuning-form-pair label{flex-direction:column;gap:5px;display:flex}.tuning-form label>span{color:#74828f;font-size:10px}.tuning-form select,.tuning-form input[type=number],.tuning-form input[type=text],.point-row input{color:#cbd6e0;border:1px solid var(--border);width:100%;height:32px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0c1218;border-radius:3px;padding:0 8px;font-size:11px}.input-rule-divider{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin:5px -14px 0;padding:13px 14px 0;display:flex}.input-rule-divider span{color:var(--blue);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.12em;font-size:8px;font-weight:700}.input-rule-divider strong{color:#ccd6df;font-size:12px}.sequence-reader,.mapping-target{grid-template-columns:minmax(0,1fr) 62px;align-items:end;gap:7px;display:grid}.sequence-reader label,.mapping-target label,.raw-mask{flex-direction:column;gap:5px;min-width:0;display:flex}.sequence-reader label>span,.mapping-target label>span,.raw-mask>span{color:#74828f;font-size:10px}.sequence-reader>button,.mapping-target>button{color:#b9daf9;cursor:pointer;background:#18334d;border:1px solid #28557e;border-radius:3px;justify-content:center;align-items:center;gap:5px;height:32px;font-size:9px;font-weight:700;display:flex}.rule-option-group{flex-direction:column;gap:7px;display:flex}.rule-option-group>span{color:#74828f;font-size:10px}.bit-options{gap:4px;display:grid}.mouse-bits{grid-template-columns:repeat(3,1fr)}.modifier-bits{grid-template-columns:repeat(4,1fr)}.bit-options button{color:#788693;border:1px solid var(--border);min-height:27px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;cursor:pointer;background:#111820;border-radius:3px;padding:0 4px;font-size:8px}.raw-mask{margin-top:2px}.input-rule-validation{background:#22513d2e;border:1px solid #54dc9a40;border-radius:3px;flex-direction:column;gap:5px;padding:9px;display:flex}.input-rule-validation strong{color:#a7d7bf;font-size:10px}.input-rule-validation span{color:#6d7d88;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:8px;line-height:1.45}.input-rule-validation.warning{background:#5b451b33;border-color:#f3be6252}.input-rule-validation.warning strong{color:var(--amber)}.input-rule-validation.error{background:#5b1d2733;border-color:#ff6f7d4d}.input-rule-validation.error strong{color:var(--red)}.input-rule-actions{grid-template-columns:1fr 1fr 1fr;gap:5px;display:grid}.input-rule-actions button{color:#9ba8b4;border:1px solid var(--border);cursor:pointer;background:#18212a;border-radius:3px;min-height:31px;font-size:9px;font-weight:800}.input-rule-actions button.write{color:#071719;background:var(--cyan);border-color:var(--cyan)}.input-rule-actions button.commit{color:#092016;background:var(--green);border-color:var(--green)}.tuning-form-pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.direction-options{align-items:center;gap:18px;padding-top:3px;display:flex}.direction-options label{color:#82909d;align-items:center;gap:6px;font-size:11px;display:flex}.direction-options input{width:14px;height:14px;accent-color:var(--blue);margin:0}.points-title>.add-point-button{color:#b9daf9;cursor:pointer;background:#18334d;border:1px solid #28557e;border-radius:3px;height:29px;padding:0 10px;font-size:10px;font-weight:700}.time-fill-control{color:#687683;white-space:nowrap;align-items:center;gap:5px;margin-left:auto;font-size:9px;display:flex}.time-fill-control input{color:#c9d4df;border:1px solid var(--border);width:55px;height:29px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0c1218;border-radius:3px;padding:0 6px;font-size:10px}.time-fill-control button{color:#c7d8e9;cursor:pointer;background:#1a2938;border:1px solid #30475d;border-radius:3px;height:29px;padding:0 8px;font-size:9px;font-weight:700}.points-table-header,.point-row{grid-template-columns:34px 1fr 1fr 1fr 30px;align-items:center;gap:7px;display:grid}.points-table-header{color:#667583;border-bottom:1px solid var(--border-soft);min-height:29px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0e141b;flex:0 0 29px;padding:0 10px;font-size:9px}.points-list{scrollbar-color:#354251 #0b1016;scrollbar-width:thin;flex:1;min-height:0;padding:7px 10px;overflow-y:auto}.point-row{border-bottom:1px solid #2f3c486b;min-height:41px}.point-row>span{color:#546372;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:10px}.point-row button{color:#687683;border:1px solid var(--border);cursor:pointer;background:#151c24;border-radius:3px;place-items:center;width:27px;height:27px;display:grid}.point-row button:hover:not(:disabled){color:var(--red);border-color:#ff6f7d73}.points-footer{color:#61707d;border-top:1px solid var(--border-soft);min-height:29px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0e141b;flex:0 0 29px;align-items:center;gap:18px;padding:0 12px;font-size:9px;display:flex}.staging-card{padding-bottom:13px}.validation-box{background:#164a3633;border:1px solid #54dc9a47;border-radius:4px;align-items:center;gap:9px;margin:13px;padding:11px;display:flex}.validation-box>svg{color:var(--green);flex:none}.validation-box.error{background:#5b1d2738;border-color:#ff6f7d59}.validation-box.error>svg{color:var(--red)}.validation-box div{flex-direction:column;gap:3px;min-width:0;display:flex}.validation-box strong{color:#bed8cb;font-size:11px}.validation-box.error strong{color:#f0b6bd}.validation-box span{color:#6e8177;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.staging-flow{align-items:center;min-height:110px;padding:0 13px;display:flex}.staging-flow>div{text-align:center;flex-direction:column;align-items:center;gap:4px;width:104px;display:flex}.staging-flow>div>span{color:#667583;border:1px solid var(--border);width:26px;height:26px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#151c24;border-radius:50%;place-items:center;font-size:10px;display:grid}.staging-flow>div.active>span{color:#092015;background:var(--green);border-color:var(--green)}.staging-flow strong{color:#909daa;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:10px}.staging-flow small{color:#56636f;font-size:9px}.staging-flow>i{background:repeating-linear-gradient(90deg,#3c4a57 0 5px,#0000 5px 9px);flex:1;height:1px}.trajectory-response{border:1px solid var(--border-soft);background:#090e13;border-radius:4px;flex-direction:column;gap:6px;min-height:72px;margin:0 13px 13px;padding:10px;display:flex}.trajectory-response>span{color:#55636f;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.08em;font-size:8px}.trajectory-response code{color:#91a0ad;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;word-break:break-word;font-size:10px;line-height:1.45}.trajectory-response.staged code{color:var(--amber)}.trajectory-response.committed code{color:var(--green)}.trajectory-response.error code{color:var(--red)}.staging-actions{grid-template-columns:1fr;gap:7px;margin:auto 13px 0;display:grid}.staging-actions button{cursor:pointer;border-radius:3px;justify-content:center;align-items:center;gap:7px;min-height:35px;font-size:11px;font-weight:800;display:flex}.write-button{color:#071719;background:var(--cyan)}.commit-button{color:#092016;background:var(--green)}.discard-button{color:#a5b0ba;border:1px solid var(--border);background:#19212a}.connect-required{color:var(--amber);text-align:center;margin:8px 13px 0;font-size:10px}.terminal-workbench{grid-template-rows:minmax(0,1fr) 6px 205px;min-width:0;min-height:0;display:grid;overflow:hidden}.rx-pane,.tx-pane{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.pane-toolbar{background:var(--surface-raised);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex:0 0 42px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:0 12px;display:flex}.pane-title,.pane-tools{align-items:center;gap:8px;min-width:0;display:flex}.pane-title>svg{color:var(--green)}.pane-title strong{font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.05em;font-size:13px}.pane-title>span:not(.live-badge){color:var(--text-dim);font-size:12px}.live-badge{color:#6e7a86;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#11161d;border:1px solid #28313b;border-radius:3px;align-items:center;gap:3px;padding:3px 6px;font-size:10px;display:flex}.live-badge.active{color:var(--green);border-color:#54dc9a59}.segmented{border:1px solid var(--border);background:#0f141a;border-radius:4px;padding:2px;display:flex}.segmented button{color:#778492;min-width:51px;height:27px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;cursor:pointer;background:0 0;border-radius:2px;padding:0 8px;font-size:10px;font-weight:700}.segmented button:hover{color:#bcc7d2;background:#1a222c}.segmented button.active{color:#dfeeff;background:#285b8d}.pane-tools>button{color:#87939f;border:1px solid var(--border);cursor:pointer;background:#121820;border-radius:3px;place-items:center;width:29px;height:30px;display:grid}.pane-tools>button:hover:not(:disabled){color:var(--blue);background:#182331}.auto-scroll{color:#82909d;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;cursor:pointer;align-items:center;gap:5px;font-size:10px;display:flex}.auto-scroll input{width:13px;height:13px;accent-color:var(--blue);margin:0}.log-count{color:#64717e;min-width:62px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;text-align:right;font-size:11px}.terminal-screen{background:linear-gradient(#4e657a09 1px, transparent 1px), var(--terminal);background-size:100% 28px;flex:1;min-height:0;position:relative;overflow:hidden}.terminal-empty{color:#465462;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.terminal-empty svg{color:#425a68}.terminal-empty strong{color:#7f909d;font-size:15px}.terminal-empty span{font-size:12px}.terminal-lines{scrollbar-color:#354251 #0b1016;scrollbar-width:thin;width:100%;height:100%;padding:7px 10px 18px;overflow-y:auto}.terminal-line{min-height:26px;font-family:var(--font-mono), "Consolas", "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;border-bottom:1px solid #303e4a40;grid-template-columns:92px 48px minmax(0,1fr);font-size:13px;line-height:1.55;display:grid}.line-time{color:#50606d;font-variant-numeric:tabular-nums;padding-top:3px;font-size:11px}.line-direction{align-items:flex-start;gap:3px;padding-top:3px;font-size:11px;font-weight:700;display:flex}.terminal-line.rx .line-direction{color:var(--green)}.terminal-line.tx .line-direction{color:var(--cyan)}.terminal-line.err .line-direction{color:var(--red)}.terminal-line.sys .line-direction{color:var(--amber)}.line-content{color:#c3ced9;flex-wrap:wrap;align-items:flex-start;gap:10px;min-width:0;padding:2px 0;display:flex}.line-content code{color:#8dc5ff;word-break:break-all;font-family:inherit}.line-content pre{color:#c8d4de;max-width:100%;font:inherit;white-space:pre-wrap;word-break:break-word;margin:0}.system-message{color:var(--amber)}.terminal-line.err .system-message{color:var(--red)}.rx-statusbar{color:#5f6e7a;min-height:28px;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#0e151b;border-top:1px solid #1f2a32;flex:0 0 28px;align-items:center;gap:22px;padding:0 11px;font-size:10px;display:flex}.rx-statusbar span{align-items:center;gap:5px;display:flex}.split-handle{z-index:2;background:#242d38;border-top:1px solid #354252;border-bottom:1px solid #10151b;place-items:center;display:grid;position:relative}.split-handle span{background:#5a6876;border-radius:2px;width:36px;height:2px}.tx-pane{background:#0b1016}.tx-toolbar{flex-basis:41px;min-height:41px}.tx-toolbar .pane-title>svg{color:var(--cyan)}.ending-control{color:#6e7b87;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;align-items:center;gap:6px;font-size:10px;display:flex}.ending-control select{min-width:92px}.tx-editor{background:var(--terminal);flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 188px;min-height:0;display:grid;position:relative}.tx-editor textarea{resize:none;color:#dbe6ef;width:100%;height:100%;caret-color:var(--cyan);font-family:var(--font-mono), "Consolas", "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:0 0;border:0;padding:12px 46px 12px 14px;font-size:15px;line-height:1.5}.tx-editor textarea::placeholder{color:#43505c}.tx-editor.invalid textarea{box-shadow:inset 0 0 0 1px #ff6f7dbf}.copy-button{color:#657380;border:1px solid var(--border);cursor:pointer;background:#131a22;border-radius:3px;place-items:center;width:28px;height:27px;display:grid;position:absolute;top:8px;right:199px}.copy-button:hover{color:var(--cyan)}.tx-sendbar{border-left:1px solid var(--border);background:#0e141b;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:9px;padding:11px;display:flex}.tx-sendbar>span{color:#62707d;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;text-align:right;font-size:11px}.tx-sendbar>span.input-error{color:var(--red)}.send-button{color:#071316;background:var(--cyan);cursor:pointer;border:1px solid #69ddec;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-height:46px;padding:0 12px;font-size:14px;font-weight:800;display:flex}.send-button:hover:not(:disabled){background:#70e0ef}.send-button kbd{color:#0713168c;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;margin-left:auto;font-size:9px}.studio-footer{color:#596672;border-top:1px solid var(--border-soft);font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;white-space:nowrap;background:#0d1218;align-items:center;gap:20px;padding:0 12px;font-size:10px;display:flex}.studio-footer span{align-items:center;gap:5px;display:flex}.studio-footer a{color:#708090;align-items:center;gap:4px;margin-left:auto;text-decoration:none;display:flex}.studio-footer a:hover{color:var(--blue)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}@media (max-width:1220px){.studio-tabs button:not(.active),.studio-security{display:none}.toolbar-metrics{margin-left:0}.metric{min-width:96px}.tuning-workspace{grid-template-columns:230px minmax(360px,1fr) 280px}}@media (max-width:920px){.studio-app{min-width:700px}.status-badge,.toolbar-divider{display:none}.connection-toolbar{gap:9px;padding-inline:10px}.port-identity{width:128px}.parameter-group label:nth-of-type(4),.parameter-group label:nth-of-type(5),.connection-note{display:none}.device-page{padding:20px}.device-summary-grid{grid-template-columns:1.2fr 1fr 1fr;gap:9px}.device-card{padding:15px}.tuning-page{padding:12px}.tuning-workspace{grid-template-columns:215px minmax(330px,1fr) 260px;gap:8px}.tuning-card-title{padding-inline:9px}}@media (max-height:760px){.studio-app{grid-template-rows:43px 62px minmax(0,1fr) 25px}.connection-toolbar{padding-block:6px}.terminal-workbench{grid-template-rows:minmax(0,1fr) 5px 184px}.pane-toolbar{flex-basis:39px;min-height:39px}.rx-statusbar{flex-basis:25px;min-height:25px}.tx-editor textarea{padding-block:8px}.device-page{padding:18px 24px}.device-page-heading{margin-bottom:16px}.device-card{min-height:210px;padding:16px}.device-interface-panel{padding:15px 18px}}.studio-app{background:#080d12;grid-template-rows:50px 44px minmax(0,1fr) 25px;width:100vw;min-width:760px;height:100dvh;display:grid;overflow:hidden}.studio-titlebar{background:linear-gradient(90deg,#0d131b,#0a0f15);border-bottom:1px solid #273441;align-items:center;padding:0 18px;display:flex}.studio-brand{align-items:center;gap:11px;display:flex}.studio-brand>div{gap:2px;display:grid}.studio-brand>div>strong{color:#edf5fb;font-size:18px}.studio-brand>div>span{color:#708295;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.13em;background:0 0;border:0;padding:0;font-size:13px;font-weight:700}.studio-security{color:#8294a6;background:#101820;border:1px solid #263542;border-radius:4px;margin-left:auto;padding:6px 9px;display:flex}.studio-shell{grid-template-columns:164px minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.studio-sidebar{background:#0d131a;border-right:1px solid #273441;flex-direction:column;min-width:0;min-height:0;padding:14px 8px 10px;display:flex;overflow:hidden}.studio-tabs{align-self:auto;align-items:stretch;gap:3px;display:grid}.studio-tabs button,.studio-tabs button:not(.active){color:#9badbc;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:19px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;height:38px;padding:0 8px;font-size:13px;display:grid;position:relative}.studio-tabs button.active{color:#e7f4ff;background:linear-gradient(90deg,#193b54,#122838);border-color:#326383;display:grid}.studio-tabs button.active:after{display:none}.studio-tabs button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.studio-tabs button small{color:#587087;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;font-size:8px;display:block}.studio-main>.device-page,.studio-main>.sequence-page,.studio-main>.trajectory-page,.studio-main>.ballistic-page,.studio-main>.log-system-page,.studio-main>.input-recorder-page,.studio-main>.system-config-page,.studio-main>.terminal-workbench{flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.connection-toolbar{background:#10171f;border-bottom:1px solid #2b3946;flex:0 0 50px;min-height:50px;padding:6px 14px;overflow:auto hidden}.studio-footer{align-items:center;min-width:0;min-height:0;padding:0 14px;display:flex;overflow:hidden}@media (max-width:1200px){.studio-app{min-width:920px}.studio-shell{grid-template-columns:64px minmax(0,1fr)}.studio-sidebar{padding-inline:6px}.sidebar-section-label,.studio-tabs button span,.studio-tabs button small,.sidebar-connection>div{display:none}.studio-tabs button,.studio-tabs button:not(.active),.studio-tabs button.active{grid-template-columns:1fr;justify-items:center;padding:0;display:grid}.studio-tabs button svg{width:18px;height:18px}.studio-sidebar>.sidebar-section-label:nth-of-type(2){margin-top:12px}.sidebar-connection{justify-content:center;padding:10px 0}.trajectory-editor-grid{grid-template-columns:195px 250px 300px minmax(440px,1fr)}}.studio-sidebar,.studio-shell{display:none!important}.studio-top-nav{scrollbar-width:thin;background:#0d131a;border-bottom:1px solid #273441;align-items:center;gap:2px;min-height:44px;padding:0 14px;display:flex;position:relative;overflow:auto hidden}.studio-top-nav.main-nav{justify-content:flex-start}.studio-top-nav.main-nav .main-nav-games{flex-shrink:0;align-items:center;display:flex}.studio-top-nav.main-nav .main-nav-center{align-items:center;gap:2px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.studio-top-nav.main-nav .other-config-btn{position:absolute;top:50%;right:14px;transform:translateY(-50%)}.game-switcher{align-items:center;gap:4px;display:flex}.studio-top-nav .game-switcher button{opacity:.5;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;gap:6px;height:32px;padding:0 10px}.studio-top-nav .game-switcher button img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;width:18px;height:18px}.studio-top-nav .game-switcher button span{white-space:nowrap;font-size:12px;font-weight:600}.studio-top-nav .game-switcher button:hover{opacity:.9;background:#15212b}.studio-top-nav .game-switcher button.active{opacity:1!important;background:#55a7ff1f!important;border-color:#55a7ff8c!important;border-radius:8px!important}.studio-top-nav .game-switcher button:disabled{opacity:.25;cursor:not-allowed}.studio-top-nav .game-switcher button:disabled:hover{background:0 0}.current-game-badge{color:#c2d2e0;white-space:nowrap;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.current-game-badge img{object-fit:contain;width:22px;height:22px}.current-game-badge span{text-overflow:ellipsis;overflow:hidden}.trajectory-view-name{text-align:center;letter-spacing:.5px;width:100%;color:var(--blue);white-space:nowrap;-webkit-user-select:none;user-select:none;text-overflow:ellipsis;font-size:15px;font-weight:800;display:block;overflow:hidden}.trajectory-view-name.is-slot{color:var(--blue)}.studio-top-nav button{color:#758291;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;align-items:center;gap:7px;height:34px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.studio-top-nav button.active{color:#e7f4ff;background:linear-gradient(90deg,#193b54,#122838);border-color:#326383}.studio-top-nav button.active svg{color:#79c4ff}.studio-top-nav .other-config-btn{color:#8ea0b2;background:#111820;border-color:#2b3946}.studio-top-nav .other-config-btn:hover{color:#b2c6da;background:#19232e;border-color:#3d4d5c}.studio-top-nav.other-config-subnav{justify-content:center;gap:4px}.studio-top-nav.other-config-subnav .back-btn{color:#9badbc;background:#111820;border-color:#2b3946;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.studio-top-nav.other-config-subnav .back-btn:hover{color:#d6e5f1;background:#19232e}.studio-top-nav.other-config-subnav .subnav-label{color:#587087;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.14em;white-space:nowrap;padding:0 10px;font-size:9px;font-weight:700;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.studio-top-nav.other-config-subnav .other-config-tabs{justify-content:center;align-items:center;gap:4px;display:flex}.studio-main{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}@media (max-width:920px){.studio-top-nav{gap:1px;padding:0 8px}.studio-top-nav button{padding:0 10px;font-size:12px}.studio-top-nav .game-switcher button{padding:0 7px}}.studio-footer{min-width:0}.sequence-map-grid{flex-wrap:wrap;align-items:center;gap:8px;padding:0 18px 8px;display:flex}.sequence-map-grid.simplified .sequence-map-card{cursor:pointer;text-align:left;background:#111820;border:1px solid #2b3946;border-radius:4px;align-items:center;gap:8px;min-height:34px;padding:5px 10px;transition:border-color .15s,background .15s;display:inline-flex}.sequence-map-grid.simplified .sequence-map-card:hover{background:#141d27;border-color:#3f5266}.sequence-map-grid.simplified .card-name{color:#dce6ef;white-space:nowrap;font-size:12px;font-weight:700}.seq-toggle{cursor:pointer;background:#1a232e;border:1px solid #354554;border-radius:10px;flex-shrink:0;width:34px;height:20px;padding:0;transition:background .18s,border-color .18s;position:relative}.seq-toggle span{background:#667583;border-radius:50%;width:14px;height:14px;transition:transform .18s,background .18s;position:absolute;top:2px;left:2px}.seq-toggle:hover:not(:disabled){border-color:#4b5d6f}.seq-toggle.on{background:#275b3e;border-color:#3c9263}.seq-toggle.on span{background:#56d99b;transform:translate(14px)}.seq-bind-summary{text-overflow:ellipsis;white-space:nowrap;color:#8fb3cc;max-width:120px;font-size:11px;font-weight:700;line-height:1.1;overflow:hidden}.seq-toggle.is-pending,.seq-toggle:disabled{opacity:.55;cursor:default}.seq-action-group{align-items:center;gap:6px;margin-left:auto;padding-left:8px;display:inline-flex}.seq-read-btn,.seq-save-btn{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:5px;height:34px;padding:0 14px;font-size:12px;font-weight:700;display:inline-flex}.seq-read-btn{color:#b5c7d5;background:#1a242e;border:1px solid #2e3f4d}.seq-read-btn:hover:not(:disabled){background:#1e2a36;border-color:#3d5161}.seq-save-btn{color:#092016;background:var(--green,#54dc9a);border:1px solid #61e4a4}.seq-save-btn:hover:not(:disabled){filter:brightness(1.08)}.seq-read-btn:disabled,.seq-save-btn:disabled{opacity:.45;cursor:not-allowed}.forward-mode-row{border-bottom:1px solid #2b3946;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.forward-mode-label{color:#758291;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;letter-spacing:.1em;flex-shrink:0;font-size:10px;font-weight:700}.forward-mode-segmented{background:#0f141a;border:1px solid #2b3946;border-radius:4px;padding:2px;display:inline-flex}.forward-seg{color:#667583;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;min-width:90px;height:36px;padding:0 12px;font-size:11px;font-weight:700;transition:color .12s,background .12s;display:inline-flex}.forward-seg small{color:#4f5e6c;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;margin-top:1px;font-size:9px;font-weight:600}.forward-seg:hover:not(:disabled){color:#bcc7d2;background:#19232e}.forward-seg.active{color:#dfeeff;background:#285b8d}.forward-seg.active small{color:#a5cbe7}:root{--sp-xs:4px;--sp-s:8px;--sp-m:12px;--sp-l:16px}.compact-form input,.compact-form select,.tuning-form select,.tuning-form input[type=number],.tuning-form input[type=text],.point-row input,.parameter-group select,.ending-control select,.time-fill-control input,.keycode-focus-capture,.compact-connection-options input,.compact-connection-options select{border-radius:3px!important;height:28px!important;font-size:12px!important}.connect-button{height:30px!important;font-size:12px!important}.port-identity{height:30px!important}.send-button{min-height:38px!important;font-size:13px!important}.staging-actions button{min-height:30px!important;font-size:10px!important}.input-rule-actions button{min-height:28px!important}.bit-options button{min-height:24px!important}.segmented button{min-width:44px!important;height:24px!important}.pane-tools>button{width:26px!important;height:26px!important}.device-interface-panel button{height:30px!important}.device-card{padding:var(--sp-m)!important;min-height:0!important}.tuning-form,.compact-form{padding:var(--sp-m)!important;gap:var(--sp-s)!important}.tuning-card-title{min-height:42px!important;padding:0 var(--sp-m)!important;flex-basis:42px!important}.compact-panel-title,.points-panel-title{flex-basis:38px!important;min-height:38px!important}.trajectory-chart header{min-height:38px!important;padding:var(--sp-s) var(--sp-m)!important}.tuning-form>label,.tuning-form-pair label{gap:var(--sp-xs)!important}.tuning-form label>span{margin-bottom:2px!important;font-size:10px!important}.compact-form label>span{margin-bottom:2px!important;font-size:11px!important}.device-fields{gap:var(--sp-s) var(--sp-l)!important;margin-top:var(--sp-m)!important}.device-summary-grid{gap:var(--sp-m)!important}.trajectory-editor-grid{gap:var(--sp-s)!important;padding-top:var(--sp-s)!important}.sequence-map-grid.simplified .sequence-map-card.active{background:#55a7ff14!important;border-color:#55a7ff99!important}.bit-options button.active{color:#c8def5!important;background:#22517d!important;border-color:#2d6896!important}.forward-seg.active{color:#79c4ff!important;background:#55a7ff1a!important;border:1px solid #55a7ff4d!important;border-radius:3px!important}.studio-top-nav button.active{color:#79c4ff!important;border-color:#0000!important;border-bottom:2px solid var(--blue,#55a7ff)!important;background:0 0!important;border-radius:0!important}.studio-top-nav button:hover{color:#d6e5f1!important;background:#141d27!important}.compact-panel-title strong{color:#d4dee7!important;font-size:13px!important;font-weight:700!important}.tuning-card-title strong{font-size:12px!important;font-weight:700!important}.device-card-heading strong{font-size:14px!important}.input-rule-validation{background:#22513d1a!important;border:1px solid #54dc9a26!important;border-radius:4px!important}.validation-box{background:#164a361a!important;border:1px solid #54dc9a26!important}.trajectory-response{background:#0c1116!important;border:1px solid #1f2a32!important}.connection-note{color:#5f6c79!important;font-size:11px!important}.connection-toolbar{padding:var(--sp-s) var(--sp-m)!important;gap:var(--sp-s)!important;flex-basis:42px!important;min-height:42px!important}.status-badge{height:22px!important;font-size:9px!important}.sequence-map-grid.simplified .sequence-map-card{min-height:30px!important;padding:4px var(--sp-s)!important;gap:6px!important}.sequence-page,.trajectory-page,.ballistic-page{padding:var(--sp-m)!important}.device-page{padding:var(--sp-m) var(--sp-l)!important}.point-row{min-height:34px!important}.point-row input{height:26px!important}.points-table-header,.points-footer{flex-basis:24px!important;min-height:24px!important}.sequence-message,.trajectory-message,.system-config-message{margin-top:var(--sp-xs)!important;padding:var(--sp-xs) var(--sp-s)!important;font-size:10px!important}.trajectory-message{flex-basis:auto!important;min-height:0!important}.config-action-bar{gap:var(--sp-s)!important}.config-action-btn,.titlebar-action-btn{height:28px!important;padding:0 10px!important;font-size:11px!important}.sequence-page{align-items:center!important;gap:var(--sp-s)!important;flex-direction:column!important;display:flex!important}.sequence-map-grid.simplified{width:100%!important;max-width:960px!important;padding:var(--sp-s) 18px 0!important;flex-wrap:nowrap!important;grid-template-columns:repeat(5,1fr)!important;grid-auto-rows:auto!important;gap:8px!important;display:grid!important}.sequence-map-grid.simplified .sequence-map-card{text-align:center!important;flex:none!important;justify-content:center!important;width:auto!important;min-width:0!important;max-width:none!important}.sequence-editor-card{width:100%!important;max-width:960px!important}.recognizer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}@media (max-width:980px){.recognizer-grid{grid-template-columns:1fr}}.trajectory-view-name .recognizer-title-status{vertical-align:middle;border-radius:999px;align-items:center;gap:5px;margin-left:10px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.trajectory-view-name .recognizer-title-status i{border-radius:50%;flex:none;width:7px;height:7px}.recognizer-title-status.is-online{color:#16a34a;background:#54dc9a24}.recognizer-title-status.is-online i{background:#22c55e;box-shadow:0 0 5px #54dc9a}.recognizer-title-status.is-connecting{color:#b45309;background:#f3be6229}.recognizer-title-status.is-connecting i{background:#f3be62}.recognizer-title-status.is-offline{color:#64748b;background:#64748b1f}.recognizer-title-status.is-offline i{background:#94a3b8}.sequence-disabled-hint{padding:var(--sp-l) var(--sp-m);text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-m);margin:var(--sp-s);font-size:14px}.forward-seg{gap:0!important;min-width:78px!important;height:30px!important;padding:0 8px!important}.forward-seg small{margin-top:0!important;font-size:8px!important}.bit-options button{min-height:22px!important;padding:0 6px!important;font-size:10px!important;line-height:1!important}.bit-options button small{font-size:8px!important}.sequence-map-grid.simplified .sequence-map-card{box-sizing:border-box;grid-template-rows:18px 14px;grid-template-columns:36px minmax(0,1fr) 36px;align-content:center;place-items:center;height:58px;display:grid;gap:4px!important;min-height:58px!important;padding:6px 10px!important;font-size:13px!important}.sequence-map-grid.simplified .card-name{text-overflow:ellipsis;text-align:center;grid-area:1/2;min-width:0;max-width:100%;line-height:18px;overflow:hidden}.sequence-map-grid.simplified .seq-bind-summary{text-align:center;grid-area:2/2;min-width:0;max-width:100%;line-height:14px}.sequence-map-grid.simplified .seq-toggle{grid-area:1/3/3;place-self:center}.sequence-map-grid.simplified .card-name{font-size:13px!important;font-weight:700!important}.seq-toggle{width:36px!important;height:20px!important}.seq-toggle span{width:14px!important;height:14px!important}.seq-toggle.on span{transform:translate(14px)!important}.large-bit-options.keycodes button{min-height:24px!important;padding:0 8px!important;font-size:11px!important}.large-bit-options.keycodes button small{font-size:9px!important}.seq-read-btn,.seq-save-btn{height:26px!important;padding:0 10px!important;font-size:11px!important}.compact-panel-title{min-height:32px!important;padding:0 var(--sp-m)!important;flex-basis:32px!important}.compact-panel-title strong{font-size:12px!important}.input-rule-divider{margin-left:0!important;margin-right:0!important}.forward-mode-row{margin-bottom:var(--sp-xs)!important;padding-bottom:var(--sp-xs)!important}.sequence-option-group>span{margin-bottom:var(--sp-xs)!important;font-size:10px!important}.sequence-form{gap:var(--sp-s)!important;padding:var(--sp-s)!important}.virtual-keyboard{background:#0f161d;border:1px solid #1e2a34;border-radius:5px;flex-direction:row;gap:8px;width:100%;max-width:880px;margin:0 auto;padding:10px;display:flex}.vk-wrapper{width:100%;max-width:880px;margin:0 auto;position:relative}.vk-wrapper .virtual-keyboard{filter:grayscale(.55)brightness(.62);pointer-events:none;-webkit-user-select:none;user-select:none}.vk-firmware-overlay{text-align:center;color:#d7e2ec;-webkit-backdrop-filter:blur(2px);z-index:5;background:linear-gradient(#141b23b8,#141b23db);border:1px solid #2a3845;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.vk-firmware-overlay svg{color:#8fd0ff;margin-bottom:2px}.vk-firmware-overlay strong{letter-spacing:.02em;font-size:15px;font-weight:800}.vk-firmware-overlay span{color:#9fb1c0;max-width:320px;font-size:11px;line-height:1.5}.mouse-tester{background:#0f161d;border:1px solid #1e2a34;border-radius:5px;flex-direction:column;gap:8px;width:100%;max-width:880px;margin:6px auto 0;padding:10px 12px 12px;display:flex}.mouse-tester-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.mouse-tester-title{flex-direction:column;gap:1px;display:flex}.mouse-tester-title span{color:#cdd9e3;font-size:12px;font-weight:700}.mouse-tester-title small{color:#7d8d9c;font-size:9px}.mouse-tester-reset{color:#b6c4d1;cursor:pointer;background:#18222d;border:1px solid #2b3946;border-radius:3px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:10px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.mouse-tester-reset:hover{color:#e0ebf4;background:#1e2a36;border-color:#3d5161}.mouse-tester-zone{box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0b1117;border:1px dashed #27333f;border-radius:6px;justify-content:center;align-items:center;width:100%;min-height:360px;padding:20px;transition:border-color .12s,background .12s;display:flex}.mouse-tester-zone:hover{background:#0d141b;border-color:#3a4d5d}.mouse-tester-zone.flash{background:#1a160c;border-color:#f0a020}.mouse-tester-zone .mt-graphic,.mouse-graphic-panel .mt-graphic{width:280px;height:auto}.mt-graphic .mt-body{fill:none;stroke:#5e6e7e;stroke-width:1.6px;stroke-linejoin:round;pointer-events:none}.mt-graphic .mt-region{stroke-width:1.2px;pointer-events:all;transition:fill .12s,stroke .12s}.mt-graphic .mt-labels{pointer-events:none}.mt-graphic .mt-labels text{letter-spacing:.5px;font-size:9px;font-weight:600;transition:fill .12s}.mt-graphic .mt-labels line{stroke:#74869a;stroke-width:.8px}.mouse-tester-counters{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.mouse-tester-counter{background:#11181f;border:1px solid #22303c;border-radius:4px;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;transition:border-color .12s,background .12s,transform 80ms;display:flex}.mouse-tester-counter.on{background:#14233a;border-color:#409eff;transform:translateY(-1px)}.mt-dot{border-radius:50%;width:7px;height:7px}.mt-label{color:#9aa9b6;font-size:10px}.mt-count{color:#e6eef5;font-size:16px;font-weight:800;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace}.mouse-view-toggle{border:1px solid #2b3946;border-radius:4px;margin:2px 0 4px;display:inline-flex;overflow:hidden}.mouse-view-toggle button{color:#9ba9b6;cursor:pointer;background:#151e27;border:none;border-right:1px solid #2b3946;height:24px;padding:0 14px;font-size:11px;font-weight:600;transition:background .12s,color .12s}.mouse-view-toggle button:last-child{border-right:none}.mouse-view-toggle button:hover{color:#c4d2de;background:#1c2833}.mouse-view-toggle button.active{color:#e6eef5;background:#286195}.mouse-graphic-panel{flex-direction:column;align-items:center;gap:10px;padding:0;display:flex}.mt-extra-chips{gap:6px;display:flex}.mt-extra-chip{color:#9ba9b6;cursor:pointer;height:24px;font-size:11px;font-weight:700;font-family:var(--font-mono), "Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",monospace;background:#151e27;border:1px solid #374553;border-radius:4px;padding:0 12px;transition:background .12s,color .12s,border-color .12s}.mt-extra-chip:hover:not(:disabled){color:#c4d2de;background:#1c2833}.mt-extra-chip.active{color:#e5f3ff;background:#286195;border-color:#58a2dd}.mt-extra-chip:disabled{opacity:.45;cursor:not-allowed}.vk-main-col{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.vk-keypad-col{flex-direction:column;flex-shrink:0;gap:4px;width:160px;display:flex}.vk-row{gap:4px;display:flex}.vk-key{color:#a5b4c2;cursor:pointer;white-space:nowrap;background:#18222d;border:1px solid #2b3946;border-radius:3px;flex:1 1 0;justify-content:center;align-items:center;min-width:0;height:30px;padding:0;font-size:11px;font-weight:600;transition:background .1s,border-color .1s,color .1s;display:flex}.vk-key:hover:not(:disabled){color:#d6e5f1;background:#1e2a36;border-color:#3d5161}.vk-key:disabled{opacity:.4;cursor:not-allowed}.vk-key.vk-active{color:#c8def5;background:#22517d;border-color:#2d6896}.vk-key.vk-active:hover:not(:disabled){background:#2a5e8e}.vk-key.vk-modifier{color:#a08060;background:#1a1712;border:2px solid #5a3a1a;font-size:10px}.vk-key.vk-modifier.vk-active{color:#fff;background:#2a4a6a;border:2px solid #6aaadd;box-shadow:inset 0 0 0 1px #6aaadd99,0 0 8px #6aaadd66}.keycode-summary{color:#7c8996;flex-wrap:wrap;gap:4px;margin-top:6px;font-size:10px;display:flex}.keycode-chip{color:#8cc8ff;font-family:var(--font-mono), monospace;background:#1a2a38;border:1px solid #2d4658;border-radius:3px;padding:1px 6px;font-size:10px;display:inline-block}.vk-spacer{flex:1 1 0;min-width:0;height:26px}.hold-press-row{margin-bottom:var(--sp-xs);padding-bottom:var(--sp-xs);align-items:center;gap:8px;display:flex}.hold-press-row .forward-mode-label{color:#8fa0b0;letter-spacing:.03em;flex-shrink:0;font-size:11px;font-weight:700}.hold-press-segmented{border:1px solid #2b3946;border-radius:4px;gap:0;display:inline-flex;overflow:hidden}.hold-press-seg{color:#8fa0b0;cursor:pointer;background:#141d26;border:none;border-right:1px solid #2b3946;height:26px;padding:0 16px;font-size:12px;font-weight:700;transition:background .12s,color .12s}.hold-press-seg:last-child{border-right:none}.hold-press-seg:hover:not(:disabled){color:#c5d4e0;background:#1a2632}.hold-press-seg.active{color:#c8def5;background:#23517a}.hold-press-seg:disabled{opacity:.4;cursor:not-allowed}.firmware-flow{color:#dce8f1;flex-direction:column;gap:16px;width:min(980px,100% - 32px);margin:0 auto;padding:22px 0 30px;display:flex}.firmware-flow-standalone{justify-content:center;min-height:100vh;padding:32px 0}.firmware-flow-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.firmware-flow-header h1{margin:3px 0 0;font-size:24px;line-height:1.15}.firmware-flow-identity{color:#8ea0af;font:600 11px var(--font-mono), monospace;align-items:center;gap:9px;display:flex}.firmware-flow-identity span{background:#090f15ad;border:1px solid #2d3b48;border-radius:999px;padding:5px 9px}.firmware-flow-identity .is-online{color:#67dda0;border-color:#285f47}.firmware-flow-identity .is-offline{color:#ff8994;border-color:#66383e}.firmware-back-btn{color:#8ea0af;cursor:pointer;background:#090f15ad;border:1px solid #2d3b48;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:700;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.firmware-back-btn:hover:not(:disabled){color:#d8e2ea;background:#121c25d9;border-color:#3d5063}.firmware-back-btn:disabled{cursor:not-allowed;opacity:.55}.firmware-steps{background:linear-gradient(#121c25f0,#090f15eb);border:1px solid #273541;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));padding:16px 18px;display:grid}.firmware-step{color:#657684;align-items:center;gap:9px;min-width:0;font-size:12px;font-weight:700;display:flex;position:relative}.firmware-step-dot{color:#788b9a;background:#101922;border:1px solid #344553;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.firmware-step-arrow{color:#344553;position:absolute;right:12px}.firmware-step.is-active{color:#d9eaff}.firmware-step.is-active .firmware-step-dot{color:#e9f5ff;background:#1f5687;border-color:#55a7ff;box-shadow:0 0 0 5px #55a7ff1a,0 0 22px #55a7ff33}.firmware-step.is-complete{color:#73dba6}.firmware-step.is-complete .firmware-step-dot{color:#72e0aa;background:#2f7e5638;border-color:#357a58}.firmware-push-card,.firmware-downstream-guard,.firmware-source,.firmware-ready-card,.firmware-transfer-card,.firmware-result-error{background:#0b1219e6;border:1px solid #2a3946;border-radius:12px;box-shadow:0 14px 40px #00000029}.firmware-downstream-guard{background:linear-gradient(110deg,#18415e57,#0b1219eb);border-color:#315e7f;align-items:center;gap:15px;min-height:112px;padding:20px 22px;display:flex}.firmware-downstream-guard.is-blocked{background:linear-gradient(110deg,#68262d57,#0b1219f0);border-color:#9a4b51}.firmware-downstream-guard-icon{color:#78cfff;background:#25669429;border:1px solid #37698d;border-radius:50%;flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid}.firmware-downstream-guard.is-blocked .firmware-downstream-guard-icon{color:#ff929c;background:#802b3333;border-color:#8b4249}.firmware-downstream-guard h2{margin:0;font-size:16px}.firmware-downstream-guard p{color:#91a4b2;margin:6px 0 0;font-size:12px;line-height:1.65}.firmware-push-card{background:linear-gradient(110deg,#18415e61,#0b1219e6);border-color:#315e7f;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.firmware-push-card.is-required{background:linear-gradient(110deg,#813d1357,#0b1219eb);border-color:#b66e29;box-shadow:inset 3px 0 #f0a24e,0 14px 40px #0000002e}.firmware-push-icon{color:#76caff;padding-top:2px}.firmware-push-card.is-required .firmware-push-icon{color:#ffc06d}.firmware-push-title{align-items:center;gap:9px;font-size:15px;font-weight:850;display:flex}.firmware-push-title span{color:#8ed9ff;font:800 13px var(--font-mono), monospace}.firmware-push-card.is-required .firmware-push-title span{color:#ffd08c}.firmware-push-card p{color:#aebdca;margin:5px 0 0;font-size:12px}.firmware-push-card small{color:#7f919f;white-space:pre-wrap;margin-top:6px;line-height:1.5;display:block}.firmware-source{padding:17px}.firmware-source-heading{align-items:center;gap:14px;margin-bottom:11px;display:flex}.firmware-source-heading>div{flex:1}.firmware-source-heading h2{margin:0;font-size:15px}.firmware-source-heading p{color:#778996;margin:3px 0 0;font-size:11px}.firmware-local-button{color:#a9bac7;cursor:pointer;background:#121c25;border:1px solid #3a4b59;border-radius:6px;align-items:center;gap:6px;height:32px;padding:0 11px;display:inline-flex}.firmware-server-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:246px;display:grid;overflow:auto}.firmware-server-item{color:#d5e2eb;text-align:left;cursor:pointer;background:#0b131a;border:1px solid #263642;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:11px 12px;display:flex}.firmware-server-item:hover,.firmware-server-item.is-selected{background:#102334;border-color:#4381ad}.firmware-server-item>span:first-child{min-width:0}.firmware-server-item b,.firmware-server-item small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.firmware-server-item small{color:#718390;margin-top:3px;font-size:10px}.firmware-server-version{color:#78cbf7;font:700 11px var(--font-mono), monospace;flex-shrink:0;align-items:center;gap:7px;display:flex}.firmware-empty{color:#758794;grid-column:1/-1;justify-content:center;align-items:center;gap:7px;min-height:68px;font-size:12px;display:flex}.firmware-ready-card{grid-template-columns:minmax(320px,1fr) auto;align-items:center;gap:14px 20px;padding:20px;display:grid}.firmware-version-route{align-items:center;gap:18px;display:flex}.firmware-version-route>div{min-width:130px}.firmware-version-route small{color:#718491;margin-bottom:4px;font-size:10px;display:block}.firmware-version-route strong{font:800 21px var(--font-mono), monospace;color:#e5f2fa}.firmware-version-route svg{color:#4b6171}.firmware-package-ready{color:#65d99d;grid-column:1/-1;align-items:center;gap:7px;font-size:11px;display:flex}.firmware-package-ready button{color:#738591;cursor:pointer;background:0 0;border:0;place-items:center;margin-left:3px;padding:2px;display:grid}.firmware-button{cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 20px;font-weight:850;display:inline-flex}.firmware-button:disabled{opacity:.42;cursor:not-allowed}.firmware-button.start{color:#fff;background:linear-gradient(#2e82bd,#215f8e);border:1px solid #4d9dd5;min-width:174px;box-shadow:0 9px 24px #1f70a947}.firmware-button.primary{color:#9edcff;background:#173a54;border:1px solid #4289bb}.firmware-button.ghost{color:#93a4b0;background:0 0;border:1px solid #374650}.firmware-button.success{color:#e8fff3;background:#246d4c;border:1px solid #54cf8f;min-width:150px;box-shadow:0 10px 28px #29976247}.firmware-transfer-card,.firmware-result-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:270px;padding:34px;display:flex}.firmware-transfer-visual{color:#70c6f6;background:#2566942b;border:1px solid #37698d;border-radius:50%;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 0 32px #439ad624}.firmware-transfer-card h2,.firmware-result-error h2{margin:16px 0 5px;font-size:21px}.firmware-transfer-card p,.firmware-result-error p{color:#8fa1ae;margin:0 0 18px;font-size:12px}.firmware-progress{width:min(600px,92%);margin-top:8px}.firmware-progress>div:first-child{color:#9babb6;justify-content:space-between;margin-bottom:7px;font-size:11px;display:flex}.firmware-progress-track{background:#111b23;border-radius:999px;height:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #283844}.firmware-progress-track span{border-radius:inherit;background:linear-gradient(90deg,#419bea,#62dda3);height:100%;transition:width .2s;display:block}.firmware-result-error{color:#ff8590;border-color:#6b343b}.firmware-actions{gap:10px;display:flex}.firmware-success{text-align:center;background:radial-gradient(circle at 50% 35%,#45d6892e,#0000 34%),linear-gradient(#13422cad,#081811ed);border:1px solid #34845d;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:340px;padding:40px;display:flex;box-shadow:inset 0 0 60px #2dae6b14,0 18px 50px #00000038}.firmware-success-icon{color:#72e5aa;background:#26945c38;border:1px solid #63dda0;border-radius:50%;place-items:center;width:96px;height:96px;display:grid;box-shadow:0 0 38px #4ed79138}.firmware-success h2{color:#dffff0;margin:18px 0 4px;font-size:28px}.firmware-success p{color:#8fcbaa;margin:0 0 24px;font-size:13px}.firmware-message-error{color:#ff9ca5;background:#61242b33;border:1px solid #6b373d;border-radius:8px;align-items:center;gap:8px;padding:11px 13px;font-size:12px;display:flex}@media (max-width:760px){.firmware-steps{grid-template-columns:1fr 1fr;gap:14px 8px}.firmware-step-arrow{display:none}.firmware-server-list,.firmware-ready-card{grid-template-columns:1fr}.firmware-button.start{width:100%}}.firmware-required-shield{z-index:140;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#03070bd6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.firmware-required-dialog{background:linear-gradient(110deg,#712f0f66,#0000 52%),#11181f;border:1px solid #dc792f;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;width:min(680px,94vw);padding:26px;display:grid;box-shadow:inset 4px 0 #f39a48,0 26px 80px #0000008a,0 0 50px #de6b261f}.firmware-required-icon{color:#ffae63;background:#c053192e;border:1px solid #d97832;border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.firmware-required-label{color:#ffad62;letter-spacing:.14em;font-size:11px;font-weight:900}.firmware-required-dialog h2{color:#fff0df;margin:4px 0 6px;font-size:22px}.firmware-required-dialog p{color:#bba998;margin:0;font-size:12px}.firmware-required-version{color:#e5bd94;font:800 13px var(--font-mono), monospace;align-items:center;gap:9px;margin-top:11px;display:flex}.firmware-required-version b{color:#e27634}.firmware-required-dialog>button{color:#fff6ec;cursor:pointer;background:linear-gradient(#d8782f,#a94c1e);border:1px solid #ffad64;border-radius:7px;height:44px;padding:0 22px;font-size:14px;font-weight:900;box-shadow:0 10px 28px #c4511b47}@media (max-width:680px){.firmware-required-dialog{grid-template-columns:auto 1fr}.firmware-required-dialog>button{grid-column:1/-1;width:100%}}.firmware-push-retry{color:#ffc27c;cursor:pointer;background:#b66e2924;border:1px solid #b66e29;border-radius:5px;height:30px;margin-top:10px;padding:0 11px;font-weight:750}.firmware-release-notes{background:#2c5b7b1f;border-left:3px solid #4b9ed6;border-radius:0 6px 6px 0;grid-column:1/-1;padding:11px 13px}.firmware-release-notes small{color:#6f899b;margin-bottom:3px;font-size:10px;display:block}.firmware-release-notes strong{color:#d9e9f4;font-size:12px}.firmware-release-notes p{color:#91a4b2;white-space:pre-wrap;margin:5px 0 0;font-size:11px;line-height:1.55}html[data-theme=light],html[data-theme=light] canvas,html[data-theme=light] img{filter:invert()hue-rotate(180deg)}html[data-theme=light] *{scrollbar-color:#9aa8b4 #e8edf2!important;scrollbar-width:auto!important}html[data-theme=light] ::-webkit-scrollbar{width:10px;height:10px}html[data-theme=light] ::-webkit-scrollbar-track{background:#e8edf2}html[data-theme=light] ::-webkit-scrollbar-thumb{background:#9aa8b4;border-radius:5px}html[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#7f8f9d}
