:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:12px;color:#263343;background:#eef1f5;color-scheme:light;--blue:#2669b8;--line:#ced6e0;--muted:#68778a;--panel:#f5f7fa;--danger:#ac3232;--green:#277646;--amber:#93600a}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid #bcc7d4;border-radius:3px;background:linear-gradient(#fff,#f1f4f8);color:#283d54;padding:5px 10px;min-height:28px;white-space:nowrap;cursor:pointer}button:hover:not(:disabled){background:#e9f0fa;border-color:#8ea8c9}button:active:not(:disabled){background:#dce8f7}button:disabled{opacity:.46;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #2771c7;outline-offset:2px}.primary{background:#286cb9;color:white;border-color:#215e9e}.primary:hover:not(:disabled){background:#205a9d;color:white}.quiet{background:transparent}.icon-button{padding:0;width:26px;min-height:26px;font-size:16px}.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}input,select{border:1px solid #bac5d3;border-radius:3px;background:white;color:#273748;min-height:28px;padding:4px 7px;min-width:0}input[type=checkbox]{min-height:0;accent-color:var(--blue);margin:0;width:13px;height:13px}input:disabled,select:disabled{background:#eef1f5;color:#8190a1}[hidden]{display:none!important}.application{height:100dvh;min-height:620px;display:flex;flex-direction:column;overflow:hidden}.titlebar{height:45px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#e5eaf1;border-bottom:1px solid #c8d2de}.identity{display:flex;align-items:center;gap:10px}.identity strong{font-size:15px;font-weight:600;color:#273b51}.product{font-size:11px;color:#718097;padding-left:10px;border-left:1px solid #c4cdd8}.app-icon{display:grid;place-items:center;width:23px;height:24px;background:#366b9d;color:white;font-size:17px;font-weight:700;border-radius:4px 4px 8px 4px}.connection-indicator{display:flex;align-items:center;gap:6px;color:#5d6f83;font-size:11px}.dot{width:7px;height:7px;border-radius:50%;background:#91a0b0}.dot.ready{background:var(--green)}.dot.error{background:var(--danger)}.toolbar{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:7px 12px;background:#fafbfd;border-bottom:1px solid var(--line)}.toolbar button span{font-size:14px;margin-right:4px}.separator{height:24px;width:1px;background:var(--line);margin:0 5px}.toolbar-spacer{flex:1}.message{min-height:30px;display:flex;align-items:center;padding:7px 15px;font-size:11px;background:#eef4fc;color:#446587;border-bottom:1px solid #d4e0ef;line-height:1.4}.message.warning,.badge.warning{background:#fff3d7;color:#815507;border-color:#e7d5a9}.message.error{background:#fff0ed;color:#9c3431;border-color:#eac1ba}.message.success{background:#edf7ef;color:#286c3a;border-color:#c5ddca}.help{padding:12px 16px;line-height:1.65;background:#fff;border-bottom:1px solid var(--line);max-width:none}.badge{font-size:10px;padding:3px 6px;border:1px solid;border-radius:3px}.workbench{display:grid;grid-template-columns:232px minmax(0,1fr);flex:1;min-height:0}.sidebar{background:#eef2f7;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}.sidebar-section{border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:center;gap:8px;min-height:37px;padding:6px 12px;background:#e7edf4;border-bottom:1px solid #d1dae5}.section-title h2{margin:0;font-size:11px;font-weight:650}.sidebar .section-title{justify-content:space-between}.section-title .subtle{font-size:10px}.tree-root{padding:11px 12px 7px;font-weight:600;font-size:11px;display:flex;gap:7px;align-items:center}.tree-root .subtle{font-weight:400;margin-left:auto;font-size:10px}.devices{padding:0 6px 8px}.device-button{display:flex;align-items:center;text-align:left;gap:8px;padding:7px 8px 7px 19px;width:100%;border:1px solid transparent;background:transparent;white-space:normal}.device-button.selected{background:#d9e8fa;border-color:#b5cdec}.device-mark{width:20px;height:26px;border:1px solid #8ea5bc;border-radius:3px;background:#f9fbfd;position:relative;flex-shrink:0}.device-mark:before{content:"";position:absolute;top:3px;left:4px;right:4px;height:3px;background:#73a082}.device-name{display:block;font-size:11px;font-weight:600;overflow-wrap:anywhere}.device-model{font-size:10px;color:var(--muted);margin-top:3px}.empty-small{padding:8px 13px 15px;margin:0;color:#768699;font-size:11px;line-height:1.6}.device-detail{padding:1px 13px 13px}.device-detail dl{display:grid;grid-template-columns:74px minmax(0,1fr);font-size:10px;line-height:1.8;gap:2px;margin:6px 0 12px}.device-detail dt{color:var(--muted)}.device-detail dd{margin:0;overflow-wrap:anywhere}.wide{width:100%}.bus-config{display:grid;grid-template-columns:1fr;gap:7px;padding-top:13px}.bus-config>label:not(.check-label){font-size:10px;color:#596c82}.check-label{display:flex;align-items:center;gap:6px;white-space:nowrap}.bus-config .check-label{padding:4px 0}.button-pair{display:flex;gap:6px}.button-pair button{flex:1;font-size:11px;padding-left:6px;padding-right:6px}.database-section{flex:1;min-height:130px}.database-name{font-weight:600;font-size:11px;overflow-wrap:anywhere;margin-bottom:5px}.database-list{list-style:none;padding:0;margin:12px 0 0;font-size:10px}.database-list li{padding:5px 0;border-top:1px solid #dce3ec;overflow-wrap:anywhere}.database-list code{display:inline-block;color:#59748e;margin-right:5px}.database-list span{color:#526479}.database-section #database-detail{padding:13px}.database-section details{font-size:10px;line-height:1.5;margin-top:10px;color:#8c651b}.database-section details ul{padding-left:16px;max-height:130px;overflow:auto}.sidebar-foot{display:flex;justify-content:space-between;color:#7a8898;padding:10px 12px;font-size:10px}.workspace{min-width:0;min-height:0;display:flex;flex-direction:column;background:white}.workspace-tabs{display:flex;align-items:center;background:#eaf0f7;border-bottom:1px solid #bdccdf;min-height:37px;padding:0 10px 0 0;flex-shrink:0}.tab{height:37px;min-width:95px;border:0;border-right:1px solid #d1dae5;background:transparent;border-radius:0;font-weight:500;color:#5b6d82}.tab.active{background:white;color:#225d9e;box-shadow:inset 0 2px 0 #3479c4;border-bottom:1px solid white;margin-bottom:-1px}.tab-count{font-size:10px;background:#e9eef5;border-radius:3px;padding:1px 5px;margin-left:4px;color:#71849c}.capture-label{color:#728199;font-size:10px}.capture-label.live{color:#277646}.view-tools{display:flex;align-items:center;gap:7px;padding:7px 10px;border-bottom:1px solid #dce2ea;background:#fafbfd;flex-shrink:0}.view-tools button{font-size:11px;min-height:26px;padding:4px 9px}.filter-field{display:flex;align-items:center;border:1px solid #c6d0dd;border-radius:3px;background:white;max-width:310px;flex:1;min-width:110px;padding-left:7px}.filter-field>span{font-size:18px;color:#7c8c9e}.filter-field input{border:0;min-height:25px;flex:1;background:transparent;font-size:11px}.view-tools>.subtle{font-size:10px;margin-left:auto;white-space:nowrap}.subtle{color:var(--muted)}.view{position:relative;flex:1;min-height:130px;overflow:hidden;background:white}.table-scroll{overflow:auto;height:100%;position:relative}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap;text-align:left}th{position:sticky;top:0;background:#f0f3f8;color:#66788e;font-size:10px;font-weight:500;padding:8px 10px;border-bottom:1px solid #ced8e5;z-index:1}td{padding:5px 10px;border-bottom:1px solid #eef1f5;line-height:1.35}tbody tr:nth-child(even){background:#f9fbfd}tbody tr:hover{background:#edf4fc}.trace-table td{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:11px;color:#445569}.trace-table th:first-child,.trace-table td:first-child{width:82px;color:#8694a6}.trace-table th:nth-child(3){width:42px}.trace-table td:nth-child(3){color:#447950;font-size:10px}.trace-table td:nth-child(4){font-weight:600;color:#25598b}.trace-table th:nth-child(6){width:40px}.trace-table th:nth-child(7){min-width:240px}.trace-table td:last-child{color:#8f6262}.empty-state{position:absolute;inset:45px 20px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;color:#66778c}.empty-state h2{font-size:15px;font-weight:500;color:#455c77;margin:14px 0 7px}.empty-state p{max-width:470px;font-size:11px;line-height:1.65;margin:3px 0}.empty-state p.subtle{font-size:10px;color:#8b98a9}.trace-glyph{width:51px;height:38px;border:1px solid #c2d0e2;border-radius:3px;display:flex;flex-direction:column;gap:5px;padding:7px 8px;background:#f4f8fd}.trace-glyph i{display:block;height:1px;background:#b4c6dd;width:100%}.trace-glyph i:nth-child(2){width:72%}.trace-glyph i:nth-child(4){width:83%}.transmit{flex-shrink:0;background:#f5f7fa;border-top:1px solid #bdcada}.transmit .section-title{min-height:32px;padding:4px 12px}.transmit form{padding:10px 12px}.tx-fields{display:flex;align-items:flex-end;gap:10px}.tx-fields>label:not(.check-label){display:flex;flex-direction:column;gap:5px;color:#6a7d93;font-size:10px}.tx-fields label:first-child{width:94px}.tx-data{flex:1;max-width:440px;min-width:125px}.tx-data input{font-size:11px}.tx-dlc{width:45px}.tx-fields .check-label{padding-bottom:7px;font-size:10px}.tx-secondary{display:flex;align-items:center;gap:8px;margin-top:9px}.interval-label{display:flex;align-items:center;gap:5px;font-size:10px;color:#6a7d93}.interval-label input{width:71px;min-height:25px;font-size:11px}.tx-secondary button{min-height:25px;font-size:10px;padding:4px 8px}.tx-result{font-size:10px;color:#7b8797;line-height:1.4;margin-left:5px}.tx-result.error{color:var(--danger)}.tx-result.success{color:var(--green)}.statusbar{display:flex;align-items:center;gap:17px;min-height:27px;flex-shrink:0;padding:5px 12px;background:#e2e9f2;border-top:1px solid #bdcada;color:#5c7088;font-size:10px;white-space:nowrap}.statusbar b{font-weight:600;margin-left:4px}.status-divider{height:12px;width:1px;background:#bcc9d9}.loss-status.has-loss{color:var(--danger)}.plot-view{overflow:auto;background:#f9fbfd}.plot-caption{padding:9px 12px;font-size:10px;color:#5f728a;border-bottom:1px solid #e0e7f0;display:flex;justify-content:space-between;gap:15px}.plot-caption span{color:#8694a5}.plots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.plot-panel{border:1px solid #cbd6e4;background:#fff;min-height:165px;padding:9px}.plot-panel h3{font-size:11px;font-weight:500;margin:0 0 4px;color:#405b7b;overflow-wrap:anywhere}.plot-panel canvas{display:block;width:100%;height:140px}.signals-table th:first-child{width:45px}.signals-table td:nth-child(4){font-variant-numeric:tabular-nums;font-weight:600}.signal-message{display:block;color:#8594a7;font-size:9px;margin-top:2px}.empty-state .inline-action{pointer-events:auto}@media(min-width:1600px){.workbench{grid-template-columns:255px minmax(0,1fr)}.trace-table td{padding-top:6px;padding-bottom:6px}.plots{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1050px){.workbench{grid-template-columns:200px minmax(0,1fr)}.sidebar .device-detail{padding:1px 10px 10px}.tx-fields{flex-wrap:wrap;gap:8px}.tx-data{max-width:none}.tx-fields .check-label{padding-bottom:7px}.tx-fields label:first-child{width:80px}.tx-result{max-width:260px}.statusbar{gap:10px}.statusbar #status-storage{display:none}.plots{grid-template-columns:1fr}.product{display:none}.plot-caption{display:block}.plot-caption span{display:block;margin-top:4px}}@media(max-width:700px){.application{height:auto;min-height:100dvh;overflow:visible}.titlebar{padding:0 10px}.identity{gap:6px}.identity strong{font-size:14px}.connection-indicator{font-size:10px}.toolbar{flex-wrap:wrap;padding:6px 8px}.toolbar button{font-size:11px}.toolbar-spacer{min-width:0}.toolbar .separator{display:none}.workbench{display:flex;flex-direction:column}.sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:330px;display:grid;grid-template-columns:1fr 1fr;overflow:auto}.devices-section{grid-row:1 / 3}.sidebar-foot{display:none}.database-section{border-left:1px solid var(--line)}.sidebar .device-detail dl{margin:4px 0 7px}.device-detail .bus-config{grid-template-columns:1fr 1fr;gap:6px;padding-top:8px}.bus-config>label:first-child{align-self:center}.bus-config .check-label,.bus-config>.wide,.bus-config .button-pair{grid-column:1/-1}.workspace{height:650px;flex:none}.workspace-tabs .tab{min-width:83px}.view-tools{flex-wrap:wrap}.view-tools>.subtle{display:none}.filter-field{max-width:none}.transmit form{padding:9px}.tx-fields .tx-data{min-width:130px}.tx-secondary{flex-wrap:wrap}.tx-result{max-width:none;flex-basis:100%;margin:0;padding-top:3px}.statusbar{position:sticky;bottom:0;flex-wrap:wrap;gap:7px 12px;font-size:9px}.statusbar .toolbar-spacer,.statusbar .status-divider{display:none}.statusbar #status-history{display:none}.empty-state{inset:45px 12px 12px}.empty-state p{font-size:10px}.badge{font-size:9px}.section-title{padding:5px 9px}.connection-indicator .dot{display:none}}

.capture-notices{flex-shrink:0;max-height:115px;overflow:auto;background:#fff6e5;color:#8a611c;border-bottom:1px solid #e5d5b4;font-size:10px}.capture-notices summary{padding:7px 12px;cursor:pointer}.capture-notices ul{margin:0;padding:0 20px 8px 30px;line-height:1.6}.capture-notices li{overflow-wrap:anywhere}

.manual-connection{margin-top:8px;font-size:11px}.manual-connection summary{cursor:pointer}.manual-connection p{margin:8px 0}.manual-connection input{width:90px;margin-right:7px}.manual-connection button{font-size:11px}
