:root{--y-axis-count: 1;--x-axis-count: 1;--axis-size: 50px;--gl-plot-background: #f8fafc;--gl-axis-background: #e2e8f0;--gl-y-axis-shadow: -1px 0 0 #94a3b8;--gl-x-axis-shadow: 0 -1px 0 #94a3b8;--gl-axis-text-color: #475569;--gl-axis-tick-color: #cbd5e1;--gl-axis-font: 10px monospace;--gl-grid-color: #bebebe;--gl-grid-line-width: 1;--gl-grid-opacity: .3;--gl-cursor-line: rgba(148, 163, 184, .6);--gl-cursor-line-width: 1;--gl-cursor-dot-radius: 4;--gl-cursor-dot-stroke: var(--gl-plot-background);--gl-cursor-dot-stroke-width: 1.5;--gl-cursor-label-bg: #f8fafc;--gl-cursor-label-bg-opacity: .8;--gl-cursor-x-label-color: #475569;--gl-cursor-font: bold 10px Arial;--gl-cursor-leader: 20;--gl-cursor-pad: 4;--gl-selection-fill: rgba(79, 70, 229, .15);--gl-selection-stroke: rgba(79, 70, 229, .7);--gl-selection-line-width: 1;--gl-selection-dash: 4 3}.plot{--axis-offset: calc(var(--y-axis-count) * var(--axis-size, 30px));display:grid;grid-template-columns:1fr repeat(var(--y-axis-count),var(--axis-size, 30px));grid-template-rows:1fr repeat(var(--x-axis-count),var(--axis-size, 30px));width:100%;height:100%;position:relative;background:var(--gl-plot-background)}.plot>*{position:relative}.plot canvas{position:absolute;width:100%;height:100%}.axis{background:var(--gl-axis-background)}.axis.vertical{box-shadow:var(--gl-y-axis-shadow)}.axis.horizontal{grid-column:1/-1;box-shadow:var(--gl-x-axis-shadow);padding-right:0;box-sizing:border-box}.axis.horizontal canvas{width:calc(100% - var(--axis-offset) + var(--axis-size))}:root{--bg-base: #f1f5f9;--bg-surface: #ffffff;--bg-input: #f8fafc;--bg-input-focus: #ffffff;--bg-hover: #f1f5f9;--text-primary: #1e293b;--text-secondary: #334155;--text-body: #475569;--text-muted: #94a3b8;--text-subtle: #64748b;--text-accent: #4f46e5;--border: #e2e8f0;--border-strong: #cbd5e1;--border-focus: #818cf8;--accent: #4f46e5;--shadow-sm: 0 1px 3px rgba(0,0,0,.07);--shadow-md: 0 2px 8px rgba(0,0,0,.15);--shadow-lg: 0 4px 12px rgba(0,0,0,.12);--gl-scope-hover-radius: 15;--gl-scope-card-shadow-opacity: .2;--gl-scope-card-border-opacity: .15}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:monospace;background:var(--bg-base);transition:background .2s ease,color .2s ease}body.dark-mode{--bg-base: #0f172a;--bg-surface: #1e293b;--bg-input: #0f172a;--bg-input-focus: #1e293b;--bg-hover: #334155;--text-primary: #e2e8f0;--text-secondary: #cbd5e1;--text-body: #94a3b8;--text-muted: #64748b;--text-subtle: #94a3b8;--text-accent: #818cf8;--border: #334155;--border-strong: #475569;--border-focus: #4f46e5;--accent: #6366f1;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 2px 8px rgba(0,0,0,.4);--shadow-lg: 0 4px 12px rgba(0,0,0,.5);--gl-scope-card-shadow-opacity: .5;--gl-scope-card-border-opacity: .3}.dev-layout{display:flex;width:100%;height:100%}.dev-panel{display:flex;flex-direction:column;gap:0;position:relative;width:260px;min-width:160px;max-width:520px;background:var(--bg-surface);border-right:1px solid var(--border);color:var(--text-body);padding:32px 12px 12px;box-sizing:border-box;overflow:hidden;flex-shrink:0}.dev-panel__resize{position:absolute;top:0;right:-6px;width:12px;height:100%;cursor:col-resize;z-index:10}.dev-panel__resize:hover,.dev-panel__resize.dragging{background:#4f46e540}.panel-vresize{height:5px;margin:0 -12px;cursor:row-resize;flex-shrink:0}.panel-vresize:hover,.panel-vresize.dragging{background:#0ea5e940}.panel-collapse-btn{position:absolute;top:8px;right:8px;z-index:20;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border-strong);border-radius:4px;background:#fffffff2;color:#64748b;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.panel-collapse-btn:hover{background:#fff;color:#4f46e5;border-color:#818cf8;box-shadow:0 2px 12px #4f46e540}.dev-panel.collapsed,.tools-panel.collapsed{width:0!important;min-width:0;padding:0;border:none;overflow:visible!important;transition:width .3s ease,padding .3s ease}.dev-panel.collapsed .panel-collapse-btn{right:-32px}.tools-panel.collapsed .panel-collapse-btn{left:-32px;right:auto}.dev-panel.collapsed .panel-collapse-btn svg,.tools-panel.collapsed .panel-collapse-btn svg{transform:rotate(180deg)}.dev-panel.collapsed>*:not(.panel-collapse-btn):not(.dev-panel__resize),.tools-panel.collapsed>*:not(.panel-collapse-btn):not(.tools-panel__resize){display:none!important}body.dark-mode .panel-collapse-btn{background:#1e293bf2;border-color:#475569;color:#94a3b8;box-shadow:0 2px 8px #0006}body.dark-mode .panel-collapse-btn:hover{background:#1e293b;color:#818cf8;border-color:#4f46e5;box-shadow:0 2px 12px #4f46e566}body.dark-mode .dev-panel__resize:hover,body.dark-mode .dev-panel__resize.dragging{background:#4f46e559}.plot-wrapper{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;margin-left:5px;position:relative}.tools-panel{display:flex;flex-direction:column;gap:0;position:relative;width:260px;min-width:160px;max-width:520px;background:var(--bg-surface);border-left:1px solid var(--border);color:var(--text-body);padding:12px;box-sizing:border-box;overflow-y:auto;flex-shrink:0;margin-right:5px}.tools-panel__resize{position:absolute;top:0;left:-6px;width:12px;height:100%;cursor:col-resize;z-index:10}.tools-panel__resize:hover,.tools-panel__resize.dragging{background:#4f46e540}.tools-panel__divider{border:none;border-top:1px solid var(--border);margin:0 -12px}.tools-panel__section{display:flex;align-items:center;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:8px 0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.tools-panel__section:hover{color:var(--text-subtle)}.tools-panel__section.collapsed .section-toggle{transform:rotate(-90deg)}.motorcortex-logo{position:absolute;top:16px;left:16px;width:48px;height:48px;opacity:.8;pointer-events:none;z-index:1;border-radius:8px}.dev-panel__connect{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}.connect-row{display:flex;gap:6px}.dev-panel__input{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-family:monospace;font-size:11px;outline:none}.dev-panel__input:focus{border-color:var(--border-focus)}.dev-panel__btn{padding:5px 11px;border:1px solid #4f46e5;border-radius:5px;background:#4f46e512;color:#4f46e5;font-family:monospace;font-size:11px;cursor:pointer;white-space:nowrap}.dev-panel__btn:hover{background:#4f46e524}.dev-panel__btn--danger{border-color:#4f46e5;color:#4f46e5;background:#4f46e50d}.dev-panel__btn--danger:hover{background:#4f46e51f}.dev-panel__btn--flash-error{border-color:#fca5a5!important;color:#ef4444!important;background:#ef444426!important;transition:none}body.dark-mode .dev-panel__btn{border-color:#4f46e5;background:#4f46e51a;color:#818cf8}body.dark-mode .dev-panel__btn:hover{background:#4f46e52e}body.dark-mode .dev-panel__btn--danger{border-color:#818cf8;color:#4f46e5;background:#4f46e51a}body.dark-mode .dev-panel__btn--danger:hover{background:#4f46e533}.x-range-input{flex:1;min-width:0;padding:3px 6px;border:1px solid #e2e8f0;border-radius:4px;background:#f8fafc;color:#334155;font-size:11px;font-family:inherit;text-align:right}.x-range-input:focus{outline:none;border-color:#6366f1;background:#fff}.x-range-input::-webkit-inner-spin-button,.x-range-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.x-range-input[type=number]{-moz-appearance:textfield;appearance:textfield}body.dark-mode .x-range-input{background:#1e293b;border-color:#334155;color:#94a3b8}body.dark-mode .x-range-input:focus{background:#0f172a;border-color:#6366f1;color:#e2e8f0}.export-csv-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;border:none;border-radius:20px;background:#e0e7ff;color:#3730a3;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.export-csv-btn:hover{background:#c7d2fe;box-shadow:0 1px 4px #3730a333}.export-csv-btn.active{background:#dc26261f;color:#dc2626}.export-csv-btn.save{background:#16a34a1f;color:#16a34a}.export-csv-btn:disabled{opacity:.55;cursor:not-allowed;background:#e0e7ff;color:#3730a3}body.dark-mode .export-csv-btn{background:#1e1b4b;color:#a5b4fc}body.dark-mode .export-csv-btn:hover{background:#2d2a6e;box-shadow:none}body.dark-mode .export-csv-btn.active{background:#f8717126;color:#f87171}body.dark-mode .export-csv-btn.save{background:#4ade801f;color:#4ade80}.record-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;border:none;border-radius:20px;background:#e0e7ff;color:#3730a3;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.record-btn:hover{background:#c7d2fe;box-shadow:0 1px 4px #3730a333}.record-btn.active{background:#dc26261f;color:#dc2626}.record-btn:disabled{opacity:.55;cursor:not-allowed;background:#e0e7ff;color:#3730a3}body.dark-mode .record-btn{background:#1e1b4b;color:#a5b4fc}body.dark-mode .record-btn:hover{background:#2d2a6e;box-shadow:none}body.dark-mode .record-btn.active{background:#f8717126;color:#f87171}.export-actions{display:grid;gap:8px}.recording-duration{text-align:center;padding:8px;font-size:12px;color:#334155;font-weight:500;font-family:Monaco,Courier New,monospace;background:#dc262614;border-radius:5px;border:1px solid rgba(220,38,38,.2)}.recording-duration.hidden{display:none}body.dark-mode .recording-duration{color:#f87171;background:#f8717114;border-color:#f8717133}#panel-export .view-control-row{flex-direction:row;justify-content:space-between;align-items:center}#panel-export .view-control-row>*{width:auto}#panel-export .view-control-row>label{flex:0 0 auto}#panel-export .view-control-row>.toggle-switch{flex:0 0 auto}.export-overlay{position:absolute;inset:0;cursor:crosshair;z-index:500}.export-overlay__band{position:absolute;top:0;bottom:0;background:#6366f126;border-left:2px solid #6366f1;border-right:2px solid #6366f1;pointer-events:none}.export-overlay__hint{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#0f172ad1;color:#e2e8f0;font-size:12px;padding:5px 12px;border-radius:6px;white-space:nowrap;pointer-events:none}@keyframes btn-connecting{0%,to{background:#22c55e12;border-color:#86efac;color:#16a34a}50%{background:#22c55e33;border-color:#4ade80;color:#15803d}}@keyframes btn-reconnecting{0%,to{background:#fde0472e;border-color:#fde047;color:#fde047}50%{background:#fde04752;border-color:#facc15;color:#facc15}}.dev-panel__status{font-size:10px;padding:1px 6px;border-radius:10px;background:var(--bg-base);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.03em;margin-left:auto;white-space:nowrap;flex-shrink:0}.dev-panel__status.connected{background:#22c55e1a;border-color:#86efac;color:#16a34a}.dev-panel__status.connecting{animation:btn-connecting 1s ease-in-out infinite}.dev-panel__status.reconnecting{animation:btn-reconnecting 1s ease-in-out infinite}.dev-panel__status.error{background:#ef444414;border-color:#fca5a5;color:#ef4444}body.dark-mode .dev-panel__status{background:#0f172a;border-color:#334155;color:#64748b}body.dark-mode .dev-panel__status.connected{background:#22c55e26;border-color:#22c55e;color:#4ade80}body.dark-mode .dev-panel__status.error{background:#ef44441f;border-color:#f87171;color:#f87171}.dev-panel__divider{border:none;border-top:1px solid var(--border);margin:0 -12px}.dev-panel__section{display:flex;align-items:center;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:8px 0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.dev-panel__section:hover{color:var(--text-subtle)}.section-toggle{font-size:8px;transition:transform .15s ease;display:inline-block}.dev-panel__section.collapsed .section-toggle{transform:rotate(-90deg)}.collapsible{overflow:hidden;transition:max-height .2s ease,opacity .15s ease;max-height:2000px;opacity:1}.collapsible.collapsed{max-height:0;opacity:0}.panel-spacer{flex:1}.dev-panel__settings{display:flex;flex-direction:column;gap:6px;padding:8px 0 4px}.settings-row{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex-wrap:wrap}.settings-row>*{width:100%;min-width:0}.settings-row label{color:var(--text-muted);font-size:11px;width:100%;flex-shrink:0}.settings-row input[type=range]{flex:1;min-width:0}@media(min-width:640px){.settings-row{flex-direction:row;align-items:center;gap:8px}.settings-row>*{width:auto}.settings-row label{width:80px;flex-shrink:0}.settings-row input[type=range]{min-width:120px}}.settings-val{color:var(--text-accent);font-size:11px;min-width:28px;flex-shrink:0}.seg{display:flex;border:1px solid var(--border);border-radius:5px;overflow:hidden}.seg-btn{background:none;border:none;padding:3px 9px;color:var(--text-muted);cursor:pointer;font-family:monospace;font-size:11px}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn.active{background:#4f46e51a;color:var(--text-accent)}input[type=range]{flex:1;accent-color:#4f46e5}body.dark-mode .seg-btn.active{background:#4f46e526;color:#818cf8}.toggle-switch{display:flex;align-items:center}.toggle-switch__input{appearance:none;-webkit-appearance:none;width:36px;height:20px;background:#cbd5e1;border:1px solid #94a3b8;border-radius:10px;cursor:pointer;position:relative;transition:background .2s ease;margin:0}.toggle-switch__input:checked{background:#4f46e5;border-color:#4f46e5}.toggle-switch__input:before{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:1px;left:1px;transition:left .2s ease}.toggle-switch__input:checked:before{left:19px}.toggle-switch__label{cursor:pointer}body.dark-mode .toggle-switch__input{background:#475569;border-color:#64748b}body.dark-mode .toggle-switch__input:checked{background:#6366f1;border-color:#6366f1}.theme-toggle{position:relative;display:inline-block;width:52px;height:32px;cursor:pointer;margin:0;flex-shrink:0}.theme-toggle input{opacity:0;width:0;height:0;position:absolute}.theme-toggle__slider{position:absolute;inset:0;background:#e5e7eb;border:2px solid #d1d5db;border-radius:100px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:none}.theme-toggle__slider:before{content:"";position:absolute;height:16px;width:16px;left:4px;top:50%;transform:translateY(-50%);background:#64748b;border-radius:50%;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.theme-toggle__slider:after{content:"";position:absolute;height:40px;width:40px;left:-4px;top:50%;transform:translateY(-50%);background:#64748b14;border-radius:50%;opacity:0;transition:opacity .2s ease;pointer-events:none}.theme-toggle:hover .theme-toggle__slider:after{opacity:1}.theme-toggle input:checked+.theme-toggle__slider{background:#4f46e5;border-color:#4f46e5}.theme-toggle input:checked+.theme-toggle__slider:before{transform:translate(24px) translateY(-50%);background:#fff;width:20px;height:20px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.theme-toggle input:checked+.theme-toggle__slider:after{left:auto;right:-4px;background:#4f46e51f}.theme-toggle:active .theme-toggle__slider:before{width:22px}.theme-toggle input:checked:active+.theme-toggle__slider:before{width:24px;transform:translate(20px) translateY(-50%)}body.dark-mode .theme-toggle__slider{background:#374151;border-color:#4b5563}body.dark-mode .theme-toggle__slider:before{background:#9ca3af}body.dark-mode .theme-toggle__slider:after{background:#9ca3af14}body.dark-mode .theme-toggle input:checked+.theme-toggle__slider{background:#6366f1;border-color:#6366f1}body.dark-mode .theme-toggle input:checked+.theme-toggle__slider:before{background:#e0e7ff}body.dark-mode .theme-toggle input:checked+.theme-toggle__slider:after{background:#6366f11f}#panel-params{flex:1;min-height:0;display:flex;flex-direction:column}.tree-filter{display:flex;align-items:center;gap:4px;padding:6px 0 2px}.tree-filter__input{flex:1;min-width:0;padding:4px 8px;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-family:monospace;font-size:11px;outline:none}.tree-filter__input:focus{border-color:var(--border-focus)}.tree-filter__input::placeholder{color:var(--text-muted)}.tree-filter__clear{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:2px 4px;line-height:1;display:none}.tree-filter__clear:hover{color:var(--text-subtle)}.tree-filter__clear.visible{display:block}.tree-node__match{color:var(--text-accent)}.dev-panel__tree{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;margin:6px -12px 0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dev-panel__tree::-webkit-scrollbar{width:4px}.dev-panel__tree::-webkit-scrollbar-track{background:transparent}.dev-panel__tree::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.tree-node{display:flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none;cursor:pointer}.tree-node:hover{background:var(--bg-hover)}.tree-node__label,.tree-node__value,.tree-node__input{line-height:1.4}.tree-node--module{color:var(--text-primary)}.tree-node--param{color:var(--text-secondary);cursor:default}.tree-node--param:hover{background:#4f46e50f;color:#0f172a}.tree-node--active{color:var(--text-accent)}.tree-node--non-numeric{opacity:.4;cursor:default}.tree-node__toggle{font-size:8px;color:var(--text-muted);flex-shrink:0;width:12px;text-align:center}.tree-node__icon{color:var(--text-subtle);flex-shrink:0;width:12px;text-align:center;font-size:10px}.tree-node--active .tree-node__icon{color:var(--text-accent)}.tree-node__icon--input{color:#3b82f6}.tree-node__icon--output{color:#f59e0b}.tree-node__icon--param{color:#10b981}.tree-node__icon--volatile{color:#a855f7}.tree-node__icon--persistent{color:#14b8a6}.tree-node__label{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.tree-node__value{color:var(--text-subtle);font-size:10px;flex:none;width:max-content;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;unicode-bidi:plaintext}.tree-node__input{width:58px;max-width:0;overflow:hidden;padding:1px 0;margin-right:4px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-subtle);font-family:monospace;font-size:10px;outline:none;flex-shrink:0;transition:max-width .15s ease,padding .15s ease,border-color .15s ease,background .15s ease}.tree-node:hover .tree-node__input,.tree-node__input:focus{max-width:58px;padding:1px 5px;border-color:var(--border);background:var(--bg-input)}.tree-node__input:focus{border-color:var(--border-focus);background:var(--bg-input-focus)}.tree-node__input--ok{border-color:#86efac!important;background:#22c55e14!important;transition:border-color 0s,background 0s}.tree-node__input--error{border-color:#4f46e5!important;background:#4f46e514!important;transition:border-color 0s,background 0s}.tree-node__badge{color:var(--text-muted);font-size:9px;flex-shrink:0;margin-right:4px}body.dark-mode .tree-node--param:hover{background:#4f46e51f;color:#f1f5f9}body.dark-mode .tree-node__icon--input{color:#60a5fa}body.dark-mode .tree-node__icon--output{color:#fbbf24}body.dark-mode .tree-node__icon--param{color:#34d399}body.dark-mode .tree-node__icon--volatile{color:#c084fc}body.dark-mode .tree-node__icon--persistent{color:#2dd4bf}body.dark-mode .tree-node__input--ok{border-color:#4ade80!important;background:#22c55e26!important}body.dark-mode .tree-node__input--error{border-color:#818cf8!important;background:#4f46e526!important}.tree-node--overwrite-active .tree-node__value,.tree-node--overwrite-active .tree-node__label{color:#d97706}body.dark-mode .tree-node--overwrite-active .tree-node__value,body.dark-mode .tree-node--overwrite-active .tree-node__label{color:#fbbf24}.dev-panel__list{list-style:none;margin:6px 0 0;padding:0 4px 4px;display:flex;flex-direction:column;gap:6px;max-height:50vh;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dev-panel__list::-webkit-scrollbar{width:4px}.dev-panel__list::-webkit-scrollbar-track{background:transparent}.dev-panel__list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.subscription-card{background:var(--bg-surface);border-radius:8px;box-shadow:0 1px 2px #00000012,0 2px 4px #0000000a;transition:box-shadow .15s,opacity .15s}.subscription-card--hidden{opacity:.4}.subscription-card:hover{box-shadow:0 2px 4px #0000001a,0 4px 8px #0000000f}.subscription-card__header{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--bg-input);border-bottom:1px solid var(--border);border-radius:8px 8px 0 0}.subscription-card__color{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:none;padding:0;cursor:pointer;background:none;margin-top:1px;-webkit-appearance:none;appearance:none}.subscription-card__color::-webkit-color-swatch-wrapper{padding:0;border-radius:50%;overflow:hidden}.subscription-card__color::-webkit-color-swatch{border:none;border-radius:50%}.subscription-card__color::-moz-color-swatch{border:none;border-radius:50%}.subscription-card__path{flex:1;font-size:11px;font-family:monospace;color:var(--text-secondary);word-break:break-all;line-height:1.35}.subscription-card__actions{display:flex;align-items:center;gap:6px;padding:6px 10px 8px;border-radius:0 0 8px 8px;flex-wrap:wrap}.subscription-card__actions-group{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.subscription-card__copy-btn,.subscription-card__hide-btn{margin-right:8px}.subscription-card__icon-btn,.subscription-card__remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.subscription-card__icon-btn svg{width:14px;height:14px}.subscription-card__icon-btn:hover{background:#64748b1a;color:#64748b}.subscription-card__axis{background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-subtle);font-family:monospace;font-size:10px;font-weight:600;padding:3px 6px;cursor:pointer;outline:none;transition:border-color .12s,background .12s}.subscription-card__axis:hover,.subscription-card__axis:focus{border-color:var(--border-strong);background:var(--bg-surface)}.subscription-card__remove svg{width:12px;height:12px}.subscription-card__remove:hover{background:#ef44441a;color:#ef4444}.subscription-card--overwrite-active{border-left:2px solid #d97706}body.dark-mode .subscription-card--overwrite-active{border-left-color:#fbbf24}.subscription-card__force-btn--active{color:#4f46e5!important;background:#4f46e51f!important}.subscription-card__force-btn--active:hover{background:#4f46e533!important}body.dark-mode .subscription-card__force-btn--active{color:#818cf8!important;background:#818cf826!important}body.dark-mode .subscription-card__force-btn--active:hover{background:#818cf840!important}.subscription-card__input-row,.subscription-card__output-row{display:flex;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bg-surface)}@media(max-width:420px){.subscription-card__actions{justify-content:flex-start}.subscription-card__actions-group{margin-left:0;width:100%;justify-content:flex-start;gap:4px}.subscription-card__axis{flex:1 1 auto;min-width:90px}.subscription-card__icon-btn{flex:0 0 auto}}.subscription-card__output-label{font-size:10px;color:var(--text-subtle);margin-right:6px;white-space:nowrap}.subscription-card__output-value{font-size:12px;font-family:monospace;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.dark-mode .subscription-card__output-row,body.dark-mode .subscription-card__input-row{background:var(--bg-input);border-color:var(--bg-surface)}.subscription-card__input{flex:1;font-size:11px;font-family:monospace;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-input);color:var(--text-secondary);outline:none;transition:border-color .12s,background .12s}.subscription-card__input:focus{border-color:#3b82f6;background:var(--bg-surface)}.subscription-card__input::placeholder{color:var(--text-muted);font-size:10px}.subscription-card__input--ok{border-color:#10b981;background:#f0fdf4}.subscription-card__input--error{border-color:#ef4444;background:#fef2f2;animation:shake .2s}.subscription-card__checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.subscription-card__checkbox{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin:0;border-radius:4px;border:1px solid #94a3b8;background:#fff;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease;position:relative}.subscription-card__checkbox:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.subscription-card__checkbox:hover{border-color:#60a5fa}.subscription-card__checkbox:checked{background:#3b82f6;border-color:#3b82f6}.subscription-card__checkbox:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg)}body.dark-mode .subscription-card__checkbox{border-color:#64748b;background:#0f172a}body.dark-mode .subscription-card__checkbox:hover{border-color:#94a3b8}body.dark-mode .subscription-card__checkbox:checked{background:#2563eb;border-color:#2563eb}body.dark-mode .subscription-card__checkbox:checked:after{border-color:#f8fafc}body.dark-mode .subscription-card{background:#1e293b;box-shadow:0 1px 2px #0000004d,0 2px 4px #0003}body.dark-mode .subscription-card:hover{box-shadow:0 2px 4px #0006,0 4px 8px #0000004d}body.dark-mode .subscription-card__remove:hover{background:#ef444426;color:#f87171}body.dark-mode .subscription-card__icon-btn{color:#64748b}body.dark-mode .subscription-card__icon-btn:hover{background:#64748b26;color:#94a3b8}body.dark-mode .subscription-card__input:focus{border-color:#3b82f6;background:#1e293b}body.dark-mode .subscription-card__input--ok{border-color:#10b981;background:#022c22}body.dark-mode .subscription-card__input--error{border-color:#ef4444;background:#2c1618}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.view-controls{padding:8px;display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:640px){.view-controls{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}.view-control-row{display:flex;flex-direction:column;gap:6px;min-width:0;flex-wrap:wrap}.view-control-row>*{min-width:0;width:100%}@media(min-width:500px){.view-control-row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.view-control-row>*{width:auto}.view-control-row>label{flex:0 0 auto}.view-control-row>.toggle-switch,.view-control-row>.view-control-buttons{flex:1 1 150px;min-width:110px}}.view-control-row label{font-size:11px;color:var(--text-subtle);font-weight:500;white-space:nowrap}@media(min-width:500px){.view-control-row label{min-width:80px}}.view-control-buttons{display:flex;gap:4px;flex-wrap:wrap}.scope-measurements{padding:4px 0 8px;display:flex;flex-direction:column;gap:8px}.scope-add-pair-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:calc(100% - 16px);margin:8px 8px 4px;padding:8px 12px;border:none;border-radius:20px;background:#e0e7ff;color:#3730a3;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s}.scope-add-pair-btn svg{width:14px;height:14px;flex-shrink:0}.scope-add-pair-btn:hover{background:#c7d2fe;box-shadow:0 1px 4px #3730a333}.scope-add-pair-btn--capturing{background:#fef3c7;color:#92400e;animation:scope-pulse 1.4s ease-in-out infinite}.scope-add-pair-btn--capturing:hover{background:#fde68a;box-shadow:0 1px 4px #92400e33}@keyframes scope-pulse{0%,to{box-shadow:0 0 #92400e40}50%{box-shadow:0 0 0 5px #92400e00}}.scope-empty{font-size:11px;color:var(--text-muted);text-align:center;padding:12px 8px}.scope-card{background:var(--bg-surface);border-radius:12px;box-shadow:0 1px 2px #00000012,0 2px 6px #0000000d;overflow:hidden;transition:opacity .2s}.scope-card--hidden{opacity:.4}.scope-card--building{box-shadow:none;border:1.5px dashed #c7d2fe;background:#f5f7ff}.scope-card__header{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 6px;background:var(--bg-base);border-bottom:1px solid var(--border)}.scope-card__label{font-size:11px;font-weight:600;color:var(--text-body);letter-spacing:.02em}.scope-card__actions{display:flex;gap:2px}.scope-card__icon-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.scope-card__icon-btn svg{width:12px;height:12px}.scope-card__icon-btn:hover{background:#64748b1f;color:#475569}.scope-card__icon-btn--danger{color:#fca5a5}.scope-card__icon-btn--danger:hover{background:#ef44441a;color:#ef4444}.scope-card__points{padding:8px 10px 4px;display:flex;flex-direction:column;gap:4px}.scope-card__point-row{display:flex;align-items:center;gap:6px;font-size:11px;font-family:monospace}.scope-card__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #00000014}.scope-card__point-label{font-weight:600;color:var(--text-subtle);min-width:16px}.scope-card__point-vals{color:var(--text-secondary)}.scope-card__deltas{display:flex;gap:6px;padding:4px 10px 8px}.scope-card__chip{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;background:#e0e7ff;font-size:11px;font-family:monospace}.scope-card__chip-label{font-weight:700;color:#4338ca;font-size:10px}.scope-card__chip-value{color:#1e1b4b}body.dark-mode .scope-add-pair-btn{background:#1e1b4b;color:#a5b4fc}body.dark-mode .scope-add-pair-btn:hover{background:#2d2a6e}body.dark-mode .scope-add-pair-btn--capturing{background:#451a03;color:#fbbf24}body.dark-mode .scope-add-pair-btn--capturing:hover{background:#78350f}body.dark-mode .scope-card{background:#1e293b;box-shadow:0 1px 3px #0000004d,0 2px 8px #0003}body.dark-mode .scope-card--building{background:#0f172a;border-color:#3730a3}body.dark-mode .scope-card__icon-btn{color:#475569}body.dark-mode .scope-card__icon-btn:hover{background:#94a3b81a;color:#94a3b8}body.dark-mode .scope-card__icon-btn--danger{color:#7f1d1d}body.dark-mode .scope-card__icon-btn--danger:hover{color:#f87171;background:#ef44441a}body.dark-mode .scope-card__point-label{color:var(--text-muted)}body.dark-mode .scope-card__chip{background:#1e1b4b}body.dark-mode .scope-card__chip-value{color:#c7d2fe}#controlbar{position:absolute;bottom:12px;left:12px;display:flex;align-items:center;gap:6px;background:transparent;border-radius:8px;padding:4px 10px;font-size:11px;color:var(--text-muted);z-index:10}#controlbar span{color:var(--text-body)}.cb-sep{width:1px;background:var(--border);align-self:stretch;margin:4px 2px}.tb-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;padding:0;flex-shrink:0}.tb-btn:hover{color:var(--text-secondary);border-color:var(--border);background:var(--bg-input)}.tb-btn.active{color:#4f46e5;border-color:#4f46e5;background:#ef444414}.tb-flyout-wrap{position:relative}.tb-flyout{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);flex-direction:row;gap:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:var(--shadow-lg);white-space:nowrap;z-index:20}.tb-flyout.open{display:flex}.tb-flyout .tb-btn{width:32px;height:32px;background:var(--bg-surface);box-shadow:var(--shadow-sm);border-color:var(--border)}body.dark-mode .tb-btn.active{color:#818cf8;border-color:#4f46e5;background:#4f46e526}body.dark-mode .tb-flyout{background:var(--bg-surface);border-color:var(--border);box-shadow:0 4px 12px #00000080}body.dark-mode .tb-flyout .tb-btn{background:var(--bg-surface);border-color:var(--border);box-shadow:0 1px 3px #0000004d}.params-section-row,.active-section-row{display:flex;align-items:center}.params-section-row .dev-panel__section,.active-section-row .dev-panel__section{flex:1;margin-bottom:0}.hide-all-btn,.param-save-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:1px solid transparent;border-radius:4px;color:var(--text-subtle);cursor:pointer;flex-shrink:0;transition:color .15s ease,background .15s ease,border-color .15s ease}.hide-all-btn svg,.param-save-btn svg{width:12px;height:12px}.hide-all-btn:hover,.param-save-btn:hover:not(:disabled){color:var(--text-secondary);border-color:var(--border-strong);background:var(--bg-hover)}.hide-all-btn.all-hidden{color:var(--text-muted);opacity:.5}.param-save-btn:disabled{opacity:.35;cursor:default}.param-save-btn--busy{animation:param-save-pulse .9s ease-in-out infinite;cursor:default;pointer-events:none}.param-save-btn--ok{color:#16a34a!important;transition:color 0s}.param-save-btn--error{color:#ef4444!important;transition:color 0s}@keyframes param-save-pulse{0%,to{opacity:1}50%{opacity:.15}}body.dark-mode .param-save-btn--ok{color:#4ade80!important}body.dark-mode .param-save-btn--error{color:#f87171!important}.param-context-menu{position:fixed;display:none;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:4px;box-shadow:var(--shadow-md);z-index:10000;min-width:180px}.param-context-menu.visible{display:flex}.param-context-menu__item{padding:8px 12px;background:transparent;border:none;text-align:left;cursor:pointer;font-family:monospace;font-size:12px;color:var(--text-body);white-space:nowrap}.param-context-menu__item:hover{background:var(--bg-hover)}.param-context-menu__item:first-child{border-radius:3px 3px 0 0}.param-context-menu__item:last-child{border-radius:0 0 3px 3px}body.dark-mode .param-context-menu{background:var(--bg-surface);border-color:var(--border);box-shadow:0 2px 8px #00000080}body.dark-mode .param-context-menu__item{color:var(--text-secondary)}.copy-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#10b981;color:#fff;padding:12px 20px;border-radius:4px;font-size:12px;font-family:monospace;box-shadow:var(--shadow-md);z-index:10001;opacity:0;transition:opacity .3s ease;pointer-events:none}.copy-toast.visible{opacity:1}#plot{flex:1;min-height:0;--gl-plot-background: var(--bg-surface);--gl-axis-background: var(--bg-surface);--gl-y-axis-shadow: -1px 0 0 var(--border);--gl-x-axis-shadow: 0 -1px 0 var(--border);--gl-axis-text-color: var(--text-secondary);--gl-cursor-x-label-color: var(--text-secondary);--gl-grid-color: #c6d1dd}body.dark-mode #plot{--gl-plot-background: #0f172a;--gl-axis-background: #1e293b;--gl-y-axis-shadow: -1px 0 0 #334155;--gl-x-axis-shadow: 0 -1px 0 #334155;--gl-axis-text-color: #cbd5e1;--gl-axis-tick-color: #475569;--gl-grid-color: #334155;--gl-cursor-line: rgba(148, 163, 184, .4);--gl-cursor-label-bg: #1e293b;--gl-cursor-label-bg-opacity: .9;--gl-cursor-x-label-color: #e2e8f0;--gl-scope-card-shadow-opacity: .5;--gl-scope-card-border-opacity: .3;--gl-selection-fill: rgba(99, 102, 241, .15);--gl-selection-stroke: rgba(99, 102, 241, .6)}
