:root{--color-primary:#006fe6;--color-primary-hover:#0056b3;--color-primary-dark:#004085;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-success:#1ede3e;--color-warning:#f5de0b;--color-warning-hover:#d97706;--color-secondary:#6c757d;--color-secondary-hover:#495057;--color-text:#222;--color-text-contrast:white;--color-text-light:#595959;--color-text-lighter:#767676;--color-text-dark:#111;--color-text-muted:#444;--color-text-error:#b22222;--color-text-disabled:#9ca3af;--color-bg:#f5f5f5;--color-bg-white:white;--color-bg-light:#f8f9fa;--color-bg-lighter:#fafafa;--color-bg-dark:#111;--color-border:#ddd;--color-border-light:#eee;--color-border-lighter:#dee2e6;--color-border-medium:#999;--color-overlay:#000000b3;--color-tooltip-bg:#000000d1;--color-tooltip-text:#fff;--color-status-success-bg:#d4edda;--color-status-success-text:#155724;--color-status-success-border:#c3e6cb;--color-status-error-bg:#f8d7da;--color-status-error-text:#721c24;--color-status-error-border:#f5c6cb;--color-status-info-bg:#d1ecf1;--color-status-info-text:#0c5460;--color-status-info-border:#bee5eb;--color-status-warning-bg:#fef3c7;--color-status-warning-text:#92400e;--color-status-warning-border:#f59e0b;--color-status-warning-heading:#78350f;--color-field-group-bg:#e0e0e0;--color-field-group-text:#333;--color-file-upload-bg:#f0f0f0;--color-file-upload-border:#ccc;--color-chart-bg:#000;--color-chart-border:#333;--color-chart-label:#ccc;--color-chart-value:#fff;--color-chart-range:#aaa;--color-grid:var(--color-border-light);--color-axis:#ccc;--color-chart-text:#444;--color-gauge-bg:#111;--color-gauge-pointer:#f60;--color-gauge-value:#c50;--color-gauge-fill:#28a745;--color-gauge-fill-hover:#218838;--color-gauge-bar:#007bff;--color-gauge-cyan:#00e5ff;--color-gauge-muted:#aaa;--color-gauge-danger:#dc3545;--color-gauge-danger-hover:#c82333;--color-gauge-warning:#ffc107;--color-gauge-recording:var(--color-gauge-danger-hover);--color-gauge-recording-border:#ff4d5e;--color-gauge-resizing:var(--color-gauge-fill);--color-gauge-dual-bg:#0a0f1a;--color-gauge-dual-border:#1a3040;--color-gauge-dual-text:#0ff;--color-gauge-design-tick:var(--color-gauge-dual-text);--color-gauge-design-label:var(--color-gauge-value);--color-toolbar-bg:#181820ed;--color-toolbar-text:#fff;--color-toolbar-label:#ccc;--color-edit-outline:#007bff59;--color-edit-handle:#007bff2e;--color-edit-handle-active:#007bff59;--color-edit-handle-icon:#007bffbf;--color-edit-resize:#007bff73;--color-edit-resize-border:#007bffe6;--color-series-1:var(--color-primary);--color-series-2:var(--color-success);--color-series-3:var(--color-danger);--color-series-4:#e37400;--color-series-5:#129eaf;--color-series-6:#a142f4;--color-series-7:#e24b9c;--color-series-8:#9e6c00;--color-series-9:#008d5f;--color-series-10:#5c7080;--color-chart-palette-1:var(--color-gauge-cyan);--color-chart-palette-2:#ff6384;--color-chart-palette-3:#36a2eb;--color-chart-palette-4:#ffce56;--color-chart-palette-5:#4bc0c0;--color-chart-palette-6:#96f;--color-chart-palette-7:#ff9f40;--color-chart-palette-8:#7fff00;--color-chart-palette-9:#ff4081;--color-chart-palette-10:#00e676;--color-chart-palette-11:#ea80fc;--color-chart-palette-12:#64ffda;--color-chart-palette-13:#ffd740;--color-chart-palette-14:#8c9eff;--color-chart-palette-15:#ff5252;--color-heatmap-1:navy;--color-heatmap-2:#00f;--color-heatmap-3:#0ff;--color-heatmap-4:#0f0;--color-heatmap-5:#ff0;--color-heatmap-6:red;--color-heatmap-7:maroon;--color-heatmap-cursor:#f0f;--color-heatmap-text-dark:#000;--color-heatmap-text-light:#fff;--color-tooth-bar:#4fc3f7;--color-tooth-highlight:#ff9800;--scary-bg:#1a0000;--scary-border:red;--scary-text:#fcc;--scary-header-bg:var(--scary-border);--scary-header-text:#000;--scary-pulse-end:var(--scary-btn-bg);--scary-highlight:#f33;--scary-list:#f66;--scary-arena-border:#500;--scary-btn-bg:#c00;--scary-btn-hover:#a00;--scary-btn-active:#900;--scary-counter:#c66;--scary-glow:#ff000080;--scary-backdrop:#140000e6;--sd-phase-idle-bg:#37474f;--sd-phase-idle-text:#b0bec5;--sd-phase-cranking-bg:#e65100;--sd-phase-cranking-text:#fff;--sd-phase-running-bg:#1b5e20;--sd-phase-running-text:#a5d6a7;--sd-phase-failed-bg:#b71c1c;--sd-phase-failed-text:#ffcdd2;--sd-status-ok-text:var(--color-status-success-text);--sd-status-warn-text:#7a4f01;--sd-status-warn-border:var(--color-warning);--sd-status-fail-text:#a1251b;--sd-color-rpm:var(--color-danger);--sd-color-battery:var(--color-gauge-cyan);--sd-color-map:var(--color-success);--sd-color-pw:#ff6d00;--sd-color-afr:#76ff03;--sd-color-coolant:var(--color-tooth-highlight);--sd-color-intake:#ab47bc;--sd-color-tps:#fdd835;--sd-color-advance:#e040fb;--sd-color-dwell:#40c4ff;--severity-low-bg:#4a5568;--severity-low-text:#e2e8f0;--severity-medium-bg:#ed8936;--severity-medium-text:#fff;--severity-high-bg:#f56565;--severity-high-text:#fff;--severity-critical-bg:#c53030;--severity-critical-text:#fff;--safety-note-bg-start:var(--color-status-warning-bg);--safety-note-bg-end:#fde68a;--safety-note-border:var(--color-status-warning-border);--safety-note-text:var(--color-status-warning-text);--safety-note-heading:var(--color-status-warning-heading);--wizard-chart-bg-light:#fafbfc;--wizard-chart-text-light:#333;--wizard-chart-grid-light:#e0e0e0;--rt-color-white:#fff;--rt-color-red:var(--color-danger);--rt-color-yellow:#e3e300;--rt-color-green:var(--color-success);--rt-color-cyan:var(--color-gauge-cyan);--rt-color-pink:var(--color-series-7);--rt-color-purple:var(--color-series-6);--rt-color-orange:var(--color-series-4);--rt-color-slate:var(--color-series-10);--rt-color-empty:#888;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:15px;--spacing-xl:20px;--spacing-2xl:30px;--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--font-xs:11px;--font-sm:12px;--font-base:14px;--font-md:16px;--font-lg:18px;--font-xl:22px;--font-2xl:24px;--shadow-sm:0 2px 4px #0000001a;--shadow-md:2px 0 10px #0000001a;--shadow-lg:0 4px 20px #0000004d;--transition-fast:.2s;--transition-base:.3s}[data-theme=dark]{--color-primary:#74c0fc;--color-primary-hover:#a5d8ff;--color-primary-dark:#4dabf7;--color-danger:#ff8787;--color-danger-hover:#ffa8a8;--color-success:#69db7c;--color-warning:#fdd835;--color-warning-hover:#ffe082;--color-secondary:#adb5bd;--color-secondary-hover:#868e96;--color-text:#f0f0f0;--color-text-contrast:#000;--color-text-light:#ccc;--color-text-lighter:#aaa;--color-text-dark:#fff;--color-text-muted:#ddd;--color-text-error:#ff6b6b;--color-text-disabled:#6b7280;--color-bg:#121212;--color-bg-white:#1e1e1e;--color-bg-light:#252525;--color-bg-lighter:#2d2d2d;--color-bg-dark:#000;--color-border:#444;--color-border-light:#333;--color-border-lighter:#222;--color-border-medium:#666;--color-overlay:#000000d9;--color-tooltip-bg:#141414eb;--color-status-success-bg:#1b2e1f;--color-status-success-text:#75b798;--color-status-success-border:#2b4733;--color-status-error-bg:#2c1a1d;--color-status-error-text:#ea868f;--color-status-error-border:#44272b;--color-status-info-bg:#162d31;--color-status-info-text:#6edff6;--color-status-info-border:#22454d;--color-status-warning-bg:#3d2a06;--color-status-warning-text:var(--color-warning);--color-status-warning-border:#7a4f01;--color-status-warning-heading:#fed7aa;--color-field-group-bg:#383838;--color-field-group-text:#eee;--color-file-upload-bg:#2d2d2d;--color-file-upload-border:#555;--color-chart-bg:#0a0a0a;--color-chart-border:#2a2a2a;--color-axis:#666;--color-chart-text:#ccc;--sd-status-ok-text:var(--color-success);--sd-status-warn-text:var(--color-warning);--sd-status-fail-text:var(--color-danger);--wizard-chart-bg-light:#1e2226;--wizard-chart-text-light:#e9ecef;--wizard-chart-grid-light:#424952;--safety-note-bg-start:#451a03;--safety-note-bg-end:#78350f;--safety-note-border:#f59e0b;--safety-note-text:#fde68a;--shadow-sm:0 2px 4px #00000080;--shadow-md:2px 0 10px #00000080;--shadow-lg:0 4px 20px #000c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#74c0fc;--color-primary-hover:#a5d8ff;--color-primary-dark:#4dabf7;--color-danger:#ff8787;--color-danger-hover:#ffa8a8;--color-success:#69db7c;--color-warning:#fdd835;--color-warning-hover:#ffe082;--color-secondary:#adb5bd;--color-secondary-hover:#868e96;--color-text:#f0f0f0;--color-text-contrast:#000;--color-text-light:#ccc;--color-text-lighter:#aaa;--color-text-dark:#fff;--color-text-muted:#ddd;--color-text-error:#ff6b6b;--color-text-disabled:#6b7280;--color-bg:#121212;--color-bg-white:#1e1e1e;--color-bg-light:#252525;--color-bg-lighter:#2d2d2d;--color-bg-dark:#000;--color-border:#444;--color-border-light:#333;--color-border-lighter:#222;--color-border-medium:#666;--color-overlay:#000000d9;--color-tooltip-bg:#141414eb;--color-status-success-bg:#1b2e1f;--color-status-success-text:#75b798;--color-status-success-border:#2b4733;--color-status-error-bg:#2c1a1d;--color-status-error-text:#ea868f;--color-status-error-border:#44272b;--color-status-info-bg:#162d31;--color-status-info-text:#6edff6;--color-status-info-border:#22454d;--color-status-warning-bg:#3d2a06;--color-status-warning-text:var(--color-warning);--color-status-warning-border:#7a4f01;--color-status-warning-heading:#fed7aa;--color-field-group-bg:#383838;--color-field-group-text:#eee;--color-file-upload-bg:#2d2d2d;--color-file-upload-border:#555;--color-chart-bg:#0a0a0a;--color-chart-border:#2a2a2a;--color-axis:#666;--color-chart-text:#ccc;--sd-status-ok-text:var(--color-success);--sd-status-warn-text:var(--color-warning);--sd-status-fail-text:var(--color-danger);--wizard-chart-bg-light:#1e2226;--wizard-chart-text-light:#e9ecef;--wizard-chart-grid-light:#424952;--safety-note-bg-start:#451a03;--safety-note-bg-end:#78350f;--safety-note-border:#f59e0b;--safety-note-text:#fde68a;--shadow-sm:0 2px 4px #00000080;--shadow-md:2px 0 10px #00000080;--shadow-lg:0 4px 20px #000c}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);width:100vw;height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;overflow:hidden}h1{color:var(--color-text-dark);margin-bottom:10px}h2{color:var(--color-text-dark);margin-bottom:var(--spacing-lg);font-size:var(--font-lg)}h3{color:var(--color-text-dark);margin-bottom:var(--spacing-md);font-size:var(--font-md)}h4{color:var(--color-text-dark);margin-bottom:var(--spacing-sm);font-size:var(--font-base)}.subtitle{color:var(--color-text-light);margin-bottom:var(--spacing-2xl)}.help-text{color:var(--color-text-light);margin-bottom:var(--spacing-lg);font-size:13px}.centered-text,.standard-dialog-not-implemented,.std-constants-note,.realtime-note,.generic-not-implemented{padding:var(--spacing-xl);text-align:center;color:var(--color-text-light)}html,body{background-color:var(--color-bg);height:100%;color:var(--color-text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}.app-layout{width:100vw;height:100vh;display:flex}.main-layout{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.sidebar{background:var(--color-bg-white);width:0;height:100%;transition:width var(--transition-base) ease;z-index:1001;border-right:none;flex-direction:column;display:flex;position:relative;top:0;left:0;overflow:hidden}.sidebar.open{border-right:1px solid var(--color-border);width:280px}.sidebar-header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border-light);white-space:nowrap;justify-content:space-between;align-items:center;display:flex}.sidebar-header h2{font-size:var(--font-lg);margin:0;font-weight:600}button.close-btn{color:var(--color-text-light);cursor:pointer;width:30px;height:30px;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:28px;display:flex}button.close-btn:hover{color:var(--color-danger);background:0 0}.menu-search-container{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-sm);border-bottom:1px solid var(--color-border-light);position:relative}.menu-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-light);color:var(--color-text);font-size:var(--font-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.menu-search-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #007bff1a}.menu-search-input::placeholder{color:var(--color-text-light)}.menu-search-clear{right:calc(var(--spacing-lg) + 8px);color:var(--color-text-light);cursor:pointer;width:20px;height:20px;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:20px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.menu-search-clear:hover{color:var(--color-text)}.menu-item.search-hidden,.sidebar-submenu.search-hidden,.menu-section-label.search-hidden{display:none!important}.menu-item.search-match{background:#ffc1071a}.sidebar-nav{padding:var(--spacing-sm) 0;flex:1;min-width:280px;overflow-y:auto}.menu-section-label{padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-xs);font-size:var(--font-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.menu-item{padding:var(--spacing-sm) var(--spacing-lg);color:var(--color-text);transition:background var(--transition-fast);text-align:left;width:100%;font-size:var(--font-base);cursor:pointer;white-space:nowrap;box-shadow:none;background:0 0;border:none;border-radius:0;align-items:center;margin:0;text-decoration:none;display:flex}.menu-item:hover{background:var(--color-bg-light);color:var(--color-text)}.menu-item.active{color:var(--color-primary);background:#007bff0d;font-weight:600}.menu-item .menu-icon{margin-right:var(--spacing-md);text-align:center;width:24px;font-size:1.2em}.sidebar-submenu{background:var(--color-bg-light);padding-left:0;display:none}.sidebar-submenu.open{display:block}.submenu-item{padding:var(--spacing-xs) var(--spacing-lg) var(--spacing-xs) var(--spacing-2xl);color:var(--color-text-light);font-size:var(--font-sm);transition:color var(--transition-fast);text-align:left;cursor:pointer;white-space:nowrap;width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;align-items:center;margin:0;text-decoration:none;display:flex}.submenu-item:hover{background:var(--color-bg-lighter);color:var(--color-primary)}.submenu-item.submenu-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.submenu-folder{justify-content:space-between;align-items:center;font-weight:600;display:flex}.submenu-folder .folder-arrow{transition:transform var(--transition-base);padding-left:var(--spacing-sm);margin-left:auto;font-size:.7em}.submenu-folder.open .folder-arrow{transform:rotate(90deg)}.nested-submenu{background:var(--color-bg-light);display:none}.nested-submenu.open{display:block}.menu-item .arrow{transition:transform var(--transition-base);margin-left:auto;font-size:.8em}.menu-item.open .arrow{transform:rotate(90deg)}@keyframes menu-reveal-pulse{0%{background:#ffc10759}to{background:0 0}}.menu-reveal-highlight{animation:1.8s ease-out menu-reveal-pulse}.menu-separator{background:var(--color-border-light);height:1px;margin:var(--spacing-xs) var(--spacing-lg)}.top-bar{background:var(--color-bg-white);border-bottom:1px solid var(--color-border);height:56px;padding:0 var(--spacing-lg);align-items:center;gap:var(--spacing-lg);display:flex}.hamburger-menu{cursor:pointer;padding:var(--spacing-sm);display:block}.hamburger-icon{flex-direction:column;justify-content:space-between;width:24px;height:18px;display:flex}.hamburger-icon span{background:var(--color-text-muted);width:100%;height:2px;transition:all var(--transition-base) ease;border-radius:1px;display:block}.hamburger-icon:hover span{background:var(--color-primary)}.tab-bar{align-items:flex-end;gap:var(--spacing-xs);scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;-webkit-user-select:none;user-select:none;flex:1;min-width:0;height:100%;display:flex;overflow:auto hidden}.tab-bar.grabbing{cursor:grabbing}.tab-bar::-webkit-scrollbar{display:none}@media (width<=600px){.tab-bar{scrollbar-width:auto}.tab-bar::-webkit-scrollbar{height:4px;display:block}.tab-bar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}}.tab-button{height:40px;padding:0 var(--spacing-lg);font-size:var(--font-base);color:var(--color-text-light);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);box-shadow:none;background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;margin:0;font-weight:500}.tab-button:hover{color:var(--color-primary);background:0 0}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.top-bar-right{gap:var(--spacing-sm);align-items:center;display:flex}.status-badge,.read-rate-badge{border-radius:var(--radius-lg);background:var(--color-bg-light);font-size:var(--font-xs);color:var(--color-text-muted);border:1px solid var(--color-border-light);padding:2px 8px;font-weight:600}.status-badge.active{background:var(--color-success);color:#fff;border-color:var(--color-success)}.status-badge.warning{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.content-area{min-height:0;padding:var(--spacing-lg);flex:1;position:relative;overflow:hidden}.tab-content{height:100%;display:none;overflow:hidden}.tab-content.active{display:block}.status-bar{background:var(--color-bg-white);border-top:1px solid var(--color-border);height:40px;padding:0 var(--spacing-lg);font-size:var(--font-sm);justify-content:space-between;align-items:center;display:flex}.operation-status{color:var(--color-text)}.log-controls{align-items:center;gap:var(--spacing-md);display:flex}.log-controls input[type=range]{width:150px}.sidebar-overlay{z-index:1000;opacity:0;visibility:hidden;width:100%;height:100%;transition:opacity var(--transition-base);background:#00000080;position:fixed;top:0;left:0}.sidebar-overlay.visible{opacity:1;visibility:visible}.tab-scroll-container{height:100%;padding:var(--spacing-lg);overflow-y:auto}.tuning-layout{gap:var(--spacing-lg);height:100%;min-height:0;display:flex}.tuning-main{background:var(--color-bg-white);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.tuning-content-header{padding:var(--spacing-xs) var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.tuning-content-header.compact{padding:var(--spacing-xs) var(--spacing-lg)}.tuning-content-header.compact h2{font-size:var(--font-sm)}.tuning-content-header h2{font-size:var(--font-base);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.tuning-actions{gap:var(--spacing-sm);flex-shrink:0;display:flex}.tuning-actions .primary-btn,.tuning-actions .secondary-btn{padding:5px var(--spacing-md);font-size:var(--font-sm);font-weight:600}.tuning-body{padding:var(--spacing-xl);flex:1;position:relative;overflow-y:auto}.settings-grid{gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));max-width:1200px;margin:0 auto;display:grid}.settings-card,.status-card{background:var(--color-bg-white);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.card-header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border-light)}.card-header h2{font-size:var(--font-xl);color:var(--color-primary);margin:0}.card-body{padding:var(--spacing-xl);flex:1}.card-footer{padding:var(--spacing-lg) var(--spacing-xl);background:var(--color-bg-light);border-top:1px solid var(--color-border-light);justify-content:flex-end;display:flex}.primary-btn{background:var(--color-primary);color:var(--color-text-contrast);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:none;font-weight:600}.primary-btn:hover{background:var(--color-primary-hover)}.secondary-btn{background:var(--color-bg-light);color:var(--color-text-dark);border:1px solid var(--color-border);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);text-align:center;font-weight:600;font-size:var(--font-base);justify-content:center;align-items:center;line-height:1.2;display:inline-flex}.secondary-btn:hover{background:var(--color-bg-darker);color:var(--color-text-dark)}.empty-state{height:100%;color:var(--color-text-lighter);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-icon{margin-bottom:var(--spacing-md);font-size:64px}@media (width<=900px){.tuning-layout{flex-direction:column}.tuning-sidebar{width:100%;max-height:200px}}@media (height<=500px){.top-bar{height:36px;padding:0 var(--spacing-sm);gap:var(--spacing-sm)}.tab-button{height:30px;padding:0 var(--spacing-sm);font-size:var(--font-sm)}.status-bar{height:24px;padding:0 var(--spacing-sm)}.content-area{padding:var(--spacing-xs)}.top-bar-right{gap:var(--spacing-xs)}.status-badge,.read-rate-badge{padding:0 4px;font-size:10px}}@media (width<=900px){.sidebar{z-index:1002;position:absolute;left:0}}@media (width>=901px){.sidebar-overlay{display:none}}@media (width<=600px){.top-bar{padding:0 var(--spacing-sm);gap:var(--spacing-sm)}.tab-button{padding:0 var(--spacing-md);font-size:var(--font-sm);height:48px}.top-bar-right{display:none}.log-controls input[type=range]{width:80px}.content-area{padding:var(--spacing-sm)}.tuning-content-header{padding:var(--spacing-sm);align-items:stretch;gap:var(--spacing-sm);flex-direction:column}.tuning-actions{justify-content:space-between}.tuning-actions button{padding:var(--spacing-sm);font-size:var(--font-sm);flex:1;margin:0}.tuning-body{padding:var(--spacing-md)}.connection-button-group{flex-direction:column;align-items:stretch}.connection-button-group button{width:100%;margin:0}}.card-base{background:var(--color-bg-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.field-base,.dialog-field,.constant-field{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-lighter);flex-direction:column;display:flex}.dialog-column--compact .dialog-field{align-items:center;gap:var(--spacing-md);padding:4px var(--spacing-md);flex-direction:row}.dialog-column--compact .dialog-field-label{white-space:nowrap;flex:0 auto;min-width:fit-content;margin-bottom:0;font-size:13px}.dialog-column--compact .dialog-field-input{flex:auto;min-width:60px;max-width:120px}.dialog-column--compact .dialog-field-help{display:none}.input-base,input[type=file],input[type=text],input[type=number],select,.dialog-field-input,.constant-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-base);background:var(--color-bg-white);color:var(--color-text)}.input-base:focus,.dialog-field-input:focus,.gauge-customization-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #007bff26}.label-base,label,.dialog-field-label,.constant-label,.gauge-customization-label{color:var(--color-text);margin-bottom:5px;font-weight:600;display:block}button,.btn{background:var(--color-primary);color:var(--color-text-contrast);padding:10px var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--font-base);cursor:pointer;transition:background var(--transition-fast);text-align:center;border:none;margin:10px;line-height:1.2;text-decoration:none;display:inline-block}button:not(:disabled):hover,.btn:not(.disabled):hover{background:var(--color-primary-hover);color:var(--color-text-contrast)}.btn-primary{background:var(--color-primary);color:var(--color-text-contrast)}.btn-primary:not(.disabled):hover{background:var(--color-primary-hover)}button:disabled,.btn.disabled{background:var(--color-border-light);color:var(--color-text-lighter);cursor:not-allowed}button.danger{background:var(--color-danger);color:var(--color-text-contrast)}button.danger:not(:disabled):hover{background:var(--color-danger-hover);color:var(--color-text-contrast)}.button-group{margin-top:var(--spacing-lg);gap:10px;display:flex}.button-group-flex{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.custom-file-upload{border:1px solid var(--color-file-upload-border);padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;border-radius:var(--radius-md);background:var(--color-file-upload-bg);white-space:nowrap}.checkbox-wrapper{margin:10px 0}.checkbox-wrapper label{cursor:pointer;font-size:var(--font-base);align-items:center;display:flex}.checkbox-wrapper input[type=checkbox]{margin-right:var(--spacing-sm);cursor:pointer;width:18px;height:18px}.file-input-group{gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);display:flex}.file-input-wrapper{flex:1}.status{border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-base);padding:10px}.status.success{background:var(--color-status-success-bg);color:var(--color-status-success-text);border:1px solid var(--color-status-success-border)}.status.error{background:var(--color-status-error-bg);color:var(--color-status-error-text);border:1px solid var(--color-status-error-border)}.status.info{background:var(--color-status-info-bg);color:var(--color-status-info-text);border:1px solid var(--color-status-info-border)}#stateDisplay,.state-grid{margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.state-item{padding:var(--spacing-sm);background:var(--color-bg-light);border-radius:var(--radius-md);font-size:13px}.state-label{color:var(--color-text);font-weight:600}.state-value{color:var(--color-text)}.state-value.true{color:var(--color-success);font-weight:600}.state-value.false{color:var(--color-danger)}.signature-info{border-top:1px solid var(--color-border-light);grid-column:1/-1;margin-top:10px;padding-top:10px}.signature-info.mismatch{background:#dc35450d}.signature-details{flex-direction:column;align-items:flex-start;font-family:monospace;font-size:11px;display:flex}.text-error{color:var(--color-danger)}.operation-status{margin-top:var(--spacing-lg)}#dataTable{border-collapse:collapse;width:100%;font-size:var(--font-base)}#dataTable th,#dataTable td{padding:var(--spacing-sm);text-align:left;border-bottom:1px solid var(--color-border-light)}#dataTable th{background:var(--color-bg-light);color:var(--color-text);font-weight:600}#dataTable tr:hover{background:var(--color-bg-light)}.data-table-overflow{overflow-x:auto}.data-table-no-data{text-align:center;color:var(--color-text-light)}.log{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);height:100%;font-family:Courier New,monospace;font-size:var(--font-sm);overflow-y:auto}.log-entry{margin-bottom:5px;padding:2px 0}.log-timestamp,.log-message{color:var(--color-text)}.log-error{color:var(--color-danger)}.reading-indicator{background:var(--color-success);border-radius:50%;width:10px;height:10px;margin-left:10px;animation:1s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.tooth-logger-layout{box-sizing:border-box;flex-direction:column;gap:8px;height:100%;padding:8px;display:flex}.tooth-logger-toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.tooth-logger-toolbar label{white-space:nowrap;font-weight:600}.tooth-logger-toolbar select{flex:1;min-width:120px;max-width:320px}.tooth-logger-chart{flex:1;min-height:200px;position:relative;overflow:hidden}.tooth-logger-chart canvas{width:100%;height:100%;display:block}.tooth-log-status{white-space:nowrap;font-size:.85em}.tooth-log-ok{color:var(--color-success,#4caf50)}.tooth-log-error{color:var(--color-error,#f44336)}.tooth-log-tooltip{background:var(--color-tooltip-bg);color:var(--color-tooltip-text);pointer-events:none;white-space:nowrap;z-index:9999;border-radius:4px;padding:4px 10px;font-family:monospace;font-size:12px;position:fixed;box-shadow:0 2px 6px #0006}dialog{z-index:1000;background:0 0;border:none;max-width:95vw;max-height:90vh;margin:auto 0;padding:0;position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%)}dialog::backdrop{background:var(--color-overlay);backdrop-filter:blur(4px)}dialog .modal-content{background:var(--color-bg-white,#fff);border-radius:var(--radius-lg,8px);flex-direction:column;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #0003}dialog .modal-header,dialog .modal-footer{flex-shrink:0}dialog .modal-body{flex:1;min-height:0;overflow-y:auto}#fileRequestModal{width:90%;max-width:600px}#fileRequestModal[open]{flex-direction:column;display:flex}#fileRequestModal .modal-content{background:var(--color-bg-white);border:1px solid var(--color-border);color:var(--color-text);border-radius:12px;box-shadow:0 10px 40px #0000001a}#fileRequestModal .modal-header{background:var(--color-bg-light);color:var(--color-text-dark);text-align:center;border-bottom:1px solid var(--color-border-light);padding:24px;font-size:20px;font-weight:600}#fileRequestModal .modal-body{color:var(--color-text-muted);padding:32px;line-height:1.6}#fileRequestModal .modal-footer{border-top:1px solid var(--color-border-light);background:var(--color-bg-light);justify-content:flex-end;padding:16px 32px;display:flex}.required-filename{background:var(--color-bg-lighter);text-align:center;border:1px solid var(--color-border-light);color:var(--color-text-dark);border-radius:4px;margin:15px 0;padding:10px;font-family:monospace;font-weight:700}.file-request-input-wrapper{text-align:center;margin:24px 0}.file-request-help-text{color:var(--color-text-lighter);text-align:center;font-size:14px;font-style:italic}.dialog-body{gap:var(--spacing-md);flex-direction:column;display:flex}.dialog-static-text{color:var(--color-text-dark);font-size:var(--font-base);margin:var(--spacing-xs) 0 var(--spacing-sm);line-height:1.4}.dialog-static-text-error{color:var(--color-text-error);font-weight:600}.dialog-static-text-info{color:var(--color-success,#28a745);font-weight:600}.dialog-field-help{color:var(--color-text-light);margin-top:6px;font-size:13px;line-height:1.35}.dialog-help-link{margin:var(--spacing-sm) 0 var(--spacing-xs)}.dialog-help-link a{color:var(--color-primary);text-decoration:none}.dialog-help-link a:hover{text-decoration:underline}.dialog-info-note{color:var(--color-text-light);margin:var(--spacing-sm) 0;font-style:italic}.dialog-region-middle{gap:var(--spacing-sm);display:flex}.dialog-column{min-width:200px;overflow-y:auto}@media (width<=768px){.dialog-region-middle{flex-direction:column}.dialog-column{width:100%;max-width:100%;overflow-y:visible;flex:none!important}}.dialog-region-north,.dialog-region-south{flex:none;width:100%}.dialog-flow-xaxis,.dialog-flow-yaxis{gap:var(--spacing-sm);display:flex}.dialog-flow-xaxis{flex-direction:row}.dialog-flow-yaxis{flex-direction:column}.dialog-flow-cell{flex:auto}.dialog-panel-wrap,.readout-panel-placeholder,.dialog-widget-placeholder,.dialog-embedded-table,.dialog-embedded-curve,.indicator-panel{margin:var(--spacing-xs) 0;border-radius:var(--radius-md);padding:6px}.dialog-panel-wrap{border:1px solid var(--color-border)}.dialog-panel-wrap .dialog-panel-wrap{border:none;margin:0;padding:0}.readout-panel-placeholder{border:1px dashed var(--color-status-success-border)}.dialog-widget-placeholder{border:1px dashed var(--color-border-light)}.dialog-embedded-table,.dialog-embedded-curve{border:1px solid var(--color-border-light)}.indicator-panel{padding:var(--spacing-sm);margin:var(--spacing-sm) 0;border:1px solid var(--color-border)}.dialog-panel-title,.embedded-table-title,.embedded-curve-title,.readout-panel-placeholder>div:first-child{font-weight:600;font-size:var(--font-base);color:var(--color-text);margin-bottom:6px}.dialog-column .dialog-panel-title{font-size:var(--font-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-light);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--spacing-sm);padding-bottom:4px}.standard-dialog-error{padding:var(--spacing-xl);color:var(--color-text-error)}.std-constants-dialog,.std-realtime-dialog{flex-direction:column;height:100%;padding:4px;display:flex}.std-constants-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.std-constants-header h3{margin:0}.std-constants-info{font-size:var(--font-sm);color:var(--color-text-light)}.constants-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;max-height:500px;display:grid;overflow-y:auto}@media (width<=480px){.constants-grid{grid-template-columns:1fr}}.inj-calc{flex-direction:column;gap:16px;max-width:560px;padding:12px 16px;display:flex}.inj-calc-header{flex-direction:column;gap:4px;display:flex}.inj-calc-title{font-size:var(--font-lg);color:var(--color-text);margin:0;font-weight:600}.inj-calc-subtitle{font-size:var(--font-sm);color:var(--color-text-light);margin:0;line-height:1.4}.inj-calc-grid{flex-direction:column;gap:8px;display:flex}.inj-calc-row{grid-template-columns:140px 1fr;align-items:center;gap:8px;display:grid}.inj-calc-row-label{font-size:var(--font-sm);color:var(--color-text);text-align:right;white-space:nowrap}.inj-calc-row-controls{align-items:center;gap:6px;display:flex}.inj-calc-input{text-align:right;flex-shrink:0;width:90px!important;font-size:var(--font-sm)!important;padding:4px 6px!important}.inj-calc-input--narrow{width:60px!important}.inj-calc-row-hint{font-size:var(--font-xs);color:var(--color-text-lighter);grid-column:2;padding-left:2px}.inj-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.inj-toggle-btn{font-size:var(--font-xs);background:var(--color-bg-light);color:var(--color-text-light);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);border:none;flex:1;padding:3px 8px}.inj-toggle-btn+.inj-toggle-btn{border-left:1px solid var(--color-border)}.inj-toggle-btn.active{background:var(--color-primary);color:var(--color-text-contrast)}.inj-toggle-btn:not(.active):hover{background:var(--color-bg-lighter)}.inj-calc-result{border-radius:var(--radius-lg);background:var(--color-bg-light);border:1px solid var(--color-border);transition:background var(--transition-fast), border-color var(--transition-fast);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.inj-calc-result--valid{background:var(--color-status-success-bg);border-color:var(--color-status-success-border)}.inj-calc-result-row{align-items:baseline;gap:8px;display:flex}.inj-calc-result-label{font-size:var(--font-sm);color:var(--color-text-light);flex-shrink:0;width:8em}.inj-calc-result-number{color:var(--color-text);letter-spacing:-.5px;font-size:20px;font-weight:600;line-height:1}.inj-calc-result-number--main{font-size:28px;font-weight:700}.inj-calc-result--valid .inj-calc-result-number{color:var(--color-status-success-text)}.inj-calc-result-unit{font-size:var(--font-base);color:var(--color-text-light)}.inj-calc-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.inj-calc-current{align-items:center;gap:6px;display:flex}.inj-calc-current-label{font-size:var(--font-sm);color:var(--color-text-light);white-space:nowrap}.inj-calc-current-input{text-align:right;width:70px!important;font-size:var(--font-sm)!important;padding:3px 6px!important}.inj-calc-current-unit{font-size:var(--font-sm);color:var(--color-text-light)}.inj-calc-apply{white-space:nowrap}.inj-calc-fuel-select{cursor:pointer;flex:1;min-width:0;font-size:var(--font-sm)!important;padding:4px 6px!important}.realtime-chart-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:4px;display:grid;overflow-y:auto}@media (width<=860px){.realtime-chart-grid{grid-template-columns:1fr}}.realtime-chart-cell{background:var(--color-chart-bg);border:1px solid var(--color-chart-border);height:130px;min-height:100px;position:relative;overflow:hidden}.realtime-chart-canvas{width:100%;height:100%;position:absolute;inset:0}.realtime-chart-overlay{pointer-events:none;z-index:1;flex-direction:column;padding:2px 4px;display:flex;position:absolute;inset:0}.realtime-chart-range{color:var(--color-chart-range);font-family:monospace;font-size:10px;line-height:1}.realtime-chart-range.rt-max{position:absolute;top:2px;left:4px}.realtime-chart-range.rt-min{position:absolute;bottom:2px;left:4px}.realtime-chart-range.rt-mid{position:absolute;top:50%;left:4px;transform:translateY(-50%)}.realtime-chart-title-row{justify-content:space-between;align-items:baseline;display:flex;position:absolute;top:2px;left:50px;right:4px}.realtime-chart-label{color:var(--color-chart-label);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.realtime-chart-value{color:var(--color-chart-value);margin-left:8px;font-family:monospace;font-size:22px;font-weight:700;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.constant-help{font-size:var(--font-xs);color:var(--color-text-light);margin-top:var(--spacing-xs);font-style:italic}.constant-unit{font-size:var(--font-xs);color:var(--color-text-lighter);margin-left:var(--spacing-xs)}.setting-group{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.setting-group-title{margin-top:0;margin-bottom:var(--spacing-md);font-size:var(--font-md);color:var(--color-text)}.setting-option-label{cursor:pointer;margin-bottom:var(--spacing-sm);align-items:center;display:flex}.setting-option-label:hover{color:var(--color-primary)}.setting-checkbox,.setting-radio{margin-right:var(--spacing-sm);cursor:pointer}.settings-empty-message{color:var(--color-text-lighter);text-align:center;padding:var(--spacing-xl)}.settings-loading-message{text-align:center;padding:var(--spacing-xl);color:var(--color-text)}.setup-section{border:1px solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.setup-section:last-child{margin-bottom:0}.setup-section>summary{font-size:var(--font-lg);color:var(--color-primary);padding:var(--spacing-md) var(--spacing-xl);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);transition:background var(--transition-fast);justify-content:space-between;align-items:center;font-weight:600;list-style:none;display:flex}.setup-section>summary:hover{background:var(--color-bg-light)}.setup-section>summary::-webkit-details-marker{display:none}.setup-section>summary:after{content:"▶";color:var(--color-text-lighter);font-size:.7em;transition:transform .2s}.setup-section[open]>summary{border-bottom:1px solid var(--color-border-light);border-radius:var(--radius-md) var(--radius-md) 0 0}.setup-section[open]>summary:after{transform:rotate(90deg)}.setup-section>:not(summary){padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.setup-section>:not(summary):first-of-type{padding-top:var(--spacing-lg)}.setup-section>:not(summary):last-child{padding-bottom:var(--spacing-lg)}.setup-section>.help-text{margin-top:0}.setup-section-row{gap:var(--spacing-xl);flex-wrap:wrap;align-items:flex-start;display:flex}.setup-field{gap:var(--spacing-xs);flex-direction:column;min-width:140px;display:flex}.setup-field label,.setup-field .setup-field-label{font-size:var(--font-sm);color:var(--color-text-dark);font-weight:600}.setup-field select,.setup-field input[type=text]{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-base);background:var(--color-bg-white)}.setup-radio-group{gap:var(--spacing-lg);padding-top:var(--spacing-xs);display:flex}.connection-button-group{margin-top:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.connection-help-text{margin-top:5px}.connection-input-spacing{margin-bottom:var(--spacing-lg)}.reference-table-dialog{flex-direction:column;gap:10px;height:100%;padding:10px;display:flex}.reference-table-body{flex-direction:column;gap:15px;display:flex}.reference-table-controls{flex-direction:column;gap:10px;display:flex}.reference-table-btn-group{justify-content:center;padding:10px 0;display:flex}.reference-table-write-btn{width:100%;margin:0}.reference-table-chart-container{border:1px solid var(--color-border);background:var(--color-bg-light);position:relative}.reference-table-chart{width:100%;height:400px}@media (width<=768px){.reference-table-chart{height:300px}}.reference-table-generator-container{display:none}.file-browse-ui{flex-direction:column;justify-content:center;align-items:center;gap:20px;height:100%;display:flex}.file-browse-msg{color:var(--color-text-light)}.linear-generator-ui,.therm-generator-ui{background:var(--color-bg-lighter);border-radius:var(--radius-md);gap:10px;margin-bottom:10px;padding:10px;display:grid}.linear-generator-ui{grid-template-columns:1fr 1fr}.therm-generator-ui{grid-template-columns:1fr 1fr 1fr}@media (width<=600px){.linear-generator-ui,.therm-generator-ui{grid-template-columns:1fr}}.linear-generator-field,.therm-generator-field{margin:0}.linear-generator-input,.therm-generator-input{width:100%}.reference-table-status-msg{color:var(--color-text-lighter);justify-content:center;align-items:center;height:100%;display:flex}.reference-table-error-msg{color:var(--color-text-error);padding:20px}.embedded-table-toolbar-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.embedded-table-zoom-container{flex-wrap:wrap;gap:5px;display:flex}.embedded-table-heatmap-chart{width:100%;height:400px;min-height:300px}@media (width<=768px){.embedded-table-heatmap-chart{height:300px}.embedded-table-zoom-btn{padding:8px 12px}}.log-fields-scroll-area{max-height:400px;overflow-y:auto}.field-group{border:1px solid var(--color-border-light);border-radius:4px;margin-bottom:10px;overflow:hidden}.field-group-header{background:var(--color-bg-light);background-color:var(--color-field-group-bg);color:var(--color-field-group-text);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border-light);align-items:center;gap:10px;padding:8px 10px;display:flex}[data-theme=dark] .field-group-header{background-color:var(--color-field-group-bg);color:var(--color-field-group-text)}.field-group-header:hover{filter:brightness(.95)}.field-group-header .toggle-icon{text-align:center;width:16px;font-size:.8rem;transition:transform .2s}.field-group.collapsed .toggle-icon{transform:rotate(-90deg)}.field-group-header .group-label{flex-grow:1;font-size:.9rem;font-weight:600}.field-group-content{background:var(--color-bg);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:5px;padding:8px;display:grid}.field-group.collapsed .field-group-content{display:none}.field-checkbox-item{align-items:center;gap:5px;padding:2px;display:flex}.field-checkbox-item input{cursor:pointer}.field-checkbox-item label{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-sm);margin-bottom:0;overflow:hidden}.dialog-panel-missing{color:var(--color-danger);border:1px dashed var(--color-danger);margin:5px 0;padding:10px;font-style:italic}.dialog-text{margin:10px 0;line-height:1.4}.dialog-disabled,.dialog-panel-wrap:not(:has(:is(.dialog-field,.dialog-slider,.command-button-wrap):not(.dialog-disabled):not(.hidden),:is(.dialog-embedded-curve,.dialog-embedded-table,.inj-calc,.indicator-panel,.readout-panel-placeholder):not(.hidden))),.dialog-column:not(:has(:is(.dialog-field,.dialog-slider,.command-button-wrap):not(.dialog-disabled):not(.hidden),:is(.dialog-embedded-curve,.dialog-embedded-table,.inj-calc,.indicator-panel,.readout-panel-placeholder):not(.hidden))){display:none}.readout-values{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.embedded-curve-chart-min-height{min-height:200px}.embedded-curve-table{overflow-x:auto}.curve-editor-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-top:10px}.curve-editor-table th{text-align:left;color:var(--color-text-light);background:var(--color-bg-light);border:1px solid var(--color-border-light);width:70px;min-width:70px;padding:5px;font-size:12px}.curve-editor-table td{border:1px solid var(--color-border-light);width:56px;min-width:56px;padding:0}.curve-editor-table input{text-align:center;width:100%;color:var(--color-text);box-sizing:border-box;background:0 0;border:none;padding:5px 2px;font-size:12px}.curve-editor-table input:focus{background:#007bff0d;outline:none}.curve-editor-table tr:first-child input{font-weight:600}.help-dialog-container{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;max-width:800px;margin:0 auto;display:flex}.help-text-para{color:var(--color-text-dark);line-height:1.6;font-size:var(--font-base);margin:0}.help-web-link{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light);justify-content:center;display:flex}.help-web-link .primary-btn{align-items:center;gap:8px;padding:10px 24px;text-decoration:none;display:inline-flex}.dialog-slider{gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-lighter);flex-direction:column;display:flex}.dialog-slider-header{justify-content:space-between;align-items:center;display:flex}.dialog-slider-label{color:var(--color-text-dark);font-weight:600}.dialog-slider-value{color:var(--color-primary);background:var(--color-bg-white);border:1px solid var(--color-border-light);border-radius:4px;padding:2px 8px;font-family:monospace;font-weight:700}.dialog-slider-input{cursor:pointer;width:100%}.dialog-slider.orientation-vertical{align-items:center;width:fit-content;min-height:200px}.dialog-slider.orientation-vertical .dialog-slider-input{writing-mode:bt-lr;appearance:slider-vertical;width:20px;height:150px;padding:0 5px}.dialog-slider.orientation-vertical .dialog-slider-header{flex-direction:column;gap:4px}.live-graph-wrap{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);height:300px;margin-bottom:var(--spacing-md);background:var(--color-bg-white);flex-direction:column;display:flex;overflow:hidden}.live-graph-title{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light);color:var(--color-text-dark);flex-shrink:0;font-weight:600}.live-graph-canvas{flex:1;width:100%;height:260px;min-height:0;position:relative}.live-graph-empty-state{padding:var(--spacing-sm);color:var(--color-text-muted);justify-content:center;align-items:center;height:100%;display:flex}.command-button-wrap{margin:var(--spacing-md) 0;gap:var(--spacing-sm);display:flex}.command-button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-white);color:var(--color-text-dark);cursor:pointer;white-space:nowrap;font-size:14px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s}.command-button:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.command-button:active:not(:disabled){opacity:.9;transform:scale(.98)}.command-button:disabled{background:var(--color-bg-light);color:var(--color-text-muted);border-color:var(--color-border-light);cursor:not-allowed;opacity:.6}.command-button-wrap.error{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-danger);border-radius:var(--radius-lg);background-color:#d930251a;border:1px solid #d930254d}.command-button-error{color:var(--color-danger);font-size:12px}.command-button-message{bottom:var(--spacing-lg);right:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-success);color:#fff;border-radius:var(--radius-md);z-index:2000;animation:.3s ease-out slideIn;position:fixed;box-shadow:0 2px 8px #00000026}@keyframes slideIn{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}.dialog-gauge{padding:var(--spacing-sm);flex-direction:column;align-items:center;min-width:140px;display:flex}.dialog-gauge-missing{color:var(--color-text-light);font-style:italic}.dialog-gauge-chart{width:140px;height:140px}.dialog-gauge-info{text-align:center;margin-top:-20px}.dialog-gauge-title{color:var(--color-text-light);font-size:12px}.dialog-gauge-value{font-variant-numeric:tabular-nums;color:var(--color-text-dark);font-size:20px;font-weight:700}.dialog-gauge-units{color:var(--color-text-light);font-size:12px;font-weight:400}.dialog-setting-selector{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-lighter);flex-direction:column;display:flex}.dialog-column--compact .dialog-setting-selector{align-items:center;gap:var(--spacing-md);padding:4px var(--spacing-md);flex-direction:row}#onlineTunesModal{width:90%;max-width:750px}#onlineTunesModal[open]{flex-direction:column;display:flex}.online-tunes-content{background:var(--color-bg-white);border:1px solid var(--color-border);color:var(--color-text);border-radius:12px;box-shadow:0 10px 40px #0000001a}.online-tunes-header{background:var(--color-bg-light);color:var(--color-text-dark);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:20px 24px;font-size:20px;font-weight:600;display:flex}.online-tunes-header h2{margin:0;font-size:20px}.online-tunes-header .close-btn{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1}.online-tunes-header .close-btn:hover{color:var(--color-text-dark)}.online-tunes-body{color:var(--color-text);max-height:60vh;padding:24px;line-height:1.5;overflow-y:auto}.online-tunes-footer{border-top:1px solid var(--color-border-light);background:var(--color-bg-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.tune-attribution{color:var(--color-text-muted);font-size:.8em;font-style:italic}.tune-footer-buttons{gap:8px;display:flex}.tune-filters{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.tune-filter-field{flex-direction:column;gap:4px;display:flex}.tune-filter-field label{color:var(--color-text-muted);font-size:.8em;font-weight:600}.tune-filter-field select,.tune-filter-field input{border:1px solid var(--color-border);border-radius:var(--radius-md,6px);background:var(--color-bg-white);color:var(--color-text);padding:6px 10px;font-size:.9em}.tune-filter-search{flex:1;min-width:150px}.tune-filter-search input{width:100%}.tune-status{border-radius:var(--radius-md,6px);margin-bottom:12px;padding:10px 14px;font-size:.9em}.tune-status-info{background:var(--color-bg-lighter,#f0f4ff);color:var(--color-text-muted);border:1px solid var(--color-border-light)}.tune-status-error{background:var(--color-status-error-bg);color:var(--color-status-error-text);border:1px solid var(--color-status-error-border)}.tune-list{flex-direction:column;gap:10px;display:flex}.tune-card{border:1px solid var(--color-border-light);border-radius:var(--radius-md,6px);background:var(--color-bg-white);padding:14px 16px;transition:border-color .15s,box-shadow .15s}.tune-card:hover{border-color:var(--color-primary,#3b82f6);box-shadow:0 2px 8px #0000000f}.tune-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.tune-card-title{color:var(--color-text-dark);margin:0;font-size:1em;font-weight:600}.tune-download-btn{flex-shrink:0;padding:4px 12px;font-size:.8em}.tune-card-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:6px 16px;margin-bottom:6px;font-size:.82em;display:flex}.tune-card-desc{color:var(--color-text-muted);margin:6px 0 0;font-size:.85em;line-height:1.4}.tune-empty{text-align:center;color:var(--color-text-muted);padding:32px 16px;font-style:italic}.tune-back-btn{margin-bottom:12px;font-size:.85em}.licence-text{white-space:pre-wrap;background:var(--color-bg-lighter,#f9fafb);border:1px solid var(--color-border-light);border-radius:var(--radius-md,6px);max-height:50vh;color:var(--color-text);padding:16px;font-size:.82em;line-height:1.5;overflow-y:auto}#gaugesTab{height:100%;position:relative;overflow:hidden auto}#gaugesContainer{width:100%;position:relative;overflow:visible}#gaugesContainer:before{content:"";pointer-events:none;z-index:0;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.68' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:absolute;inset:0}#gaugesContainer.edit-mode{background-image:radial-gradient(circle, var(--color-border) 1.5px, transparent 1.5px);background-size:20px 20px;background-color:var(--color-bg)}.gauge-item{border-radius:var(--radius-lg);box-shadow:none;box-sizing:border-box;min-width:0;transition:box-shadow var(--transition-fast);background:0 0;flex-direction:row;align-items:center;padding:5px;display:flex;position:absolute;overflow:hidden}.gauge-item.style-bar,.gauge-item.style-fat-bar{border-radius:var(--radius-sm);padding:2px 10px}.gauge-item.style-bar .gauge-info-panel{flex-direction:row;flex:0 0 160px;justify-content:space-between;align-items:center;gap:8px;padding-right:10px}.gauge-item.style-bar .gauge-title{text-align:left;margin:0;font-size:11px;font-weight:600}.gauge-item.style-bar .gauge-value{color:var(--color-primary);font-size:13px;font-weight:700}.gauge-item.style-bar .gauge-unit{color:var(--color-text-lighter);font-size:10px}.gauge-item.style-bar .gauge-chart-canvas{flex:1;height:24px}.gauge-item.style-fat-bar{padding:2px 10px}.gauge-item.style-fat-bar .gauge-chart-canvas{height:40px}.gauge-item.style-chart{background:var(--color-gauge-bg);border:1px solid var(--color-border);flex-direction:column;padding:0;overflow:hidden}.gauge-item.style-chart .gauge-chart-canvas{flex:1;width:100%;height:0;min-height:0;position:relative;overflow:hidden}.gauge-item.style-chart .gauge-info-panel{z-index:2;pointer-events:none;flex-direction:row;align-items:baseline;gap:6px;padding:0;position:absolute;top:2px;right:6px}.gauge-item.style-chart .gauge-title{color:var(--color-gauge-muted);font-size:10px}.gauge-item.style-chart .gauge-value{color:var(--color-gauge-cyan);font-size:13px;font-weight:700}.gauge-chart-canvas{flex:1.2;min-width:0;height:100%}.gauge-info-panel{flex-direction:column;flex:1;justify-content:center;min-width:0;padding-right:5px;display:flex}.gauge-title{font-size:var(--font-base);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:400;overflow:hidden}.gauge-value{font-size:var(--font-xl);color:var(--color-text);font-weight:700}.gauge-unit{font-size:var(--font-xs);color:var(--color-text-lighter);font-weight:400}@media (height<=500px){.gauge-value{font-size:var(--font-lg)}.gauge-title{font-size:var(--font-sm)}.gauge-item{padding:2px}}.edit-mode .gauge-item{outline:1px dashed var(--color-edit-outline)}.gauge-item.gauge-editing{box-shadow:0 0 0 2px var(--color-primary,#007bff)}.gauge-item.gauge-dragging{opacity:.75;z-index:100;box-shadow:0 6px 24px #00000040}.gauge-item.gauge-resizing{box-shadow:0 0 0 2px var(--color-gauge-resizing);z-index:100}.gauge-edit-overlay{pointer-events:none;z-index:10;border-radius:inherit;flex-direction:column;display:flex;position:absolute;inset:0}.gauge-drag-handle{background:var(--color-edit-handle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:grab;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;height:22px;display:flex}.gauge-drag-handle:active{cursor:grabbing;background:var(--color-edit-handle-active)}.drag-icon{color:var(--color-edit-handle-icon);letter-spacing:3px;font-size:14px}.gauge-edit-actions{pointer-events:all;gap:4px;display:flex;position:absolute;top:26px;right:4px}.gauge-action-btn{cursor:pointer;opacity:.85;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:14px;font-weight:700;line-height:1;transition:opacity .15s,transform .1s;display:flex}.gauge-action-btn:hover{opacity:1;transform:scale(1.1)}.gauge-config-btn{background:var(--color-secondary);color:var(--color-text-contrast)}.gauge-duplicate-btn{background:var(--color-primary);color:var(--color-text-contrast)}.gauge-remove-btn{background:var(--color-danger);color:var(--color-text-contrast)}.gauge-resize-grip{cursor:nwse-resize;pointer-events:all;touch-action:none;background:linear-gradient(135deg, transparent 50%, var(--color-edit-resize) 50%);border-radius:0 0 var(--radius-lg) 0;width:32px;height:32px;position:absolute;bottom:0;right:0}.gauge-resize-grip:after{content:"";border-right:2px solid var(--color-edit-resize-border);border-bottom:2px solid var(--color-edit-resize-border);width:10px;height:10px;position:absolute;bottom:5px;right:5px}.dashboard-edit-toolbar{background:var(--color-toolbar-bg);color:var(--color-toolbar-text);z-index:200;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(6px);white-space:nowrap;border-radius:24px;align-items:center;gap:8px;padding:7px 18px;transition:opacity .2s;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}body:has(.gauge-dragging) .dashboard-edit-toolbar,body:has(.gauge-resizing) .dashboard-edit-toolbar{opacity:.15;pointer-events:none}.edit-toolbar-label{color:var(--color-toolbar-label);margin-right:4px;font-size:13px;font-weight:600}.edit-toolbar-btn{cursor:pointer;border:none;border-radius:16px;padding:5px 14px;font-size:13px;font-weight:600;transition:background .15s,transform .1s}.edit-toolbar-btn:active{transform:scale(.96)}.edit-toolbar-btn.add-btn{background:var(--color-secondary-hover);color:var(--color-toolbar-text)}.edit-toolbar-btn.add-btn:hover{background:var(--color-secondary)}.edit-toolbar-btn.save-btn{background:var(--color-gauge-fill);color:var(--color-toolbar-text)}.edit-toolbar-btn.save-btn:hover{background:var(--color-gauge-fill-hover)}.edit-toolbar-btn.cancel-btn{background:var(--color-gauge-danger);color:var(--color-toolbar-text)}.edit-toolbar-btn.cancel-btn:hover{background:var(--color-gauge-danger-hover)}.dashboard-edit-btn{background:var(--color-primary,#007bff);width:44px;height:44px;color:var(--color-toolbar-text);cursor:pointer;z-index:150;-webkit-user-select:none;user-select:none;pointer-events:all;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:background .15s,transform .1s;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 2px 8px #0000004d}.dashboard-edit-btn:hover{background:var(--color-primary-hover);transform:scale(1.08)}.no-gauges-message{text-align:center;color:var(--color-text-lighter);font-size:var(--font-lg);pointer-events:none;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.gauge-item.style-button{border-radius:var(--radius-lg);padding:0;overflow:hidden}.dash-btn{border-radius:var(--radius-lg);cursor:pointer;background:var(--color-bg-light,var(--color-bg));width:100%;height:100%;color:var(--color-text);border:none;border:2px solid var(--color-border);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:700;transition:background .2s,transform .1s;display:flex}.dash-btn:hover:not(:disabled){filter:brightness(1.15)}.dash-btn:active:not(:disabled){transform:scale(.95)}.dash-btn:disabled{opacity:.4;cursor:not-allowed}.dash-btn.recording{background:var(--color-gauge-recording);color:var(--color-toolbar-text);border-color:var(--color-gauge-recording-border);animation:1.2s ease-in-out infinite dash-btn-pulse}@keyframes dash-btn-pulse{0%,to{box-shadow:0 0 #dc354580}50%{box-shadow:0 0 0 8px #dc354500}}.dash-btn-icon{font-size:18px}.indicator-grid{gap:var(--spacing-sm);display:grid}.indicator{padding:var(--spacing-md);border-radius:var(--radius-md);text-align:center;transition:all var(--transition-base) ease;cursor:default;-webkit-user-select:none;user-select:none;font-weight:600}.gauge-customization-body{max-height:60vh;padding:10px 0;overflow-y:auto}.gauge-customization-field{margin-bottom:var(--spacing-lg)}.gauge-customization-select{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-base);background-color:var(--color-bg-white);cursor:pointer;transition:border-color .15s,box-shadow .15s}.gauge-customization-select:hover{border-color:var(--color-border-medium)}.add-gauge-popover{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);z-index:300;min-width:260px;max-width:90vw;padding:16px;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0003}.add-gauge-popover label{font-size:var(--font-sm);color:var(--color-text-muted);font-weight:600;display:block}.add-gauge-popover-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.add-gauge-close-btn{cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:16px}.add-gauge-close-btn:hover{background:var(--color-bg-alt,#f0f2f5)}.graph-tab-container{height:100%;box-shadow:none;background:0 0;border:none;margin:0}.graph-layout{background:var(--color-bg-white);border-radius:var(--radius-lg);border:1px solid var(--color-border);gap:0;height:100%;padding:0;display:flex;overflow:hidden}.graph-sidebar{border-right:1px solid var(--color-border-light);background:var(--color-bg-light);flex-direction:column;flex:0 0 180px;transition:flex-basis .3s,min-width .3s;display:flex;overflow:hidden}.graph-sidebar.collapsed{flex:0 0 32px;min-width:32px}.sidebar-header-row{justify-content:flex-end;align-items:center;min-height:28px;padding:4px;display:flex}.graph-sidebar.collapsed .sidebar-header-row{justify-content:center}.sidebar-toggle-btn{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:4px;transition:background .2s;display:flex}.sidebar-toggle-btn:hover{background:var(--color-bg-hover);color:var(--color-primary)}.toggle-icon{font-size:10px;transition:transform .3s;display:inline-block}.graph-sidebar.collapsed .toggle-icon{transform:rotate(180deg)}.sidebar-content{opacity:1;flex-direction:column;flex:1;transition:opacity .2s;display:flex;overflow:hidden}.graph-sidebar.collapsed .sidebar-content{opacity:0;pointer-events:none;display:none}.graph-controls-compact{padding:var(--spacing-sm);gap:var(--spacing-xs);border-bottom:1px solid var(--color-border-light);display:flex}.graph-controls-compact button{flex:1;margin:0;padding:4px 8px;font-size:11px}#realtimeGraph{flex:1;width:100%;min-height:0}.graph-range-control{flex-direction:column;flex:0 0 50px;justify-content:center;padding:5px 10px;display:flex}.graph-main{background:var(--color-bg-white);flex-direction:column;flex:1;min-width:0;height:100%;padding:0;display:flex}.graph-range-slider-container{align-items:center;gap:10px;display:flex}.graph-range-slider{flex:1;margin:0}.graph-window-select{width:50px;height:20px;padding:1px 2px;font-size:10px}.graph-range-labels{color:var(--color-text-light);justify-content:space-between;font-size:10px;display:flex}.graph-tooltip{color:#fff;border-radius:var(--radius-md);pointer-events:none;z-index:1000;box-shadow:var(--shadow-lg);background:#000000d9;border:1px solid #ffffff1a;min-width:120px;padding:8px 12px;font-size:11px;position:absolute}[data-theme=dark] .graph-tooltip{border-color:var(--color-border);background:#1e1e1ef2}.tooltip-time{color:var(--color-primary);border-bottom:1px solid #fff3;margin-bottom:6px;padding-bottom:4px;font-weight:700}.tooltip-row{align-items:center;gap:6px;margin-bottom:3px;display:flex}.tooltip-dot{border-radius:50%;width:8px;height:8px}.tooltip-name{color:#fffc;flex:1}.tooltip-value{text-align:right;font-weight:600}.tooltip-unit{color:#ffffff80;width:30px;font-size:9px}.graph-channel-selectors{padding:var(--spacing-xs);flex:1;overflow-y:auto}.channel-selector-item{padding:6px var(--spacing-xs);border-radius:var(--radius-sm);align-items:center;gap:6px;display:flex}.graph-dropdown{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);min-width:0;color:var(--color-text);flex:1;padding:2px 4px;font-size:12px}.channel-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.empty-state-small{text-align:center;color:var(--color-text-light);padding:15px;font-size:11px}@media (width<=768px){.graph-sidebar{flex:0 0 140px}}@media (height<=500px){.menu-section-label{padding:4px 8px 2px;font-size:10px}}#veAnalTab.active{gap:var(--spacing-md);height:100%;display:flex;position:relative;overflow:hidden}#veAnalWrapper{flex:1;min-width:0;height:100%;position:relative}#veAnalContainer{width:100%;height:100%;position:relative}#heatmap{width:100%;height:100%}#veAnalControls{box-sizing:border-box;flex:0 0 260px;width:260px;height:100%;overflow:hidden auto}#veAnalControlsHeader,#veAnalDrawerToggle,#veAnalDrawerBackdrop{display:none}#veAnalControlsTable{width:100%}#veAnalControlsTable td{vertical-align:middle;padding:6px}#veAnalControlsTable input[type=number],#veAnalControlsTable select{box-sizing:border-box;width:100%;max-width:100%}#veAnalStats{margin:var(--spacing-md) 0;padding:var(--spacing-md);background:var(--color-bg-lighter);border-radius:var(--radius-md);border:1px solid var(--color-border-light);color:var(--color-text-muted)}#veAnalStats>div:first-child{margin-bottom:var(--spacing-xs);color:var(--color-text-dark);font-weight:700}@media (width<=1024px){#veAnalTab.active{flex-direction:row;gap:0}#veAnalWrapper{flex:1;width:100%;min-width:0;height:100%}#veAnalContainer{width:100%;height:100%}#veAnalControls{z-index:200;background:var(--color-bg);width:280px;max-width:85vw;height:100%;padding:0 var(--spacing-md) var(--spacing-md);box-sizing:border-box;flex:none;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-4px 0 20px #0006}#veAnalControls.open{transform:translate(0)}#veAnalDrawerToggle{z-index:10;width:40px;height:40px;color:var(--color-tooltip-text);cursor:pointer;-webkit-backdrop-filter:blur(4px);background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:transform .1s;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0006}#veAnalDrawerToggle:active{transform:scale(.92)}#veAnalDrawerBackdrop{z-index:199;opacity:0;pointer-events:none;background:#00000073;transition:opacity .25s;display:block;position:fixed;inset:0}#veAnalDrawerBackdrop.open{opacity:1;pointer-events:auto}#veAnalControlsHeader{padding:var(--spacing-md) 0 var(--spacing-sm);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-sm);background:var(--color-bg);z-index:1;justify-content:space-between;align-items:center;font-size:15px;font-weight:600;display:flex;position:sticky;top:0}#veAnalDrawerClose{color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:22px;line-height:1}#veAnalDrawerClose:hover{background:var(--color-bg-alt)}}.diff-table td{border-bottom:1px solid var(--color-border-light);vertical-align:top;padding:8px 10px}.diff-row:hover{background-color:var(--color-bg-lighter)}.diff-array-container{margin-top:5px;font-family:monospace;font-size:12px;overflow-x:auto}.diff-delta-table{border-collapse:collapse;width:100%}.diff-delta-table td{border:1px solid var(--color-border-light);text-align:right;padding:2px 4px}.diff-delta-neg{color:var(--color-danger)}.diff-delta-pos{color:var(--color-success)}.diff-label{font-weight:700}.diff-1d-container{flex-direction:column;gap:10px;min-width:500px;display:flex}.diff-1d-chart{width:100%;height:200px}.diff-delta-header{font-weight:700}.scary-dialog{background:0 0;border:none;width:90%;max-width:600px;padding:0}.scary-dialog::backdrop{background:var(--scary-backdrop);backdrop-filter:blur(8px)}.scary-dialog .scary-content{background:var(--scary-bg);border:3px solid var(--scary-border);box-shadow:0 0 30px var(--scary-glow);color:var(--scary-text);border-radius:4px}.scary-header{background:var(--scary-header-bg);color:var(--scary-header-text);text-align:center;text-transform:uppercase;letter-spacing:2px;padding:20px;font-size:24px;font-weight:900;animation:2s infinite scary-pulse}@keyframes scary-pulse{0%{background-color:var(--scary-header-bg)}50%{background-color:var(--scary-pulse-end)}to{background-color:var(--scary-header-bg)}}.scary-body{padding:20px}.scary-text{margin-bottom:15px;font-size:16px;line-height:1.5}.scary-text strong{color:var(--scary-highlight);text-transform:uppercase}.scary-list{color:var(--scary-list);margin:15px 0 20px 20px}.scary-list li{margin-bottom:8px}.scary-button-container{border:1px dashed var(--scary-arena-border);background:#0000004d;border-radius:4px;height:300px;margin-top:20px;position:relative;overflow:hidden}.scary-btn{background:var(--scary-btn-bg);color:#fff;text-transform:uppercase;border:2px solid var(--scary-arena-border);cursor:pointer;white-space:nowrap;padding:15px 30px;font-weight:700;transition:transform .1s;position:absolute;box-shadow:0 4px 10px #00000080}.scary-btn:hover{background:var(--scary-btn-hover);box-shadow:0 0 15px var(--scary-border)}.scary-btn:active{background:var(--scary-btn-active)}.scary-counter{text-align:center;color:var(--scary-counter);height:15px;margin-top:10px;font-size:12px}.friendly-dialog{background:0 0;border:none;width:90%;max-width:600px;padding:0}.friendly-dialog::backdrop{background:var(--color-overlay);backdrop-filter:blur(4px)}.friendly-content{background:var(--color-bg-white);border:1px solid var(--color-border);color:var(--color-text);border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #0000001a}.friendly-header{background:var(--color-bg-light);color:var(--color-text-dark);text-align:center;border-bottom:1px solid var(--color-border-light);padding:24px;font-size:20px;font-weight:600}.friendly-body{max-height:70vh;padding:32px;overflow-y:auto}.friendly-text{color:var(--color-text-muted);margin-bottom:16px;font-size:16px;line-height:1.6}.friendly-text strong{color:var(--color-text-dark);font-weight:600}.friendly-list{color:var(--color-text-muted);margin:16px 0 24px 20px}.friendly-list li{margin-bottom:10px}.friendly-link{color:var(--color-primary);font-weight:500;text-decoration:none;transition:color .2s}.friendly-link:hover{color:var(--color-primary-hover);text-decoration:underline}.friendly-section{margin-top:20px}.friendly-section-title{color:var(--color-text-dark);margin-bottom:10px;font-size:16px}.friendly-footer{border-top:1px solid var(--color-border-light);background:var(--color-bg-light);justify-content:flex-end;padding:16px 32px;display:flex}.friendly-btn-primary{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 25px;font-weight:600;transition:background .2s}.friendly-btn-primary:hover{background:var(--color-primary-hover)}.friendly-text-small{margin-top:24px;font-size:14px;font-style:italic}.friendly-text-large{text-align:center;margin:20px 0;font-size:18px}.signature-box{background:var(--color-bg-light);border:1px solid var(--color-border-light);color:var(--color-text-dark);text-align:center;word-break:break-all;border-radius:6px;margin:15px 0;padding:12px;font-family:Courier New,Courier,monospace;font-weight:700}.button-group-center{justify-content:center;margin-top:30px;display:flex}.friendly-button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px 30px;font-weight:600;transition:background .2s}.friendly-button:hover{background:var(--color-primary-hover)}.beginner-hidden{display:none!important}.beginner-info-banner{background:var(--surface-light,#e8f4fd);border:1px solid var(--border-color,#c4dff0);color:var(--text-secondary,#4a6b82);border-radius:6px;align-items:center;gap:8px;margin:4px 8px 8px;padding:10px 14px;font-size:.8rem;display:flex}.beginner-info-icon{flex-shrink:0;font-size:1.1rem}.beginner-info-text{line-height:1.3}.beginner-connection-wizard{border:2px solid var(--color-primary,#4a9eff);border-radius:var(--radius-lg,10px);background:var(--color-bg-light,#1e2a38);margin-bottom:var(--spacing-xl,20px);padding:var(--spacing-xl,20px) var(--spacing-2xl,30px)}.beginner-wizard-inner{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.beginner-wizard-icon{font-size:2.5rem;line-height:1}.beginner-wizard-icon.spinning{animation:1.5s linear infinite beginner-spin;display:inline-block}@keyframes beginner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.beginner-wizard-title{font-size:var(--font-xl,22px);color:var(--color-text,#e0e0e0);margin:0;font-weight:700}.beginner-wizard-status{font-size:var(--font-base,14px);color:var(--color-text-secondary,#aaa);margin:0}.beginner-wizard-error{font-size:var(--font-sm,12px);color:var(--color-error,#ff6b6b);border-radius:var(--radius-sm,4px);box-sizing:border-box;background:#ff6b6b1a;border:1px solid #ff6b6b4d;width:100%;margin:0;padding:6px 12px}.beginner-wizard-steps{text-align:left;font-size:var(--font-base,14px);color:var(--color-text-secondary,#ccc);margin:0;padding-left:1.4em;line-height:1.8}.beginner-wizard-btn{font-size:var(--font-base,14px);margin-top:4px;padding:10px 28px}.beginner-connection-gate{background:var(--color-bg,#1a1a2e);z-index:10;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.beginner-gate-inner{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:480px;display:flex}.beginner-gate-icon{font-size:3rem;line-height:1}.beginner-gate-title{font-size:var(--font-xl,22px);color:var(--color-text,#e0e0e0);margin:0;font-weight:700}.beginner-gate-body{font-size:var(--font-base,14px);color:var(--color-text-secondary,#aaa);margin:0;line-height:1.6}.beginner-gate-btn{font-size:var(--font-base,14px);margin-top:8px;padding:10px 24px}.beginner-mode-active #serialConnectionSection .setup-section-row,.beginner-mode-active #deviceControlSection,.beginner-mode-active #loggingSection,.beginner-mode-active #debugSettingsSection,.beginner-mode-active #loadIniBtn,.beginner-mode-active #loadMsqBtn,.beginner-mode-active #loadLogBtn,.beginner-mode-active #browseTunesBtn{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .beginner-info-banner{color:#a8c8e8;background:#4285f41f;border-color:#4285f440}}[data-theme=dark] .beginner-info-banner{color:#a8c8e8;background:#4285f41f;border-color:#4285f440}.beginner-category-help{color:var(--text-muted,#888);padding:6px 14px 8px 28px;font-size:.75rem;font-style:italic;line-height:1.4}.beginner-help{border-left:3px solid #0000;border-radius:4px;margin-top:4px;padding:6px 10px;font-size:.78rem;line-height:1.5}.beginner-help-info{background:var(--surface-light,#f0f7ff);color:var(--text-secondary,#4a6b82);border-left-color:#4285f4}.beginner-help-warning{color:#7a5d1e;background:#fffbf0;border-left-color:#f5a623}.beginner-help-critical{color:#822727;background:#fff5f5;border-left-color:#e53e3e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .beginner-help-info{color:#a8c8e8;background:#4285f414}:root:not([data-theme=light]) .beginner-help-warning{color:#e6c97a;background:#f5a6231a}:root:not([data-theme=light]) .beginner-help-critical{color:#f5a0a0;background:#e53e3e1a}}[data-theme=dark] .beginner-help-info{color:#a8c8e8;background:#4285f414}[data-theme=dark] .beginner-help-warning{color:#e6c97a;background:#f5a6231a}[data-theme=dark] .beginner-help-critical{color:#f5a0a0;background:#e53e3e1a}.beginner-help-text{display:block}.beginner-common-mistake{color:#c05621;border-top:1px dashed #0000001a;margin-top:4px;padding-top:4px;font-size:.74rem;font-weight:500}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .beginner-common-mistake{color:#f0b860;border-top-color:#ffffff1a}}[data-theme=dark] .beginner-common-mistake{color:#f0b860;border-top-color:#ffffff1a}.beginner-range-warning{color:#c53030;margin-top:4px;font-size:.74rem;font-weight:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .beginner-range-warning{color:#fc8181}}[data-theme=dark] .beginner-range-warning{color:#fc8181}.beginner-value-warning{box-shadow:0 0 0 1px #f5a6234d;border-color:#f5a623!important}.beginner-value-danger{box-shadow:0 0 0 1px #e53e3e4d;border-color:#e53e3e!important}.beginner-mode-toggle-section summary{font-weight:600}.start-doctor-panel{min-height:100%;color:var(--color-text);flex-direction:column;gap:20px;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.sd-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.sd-header-left{align-items:center;gap:10px;display:flex}.sd-title{letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:700}.sd-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sd-btn{border:1px solid var(--color-border);background:var(--color-bg-light);color:var(--color-text);cursor:pointer;white-space:nowrap;border-radius:5px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s}.sd-btn:hover:not(:disabled){background:var(--color-bg-lighter)}.sd-btn:disabled{opacity:.35;cursor:default}.sd-btn-start{border-color:var(--color-success);color:var(--color-success)}.sd-btn-start:hover:not(:disabled){background:#1e8e3e1f}.sd-btn-stop{border-color:var(--color-danger);color:var(--color-danger)}.sd-btn-stop:hover:not(:disabled){background:#d930251f}.sd-phase-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--sd-phase-idle-bg);color:var(--sd-phase-idle-text);border-radius:12px;padding:4px 14px;font-size:.78rem;font-weight:700;transition:background .3s,color .3s;display:inline-block}.sd-phase-idle{background:var(--sd-phase-idle-bg);color:var(--sd-phase-idle-text)}.sd-phase-cranking{background:var(--sd-phase-cranking-bg);color:var(--sd-phase-cranking-text)}.sd-phase-running{background:var(--sd-phase-running-bg);color:var(--sd-phase-running-text)}.sd-phase-failed{background:var(--sd-phase-failed-bg);color:var(--sd-phase-failed-text)}.sd-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-light);margin-bottom:10px;font-size:.75rem;font-weight:600}.sd-body{grid-template-columns:1fr 1fr;gap:20px;display:grid}.sd-diagnostics{flex-direction:column;min-width:0;display:flex}.sd-cards-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sd-card{border:1px solid var(--color-border);border-left:3px solid var(--color-border);background:var(--color-bg-white);border-radius:8px;padding:12px 14px;transition:border-color .3s,box-shadow .3s}.sd-card:hover{box-shadow:var(--shadow-sm)}.sd-card-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.sd-card-icon{font-size:1.05rem}.sd-card-label{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text);flex:1;font-size:.88rem;font-weight:600;overflow:hidden}.sd-card-status-icon{font-size:1rem}.sd-card-message{color:var(--color-text);margin-bottom:3px;font-size:.84rem;font-weight:500;line-height:1.35}.sd-card-detail{color:var(--color-text-light);word-break:break-word;font-size:.76rem;line-height:1.35}.sd-status-pending{border-left-color:var(--color-border)}.sd-status-ok{border-left-color:var(--color-success)}.sd-status-ok .sd-card-message{color:var(--sd-status-ok-text)}.sd-status-warn{border-left-color:var(--sd-status-warn-border)}.sd-status-warn .sd-card-message{color:var(--sd-status-warn-text);font-weight:600}.sd-status-fail{border-left-color:var(--color-danger)}.sd-status-fail .sd-card-message{color:var(--sd-status-fail-text);font-weight:600}.sd-vitals{flex-direction:column;min-width:0;display:flex}.sd-vitals-list{flex-direction:column;gap:8px;display:flex}.sd-vital{border:1px solid var(--color-border);background:var(--color-bg-white);border-radius:8px;align-items:center;gap:12px;padding:8px 12px;transition:border-color .2s;display:flex}.sd-vital:hover{border-color:var(--color-border-lighter)}.sd-vital-info{flex-shrink:0;align-items:baseline;gap:5px;min-width:110px;display:flex}.sd-vital-name{text-transform:uppercase;letter-spacing:.04em;min-width:54px;font-size:.78rem;font-weight:700}.sd-vital-value{font-variant-numeric:tabular-nums;color:var(--color-text-dark);text-align:right;min-width:44px;font-size:1.15rem;font-weight:700}.sd-vital-unit{color:var(--color-text-lighter);font-size:.72rem;font-weight:500}.sd-vital-spark{background:var(--color-bg-light);border-radius:4px;flex:1;min-width:80px;height:52px;position:relative;overflow:hidden}.sd-graph-section{flex-direction:column;display:flex}.sd-graph-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.sd-graph-title{margin:0;font-size:.92rem;font-weight:600}.sd-graph-legend{align-items:center;gap:12px;display:flex}.sd-legend-chip{color:var(--color-text-light);align-items:center;gap:4px;font-size:.76rem;display:flex}.sd-legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.sd-graph-container{border:1px solid var(--color-border);background:var(--color-bg-light);border-radius:6px;height:300px;position:relative;overflow:hidden}@media (width<=720px){.sd-body,.sd-cards-grid{grid-template-columns:1fr}.sd-vital-info{min-width:90px}.sd-graph-container{height:220px}}.sd-diagnosis-overlay{z-index:9000;backdrop-filter:blur(3px);background:#0000008c;justify-content:center;align-items:center;animation:.25s ease-out sd-fade-in;display:flex;position:fixed;inset:0}.sd-diagnosis-overlay.sd-hidden{display:none}@keyframes sd-fade-in{0%{opacity:0}to{opacity:1}}.sd-diagnosis-panel{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:12px;width:90%;max-width:620px;max-height:80vh;padding:24px 28px;animation:.3s ease-out sd-slide-up;overflow-y:auto;box-shadow:0 8px 32px #00000059}@keyframes sd-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.sd-diagnosis-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.sd-diagnosis-title{margin:0;font-size:1.25rem;font-weight:700}.sd-btn-dismiss{border:1px solid var(--color-border);background:var(--color-bg-light);color:var(--color-text);cursor:pointer;border-radius:5px;padding:6px 14px;font-size:.82rem;font-weight:500;transition:background .15s}.sd-btn-dismiss:hover{background:var(--color-bg-lighter)}.sd-diagnosis-summary{border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;font-size:.95rem;font-weight:600;line-height:1.4;display:flex}.sd-diagnosis-ok{color:var(--color-success);background:#1e8e3e1a;border:1px solid #1e8e3e40}.sd-diagnosis-issues{color:var(--color-danger);background:#d9302514;border:1px solid #d9302533}.sd-diag-icon{flex-shrink:0;font-size:1.35rem}.sd-diagnosis-problems{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.sd-diagnosis-card{border:1px solid var(--color-border);border-left:4px solid var(--color-border);background:var(--color-bg-white);border-radius:8px;padding:14px 16px}.sd-diagnosis-card.sd-diagnosis-fail{border-left-color:var(--color-danger)}.sd-diagnosis-card.sd-diagnosis-warn{border-left-color:var(--sd-status-warn-border)}.sd-diagnosis-card.sd-diagnosis-ok{border-left-color:var(--color-success)}.sd-diag-card-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.sd-diag-rank{color:var(--color-text-light);background:var(--color-bg-light);border-radius:10px;padding:2px 8px;font-size:.78rem;font-weight:700}.sd-diag-severity,.sd-diag-type{font-size:.78rem;font-weight:600}.sd-diag-card-title{color:var(--color-text);margin-bottom:4px;font-size:.95rem;font-weight:700}.sd-diag-card-detail{color:var(--color-text-light);margin-bottom:4px;font-size:.84rem;line-height:1.45}.sd-diag-card-advice{color:var(--color-text-lighter);margin-bottom:6px;font-size:.82rem;font-style:italic;line-height:1.4}.sd-diag-card-advice:empty{display:none}.sd-diag-card-action{margin-top:6px}.sd-diag-fix-link{border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:5px;padding:5px 14px;font-size:.82rem;font-weight:600;transition:background .15s;display:inline-block}.sd-diag-fix-link:hover{background:#1976d21a}.sd-diagnosis-footer{color:var(--color-text-lighter);border-top:1px solid var(--color-border);text-align:center;padding-top:8px;font-size:.8rem}[data-theme=dark] .sd-status-ok .sd-card-message,:root:not([data-theme=light]) .sd-status-ok .sd-card-message{color:var(--color-success)}[data-theme=dark] .sd-status-warn .sd-card-message,:root:not([data-theme=light]) .sd-status-warn .sd-card-message{color:var(--sd-status-warn-text)}[data-theme=dark] .sd-status-fail .sd-card-message,:root:not([data-theme=light]) .sd-status-fail .sd-card-message{color:var(--color-danger)}.sd-thresholds-drawer{border:1px solid var(--color-border);background:var(--color-bg-white);border-radius:10px;padding:0;animation:.2s ease-out sd-drawer-open;overflow:hidden}.sd-thresholds-drawer.sd-hidden{display:none}@keyframes sd-drawer-open{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.sd-thresh-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-light);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.sd-thresh-title{margin:0;font-size:1rem;font-weight:700}.sd-thresh-actions{gap:6px;display:flex}.sd-thresh-hint{color:var(--color-text-lighter);background:var(--color-bg-light);border-bottom:1px solid var(--color-border);padding:8px 18px;font-size:.78rem}.sd-thresh-body{flex-direction:column;gap:16px;max-height:460px;padding:14px 18px;display:flex;overflow-y:auto}.sd-thresh-group{flex-direction:column;gap:6px;display:flex}.sd-thresh-group-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);border-bottom:1px solid var(--color-border);padding-bottom:4px;font-size:.82rem;font-weight:700}.sd-thresh-group-icon{margin-right:4px}.sd-thresh-grid{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}@media (width<=720px){.sd-thresh-grid{grid-template-columns:1fr}}.sd-thresh-row{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.sd-thresh-label{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8rem;overflow:hidden}.sd-thresh-input-wrap{flex-shrink:0;align-items:center;gap:4px;display:flex}.sd-thresh-input{border:1px solid var(--color-border);background:var(--color-bg-white);width:72px;color:var(--color-text);font-variant-numeric:tabular-nums;text-align:right;border-radius:4px;padding:4px 6px;font-size:.82rem;transition:border-color .15s,box-shadow .15s}.sd-thresh-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #1976d226}.sd-thresh-input.sd-thresh-modified{border-color:var(--sd-status-warn-border);background:#e3a0000f}.sd-thresh-unit{color:var(--color-text-lighter);min-width:28px;font-size:.72rem}.sd-btn-thresholds{border-color:var(--color-text-lighter);color:var(--color-text-light)}.sd-btn-thresholds:hover:not(:disabled){background:#6464641a}.sd-btn-thresh-reset,.sd-btn-thresh-close{padding:4px 10px;font-size:.78rem}body .hidden{display:none}.flex-container{display:flex}.margin-left-auto{margin-left:auto}.flex-grow{flex-grow:1}.hidden-container{display:none}body .visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.status-indicator{align-self:center;margin-left:10px}
/*# sourceMappingURL=public.53624c73.css.map */
