.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{min-width:300px;max-width:500px;padding:16px;border-radius:6px;box-shadow:0 4px 12px #0000004d,0 2px 4px #0003;display:flex;align-items:center;gap:12px;pointer-events:auto;animation:toast-enter .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.toast-exit{animation:toast-exit .3s ease-out forwards}@keyframes toast-enter{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-exit{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.toast-icon{font-size:20px;font-weight:700;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-message{flex:1;font-size:14px;line-height:1.4;color:#fff;word-break:break-word}.toast-close{background:none;border:none;color:#fffc;font-size:24px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;transition:all .2s ease}.toast-close:hover{background:#ffffff1a;color:#fff}.toast-success{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399}.toast-success .toast-icon{background:#fff3;color:#fff}.toast-error{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#f87171}.toast-error .toast-icon{background:#fff3;color:#fff}.toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#fbbf24}.toast-warning .toast-icon{background:#fff3;color:#fff}.toast-info{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#60a5fa}.toast-info .toast-icon{background:#fff3;color:#fff}.robot-viewer-container{width:100%;height:100%;position:relative;overflow:hidden}.robot-viewer-canvas{background:#d5dce4}.status-overlay{position:absolute;top:10px;left:10px;background:#000000b3;color:#fff;padding:8px 12px;border-radius:4px;font-size:12px;max-width:300px}.trace-controls{margin-top:8px;display:flex;gap:8px;align-items:center}.trace-toggle-btn{border:none;padding:4px 8px;border-radius:3px;font-size:11px;cursor:pointer;transition:all .2s ease}.trace-toggle-btn.active{background:#0f0;color:#000}.trace-toggle-btn.inactive{background:#666;color:#fff}.trace-toggle-btn:hover{opacity:.8}.clear-trace-btn{background:#f66;color:#fff;border:none;padding:4px 8px;border-radius:3px;font-size:11px;cursor:pointer;transition:all .2s ease}.clear-trace-btn:hover{background:#f44}.info-overlay{position:absolute;bottom:10px;left:10px;background:#000000b3;color:#fff;padding:8px 12px;border-radius:4px;font-size:12px;max-width:250px}.tcp-controls{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.2)}.control-group{display:flex;flex-direction:column;gap:4px}.control-group label{font-size:11px;color:#ccc}.mode-btn{border:none;padding:4px 8px;border-radius:3px;font-size:11px;cursor:pointer;transition:all .2s ease;margin-right:4px}.mode-btn.active{background:#007acc;color:#fff}.mode-btn:not(.active){background:#666;color:#fff}.mode-btn:hover{opacity:.8}.tcp-controls-info{margin-top:8px;padding:6px 8px;background:#0064c833;border:1px solid rgba(0,150,255,.3);border-radius:3px;font-size:11px;line-height:1.3;color:#87ceeb}.time-scrubber-compact{background:var(--vscode-sidebar-background);border:1px solid var(--vscode-panel-border);border-radius:4px;padding:8px;margin:8px 0;min-height:40px}.time-scrubber-compact.disabled{opacity:.6}.time-scrubber-compact .scrubber-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.time-scrubber-compact .scrub-mode-btn{background:var(--vscode-button-background);color:var(--vscode-button-foreground);border:1px solid var(--vscode-button-border);border-radius:3px;padding:4px 8px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s ease;min-width:70px;justify-content:center}.time-scrubber-compact .scrub-mode-btn:hover{background:var(--vscode-button-hoverBackground)}.time-scrubber-compact .scrub-mode-btn.active{background:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.time-scrubber-compact .scrub-mode-btn:disabled{opacity:.5;cursor:not-allowed}.time-scrubber-compact .time-display{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;color:var(--vscode-editor-foreground);display:flex;align-items:center;gap:2px}.time-scrubber-compact .current-time{color:var(--vscode-debugTokenExpression-name);font-weight:700}.time-scrubber-compact .divider{color:var(--vscode-editor-foreground);opacity:.7}.time-scrubber-compact .total-time{color:var(--vscode-editor-foreground);opacity:.8}.time-scrubber-compact .scrubber-controls{display:flex;flex-direction:column;gap:6px}.time-scrubber-compact .control-buttons{display:flex;gap:4px;justify-content:center}.time-scrubber-compact .nav-btn{background:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground);border:1px solid var(--vscode-button-border);border-radius:3px;padding:2px 4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;min-width:24px;height:20px}.time-scrubber-compact .nav-btn:hover{background:var(--vscode-button-secondaryHoverBackground)}.time-scrubber-compact .nav-btn:disabled{opacity:.5;cursor:not-allowed}.time-scrubber-compact .scrub-slider-container{position:relative;margin:4px 0}.time-scrubber-compact .scrub-slider{width:100%;height:18px;background:#2d2d30;border:1px solid #464647;border-radius:4px;outline:none;opacity:1;transition:all .2s;-webkit-appearance:none;appearance:none;cursor:pointer}.time-scrubber-compact .scrub-slider:hover{border-color:#007acc;box-shadow:0 0 8px #007acc80}.time-scrubber-compact .scrub-slider:focus{outline:none}input.scrub-slider{--c: orange;--l: 8px;--s: 8px;height:var(--s);--_c: color-mix(in srgb, var(--c), #000 var(--p,0%));-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(-90deg,#ababab 60%,#0000 0) 100%/8% calc(var(--l) - 1px) repeat-x;cursor:pointer;overflow:hidden}input:focus-visible.scrub-slider input:hover.scrub-slider{--p: 25%}input[type=range i].scrub-slider::-webkit-slider-thumb{height:calc(var(--s)*2);aspect-ratio:1;border-radius:50%;background:var(--_c);border-image:linear-gradient(var(--_c) 0 0) 0 0 0 1/calc(50% - var(--l)/2) 0 calc(50% - var(--l)/2) 100vw/0 0 0 100vw;-webkit-appearance:none;appearance:none;transition:.3s}input[type=range].scrub-slider::-moz-range-thumb{height:var(--s);aspect-ratio:1;border-radius:50%;background:var(--_c);border-image:linear-gradient(var(--_c) 0 0) 0 0 0 1/calc(50% - var(--l)/2) 0 calc(50% - var(--l)/2) 100vw/0 0 0 100vw;-webkit-appearance:none;appearance:none;transition:.3s}@supports not (color: color-mix(in srgb,red,red)){input{--_c: var(--c)}}.time-scrubber-compact .progress-info{text-align:center}.time-scrubber-compact .progress-text{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;color:var(--vscode-editor-foreground);opacity:.8}.time-scrubber-compact .scrubber-status{display:flex;align-items:center;justify-content:center;height:40px}.time-scrubber-compact .status-text{font-size:12px;color:var(--vscode-editor-foreground);opacity:.7;text-align:center}@media (max-width: 280px){.time-scrubber-compact .scrubber-header{flex-direction:column;align-items:stretch;gap:4px}.time-scrubber-compact .time-display{justify-content:center}.time-scrubber-compact .control-buttons{justify-content:space-around}}.kinematics-viewer{background:#1e1e1e;border:1px solid #2d2d30;border-radius:8px;padding:16px;color:#ccc;font-family:Monaco,Menlo,Ubuntu Mono,monospace;min-width:400px}.kinematics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.kinematics-header h3{margin:0;color:#ccc;font-size:18px;font-weight:600}.header-info{display:flex;align-items:center;gap:12px}.joint-count{font-size:12px;color:#9cdcfe;background:#252526;padding:2px 6px;border-radius:3px;border:1px solid #464647}.connection-status{font-size:14px;color:#9cdcfe}.kinematics-controls{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.view-selector,.metric-selector{display:flex;gap:4px}.view-btn,.metric-btn{background:#252526;border:1px solid #464647;color:#ccc;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-family:inherit;transition:all .2s ease}.view-btn:hover,.metric-btn:hover{background:#2d2d30;border-color:#007acc}.view-btn.active,.metric-btn.active{background:#007acc;border-color:#007acc;color:#fff}.chart-controls{display:flex;align-items:center;gap:8px}.reset-scaling-btn{background:#252526;border:1px solid #464647;color:#ccc;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;font-family:inherit;transition:all .2s ease}.reset-scaling-btn:hover{background:#2d2d30;border-color:#f44747;color:#f44747}.kinematics-data{background:#252526;border:1px solid #2d2d30;border-radius:6px;padding:12px;margin-bottom:12px}.data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;max-width:100%}.data-grid[data-joint-count="3"]{grid-template-columns:repeat(3,1fr)}.data-grid[data-joint-count="4"]{grid-template-columns:repeat(4,1fr)}.data-grid[data-joint-count="5"]{grid-template-columns:repeat(5,1fr)}.data-grid[data-joint-count="6"]{grid-template-columns:repeat(6,1fr)}.data-grid[data-joint-count="7"]{grid-template-columns:repeat(7,1fr)}.data-grid[data-joint-count="8"]{grid-template-columns:repeat(4,1fr)}.data-grid[data-joint-count]{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.data-item{background:#1e1e1e;border:1px solid #464647;border-radius:4px;padding:8px;text-align:center}.data-label{font-size:12px;color:#9cdcfe;font-weight:600;margin-bottom:4px}.data-value{font-size:16px;color:#dcdcaa;font-weight:500;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.data-unit{font-size:10px;color:#9cdcfe;margin-left:2px}.no-data{text-align:center;color:#666;font-style:italic;padding:20px}.timestamp{font-size:11px;color:#666;text-align:right}.data-item.high-velocity .data-value{color:#f44747}.data-item.high-acceleration .data-value{color:#ff8c00}.data-item.high-jerk .data-value{color:#ff1493}.data-value{transition:color .3s ease}.data-item.updated{animation:pulse .5s ease}@keyframes pulse{0%{border-color:#464647}50%{border-color:#007acc}to{border-color:#464647}}.all-kinematics-grid{display:flex;flex-direction:column;gap:16px}.kinematics-section{background:#1e1e1e;border:1px solid #464647;border-radius:4px;padding:12px}.section-title{margin:0 0 12px;color:#9cdcfe;font-size:14px;font-weight:600;border-bottom:1px solid #464647;padding-bottom:6px}.metric-table{display:flex;flex-direction:column;gap:1px;background:#464647;border-radius:4px;overflow:hidden}.metric-table-header{display:grid;grid-template-columns:60px repeat(4,1fr);background:#2d2d30}.metric-table-row{display:grid;grid-template-columns:60px repeat(4,1fr);background:#252526}.metric-table-row:hover{background:#2d2d30}.axis-label{padding:8px 12px;color:#9cdcfe;font-weight:600;font-size:12px;display:flex;align-items:center;background:#1e1e1e;border-right:1px solid #464647}.metric-column-header{padding:8px 12px;color:#dcdcaa;font-weight:600;font-size:11px;text-align:center;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:center}.metric-cell{padding:6px 8px;color:#ccc;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;display:flex;align-items:center;justify-content:center;min-width:160px}.cell-content{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.cell-data{display:flex;flex-direction:column;align-items:center;gap:1px;flex:0 0 auto;min-width:50px}.cell-value{color:#dcdcaa;font-weight:500;line-height:1}.cell-unit{color:#9cdcfe;font-size:9px;font-weight:400}.spark-chart-container{display:flex;flex-direction:column;align-items:center;gap:2px;width:90px;flex:0 0 auto}.spark-chart{width:90px;height:25px;flex:0 0 auto;border-radius:2px;overflow:hidden;background:#2d2d30}.spark-min-max-values{display:flex;justify-content:center;width:100%}.spark-range{font-size:8px;color:#9cdcfe;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#1e1e1e99;padding:1px 3px;border-radius:2px;border:1px solid #464647;white-space:nowrap;opacity:.8}.spark-chart-placeholder{width:90px;height:25px;background:#252526;border-radius:2px;flex:0 0 auto;border:1px solid #464647}.data-grid-with-charts{display:grid;gap:20px;max-width:100%;height:calc(100vh - 300px);min-height:500px;grid-auto-flow:row}.data-grid-with-charts[data-joint-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr;grid-auto-flow:row}.data-grid-with-charts[data-joint-count="2"]{grid-template-columns:repeat(2,1fr);grid-template-rows:1fr;grid-auto-flow:row}.data-grid-with-charts[data-joint-count="3"]{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr;grid-auto-flow:row}.data-grid-with-charts[data-joint-count="4"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);grid-auto-flow:row}.data-grid-with-charts[data-joint-count="5"],.data-grid-with-charts[data-joint-count="6"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);grid-auto-flow:row}.data-grid-with-charts[data-joint-count="7"],.data-grid-with-charts[data-joint-count="8"],.data-grid-with-charts[data-joint-count="9"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);grid-auto-flow:row}.data-grid-with-charts[data-joint-count="10"],.data-grid-with-charts[data-joint-count="11"],.data-grid-with-charts[data-joint-count="12"]{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);grid-auto-flow:row}.data-grid-with-charts[data-joint-count="13"],.data-grid-with-charts[data-joint-count="14"],.data-grid-with-charts[data-joint-count="15"],.data-grid-with-charts[data-joint-count="16"]{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);grid-auto-flow:row}.data-grid-with-charts[data-joint-count]{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-auto-rows:minmax(180px,1fr)}.data-item-with-chart{background:#1e1e1e;border:1px solid #464647;border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;aspect-ratio:1.2 / 1}.data-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid #464647}.data-header .data-label{font-size:14px;color:#9cdcfe;font-weight:600;margin-bottom:0}.data-header .data-value{font-size:18px;color:#dcdcaa;font-weight:600;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.data-header .data-unit{font-size:12px;color:#9cdcfe;margin-left:4px;font-weight:400}.large-spark-chart{width:100%;flex:1;min-height:120px;background:#252526;border:1px solid #464647;border-radius:4px;overflow:hidden;position:relative;display:flex;flex-direction:column}.large-spark-chart-container{width:100%;flex:1;min-height:120px;position:relative;display:flex;flex-direction:column}.chart-min-max-labels{position:absolute;right:8px;top:8px;bottom:8px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:10}.chart-max-label,.chart-min-label{background:#1e1e1ecc;color:#9cdcfe;font-size:10px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:2px 4px;border-radius:2px;border:1px solid #464647;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.large-spark-chart-placeholder{width:100%;flex:1;min-height:120px;background:#252526;border:1px solid #464647;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#666;font-size:12px;font-style:italic}@media (max-width: 1400px){.data-grid-with-charts{height:calc(100vh - 320px)}.data-grid-with-charts[data-joint-count="10"],.data-grid-with-charts[data-joint-count="11"],.data-grid-with-charts[data-joint-count="12"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr)}}@media (max-width: 1200px){.data-grid-with-charts{height:calc(100vh - 340px)}.data-grid-with-charts[data-joint-count="6"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.data-grid-with-charts[data-joint-count="7"],.data-grid-with-charts[data-joint-count="8"],.data-grid-with-charts[data-joint-count="9"]{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.large-spark-chart,.large-spark-chart-placeholder{min-height:100px}}@media (max-width: 800px){.data-grid-with-charts{height:calc(100vh - 360px)}.data-grid-with-charts[data-joint-count="6"]{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.large-spark-chart,.large-spark-chart-placeholder{min-height:80px}.data-header .data-value{font-size:16px}.data-header .data-label{font-size:12px}}@media (max-width: 600px){.data-grid-with-charts{grid-template-columns:1fr!important;grid-template-rows:none!important;height:auto;gap:12px}.data-item-with-chart{aspect-ratio:1.5 / 1}.large-spark-chart,.large-spark-chart-placeholder{min-height:70px}.data-header .data-value{font-size:14px}.data-header .data-label{font-size:11px}.data-header .data-unit{font-size:10px}}@media (max-width: 1200px){.metric-table-header,.metric-table-row{grid-template-columns:50px repeat(4,1fr)}.axis-label{padding:6px 8px;font-size:11px}.metric-column-header{padding:6px 8px;font-size:10px}.metric-cell{padding:4px 6px;font-size:10px}}@media (max-width: 800px){.all-kinematics-grid{gap:12px}.metric-table-header,.metric-table-row{grid-template-columns:45px repeat(4,1fr)}.axis-label{padding:4px 6px;font-size:10px}.metric-column-header{padding:4px;font-size:9px}.metric-cell{padding:3px 4px;font-size:9px}}@media (max-width: 600px){.kinematics-controls{flex-direction:column;gap:8px}.data-grid{grid-template-columns:repeat(2,1fr)}.view-btn,.metric-btn{flex:1;text-align:center}.metric-table-header,.metric-table-row{grid-template-columns:35px repeat(4,1fr)}.axis-label{padding:2px 4px;font-size:8px}.metric-column-header{padding:2px;font-size:8px}.metric-cell{padding:2px 3px;font-size:8px}.cell-value{font-size:8px}.cell-unit{font-size:7px}}.user-variables-panel{padding:16px;background:#1e1e1e;color:#d4d4d4;border-radius:8px;box-shadow:0 2px 4px #0000004d}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-header h.btn-danger:hover{background:#cb2431}.panel-header h3{margin:0;color:#d4d4d4}.error-message{background:#3c1e1e;border:1px solid #6c3333;color:#ff6b6b;padding:8px 12px;border-radius:4px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.error-message button{background:none;border:none;color:#ff6b6b;cursor:pointer;font-size:18px;padding:0;margin-left:8px}.add-variable-form{background:#2d2d2d;padding:16px;border-radius:4px;margin-bottom:16px}.form-row{display:flex;gap:8px;align-items:center}.form-row input,.form-row select{padding:8px;border:1px solid #555;border-radius:4px;flex:1;background:#3c3c3c;color:#d4d4d4}.form-row input:focus,.form-row select:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 2px #007acc4d}.variables-table{border:1px solid #444;border-radius:4px;max-height:60vh;overflow:auto;width:100%}.table-header{background:#333;border-bottom:1px solid #555;position:sticky;top:0;z-index:10;font-weight:700;color:#d4d4d4;font-size:14px;width:100%}.table-header,.table-row{display:grid;grid-template-columns:140px 110px 100px 80px 100px;gap:12px;padding:12px 16px;align-items:center;min-width:550px}.table-row{border-top:1px solid #444;color:#d4d4d4;min-height:44px}.col-name{display:flex;align-items:center;min-width:0}.col-name code{font-family:Consolas,Monaco,Courier New,monospace;background:#ffffff1a;padding:2px 6px;border-radius:3px;font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.col-value{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding-right:8px}.col-control{display:flex;align-items:center;justify-content:center;min-width:0;padding:0 4px}.col-type{display:flex;align-items:center;justify-content:flex-start;min-width:0}.col-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.table-row:hover{background:#2a2a2a}.new-variable-row{background:#2d2d2d;border-top:2px solid #555}.new-variable-row:hover{background:#353535}@media (max-width: 768px){.table-header,.table-row{grid-template-columns:100px 80px 70px 60px 80px;gap:8px;padding:8px 12px;font-size:13px;min-width:400px}.col-name code{font-size:12px;padding:1px 4px}.slider-value{min-width:30px;max-width:40px;font-size:11px}.table-row .btn{font-size:11px;padding:3px 6px}}.editable-field{cursor:pointer;padding:4px 8px;border-radius:3px;transition:background-color .2s;min-height:24px;display:flex;align-items:center;width:100%;box-sizing:border-box;position:relative}.editable-field:hover{background:#404040}.truncated-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;cursor:pointer}.truncated-text:hover:after{content:attr(data-full-text);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#2d2d2d;color:#d4d4d4;padding:8px 12px;border-radius:4px;border:1px solid #555;z-index:1000;box-shadow:0 2px 8px #0000004d;font-size:13px;margin-bottom:4px;max-width:min(300px,80vw);min-width:80px;white-space:nowrap;text-align:center;pointer-events:none}.truncated-text:hover:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#555;z-index:1001;margin-bottom:-1px}.table-row input[type=text],.table-row input[type=number],.table-row select{background:#3c3c3c;border:1px solid #555;color:#d4d4d4;padding:4px 8px;border-radius:3px;outline:none;font-size:14px;width:100%;box-sizing:border-box}.table-row input[type=text]:focus,.table-row input[type=number]:focus,.table-row select:focus{border-color:#007acc;box-shadow:0 0 0 2px #007acc4d}.table-row .btn{font-size:12px;padding:4px 8px;white-space:nowrap}.empty-state{text-align:center;padding:32px;color:#888;grid-column:1 / -1}.panel-footer{margin-top:16px;text-align:center;color:#888}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-success{background:#28a745;color:#fff}.btn-success:hover{background:#1e7e34}.btn-success:disabled{background:#6c757d;cursor:not-allowed}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}code{background:#2d2d2d;color:#d4d4d4;padding:2px 4px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:13px}.new-variable-row{border-top:2px dashed #555;opacity:.8}.new-variable-row:hover{opacity:1;background:#2a2a2a}.new-variable-placeholder{font-style:italic;color:#888}.new-variable-placeholder:hover{color:#d4d4d4}.disabled-field{color:#666;font-style:italic;cursor:not-allowed;opacity:.6}.slider-control{display:flex;align-items:center;gap:8px;width:100%;max-width:100%}.variable-slider{flex:1;min-width:0;height:4px;border-radius:2px;background:#444;outline:none;cursor:pointer}.variable-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#007acc;cursor:pointer}.variable-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#007acc;cursor:pointer;border:none}.slider-value{min-width:40px;max-width:60px;text-align:right;font-family:monospace;font-size:12px;color:#d4d4d4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-button{padding:4px 12px;border:1px solid #555;background:#3c3c3c;color:#d4d4d4;border-radius:4px;cursor:pointer;transition:all .2s;white-space:nowrap}.toggle-button:hover{background:#4a4a4a}.toggle-button.active{background:#007acc;border-color:#007acc;color:#fff}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#007acc}input:checked+.toggle-slider:before{transform:translate(20px)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#2d2d2d;border-radius:8px;width:500px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 4px 12px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #555}.modal-header h3{margin:0;color:#d4d4d4}.modal-close{background:none;border:none;color:#aaa;font-size:24px;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#fff}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #555}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;color:#d4d4d4;font-size:14px}.form-group input,.form-group select{width:100%;padding:8px 12px;background:#1e1e1e;border:1px solid #555;border-radius:4px;color:#d4d4d4;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007acc}.form-group input:disabled{background:#333;color:#888;cursor:not-allowed}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.btn-primary{background:#007acc;color:#fff}.btn-primary:hover{background:#005a9e}.btn-secondary{background:#555;color:#d4d4d4}.btn-secondary:hover{background:#666}.btn-danger{background:#d73a49;color:#fff}.btn-danger:hover{background:#b92534}.btn-sm{padding:4px 8px;font-size:12px}.control-type-label{color:#9ca3af;font-size:12px;font-style:italic;text-align:center;display:block}.drag-handle{color:#666;font-size:14px;cursor:grab;margin-right:8px;padding:2px 4px;border-radius:2px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.drag-handle:hover{color:#999;background:#ffffff1a}.drag-handle:active{cursor:grabbing}.table-row.dragging{opacity:.6;background:#3a3a3a;border:1px dashed #007acc;z-index:1000;transition:opacity .2s ease}.table-row.drag-over{border-top:2px solid #007acc;background:#007acc1a}.variable-spark-chart-container{display:flex;flex-direction:column;align-items:center;gap:2px;width:80px;flex:0 0 auto}.variable-spark-chart{width:80px;height:20px;flex:0 0 auto;border-radius:2px;overflow:hidden;background:#2d2d30;border:1px solid #464647}.variable-spark-range{font-size:7px;color:#9cdcfe;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#1e1e1e99;padding:1px 2px;border-radius:1px;border:1px solid #464647;white-space:nowrap;opacity:.8}.variable-spark-chart-placeholder{width:80px;height:20px;background:#252526;border-radius:2px;flex:0 0 auto;border:1px solid #464647;display:flex;align-items:center;justify-content:center;font-size:8px;color:#666}.python-console{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#d4d4d4;font-family:Cascadia Code,Consolas,Monaco,Courier New,monospace}.console-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#2d2d30;border-bottom:1px solid #3e3e42;flex-shrink:0}.console-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:#ccc}.console-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0e639c;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:12px;font-weight:500;transition:background-color .2s}.console-btn:hover{background:#17b}.clear-btn{background:#a74747!important}.clear-btn:hover{background:#c55555!important}.console-content{display:flex;flex-direction:column;flex:1;min-height:0}.console-output{flex:1;overflow-y:auto;padding:8px 12px;background:#1e1e1e;font-size:13px;line-height:1.4}.console-entry{display:flex;align-items:flex-start;gap:8px;margin-bottom:4px;position:relative}.console-entry.command{color:#569cd6;font-weight:500}.console-entry.output{color:#d4d4d4}.console-entry.error{color:#f44747}.console-entry.info{color:#4ec9b0}.entry-timestamp{color:gray;font-size:11px;flex-shrink:0;min-width:80px}.entry-content{flex:1;white-space:pre-wrap;word-break:break-word}.copy-command-btn{opacity:0;background:none;border:none;color:gray;cursor:pointer;padding:2px;border-radius:3px;transition:opacity .2s,color .2s;margin-left:auto;flex-shrink:0}.console-entry:hover .copy-command-btn{opacity:1}.copy-command-btn:hover{color:#ccc;background:#3e3e42}.console-input-area{display:flex;align-items:stretch;background:#252526;border-top:1px solid #3e3e42;flex-shrink:0}.console-prompt{display:flex;align-items:center;padding:0 12px;background:#2d2d30;border-right:1px solid #3e3e42;flex-shrink:0}.prompt-indicator{font-weight:600;color:#569cd6;font-size:14px;user-select:none}.prompt-indicator.executing{color:#ffcc02;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.console-editor{flex:1;min-height:40px;background:#1e1e1e}.console-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 12px;background:#2d2d30;border-top:1px solid #3e3e42;font-size:11px;color:gray;flex-shrink:0}.console-help{display:flex;gap:16px}.console-status{display:flex;align-items:center;gap:8px}.executing-indicator{color:#ffcc02;font-weight:500}.console-output::-webkit-scrollbar{width:8px}.console-output::-webkit-scrollbar-track{background:#1e1e1e}.console-output::-webkit-scrollbar-thumb{background:#424242;border-radius:4px}.console-output::-webkit-scrollbar-thumb:hover{background:#4f4f4f}.console-editor .monaco-editor,.console-editor .monaco-editor .margin,.console-editor .monaco-editor .monaco-editor-background{background-color:#1e1e1e!important}.console-editor .monaco-scrollable-element>.scrollbar{display:none!important}:root{--vscode-editor-background: #1e1e1e;--vscode-editor-foreground: #d4d4d4;--vscode-foreground: #cccccc;--vscode-descriptionForeground: #9d9d9d;--vscode-disabledForeground: #888888;--vscode-button-background: #0e639c;--vscode-button-foreground: #ffffff;--vscode-button-hoverBackground: #1177bb;--vscode-button-border: rgba(255, 255, 255, .1);--vscode-button-secondaryBackground: #3a3d41;--vscode-button-secondaryForeground: #cccccc;--vscode-button-secondaryHoverBackground: #45494e;--vscode-input-background: #3c3c3c;--vscode-input-foreground: #cccccc;--vscode-input-border: #3c3c3c;--vscode-focusBorder: #007acc;--vscode-panel-border: #3c3c3c;--vscode-sideBar-background: #252526;--vscode-list-activeSelectionBackground: #094771;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-hoverBackground: #2a2d2e;--vscode-errorForeground: #f48771;--vscode-testing-iconPassed: #73c991}@media (prefers-color-scheme: light){:root{--vscode-editor-background: #ffffff;--vscode-editor-foreground: #000000;--vscode-foreground: #333333;--vscode-descriptionForeground: #717171;--vscode-disabledForeground: #999999;--vscode-button-background: #007acc;--vscode-button-foreground: #ffffff;--vscode-button-hoverBackground: #0062a3;--vscode-button-border: rgba(0, 0, 0, .1);--vscode-button-secondaryBackground: #e5e5e5;--vscode-button-secondaryForeground: #333333;--vscode-button-secondaryHoverBackground: #d6d6d6;--vscode-input-background: #ffffff;--vscode-input-foreground: #333333;--vscode-input-border: #cecece;--vscode-focusBorder: #007acc;--vscode-panel-border: #cccccc;--vscode-sideBar-background: #f3f3f3;--vscode-list-activeSelectionBackground: #0060c0;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-hoverBackground: #e8e8e8;--vscode-errorForeground: #e51400;--vscode-testing-iconPassed: #388a34}}.settings-page{display:flex;height:100%;background:var(--vscode-editor-background);color:var(--vscode-editor-foreground)}.settings-sidebar{width:280px;border-right:1px solid var(--vscode-panel-border);padding:12px;overflow-y:auto;background:var(--vscode-sideBar-background)}.settings-sidebar h3{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--vscode-foreground)}.settings-nav-item{width:100%;text-align:left;border:1px solid var(--vscode-panel-border);border-radius:4px;background:var(--vscode-input-background);color:var(--vscode-foreground);padding:10px;margin-bottom:8px;cursor:pointer;transition:all .15s ease}.settings-nav-item:hover{background:var(--vscode-list-hoverBackground);border-color:var(--vscode-focusBorder)}.settings-nav-item.active{border-color:var(--vscode-focusBorder);background:var(--vscode-list-activeSelectionBackground);color:var(--vscode-list-activeSelectionForeground)}.settings-nav-title{font-size:13px;font-weight:600;margin-bottom:4px}.settings-nav-description{font-size:11px;color:var(--vscode-descriptionForeground);opacity:.85}.settings-io-buttons{display:flex;gap:6px;margin-bottom:12px}.settings-btn-full{flex:1}.settings-content{flex:1;display:flex;flex-direction:column;padding:16px;overflow:hidden;background:var(--vscode-editor-background)}.settings-content-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--vscode-panel-border);padding-bottom:12px;margin-bottom:16px}.settings-content-header h3{margin:0;font-size:16px;font-weight:600;color:var(--vscode-foreground)}.settings-loading{font-size:12px;color:var(--vscode-descriptionForeground)}.settings-panel-body{display:flex;flex-direction:column;gap:14px;overflow:hidden;height:100%}.settings-panel-body>.settings-toolbar{flex-shrink:0}.settings-panel-body>*:not(.settings-toolbar){overflow-y:auto}.settings-scrollable-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:8px}.settings-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;background:var(--vscode-input-background);border:1px solid var(--vscode-panel-border);border-radius:6px;box-shadow:0 1px 3px #0000001a}.settings-toolbar-left,.settings-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.settings-toolbar-left{flex:1}.settings-toolbar-separator{margin-left:16px;margin-right:8px;color:var(--vscode-panel-border);opacity:.6}.settings-number-small{width:100px}.settings-btn{border:1px solid var(--vscode-button-border);background:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground);padding:6px 14px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease;font-weight:500;min-height:28px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.settings-btn:hover:not(:disabled){background:var(--vscode-button-secondaryHoverBackground);border-color:var(--vscode-focusBorder);box-shadow:0 2px 6px #0000004d;transform:translateY(-1px)}.settings-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0003}.settings-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--vscode-input-background);color:var(--vscode-disabledForeground)}.settings-btn-primary{background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-color:var(--vscode-button-background);font-weight:600}.settings-btn-primary:hover:not(:disabled){background:var(--vscode-button-hoverBackground);border-color:var(--vscode-button-hoverBackground)}.settings-select,.settings-number{border:1px solid var(--vscode-input-border);background:var(--vscode-input-background);color:var(--vscode-input-foreground);border-radius:4px;padding:6px 8px;font-size:12px;transition:all .2s ease;min-height:28px}.settings-select:hover:not(:disabled),.settings-number:hover:not(:disabled){border-color:var(--vscode-focusBorder)}.settings-select:focus,.settings-number:focus{outline:none;border-color:var(--vscode-focusBorder);box-shadow:0 0 0 2px #007acc33}.settings-select:disabled,.settings-number:disabled{opacity:.5;cursor:not-allowed}.settings-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--vscode-input-background);border:1px solid var(--vscode-panel-border);border-radius:6px;transition:all .2s ease}.settings-row:hover{border-color:var(--vscode-focusBorder);box-shadow:0 1px 3px #0000001a}.settings-label{font-size:12px;min-width:120px;font-weight:500;color:var(--vscode-foreground)}.settings-checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--vscode-foreground);cursor:pointer}.settings-checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.settings-table-wrap{border:1px solid var(--vscode-panel-border);border-radius:6px;overflow:auto;flex:1;min-height:200px;background:var(--vscode-input-background);box-shadow:0 1px 3px #0000001a}.settings-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--vscode-editor-background)}.settings-table th,.settings-table td{padding:10px;border-bottom:1px solid var(--vscode-panel-border);text-align:left;background:var(--vscode-editor-background)}.settings-table th{position:sticky;top:0;background:var(--vscode-editor-background)!important;z-index:10;font-weight:600;color:var(--vscode-foreground);border-bottom:2px solid var(--vscode-panel-border);box-shadow:0 2px 4px #0000004d}.settings-table tbody{background:transparent}.settings-table tbody tr:nth-child(2n){background:#8080800d}.settings-table tbody tr:nth-child(2n) td{background:#8080800d}.settings-table tbody tr:hover{background:var(--vscode-list-hoverBackground)}.settings-table input[type=checkbox]{cursor:pointer;width:16px;height:16px}.settings-table input[type=number]{width:100%;min-width:80px}.settings-empty{text-align:center;color:var(--vscode-descriptionForeground);padding:20px}.settings-status{color:var(--vscode-testing-iconPassed);font-size:12px;padding:8px 10px;background:#00ff000d;border:1px solid var(--vscode-testing-iconPassed);border-radius:4px;font-weight:500}.settings-error{color:var(--vscode-errorForeground);font-size:12px;padding:8px 10px;background:#ff00000d;border:1px solid var(--vscode-errorForeground);border-radius:4px;font-weight:500}.settings-placeholder{border:1px dashed var(--vscode-panel-border);padding:16px;border-radius:4px;background:#80808008}.settings-placeholder h4{margin:0 0 8px;font-weight:600;color:var(--vscode-foreground)}.settings-placeholder p{margin:0;color:var(--vscode-descriptionForeground);line-height:1.5}body>.dragging-layer{position:absolute!important;z-index:9999;overflow:visible;margin:0;padding:0;border:none;pointer-events:none;opacity:.6;font-size:14px;line-height:1.5;white-space:nowrap;--default-background-color: #141414}body>.dragging-layer>*:first-child{pointer-events:none!important;overflow:hidden!important;transform:translate(-50%,-50%)!important;box-shadow:0 0 8px #ffffff1a,inset 0 0 8px #ffffff1a}body>.dragging-layer>.dragging{opacity:1!important}body>.dragging-layer>div:last-child{position:absolute;left:12px;top:12px}.drag-initiator{user-select:none;-webkit-user-select:none;touch-action:none}.drag-accept-reject:after{content:"🚫"}.dock{box-sizing:border-box;width:100%;height:100%;position:absolute;overflow:hidden;display:flex}.dock-bar{font-size:14px;line-height:1.5;box-sizing:border-box;overflow:hidden;position:relative;white-space:nowrap;outline:none;zoom:1}.dock-ink-bar{position:absolute;box-sizing:border-box;margin-top:-3px;background-color:#108ee9;transform-origin:0 0;width:0;height:0}.dock-tab-btn-disabled{cursor:default;color:#ccc}.dock-nav-animated{transition:transform .25s cubic-bezier(.35,0,.25,1)}.dock-tab{box-sizing:border-box;position:relative;display:block;min-width:30px;height:30px;text-align:center;transition:color .25s cubic-bezier(.35,0,.25,1);padding:0;font-weight:500;border-bottom:1px solid #434343;cursor:pointer;float:left;margin-right:10px;background:#141414;outline:none}.dock-tab.dragging{opacity:.3}.dock-tab>div{padding:4px 14px;outline-color:#108ee9}.dock-tab:hover{color:#40a5ed}.dock-tab-active,.dock-tab-active:hover{color:#108ee9;cursor:default;transform:translateZ(0)}.dock-tab-disabled{cursor:default;color:#ccc}.dock-tab-disabled:hover{color:#ccc}.dock-content-animated{transition:margin .3s}.dock-bottom>.dock-nav .dock-ink-bar-animated,.dock-top>.dock-nav .dock-ink-bar-animated,.dock-bottom>div>.dock-nav .dock-ink-bar-animated,.dock-top>div>.dock-nav .dock-ink-bar-animated{transition:width .3s,left .3s,right .3s}.dock-content-animated .dock-tabpane{flex-shrink:0}.no-flexbox .dock-content{transform:none!important;overflow:auto}.dock-tabpane:not(.dock-tabpane-active){animation-name:dock-fadeOut;animation-duration:.5s}@keyframes dock-fadeOut{0%{height:100%;visibility:visible}to{height:100%;visibility:visible}}.dock-top{flex-direction:column}.dock-top .dock-bar{flex:0 0 auto;background:#141414;border-bottom:1px solid #282828;padding-left:8px}.dock-top .dock-content-animated{flex-direction:row}.dock-top .dock-tab-next{right:2px}.dock-top .dock-ink-bar{height:2px;bottom:0;left:0}.dock-tab-close-btn{position:absolute;cursor:pointer;font-family:Fredoka One,sans-serif;color:#444;right:-3px;font-size:12px;width:16px;text-align:center;top:6px;outline:none;transition:all .25s ease-in-out}.dock-tab-close-btn:before{content:"X"}.dock-tab-close-btn:hover,.dock-tab-close-btn:focus{color:#fff;transform:scale(1.1)}.dock-tab:hover .dock-tab-close-btn,.dock-tab-close-btn:focus{opacity:1;color:#a2a2a2}.dock-tab-hit-area{position:absolute;pointer-events:none;inset:0 -5px}.dock-pane-cache{width:100%;height:100%}.dock-content{display:flex;width:100%;height:100%}.dock-content-holder{flex:auto}.dock-top>.dock-content-holder{height:0}.dock-content .dock-tabpane{position:relative;overflow:hidden;width:100%;height:100%;outline:none;flex:none}.dock-nav{display:flex;flex:none;position:relative}.dock-nav-operations{display:flex}.dock-nav-more{height:30px;border:none;color:#ffffffd9;background:transparent;cursor:pointer;position:relative;align-self:flex-end}.dock-nav-more:after{position:absolute;z-index:1;content:"";pointer-events:none;width:30px;height:30px;left:-30px;top:0;box-shadow:inset -10px 0 8px -8px #00000014}.dock-nav-wrap{position:relative;display:flex;flex:auto;align-self:stretch;overflow:hidden;white-space:nowrap;transform:translate(0)}.dock-nav-list{display:flex;position:relative;transition:transform .3s}.dock-extra-content{display:flex;height:30px}.dock-extra-content .dock-tab-close-btn{position:relative;right:4px}.dock-dropdown{box-sizing:border-box;margin:0;padding:0;color:#ffffffd9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.dock-dropdown-hidden{display:none}.dock-dropdown-menu{max-height:200px;margin:0;padding:4px 0;overflow-x:hidden;overflow-y:auto;text-align:left;list-style-type:none;background-color:#141414;background-clip:padding-box;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px #00000014,0 9px 28px 8px #0000000d}.dock-dropdown-menu-item{min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:#ffffffd9;font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s;position:relative}.dock-dropdown-menu-item .dock-tab-hit-area{left:0;right:0}.dock-dropdown-menu-item .dock-tab-close-btn{right:2px}.dock-dropdown-menu-item:hover{background:#2b2b2b}.dock-dropdown-menu-item-disabled,.dock-dropdown-menu-item-disabled:hover{color:#ccc;background:0 0;cursor:not-allowed}body.dock-dragging .dock-tab-hit-area{pointer-events:inherit}body.dock-dragging{user-select:none;-webkit-user-select:none}body.dock-dragging iframe{pointer-events:none}.dock-panel{box-sizing:border-box;position:relative;color:#ffffffd9;background:#141414;border:1px solid #434343}.dock-panel.dragging{opacity:.3}.dock-panel-drag-size{position:absolute;z-index:300}.dock-panel-drag-size-t{top:-4px;left:4px;right:4px;height:8px;cursor:ns-resize}.dock-panel-drag-size-b{bottom:-4px;left:4px;right:4px;height:8px;cursor:ns-resize}.dock-panel-drag-size-l{left:-4px;top:4px;bottom:4px;width:8px;cursor:ew-resize}.dock-panel-drag-size-r{right:-4px;top:4px;bottom:4px;width:8px;cursor:ew-resize}.dock-panel-drag-size-t-l{top:-4px;left:-4px;width:8px;height:8px;cursor:nwse-resize}.dock-panel-drag-size-t-r{top:-4px;right:-4px;width:8px;height:8px;cursor:nesw-resize}.dock-panel-drag-size-b-l{bottom:-4px;left:-4px;width:8px;height:8px;cursor:nesw-resize}.dock-panel-drag-size-b-r{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17'%3E%3Cpath fill='rgba(255, 255, 255, 0.15)' d='M2 12 L12 2 L12 12z'/%3E%3C/svg%3E");bottom:-4px;right:-4px;width:17px;height:17px;cursor:nwse-resize}.dock-box,.divider-box{box-sizing:border-box;display:flex;align-items:stretch}.divider-box>*:nth-child(odd){flex:1 1 auto}.dock-divider{box-sizing:border-box;flex:0 0 4px;background:#0000;z-index:1}.dock-hbox>.dock-divider{transform:scaleX(3);cursor:ew-resize}.dock-vbox{flex-direction:column}.dock-vbox>.dock-divider{transform:scaleY(3);cursor:ns-resize}.dock-fbox{pointer-events:none;z-index:200}.dock-fbox>.dock-panel{position:absolute;pointer-events:visible;box-shadow:0 0 4px #444}.dock-fbox>.dock-panel.dragging{opacity:.8;pointer-events:none}.dock-mbox{z-index:250;width:100%;height:100%}.dock-mbox>.dock-panel{width:100%;height:100%;box-shadow:0 0 4px #444}.dock-mbox.dock-mbox-show{visibility:visible;animation:dock-mbox-show .2s ease}.dock-mbox.dock-mbox-hide{pointer-events:none;visibility:hidden;opacity:0;animation:dock-mbox-hide .2s ease}@keyframes dock-mbox-show{0%{transform:scale(.9);visibility:visible}to{transform:scale(1);visibility:visible}}@keyframes dock-mbox-hide{0%{transform:scale(1);visibility:visible;opacity:1}to{transform:scale(.9);visibility:visible;opacity:0}}.dock-wbox{position:absolute;width:100%;height:100%}.dock-wbox>.dock-panel{border:none;width:100%;height:100%}.dock-layout{overflow:hidden;position:relative}.dock-layout>.dock-box{position:absolute;width:100%;height:100%}.dock-layout>.dock-drop-indicator{position:absolute;box-sizing:border-box;pointer-events:none;z-index:400;border:solid 1px #fff;background:#125d94;opacity:.5;box-shadow:0 0 4px #434343;display:none;transition:all .1s ease-out}.dock-drop-edge{position:absolute;inset:30px 0 0;z-index:100;background:#fff;border:none;opacity:.01}.dock-drop-layer{position:absolute;pointer-events:none;inset:30px 0 0}.dock-drop-layer .dock-drop-square{position:absolute;box-sizing:border-box;pointer-events:visible;z-index:300;width:32px;height:32px;font-family:Fredoka One,sans-serif;color:#444;background:#141414;border:1px solid transparent;left:calc(50% - 16px);top:calc(50% - 16px)}.dock-drop-layer .dock-drop-square .dock-drop-square-box{box-sizing:border-box;border:1px solid #434343;width:100%;height:100%}.dock-drop-layer .dock-drop-square:before{position:absolute;width:100%;height:100%;display:block;line-height:30px;text-align:center}.dock-drop-layer .dock-drop-float{z-index:100;left:0;top:0;width:100%;height:100%;border:none;opacity:.01}.dock-drop-layer .dock-drop-left{left:calc(50% - 48px)}.dock-drop-layer .dock-drop-left.dock-drop-deep{left:calc(50% - 64px);width:16px}.dock-drop-layer .dock-drop-left:before{content:">";transform:rotate(180deg)}.dock-drop-layer .dock-drop-right{left:calc(50% + 16px)}.dock-drop-layer .dock-drop-right.dock-drop-deep{left:calc(50% + 48px);width:16px}.dock-drop-layer .dock-drop-right:before{content:">"}.dock-drop-layer .dock-drop-top{top:calc(50% - 48px)}.dock-drop-layer .dock-drop-top.dock-drop-deep{top:calc(50% - 64px);height:16px}.dock-drop-layer .dock-drop-top.dock-drop-deep:before{line-height:14px}.dock-drop-layer .dock-drop-top:before{content:">";transform:rotate(270deg)}.dock-drop-layer .dock-drop-bottom{top:calc(50% + 16px)}.dock-drop-layer .dock-drop-bottom.dock-drop-deep{top:calc(50% + 48px);height:16px}.dock-drop-layer .dock-drop-bottom.dock-drop-deep:before{line-height:14px}.dock-drop-layer .dock-drop-bottom:before{content:">";transform:rotate(90deg)}.dock-drop-layer .dock-drop-square-dropping{background:#125d94;color:#fff}.dock-panel.dock-panel-dropping .dock-tab-close-btn{pointer-events:none}.dock-panel-max-btn,.dock-panel-min-btn{height:25px;width:21px;font-family:Fredoka One,sans-serif;margin:2px 2px 2px 0;padding:6px 4px 4px 2px;cursor:pointer;transition:all .25s ease-in-out;outline:none;user-select:none;box-sizing:border-box}.dock-panel-max-btn:before,.dock-panel-min-btn:before{position:absolute;content:" ";border:2px solid #444;border-radius:1px;width:13px;height:13px;box-sizing:border-box}.dock-panel-max-btn:hover,.dock-panel-min-btn:hover,.dock-panel-max-btn:focus,.dock-panel-min-btn:focus{color:#a2a2a2}.dock-panel-max-btn:hover:before,.dock-panel-min-btn:hover:before,.dock-panel-max-btn:focus:before,.dock-panel-min-btn:focus:before{border-color:#a2a2a2}.dock-panel-max-btn:hover,.dock-panel-min-btn:hover{transform:scale(1.1)}.dock-panel-min-btn:before{position:absolute;border-radius:1px;width:9px;height:9px;border:none;content:"-";color:#666;font-size:20px;line-height:4px}.dock-panel-min-btn:hover:before,.dock-panel-min-btn:focus:before{color:#999}.dock-panel.dock-style-place-holder{border:none}.dock-panel.dock-style-place-holder .dock-bar{display:none}.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless{border:none}.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless .dock-bar{position:absolute;z-index:1;opacity:0;height:20px;width:100%;transition:all .15s ease-in-out}.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless .dock-bar:hover,.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless .dock-bar:focus-within,.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless.dock-panel-dropping .dock-bar{opacity:1;height:31px}.dock-layout>:not(.dock-fbox) .dock-panel.dock-style-headless .dock-content{height:100%}.dock-panel.dock-style-main{border:none}.dock-panel.dock-style-main .dock-bar{background:none;border-bottom:1px solid #282828}.dock-panel.dock-style-main .dock-tab{background:#141414}.dock-panel.dock-style-card .dock-tab{margin-right:2px;border:1px solid #434343;border-radius:5px 5px 0 0}.dock-panel.dock-style-card .dock-tab.dock-tab-active{border-bottom:1px solid #141414;background:#141414}.dock-panel.dock-style-card .dock-bar{border-bottom:1px solid #434343;overflow:visible}.dock-panel.dock-style-card .dock-nav-wrap{padding-top:5px;transform:translateY(1px)}.dock-panel.dock-style-card .dock-ink-bar{background:#141414;opacity:0}.dock-panel.dock-style-card .dock-tab-hit-area{left:-2px;right:-2px}.dock-panel.dock-style-card .dock-panel-max-btn,.dock-panel.dock-style-card .dock-panel-min-btn{margin-top:4px}.dock-panel.dock-style-card .dock-tab-close-btn{right:0;font-size:10px;top:8px}.dock-panel.dock-style-card .dock-extra-content{height:35px}.App{width:100vw;height:100vh;background:#1e1e1e;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.vscode-layout{background:#1e1e1e}.dock-tab{margin-left:0;margin-right:0}.dock-top .dock-bar{padding-left:0}.dock-layout>.dock-box>.dock-panel:first-child .dock-bar{background:#2d2d30}.dock-layout>.dock-box>.dock-panel:first-child .dock-tab{width:36px;height:36px;padding:0;text-align:center;font-size:16px;background:#2d2d30;border:none;border-bottom:1px solid #37373d;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:all .2s ease}.dock-layout>.dock-box>.dock-panel:first-child .dock-tab[title]:hover:after{content:attr(title);position:absolute;left:45px;top:50%;transform:translateY(-50%);background:#2d2d30;color:#ccc;padding:6px 10px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:1;pointer-events:none;border:1px solid #464647;z-index:1000;box-shadow:0 2px 8px #0000004d;animation:tooltip-fade-in .2s ease}.console-panel{height:100%;display:flex;flex-direction:column;background:#1e1e1e;color:#ccc;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.console-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#252526;border-bottom:1px solid #2d2d30;flex-shrink:0}.console-header h4{margin:0;font-size:14px;font-weight:600;color:#ccc}.console-controls{display:flex;gap:8px}.console-controls button{background:transparent;border:1px solid #464647;color:#ccc;padding:6px 12px;border-radius:3px;font-size:12px;cursor:pointer;min-height:28px;transition:all .2s ease}.console-controls button:hover{background:#37373d;border-color:#5a5a5a}.console-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.console-log{flex:1;overflow-y:auto;padding:12px;font-size:13px;line-height:1.5}.log-entry{display:flex;margin-bottom:6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:2px 0}.log-entry .timestamp{color:#6a9955;margin-right:12px;font-size:12px;min-width:80px;flex-shrink:0}.log-entry .level{margin-right:12px;font-weight:700;min-width:70px;flex-shrink:0}.log-entry.info .level{color:#007acc}.log-entry.success .level{color:#4ec9b0}.log-entry.warning .level{color:#dcdcaa}.log-entry.error .level{color:#f44747}.log-entry .message{flex:1;word-wrap:break-word}.console-input{display:flex;align-items:center;padding:12px;background:#252526;border-top:1px solid #2d2d30;min-height:44px;flex-shrink:0}.prompt{color:#4ec9b0;margin-right:12px;font-weight:700;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px}.command-input{flex:1;background:transparent;border:none;color:#ccc;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;outline:none;min-height:20px}.output-panel{height:100%;background:#1e1e1e;color:#ccc;display:flex;flex-direction:column}.output-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#252526;border-bottom:1px solid #2d2d30;flex-shrink:0}.output-header h4{margin:0;font-size:14px;font-weight:600;color:#ccc}.output-content{flex:1;overflow:auto;padding:16px}.output-text{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;color:#ccc;margin:0;white-space:pre-wrap;word-wrap:break-word}.jogging-panel,.teaching-panel,.targets-panel,.program-editor,.live-charts,.status-panel{height:100%;padding:16px;background:#1e1e1e;color:#ccc;overflow:auto}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #2d2d30;gap:12px}.panel-header h3{margin:0;color:#ccc;font-size:16px;font-weight:600}.panel-controls{display:flex;align-items:center;gap:8px}.btn,.panel-button,.control-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 12px;font-size:13px;font-weight:500;border:1px solid;border-radius:3px;cursor:pointer;transition:all .2s ease;white-space:nowrap;background:transparent;color:#ccc;border-color:#464647}.btn:hover,.panel-button:hover,.control-button:hover{background:#37373d;border-color:#5a5a5a}.btn:disabled,.panel-button:disabled,.control-button:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.panel-button.primary{background:#007acc;border-color:#007acc;color:#fff}.btn-primary:hover,.panel-button.primary:hover{background:#005a9e;border-color:#004578}.btn-success,.panel-button.success{background:#28a745;border-color:#28a745;color:#fff}.btn-success:hover,.panel-button.success:hover{background:#218838;border-color:#1e7e34}.btn-danger,.panel-button.danger{background:#dc3545;border-color:#dc3545;color:#fff}.btn-danger:hover,.panel-button.danger:hover{background:#c82333;border-color:#bd2130}.btn-warning,.panel-button.warning{background:#ffc107;border-color:#ffc107;color:#212529}.btn-warning:hover,.panel-button.warning:hover{background:#e0a800;border-color:#d39e00}.form-select,.panel-select,.control-select{min-height:32px;padding:6px 10px;font-size:13px;background:#1e1e1e;border:1px solid #464647;border-radius:3px;color:#ccc;cursor:pointer}.form-select:focus,.panel-select:focus,.control-select:focus{border-color:#007acc;outline:none}.form-input,.panel-input,.control-input{min-height:32px;padding:6px 10px;font-size:13px;background:#1e1e1e;border:1px solid #464647;border-radius:3px;color:#ccc}.form-input:focus,.panel-input:focus,.control-input:focus{border-color:#007acc;outline:none}.dock-layout>.dock-box>.dock-panel:not(:first-child) .dock-tab,.dock-layout>.dock-box>.dock-box .dock-tab{writing-mode:horizontal-tb;width:auto;height:auto;padding:8px 16px;text-align:left;font-size:13px;background:#2d2d30;color:#ccc;border:none;border-bottom:2px solid transparent;display:inline-flex;align-items:center;justify-content:flex-start}.dock-layout>.dock-box>.dock-panel:not(:first-child) .dock-tab:hover,.dock-layout>.dock-box>.dock-box .dock-tab:hover{background:#37373d;color:#fff}.dock-layout>.dock-box>.dock-panel:not(:first-child) .dock-tab-active,.dock-layout>.dock-box>.dock-box .dock-tab-active{background:#1e1e1e;color:#fff;border-bottom-color:#007acc;border-left-color:transparent}.dock-layout>.dock-box{display:flex;width:100%;height:100%;gap:0}.dock-layout>.dock-box>.dock-panel:not(:first-child),.dock-layout>.dock-box>.dock-box{border-left:1px solid #2d2d30;flex:1;min-width:0}.tab-tooltip-wrapper{height:100%;width:100%;position:relative}.tab-content-wrapper{height:100%;width:100%}.robot-viewer-3d{height:100%;position:relative}.viewer-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#252526;border-bottom:1px solid #2d2d30}.viewer-controls button,.viewer-controls select{background:transparent;border:1px solid #464647;color:#ccc;padding:4px 8px;border-radius:3px;font-size:12px;cursor:pointer}.viewer-controls button:hover,.viewer-controls select:hover{background:#37373d}.canvas-container{height:calc(100% - 120px);position:relative}.robot-status{position:absolute;bottom:0;left:0;right:0;background:#252526;border-top:1px solid #2d2d30;padding:8px 16px;font-size:12px}.status-row{display:flex;margin-bottom:4px}.status-label{min-width:120px;color:#9cdcfe;font-weight:600}.status-value{color:#dcdcaa;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.jogging-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.parameter-control{min-height:60px;display:flex;align-items:center;margin-top:12px}.parameter-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:48px;background:#1e1e1e66;border:1px solid #404040;border-radius:4px;color:#888;font-style:italic;font-size:13px}.step-size-control{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px;background:#1e1e1ecc;border:1px solid #404040;border-radius:4px}.step-size-control label{color:#9cdcfe;font-size:13px;font-weight:500;min-width:100px}.step-size-input{min-width:80px;min-height:32px;padding:6px 8px;background:#1e1e1e;border:1px solid #464647;color:#ccc;border-radius:3px;font-size:13px;text-align:center;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s ease}.step-size-input:focus{border-color:#007acc;outline:none;box-shadow:0 0 0 2px #007acc33}.step-size-control span{color:#dcdcaa;font-size:12px;font-weight:500;min-width:20px}.control-group{background:#252526;border:1px solid #2d2d30;border-radius:6px;padding:16px;margin-bottom:16px}.control-group h4{margin:0 0 12px;color:#9cdcfe;font-size:14px;font-weight:600;border-bottom:1px solid #2d2d30;padding-bottom:8px}.control-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.control-row:last-child{margin-bottom:0}.control-label{min-width:100px;color:#ccc;font-size:13px;font-weight:500}.control-value{flex:1}.viewer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#252526;border-bottom:1px solid #2d2d30;gap:16px}.viewer-header h3{margin:0;color:#ccc;font-size:16px;font-weight:600}.viewer-controls{display:flex;gap:8px;align-items:center}.viewer-controls button,.viewer-controls select{min-height:32px;padding:6px 12px;background:transparent;border:1px solid #464647;color:#ccc;border-radius:3px;font-size:13px;cursor:pointer;transition:all .2s ease}.viewer-controls button:hover,.viewer-controls select:hover{background:#37373d;border-color:#5a5a5a}.viewer-controls select{background:#1e1e1e}.viewer-controls select:focus{border-color:#007acc;outline:none}.jogging-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:20px}.speed-control{margin:16px 0;padding:16px;background:#252526;border:1px solid #2d2d30;border-radius:6px}.speed-control label{display:block;margin-bottom:12px;color:#9cdcfe;font-size:14px;font-weight:600}.speed-value{float:right;color:#dcdcaa;font-weight:700}.speed-slider{width:100%;height:6px;background:#464647;border-radius:3px;outline:none;-webkit-appearance:none;appearance:none;margin-top:8px}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:#007acc;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #007acc66;transition:all .2s ease}.speed-slider::-webkit-slider-thumb:hover{background:#17b;transform:scale(1.1)}.speed-slider::-moz-range-thumb{width:18px;height:18px;background:#007acc;border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 4px #007acc66;transition:all .2s ease}.speed-slider::-moz-range-thumb:hover{background:#17b;transform:scale(1.1)}.jogging-panel .speed-control{margin:8px 0;padding:8px;background:#252526;border:1px solid #2d2d30;border-radius:4px}.jogging-panel .speed-control label{display:block;margin-bottom:6px;color:#9cdcfe;font-size:11px;font-weight:600}.jogging-panel .speed-slider{width:100%;height:4px;background:#464647;border-radius:2px;outline:none;-webkit-appearance:none;appearance:none;margin-top:4px}.jogging-panel .speed-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#007acc;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #007acc66;transition:all .2s ease}.jogging-panel .speed-slider::-moz-range-thumb{width:14px;height:14px;background:#007acc;border-radius:50%;cursor:pointer;border:none;box-shadow:0 1px 3px #007acc66;transition:all .2s ease}.joint-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px}.joint-control{display:flex;flex-direction:column;align-items:center;gap:6px}.joint-control label{font-size:12px;color:#9cdcfe;font-weight:600;text-align:center}.joint-control input{width:100%;min-height:32px;padding:6px 8px;background:#1e1e1e;border:1px solid #464647;color:#ccc;border-radius:3px;font-size:12px;text-align:center;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.joint-control input:focus{border-color:#007acc;outline:none}.joint-jog-controls,.cartesian-jog-controls{padding:16px;background:linear-gradient(135deg,#252526,#2a2a2b);border:1px solid #404040;border-radius:6px;box-shadow:0 2px 8px #0000004d}.joint-jog-controls h4,.cartesian-jog-controls h4{color:#ccc;font-size:14px;font-weight:600;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid rgba(204,204,204,.1);text-transform:uppercase;letter-spacing:.5px}.joint-jog-controls h4:before{content:"⚙️";margin-right:8px}.cartesian-jog-controls h4:before{content:"📐";margin-right:8px}.position-section h5,.rotation-section h5{color:#9cdcfe;font-size:12px;font-weight:600;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.position-section{margin-bottom:20px}.joint-control-row,.cartesian-control-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:8px 12px;background:#1e1e1e99;border:1px solid #404040;border-radius:4px;transition:all .2s ease}.joint-control-row:hover,.cartesian-control-row:hover{background:#1e1e1ecc;border-color:#007acc}.joint-control-row label,.cartesian-control-row label{color:#ccc;font-size:13px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:500;min-width:120px}.jog-buttons{display:flex;gap:6px}.jog-button{min-width:40px;min-height:32px;padding:6px 12px;border:1px solid #464647;border-radius:4px;background:linear-gradient(135deg,#3c3c3c,#2d2d30);color:#ccc;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.jog-button:hover{background:linear-gradient(135deg,#007acc,#005a9e);color:#fff;border-color:#007acc;transform:translateY(-1px);box-shadow:0 4px 12px #007acc4d}.jog-button:active{transform:translateY(0);box-shadow:0 2px 6px #007acc33}.jog-button.jog-negative{background:linear-gradient(135deg,#6c2c2c,#5a1f1f);border-color:#8b4513}.jog-button.jog-negative:hover{background:linear-gradient(135deg,#dc3545,#c82333);border-color:#dc3545;box-shadow:0 4px 12px #dc35454d}.jog-button.jog-positive{background:linear-gradient(135deg,#2c5a2c,#1f4a1f);border-color:#228b22}.jog-button.jog-positive:hover{background:linear-gradient(135deg,#28a745,#1e7e34);border-color:#28a745;box-shadow:0 4px 12px #28a7454d}.emergency-controls{display:flex;gap:12px;padding:16px;background:linear-gradient(135deg,#3c2626,#2d1f1f);border:1px solid #8b4513;border-radius:6px;box-shadow:0 2px 8px #dc354533}.stop-button,.emergency-button{flex:1;min-height:40px;padding:8px 16px;border:1px solid #464647;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.stop-button{background:linear-gradient(135deg,#6c6c2c,#5a5a1f);color:#fff;border-color:#d4a017}.stop-button:hover:not(:disabled){background:linear-gradient(135deg,#ffc107,#e0a800);border-color:#ffc107;transform:translateY(-1px);box-shadow:0 4px 12px #ffc1074d}.stop-button:disabled{opacity:.5;cursor:not-allowed}.emergency-button{background:linear-gradient(135deg,#6c2c2c,#5a1f1f);color:#fff;border-color:#dc3545}.emergency-button:hover{background:linear-gradient(135deg,#dc3545,#c82333);border-color:#dc3545;transform:translateY(-1px);box-shadow:0 4px 12px #dc354566}.jogging-indicator{display:flex;align-items:center;justify-content:center;padding:12px;background:#007acc1a;border:1px solid rgba(0,122,204,.3);border-radius:6px;color:#007acc;font-weight:600;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-50%) translate(-4px)}to{opacity:1;transform:translateY(-50%) translate(0)}}@keyframes pulse-red{0%{box-shadow:0 0 #dc3545b3}70%{box-shadow:0 0 0 10px #dc354500}to{box-shadow:0 0 #dc354500}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.program-controls{padding:16px;background:#252526;color:#ccc;height:100%;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.control-section{margin-bottom:24px;border-bottom:1px solid #2d2d30;padding-bottom:16px}.control-section:last-child{border-bottom:none;margin-bottom:0}.section-title{font-size:13px;font-weight:600;color:#9cdcfe;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.script-selector{display:flex;flex-direction:column;gap:8px}.script-select{background:#1e1e1e;border:1px solid #464647;color:#ccc;padding:8px 12px;border-radius:4px;font-size:13px;width:100%}.script-select:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 1px #007acc}.script-select:disabled{background:#2d2d30;color:#9e9e9e;cursor:not-allowed}.control-btn{background:#0e639c;border:1px solid #1177bb;color:#fff;padding:8px 12px;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease;width:100%;justify-content:center}.control-btn:hover:not(:disabled){background:#17b;border-color:#1499d3}.control-btn:disabled{background:#464647;border-color:#6e6e6e;color:#9e9e9e;cursor:not-allowed}.execution-controls{display:flex;flex-direction:column;gap:8px}.run-btn{background:#4ec9b0;border-color:#5dd4b1}.run-btn:hover:not(:disabled){background:#5dd4b1;border-color:#6ee0c2}.stop-btn{background:#f44747;border-color:#f85858}.stop-btn:hover:not(:disabled){background:#f85858;border-color:#fa6969}.kill-btn{background:#f60;border-color:#f72}.kill-btn:hover:not(:disabled){background:#f72;border-color:#f83}.helper-controls{display:flex;flex-direction:column;gap:8px}.helper-btn{background:#464647;border-color:#6e6e6e}.helper-btn:hover:not(:disabled){background:#5a5a5a;border-color:#7e7e7e}.running-indicator{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#2d2d30;border:1px solid #464647;border-radius:4px;font-size:12px;color:#4ec9b0}.spinner{width:12px;height:12px;border:2px solid #464647;border-top:2px solid #4ec9b0;border-radius:50%;animation:spin 1s linear infinite}.expandable-section{margin-top:12px;background:#1e1e1e;border:1px solid #464647;border-radius:4px;padding:12px}.expandable-section h4{font-size:12px;font-weight:600;color:#dcdcaa;margin:0 0 8px}.target-list,.example-list{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto}.list-item-btn{background:transparent;border:1px solid #464647;color:#ccc;padding:6px 8px;border-radius:3px;font-size:11px;cursor:pointer;display:flex;align-items:center;gap:6px;text-align:left;transition:all .2s ease}.list-item-btn:hover:not(:disabled){background:#2d2d30;border-color:#6e6e6e}.list-item-btn:disabled{color:#6e6e6e;cursor:not-allowed}.list-item-btn span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-btn small{color:#9cdcfe;font-size:10px}.execution-output{background:#1e1e1e;border:1px solid #464647;border-radius:4px;padding:12px;margin-top:12px}.execution-output pre{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;color:#ccc;margin:0;white-space:pre-wrap;word-wrap:break-word;max-height:150px;overflow-y:auto}.program-editor{height:100%;display:flex;flex-direction:column;background:#1e1e1e;color:#ccc}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#252526;border-bottom:1px solid #2d2d30;flex-shrink:0}.editor-title{display:flex;align-items:center;gap:8px}.editor-title h2{margin:0;font-size:16px;font-weight:600;color:#ccc}.execution-indicator{display:flex;align-items:center;gap:6px;margin-left:12px;padding:4px 8px;background:#ff6b351a;border:1px solid #ff6b35;border-radius:12px;font-size:11px;color:#ff6b35;font-weight:500}.execution-indicator .pulse-dot{width:6px;height:6px;background:#ff6b35;border-radius:50%;animation:pulse-dot 1.5s infinite}.editor-actions{display:flex;gap:8px}.save-btn{background:#0e639c;border:1px solid #1177bb;color:#fff;padding:8px 16px;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.save-btn:hover:not(:disabled){background:#17b;border-color:#1499d3}.save-btn:disabled{background:#464647;border-color:#6e6e6e;color:#9e9e9e;cursor:not-allowed}.editor-content{flex:1;display:flex;flex-direction:column;border-radius:4px}.script-status{display:flex;align-items:center;gap:6px;font-size:12px;color:#4ec9b0}.script-status span{font-weight:500}.streaming-output{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#ccc}.streaming-output .output-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#252526;border-bottom:1px solid #2d2d30;flex-shrink:0}.streaming-output .output-title{display:flex;align-items:center;gap:8px}.streaming-output .output-title h3{margin:0;font-size:14px;font-weight:600;color:#ccc}.streaming-output .polling-indicator{color:#4ec9b0;font-size:12px;font-weight:500;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.streaming-output .output-actions{display:flex;gap:8px;align-items:center}.streaming-output .stop-btn,.streaming-output .clear-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;font-size:12px;border:1px solid #464647;border-radius:3px;background:#3c3c3c;color:#ccc;cursor:pointer;transition:all .2s ease}.streaming-output .stop-btn:hover{background:#f44747;border-color:#f44747;color:#fff}.streaming-output .clear-btn:hover{background:#464647;border-color:#6c6c6c}.streaming-output .output-content{flex:1;overflow:hidden;background:#1e1e1e;position:relative}.streaming-output .no-output{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#8c8c8c;text-align:center}.streaming-output .no-output p{margin:8px 0;font-size:14px}.streaming-output .no-output .subtitle{font-size:12px;color:#6c6c6c}.streaming-output .output-lines{height:100%;overflow-y:auto;padding:8px 0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:18px}.streaming-output .output-line{display:flex;padding:2px 16px;min-height:18px;align-items:flex-start}.streaming-output .output-line:hover{background:#2d2d30}.streaming-output .output-line.error{background:#f447471a;border-left:3px solid #f44747}.streaming-output .line-number{flex-shrink:0;width:40px;color:#858585;text-align:right;margin-right:16px;-webkit-user-select:none;user-select:none;font-size:11px}.streaming-output .line-content{flex:1;color:#ccc;white-space:pre-wrap;word-break:break-word}.streaming-output .output-line.error .line-content{color:#f44747}.streaming-output .output-status{padding:8px 16px;background:#252526;border-top:1px solid #2d2d30;flex-shrink:0}.streaming-output .status-indicator{display:flex;align-items:center;gap:8px;font-size:12px;color:#4ec9b0}.streaming-output .status-indicator.running{animation:pulse 2s infinite}.streaming-output .pulse-dot{width:6px;height:6px;background:#4ec9b0;border-radius:50%;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.streaming-output .output-lines::-webkit-scrollbar{width:12px}.streaming-output .output-lines::-webkit-scrollbar-track{background:#1e1e1e}.streaming-output .output-lines::-webkit-scrollbar-thumb{background:#464647;border-radius:6px}.streaming-output .output-lines::-webkit-scrollbar-thumb:hover{background:#6c6c6c}.streaming-output .subtitle.debug{color:#dcdcaa;font-size:10px;margin-top:8px}.controls-toggle{margin-top:12px;padding:8px 12px;background:#252526;border-radius:4px;border:1px solid #464647}.controls-toggle label{display:flex;align-items:center;gap:8px;font-size:13px;color:#ccc;cursor:pointer}.controls-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#007acc}.executing-line{background:#ff6b3526!important;border-left:3px solid #ff6b35!important}.executing-line-glyph{background:#ff6b35!important;width:4px!important;margin-left:2px;border-radius:2px}.executing-line-glyph:after{content:"▶";color:#ff6b35;font-size:12px;font-weight:700;position:absolute;left:-6px;top:50%;transform:translateY(-50%)}.path-execution-line{background:#007acc26!important;border-left:3px solid #007acc!important}.path-execution-line-glyph{background:#007acc!important;width:4px!important;margin-left:2px;border-radius:2px}.path-execution-line-glyph:after{content:"●";color:#007acc;font-size:10px;font-weight:700;position:absolute;left:-4px;top:50%;transform:translateY(-50%)}.compact-target-display{background:#252526;border:1px solid #2d2d30;border-radius:4px;transition:all .2s ease}.compact-target-display:hover{background:#2d2d30;border-color:#37373d}.compact-target-display.selected{border-color:#007acc;background:#1e2a3a}.compact-target-display.warning{border-color:#dcdcaa}.compact-target-display.error{border-color:#f44747}.compact-target-display.error .action-btn.move-btn:disabled{opacity:.5;cursor:not-allowed}.compact-target-display.library-style{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:11px;text-align:left;cursor:pointer;border:1px solid #464647;background:transparent;color:#ccc;margin:0;width:100%}.compact-target-display.library-style:hover:not(:disabled){background:#2d2d30;border-color:#6e6e6e}.compact-target-display.library-style:disabled{color:#6e6e6e;cursor:not-allowed}.compact-target-display.library-style .target-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-target-display.library-style .target-type{color:#9cdcfe;font-size:10px}.compact-target-display.library-style .validation-icon{margin-left:auto}.compact-target-display .target-main{padding:8px 10px}.compact-target-display .target-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.compact-target-display .target-checkbox{margin:0;cursor:pointer}.compact-target-display .target-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px}.compact-target-display .name-and-type{display:flex;align-items:center;gap:6px;flex:1}.compact-target-display .target-name{color:#dcdcaa;font-weight:600;font-size:13px}.compact-target-display .target-type-badge{font-size:9px;padding:1px 4px;border-radius:8px;text-transform:uppercase;font-weight:500;letter-spacing:.3px}.compact-target-display .target-type-badge[data-type=joint]{background:#4a90e2;color:#fff}.compact-target-display .target-type-badge[data-type=cartesian]{background:#50c878;color:#fff}.compact-target-display .validation-toggle{display:flex;align-items:center;gap:3px;background:transparent;border:none;color:inherit;cursor:pointer;padding:2px 4px;border-radius:2px;font-size:10px}.compact-target-display .validation-toggle:hover{background:#ffffff1a}.compact-target-display .validation-icon.error{color:#f44747}.compact-target-display .validation-icon.warning{color:#dcdcaa}.compact-target-display .validation-icon.valid{color:#4ec9b0}.compact-target-display .issue-count{background:#f4474733;color:#f44747;padding:1px 4px;border-radius:6px;font-size:9px}.compact-target-display .target-actions{display:flex;gap:4px;align-items:center}.compact-target-display .action-btn{display:flex;align-items:center;gap:3px;padding:3px 6px;background:transparent;border:1px solid #464647;border-radius:2px;color:#ccc;font-size:10px;cursor:pointer;transition:all .2s ease}.compact-target-display .action-btn:hover:not(:disabled){background:#37373d;border-color:#5a5a5a}.compact-target-display .action-btn.move-btn{background:#007acc;border-color:#007acc;color:#fff}.compact-target-display .action-btn.move-btn:hover:not(:disabled){background:#005a9e;border-color:#004578}.compact-target-display .action-btn.delete-btn{background:#dc3545;border-color:#dc3545;color:#fff}.compact-target-display .action-btn.delete-btn:hover:not(:disabled){background:#c82333;border-color:#bd2130}.compact-target-display .target-values{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;color:#9cdcfe;display:flex;flex-wrap:wrap;gap:8px}.compact-target-display .value-item{background:#1e1e1e;border:1px solid #464647;border-radius:2px;padding:2px 4px;white-space:nowrap;min-width:80px;text-align:center;display:flex;align-items:center;justify-content:center}.compact-target-display .position-values,.compact-target-display .rotation-values{display:flex;gap:4px;flex-wrap:wrap}.compact-target-display .validation-details{border-top:1px solid #2d2d30;padding:6px 10px;background:#f447471a}.compact-target-display .validation-details h5{margin:0 0 4px;font-size:10px;color:#f44747;font-weight:600}.compact-target-display .validation-details ul{margin:0;padding-left:12px;font-size:9px;color:#f44747}.compact-target-display .validation-details li{margin-bottom:2px}.compact-target-display.editing{border-color:#007acc;background:#1e2a3a}.compact-target-display .target-name-input{background:#1e1e1e;border:1px solid #464647;border-radius:2px;color:#dcdcaa;font-weight:600;font-size:13px;padding:2px 4px;margin:0 2px;min-width:100px}.compact-target-display .target-name-input:focus{border-color:#007acc;outline:none}.compact-target-display .value-item.editable{display:flex;align-items:center;gap:3px;background:#1e1e1e;border:1px solid #464647;border-radius:2px;padding:3px 5px;min-width:80px;justify-content:space-between}.compact-target-display .value-item.editable label{font-size:9px;color:#9cdcfe;min-width:18px;margin:0}.compact-target-display .value-input{background:transparent;border:none;color:#dcdcaa;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;width:45px;padding:0;text-align:center;flex:1}.compact-target-display .value-input:focus{outline:1px solid #007acc;outline-offset:-1px}.compact-target-display .value-item.editable span{font-size:8px;color:#9cdcfe;margin:0}.current-position .position-display{margin-top:8px}.current-position .target-values{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;color:#9cdcfe;display:flex;flex-wrap:wrap;gap:8px}.current-position .value-item{background:#1e1e1e;border:1px solid #464647;border-radius:2px;padding:2px 4px;white-space:nowrap;min-width:80px;text-align:center;display:flex;align-items:center;justify-content:center}.current-position .position-values,.current-position .rotation-values{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.current-position .value-item.editable{display:flex;align-items:center;gap:3px;background:#1e1e1e;border:1px solid #464647;border-radius:2px;padding:3px 5px;min-width:80px;justify-content:space-between}.current-position .value-item.editable label{font-size:9px;color:#9cdcfe;min-width:18px;margin:0}.current-position .value-input{background:transparent;border:none;color:#dcdcaa;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;width:45px;padding:0;text-align:center;flex:1}.current-position .value-input:focus{outline:1px solid #007acc;outline-offset:-1px}.current-position .value-item.editable span{font-size:8px;color:#9cdcfe;margin:0}.current-position .no-data-message{padding:8px;color:#7d7d7d;font-style:italic;text-align:center;border:1px solid #464647;border-radius:2px;background:#1e1e1e}.edit-position-controls{display:flex;gap:8px;margin-top:12px;padding:12px;background:#252526;border:1px solid #2d2d30;border-radius:4px}.copy-current-button,.move-to-edit-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#464647;border:1px solid #5a5a5a;border-radius:3px;color:#ccc;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:32px}.copy-current-button:hover:not(:disabled){background:#5a5a5a;border-color:#6e6e6e}.move-to-edit-button{background:#007acc;border-color:#007acc;color:#fff}.move-to-edit-button:hover:not(:disabled){background:#005a9e;border-color:#004578}.copy-current-button:disabled,.move-to-edit-button:disabled{opacity:.5;cursor:not-allowed}.teach-controls{display:flex;gap:8px;margin-top:16px;padding:12px;background:#252526;border:1px solid #2d2d30;border-radius:4px;align-items:center}.target-name-input{flex:1;min-height:32px;padding:8px 12px;background:#1e1e1e;border:1px solid #464647;border-radius:3px;color:#ccc;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.target-name-input:focus{border-color:#007acc;outline:none;box-shadow:0 0 0 1px #007acc4d}.target-name-input::placeholder{color:#8c8c8c;font-style:italic}.teach-button{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#28a745;border:1px solid #28a745;border-radius:3px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:32px;white-space:nowrap}.teach-button:hover:not(:disabled){background:#218838;border-color:#1e7e34;transform:translateY(-1px);box-shadow:0 2px 4px #28a7454d}.teach-button:disabled{background:#6c757d;border-color:#6c757d;opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.teach-section{margin-bottom:24px}.teach-section h4{margin:0 0 16px;color:#9cdcfe;font-size:14px;font-weight:600;border-bottom:1px solid #2d2d30;padding-bottom:8px;position:relative}.teach-section h4:before{content:"";position:absolute;bottom:-1px;left:0;width:40px;height:2px;background:#007acc;border-radius:1px}.mode-selector{display:flex;gap:8px;margin-bottom:16px;padding:8px;background:#252526;border:1px solid #2d2d30;border-radius:6px;position:relative;flex-wrap:wrap}.mode-selector:before{content:"";position:absolute;top:0;left:8px;right:8px;height:1px;background:linear-gradient(90deg,#007acc 0%,transparent 100%)}.radio-option{display:flex;align-items:center;gap:8px;font-size:13px;color:#ccc;cursor:pointer;transition:all .2s ease;padding:8px 12px;border-radius:4px;flex:1;justify-content:center;position:relative}.radio-option:hover{color:#fff;background:#ffffff0d}.radio-option input[type=radio]:checked+span{color:#007acc;font-weight:600}.radio-option input[type=radio]{width:16px;height:16px;accent-color:#007acc;cursor:pointer}.mode-selector[data-teaching-mode=joint] .radio-option:first-child,.mode-selector[data-teaching-mode=cartesian] .radio-option:last-child{background:#007acc1a;border:1px solid rgba(0,122,204,.3)}.mode-selector[data-data-mode=live] .radio-option:first-child,.mode-selector[data-data-mode=edit] .radio-option:last-child{background:#007acc1a;border:1px solid rgba(0,122,204,.3)}.jogging-panel .mode-selector[data-jog-mode=joint] .radio-option:first-child,.jogging-panel .mode-selector[data-jog-mode=cartesian] .radio-option:last-child{background:#007acc1a;border:1px solid rgba(0,122,204,.3)}.jogging-panel .mode-selector[data-jog-type="0"] .radio-option:first-child,.jogging-panel .mode-selector[data-jog-type="1"] .radio-option:nth-child(2),.jogging-panel .mode-selector[data-jog-type="2"] .radio-option:last-child{background:#007acc1a;border:1px solid rgba(0,122,204,.3)}.jogging-panel{display:flex;flex-direction:column;gap:16px;padding:20px;background:#1e1e1e;border:1px solid #2d2d30;border-radius:8px;max-width:100%}.jogging-panel .panel-header h3{color:#ccc;font-size:16px;font-weight:600;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(204,204,204,.1);text-transform:uppercase;letter-spacing:.5px}.jogging-panel .panel-header h3:before{content:"🎮";margin-right:8px}.jog-mode-control{display:flex;flex-direction:column;gap:12px;padding:16px;background:#252526;border:1px solid #2d2d30;border-radius:6px;background:linear-gradient(135deg,#252526,#2a2a2b);border:1px solid #404040;box-shadow:0 2px 8px #0000004d}.jog-mode-control>label{color:#9cdcfe;font-size:14px;font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.jogging-panel .jog-mode-control{display:flex;flex-direction:column;gap:8px;padding:12px;background:linear-gradient(135deg,#252526,#2a2a2b);border:1px solid #404040;border-radius:6px;box-shadow:0 2px 8px #0000004d}.jogging-panel .jog-mode-control>label{color:#9cdcfe;font-size:12px;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.jogging-panel .mode-selector{display:flex;gap:4px;margin-bottom:8px;padding:4px;background:#252526;border:1px solid #2d2d30;border-radius:4px;position:relative;flex-wrap:wrap}.jogging-panel .mode-selector{container-type:inline-size}.jogging-panel .mode-selector:has(.radio-option:nth-child(3):not(:nth-child(4))){flex-direction:column;gap:2px}.jogging-panel .mode-selector:has(.radio-option:nth-child(3):not(:nth-child(4))) .radio-option{justify-content:flex-start;padding:6px 8px}@container (max-width: 280px){.jogging-panel .mode-selector{flex-direction:column;gap:2px}.jogging-panel .radio-option{justify-content:flex-start;padding:6px 8px;font-size:11px}}@media (max-width: 320px){.jogging-panel{min-width:250px}.jogging-panel .mode-selector{flex-direction:column;gap:2px}.jogging-panel .radio-option{justify-content:flex-start;padding:6px 8px}}.teaching-panel .mode-selector{container-type:inline-size;flex-wrap:wrap}@container (max-width: 300px){.teaching-panel .mode-selector{flex-direction:column;gap:2px}.teaching-panel .radio-option{justify-content:flex-start;padding:8px 12px}}@media (max-width: 350px){.teaching-panel .mode-selector{flex-direction:column;gap:2px}.teaching-panel .radio-option{justify-content:flex-start;padding:8px 12px}}@container (max-width: 280px){.teaching-panel .mode-selector{flex-direction:column;gap:2px}.teaching-panel .radio-option{justify-content:flex-start;padding:6px 8px;font-size:12px}}@media (max-width: 320px){.teaching-panel{min-width:250px}.teaching-panel .mode-selector{flex-direction:column;gap:2px}.teaching-panel .radio-option{justify-content:flex-start;padding:6px 8px}}.teaching-panel.compact .mode-selector{flex-direction:column;gap:2px}.teaching-panel.compact .radio-option{justify-content:flex-start;padding:8px 12px}.robot-command-helper{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#ccc}.robot-command-helper .helper-header{display:flex;flex-direction:column;gap:12px;padding:16px;border-bottom:1px solid #2d2d30;background:#252526}.robot-command-helper .helper-title{display:flex;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;color:#ccc}.robot-command-helper .helper-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.robot-command-helper .search-container{display:flex;align-items:center;gap:6px;flex:1;min-width:200px}.robot-command-helper .search-input{flex:1;padding:6px 8px;background:#1e1e1e;border:1px solid #464647;border-radius:3px;color:#ccc;font-size:13px}.robot-command-helper .search-input:focus{outline:none;border-color:#007acc}.robot-command-helper .filter-container{display:flex;align-items:center;gap:6px}.robot-command-helper .category-filter{padding:6px 8px;background:#1e1e1e;border:1px solid #464647;border-radius:3px;color:#ccc;font-size:13px;cursor:pointer}.robot-command-helper .category-filter:focus{outline:none;border-color:#007acc}.robot-command-helper .toggle-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:1px solid #464647;border-radius:3px;color:#ccc;cursor:pointer;transition:all .2s ease}.robot-command-helper .toggle-btn:hover{background:#37373d;border-color:#5a5a5a}.robot-command-helper .toggle-btn.active{background:#007acc;border-color:#007acc;color:#fff}.robot-command-helper .commands-container{flex:1;overflow-y:auto;padding:16px}.robot-command-helper .no-commands{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#9e9e9e;text-align:center}.robot-command-helper .no-commands p{margin:8px 0 4px;font-size:16px}.robot-command-helper .no-commands small{font-size:13px}.robot-command-helper .command-category{margin-bottom:24px}.robot-command-helper .category-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;background:#252526;border:1px solid #2d2d30;border-radius:4px;font-size:14px;font-weight:600;color:#9cdcfe}.robot-command-helper .commands-list{display:flex;flex-direction:column;gap:8px}.robot-command-helper .command-item{background:#252526;border:1px solid #2d2d30;border-radius:4px;transition:all .2s ease}.robot-command-helper .command-item:hover{background:#2d2d30;border-color:#37373d}.robot-command-helper .command-header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px;gap:12px}.robot-command-helper .command-info{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0}.robot-command-helper .command-expand-btn{display:flex;align-items:center;justify-content:center;padding:2px;background:transparent;border:none;color:#9e9e9e;cursor:pointer;transition:all .2s ease;margin-top:2px}.robot-command-helper .command-expand-btn:hover{color:#ccc}.robot-command-helper .command-main{flex:1;min-width:0}.robot-command-helper .command-syntax{display:block;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:#dcdcaa;background:#1e1e1e;padding:4px 6px;border-radius:2px;margin-bottom:4px;word-break:break-all}.robot-command-helper .command-description{margin:0;font-size:12px;color:#9e9e9e;line-height:1.4}.robot-command-helper .command-actions{display:flex;gap:4px;align-items:flex-start}.robot-command-helper .action-btn{display:flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:1px solid #464647;border-radius:2px;color:#ccc;cursor:pointer;transition:all .2s ease}.robot-command-helper .action-btn:hover:not(:disabled){background:#37373d;border-color:#5a5a5a}.robot-command-helper .action-btn:disabled{opacity:.5;cursor:not-allowed}.robot-command-helper .insert-btn{background:#007acc;border-color:#007acc;color:#fff}.robot-command-helper .insert-btn:hover:not(:disabled){background:#005a9e}.robot-command-helper .example-btn{background:#0e639c;border-color:#17b;color:#fff}.robot-command-helper .example-btn:hover:not(:disabled){background:#17b}.robot-command-helper .copy-btn:hover:not(:disabled){background:#37373d;border-color:#5a5a5a}.robot-command-helper .command-details{padding:0 12px 12px;border-top:1px solid #2d2d30;margin-top:8px;background:#1e1e1e}.robot-command-helper .parameters-section,.robot-command-helper .returns-section,.robot-command-helper .examples-section{margin-bottom:16px}.robot-command-helper .parameters-section:last-child,.robot-command-helper .returns-section:last-child,.robot-command-helper .examples-section:last-child{margin-bottom:0}.robot-command-helper .command-details h5{margin:12px 0 8px;font-size:13px;font-weight:600;color:#9cdcfe}.robot-command-helper .parameters-list{list-style:none;margin:0;padding:0}.robot-command-helper .parameter-item{display:flex;align-items:baseline;gap:6px;margin-bottom:6px;font-size:12px}.robot-command-helper .parameter-item code{color:#dcdcaa;background:#252526;padding:2px 4px;border-radius:2px;font-size:11px}.robot-command-helper .param-type{color:#9cdcfe;font-size:11px}.robot-command-helper .param-optional{color:#ce9178;font-size:10px;font-style:italic}.robot-command-helper .param-description{color:#9e9e9e;flex:1}.robot-command-helper .returns-info{margin:0;font-size:12px;color:#9e9e9e;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.robot-command-helper .examples-list{display:flex;flex-direction:column;gap:8px}.robot-command-helper .example-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:#252526;border:1px solid #2d2d30;border-radius:3px}.robot-command-helper .example-code{flex:1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;color:#dcdcaa;white-space:pre-wrap;word-break:break-all}.robot-command-helper .example-actions{display:flex;gap:2px}.robot-command-helper .example-insert-btn,.robot-command-helper .example-copy-btn{display:flex;align-items:center;justify-content:center;padding:2px;background:transparent;border:1px solid #464647;border-radius:2px;color:#ccc;cursor:pointer;transition:all .2s ease}.robot-command-helper .example-insert-btn:hover:not(:disabled),.robot-command-helper .example-copy-btn:hover:not(:disabled){background:#37373d;border-color:#5a5a5a}.robot-command-helper .example-insert-btn:disabled{opacity:.5;cursor:not-allowed}.robot-command-helper .helper-footer{padding:12px 16px;border-top:1px solid #2d2d30;background:#252526;text-align:center}.robot-command-helper .helper-footer small{font-size:12px;color:#9e9e9e}.trajectory-debug{padding:12px;height:100%;overflow:auto;background-color:var(--vscode-editor-background);color:var(--vscode-editor-foreground);font-family:var(--vscode-font-family);font-size:13px}.trajectory-debug .debug-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--vscode-panel-border)}.trajectory-debug .debug-header h3{margin:0;font-size:15px;font-weight:600}.trajectory-debug .debug-section{margin-bottom:16px}.trajectory-debug .section-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--vscode-textLink-foreground)}.trajectory-debug .no-data{color:var(--vscode-descriptionForeground);font-style:italic;padding:20px;text-align:center}.trajectory-debug .execution-state{background-color:var(--vscode-editor-inactiveSelectionBackground);border:1px solid var(--vscode-panel-border);border-radius:4px;padding:12px}.trajectory-debug .state-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px}.trajectory-debug .state-label{font-weight:600;min-width:45px;color:var(--vscode-descriptionForeground)}.trajectory-debug .state-value{color:var(--vscode-foreground);font-family:var(--vscode-editor-font-family);flex:1}.trajectory-debug .state-percent{color:var(--vscode-charts-green);font-weight:600;margin-left:auto}.trajectory-debug .progress-bar-container{height:8px;background-color:var(--vscode-progressBar-background, #333);border-radius:4px;overflow:hidden;margin:8px 0 12px}.trajectory-debug .progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--vscode-charts-green),var(--vscode-charts-blue));transition:width .3s ease}.trajectory-debug .velocity-row{display:flex;gap:16px;padding-top:4px}.trajectory-debug .velocity-item{display:flex;align-items:center;gap:6px;font-size:11px}.trajectory-debug .velocity-label{color:var(--vscode-descriptionForeground);font-weight:600}.trajectory-debug .velocity-value{color:var(--vscode-foreground);font-family:var(--vscode-editor-font-family)}.trajectory-debug .current-keypoint-content{background-color:var(--vscode-editor-inactiveSelectionBackground);border:1px solid var(--vscode-panel-border);border-left:3px solid var(--vscode-charts-blue);border-radius:4px;padding:12px}.trajectory-debug .keypoint-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--vscode-panel-border)}.trajectory-debug .keypoint-number{font-weight:600;font-size:14px;color:var(--vscode-foreground)}.trajectory-debug .keypoint-type-badge{padding:2px 8px;background-color:var(--vscode-charts-blue);color:var(--vscode-button-foreground);border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.trajectory-debug .keypoint-info{margin-bottom:10px}.trajectory-debug .info-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:12px}.trajectory-debug .info-label{font-weight:600;min-width:90px;color:var(--vscode-descriptionForeground)}.trajectory-debug .info-value{color:var(--vscode-foreground);font-family:var(--vscode-editor-font-family)}.trajectory-debug .keypoint-source-box{margin-top:10px;padding:8px;background-color:var(--vscode-textCodeBlock-background);border-radius:3px}.trajectory-debug .source-label{font-size:10px;color:var(--vscode-descriptionForeground);margin-bottom:4px;font-weight:600}.trajectory-debug .source-code{font-family:var(--vscode-editor-font-family);font-size:11px;color:var(--vscode-foreground);white-space:pre-wrap;word-break:break-word}.trajectory-debug .current-block-content{background-color:var(--vscode-editor-inactiveSelectionBackground);border:1px solid var(--vscode-panel-border);border-left:3px solid var(--vscode-charts-orange);border-radius:4px;padding:12px}.trajectory-debug .block-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--vscode-panel-border)}.trajectory-debug .block-number{font-weight:600;font-size:14px;color:var(--vscode-foreground)}.trajectory-debug .move-type-badge{padding:2px 8px;background-color:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.trajectory-debug .geometry-badge{padding:2px 8px;background-color:var(--vscode-badge-background);color:var(--vscode-badge-foreground);border-radius:3px;font-size:10px;font-weight:600}.trajectory-debug .block-info{margin-bottom:10px}.trajectory-debug .python-source-box{margin-top:10px;padding:10px;background-color:var(--vscode-textCodeBlock-background);border-radius:3px;border:1px solid var(--vscode-panel-border)}.trajectory-debug .tcp-position{background-color:var(--vscode-editor-inactiveSelectionBackground);border:1px solid var(--vscode-panel-border);border-radius:4px;padding:12px}.trajectory-debug .position-row{display:flex;gap:12px;margin-bottom:8px}.trajectory-debug .position-row:last-child{margin-bottom:0}.trajectory-debug .position-item{flex:1;display:flex;align-items:center;gap:6px;padding:6px 8px;background-color:var(--vscode-textCodeBlock-background);border-radius:3px;font-size:11px}.trajectory-debug .pos-label{font-weight:600;color:var(--vscode-descriptionForeground);min-width:20px}.trajectory-debug .pos-value{color:var(--vscode-foreground);font-family:var(--vscode-editor-font-family);font-weight:500}:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ccc;background-color:#1e1e1e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;padding:0;min-width:320px;min-height:100vh;background:#1e1e1e;color:#ccc}#root{width:100vw;height:100vh;overflow:hidden}input,select,textarea{background:#3c3c3c;color:#ccc;border:1px solid #464647;padding:6px 8px;border-radius:2px;font-size:13px}input:focus,select:focus,textarea:focus{outline:none;border-color:#007acc;box-shadow:0 0 0 1px #007acc}button{background:#0e639c;color:#fff;border:1px solid #0e639c;padding:6px 14px;border-radius:2px;cursor:pointer;font-size:13px;font-weight:400}button:hover{background:#17b;border-color:#17b}button:active{background:#005a9e;border-color:#005a9e}button:disabled{background:#2d2d30;color:#858585;border-color:#2d2d30;cursor:not-allowed}button.secondary{background:#2d2d30;color:#ccc;border-color:#464647}button.secondary:hover{background:#37373d;border-color:#464647}button.danger{background:#a1260d;border-color:#a1260d}button.danger:hover{background:#c73e1d;border-color:#c73e1d}.status-connected{color:#4ec9b0}.status-disconnected{color:#f44747}.status-warning{color:#ffcc02}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:#1e1e1e}::-webkit-scrollbar-thumb{background:#424242;border-radius:7px;border:3px solid #1e1e1e}::-webkit-scrollbar-thumb:hover{background:#4e4e4e}::-webkit-scrollbar-corner{background:#1e1e1e}@media (max-width: 768px){button{padding:4px 10px;font-size:12px}input,select,textarea{padding:4px 6px;font-size:12px}}
