:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1416;--surface:#172124;--surface-2:#1d2a2d;--line:#3c4b4e;--text:#e8efeb;--muted:#b3c3bd;--subtle:#8fa39b;--amber:#d1a267;--green:#9dc5ad;--terminal:#0a1112;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html,body{background:var(--bg);min-width:320px;margin:0}body{color:var(--text);font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}[hidden]{display:none!important}.app-shell{background:var(--bg);grid-template-rows:60px minmax(0,1fr) 31px;height:100dvh;min-height:690px;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand-symbol{border:1px solid var(--amber);width:29px;height:29px;color:var(--amber);font:700 11px var(--mono);letter-spacing:-.08em;place-items:center;display:grid}.brand strong,.brand span{display:block}.brand strong{font-size:16px;font-weight:650;line-height:1.2}.brand div>span{color:var(--subtle);font-size:11px}.service-address{color:var(--muted);font-size:12px}.service-address code,.statusbar code{font:12px var(--mono);color:var(--text)}.workspace{grid-template-columns:minmax(0,1fr) 442px;min-height:0;display:grid}.process-panel{border-right:1px solid var(--line);grid-template-rows:63px minmax(260px,1fr) 237px;min-width:0;min-height:0;display:grid}.panel-heading{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:0 18px;display:flex}.panel-heading h1{margin:0;font-size:17px;font-weight:650;line-height:1.2}.panel-heading p{color:var(--muted);margin:4px 0 0;font-size:12px}.secondary-button,.primary-button{white-space:nowrap;border-radius:4px;min-height:35px;padding:6px 11px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.secondary-button{color:var(--text);background:0 0;border:1px solid #71837d}.secondary-button:hover{background:#293a3b}.primary-button{color:#1a160f;border:1px solid var(--amber);background:var(--amber)}.primary-button:hover{background:#e4b77e;border-color:#e4b77e}.text-button{color:var(--green);background:0 0;border:0;padding:5px 2px;font-size:12px}.text-button:hover{text-decoration:underline}.visual-stage{background:#091316;min-width:0;min-height:0;position:relative;overflow:hidden}.visual-stage canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.model-caption{z-index:1;background:var(--surface);border-top:1px solid var(--line);min-height:31px;color:var(--subtle);pointer-events:none;justify-content:space-between;align-items:center;gap:10px;padding:4px 14px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.model-caption #selected-sensor{color:var(--text);font-weight:600}.scene-fallback{background:var(--surface);border:1px solid var(--line);max-width:310px;padding:12px;font-size:12px;position:absolute;top:16px;left:16px}.scene-fallback strong{display:block}.scene-fallback p{color:var(--muted);margin:5px 0 0}.probe-panel{background:var(--surface);border-top:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.probe-heading{justify-content:space-between;align-items:baseline;gap:12px;padding:11px 18px 8px;display:flex}.probe-heading h2{margin:0;font-size:14px;font-weight:650}.probe-heading span{color:var(--subtle);font-size:11px}.probe-table-scroll{flex:1;min-height:0;padding:0 18px 2px;overflow:auto}.probe-table{border-collapse:collapse;table-layout:fixed;width:100%}.probe-table th{color:var(--subtle);text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 8px;font-size:11px;font-weight:600}.probe-table td{border-bottom:1px solid #2c3b3e;height:20px;padding:1px 8px;font-size:12px}.probe-table td:first-child{border-left:3px solid #0000}.probe-table tr.selected td{background:#304037}.probe-table tr.selected td:first-child{border-left-color:var(--amber)}.probe-table th:first-child,.probe-table td:first-child{width:76px}.probe-table th:nth-child(2),.probe-table td:nth-child(2){width:105px}.probe-table th:nth-child(4),.probe-table td:nth-child(4){text-align:right;width:60px}.probe-table .sensor-id,.probe-table .sensor-reading{font:12px var(--mono)}.probe-table .sensor-reading{white-space:nowrap;text-overflow:ellipsis;color:#b9d7c2;overflow:hidden}.sensor-button{color:var(--text);background:#202e2f;border:1px solid #687d73;border-radius:3px;padding:1px 7px;font-size:11px;line-height:1.1}.sensor-button:hover{background:#344745}.console{background:var(--surface);flex-direction:column;min-width:0;min-height:0;padding:16px;display:flex;overflow:auto}.console-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.console-heading h2{margin:0;font-size:17px;font-weight:650;line-height:1.25}.console-heading p{color:var(--subtle);margin:4px 0 0;font-size:12px}.console-heading #connection-status{color:var(--muted);white-space:nowrap;padding-top:2px;font-size:12px}.console-heading #connection-status[data-state=connected]{color:var(--green)}.console-heading #connection-status[data-state=native\ offline],.console-heading #connection-status[data-state=link\ failure],.console-heading #connection-status[data-state=disconnected]{color:#e5a9a1}.session-actions{gap:16px;margin:11px 0 8px;display:flex}.terminal-wrap{background:var(--terminal);border:1px solid #3e5650;border-radius:4px;flex-direction:column;flex:1;min-height:150px;display:flex;overflow:hidden}.terminal-head{color:#b2c7b8;border-bottom:1px solid #314a42;padding:7px 11px;font-size:11px;font-weight:600}.terminal-wrap pre{color:#d7e8d9;min-height:0;font:12px/1.48 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;flex:1;margin:0;padding:10px 11px;overflow:auto}.command-form{margin-top:12px}.command-form label,.controller-block label,.hex-form label{margin-bottom:6px;font-size:12px;font-weight:600;display:block}.command-row,.control-row{align-items:center;gap:7px;display:flex}.command-row input,.control-row input,.hex-form textarea{color:var(--text);background:#101a1b;border:1px solid #6c8078;border-radius:4px}.command-row input:focus,.control-row input:focus,.hex-form textarea:focus{outline:2px solid var(--amber);outline-offset:1px}.command-row input{min-width:0;height:35px;font:12px var(--mono);flex:1;padding:0 9px}.command-row input::placeholder,.hex-form textarea::placeholder{color:var(--subtle)}.controller-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;margin-top:11px;padding:9px 0;display:grid}.controller-block{min-width:0;padding-right:10px}.controller-block+.controller-block{border-left:1px solid var(--line);padding-left:12px;padding-right:0}.controller-block label{color:var(--muted);font-size:11px}.control-row input{width:65px;height:34px;font:12px var(--mono);padding:0 7px}.control-row .secondary-button{min-height:34px}.frame-controls{justify-content:space-between;align-items:center;gap:8px;min-height:31px;display:flex}.frame-controls #frame-status{color:var(--subtle);text-align:right;font-size:11px}.hex-form{margin-top:7px}.hex-form textarea{resize:vertical;width:100%;min-height:60px;font:12px/1.5 var(--mono);padding:8px;display:block}.hex-form button{margin-top:7px}.downloads{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-top:10px;padding-top:10px;display:flex}.downloads h3{margin:0 6px 0 0;font-size:12px;font-weight:600}.downloads a{font:11px var(--mono);color:#b8d9c2;text-underline-offset:2px;text-decoration:underline}.downloads a:hover{color:#e1f1e5}.statusbar{background:var(--surface);border-top:1px solid var(--line);color:var(--subtle);justify-content:space-between;align-items:center;gap:12px;padding:0 18px;font-size:11px;display:flex}@media (width<=1050px){.workspace{grid-template-columns:minmax(0,1fr) 390px}.probe-heading span{display:none}.console{padding:12px}.controller-grid{grid-template-columns:1fr}.controller-block+.controller-block{border-left:0;border-top:1px solid var(--line);margin-top:8px;padding:8px 0 0}}@media (width<=850px){.app-shell{height:auto;min-height:100dvh;display:block}.topbar{height:60px}.workspace{display:block}.process-panel{height:680px}.console{border-top:1px solid var(--line);min-height:550px}.terminal-wrap{min-height:260px}.statusbar{min-height:31px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
