:root{font-family:Inter,ui-sans-serif,system-ui;color:#dce8ed;background:#101820;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{min-height:100vh;padding:24px}header{display:flex;align-items:center;justify-content:space-between}h1{font-size:1.4rem;margin:0}header p{color:#81949c;margin:.25rem 0 1rem}.status{border:1px solid #4b5e66;border-radius:999px;padding:.35rem .7rem}.status.live{color:#5ce1a4;border-color:#287b5a}.feeds{display:flex;gap:12px;margin-bottom:16px;font-size:.85rem}.feeds span{color:#91a4ac}.feeds i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d85858;margin-right:6px}.feeds .connected i{background:#42c88a}.alert{max-width:1000px;margin:0 0 14px;padding:10px 12px;border:1px solid #a84a4a;border-radius:5px;background:#3a2023;color:#ffd9d9;font-size:.9rem}.alert.warning{border-color:#99762e;background:#332c1b;color:#ffe4a3}.empty{padding:24px;color:#91a4ac;text-align:center}.table-panel{position:relative;min-width:0}.table-panel,.table-wrap,aside{background:#142129;border:1px solid #273a43;border-radius:6px;overflow:hidden}.table-wrap{height:100%;overflow:auto;border:0}.table-surface{min-width:1220px;font-size:.82rem;white-space:nowrap}.table-header{position:sticky;top:0;z-index:2;display:flex;background:#1c2d36}.table-header button{height:35px;flex:none;padding:9px;overflow:hidden;text-overflow:ellipsis;border:0;border-bottom:1px solid #21343d;border-radius:0;background:#1c2d36;color:#8da2aa;text-align:left;font:inherit;font-weight:600;-webkit-user-select:none;user-select:none}.table-header button.sortable{cursor:pointer}.table-header button.sortable:hover{color:#dce8ed}.sort-indicator{float:right;color:#5ce1a4;font-size:.7rem}.table-body{position:relative}.table-row{position:absolute;left:0;display:flex;height:35px;padding:0;border:0;border-bottom:1px solid #21343d;border-radius:0;background:#142129;color:inherit;font:inherit;text-align:left;cursor:pointer;user-select:none;-webkit-user-select:none}.table-cell{height:35px;flex:none;padding:9px;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.table-row:hover,.table-row.selected{background:#1d3841}.table-row:focus-visible{outline:2px solid #5ce1a4;outline-offset:-2px;z-index:1}.view-controls{display:flex;margin-bottom:16px;max-width:1100px}.view-controls input,.view-controls select{background:#17252d;color:inherit;border:1px solid #344952;padding:10px}.view-controls>input:first-child{flex:1;border-radius:5px 0 0 5px}.view-controls select{min-width:170px}.view-controls .distance-limit{width:110px}.view-controls button{background:#36a77a;color:#07120e;border:0;padding:0 18px;font-weight:700}.view-controls .device-location-trigger{border:1px solid #3d5964;background:#243a44;color:#dce8ed;white-space:nowrap}.view-controls button[type=submit]{border-radius:0 5px 5px 0}.workspace{display:grid;grid-template-columns:minmax(600px,3fr) minmax(300px,2fr);gap:16px;height:calc(100vh - 160px)}aside{padding:16px;overflow:auto}aside h2{font-size:1rem;margin-top:0}pre{font-size:.78rem;white-space:pre-wrap;color:#a8c4ce}@media(max-width:900px){main{padding:12px}.workspace{grid-template-columns:1fr;height:auto}.table-panel{height:55vh}aside{height:35vh}}.view-controls .manage-references{border-radius:0;background:#29414b;color:#dce8ed;border-block:1px solid #344952}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#071015c9}.reference-modal{width:min(720px,100%);max-height:90vh;overflow:auto;border:1px solid #3b535e;border-radius:8px;background:#142129;box-shadow:0 24px 80px #000b;padding:20px}.reference-modal>header{align-items:start;border-bottom:1px solid #273a43;margin-bottom:12px}.reference-modal h2{margin:0}.reference-modal header p{margin:.3rem 0 1rem}.close-button{border:0;background:transparent;color:#a9bbc2;font-size:1.8rem;cursor:pointer}.reference-list{display:grid;gap:6px;max-height:260px;overflow:auto}.reference-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid #273a43;border-radius:5px;background:#101b21}.reference-item strong,.reference-item small{display:block}.reference-item small{margin-top:3px;color:#89a0a9}.configured-badge{color:#89a0a9;font-size:.75rem}.reference-actions,.form-actions{display:flex;gap:6px}.reference-actions button,.form-actions button{padding:7px 10px;border:1px solid #3d5964;border-radius:4px;background:#243a44;color:#dce8ed;cursor:pointer}.reference-actions button.danger{border-color:#75434a;color:#ffb8be}.reference-form{display:block;max-width:none;margin:18px 0 0;border-top:1px solid #273a43;padding-top:14px}.reference-form h3{margin:0 0 12px;font-size:1rem}.reference-form label{display:grid;gap:5px;color:#9eb0b7;font-size:.8rem}.reference-form input{width:100%;border:1px solid #344952;border-radius:4px;background:#17252d;color:#dce8ed;padding:9px}.field-hint{margin:5px 0 12px;color:#718991;font-size:.75rem}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:10px}.form-actions{justify-content:flex-end;margin-top:12px}.form-actions button[type=submit]{background:#36a77a;color:#07120e;border-color:#36a77a;font-weight:700}.form-error{color:#ffacb3;margin:.6rem 0 0}.form-notice{color:#73dba9;margin:.6rem 0 0}.empty-reference-list{color:#89a0a9;text-align:center}@media(max-width:650px){.view-controls{flex-wrap:wrap}.view-controls>input:first-child{flex-basis:100%}.coordinate-fields{grid-template-columns:1fr}.reference-item{align-items:start}}.device-location-notice{display:flex;align-items:center;gap:10px;width:min(760px,100%);margin:-5px 0 12px;padding:8px 10px;border:1px solid #344952;border-radius:5px;background:#142129;color:#a9bbc2;font-size:.78rem}.device-location-notice>div{min-width:0;flex:1}.device-location-notice strong,.device-location-notice span,.device-location-notice small{display:block}.device-location-notice strong{color:#dce8ed}.device-location-notice small{margin-top:2px;color:#718991;font-variant-numeric:tabular-nums}.device-location-indicator{width:9px;height:9px;flex:none;border-radius:50%;background:#d6aa4f}.device-location-notice.active .device-location-indicator{background:#42c88a;box-shadow:0 0 5px #42c88a66}.device-location-notice.error{border-color:#75434a}.device-location-notice.error .device-location-indicator{background:#d85858}.device-location-notice button{padding:6px 9px;border:1px solid #3d5964;border-radius:4px;background:#243a44;color:#dce8ed;cursor:pointer}main{height:100vh;min-height:0;padding:0;display:flex;flex-direction:column;overflow:hidden}.app-toolbar{height:44px;flex:none;display:flex;align-items:center;gap:22px;padding:0 16px;border-bottom:1px solid #2b3f48;background:#17252d;box-shadow:0 1px #091014}.app-toolbar h1{font-size:1rem;letter-spacing:.02em}.toolbar-menu{position:relative;height:100%;display:flex;align-items:center}.toolbar-menu-trigger{height:30px;padding:0 10px;border:1px solid transparent;border-radius:4px;background:transparent;color:#a9bbc2;font:inherit;font-size:.82rem;cursor:pointer}.toolbar-menu-trigger:hover,.toolbar-menu-trigger[aria-expanded=true]{border-color:#3a505a;background:#20343d;color:#eef6f8}.toolbar-menu-trigger span{margin-left:5px;color:#718991}.toolbar-menu-popup{position:absolute;z-index:10;top:37px;left:0;min-width:220px;padding:5px;border:1px solid #3b515b;border-radius:5px;background:#17262e;box-shadow:0 12px 35px #0009}.toolbar-menu-popup button{width:100%;padding:9px 10px;border:0;border-radius:3px;background:transparent;color:#dce8ed;text-align:left;font:inherit;font-size:.82rem;cursor:pointer}.toolbar-menu-popup button:hover{background:#29414b}.app-content{min-height:0;flex:1;display:flex;flex-direction:column;padding:16px}.view-controls{width:min(760px,100%);max-width:none;flex:none;margin-bottom:12px}.view-controls>input:first-child{min-width:160px}.view-controls select{min-width:200px}.workspace{min-height:0;flex:1;height:auto}.statusbar{height:28px;flex:none;display:flex;align-items:center;gap:0;border-top:1px solid #30454e;background:#18262d;color:#91a4ac;font-size:.72rem;white-space:nowrap;overflow:hidden}.statusbar>span{height:100%;display:flex;align-items:center;padding:0 11px;border-right:1px solid #2b3d45}.statusbar strong{margin-right:3px;color:#c6d6dc;font-weight:600}.connection-state{text-transform:capitalize}.connection-state i,.statusbar-feeds i{width:7px;height:7px;margin-right:6px;border-radius:50%;background:#d85858}.connection-state.connected i,.statusbar-feeds .connected i{background:#42c88a;box-shadow:0 0 5px #42c88a66}.connection-state.connecting i{background:#d6aa4f}.statusbar .statusbar-feeds{margin-left:auto;border:0;padding:0}.statusbar-feeds>span{height:100%;display:flex;align-items:center;padding:0 10px;border-left:1px solid #2b3d45}.statusbar-feeds .disconnected{color:#d78686}@media(max-width:900px){main{height:auto;min-height:100vh;overflow:visible}.app-content{padding:12px}.workspace{height:auto}.statusbar{position:sticky;bottom:0}}@media(max-width:650px){.statusbar-feeds{display:none!important}.view-controls select{flex:1}.app-toolbar{padding-inline:12px}}@font-face{font-family:B612 Mono;src:url(/assets/B612Mono-Regular-Dy5CPTFd.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:B612 Mono;src:url(/assets/B612Mono-Italic-Bn2bDCXv.ttf) format("truetype");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:B612 Mono;src:url(/assets/B612Mono-Bold-C2ELZoPW.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:B612 Mono;src:url(/assets/B612Mono-BoldItalic-Da-fgHxd.ttf) format("truetype");font-style:italic;font-weight:700;font-display:swap}:root{font-family:B612 Mono,DejaVu Sans Mono,Consolas,monospace}button,input,select,textarea{font:inherit}.detail-column{min-width:0;min-height:0;display:flex;flex-direction:column;gap:12px}.detail-column aside{min-height:0;flex:1}.trackpoint-panels{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.normalized-trackpoint{flex:none;padding:14px 16px;border:1px solid #273a43;border-radius:6px;background:#142129;overflow:hidden}.contact-geometry{min-width:180px;padding:14px 16px;border:1px solid #273a43;border-radius:6px;background:#142129;color:#dce8ed;font-size:.9rem;font-variant-numeric:tabular-nums;transition:color .15s ease,opacity .15s ease}.contact-geometry.stale{color:#66777e;opacity:.86}.contact-geometry h2{margin:0 0 9px;color:inherit;font-size:.82rem}.contact-geometry div+div{margin-top:5px}.contact-geometry span{display:inline-block;width:4ch;color:#91a4ac}.contact-geometry.stale span{color:inherit}.normalized-trackpoint h2{margin:0 0 11px;color:#dce8ed;font-size:.82rem;font-weight:700}.normalized-field{display:flex;align-items:baseline;gap:8px;font-size:.8rem}.normalized-field+.normalized-field{margin-top:7px}.normalized-field>span:first-child{color:#91a4ac}.normalized-field a{color:#65d8aa;text-decoration:none;text-underline-offset:3px}.normalized-field a:hover,.normalized-field a:focus-visible{color:#9aebcb;text-decoration:underline}@media(max-width:900px){.detail-column aside{height:35vh}}.icon-color-swatch{display:block;width:17px;height:17px;margin:-1px auto 0;border:1px solid #ffffff38;border-radius:2px;box-shadow:0 0 0 1px #0006}.toolbar-search{width:32px;height:32px;margin-left:auto;display:grid;place-items:center;padding:6px;border:1px solid transparent;border-radius:4px;background:transparent;color:#a9bbc2;cursor:pointer}.toolbar-search:hover,.toolbar-search:focus-visible{border-color:#3a505a;background:#20343d;color:#eef6f8}.toolbar-search svg{width:18px;height:18px}.search-backdrop{place-items:start center;padding-top:min(14vh,120px)}.search-modal{width:min(620px,100%);max-height:min(72vh,680px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #3b535e;border-radius:8px;background:#142129;box-shadow:0 24px 80px #000b}.search-modal>header{flex:none;padding:16px 18px 12px;border-bottom:1px solid #273a43}.search-modal h2{margin:0;font-size:1.05rem}.search-modal header p{margin:.25rem 0 0}.search-input-wrap{flex:none;display:flex;align-items:center;gap:10px;margin:14px 16px 10px;padding:0 11px;border:1px solid #46606b;border-radius:6px;background:#101b21}.search-input-wrap:focus-within{border-color:#5ce1a4;box-shadow:0 0 0 2px #5ce1a426}.search-input-wrap svg{width:19px;height:19px;flex:none;color:#8da2aa}.search-input-wrap input{width:100%;min-width:0;padding:12px 0;border:0;outline:0;background:transparent;color:#eef6f8;font:inherit}.search-input-wrap input::placeholder{color:#718991}.search-input-wrap input::-webkit-search-cancel-button{filter:invert(1);opacity:.55}.search-input-wrap kbd{padding:2px 5px;border:1px solid #3b515b;border-radius:3px;background:#1c2d36;color:#8da2aa;font:inherit;font-size:.68rem}.search-results{min-height:100px;overflow:auto;padding:0 8px 10px}.search-results button{width:100%;display:grid;grid-template-columns:minmax(120px,2fr) minmax(160px,3fr);gap:14px;padding:10px;border:0;border-radius:4px;background:transparent;color:#dce8ed;text-align:left;font:inherit;cursor:pointer}.search-results button:hover,.search-results button.active{background:#203a44}.search-result-primary,.search-result-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-primary{font-weight:600}.search-result-secondary{color:#89a0a9;font-size:.78rem}.search-message{padding:22px 12px;color:#89a0a9;text-align:center}.search-limit{flex:none;margin:0;padding:7px 16px;border-top:1px solid #273a43;color:#718991;font-size:.72rem}@media(max-width:650px){.search-backdrop{padding:10px}.search-modal{max-height:85vh}.search-results button{grid-template-columns:1fr;gap:3px}}
