html{box-sizing:border-box;overflow-x:hidden}*,:before,:after{box-sizing:inherit}html,body{font-size:15px;line-height:1.5}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:Segoe UI,Arial,sans-serif;font-weight:400}h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}button,input,select,textarea,optgroup{font:inherit;margin:0}hr{border:0;border-top:1px solid #eee;margin:20px 0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{color:inherit;white-space:normal;max-width:100%;padding:0;display:table}.k-container:before,.k-container:after,.k-panel:before,.k-panel:after,.k-row:before,.k-row:after{content:"";clear:both;display:table}.k-container,.k-panel{padding:.01em 16px}.k-panel{margin-top:16px;margin-bottom:16px}.k-col{float:left;width:100%}.k-col.s1{width:8.33333%}.k-col.s2{width:16.6667%}.k-col.s3{width:25%}.k-col.s4{width:33.3333%}.k-col.s5{width:41.6667%}.k-col.s6{width:50%}.k-col.s7{width:58.3333%}.k-col.s8{width:66.6667%}.k-col.s9{width:75%}.k-col.s10{width:83.3333%}.k-col.s11{width:91.6667%}.k-col.s12{width:100%}@media (width>=601px){.k-col.m1{width:8.33333%}.k-col.m2{width:16.6667%}.k-col.m3{width:25%}.k-col.m4{width:33.3333%}.k-col.m5{width:41.6667%}.k-col.m6{width:50%}.k-col.m7{width:58.3333%}.k-col.m8{width:66.6667%}.k-col.m9{width:75%}.k-col.m10{width:83.3333%}.k-col.m11{width:91.6667%}.k-col.m12{width:100%}}@media (width>=993px){.k-col.l1{width:8.33333%}.k-col.l2{width:16.6667%}.k-col.l3{width:25%}.k-col.l4{width:33.3333%}.k-col.l5{width:41.6667%}.k-col.l6{width:50%}.k-col.l7{width:58.3333%}.k-col.l8{width:66.6667%}.k-col.l9{width:75%}.k-col.l10{width:83.3333%}.k-col.l11{width:91.6667%}.k-col.l12{width:100%}}.k-button{font:inherit;color:#24292f;text-align:center;vertical-align:middle;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background-color:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;justify-content:center;align-items:center;padding:8px 14px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.k-button:hover:not(:disabled){background-color:#eaeef2;border-color:#afb8c1}.k-button:active:not(:disabled){background-color:#dfe3e8;border-color:#afb8c1}.k-button:focus-visible{outline-offset:2px;outline:2px solid #2196f3}.k-button:disabled{cursor:not-allowed;opacity:.5}.k-button-primary{color:#fff;background-color:#1a7f37;border-color:#176b2f}.k-button-primary:hover:not(:disabled){background-color:#176b2f;border-color:#145c28}.k-button-primary:active:not(:disabled){background-color:#145c28;border-color:#145c28}.k-button-danger{color:#cf222e;background-color:#fff;border-color:#d0d7de}.k-button-danger:hover:not(:disabled){color:#fff;background-color:#cf222e;border-color:#bc1c29}.k-button-danger:active:not(:disabled){color:#fff;background-color:#bc1c29;border-color:#bc1c29}.k-input{border:none;border-bottom:1px solid #ccc;width:100%;padding:8px;display:block}.k-check{width:24px;height:24px;position:relative;top:6px}.k-border{border:1px solid #ccc!important}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root{flex-direction:column;min-height:100vh;display:flex}#root>.App{flex-direction:column;flex:1 0 auto;display:flex}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-header{color:#f0f6fc;background-color:#24292f;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;display:flex}.app-title{letter-spacing:.2px;min-width:0;font-size:20px;font-weight:600}.app-header-meta{flex-shrink:0;align-items:center;gap:16px;display:flex}.repo-link{color:#c9d1d9;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;text-decoration:none;display:inline-flex}.repo-link:hover,.repo-link:focus-visible{color:#64b5f6}.app-body{flex:auto;align-items:stretch;min-height:0;display:flex}.app-footer{color:#c9d1d9;background-color:#24292f;flex-shrink:0;padding:18px 20px;font-size:14px}.app-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;display:flex}.app-footer-links{flex-wrap:wrap;gap:8px 20px;display:flex}.app-footer a{color:#c9d1d9;text-decoration:none}.app-footer a:hover,.app-footer a:focus-visible{color:#64b5f6;text-decoration:underline}.site-link{letter-spacing:.2px;font-size:18px;font-weight:600}.app-footer-legal{color:#8b949e;border-top:1px solid #3a4048;margin-top:10px;padding-top:10px;font-size:13px}@media (width<=480px){.app-header{flex-wrap:wrap;padding:12px 14px}.app-title{font-size:17px}.app-header-meta{gap:10px}}.connection-panel,.connection-summary{background:#fff;border:1px solid #d0d7de;border-radius:10px;flex-direction:column;align-items:flex-start;gap:14px;width:100%;max-width:600px;margin-left:0;padding:24px;display:flex}.connection-panel h2,.connection-summary h2{margin:0;font-size:16px;font-weight:600}.connection-panel>.k-button{width:100%;margin-top:4px}.connection-versions{gap:10px;width:100%;margin:4px 0;display:grid}.connection-versions>div{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.connection-versions dt{color:#57606a}.connection-versions dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}@media (width<=480px){.connection-panel,.connection-summary{padding:16px}.conn-row{flex-wrap:wrap}.conn-row .conn-input{flex-basis:100%}}.conn-field{flex-direction:column;gap:6px;width:100%;display:flex}.conn-label{color:#24292f;font-size:13px;font-weight:600}.conn-hint,.conn-summary-text{color:#57606a;margin:0;font-size:14px}.conn-row{align-items:stretch;gap:8px;display:flex}.conn-input{font:inherit;color:#24292f;background-color:#fff;border:1px solid #d0d7de;border-radius:6px;flex:1;min-width:0;padding:8px 10px;font-size:14px}.conn-input:focus-visible{outline-offset:-1px;outline:2px solid #2196f3}.conn-segmented{border:1px solid #d0d7de;border-radius:6px;align-self:flex-start;display:inline-flex;overflow:hidden}.conn-segment{font:inherit;color:#24292f;cursor:pointer;background-color:#fff;border:none;padding:8px 14px;font-size:14px}.conn-segment+.conn-segment{border-left:1px solid #d0d7de}.conn-segment:hover:not(:disabled){background-color:#f3f4f6}.conn-segment[aria-pressed=true]{color:#0860ca;background-color:#eaeef2;font-weight:600}.conn-segment:disabled{cursor:not-allowed;opacity:.6}.conn-segment:focus-visible{outline-offset:-2px;outline:2px solid #2196f3}.conn-error{color:#cf222e;margin:0;font-size:14px}.connection-status{color:#c9d1d9;white-space:nowrap;align-items:center;gap:8px;font-size:14px;display:inline-flex}.connection-status-dot{background-color:#8b949e;border-radius:50%;flex-shrink:0;width:9px;height:9px}.connection-status.is-connected{color:#3fb950;font-weight:600}.connection-status.is-connected .connection-status-dot{background-color:#3fb950;box-shadow:0 0 0 3px #3fb95038}.app-sidebar{box-sizing:border-box;background-color:#f6f8fa;border-right:1px solid #d0d7de;flex-direction:column;flex-shrink:0;gap:10px;width:190px;padding:18px 14px;display:flex}.sidebar-heading{letter-spacing:.6px;text-transform:uppercase;color:#6a737d;margin:0;font-size:11px;font-weight:600}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav-item{font:inherit;text-align:left;color:#24292f;cursor:pointer;background-color:#0000;border:none;border-left:3px solid #0000;border-radius:0 6px 6px 0;padding:9px 12px;font-size:14px;transition:background-color .15s,color .15s}.sidebar-nav-item:hover:not(:disabled){background-color:#eaeef2}.sidebar-nav-item:disabled{color:#656d76;cursor:not-allowed}.sidebar-nav-item:focus-visible{outline-offset:-2px;outline:2px solid #2196f3}.sidebar-nav-item.active{color:#0860ca;background-color:#eaeef2;border-left-color:#0969da;font-weight:600}.app-main{color:#24292f;background:#f5f7fa;flex:auto;min-width:0;padding:28px}.app-main>*{max-width:1440px;margin-inline:auto}.page-heading{margin-bottom:24px}.page-heading p{color:#57606a;margin:6px 0 0;font-size:14px}.app-main-title{color:#24292f;margin:0;font-size:24px;font-weight:600}@media (width<=700px){.app-main{padding:20px 14px}.app-body{flex-direction:column}.app-sidebar{border-bottom:1px solid #d0d7de;border-right:none;flex-direction:row;align-items:center;gap:6px 16px;width:auto;padding:8px 10px}.sidebar-heading{display:none}.sidebar-nav{flex-flow:wrap;flex:1}.sidebar-nav-item{border-bottom:3px solid #0000;border-left:none;border-radius:6px 6px 0 0}.sidebar-nav-item.active{border-bottom-color:#0969da;border-left-color:#0000}}.disabled-div{pointer-events:none;opacity:.65}.disabled-div .disabled-div{opacity:1}.settings-card{box-sizing:border-box;background-color:#fff;border:1px solid #d0d7de;border-radius:10px;width:100%;min-width:0;margin:0;padding:18px}.settings-card>legend{color:#24292f;padding:0 6px;font-size:15px;font-weight:600}.card-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:flex-start;gap:24px;display:grid}.page-layout{gap:24px;min-width:0;display:grid}.panel-card{background:#fff;border:1px solid #d0d7de;border-radius:10px;min-width:0;padding:20px}.panel-card h2{margin:0 0 12px;font-size:16px;font-weight:600}.section-help{color:#57606a;margin:0 0 16px;font-size:13px}.velocity-tuning-notice{color:#654b0e;background:#fff8e6;border-left:3px solid #b78103;border-radius:4px;padding:10px 12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid>*{min-width:0}.form-grid>label,.controller-field-grid>label,.position-setting-grid>label{flex-direction:column;justify-content:space-between;display:flex}.action-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.action-row .k-button{flex:120px}.control-section+.control-section{border-top:1px solid #e5e9ed;margin-top:20px;padding-top:20px}.control-section h3{margin:0 0 12px;font-size:14px;font-weight:600}.check-label{align-items:center;gap:8px;font-size:13px;display:flex}.app-main label{font-size:13px}.app-main input:not([type=checkbox]):not([type=radio]):not([type=range]),.app-main select{color:#24292f;background:#fff;border:1px solid #b8c2cc;border-radius:6px;width:100%;min-width:0;min-height:38px;margin-top:5px;padding:7px 10px;font-size:14px;display:block}.app-main input[type=range]{accent-color:#0969da;width:100%;margin:12px 0;display:block}.app-main input[type=checkbox],.app-main input[type=radio]{accent-color:#0969da}.app-main :is(input,select):focus-visible{outline-offset:2px;outline:2px solid #0969da}.app-main .k-button{white-space:normal;min-height:38px}.app-main .conn-error{overflow-wrap:anywhere;background:#fff1f0;border-radius:6px;padding:10px 12px}@media (width<=480px){.form-grid{grid-template-columns:1fr}.settings-card,.panel-card{padding:14px}}.odometry-timestamp{overflow-wrap:anywhere;margin-top:6px;font-size:13px;line-height:1.5}.odometry-timestamp output{font-variant-numeric:tabular-nums}.motor-tab .k-button{width:100%;min-width:0;max-width:100%;margin-top:6px;display:block}.motor-tab input[type=range],.motor-tab select{width:100%;display:block}.motor-tab .k-check{display:inline}.motor-tab .encoder-card{width:100%;min-width:0;max-width:100%;padding:12px 18px 18px}.encoder-section+.encoder-section{border-top:1px solid #e5e9ed;margin-top:18px;padding-top:18px}.encoder-section h3{color:#24292f;margin:0 0 12px;font-size:15px;font-weight:600}.encoder-fields,.encoder-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;display:grid}.encoder-field{min-width:0}.encoder-field label{margin-bottom:5px;font-size:13px;display:block}.encoder-field label span{color:#59636e;font-size:11px}.motor-tab .encoder-field input,.motor-tab .encoder-field select{color:#24292f;background:#fff;border:1px solid #b8c2cc;border-radius:5px;width:100%;min-width:0;padding:7px 8px;font-size:14px;display:block}.encoder-reverse{cursor:pointer;align-items:center;gap:8px;margin:12px 0;font-size:14px;display:flex}.encoder-reverse input{width:16px;height:16px;margin:0}.motor-tab .encoder-card .k-button{white-space:normal;width:100%;min-width:0;min-height:36px;margin:0;padding:8px;font-size:13px;display:inline-flex}.encoder-counter,.encoder-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.motor-tab .encoder-counter .k-button{width:auto;padding-inline:14px}.encoder-counter output{font-variant-numeric:tabular-nums;font-size:20px}.encoder-reading-label{color:#59636e;font-size:12px;display:block}.encoder-unit{color:#59636e;font-size:13px;font-weight:400}.encoder-section-heading{margin-bottom:12px}.encoder-section-heading h3{margin:0}.encoder-status{color:#59636e;background:#eef1f4;border-radius:12px;padding:2px 9px;font-size:12px;font-weight:600}.encoder-status.is-running{color:#176b35;background:#e6f4ea}.encoder-sample{background:#f6f8fa;border:1px solid #e5e9ed;border-radius:6px;margin-top:14px;padding:12px}.encoder-angle{overflow-wrap:anywhere;font-size:26px;font-weight:600;line-height:1.4}.encoder-angle output{font-variant-numeric:tabular-nums}.encoder-sample .odometry-timestamp{border-top:1px solid #e0e5ea;margin-top:10px;padding-top:10px}.encoder-sample .odometry-timestamp output{display:block}.motor-tab>.conn-error{grid-column:1/-1}.motor-tab{max-width:1100px;margin-left:0}.motor-output-card p{margin:0 0 14px}.motor-output-card .section-help{margin-top:10px}.motor-output-label{justify-content:space-between;gap:10px;display:flex}.motor-output-label output{font-variant-numeric:tabular-nums;font-weight:600}.motor-output-card .action-row .k-button{width:auto;margin:0}@media (width<=420px){.motor-tab .encoder-card{padding-inline:12px}.encoder-fields{grid-template-columns:1fr}}.position-workspace{min-width:0}.position-control{max-width:100%}.position-control p{font-size:13px;line-height:1.5}.position-control .position-fields{border:0;min-width:0;margin:0;padding:0}.position-control label{margin-top:8px;font-size:13px;display:block}.position-control input,.position-control select{box-sizing:border-box;width:100%}.position-control .k-button{max-width:100%;margin-top:8px;display:block}.position-control output{font-variant-numeric:tabular-nums;margin-top:12px;display:block}.position-control fieldset:disabled{opacity:.6}.position-control fieldset:disabled fieldset:disabled{opacity:1}.position-control h3{margin:16px 0 6px;font-size:14px;font-weight:600}.position-control .position-tuning-note{color:#57606a;margin-top:0}.position-control .position-prerequisite{background:#f1f3f5;border-radius:5px;padding:8px 10px}.position-control .position-prerequisite.is-ready{color:#166534;background:#eef8f0}.position-control .position-origin-help{color:#57606a;font-size:12px}.position-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;display:grid}.position-control .position-initialize{width:100%;margin:16px 0}.position-control .position-target{border-top:1px solid #e8ecf0;padding-top:2px}.position-target>.k-button{width:100%;margin-top:10px}.position-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.position-actions .k-button{flex:110px}.position-chart{background:#fff;border:1px solid #d0d7de;border-radius:10px;min-width:0;max-width:100%;margin-top:16px;padding:18px}.motor-controller-options .position-chart{margin-top:0}.position-chart-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.position-chart-heading h3{margin:0;font-size:16px;font-weight:600}.position-chart-heading label{align-items:center;gap:6px;font-size:13px;display:flex}.position-chart p{color:#57606a;font-size:13px;line-height:1.5}.position-chart-canvas{width:100%;height:300px;position:relative}.platform-tab{gap:24px}.platform-setup-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:20px;display:grid}.platform-control-grid{grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr);align-items:start;gap:24px;display:grid}.platform-position,.platform-position .position-workspace{display:contents}.platform-position .position-chart{grid-column:1/-1;margin:0}.platform-position .position-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.platform-position .position-gain-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.platform-position .position-target-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.platform-tab .k-button{min-width:0;max-width:100%}.platform-tab .platform-initialize{width:100%;margin-top:16px}.platform-fields{border:0;min-width:0;margin:0;padding:0}.platform-fields:disabled{opacity:.6}.platform-hardware h2:not(:first-child){margin:20px 0 12px;font-size:14px}.platform-hardware input[type=number]{margin-bottom:12px}.platform-hardware .k-button{width:100%;margin-top:6px}.platform-hardware label:not(.checkbox-label){margin-top:12px;display:block}.platform-hardware .span-check{align-items:center;gap:6px;margin:8px 12px 8px 0;display:inline-flex}.platform-tab .k-check{width:16px;height:16px;top:0}.platform-manual label[for^=platformVelocity]{justify-content:space-between;gap:12px;display:flex}.platform-manual output{font-variant-numeric:tabular-nums;font-weight:600}.platform-manual>div>.k-button{margin:4px 6px 4px 0}.keyboard-drive{border-top:1px solid #e5e9ed;margin-top:20px;padding-top:16px}.keyboard-drive>.span-check{margin-top:12px;display:block}.keyboard-drive>.span-check:first-child{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:8px;display:flex}.keyboard-drive-hint{color:#57606a;margin:8px 0;font-size:12px}@media (width<=1250px){.platform-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-feedback{grid-column:1/-1}.platform-position .position-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1050px){.platform-control-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=800px){.platform-setup-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){.platform-position .position-setting-grid,.platform-position .position-target-grid{grid-template-columns:minmax(0,1fr)}}.platform-tab .platform-odometry-card{width:100%;min-width:0;max-width:100%;padding:12px 18px 18px}.platform-odometry-section+.platform-odometry-section{border-top:1px solid #e5e9ed;margin-top:18px;padding-top:18px}.platform-odometry-section h3{color:#24292f;margin:0 0 12px;font-size:15px;font-weight:600}.platform-odometry-section label{margin-bottom:5px;font-size:13px}.platform-odometry-section input{color:#24292f;background:#fff;border:1px solid #b8c2cc;border-radius:5px;width:100%;min-width:0;margin-bottom:8px;padding:7px 8px;font-size:14px}.platform-odometry-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;display:grid}.platform-tab .platform-odometry-card .k-button{white-space:normal;width:100%;min-width:0;min-height:36px;margin:0;padding:8px;font-size:13px;display:inline-flex}.platform-odometry-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.platform-odometry-heading h3{margin:0}.platform-odometry-status{color:#59636e;background:#eef1f4;border-radius:12px;padding:2px 9px;font-size:12px;font-weight:600}.platform-odometry-status.is-running{color:#176b35;background:#e6f4ea}.platform-odometry-sample{background:#f6f8fa;border:1px solid #e5e9ed;border-radius:6px;margin-top:14px;padding:12px}.platform-odometry-pose{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.platform-odometry-label{color:#59636e;font-size:12px;display:block}.platform-odometry-value{overflow-wrap:anywhere;font-size:22px;font-weight:600;line-height:1.4}.platform-odometry-value output{font-variant-numeric:tabular-nums}.platform-odometry-unit{color:#59636e;font-size:13px;font-weight:400}.platform-odometry-sample .odometry-timestamp{border-top:1px solid #e0e5ea;margin-top:10px;padding-top:10px}.platform-odometry-sample .odometry-timestamp output{display:block}@media (width<=420px){.platform-tab .platform-odometry-card{padding-inline:12px}.platform-odometry-pose{grid-template-columns:1fr}}.gpio-led{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.gpio-led h2{margin-bottom:4px}.gpio-led p{margin:0}.gpio-container{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;display:grid}.gpio-div{background:#fff;border:1px solid #d0d7de;border-radius:10px;min-width:0;padding:18px}.gpio-div h3{margin:0 0 16px;font-size:16px;font-weight:600}.gpio-modes{border:0;margin:0;padding:0}.gpio-modes legend{color:#57606a;margin-bottom:8px;font-size:12px}.gpio-modes>div{align-items:center;gap:8px;min-height:34px;display:flex}.gpio-modes label{cursor:pointer}.gpioPanel{border-top:1px solid #e5e9ed;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.gpio-value-label{color:#57606a;font-size:12px;display:block}.gpioPanel output{font-size:15px;font-weight:600}.gpioPanel label{justify-content:space-between;gap:8px;width:100%;display:flex}.gpioPanel br,.gpioPanel.hidden{display:none}.motor-controller-options{color:#24292f;gap:24px;width:100%;max-width:1440px;margin:0 auto;padding:0;display:grid}.motor-controller-options .settings-card{width:100%;min-width:0;margin:0;padding:16px}.controller-setup{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:16px;display:grid}.hardware-fields{grid-template-columns:1fr 1fr 1.4fr;gap:12px;display:grid}.controller-checks{flex-wrap:wrap;gap:12px 24px;margin-top:14px;display:flex}.controller-checks label{align-items:center;gap:6px;display:flex}.frequency-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.frequency-actions input{flex:80px;width:80px;min-width:70px}.controller-workspace,.motor-controller-options .position-workspace{grid-template-columns:minmax(290px,360px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.motor-controller-options label{font-size:13px;font-weight:500}.motor-controller-options input:not([type=checkbox]):not([type=range]),.motor-controller-options select{width:100%;min-width:0;min-height:36px;font:inherit;background:#fff;border:1px solid #c8d0d9;border-radius:5px;margin-top:5px;padding:6px 8px;display:block}.motor-controller-options input[type=range]{width:100%;margin:10px 0}.motor-controller-options .k-button{color:#24292f;white-space:normal;cursor:pointer;background:#f6f8fa;border:1px solid #d0d7de;border-radius:5px;justify-content:center;align-items:center;min-width:0;max-width:100%;min-height:36px;margin:0;padding:7px 10px;font-size:13px;display:inline-flex}.motor-controller-options .k-button-primary{color:#fff;background:#1a7f37;border-color:#176b2f}.motor-controller-options .k-button-danger{color:#cf222e;background:#fff;border-color:#d0d7de}.motor-controller-options .k-button:disabled{cursor:default}.controller-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.controller-help{color:#57606a;margin:0 0 16px;font-size:13px;line-height:1.5}.motor-controller-options .controller-initialize{width:100%;margin-top:16px}.motor-controller-options .position-initialize{margin:16px 0}.motor-controller-options .position-target>.k-button{margin-top:10px}.controller-target{border-top:1px solid #e8ecf0;margin-top:16px;padding-top:16px}.controller-target label{justify-content:space-between;gap:8px;display:flex}.controller-target output{font-variant-numeric:tabular-nums;font-weight:600}.controller-target .k-button,.motor-controller-options .controller-stop{width:100%}.controller-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.controller-actions .k-button{flex:120px}.controller-chart,.motor-controller-options .position-chart{background:#fff;border:1px solid #d0d7de;border-radius:8px;min-width:0;padding:18px}.controller-chart h3{margin:0 0 8px;font-size:16px;font-weight:600}.velocity-chart-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.velocity-chart-heading h3{margin:0}.velocity-chart-heading label{align-items:center;gap:6px;display:flex}.velocity-chart-heading{margin-bottom:12px}.velocity-chart-canvas{width:100%;height:300px;position:relative}@media (width<=1050px){.controller-setup{grid-template-columns:1fr}}@media (width<=1100px){.motor-controller-options{gap:20px}.controller-workspace,.motor-controller-options .position-workspace{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){.hardware-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.hardware-fields>:last-child{grid-column:1/-1}}.app-settings{box-sizing:border-box;max-width:580px}.app-settings select{margin-bottom:14px}.settings-save-note{color:#57606a;margin:20px 0 0;font-size:13px}
