/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.hidden{display:none}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg-page:#e6f2ff;--bg-page-soft:#d9ebfc;--bg-primary:#e6f2ff;--bg-secondary:#ddeef9;--bg-card:#fff;--bg-card-soft:#f8fbff;--text-main:#000;--text-muted:#666;--line:#e5e5e5;--line-strong:#000;--link:#06c;--link-focus-ring:#0066cc40;--accent:gold;--accent-strong:#ffc700;--brand-headline:#0897e6;--brand-headline-strong:#0278b8;--danger:#c62828;--success:#2e7d32;--warn:#e65100;--offline:#5f6368;--viewport-bg:#03070a;--lidar-bg:#07090c;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:linear-gradient(160deg, var(--bg-page) 0%, var(--bg-page-soft) 55%, var(--bg-page) 100%);min-height:100svh;color:var(--text-main);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h1,h2,h3,h4,h5,h6{font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--link)}a:hover{color:var(--brand-headline-strong)}#root{min-height:100svh}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.page-loading{place-items:center;min-height:100svh;display:grid}.auth-panel,.preconnect-card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;width:min(560px,100% - 2rem);margin:3rem auto;padding:1.5rem;box-shadow:0 4px 20px #0000001a}.preconnect-stack{flex-direction:column;gap:1rem;width:min(560px,100% - 2rem);margin:3rem auto;display:flex}.preconnect-stack .preconnect-card{width:100%;margin:0}.auth-headline{color:var(--brand-headline);font-weight:600;line-height:1.2}.auth-headline .headline-brand{color:var(--brand-headline-strong)}.auth-panel h1,.dashboard-shell h1,.connected-root h3,.connected-root h4,.preconnect-card h2{margin:0 0 .7rem}.preconnect-card h2,.auth-panel h2{color:var(--brand-headline);font-weight:600}.panel-subtext,.warn-text{color:var(--text-muted)}.warn-text{border-left:3px solid var(--warn);padding-left:.65rem}.auth-form{gap:1rem;margin:1rem 0;display:grid}.auth-form>.primary-btn,.auth-form>.ghost-btn{box-sizing:border-box;width:100%}.auth-form-alt-action{font-weight:600}.auth-form label,.form-grid label,.control-drawer label{color:var(--text-muted);gap:.35rem;font-size:.95rem;display:grid}input,select,button{font:inherit}input,select{border:1px solid var(--line-strong);background:var(--bg-card);color:var(--text-main);border-radius:6px;padding:.65rem .75rem}input:focus,select:focus{outline:2px solid var(--link-focus-ring);border-color:var(--link)}input[type=range]{height:auto;accent-color:var(--link);background:0 0;border:none;border-radius:0;padding:.35rem 0}input[type=range]:focus{border-color:#0000;outline:none}input[type=range]:focus-visible{outline:2px solid var(--link-focus-ring);outline-offset:4px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:1.1rem 0;display:grid}.form-grid .full-row{grid-column:1/-1}.connection-chooser{gap:.75rem;margin:1.2rem 0;display:grid}.connection-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0;display:grid}.connection-profile-card{border:1px solid var(--line);background:var(--bg-card-soft);min-height:12rem;color:var(--text-main);text-align:center;border-radius:8px;align-content:center;gap:.5rem;padding:1rem;display:grid}.connection-profile-card:hover:not(:disabled){border-color:var(--accent);background:var(--bg-card)}.connection-profile-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.connection-profile-card strong{font-size:1.35rem;font-weight:600}.connection-profile-card span:not(.connection-card-status):not(.status-dot),.connection-profile-card small{color:var(--text-muted);overflow-wrap:anywhere}.connection-profile-card small{font-size:.78rem}.custom-connection-grid{margin-top:1rem}.relay-loading-view{text-align:center;justify-items:center;gap:1rem;padding:1.25rem .5rem;display:grid}.relay-loading-view .panel-subtext{overflow-wrap:anywhere;margin:0;font-size:.9rem}.relay-loading-view .primary-btn{min-width:10rem}.relay-loading-orbit{background:var(--bg-card);border:1px solid #0066cc3d;border-radius:50%;flex:none;width:2.35rem;height:2.35rem;position:relative}.relay-loading-orbit:before{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:.42rem;box-shadow:0 0 0 4px #ffd7003d}.relay-loading-orbit span{background:var(--brand-headline);border-radius:50%;width:.34rem;height:.34rem;margin:-.17rem;animation:1.15s linear infinite relay-orbit;position:absolute;top:50%;left:50%}.relay-loading-orbit span:nth-child(2){animation-delay:-.38s}.relay-loading-orbit span:nth-child(3){animation-delay:-.76s}.relay-connect-progress{gap:.4rem;width:min(100%,18rem);display:grid}.relay-connect-progress-track{background:#0066cc24;border:1px solid #0066cc38;border-radius:999px;height:.45rem;overflow:hidden}.relay-connect-progress-fill{transform-origin:0;border-radius:inherit;will-change:transform;background:linear-gradient(90deg,#06c,#3aa0ff);width:100%;height:100%;transform:scaleX(0)}.relay-connect-progress-meta{color:var(--text-muted);letter-spacing:.01em;margin:0;font-size:.82rem}.primary-btn,.ghost-btn{cursor:pointer;border:1px solid #0000;border-radius:.7rem;padding:.6rem 1rem;transition:transform .12s,box-shadow .12s}.primary-btn{background:var(--accent);color:var(--text-main);justify-content:center;align-items:center;gap:.5rem;font-family:Poppins,Inter,sans-serif;font-weight:600;text-decoration:none;display:inline-flex}.primary-btn.is-loading{background:var(--accent-strong);opacity:.9}.btn-spinner{border:2px solid #0000003d;border-top-color:var(--text-main);border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite btn-spin}.primary-btn:hover:not(:disabled){background:var(--accent-strong)}.ghost-btn{background:var(--bg-card-soft);border-color:var(--line);color:var(--text-main)}.ghost-btn:hover:not(:disabled){background:var(--bg-card);border-color:#ccc}.primary-btn:disabled,.ghost-btn:disabled{opacity:.6;cursor:default}.primary-btn:hover:not(:disabled),.ghost-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px #0000003d}.error-text{color:var(--danger)}.wifi-error-banner{color:var(--danger);background:#dc354533;border:1px solid #dc35458c;border-radius:.55rem;margin:0;padding:.8rem .9rem;font-weight:650;line-height:1.4}@keyframes relay-orbit{0%{transform:rotate(0)translate(1.05rem)rotate(0)}to{transform:rotate(360deg)translate(1.05rem)rotate(-360deg)}}@keyframes btn-spin{to{transform:rotate(360deg)}}.auth-actions{gap:.7rem;margin-top:1rem;display:flex}.dashboard-shell{min-height:100svh;padding:1rem}.dashboard-shell-header{background:var(--bg-card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin:-1rem -1rem 1rem;padding:1rem 1.25rem;display:flex}.dashboard-shell-header h1{color:var(--brand-headline);margin:0;font-weight:600}.dashboard-shell-header>div{align-items:center;gap:.8rem;display:flex}.connected-root{flex-direction:column;height:100svh;display:flex;overflow:hidden}.connected-body{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.compact-header{background:var(--bg-card);border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.header-status{align-items:center;gap:.4rem;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-dot.status-connected,.status-dot.status-online{background:var(--success);box-shadow:0 0 6px var(--success)}.status-dot.status-connecting,.status-dot.status-disconnecting,.status-dot.status-needs-wifi{background:var(--warn);box-shadow:0 0 6px var(--warn)}.status-dot.status-checking{background:var(--text-muted)}.status-dot.status-offline,.status-dot.status-unreachable{background:var(--offline);box-shadow:0 0 6px var(--offline)}.status-dot.status-disconnected,.status-dot.status-error{background:var(--danger);box-shadow:0 0 6px var(--danger)}.header-label{color:var(--text-muted);font-size:.78rem}.header-right{align-items:center;gap:.5rem;display:flex}.view-switcher{border:1px solid var(--line);border-radius:.5rem;display:flex;overflow:hidden}.view-switcher-btn{background:var(--bg-card-soft);color:var(--text-muted);cursor:pointer;border:none;padding:.22rem .55rem;font-size:.72rem;transition:background .12s,color .12s}.view-switcher-btn+.view-switcher-btn{border-left:1px solid var(--line)}.view-switcher-btn.is-active{color:var(--brand-headline-strong);background:#0897e626;font-weight:600}.drawer-toggle-btn{border:1px solid var(--line);color:var(--text-main);cursor:pointer;background:0 0;border-radius:.5rem;padding:.2rem .5rem;font-size:1.15rem;line-height:1}.status-connected{color:var(--success)}.status-connecting,.status-disconnecting{color:var(--warn)}.status-disconnected,.status-error{color:var(--danger)}.main-viewport{background:var(--viewport-bg);flex:1 1 0;min-height:0;position:relative;overflow:hidden}.viewport-video{object-fit:contain;width:100%;height:100%}.viewport-lidar-layer{position:absolute;inset:0}.viewport-video.is-hidden,.viewport-lidar-layer.is-hidden{visibility:hidden;pointer-events:none}.go2-connect-overlay{z-index:20;-webkit-backdrop-filter:blur(4px);background:#0000008c;place-items:center;display:grid;position:absolute;inset:0}.go2-connect-card{text-align:center;flex-direction:column;align-items:center;gap:.75rem;max-width:min(420px,100% - 2rem);padding:2rem 1.5rem;display:flex}.go2-connect-title{color:#fff;margin:0 0 .4rem;font-size:clamp(1.15rem,3vw,1.5rem);font-weight:700}.go2-connect-subtitle{color:#ffffffb8;margin:0 0 1.25rem;font-size:clamp(.85rem,2vw,1rem);line-height:1.5}.go2-connect-btn{width:min(100%,18rem);padding:.75rem 2.5rem;font-size:clamp(.9rem,2.2vw,1.05rem)}.go2-connect-btn:disabled{opacity:.55}.dpad{z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(3,clamp(2.2rem,8vw,3.2rem));grid-template-columns:repeat(3,clamp(2.2rem,8vw,3.2rem));grid-template-areas:".up.""left label right"".down.";gap:3px;display:grid;position:absolute;bottom:clamp(.5rem,3vh,1.2rem)}.dpad-side-left{left:clamp(.5rem,3vw,1.5rem)}.dpad-side-right{right:clamp(.5rem,3vw,1.5rem)}.dpad-label{text-transform:uppercase;letter-spacing:.06em;color:#ffffff59;pointer-events:none;grid-area:label;justify-content:center;align-items:center;font-size:.6rem;display:flex}.dpad-btn{pointer-events:auto;touch-action:none;color:#ffffffb3;cursor:pointer;-webkit-backdrop-filter:blur(4px);background:#1022348c;border:1px solid #ffffff26;border-radius:.45rem;justify-content:center;align-items:center;font-size:clamp(.7rem,2.5vw,1rem);transition:background 80ms,border-color 80ms;display:flex}.dpad-btn:active,.dpad-btn[aria-pressed=true]{color:#fff;background:#0066cc59;border-color:#0066ccbf}.dpad-up{grid-area:up}.dpad-down{grid-area:down}.dpad-left{grid-area:left}.dpad-right{grid-area:right}.viewport-ptt-btn{z-index:10;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;color:#ffffffb3;cursor:pointer;-webkit-backdrop-filter:blur(4px);background:#1022348c;border:1px solid #ffffff26;border-radius:.45rem;padding:.55rem .85rem;font-size:clamp(.72rem,2.2vw,.9rem);font-weight:600;transition:background 80ms,border-color 80ms,color 80ms;position:absolute;top:clamp(.5rem,2.5vh,1rem);left:clamp(.5rem,3vw,1.5rem)}.viewport-ptt-btn:disabled{opacity:.45;cursor:not-allowed}.viewport-ptt-btn:active,.viewport-ptt-btn.is-active{color:#fff;background:#0066cc59;border-color:#0066ccbf}.drawer-backdrop{z-index:90;background:#00000059;position:fixed;inset:0}.control-drawer{background:var(--bg-card);border-left:1px solid var(--line);z-index:100;flex-direction:column;width:min(320px,85vw);transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 28px #0000001a}.control-drawer.is-open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:.7rem .85rem;display:flex}.drawer-header h3{color:var(--brand-headline);margin:0;font-size:1rem;font-weight:600}.drawer-close-btn{background:var(--bg-card-soft);border:1px solid var(--line);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:.2rem .45rem;font-size:1.1rem;line-height:1}.drawer-close-btn:hover{color:var(--text-main);background:var(--bg-card);border-color:#ccc}.drawer-close-btn:focus-visible{outline:2px solid var(--link-focus-ring);outline-offset:2px}.drawer-body{flex:1 1 0;padding:.5rem .85rem 1rem;overflow-y:auto}.drawer-section-toggle{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:.4rem;margin:0 -.15rem;padding:.6rem .15rem;font-size:.88rem;font-weight:600;transition:background .12s;display:flex}.drawer-section-toggle:hover{background:var(--bg-card-soft)}.drawer-chevron{color:var(--text-muted);font-size:.7rem;transition:transform .2s;display:inline-block}.drawer-chevron.is-open{transform:rotate(90deg)}.drawer-section-content{gap:.5rem;padding:.5rem 0 .6rem;display:grid}.drawer-detail{color:var(--text-muted);margin:0;font-size:.82rem}.drawer-btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.drawer-btn-row .primary-btn,.drawer-btn-row .ghost-btn{padding:.45rem .75rem;font-size:.82rem}.drawer-lidar{height:220px;min-height:180px}.drawer-footer{border-top:1px solid var(--line);background:var(--bg-card-soft);border-radius:0 0 0 8px;justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding:.75rem .65rem;display:flex}.drawer-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}.drawer-signout-btn{flex-shrink:0;padding:.4rem .7rem;font-size:.82rem}.readout{color:var(--text-muted);border:1px solid var(--line);background:var(--bg-card-soft);border-radius:8px;padding:.55rem .65rem;font-size:.82rem;line-height:1.4}.readout strong{margin-top:.3rem;display:block}.readout p{margin:.1rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem}.control-drawer .view-controls>strong{color:var(--brand-headline-strong);font-weight:600}.control-tabs{grid-template-columns:1fr 1fr;gap:.45rem;margin:.4rem 0 .55rem;display:grid}.tab-btn{cursor:pointer;font:inherit;border:1px solid var(--line);background:var(--bg-card-soft);color:var(--text-muted);border-radius:.5rem;padding:.45rem .6rem}.tab-btn.is-active{color:var(--brand-headline-strong);background:#0897e61f;border-color:#0066cc59;font-weight:600}.view-controls{border:1px solid var(--line);background:var(--bg-card-soft);border-radius:.75rem;gap:.55rem;padding:.55rem;display:grid}.view-controls>strong{margin:0;font-size:.95rem;display:block}.view-controls .checkbox-row{color:var(--text-muted);align-items:center;gap:.55rem;font-size:.95rem;line-height:1.2;display:flex}.view-controls .checkbox-row input[type=checkbox]{width:1rem;height:1rem;margin:0}.view-controls .oa-clearance-row{color:var(--text-muted);gap:.35rem;font-size:.95rem;display:grid}.view-controls .oa-clearance-row input[type=range]{width:100%;accent-color:var(--link);background:0 0;border-radius:.25rem;padding:0}.view-controls .developer-subscriptions{border-top:1px solid var(--line);gap:.45rem;padding-top:.45rem;display:grid}.view-controls .developer-subscriptions>summary{cursor:pointer;color:var(--text-muted);font-size:.9rem;font-weight:600;list-style:none}.view-controls .developer-subscriptions>summary::-webkit-details-marker{display:none}.view-controls .developer-subscriptions>summary:before{content:"▸ "}.view-controls .developer-subscriptions[open]>summary:before{content:"▾ "}.actions-panel{border:1px solid var(--line);background:var(--bg-card-soft);border-radius:.75rem;gap:.55rem;padding:.55rem;display:grid}.actions-panel-heading{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:.35rem 0 0;font-size:.78rem;font-weight:600}.action-btn{border:1px solid var(--line);background:var(--bg-card);width:100%;color:var(--text-main);border-radius:.5rem;padding:.5rem .7rem;transition:transform .12s,box-shadow .14s,border-color .14s,background .14s;position:relative;overflow:hidden}.action-btn:hover:not(:disabled){background:#0897e614;border-color:#0066cc73;transform:translateY(-1px);box-shadow:0 6px 14px #00000014,0 0 0 1px #0066cc1f}.action-btn:active:not(:disabled){border-color:#0066cc8c;transform:translateY(1px)scale(.995);box-shadow:inset 0 2px 6px #0000000f,0 0 0 1px #0066cc26}.action-btn:focus-visible{outline:2px solid var(--link-focus-ring);outline-offset:2px}.action-btn:disabled{opacity:.5;cursor:default;box-shadow:none}.action-btn-danger{border-color:#c4404073}.action-btn-danger:hover:not(:disabled){background:#c440401a;border-color:#c44040b3;transform:translateY(-1px);box-shadow:0 6px 14px #00000014,0 0 0 1px #c440401f}.action-btn-recovery{border:2px solid #d4a017;font-weight:600;box-shadow:0 0 0 1px #d4a01747}.action-btn-recovery:hover:not(:disabled){background:#d4a0171f;border-color:#e8c23a;transform:translateY(-1px);box-shadow:0 6px 14px #00000014,0 0 0 1px #e8c23a66}.action-btn-recovery:active:not(:disabled){border-color:#c4920f;box-shadow:inset 0 2px 6px #0000000f,0 0 0 1px #c4920f59}.telemetry-pane p{color:var(--text-muted);margin:.34rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.84rem}.telemetry-widget{border-bottom:1px solid var(--line);margin-bottom:.5rem;padding-bottom:.5rem}.telemetry-tabs{scrollbar-width:none;gap:.3rem;margin-bottom:.45rem;display:flex;overflow-x:auto}.telemetry-tabs::-webkit-scrollbar{display:none}.telemetry-tabs .tab-btn{flex:none;padding:.3rem .55rem;font-size:.8rem}.telemetry-content{border:1px solid var(--line);background:var(--bg-card-soft);border-radius:.6rem;padding:.55rem .65rem}.telemetry-content p{color:var(--text-muted);margin:.15rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;line-height:1.4}.telemetry-responses{max-height:14rem;margin:0;padding:0;list-style:none;overflow-y:auto}.telemetry-response-item{border-bottom:1px solid var(--line);margin:0 0 .55rem;padding-bottom:.45rem}.telemetry-response-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.telemetry-response-meta{color:var(--text-muted);flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.72rem;display:flex}.telemetry-response-topic{color:var(--text);word-break:break-all;margin:.2rem 0 .1rem;font-size:.76rem}.telemetry-response-ids{margin:0 0 .2rem;font-size:.72rem}.telemetry-response-preview{background:var(--bg,#0003);color:var(--text-muted);white-space:pre-wrap;word-break:break-word;border-radius:.35rem;max-height:6rem;margin:.15rem 0 0;padding:.35rem .45rem;font-size:.68rem;line-height:1.35;overflow-y:auto}.debug-line{color:var(--text-muted);margin:0 0 .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.82rem}.lidar-canvas-host{touch-action:none;width:100%;height:100%;min-height:0;position:relative}.lidar-canvas-host>div{width:100%!important;height:100%!important}.lidar-loading{width:100%;height:100%;color:var(--text-muted);background:var(--lidar-bg,#07101a);place-items:center;font-size:.9rem;display:grid}.lidar-canvas{border:1px solid var(--line);touch-action:none;border-radius:.7rem;width:100%;height:100%;min-height:0}.main-viewport .lidar-canvas-host .lidar-canvas,.main-viewport>.lidar-canvas{border:none;border-radius:0}@media (width<=680px){.form-grid,.connection-profile-grid{grid-template-columns:1fr}.auth-actions{flex-direction:column}.dashboard-shell-header{flex-direction:column;align-items:flex-start}}@media (width>=1024px){.compact-header{padding:.45rem 1rem}.header-label{font-size:.85rem}.dpad{grid-template-rows:repeat(3,3.4rem);grid-template-columns:repeat(3,3.4rem);gap:4px}.dpad-side-left{bottom:1.5rem;left:2rem}.dpad-side-right{bottom:1.5rem;right:2rem}.dpad-btn{font-size:1.1rem}.dpad-label{font-size:.7rem}.viewport-ptt-btn{padding:.65rem 1rem;font-size:.95rem;top:1.25rem;left:2rem}.connected-body{flex-direction:row}.drawer-toggle-btn,.drawer-backdrop{display:none}.control-drawer{z-index:auto;width:360px;box-shadow:none;border-left:1px solid var(--line);flex-shrink:0;transition:none;position:static;transform:none}}.drawer-checkbox{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.drawer-audio-controls{flex-direction:column;gap:.75rem;margin-top:.35rem;display:flex}.drawer-audio-controls label,.drawer-gain-row{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.drawer-audio-controls select{width:100%}.drawer-gain-heading{align-items:center;gap:.4rem;display:flex}.drawer-gain-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:1.05rem;height:1.05rem}.drawer-mute-icon-btn{border:1px solid var(--line,#c5c5c5);background:var(--bg-card,#f4f4f4);width:2rem;height:2rem;color:inherit;cursor:pointer;border-radius:.45rem;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:.2rem;display:inline-flex}.drawer-mute-icon-btn:hover:not(:disabled){border-color:var(--brand-headline-strong,#1976d2);background:color-mix(in srgb, var(--brand-headline-strong,#1976d2) 12%, transparent)}.drawer-mute-icon-btn:disabled{cursor:not-allowed;opacity:.55}.drawer-mute-icon-btn.is-muted{color:#c62828;background:#ffebee;border-color:#ef5350}.drawer-mute-icon-btn.is-muted:hover:not(:disabled){background:#ffcdd2}.drawer-mute-slash{stroke:#c62828;stroke-width:2.5px}.drawer-gain-db{color:var(--muted,#888);font-size:.85em}.drawer-deafen-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.drawer-mute-toggles{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.drawer-deafen{flex-direction:row;margin:0}.drawer-mic-switch{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.78rem;display:flex}.drawer-mic-switch .is-active{color:var(--text-main);font-weight:600}.mic-source-switch{border:1px solid var(--line);background:var(--bg-card-soft);cursor:pointer;border-radius:999px;flex-shrink:0;width:2.45rem;height:1.3rem;padding:0;position:relative}.mic-source-switch.is-on{background:#0066cc47;border-color:#0066cca6}.mic-source-switch:disabled{opacity:.45;cursor:not-allowed}.mic-source-switch-thumb{background:#fff;border-radius:50%;width:calc(1.3rem - 4px);height:calc(1.3rem - 4px);transition:transform .12s;position:absolute;top:1px;left:1px;box-shadow:0 1px 2px #0003}.mic-source-switch.is-on .mic-source-switch-thumb{transform:translate(1.15rem)}.minimap{z-index:12;pointer-events:auto;touch-action:none;cursor:move;-webkit-user-select:none;user-select:none;background:#102234b8;border:1px solid #fff3;border-radius:.45rem;width:180px;height:180px;position:absolute;top:calc(clamp(.5rem,2.5vh,1rem) + 2.75rem);left:clamp(.5rem,3vw,1.5rem);overflow:hidden}@media (width>=1024px){.minimap{top:4.5rem;left:2rem}}.minimap-image{object-fit:contain;opacity:.95;width:100%;height:100%}.minimap-status{z-index:2;color:#fff;text-shadow:0 1px 2px #0009;font-size:.72rem;font-weight:650;position:absolute;top:.35rem;left:.45rem}.minimap-robot{z-index:2;border-bottom:14px solid #ffb400;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute}.minimap-robot.is-localized{border-bottom-color:#3dcc70}.minimap-handle{z-index:4;background:#f0f0f0d9;border:1px solid #ffffffb3;border-radius:2px;width:12px;height:12px;padding:0;position:absolute}.minimap-handle.nw{cursor:nwse-resize;top:2px;left:2px}.minimap-handle.ne{cursor:nesw-resize;top:2px;right:2px}.minimap-handle.sw{cursor:nesw-resize;bottom:2px;left:2px}.minimap-handle.se{cursor:nwse-resize;bottom:2px;right:2px}.minimap.is-placing{cursor:crosshair}.minimap-guess-overlay{z-index:1;color:#ffdc5a;text-align:center;white-space:pre-line;pointer-events:none;background:#00000096;justify-content:center;align-items:center;padding:1.6rem .6rem .6rem;font-size:.78rem;font-weight:700;display:flex;position:absolute;inset:0}.minimap-robot.is-guess{border-bottom-color:#50b4ff}.minimap-confirm{z-index:3;box-sizing:border-box;background:#00000073;gap:6px;height:32px;padding:2px 6px 4px;display:flex;position:absolute;bottom:0;left:0;right:0}.minimap-confirm button{color:#fff;cursor:pointer;background:#283a4ef2;border:1px solid #ffffff47;border-radius:.25rem;flex:1;margin:0;padding:0;font-size:.72rem;font-weight:650}.map-session-card{min-width:min(360px,100% - 2rem)}.map-session-actions{flex-direction:column;gap:.5rem;width:100%;display:flex}.map-select,.map-name-input{box-sizing:border-box;width:100%}.maps-panel{gap:.55rem;display:grid}.viewport-battery{z-index:10;color:#ffffffe6;letter-spacing:.02em;-webkit-backdrop-filter:blur(4px);pointer-events:none;background:#1022348c;border:1px solid #ffffff2e;border-radius:.4rem;padding:.35rem .55rem;font-size:.78rem;font-weight:650;position:absolute;top:clamp(.5rem,2.5vh,1rem);right:clamp(.5rem,3vw,1.5rem)}.connection-profile-standard,.connection-profile-wifi{justify-content:center;min-height:3.25rem}.robot-link-status{align-items:center;margin:0 0 .85rem;display:flex}.connection-card-status{align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;line-height:1.2;display:inline-flex}.connection-card-status-online{color:var(--success)}.connection-card-status-needs-wifi{color:var(--warn)}.connection-card-status-unreachable{color:var(--offline)}.connection-card-status-checking{color:var(--text-muted)}.preconnect-wifi-panel,.wifi-setup-panel{grid-column:1/-1;gap:.65rem;display:grid}.wifi-connected-banner{color:var(--success);margin:0;font-size:.88rem;font-weight:600}.wifi-next-step{background:#2ea0431a;border:1px solid #2ea04373;border-radius:.55rem;gap:.45rem;padding:.85rem .9rem;display:grid}.wifi-next-step .wifi-connected-banner{background:0 0;padding:0}.wifi-next-step-title{margin:0;font-size:1.02rem;font-weight:700}.wifi-next-step-body{margin:0;line-height:1.45}.wifi-next-step-emphasis{color:var(--brand-headline);font-size:1.15rem;font-weight:800;line-height:1.35;display:block}.wifi-network-list{gap:.4rem;max-height:14rem;display:grid;overflow-y:auto}.wifi-network-card{text-align:left;justify-content:space-between;align-items:center;gap:.75rem;min-height:auto;padding:.55rem .7rem;display:flex}.wifi-network-ssid{font-weight:600}.wifi-network-meta{color:var(--text-muted);white-space:nowrap;font-size:.78rem}.wifi-panel label{gap:.35rem;font-size:.88rem;display:grid}.connection-profile-standard small{display:none}.connection-advanced{display:grid}.connection-advanced-toggle{border:1px solid var(--line);background:var(--bg-card-soft);width:100%;color:var(--text-main);cursor:pointer;text-align:left;border-radius:.55rem;align-items:center;gap:.5rem;padding:.55rem .7rem;font-size:.88rem;font-weight:600;display:flex}.connection-advanced-toggle:hover{background:var(--bg-card)}.connection-advanced-toggle.has-selection{border-color:var(--accent)}.connection-advanced-toggle.is-open{border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.connection-advanced-toggle-label{flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;display:flex}.connection-advanced-toggle-choice{color:var(--text-muted);font-size:.78rem;font-weight:600}.connection-advanced-toggle-choice:before{content:"·";color:var(--text-muted);margin-right:.45rem}.connection-advanced-chevron{color:var(--text-muted);flex-shrink:0;font-size:.7rem;transition:transform .16s;display:inline-block}.connection-advanced-toggle.is-open .connection-advanced-chevron{transform:rotate(90deg)}.connection-advanced-menu{border:1px solid var(--line);border-top:1px dashed var(--line);background:var(--bg-card-soft);border-radius:0 0 .55rem .55rem;gap:.5rem;padding:.7rem;display:grid}.connection-advanced-item{text-align:left;background:var(--bg-card);justify-content:start;gap:.22rem;min-height:0;padding:.7rem .8rem}.connection-advanced-item strong{font-size:1rem}.connection-advanced-menu .custom-connection-grid{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;margin:0;padding:.75rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mock-env-panel{margin:0}.mock-env-status{color:var(--text-muted);align-items:center;gap:.35rem;margin-left:auto;font-size:.78rem;font-weight:600;display:inline-flex}.mock-env-body{gap:.7rem}.mock-env-url-row{align-items:stretch;gap:.5rem;display:flex}.mock-env-url-field{flex:1;min-width:0;display:grid}.mock-env-url-field input{box-sizing:border-box;width:100%}.mock-env-small-btn{white-space:nowrap;border-radius:.5rem;padding:.45rem .75rem;font-size:.85rem}.mock-env-card-list{gap:.5rem;display:grid}.mock-env-card{text-align:left;width:100%;min-height:0}.mock-env-card-meta{flex-wrap:wrap;align-items:center;gap:.35rem .7rem;font-size:.82rem;display:flex}.mock-env-empty{color:var(--text-muted);text-align:center;margin:0}.mock-env-actions{flex-wrap:wrap;align-items:stretch;gap:.45rem;display:flex}.mock-env-actions select{flex:8rem;min-width:0;padding:.45rem .55rem}@media (width<=680px){.mock-env-url-row,.mock-env-actions{flex-direction:column}}
